@fusion.dev/helix-headless 0.104.0 → 0.105.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/vue.d.ts CHANGED
@@ -77,7 +77,14 @@ import type {
77
77
  HelixHeadlessList,
78
78
  HelixHeadlessListbox,
79
79
  HelixHeadlessLoader,
80
+ HelixHeadlessMapArea,
81
+ HelixHeadlessMapMarker,
82
+ HelixHeadlessMapPoints,
83
+ HelixHeadlessMapPosition,
80
84
  HelixHeadlessMap,
85
+ pointsOf,
86
+ pointsConverter,
87
+ HelixHeadlessMapRoute,
81
88
  HelixHeadlessMegamenu,
82
89
  HelixHeadlessMenuItem,
83
90
  HelixHeadlessMenu,
@@ -185,6 +192,8 @@ import type {
185
192
  HelixShortcutEvent,
186
193
  HelixActivateEvent,
187
194
  HelixBeforeActivateEvent,
195
+ HelixMapPartChangeEvent,
196
+ HelixMapClusterEvent,
188
197
  HelixMapPanEvent,
189
198
  HelixMapZoomEvent,
190
199
  HelixReadEvent,
@@ -283,9 +292,9 @@ empty string writes `name=""` onto every item ever rendered: Lit reflects
283
292
  it, and the resting state of a reflected property is the attribute's
284
293
  absence. Caught by `hydration.dom.spec.ts`. */
285
294
  name?: (HelixHeadlessAccordionItem["name"]) | undefined;
286
- /** Whether the markup declared it open. Ignored once `open` is written. */
295
+ /** Whether the element starts open. Ignored once `open` is written. */
287
296
  "default-open"?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
288
- /** Whether the markup declared it open. Ignored once `open` is written. */
297
+ /** Whether the element starts open. Ignored once `open` is written. */
289
298
  defaultOpen?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
290
299
  /** Whether the element is open.
291
300
 
@@ -357,16 +366,16 @@ the surface step instead of the sunken one, which is an elevation, and a
357
366
  band can be `info` and elevated at once: two values true together are two
358
367
  axes, which is the test the registry answers to. */
359
368
  tone?: (HelixHeadlessAnnouncement["tone"]) | undefined;
360
- /** Whether it offers a control to take it away. */
369
+ /** Whether the element shows a control that dismisses it. */
361
370
  dismissible?: (HelixHeadlessAnnouncement["dismissible"]) | undefined;
362
- /** Accessible name for that control.
371
+ /** The dismiss control's label, read by screen readers.
363
372
 
364
373
  `attribute` is spelled out because Lit lowercases a property name to
365
374
  derive one rather than dash-casing it, so this would otherwise be
366
375
  reachable only as `dismisslabel`, which nobody would guess and no linter
367
376
  would catch. */
368
377
  "dismiss-label"?: (HelixHeadlessAnnouncement["dismissLabel"]) | undefined;
369
- /** Accessible name for that control.
378
+ /** The dismiss control's label, read by screen readers.
370
379
 
371
380
  `attribute` is spelled out because Lit lowercases a property name to
372
381
  derive one rather than dash-casing it, so this would otherwise be
@@ -468,7 +477,7 @@ shadow root reads a table in that root rather than one in the document. A
468
477
  **In React this arrives as a property and not as an attribute**, the way
469
478
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
470
479
  for?: (HelixHeadlessAreaChart["for"]) | undefined;
471
- /** The drawing's name, for a pointer resting on it.
480
+ /** The chart's name, which starts the chart's text summary.
472
481
 
473
482
  Absent falls back to the table's own caption, which is usually the right
474
483
  words and is already written. */
@@ -655,7 +664,7 @@ shadow root reads a table in that root rather than one in the document. A
655
664
  **In React this arrives as a property and not as an attribute**, the way
656
665
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
657
666
  for?: (HelixHeadlessBarChart["for"]) | undefined;
658
- /** The drawing's name, for a pointer resting on it.
667
+ /** The chart's name, which starts the chart's text summary.
659
668
 
660
669
  Absent falls back to the table's own caption, which is usually the right
661
670
  words and is already written. */
@@ -822,7 +831,7 @@ synchronous call.
822
831
  clipboard, which is not this and is why it is declared there rather than
823
832
  inherited. */
824
833
  value?: (HelixHeadlessButton["value"]) | undefined;
825
- /** Whether the control is non-interactive.
834
+ /** Whether the control is disabled and cannot be used.
826
835
 
827
836
  Reflected, because the styled tier selects on it, and mirrored to
828
837
  `aria-disabled` rather than removing the element from the accessibility
@@ -831,7 +840,7 @@ tree, so a screen reader can still announce that the control exists.
831
840
  The mirror itself is in `willUpdate` below, here rather than in each
832
841
  control, because here is where `disabled` is. */
833
842
  disabled?: (HelixHeadlessButton["disabled"]) | undefined;
834
- /** Name submitted with the form.
843
+ /** The name the control's value is submitted under.
835
844
 
836
845
  **Reflected, and it is the exception to "reflect only what CSS selects
837
846
  on".** The platform builds a form's entry list from the `name` *content
@@ -1210,7 +1219,7 @@ Written to select from outside, and read to act on the selection. */
1210
1219
  "stopped-label"?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
1211
1220
  /** What it says when a reader stops connecting without asking. */
1212
1221
  stoppedLabel?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
1213
- /** Which of the controls this surface draws, as a list of what to keep.
1222
+ /** Which controls to show, as a list of `pan`, `zoom`, and `fullscreen`, or `none`.
1214
1223
 
1215
1224
  **A list rather than a switch, because the overlap is not symmetric.** A
1216
1225
  surface a consumer brings often has zoom controls of its own and almost
@@ -1230,14 +1239,14 @@ board, which a reader drags and whose pad took a third of the frame. The
1230
1239
  stylesheet lays the cluster out by which buttons are in it rather than by
1231
1240
  this attribute, so the two defaults need no rule each. */
1232
1241
  controls?: (HelixHeadlessCanvas["controls"]) | undefined;
1233
- /** What the group of controls is called, for a reader who meets it.
1242
+ /** The name of the group of controls, read by screen readers.
1234
1243
 
1235
1244
  Absent is the family's own name for it, "Map controls" or "Board
1236
1245
  controls", which names what the controls drive rather than the
1237
1246
  mechanism. Written here to say it in another language, which every other
1238
1247
  string this surface speaks already allowed and this one did not. */
1239
1248
  "controls-label"?: (HelixHeadlessCanvas["controlsLabel"]) | undefined;
1240
- /** What the group of controls is called, for a reader who meets it.
1249
+ /** The name of the group of controls, read by screen readers.
1241
1250
 
1242
1251
  Absent is the family's own name for it, "Map controls" or "Board
1243
1252
  controls", which names what the controls drive rather than the
@@ -1268,25 +1277,25 @@ them without a consumer writing a second rule. Absent is the top end, a
1268
1277
  resting value being an attribute's absence: a default that reflected
1269
1278
  would write an attribute onto every host that no server sent. */
1270
1279
  controlsPlacement?: (HelixHeadlessCanvas["controlsPlacement"]) | undefined;
1271
- /** What the control that fills the screen is called. */
1280
+ /** The fullscreen button's label. */
1272
1281
  "fullscreen-label"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
1273
- /** What the control that fills the screen is called. */
1282
+ /** The fullscreen button's label. */
1274
1283
  fullscreenLabel?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
1275
- /** How long the reader may be still before the chrome hides, in milliseconds.
1284
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
1276
1285
 
1277
1286
  Zero keeps it up, which is the default: these controls are how a keyboard
1278
1287
  reader operates the surface, and chrome that hid itself by default would
1279
1288
  be the component undoing its own argument. Set it for a display nobody
1280
1289
  drives. */
1281
1290
  "idle-delay"?: (HelixHeadlessCanvas["idleDelay"] | `${number}`) | undefined;
1282
- /** How long the reader may be still before the chrome hides, in milliseconds.
1291
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
1283
1292
 
1284
1293
  Zero keeps it up, which is the default: these controls are how a keyboard
1285
1294
  reader operates the surface, and chrome that hid itself by default would
1286
1295
  be the component undoing its own argument. Set it for a display nobody
1287
1296
  drives. */
1288
1297
  idleDelay?: (HelixHeadlessCanvas["idleDelay"]) | undefined;
1289
- /** What the control that pans down is called.
1298
+ /** The pan down button's label.
1290
1299
 
1291
1300
  **A label for each way rather than one with the way filled in**, which is
1292
1301
  what this was: `Pan {way}` filled in with `left`, so a page that said it
@@ -1294,7 +1303,7 @@ in French read out "Déplacer left". The word for a direction is as much
1294
1303
  the translator's as the word for panning, and a language can put it
1295
1304
  anywhere in the phrase. */
1296
1305
  "pan-down-label"?: (HelixHeadlessCanvas["panDownLabel"]) | undefined;
1297
- /** What the control that pans down is called.
1306
+ /** The pan down button's label.
1298
1307
 
1299
1308
  **A label for each way rather than one with the way filled in**, which is
1300
1309
  what this was: `Pan {way}` filled in with `left`, so a page that said it
@@ -1302,37 +1311,37 @@ in French read out "Déplacer left". The word for a direction is as much
1302
1311
  the translator's as the word for panning, and a language can put it
1303
1312
  anywhere in the phrase. */
1304
1313
  panDownLabel?: (HelixHeadlessCanvas["panDownLabel"]) | undefined;
1305
- /** What the control that pans left is called, on screen. */
1314
+ /** The pan left button's label. */
1306
1315
  "pan-left-label"?: (HelixHeadlessCanvas["panLeftLabel"]) | undefined;
1307
- /** What the control that pans left is called, on screen. */
1316
+ /** The pan left button's label. */
1308
1317
  panLeftLabel?: (HelixHeadlessCanvas["panLeftLabel"]) | undefined;
1309
- /** What the control that pans right is called, on screen. */
1318
+ /** The pan right button's label. */
1310
1319
  "pan-right-label"?: (HelixHeadlessCanvas["panRightLabel"]) | undefined;
1311
- /** What the control that pans right is called, on screen. */
1320
+ /** The pan right button's label. */
1312
1321
  panRightLabel?: (HelixHeadlessCanvas["panRightLabel"]) | undefined;
1313
- /** How far one press moves the view, as a fraction of what is on screen.
1322
+ /** How far one press pans the view, as a fraction of its size.
1314
1323
 
1315
1324
  A fraction rather than a distance, because this surface does not know the
1316
1325
  scale of what is inside it: a quarter of the viewport is the same gesture
1317
1326
  at any zoom, and a consumer who wants their own units multiplies by them. */
1318
1327
  "pan-step"?: (HelixHeadlessCanvas["panStep"] | `${number}`) | undefined;
1319
- /** How far one press moves the view, as a fraction of what is on screen.
1328
+ /** How far one press pans the view, as a fraction of its size.
1320
1329
 
1321
1330
  A fraction rather than a distance, because this surface does not know the
1322
1331
  scale of what is inside it: a quarter of the viewport is the same gesture
1323
1332
  at any zoom, and a consumer who wants their own units multiplies by them. */
1324
1333
  panStep?: (HelixHeadlessCanvas["panStep"]) | undefined;
1325
- /** What the control that pans up is called. */
1334
+ /** The pan up button's label. */
1326
1335
  "pan-up-label"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
1327
- /** What the control that pans up is called. */
1336
+ /** The pan up button's label. */
1328
1337
  panUpLabel?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
1329
- /** What the control that zooms in is called. */
1338
+ /** The zoom in button's label. */
1330
1339
  "zoom-in-label"?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
1331
- /** What the control that zooms in is called. */
1340
+ /** The zoom in button's label. */
1332
1341
  zoomInLabel?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
1333
- /** What the control that zooms out is called. */
1342
+ /** The zoom out button's label. */
1334
1343
  "zoom-out-label"?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
1335
- /** What the control that zooms out is called. */
1344
+ /** The zoom out button's label. */
1336
1345
  zoomOutLabel?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
1337
1346
  /** Where the board is looking: the document's point at the middle of the view,
1338
1347
  and the zoom.
@@ -1813,19 +1822,19 @@ one of paragraphs, and a reader who has scrolled up by half a message has
1813
1822
  not left. The same distance from the top is what counts as reaching the
1814
1823
  history. */
1815
1824
  threshold?: (HelixHeadlessChat["threshold"]) | undefined;
1816
- /** What is said where there are none, and none are coming. */
1825
+ /** The text shown and announced when there are no rows and none are loading. */
1817
1826
  "empty-text"?: (HelixHeadlessChat["emptyText"]) | undefined;
1818
- /** What is said where there are none, and none are coming. */
1827
+ /** The text shown and announced when there are no rows and none are loading. */
1819
1828
  emptyText?: (HelixHeadlessChat["emptyText"]) | undefined;
1820
- /** Whether the rows are still on their way.
1829
+ /** Whether the rows are still loading.
1821
1830
 
1822
1831
  Reflected, because a stylesheet needs it: the rows that are already there
1823
1832
  are dimmed rather than removed while a new set arrives, and only CSS can
1824
1833
  say that without the component knowing what a row looks like. */
1825
1834
  loading?: (HelixHeadlessChat["loading"]) | undefined;
1826
- /** What is said while they are on their way. */
1835
+ /** The text shown and announced while the rows load. */
1827
1836
  "loading-text"?: (HelixHeadlessChat["loadingText"]) | undefined;
1828
- /** What is said while they are on their way. */
1837
+ /** The text shown and announced while the rows load. */
1829
1838
  loadingText?: (HelixHeadlessChat["loadingText"]) | undefined;
1830
1839
  /** The turns as data, for a transcript too long to hold as elements.
1831
1840
 
@@ -1859,16 +1868,17 @@ export type HelixHeadlessCheckboxGroupHelixBeforeChangeElementEvent =
1859
1868
  export type HelixHeadlessCheckboxGroupVueProps = {
1860
1869
  /** The checked values, comma separated. */
1861
1870
  value?: (HelixHeadlessCheckboxGroup["value"]) | undefined;
1862
- /** What is wrong, in the reader's words rather than the browser's. */
1871
+ /** The validation message shown under the control. It replaces the
1872
+ browser's message. */
1863
1873
  feedback?: (HelixHeadlessCheckboxGroup["feedback"]) | undefined;
1864
- /** Help under the control, shown while there is nothing wrong. */
1874
+ /** Help text shown under the control. A validation message replaces it. */
1865
1875
  hint?: (HelixHeadlessCheckboxGroup["hint"]) | undefined;
1866
- /** The accessible name, and the fallback for the `label` slot. */
1876
+ /** The field's label, which is also its accessible name. Content in the
1877
+ `label` slot replaces it. */
1867
1878
  label?: (HelixHeadlessCheckboxGroup["label"]) | undefined;
1868
- /** Whether the form refuses to submit without it. */
1879
+ /** Whether the field needs a value before the form can submit. */
1869
1880
  required?: (HelixHeadlessCheckboxGroup["required"]) | undefined;
1870
- /** What a reader is told when the field is required and empty, where the
1871
- page says.
1881
+ /** The message shown when the field is required and empty.
1872
1882
 
1873
1883
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
1874
1884
  set and the browser's own on a text field, which the browser writes in
@@ -1877,8 +1887,7 @@ and this one was the English a form in another language still spoke in
1877
1887
  the bubble it raises on submit: `feedback` replaces the message under
1878
1888
  the field and does not reach that one. */
1879
1889
  "value-missing-message"?: (HelixHeadlessCheckboxGroup["valueMissingMessage"]) | undefined;
1880
- /** What a reader is told when the field is required and empty, where the
1881
- page says.
1890
+ /** The message shown when the field is required and empty.
1882
1891
 
1883
1892
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
1884
1893
  set and the browser's own on a text field, which the browser writes in
@@ -1887,7 +1896,7 @@ and this one was the English a form in another language still spoke in
1887
1896
  the bubble it raises on submit: `feedback` replaces the message under
1888
1897
  the field and does not reach that one. */
1889
1898
  valueMissingMessage?: (HelixHeadlessCheckboxGroup["valueMissingMessage"]) | undefined;
1890
- /** Whether the control is non-interactive.
1899
+ /** Whether the control is disabled and cannot be used.
1891
1900
 
1892
1901
  Reflected, because the styled tier selects on it, and mirrored to
1893
1902
  `aria-disabled` rather than removing the element from the accessibility
@@ -1896,7 +1905,7 @@ tree, so a screen reader can still announce that the control exists.
1896
1905
  The mirror itself is in `willUpdate` below, here rather than in each
1897
1906
  control, because here is where `disabled` is. */
1898
1907
  disabled?: (HelixHeadlessCheckboxGroup["disabled"]) | undefined;
1899
- /** Name submitted with the form.
1908
+ /** The name the control's value is submitted under.
1900
1909
 
1901
1910
  **Reflected, and it is the exception to "reflect only what CSS selects
1902
1911
  on".** The platform builds a form's entry list from the `name` *content
@@ -1949,20 +1958,21 @@ Not reflected: the attribute is the consumer's input and stays as they
1949
1958
  wrote it, and `:state(checked)` carries the resolved state for
1950
1959
  stylesheets. */
1951
1960
  checked?: (HelixHeadlessCheckbox["checked"]) | undefined;
1952
- /** Whether the markup declared it checked, which is where a reset returns to. */
1961
+ /** Whether the control starts checked. A form reset returns it to this state. */
1953
1962
  "default-checked"?: (HelixHeadlessCheckbox["defaultChecked"]) | undefined;
1954
- /** Whether the markup declared it checked, which is where a reset returns to. */
1963
+ /** Whether the control starts checked. A form reset returns it to this state. */
1955
1964
  defaultChecked?: (HelixHeadlessCheckbox["defaultChecked"]) | undefined;
1956
- /** What is wrong, in the reader's words rather than the browser's. */
1965
+ /** The validation message shown under the control. It replaces the
1966
+ browser's message. */
1957
1967
  feedback?: (HelixHeadlessCheckbox["feedback"]) | undefined;
1958
- /** Help under the control, shown while there is nothing wrong. */
1968
+ /** Help text shown under the control. A validation message replaces it. */
1959
1969
  hint?: (HelixHeadlessCheckbox["hint"]) | undefined;
1960
- /** The accessible name, and the fallback for the `label` slot. */
1970
+ /** The field's label, which is also its accessible name. Content in the
1971
+ `label` slot replaces it. */
1961
1972
  label?: (HelixHeadlessCheckbox["label"]) | undefined;
1962
- /** Whether the form refuses to submit without it. */
1973
+ /** Whether the field needs a value before the form can submit. */
1963
1974
  required?: (HelixHeadlessCheckbox["required"]) | undefined;
1964
- /** What a reader is told when the field is required and empty, where the
1965
- page says.
1975
+ /** The message shown when the field is required and empty.
1966
1976
 
1967
1977
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
1968
1978
  set and the browser's own on a text field, which the browser writes in
@@ -1971,8 +1981,7 @@ and this one was the English a form in another language still spoke in
1971
1981
  the bubble it raises on submit: `feedback` replaces the message under
1972
1982
  the field and does not reach that one. */
1973
1983
  "value-missing-message"?: (HelixHeadlessCheckbox["valueMissingMessage"]) | undefined;
1974
- /** What a reader is told when the field is required and empty, where the
1975
- page says.
1984
+ /** The message shown when the field is required and empty.
1976
1985
 
1977
1986
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
1978
1987
  set and the browser's own on a text field, which the browser writes in
@@ -1981,7 +1990,7 @@ and this one was the English a form in another language still spoke in
1981
1990
  the bubble it raises on submit: `feedback` replaces the message under
1982
1991
  the field and does not reach that one. */
1983
1992
  valueMissingMessage?: (HelixHeadlessCheckbox["valueMissingMessage"]) | undefined;
1984
- /** Whether the control is non-interactive.
1993
+ /** Whether the control is disabled and cannot be used.
1985
1994
 
1986
1995
  Reflected, because the styled tier selects on it, and mirrored to
1987
1996
  `aria-disabled` rather than removing the element from the accessibility
@@ -1990,7 +1999,7 @@ tree, so a screen reader can still announce that the control exists.
1990
1999
  The mirror itself is in `willUpdate` below, here rather than in each
1991
2000
  control, because here is where `disabled` is. */
1992
2001
  disabled?: (HelixHeadlessCheckbox["disabled"]) | undefined;
1993
- /** Name submitted with the form.
2002
+ /** The name the control's value is submitted under.
1994
2003
 
1995
2004
  **Reflected, and it is the exception to "reflect only what CSS selects
1996
2005
  on".** The platform builds a form's entry list from the `name` *content
@@ -2146,25 +2155,25 @@ The trade is real and is the reason this is not the default: a swatch cannot
2146
2155
  be read or pasted into without opening the panel, which is worse for a form
2147
2156
  where the color is the answer rather than a setting. */
2148
2157
  variant?: (HelixHeadlessColorInput["variant"]) | undefined;
2149
- /** What a reader is told when the field holds something the picker cannot
2150
- read: a date that is not one, a time, a color.
2158
+ /** The message shown when the field holds text the picker cannot read as a
2159
+ date, a time, or a color.
2151
2160
 
2152
2161
  **Every sentence a control raises in the browser's bubble is a
2153
2162
  property**, named for the validity flag it reports, so a form in another
2154
2163
  language speaks it. Absent is the family's own sentence, in English,
2155
2164
  which says what the value should look like. */
2156
2165
  "bad-input-message"?: (HelixHeadlessColorInput["badInputMessage"]) | undefined;
2157
- /** What a reader is told when the field holds something the picker cannot
2158
- read: a date that is not one, a time, a color.
2166
+ /** The message shown when the field holds text the picker cannot read as a
2167
+ date, a time, or a color.
2159
2168
 
2160
2169
  **Every sentence a control raises in the browser's bubble is a
2161
2170
  property**, named for the validity flag it reports, so a form in another
2162
2171
  language speaks it. Absent is the family's own sentence, in English,
2163
2172
  which says what the value should look like. */
2164
2173
  badInputMessage?: (HelixHeadlessColorInput["badInputMessage"]) | undefined;
2165
- /** Whether the markup declared it open. Ignored once `open` is written. */
2174
+ /** Whether the element starts open. Ignored once `open` is written. */
2166
2175
  "default-open"?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
2167
- /** Whether the markup declared it open. Ignored once `open` is written. */
2176
+ /** Whether the element starts open. Ignored once `open` is written. */
2168
2177
  defaultOpen?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
2169
2178
  /** Whether the element is open.
2170
2179
 
@@ -2179,27 +2188,28 @@ hydration, or diffed by a framework, it comes back holding whatever the
2179
2188
  last reader did rather than what the author wrote. `:state(open)` carries
2180
2189
  the resolved state for stylesheets, which is what the mirror is for. */
2181
2190
  open?: (HelixHeadlessColorInput["open"]) | undefined;
2182
- /** The value the markup declared, which is where a reset returns to. */
2191
+ /** The value the control starts with. A form reset returns it to this value. */
2183
2192
  "default-value"?: (HelixHeadlessColorInput["defaultValue"]) | undefined;
2184
- /** The value the markup declared, which is where a reset returns to. */
2193
+ /** The value the control starts with. A form reset returns it to this value. */
2185
2194
  defaultValue?: (HelixHeadlessColorInput["defaultValue"]) | undefined;
2186
- /** What the control holds now, and what its form submits.
2195
+ /** The control's current value, which its form submits.
2187
2196
 
2188
2197
  One property, not two, so `input.value` answers the question anyone
2189
2198
  asking it meant. Writing always applies; `<helix-input value="x">` is the
2190
2199
  same statement in markup, and `default-value` is how markup seeds a value
2191
2200
  a reset should return to. */
2192
2201
  value?: (HelixHeadlessColorInput["value"]) | undefined;
2193
- /** What is wrong, in the reader's words rather than the browser's. */
2202
+ /** The validation message shown under the control. It replaces the
2203
+ browser's message. */
2194
2204
  feedback?: (HelixHeadlessColorInput["feedback"]) | undefined;
2195
- /** Help under the control, shown while there is nothing wrong. */
2205
+ /** Help text shown under the control. A validation message replaces it. */
2196
2206
  hint?: (HelixHeadlessColorInput["hint"]) | undefined;
2197
- /** The accessible name, and the fallback for the `label` slot. */
2207
+ /** The field's label, which is also its accessible name. Content in the
2208
+ `label` slot replaces it. */
2198
2209
  label?: (HelixHeadlessColorInput["label"]) | undefined;
2199
- /** Whether the form refuses to submit without it. */
2210
+ /** Whether the field needs a value before the form can submit. */
2200
2211
  required?: (HelixHeadlessColorInput["required"]) | undefined;
2201
- /** What a reader is told when the field is required and empty, where the
2202
- page says.
2212
+ /** The message shown when the field is required and empty.
2203
2213
 
2204
2214
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
2205
2215
  set and the browser's own on a text field, which the browser writes in
@@ -2208,8 +2218,7 @@ and this one was the English a form in another language still spoke in
2208
2218
  the bubble it raises on submit: `feedback` replaces the message under
2209
2219
  the field and does not reach that one. */
2210
2220
  "value-missing-message"?: (HelixHeadlessColorInput["valueMissingMessage"]) | undefined;
2211
- /** What a reader is told when the field is required and empty, where the
2212
- page says.
2221
+ /** The message shown when the field is required and empty.
2213
2222
 
2214
2223
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
2215
2224
  set and the browser's own on a text field, which the browser writes in
@@ -2218,7 +2227,7 @@ and this one was the English a form in another language still spoke in
2218
2227
  the bubble it raises on submit: `feedback` replaces the message under
2219
2228
  the field and does not reach that one. */
2220
2229
  valueMissingMessage?: (HelixHeadlessColorInput["valueMissingMessage"]) | undefined;
2221
- /** Whether the control is non-interactive.
2230
+ /** Whether the control is disabled and cannot be used.
2222
2231
 
2223
2232
  Reflected, because the styled tier selects on it, and mirrored to
2224
2233
  `aria-disabled` rather than removing the element from the accessibility
@@ -2227,7 +2236,7 @@ tree, so a screen reader can still announce that the control exists.
2227
2236
  The mirror itself is in `willUpdate` below, here rather than in each
2228
2237
  control, because here is where `disabled` is. */
2229
2238
  disabled?: (HelixHeadlessColorInput["disabled"]) | undefined;
2230
- /** Name submitted with the form.
2239
+ /** The name the control's value is submitted under.
2231
2240
 
2232
2241
  **Reflected, and it is the exception to "reflect only what CSS selects
2233
2242
  on".** The platform builds a form's entry list from the `name` *content
@@ -2476,18 +2485,18 @@ speaks it. Absent is the control's own sentence, in English. */
2476
2485
  named for the validity flag it reports, so a form in another language
2477
2486
  speaks it. Absent is the control's own sentence, in English. */
2478
2487
  valueMissingMessage?: (HelixHeadlessColorPicker["valueMissingMessage"]) | undefined;
2479
- /** The value the markup declared, which is where a reset returns to. */
2488
+ /** The value the control starts with. A form reset returns it to this value. */
2480
2489
  "default-value"?: (HelixHeadlessColorPicker["defaultValue"]) | undefined;
2481
- /** The value the markup declared, which is where a reset returns to. */
2490
+ /** The value the control starts with. A form reset returns it to this value. */
2482
2491
  defaultValue?: (HelixHeadlessColorPicker["defaultValue"]) | undefined;
2483
- /** What the control holds now, and what its form submits.
2492
+ /** The control's current value, which its form submits.
2484
2493
 
2485
2494
  One property, not two, so `input.value` answers the question anyone
2486
2495
  asking it meant. Writing always applies; `<helix-input value="x">` is the
2487
2496
  same statement in markup, and `default-value` is how markup seeds a value
2488
2497
  a reset should return to. */
2489
2498
  value?: (HelixHeadlessColorPicker["value"]) | undefined;
2490
- /** Whether the control is non-interactive.
2499
+ /** Whether the control is disabled and cannot be used.
2491
2500
 
2492
2501
  Reflected, because the styled tier selects on it, and mirrored to
2493
2502
  `aria-disabled` rather than removing the element from the accessibility
@@ -2496,7 +2505,7 @@ tree, so a screen reader can still announce that the control exists.
2496
2505
  The mirror itself is in `willUpdate` below, here rather than in each
2497
2506
  control, because here is where `disabled` is. */
2498
2507
  disabled?: (HelixHeadlessColorPicker["disabled"]) | undefined;
2499
- /** Name submitted with the form.
2508
+ /** The name the control's value is submitted under.
2500
2509
 
2501
2510
  **Reflected, and it is the exception to "reflect only what CSS selects
2502
2511
  on".** The platform builds a form's entry list from the `name` *content
@@ -2624,9 +2633,9 @@ element already sets on the input it renders, and two things of one name
2624
2633
  meaning different things on the same control is a question a consumer
2625
2634
  should not have to ask. */
2626
2635
  suggest?: (HelixHeadlessCombobox["suggest"]) | undefined;
2627
- /** Whether the markup declared it open. Ignored once `open` is written. */
2636
+ /** Whether the element starts open. Ignored once `open` is written. */
2628
2637
  "default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
2629
- /** Whether the markup declared it open. Ignored once `open` is written. */
2638
+ /** Whether the element starts open. Ignored once `open` is written. */
2630
2639
  defaultOpen?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
2631
2640
  /** Whether the element is open.
2632
2641
 
@@ -2641,41 +2650,44 @@ hydration, or diffed by a framework, it comes back holding whatever the
2641
2650
  last reader did rather than what the author wrote. `:state(open)` carries
2642
2651
  the resolved state for stylesheets, which is what the mirror is for. */
2643
2652
  open?: (HelixHeadlessCombobox["open"]) | undefined;
2644
- /** What the control is called once everything is showing. */
2653
+ /** The button's label, read by screen readers, once every token is showing. */
2645
2654
  "collapse-label"?: (HelixHeadlessCombobox["collapseLabel"]) | undefined;
2646
- /** What the control is called once everything is showing. */
2655
+ /** The button's label, read by screen readers, once every token is showing. */
2647
2656
  collapseLabel?: (HelixHeadlessCombobox["collapseLabel"]) | undefined;
2648
- /** Whether the count is a control that shows the rest. */
2657
+ /** Whether the count is a button that shows the hidden tokens. */
2649
2658
  expandable?: (HelixHeadlessCombobox["expandable"]) | undefined;
2650
- /** What the collapsed count is called, since `+3` names nothing. */
2659
+ /** The count button's label, read by screen readers. Its visible text, such
2660
+ as `+3`, does not say what it does. */
2651
2661
  "expand-label"?: (HelixHeadlessCombobox["expandLabel"]) | undefined;
2652
- /** What the collapsed count is called, since `+3` names nothing. */
2662
+ /** The count button's label, read by screen readers. Its visible text, such
2663
+ as `+3`, does not say what it does. */
2653
2664
  expandLabel?: (HelixHeadlessCombobox["expandLabel"]) | undefined;
2654
2665
  /** How many tokens to show before the rest become a count. */
2655
2666
  "max-tags"?: (HelixHeadlessCombobox["maxTags"] | `${number}`) | undefined;
2656
2667
  /** How many tokens to show before the rest become a count. */
2657
2668
  maxTags?: (HelixHeadlessCombobox["maxTags"]) | undefined;
2658
- /** The value the markup declared, which is where a reset returns to. */
2669
+ /** The value the control starts with. A form reset returns it to this value. */
2659
2670
  "default-value"?: (HelixHeadlessCombobox["defaultValue"]) | undefined;
2660
- /** The value the markup declared, which is where a reset returns to. */
2671
+ /** The value the control starts with. A form reset returns it to this value. */
2661
2672
  defaultValue?: (HelixHeadlessCombobox["defaultValue"]) | undefined;
2662
- /** What the control holds now, and what its form submits.
2673
+ /** The control's current value, which its form submits.
2663
2674
 
2664
2675
  One property, not two, so `input.value` answers the question anyone
2665
2676
  asking it meant. Writing always applies; `<helix-input value="x">` is the
2666
2677
  same statement in markup, and `default-value` is how markup seeds a value
2667
2678
  a reset should return to. */
2668
2679
  value?: (HelixHeadlessCombobox["value"]) | undefined;
2669
- /** What is wrong, in the reader's words rather than the browser's. */
2680
+ /** The validation message shown under the control. It replaces the
2681
+ browser's message. */
2670
2682
  feedback?: (HelixHeadlessCombobox["feedback"]) | undefined;
2671
- /** Help under the control, shown while there is nothing wrong. */
2683
+ /** Help text shown under the control. A validation message replaces it. */
2672
2684
  hint?: (HelixHeadlessCombobox["hint"]) | undefined;
2673
- /** The accessible name, and the fallback for the `label` slot. */
2685
+ /** The field's label, which is also its accessible name. Content in the
2686
+ `label` slot replaces it. */
2674
2687
  label?: (HelixHeadlessCombobox["label"]) | undefined;
2675
- /** Whether the form refuses to submit without it. */
2688
+ /** Whether the field needs a value before the form can submit. */
2676
2689
  required?: (HelixHeadlessCombobox["required"]) | undefined;
2677
- /** What a reader is told when the field is required and empty, where the
2678
- page says.
2690
+ /** The message shown when the field is required and empty.
2679
2691
 
2680
2692
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
2681
2693
  set and the browser's own on a text field, which the browser writes in
@@ -2684,8 +2696,7 @@ and this one was the English a form in another language still spoke in
2684
2696
  the bubble it raises on submit: `feedback` replaces the message under
2685
2697
  the field and does not reach that one. */
2686
2698
  "value-missing-message"?: (HelixHeadlessCombobox["valueMissingMessage"]) | undefined;
2687
- /** What a reader is told when the field is required and empty, where the
2688
- page says.
2699
+ /** The message shown when the field is required and empty.
2689
2700
 
2690
2701
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
2691
2702
  set and the browser's own on a text field, which the browser writes in
@@ -2694,7 +2705,7 @@ and this one was the English a form in another language still spoke in
2694
2705
  the bubble it raises on submit: `feedback` replaces the message under
2695
2706
  the field and does not reach that one. */
2696
2707
  valueMissingMessage?: (HelixHeadlessCombobox["valueMissingMessage"]) | undefined;
2697
- /** Whether the control is non-interactive.
2708
+ /** Whether the control is disabled and cannot be used.
2698
2709
 
2699
2710
  Reflected, because the styled tier selects on it, and mirrored to
2700
2711
  `aria-disabled` rather than removing the element from the accessibility
@@ -2703,7 +2714,7 @@ tree, so a screen reader can still announce that the control exists.
2703
2714
  The mirror itself is in `willUpdate` below, here rather than in each
2704
2715
  control, because here is where `disabled` is. */
2705
2716
  disabled?: (HelixHeadlessCombobox["disabled"]) | undefined;
2706
- /** Name submitted with the form.
2717
+ /** The name the control's value is submitted under.
2707
2718
 
2708
2719
  **Reflected, and it is the exception to "reflect only what CSS selects
2709
2720
  on".** The platform builds a form's entry list from the `name` *content
@@ -2778,9 +2789,9 @@ with: one key, said once. */
2778
2789
  label?: (HelixHeadlessCommand["label"]) | undefined;
2779
2790
  /** Shown in the field before anything is typed. */
2780
2791
  placeholder?: (HelixHeadlessCommand["placeholder"]) | undefined;
2781
- /** Whether the markup declared it open. Ignored once `open` is written. */
2792
+ /** Whether the element starts open. Ignored once `open` is written. */
2782
2793
  "default-open"?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
2783
- /** Whether the markup declared it open. Ignored once `open` is written. */
2794
+ /** Whether the element starts open. Ignored once `open` is written. */
2784
2795
  defaultOpen?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
2785
2796
  /** Whether the element is open.
2786
2797
 
@@ -2911,7 +2922,7 @@ native submitter would have given it, which is the point. */
2911
2922
  formTarget?: (HelixHeadlessCopyButton["formTarget"]) | undefined;
2912
2923
  /** What activating the button does to its form. */
2913
2924
  type?: (HelixHeadlessCopyButton["type"]) | undefined;
2914
- /** Whether the control is non-interactive.
2925
+ /** Whether the control is disabled and cannot be used.
2915
2926
 
2916
2927
  Reflected, because the styled tier selects on it, and mirrored to
2917
2928
  `aria-disabled` rather than removing the element from the accessibility
@@ -2920,7 +2931,7 @@ tree, so a screen reader can still announce that the control exists.
2920
2931
  The mirror itself is in `willUpdate` below, here rather than in each
2921
2932
  control, because here is where `disabled` is. */
2922
2933
  disabled?: (HelixHeadlessCopyButton["disabled"]) | undefined;
2923
- /** Name submitted with the form.
2934
+ /** The name the control's value is submitted under.
2924
2935
 
2925
2936
  **Reflected, and it is the exception to "reflect only what CSS selects
2926
2937
  on".** The platform builds a form's entry list from the `name` *content
@@ -3171,19 +3182,19 @@ Off by default. Windowing costs a scroll listener, a measurement per row
3171
3182
  drawn, and a `block-size` on the scrolling box, and a table of twenty rows
3172
3183
  should pay none of them. */
3173
3184
  windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
3174
- /** What is said where there are none, and none are coming. */
3185
+ /** The text shown and announced when there are no rows and none are loading. */
3175
3186
  "empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
3176
- /** What is said where there are none, and none are coming. */
3187
+ /** The text shown and announced when there are no rows and none are loading. */
3177
3188
  emptyText?: (HelixHeadlessDataTable["emptyText"]) | undefined;
3178
- /** Whether the rows are still on their way.
3189
+ /** Whether the rows are still loading.
3179
3190
 
3180
3191
  Reflected, because a stylesheet needs it: the rows that are already there
3181
3192
  are dimmed rather than removed while a new set arrives, and only CSS can
3182
3193
  say that without the component knowing what a row looks like. */
3183
3194
  loading?: (HelixHeadlessDataTable["loading"]) | undefined;
3184
- /** What is said while they are on their way. */
3195
+ /** The text shown and announced while the rows load. */
3185
3196
  "loading-text"?: (HelixHeadlessDataTable["loadingText"]) | undefined;
3186
- /** What is said while they are on their way. */
3197
+ /** The text shown and announced while the rows load. */
3187
3198
  loadingText?: (HelixHeadlessDataTable["loadingText"]) | undefined;
3188
3199
  /** The whole result, in the order it arrived.
3189
3200
 
@@ -3356,7 +3367,7 @@ platform's base. */
3356
3367
  "trigger-label"?: (HelixHeadlessDateInput["triggerLabel"]) | undefined;
3357
3368
  /** Accessible name for the control that opens the calendar. */
3358
3369
  triggerLabel?: (HelixHeadlessDateInput["triggerLabel"]) | undefined;
3359
- /** Whether the control refuses changes while still submitting its value.
3370
+ /** Whether the value is locked. A read-only control still submits its value.
3360
3371
 
3361
3372
  **Enforced by refusing every request in one place**, which is the seam this
3362
3373
  component already has: `requestValue` is what every path here comes through,
@@ -3368,7 +3379,7 @@ submits nothing and leaves the tab order, and a read-only one submits its
3368
3379
  value and stays reachable, which is what a form showing a value somebody
3369
3380
  else set needs. */
3370
3381
  readonly?: (HelixHeadlessDateInput["readOnly"]) | undefined;
3371
- /** Whether the control refuses changes while still submitting its value.
3382
+ /** Whether the value is locked. A read-only control still submits its value.
3372
3383
 
3373
3384
  **Enforced by refusing every request in one place**, which is the seam this
3374
3385
  component already has: `requestValue` is what every path here comes through,
@@ -3380,25 +3391,25 @@ submits nothing and leaves the tab order, and a read-only one submits its
3380
3391
  value and stays reachable, which is what a form showing a value somebody
3381
3392
  else set needs. */
3382
3393
  readOnly?: (HelixHeadlessDateInput["readOnly"]) | undefined;
3383
- /** What a reader is told when the field holds something the picker cannot
3384
- read: a date that is not one, a time, a color.
3394
+ /** The message shown when the field holds text the picker cannot read as a
3395
+ date, a time, or a color.
3385
3396
 
3386
3397
  **Every sentence a control raises in the browser's bubble is a
3387
3398
  property**, named for the validity flag it reports, so a form in another
3388
3399
  language speaks it. Absent is the family's own sentence, in English,
3389
3400
  which says what the value should look like. */
3390
3401
  "bad-input-message"?: (HelixHeadlessDateInput["badInputMessage"]) | undefined;
3391
- /** What a reader is told when the field holds something the picker cannot
3392
- read: a date that is not one, a time, a color.
3402
+ /** The message shown when the field holds text the picker cannot read as a
3403
+ date, a time, or a color.
3393
3404
 
3394
3405
  **Every sentence a control raises in the browser's bubble is a
3395
3406
  property**, named for the validity flag it reports, so a form in another
3396
3407
  language speaks it. Absent is the family's own sentence, in English,
3397
3408
  which says what the value should look like. */
3398
3409
  badInputMessage?: (HelixHeadlessDateInput["badInputMessage"]) | undefined;
3399
- /** Whether the markup declared it open. Ignored once `open` is written. */
3410
+ /** Whether the element starts open. Ignored once `open` is written. */
3400
3411
  "default-open"?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
3401
- /** Whether the markup declared it open. Ignored once `open` is written. */
3412
+ /** Whether the element starts open. Ignored once `open` is written. */
3402
3413
  defaultOpen?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
3403
3414
  /** Whether the element is open.
3404
3415
 
@@ -3413,41 +3424,44 @@ hydration, or diffed by a framework, it comes back holding whatever the
3413
3424
  last reader did rather than what the author wrote. `:state(open)` carries
3414
3425
  the resolved state for stylesheets, which is what the mirror is for. */
3415
3426
  open?: (HelixHeadlessDateInput["open"]) | undefined;
3416
- /** What the control is called once everything is showing. */
3427
+ /** The button's label, read by screen readers, once every token is showing. */
3417
3428
  "collapse-label"?: (HelixHeadlessDateInput["collapseLabel"]) | undefined;
3418
- /** What the control is called once everything is showing. */
3429
+ /** The button's label, read by screen readers, once every token is showing. */
3419
3430
  collapseLabel?: (HelixHeadlessDateInput["collapseLabel"]) | undefined;
3420
- /** Whether the count is a control that shows the rest. */
3431
+ /** Whether the count is a button that shows the hidden tokens. */
3421
3432
  expandable?: (HelixHeadlessDateInput["expandable"]) | undefined;
3422
- /** What the collapsed count is called, since `+3` names nothing. */
3433
+ /** The count button's label, read by screen readers. Its visible text, such
3434
+ as `+3`, does not say what it does. */
3423
3435
  "expand-label"?: (HelixHeadlessDateInput["expandLabel"]) | undefined;
3424
- /** What the collapsed count is called, since `+3` names nothing. */
3436
+ /** The count button's label, read by screen readers. Its visible text, such
3437
+ as `+3`, does not say what it does. */
3425
3438
  expandLabel?: (HelixHeadlessDateInput["expandLabel"]) | undefined;
3426
3439
  /** How many tokens to show before the rest become a count. */
3427
3440
  "max-tags"?: (HelixHeadlessDateInput["maxTags"] | `${number}`) | undefined;
3428
3441
  /** How many tokens to show before the rest become a count. */
3429
3442
  maxTags?: (HelixHeadlessDateInput["maxTags"]) | undefined;
3430
- /** The value the markup declared, which is where a reset returns to. */
3443
+ /** The value the control starts with. A form reset returns it to this value. */
3431
3444
  "default-value"?: (HelixHeadlessDateInput["defaultValue"]) | undefined;
3432
- /** The value the markup declared, which is where a reset returns to. */
3445
+ /** The value the control starts with. A form reset returns it to this value. */
3433
3446
  defaultValue?: (HelixHeadlessDateInput["defaultValue"]) | undefined;
3434
- /** What the control holds now, and what its form submits.
3447
+ /** The control's current value, which its form submits.
3435
3448
 
3436
3449
  One property, not two, so `input.value` answers the question anyone
3437
3450
  asking it meant. Writing always applies; `<helix-input value="x">` is the
3438
3451
  same statement in markup, and `default-value` is how markup seeds a value
3439
3452
  a reset should return to. */
3440
3453
  value?: (HelixHeadlessDateInput["value"]) | undefined;
3441
- /** What is wrong, in the reader's words rather than the browser's. */
3454
+ /** The validation message shown under the control. It replaces the
3455
+ browser's message. */
3442
3456
  feedback?: (HelixHeadlessDateInput["feedback"]) | undefined;
3443
- /** Help under the control, shown while there is nothing wrong. */
3457
+ /** Help text shown under the control. A validation message replaces it. */
3444
3458
  hint?: (HelixHeadlessDateInput["hint"]) | undefined;
3445
- /** The accessible name, and the fallback for the `label` slot. */
3459
+ /** The field's label, which is also its accessible name. Content in the
3460
+ `label` slot replaces it. */
3446
3461
  label?: (HelixHeadlessDateInput["label"]) | undefined;
3447
- /** Whether the form refuses to submit without it. */
3462
+ /** Whether the field needs a value before the form can submit. */
3448
3463
  required?: (HelixHeadlessDateInput["required"]) | undefined;
3449
- /** What a reader is told when the field is required and empty, where the
3450
- page says.
3464
+ /** The message shown when the field is required and empty.
3451
3465
 
3452
3466
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3453
3467
  set and the browser's own on a text field, which the browser writes in
@@ -3456,8 +3470,7 @@ and this one was the English a form in another language still spoke in
3456
3470
  the bubble it raises on submit: `feedback` replaces the message under
3457
3471
  the field and does not reach that one. */
3458
3472
  "value-missing-message"?: (HelixHeadlessDateInput["valueMissingMessage"]) | undefined;
3459
- /** What a reader is told when the field is required and empty, where the
3460
- page says.
3473
+ /** The message shown when the field is required and empty.
3461
3474
 
3462
3475
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3463
3476
  set and the browser's own on a text field, which the browser writes in
@@ -3466,7 +3479,7 @@ and this one was the English a form in another language still spoke in
3466
3479
  the bubble it raises on submit: `feedback` replaces the message under
3467
3480
  the field and does not reach that one. */
3468
3481
  valueMissingMessage?: (HelixHeadlessDateInput["valueMissingMessage"]) | undefined;
3469
- /** Whether the control is non-interactive.
3482
+ /** Whether the control is disabled and cannot be used.
3470
3483
 
3471
3484
  Reflected, because the styled tier selects on it, and mirrored to
3472
3485
  `aria-disabled` rather than removing the element from the accessibility
@@ -3475,7 +3488,7 @@ tree, so a screen reader can still announce that the control exists.
3475
3488
  The mirror itself is in `willUpdate` below, here rather than in each
3476
3489
  control, because here is where `disabled` is. */
3477
3490
  disabled?: (HelixHeadlessDateInput["disabled"]) | undefined;
3478
- /** Name submitted with the form.
3491
+ /** The name the control's value is submitted under.
3479
3492
 
3480
3493
  **Reflected, and it is the exception to "reflect only what CSS selects
3481
3494
  on".** The platform builds a form's entry list from the `name` *content
@@ -3646,18 +3659,18 @@ date including the one already chosen. */
3646
3659
  "value-missing-message"?: (HelixHeadlessDatePicker["valueMissingMessage"]) | undefined;
3647
3660
  /** What a reader is told when a date is required and none is chosen. */
3648
3661
  valueMissingMessage?: (HelixHeadlessDatePicker["valueMissingMessage"]) | undefined;
3649
- /** The value the markup declared, which is where a reset returns to. */
3662
+ /** The value the control starts with. A form reset returns it to this value. */
3650
3663
  "default-value"?: (HelixHeadlessDatePicker["defaultValue"]) | undefined;
3651
- /** The value the markup declared, which is where a reset returns to. */
3664
+ /** The value the control starts with. A form reset returns it to this value. */
3652
3665
  defaultValue?: (HelixHeadlessDatePicker["defaultValue"]) | undefined;
3653
- /** What the control holds now, and what its form submits.
3666
+ /** The control's current value, which its form submits.
3654
3667
 
3655
3668
  One property, not two, so `input.value` answers the question anyone
3656
3669
  asking it meant. Writing always applies; `<helix-input value="x">` is the
3657
3670
  same statement in markup, and `default-value` is how markup seeds a value
3658
3671
  a reset should return to. */
3659
3672
  value?: (HelixHeadlessDatePicker["value"]) | undefined;
3660
- /** Whether the control is non-interactive.
3673
+ /** Whether the control is disabled and cannot be used.
3661
3674
 
3662
3675
  Reflected, because the styled tier selects on it, and mirrored to
3663
3676
  `aria-disabled` rather than removing the element from the accessibility
@@ -3666,7 +3679,7 @@ tree, so a screen reader can still announce that the control exists.
3666
3679
  The mirror itself is in `willUpdate` below, here rather than in each
3667
3680
  control, because here is where `disabled` is. */
3668
3681
  disabled?: (HelixHeadlessDatePicker["disabled"]) | undefined;
3669
- /** Name submitted with the form.
3682
+ /** The name the control's value is submitted under.
3670
3683
 
3671
3684
  **Reflected, and it is the exception to "reflect only what CSS selects
3672
3685
  on".** The platform builds a form's entry list from the `name` *content
@@ -3787,9 +3800,9 @@ A persistent dialog does not ignore that press. It answers it: see
3787
3800
  `refuse`, which is the only way a dialog that will not be dismissed can say
3788
3801
  so at the moment a reader asks. */
3789
3802
  persistent?: (HelixHeadlessDialog["persistent"]) | undefined;
3790
- /** Whether the markup declared it open. Ignored once `open` is written. */
3803
+ /** Whether the element starts open. Ignored once `open` is written. */
3791
3804
  "default-open"?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
3792
- /** Whether the markup declared it open. Ignored once `open` is written. */
3805
+ /** Whether the element starts open. Ignored once `open` is written. */
3793
3806
  defaultOpen?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
3794
3807
  /** Whether the element is open.
3795
3808
 
@@ -3906,7 +3919,7 @@ shadow root reads a table in that root rather than one in the document. A
3906
3919
  **In React this arrives as a property and not as an attribute**, the way
3907
3920
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
3908
3921
  for?: (HelixHeadlessDonutChart["for"]) | undefined;
3909
- /** The drawing's name, for a pointer resting on it.
3922
+ /** The chart's name, which starts the chart's text summary.
3910
3923
 
3911
3924
  Absent falls back to the table's own caption, which is usually the right
3912
3925
  words and is already written. */
@@ -3971,9 +3984,9 @@ default assigned to the property would reflect onto every host and put a
3971
3984
  `placement="end"` into markup no consumer wrote. So what this tier
3972
3985
  guarantees is the absence, and a sheet selects on it. */
3973
3986
  placement?: (HelixHeadlessDrawer["placement"]) | undefined;
3974
- /** Whether the markup declared it open. Ignored once `open` is written. */
3987
+ /** Whether the element starts open. Ignored once `open` is written. */
3975
3988
  "default-open"?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
3976
- /** Whether the markup declared it open. Ignored once `open` is written. */
3989
+ /** Whether the element starts open. Ignored once `open` is written. */
3977
3990
  defaultOpen?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
3978
3991
  /** Whether the element is open.
3979
3992
 
@@ -4073,19 +4086,19 @@ export type HelixHeadlessDrilldownVueProps = {
4073
4086
  "back-label"?: (HelixHeadlessDrilldown["backLabel"]) | undefined;
4074
4087
  /** What the control returning from a page reads. */
4075
4088
  backLabel?: (HelixHeadlessDrilldown["backLabel"]) | undefined;
4076
- /** What is said where there are none, and none are coming. */
4089
+ /** The text shown and announced when there are no rows and none are loading. */
4077
4090
  "empty-text"?: (HelixHeadlessDrilldown["emptyText"]) | undefined;
4078
- /** What is said where there are none, and none are coming. */
4091
+ /** The text shown and announced when there are no rows and none are loading. */
4079
4092
  emptyText?: (HelixHeadlessDrilldown["emptyText"]) | undefined;
4080
- /** Whether the rows are still on their way.
4093
+ /** Whether the rows are still loading.
4081
4094
 
4082
4095
  Reflected, because a stylesheet needs it: the rows that are already there
4083
4096
  are dimmed rather than removed while a new set arrives, and only CSS can
4084
4097
  say that without the component knowing what a row looks like. */
4085
4098
  loading?: (HelixHeadlessDrilldown["loading"]) | undefined;
4086
- /** What is said while they are on their way. */
4099
+ /** The text shown and announced while the rows load. */
4087
4100
  "loading-text"?: (HelixHeadlessDrilldown["loadingText"]) | undefined;
4088
- /** What is said while they are on their way. */
4101
+ /** The text shown and announced while the rows load. */
4089
4102
  loadingText?: (HelixHeadlessDrilldown["loadingText"]) | undefined;
4090
4103
  };
4091
4104
 
@@ -4147,16 +4160,17 @@ removes rather than as "Remove" said once per file. A label with no
4147
4160
  "trigger-label"?: (HelixHeadlessFileInput["triggerLabel"]) | undefined;
4148
4161
  /** What the trigger reads, where nothing is slotted into it. */
4149
4162
  triggerLabel?: (HelixHeadlessFileInput["triggerLabel"]) | undefined;
4150
- /** What is wrong, in the reader's words rather than the browser's. */
4163
+ /** The validation message shown under the control. It replaces the
4164
+ browser's message. */
4151
4165
  feedback?: (HelixHeadlessFileInput["feedback"]) | undefined;
4152
- /** Help under the control, shown while there is nothing wrong. */
4166
+ /** Help text shown under the control. A validation message replaces it. */
4153
4167
  hint?: (HelixHeadlessFileInput["hint"]) | undefined;
4154
- /** The accessible name, and the fallback for the `label` slot. */
4168
+ /** The field's label, which is also its accessible name. Content in the
4169
+ `label` slot replaces it. */
4155
4170
  label?: (HelixHeadlessFileInput["label"]) | undefined;
4156
- /** Whether the form refuses to submit without it. */
4171
+ /** Whether the field needs a value before the form can submit. */
4157
4172
  required?: (HelixHeadlessFileInput["required"]) | undefined;
4158
- /** What a reader is told when the field is required and empty, where the
4159
- page says.
4173
+ /** The message shown when the field is required and empty.
4160
4174
 
4161
4175
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4162
4176
  set and the browser's own on a text field, which the browser writes in
@@ -4165,8 +4179,7 @@ and this one was the English a form in another language still spoke in
4165
4179
  the bubble it raises on submit: `feedback` replaces the message under
4166
4180
  the field and does not reach that one. */
4167
4181
  "value-missing-message"?: (HelixHeadlessFileInput["valueMissingMessage"]) | undefined;
4168
- /** What a reader is told when the field is required and empty, where the
4169
- page says.
4182
+ /** The message shown when the field is required and empty.
4170
4183
 
4171
4184
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4172
4185
  set and the browser's own on a text field, which the browser writes in
@@ -4175,7 +4188,7 @@ and this one was the English a form in another language still spoke in
4175
4188
  the bubble it raises on submit: `feedback` replaces the message under
4176
4189
  the field and does not reach that one. */
4177
4190
  valueMissingMessage?: (HelixHeadlessFileInput["valueMissingMessage"]) | undefined;
4178
- /** Whether the control is non-interactive.
4191
+ /** Whether the control is disabled and cannot be used.
4179
4192
 
4180
4193
  Reflected, because the styled tier selects on it, and mirrored to
4181
4194
  `aria-disabled` rather than removing the element from the accessibility
@@ -4184,7 +4197,7 @@ tree, so a screen reader can still announce that the control exists.
4184
4197
  The mirror itself is in `willUpdate` below, here rather than in each
4185
4198
  control, because here is where `disabled` is. */
4186
4199
  disabled?: (HelixHeadlessFileInput["disabled"]) | undefined;
4187
- /** Name submitted with the form.
4200
+ /** The name the control's value is submitted under.
4188
4201
 
4189
4202
  **Reflected, and it is the exception to "reflect only what CSS selects
4190
4203
  on".** The platform builds a form's entry list from the `name` *content
@@ -4266,16 +4279,16 @@ nothing between them, because a word every chip carries is a word nobody
4266
4279
  reads. The moment somebody picks a different comparison it appears, which
4267
4280
  makes an unusual filter look unusual. */
4268
4281
  operatorLabel?: (HelixHeadlessFilterChip["operatorLabel"]) | undefined;
4269
- /** Whether it offers a control to take it away. */
4282
+ /** Whether the element shows a control that dismisses it. */
4270
4283
  dismissible?: (HelixHeadlessFilterChip["dismissible"]) | undefined;
4271
- /** Accessible name for that control.
4284
+ /** The dismiss control's label, read by screen readers.
4272
4285
 
4273
4286
  `attribute` is spelled out because Lit lowercases a property name to
4274
4287
  derive one rather than dash-casing it, so this would otherwise be
4275
4288
  reachable only as `dismisslabel`, which nobody would guess and no linter
4276
4289
  would catch. */
4277
4290
  "dismiss-label"?: (HelixHeadlessFilterChip["dismissLabel"]) | undefined;
4278
- /** Accessible name for that control.
4291
+ /** The dismiss control's label, read by screen readers.
4279
4292
 
4280
4293
  `attribute` is spelled out because Lit lowercases a property name to
4281
4294
  derive one rather than dash-casing it, so this would otherwise be
@@ -4417,9 +4430,9 @@ them. */
4417
4430
 
4418
4431
  Not a label: it goes when typing starts. */
4419
4432
  placeholder?: (HelixHeadlessFilterInput["placeholder"]) | undefined;
4420
- /** Whether the markup declared it open. Ignored once `open` is written. */
4433
+ /** Whether the element starts open. Ignored once `open` is written. */
4421
4434
  "default-open"?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
4422
- /** Whether the markup declared it open. Ignored once `open` is written. */
4435
+ /** Whether the element starts open. Ignored once `open` is written. */
4423
4436
  defaultOpen?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
4424
4437
  /** Whether the element is open.
4425
4438
 
@@ -4434,41 +4447,44 @@ hydration, or diffed by a framework, it comes back holding whatever the
4434
4447
  last reader did rather than what the author wrote. `:state(open)` carries
4435
4448
  the resolved state for stylesheets, which is what the mirror is for. */
4436
4449
  open?: (HelixHeadlessFilterInput["open"]) | undefined;
4437
- /** What the control is called once everything is showing. */
4450
+ /** The button's label, read by screen readers, once every token is showing. */
4438
4451
  "collapse-label"?: (HelixHeadlessFilterInput["collapseLabel"]) | undefined;
4439
- /** What the control is called once everything is showing. */
4452
+ /** The button's label, read by screen readers, once every token is showing. */
4440
4453
  collapseLabel?: (HelixHeadlessFilterInput["collapseLabel"]) | undefined;
4441
- /** Whether the count is a control that shows the rest. */
4454
+ /** Whether the count is a button that shows the hidden tokens. */
4442
4455
  expandable?: (HelixHeadlessFilterInput["expandable"]) | undefined;
4443
- /** What the collapsed count is called, since `+3` names nothing. */
4456
+ /** The count button's label, read by screen readers. Its visible text, such
4457
+ as `+3`, does not say what it does. */
4444
4458
  "expand-label"?: (HelixHeadlessFilterInput["expandLabel"]) | undefined;
4445
- /** What the collapsed count is called, since `+3` names nothing. */
4459
+ /** The count button's label, read by screen readers. Its visible text, such
4460
+ as `+3`, does not say what it does. */
4446
4461
  expandLabel?: (HelixHeadlessFilterInput["expandLabel"]) | undefined;
4447
4462
  /** How many tokens to show before the rest become a count. */
4448
4463
  "max-tags"?: (HelixHeadlessFilterInput["maxTags"] | `${number}`) | undefined;
4449
4464
  /** How many tokens to show before the rest become a count. */
4450
4465
  maxTags?: (HelixHeadlessFilterInput["maxTags"]) | undefined;
4451
- /** The value the markup declared, which is where a reset returns to. */
4466
+ /** The value the control starts with. A form reset returns it to this value. */
4452
4467
  "default-value"?: (HelixHeadlessFilterInput["defaultValue"]) | undefined;
4453
- /** The value the markup declared, which is where a reset returns to. */
4468
+ /** The value the control starts with. A form reset returns it to this value. */
4454
4469
  defaultValue?: (HelixHeadlessFilterInput["defaultValue"]) | undefined;
4455
- /** What the control holds now, and what its form submits.
4470
+ /** The control's current value, which its form submits.
4456
4471
 
4457
4472
  One property, not two, so `input.value` answers the question anyone
4458
4473
  asking it meant. Writing always applies; `<helix-input value="x">` is the
4459
4474
  same statement in markup, and `default-value` is how markup seeds a value
4460
4475
  a reset should return to. */
4461
4476
  value?: (HelixHeadlessFilterInput["value"]) | undefined;
4462
- /** What is wrong, in the reader's words rather than the browser's. */
4477
+ /** The validation message shown under the control. It replaces the
4478
+ browser's message. */
4463
4479
  feedback?: (HelixHeadlessFilterInput["feedback"]) | undefined;
4464
- /** Help under the control, shown while there is nothing wrong. */
4480
+ /** Help text shown under the control. A validation message replaces it. */
4465
4481
  hint?: (HelixHeadlessFilterInput["hint"]) | undefined;
4466
- /** The accessible name, and the fallback for the `label` slot. */
4482
+ /** The field's label, which is also its accessible name. Content in the
4483
+ `label` slot replaces it. */
4467
4484
  label?: (HelixHeadlessFilterInput["label"]) | undefined;
4468
- /** Whether the form refuses to submit without it. */
4485
+ /** Whether the field needs a value before the form can submit. */
4469
4486
  required?: (HelixHeadlessFilterInput["required"]) | undefined;
4470
- /** What a reader is told when the field is required and empty, where the
4471
- page says.
4487
+ /** The message shown when the field is required and empty.
4472
4488
 
4473
4489
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4474
4490
  set and the browser's own on a text field, which the browser writes in
@@ -4477,8 +4493,7 @@ and this one was the English a form in another language still spoke in
4477
4493
  the bubble it raises on submit: `feedback` replaces the message under
4478
4494
  the field and does not reach that one. */
4479
4495
  "value-missing-message"?: (HelixHeadlessFilterInput["valueMissingMessage"]) | undefined;
4480
- /** What a reader is told when the field is required and empty, where the
4481
- page says.
4496
+ /** The message shown when the field is required and empty.
4482
4497
 
4483
4498
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4484
4499
  set and the browser's own on a text field, which the browser writes in
@@ -4487,7 +4502,7 @@ and this one was the English a form in another language still spoke in
4487
4502
  the bubble it raises on submit: `feedback` replaces the message under
4488
4503
  the field and does not reach that one. */
4489
4504
  valueMissingMessage?: (HelixHeadlessFilterInput["valueMissingMessage"]) | undefined;
4490
- /** Whether the control is non-interactive.
4505
+ /** Whether the control is disabled and cannot be used.
4491
4506
 
4492
4507
  Reflected, because the styled tier selects on it, and mirrored to
4493
4508
  `aria-disabled` rather than removing the element from the accessibility
@@ -4496,7 +4511,7 @@ tree, so a screen reader can still announce that the control exists.
4496
4511
  The mirror itself is in `willUpdate` below, here rather than in each
4497
4512
  control, because here is where `disabled` is. */
4498
4513
  disabled?: (HelixHeadlessFilterInput["disabled"]) | undefined;
4499
- /** Name submitted with the form.
4514
+ /** The name the control's value is submitted under.
4500
4515
 
4501
4516
  **Reflected, and it is the exception to "reflect only what CSS selects
4502
4517
  on".** The platform builds a form's entry list from the `name` *content
@@ -4687,7 +4702,7 @@ shadow root reads a table in that root rather than one in the document. A
4687
4702
  **In React this arrives as a property and not as an attribute**, the way
4688
4703
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
4689
4704
  for?: (HelixHeadlessHeatmap["for"]) | undefined;
4690
- /** The drawing's name, for a pointer resting on it.
4705
+ /** The chart's name, which starts the chart's text summary.
4691
4706
 
4692
4707
  Absent falls back to the table's own caption, which is usually the right
4693
4708
  words and is already written. */
@@ -4788,7 +4803,7 @@ synchronous call.
4788
4803
  clipboard, which is not this and is why it is declared there rather than
4789
4804
  inherited. */
4790
4805
  value?: (HelixHeadlessIconButton["value"]) | undefined;
4791
- /** Whether the control is non-interactive.
4806
+ /** Whether the control is disabled and cannot be used.
4792
4807
 
4793
4808
  Reflected, because the styled tier selects on it, and mirrored to
4794
4809
  `aria-disabled` rather than removing the element from the accessibility
@@ -4797,7 +4812,7 @@ tree, so a screen reader can still announce that the control exists.
4797
4812
  The mirror itself is in `willUpdate` below, here rather than in each
4798
4813
  control, because here is where `disabled` is. */
4799
4814
  disabled?: (HelixHeadlessIconButton["disabled"]) | undefined;
4800
- /** Name submitted with the form.
4815
+ /** The name the control's value is submitted under.
4801
4816
 
4802
4817
  **Reflected, and it is the exception to "reflect only what CSS selects
4803
4818
  on".** The platform builds a form's entry list from the `name` *content
@@ -5072,27 +5087,28 @@ Nothing reads it from the attribute either. The real `<input>` inside takes
5072
5087
  it as a property binding, which is what makes the keyboard and the
5073
5088
  validation follow. */
5074
5089
  type?: (HelixHeadlessInput["type"]) | undefined;
5075
- /** The value the markup declared, which is where a reset returns to. */
5090
+ /** The value the control starts with. A form reset returns it to this value. */
5076
5091
  "default-value"?: (HelixHeadlessInput["defaultValue"]) | undefined;
5077
- /** The value the markup declared, which is where a reset returns to. */
5092
+ /** The value the control starts with. A form reset returns it to this value. */
5078
5093
  defaultValue?: (HelixHeadlessInput["defaultValue"]) | undefined;
5079
- /** What the control holds now, and what its form submits.
5094
+ /** The control's current value, which its form submits.
5080
5095
 
5081
5096
  One property, not two, so `input.value` answers the question anyone
5082
5097
  asking it meant. Writing always applies; `<helix-input value="x">` is the
5083
5098
  same statement in markup, and `default-value` is how markup seeds a value
5084
5099
  a reset should return to. */
5085
5100
  value?: (HelixHeadlessInput["value"]) | undefined;
5086
- /** What is wrong, in the reader's words rather than the browser's. */
5101
+ /** The validation message shown under the control. It replaces the
5102
+ browser's message. */
5087
5103
  feedback?: (HelixHeadlessInput["feedback"]) | undefined;
5088
- /** Help under the control, shown while there is nothing wrong. */
5104
+ /** Help text shown under the control. A validation message replaces it. */
5089
5105
  hint?: (HelixHeadlessInput["hint"]) | undefined;
5090
- /** The accessible name, and the fallback for the `label` slot. */
5106
+ /** The field's label, which is also its accessible name. Content in the
5107
+ `label` slot replaces it. */
5091
5108
  label?: (HelixHeadlessInput["label"]) | undefined;
5092
- /** Whether the form refuses to submit without it. */
5109
+ /** Whether the field needs a value before the form can submit. */
5093
5110
  required?: (HelixHeadlessInput["required"]) | undefined;
5094
- /** What a reader is told when the field is required and empty, where the
5095
- page says.
5111
+ /** The message shown when the field is required and empty.
5096
5112
 
5097
5113
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5098
5114
  set and the browser's own on a text field, which the browser writes in
@@ -5101,8 +5117,7 @@ and this one was the English a form in another language still spoke in
5101
5117
  the bubble it raises on submit: `feedback` replaces the message under
5102
5118
  the field and does not reach that one. */
5103
5119
  "value-missing-message"?: (HelixHeadlessInput["valueMissingMessage"]) | undefined;
5104
- /** What a reader is told when the field is required and empty, where the
5105
- page says.
5120
+ /** The message shown when the field is required and empty.
5106
5121
 
5107
5122
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5108
5123
  set and the browser's own on a text field, which the browser writes in
@@ -5111,7 +5126,7 @@ and this one was the English a form in another language still spoke in
5111
5126
  the bubble it raises on submit: `feedback` replaces the message under
5112
5127
  the field and does not reach that one. */
5113
5128
  valueMissingMessage?: (HelixHeadlessInput["valueMissingMessage"]) | undefined;
5114
- /** Whether the control is non-interactive.
5129
+ /** Whether the control is disabled and cannot be used.
5115
5130
 
5116
5131
  Reflected, because the styled tier selects on it, and mirrored to
5117
5132
  `aria-disabled` rather than removing the element from the accessibility
@@ -5120,7 +5135,7 @@ tree, so a screen reader can still announce that the control exists.
5120
5135
  The mirror itself is in `willUpdate` below, here rather than in each
5121
5136
  control, because here is where `disabled` is. */
5122
5137
  disabled?: (HelixHeadlessInput["disabled"]) | undefined;
5123
- /** Name submitted with the form.
5138
+ /** The name the control's value is submitted under.
5124
5139
 
5125
5140
  **Reflected, and it is the exception to "reflect only what CSS selects
5126
5141
  on".** The platform builds a form's entry list from the `name` *content
@@ -5289,7 +5304,7 @@ Announced rather than only drawn, because the picture changing under a
5289
5304
  reader who cannot see it is otherwise silent. A consumer who has their own
5290
5305
  counter in the chrome can empty this and say it themselves. */
5291
5306
  statusLabel?: (HelixHeadlessLightbox["statusLabel"]) | undefined;
5292
- /** Which item is current, by its `value`.
5307
+ /** The `value` of the current item.
5293
5308
 
5294
5309
  Not `option.active`, which is the option the keyboard is on: that is a
5295
5310
  different question from which one is chosen.
@@ -5298,17 +5313,17 @@ Writing always applies, so `<helix-tabs active="one">` starts on that
5298
5313
  tab, and `default-active` is how markup says where to start without
5299
5314
  naming the current one. */
5300
5315
  active?: (HelixHeadlessLightbox["active"]) | undefined;
5301
- /** Which item the markup declared current.
5316
+ /** The `value` of the item declared current in markup.
5302
5317
 
5303
5318
  Ignored once `active` is written. */
5304
5319
  "default-active"?: (HelixHeadlessLightbox["defaultActive"]) | undefined;
5305
- /** Which item the markup declared current.
5320
+ /** The `value` of the item declared current in markup.
5306
5321
 
5307
5322
  Ignored once `active` is written. */
5308
5323
  defaultActive?: (HelixHeadlessLightbox["defaultActive"]) | undefined;
5309
- /** Whether the markup declared it open. Ignored once `open` is written. */
5324
+ /** Whether the element starts open. Ignored once `open` is written. */
5310
5325
  "default-open"?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
5311
- /** Whether the markup declared it open. Ignored once `open` is written. */
5326
+ /** Whether the element starts open. Ignored once `open` is written. */
5312
5327
  defaultOpen?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
5313
5328
  /** Whether the element is open.
5314
5329
 
@@ -5443,7 +5458,7 @@ shadow root reads a table in that root rather than one in the document. A
5443
5458
  **In React this arrives as a property and not as an attribute**, the way
5444
5459
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
5445
5460
  for?: (HelixHeadlessLineChart["for"]) | undefined;
5446
- /** The drawing's name, for a pointer resting on it.
5461
+ /** The chart's name, which starts the chart's text summary.
5447
5462
 
5448
5463
  Absent falls back to the table's own caption, which is usually the right
5449
5464
  words and is already written. */
@@ -5570,37 +5585,38 @@ own search boxes would be three copies of one field. */
5570
5585
  filterLabel?: (HelixHeadlessListbox["filterLabel"]) | undefined;
5571
5586
  /** Whether more than one option can be the answer. */
5572
5587
  multiple?: (HelixHeadlessListbox["multiple"]) | undefined;
5573
- /** Whether the rows are still on their way.
5588
+ /** Whether the rows are still loading.
5574
5589
 
5575
5590
  Reflected, because a stylesheet needs it: the rows that are already there
5576
5591
  are dimmed rather than removed while a new set arrives, and only CSS can
5577
5592
  say that without the component knowing what a row looks like. */
5578
5593
  loading?: (HelixHeadlessListbox["loading"]) | undefined;
5579
- /** What is said while they are on their way. */
5594
+ /** The text shown and announced while the rows load. */
5580
5595
  "loading-text"?: (HelixHeadlessListbox["loadingText"]) | undefined;
5581
- /** What is said while they are on their way. */
5596
+ /** The text shown and announced while the rows load. */
5582
5597
  loadingText?: (HelixHeadlessListbox["loadingText"]) | undefined;
5583
- /** The value the markup declared, which is where a reset returns to. */
5598
+ /** The value the control starts with. A form reset returns it to this value. */
5584
5599
  "default-value"?: (HelixHeadlessListbox["defaultValue"]) | undefined;
5585
- /** The value the markup declared, which is where a reset returns to. */
5600
+ /** The value the control starts with. A form reset returns it to this value. */
5586
5601
  defaultValue?: (HelixHeadlessListbox["defaultValue"]) | undefined;
5587
- /** What the control holds now, and what its form submits.
5602
+ /** The control's current value, which its form submits.
5588
5603
 
5589
5604
  One property, not two, so `input.value` answers the question anyone
5590
5605
  asking it meant. Writing always applies; `<helix-input value="x">` is the
5591
5606
  same statement in markup, and `default-value` is how markup seeds a value
5592
5607
  a reset should return to. */
5593
5608
  value?: (HelixHeadlessListbox["value"]) | undefined;
5594
- /** What is wrong, in the reader's words rather than the browser's. */
5609
+ /** The validation message shown under the control. It replaces the
5610
+ browser's message. */
5595
5611
  feedback?: (HelixHeadlessListbox["feedback"]) | undefined;
5596
- /** Help under the control, shown while there is nothing wrong. */
5612
+ /** Help text shown under the control. A validation message replaces it. */
5597
5613
  hint?: (HelixHeadlessListbox["hint"]) | undefined;
5598
- /** The accessible name, and the fallback for the `label` slot. */
5614
+ /** The field's label, which is also its accessible name. Content in the
5615
+ `label` slot replaces it. */
5599
5616
  label?: (HelixHeadlessListbox["label"]) | undefined;
5600
- /** Whether the form refuses to submit without it. */
5617
+ /** Whether the field needs a value before the form can submit. */
5601
5618
  required?: (HelixHeadlessListbox["required"]) | undefined;
5602
- /** What a reader is told when the field is required and empty, where the
5603
- page says.
5619
+ /** The message shown when the field is required and empty.
5604
5620
 
5605
5621
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5606
5622
  set and the browser's own on a text field, which the browser writes in
@@ -5609,8 +5625,7 @@ and this one was the English a form in another language still spoke in
5609
5625
  the bubble it raises on submit: `feedback` replaces the message under
5610
5626
  the field and does not reach that one. */
5611
5627
  "value-missing-message"?: (HelixHeadlessListbox["valueMissingMessage"]) | undefined;
5612
- /** What a reader is told when the field is required and empty, where the
5613
- page says.
5628
+ /** The message shown when the field is required and empty.
5614
5629
 
5615
5630
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5616
5631
  set and the browser's own on a text field, which the browser writes in
@@ -5619,7 +5634,7 @@ and this one was the English a form in another language still spoke in
5619
5634
  the bubble it raises on submit: `feedback` replaces the message under
5620
5635
  the field and does not reach that one. */
5621
5636
  valueMissingMessage?: (HelixHeadlessListbox["valueMissingMessage"]) | undefined;
5622
- /** Whether the control is non-interactive.
5637
+ /** Whether the control is disabled and cannot be used.
5623
5638
 
5624
5639
  Reflected, because the styled tier selects on it, and mirrored to
5625
5640
  `aria-disabled` rather than removing the element from the accessibility
@@ -5628,7 +5643,7 @@ tree, so a screen reader can still announce that the control exists.
5628
5643
  The mirror itself is in `willUpdate` below, here rather than in each
5629
5644
  control, because here is where `disabled` is. */
5630
5645
  disabled?: (HelixHeadlessListbox["disabled"]) | undefined;
5631
- /** Name submitted with the form.
5646
+ /** The name the control's value is submitted under.
5632
5647
 
5633
5648
  **Reflected, and it is the exception to "reflect only what CSS selects
5634
5649
  on".** The platform builds a form's entry list from the `name` *content
@@ -5676,33 +5691,186 @@ export type HelixHeadlessLoaderVueProps = {
5676
5691
 
5677
5692
  export type HelixHeadlessLoaderVueEvents = {};
5678
5693
 
5694
+ /** `HelixHeadlessMapArea` component event */
5695
+ export type HelixHeadlessMapAreaElementEvent<E = Event> = TypedEvent<
5696
+ HelixHeadlessMapArea,
5697
+ E
5698
+ >;
5699
+ /** `helix-map-part-change` event type */
5700
+ export type HelixHeadlessMapAreaHelixMapPartChangeElementEvent =
5701
+ HelixHeadlessMapAreaElementEvent<HelixMapPartChangeEvent>;
5702
+
5703
+ export type HelixHeadlessMapAreaVueProps = {
5704
+ /** More about the area. Read after its label in the frame's list. */
5705
+ description?: (HelixHeadlessMapArea["description"]) | undefined;
5706
+ /** The area's name, used in the frame's list. */
5707
+ label?: (HelixHeadlessMapArea["label"]) | undefined;
5708
+ /** The corners of the shape, in order. The last point connects back to the
5709
+ first. */
5710
+ points?: (HelixHeadlessMapArea["points"]) | undefined;
5711
+ };
5712
+
5713
+ export type HelixHeadlessMapAreaVueEvents = {
5714
+ /** The area's points, name, or color changed. Used by `connectMap`; pages do not need to listen for it. */
5715
+ "helix-map-part-change": HelixHeadlessMapAreaHelixMapPartChangeElementEvent;
5716
+ };
5717
+
5718
+ /** `HelixHeadlessMapMarker` component event */
5719
+ export type HelixHeadlessMapMarkerElementEvent<E = Event> = TypedEvent<
5720
+ HelixHeadlessMapMarker,
5721
+ E
5722
+ >;
5723
+ /** `helix-map-cluster` event type */
5724
+ export type HelixHeadlessMapMarkerHelixMapClusterElementEvent =
5725
+ HelixHeadlessMapMarkerElementEvent<HelixMapClusterEvent>;
5726
+ /** `helix-map-part-change` event type */
5727
+ export type HelixHeadlessMapMarkerHelixMapPartChangeElementEvent =
5728
+ HelixHeadlessMapMarkerElementEvent<HelixMapPartChangeEvent>;
5729
+
5730
+ export type HelixHeadlessMapMarkerVueProps = {
5731
+ /** The place's name. Shown next to the marker and read by screen readers. */
5732
+ label?: (HelixHeadlessMapMarker["label"]) | undefined;
5733
+ /** Latitude, in degrees. A marker without both `lat` and `lng` is not shown. */
5734
+ lat?: (HelixHeadlessMapMarker["lat"]) | undefined;
5735
+ /** Longitude, in degrees. */
5736
+ lng?: (HelixHeadlessMapMarker["lng"]) | undefined;
5737
+ /** The value `helix-activate` reports. Defaults to the label. */
5738
+ name?: (HelixHeadlessMapMarker["name"]) | undefined;
5739
+ /** Marks the place as passed, such as a stop already visited. The marker is
5740
+ drawn muted, and its name is followed by `passed-label`. */
5741
+ passed?: (HelixHeadlessMapMarker["passed"]) | undefined;
5742
+ /** The word added after a passed place's name. Defaults to "passed". */
5743
+ "passed-label"?: (HelixHeadlessMapMarker["passedLabel"]) | undefined;
5744
+ /** The word added after a passed place's name. Defaults to "passed". */
5745
+ passedLabel?: (HelixHeadlessMapMarker["passedLabel"]) | undefined;
5746
+ };
5747
+
5748
+ export type HelixHeadlessMapMarkerVueEvents = {
5749
+ /** This marker shows a cluster and was pressed. `connectMap` zooms in to its places. */
5750
+ "helix-map-cluster": HelixHeadlessMapMarkerHelixMapClusterElementEvent;
5751
+ /** The marker moved or was renamed. Used by `connectMap`; pages do not need to listen for it. */
5752
+ "helix-map-part-change": HelixHeadlessMapMarkerHelixMapPartChangeElementEvent;
5753
+ };
5754
+
5755
+ /** `HelixHeadlessMapPoints` component event */
5756
+ export type HelixHeadlessMapPointsElementEvent<E = Event> = TypedEvent<
5757
+ HelixHeadlessMapPoints,
5758
+ E
5759
+ >;
5760
+ /** `helix-activate` event type */
5761
+ export type HelixHeadlessMapPointsHelixActivateElementEvent =
5762
+ HelixHeadlessMapPointsElementEvent<HelixActivateEvent>;
5763
+ /** `helix-map-cluster` event type */
5764
+ export type HelixHeadlessMapPointsHelixMapClusterElementEvent =
5765
+ HelixHeadlessMapPointsElementEvent<HelixMapClusterEvent>;
5766
+ /** `helix-map-part-change` event type */
5767
+ export type HelixHeadlessMapPointsHelixMapPartChangeElementEvent =
5768
+ HelixHeadlessMapPointsElementEvent<HelixMapPartChangeEvent>;
5769
+
5770
+ export type HelixHeadlessMapPointsVueProps = {
5771
+ /** Combines nearby points into counts. Pressing a count zooms in to it. */
5772
+ cluster?: (HelixHeadlessMapPoints["cluster"]) | undefined;
5773
+ /** The name read for a count. `{count}` is replaced by the number of places.
5774
+ Defaults to "{count} places". */
5775
+ "count-label"?: (HelixHeadlessMapPoints["countLabel"]) | undefined;
5776
+ /** The name read for a count. `{count}` is replaced by the number of places.
5777
+ Defaults to "{count} places". */
5778
+ countLabel?: (HelixHeadlessMapPoints["countLabel"]) | undefined;
5779
+ /** More about the points, such as how many there are. Read after the label in
5780
+ the frame's list. */
5781
+ description?: (HelixHeadlessMapPoints["description"]) | undefined;
5782
+ /** The layer's name, used in the frame's list. */
5783
+ label?: (HelixHeadlessMapPoints["label"]) | undefined;
5784
+ /** The GeoJSON property each point is named by. Defaults to `name`. */
5785
+ "name-key"?: (HelixHeadlessMapPoints["nameKey"]) | undefined;
5786
+ /** The GeoJSON property each point is named by. Defaults to `name`. */
5787
+ nameKey?: (HelixHeadlessMapPoints["nameKey"]) | undefined;
5788
+ /** A GeoJSON file of points to load. Ignored when `data` is set. */
5789
+ src?: (HelixHeadlessMapPoints["src"]) | undefined;
5790
+ /** The points, as a GeoJSON collection or a list of `{ lat, lng, label, id }`
5791
+ places. */
5792
+ data?: (HelixHeadlessMapPoints["data"]) | undefined;
5793
+ };
5794
+
5795
+ export type HelixHeadlessMapPointsVueEvents = {
5796
+ /** A point in view was pressed. The value is its id, or its name if it has no id. */
5797
+ "helix-activate": HelixHeadlessMapPointsHelixActivateElementEvent;
5798
+ /** A count in view was pressed from the keyboard. `connectMap` zooms in to it. */
5799
+ "helix-map-cluster": HelixHeadlessMapPointsHelixMapClusterElementEvent;
5800
+ /** The points, name, or color changed. Used by `connectMap`; pages do not need to listen for it. */
5801
+ "helix-map-part-change": HelixHeadlessMapPointsHelixMapPartChangeElementEvent;
5802
+ };
5803
+
5804
+ /** `HelixHeadlessMapPosition` component event */
5805
+ export type HelixHeadlessMapPositionElementEvent<E = Event> = TypedEvent<
5806
+ HelixHeadlessMapPosition,
5807
+ E
5808
+ >;
5809
+ /** `helix-map-part-change` event type */
5810
+ export type HelixHeadlessMapPositionHelixMapPartChangeElementEvent =
5811
+ HelixHeadlessMapPositionElementEvent<HelixMapPartChangeEvent>;
5812
+
5813
+ export type HelixHeadlessMapPositionVueProps = {
5814
+ /** How accurate the position is, in meters. Drawn as a ring with this radius. */
5815
+ accuracy?: (HelixHeadlessMapPosition["accuracy"]) | undefined;
5816
+ /** The least time between announcements, in milliseconds. A change during the
5817
+ wait is announced when the wait ends. */
5818
+ "announce-every"?: (HelixHeadlessMapPosition["announceEvery"] | `${number}`) | undefined;
5819
+ /** The least time between announcements, in milliseconds. A change during the
5820
+ wait is announced when the wait ends. */
5821
+ announceEvery?: (HelixHeadlessMapPosition["announceEvery"]) | undefined;
5822
+ /** What screen readers announce when it changes, such as "Two stops away". */
5823
+ description?: (HelixHeadlessMapPosition["description"]) | undefined;
5824
+ /** The direction it faces, in degrees clockwise from north. Shows an arrow. */
5825
+ heading?: (HelixHeadlessMapPosition["heading"]) | undefined;
5826
+ /** What it is, such as "Van 12". Read by screen readers. */
5827
+ label?: (HelixHeadlessMapPosition["label"]) | undefined;
5828
+ /** Latitude, in degrees. */
5829
+ lat?: (HelixHeadlessMapPosition["lat"]) | undefined;
5830
+ /** Longitude, in degrees. */
5831
+ lng?: (HelixHeadlessMapPosition["lng"]) | undefined;
5832
+ };
5833
+
5834
+ export type HelixHeadlessMapPositionVueEvents = {
5835
+ /** It moved, turned, or its accuracy changed. Used by `connectMap`; pages do not need to listen for it. */
5836
+ "helix-map-part-change": HelixHeadlessMapPositionHelixMapPartChangeElementEvent;
5837
+ };
5838
+
5679
5839
  /** `HelixHeadlessMap` component event */
5680
5840
  export type HelixHeadlessMapElementEvent<E = Event> = TypedEvent<
5681
5841
  HelixHeadlessMap,
5682
5842
  E
5683
5843
  >;
5844
+ /** `helix-activate` event type */
5845
+ export type HelixHeadlessMapHelixActivateElementEvent =
5846
+ HelixHeadlessMapElementEvent<HelixActivateEvent>;
5847
+ /** `helix-map-cluster` event type */
5848
+ export type HelixHeadlessMapHelixMapClusterElementEvent =
5849
+ HelixHeadlessMapElementEvent<HelixMapClusterEvent>;
5684
5850
  /** `helix-map-pan` event type */
5685
5851
  export type HelixHeadlessMapHelixMapPanElementEvent =
5686
5852
  HelixHeadlessMapElementEvent<HelixMapPanEvent>;
5853
+ /** `helix-map-part-change` event type */
5854
+ export type HelixHeadlessMapHelixMapPartChangeElementEvent =
5855
+ HelixHeadlessMapElementEvent<HelixMapPartChangeEvent>;
5687
5856
  /** `helix-map-zoom` event type */
5688
5857
  export type HelixHeadlessMapHelixMapZoomElementEvent =
5689
5858
  HelixHeadlessMapElementEvent<HelixMapZoomEvent>;
5690
5859
 
5691
5860
  export type HelixHeadlessMapVueProps = {
5692
- /** Accessible name for the map, which is the one thing a consumer must write.
5693
-
5694
- There is no sensible default. "Map" names the widget rather than the place,
5695
- and a reader meeting three of them on a page learns nothing from hearing the
5696
- same word three times.
5697
-
5698
- **The region is a tab stop**, so the keys are reachable however the controls
5699
- are configured: the listener is on the region, and without a stop of its own
5700
- a frame at `controls="none"` around a map with nothing focusable in it had
5701
- arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
5702
- rather than spelling them into the name, which would otherwise be read out
5703
- at every encounter. */
5861
+ /** Combines markers that would overlap into one count. Counts split apart as
5862
+ the map zooms in, and pressing one zooms in to its places. */
5863
+ cluster?: (HelixHeadlessMap["cluster"]) | undefined;
5864
+ /** The map's name, read by screen readers. Name the place, such as "Delivery
5865
+ area", so that several maps on one page can be told apart. Required. */
5704
5866
  label?: (HelixHeadlessMap["label"]) | undefined;
5705
- /** Which of the controls this surface draws, as a list of what to keep.
5867
+ /** The name of the list of routes, areas, and points layers, read by screen
5868
+ readers. */
5869
+ "layers-label"?: (HelixHeadlessMap["layersLabel"]) | undefined;
5870
+ /** The name of the list of routes, areas, and points layers, read by screen
5871
+ readers. */
5872
+ layersLabel?: (HelixHeadlessMap["layersLabel"]) | undefined;
5873
+ /** Which controls to show, as a list of `pan`, `zoom`, and `fullscreen`, or `none`.
5706
5874
 
5707
5875
  **A list rather than a switch, because the overlap is not symmetric.** A
5708
5876
  surface a consumer brings often has zoom controls of its own and almost
@@ -5722,14 +5890,14 @@ board, which a reader drags and whose pad took a third of the frame. The
5722
5890
  stylesheet lays the cluster out by which buttons are in it rather than by
5723
5891
  this attribute, so the two defaults need no rule each. */
5724
5892
  controls?: (HelixHeadlessMap["controls"]) | undefined;
5725
- /** What the group of controls is called, for a reader who meets it.
5893
+ /** The name of the group of controls, read by screen readers.
5726
5894
 
5727
5895
  Absent is the family's own name for it, "Map controls" or "Board
5728
5896
  controls", which names what the controls drive rather than the
5729
5897
  mechanism. Written here to say it in another language, which every other
5730
5898
  string this surface speaks already allowed and this one did not. */
5731
5899
  "controls-label"?: (HelixHeadlessMap["controlsLabel"]) | undefined;
5732
- /** What the group of controls is called, for a reader who meets it.
5900
+ /** The name of the group of controls, read by screen readers.
5733
5901
 
5734
5902
  Absent is the family's own name for it, "Map controls" or "Board
5735
5903
  controls", which names what the controls drive rather than the
@@ -5760,25 +5928,25 @@ them without a consumer writing a second rule. Absent is the top end, a
5760
5928
  resting value being an attribute's absence: a default that reflected
5761
5929
  would write an attribute onto every host that no server sent. */
5762
5930
  controlsPlacement?: (HelixHeadlessMap["controlsPlacement"]) | undefined;
5763
- /** What the control that fills the screen is called. */
5931
+ /** The fullscreen button's label. */
5764
5932
  "fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
5765
- /** What the control that fills the screen is called. */
5933
+ /** The fullscreen button's label. */
5766
5934
  fullscreenLabel?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
5767
- /** How long the reader may be still before the chrome hides, in milliseconds.
5935
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
5768
5936
 
5769
5937
  Zero keeps it up, which is the default: these controls are how a keyboard
5770
5938
  reader operates the surface, and chrome that hid itself by default would
5771
5939
  be the component undoing its own argument. Set it for a display nobody
5772
5940
  drives. */
5773
5941
  "idle-delay"?: (HelixHeadlessMap["idleDelay"] | `${number}`) | undefined;
5774
- /** How long the reader may be still before the chrome hides, in milliseconds.
5942
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
5775
5943
 
5776
5944
  Zero keeps it up, which is the default: these controls are how a keyboard
5777
5945
  reader operates the surface, and chrome that hid itself by default would
5778
5946
  be the component undoing its own argument. Set it for a display nobody
5779
5947
  drives. */
5780
5948
  idleDelay?: (HelixHeadlessMap["idleDelay"]) | undefined;
5781
- /** What the control that pans down is called.
5949
+ /** The pan down button's label.
5782
5950
 
5783
5951
  **A label for each way rather than one with the way filled in**, which is
5784
5952
  what this was: `Pan {way}` filled in with `left`, so a page that said it
@@ -5786,7 +5954,7 @@ in French read out "Déplacer left". The word for a direction is as much
5786
5954
  the translator's as the word for panning, and a language can put it
5787
5955
  anywhere in the phrase. */
5788
5956
  "pan-down-label"?: (HelixHeadlessMap["panDownLabel"]) | undefined;
5789
- /** What the control that pans down is called.
5957
+ /** The pan down button's label.
5790
5958
 
5791
5959
  **A label for each way rather than one with the way filled in**, which is
5792
5960
  what this was: `Pan {way}` filled in with `left`, so a page that said it
@@ -5794,47 +5962,82 @@ in French read out "Déplacer left". The word for a direction is as much
5794
5962
  the translator's as the word for panning, and a language can put it
5795
5963
  anywhere in the phrase. */
5796
5964
  panDownLabel?: (HelixHeadlessMap["panDownLabel"]) | undefined;
5797
- /** What the control that pans left is called, on screen. */
5965
+ /** The pan left button's label. */
5798
5966
  "pan-left-label"?: (HelixHeadlessMap["panLeftLabel"]) | undefined;
5799
- /** What the control that pans left is called, on screen. */
5967
+ /** The pan left button's label. */
5800
5968
  panLeftLabel?: (HelixHeadlessMap["panLeftLabel"]) | undefined;
5801
- /** What the control that pans right is called, on screen. */
5969
+ /** The pan right button's label. */
5802
5970
  "pan-right-label"?: (HelixHeadlessMap["panRightLabel"]) | undefined;
5803
- /** What the control that pans right is called, on screen. */
5971
+ /** The pan right button's label. */
5804
5972
  panRightLabel?: (HelixHeadlessMap["panRightLabel"]) | undefined;
5805
- /** How far one press moves the view, as a fraction of what is on screen.
5973
+ /** How far one press pans the view, as a fraction of its size.
5806
5974
 
5807
5975
  A fraction rather than a distance, because this surface does not know the
5808
5976
  scale of what is inside it: a quarter of the viewport is the same gesture
5809
5977
  at any zoom, and a consumer who wants their own units multiplies by them. */
5810
5978
  "pan-step"?: (HelixHeadlessMap["panStep"] | `${number}`) | undefined;
5811
- /** How far one press moves the view, as a fraction of what is on screen.
5979
+ /** How far one press pans the view, as a fraction of its size.
5812
5980
 
5813
5981
  A fraction rather than a distance, because this surface does not know the
5814
5982
  scale of what is inside it: a quarter of the viewport is the same gesture
5815
5983
  at any zoom, and a consumer who wants their own units multiplies by them. */
5816
5984
  panStep?: (HelixHeadlessMap["panStep"]) | undefined;
5817
- /** What the control that pans up is called. */
5985
+ /** The pan up button's label. */
5818
5986
  "pan-up-label"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
5819
- /** What the control that pans up is called. */
5987
+ /** The pan up button's label. */
5820
5988
  panUpLabel?: (HelixHeadlessMap["panUpLabel"]) | undefined;
5821
- /** What the control that zooms in is called. */
5989
+ /** The zoom in button's label. */
5822
5990
  "zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
5823
- /** What the control that zooms in is called. */
5991
+ /** The zoom in button's label. */
5824
5992
  zoomInLabel?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
5825
- /** What the control that zooms out is called. */
5993
+ /** The zoom out button's label. */
5826
5994
  "zoom-out-label"?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
5827
- /** What the control that zooms out is called. */
5995
+ /** The zoom out button's label. */
5828
5996
  zoomOutLabel?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
5829
5997
  };
5830
5998
 
5831
5999
  export type HelixHeadlessMapVueEvents = {
5832
- /** The reader asked the map to move. Answer it against your own map. */
6000
+ /** A marker was pressed. The value is the marker's `name`, or its `label` if it has no name. A cluster sends `helix-map-cluster` instead. */
6001
+ "helix-activate": HelixHeadlessMapHelixActivateElementEvent;
6002
+ /** A cluster was pressed. Sent from the marker that shows the cluster, with the names of its places. */
6003
+ "helix-map-cluster": HelixHeadlessMapHelixMapClusterElementEvent;
6004
+ /** A pan button or arrow key was pressed. Move your map in response. */
5833
6005
  "helix-map-pan": HelixHeadlessMapHelixMapPanElementEvent;
5834
- /** The reader asked the map to zoom, by a direction rather than to a level. */
6006
+ /** Clustering was turned on or off. Used by `connectMap`; pages do not need to listen for it. */
6007
+ "helix-map-part-change": HelixHeadlessMapHelixMapPartChangeElementEvent;
6008
+ /** A zoom button or key was pressed, with a direction. Zoom your map in response. */
5835
6009
  "helix-map-zoom": HelixHeadlessMapHelixMapZoomElementEvent;
5836
6010
  };
5837
6011
 
6012
+ /** `HelixHeadlessMapRoute` component event */
6013
+ export type HelixHeadlessMapRouteElementEvent<E = Event> = TypedEvent<
6014
+ HelixHeadlessMapRoute,
6015
+ E
6016
+ >;
6017
+ /** `helix-map-part-change` event type */
6018
+ export type HelixHeadlessMapRouteHelixMapPartChangeElementEvent =
6019
+ HelixHeadlessMapRouteElementEvent<HelixMapPartChangeEvent>;
6020
+
6021
+ export type HelixHeadlessMapRouteVueProps = {
6022
+ /** More about the route, such as its distance or time. Read after its label
6023
+ in the frame's list. */
6024
+ description?: (HelixHeadlessMapRoute["description"]) | undefined;
6025
+ /** The route's name, used in the frame's list. */
6026
+ label?: (HelixHeadlessMapRoute["label"]) | undefined;
6027
+ /** The points the line passes through, in order. Write the attribute as
6028
+ `lat,lng` pairs separated by spaces, or set the property to an array of `{
6029
+ lat, lng }`. */
6030
+ points?: (HelixHeadlessMapRoute["points"]) | undefined;
6031
+ /** How much of the route has been traveled, from 0 to 1. The traveled part is
6032
+ drawn in a lighter color. */
6033
+ progress?: (HelixHeadlessMapRoute["progress"]) | undefined;
6034
+ };
6035
+
6036
+ export type HelixHeadlessMapRouteVueEvents = {
6037
+ /** The route's points, progress, name, or color changed. Used by `connectMap`; pages do not need to listen for it. */
6038
+ "helix-map-part-change": HelixHeadlessMapRouteHelixMapPartChangeElementEvent;
6039
+ };
6040
+
5838
6041
  /** `HelixHeadlessMegamenu` component event */
5839
6042
  export type HelixHeadlessMegamenuElementEvent<E = Event> = TypedEvent<
5840
6043
  HelixHeadlessMegamenu,
@@ -5933,9 +6136,9 @@ question; borrowing it here would put a third meaning on it.
5933
6136
  a word and a band under a header are two arrangements this family has, and
5934
6137
  no other family is being asked the same question. */
5935
6138
  variant?: (HelixHeadlessMegamenu["variant"]) | undefined;
5936
- /** Whether the markup declared it open. Ignored once `open` is written. */
6139
+ /** Whether the element starts open. Ignored once `open` is written. */
5937
6140
  "default-open"?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
5938
- /** Whether the markup declared it open. Ignored once `open` is written. */
6141
+ /** Whether the element starts open. Ignored once `open` is written. */
5939
6142
  defaultOpen?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
5940
6143
  /** Whether the element is open.
5941
6144
 
@@ -6077,23 +6280,23 @@ export type HelixHeadlessMenuVueProps = {
6077
6280
 
6078
6281
  It moves if that side does not fit. */
6079
6282
  placement?: (HelixHeadlessMenu["placement"]) | undefined;
6080
- /** What is said where there are none, and none are coming. */
6283
+ /** The text shown and announced when there are no rows and none are loading. */
6081
6284
  "empty-text"?: (HelixHeadlessMenu["emptyText"]) | undefined;
6082
- /** What is said where there are none, and none are coming. */
6285
+ /** The text shown and announced when there are no rows and none are loading. */
6083
6286
  emptyText?: (HelixHeadlessMenu["emptyText"]) | undefined;
6084
- /** Whether the rows are still on their way.
6287
+ /** Whether the rows are still loading.
6085
6288
 
6086
6289
  Reflected, because a stylesheet needs it: the rows that are already there
6087
6290
  are dimmed rather than removed while a new set arrives, and only CSS can
6088
6291
  say that without the component knowing what a row looks like. */
6089
6292
  loading?: (HelixHeadlessMenu["loading"]) | undefined;
6090
- /** What is said while they are on their way. */
6293
+ /** The text shown and announced while the rows load. */
6091
6294
  "loading-text"?: (HelixHeadlessMenu["loadingText"]) | undefined;
6092
- /** What is said while they are on their way. */
6295
+ /** The text shown and announced while the rows load. */
6093
6296
  loadingText?: (HelixHeadlessMenu["loadingText"]) | undefined;
6094
- /** Whether the markup declared it open. Ignored once `open` is written. */
6297
+ /** Whether the element starts open. Ignored once `open` is written. */
6095
6298
  "default-open"?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
6096
- /** Whether the markup declared it open. Ignored once `open` is written. */
6299
+ /** Whether the element starts open. Ignored once `open` is written. */
6097
6300
  defaultOpen?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
6098
6301
  /** Whether the element is open.
6099
6302
 
@@ -6254,9 +6457,9 @@ unsayable. Left off, it is the number of rows. */
6254
6457
  The slot's fallback rather than its replacement, so a consumer who wants a
6255
6458
  mark beside the name slots `label` and this goes unused. */
6256
6459
  label?: (HelixHeadlessNotificationGroup["label"]) | undefined;
6257
- /** Whether the markup declared it open. Ignored once `open` is written. */
6460
+ /** Whether the element starts open. Ignored once `open` is written. */
6258
6461
  "default-open"?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
6259
- /** Whether the markup declared it open. Ignored once `open` is written. */
6462
+ /** Whether the element starts open. Ignored once `open` is written. */
6260
6463
  defaultOpen?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
6261
6464
  /** Whether the element is open.
6262
6465
 
@@ -6322,16 +6525,16 @@ as a hydration mismatch, and which a copy of the serialized element
6322
6525
  re-parses as a declaration. `:state(read)` is what the stylesheet reads.
6323
6526
  `hydration.dom.spec.ts` holds it. */
6324
6527
  read?: (HelixHeadlessNotification["read"]) | undefined;
6325
- /** Whether it offers a control to take it away. */
6528
+ /** Whether the element shows a control that dismisses it. */
6326
6529
  dismissible?: (HelixHeadlessNotification["dismissible"]) | undefined;
6327
- /** Accessible name for that control.
6530
+ /** The dismiss control's label, read by screen readers.
6328
6531
 
6329
6532
  `attribute` is spelled out because Lit lowercases a property name to
6330
6533
  derive one rather than dash-casing it, so this would otherwise be
6331
6534
  reachable only as `dismisslabel`, which nobody would guess and no linter
6332
6535
  would catch. */
6333
6536
  "dismiss-label"?: (HelixHeadlessNotification["dismissLabel"]) | undefined;
6334
- /** Accessible name for that control.
6537
+ /** The dismiss control's label, read by screen readers.
6335
6538
 
6336
6539
  `attribute` is spelled out because Lit lowercases a property name to
6337
6540
  derive one rather than dash-casing it, so this would otherwise be
@@ -6370,19 +6573,19 @@ export type HelixHeadlessNotificationsVueProps = {
6370
6573
  "mark-all-label"?: (HelixHeadlessNotifications["markAllLabel"]) | undefined;
6371
6574
  /** Label for that control. */
6372
6575
  markAllLabel?: (HelixHeadlessNotifications["markAllLabel"]) | undefined;
6373
- /** What is said where there are none, and none are coming. */
6576
+ /** The text shown and announced when there are no rows and none are loading. */
6374
6577
  "empty-text"?: (HelixHeadlessNotifications["emptyText"]) | undefined;
6375
- /** What is said where there are none, and none are coming. */
6578
+ /** The text shown and announced when there are no rows and none are loading. */
6376
6579
  emptyText?: (HelixHeadlessNotifications["emptyText"]) | undefined;
6377
- /** Whether the rows are still on their way.
6580
+ /** Whether the rows are still loading.
6378
6581
 
6379
6582
  Reflected, because a stylesheet needs it: the rows that are already there
6380
6583
  are dimmed rather than removed while a new set arrives, and only CSS can
6381
6584
  say that without the component knowing what a row looks like. */
6382
6585
  loading?: (HelixHeadlessNotifications["loading"]) | undefined;
6383
- /** What is said while they are on their way. */
6586
+ /** The text shown and announced while the rows load. */
6384
6587
  "loading-text"?: (HelixHeadlessNotifications["loadingText"]) | undefined;
6385
- /** What is said while they are on their way. */
6588
+ /** The text shown and announced while the rows load. */
6386
6589
  loadingText?: (HelixHeadlessNotifications["loadingText"]) | undefined;
6387
6590
  };
