@fusion.dev/helix 0.148.0 → 0.149.1

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 (54) hide show
  1. package/custom-elements.json +7471 -982
  2. package/dist/chat/root/chat-root.css.js +3 -1
  3. package/dist/chat/root/chat-root.d.ts +3 -0
  4. package/dist/data-table/root/data-table-root.css.js +20 -8
  5. package/dist/data-table/root/data-table-root.d.ts +12 -0
  6. package/dist/element-events.generated.js +32 -4
  7. package/dist/list/item/list-item.css.js +4 -2
  8. package/dist/list/item/list-item.d.ts +4 -0
  9. package/dist/list/root/list-root.css.js +2 -1
  10. package/dist/list/root/list-root.d.ts +6 -0
  11. package/dist/list/root/list-root.js +2 -1
  12. package/dist/listbox/reorder/index.d.ts +1 -0
  13. package/dist/listbox/reorder/index.js +6 -0
  14. package/dist/listbox/reorder/listbox-drag-preview.css.d.ts +1 -0
  15. package/dist/listbox/reorder/listbox-drag-preview.css.js +3 -0
  16. package/dist/listbox/reorder/listbox-reorder.css.d.ts +1 -0
  17. package/dist/listbox/reorder/listbox-reorder.css.js +4 -0
  18. package/dist/listbox/root/listbox-root.d.ts +9 -0
  19. package/dist/notifications/notification/notification.css.js +8 -2
  20. package/dist/notifications/notification/notification.d.ts +13 -5
  21. package/dist/notifications/notification/notification.js +13 -0
  22. package/dist/notifications/root/notifications-root.css.js +3 -1
  23. package/dist/notifications/root/notifications-root.d.ts +17 -2
  24. package/dist/notifications/root/notifications-root.js +13 -1
  25. package/dist/orb/root/orb-root.d.ts +5 -0
  26. package/dist/orb/root/orb-root.js +13 -12
  27. package/dist/sandbox/preview/sandbox-preview.d.ts +5 -0
  28. package/dist/sandbox/preview/sandbox-preview.js +11 -8
  29. package/dist/sandbox/root/sandbox-root.d.ts +8 -3
  30. package/dist/sandbox/root/sandbox-root.js +7 -3
  31. package/dist/sandbox/source/sandbox-source.d.ts +5 -0
  32. package/dist/sandbox/source/sandbox-source.js +4 -1
  33. package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +10 -0
  34. package/dist/sandbox/status-bar/sandbox-status-bar.js +14 -2
  35. package/dist/sandbox/terminal/sandbox-terminal.d.ts +11 -0
  36. package/dist/sandbox/terminal/sandbox-terminal.js +22 -11
  37. package/dist/scroll-area/root/scroll-area-root.css.js +5 -4
  38. package/dist/scroll-area/root/scroll-area-root.d.ts +3 -3
  39. package/dist/table/root/table-root.css.js +3 -1
  40. package/dist/table/root/table-root.d.ts +8 -1
  41. package/dist/table/row/table-row.css.js +9 -1
  42. package/dist/table/row/table-row.d.ts +5 -0
  43. package/dist/tooltip/root/tooltip-root.d.ts +9 -0
  44. package/dist/tree/item/tree-item.css.js +3 -1
  45. package/dist/tree/item/tree-item.d.ts +6 -0
  46. package/dist/tree/root/tree-root.css.js +2 -1
  47. package/dist/tree/root/tree-root.d.ts +8 -1
  48. package/dist/virtual-list/root/virtual-list-root.css.js +6 -1
  49. package/dist/virtual-list/root/virtual-list-root.d.ts +3 -0
  50. package/lint.json +1 -1
  51. package/package.json +10 -9
  52. package/types/jsx.d.ts +4137 -1515
  53. package/types/vue.d.ts +1409 -501
  54. package/types/words.d.ts +2555 -0
package/types/vue.d.ts CHANGED
@@ -195,6 +195,7 @@ import type {
195
195
  HelixFilterEvent,
196
196
  HelixLoadMoreEvent,
197
197
  HelixCopyErrorEvent,
198
+ HelixBeforeReorderEvent,
198
199
  HelixExpandEvent,
199
200
  HelixFilteredEvent,
200
201
  HelixNavigateEvent,
@@ -490,14 +491,22 @@ survives having nothing to paint with, and it is the only axis that does. */
490
491
  `attribute` is spelled out because Lit lowercases a property name to
491
492
  derive one rather than dash-casing it, so this would otherwise be
492
493
  reachable only as `dismisslabel`, which nobody would guess and no linter
493
- 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. */
494
499
  "dismiss-label"?: (HelixAnnouncement["dismissLabel"]) | undefined;
495
500
  /** The dismiss control's label, read by screen readers.
496
501
 
497
502
  `attribute` is spelled out because Lit lowercases a property name to
498
503
  derive one rather than dash-casing it, so this would otherwise be
499
504
  reachable only as `dismisslabel`, which nobody would guess and no linter
500
- 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. */
501
510
  dismissLabel?: (HelixAnnouncement["dismissLabel"]) | undefined;
502
511
  /** How long the announcement stays, in milliseconds, before it sends
503
512
  `helix-dismiss`. When it is not set, it stays until it is dismissed.
@@ -667,8 +676,8 @@ words and is already written. */
667
676
  /** The locale the chart's own numbers are written in: its axis, its
668
677
  percentages and its totals, such as `de` for `1.240` and `32 %`.
669
678
 
670
- Absent uses the runtime's own. The table's cells are shown as the table
671
- 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. */
672
681
  locale?: (HelixAreaChart["locale"]) | undefined;
673
682
  /** Where a reading the keys moved to stands among the readings, said after
674
683
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -723,6 +732,14 @@ the total.
723
732
  Absent stacks the amounts, so the top edge is the total. Set, every reading
724
733
  fills the height and the bands are shares of it. */
725
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;
726
743
  /** The name for the sum of the parts, shown in the tooltip and the summary. */
727
744
  "total-label"?: (HelixAreaChart["totalLabel"]) | undefined;
728
745
  /** The name for the sum of the parts, shown in the tooltip and the summary. */
@@ -871,14 +888,20 @@ everyone, assigning a matching property rather than an attribute.
871
888
  takes no default**: `max = 0` would stamp `max="0"` onto every host that
872
889
  never asked for a limit, including on the server. */
873
890
  max?: (HelixAvatarGroup["max"]) | undefined;
874
- /** What a screen reader is told the count is, with `{count}` for the number
875
- 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}}}`.
876
896
 
877
897
  The count shows "+3", which reads as "plus three" and says nothing about
878
898
  what was counted, nor who. */
879
899
  "overflow-label"?: (HelixAvatarGroup["overflowLabel"]) | undefined;
880
- /** What a screen reader is told the count is, with `{count}` for the number
881
- 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}}}`.
882
905
 
883
906
  The count shows "+3", which reads as "plus three" and says nothing about
884
907
  what was counted, nor who. */
@@ -1009,11 +1032,15 @@ shown as it is either way. */
1009
1032
 
1010
1033
  Required for a dot, which has no text to read. `{count}` is replaced with
1011
1034
  what the badge shows, so `label="{count} unread"` reads "8 unread" and
1012
- 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`. */
1013
1039
  label?: (HelixBadge["label"]) | undefined;
1014
- /** 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`.
1015
1042
 
1016
- Absent uses the runtime's own. */
1043
+ Absent reads the nearest `lang`, then the runtime's own. */
1017
1044
  locale?: (HelixBadge["locale"]) | undefined;
1018
1045
  /** The largest number the badge shows.
1019
1046
 
@@ -1160,8 +1187,8 @@ words and is already written. */
1160
1187
  /** The locale the chart's own numbers are written in: its axis, its
1161
1188
  percentages and its totals, such as `de` for `1.240` and `32 %`.
1162
1189
 
1163
- Absent uses the runtime's own. The table's cells are shown as the table
1164
- 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. */
1165
1192
  locale?: (HelixBarChart["locale"]) | undefined;
1166
1193
  /** Where a reading the keys moved to stands among the readings, said after
1167
1194
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -1198,9 +1225,11 @@ of many thin bars, where the eye has stopped counting.
1198
1225
  Furniture rather than data, so the rules are inside the `aria-hidden` plot
1199
1226
  and reach no reader through the table. */
1200
1227
  gridlines?: (HelixBarChart["gridlines"]) | undefined;
1201
- /** 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`. */
1202
1230
  "highest-label"?: (HelixBarChart["highestLabel"]) | undefined;
1203
- /** 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`. */
1204
1233
  highestLabel?: (HelixBarChart["highestLabel"]) | undefined;
1205
1234
  /** The names of the series to draw as lines. The other series are drawn as
1206
1235
  columns.
@@ -1278,6 +1307,14 @@ the other. The scale fits the stacks. A series
1278
1307
  in `lines` is still a line, measured on its own reading; columns on the
1279
1308
  second scale stack among themselves. */
1280
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;
1281
1318
  };
1282
1319
 
1283
1320
  export type HelixBarChartVueEvents = {};
@@ -1344,10 +1381,14 @@ with a control in its `end` slot, such as a switcher's menu trigger.
1344
1381
  The other crumbs look the same under either value. */
1345
1382
  separation?: (HelixBreadcrumbs["separation"]) | undefined;
1346
1383
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1347
- 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}}`. */
1348
1387
  "expand-label"?: (HelixBreadcrumbs["expandLabel"]) | undefined;
1349
1388
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1350
- 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}}`. */
1351
1392
  expandLabel?: (HelixBreadcrumbs["expandLabel"]) | undefined;
1352
1393
  /** The landmark's name, read by screen readers. An `aria-label` on the host
1353
1394
  wins over it. */
@@ -1559,7 +1600,11 @@ not text.
1559
1600
 
1560
1601
  Lives here rather than only on `IconButton` so the two share one render.
1561
1602
  An icon-only button without it is a control a screen reader announces as
1562
- "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. */
1563
1608
  label?: (HelixButton["label"]) | undefined;
1564
1609
  /** Whether the action the button started is still running.
1565
1610
 
@@ -1701,14 +1746,22 @@ choices. */
1701
1746
  `attribute` is spelled out because Lit lowercases a property name to
1702
1747
  derive one rather than dash-casing it, so this would otherwise be
1703
1748
  reachable only as `dismisslabel`, which nobody would guess and no linter
1704
- 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. */
1705
1754
  "dismiss-label"?: (HelixCallout["dismissLabel"]) | undefined;
1706
1755
  /** The dismiss control's label, read by screen readers.
1707
1756
 
1708
1757
  `attribute` is spelled out because Lit lowercases a property name to
1709
1758
  derive one rather than dash-casing it, so this would otherwise be
1710
1759
  reachable only as `dismisslabel`, which nobody would guess and no linter
1711
- 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. */
1712
1765
  dismissLabel?: (HelixCallout["dismissLabel"]) | undefined;
1713
1766
  /** What kind of attention the passage needs.
1714
1767
 
@@ -1719,14 +1772,28 @@ is the whole of the registry, which is why there is no `severity` beside it. */
1719
1772
  tone?: (HelixCallout["tone"]) | undefined;
1720
1773
  /** What a screen reader is told the tone is, such as "Fehler".
1721
1774
 
1722
- Absent is the English for the tone: "Error", "Information", "Note",
1723
- "Success" or "Warning". */
1775
+ Absent is the tone's words in `tone-labels`, "Error", "Information",
1776
+ "Note", "Success" or "Warning" in English. */
1724
1777
  "tone-label"?: (HelixCallout["toneLabel"]) | undefined;
1725
1778
  /** What a screen reader is told the tone is, such as "Fehler".
1726
1779
 
1727
- Absent is the English for the tone: "Error", "Information", "Note",
1728
- "Success" or "Warning". */
1780
+ Absent is the tone's words in `tone-labels`, "Error", "Information",
1781
+ "Note", "Success" or "Warning" in English. */
1729
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;
1730
1797
  };
1731
1798
 