6388
6591
 
@@ -6479,27 +6682,28 @@ one they already know. */
6479
6682
  scrub?: (HelixHeadlessNumberInput["scrub"]) | undefined;
6480
6683
  /** How far one step moves. */
6481
6684
  step?: (HelixHeadlessNumberInput["step"]) | undefined;
6482
- /** The value the markup declared, which is where a reset returns to. */
6685
+ /** The value the control starts with. A form reset returns it to this value. */
6483
6686
  "default-value"?: (HelixHeadlessNumberInput["defaultValue"]) | undefined;
6484
- /** The value the markup declared, which is where a reset returns to. */
6687
+ /** The value the control starts with. A form reset returns it to this value. */
6485
6688
  defaultValue?: (HelixHeadlessNumberInput["defaultValue"]) | undefined;
6486
- /** What the control holds now, and what its form submits.
6689
+ /** The control's current value, which its form submits.
6487
6690
 
6488
6691
  One property, not two, so `input.value` answers the question anyone
6489
6692
  asking it meant. Writing always applies; `<helix-input value="x">` is the
6490
6693
  same statement in markup, and `default-value` is how markup seeds a value
6491
6694
  a reset should return to. */
6492
6695
  value?: (HelixHeadlessNumberInput["value"]) | undefined;
6493
- /** What is wrong, in the reader's words rather than the browser's. */
6696
+ /** The validation message shown under the control. It replaces the
6697
+ browser's message. */
6494
6698
  feedback?: (HelixHeadlessNumberInput["feedback"]) | undefined;
6495
- /** Help under the control, shown while there is nothing wrong. */
6699
+ /** Help text shown under the control. A validation message replaces it. */
6496
6700
  hint?: (HelixHeadlessNumberInput["hint"]) | undefined;
6497
- /** The accessible name, and the fallback for the `label` slot. */
6701
+ /** The field's label, which is also its accessible name. Content in the
6702
+ `label` slot replaces it. */
6498
6703
  label?: (HelixHeadlessNumberInput["label"]) | undefined;
6499
- /** Whether the form refuses to submit without it. */
6704
+ /** Whether the field needs a value before the form can submit. */
6500
6705
  required?: (HelixHeadlessNumberInput["required"]) | undefined;
6501
- /** What a reader is told when the field is required and empty, where the
6502
- page says.
6706
+ /** The message shown when the field is required and empty.
6503
6707
 
6504
6708
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6505
6709
  set and the browser's own on a text field, which the browser writes in
@@ -6508,8 +6712,7 @@ and this one was the English a form in another language still spoke in
6508
6712
  the bubble it raises on submit: `feedback` replaces the message under
6509
6713
  the field and does not reach that one. */
6510
6714
  "value-missing-message"?: (HelixHeadlessNumberInput["valueMissingMessage"]) | undefined;
6511
- /** What a reader is told when the field is required and empty, where the
6512
- page says.
6715
+ /** The message shown when the field is required and empty.
6513
6716
 
6514
6717
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6515
6718
  set and the browser's own on a text field, which the browser writes in
@@ -6518,7 +6721,7 @@ and this one was the English a form in another language still spoke in
6518
6721
  the bubble it raises on submit: `feedback` replaces the message under
6519
6722
  the field and does not reach that one. */