1732
1799
  export type HelixCalloutVueEvents = {
@@ -1954,12 +2021,6 @@ Absent is no ruling, a resting value being an attribute's absence. */
1954
2021
  Framed is where it rests. Plain is for a board that fills a panel or an
1955
2022
  app's working area, where the container is already the frame. */
1956
2023
  separation?: (HelixCanvas["separation"]) | undefined;
1957
- /** The hint shown when a surface waiting to be pressed is scrolled or
1958
- swiped over, with `gestures="activate"`. Absent is the family's own. */
1959
- "activate-hint-label"?: (HelixCanvas["activateHintLabel"]) | undefined;
1960
- /** The hint shown when a surface waiting to be pressed is scrolled or
1961
- swiped over, with `gestures="activate"`. Absent is the family's own. */
1962
- activateHintLabel?: (HelixCanvas["activateHintLabel"]) | undefined;
1963
2024
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
1964
2025
  `none`. A family can add words of its own.
1965
2026
 
@@ -1982,20 +2043,6 @@ of the frame. The
1982
2043
  stylesheet lays the cluster out by which buttons are in it rather than by
1983
2044
  this attribute, so the two defaults need no rule each. */
1984
2045
  controls?: (HelixCanvas["controls"]) | undefined;
1985
- /** The name of the group of controls, read by screen readers.
1986
-
1987
- Absent is the family's own name for it, "Map controls" or "Board
1988
- controls", which names what the controls drive rather than the
1989
- mechanism. Written here to say it in another language, which every other
1990
- string this surface speaks already allowed and this one did not. */
1991
- "controls-label"?: (HelixCanvas["controlsLabel"]) | undefined;
1992
- /** The name of the group of controls, read by screen readers.
1993
-
1994
- Absent is the family's own name for it, "Map controls" or "Board
1995
- controls", which names what the controls drive rather than the
1996
- mechanism. Written here to say it in another language, which every other
1997
- string this surface speaks already allowed and this one did not. */
1998
- controlsLabel?: (HelixCanvas["controlsLabel"]) | undefined;
1999
2046
  /** Which corner the controls sit in.
2000
2047
 
2001
2048
  **Configurable because there is no safe default**, which is a collision
@@ -2098,26 +2145,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
2098
2145
  "pan-up-label"?: (HelixCanvas["panUpLabel"]) | undefined;
2099
2146
  /** The pan up button's label. */
2100
2147
  panUpLabel?: (HelixCanvas["panUpLabel"]) | undefined;
2101
- /** The hint shown when one finger swipes over a surface with
2102
- `gestures="cooperative"`. Absent is the family's own. */
2103
- "two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2104
- /** The hint shown when one finger swipes over a surface with
2105
- `gestures="cooperative"`. Absent is the family's own. */
2106
- twoFingerHintLabel?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2107
- /** The line shown while a surface with `gestures="activate"` has the
2108
- gestures. Absent is the family's own. */
2109
- "using-label"?: (HelixCanvas["usingLabel"]) | undefined;
2110
- /** The line shown while a surface with `gestures="activate"` has the
2111
- gestures. Absent is the family's own. */
2112
- usingLabel?: (HelixCanvas["usingLabel"]) | undefined;
2113
- /** The hint shown when the wheel scrolls past a surface with
2114
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2115
- elsewhere. Absent is the family's own. */
2116
- "wheel-hint-label"?: (HelixCanvas["wheelHintLabel"]) | undefined;
2117
- /** The hint shown when the wheel scrolls past a surface with
2118
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2119
- elsewhere. Absent is the family's own. */
2120
- wheelHintLabel?: (HelixCanvas["wheelHintLabel"]) | undefined;
2121
2148
  /** The zoom in button's label. */
2122
2149
  "zoom-in-label"?: (HelixCanvas["zoomInLabel"]) | undefined;
2123
2150
  /** The zoom in button's label. */
@@ -2126,6 +2153,12 @@ elsewhere. Absent is the family's own. */
2126
2153
  "zoom-out-label"?: (HelixCanvas["zoomOutLabel"]) | undefined;
2127
2154
  /** The zoom out button's label. */
2128
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;
2129
2162
  /** The text read with a card to say where its connections come from, with `{cards}`. */
2130
2163
  "comes-from-label"?: (HelixCanvas["comesFromLabel"]) | undefined;
2131
2164
  /** The text read with a card to say where its connections come from, with `{cards}`. */
@@ -2156,6 +2189,16 @@ this, so a reader hears the ends first and what the line says after. */
2156
2189
  Its own label, where it has one, is its description rather than part of
2157
2190
  this, so a reader hears the ends first and what the line says after. */
2158
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;
2159
2202
  /** The accessible name for the board. Required.
2160
2203
 
2161
2204
  A document has no name of its own in the format, and "Canvas" names the
@@ -2179,6 +2222,12 @@ as the list.
2179
2222
  The list is joined the way the page's language joins one, "Second and
2180
2223
  Third", rather than with a comma this component chose. */
2181
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;
2182
2231
  /** What screen readers hear after a key moves a card, with `{name}` for the
2183
2232
  card and `{x}` and `{y}` for where it now is, in the document's units.
2184
2233
 
@@ -2274,7 +2323,8 @@ A card is an article and a connection a button, and neither has a selected
2274
2323
  state for `aria-selected` to carry, so the state is said in words. */
2275
2324
  selectedLabel?: (HelixCanvas["selectedLabel"]) | undefined;
2276
2325
  /** What screen readers hear after the selection grows or shrinks, with
2277
- `{count}` for how many cards and connections are selected: by Space, a
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
2278
2328
  click with Shift, Command or Control, Command or Control with A, a box
2279
2329
  drawn across the board, or Escape.
2280
2330
 
@@ -2282,7 +2332,8 @@ A selection of one made by arriving on a card or clicking it is not said,
2282
2332
  since the card is. */
2283
2333
  "selection-label"?: (HelixCanvas["selectionLabel"]) | undefined;
2284
2334
  /** What screen readers hear after the selection grows or shrinks, with
2285
- `{count}` for how many cards and connections are selected: by Space, a
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
2286
2337
  click with Shift, Command or Control, Command or Control with A, a box
2287
2338
  drawn across the board, or Escape.
2288
2339
 
@@ -2320,11 +2371,25 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
2320
2371
  see the board is told by the color; this is how a reader who cannot is
2321
2372
  told the same. A tone left out is not read. */
2322
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;
2323
2388
  /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2324
- zoom as a percentage, written the way the page's language writes one. */
2389
+ zoom as a percentage, written the way the element's locale writes one. */
2325
2390
  "zoomed-label"?: (HelixCanvas["zoomedLabel"]) | undefined;
2326
2391
  /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2327
- zoom as a percentage, written the way the page's language writes one. */
2392
+ zoom as a percentage, written the way the element's locale writes one. */
2328
2393
  zoomedLabel?: (HelixCanvas["zoomedLabel"]) | undefined;
2329
2394
  /** The board's current view: the document's point at the middle of the view,
2330
2395
  and the zoom.
@@ -3062,9 +3127,8 @@ nothing for `them`. */
3062
3127
  "failed-label"?: (HelixChatMessage["failedLabel"]) | undefined;
3063
3128
  /** Label for a message that did not send. */
3064
3129
  failedLabel?: (HelixChatMessage["failedLabel"]) | undefined;
3065
- /** Locale for the timestamp.
3066
-
3067
- 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. */
3068
3132
  locale?: (HelixChatMessage["locale"]) | undefined;
3069
3133
  /** Label for the retry button on a failed message. */
3070
3134
  "retry-label"?: (HelixChatMessage["retryLabel"]) | undefined;
@@ -3152,6 +3216,24 @@ set.
3152
3216
  attribute could not say that: it is true by being there, whatever it holds,
3153
3217
  so a default of true had no attribute that turned it off. */
3154
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;
3155
3237
  /** Whether there are older turns to load, and whether they are loading.
3156
3238
 
3157
3239
  `more` makes reaching the top fire `helix-history`, once per arrival;
@@ -3268,18 +3350,22 @@ browser's message. */
3268
3350
  required?: (HelixCheckboxGroup["required"]) | undefined;
3269
3351
  /** The message shown when the field is required and empty.
3270
3352
 
3271
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3272
- set and the browser's own on a text field, which the browser writes in
3273
- 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,
3274
3358
  and this one was the English a form in another language still spoke in
3275
3359
  the bubble it raises on submit: `feedback` replaces the message under
3276
3360
  the field and does not reach that one. */
3277
3361
  "value-missing-message"?: (HelixCheckboxGroup["valueMissingMessage"]) | undefined;
3278
3362
  /** The message shown when the field is required and empty.
3279
3363
 
3280
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3281
- set and the browser's own on a text field, which the browser writes in
3282
- 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,
3283
3369
  and this one was the English a form in another language still spoke in
3284
3370
  the bubble it raises on submit: `feedback` replaces the message under
3285
3371
  the field and does not reach that one. */
@@ -3426,18 +3512,22 @@ browser's message. */
3426
3512
  required?: (HelixCheckbox["required"]) | undefined;
3427
3513
  /** The message shown when the field is required and empty.
3428
3514
 
3429
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3430
- set and the browser's own on a text field, which the browser writes in
3431
- 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,
3432
3520
  and this one was the English a form in another language still spoke in
3433
3521
  the bubble it raises on submit: `feedback` replaces the message under
3434
3522
  the field and does not reach that one. */
3435
3523
  "value-missing-message"?: (HelixCheckbox["valueMissingMessage"]) | undefined;
3436
3524
  /** The message shown when the field is required and empty.
3437
3525
 
3438
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3439
- set and the browser's own on a text field, which the browser writes in
3440
- 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,
3441
3531
  and this one was the English a form in another language still spoke in
3442
3532
  the bubble it raises on submit: `feedback` replaces the message under
3443
3533
  the field and does not reach that one. */
@@ -3508,15 +3598,21 @@ unwrapped, since a wrapped line would take one number and several rows. */
3508
3598
  /** The copy button's name and tooltip text before a copy.
3509
3599
 
3510
3600
  Where the block has a name, the button says it too, such as "Copy code,
3511
- app.ts", so each copy button on a page with several blocks is told apart.
3512
- 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. */
3513
3603
  "copy-label"?: (HelixCodeBlock["copyLabel"]) | undefined;
3514
3604
  /** The copy button's name and tooltip text before a copy.
3515
3605
 
3516
3606
  Where the block has a name, the button says it too, such as "Copy code,
3517
- app.ts", so each copy button on a page with several blocks is told apart.
3518
- 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. */
3519
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;
3520
3616
  /** Whether the content is a unified diff, drawn as the lines it changed.
3521
3617
 
3522
3618
  Reflected, because the stylesheet paints a diff differently from code, and
@@ -3717,18 +3813,22 @@ browser's message. */
3717
3813
  required?: (HelixColorInput["required"]) | undefined;
3718
3814
  /** The message shown when the field is required and empty.
3719
3815
 
3720
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3721
- set and the browser's own on a text field, which the browser writes in
3722
- 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,
3723
3821
  and this one was the English a form in another language still spoke in
3724
3822
  the bubble it raises on submit: `feedback` replaces the message under
3725
3823
  the field and does not reach that one. */
3726
3824
  "value-missing-message"?: (HelixColorInput["valueMissingMessage"]) | undefined;
3727
3825
  /** The message shown when the field is required and empty.
3728
3826
 
3729
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3730
- set and the browser's own on a text field, which the browser writes in
3731
- 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,
3732
3832
  and this one was the English a form in another language still spoke in
3733
3833
  the bubble it raises on submit: `feedback` replaces the message under
3734
3834
  the field and does not reach that one. */
@@ -3790,6 +3890,14 @@ Date Input and Time Input. */
3790
3890
  readOnly?: (HelixColorInput["readOnly"]) | undefined;
3791
3891
  /** Colors offered under the picker, as a comma-separated list. */
3792
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;
3793
3901
  /** Accessible name for the control that opens the panel. */
3794
3902
  "trigger-label"?: (HelixColorInput["triggerLabel"]) | undefined;
3795
3903
  /** Accessible name for the control that opens the panel. */
@@ -4139,6 +4247,22 @@ into. */
4139
4247
  "saturation-label"?: (HelixColorPicker["saturationLabel"]) | undefined;
4140
4248
  /** What the square's horizontal ramp is called. */
4141
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;
4142
4266
  /** Colors offered under the picker, as a comma-separated list. */
4143
4267
  swatches?: (HelixColorPicker["swatches"]) | undefined;
4144
4268
  /** What the group holding the eyedropper and the syntax toggle is called. */
@@ -4153,13 +4277,15 @@ into. */
4153
4277
 
4154
4278
  **Every sentence a control raises in the browser's bubble is a property**,
4155
4279
  named for the validity flag it reports, so a form in another language
4156
- 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. */
4157
4282
  "value-missing-message"?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4158
4283
  /** The message shown when a color is required and none is chosen.
4159
4284
 
4160
4285
  **Every sentence a control raises in the browser's bubble is a property**,
4161
4286
  named for the validity flag it reports, so a form in another language
4162
- 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. */
4163
4289
  valueMissingMessage?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4164
4290
  /** Draws the hue as a wheel around the square, in place of the hue ramp, as
4165
4291
  React Aria's ColorWheel sits round its ColorArea.
@@ -4270,6 +4396,12 @@ as `+3`, does not say what it does. */
4270
4396
  "max-tags"?: (HelixCombobox["maxTags"] | `${number}`) | undefined;
4271
4397
  /** How many tokens to show before the rest become a count. */
4272
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;
4273
4405
  /** The value the control starts with. A form reset returns it to this value,
4274
4406
  and to the `value` attribute where this one is not written, as a native
4275
4407
  control resets to the `value` it declares. */
@@ -4299,18 +4431,22 @@ browser's message. */
4299
4431
  required?: (HelixCombobox["required"]) | undefined;
4300
4432
  /** The message shown when the field is required and empty.
4301
4433
 
4302
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4303
- set and the browser's own on a text field, which the browser writes in
4304
- 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,
4305
4439
  and this one was the English a form in another language still spoke in
4306
4440
  the bubble it raises on submit: `feedback` replaces the message under
4307
4441
  the field and does not reach that one. */
4308
4442
  "value-missing-message"?: (HelixCombobox["valueMissingMessage"]) | undefined;
4309
4443
  /** The message shown when the field is required and empty.
4310
4444
 
4311
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4312
- set and the browser's own on a text field, which the browser writes in
4313
- 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,
4314
4450
  and this one was the English a form in another language still spoke in
4315
4451
  the bubble it raises on submit: `feedback` replaces the message under
4316
4452
  the field and does not reach that one. */
@@ -4355,9 +4491,15 @@ it is offered next to near misses too: a reader typing "Ruby on Rails" with
4355
4491
  halfway through. The arrow keys reach it after the last option, and Enter
4356
4492
  on it adds what was typed. */
4357
4493
  creatable?: (HelixCombobox["creatable"]) | undefined;
4358
- /** 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. */
4359
4498
  "create-label"?: (HelixCombobox["createLabel"]) | undefined;
4360
- /** 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. */
4361
4503
  createLabel?: (HelixCombobox["createLabel"]) | undefined;
4362
4504
  /** Text shown when the filter hides every option. */
4363
4505
  "empty-text"?: (HelixCombobox["emptyText"]) | undefined;
@@ -4402,6 +4544,10 @@ message belongs. */
4402
4544
  "loading-text"?: (HelixCombobox["loadingText"]) | undefined;
4403
4545
  /** Text the list shows while the options load. */
4404
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;
4405
4551
  /** Whether more than one option can be chosen.
4406
4552
 
4407
4553
  The list already does the work: `value` comes apart on commas, a press
@@ -4460,19 +4606,21 @@ filled in.
4460
4606
  **The name goes in**, so a row of them is heard as which one each
4461
4607
  removes rather than as "Remove" said once per chosen option. */
4462
4608
  removeLabel?: (HelixCombobox["removeLabel"]) | undefined;
4463
- /** What a screen reader hears when typing leaves one option. `{count}` is
4464
- 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. */
4465
4611
  "result-label"?: (HelixCombobox["resultLabel"]) | undefined;
4466
- /** What a screen reader hears when typing leaves one option. `{count}` is
4467
- 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. */
4468
4614
  resultLabel?: (HelixCombobox["resultLabel"]) | undefined;
4469
- /** What a screen reader hears when typing leaves any other number of
4470
- options. `{count}` is the count, and `Intl.PluralRules` picks between the
4471
- 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}}`. */
4472
4619
  "results-label"?: (HelixCombobox["resultsLabel"]) | undefined;
4473
- /** What a screen reader hears when typing leaves any other number of
4474
- options. `{count}` is the count, and `Intl.PluralRules` picks between the
4475
- 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}}`. */
4476
4624
  resultsLabel?: (HelixCombobox["resultsLabel"]) | undefined;
4477
4625
  /** What VoiceOver hears for a chosen option, as the highlight reaches it and
4478
4626
  once it is chosen, on Apple devices. `{name}` is the option's words. */
@@ -4631,19 +4779,21 @@ some. Absent, `empty-text` shows. See Listbox's `no-results-text`. */
4631
4779
  noResultsText?: (HelixCommand["noResultsText"]) | undefined;
4632
4780
  /** The text shown in the filter field before anything is typed. */
4633
4781
  placeholder?: (HelixCommand["placeholder"]) | undefined;
4634
- /** What a screen reader hears when typing leaves one command. `{count}` is
4635
- 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. */
4636
4784
  "result-label"?: (HelixCommand["resultLabel"]) | undefined;
4637
- /** What a screen reader hears when typing leaves one command. `{count}` is
4638
- 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. */
4639
4787
  resultLabel?: (HelixCommand["resultLabel"]) | undefined;
4640
- /** What a screen reader hears when typing leaves any other number of
4641
- commands. `{count}` is the count, and `Intl.PluralRules` picks between the
4642
- 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}}`. */
4643
4792
  "results-label"?: (HelixCommand["resultsLabel"]) | undefined;
4644
- /** What a screen reader hears when typing leaves any other number of
4645
- commands. `{count}` is the count, and `Intl.PluralRules` picks between the
4646
- 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}}`. */
4647
4797
  resultsLabel?: (HelixCommand["resultsLabel"]) | undefined;
4648
4798
  };
4649
4799
 
@@ -4821,6 +4971,9 @@ export type HelixDataTableElementEvent<E = Event> = TypedEvent<
4821
4971
  /** `helix-activate` event type */
4822
4972
  export type HelixDataTableHelixActivateElementEvent =
4823
4973
  HelixDataTableElementEvent<HelixActivateEvent>;
4974
+ /** `helix-before-reorder` event type */
4975
+ export type HelixDataTableHelixBeforeReorderElementEvent =
4976
+ HelixDataTableElementEvent<HelixBeforeReorderEvent>;
4824
4977
  /** `helix-expand` event type */
4825
4978
  export type HelixDataTableHelixExpandElementEvent =
4826
4979
  HelixDataTableElementEvent<HelixExpandEvent>;
@@ -4870,10 +5023,16 @@ say that without the component knowing what a row looks like. */
4870
5023
  "loading-text"?: (HelixDataTable["loadingText"]) | undefined;
4871
5024
  /** The text shown and announced while the rows load. */
4872
5025
  loadingText?: (HelixDataTable["loadingText"]) | undefined;
4873
- /** The word for an ascending sort, in `sorted-label`. */
5026
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
4874
5027
  "ascending-label"?: (HelixDataTable["ascendingLabel"]) | undefined;
4875
- /** The word for an ascending sort, in `sorted-label`. */
5028
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
4876
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;
4877
5036
  /** The field that holds a row's child rows, as an array. Set it, and `row-key`,
4878
5037
  and the grid becomes a tree grid.
4879
5038
 
@@ -4918,10 +5077,14 @@ is set. */
4918
5077
  "default-sort"?: (HelixDataTable["defaultSort"]) | undefined;
4919
5078
  /** The starting sort order, used until `sort` is set. */
4920
5079
  defaultSort?: (HelixDataTable["defaultSort"]) | undefined;
4921
- /** The word for a descending sort, in `sorted-label`. */
5080
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
4922
5081
  "descending-label"?: (HelixDataTable["descendingLabel"]) | undefined;
4923
- /** The word for a descending sort, in `sorted-label`. */
5082
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
4924
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;
4925
5088
  /** The estimated height of a row before it is drawn, in pixels.
4926
5089
 
4927
5090
  Only read while `windowed`, and a starting guess rather than a claim: a
@@ -4963,6 +5126,10 @@ when there are no more rows to load. */
4963
5126
  "load-more-label"?: (HelixDataTable["loadMoreLabel"]) | undefined;
4964
5127
  /** The words on the button in the `more` row. */