6520
6723
  valueMissingMessage?: (HelixHeadlessNumberInput["valueMissingMessage"]) | undefined;
6521
- /** Whether the control is non-interactive.
6724
+ /** Whether the control is disabled and cannot be used.
6522
6725
 
6523
6726
  Reflected, because the styled tier selects on it, and mirrored to
6524
6727
  `aria-disabled` rather than removing the element from the accessibility
@@ -6527,7 +6730,7 @@ tree, so a screen reader can still announce that the control exists.
6527
6730
  The mirror itself is in `willUpdate` below, here rather than in each
6528
6731
  control, because here is where `disabled` is. */
6529
6732
  disabled?: (HelixHeadlessNumberInput["disabled"]) | undefined;
6530
- /** Name submitted with the form.
6733
+ /** The name the control's value is submitted under.
6531
6734
 
6532
6735
  **Reflected, and it is the exception to "reflect only what CSS selects
6533
6736
  on".** The platform builds a form's entry list from the `name` *content
@@ -7110,27 +7313,28 @@ attribute no consumer's markup had. The area rules carry the sentence
7110
7313
  "reflect only what CSS selects on". The real inputs take it as a binding,
7111
7314
  which is what makes the keyboard follow. */
7112
7315
  type?: (HelixHeadlessPinInput["type"]) | undefined;
7113
- /** The value the markup declared, which is where a reset returns to. */
7316
+ /** The value the control starts with. A form reset returns it to this value. */
7114
7317
  "default-value"?: (HelixHeadlessPinInput["defaultValue"]) | undefined;
7115
- /** The value the markup declared, which is where a reset returns to. */
7318
+ /** The value the control starts with. A form reset returns it to this value. */
7116
7319
  defaultValue?: (HelixHeadlessPinInput["defaultValue"]) | undefined;
7117
- /** What the control holds now, and what its form submits.
7320
+ /** The control's current value, which its form submits.
7118
7321
 
7119
7322
  One property, not two, so `input.value` answers the question anyone
7120
7323
  asking it meant. Writing always applies; `<helix-input value="x">` is the
7121
7324
  same statement in markup, and `default-value` is how markup seeds a value
7122
7325
  a reset should return to. */
7123
7326
  value?: (HelixHeadlessPinInput["value"]) | undefined;
7124
- /** What is wrong, in the reader's words rather than the browser's. */
7327
+ /** The validation message shown under the control. It replaces the
7328
+ browser's message. */
7125
7329
  feedback?: (HelixHeadlessPinInput["feedback"]) | undefined;
7126
- /** Help under the control, shown while there is nothing wrong. */
7330
+ /** Help text shown under the control. A validation message replaces it. */
7127
7331
  hint?: (HelixHeadlessPinInput["hint"]) | undefined;