4965
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;
4966
5133
  /** Where filtering, sorting, and paging happen. `client` does them in the
4967
5134
  table, and `server` leaves them to your code.
4968
5135
 
@@ -4973,6 +5140,20 @@ the client cannot hold the data, so this is not an optimization, it is the
4973
5140
  only mode that works, and it is here from the start because adding it later
4974
5141
  inverts the data flow. */
4975
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;
4976
5157
  /** The built-in pagination's name for the button that moves forward a page. */
4977
5158
  "next-label"?: (HelixDataTable["nextLabel"]) | undefined;
4978
5159
  /** The built-in pagination's name for the button that moves forward a page. */
@@ -5024,6 +5205,12 @@ which is why the slot replaces this rather than sitting beside it. */
5024
5205
  "pagination-label"?: (HelixDataTable["paginationLabel"]) | undefined;
5025
5206
  /** The name of the built-in pagination's navigation landmark. */
5026
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;
5027
5214
  /** The built-in pagination's name for the button that moves back a page. */
5028
5215
  "previous-label"?: (HelixDataTable["previousLabel"]) | undefined;
5029
5216
  /** The built-in pagination's name for the button that moves back a page. */
@@ -5033,16 +5220,32 @@ which is why the slot replaces this rather than sitting beside it. */
5033
5220
  Each heading with a `field` gets a grip, dragged along the header or moved a
5034
5221
  place at a time with the arrow keys once it has focus. */
5035
5222
  reorderable?: (HelixDataTable["reorderable"]) | undefined;
5036
- /** 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. */
5037
5231
  "result-label"?: (HelixDataTable["resultLabel"]) | undefined;
5038
- /** 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. */
5039
5234
  resultLabel?: (HelixDataTable["resultLabel"]) | undefined;
5040
- /** What screen readers hear when a search leaves any other number of rows.
5041
- `{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}}`. */
5042
5239
  "results-label"?: (HelixDataTable["resultsLabel"]) | undefined;
5043
- /** What screen readers hear when a search leaves any other number of rows.
5044
- `{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}}`. */
5045
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;
5046
5249
  /** The field that identifies each row.
5047
5250
 
5048
5251
  **Needed before selection exists, not after.** Lit keys the rendered rows by
@@ -5087,10 +5290,14 @@ price of the shape. A reader's choice fires `helix-select` first, and
5087
5290
  refusing it leaves the selection as it was. */
5088
5291
  selected?: (HelixDataTable["selected"]) | undefined;
5089
5292
  /** What screen readers hear when the chosen rows change. `{count}` is how many
5090
- 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}}`. */
5091
5296
  "selected-label"?: (HelixDataTable["selectedLabel"]) | undefined;
5092
5297
  /** What screen readers hear when the chosen rows change. `{count}` is how many
5093
- 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}}`. */
5094
5301
  selectedLabel?: (HelixDataTable["selectedLabel"]) | undefined;
5095
5302
  /** The name of a row's checkbox. `{row}` is replaced with the row's value in
5096
5303
  the first column that has a field, or with its key. */
@@ -5106,10 +5313,14 @@ the event and set this to the order you chose. `default-sort` seeds an
5106
5313
  order this element then owns. */
5107
5314
  sort?: (HelixDataTable["sort"]) | undefined;
5108
5315
  /** What screen readers hear when the table is sorted. `{column}` is the
5109
- 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`. */
5110
5319
  "sorted-label"?: (HelixDataTable["sortedLabel"]) | undefined;
5111
5320
  /** What screen readers hear when the table is sorted. `{column}` is the
5112
- 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`. */
5113
5324
  sortedLabel?: (HelixDataTable["sortedLabel"]) | undefined;