7128
- /** The accessible name, and the fallback for the `label` slot. */
7332
+ /** The field's label, which is also its accessible name. Content in the
7333
+ `label` slot replaces it. */
7129
7334
  label?: (HelixHeadlessPinInput["label"]) | undefined;
7130
- /** Whether the form refuses to submit without it. */
7335
+ /** Whether the field needs a value before the form can submit. */
7131
7336
  required?: (HelixHeadlessPinInput["required"]) | undefined;
7132
- /** What a reader is told when the field is required and empty, where the
7133
- page says.
7337
+ /** The message shown when the field is required and empty.
7134
7338
 
7135
7339
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7136
7340
  set and the browser's own on a text field, which the browser writes in
@@ -7139,8 +7343,7 @@ and this one was the English a form in another language still spoke in
7139
7343
  the bubble it raises on submit: `feedback` replaces the message under
7140
7344
  the field and does not reach that one. */
7141
7345
  "value-missing-message"?: (HelixHeadlessPinInput["valueMissingMessage"]) | undefined;
7142
- /** What a reader is told when the field is required and empty, where the
7143
- page says.
7346
+ /** The message shown when the field is required and empty.
7144
7347
 
7145
7348
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7146
7349
  set and the browser's own on a text field, which the browser writes in
@@ -7149,7 +7352,7 @@ and this one was the English a form in another language still spoke in
7149
7352
  the bubble it raises on submit: `feedback` replaces the message under
7150
7353
  the field and does not reach that one. */
7151
7354
  valueMissingMessage?: (HelixHeadlessPinInput["valueMissingMessage"]) | undefined;
7152
- /** Whether the control is non-interactive.
7355
+ /** Whether the control is disabled and cannot be used.
7153
7356
 
7154
7357
  Reflected, because the styled tier selects on it, and mirrored to
7155
7358
  `aria-disabled` rather than removing the element from the accessibility
@@ -7158,7 +7361,7 @@ tree, so a screen reader can still announce that the control exists.
7158
7361
  The mirror itself is in `willUpdate` below, here rather than in each
7159
7362
  control, because here is where `disabled` is. */
7160
7363
  disabled?: (HelixHeadlessPinInput["disabled"]) | undefined;
7161
- /** Name submitted with the form.
7364
+ /** The name the control's value is submitted under.
7162
7365
 
7163
7366
  **Reflected, and it is the exception to "reflect only what CSS selects
7164
7367
  on".** The platform builds a form's entry list from the `name` *content
@@ -7209,9 +7412,9 @@ export type HelixHeadlessPopoverVueProps = {
7209
7412
 
7210
7413
  It moves if that side does not fit. */
7211
7414
  placement?: (HelixHeadlessPopover["placement"]) | undefined;
7212
- /** Whether the markup declared it open. Ignored once `open` is written. */
7415
+ /** Whether the element starts open. Ignored once `open` is written. */
7213
7416
  "default-open"?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
7214
- /** Whether the markup declared it open. Ignored once `open` is written. */
7417
+ /** Whether the element starts open. Ignored once `open` is written. */
7215
7418
  defaultOpen?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
7216
7419
  /** Whether the element is open.
7217
7420
 
@@ -7374,27 +7577,28 @@ not touch, and React reads that as a hydration mismatch. The absent
7374
7577
  attribute *is* the column, which the stylesheet reads as the base rule, so
7375
7578
  only `horizontal` has to be named. */
7376
7579
  orientation?: (HelixHeadlessRadioGroup["orientation"]) | undefined;
7377
- /** The value the markup declared, which is where a reset returns to. */
7580
+ /** The value the control starts with. A form reset returns it to this value. */
7378
7581
  "default-value"?: (HelixHeadlessRadioGroup["defaultValue"]) | undefined;
7379
- /** The value the markup declared, which is where a reset returns to. */
7582
+ /** The value the control starts with. A form reset returns it to this value. */
7380
7583
  defaultValue?: (HelixHeadlessRadioGroup["defaultValue"]) | undefined;
7381
- /** What the control holds now, and what its form submits.
7584
+ /** The control's current value, which its form submits.
7382
7585
 
7383
7586
  One property, not two, so `input.value` answers the question anyone
7384
7587
  asking it meant. Writing always applies; `<helix-input value="x">` is the
7385
7588
  same statement in markup, and `default-value` is how markup seeds a value
7386
7589
  a reset should return to. */
7387
7590
  value?: (HelixHeadlessRadioGroup["value"]) | undefined;
7388
- /** What is wrong, in the reader's words rather than the browser's. */
7591
+ /** The validation message shown under the control. It replaces the
7592
+ browser's message. */
7389
7593
  feedback?: (HelixHeadlessRadioGroup["feedback"]) | undefined;
7390
- /** Help under the control, shown while there is nothing wrong. */
7594
+ /** Help text shown under the control. A validation message replaces it. */
7391
7595
  hint?: (HelixHeadlessRadioGroup["hint"]) | undefined;
7392
- /** The accessible name, and the fallback for the `label` slot. */
7596
+ /** The field's label, which is also its accessible name. Content in the
7597
+ `label` slot replaces it. */
7393
7598
  label?: (HelixHeadlessRadioGroup["label"]) | undefined;
7394
- /** Whether the form refuses to submit without it. */
7599
+ /** Whether the field needs a value before the form can submit. */
7395
7600
  required?: (HelixHeadlessRadioGroup["required"]) | undefined;
7396
- /** What a reader is told when the field is required and empty, where the
7397
- page says.
7601
+ /** The message shown when the field is required and empty.
7398
7602
 
7399
7603
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7400
7604
  set and the browser's own on a text field, which the browser writes in
@@ -7403,8 +7607,7 @@ and this one was the English a form in another language still spoke in
7403
7607
  the bubble it raises on submit: `feedback` replaces the message under
7404
7608
  the field and does not reach that one. */
7405
7609
  "value-missing-message"?: (HelixHeadlessRadioGroup["valueMissingMessage"]) | undefined;
7406
- /** What a reader is told when the field is required and empty, where the
7407
- page says.
7610
+ /** The message shown when the field is required and empty.
7408
7611
 
7409
7612
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7410
7613
  set and the browser's own on a text field, which the browser writes in
@@ -7413,7 +7616,7 @@ and this one was the English a form in another language still spoke in
7413
7616
  the bubble it raises on submit: `feedback` replaces the message under
7414
7617
  the field and does not reach that one. */
7415
7618
  valueMissingMessage?: (HelixHeadlessRadioGroup["valueMissingMessage"]) | undefined;
7416
- /** Whether the control is non-interactive.
7619
+ /** Whether the control is disabled and cannot be used.
7417
7620
 
7418
7621
  Reflected, because the styled tier selects on it, and mirrored to
7419
7622
  `aria-disabled` rather than removing the element from the accessibility
@@ -7422,7 +7625,7 @@ tree, so a screen reader can still announce that the control exists.
7422
7625
  The mirror itself is in `willUpdate` below, here rather than in each
7423
7626
  control, because here is where `disabled` is. */
7424
7627
  disabled?: (HelixHeadlessRadioGroup["disabled"]) | undefined;
7425
- /** Name submitted with the form.
7628
+ /** The name the control's value is submitted under.
7426
7629
 
7427
7630
  **Reflected, and it is the exception to "reflect only what CSS selects
7428
7631
  on".** The platform builds a form's entry list from the `name` *content
@@ -7462,15 +7665,16 @@ export type HelixHeadlessRadioHelixSelectElementEvent =
7462
7665
  HelixHeadlessRadioElementEvent<HelixSelectEvent>;
7463
7666
 
7464
7667
  export type HelixHeadlessRadioVueProps = {
7465
- /** Whether this one can be chosen. */
7668
+ /** Whether the item is disabled and cannot be chosen. */
7466
7669
  disabled?: (HelixHeadlessRadio["disabled"]) | undefined;
7467
- /** Whether this is the current one.
7670
+ /** Whether the item is selected.
7468
7671
 
7469
7672
  Written by the set rather than by a consumer, which is why it takes no
7470
7673
  default from an attribute here: a family whose selection a consumer
7471
7674
  declares in markup carries `defaultSelected` of its own to say so. */
7472
7675
  selected?: (HelixHeadlessRadio["selected"]) | undefined;
7473
- /** Identifies this one to the set, and is what a form submits. */
7676
+ /** The item's value, which identifies it in its set and is what a form
7677
+ submits. */
7474
7678
  value?: (HelixHeadlessRadio["value"]) | undefined;
7475
7679
  /** Whether the markup declared this one chosen, which is what a reset returns to.
7476
7680
 
@@ -7624,27 +7828,28 @@ answer from the value than from a sentence: "3.5" alone is a number without
7624
7828
  a subject. This names the readout, where a control is named by its `label`
7625
7829
  and each of its options by the score that option is. */
7626
7830
  valueText?: (HelixHeadlessRating["valueText"]) | undefined;
7627
- /** The value the markup declared, which is where a reset returns to. */
7831
+ /** The value the control starts with. A form reset returns it to this value. */
7628
7832
  "default-value"?: (HelixHeadlessRating["defaultValue"]) | undefined;
7629
- /** The value the markup declared, which is where a reset returns to. */
7833
+ /** The value the control starts with. A form reset returns it to this value. */
7630
7834
  defaultValue?: (HelixHeadlessRating["defaultValue"]) | undefined;
7631
- /** What the control holds now, and what its form submits.
7835
+ /** The control's current value, which its form submits.
7632
7836
 
7633
7837
  One property, not two, so `input.value` answers the question anyone
7634
7838
  asking it meant. Writing always applies; `<helix-input value="x">` is the
7635
7839
  same statement in markup, and `default-value` is how markup seeds a value
7636
7840
  a reset should return to. */
7637
7841
  value?: (HelixHeadlessRating["value"]) | undefined;
7638
- /** What is wrong, in the reader's words rather than the browser's. */
7842
+ /** The validation message shown under the control. It replaces the
7843
+ browser's message. */
7639
7844
  feedback?: (HelixHeadlessRating["feedback"]) | undefined;
7640
- /** Help under the control, shown while there is nothing wrong. */
7845
+ /** Help text shown under the control. A validation message replaces it. */
7641
7846
  hint?: (HelixHeadlessRating["hint"]) | undefined;
7642
- /** The accessible name, and the fallback for the `label` slot. */
7847
+ /** The field's label, which is also its accessible name. Content in the
7848
+ `label` slot replaces it. */
7643
7849
  label?: (HelixHeadlessRating["label"]) | undefined;
7644
- /** Whether the form refuses to submit without it. */
7850
+ /** Whether the field needs a value before the form can submit. */
7645
7851
  required?: (HelixHeadlessRating["required"]) | undefined;
7646
- /** What a reader is told when the field is required and empty, where the
7647
- page says.
7852
+ /** The message shown when the field is required and empty.
7648
7853
 
7649
7854
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7650
7855
  set and the browser's own on a text field, which the browser writes in
@@ -7653,8 +7858,7 @@ and this one was the English a form in another language still spoke in
7653
7858
  the bubble it raises on submit: `feedback` replaces the message under
7654
7859
  the field and does not reach that one. */
7655
7860
  "value-missing-message"?: (HelixHeadlessRating["valueMissingMessage"]) | undefined;
7656
- /** What a reader is told when the field is required and empty, where the
7657
- page says.
7861
+ /** The message shown when the field is required and empty.
7658
7862
 
7659
7863
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7660
7864
  set and the browser's own on a text field, which the browser writes in
@@ -7663,7 +7867,7 @@ and this one was the English a form in another language still spoke in
7663
7867
  the bubble it raises on submit: `feedback` replaces the message under
7664
7868
  the field and does not reach that one. */
7665
7869
  valueMissingMessage?: (HelixHeadlessRating["valueMissingMessage"]) | undefined;
7666
- /** Whether the control is non-interactive.
7870
+ /** Whether the control is disabled and cannot be used.
7667
7871
 
7668
7872
  Reflected, because the styled tier selects on it, and mirrored to
7669
7873
  `aria-disabled` rather than removing the element from the accessibility
@@ -7672,7 +7876,7 @@ tree, so a screen reader can still announce that the control exists.
7672
7876
  The mirror itself is in `willUpdate` below, here rather than in each
7673
7877
  control, because here is where `disabled` is. */
7674
7878
  disabled?: (HelixHeadlessRating["disabled"]) | undefined;
7675
- /** Name submitted with the form.
7879
+ /** The name the control's value is submitted under.
7676
7880
 
7677
7881
  **Reflected, and it is the exception to "reflect only what CSS selects
7678
7882
  on".** The platform builds a form's entry list from the `name` *content
@@ -7731,7 +7935,7 @@ shadow root reads a table in that root rather than one in the document. A
7731
7935
  **In React this arrives as a property and not as an attribute**, the way
7732
7936
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
7733
7937
  for?: (HelixHeadlessScatterChart["for"]) | undefined;
7734
- /** The drawing's name, for a pointer resting on it.
7938
+ /** The chart's name, which starts the chart's text summary.
7735
7939
 
7736
7940
  Absent falls back to the table's own caption, which is usually the right
7737
7941
  words and is already written. */
@@ -7788,9 +7992,9 @@ consumer wiring the same flag twice. */
7788
7992
  multiple?: (HelixHeadlessSelect["multiple"]) | undefined;
7789
7993
  /** Shown on the trigger while nothing is chosen. */
7790
7994
  placeholder?: (HelixHeadlessSelect["placeholder"]) | undefined;
7791
- /** Whether the markup declared it open. Ignored once `open` is written. */
7995
+ /** Whether the element starts open. Ignored once `open` is written. */
7792
7996
  "default-open"?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
7793
- /** Whether the markup declared it open. Ignored once `open` is written. */
7997
+ /** Whether the element starts open. Ignored once `open` is written. */
7794
7998
  defaultOpen?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
7795
7999
  /** Whether the element is open.
7796
8000
 
@@ -7805,27 +8009,28 @@ hydration, or diffed by a framework, it comes back holding whatever the
7805
8009
  last reader did rather than what the author wrote. `:state(open)` carries
7806
8010
  the resolved state for stylesheets, which is what the mirror is for. */
7807
8011
  open?: (HelixHeadlessSelect["open"]) | undefined;
7808
- /** The value the markup declared, which is where a reset returns to. */
8012
+ /** The value the control starts with. A form reset returns it to this value. */
7809
8013
  "default-value"?: (HelixHeadlessSelect["defaultValue"]) | undefined;
7810
- /** The value the markup declared, which is where a reset returns to. */
8014
+ /** The value the control starts with. A form reset returns it to this value. */
7811
8015
  defaultValue?: (HelixHeadlessSelect["defaultValue"]) | undefined;
7812
- /** What the control holds now, and what its form submits.
8016
+ /** The control's current value, which its form submits.
7813
8017
 
7814
8018
  One property, not two, so `input.value` answers the question anyone
7815
8019
  asking it meant. Writing always applies; `<helix-input value="x">` is the
7816
8020
  same statement in markup, and `default-value` is how markup seeds a value
7817
8021
  a reset should return to. */
7818
8022
  value?: (HelixHeadlessSelect["value"]) | undefined;
7819
- /** What is wrong, in the reader's words rather than the browser's. */
8023
+ /** The validation message shown under the control. It replaces the
8024
+ browser's message. */
7820
8025
  feedback?: (HelixHeadlessSelect["feedback"]) | undefined;
7821
- /** Help under the control, shown while there is nothing wrong. */
8026
+ /** Help text shown under the control. A validation message replaces it. */
7822
8027
  hint?: (HelixHeadlessSelect["hint"]) | undefined;
7823
- /** The accessible name, and the fallback for the `label` slot. */
8028
+ /** The field's label, which is also its accessible name. Content in the
8029
+ `label` slot replaces it. */
7824
8030
  label?: (HelixHeadlessSelect["label"]) | undefined;
7825
- /** Whether the form refuses to submit without it. */
8031
+ /** Whether the field needs a value before the form can submit. */
7826
8032
  required?: (HelixHeadlessSelect["required"]) | undefined;
7827
- /** What a reader is told when the field is required and empty, where the
7828
- page says.
8033
+ /** The message shown when the field is required and empty.
7829
8034
 
7830
8035
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7831
8036
  set and the browser's own on a text field, which the browser writes in
@@ -7834,8 +8039,7 @@ and this one was the English a form in another language still spoke in
7834
8039
  the bubble it raises on submit: `feedback` replaces the message under
7835
8040
  the field and does not reach that one. */
7836
8041
  "value-missing-message"?: (HelixHeadlessSelect["valueMissingMessage"]) | undefined;
7837
- /** What a reader is told when the field is required and empty, where the
7838
- page says.
8042
+ /** The message shown when the field is required and empty.
7839
8043
 
7840
8044
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
7841
8045
  set and the browser's own on a text field, which the browser writes in
@@ -7844,7 +8048,7 @@ and this one was the English a form in another language still spoke in
7844
8048
  the bubble it raises on submit: `feedback` replaces the message under
7845
8049
  the field and does not reach that one. */
7846
8050
  valueMissingMessage?: (HelixHeadlessSelect["valueMissingMessage"]) | undefined;
7847
- /** Whether the control is non-interactive.
8051
+ /** Whether the control is disabled and cannot be used.
7848
8052
 
7849
8053
  Reflected, because the styled tier selects on it, and mirrored to
7850
8054
  `aria-disabled` rather than removing the element from the accessibility
@@ -7853,7 +8057,7 @@ tree, so a screen reader can still announce that the control exists.
7853
8057
  The mirror itself is in `willUpdate` below, here rather than in each
7854
8058
  control, because here is where `disabled` is. */
7855
8059
  disabled?: (HelixHeadlessSelect["disabled"]) | undefined;
7856
- /** Name submitted with the form.
8060
+ /** The name the control's value is submitted under.
7857
8061
 
7858
8062
  **Reflected, and it is the exception to "reflect only what CSS selects
7859
8063
  on".** The platform builds a form's entry list from the `name` *content
@@ -7990,27 +8194,28 @@ the two, since a range has no single number. */
7990
8194
  showValue?: (HelixHeadlessSlider["showValue"]) | undefined;
7991
8195
  /** How far one press of an arrow key moves it. */
7992
8196
  step?: (HelixHeadlessSlider["step"]) | undefined;
7993
- /** The value the markup declared, which is where a reset returns to. */
8197
+ /** The value the control starts with. A form reset returns it to this value. */
7994
8198
  "default-value"?: (HelixHeadlessSlider["defaultValue"]) | undefined;
7995
- /** The value the markup declared, which is where a reset returns to. */
8199
+ /** The value the control starts with. A form reset returns it to this value. */
7996
8200
  defaultValue?: (HelixHeadlessSlider["defaultValue"]) | undefined;
7997
- /** What the control holds now, and what its form submits.
8201
+ /** The control's current value, which its form submits.
7998
8202
 
7999
8203
  One property, not two, so `input.value` answers the question anyone
8000
8204
  asking it meant. Writing always applies; `<helix-input value="x">` is the
8001
8205
  same statement in markup, and `default-value` is how markup seeds a value
8002
8206
  a reset should return to. */
8003
8207
  value?: (HelixHeadlessSlider["value"]) | undefined;
8004
- /** What is wrong, in the reader's words rather than the browser's. */
8208
+ /** The validation message shown under the control. It replaces the
8209
+ browser's message. */
8005
8210
  feedback?: (HelixHeadlessSlider["feedback"]) | undefined;
8006
- /** Help under the control, shown while there is nothing wrong. */
8211
+ /** Help text shown under the control. A validation message replaces it. */
8007
8212
  hint?: (HelixHeadlessSlider["hint"]) | undefined;
8008
- /** The accessible name, and the fallback for the `label` slot. */
8213
+ /** The field's label, which is also its accessible name. Content in the
8214
+ `label` slot replaces it. */
8009
8215
  label?: (HelixHeadlessSlider["label"]) | undefined;
8010
- /** Whether the form refuses to submit without it. */
8216
+ /** Whether the field needs a value before the form can submit. */
8011
8217
  required?: (HelixHeadlessSlider["required"]) | undefined;
8012
- /** What a reader is told when the field is required and empty, where the
8013
- page says.
8218
+ /** The message shown when the field is required and empty.
8014
8219
 
8015
8220
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8016
8221
  set and the browser's own on a text field, which the browser writes in
@@ -8019,8 +8224,7 @@ and this one was the English a form in another language still spoke in
8019
8224
  the bubble it raises on submit: `feedback` replaces the message under
8020
8225
  the field and does not reach that one. */
8021
8226
  "value-missing-message"?: (HelixHeadlessSlider["valueMissingMessage"]) | undefined;
8022
- /** What a reader is told when the field is required and empty, where the
8023
- page says.
8227
+ /** The message shown when the field is required and empty.
8024
8228
 
8025
8229
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8026
8230
  set and the browser's own on a text field, which the browser writes in
@@ -8029,7 +8233,7 @@ and this one was the English a form in another language still spoke in
8029
8233
  the bubble it raises on submit: `feedback` replaces the message under
8030
8234
  the field and does not reach that one. */
8031
8235
  valueMissingMessage?: (HelixHeadlessSlider["valueMissingMessage"]) | undefined;
8032
- /** Whether the control is non-interactive.
8236
+ /** Whether the control is disabled and cannot be used.
8033
8237
 
8034
8238
  Reflected, because the styled tier selects on it, and mirrored to
8035
8239
  `aria-disabled` rather than removing the element from the accessibility
@@ -8038,7 +8242,7 @@ tree, so a screen reader can still announce that the control exists.
8038
8242
  The mirror itself is in `willUpdate` below, here rather than in each
8039
8243
  control, because here is where `disabled` is. */
8040
8244
  disabled?: (HelixHeadlessSlider["disabled"]) | undefined;
8041
- /** Name submitted with the form.
8245
+ /** The name the control's value is submitted under.
8042
8246
 
8043
8247
  **Reflected, and it is the exception to "reflect only what CSS selects
8044
8248
  on".** The platform builds a form's entry list from the `name` *content
@@ -8195,9 +8399,9 @@ export type HelixHeadlessSpeedDialVueProps = {
8195
8399
  Up by default, because the control this hangs off is usually docked to the
8196
8400
  bottom of the window and there is nothing below it to fan into. */
8197
8401
  placement?: (HelixHeadlessSpeedDial["placement"]) | undefined;
8198
- /** Whether the markup declared it open. Ignored once `open` is written. */
8402
+ /** Whether the element starts open. Ignored once `open` is written. */
8199
8403
  "default-open"?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
8200
- /** Whether the markup declared it open. Ignored once `open` is written. */
8404
+ /** Whether the element starts open. Ignored once `open` is written. */
8201
8405
  defaultOpen?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
8202
8406
  /** Whether the element is open.
8203
8407
 
@@ -8432,7 +8636,7 @@ nothing about whether it is finished.
8432
8636
  order is the point, a form that says "step 3 of 5" beside it, or a sequence
8433
8637
  a reader is told to come back to by number. */
8434
8638
  variant?: (HelixHeadlessSteps["variant"]) | undefined;
8435
- /** Which item is current, by its `value`.
8639
+ /** The `value` of the current item.
8436
8640
 
8437
8641
  Not `option.active`, which is the option the keyboard is on: that is a
8438
8642
  different question from which one is chosen.
@@ -8441,11 +8645,11 @@ Writing always applies, so `<helix-tabs active="one">` starts on that
8441
8645
  tab, and `default-active` is how markup says where to start without
8442
8646
  naming the current one. */
8443
8647
  active?: (HelixHeadlessSteps["active"]) | undefined;
8444
- /** Which item the markup declared current.
8648
+ /** The `value` of the item declared current in markup.
8445
8649
 
8446
8650
  Ignored once `active` is written. */
8447
8651
  "default-active"?: (HelixHeadlessSteps["defaultActive"]) | undefined;
8448
- /** Which item the markup declared current.
8652
+ /** The `value` of the item declared current in markup.
8449
8653
 
8450
8654
  Ignored once `active` is written. */
8451
8655
  defaultActive?: (HelixHeadlessSteps["defaultActive"]) | undefined;
@@ -8506,20 +8710,21 @@ Not reflected: the attribute is the consumer's input and stays as they
8506
8710
  wrote it, and `:state(checked)` carries the resolved state for
8507
8711
  stylesheets. */
8508
8712
  checked?: (HelixHeadlessSwitch["checked"]) | undefined;
8509
- /** Whether the markup declared it checked, which is where a reset returns to. */
8713
+ /** Whether the control starts checked. A form reset returns it to this state. */
8510
8714
  "default-checked"?: (HelixHeadlessSwitch["defaultChecked"]) | undefined;
8511
- /** Whether the markup declared it checked, which is where a reset returns to. */
8715
+ /** Whether the control starts checked. A form reset returns it to this state. */
8512
8716
  defaultChecked?: (HelixHeadlessSwitch["defaultChecked"]) | undefined;
8513
- /** What is wrong, in the reader's words rather than the browser's. */
8717
+ /** The validation message shown under the control. It replaces the
8718
+ browser's message. */
8514
8719
  feedback?: (HelixHeadlessSwitch["feedback"]) | undefined;
8515
- /** Help under the control, shown while there is nothing wrong. */
8720
+ /** Help text shown under the control. A validation message replaces it. */
8516
8721
  hint?: (HelixHeadlessSwitch["hint"]) | undefined;
8517
- /** The accessible name, and the fallback for the `label` slot. */
8722
+ /** The field's label, which is also its accessible name. Content in the
8723
+ `label` slot replaces it. */
8518
8724
  label?: (HelixHeadlessSwitch["label"]) | undefined;
8519
- /** Whether the form refuses to submit without it. */
8725
+ /** Whether the field needs a value before the form can submit. */
8520
8726
  required?: (HelixHeadlessSwitch["required"]) | undefined;
8521
- /** What a reader is told when the field is required and empty, where the
8522
- page says.
8727
+ /** The message shown when the field is required and empty.
8523
8728
 
8524
8729
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8525
8730
  set and the browser's own on a text field, which the browser writes in
@@ -8528,8 +8733,7 @@ and this one was the English a form in another language still spoke in
8528
8733
  the bubble it raises on submit: `feedback` replaces the message under
8529
8734
  the field and does not reach that one. */
8530
8735
  "value-missing-message"?: (HelixHeadlessSwitch["valueMissingMessage"]) | undefined;
8531
- /** What a reader is told when the field is required and empty, where the
8532
- page says.
8736
+ /** The message shown when the field is required and empty.
8533
8737
 
8534
8738
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8535
8739
  set and the browser's own on a text field, which the browser writes in
@@ -8538,7 +8742,7 @@ and this one was the English a form in another language still spoke in
8538
8742
  the bubble it raises on submit: `feedback` replaces the message under
8539
8743
  the field and does not reach that one. */
8540
8744
  valueMissingMessage?: (HelixHeadlessSwitch["valueMissingMessage"]) | undefined;
8541
- /** Whether the control is non-interactive.
8745
+ /** Whether the control is disabled and cannot be used.
8542
8746
 
8543
8747
  Reflected, because the styled tier selects on it, and mirrored to
8544
8748
  `aria-disabled` rather than removing the element from the accessibility
@@ -8547,7 +8751,7 @@ tree, so a screen reader can still announce that the control exists.
8547
8751
  The mirror itself is in `willUpdate` below, here rather than in each
8548
8752
  control, because here is where `disabled` is. */
8549
8753
  disabled?: (HelixHeadlessSwitch["disabled"]) | undefined;
8550
- /** Name submitted with the form.
8754
+ /** The name the control's value is submitted under.
8551
8755
 
8552
8756
  **Reflected, and it is the exception to "reflect only what CSS selects
8553
8757
  on".** The platform builds a form's entry list from the `name` *content
@@ -8783,19 +8987,19 @@ declared in it has nowhere else to be sized from. */
8783
8987
  columns?: (HelixHeadlessTable["columns"]) | undefined;
8784
8988
  /** Accessible name for the table. */
8785
8989
  label?: (HelixHeadlessTable["label"]) | undefined;
8786
- /** What is said where there are none, and none are coming. */
8990
+ /** The text shown and announced when there are no rows and none are loading. */
8787
8991
  "empty-text"?: (HelixHeadlessTable["emptyText"]) | undefined;
8788
- /** What is said where there are none, and none are coming. */
8992
+ /** The text shown and announced when there are no rows and none are loading. */
8789
8993
  emptyText?: (HelixHeadlessTable["emptyText"]) | undefined;
8790
- /** Whether the rows are still on their way.
8994
+ /** Whether the rows are still loading.
8791
8995
 
8792
8996
  Reflected, because a stylesheet needs it: the rows that are already there
8793
8997
  are dimmed rather than removed while a new set arrives, and only CSS can
8794
8998
  say that without the component knowing what a row looks like. */
8795
8999
  loading?: (HelixHeadlessTable["loading"]) | undefined;
8796
- /** What is said while they are on their way. */
9000
+ /** The text shown and announced while the rows load. */
8797
9001
  "loading-text"?: (HelixHeadlessTable["loadingText"]) | undefined;
8798
- /** What is said while they are on their way. */
9002
+ /** The text shown and announced while the rows load. */
8799
9003
  loadingText?: (HelixHeadlessTable["loadingText"]) | undefined;
8800
9004
  };
8801
9005
 
@@ -8873,7 +9077,7 @@ away.
8873
9077
  Reflected and left unset by default, so the host carries nothing a
8874
9078
  consumer's server markup does not already have. */
8875
9079
  variant?: (HelixHeadlessTabs["variant"]) | undefined;
8876
- /** Which item is current, by its `value`.
9080
+ /** The `value` of the current item.
8877
9081
 
8878
9082
  Not `option.active`, which is the option the keyboard is on: that is a
8879
9083
  different question from which one is chosen.
@@ -8882,11 +9086,11 @@ Writing always applies, so `<helix-tabs active="one">` starts on that
8882
9086
  tab, and `default-active` is how markup says where to start without
8883
9087
  naming the current one. */
8884
9088
  active?: (HelixHeadlessTabs["active"]) | undefined;
8885
- /** Which item the markup declared current.
9089
+ /** The `value` of the item declared current in markup.
8886
9090
 
8887
9091
  Ignored once `active` is written. */
8888
9092
  "default-active"?: (HelixHeadlessTabs["defaultActive"]) | undefined;
8889
- /** Which item the markup declared current.
9093
+ /** The `value` of the item declared current in markup.
8890
9094
 
8891
9095
  Ignored once `active` is written. */
8892
9096
  defaultActive?: (HelixHeadlessTabs["defaultActive"]) | undefined;
@@ -8911,15 +9115,16 @@ export type HelixHeadlessTabHelixSelectElementEvent =
8911
9115
  HelixHeadlessTabElementEvent<HelixSelectEvent>;
8912
9116
 
8913
9117
  export type HelixHeadlessTabVueProps = {
8914
- /** Whether this one can be chosen. */
9118
+ /** Whether the item is disabled and cannot be chosen. */
8915
9119
  disabled?: (HelixHeadlessTab["disabled"]) | undefined;
8916
- /** Whether this is the current one.
9120
+ /** Whether the item is selected.
8917
9121
 
8918
9122
  Written by the set rather than by a consumer, which is why it takes no
8919
9123
  default from an attribute here: a family whose selection a consumer
8920
9124
  declares in markup carries `defaultSelected` of its own to say so. */
8921
9125
  selected?: (HelixHeadlessTab["selected"]) | undefined;
8922
- /** Identifies this one to the set, and is what a form submits. */
9126
+ /** The item's value, which identifies it in its set and is what a form
9127
+ submits. */
8923
9128
  value?: (HelixHeadlessTab["value"]) | undefined;
8924
9129
  };
8925
9130
 
@@ -8938,16 +9143,16 @@ export type HelixHeadlessTagHelixDismissElementEvent =
8938
9143
  HelixHeadlessTagElementEvent<HelixDismissEvent>;
8939
9144
 