5114
5325
  /** The number of rows in the whole result, for when the table cannot count
5115
5326
  them.
@@ -5156,6 +5367,8 @@ holds and reordering it under them is a mutation they did not ask for. */
5156
5367
  export type HelixDataTableVueEvents = {
5157
5368
  /** Fired after the page changes, with the new page as a string in `detail.value`. */
5158
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;
5159
5372
  /** Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds. */
5160
5373
  "helix-expand": HelixDataTableHelixExpandElementEvent;
5161
5374
  /** The search query is about to change. Cancelable: cancel it to keep the current query. */
@@ -5166,7 +5379,7 @@ export type HelixDataTableVueEvents = {
5166
5379
  "helix-load-more": HelixDataTableHelixLoadMoreElementEvent;
5167
5380
  /** Another page was requested. Cancelable: cancel it to stay on the current page. */
5168
5381
  "helix-navigate": HelixDataTableHelixNavigateElementEvent;
5169
- /** 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`. */
5170
5383
  "helix-reorder": HelixDataTableHelixReorderElementEvent;
5171
5384
  /** Fired after the columns move, with every field in the new order. */
5172
5385
  "helix-reordered": HelixDataTableHelixReorderedElementEvent;
@@ -5199,12 +5412,28 @@ export type HelixDateInputHelixBeforeOpenElementEvent =
5199
5412
  HelixDateInputElementEvent<HelixBeforeOpenEvent>;
5200
5413
 
5201
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;
5202
5423
  /** What a screen reader hears for a segment with nothing in it, which a
5203
5424
  sighted reader sees as dashes. */
5204
5425
  "empty-segment-label"?: (HelixDateInput["emptySegmentLabel"]) | undefined;
5205
5426
  /** What a screen reader hears for a segment with nothing in it, which a
5206
5427
  sighted reader sees as dashes. */
5207
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;
5208
5437
  /** Whether the field is a row of segments, one for each part of the date or
5209
5438
  time, in place of a line of text.
5210
5439
 
@@ -5286,6 +5515,12 @@ as `+3`, does not say what it does. */
5286
5515
  "max-tags"?: (HelixDateInput["maxTags"] | `${number}`) | undefined;
5287
5516
  /** How many tokens to show before the rest become a count. */
5288
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;
5289
5524
  /** The value the control starts with. A form reset returns it to this value,
5290
5525
  and to the `value` attribute where this one is not written, as a native
5291
5526
  control resets to the `value` it declares. */
@@ -5315,18 +5550,22 @@ browser's message. */
5315
5550
  required?: (HelixDateInput["required"]) | undefined;
5316
5551
  /** The message shown when the field is required and empty.
5317
5552
 
5318
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5319
- set and the browser's own on a text field, which the browser writes in
5320
- 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,
5321
5558
  and this one was the English a form in another language still spoke in
5322
5559
  the bubble it raises on submit: `feedback` replaces the message under
5323
5560
  the field and does not reach that one. */
5324
5561
  "value-missing-message"?: (HelixDateInput["valueMissingMessage"]) | undefined;
5325
5562
  /** The message shown when the field is required and empty.
5326
5563
 
5327
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5328
- set and the browser's own on a text field, which the browser writes in
5329
- 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,
5330
5569
  and this one was the English a form in another language still spoke in
5331
5570
  the bubble it raises on submit: `feedback` replaces the message under
5332
5571
  the field and does not reach that one. */
@@ -5337,6 +5576,15 @@ Empty leaves the attribute off, which is the browser's default and is what
5337
5576
  lets autofill work at all: hardcoding `off` here means a birthday or a
5338
5577
  postal code can never be filled in for a reader. */
5339
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;
5340
5588
  /** The name of the calendar's grid of days, read by screen readers. */
5341
5589
  "calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
5342
5590
  /** The name of the calendar's grid of days, read by screen readers. */
@@ -5475,14 +5723,14 @@ window has no room for that width it shows one month until there is. */
5475
5723
  /** The message shown when a range holds more than two dates.
5476
5724
 
5477
5725
  **Every sentence a control raises in the browser's bubble is a property**,
5478
- so a form in another language speaks it. Absent is the control's own
5479
- 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. */
5480
5728
  "range-length-message"?: (HelixDateInput["rangeLengthMessage"]) | undefined;
5481
5729
  /** The message shown when a range holds more than two dates.
5482
5730
 
5483
5731
  **Every sentence a control raises in the browser's bubble is a property**,
5484
- so a form in another language speaks it. Absent is the control's own
5485
- 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. */
5486
5734
  rangeLengthMessage?: (HelixDateInput["rangeLengthMessage"]) | undefined;
5487
5735
  /** The message shown when a date is after `max`. `{max}` is replaced with
5488
5736
  `max`, written the way the field writes dates. */
@@ -5643,14 +5891,28 @@ a reset should return to. */
5643
5891
 
5644
5892
  **Every sentence a control raises in the browser's bubble is a property**,
5645
5893
  named for the validity flag it reports, so a form in another language
5646
- 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. */
5647
5897
  "bad-input-message"?: (HelixDatePicker["badInputMessage"]) | undefined;
5648
5898
  /** The validation message for a value that is not a date.
5649
5899
 
5650
5900
  **Every sentence a control raises in the browser's bubble is a property**,
5651
5901
  named for the validity flag it reports, so a form in another language
5652
- 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. */
5653
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;
5654
5916
  /** The month to open on when `month` is not set. */
5655
5917
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
5656
5918
  /** The month to open on when `month` is not set. */
@@ -6099,6 +6361,12 @@ interface. */
6099
6361
  /** The close control's accessible name. Translate it with the rest of your
6100
6362
  interface. */
6101
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;
6102
6370
  /** Accessible name for the dialog. When it is empty, the heading in the
6103
6371
  `header` slot names the dialog. */
6104
6372
  label?: (HelixDialog["label"]) | undefined;
@@ -6230,8 +6498,8 @@ words and is already written. */
6230
6498
  /** The locale the chart's own numbers are written in: its axis, its
6231
6499
  percentages and its totals, such as `de` for `1.240` and `32 %`.
6232
6500
 
6233
- Absent uses the runtime's own. The table's cells are shown as the table
6234
- 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. */
6235
6503
  locale?: (HelixDonutChart["locale"]) | undefined;
6236
6504
  /** Where a reading the keys moved to stands among the readings, said after
6237
6505
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -6396,6 +6664,12 @@ interface. */
6396
6664
  /** The close control's accessible name. Translate it with the rest of your
6397
6665
  interface. */
6398
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;
6399
6673
  /** Accessible name for the panel. When it is empty, the heading in the
6400
6674
  `header` slot names the panel. */
6401
6675
  label?: (HelixDrawer["label"]) | undefined;
@@ -6597,18 +6871,22 @@ browser's message. */
6597
6871
  required?: (HelixFileInput["required"]) | undefined;
6598
6872
  /** The message shown when the field is required and empty.
6599
6873
 
6600
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6601
- set and the browser's own on a text field, which the browser writes in
6602
- 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,
6603
6879
  and this one was the English a form in another language still spoke in
6604
6880
  the bubble it raises on submit: `feedback` replaces the message under
6605
6881
  the field and does not reach that one. */
6606
6882
  "value-missing-message"?: (HelixFileInput["valueMissingMessage"]) | undefined;
6607
6883
  /** The message shown when the field is required and empty.
6608
6884
 
6609
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6610
- set and the browser's own on a text field, which the browser writes in
6611
- 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,
6612
6890
  and this one was the English a form in another language still spoke in
6613
6891
  the bubble it raises on submit: `feedback` replaces the message under
6614
6892
  the field and does not reach that one. */
@@ -6624,14 +6902,20 @@ filter is the only check the platform makes and a drop never meets it. */
6624
6902
  /** What a reader hears when a drop or a paste adds files, with `{names}` and
6625
6903
  `{count}` filled in. */
6626
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;
6627
6911
  /** Which camera or microphone a mobile picker should offer, if any. */
6628
6912
  capture?: (HelixFileInput["capture"]) | undefined;
6629
6913
  /** Whether the picker chooses a folder, and the field takes every file in
6630
6914
  it. The platform's `webkitdirectory`. */
6631
6915
  directory?: (HelixFileInput["directory"]) | undefined;
6632
- /** Language tag the sizes are written in.
6633
-
6634
- 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. */
6635
6919
  locale?: (HelixFileInput["locale"]) | undefined;
6636
6920
  /** The most files the field holds, under `multiple`. Files past it are
6637
6921
  refused. */
@@ -6747,14 +7031,22 @@ export type HelixFilterChipVueProps = {
6747
7031
  `attribute` is spelled out because Lit lowercases a property name to
6748
7032
  derive one rather than dash-casing it, so this would otherwise be
6749
7033
  reachable only as `dismisslabel`, which nobody would guess and no linter
6750
- 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. */
6751
7039
  "dismiss-label"?: (HelixFilterChip["dismissLabel"]) | undefined;
6752
7040
  /** The dismiss control's label, read by screen readers.
6753
7041
 
6754
7042
  `attribute` is spelled out because Lit lowercases a property name to
6755
7043
  derive one rather than dash-casing it, so this would otherwise be
6756
7044
  reachable only as `dismisslabel`, which nobody would guess and no linter
6757
- 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. */
6758
7050
  dismissLabel?: (HelixFilterChip["dismissLabel"]) | undefined;
6759
7051
  /** The name of the field the filter is on, as shown on the chip.
6760
7052
 
@@ -6959,6 +7251,12 @@ as `+3`, does not say what it does. */
6959
7251
  "max-tags"?: (HelixFilterInput["maxTags"] | `${number}`) | undefined;
6960
7252
  /** How many tokens to show before the rest become a count. */
6961
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;
6962
7260
  /** The value the control starts with. A form reset returns it to this value,
6963
7261
  and to the `value` attribute where this one is not written, as a native
6964
7262
  control resets to the `value` it declares. */
@@ -6988,18 +7286,22 @@ browser's message. */
6988
7286
  required?: (HelixFilterInput["required"]) | undefined;
6989
7287
  /** The message shown when the field is required and empty.
6990
7288
 
6991
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6992
- set and the browser's own on a text field, which the browser writes in
6993
- 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,
6994
7294
  and this one was the English a form in another language still spoke in
6995
7295
  the bubble it raises on submit: `feedback` replaces the message under
6996
7296
  the field and does not reach that one. */
6997
7297
  "value-missing-message"?: (HelixFilterInput["valueMissingMessage"]) | undefined;
6998
7298
  /** The message shown when the field is required and empty.
6999
7299
 
7000
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7001
- set and the browser's own on a text field, which the browser writes in
7002
- 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,
7003
7305
  and this one was the English a form in another language still spoke in
7004
7306
  the bubble it raises on submit: `feedback` replaces the message under
7005
7307
  the field and does not reach that one. */
@@ -7029,13 +7331,21 @@ what you slot and you narrow it. */
7029
7331
 
7030
7332
  Not a label: it goes when typing starts. */
7031
7333
  placeholder?: (HelixFilterInput["placeholder"]) | undefined;
7032
- /** 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. */
7033
7336
  "suggestion-label"?: (HelixFilterInput["suggestionLabel"]) | undefined;
7034
- /** 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. */
7035
7339
  suggestionLabel?: (HelixFilterInput["suggestionLabel"]) | undefined;
7036
- /** 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}}`. */
7037
7344
  "suggestions-label"?: (HelixFilterInput["suggestionsLabel"]) | undefined;
7038
- /** 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}}`. */
7039
7349
  suggestionsLabel?: (HelixFilterInput["suggestionsLabel"]) | undefined;
7040
7350
  /** Whether the control is disabled and cannot be used.
7041
7351
 
@@ -7185,6 +7495,14 @@ each new line above the one before. */
7185
7495
  export type HelixFlexVueEvents = {};
7186
7496
 
7187
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;
7188
7506
  /** The timestamp, in any format `Date` can parse.
7189
7507
 
7190
7508
  An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -7331,12 +7649,6 @@ export type HelixGraphHelixGraphZoomElementEvent =
7331
7649
  HelixGraphElementEvent<HelixGraphZoomEvent>;
7332
7650
 
7333
7651
  export type HelixGraphVueProps = {
7334
- /** The hint shown when a surface waiting to be pressed is scrolled or
7335
- swiped over, with `gestures="activate"`. Absent is the family's own. */
7336
- "activate-hint-label"?: (HelixGraph["activateHintLabel"]) | undefined;
7337
- /** The hint shown when a surface waiting to be pressed is scrolled or
7338
- swiped over, with `gestures="activate"`. Absent is the family's own. */
7339
- activateHintLabel?: (HelixGraph["activateHintLabel"]) | undefined;
7340
7652
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
7341
7653
  `none`. A family can add words of its own.
7342
7654
 
@@ -7359,20 +7671,6 @@ of the frame. The
7359
7671
  stylesheet lays the cluster out by which buttons are in it rather than by
7360
7672
  this attribute, so the two defaults need no rule each. */
7361
7673
  controls?: (HelixGraph["controls"]) | undefined;
7362
- /** The name of the group of controls, read by screen readers.
7363
-
7364
- Absent is the family's own name for it, "Map controls" or "Board
7365
- controls", which names what the controls drive rather than the
7366
- mechanism. Written here to say it in another language, which every other
7367
- string this surface speaks already allowed and this one did not. */
7368
- "controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
7369
- /** The name of the group of controls, read by screen readers.
7370
-
7371
- Absent is the family's own name for it, "Map controls" or "Board
7372
- controls", which names what the controls drive rather than the
7373
- mechanism. Written here to say it in another language, which every other
7374
- string this surface speaks already allowed and this one did not. */
7375
- controlsLabel?: (HelixGraph["controlsLabel"]) | undefined;
7376
7674
  /** Which corner the controls sit in.
7377
7675
 
7378
7676
  **Configurable because there is no safe default**, which is a collision
@@ -7475,26 +7773,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
7475
7773
  "pan-up-label"?: (HelixGraph["panUpLabel"]) | undefined;
7476
7774
  /** The pan up button's label. */
7477
7775
  panUpLabel?: (HelixGraph["panUpLabel"]) | undefined;
7478
- /** The hint shown when one finger swipes over a surface with
7479
- `gestures="cooperative"`. Absent is the family's own. */
7480
- "two-finger-hint-label"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7481
- /** The hint shown when one finger swipes over a surface with
7482
- `gestures="cooperative"`. Absent is the family's own. */
7483
- twoFingerHintLabel?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7484
- /** The line shown while a surface with `gestures="activate"` has the
7485
- gestures. Absent is the family's own. */
7486
- "using-label"?: (HelixGraph["usingLabel"]) | undefined;
7487
- /** The line shown while a surface with `gestures="activate"` has the
7488
- gestures. Absent is the family's own. */
7489
- usingLabel?: (HelixGraph["usingLabel"]) | undefined;
7490
- /** The hint shown when the wheel scrolls past a surface with
7491
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7492
- elsewhere. Absent is the family's own. */
7493
- "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
7494
- /** The hint shown when the wheel scrolls past a surface with
7495
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7496
- elsewhere. Absent is the family's own. */
7497
- wheelHintLabel?: (HelixGraph["wheelHintLabel"]) | undefined;
7498
7776
  /** The zoom in button's label. */
7499
7777
  "zoom-in-label"?: (HelixGraph["zoomInLabel"]) | undefined;
7500
7778
  /** The zoom in button's label. */
@@ -7520,13 +7798,33 @@ Ignored once `active` is written. */
7520
7798
 
7521
7799
  Ignored once `active` is written. */
7522
7800
  defaultActive?: (HelixGraph["defaultActive"]) | undefined;
7523
- /** 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. */
7524
7815
  "count-label"?: (HelixGraph["countLabel"]) | undefined;
7525
- /** 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. */
7526
7818
  countLabel?: (HelixGraph["countLabel"]) | undefined;
7527
7819
  /** How many links from the selected note to show, for its local graph. Unset
7528
7820
  shows every note. The list holds what the drawing shows. */
7529
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;
7530
7828
  /** The graph's name, read by screen readers, such as "Research notes".
7531
7829
  Required. */
7532
7830
  label?: (HelixGraph["label"]) | undefined;
@@ -7549,6 +7847,22 @@ or hides its notes. Drawn where the notes have two groups or more. */
7549
7847
  "links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
7550
7848
  /** How a note that links to the selected one is described, with `{note}`. */
7551
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;
7552
7866
  /** Leaves the search and the list out of the frame, behind a button among
7553
7867
  its controls that opens them over the drawing. For a graph shown large,
7554
7868
  such as at the top of a page, where the drawing takes the whole frame. */
@@ -7569,6 +7883,28 @@ such as at the top of a page, where the drawing takes the whole frame. */
7569
7883
  "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
7570
7884
  /** How the selected note is described in the list. */
7571
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;
7572
7908
  /** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
7573
7909
  hiddenGroups?: (HelixGraph["hiddenGroups"]) | undefined;
7574
7910
  /** The links between notes, each from `source` to `target`. A property, never an attribute. */
@@ -7586,7 +7922,7 @@ export type HelixGraphVueEvents = {
7586
7922
  "helix-graph-filter": HelixGraphHelixGraphFilterElementEvent;
7587
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. */
7588
7924
  "helix-graph-layout": HelixGraphHelixGraphLayoutElementEvent;
7589
- /** 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()`. */
7590
7926
  "helix-graph-pan": HelixGraphHelixGraphPanElementEvent;
7591
7927
  /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
7592
7928
  "helix-graph-part-change": HelixGraphHelixGraphPartChangeElementEvent;
@@ -7594,7 +7930,7 @@ export type HelixGraphVueEvents = {
7594
7930
  "helix-graph-ready": HelixGraphHelixGraphReadyElementEvent;
7595
7931
  /** Something passed between two notes, sent by `signal()`. Used by `connectGraph`; pages do not need to listen for it. */
7596
7932
  "helix-graph-signal": HelixGraphHelixGraphSignalElementEvent;
7597
- /** 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()`. */
7598
7934
  "helix-graph-zoom": HelixGraphHelixGraphZoomElementEvent;
7599
7935
  };
7600
7936
 
@@ -7712,8 +8048,8 @@ words and is already written. */
7712
8048
  /** The locale the chart's own numbers are written in: its axis, its
7713
8049
  percentages and its totals, such as `de` for `1.240` and `32 %`.
7714
8050
 
7715
- Absent uses the runtime's own. The table's cells are shown as the table
7716
- 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. */
7717
8053
  locale?: (HelixHeatmap["locale"]) | undefined;
7718
8054
  /** Where a reading the keys moved to stands among the readings, said after
7719
8055
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -7731,9 +8067,11 @@ Set it to the words of the page's language, such as `{position} von
7731
8067
  {count}`, or to nothing to say no position. A slice or a series a
7732
8068
  legend hid is not counted. */
7733
8069
  positionLabel?: (HelixHeatmap["positionLabel"]) | undefined;
7734
- /** The word the `overview` puts before the busiest reading. */
8070
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
8071
+ `overview-label`. */
7735
8072
  "busiest-label"?: (HelixHeatmap["busiestLabel"]) | undefined;
7736
- /** The word the `overview` puts before the busiest reading. */
8073
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
8074
+ `overview-label`. */
7737
8075
  busiestLabel?: (HelixHeatmap["busiestLabel"]) | undefined;
7738
8076
  /** Shown when the table has no readings in it.
7739
8077
 
@@ -7784,6 +8122,16 @@ plan around.
7784
8122
  Zero turns the dropping off altogether, which is right for a strip in a
7785
8123
  container that cannot get narrow. */
7786
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;
7787
8135
  /** How many rows the strip has.
7788
8136
 
7789
8137
  `1` is a status strip and `7` is a calendar week, which are the two readings
@@ -7800,11 +8148,15 @@ nothing. */
7800
8148
  where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
7801
8149
  nothing. */
7802
8150
  selectedLabel?: (HelixHeatmap["selectedLabel"]) | undefined;
7803
- /** What the `selection` part says after the selection changes, with `{count}` for
7804
- how many cells are selected. */
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}}`. */
7805
8155
  "selection-label"?: (HelixHeatmap["selectionLabel"]) | undefined;
7806
- /** What the `selection` part says after the selection changes, with `{count}` for
7807
- 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}}`. */
7808
8160
  selectionLabel?: (HelixHeatmap["selectionLabel"]) | undefined;
7809
8161
  /** How many cells a reader can select: `single` or `multiple`.
7810
8162
 
@@ -7814,6 +8166,12 @@ Absent selects nothing, and a press or Space does what it did. */
7814
8166
 
7815
8167
  Absent selects nothing, and a press or Space does what it did. */
7816
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;
7817
8175
  /** Lower bounds for the tone buckets, in the order the tones are given.
7818
8176
 
7819
8177
  `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
@@ -7832,9 +8190,11 @@ compare two hues at all. `tones="surface info accent success primary"` for a
7832
8190
  commit count is five unrelated hues for five amounts, which is confetti with
7833
8191
  no order in it. */
7834
8192
  tones?: (HelixHeatmap["tones"]) | undefined;
7835
- /** 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`. */
7836
8195
  "total-label"?: (HelixHeatmap["totalLabel"]) | undefined;
7837
- /** 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`. */
7838
8198
  totalLabel?: (HelixHeatmap["totalLabel"]) | undefined;
7839
8199
  /** The selected cells, by the names their rows have in the table, such as
7840
8200
  `2026-06-11`, separated by commas.
@@ -7969,7 +8329,11 @@ not text.
7969
8329
 
7970
8330
  Lives here rather than only on `IconButton` so the two share one render.
7971
8331
  An icon-only button without it is a control a screen reader announces as
7972
- "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. */
7973
8337
  label?: (HelixIconButton["label"]) | undefined;
7974
8338
  /** Whether the action the button started is still running.
7975
8339
 
@@ -8285,18 +8649,22 @@ browser's message. */
8285
8649
  required?: (HelixInput["required"]) | undefined;
8286
8650
  /** The message shown when the field is required and empty.
8287
8651
 
8288
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8289
- set and the browser's own on a text field, which the browser writes in
8290
- 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,
8291
8657
  and this one was the English a form in another language still spoke in
8292
8658
  the bubble it raises on submit: `feedback` replaces the message under
8293
8659
  the field and does not reach that one. */
8294
8660
  "value-missing-message"?: (HelixInput["valueMissingMessage"]) | undefined;
8295
8661
  /** The message shown when the field is required and empty.
8296
8662
 
8297
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8298
- set and the browser's own on a text field, which the browser writes in
8299
- 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,
8300
8668
  and this one was the English a form in another language still spoke in
8301
8669
  the bubble it raises on submit: `feedback` replaces the message under
8302
8670
  the field and does not reach that one. */
@@ -8773,6 +9141,10 @@ interface. */
8773
9141
  /** The close control's accessible name. Translate it with the rest of your
8774
9142
  interface. */
8775
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;
8776
9148
  /** How long the user can be idle before the header and footer hide, in
8777
9149
  milliseconds.
8778
9150
 
@@ -8806,10 +9178,10 @@ keep the chrome up is the consumer's to decide with this. */
8806
9178
  /** The previous control's accessible name. */
8807
9179
  previousLabel?: (HelixLightbox["previousLabel"]) | undefined;
8808
9180
  /** The name of an item with no `label` of its own, with `{index}` and
8809
- `{count}` filled in. */
9181
+ `{count}` filled in, written in the locale. */
8810
9182
  "slide-label"?: (HelixLightbox["slideLabel"]) | undefined;
8811
9183
  /** The name of an item with no `label` of its own, with `{index}` and
8812
- `{count}` filled in. */
9184
+ `{count}` filled in, written in the locale. */
8813
9185
  slideLabel?: (HelixLightbox["slideLabel"]) | undefined;
8814
9186
  /** The word screen readers announce in place of an item's role, set as
8815
9187
  `aria-roledescription`. Translate it with the rest of your text, or empty
@@ -8820,14 +9192,14 @@ it to leave the role as `group`. */
8820
9192
  it to leave the role as `group`. */
8821
9193
  slideRoleLabel?: (HelixLightbox["slideRoleLabel"]) | undefined;
8822
9194
  /** The status text that says which item is shown, with `{index}`, `{count}`
8823
- and the item's `{label}` filled in.
9195
+ and the item's `{label}` filled in, the numbers written in the locale.
8824
9196
 
8825
9197
  Announced rather than only drawn, because the picture changing under a
8826
9198
  reader who cannot see it is otherwise silent. A consumer who has their own
8827
9199
  counter in the chrome can empty this and say it themselves. */
8828
9200
  "status-label"?: (HelixLightbox["statusLabel"]) | undefined;
8829
9201
  /** The status text that says which item is shown, with `{index}`, `{count}`
8830
- and the item's `{label}` filled in.
9202
+ and the item's `{label}` filled in, the numbers written in the locale.
8831
9203
 
8832
9204
  Announced rather than only drawn, because the picture changing under a
8833
9205
  reader who cannot see it is otherwise silent. A consumer who has their own
@@ -8841,11 +9213,17 @@ counter in the chrome can empty this and say it themselves. */
8841
9213
  "zoom-out-label"?: (HelixLightbox["zoomOutLabel"]) | undefined;
8842
9214
  /** The zoom-out control's accessible name. */
8843
9215
  zoomOutLabel?: (HelixLightbox["zoomOutLabel"]) | undefined;
8844
- /** What the live region says once a reader has stopped zooming, with the
8845
- 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. */
8846
9221
  "zoom-status-label"?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8847
- /** What the live region says once a reader has stopped zooming, with the
8848
- 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. */
8849
9227
  zoomStatusLabel?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8850
9228
  };
8851
9229
 
@@ -8922,8 +9300,8 @@ words and is already written. */
8922
9300
  /** The locale the chart's own numbers are written in: its axis, its
8923
9301
  percentages and its totals, such as `de` for `1.240` and `32 %`.
8924
9302
 
8925
- Absent uses the runtime's own. The table's cells are shown as the table
8926
- 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. */
8927
9305
  locale?: (HelixLineChart["locale"]) | undefined;
8928
9306
  /** Where a reading the keys moved to stands among the readings, said after
8929
9307
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -9091,6 +9469,14 @@ Written by a list with `selection-mode` on every row it holds, and unset
9091
9469
  otherwise, which is how a row knows it is a row of a grid. No attribute:
9092
9470
  it is coordination between elements, as `Tag.focusable` is. */
9093
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;
9094
9480
  /** Whether the row is selected, in a list that selects.
9095
9481
 
9096
9482
  Written by the list from its own `value`, and unset where nothing can be
@@ -9111,6 +9497,12 @@ export type HelixListHelixActionElementEvent =
9111
9497
  /** `helix-before-change` event type */
9112
9498
  export type HelixListHelixBeforeChangeElementEvent =
9113
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>;
9114
9506
 
9115
9507
  export type HelixListVueProps = {
9116
9508
  /** Draws a line between rows. */
@@ -9130,6 +9522,16 @@ fact about the content, which `kind` carries on the headless tier, and
9130
9522
  A rail replaces the marker rather than joining it, so it applies to
9131
9523
  `unordered` too, where it numbers what a bullet did not. */
9132
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;
9133
9535
  /** The kind of list, which follows from the content.
9134
9536
 
9135
9537
  On the headless tier because it is meaning rather than decoration, the same
@@ -9153,6 +9555,29 @@ has to survive with the stylesheet turned off.
9153
9555
  kind?: (HelixList["kind"]) | undefined;
9154
9556
  /** The list's name, read by screen readers. */
9155
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;
9156
9581
  /** Numbers an ordered list downward, so the count falls row by row and ends at
9157
9582
  its last row, as `<ol reversed>` does. */
9158
9583
  reversed?: (HelixList["reversed"]) | undefined;
@@ -9199,6 +9624,10 @@ export type HelixListVueEvents = {
9199
9624
  "helix-action": HelixListHelixActionElementEvent;
9200
9625
  /** Fired before a press changes which rows are selected, with the `value` it would leave. Cancelable. */
9201
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;
9202
9631
  };
9203
9632
 
9204
9633
  /** `HelixListbox` component event */
@@ -9206,12 +9635,18 @@ export type HelixListboxElementEvent<E = Event> = TypedEvent<HelixListbox, E>;
9206
9635
  /** `helix-before-change` event type */
9207
9636
  export type HelixListboxHelixBeforeChangeElementEvent =
9208
9637
  HelixListboxElementEvent<HelixBeforeChangeEvent>;
9638
+ /** `helix-before-reorder` event type */
9639
+ export type HelixListboxHelixBeforeReorderElementEvent =
9640
+ HelixListboxElementEvent<HelixBeforeReorderEvent>;
9209
9641
  /** `helix-filter` event type */
9210
9642
  export type HelixListboxHelixFilterElementEvent =
9211
9643
  HelixListboxElementEvent<HelixFilterEvent>;
9212
9644
  /** `helix-load-more` event type */
9213
9645
  export type HelixListboxHelixLoadMoreElementEvent =
9214
9646
  HelixListboxElementEvent<HelixLoadMoreEvent>;
9647
+ /** `helix-reorder` event type */
9648
+ export type HelixListboxHelixReorderElementEvent =
9649
+ HelixListboxElementEvent<HelixReorderEvent>;
9215
9650
 
9216
9651
  export type HelixListboxVueProps = {
9217
9652
  /** The text shown and announced when there are no rows and none are loading. */
@@ -9257,18 +9692,22 @@ browser's message. */
9257
9692
  required?: (HelixListbox["required"]) | undefined;
9258
9693
  /** The message shown when the field is required and empty.
9259
9694
 
9260
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9261
- set and the browser's own on a text field, which the browser writes in
9262
- 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,
9263
9700
  and this one was the English a form in another language still spoke in
9264
9701
  the bubble it raises on submit: `feedback` replaces the message under
9265
9702
  the field and does not reach that one. */
9266
9703
  "value-missing-message"?: (HelixListbox["valueMissingMessage"]) | undefined;
9267
9704
  /** The message shown when the field is required and empty.
9268
9705
 
9269
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9270
- set and the browser's own on a text field, which the browser writes in
9271
- 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,
9272
9711
  and this one was the English a form in another language still spoke in
9273
9712
  the bubble it raises on submit: `feedback` replaces the message under
9274
9713
  the field and does not reach that one. */
@@ -9354,7 +9793,10 @@ By default a single-choice list chooses as the arrows move, as a radio
9354
9793
  group does. Select and Time Input set this on the list in their panel, so
9355
9794
  a reader can move through the options before closing the panel on one. */
9356
9795
  manual?: (HelixListbox["manual"]) | undefined;
9357
- /** 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. */
9358
9800
  multiple?: (HelixListbox["multiple"]) | undefined;
9359
9801
  /** The text shown when a filter hides every option of a list that has some.
9360
9802
 
@@ -9366,25 +9808,28 @@ matches what you typed" from "there is nothing here". */
9366
9808
  Absent, the list says `empty-text` in both cases. Set it to tell "nothing
9367
9809
  matches what you typed" from "there is nothing here". */
9368
9810
  noResultsText?: (HelixListbox["noResultsText"]) | undefined;
9369
- /** What a screen reader hears when a filter leaves one option. `{count}` is
9370
- 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. */
9371
9820
  "result-label"?: (HelixListbox["resultLabel"]) | undefined;
9372
- /** What a screen reader hears when a filter leaves one option. `{count}` is
9373
- 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. */
9374
9823
  resultLabel?: (HelixListbox["resultLabel"]) | undefined;
9375
- /** What a screen reader hears when a filter leaves any other number of
9376
- options. `{count}` is the count.
9377
-
9378
- **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
9379
- pair: a language with more forms than two picks the one for its `one` and
9380
- 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}}`. */
9381
9828
  "results-label"?: (HelixListbox["resultsLabel"]) | undefined;
9382
- /** What a screen reader hears when a filter leaves any other number of
9383
- options. `{count}` is the count.
9384
-
9385
- **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
9386
- pair: a language with more forms than two picks the one for its `one` and
9387
- 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}}`. */
9388
9833
  resultsLabel?: (HelixListbox["resultsLabel"]) | undefined;
9389
9834
  /** What VoiceOver hears as the highlight reaches a chosen option from the
9390
9835
  filter field, on Apple devices. `{name}` is the option's words. */
@@ -9453,10 +9898,14 @@ export type HelixListboxVueEvents = {
9453
9898
  change: HelixListboxElementEvent;
9454
9899
  /** Fired when the value is about to change, and cancelable. */
9455
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;
9456
9903
  /** Fired before the list is filtered, and cancelable. */
9457
9904
  "helix-filter": HelixListboxHelixFilterElementEvent;
9458
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. */
9459
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;
9460
9909
  /** Fired after the value changes. */
9461
9910
  input: HelixListboxElementEvent;
9462
9911
  };
@@ -9662,9 +10111,15 @@ a destination. */
9662
10111
  /** Marks the place as passed, such as a stop already visited. The marker is
9663
10112
  drawn muted, and its name is followed by `passed-label`. */
9664
10113
  passed?: (HelixMapMarker["passed"]) | undefined;
9665
- /** 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. */
9666
10118
  "passed-label"?: (HelixMapMarker["passedLabel"]) | undefined;
9667
- /** 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. */
9668
10123
  passedLabel?: (HelixMapMarker["passedLabel"]) | undefined;
9669
10124
  };
9670
10125
 
@@ -9882,12 +10337,6 @@ the container's edge is the map's. */
9882
10337
  shows the map through a blur, `frosted` blurs more, and `transparent` has
9883
10338
  no background. Your theme sets how see-through each one is. */
9884
10339
  material?: (HelixMap["material"]) | undefined;
9885
- /** The hint shown when a surface waiting to be pressed is scrolled or
9886
- swiped over, with `gestures="activate"`. Absent is the family's own. */
9887
- "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
9888
- /** The hint shown when a surface waiting to be pressed is scrolled or
9889
- swiped over, with `gestures="activate"`. Absent is the family's own. */
9890
- activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
9891
10340
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
9892
10341
  `none`. A family can add words of its own.
9893
10342
 
@@ -9910,20 +10359,6 @@ of the frame. The
9910
10359
  stylesheet lays the cluster out by which buttons are in it rather than by
9911
10360
  this attribute, so the two defaults need no rule each. */
9912
10361
  controls?: (HelixMap["controls"]) | undefined;
9913
- /** The name of the group of controls, read by screen readers.
9914
-
9915
- Absent is the family's own name for it, "Map controls" or "Board
9916
- controls", which names what the controls drive rather than the
9917
- mechanism. Written here to say it in another language, which every other
9918
- string this surface speaks already allowed and this one did not. */
9919
- "controls-label"?: (HelixMap["controlsLabel"]) | undefined;
9920
- /** The name of the group of controls, read by screen readers.
9921
-
9922
- Absent is the family's own name for it, "Map controls" or "Board
9923
- controls", which names what the controls drive rather than the
9924
- mechanism. Written here to say it in another language, which every other
9925
- string this surface speaks already allowed and this one did not. */
9926
- controlsLabel?: (HelixMap["controlsLabel"]) | undefined;
9927
10362
  /** Which corner the controls sit in.
9928
10363
 
9929
10364
  **Configurable because there is no safe default**, which is a collision
@@ -10026,26 +10461,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
10026
10461
  "pan-up-label"?: (HelixMap["panUpLabel"]) | undefined;
10027
10462
  /** The pan up button's label. */
10028
10463
  panUpLabel?: (HelixMap["panUpLabel"]) | undefined;
10029
- /** The hint shown when one finger swipes over a surface with
10030
- `gestures="cooperative"`. Absent is the family's own. */
10031
- "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
10032
- /** The hint shown when one finger swipes over a surface with
10033
- `gestures="cooperative"`. Absent is the family's own. */
10034
- twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
10035
- /** The line shown while a surface with `gestures="activate"` has the
10036
- gestures. Absent is the family's own. */
10037
- "using-label"?: (HelixMap["usingLabel"]) | undefined;
10038
- /** The line shown while a surface with `gestures="activate"` has the
10039
- gestures. Absent is the family's own. */
10040
- usingLabel?: (HelixMap["usingLabel"]) | undefined;
10041
- /** The hint shown when the wheel scrolls past a surface with
10042
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
10043
- elsewhere. Absent is the family's own. */
10044
- "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
10045
- /** The hint shown when the wheel scrolls past a surface with
10046
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
10047
- elsewhere. Absent is the family's own. */
10048
- wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
10049
10464
  /** The zoom in button's label. */
10050
10465
  "zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
10051
10466
  /** The zoom in button's label. */
@@ -10054,16 +10469,32 @@ elsewhere. Absent is the family's own. */
10054
10469
  "zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
10055
10470
  /** The zoom out button's label. */
10056
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;
10057
10478
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
10058
10479
  current, and the Face north button's needle turns with it. */
10059
10480
  bearing?: (HelixMap["bearing"]) | undefined;
10060
10481
  /** Combines markers that would overlap into one count. Counts split apart as
10061
10482
  the map zooms in, and pressing one zooms in to its places. */
10062
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;
10063
10490
  /** The Face north button's label. */
10064
10491
  "face-north-label"?: (HelixMap["faceNorthLabel"]) | undefined;
10065
10492
  /** The Face north button's label. */
10066
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;
10067
10498
  /** What screen readers hear when the map is tilted back to looking straight down. */
10068
10499
  "flat-label"?: (HelixMap["flatLabel"]) | undefined;
10069
10500
  /** What screen readers hear when the map is tilted back to looking straight down. */
@@ -10134,24 +10565,44 @@ above `0`. */
10134
10565
  /** The Standard map type's name. */
10135
10566
  standardLabel?: (HelixMap["standardLabel"]) | undefined;
10136
10567
  /** What screen readers hear when the map is tilted. `{degrees}` is the tilt
10137
- from looking straight down. */
10568
+ from looking straight down, written in the locale, and each language
10569
+ writes the forms it has. */
10138
10570
  "tilted-label"?: (HelixMap["tiltedLabel"]) | undefined;
10139
10571
  /** What screen readers hear when the map is tilted. `{degrees}` is the tilt
10140
- from looking straight down. */
10572
+ from looking straight down, written in the locale, and each language
10573
+ writes the forms it has. */
10141
10574
  tiltedLabel?: (HelixMap["tiltedLabel"]) | undefined;
10142
10575
  /** The 3D button's label. */
10143
10576
  "tilt-label"?: (HelixMap["tiltLabel"]) | undefined;
10144
10577
  /** The 3D button's label. */
10145
10578
  tiltLabel?: (HelixMap["tiltLabel"]) | undefined;
10146
10579
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
10147
- 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. */
10148
10582
  "turned-label"?: (HelixMap["turnedLabel"]) | undefined;
10149
10583
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
10150
- 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. */
10151
10586
  turnedLabel?: (HelixMap["turnedLabel"]) | undefined;
10152
- /** 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. */
10153
10603
  "zoomed-label"?: (HelixMap["zoomedLabel"]) | undefined;
10154
- /** 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. */
10155
10606
  zoomedLabel?: (HelixMap["zoomedLabel"]) | undefined;
10156
10607
  /** How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
10157
10608
  current, and the map says it after a zoom. */
@@ -10620,12 +11071,16 @@ no reader. */
10620
11071
  /** The words each band is said with under `live`, by its name, written as
10621
11072
  JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10622
11073
 
10623
- 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. */
10624
11077
  "band-labels"?: (HelixMeter["bandLabels"]) | undefined;
10625
11078
  /** The words each band is said with under `live`, by its name, written as
10626
11079
  JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10627
11080
 
10628
- 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. */
10629
11084
  bandLabels?: (HelixMeter["bandLabels"]) | undefined;
10630
11085
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
10631
11086
  Meter and ProgressBar take them: a unit, a currency, or a number of
@@ -10669,9 +11124,17 @@ For a meter whose value changes while it is on screen. Off by default,
10669
11124
  because a meter that reads a fixed level has nothing new to say. A meter
10670
11125
  with no bands says nothing. */
10671
11126
  live?: (HelixMeter["live"]) | undefined;
10672
- /** The locale the percentage is written in, such as `fr` for `72 %`.
10673
-
10674
- 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. */
10675
11138
  locale?: (HelixMeter["locale"]) | undefined;
10676
11139
  /** Top of the low band.
10677
11140
 
@@ -10847,10 +11310,9 @@ content, and which one is right depends on whether the rows are a list to
10847
11310
  scan or a set of things to act on. The reference this came from draws cards
10848
11311
  because every row in it has a control.
10849
11312
 
10850
- **On the row and not on the feed, because the row is the box being
10851
- separated.** A consumer wanting the whole feed carded says so once, in a
10852
- document rule on the element, rather than on every item: this is a styled
10853
- 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. */
10854
11316
  separation?: (HelixNotification["separation"]) | undefined;
10855
11317
  /** Whether the element shows a control that dismisses it. */
10856
11318
  dismissible?: (HelixNotification["dismissible"]) | undefined;
@@ -10859,14 +11321,22 @@ axis and a stylesheet is where it is set. */
10859
11321
  `attribute` is spelled out because Lit lowercases a property name to
10860
11322
  derive one rather than dash-casing it, so this would otherwise be
10861
11323
  reachable only as `dismisslabel`, which nobody would guess and no linter
10862
- 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. */
10863
11329
  "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
10864
11330
  /** The dismiss control's label, read by screen readers.
10865
11331
 
10866
11332
  `attribute` is spelled out because Lit lowercases a property name to
10867
11333
  derive one rather than dash-casing it, so this would otherwise be
10868
11334
  reachable only as `dismisslabel`, which nobody would guess and no linter
10869
- 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. */
10870
11340
  dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
10871
11341
  /** When it happened, as anything `Date` parses.
10872
11342
 
@@ -10932,6 +11402,17 @@ export type HelixNotificationsHelixReadElementEvent =
10932
11402
  HelixNotificationsElementEvent<HelixReadEvent>;
10933
11403
 
10934
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;
10935
11416
  /** The text shown and announced when there are no rows and none are loading. */
10936
11417
  "empty-text"?: (HelixNotifications["emptyText"]) | undefined;
10937
11418
  /** The text shown and announced when there are no rows and none are loading. */
@@ -10946,6 +11427,10 @@ say that without the component knowing what a row looks like. */
10946
11427
  "loading-text"?: (HelixNotifications["loadingText"]) | undefined;
10947
11428
  /** The text shown and announced while the rows load. */
10948
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;
10949
11434
  /** The feed's name, read by screen readers. */
10950
11435
  label?: (HelixNotifications["label"]) | undefined;
10951
11436
  /** What the feed says when a page of it could not be loaded, such as after a
@@ -11036,18 +11521,22 @@ browser's message. */
11036
11521
  required?: (HelixNumberInput["required"]) | undefined;
11037
11522
  /** The message shown when the field is required and empty.
11038
11523
 
11039
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
11040
- set and the browser's own on a text field, which the browser writes in
11041
- 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,
11042
11529
  and this one was the English a form in another language still spoke in
11043
11530
  the bubble it raises on submit: `feedback` replaces the message under
11044
11531
  the field and does not reach that one. */
11045
11532
  "value-missing-message"?: (HelixNumberInput["valueMissingMessage"]) | undefined;
11046
11533
  /** The message shown when the field is required and empty.
11047
11534
 
11048
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
11049
- set and the browser's own on a text field, which the browser writes in
11050
- 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,
11051
11540
  and this one was the English a form in another language still spoke in
11052
11541
  the bubble it raises on submit: `feedback` replaces the message under
11053
11542
  the field and does not reach that one. */
@@ -11065,7 +11554,8 @@ number.
11065
11554
  **Every sentence a control raises in the browser's bubble is a property**,
11066
11555
  named for the validity flag it reports, so a form in another language
11067
11556
  speaks it: `feedback` replaces the message under the field and does not
11068
- 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. */
11069
11559
  "bad-input-message"?: (HelixNumberInput["badInputMessage"]) | undefined;
11070
11560
  /** The message the browser shows when the field holds something that is not a
11071
11561
  number.
@@ -11073,7 +11563,8 @@ number.
11073
11563
  **Every sentence a control raises in the browser's bubble is a property**,
11074
11564
  named for the validity flag it reports, so a form in another language
11075
11565
  speaks it: `feedback` replaces the message under the field and does not
11076
- 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. */
11077
11568
  badInputMessage?: (HelixNumberInput["badInputMessage"]) | undefined;
11078
11569
  /** The name of the step down button, read by screen readers. */
11079
11570
  "decrement-label"?: (HelixNumberInput["decrementLabel"]) | undefined;
@@ -11131,16 +11622,16 @@ Absent has no floor. */
11131
11622
  Not a label: it goes when typing starts. */
11132
11623
  placeholder?: (HelixNumberInput["placeholder"]) | undefined;
11133
11624
  /** The message the browser shows when the number is above `max`, with `{max}`
11134
- filled in. */
11625
+ filled in, written in the locale. */
11135
11626
  "range-overflow-message"?: (HelixNumberInput["rangeOverflowMessage"]) | undefined;
11136
11627
  /** The message the browser shows when the number is above `max`, with `{max}`
11137
- filled in. */
11628
+ filled in, written in the locale. */
11138
11629
  rangeOverflowMessage?: (HelixNumberInput["rangeOverflowMessage"]) | undefined;
11139
11630
  /** The message the browser shows when the number is below `min`, with `{min}`
11140
- filled in. */
11631
+ filled in, written in the locale. */
11141
11632
  "range-underflow-message"?: (HelixNumberInput["rangeUnderflowMessage"]) | undefined;
11142
11633
  /** The message the browser shows when the number is below `min`, with `{min}`
11143
- filled in. */
11634
+ filled in, written in the locale. */
11144
11635
  rangeUnderflowMessage?: (HelixNumberInput["rangeUnderflowMessage"]) | undefined;
11145
11636
  /** Prevents editing. The value is still submitted with the form. */
11146
11637
  readonly?: (HelixNumberInput["readOnly"]) | undefined;
@@ -11165,10 +11656,12 @@ showing dollars keeps the cents typed into it. Without `format-options`
11165
11656
  the grid is whole numbers, as in a native number field. */
11166
11657
  step?: (HelixNumberInput["step"]) | undefined;
11167
11658
  /** The message the browser shows when the number is off the step grid, with
11168
- `{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. */
11169
11661
  "step-mismatch-message"?: (HelixNumberInput["stepMismatchMessage"]) | undefined;
11170
11662
  /** The message the browser shows when the number is off the step grid, with
11171
- `{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. */
11172
11665
  stepMismatchMessage?: (HelixNumberInput["stepMismatchMessage"]) | undefined;
11173
11666
  /** What a screen reader says for the value, with `{value}` filled in, such as
11174
11667
  `{value} kilograms`.
@@ -11315,21 +11808,33 @@ Read once the document exists, and again whenever this changes. Text that
11315
11808
  does not parse leaves the inspector empty rather than throwing, since a
11316
11809
  page's markup should not take the page down over a comma. */
11317
11810
  for?: (HelixObjectInspector["for"]) | undefined;
11318
- /** 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. */
11319
11813
  "item-label"?: (HelixObjectInspector["itemLabel"]) | undefined;
11320
- /** 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. */
11321
11816
  itemLabel?: (HelixObjectInspector["itemLabel"]) | undefined;
11322
- /** 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}}`. */
11323
11820
  "items-label"?: (HelixObjectInspector["itemsLabel"]) | undefined;
11324
- /** 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}}`. */
11325
11824
  itemsLabel?: (HelixObjectInspector["itemsLabel"]) | undefined;
11326
- /** 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. */
11327
11827
  "key-label"?: (HelixObjectInspector["keyLabel"]) | undefined;
11328
- /** 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. */
11329
11830
  keyLabel?: (HelixObjectInspector["keyLabel"]) | undefined;
11330
- /** 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}}`. */
11331
11834
  "keys-label"?: (HelixObjectInspector["keysLabel"]) | undefined;
11332
- /** 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}}`. */
11333
11838
  keysLabel?: (HelixObjectInspector["keysLabel"]) | undefined;
11334
11839
  /** Accessible name for the tree, and the text of the header where there is one. */
11335
11840
  label?: (HelixObjectInspector["label"]) | undefined;
@@ -11357,15 +11862,21 @@ who set the property. This button is positioned out of the flow and takes no
11357
11862
  room, so nothing selects on it, and reflection exists so that a selector can
11358
11863
  reach a value. */
11359
11864
  noCopy?: (HelixObjectInspector["noCopy"]) | undefined;
11360
- /** 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. */
11361
11867
  "result-label"?: (HelixObjectInspector["resultLabel"]) | undefined;
11362
- /** 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. */
11363
11870
  resultLabel?: (HelixObjectInspector["resultLabel"]) | undefined;
11364
- /** What a screen reader hears when a filter matches any other number of
11365
- 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}}`. */
11366
11875
  "results-label"?: (HelixObjectInspector["resultsLabel"]) | undefined;
11367
- /** What a screen reader hears when a filter matches any other number of
11368
- 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}}`. */
11369
11880
  resultsLabel?: (HelixObjectInspector["resultsLabel"]) | undefined;
11370
11881
  /** The tree's accessible name when `label` is empty and the host names it
11371
11882
  with neither `aria-label` nor `aria-labelledby`. */
@@ -11760,7 +12271,8 @@ one, and the back button works without the consumer wiring anything. */
11760
12271
  "last-label"?: (HelixPagination["lastLabel"]) | undefined;
11761
12272
  /** Accessible name for the control that jumps to the last page. */
11762
12273
  lastLabel?: (HelixPagination["lastLabel"]) | undefined;
11763
- /** 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.
11764
12276
 
11765
12277
  The same property the calendar takes, doing the same job one layer down:
11766
12278
  the templates make the *words* the consumer's, and this makes the *numbers*
@@ -11874,9 +12386,8 @@ export type HelixPaginationSizeVueProps = {
11874
12386
  defaultValue?: (HelixPaginationSize["defaultValue"]) | undefined;
11875
12387
  /** The label beside the control. */
11876
12388
  label?: (HelixPaginationSize["label"]) | undefined;
11877
- /** Locale for the numbers.
11878
-
11879
- 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. */
11880
12391
  locale?: (HelixPaginationSize["locale"]) | undefined;
11881
12392
  /** The sizes offered, comma separated.
11882
12393
 
@@ -11929,7 +12440,7 @@ export type HelixPaginationSizeVueEvents = {
11929
12440
 
11930
12441
  export type HelixPaginationSummaryVueProps = {
11931
12442
  /** The text shown. `{from}`, `{to}`, and `{total}` are replaced with the first
11932
- item, the last item, and the item count.
12443
+ item, the last item, and the item count, written in the locale.
11933
12444
 
11934
12445
  A template rather than a prefix and a suffix, because word order is not
11935
12446
  universal: `format="{total} 件中 {from}-{to} 件"` is one attribute here and
@@ -11943,9 +12454,8 @@ of the element, so calling it `label` put one word on three jobs inside one
11943
12454
  family. The root's templates are `pageLabel`, `statusLabel` and `gapLabel`,
11944
12455
  which each label something; this labels nothing, it *is* the thing. */
11945
12456
  format?: (HelixPaginationSummary["format"]) | undefined;
11946
- /** Locale for the numbers.
11947
-
11948
- 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. */
11949
12459
  locale?: (HelixPaginationSummary["locale"]) | undefined;
11950
12460
  /** The current page, counting from one. */
11951
12461
  page?: (HelixPaginationSummary["page"]) | undefined;
@@ -11998,18 +12508,22 @@ browser's message. */
11998
12508
  required?: (HelixPinInput["required"]) | undefined;
11999
12509
  /** The message shown when the field is required and empty.
12000
12510
 
12001
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12002
- set and the browser's own on a text field, which the browser writes in
12003
- 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,
12004
12516
  and this one was the English a form in another language still spoke in
12005
12517
  the bubble it raises on submit: `feedback` replaces the message under
12006
12518
  the field and does not reach that one. */
12007
12519
  "value-missing-message"?: (HelixPinInput["valueMissingMessage"]) | undefined;
12008
12520
  /** The message shown when the field is required and empty.
12009
12521
 
12010
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12011
- set and the browser's own on a text field, which the browser writes in
12012
- 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,
12013
12527
  and this one was the English a form in another language still spoke in
12014
12528
  the bubble it raises on submit: `feedback` replaces the message under
12015
12529
  the field and does not reach that one. */
@@ -12053,11 +12567,13 @@ a row of boxes. */
12053
12567
  readonly?: (HelixPinInput["readOnly"]) | undefined;
12054
12568
  /** Whether the field blocks input. A read-only code still submits its value. */
12055
12569
  readOnly?: (HelixPinInput["readOnly"]) | undefined;
12056
- /** The message shown when the code is started and not finished, with
12057
- `{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. */
12058
12573
  "too-short-message"?: (HelixPinInput["tooShortMessage"]) | undefined;
12059
- /** The message shown when the code is started and not finished, with
12060
- `{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. */
12061
12577
  tooShortMessage?: (HelixPinInput["tooShortMessage"]) | undefined;
12062
12578
  /** The characters a box accepts, which also sets the keyboard a phone shows.
12063
12579
 
@@ -12164,8 +12680,14 @@ the resolved state for stylesheets, which is what the mirror is for. */
12164
12680
  Off by default, which is the house style: a panel that opens from its
12165
12681
  trigger already reads as belonging to it. */
12166
12682
  arrow?: (HelixPopover["arrow"]) | undefined;
12167
- /** The panel's name, read by screen readers. Left at `Popover`, the first
12168
- 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`. */
12169
12691
  label?: (HelixPopover["label"]) | undefined;
12170
12692
  /** Keeps `Tab` inside the panel while it is open, marks the panel
12171
12693
  `aria-modal`, and hides the rest of the page from screen readers. A press
@@ -12267,9 +12789,9 @@ place in the layout when the answer arrives and it becomes determinate. */
12267
12789
  A visible label in the `label` slot names it instead, with the words it
12268
12790
  shows, so the name and the label cannot disagree. */
12269
12791
  label?: (HelixProgress["label"]) | undefined;
12270
- /** 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 %`.
12271
12793
 
12272
- Absent uses the runtime's own. */
12794
+ Absent reads the nearest `lang`, then the runtime's own. */
12273
12795
  locale?: (HelixProgress["locale"]) | undefined;
12274
12796
  /** The total the work is measured against. */
12275
12797
  max?: (HelixProgress["max"]) | undefined;
@@ -12344,11 +12866,17 @@ export type HelixProgressVueEvents = {
12344
12866
  export type HelixQrCodeElementEvent<E = Event> = TypedEvent<HelixQrCode, E>;
12345
12867
 
12346
12868
  export type HelixQrCodeVueProps = {
12347
- /** The words a code with no `label` is named by, followed by its value where
12348
- 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. */
12349
12877
  "code-label"?: (HelixQrCode["codeLabel"]) | undefined;
12350
- /** The words a code with no `label` is named by, followed by its value where
12351
- 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. */
12352
12880
  codeLabel?: (HelixQrCode["codeLabel"]) | undefined;
12353
12881
  /** The error correction level, which sets how much of the code can be lost
12354
12882
  and still scan.
@@ -12439,18 +12967,22 @@ browser's message. */
12439
12967
  required?: (HelixRadioGroup["required"]) | undefined;
12440
12968
  /** The message shown when the field is required and empty.
12441
12969
 
12442
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12443
- set and the browser's own on a text field, which the browser writes in
12444
- 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,
12445
12975
  and this one was the English a form in another language still spoke in
12446
12976
  the bubble it raises on submit: `feedback` replaces the message under
12447
12977
  the field and does not reach that one. */
12448
12978
  "value-missing-message"?: (HelixRadioGroup["valueMissingMessage"]) | undefined;
12449
12979
  /** The message shown when the field is required and empty.
12450
12980
 
12451
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12452
- set and the browser's own on a text field, which the browser writes in
12453
- 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,
12454
12986
  and this one was the English a form in another language still spoke in
12455
12987
  the bubble it raises on submit: `feedback` replaces the message under
12456
12988
  the field and does not reach that one. */
@@ -12731,18 +13263,22 @@ browser's message. */
12731
13263
  required?: (HelixRating["required"]) | undefined;
12732
13264
  /** The message shown when the field is required and empty.
12733
13265
 
12734
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12735
- set and the browser's own on a text field, which the browser writes in
12736
- 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,
12737
13271
  and this one was the English a form in another language still spoke in
12738
13272
  the bubble it raises on submit: `feedback` replaces the message under
12739
13273
  the field and does not reach that one. */
12740
13274
  "value-missing-message"?: (HelixRating["valueMissingMessage"]) | undefined;
12741
13275
  /** The message shown when the field is required and empty.
12742
13276
 
12743
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12744
- set and the browser's own on a text field, which the browser writes in
12745
- 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,
12746
13282
  and this one was the English a form in another language still spoke in
12747
13283
  the bubble it raises on submit: `feedback` replaces the message under
12748
13284
  the field and does not reach that one. */
@@ -12795,13 +13331,13 @@ leaving a rating with nothing to press. A property that silently accepts
12795
13331
  nonsense is the fault this pays off, so neither case is quietly ignored. */
12796
13332
  min?: (HelixRating["min"]) | undefined;
12797
13333
  /** The name of each mark a reader can choose, with `{score}` and `{max}`
12798
- 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".
12799
13335
 
12800
13336
  Also what a read-only rating says for its score where `value-text` is
12801
13337
  empty. */
12802
13338
  "option-label"?: (HelixRating["optionLabel"]) | undefined;
12803
13339
  /** The name of each mark a reader can choose, with `{score}` and `{max}`
12804
- 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".
12805
13341
 
12806
13342
  Also what a read-only rating says for its score where `value-text` is
12807
13343
  empty. */
@@ -13108,14 +13644,14 @@ gives. */
13108
13644
  /** Height of the panel, in pixels. */
13109
13645
  panelSize?: (HelixSandbox["panelSize"]) | undefined;
13110
13646
  /** The name of the divider between the panes, read by screen readers.
13111
-
13112
- Empty names the lead pane, "Resize source pane" or "Resize preview pane",
13113
- 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". */
13114
13650
  "separator-label"?: (HelixSandbox["separatorLabel"]) | undefined;
13115
13651
  /** The name of the divider between the panes, read by screen readers.
13116
-
13117
- Empty names the lead pane, "Resize source pane" or "Resize preview pane",
13118
- 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". */
13119
13655
  separatorLabel?: (HelixSandbox["separatorLabel"]) | undefined;
13120
13656
  /** Percentage of the sandbox given to the lead pane: the source, unless `lead`
13121
13657
  is `preview`. */
@@ -13214,6 +13750,12 @@ Absent shows no readout. */
13214
13750
 
13215
13751
  Absent shows no readout. */
13216
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;
13217
13759
  };
13218
13760
 
13219
13761
  export type HelixSandboxStatusBarVueEvents = {};
@@ -13263,6 +13805,14 @@ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
13263
13805
  its English words. As an attribute it is that object as JSON, and JSON
13264
13806
  that does not parse is no words. */
13265
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;
13266
13816
  };
13267
13817
 
13268
13818
  export type HelixSandboxTerminalVueEvents = {
@@ -13294,8 +13844,8 @@ words and is already written. */
13294
13844
  /** The locale the chart's own numbers are written in: its axis, its
13295
13845
  percentages and its totals, such as `de` for `1.240` and `32 %`.
13296
13846
 
13297
- Absent uses the runtime's own. The table's cells are shown as the table
13298
- 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. */
13299
13849
  locale?: (HelixScatterChart["locale"]) | undefined;
13300
13850
  /** Where a reading the keys moved to stands among the readings, said after
13301
13851
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -13313,9 +13863,11 @@ Set it to the words of the page's language, such as `{position} von
13313
13863
  {count}`, or to nothing to say no position. A slice or a series a
13314
13864
  legend hid is not counted. */
13315
13865
  positionLabel?: (HelixScatterChart["positionLabel"]) | undefined;
13316
- /** 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`. */
13317
13868
  "correlation-label"?: (HelixScatterChart["correlationLabel"]) | undefined;
13318
- /** 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`. */
13319
13871
  correlationLabel?: (HelixScatterChart["correlationLabel"]) | undefined;
13320
13872
  /** Which gridlines are drawn across the plot, if any.
13321
13873
 
@@ -13324,10 +13876,30 @@ Both axes are measured, so the values name an axis rather than a role:
13324
13876
  anything unrecognized, means `both`, since neither axis is the one a scatter
13325
13877
  is read along. */
13326
13878
  gridlines?: (HelixScatterChart["gridlines"]) | undefined;
13327
- /** 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}}`. */
13328
13882
  "points-label"?: (HelixScatterChart["pointsLabel"]) | undefined;
13329
- /** 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}}`. */
13330
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;
13331
13903
  /** The heading of a column whose numbers size the points, such as
13332
13904
  `Population`, which makes the chart a bubble chart.
13333
13905
 
@@ -13498,18 +14070,22 @@ browser's message. */
13498
14070
  required?: (HelixSelect["required"]) | undefined;
13499
14071
  /** The message shown when the field is required and empty.
13500
14072
 
13501
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13502
- set and the browser's own on a text field, which the browser writes in
13503
- 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,
13504
14078
  and this one was the English a form in another language still spoke in
13505
14079
  the bubble it raises on submit: `feedback` replaces the message under
13506
14080
  the field and does not reach that one. */
13507
14081
  "value-missing-message"?: (HelixSelect["valueMissingMessage"]) | undefined;
13508
14082
  /** The message shown when the field is required and empty.
13509
14083
 
13510
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13511
- set and the browser's own on a text field, which the browser writes in
13512
- 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,
13513
14089
  and this one was the English a form in another language still spoke in
13514
14090
  the bubble it raises on submit: `feedback` replaces the message under
13515
14091
  the field and does not reach that one. */
@@ -13726,18 +14302,22 @@ browser's message. */
13726
14302
  required?: (HelixSlider["required"]) | undefined;
13727
14303
  /** The message shown when the field is required and empty.
13728
14304
 
13729
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13730
- set and the browser's own on a text field, which the browser writes in
13731
- 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,
13732
14310
  and this one was the English a form in another language still spoke in
13733
14311
  the bubble it raises on submit: `feedback` replaces the message under
13734
14312
  the field and does not reach that one. */
13735
14313
  "value-missing-message"?: (HelixSlider["valueMissingMessage"]) | undefined;
13736
14314
  /** The message shown when the field is required and empty.
13737
14315
 
13738
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13739
- set and the browser's own on a text field, which the browser writes in
13740
- 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,
13741
14321
  and this one was the English a form in another language still spoke in
13742
14322
  the bubble it raises on submit: `feedback` replaces the message under
13743
14323
  the field and does not reach that one. */
@@ -13758,8 +14338,8 @@ attribute.
13758
14338
  <helix-slider format-options='{"style":"currency","currency":"USD"}'></helix-slider>
13759
14339
  ``` */
13760
14340
  formatOptions?: (HelixSlider["formatOptions"]) | undefined;
13761
- /** The locale `format-options` writes the value in, such as `de-DE`. Empty is
13762
- 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. */
13763
14343
  locale?: (HelixSlider["locale"]) | undefined;
13764
14344
  /** Shows the value at each mark. */
13765
14345
  "marker-labels"?: (HelixSlider["markerLabels"]) | undefined;
@@ -13996,11 +14576,11 @@ the accessible representation of a sparkline, and a list of the fourteen
13996
14576
  numbers is not. Absent, the drawing is hidden from a screen reader rather
13997
14577
  than announced without a name. */
13998
14578
  label?: (HelixSparkline["label"]) | undefined;
13999
- /** The locale the readout's numbers and positions are written in, such as
14000
- `de` for `1.240`.
14579
+ /** The locale the words, the readout's numbers and positions are in, such
14580
+ as `de` for `1.240`.
14001
14581
 
14002
- Absent uses the runtime's own. A table's cells are shown as the table
14003
- 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. */
14004
14584
  locale?: (HelixSparkline["locale"]) | undefined;
14005
14585
  /** Which readings take a mark of their own: `high`, `low`, or both,
14006
14586
  separated by spaces.
@@ -14464,11 +15044,15 @@ in both. Of those four combinations three are ones nobody should pick, and
14464
15044
  a property whose job is mostly to be left alone is a property that mostly
14465
15045
  catches people out. */
14466
15046
  orientation?: (HelixSteps["orientation"]) | undefined;
14467
- /** What the `progress` part says to a screen reader, with `{percent}` filled
14468
- 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. */
14469
15051
  "progress-label"?: (HelixSteps["progressLabel"]) | undefined;
14470
- /** What the `progress` part says to a screen reader, with `{percent}` filled
14471
- 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. */
14472
15056
  progressLabel?: (HelixSteps["progressLabel"]) | undefined;
14473
15057
  /** What each step is marked with.
14474
15058
 
@@ -14505,6 +15089,16 @@ export type HelixStepHelixSelectElementEvent =
14505
15089
  export type HelixStepVueProps = {
14506
15090
  /** Whether this stage is finished. */
14507
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;
14508
15102
  /** The words that tell a screen reader the stage is finished. Translate it
14509
15103
  with the page. */
14510
15104
  "complete-label"?: (HelixStep["completeLabel"]) | undefined;
@@ -14587,18 +15181,22 @@ browser's message. */
14587
15181
  required?: (HelixSwitch["required"]) | undefined;
14588
15182
  /** The message shown when the field is required and empty.
14589
15183
 
14590
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
14591
- set and the browser's own on a text field, which the browser writes in
14592
- 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,
14593
15189
  and this one was the English a form in another language still spoke in
14594
15190
  the bubble it raises on submit: `feedback` replaces the message under
14595
15191
  the field and does not reach that one. */
14596
15192
  "value-missing-message"?: (HelixSwitch["valueMissingMessage"]) | undefined;
14597
15193
  /** The message shown when the field is required and empty.
14598
15194
 
14599
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
14600
- set and the browser's own on a text field, which the browser writes in
14601
- 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,
14602
15200
  and this one was the English a form in another language still spoke in
14603
15201
  the bubble it raises on submit: `feedback` replaces the message under
14604
15202
  the field and does not reach that one. */
@@ -14677,14 +15275,16 @@ after a column moves is a sort a consumer cannot store in a URL.
14677
15275
  Empty on a column that is purely presentational, an actions column say, and
14678
15276
  such a column is never sortable however it is marked. */
14679
15277
  field?: (HelixTableColumn["field"]) | undefined;
14680
- /** The accessible name of the grip that moves the column. `{name}` is replaced
14681
- 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.
14682
15281
 
14683
15282
  **Every word a column speaks is a property**, so a table in another
14684
15283
  language hears its own rather than English around its own headings. */
14685
15284
  "move-label"?: (HelixTableColumn["moveLabel"]) | undefined;
14686
- /** The accessible name of the grip that moves the column. `{name}` is replaced
14687
- 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.
14688
15288
 
14689
15289
  **Every word a column speaks is a property**, so a table in another
14690
15290
  language hears its own rather than English around its own headings. */
@@ -14697,10 +15297,10 @@ it has focus, a step at a time and four with Shift. The width lands in
14697
15297
  stores the widths can take the decision. */
14698
15298
  resizable?: (HelixTableColumn["resizable"]) | undefined;
14699
15299
  /** The accessible name of the separator that resizes the column. `{name}` is
14700
- replaced with the heading text. */
15300
+ the heading text, and `{named}` is `no` for a column without one. */
14701
15301
  "resize-label"?: (HelixTableColumn["resizeLabel"]) | undefined;
14702
15302
  /** The accessible name of the separator that resizes the column. `{name}` is
14703
- replaced with the heading text. */
15303
+ the heading text, and `{named}` is `no` for a column without one. */
14704
15304
  resizeLabel?: (HelixTableColumn["resizeLabel"]) | undefined;
14705
15305
  /** Makes this column's cells the headers of their rows, in `DataTable`.
14706
15306
 
@@ -14818,10 +15418,12 @@ and lets that column wrap. A headless consumer owns the overflow either
14818
15418
  way, that being paint, and gets the honest track list. */
14819
15419
  width?: (HelixTableColumn["width"]) | undefined;
14820
15420
  /** The text screen readers announce for the column's width. `{width}` is
14821
- replaced with the width. */
15421
+ the width in pixels, written in the locale, and each language writes the
15422
+ forms it has. */
14822
15423
  "width-label"?: (HelixTableColumn["widthLabel"]) | undefined;
14823
15424
  /** The text screen readers announce for the column's width. `{width}` is
14824
- replaced with the width. */
15425
+ the width in pixels, written in the locale, and each language writes the
15426
+ forms it has. */
14825
15427
  widthLabel?: (HelixTableColumn["widthLabel"]) | undefined;
14826
15428
  /** A function that reads the cell's content from a row, for cells that `field`
14827
15429
  alone cannot read.
@@ -14851,6 +15453,12 @@ export type HelixTableColumnVueEvents = {
14851
15453
 
14852
15454
  /** `HelixTable` component event */
14853
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>;
14854
15462
  /** `helix-select` event type */
14855
15463
  export type HelixTableHelixSelectElementEvent =
14856
15464
  HelixTableElementEvent<HelixSelectEvent>;
@@ -14879,10 +15487,16 @@ say that without the component knowing what a row looks like. */
14879
15487
  "loading-text"?: (HelixTable["loadingText"]) | undefined;
14880
15488
  /** The text shown and announced while the rows load. */
14881
15489
  loadingText?: (HelixTable["loadingText"]) | undefined;
14882
- /** The word for an ascending sort, in `sorted-label`. */
15490
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
14883
15491
  "ascending-label"?: (HelixTable["ascendingLabel"]) | undefined;
14884
- /** The word for an ascending sort, in `sorted-label`. */
15492
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
14885
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;
14886
15500
  /** The column widths as one track list, written once on the table.
14887
15501
 
14888
15502
  With `TableColumn` children, each track sizes the column in its place, a
@@ -14922,10 +15536,20 @@ is set. */
14922
15536
  "default-sort"?: (HelixTable["defaultSort"]) | undefined;
14923
15537
  /** The starting sort order, used until `sort` is set. */
14924
15538
  defaultSort?: (HelixTable["defaultSort"]) | undefined;
14925
- /** The word for a descending sort, in `sorted-label`. */
15539
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
14926
15540
  "descending-label"?: (HelixTable["descendingLabel"]) | undefined;
14927
- /** The word for a descending sort, in `sorted-label`. */
15541
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
14928
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;
14929
15553
  /** Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
14930
15554
  Page keys move focus between its cells, the headings included. Enter moves
14931
15555
  into a cell's controls, and Tab leaves the table.
@@ -14939,6 +15563,33 @@ cells, which is the one way a cell of your markup can take focus. */
14939
15563
  An `aria-label` or `aria-labelledby` on the host names the table too, and
14940
15564
  wins over this. */
14941
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;
14942
15593
  /** Adds a column of checkboxes for selecting rows. Each row is known by its
14943
15594
  `value`, and by its place among the rows as written where it has none. */
14944
15595
  selectable?: (HelixTable["selectable"]) | undefined;
@@ -14953,10 +15604,14 @@ selection as it was. `default-selected` seeds a selection this element
14953
15604
  then owns. */
14954
15605
  selected?: (HelixTable["selected"]) | undefined;
14955
15606
  /** What screen readers hear when the chosen rows change. `{count}` is how many
14956
- 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}}`. */
14957
15610
  "selected-label"?: (HelixTable["selectedLabel"]) | undefined;
14958
15611
  /** What screen readers hear when the chosen rows change. `{count}` is how many
14959
- 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}}`. */
14960
15615
  selectedLabel?: (HelixTable["selectedLabel"]) | undefined;
14961
15616
  /** The name of a row's checkbox. `{row}` is replaced with the words of the
14962
15617
  row's first cell. */
@@ -14973,10 +15628,14 @@ first, and refusing it leaves the order as it was. `default-sort` seeds an
14973
15628
  order this element then owns. */
14974
15629
  sort?: (HelixTable["sort"]) | undefined;
14975
15630
  /** What screen readers hear when the table is sorted. `{column}` is the
14976
- 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`. */
14977
15634
  "sorted-label"?: (HelixTable["sortedLabel"]) | undefined;
14978
15635
  /** What screen readers hear when the table is sorted. `{column}` is the
14979
- 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`. */
14980
15639
  sortedLabel?: (HelixTable["sortedLabel"]) | undefined;
14981
15640
  /** What screen readers hear when the table stops being sorted. */
14982
15641
  "unsorted-label"?: (HelixTable["unsortedLabel"]) | undefined;
@@ -14985,6 +15644,10 @@ column's heading and `{order}` is `ascending-label` or `descending-label`. */
14985
15644
  };
14986
15645
 
14987
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;
14988
15651
  /** The selection is about to change. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection. */
14989
15652
  "helix-select": HelixTableHelixSelectElementEvent;
14990
15653
  /** Fired after the selection changes, with every selected key, separated by commas. */
@@ -15228,14 +15891,22 @@ carries a meaning beside something else. */
15228
15891
  `attribute` is spelled out because Lit lowercases a property name to
15229
15892
  derive one rather than dash-casing it, so this would otherwise be
15230
15893
  reachable only as `dismisslabel`, which nobody would guess and no linter
15231
- 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. */
15232
15899
  "dismiss-label"?: (HelixTag["dismissLabel"]) | undefined;
15233
15900
  /** The dismiss control's label, read by screen readers.
15234
15901
 
15235
15902
  `attribute` is spelled out because Lit lowercases a property name to
15236
15903
  derive one rather than dash-casing it, so this would otherwise be
15237
15904
  reachable only as `dismisslabel`, which nobody would guess and no linter
15238
- 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. */
15239
15910
  dismissLabel?: (HelixTag["dismissLabel"]) | undefined;
15240
15911
  /** Takes the tag out of reach: its link and its remove button stop
15241
15912
  answering, and in a `Tag.Group` the arrow keys pass over it and it cannot
@@ -15386,18 +16057,22 @@ browser's message. */
15386
16057
  required?: (HelixTextarea["required"]) | undefined;
15387
16058
  /** The message shown when the field is required and empty.
15388
16059
 
15389
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15390
- set and the browser's own on a text field, which the browser writes in
15391
- 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,
15392
16065
  and this one was the English a form in another language still spoke in
15393
16066
  the bubble it raises on submit: `feedback` replaces the message under
15394
16067
  the field and does not reach that one. */
15395
16068
  "value-missing-message"?: (HelixTextarea["valueMissingMessage"]) | undefined;
15396
16069
  /** The message shown when the field is required and empty.
15397
16070
 
15398
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15399
- set and the browser's own on a text field, which the browser writes in
15400
- 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,
15401
16076
  and this one was the English a form in another language still spoke in
15402
16077
  the bubble it raises on submit: `feedback` replaces the message under
15403
16078
  the field and does not reach that one. */
@@ -15560,12 +16235,28 @@ export type HelixTimeInputHelixBeforeOpenElementEvent =
15560
16235
  HelixTimeInputElementEvent<HelixBeforeOpenEvent>;
15561
16236
 
15562
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;
15563
16246
  /** What a screen reader hears for a segment with nothing in it, which a
15564
16247
  sighted reader sees as dashes. */
15565
16248
  "empty-segment-label"?: (HelixTimeInput["emptySegmentLabel"]) | undefined;
15566
16249
  /** What a screen reader hears for a segment with nothing in it, which a
15567
16250
  sighted reader sees as dashes. */
15568
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;
15569
16260
  /** Whether the field is a row of segments, one for each part of the date or
15570
16261
  time, in place of a line of text.
15571
16262
 
@@ -15647,6 +16338,12 @@ as `+3`, does not say what it does. */
15647
16338
  "max-tags"?: (HelixTimeInput["maxTags"] | `${number}`) | undefined;
15648
16339
  /** How many tokens to show before the rest become a count. */
15649
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;
15650
16347
  /** The value the control starts with. A form reset returns it to this value,
15651
16348
  and to the `value` attribute where this one is not written, as a native
15652
16349
  control resets to the `value` it declares. */
@@ -15676,18 +16373,22 @@ browser's message. */
15676
16373
  required?: (HelixTimeInput["required"]) | undefined;
15677
16374
  /** The message shown when the field is required and empty.
15678
16375
 
15679
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15680
- set and the browser's own on a text field, which the browser writes in
15681
- 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,
15682
16381
  and this one was the English a form in another language still spoke in
15683
16382
  the bubble it raises on submit: `feedback` replaces the message under
15684
16383
  the field and does not reach that one. */
15685
16384
  "value-missing-message"?: (HelixTimeInput["valueMissingMessage"]) | undefined;
15686
16385
  /** The message shown when the field is required and empty.
15687
16386
 
15688
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15689
- set and the browser's own on a text field, which the browser writes in
15690
- 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,
15691
16392
  and this one was the English a form in another language still spoke in
15692
16393
  the bubble it raises on submit: `feedback` replaces the message under
15693
16394
  the field and does not reach that one. */
@@ -15738,14 +16439,14 @@ on why a wheel cannot do either. */
15738
16439
  /** The message shown when a range holds more than two times.
15739
16440
 
15740
16441
  **Every sentence a control raises in the browser's bubble is a property**,
15741
- so a form in another language speaks it. Absent is the control's own
15742
- 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. */
15743
16444
  "range-length-message"?: (HelixTimeInput["rangeLengthMessage"]) | undefined;
15744
16445
  /** The message shown when a range holds more than two times.
15745
16446
 
15746
16447
  **Every sentence a control raises in the browser's bubble is a property**,
15747
- so a form in another language speaks it. Absent is the control's own
15748
- 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. */
15749
16450
  rangeLengthMessage?: (HelixTimeInput["rangeLengthMessage"]) | undefined;
15750
16451
  /** The message shown when a time is after `max`, with `{max}` filled in as
15751
16452
  the field displays it. */
@@ -15911,13 +16612,19 @@ a reset should return to. */
15911
16612
 
15912
16613
  **Every sentence a control raises in the browser's bubble is a property**,
15913
16614
  named for the validity flag it reports, so a form in another language
15914
- 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. */
15915
16619
  "bad-input-message"?: (HelixTimePicker["badInputMessage"]) | undefined;
15916
16620
  /** The validation message for a value that is not a time.
15917
16621
 
15918
16622
  **Every sentence a control raises in the browser's bubble is a property**,
15919
16623
  named for the validity flag it reports, so a form in another language
15920
- 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. */
15921
16628
  badInputMessage?: (HelixTimePicker["badInputMessage"]) | undefined;
15922
16629
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
15923
16630
 
@@ -16232,14 +16939,22 @@ export type HelixToastItemVueProps = {
16232
16939
  `attribute` is spelled out because Lit lowercases a property name to
16233
16940
  derive one rather than dash-casing it, so this would otherwise be
16234
16941
  reachable only as `dismisslabel`, which nobody would guess and no linter
16235
- 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. */
16236
16947
  "dismiss-label"?: (HelixToastItem["dismissLabel"]) | undefined;
16237
16948
  /** The dismiss control's label, read by screen readers.
16238
16949
 
16239
16950
  `attribute` is spelled out because Lit lowercases a property name to
16240
16951
  derive one rather than dash-casing it, so this would otherwise be
16241
16952
  reachable only as `dismisslabel`, which nobody would guess and no linter
16242
- 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. */
16243
16958
  dismissLabel?: (HelixToastItem["dismissLabel"]) | undefined;
16244
16959
  /** How long the message stays, in milliseconds. When it is not set, the
16245
16960
  message stays until it is dismissed.
@@ -16278,7 +16993,9 @@ export type HelixToastHelixDismissElementEvent =
16278
16993
 
16279
16994
  export type HelixToastVueProps = {
16280
16995
  /** The key that takes focus to the stack and back, such as `F8` or `Alt+T`:
16281
- 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. */
16282
16999
  hotkey?: (HelixToast["hotkey"]) | undefined;
16283
17000
  /** Accessible name for the region, with `{hotkey}` filled in. Translate it with
16284
17001
  the rest of your interface. */
@@ -16372,18 +17089,22 @@ browser's message. */
16372
17089
  required?: (HelixToggleGroup["required"]) | undefined;
16373
17090
  /** The message shown when the field is required and empty.
16374
17091
 
16375
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
16376
- set and the browser's own on a text field, which the browser writes in
16377
- 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,
16378
17097
  and this one was the English a form in another language still spoke in
16379
17098
  the bubble it raises on submit: `feedback` replaces the message under
16380
17099
  the field and does not reach that one. */
16381
17100
  "value-missing-message"?: (HelixToggleGroup["valueMissingMessage"]) | undefined;
16382
17101
  /** The message shown when the field is required and empty.
16383
17102
 
16384
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
16385
- set and the browser's own on a text field, which the browser writes in
16386
- 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,
16387
17108
  and this one was the English a form in another language still spoke in
16388
17109
  the bubble it raises on submit: `feedback` replaces the message under
16389
17110
  the field and does not reach that one. */
@@ -16663,6 +17384,14 @@ default slot is the trigger, which is the older form.
16663
17384
  Names an element in the same tree, so a tooltip inside another component's
16664
17385
  shadow root points at one in that root rather than one in the document.
16665
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
+
16666
17395
  **In React this arrives as a property and not as an attribute**, which is
16667
17396
  worth knowing before someone reads the DOM and thinks it did not take.
16668
17397
  Measured against React 19.2.8: `for` exists on the prototype, so React sets
@@ -16821,11 +17550,11 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
16821
17550
  nextLabel?: (HelixTour["nextLabel"]) | undefined;
16822
17551
  /** Draws each stop's place in the run in its panel, as well as saying it. */
16823
17552
  progress?: (HelixTour["progress"]) | undefined;
16824
- /** Each stop's place in the run, with `{index}` and `{count}` filled in.
16825
- 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. */
16826
17555
  "progress-label"?: (HelixTour["progressLabel"]) | undefined;
16827
- /** Each stop's place in the run, with `{index}` and `{count}` filled in.
16828
- 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. */
16829
17558
  progressLabel?: (HelixTour["progressLabel"]) | undefined;
16830
17559
  /** Label for the control that leaves the tour. */
16831
17560
  "skip-label"?: (HelixTour["skipLabel"]) | undefined;
@@ -17033,6 +17762,12 @@ export type HelixTreeHelixActivateElementEvent =
17033
17762
  /** `helix-before-activate` event type */
17034
17763
  export type HelixTreeHelixBeforeActivateElementEvent =
17035
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>;
17036
17771
 
17037
17772
  export type HelixTreeVueProps = {
17038
17773
  /** Which end of the row the branch chevron sits at.
@@ -17110,11 +17845,29 @@ Ignored once `active` is written. */
17110
17845
 
17111
17846
  Ignored once `active` is written. */
17112
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;
17113
17858
  /** Accessible name for the tree.
17114
17859
 
17115
17860
  An `aria-label` or `aria-labelledby` on the host names the tree too, and
17116
17861
  wins over this. */
17117
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;
17118
17871
  /** What a deeper level means: `peer` for no change, `subordinate` for a lower
17119
17872
  rank, or `heading` for a parent that heads the items under it.
17120
17873
 
@@ -17150,6 +17903,16 @@ branch as a label; a headless consumer reads the attribute and the
17150
17903
  written here appears in the served markup of every tree anybody renders.
17151
17904
  The resting state is the absence of the attribute, which is `peer`. */
17152
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;
17153
17916
  /** Whether a reader can check many items, or choose only the items at the
17154
17917
  ends. Unset, one item is chosen at a time, branches included.
17155
17918
 
@@ -17172,12 +17935,18 @@ export type HelixTreeVueEvents = {
17172
17935
  "helix-activate": HelixTreeHelixActivateElementEvent;
17173
17936
  /** Fired before the current node changes, and cancelable. Canceling it is the only way to stop the change. */
17174
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;
17175
17942
  };
17176
17943
 
17177
17944
  export type HelixTrendVueProps = {
17178
- /** 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`. */
17179
17947
  "better-label"?: (HelixTrend["betterLabel"]) | undefined;
17180
- /** 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`. */
17181
17950
  betterLabel?: (HelixTrend["betterLabel"]) | undefined;
17182
17951
  /** Which way the measurement moved, as `movement` says it. */
17183
17952
  direction?: (HelixTrend["direction"]) | undefined;
@@ -17216,9 +17985,23 @@ revenue up is good news and latency up is bad news, and only the consumer
17216
17985
  knows which one this is. Set it once per metric and it holds while the
17217
17986
  movement changes underneath. */
17218
17987
  good?: (HelixTrend["good"]) | undefined;
17219
- /** The locale `value` is written in, such as `de` for `1.234,5`.
17220
-
17221
- 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
17222
18005
  the server and the browser write the figure alike. */
17223
18006
  locale?: (HelixTrend["locale"]) | undefined;
17224
18007
  /** Which way the measurement moved.
@@ -17247,9 +18030,11 @@ both are written. The size is written in the `value` part with
17247
18030
  `format-options` and `locale`, in place of a slotted metric. Absent leaves
17248
18031
  the movement to `movement` and the metric to the slot. */
17249
18032
  value?: (HelixTrend["value"]) | undefined;
17250
- /** 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`. */
17251
18035
  "worse-label"?: (HelixTrend["worseLabel"]) | undefined;
17252
- /** 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`. */
17253
18038
  worseLabel?: (HelixTrend["worseLabel"]) | undefined;
17254
18039
  };
17255
18040
 
@@ -17561,9 +18346,11 @@ ours to promise: the attribute is ignored cross-origin, so a file served
17561
18346
  from somewhere else opens rather than saves, which is the browser's rule
17562
18347
  and not something a player can work around. */
17563
18348
  extraControls?: (HelixVideo["extraControls"]) | undefined;
17564
- /** 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. */
17565
18351
  "forward-label"?: (HelixVideo["forwardLabel"]) | undefined;
17566
- /** 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. */
17567
18354
  forwardLabel?: (HelixVideo["forwardLabel"]) | undefined;
17568
18355
  /** What the control that fills the screen is called.
17569
18356
 
@@ -17657,9 +18444,13 @@ bar: two of the same control is worse than either placement. */
17657
18444
  "pause-label"?: (HelixVideo["pauseLabel"]) | undefined;
17658
18445
  /** The name of the play control while pressing it would pause the video. */
17659
18446
  pauseLabel?: (HelixVideo["pauseLabel"]) | undefined;
17660
- /** 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, ...}`. */
17661
18450
  "percent-label"?: (HelixVideo["percentLabel"]) | undefined;
17662
- /** 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, ...}`. */
17663
18454
  percentLabel?: (HelixVideo["percentLabel"]) | undefined;
17664
18455
  /** What the control that floats the video over other windows is called. */
17665
18456
  "pip-label"?: (HelixVideo["pipLabel"]) | undefined;
@@ -17691,9 +18482,11 @@ this is what a screen reader calls it on arriving. */
17691
18482
  "remote-label"?: (HelixVideo["remoteLabel"]) | undefined;
17692
18483
  /** What the control that casts the video to another device is called. */
17693
18484
  remoteLabel?: (HelixVideo["remoteLabel"]) | undefined;
17694
- /** 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. */
17695
18487
  "rewind-label"?: (HelixVideo["rewindLabel"]) | undefined;
17696
- /** 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. */
17697
18490
  rewindLabel?: (HelixVideo["rewindLabel"]) | undefined;
17698
18491
  /** What the scrubber is called. */
17699
18492
  "seek-label"?: (HelixVideo["seekLabel"]) | undefined;
@@ -17893,7 +18686,8 @@ arrive. The list does not ask for more while it is set. */
17893
18686
  loadingLabel?: (HelixVirtualList["loadingLabel"]) | undefined;
17894
18687
  /** Places each row by its own measured height. Without it, rows are placed
17895
18688
  by one height: `estimate` until rows are drawn, then the drawn rows' height,
17896
- read once.
18689
+ read once. Rows that come out different heights are placed by their own
18690
+ heights either way.
17897
18691
 
17898
18692
  **Off by default, because the straight line is better when it holds.** One
17899
18693
  height makes offset and index convert by division, which can never
@@ -18323,6 +19117,12 @@ export type CustomCssProperties = {
18323
19117
  "--chat-resume-shadow"?: (string) | undefined;
18324
19118
  /** The hairline under the header. */
18325
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;
18326
19126
  /** The color of the dots and the words that say who is typing. */
18327
19127
  "--chat-typing-color"?: (string) | undefined;
18328
19128
  /** The space between the dots and the words that say who is typing. */
@@ -18489,10 +19289,32 @@ export type CustomCssProperties = {
18489
19289
  "--data-table-color"?: (string) | undefined;
18490
19290
  /** The grid track list for the columns. It overrides the list worked out from the columns. */
18491
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;
18492
19310
  /** The space between the grid and the footer below it. */
18493
19311
  "--data-table-footer-gap"?: (string) | undefined;
18494
19312
  /** The space between the pieces of the footer, such as a summary and the pagination. */
18495
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;
18496
19318
  /** The fill behind a heading while `windowed`. It is opaque, because rows scroll under the sticky heading. Unset otherwise. */
18497
19319
  "--data-table-heading-background-color"?: (string) | undefined;
18498
19320
  /** The text color of a heading. */
@@ -19001,6 +19823,14 @@ export type CustomCssProperties = {
19001
19823
  "--list-item-current-background-color"?: (string) | undefined;
19002
19824
  /** The opacity of a `disabled` row. */
19003
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;
19004
19834
  /** The padding inside the row. */
19005
19835
  "--list-item-padding"?: (string) | undefined;
19006
19836
  /** What the rail cell shows. The list sets it. */
@@ -19011,6 +19841,18 @@ export type CustomCssProperties = {
19011
19841
  "--list-item-selected-background-color"?: (string) | undefined;
19012
19842
  /** The font weight of a term in a description list. */
19013
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;
19014
19856
  /** The space between rows. */
19015
19857
  "--list-gap"?: (string) | undefined;
19016
19858
  /** The space that the markers of ordered and unordered lists sit in. */
@@ -19029,6 +19871,24 @@ export type CustomCssProperties = {
19029
19871
  "--listbox-border"?: (string) | undefined;
19030
19872
  /** How narrow a column may be with `layout="grid"`. As many columns as fit are drawn. Defaults to `8rem`. */
19031
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;
19032
19892
  /** The color of the line shown while `load-error` is set. */
19033
19893
  "--listbox-error-color"?: (string) | undefined;
19034
19894
  /** Maximum height of the list before it scrolls. */
@@ -19617,13 +20477,13 @@ export type CustomCssProperties = {
19617
20477
  "--scroll-area-scrollbar"?: (string) | undefined;
19618
20478
  /** The thickness of each scrollbar drawn under `scrollbars`, and the size of the corner. */
19619
20479
  "--scroll-area-scrollbar-size"?: (string) | undefined;
19620
- /** The color of the scrollbar's thumb. */
20480
+ /** The color of the scrollbar's thumb. Defaults to `--helix-scrollbar-thumb-color`. */
19621
20481
  "--scroll-area-thumb-color"?: (string) | undefined;
19622
- /** 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`. */
19623
20483
  "--scroll-area-thumb-hover-color"?: (string) | undefined;
19624
20484
  /** The shortest a thumb drawn under `scrollbars` gets, however long the content. */
19625
20485
  "--scroll-area-thumb-min-size"?: (string) | undefined;
19626
- /** The color of the scrollbar's track. */
20486
+ /** The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`. */
19627
20487
  "--scroll-area-track-color"?: (string) | undefined;
19628
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. */
19629
20489
  "--scroll-area-scroll-fraction"?: (string) | undefined;
@@ -19851,6 +20711,18 @@ export type CustomCssProperties = {
19851
20711
  "--table-cell-align"?: (string) | undefined;
19852
20712
  /** Track list for the columns. It overrides the track list worked out from the columns. */
19853
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;
19854
20726
  /** The color of the words in the `heading` slot. */
19855
20727
  "--table-title-color"?: (string) | undefined;
19856
20728
  /** The space between the `heading` slot and the grid. */
@@ -19859,6 +20731,16 @@ export type CustomCssProperties = {
19859
20731
  "--table-title-text"?: (string) | undefined;
19860
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. */
19861
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;
19862
20744
  /** The wash across the cells of a row with `href` under the pointer. */
19863
20745
  "--table-row-hover-background-color"?: (string) | undefined;
19864
20746
  /** The space between the tab row and the panel's content. */
@@ -20107,8 +20989,16 @@ export type CustomCssProperties = {
20107
20989
  "--tree-checkbox-size"?: (string) | undefined;
20108
20990
  /** Size of the chevron, and the gutter a leaf reserves. */
20109
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;
20110
20998
  /** Space between rows. */
20111
20999
  "--tree-gap"?: (string) | undefined;
21000
+ /** The color of the grip, in a `reorderable` tree. */
21001
+ "--tree-grip-color"?: (string) | undefined;
20112
21002
  /** Indent added per level. */
20113
21003
  "--tree-indent"?: (string) | undefined;
20114
21004
  /** Fill of a checked row, in a tree with `selection-mode="multiple"`. Unset, the box alone marks it. */
@@ -20137,6 +21027,18 @@ export type CustomCssProperties = {
20137
21027
  "--tree-chevron-gap"?: (string) | undefined;
20138
21028
  /** The chevron's order in the row. Set from `chevron-placement` and read by each item. */
20139
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;
20140
21042
  /** Color of a move that `good` says is an improvement. */
20141
21043
  "--trend-better-color"?: (string) | undefined;
20142
21044
  /** Color of the arrow. Setting it overrides the color that `good` sets. */
@@ -20219,6 +21121,12 @@ export type CustomCssProperties = {
20219
21121
  "--virtual-list-loading-color"?: (string) | undefined;
20220
21122
  /** The space around the text in the row drawn while `loading` is set. */
20221
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;
20222
21130
  /** The fill behind a chosen row, in a list with `selection-mode`. */
20223
21131
  "--virtual-list-selected-background-color"?: (string) | undefined;
20224
21132
  };
@@ -21126,7 +22034,7 @@ export interface WcToolkitVueGlobalComponents {
21126
22034
  HelixToolbarVueProps,
21127
22035
  HelixToolbarVueEvents
21128
22036
  >;
21129
- /** 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. */
21130
22038
  "helix-tooltip": DefineCustomElement<
21131
22039
  HelixTooltip,
21132
22040
  HelixTooltipVueProps,