8940
9145
  export type HelixHeadlessTagVueProps = {
8941
- /** Whether it offers a control to take it away. */
9146
+ /** Whether the element shows a control that dismisses it. */
8942
9147
  dismissible?: (HelixHeadlessTag["dismissible"]) | undefined;
8943
- /** Accessible name for that control.
9148
+ /** The dismiss control's label, read by screen readers.
8944
9149
 
8945
9150
  `attribute` is spelled out because Lit lowercases a property name to
8946
9151
  derive one rather than dash-casing it, so this would otherwise be
8947
9152
  reachable only as `dismisslabel`, which nobody would guess and no linter
8948
9153
  would catch. */
8949
9154
  "dismiss-label"?: (HelixHeadlessTag["dismissLabel"]) | undefined;
8950
- /** Accessible name for that control.
9155
+ /** The dismiss control's label, read by screen readers.
8951
9156
 
8952
9157
  `attribute` is spelled out because Lit lowercases a property name to
8953
9158
  derive one rather than dash-casing it, so this would otherwise be
@@ -9037,27 +9242,28 @@ Not a label: it goes when typing starts. */
9037
9242
  /** How the browser wraps the text, and whether the breaks are submitted with
9038
9243
  it. */
9039
9244
  wrap?: (HelixHeadlessTextarea["wrap"]) | undefined;
9040
- /** The value the markup declared, which is where a reset returns to. */
9245
+ /** The value the control starts with. A form reset returns it to this value. */
9041
9246
  "default-value"?: (HelixHeadlessTextarea["defaultValue"]) | undefined;
9042
- /** The value the markup declared, which is where a reset returns to. */
9247
+ /** The value the control starts with. A form reset returns it to this value. */
9043
9248
  defaultValue?: (HelixHeadlessTextarea["defaultValue"]) | undefined;
9044
- /** What the control holds now, and what its form submits.
9249
+ /** The control's current value, which its form submits.
9045
9250
 
9046
9251
  One property, not two, so `input.value` answers the question anyone
9047
9252
  asking it meant. Writing always applies; `<helix-input value="x">` is the
9048
9253
  same statement in markup, and `default-value` is how markup seeds a value
9049
9254
  a reset should return to. */
9050
9255
  value?: (HelixHeadlessTextarea["value"]) | undefined;
9051
- /** What is wrong, in the reader's words rather than the browser's. */
9256
+ /** The validation message shown under the control. It replaces the
9257
+ browser's message. */
9052
9258
  feedback?: (HelixHeadlessTextarea["feedback"]) | undefined;
9053
- /** Help under the control, shown while there is nothing wrong. */
9259
+ /** Help text shown under the control. A validation message replaces it. */
9054
9260
  hint?: (HelixHeadlessTextarea["hint"]) | undefined;
9055
- /** The accessible name, and the fallback for the `label` slot. */
9261
+ /** The field's label, which is also its accessible name. Content in the
9262
+ `label` slot replaces it. */
9056
9263
  label?: (HelixHeadlessTextarea["label"]) | undefined;
9057
- /** Whether the form refuses to submit without it. */
9264
+ /** Whether the field needs a value before the form can submit. */
9058
9265
  required?: (HelixHeadlessTextarea["required"]) | undefined;
9059
- /** What a reader is told when the field is required and empty, where the
9060
- page says.
9266
+ /** The message shown when the field is required and empty.
9061
9267
 
9062
9268
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9063
9269
  set and the browser's own on a text field, which the browser writes in
@@ -9066,8 +9272,7 @@ and this one was the English a form in another language still spoke in
9066
9272
  the bubble it raises on submit: `feedback` replaces the message under
9067
9273
  the field and does not reach that one. */
9068
9274
  "value-missing-message"?: (HelixHeadlessTextarea["valueMissingMessage"]) | undefined;
9069
- /** What a reader is told when the field is required and empty, where the
9070
- page says.
9275
+ /** The message shown when the field is required and empty.
9071
9276
 
9072
9277
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9073
9278
  set and the browser's own on a text field, which the browser writes in
@@ -9076,7 +9281,7 @@ and this one was the English a form in another language still spoke in
9076
9281
  the bubble it raises on submit: `feedback` replaces the message under
9077
9282
  the field and does not reach that one. */
9078
9283
  valueMissingMessage?: (HelixHeadlessTextarea["valueMissingMessage"]) | undefined;
9079
- /** Whether the control is non-interactive.
9284
+ /** Whether the control is disabled and cannot be used.
9080
9285
 
9081
9286
  Reflected, because the styled tier selects on it, and mirrored to
9082
9287
  `aria-disabled` rather than removing the element from the accessibility
@@ -9085,7 +9290,7 @@ tree, so a screen reader can still announce that the control exists.
9085
9290
  The mirror itself is in `willUpdate` below, here rather than in each
9086
9291
  control, because here is where `disabled` is. */
9087
9292
  disabled?: (HelixHeadlessTextarea["disabled"]) | undefined;
9088
- /** Name submitted with the form.
9293
+ /** The name the control's value is submitted under.
9089
9294
 
9090
9295
  **Reflected, and it is the exception to "reflect only what CSS selects
9091
9296
  on".** The platform builds a form's entry list from the `name` *content
@@ -9235,7 +9440,7 @@ not touch, and React reads that as a hydration mismatch. The absent
9235
9440
  attribute *is* the list, which the stylesheet reads as the base rule, so
9236
9441
  only the departure has to be named. */
9237
9442
  variant?: (HelixHeadlessTimeInput["variant"]) | undefined;
9238
- /** Whether the control refuses changes while still submitting its value.
9443
+ /** Whether the value is locked. A read-only control still submits its value.
9239
9444
 
9240
9445
  **Enforced by refusing every request in one place**, which is the seam this
9241
9446
  component already has: `requestValue` is what every path here comes through,
@@ -9247,7 +9452,7 @@ submits nothing and leaves the tab order, and a read-only one submits its
9247
9452
  value and stays reachable, which is what a form showing a value somebody
9248
9453
  else set needs. */
9249
9454
  readonly?: (HelixHeadlessTimeInput["readOnly"]) | undefined;
9250
- /** Whether the control refuses changes while still submitting its value.
9455
+ /** Whether the value is locked. A read-only control still submits its value.
9251
9456
 
9252
9457
  **Enforced by refusing every request in one place**, which is the seam this
9253
9458
  component already has: `requestValue` is what every path here comes through,
@@ -9259,25 +9464,25 @@ submits nothing and leaves the tab order, and a read-only one submits its
9259
9464
  value and stays reachable, which is what a form showing a value somebody
9260
9465
  else set needs. */
9261
9466
  readOnly?: (HelixHeadlessTimeInput["readOnly"]) | undefined;
9262
- /** What a reader is told when the field holds something the picker cannot
9263
- read: a date that is not one, a time, a color.
9467
+ /** The message shown when the field holds text the picker cannot read as a
9468
+ date, a time, or a color.
9264
9469
 
9265
9470
  **Every sentence a control raises in the browser's bubble is a
9266
9471
  property**, named for the validity flag it reports, so a form in another
9267
9472
  language speaks it. Absent is the family's own sentence, in English,
9268
9473
  which says what the value should look like. */
9269
9474
  "bad-input-message"?: (HelixHeadlessTimeInput["badInputMessage"]) | undefined;
9270
- /** What a reader is told when the field holds something the picker cannot
9271
- read: a date that is not one, a time, a color.
9475
+ /** The message shown when the field holds text the picker cannot read as a
9476
+ date, a time, or a color.
9272
9477
 
9273
9478
  **Every sentence a control raises in the browser's bubble is a
9274
9479
  property**, named for the validity flag it reports, so a form in another
9275
9480
  language speaks it. Absent is the family's own sentence, in English,
9276
9481
  which says what the value should look like. */
9277
9482
  badInputMessage?: (HelixHeadlessTimeInput["badInputMessage"]) | undefined;
9278
- /** Whether the markup declared it open. Ignored once `open` is written. */
9483
+ /** Whether the element starts open. Ignored once `open` is written. */
9279
9484
  "default-open"?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
9280
- /** Whether the markup declared it open. Ignored once `open` is written. */
9485
+ /** Whether the element starts open. Ignored once `open` is written. */
9281
9486
  defaultOpen?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
9282
9487
  /** Whether the element is open.
9283
9488
 
@@ -9292,41 +9497,44 @@ hydration, or diffed by a framework, it comes back holding whatever the
9292
9497
  last reader did rather than what the author wrote. `:state(open)` carries
9293
9498
  the resolved state for stylesheets, which is what the mirror is for. */
9294
9499
  open?: (HelixHeadlessTimeInput["open"]) | undefined;
9295
- /** What the control is called once everything is showing. */
9500
+ /** The button's label, read by screen readers, once every token is showing. */
9296
9501
  "collapse-label"?: (HelixHeadlessTimeInput["collapseLabel"]) | undefined;
9297
- /** What the control is called once everything is showing. */
9502
+ /** The button's label, read by screen readers, once every token is showing. */
9298
9503
  collapseLabel?: (HelixHeadlessTimeInput["collapseLabel"]) | undefined;
9299
- /** Whether the count is a control that shows the rest. */
9504
+ /** Whether the count is a button that shows the hidden tokens. */
9300
9505
  expandable?: (HelixHeadlessTimeInput["expandable"]) | undefined;
9301
- /** What the collapsed count is called, since `+3` names nothing. */
9506
+ /** The count button's label, read by screen readers. Its visible text, such
9507
+ as `+3`, does not say what it does. */
9302
9508
  "expand-label"?: (HelixHeadlessTimeInput["expandLabel"]) | undefined;
9303
- /** What the collapsed count is called, since `+3` names nothing. */
9509
+ /** The count button's label, read by screen readers. Its visible text, such
9510
+ as `+3`, does not say what it does. */
9304
9511
  expandLabel?: (HelixHeadlessTimeInput["expandLabel"]) | undefined;
9305
9512
  /** How many tokens to show before the rest become a count. */
9306
9513
  "max-tags"?: (HelixHeadlessTimeInput["maxTags"] | `${number}`) | undefined;
9307
9514
  /** How many tokens to show before the rest become a count. */
9308
9515
  maxTags?: (HelixHeadlessTimeInput["maxTags"]) | undefined;
9309
- /** The value the markup declared, which is where a reset returns to. */
9516
+ /** The value the control starts with. A form reset returns it to this value. */
9310
9517
  "default-value"?: (HelixHeadlessTimeInput["defaultValue"]) | undefined;
9311
- /** The value the markup declared, which is where a reset returns to. */
9518
+ /** The value the control starts with. A form reset returns it to this value. */
9312
9519
  defaultValue?: (HelixHeadlessTimeInput["defaultValue"]) | undefined;
9313
- /** What the control holds now, and what its form submits.
9520
+ /** The control's current value, which its form submits.
9314
9521
 
9315
9522
  One property, not two, so `input.value` answers the question anyone
9316
9523
  asking it meant. Writing always applies; `<helix-input value="x">` is the
9317
9524
  same statement in markup, and `default-value` is how markup seeds a value
9318
9525
  a reset should return to. */
9319
9526
  value?: (HelixHeadlessTimeInput["value"]) | undefined;
9320
- /** What is wrong, in the reader's words rather than the browser's. */
9527
+ /** The validation message shown under the control. It replaces the
9528
+ browser's message. */
9321
9529
  feedback?: (HelixHeadlessTimeInput["feedback"]) | undefined;
9322
- /** Help under the control, shown while there is nothing wrong. */
9530
+ /** Help text shown under the control. A validation message replaces it. */
9323
9531
  hint?: (HelixHeadlessTimeInput["hint"]) | undefined;
9324
- /** The accessible name, and the fallback for the `label` slot. */
9532
+ /** The field's label, which is also its accessible name. Content in the
9533
+ `label` slot replaces it. */
9325
9534
  label?: (HelixHeadlessTimeInput["label"]) | undefined;
9326
- /** Whether the form refuses to submit without it. */
9535
+ /** Whether the field needs a value before the form can submit. */
9327
9536
  required?: (HelixHeadlessTimeInput["required"]) | undefined;
9328
- /** What a reader is told when the field is required and empty, where the
9329
- page says.
9537
+ /** The message shown when the field is required and empty.
9330
9538
 
9331
9539
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9332
9540
  set and the browser's own on a text field, which the browser writes in
@@ -9335,8 +9543,7 @@ and this one was the English a form in another language still spoke in
9335
9543
  the bubble it raises on submit: `feedback` replaces the message under
9336
9544
  the field and does not reach that one. */
9337
9545
  "value-missing-message"?: (HelixHeadlessTimeInput["valueMissingMessage"]) | undefined;
9338
- /** What a reader is told when the field is required and empty, where the
9339
- page says.
9546
+ /** The message shown when the field is required and empty.
9340
9547
 
9341
9548
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9342
9549
  set and the browser's own on a text field, which the browser writes in
@@ -9345,7 +9552,7 @@ and this one was the English a form in another language still spoke in
9345
9552
  the bubble it raises on submit: `feedback` replaces the message under
9346
9553
  the field and does not reach that one. */
9347
9554
  valueMissingMessage?: (HelixHeadlessTimeInput["valueMissingMessage"]) | undefined;
9348
- /** Whether the control is non-interactive.
9555
+ /** Whether the control is disabled and cannot be used.
9349
9556
 
9350
9557
  Reflected, because the styled tier selects on it, and mirrored to
9351
9558
  `aria-disabled` rather than removing the element from the accessibility
@@ -9354,7 +9561,7 @@ tree, so a screen reader can still announce that the control exists.
9354
9561
  The mirror itself is in `willUpdate` below, here rather than in each
9355
9562
  control, because here is where `disabled` is. */
9356
9563
  disabled?: (HelixHeadlessTimeInput["disabled"]) | undefined;
9357
- /** Name submitted with the form.
9564
+ /** The name the control's value is submitted under.
9358
9565
 
9359
9566
  **Reflected, and it is the exception to "reflect only what CSS selects
9360
9567
  on".** The platform builds a form's entry list from the `name` *content
@@ -9539,18 +9746,18 @@ not touch, and React reads that as a hydration mismatch. The absent
9539
9746
  attribute *is* the list, which the stylesheet reads as the base rule, so
9540
9747
  only the departure has to be named. */
9541
9748
  variant?: (HelixHeadlessTimePicker["variant"]) | undefined;
9542
- /** The value the markup declared, which is where a reset returns to. */
9749
+ /** The value the control starts with. A form reset returns it to this value. */
9543
9750
  "default-value"?: (HelixHeadlessTimePicker["defaultValue"]) | undefined;
9544
- /** The value the markup declared, which is where a reset returns to. */
9751
+ /** The value the control starts with. A form reset returns it to this value. */
9545
9752
  defaultValue?: (HelixHeadlessTimePicker["defaultValue"]) | undefined;
9546
- /** What the control holds now, and what its form submits.
9753
+ /** The control's current value, which its form submits.
9547
9754
 
9548
9755
  One property, not two, so `input.value` answers the question anyone
9549
9756
  asking it meant. Writing always applies; `<helix-input value="x">` is the
9550
9757
  same statement in markup, and `default-value` is how markup seeds a value
9551
9758
  a reset should return to. */
9552
9759
  value?: (HelixHeadlessTimePicker["value"]) | undefined;
9553
- /** Whether the control is non-interactive.
9760
+ /** Whether the control is disabled and cannot be used.
9554
9761
 
9555
9762
  Reflected, because the styled tier selects on it, and mirrored to
9556
9763
  `aria-disabled` rather than removing the element from the accessibility
@@ -9559,7 +9766,7 @@ tree, so a screen reader can still announce that the control exists.
9559
9766
  The mirror itself is in `willUpdate` below, here rather than in each
9560
9767
  control, because here is where `disabled` is. */
9561
9768
  disabled?: (HelixHeadlessTimePicker["disabled"]) | undefined;
9562
- /** Name submitted with the form.
9769
+ /** The name the control's value is submitted under.
9563
9770
 
9564
9771
  **Reflected, and it is the exception to "reflect only what CSS selects
9565
9772
  on".** The platform builds a form's entry list from the `name` *content
@@ -9648,16 +9855,16 @@ attribute nobody can use. */
9648
9855
 
9649
9856
  A subset of the tone axis: a toast reports a status and never a brand role. */
9650
9857
  tone?: (HelixHeadlessToastItem["tone"]) | undefined;
9651
- /** Whether it offers a control to take it away. */
9858
+ /** Whether the element shows a control that dismisses it. */
9652
9859
  dismissible?: (HelixHeadlessToastItem["dismissible"]) | undefined;
9653
- /** Accessible name for that control.
9860
+ /** The dismiss control's label, read by screen readers.
9654
9861
 
9655
9862
  `attribute` is spelled out because Lit lowercases a property name to
9656
9863
  derive one rather than dash-casing it, so this would otherwise be
9657
9864
  reachable only as `dismisslabel`, which nobody would guess and no linter
9658
9865
  would catch. */
9659
9866
  "dismiss-label"?: (HelixHeadlessToastItem["dismissLabel"]) | undefined;
9660
- /** Accessible name for that control.
9867
+ /** The dismiss control's label, read by screen readers.
9661
9868
 
9662
9869
  `attribute` is spelled out because Lit lowercases a property name to
9663
9870
  derive one rather than dash-casing it, so this would otherwise be
@@ -9758,27 +9965,28 @@ reader while looking correct to everybody else. Worse, setting both draws
9758
9965
  it twice. One property moves the label the consumer already has to give,
9759
9966
  and cannot be used to remove it. */
9760
9967
  labelPlacement?: (HelixHeadlessToggleGroup["labelPlacement"]) | undefined;
9761
- /** The value the markup declared, which is where a reset returns to. */
9968
+ /** The value the control starts with. A form reset returns it to this value. */
9762
9969
  "default-value"?: (HelixHeadlessToggleGroup["defaultValue"]) | undefined;
9763
- /** The value the markup declared, which is where a reset returns to. */
9970
+ /** The value the control starts with. A form reset returns it to this value. */
9764
9971
  defaultValue?: (HelixHeadlessToggleGroup["defaultValue"]) | undefined;
9765
- /** What the control holds now, and what its form submits.
9972
+ /** The control's current value, which its form submits.
9766
9973
 
9767
9974
  One property, not two, so `input.value` answers the question anyone
9768
9975
  asking it meant. Writing always applies; `<helix-input value="x">` is the
9769
9976
  same statement in markup, and `default-value` is how markup seeds a value
9770
9977
  a reset should return to. */
9771
9978
  value?: (HelixHeadlessToggleGroup["value"]) | undefined;
9772
- /** What is wrong, in the reader's words rather than the browser's. */
9979
+ /** The validation message shown under the control. It replaces the
9980
+ browser's message. */
9773
9981
  feedback?: (HelixHeadlessToggleGroup["feedback"]) | undefined;
9774
- /** Help under the control, shown while there is nothing wrong. */
9982
+ /** Help text shown under the control. A validation message replaces it. */
9775
9983
  hint?: (HelixHeadlessToggleGroup["hint"]) | undefined;
9776
- /** The accessible name, and the fallback for the `label` slot. */
9984
+ /** The field's label, which is also its accessible name. Content in the
9985
+ `label` slot replaces it. */
9777
9986
  label?: (HelixHeadlessToggleGroup["label"]) | undefined;
9778
- /** Whether the form refuses to submit without it. */
9987
+ /** Whether the field needs a value before the form can submit. */
9779
9988
  required?: (HelixHeadlessToggleGroup["required"]) | undefined;
9780
- /** What a reader is told when the field is required and empty, where the
9781
- page says.
9989
+ /** The message shown when the field is required and empty.
9782
9990
 
9783
9991
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9784
9992
  set and the browser's own on a text field, which the browser writes in
@@ -9787,8 +9995,7 @@ and this one was the English a form in another language still spoke in
9787
9995
  the bubble it raises on submit: `feedback` replaces the message under
9788
9996
  the field and does not reach that one. */
9789
9997
  "value-missing-message"?: (HelixHeadlessToggleGroup["valueMissingMessage"]) | undefined;
9790
- /** What a reader is told when the field is required and empty, where the
9791
- page says.
9998
+ /** The message shown when the field is required and empty.
9792
9999
 
9793
10000
  **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9794
10001
  set and the browser's own on a text field, which the browser writes in
@@ -9797,7 +10004,7 @@ and this one was the English a form in another language still spoke in
9797
10004
  the bubble it raises on submit: `feedback` replaces the message under
9798
10005
  the field and does not reach that one. */
9799
10006
  valueMissingMessage?: (HelixHeadlessToggleGroup["valueMissingMessage"]) | undefined;
9800
- /** Whether the control is non-interactive.
10007
+ /** Whether the control is disabled and cannot be used.
9801
10008
 
9802
10009
  Reflected, because the styled tier selects on it, and mirrored to
9803
10010
  `aria-disabled` rather than removing the element from the accessibility
@@ -9806,7 +10013,7 @@ tree, so a screen reader can still announce that the control exists.
9806
10013
  The mirror itself is in `willUpdate` below, here rather than in each
9807
10014
  control, because here is where `disabled` is. */
9808
10015
  disabled?: (HelixHeadlessToggleGroup["disabled"]) | undefined;
9809
- /** Name submitted with the form.
10016
+ /** The name the control's value is submitted under.
9810
10017
 
9811
10018
  **Reflected, and it is the exception to "reflect only what CSS selects
9812
10019
  on".** The platform builds a form's entry list from the `name` *content
@@ -9846,15 +10053,16 @@ export type HelixHeadlessToggleHelixSelectElementEvent =
9846
10053
  HelixHeadlessToggleElementEvent<HelixSelectEvent>;
9847
10054
 
9848
10055
  export type HelixHeadlessToggleVueProps = {
9849
- /** Whether this one can be chosen. */
10056
+ /** Whether the item is disabled and cannot be chosen. */
9850
10057
  disabled?: (HelixHeadlessToggle["disabled"]) | undefined;
9851
- /** Whether this is the current one.
10058
+ /** Whether the item is selected.
9852
10059
 
9853
10060
  Written by the set rather than by a consumer, which is why it takes no
9854
10061
  default from an attribute here: a family whose selection a consumer
9855
10062
  declares in markup carries `defaultSelected` of its own to say so. */
9856
10063
  selected?: (HelixHeadlessToggle["selected"]) | undefined;
9857
- /** Identifies this one to the set, and is what a form submits. */
10064
+ /** The item's value, which identifies it in its set and is what a form
10065
+ submits. */
9858
10066
  value?: (HelixHeadlessToggle["value"]) | undefined;
9859
10067
  /** Whether the markup declared this one chosen, which is what a reset returns to.
9860
10068
 
@@ -9996,9 +10204,9 @@ Clamping is on the cross axis only, which is what makes this safe to point
9996
10204
  at a box the bubble genuinely does not fit inside. See `within` on
9997
10205
  `FloatingController` for what happens if it is applied to the rest. */
9998
10206
  within?: (HelixHeadlessTooltip["within"]) | undefined;
9999
- /** Whether the markup declared it open. Ignored once `open` is written. */
10207
+ /** Whether the element starts open. Ignored once `open` is written. */
10000
10208
  "default-open"?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
10001
- /** Whether the markup declared it open. Ignored once `open` is written. */
10209
+ /** Whether the element starts open. Ignored once `open` is written. */
10002
10210
  defaultOpen?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
10003
10211
  /** Whether the element is open.
10004
10212
 
@@ -10187,9 +10395,9 @@ row is not part of the tree React hydrates. */
10187
10395
  target?: (HelixHeadlessTreeItem["target"]) | undefined;
10188
10396
  /** Identifies the item to the consumer, carried in `helix-select`. */
10189
10397
  value?: (HelixHeadlessTreeItem["value"]) | undefined;
10190
- /** Whether the markup declared it open. Ignored once `open` is written. */
10398
+ /** Whether the element starts open. Ignored once `open` is written. */
10191
10399
  "default-open"?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
10192
- /** Whether the markup declared it open. Ignored once `open` is written. */
10400
+ /** Whether the element starts open. Ignored once `open` is written. */
10193
10401
  defaultOpen?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
10194
10402
  /** Whether the element is open.
10195
10403
 
@@ -10289,21 +10497,21 @@ branch as a label; a headless consumer reads the attribute and the
10289
10497
  written here appears in the served markup of every tree anybody renders.
10290
10498
  The resting state is the absence of the attribute, which is `peer`. */
10291
10499
  nesting?: (HelixHeadlessTree["nesting"]) | undefined;
10292
- /** What is said where there are none, and none are coming. */
10500
+ /** The text shown and announced when there are no rows and none are loading. */
10293
10501
  "empty-text"?: (HelixHeadlessTree["emptyText"]) | undefined;
10294
- /** What is said where there are none, and none are coming. */
10502
+ /** The text shown and announced when there are no rows and none are loading. */
10295
10503
  emptyText?: (HelixHeadlessTree["emptyText"]) | undefined;
10296
- /** Whether the rows are still on their way.
10504
+ /** Whether the rows are still loading.
10297
10505
 
10298
10506
  Reflected, because a stylesheet needs it: the rows that are already there
10299
10507
  are dimmed rather than removed while a new set arrives, and only CSS can
10300
10508
  say that without the component knowing what a row looks like. */
10301
10509
  loading?: (HelixHeadlessTree["loading"]) | undefined;
10302
- /** What is said while they are on their way. */
10510
+ /** The text shown and announced while the rows load. */
10303
10511
  "loading-text"?: (HelixHeadlessTree["loadingText"]) | undefined;
10304
- /** What is said while they are on their way. */
10512
+ /** The text shown and announced while the rows load. */
10305
10513
  loadingText?: (HelixHeadlessTree["loadingText"]) | undefined;
10306
- /** Which item is current, by its `value`.
10514
+ /** The `value` of the current item.
10307
10515
 
10308
10516
  Not `option.active`, which is the option the keyboard is on: that is a
10309
10517
  different question from which one is chosen.
@@ -10312,11 +10520,11 @@ Writing always applies, so `<helix-tabs active="one">` starts on that
10312
10520
  tab, and `default-active` is how markup says where to start without
10313
10521
  naming the current one. */
10314
10522
  active?: (HelixHeadlessTree["active"]) | undefined;
10315
- /** Which item the markup declared current.
10523
+ /** The `value` of the item declared current in markup.
10316
10524
 
10317
10525
  Ignored once `active` is written. */
10318
10526
  "default-active"?: (HelixHeadlessTree["defaultActive"]) | undefined;
10319
- /** Which item the markup declared current.
10527
+ /** The `value` of the item declared current in markup.
10320
10528
 
10321
10529
  Ignored once `active` is written. */
10322
10530
  defaultActive?: (HelixHeadlessTree["defaultActive"]) | undefined;
@@ -10431,7 +10639,7 @@ export type HelixHeadlessVideoPlaylistHelixBeforeActivateElementEvent =
10431
10639
  export type HelixHeadlessVideoPlaylistVueProps = {
10432
10640
  /** Accessible name for the list, which usually has no visible heading. */
10433
10641
  label?: (HelixHeadlessVideoPlaylist["label"]) | undefined;
10434
- /** Which item is current, by its `value`.
10642
+ /** The `value` of the current item.
10435
10643
 
10436
10644
  Not `option.active`, which is the option the keyboard is on: that is a
10437
10645
  different question from which one is chosen.
@@ -10440,11 +10648,11 @@ Writing always applies, so `<helix-tabs active="one">` starts on that
10440
10648
  tab, and `default-active` is how markup says where to start without
10441
10649
  naming the current one. */
10442
10650
  active?: (HelixHeadlessVideoPlaylist["active"]) | undefined;
10443
- /** Which item the markup declared current.
10651
+ /** The `value` of the item declared current in markup.
10444
10652
 
10445
10653
  Ignored once `active` is written. */
10446
10654
  "default-active"?: (HelixHeadlessVideoPlaylist["defaultActive"]) | undefined;
10447
- /** Which item the markup declared current.
10655
+ /** The `value` of the item declared current in markup.
10448
10656
 
10449
10657
  Ignored once `active` is written. */
10450
10658
  defaultActive?: (HelixHeadlessVideoPlaylist["defaultActive"]) | undefined;
@@ -11347,12 +11555,42 @@ export interface WcToolkitVueGlobalComponents {
11347
11555
  HelixHeadlessLoaderVueProps,
11348
11556
  HelixHeadlessLoaderVueEvents
11349
11557
  >;
11350
- /** **Helix draws no map.** There are no tiles here, no projection and no network, and there should not be: a tile renderer is a library, and what a design system can add to MapLibre or Leaflet is the frame. The consumer slots their map and this owns the box, the name, the controls and the way out, which is the shape 'VideoPlaylist' uses for a player it never renders. **The accessibility argument is the reason this exists**, and it was measured rather than assumed: a map embedded the ordinary way is a canvas with no role and no name, and it has *no node at all* in the accessibility tree. A reader using a screen reader does not walk past it so much as never meet it. A named region with controls in it is the whole of the difference. **The controls are buttons, and that is a deliberate choice against arrow keys.** Arrows work here too, but what a screen reader does with them is not ours to decide: macOS passes them through, Windows readers hold them for their own reading mode unless a page takes 'role="application"', which costs the reader their normal way of reading everything else in the frame. A button is findable and operable in every screen reader on every platform without that bargain, so panning and zooming are buttons first and keys second. **Nothing here moves the map.** Both controls ask, through 'helix-map-pan' and 'helix-map-zoom', and the consumer answers against whatever they slotted. A frame that moved the map would have to know whose map it was. */
11558
+ /** 'connectMap' fills the shape as a layer of the map, under its place names. The frame lists each area by its 'label' and 'description' for screen readers. */
11559
+ "helix-headless-map-area": DefineCustomElement<
11560
+ HelixHeadlessMapArea,
11561
+ HelixHeadlessMapAreaVueProps,
11562
+ HelixHeadlessMapAreaVueEvents
11563
+ >;
11564
+ /** A button placed at a latitude and longitude. 'connectMap' positions it on the map and moves it as the map moves. Its name shows beside it on hover and focus. Pressing a marker sends 'helix-activate' from the frame with the marker's 'name', or its 'label' if it has no name. All the markers in a map share one tab stop. The arrow keys move between them in the order they are written. */
11565
+ "helix-headless-map-marker": DefineCustomElement<
11566
+ HelixHeadlessMapMarker,
11567
+ HelixHeadlessMapMarkerVueProps,
11568
+ HelixHeadlessMapMarkerVueEvents
11569
+ >;
11570
+ /** Use a points layer for more places than markers can handle, such as every café in a city. 'connectMap' draws the points as one layer of the map. Set 'src' to a GeoJSON file, or set 'data' to a GeoJSON collection or a list of places. With 'cluster', nearby points combine into counts. Pressing a point sends 'helix-activate' from this element with the point's id, or its name if it has no id. Each point is named by its 'name' property, or by the property set in 'name-key'. The points and counts in view share one tab stop. The arrow keys, Home, and End move between them from top to bottom and along each line. Enter on a count zooms in to it. */
11571
+ "helix-headless-map-points": DefineCustomElement<
11572
+ HelixHeadlessMapPoints,
11573
+ HelixHeadlessMapPointsVueProps,
11574
+ HelixHeadlessMapPointsVueEvents
11575
+ >;
11576
+ /** 'lat' and 'lng' set where it is, 'heading' points it in a direction, in degrees clockwise from north, and 'accuracy' draws a ring with a radius of that many meters. 'connectMap' positions it and resizes the ring as the map zooms. Screen readers announce its 'description' when it changes, at most once every 'announce-every' milliseconds. Its movement is not announced. Set the description when something worth hearing happens, such as "Two stops away". */
11577
+ "helix-headless-map-position": DefineCustomElement<
11578
+ HelixHeadlessMapPosition,
11579
+ HelixHeadlessMapPositionVueProps,
11580
+ HelixHeadlessMapPositionVueEvents
11581
+ >;
11582
+ /** Wraps a map drawn by MapLibre, Leaflet, or another renderer. The frame adds a name for the map, pan and zoom buttons, a fullscreen button, and a strip for the map credit. Helix does not draw the map itself. The pan and zoom buttons and the arrow keys send 'helix-map-pan' and 'helix-map-zoom'. Move your map in response, or connect it with 'connectMap' from '@fusion.dev/helix-map', which does this for you. Markers, routes, areas, live positions, and points layers go inside the frame as child elements. */
11351
11583
  "helix-headless-map": DefineCustomElement<
11352
11584
  HelixHeadlessMap,
11353
11585
  HelixHeadlessMapVueProps,
11354
11586
  HelixHeadlessMapVueEvents
11355
11587
  >;
11588
+ /** 'connectMap' draws the route as a layer of the map, under its place names, and redraws it when its points, progress, or color change. The frame lists each route by its 'label' and 'description' for screen readers. */
11589
+ "helix-headless-map-route": DefineCustomElement<
11590
+ HelixHeadlessMapRoute,
11591
+ HelixHeadlessMapRouteVueProps,
11592
+ HelixHeadlessMapRouteVueEvents
11593
+ >;
11356
11594
  /** **A disclosure, not a menu, and that is the whole design.** 'role="menu"' and 'menuitem' are for an application's commands: they take over the arrow keys, announce "menu" to a reader who asked for navigation, and put every link inside a role that is not a link. This is a button that shows and hides a region of the consumer's own anchors, which leaves a middle click, a modified click and the status bar working. 'Menu' remains right for a row of commands. **It renders no links.** A router renders its own anchor and cannot render one inside this shadow root, so the panel is a slot and what goes in it is the lists and headings the consumer wrote. **It opens on hover, and a press is always the fallback.** 'open-on' says which, and hover is the resting value because a nav bar is where a reader expects to sweep along a row and see each section. */
11357
11595
  "helix-headless-megamenu": DefineCustomElement<
11358
11596
  HelixHeadlessMegamenu,