@fusion.dev/helix 0.146.0 → 0.148.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/custom-elements.json +10225 -1400
  2. package/dist/accordion/item/accordion-item.css.js +4 -96
  3. package/dist/accordion/root/accordion-root.css.js +2 -28
  4. package/dist/announcement/root/announcement-root.css.js +10 -154
  5. package/dist/announcement/root/announcement-root.d.ts +3 -0
  6. package/dist/app-header/root/app-header-root.css.js +2 -118
  7. package/dist/area-chart/root/area-chart-root.css.js +4 -94
  8. package/dist/area-chart/root/area-chart-root.d.ts +1 -0
  9. package/dist/aura/root/aura-root.css.js +2 -57
  10. package/dist/avatar/group/avatar-group.css.js +5 -36
  11. package/dist/avatar/group/avatar-group.d.ts +3 -0
  12. package/dist/avatar/root/avatar-root.css.js +1 -53
  13. package/dist/avatar/root/avatar-root.d.ts +2 -0
  14. package/dist/badge/root/badge-root.css.js +12 -207
  15. package/dist/badge/root/badge-root.d.ts +2 -0
  16. package/dist/bar-chart/root/bar-chart-root.css.js +8 -292
  17. package/dist/blockquote/root/blockquote-root.css.js +1 -43
  18. package/dist/blockquote/root/blockquote-root.d.ts +8 -2
  19. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
  20. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +5 -42
  21. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +17 -0
  22. package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
  23. package/dist/button/root/button-root.css.js +16 -197
  24. package/dist/button/root/button-root.d.ts +1 -0
  25. package/dist/button-group/root/button-group-root.css.js +11 -52
  26. package/dist/button-group/root/button-group-root.d.ts +29 -7
  27. package/dist/button-group/root/button-group-root.js +19 -0
  28. package/dist/callout/root/callout-root.css.js +5 -138
  29. package/dist/callout/root/callout-root.d.ts +4 -2
  30. package/dist/canvas/node/canvas-node.css.js +10 -367
  31. package/dist/canvas/node/canvas-node.d.ts +5 -0
  32. package/dist/canvas/root/canvas-root.css.js +11 -270
  33. package/dist/canvas/root/canvas-root.d.ts +6 -0
  34. package/dist/card/root/card-root.css.js +5 -134
  35. package/dist/card/root/card-root.d.ts +4 -0
  36. package/dist/carousel/root/carousel-root.css.js +20 -386
  37. package/dist/chat/composer/chat-composer.css.js +4 -105
  38. package/dist/chat/message/chat-message.css.js +5 -239
  39. package/dist/chat/message/chat-message.d.ts +5 -0
  40. package/dist/chat/root/chat-root.css.js +5 -162
  41. package/dist/chat/typing.css.js +9 -46
  42. package/dist/checkbox/root/checkbox-root.css.js +12 -177
  43. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
  44. package/dist/code/root/code-root.css.js +3 -25
  45. package/dist/code-block/root/code-block-root.css.js +22 -279
  46. package/dist/code-block/root/code-block-root.d.ts +7 -0
  47. package/dist/color-input/root/color-input-root.css.js +5 -114
  48. package/dist/color-picker/root/color-picker-root.css.js +39 -337
  49. package/dist/color-picker/root/color-picker-root.d.ts +2 -0
  50. package/dist/combobox/root/combobox-root.css.js +8 -147
  51. package/dist/combobox/root/combobox-root.js +2 -0
  52. package/dist/command/root/command-root.css.js +3 -74
  53. package/dist/copy-button/root/copy-button-root.css.js +3 -43
  54. package/dist/data-table/root/data-table-root.css.js +21 -245
  55. package/dist/data-table/root/data-table-root.d.ts +7 -0
  56. package/dist/date-input/root/date-input-root.css.js +8 -103
  57. package/dist/date-picker/root/date-picker-root.css.js +16 -278
  58. package/dist/date-picker/root/date-picker-root.d.ts +1 -0
  59. package/dist/description-list/item/description-list-item.css.js +1 -41
  60. package/dist/description-list/item/description-list-item.d.ts +8 -0
  61. package/dist/description-list/root/description-list-root.css.js +2 -34
  62. package/dist/description-list/root/description-list-root.d.ts +13 -0
  63. package/dist/description-list/root/description-list-root.js +7 -0
  64. package/dist/dialog/root/dialog-root.css.js +7 -221
  65. package/dist/dialog/root/dialog-root.d.ts +3 -0
  66. package/dist/divider/root/divider-root.css.js +5 -81
  67. package/dist/divider/root/divider-root.d.ts +3 -0
  68. package/dist/donut-chart/root/donut-chart-root.css.js +7 -193
  69. package/dist/drawer/root/drawer-root.css.js +11 -237
  70. package/dist/drilldown/item/drilldown-item.css.js +4 -51
  71. package/dist/drilldown/item/drilldown-item.d.ts +1 -0
  72. package/dist/drilldown/root/drilldown-root.css.js +6 -120
  73. package/dist/element-events.generated.js +5 -1
  74. package/dist/empty/root/empty-root.css.js +2 -42
  75. package/dist/file-input/root/file-input-root.css.js +7 -173
  76. package/dist/file-input/root/file-input-root.d.ts +4 -0
  77. package/dist/filter-input/chip/filter-chip.css.js +2 -84
  78. package/dist/filter-input/field/filter-field.css.js +1 -3
  79. package/dist/filter-input/menu/filter-menu.css.js +1 -3
  80. package/dist/filter-input/operator/filter-operator.css.js +1 -3
  81. package/dist/filter-input/root/filter-input-root.css.js +6 -113
  82. package/dist/flex/root/flex-root.css.js +4 -207
  83. package/dist/flex/root/flex-root.d.ts +2 -2
  84. package/dist/format-date/root/format-date-root.css.js +1 -13
  85. package/dist/format-date/root/format-date-root.d.ts +0 -1
  86. package/dist/format-date/root/format-date-root.js +0 -1
  87. package/dist/graph/root/graph-root.css.js +9 -444
  88. package/dist/grid/root/grid-root.css.js +1 -171
  89. package/dist/heatmap/root/heatmap-root.css.js +8 -156
  90. package/dist/heatmap/root/heatmap-root.d.ts +2 -0
  91. package/dist/icon/index.d.ts +1 -1
  92. package/dist/icon/root/icon-root.css.js +1 -18
  93. package/dist/icon/root/index.d.ts +1 -1
  94. package/dist/icon-button/root/icon-button-root.css.js +25 -203
  95. package/dist/icon-button/root/icon-button-root.d.ts +1 -0
  96. package/dist/image/root/image-root.css.js +7 -65
  97. package/dist/image/root/image-root.d.ts +3 -0
  98. package/dist/input/root/input-root.css.js +6 -79
  99. package/dist/kbd/root/kbd-root.css.js +2 -71
  100. package/dist/kbd/root/kbd-root.d.ts +7 -0
  101. package/dist/legend/root/legend-root.css.js +9 -106
  102. package/dist/legend/root/legend-root.d.ts +2 -0
  103. package/dist/lightbox/item/lightbox-item.css.js +1 -37
  104. package/dist/lightbox/root/lightbox-root.css.js +38 -183
  105. package/dist/line-chart/root/line-chart-root.css.js +4 -170
  106. package/dist/line-chart/root/line-chart-root.d.ts +1 -0
  107. package/dist/list/item/list-item.css.js +2 -94
  108. package/dist/list/root/list-root.css.js +4 -88
  109. package/dist/listbox/root/listbox-root.css.js +7 -111
  110. package/dist/listbox/root/listbox-root.d.ts +2 -0
  111. package/dist/listbox/root/listbox-root.js +1 -0
  112. package/dist/loader/root/loader-root.css.js +5 -171
  113. package/dist/map/area/map-area.css.js +1 -23
  114. package/dist/map/buildings/map-buildings.css.js +1 -26
  115. package/dist/map/contours/map-contours.css.js +2 -5
  116. package/dist/map/landcover/map-landcover.css.js +1 -4
  117. package/dist/map/marker/map-marker.css.js +14 -327
  118. package/dist/map/points/map-points.css.js +1 -86
  119. package/dist/map/position/map-position.css.js +8 -227
  120. package/dist/map/raster/map-raster.css.js +1 -3
  121. package/dist/map/root/map-root.css.js +14 -352
  122. package/dist/map/root/map-root.d.ts +10 -0
  123. package/dist/map/route/map-route.css.js +1 -24
  124. package/dist/map/terrain/map-terrain.css.js +3 -7
  125. package/dist/megamenu/root/megamenu-root.css.js +11 -162
  126. package/dist/megamenu/root/megamenu-root.d.ts +8 -0
  127. package/dist/menu/item/menu-item.css.js +7 -130
  128. package/dist/menu/root/menu-root.css.js +1 -110
  129. package/dist/menu/section/menu-section.css.js +1 -13
  130. package/dist/meter/root/meter-root.css.js +17 -207
  131. package/dist/meter/root/meter-root.d.ts +3 -0
  132. package/dist/navigation/root/navigation-root.css.js +2 -54
  133. package/dist/notifications/group/notification-group.css.js +1 -61
  134. package/dist/notifications/notification/notification.css.js +17 -264
  135. package/dist/notifications/root/notifications-root.css.js +7 -125
  136. package/dist/notifications/root/notifications-root.d.ts +7 -2
  137. package/dist/number-input/root/number-input-root.css.js +10 -103
  138. package/dist/object-inspector/root/object-inspector-root.css.js +11 -162
  139. package/dist/option/group/option-group.css.js +1 -22
  140. package/dist/option/index.d.ts +1 -0
  141. package/dist/option/index.js +1 -0
  142. package/dist/option/root/option-root.css.js +3 -85
  143. package/dist/option/separator/option-separator.css.d.ts +1 -0
  144. package/dist/option/separator/option-separator.css.js +3 -0
  145. package/dist/option/separator/option-separator.d.ts +26 -0
  146. package/dist/option/separator/option-separator.js +16 -0
  147. package/dist/orb/root/orb-root.css.js +1 -41
  148. package/dist/outline/root/outline-root.css.js +24 -122
  149. package/dist/outline/root/outline-root.d.ts +17 -4
  150. package/dist/pagination/root/pagination-root.css.js +9 -105
  151. package/dist/pagination/root/pagination-root.d.ts +14 -0
  152. package/dist/pagination/size/pagination-size.css.js +1 -22
  153. package/dist/pagination/size/pagination-size.d.ts +3 -0
  154. package/dist/pagination/summary/pagination-summary.css.js +1 -7
  155. package/dist/pagination/summary/pagination-summary.d.ts +3 -0
  156. package/dist/pin-input/root/pin-input-root.css.js +2 -73
  157. package/dist/pin-input/root/pin-input-root.d.ts +9 -3
  158. package/dist/popover/root/popover-root.css.js +6 -127
  159. package/dist/progress/root/progress-root.css.js +7 -230
  160. package/dist/progress/root/progress-root.d.ts +4 -0
  161. package/dist/qr-code/root/qr-code-root.css.js +1 -68
  162. package/dist/qr-code/root/qr-code-root.d.ts +3 -0
  163. package/dist/quote/root/quote-root.css.js +1 -20
  164. package/dist/radio/group/radio-group.css.js +1 -21
  165. package/dist/radio/root/radio-root.css.js +5 -208
  166. package/dist/rating/root/rating-root.css.js +4 -117
  167. package/dist/sandbox/frame.d.ts +2 -1
  168. package/dist/sandbox/frame.js +1 -1
  169. package/dist/sandbox/index.d.ts +1 -1
  170. package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
  171. package/dist/sandbox/preview/sandbox-preview.d.ts +27 -3
  172. package/dist/sandbox/preview/sandbox-preview.js +17 -11
  173. package/dist/sandbox/root/sandbox-root.css.js +3 -70
  174. package/dist/sandbox/root/sandbox-root.d.ts +16 -4
  175. package/dist/sandbox/root/sandbox-root.js +29 -50
  176. package/dist/sandbox/source/sandbox-source.css.js +3 -95
  177. package/dist/sandbox/source/sandbox-source.d.ts +31 -25
  178. package/dist/sandbox/source/sandbox-source.js +12 -5
  179. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
  180. package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
  181. package/dist/sandbox/terminal/sandbox-terminal.d.ts +4 -0
  182. package/dist/sandbox/terminal/sandbox-terminal.js +2 -1
  183. package/dist/sandbox/tokens.d.ts +2 -2
  184. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
  185. package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -146
  186. package/dist/scatter-chart/root/scatter-chart-root.d.ts +1 -0
  187. package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
  188. package/dist/select/root/select-root.css.js +7 -124
  189. package/dist/select/root/select-root.js +2 -0
  190. package/dist/shared/chart/series.css.js +1 -36
  191. package/dist/shared/chart/terminus.css.js +1 -47
  192. package/dist/shared/chart/tooltip.css.js +1 -68
  193. package/dist/shared/collection/state.css.js +1 -9
  194. package/dist/shared/field/field-frame.css.js +3 -33
  195. package/dist/shared/field/field-inline.css.js +1 -4
  196. package/dist/shared/field/field-segments.css.js +1 -39
  197. package/dist/shared/field/field-stacked.css.js +1 -5
  198. package/dist/shared/field/field.css.js +3 -57
  199. package/dist/shared/floating/entrance.css.js +3 -34
  200. package/dist/shared/floating/panel.css.js +2 -17
  201. package/dist/shared/glyph/glyph.css.js +1 -5
  202. package/dist/shared/live/live.css.js +1 -8
  203. package/dist/shared/tags/tags.css.js +1 -39
  204. package/dist/shared/viewport/viewport.css.js +8 -135
  205. package/dist/skeleton/root/skeleton-root.css.js +12 -120
  206. package/dist/skip-link/root/skip-link-root.css.js +2 -47
  207. package/dist/slider/root/slider-root.css.js +19 -330
  208. package/dist/slider/root/slider-root.d.ts +2 -0
  209. package/dist/sparkline/root/sparkline-root.css.js +8 -143
  210. package/dist/sparkline/root/sparkline-root.d.ts +2 -0
  211. package/dist/speed-dial/group/speed-dial-group.css.d.ts +1 -0
  212. package/dist/speed-dial/group/speed-dial-group.css.js +2 -0
  213. package/dist/speed-dial/group/speed-dial-group.d.ts +27 -0
  214. package/dist/speed-dial/group/speed-dial-group.js +16 -0
  215. package/dist/speed-dial/index.d.ts +1 -0
  216. package/dist/speed-dial/index.js +1 -0
  217. package/dist/speed-dial/item/speed-dial-item.css.js +4 -73
  218. package/dist/speed-dial/item/speed-dial-item.d.ts +1 -0
  219. package/dist/speed-dial/root/speed-dial-root.css.js +3 -149
  220. package/dist/splitter/root/splitter-root.css.js +19 -176
  221. package/dist/splitter/root/splitter-root.d.ts +4 -0
  222. package/dist/stat/group/stat-group.css.js +1 -36
  223. package/dist/stat/root/stat-root.css.js +3 -62
  224. package/dist/steps/root/steps-root.css.js +7 -92
  225. package/dist/steps/step/step.css.js +5 -156
  226. package/dist/switch/root/switch-root.css.js +2 -110
  227. package/dist/table/cell/table-cell.css.js +1 -33
  228. package/dist/table/column/table-column.css.js +7 -105
  229. package/dist/table/root/table-root.css.js +1 -43
  230. package/dist/table/row/table-row.css.js +6 -18
  231. package/dist/table/row/table-row.d.ts +2 -0
  232. package/dist/tabs/panel/tab-panel.css.js +2 -17
  233. package/dist/tabs/root/tabs-root.css.js +6 -177
  234. package/dist/tabs/tab/tab.css.js +6 -54
  235. package/dist/tag/group/tag-group.css.js +1 -11
  236. package/dist/tag/root/tag-root.css.js +1 -166
  237. package/dist/tag/root/tag-root.d.ts +2 -0
  238. package/dist/text/root/text-root.css.js +11 -200
  239. package/dist/textarea/root/textarea-root.css.js +3 -71
  240. package/dist/time-input/root/time-input-root.css.js +7 -118
  241. package/dist/time-picker/root/time-picker-root.css.js +15 -134
  242. package/dist/time-picker/root/time-picker-root.d.ts +7 -0
  243. package/dist/timeline/group/timeline-group.css.js +1 -31
  244. package/dist/timeline/item/timeline-item.css.js +3 -134
  245. package/dist/timeline/root/timeline-root.css.js +1 -66
  246. package/dist/toast/item/toast-item.css.js +11 -250
  247. package/dist/toast/item/toast-item.d.ts +10 -0
  248. package/dist/toast/root/toast-root.css.js +1 -85
  249. package/dist/toast/root/toast-root.js +2 -1
  250. package/dist/toggle/group/toggle-group.css.js +7 -126
  251. package/dist/toggle/root/toggle-root.css.js +1 -23
  252. package/dist/toolbar/root/toolbar-root.css.js +1 -36
  253. package/dist/toolbar/root/toolbar-root.d.ts +11 -0
  254. package/dist/toolbar/root/toolbar-root.js +4 -0
  255. package/dist/tooltip/root/tooltip-root.css.js +5 -101
  256. package/dist/tooltip/root/tooltip-root.d.ts +2 -0
  257. package/dist/tour/root/tour-root.css.js +2 -28
  258. package/dist/tour/stop/tour-stop.css.js +2 -109
  259. package/dist/tree/item/tree-item.css.js +12 -238
  260. package/dist/tree/root/tree-root.css.js +1 -40
  261. package/dist/trend/root/trend-root.css.js +5 -53
  262. package/dist/video/root/video-root.css.js +16 -398
  263. package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
  264. package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
  265. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
  266. package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
  267. package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
  268. package/dist/virtual-list/root/virtual-list-root.css.js +3 -40
  269. package/lint.json +1 -1
  270. package/package.json +6 -6
  271. package/types/jsx.d.ts +4595 -777
  272. package/types/svelte.d.ts +2 -0
  273. package/types/vue.d.ts +1312 -210
package/types/vue.d.ts CHANGED
@@ -92,6 +92,7 @@ import type {
92
92
  HelixObjectInspector,
93
93
  HelixOptionGroup,
94
94
  HelixOption,
95
+ HelixOptionSeparator,
95
96
  HelixOrb,
96
97
  HelixOutline,
97
98
  HelixPagination,
@@ -118,6 +119,7 @@ import type {
118
119
  HelixSkipLink,
119
120
  HelixSlider,
120
121
  HelixSparkline,
122
+ HelixSpeedDialGroup,
121
123
  HelixSpeedDialItem,
122
124
  HelixSpeedDial,
123
125
  HelixSplitter,
@@ -164,6 +166,7 @@ import type {
164
166
  HelixDismissEvent,
165
167
  HelixScrolledEvent,
166
168
  HelixAuraFallbackEvent,
169
+ HelixBeforeChangeEvent,
167
170
  HelixPressEvent,
168
171
  HelixBeforeMoveEvent,
169
172
  HelixBeforeReconnectEvent,
@@ -184,7 +187,6 @@ import type {
184
187
  HelixBeforePinEvent,
185
188
  HelixHistoryEvent,
186
189
  HelixPinEvent,
187
- HelixBeforeChangeEvent,
188
190
  HelixBeforeToggleEvent,
189
191
  HelixCopyEvent,
190
192
  HelixSampleEndEvent,
@@ -223,6 +225,7 @@ import type {
223
225
  HelixMapTiltEvent,
224
226
  HelixMapZoomEvent,
225
227
  HelixToggleEvent,
228
+ HelixBandEvent,
226
229
  HelixReadEvent,
227
230
  HelixCompleteEvent,
228
231
  HelixPreviewEvent,
@@ -352,18 +355,16 @@ too. */
352
355
  /** Whether find in page searches the section while it is closed, and opens it
353
356
  on a match.
354
357
 
355
- Off by default. A closed section is then `hidden="until-found"`, which
356
- hides through `content-visibility`, so a stylesheet that animates the
357
- section closed shows an empty box for the length of that animation. The
358
- accordion's own `hidden-until-found` turns it on for every section. */
358
+ Unset takes the accordion's `hidden-until-found`, which is on. Write
359
+ `hidden-until-found="false"` to keep find in page out of this section: a
360
+ closed section is then `hidden` and `inert`. */
359
361
  "hidden-until-found"?: (HelixAccordionItem["hiddenUntilFound"]) | undefined;
360
362
  /** Whether find in page searches the section while it is closed, and opens it
361
363
  on a match.
362
364
 
363
- Off by default. A closed section is then `hidden="until-found"`, which
364
- hides through `content-visibility`, so a stylesheet that animates the
365
- section closed shows an empty box for the length of that animation. The
366
- accordion's own `hidden-until-found` turns it on for every section. */
365
+ Unset takes the accordion's `hidden-until-found`, which is on. Write
366
+ `hidden-until-found="false"` to keep find in page out of this section: a
367
+ closed section is then `hidden` and `inert`. */
367
368
  hiddenUntilFound?: (HelixAccordionItem["hiddenUntilFound"]) | undefined;
368
369
  /** A group name. Opening an item closes the other items with the same name,
369
370
  as `<details name>` does.
@@ -426,12 +427,18 @@ Unset is 3. An item's own `heading-level` wins over this. */
426
427
  Unset is 3. An item's own `heading-level` wins over this. */
427
428
  headingLevel?: (HelixAccordion["headingLevel"]) | undefined;
428
429
  /** Whether find in page searches every closed section, and opens the one it
429
- matches in. Each item's own `hidden-until-found` turns it on for that item
430
- alone. */
430
+ matches in.
431
+
432
+ On by default, as in React Aria's disclosure. Write
433
+ `hidden-until-found="false"` to turn it off for every section; an item's
434
+ own `hidden-until-found` wins for that item. */
431
435
  "hidden-until-found"?: (HelixAccordion["hiddenUntilFound"]) | undefined;
432
436
  /** Whether find in page searches every closed section, and opens the one it
433
- matches in. Each item's own `hidden-until-found` turns it on for that item
434
- alone. */
437
+ matches in.
438
+
439
+ On by default, as in React Aria's disclosure. Write
440
+ `hidden-until-found="false"` to turn it off for every section; an item's
441
+ own `hidden-until-found` wins for that item. */
435
442
  hiddenUntilFound?: (HelixAccordion["hiddenUntilFound"]) | undefined;
436
443
  /** How many sections may be open at once.
437
444
 
@@ -498,6 +505,22 @@ would catch. */
498
505
  Read once when the announcement is first rendered, as `Toast` reads its
499
506
  own. The clock stops while the pointer or focus is on the announcement. */
500
507
  duration?: (HelixAnnouncement["duration"]) | undefined;
508
+ /** The key that moves focus to the announcement's first control, and back
509
+ to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
510
+
511
+ F6 by default, the key React Aria's regions answer to. Empty turns it
512
+ off. With several announcements, the first one in the page takes focus. */
513
+ hotkey?: (HelixAnnouncement["hotkey"]) | undefined;
514
+ /** The name of the announcement's region, which screen readers list among
515
+ the page's landmarks. Translate it with the rest of your interface.
516
+
517
+ Empty leaves the announcement no region. */
518
+ label?: (HelixAnnouncement["label"]) | undefined;
519
+ /** Whether the announcement waits its turn behind the queued announcements
520
+ before it in the same parent, showing when the last of them is removed.
521
+
522
+ Off by default, so every announcement on a page shows at once. */
523
+ queued?: (HelixAnnouncement["queued"]) | undefined;
501
524
  /** The band's color.
502
525
 
503
526
  Paint only: unlike `Callout`, no value here draws a mark, changes the label,
@@ -687,6 +710,13 @@ The same three values `LineChart` takes, with the same fallback: a bare
687
710
  rather than under them, because the bands are opaque and a rule under one is
688
711
  a rule nobody sees. */
689
712
  gridlines?: (HelixAreaChart["gridlines"]) | undefined;
713
+ /** Draws every band from zero, in front of the next, so a band's height is
714
+ its own part's amount and not its place in a stack.
715
+
716
+ Absent stacks the parts, so the top edge is the total. Set, the first
717
+ column is in front and the scale fits the largest part. Reflected, because
718
+ the styled tier lets the bands behind show through the ones in front. */
719
+ overlap?: (HelixAreaChart["overlap"]) | undefined;
690
720
  /** Draws each reading as a hundred percent, so each band shows its share of
691
721
  the total.
692
722
 
@@ -887,6 +917,19 @@ replaces them when it arrives, so a slow connection shows who it is
887
917
  without a cached picture flashing initials first. Radix's `delayMs` is the
888
918
  same idea. */
889
919
  fallbackDelay?: (HelixAvatar["fallbackDelay"]) | undefined;
920
+ /** The letters shown where no picture loaded, such as `GH`, in place of the
921
+ ones taken from `name`.
922
+
923
+ For a name whose initials are not its first and last letters, or an
924
+ entity with a short mark of its own. Absent, the first letters of the
925
+ first and last words of `name` are shown. */
926
+ initials?: (HelixAvatar["initials"]) | undefined;
927
+ /** When the browser fetches the picture: `lazy` waits until it is near the
928
+ screen, as an `<img loading="lazy">` does, and `eager` fetches it at once.
929
+
930
+ Absent is the browser's own default, which is `eager`. `lazy` suits a long
931
+ list of people, most of them off screen. */
932
+ loading?: (HelixAvatar["loading"]) | undefined;
890
933
  /** Name of the person or entity.
891
934
 
892
935
  Used for the label and the initials. */
@@ -950,12 +993,28 @@ color.
950
993
  `Announcement` gives for its own neutral: a generated page should be able to
951
994
  say what it means rather than express it by leaving an attribute off. */
952
995
  tone?: (HelixBadge["tone"]) | undefined;
996
+ /** `Intl.NumberFormat` options a count is written with, such as
997
+ `{"notation":"compact"}` for `1.2K`, written as JSON in the attribute.
998
+
999
+ Absent, a count is shown as it was given. Text that is not a number is
1000
+ shown as it is either way. */
1001
+ "format-options"?: (HelixBadge["formatOptions"]) | undefined;
1002
+ /** `Intl.NumberFormat` options a count is written with, such as
1003
+ `{"notation":"compact"}` for `1.2K`, written as JSON in the attribute.
1004
+
1005
+ Absent, a count is shown as it was given. Text that is not a number is
1006
+ shown as it is either way. */
1007
+ formatOptions?: (HelixBadge["formatOptions"]) | undefined;
953
1008
  /** The badge's name, read by screen readers.
954
1009
 
955
1010
  Required for a dot, which has no text to read. `{count}` is replaced with
956
1011
  what the badge shows, so `label="{count} unread"` reads "8 unread" and
957
1012
  stays current as `value` changes, with no label of yours to keep in step. */
958
1013
  label?: (HelixBadge["label"]) | undefined;
1014
+ /** The locale a count is written in under `format-options`, such as `de`.
1015
+
1016
+ Absent uses the runtime's own. */
1017
+ locale?: (HelixBadge["locale"]) | undefined;
959
1018
  /** The largest number the badge shows.
960
1019
 
961
1020
  Past it the indicator reads `{max}+`. */
@@ -1224,8 +1283,19 @@ second scale stack among themselves. */
1224
1283
  export type HelixBarChartVueEvents = {};
1225
1284
 
1226
1285
  export type HelixBlockquoteVueProps = {
1227
- /** The URL of the source the passage came from. */
1286
+ /** Who said it, and where, as words, such as "Maria Lopez, operations
1287
+ manager". The `attribution` slot replaces them, for markup such as a link.
1288
+
1289
+ Words are served with the figure they name, where a server cannot see a
1290
+ slotted attribution. */
1291
+ attribution?: (HelixBlockquote["attribution"]) | undefined;
1292
+ /** The URL of the source the passage came from. Who said it goes in
1293
+ `attribution`: a `cite` with words in it warns once, with the runtime kind
1294
+ `cite-not-url`. */
1228
1295
  cite?: (HelixBlockquote["cite"]) | undefined;
1296
+ /** Whether to draw an opening quotation mark before the passage, in the
1297
+ element's language. Leave the marks out of the text. */
1298
+ marks?: (HelixBlockquote["marks"]) | undefined;
1229
1299
  };
1230
1300
 
1231
1301
  export type HelixBlockquoteVueEvents = {};
@@ -1262,6 +1332,17 @@ The consumer's decision. */
1262
1332
  export type HelixBreadcrumbVueEvents = {};
1263
1333
 
1264
1334
  export type HelixBreadcrumbsVueProps = {
1335
+ /** How the two halves of a split crumb are told apart. A split crumb is one
1336
+ with a control in its `end` slot, such as a switcher's menu trigger.
1337
+
1338
+ - `plain` is the default. The halves are text at rest, like every other
1339
+ crumb. While one half is under the pointer, both halves take a light fill
1340
+ and that half takes the full hover fill.
1341
+ - `outlined` draws a hairline between the halves, at rest and under the
1342
+ pointer, the way an outlined surface keeps its edge at rest.
1343
+
1344
+ The other crumbs look the same under either value. */
1345
+ separation?: (HelixBreadcrumbs["separation"]) | undefined;
1265
1346
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1266
1347
  is replaced by how many it shows. Translate it with the page. */
1267
1348
  "expand-label"?: (HelixBreadcrumbs["expandLabel"]) | undefined;
@@ -1289,7 +1370,20 @@ attribute would put the whole path into the markup twice. */
1289
1370
 
1290
1371
  export type HelixBreadcrumbsVueEvents = {};
1291
1372
 
1373
+ /** `HelixButtonGroup` component event */
1374
+ export type HelixButtonGroupElementEvent<E = Event> = TypedEvent<
1375
+ HelixButtonGroup,
1376
+ E
1377
+ >;
1378
+ /** `helix-before-change` event type */
1379
+ export type HelixButtonGroupHelixBeforeChangeElementEvent =
1380
+ HelixButtonGroupElementEvent<HelixBeforeChangeEvent>;
1381
+
1292
1382
  export type HelixButtonGroupVueProps = {
1383
+ /** The size of every button in the group: their height, text, padding and
1384
+ icons, from the density steps. Unset, the buttons take the size of the
1385
+ region around the group. */
1386
+ size?: (HelixButtonGroup["size"]) | undefined;
1293
1387
  /** Whether the buttons are one bar or a spaced row.
1294
1388
 
1295
1389
  Joined by default: one control made of parts, sharing borders, reading as a
@@ -1323,9 +1417,32 @@ buttons sharing edges as one shape, and a wrapped row carries the corners of
1323
1417
  a first row into a second. Stacked, the same three keep one shape and one
1324
1418
  column. */
1325
1419
  orientation?: (HelixButtonGroup["orientation"]) | undefined;
1420
+ /** Whether the buttons stay pressed: `single` keeps one pressed at a time and
1421
+ `multiple` any number. Unset, they are action buttons, each its own tab
1422
+ stop, as before.
1423
+
1424
+ Optional, so the attribute is absent until a consumer writes it. */
1425
+ "selection-mode"?: (HelixButtonGroup["selectionMode"]) | undefined;
1426
+ /** Whether the buttons stay pressed: `single` keeps one pressed at a time and
1427
+ `multiple` any number. Unset, they are action buttons, each its own tab
1428
+ stop, as before.
1429
+
1430
+ Optional, so the attribute is absent until a consumer writes it. */
1431
+ selectionMode?: (HelixButtonGroup["selectionMode"]) | undefined;
1432
+ /** The values of the pressed buttons, comma separated, in a selection mode.
1433
+ A button's own `value` names it, so a value holds no comma.
1434
+
1435
+ The attribute is the seed, and a press changes the property, which does
1436
+ not reflect, as a native control's `value` does not. */
1437
+ value?: (HelixButtonGroup["value"]) | undefined;
1326
1438
  };
1327
1439
 
1328
- export type HelixButtonGroupVueEvents = {};
1440
+ export type HelixButtonGroupVueEvents = {
1441
+ /** Fired after a press changes `value`, in a selection mode. */
1442
+ change: HelixButtonGroupElementEvent;
1443
+ /** Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are. */
1444
+ "helix-before-change": HelixButtonGroupHelixBeforeChangeElementEvent;
1445
+ };
1329
1446
 
1330
1447
  /** `HelixButton` component event */
1331
1448
  export type HelixButtonElementEvent<E = Event> = TypedEvent<HelixButton, E>;
@@ -1403,33 +1520,23 @@ is the platform's `commandfor`. */
1403
1520
  commandFor?: (HelixButton["commandFor"]) | undefined;
1404
1521
  /** Where this button's submission goes, overriding the form's own.
1405
1522
 
1406
- **The five `form*` overrides work by writing the form and putting it back**,
1407
- which is the only mechanism available and is closer to the platform than it
1408
- sounds. `requestSubmit(submitter)` is how a native submitter carries these,
1409
- and it refuses ours twice over: the inner `<button>` is `type="button"` so
1410
- it is not a submit button, and it sits in this shadow root so its form owner
1411
- is not the consumer's form. Both throw. So the submission is started with no
1412
- submitter and the overrides are applied to the form for the duration of it.
1413
-
1414
- The whole submit algorithm runs synchronously inside `requestSubmit()`, so
1415
- the window is one call and a `finally` closes it whether or not a listener
1416
- refused. What a `submit` handler observes during that window is the form a
1417
- native submitter would have given it, which is the point. */
1523
+ **The five `form*` overrides ride on a native submit button that stands in
1524
+ for this one**, because `requestSubmit(submitter)` refuses the inner
1525
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
1526
+ root, so its form owner is not the consumer's form. The stand-in is a
1527
+ hidden `<button type="submit">` in the form for the one synchronous call,
1528
+ so the platform applies the overrides to that submission alone and leaves
1529
+ the form as it was. See `submitAs`. */
1418
1530
  formaction?: (HelixButton["formAction"]) | undefined;
1419
1531
  /** Where this button's submission goes, overriding the form's own.
1420
1532
 
1421
- **The five `form*` overrides work by writing the form and putting it back**,
1422
- which is the only mechanism available and is closer to the platform than it
1423
- sounds. `requestSubmit(submitter)` is how a native submitter carries these,
1424
- and it refuses ours twice over: the inner `<button>` is `type="button"` so
1425
- it is not a submit button, and it sits in this shadow root so its form owner
1426
- is not the consumer's form. Both throw. So the submission is started with no
1427
- submitter and the overrides are applied to the form for the duration of it.
1428
-
1429
- The whole submit algorithm runs synchronously inside `requestSubmit()`, so
1430
- the window is one call and a `finally` closes it whether or not a listener
1431
- refused. What a `submit` handler observes during that window is the form a
1432
- native submitter would have given it, which is the point. */
1533
+ **The five `form*` overrides ride on a native submit button that stands in
1534
+ for this one**, because `requestSubmit(submitter)` refuses the inner
1535
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
1536
+ root, so its form owner is not the consumer's form. The stand-in is a
1537
+ hidden `<button type="submit">` in the form for the one synchronous call,
1538
+ so the platform applies the overrides to that submission alone and leaves
1539
+ the form as it was. See `submitAs`. */
1433
1540
  formAction?: (HelixButton["formAction"]) | undefined;
1434
1541
  /** How the submission is encoded, overriding the form's own. */
1435
1542
  formenctype?: (HelixButton["formEnctype"]) | undefined;
@@ -1475,13 +1582,10 @@ a press, so focus stays where the reader left it. */
1475
1582
  /** The value this button submits under its own `name`, as a native submit
1476
1583
  button does.
1477
1584
 
1478
- **Reported for exactly the submission this button starts and not otherwise.**
1585
+ **Sent with exactly the submission this button starts and not otherwise.**
1479
1586
  A native submit button contributes `name=value` only when it is the one
1480
- that submitted, and every other button on the form contributes nothing. A
1481
- form-associated element reporting a value continuously would contribute on
1482
- every submission whoever started it, which is a different feature wearing
1483
- the same name, so `submit` below sets it, submits, and clears it inside one
1484
- synchronous call.
1587
+ that submitted, and every other button on the form contributes nothing,
1588
+ which is what the native button standing in for this one at submit does.
1485
1589
 
1486
1590
  `CopyButton` has a `value` of its own meaning the text to put on the
1487
1591
  clipboard, which is not this and is why it is declared there rather than
@@ -2075,6 +2179,20 @@ as the list.
2075
2179
  The list is joined the way the page's language joins one, "Second and
2076
2180
  Third", rather than with a comma this component chose. */
2077
2181
  leadsToLabel?: (HelixCanvas["leadsToLabel"]) | undefined;
2182
+ /** What screen readers hear after a key moves a card, with `{name}` for the
2183
+ card and `{x}` and `{y}` for where it now is, in the document's units.
2184
+
2185
+ **A move a reader cannot see has to be said.** Shift with an arrow moved
2186
+ the card and said nothing, so a reader moving one by keys could not tell
2187
+ whether it had moved, or how far. */
2188
+ "moved-label"?: (HelixCanvas["movedLabel"]) | undefined;
2189
+ /** What screen readers hear after a key moves a card, with `{name}` for the
2190
+ card and `{x}` and `{y}` for where it now is, in the document's units.
2191
+
2192
+ **A move a reader cannot see has to be said.** Shift with an arrow moved
2193
+ the card and said nothing, so a reader moving one by keys could not tell
2194
+ whether it had moved, or how far. */
2195
+ movedLabel?: (HelixCanvas["movedLabel"]) | undefined;
2078
2196
  /** The order the arrow keys and screen readers move through the cards:
2079
2197
  `spatial` or `edges`.
2080
2198
 
@@ -2115,6 +2233,14 @@ walk the cards. */
2115
2233
  /** The text announced when a connection's end is picked up, with `{from}` and
2116
2234
  `{to}`. */
2117
2235
  reconnectingLabel?: (HelixCanvas["reconnectingLabel"]) | undefined;
2236
+ /** What screen readers hear after a key resizes a card, with `{name}` for the
2237
+ card and `{width}` and `{height}` for its new size, in the document's
2238
+ units. */
2239
+ "resized-label"?: (HelixCanvas["resizedLabel"]) | undefined;
2240
+ /** What screen readers hear after a key resizes a card, with `{name}` for the
2241
+ card and `{width}` and `{height}` for its new size, in the document's
2242
+ units. */
2243
+ resizedLabel?: (HelixCanvas["resizedLabel"]) | undefined;
2118
2244
  /** The names of the selected cards and connections, comma separated. Empty
2119
2245
  when nothing is selected.
2120
2246
 
@@ -2135,6 +2261,43 @@ on its board across cards and connections both, and may not hold a comma.
2135
2261
 
2136
2262
  Written to select from outside, and read to act on the selection. */
2137
2263
  selected?: (HelixCanvas["selected"]) | undefined;
2264
+ /** What a selected card or connection adds to what screen readers hear on
2265
+ it, before its tone and its connections. Empty adds nothing.
2266
+
2267
+ A card is an article and a connection a button, and neither has a selected
2268
+ state for `aria-selected` to carry, so the state is said in words. */
2269
+ "selected-label"?: (HelixCanvas["selectedLabel"]) | undefined;
2270
+ /** What a selected card or connection adds to what screen readers hear on
2271
+ it, before its tone and its connections. Empty adds nothing.
2272
+
2273
+ A card is an article and a connection a button, and neither has a selected
2274
+ state for `aria-selected` to carry, so the state is said in words. */
2275
+ selectedLabel?: (HelixCanvas["selectedLabel"]) | undefined;
2276
+ /** What screen readers hear after the selection grows or shrinks, with
2277
+ `{count}` for how many cards and connections are selected: by Space, a
2278
+ click with Shift, Command or Control, Command or Control with A, a box
2279
+ drawn across the board, or Escape.
2280
+
2281
+ A selection of one made by arriving on a card or clicking it is not said,
2282
+ since the card is. */
2283
+ "selection-label"?: (HelixCanvas["selectionLabel"]) | undefined;
2284
+ /** What screen readers hear after the selection grows or shrinks, with
2285
+ `{count}` for how many cards and connections are selected: by Space, a
2286
+ click with Shift, Command or Control, Command or Control with A, a box
2287
+ drawn across the board, or Escape.
2288
+
2289
+ A selection of one made by arriving on a card or clicking it is not said,
2290
+ since the card is. */
2291
+ selectionLabel?: (HelixCanvas["selectionLabel"]) | undefined;
2292
+ /** Snaps the cards a reader moves or resizes to a multiple of this many of the
2293
+ document's units, such as `32` to land on the lines `grid` draws.
2294
+
2295
+ **A drag lets go on the nearest line and a key goes to the next one.**
2296
+ Shift with an arrow moves a card to the next line that way, rather than
2297
+ by its step of 16, and Alt with an arrow moves its bottom right corner
2298
+ the same way. A group moves with what it carries, so a card inside one
2299
+ keeps its place in it. Absent, cards land where they are let go. */
2300
+ snap?: (HelixCanvas["snap"]) | undefined;
2138
2301
  /** The text announced when a connection is stopped before it is requested. */
2139
2302
  "stopped-label"?: (HelixCanvas["stoppedLabel"]) | undefined;
2140
2303
  /** The text announced when a connection is stopped before it is requested. */
@@ -2157,6 +2320,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
2157
2320
  see the board is told by the color; this is how a reader who cannot is
2158
2321
  told the same. A tone left out is not read. */
2159
2322
  toneLabels?: (HelixCanvas["toneLabels"]) | undefined;
2323
+ /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2324
+ zoom as a percentage, written the way the page's language writes one. */
2325
+ "zoomed-label"?: (HelixCanvas["zoomedLabel"]) | undefined;
2326
+ /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2327
+ zoom as a percentage, written the way the page's language writes one. */
2328
+ zoomedLabel?: (HelixCanvas["zoomedLabel"]) | undefined;
2160
2329
  /** The board's current view: the document's point at the middle of the view,
2161
2330
  and the zoom.
2162
2331
 
@@ -2953,6 +3122,22 @@ say that without the component knowing what a row looks like. */
2953
3122
  "loading-text"?: (HelixChat["loadingText"]) | undefined;
2954
3123
  /** The text shown and announced while the rows load. */
2955
3124
  loadingText?: (HelixChat["loadingText"]) | undefined;
3125
+ /** Declarations for the turns from `turns` by each author, keyed by `author`,
3126
+ as JSON in the attribute: `{"ada": "--chat-message-background-color: …"}`.
3127
+
3128
+ The message drawn for each turn by that author takes them as its `style`,
3129
+ so the custom properties a message reads, its fill, text color, radius and
3130
+ padding, change for that author alone. A turn by an author with no entry
3131
+ takes none, and looks as it did. JSON that does not parse is no entries. */
3132
+ "author-styles"?: (HelixChat["authorStyles"]) | undefined;
3133
+ /** Declarations for the turns from `turns` by each author, keyed by `author`,
3134
+ as JSON in the attribute: `{"ada": "--chat-message-background-color: …"}`.
3135
+
3136
+ The message drawn for each turn by that author takes them as its `style`,
3137
+ so the custom properties a message reads, its fill, text color, radius and
3138
+ padding, change for that author alone. A turn by an author with no entry
3139
+ takes none, and looks as it did. JSON that does not parse is no entries. */
3140
+ authorStyles?: (HelixChat["authorStyles"]) | undefined;
2956
3141
  /** Whether the transcript opens pinned to the bottom, when `pinned` is not
2957
3142
  set.
2958
3143
 
@@ -3348,11 +3533,19 @@ block lays out. Not for a diff, whose files each scroll on their own. */
3348
3533
  "expand-label"?: (HelixCodeBlock["expandLabel"]) | undefined;
3349
3534
  /** The expand button's words while the cap hides lines. */
3350
3535
  expandLabel?: (HelixCodeBlock["expandLabel"]) | undefined;
3351
- /** The block's name, usually a file name or a language.
3536
+ /** The block's name, usually a file name, drawn in the header.
3352
3537
 
3353
- In a diff, each file is named from the patch, and this names a patch that
3354
- carries no name of its own. */
3538
+ Absent, the block is named by `language` where there is one. In a diff,
3539
+ each file is named from the patch, and this names a patch that carries no
3540
+ name of its own. */
3355
3541
  label?: (HelixCodeBlock["label"]) | undefined;
3542
+ /** The language the code is written in, such as `ts` or `css`, handed to
3543
+ `highlight` as its second argument.
3544
+
3545
+ A block with no `label` is named by it, in the header and on the copy
3546
+ button, as a docs site names a snippet by its language. Absent hands
3547
+ `highlight` an empty string and names nothing. */
3548
+ language?: (HelixCodeBlock["language"]) | undefined;
3356
3549
  /** Whether the lines are numbered in a gutter beside the code.
3357
3550
 
3358
3551
  The numbers are hidden from the accessibility tree and are not part of a
@@ -3416,15 +3609,24 @@ than defaulted, so the host carries no attribute the consumer did not write. */
3416
3609
  /** Turns the code into highlighted markup, which the block draws in place of
3417
3610
  the plain text.
3418
3611
 
3419
- Called with the code as written and returning HTML, such as the output of
3420
- Shiki's `codeToHtml` or Prism's `highlight`. **The markup is drawn as
3421
- given**, so it has to escape the code it was handed, which those
3422
- highlighters do. A `<pre>` and `<code>` around the whole of it, which
3423
- Shiki writes, are taken off, so the lines sit level with the gutter's
3424
- numbers and the block keeps one tab stop. Bind the language in the function you pass. The code
3425
- stays in the slot, so the copy button copies it as written and a reader
3426
- without the script still has it. Not called on a server, which has no code
3427
- to read, nor for a diff. */
3612
+ Called with the code as written and the block's `language`, and returning
3613
+ HTML, such as the output of Shiki's `codeToHtml` or Prism's `highlight`.
3614
+ One function serves every block on a page, each block saying its own
3615
+ language:
3616
+
3617
+ ```js
3618
+ for (const block of document.querySelectorAll('helix-code-block')) {
3619
+ block.highlight = (code, lang) => codeToHtml(code, { lang, theme: 'github-light' })
3620
+ }
3621
+ ```
3622
+
3623
+ **The markup is drawn as given**, so it has to escape the code it was
3624
+ handed, which those highlighters do. A `<pre>` and `<code>` around the
3625
+ whole of it, which Shiki writes, are taken off, so the lines sit level
3626
+ with the gutter's numbers and the block keeps one tab stop. The code stays
3627
+ in the slot, so the copy button copies it as written and a reader without
3628
+ the script still has it. Not called on a server, which has no code to
3629
+ read, nor for a diff. */
3428
3630
  highlight?: (HelixCodeBlock["highlight"]) | undefined;
3429
3631
  };
3430
3632
 
@@ -3608,6 +3810,9 @@ The trade is real and is the reason this is not the default: a swatch cannot
3608
3810
  be read or pasted into without opening the panel, which is worse for a form
3609
3811
  where the color is the answer rather than a setting. */
3610
3812
  variant?: (HelixColorInput["variant"]) | undefined;
3813
+ /** Draws the panel's hue as a wheel around the square, in place of the hue
3814
+ ramp. See Color Picker's `wheel`. */
3815
+ wheel?: (HelixColorInput["wheel"]) | undefined;
3611
3816
  /** Whether the control is disabled and cannot be used.
3612
3817
 
3613
3818
  Reflected, because the styled tier selects on it, and mirrored to
@@ -3670,6 +3875,19 @@ export type HelixColorPickerHelixSampleStartElementEvent =
3670
3875
  HelixColorPickerElementEvent<HelixSampleStartEvent>;
3671
3876
 
3672
3877
  export type HelixColorPickerVueProps = {
3878
+ /** A message under the picker, such as what is wrong with the answer.
3879
+
3880
+ While set, the picker is invalid and does not submit, as a field's
3881
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
3882
+ controls a reader answers with are described by it. */
3883
+ feedback?: (HelixColorPicker["feedback"]) | undefined;
3884
+ /** Whether the answer fails validation, marked on the controls a reader
3885
+ answers with and as `:state(invalid)`.
3886
+
3887
+ A flag a field that wraps the picker sets, since that field owns the
3888
+ label, the hint and the message; on its own, `feedback` both marks the
3889
+ picker and says why. */
3890
+ invalid?: (HelixColorPicker["invalid"]) | undefined;
3673
3891
  /** The value the control starts with. A form reset returns it to this value,
3674
3892
  and to the `value` attribute where this one is not written, as a native
3675
3893
  control resets to the `value` it declares. */
@@ -3773,13 +3991,6 @@ the color. */
3773
3991
  "eyedropper-label"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
3774
3992
  /** What the eyedropper is called. */
3775
3993
  eyedropperLabel?: (HelixColorPicker["eyedropperLabel"]) | undefined;
3776
- /** A message under the picker, such as what is wrong with the color.
3777
-
3778
- While set, the picker is invalid and does not submit, as a field's
3779
- `feedback` is, and the square and the value text are described by it.
3780
- Color Input shows its own message here, so a reader in the open panel
3781
- still sees it. */
3782
- feedback?: (HelixColorPicker["feedback"]) | undefined;
3783
3994
  /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
3784
3995
 
3785
3996
  Only what is written. Everything is read whatever this says, so a picker on
@@ -3797,14 +4008,6 @@ Only what is written. Everything is read whatever this says, so a picker on
3797
4008
  "hue-label"?: (HelixColorPicker["hueLabel"]) | undefined;
3798
4009
  /** What the hue channel is called. */
3799
4010
  hueLabel?: (HelixColorPicker["hueLabel"]) | undefined;
3800
- /** Whether the current selection fails validation.
3801
-
3802
- A flag rather than a message, the split Date Picker also draws. A flat
3803
- picker has no room of its own for a sentence: the field that wraps one owns
3804
- the label, the hint and the feedback, and a second message inside the panel
3805
- would be the same error said twice. What is left for the picker is the one
3806
- thing the field cannot draw from outside, the mark on the answer itself. */
3807
- invalid?: (HelixColorPicker["invalid"]) | undefined;
3808
4011
  /** What the lightness channel's field is called, in `channel-fields` with
3809
4012
  hsl. */
3810
4013
  "lightness-label"?: (HelixColorPicker["lightnessLabel"]) | undefined;
@@ -3958,6 +4161,14 @@ speaks it. Absent is the control's own sentence, in English. */
3958
4161
  named for the validity flag it reports, so a form in another language
3959
4162
  speaks it. Absent is the control's own sentence, in English. */
3960
4163
  valueMissingMessage?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4164
+ /** Draws the hue as a wheel around the square, in place of the hue ramp, as
4165
+ React Aria's ColorWheel sits round its ColorArea.
4166
+
4167
+ The ring is one stop, a slider a reader turns with the arrow keys, Home
4168
+ and End, the same way round in either writing direction, and a press or a
4169
+ drag on it takes the hue in that direction. Off, the picker keeps its
4170
+ ramp. */
4171
+ wheel?: (HelixColorPicker["wheel"]) | undefined;
3961
4172
  /** Whether the control is disabled and cannot be used.
3962
4173
 
3963
4174
  Reflected, because the styled tier selects on it, and mirrored to
@@ -4122,12 +4333,19 @@ leaves the field or presses Enter with nothing highlighted, and text that
4122
4333
  names an option takes that option. Unlike `creatable`, no event asks
4123
4334
  first and no option is expected to be added: the value is the text. */
4124
4335
  allowsCustomValue?: (HelixCombobox["allowsCustomValue"]) | undefined;
4125
- /** What the browser may autofill in the text field, as a platform token.
4336
+ /** What the browser may autofill, as a platform token such as `country`.
4126
4337
 
4127
4338
  **Defaults to `off`, which is not the platform's default and is the
4128
4339
  point.** The field filters a list rather than collecting a value, so a
4129
4340
  browser offering to fill it with a saved address is competing for the same
4130
- keystrokes as the listbox. A consumer who wants autofill can still ask. */
4341
+ keystrokes as the listbox. A consumer who wants autofill can still ask.
4342
+
4343
+ Set, a combobox whose answer is one of its options keeps a hidden native
4344
+ `<select>` with the same options for the browser to fill, as React Aria's
4345
+ combobox and Select do, and the option the browser picks, by its value or
4346
+ its words, becomes the value. The text field itself stays `off`, so the
4347
+ browser fills the answer and not the filter. With `allows-custom-value`
4348
+ the token goes on the text field, whose words are the answer. */
4131
4349
  autocomplete?: (HelixCombobox["autocomplete"]) | undefined;
4132
4350
  /** Whether the user can add a value that is not in the list.
4133
4351
 
@@ -4166,12 +4384,14 @@ every keystroke. See Listbox's `filter-delay`. */
4166
4384
  /** The list's name, read by screen readers. The list has no visible name. */
4167
4385
  listLabel?: (HelixCombobox["listLabel"]) | undefined;
4168
4386
  /** What the list says when its options could not be loaded, such as after a
4169
- request to a server fails. Empty is no error. Passed to the list, which
4170
- shows it under any options there are and tells screen readers. */
4387
+ request to a server fails. Empty, null or no attribute is no error, so
4388
+ removing the attribute clears it. Passed to the list, which shows it
4389
+ under any options there are and tells screen readers. */
4171
4390
  "load-error"?: (HelixCombobox["loadError"]) | undefined;
4172
4391
  /** What the list says when its options could not be loaded, such as after a
4173
- request to a server fails. Empty is no error. Passed to the list, which
4174
- shows it under any options there are and tells screen readers. */
4392
+ request to a server fails. Empty, null or no attribute is no error, so
4393
+ removing the attribute clears it. Passed to the list, which shows it
4394
+ under any options there are and tells screen readers. */
4175
4395
  loadError?: (HelixCombobox["loadError"]) | undefined;
4176
4396
  /** Whether the options are still loading.
4177
4397
 
@@ -4254,6 +4474,12 @@ two. */
4254
4474
  options. `{count}` is the count, and `Intl.PluralRules` picks between the
4255
4475
  two. */
4256
4476
  resultsLabel?: (HelixCombobox["resultsLabel"]) | undefined;
4477
+ /** What VoiceOver hears for a chosen option, as the highlight reaches it and
4478
+ once it is chosen, on Apple devices. `{name}` is the option's words. */
4479
+ "selected-label"?: (HelixCombobox["selectedLabel"]) | undefined;
4480
+ /** What VoiceOver hears for a chosen option, as the highlight reaches it and
4481
+ once it is chosen, on Apple devices. `{name}` is the option's words. */
4482
+ selectedLabel?: (HelixCombobox["selectedLabel"]) | undefined;
4257
4483
  /** Whether the field completes the word as the user types.
4258
4484
 
4259
4485
  `suggest` rather than `autocomplete`, which is a real HTML attribute this
@@ -4368,7 +4594,9 @@ so a palette filtered on a server sends one `helix-filter` for a word.
4368
4594
  so a palette filtered on a server sends one `helix-filter` for a word.
4369
4595
  `0` filters on every keystroke. See Listbox's `filter-delay`. */
4370
4596
  filterDelay?: (HelixCommand["filterDelay"]) | undefined;
4371
- /** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`.
4597
+ /** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
4598
+ in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
4599
+ `alt` and `shift` the keys they name.
4372
4600
 
4373
4601
  Empty turns it off, for a consumer who opens the palette from a button or
4374
4602
  from their own shortcut handler. There is no list of defaults to fight
@@ -4377,12 +4605,14 @@ with: one key, said once. */
4377
4605
  /** Accessible name for the overlay, which has no visible heading. */
4378
4606
  label?: (HelixCommand["label"]) | undefined;
4379
4607
  /** What the list says when its commands could not be loaded, such as after a
4380
- request to a server fails. Empty is no error. Passed to the list, which
4381
- shows it under any commands there are and tells screen readers. */
4608
+ request to a server fails. Empty, null or no attribute is no error, so
4609
+ removing the attribute clears it. Passed to the list, which shows it
4610
+ under any commands there are and tells screen readers. */
4382
4611
  "load-error"?: (HelixCommand["loadError"]) | undefined;
4383
4612
  /** What the list says when its commands could not be loaded, such as after a
4384
- request to a server fails. Empty is no error. Passed to the list, which
4385
- shows it under any commands there are and tells screen readers. */
4613
+ request to a server fails. Empty, null or no attribute is no error, so
4614
+ removing the attribute clears it. Passed to the list, which shows it
4615
+ under any commands there are and tells screen readers. */
4386
4616
  loadError?: (HelixCommand["loadError"]) | undefined;
4387
4617
  /** Whether the commands are still loading, for a palette that asks a server
4388
4618
  for them as the user types.
@@ -5181,7 +5411,11 @@ Saturday.
5181
5411
  Absent follows `locale`, where the engine knows the week of that language,
5182
5412
  and is Sunday otherwise. */
5183
5413
  firstDayOfWeek?: (HelixDateInput["firstDayOfWeek"]) | undefined;
5184
- /** The language tag for the names of months and days in the calendar. */
5414
+ /** The language tag for the field's order and words, and for the names of
5415
+ months and days in the calendar.
5416
+
5417
+ Absent is the page's: the `lang` of the nearest element with one, as
5418
+ Shoelace and Web Awesome read it, then the runtime's own. */
5185
5419
  locale?: (HelixDateInput["locale"]) | undefined;
5186
5420
  /** The latest date that can be chosen, as `YYYY-MM-DD`. */
5187
5421
  max?: (HelixDateInput["max"]) | undefined;
@@ -5377,6 +5611,19 @@ export type HelixDatePickerHelixNavigateElementEvent =
5377
5611
  HelixDatePickerElementEvent<HelixNavigateEvent>;
5378
5612
 
5379
5613
  export type HelixDatePickerVueProps = {
5614
+ /** A message under the picker, such as what is wrong with the answer.
5615
+
5616
+ While set, the picker is invalid and does not submit, as a field's
5617
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
5618
+ controls a reader answers with are described by it. */
5619
+ feedback?: (HelixDatePicker["feedback"]) | undefined;
5620
+ /** Whether the answer fails validation, marked on the controls a reader
5621
+ answers with and as `:state(invalid)`.
5622
+
5623
+ A flag a field that wraps the picker sets, since that field owns the
5624
+ label, the hint and the message; on its own, `feedback` both marks the
5625
+ picker and says why. */
5626
+ invalid?: (HelixDatePicker["invalid"]) | undefined;
5380
5627
  /** The value the control starts with. A form reset returns it to this value,
5381
5628
  and to the `value` attribute where this one is not written, as a native
5382
5629
  control resets to the `value` it declares. */
@@ -5430,13 +5677,12 @@ Absent follows `locale`, where the engine knows the week of that language
5430
5677
  Absent follows `locale`, where the engine knows the week of that language
5431
5678
  (Firefox does not), and is Sunday otherwise. */
5432
5679
  firstDayOfWeek?: (HelixDatePicker["firstDayOfWeek"]) | undefined;
5433
- /** Whether the current selection fails validation. */
5434
- invalid?: (HelixDatePicker["invalid"]) | undefined;
5435
5680
  /** Accessible name for the grid. */
5436
5681
  label?: (HelixDatePicker["label"]) | undefined;
5437
- /** Locale for month and day names.
5682
+ /** Locale for month and day names, and the day a week starts on.
5438
5683
 
5439
- Absent uses the runtime's own. */
5684
+ Absent is the page's: the `lang` of the nearest element with one, as
5685
+ Shoelace and Web Awesome read it, then the runtime's own. */
5440
5686
  locale?: (HelixDatePicker["locale"]) | undefined;
5441
5687
  /** Latest selectable date, as `YYYY-MM-DD`. */
5442
5688
  max?: (HelixDatePicker["max"]) | undefined;
@@ -5664,11 +5910,19 @@ The fallback of the `label` slot, so slotted content replaces it rather than
5664
5910
  appearing beside it. The value itself is the default slot: it is the half
5665
5911
  that varies and is often more than text. */
5666
5912
  label?: (HelixDescriptionListItem["label"]) | undefined;
5913
+ /** Says the values are several `<dd>` elements of your own, so the item
5914
+ draws no `<dd>` of its own around them, on the server too. Without it the
5915
+ item finds them once it runs, and the served markup wraps them until then. */
5916
+ several?: (HelixDescriptionListItem["several"]) | undefined;
5667
5917
  };
5668
5918
 
5669
5919
  export type HelixDescriptionListItemVueEvents = {};
5670
5920
 
5671
5921
  export type HelixDescriptionListVueProps = {
5922
+ /** Draws a rule between one pair and the next, in the middle of the gap, as
5923
+ a details panel with many rows often does. Off by default, where space
5924
+ alone separates the pairs. */
5925
+ divided?: (HelixDescriptionList["divided"]) | undefined;
5672
5926
  /** Where the values sit, beside their labels.
5673
5927
 
5674
5928
  Absent, each value starts right after the label column. `between` sets it on
@@ -5895,20 +6149,23 @@ Absent is the middle. `start` and `end` move it toward one end, with a
5895
6149
  short length of line, `--divider-content-offset`, kept before or after it.
5896
6150
  A divider with nothing set into it is one line whatever this says. */
5897
6151
  contentPlacement?: (HelixDivider["contentPlacement"]) | undefined;
5898
- /** Whether screen readers announce the line as a separator.
5899
-
5900
- Off by default, and out of the accessibility tree. Most rules on a page
5901
- separate nothing: they underline a heading or close a section that space
5902
- had already closed, and announcing every one as a separator is noise a
5903
- screen-reader user has to walk past.
5904
-
5905
- An opt-in, not a `decorative` opt-out, because a boolean attribute cannot
5906
- be turned off: `decorative="false"` parses as `true`, which would put the
5907
- quiet default out of reach from HTML and leave it settable only as a
5908
- property. An opt-in is absent by default, which every reflected property
5909
- here has to be. */
6152
+ /** Whether screen readers announce the line as a separator, which they now do
6153
+ by default.
6154
+
6155
+ It dates from when the line was decorative by default. It is still read,
6156
+ and it wins over `decorative`, so a divider written with it stays a
6157
+ separator. */
5910
6158
  announced?: (HelixDivider["announced"]) | undefined;
5911
- /** The direction the line runs: `horizontal` or `vertical`. */
6159
+ /** Takes the line out of the accessibility tree, for a rule that separates
6160
+ nothing: one under a heading, or between the facts of a byline.
6161
+
6162
+ Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
6163
+ has the same name. It turns the role off because a boolean attribute that
6164
+ is on by default cannot be turned off from HTML. */
6165
+ decorative?: (HelixDivider["decorative"]) | undefined;
6166
+ /** The direction the line runs: `horizontal` or `vertical`.
6167
+
6168
+ Unset is horizontal, or across the toolbar the divider sits in. */
5912
6169
  orientation?: (HelixDivider["orientation"]) | undefined;
5913
6170
  };
5914
6171
 
@@ -6282,6 +6539,21 @@ export type HelixDrilldownVueEvents = {
6282
6539
  };
6283
6540
 
6284
6541
  export type HelixEmptyVueProps = {
6542
+ /** The heading as words, such as "No results", drawn as a heading when
6543
+ nothing is slotted into `heading`.
6544
+
6545
+ Absent draws none, and the `heading` slot is the only heading. */
6546
+ heading?: (HelixEmpty["heading"]) | undefined;
6547
+ /** The level of the heading `heading` draws, from 1 to 6.
6548
+
6549
+ Absent is 3, the level of a heading inside a page's section. Set it to fit
6550
+ the outline the empty view sits in. A slotted heading keeps its own. */
6551
+ "heading-level"?: (HelixEmpty["headingLevel"] | `${number}`) | undefined;
6552
+ /** The level of the heading `heading` draws, from 1 to 6.
6553
+
6554
+ Absent is 3, the level of a heading inside a page's section. Set it to fit
6555
+ the outline the empty view sits in. A slotted heading keeps its own. */
6556
+ headingLevel?: (HelixEmpty["headingLevel"]) | undefined;
6285
6557
  /** Whether the state is announced when it appears.
6286
6558
 
6287
6559
  On by default: an empty view almost always replaces something that was
@@ -6373,6 +6645,12 @@ refused. */
6373
6645
  maxFileSize?: (HelixFileInput["maxFileSize"]) | undefined;
6374
6646
  /** Whether more than one file can be chosen. */
6375
6647
  multiple?: (HelixFileInput["multiple"]) | undefined;
6648
+ /** The name of a file's progress bar, read by screen readers, with `{name}`
6649
+ filled in. A label with no `{name}` has it added after it. */
6650
+ "progress-label"?: (HelixFileInput["progressLabel"]) | undefined;
6651
+ /** The name of a file's progress bar, read by screen readers, with `{name}`
6652
+ filled in. A label with no `{name}` has it added after it. */
6653
+ progressLabel?: (HelixFileInput["progressLabel"]) | undefined;
6376
6654
  /** What a reader hears when files are refused, with `{count}` and `{names}`
6377
6655
  filled in. */
6378
6656
  "rejected-text"?: (HelixFileInput["rejectedText"]) | undefined;
@@ -6940,6 +7218,25 @@ few characters and a date is not. */
6940
7218
  elapsed?: (HelixFormatDate["elapsed"]) | undefined;
6941
7219
  /** How the era is written, such as AD, where a date is shown. */
6942
7220
  era?: (HelixFormatDate["era"]) | undefined;
7221
+ /** Draws each field of a date in a part of its own: `weekday`, `day`,
7222
+ `month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
7223
+ `time-zone-name`, so `::part(year)` can set the year apart.
7224
+
7225
+ Off by default, which draws the date as one run of text, as Shoelace and
7226
+ Web Awesome do. An `elapsed` or `relative` reading is one phrase either
7227
+ way. */
7228
+ fields?: (HelixFormatDate["fields"]) | undefined;
7229
+ /** Draws an `elapsed` or `relative` reading once and leaves it, where it
7230
+ would otherwise move on as it goes stale.
7231
+
7232
+ For a reading that describes a moment the page itself is about, such as
7233
+ "3 hours ago" in a report generated then, or a list a reader compares
7234
+ line by line while it should not change under them. The reading is taken
7235
+ when the element draws, and again whenever `date` or another option
7236
+ changes. Turned off, the reading catches up and moves on again.
7237
+ `sl-relative-time` and `wa-relative-time` keep still unless `sync` is
7238
+ set; this keeps moving unless `frozen` is. */
7239
+ frozen?: (HelixFormatDate["frozen"]) | undefined;
6943
7240
  /** How the hour is written, where a time of day is shown. */
6944
7241
  hour?: (HelixFormatDate["hour"]) | undefined;
6945
7242
  /** The clock a time of day is written on: `h12` or `h11` for twelve hours,
@@ -6956,7 +7253,8 @@ reader the same clock whatever their language. */
6956
7253
  hourCycle?: (HelixFormatDate["hourCycle"]) | undefined;
6957
7254
  /** The locale to format the timestamp in.
6958
7255
 
6959
- Empty is the runtime's own. */
7256
+ Absent is the page's: the `lang` of the nearest element with one, as
7257
+ Shoelace and Web Awesome read it, then the runtime's own. */
6960
7258
  locale?: (HelixFormatDate["locale"]) | undefined;
6961
7259
  /** How the minute is written, where a time of day is shown. */
6962
7260
  minute?: (HelixFormatDate["minute"]) | undefined;
@@ -7389,6 +7687,9 @@ export type HelixGridVueEvents = {};
7389
7687
 
7390
7688
  /** `HelixHeatmap` component event */
7391
7689
  export type HelixHeatmapElementEvent<E = Event> = TypedEvent<HelixHeatmap, E>;
7690
+ /** `helix-before-change` event type */
7691
+ export type HelixHeatmapHelixBeforeChangeElementEvent =
7692
+ HelixHeatmapElementEvent<HelixBeforeChangeEvent>;
7392
7693
  /** `helix-resize` event type */
7393
7694
  export type HelixHeatmapHelixResizeElementEvent =
7394
7695
  HelixHeatmapElementEvent<HelixResizeEvent>;
@@ -7491,6 +7792,28 @@ calendar heatmap does: a week is a column, so the strip reads along the
7491
7792
  line in weeks, from the right on a right-to-left page, and top to bottom in
7492
7793
  days. */
7493
7794
  rows?: (HelixHeatmap["rows"]) | undefined;
7795
+ /** What the readout adds for a selected cell, under `selection-mode`, after
7796
+ where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
7797
+ nothing. */
7798
+ "selected-label"?: (HelixHeatmap["selectedLabel"]) | undefined;
7799
+ /** What the readout adds for a selected cell, under `selection-mode`, after
7800
+ where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
7801
+ nothing. */
7802
+ selectedLabel?: (HelixHeatmap["selectedLabel"]) | undefined;
7803
+ /** What the `selection` part says after the selection changes, with `{count}` for
7804
+ how many cells are selected. */
7805
+ "selection-label"?: (HelixHeatmap["selectionLabel"]) | undefined;
7806
+ /** What the `selection` part says after the selection changes, with `{count}` for
7807
+ how many cells are selected. */
7808
+ selectionLabel?: (HelixHeatmap["selectionLabel"]) | undefined;
7809
+ /** How many cells a reader can select: `single` or `multiple`.
7810
+
7811
+ Absent selects nothing, and a press or Space does what it did. */
7812
+ "selection-mode"?: (HelixHeatmap["selectionMode"]) | undefined;
7813
+ /** How many cells a reader can select: `single` or `multiple`.
7814
+
7815
+ Absent selects nothing, and a press or Space does what it did. */
7816
+ selectionMode?: (HelixHeatmap["selectionMode"]) | undefined;
7494
7817
  /** Lower bounds for the tone buckets, in the order the tones are given.
7495
7818
 
7496
7819
  `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
@@ -7513,9 +7836,19 @@ no order in it. */
7513
7836
  "total-label"?: (HelixHeatmap["totalLabel"]) | undefined;
7514
7837
  /** The word the `overview` puts before the total of the readings drawn. */
7515
7838
  totalLabel?: (HelixHeatmap["totalLabel"]) | undefined;
7839
+ /** The selected cells, by the names their rows have in the table, such as
7840
+ `2026-06-11`, separated by commas.
7841
+
7842
+ Set it to start with cells selected. Written by a press or a key under
7843
+ `selection-mode`. */
7844
+ value?: (HelixHeatmap["value"]) | undefined;
7516
7845
  };
7517
7846
 
7518
7847
  export type HelixHeatmapVueEvents = {
7848
+ /** Fired once a press or a key has changed which cells are selected. */
7849
+ change: HelixHeatmapElementEvent;
7850
+ /** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
7851
+ "helix-before-change": HelixHeatmapHelixBeforeChangeElementEvent;
7519
7852
  /** Fired when the number of cells drawn changes, with the new number. */
7520
7853
  "helix-resize": HelixHeatmapHelixResizeElementEvent;
7521
7854
  };
@@ -7597,33 +7930,23 @@ is the platform's `commandfor`. */
7597
7930
  commandFor?: (HelixIconButton["commandFor"]) | undefined;
7598
7931
  /** Where this button's submission goes, overriding the form's own.
7599
7932
 
7600
- **The five `form*` overrides work by writing the form and putting it back**,
7601
- which is the only mechanism available and is closer to the platform than it
7602
- sounds. `requestSubmit(submitter)` is how a native submitter carries these,
7603
- and it refuses ours twice over: the inner `<button>` is `type="button"` so
7604
- it is not a submit button, and it sits in this shadow root so its form owner
7605
- is not the consumer's form. Both throw. So the submission is started with no
7606
- submitter and the overrides are applied to the form for the duration of it.
7607
-
7608
- The whole submit algorithm runs synchronously inside `requestSubmit()`, so
7609
- the window is one call and a `finally` closes it whether or not a listener
7610
- refused. What a `submit` handler observes during that window is the form a
7611
- native submitter would have given it, which is the point. */
7933
+ **The five `form*` overrides ride on a native submit button that stands in
7934
+ for this one**, because `requestSubmit(submitter)` refuses the inner
7935
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
7936
+ root, so its form owner is not the consumer's form. The stand-in is a
7937
+ hidden `<button type="submit">` in the form for the one synchronous call,
7938
+ so the platform applies the overrides to that submission alone and leaves
7939
+ the form as it was. See `submitAs`. */
7612
7940
  formaction?: (HelixIconButton["formAction"]) | undefined;
7613
7941
  /** Where this button's submission goes, overriding the form's own.
7614
7942
 
7615
- **The five `form*` overrides work by writing the form and putting it back**,
7616
- which is the only mechanism available and is closer to the platform than it
7617
- sounds. `requestSubmit(submitter)` is how a native submitter carries these,
7618
- and it refuses ours twice over: the inner `<button>` is `type="button"` so
7619
- it is not a submit button, and it sits in this shadow root so its form owner
7620
- is not the consumer's form. Both throw. So the submission is started with no
7621
- submitter and the overrides are applied to the form for the duration of it.
7622
-
7623
- The whole submit algorithm runs synchronously inside `requestSubmit()`, so
7624
- the window is one call and a `finally` closes it whether or not a listener
7625
- refused. What a `submit` handler observes during that window is the form a
7626
- native submitter would have given it, which is the point. */
7943
+ **The five `form*` overrides ride on a native submit button that stands in
7944
+ for this one**, because `requestSubmit(submitter)` refuses the inner
7945
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
7946
+ root, so its form owner is not the consumer's form. The stand-in is a
7947
+ hidden `<button type="submit">` in the form for the one synchronous call,
7948
+ so the platform applies the overrides to that submission alone and leaves
7949
+ the form as it was. See `submitAs`. */
7627
7950
  formAction?: (HelixIconButton["formAction"]) | undefined;
7628
7951
  /** How the submission is encoded, overriding the form's own. */
7629
7952
  formenctype?: (HelixIconButton["formEnctype"]) | undefined;
@@ -7669,13 +7992,10 @@ a press, so focus stays where the reader left it. */
7669
7992
  /** The value this button submits under its own `name`, as a native submit
7670
7993
  button does.
7671
7994
 
7672
- **Reported for exactly the submission this button starts and not otherwise.**
7995
+ **Sent with exactly the submission this button starts and not otherwise.**
7673
7996
  A native submit button contributes `name=value` only when it is the one
7674
- that submitted, and every other button on the form contributes nothing. A
7675
- form-associated element reporting a value continuously would contribute on
7676
- every submission whoever started it, which is a different feature wearing
7677
- the same name, so `submit` below sets it, submits, and clears it inside one
7678
- synchronous call.
7997
+ that submitted, and every other button on the form contributes nothing,
7998
+ which is what the native button standing in for this one at submit does.
7679
7999
 
7680
8000
  `CopyButton` has a `value` of its own meaning the text to put on the
7681
8001
  clipboard, which is not this and is why it is declared there rather than
@@ -7910,7 +8230,12 @@ the *first* update mirrors to a custom state instead, which is what
7910
8230
  `:state(open)` and `:state(checked)` are.
7911
8231
 
7912
8232
  `loading` writes nothing, because it is where every image starts and the
7913
- resting state of a mirror is the attribute's absence. */
8233
+ resting state of a mirror is the attribute's absence.
8234
+
8235
+ **Kept beside the custom states, and what the styled tier draws from.** An
8236
+ engine without `CustomStateSet`, Safari before 17.4 and Firefox before
8237
+ 126, records no state, and a picture faded in by `:state(loaded)` alone
8238
+ would stay transparent there for good. A sheet of your own can read either. */
7914
8239
  status?: (HelixImage["status"]) | undefined;
7915
8240
  };
7916
8241
 
@@ -8152,6 +8477,13 @@ export type HelixKbdHelixShortcutElementEvent =
8152
8477
  HelixKbdElementEvent<HelixShortcutEvent>;
8153
8478
 
8154
8479
  export type HelixKbdVueProps = {
8480
+ /** What the chord does to the control `for` names once it is pressed:
8481
+ `focus` moves focus to the control and `click` presses it.
8482
+
8483
+ Unset, the chord sends `helix-shortcut` and does nothing else, for a page
8484
+ that acts on the event itself. It acts only where `within` listens, after
8485
+ `helix-shortcut`, and not when a listener cancels that event. */
8486
+ activate?: (HelixKbd["activate"]) | undefined;
8155
8487
  /** Draws a chord under `keys` as one key per key, each a `key` part with a
8156
8488
  `separator` part between two where the platform writes a `+`, as GitHub
8157
8489
  and most docs draw `Ctrl` `K`.
@@ -8320,14 +8652,18 @@ shadow root reads a table in that root rather than one in the document.
8320
8652
 
8321
8653
  Set it to start with series hidden. Every chart reading the same table
8322
8654
  draws without them. Commas only, because a column's heading may hold a
8323
- space. For a ring the names are the rows. */
8655
+ space. For a ring the names are the rows. An array of names set on the
8656
+ property works too, as React sets `hiddenSeries={['Direct']}`; a toggle
8657
+ writes the list back as a string. */
8324
8658
  "hidden-series"?: (HelixLegend["hiddenSeries"]) | undefined;
8325
8659
  /** The series hidden on the table, by name, separated by commas: what
8326
8660
  `toggles` hides and shows.
8327
8661
 
8328
8662
  Set it to start with series hidden. Every chart reading the same table
8329
8663
  draws without them. Commas only, because a column's heading may hold a
8330
- space. For a ring the names are the rows. */
8664
+ space. For a ring the names are the rows. An array of names set on the
8665
+ property works too, as React sets `hiddenSeries={['Direct']}`; a toggle
8666
+ writes the list back as a string. */
8331
8667
  hiddenSeries?: (HelixLegend["hiddenSeries"]) | undefined;
8332
8668
  /** The name of the list, which a screen reader announces before its entries.
8333
8669
 
@@ -8417,12 +8753,14 @@ hydration, or diffed by a framework, it comes back holding whatever the
8417
8753
  last reader did rather than what the author wrote. `:state(open)` carries
8418
8754
  the resolved state for stylesheets, which is what the mirror is for. */
8419
8755
  open?: (HelixLightbox["open"]) | undefined;
8420
- /** Draws the viewer's own previous, next and close controls over the picture.
8756
+ /** Draws the viewer's own previous, next and close controls over the picture,
8757
+ and zoom-out and zoom-in controls where `max-zoom` allows zooming.
8421
8758
 
8422
8759
  Off by default, for a viewer whose chrome you compose in the `header` and
8423
8760
  `footer` slots. The controls hide with the rest of the chrome while the
8424
- reader is idle, and the previous and next ones say they are unavailable at
8425
- either end of a set that does not `loop`. */
8761
+ reader is idle, the previous and next ones say they are unavailable at
8762
+ either end of a set that does not `loop`, and the zoom ones at either end
8763
+ of the scale. */
8426
8764
  controls?: (HelixLightbox["controls"]) | undefined;
8427
8765
  /** Draws the place of the shown item in the set over the picture, in the
8428
8766
  words of `status-label`, such as "2 of 5". It hides with the controls while
@@ -8495,6 +8833,20 @@ Announced rather than only drawn, because the picture changing under a
8495
8833
  reader who cannot see it is otherwise silent. A consumer who has their own
8496
8834
  counter in the chrome can empty this and say it themselves. */
8497
8835
  statusLabel?: (HelixLightbox["statusLabel"]) | undefined;
8836
+ /** The zoom-in control's accessible name. */
8837
+ "zoom-in-label"?: (HelixLightbox["zoomInLabel"]) | undefined;
8838
+ /** The zoom-in control's accessible name. */
8839
+ zoomInLabel?: (HelixLightbox["zoomInLabel"]) | undefined;
8840
+ /** The zoom-out control's accessible name. */
8841
+ "zoom-out-label"?: (HelixLightbox["zoomOutLabel"]) | undefined;
8842
+ /** The zoom-out control's accessible name. */
8843
+ zoomOutLabel?: (HelixLightbox["zoomOutLabel"]) | undefined;
8844
+ /** What the live region says once a reader has stopped zooming, with the
8845
+ scale as a whole `{percent}` filled in. Empty it to say nothing. */
8846
+ "zoom-status-label"?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8847
+ /** What the live region says once a reader has stopped zooming, with the
8848
+ scale as a whole `{percent}` filled in. Empty it to say nothing. */
8849
+ zoomStatusLabel?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8498
8850
  };
8499
8851
 
8500
8852
  export type HelixLightboxVueEvents = {
@@ -8621,6 +8973,13 @@ sum can pass under the curve fitted through the sum beneath it, so a
8621
8973
  smoothed stack can draw a part as less than nothing. There is no such edge
8622
8974
  here, which is what lets a line take the reading aid. */
8623
8975
  curve?: (HelixLineChart["curve"]) | undefined;
8976
+ /** The series drawn as a dashed line, by their headings, separated by
8977
+ commas: `dashed="Forecast, Target"`.
8978
+
8979
+ For a series that is not a reading, such as a forecast or a goal, drawn
8980
+ beside the ones that are. Each takes a `line-dashed` part beside `line`,
8981
+ which a stylesheet draws dashed. Absent, every line is solid. */
8982
+ dashed?: (HelixLineChart["dashed"]) | undefined;
8624
8983
  /** Which rules are drawn across the plot, if any.
8625
8984
 
8626
8985
  Absent draws none, which is the honest default rather than a timid one: a
@@ -8914,12 +9273,16 @@ and this one was the English a form in another language still spoke in
8914
9273
  the bubble it raises on submit: `feedback` replaces the message under
8915
9274
  the field and does not reach that one. */
8916
9275
  valueMissingMessage?: (HelixListbox["valueMissingMessage"]) | undefined;
8917
- /** What the browser may autofill in the text field, as a platform token.
9276
+ /** What a browser's autofill may choose, as a platform token such as
9277
+ `country` or `cc-exp-month`, as a native `<select>` takes it.
8918
9278
 
8919
- **Defaults to `off`, which is not the platform's default and is the
8920
- point.** The field filters a list rather than collecting a value, so a
8921
- browser offering to fill it with a saved address is competing for the same
8922
- keystrokes as the listbox. A consumer who wants autofill can still ask. */
9279
+ Set, the list draws a hidden native `<select>` with the same options for
9280
+ the browser to fill, as React Aria's `HiddenSelect` does, and a fill
9281
+ chooses the option. `off`, the default, draws none.
9282
+
9283
+ **The filter field is never filled.** It narrows the list rather than
9284
+ collecting a value, so a browser offering it a saved address competes
9285
+ with the reader for the same keystrokes: it is always `off`. */
8923
9286
  autocomplete?: (HelixListbox["autocomplete"]) | undefined;
8924
9287
  /** The filter text the list starts with, when `filter` is not set. */
8925
9288
  "default-filter"?: (HelixListbox["defaultFilter"]) | undefined;
@@ -8959,14 +9322,27 @@ act on the list the reader expects. */
8959
9322
  "filter-label"?: (HelixListbox["filterLabel"]) | undefined;
8960
9323
  /** Placeholder text for the filter field. */
8961
9324
  filterLabel?: (HelixListbox["filterLabel"]) | undefined;
9325
+ /** How the options are laid out, which the arrow keys follow: `stack`, one
9326
+ under another, or `grid`, in rows and columns, as React Aria's `ListBox`
9327
+ lays out cards or photos. With `grid`, Up and Down move within a column,
9328
+ and Left and Right along the list, mirrored right to left.
9329
+
9330
+ The columns are the stylesheet's: the styled tier draws them at
9331
+ `--listbox-column-min-inline-size` or wider, and a headless list lays out
9332
+ `::part(items)` as it likes, since the keys read where each option is
9333
+ drawn. A list of `items` stays a stack. Left out, the list is a stack,
9334
+ and the host carries no attribute for it. */
9335
+ layout?: (HelixListbox["layout"]) | undefined;
8962
9336
  /** What the list says when its options could not be loaded, such as after a
8963
- request to a server fails. Empty is no error.
9337
+ request to a server fails. Empty, null or no attribute is no error, so
9338
+ removing the attribute clears it.
8964
9339
 
8965
9340
  Set, it shows under any options there are, in place of `empty-text` and
8966
9341
  `loading-text`, and a screen reader hears it. Clear it when you ask again. */
8967
9342
  "load-error"?: (HelixListbox["loadError"]) | undefined;
8968
9343
  /** What the list says when its options could not be loaded, such as after a
8969
- request to a server fails. Empty is no error.
9344
+ request to a server fails. Empty, null or no attribute is no error, so
9345
+ removing the attribute clears it.
8970
9346
 
8971
9347
  Set, it shows under any options there are, in place of `empty-text` and
8972
9348
  `loading-text`, and a screen reader hears it. Clear it when you ask again. */
@@ -9010,6 +9386,12 @@ options. `{count}` is the count.
9010
9386
  pair: a language with more forms than two picks the one for its `one` and
9011
9387
  writes the rest here. */
9012
9388
  resultsLabel?: (HelixListbox["resultsLabel"]) | undefined;
9389
+ /** What VoiceOver hears as the highlight reaches a chosen option from the
9390
+ filter field, on Apple devices. `{name}` is the option's words. */
9391
+ "selected-label"?: (HelixListbox["selectedLabel"]) | undefined;
9392
+ /** What VoiceOver hears as the highlight reaches a chosen option from the
9393
+ filter field, on Apple devices. `{name}` is the option's words. */
9394
+ selectedLabel?: (HelixListbox["selectedLabel"]) | undefined;
9013
9395
  /** Whether the control is disabled and cannot be used.
9014
9396
 
9015
9397
  Reflected, because the styled tier selects on it, and mirrored to
@@ -9036,6 +9418,23 @@ imperatively later, and nothing is hydrating by then.
9036
9418
 
9037
9419
  Here rather than on each control. */
9038
9420
  name?: (HelixListbox["name"]) | undefined;
9421
+ /** The options as data, for a list too long to draw whole: each a value,
9422
+ which is also its words, or a record with a `value`, a `label` and
9423
+ `disabled`. Set, the list draws only the options in sight, and the ones
9424
+ you write as children are not read.
9425
+
9426
+ **Every option is still reachable.** The keyboard, the typeahead, the
9427
+ filter and the value work over the whole set, and the option the keyboard
9428
+ is on is drawn wherever it is, so a screen reader is told about it. Each
9429
+ drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
9430
+ React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
9431
+ `VirtualizeController`.
9432
+
9433
+ **The list needs a height to scroll in**: the styled tier's
9434
+ `--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
9435
+ headless tier. Import the Option family as well, whose elements are drawn.
9436
+ A server sends the list empty, and the options are drawn once it hydrates. */
9437
+ items?: (HelixListbox["items"]) | undefined;
9039
9438
  /** Which option is chosen, as an index, or `-1` where none is.
9040
9439
 
9041
9440
  `<select>`'s own pair, and this control is what stands in for one. The
@@ -10164,6 +10563,12 @@ slot replaces it. */
10164
10563
 
10165
10564
  export type HelixMenuSectionVueEvents = {};
10166
10565
 
10566
+ /** `HelixMeter` component event */
10567
+ export type HelixMeterElementEvent<E = Event> = TypedEvent<HelixMeter, E>;
10568
+ /** `helix-band` event type */
10569
+ export type HelixMeterHelixBandElementEvent =
10570
+ HelixMeterElementEvent<HelixBandEvent>;
10571
+
10167
10572
  export type HelixMeterVueProps = {
10168
10573
  /** How strongly the reading is drawn. `subtle` draws it as a wash of its color.
10169
10574
 
@@ -10212,6 +10617,16 @@ stylesheet outside as `indicator-good`, `-fair` or `-poor` among the fill's
10212
10617
  part names, so reflecting here would write an attribute onto the host for
10213
10618
  no reader. */
10214
10619
  band?: (HelixMeter["band"]) | undefined;
10620
+ /** The words each band is said with under `live`, by its name, written as
10621
+ JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10622
+
10623
+ A band left out keeps its default: "Good", "Fair" or "Poor". */
10624
+ "band-labels"?: (HelixMeter["bandLabels"]) | undefined;
10625
+ /** The words each band is said with under `live`, by its name, written as
10626
+ JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10627
+
10628
+ A band left out keeps its default: "Good", "Fair" or "Poor". */
10629
+ bandLabels?: (HelixMeter["bandLabels"]) | undefined;
10215
10630
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
10216
10631
  Meter and ProgressBar take them: a unit, a currency, or a number of
10217
10632
  decimals. Written as JSON in the attribute.
@@ -10247,6 +10662,13 @@ Absent leaves the range unbanded. */
10247
10662
  A visible label in the `label` slot names it instead, with the words it
10248
10663
  shows, so the name and the label cannot disagree. */
10249
10664
  label?: (HelixMeter["label"]) | undefined;
10665
+ /** Says the reading in a polite `live` region each time it moves into
10666
+ another band, with the band's word, such as "92%, Poor".
10667
+
10668
+ For a meter whose value changes while it is on screen. Off by default,
10669
+ because a meter that reads a fixed level has nothing new to say. A meter
10670
+ with no bands says nothing. */
10671
+ live?: (HelixMeter["live"]) | undefined;
10250
10672
  /** The locale the percentage is written in, such as `fr` for `72 %`.
10251
10673
 
10252
10674
  Absent uses the runtime's own. */
@@ -10312,7 +10734,10 @@ fair summary of a task and a poor one of a quantity. */
10312
10734
  valueText?: (HelixMeter["valueText"]) | undefined;
10313
10735
  };
10314
10736
 
10315
- export type HelixMeterVueEvents = {};
10737
+ export type HelixMeterVueEvents = {
10738
+ /** Fired when the reading moves into another band, with the band it is in now, or `''` where it is in none. Not sent on the first render, since a meter that arrives in a band has not moved. */
10739
+ "helix-band": HelixMeterHelixBandElementEvent;
10740
+ };
10316
10741
 
10317
10742
  export type HelixNavigationVueProps = {
10318
10743
  /** Whether the arrow keys move focus between the destinations.
@@ -10523,6 +10948,20 @@ say that without the component knowing what a row looks like. */
10523
10948
  loadingText?: (HelixNotifications["loadingText"]) | undefined;
10524
10949
  /** The feed's name, read by screen readers. */
10525
10950
  label?: (HelixNotifications["label"]) | undefined;
10951
+ /** What the feed says when a page of it could not be loaded, such as after a
10952
+ request to a server fails. Empty, null or no attribute is no error, so
10953
+ removing the attribute clears it.
10954
+
10955
+ Set, it shows under the rows there are, in place of `empty-text` and
10956
+ `loading-text`, and a screen reader hears it. Clear it when you ask again. */
10957
+ "load-error"?: (HelixNotifications["loadError"]) | undefined;
10958
+ /** What the feed says when a page of it could not be loaded, such as after a
10959
+ request to a server fails. Empty, null or no attribute is no error, so
10960
+ removing the attribute clears it.
10961
+
10962
+ Set, it shows under the rows there are, in place of `empty-text` and
10963
+ `loading-text`, and a screen reader hears it. Clear it when you ask again. */
10964
+ loadError?: (HelixNotifications["loadError"]) | undefined;
10526
10965
  /** Whether to draw a button after the list that asks for the next page, by
10527
10966
  sending `helix-load-more`. Take it off once there is nothing more. */
10528
10967
  "load-more"?: (HelixNotifications["loadMore"]) | undefined;
@@ -10717,7 +11156,13 @@ than states: a duration, a weight, a count they are looking for rather than
10717
11156
  one they already know. */
10718
11157
  scrub?: (HelixNumberInput["scrub"]) | undefined;
10719
11158
  /** How far one step moves. A value off the step grid, counted from `min`, is
10720
- invalid, as it is in a native number field. */
11159
+ invalid, as it is in a native number field.
11160
+
11161
+ Unset, a step moves by one, or by one percent under a percent format, and
11162
+ a typed number is rounded to the smallest amount `format-options` shows
11163
+ rather than to whole steps, as React Aria's NumberField does: a field
11164
+ showing dollars keeps the cents typed into it. Without `format-options`
11165
+ the grid is whole numbers, as in a native number field. */
10721
11166
  step?: (HelixNumberInput["step"]) | undefined;
10722
11167
  /** The message the browser shows when the number is off the step grid, with
10723
11168
  `{below}` and `{above}` filled in with the nearest valid values. */
@@ -11136,6 +11581,10 @@ export type HelixOptionVueEvents = {
11136
11581
  "helix-select": HelixOptionHelixSelectElementEvent;
11137
11582
  };
11138
11583
 
11584
+ export type HelixOptionSeparatorVueProps = {};
11585
+
11586
+ export type HelixOptionSeparatorVueEvents = {};
11587
+
11139
11588
  export type HelixOrbVueProps = {
11140
11589
  /** Says each new state politely, such as "Working" and then "Done".
11141
11590
 
@@ -11565,12 +12014,9 @@ and this one was the English a form in another language still spoke in
11565
12014
  the bubble it raises on submit: `feedback` replaces the message under
11566
12015
  the field and does not reach that one. */
11567
12016
  valueMissingMessage?: (HelixPinInput["valueMissingMessage"]) | undefined;
11568
- /** The autofill hint for the browser, set on the first box only.
11569
-
11570
- `one-time-code` is why this defaults to anything at all: it is the token
11571
- that lets a phone offer the code out of a message. Later cells stay `off`
11572
- for the reason in the class comment above, that six cells each offering
11573
- the same code is one offer made six times. */
12017
+ /** The autofill hint for the browser. `one-time-code` is why this defaults to
12018
+ anything at all: it is the token that lets a phone offer the code out of a
12019
+ message. */
11574
12020
  autocomplete?: (HelixPinInput["autocomplete"]) | undefined;
11575
12021
  /** Whether the form is submitted once the last box is filled, as Web
11576
12022
  Awesome's `autosubmit` and Radix's `autoSubmit`. Only for a code the field
@@ -11580,9 +12026,9 @@ took: a refused last character submits nothing. */
11580
12026
  to keep them as typed. Web Awesome's OTP input takes the same `case`, for
11581
12027
  a code a service reads in one case. */
11582
12028
  case?: (HelixPinInput["case"]) | undefined;
11583
- /** Accessible name for one box, with `{index}` and `{length}` filled in. */
12029
+ /** The name each box once had, with `{index}` and `{length}` filled in. */
11584
12030
  "cell-label"?: (HelixPinInput["cellLabel"]) | undefined;
11585
- /** Accessible name for one box, with `{index}` and `{length}` filled in. */
12031
+ /** The name each box once had, with `{index}` and `{length}` filled in. */
11586
12032
  cellLabel?: (HelixPinInput["cellLabel"]) | undefined;
11587
12033
  /** Separators drawn between the boxes: `#` or `*` for a box and anything
11588
12034
  else as it is written, so `###-###` draws a dash after the third. The
@@ -11590,21 +12036,22 @@ separators are hidden from screen readers and are not part of the value. */
11590
12036
  format?: (HelixPinInput["format"]) | undefined;
11591
12037
  /** How many characters the code has. */
11592
12038
  length?: (HelixPinInput["length"]) | undefined;
11593
- /** Whether the characters are hidden, the way a password is. */
12039
+ /** Whether the characters are hidden, the way a password is. The field is a
12040
+ password field, and each filled box draws `mask-character`. */
11594
12041
  mask?: (HelixPinInput["mask"]) | undefined;
11595
- /** What an empty box shows, usually a single dot.
11596
-
11597
- The platform's own placeholder, on each cell, rather than a character
11598
- drawn behind the field: it clears the moment anything is typed, it is
11599
- already excluded from the accessible value, and it works the same under
11600
- `mask`, where the cell is a password input and a hand-drawn glyph would
11601
- have to know that.
11602
-
11603
- Empty by default, because a row of boxes already reads as a row of boxes. */
12042
+ /** What a filled box draws under `mask`, in place of its character, as Web
12043
+ Awesome's `--mask-char`. */
12044
+ "mask-character"?: (HelixPinInput["maskCharacter"]) | undefined;
12045
+ /** What a filled box draws under `mask`, in place of its character, as Web
12046
+ Awesome's `--mask-char`. */
12047
+ maskCharacter?: (HelixPinInput["maskCharacter"]) | undefined;
12048
+ /** What an empty box shows, usually a single dot. It is not shown in the box
12049
+ the caret is in. Empty by default, because a row of boxes already reads as
12050
+ a row of boxes. */
11604
12051
  placeholder?: (HelixPinInput["placeholder"]) | undefined;
11605
- /** Whether the boxes block input. A read-only code still submits its value. */
12052
+ /** Whether the field blocks input. A read-only code still submits its value. */
11606
12053
  readonly?: (HelixPinInput["readOnly"]) | undefined;
11607
- /** Whether the boxes block input. A read-only code still submits its value. */
12054
+ /** Whether the field blocks input. A read-only code still submits its value. */
11608
12055
  readOnly?: (HelixPinInput["readOnly"]) | undefined;
11609
12056
  /** The message shown when the code is started and not finished, with
11610
12057
  `{length}` filled in. When it is unset, an English default is shown. */
@@ -11629,8 +12076,7 @@ marked letters wants `text`, which judges nothing.
11629
12076
 
11630
12077
  **Not reflected**: nothing selects on it, so reflecting only writes
11631
12078
  `type="numeric"` onto every `<helix-headless-pin-input>` ever rendered, an
11632
- attribute no consumer's markup had. The area rules carry the sentence
11633
- "reflect only what CSS selects on". The real inputs take it as a binding,
12079
+ attribute no consumer's markup had. The field takes it as `inputmode`,
11634
12080
  which is what makes the keyboard follow. */
11635
12081
  type?: (HelixPinInput["type"]) | undefined;
11636
12082
  /** Whether the control is disabled and cannot be used.
@@ -11742,6 +12188,12 @@ export type HelixPopoverVueEvents = {
11742
12188
  "helix-before-open": HelixPopoverHelixBeforeOpenElementEvent;
11743
12189
  };
11744
12190
 
12191
+ /** `HelixProgress` component event */
12192
+ export type HelixProgressElementEvent<E = Event> = TypedEvent<HelixProgress, E>;
12193
+ /** `helix-complete` event type */
12194
+ export type HelixProgressHelixCompleteElementEvent =
12195
+ HelixProgressElementEvent<HelixCompleteEvent>;
12196
+
11745
12197
  export type HelixProgressVueProps = {
11746
12198
  /** How strongly the bar is drawn.
11747
12199
 
@@ -11761,6 +12213,18 @@ from, so an outline there costs legibility and buys no distinction. `solid`
11761
12213
  is the resting state and is written by not writing it, per the rule that a
11762
12214
  reflected property takes no default. */
11763
12215
  emphasis?: (HelixProgress["emphasis"]) | undefined;
12216
+ /** The words a screen reader hears when the value reaches `max`, such as
12217
+ "Upload complete".
12218
+
12219
+ Said once, politely, as the work finishes. Empty says nothing, for a bar
12220
+ whose page announces the result itself. */
12221
+ "complete-label"?: (HelixProgress["completeLabel"]) | undefined;
12222
+ /** The words a screen reader hears when the value reaches `max`, such as
12223
+ "Upload complete".
12224
+
12225
+ Said once, politely, as the work finishes. Empty says nothing, for a bar
12226
+ whose page announces the result itself. */
12227
+ completeLabel?: (HelixProgress["completeLabel"]) | undefined;
11764
12228
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
11765
12229
  Meter and ProgressBar take them: a unit, a currency, or a number of
11766
12230
  decimals. Written as JSON in the attribute.
@@ -11871,12 +12335,21 @@ report progress. */
11871
12335
  valueText?: (HelixProgress["valueText"]) | undefined;
11872
12336
  };
11873
12337
 
11874
- export type HelixProgressVueEvents = {};
12338
+ export type HelixProgressVueEvents = {
12339
+ /** The value reached `max` from below. Its `value` is `max`. Not sent for a bar that starts full. */
12340
+ "helix-complete": HelixProgressHelixCompleteElementEvent;
12341
+ };
11875
12342
 
11876
12343
  /** `HelixQrCode` component event */
11877
12344
  export type HelixQrCodeElementEvent<E = Event> = TypedEvent<HelixQrCode, E>;
11878
12345
 
11879
12346
  export type HelixQrCodeVueProps = {
12347
+ /** The words a code with no `label` is named by, followed by its value where
12348
+ the value is a web address. */
12349
+ "code-label"?: (HelixQrCode["codeLabel"]) | undefined;
12350
+ /** The words a code with no `label` is named by, followed by its value where
12351
+ the value is a web address. */
12352
+ codeLabel?: (HelixQrCode["codeLabel"]) | undefined;
11880
12353
  /** The error correction level, which sets how much of the code can be lost
11881
12354
  and still scan.
11882
12355
 
@@ -11886,10 +12359,13 @@ chosen automatically when the slot is filled: it is the level that makes
11886
12359
  covering safe, and a consumer who fills the slot has said what they want
11887
12360
  without having to know that. */
11888
12361
  correction?: (HelixQrCode["correction"]) | undefined;
11889
- /** The image's accessible name.
12362
+ /** The image's accessible name: what the code is for, such as "Open the
12363
+ menu".
11890
12364
 
11891
- Falling back to the value is deliberate: a code almost always holds a URL,
11892
- and a URL is a better name than "QR code" for a reader who cannot see it. */
12365
+ Absent names it by `code-label` and, for a web address, the address,
12366
+ which is what a reader who cannot scan it needs. Any other value is left
12367
+ out of the name, since it may hold a secret, such as an authenticator's
12368
+ key or a network's password. */
11893
12369
  label?: (HelixQrCode["label"]) | undefined;
11894
12370
  /** How the modules are drawn.
11895
12371
 
@@ -12710,8 +13186,12 @@ runs of text, each with an optional kind, such as
12710
13186
 
12711
13187
  Absent, the pane is a plain field. Runs whose text does not add up to the
12712
13188
  source are drawn as the source, uncolored, so the colors never drift from
12713
- the caret. Set it as a property. */
12714
- highlight?: (HelixSandboxSource["highlight"]) | undefined;
13189
+ the caret, and so is the source when the function throws. Set it as a
13190
+ property.
13191
+
13192
+ Named for what it returns, runs of text, where Code Block's `highlight`
13193
+ returns markup. */
13194
+ tokenize?: (HelixSandboxSource["tokenize"]) | undefined;
12715
13195
  };
12716
13196
 
12717
13197
  export type HelixSandboxSourceVueEvents = {
@@ -12848,6 +13328,20 @@ is read along. */
12848
13328
  "points-label"?: (HelixScatterChart["pointsLabel"]) | undefined;
12849
13329
  /** The word the summary uses for a row when it counts them. */
12850
13330
  pointsLabel?: (HelixScatterChart["pointsLabel"]) | undefined;
13331
+ /** The heading of a column whose numbers size the points, such as
13332
+ `Population`, which makes the chart a bubble chart.
13333
+
13334
+ That column is then a measure and no series: it draws no points of its
13335
+ own, and each point's area follows its row's number in it. Absent, every
13336
+ point is one size. */
13337
+ "size-by"?: (HelixScatterChart["sizeBy"]) | undefined;
13338
+ /** The heading of a column whose numbers size the points, such as
13339
+ `Population`, which makes the chart a bubble chart.
13340
+
13341
+ That column is then a measure and no series: it draws no points of its
13342
+ own, and each point's area follows its row's number in it. Absent, every
13343
+ point is one size. */
13344
+ sizeBy?: (HelixScatterChart["sizeBy"]) | undefined;
12851
13345
  /** Draws each series' line of best fit across the plot, by least squares, in
12852
13346
  the series' color: the regression line a reader would otherwise draw by
12853
13347
  eye.
@@ -13020,6 +13514,14 @@ and this one was the English a form in another language still spoke in
13020
13514
  the bubble it raises on submit: `feedback` replaces the message under
13021
13515
  the field and does not reach that one. */
13022
13516
  valueMissingMessage?: (HelixSelect["valueMissingMessage"]) | undefined;
13517
+ /** What a browser's autofill may fill in, as a platform token such as
13518
+ `country` or `cc-exp-month`, as on a native `<select>`.
13519
+
13520
+ Set, the select keeps a hidden native `<select>` with the same options for
13521
+ the browser to fill, as React Aria's `HiddenSelect` does, and takes the
13522
+ option the browser picks, by its value or its words, as the value. Empty
13523
+ draws no hidden select, and a browser fills nothing. */
13524
+ autocomplete?: (HelixSelect["autocomplete"]) | undefined;
13023
13525
  /** The text shown when no options match the filter. */
13024
13526
  "empty-text"?: (HelixSelect["emptyText"]) | undefined;
13025
13527
  /** The text shown when no options match the filter. */
@@ -13029,6 +13531,24 @@ the field and does not reach that one. */
13029
13531
  Passed to the listbox rather than acted on here, because the listbox owns
13030
13532
  the filtering, the empty state and the keyboard. */
13031
13533
  filterable?: (HelixSelect["filterable"]) | undefined;
13534
+ /** The open list's name where nothing names the Select, read by screen
13535
+ readers. The list has no visible name.
13536
+
13537
+ A Select named by `label`, `aria-label`, `aria-labelledby` or a `<label>`
13538
+ gives its list that name, and this is not used. Unnamed, the Select is
13539
+ reported once by the missing-name warning, and its list is not reported a
13540
+ second time for a name the page never wrote: the list is this element's,
13541
+ and so is the fallback. Combobox calls its list the same. */
13542
+ "list-label"?: (HelixSelect["listLabel"]) | undefined;
13543
+ /** The open list's name where nothing names the Select, read by screen
13544
+ readers. The list has no visible name.
13545
+
13546
+ A Select named by `label`, `aria-label`, `aria-labelledby` or a `<label>`
13547
+ gives its list that name, and this is not used. Unnamed, the Select is
13548
+ reported once by the missing-name warning, and its list is not reported a
13549
+ second time for a name the page never wrote: the list is this element's,
13550
+ and so is the fallback. Combobox calls its list the same. */
13551
+ listLabel?: (HelixSelect["listLabel"]) | undefined;
13032
13552
  /** Whether the options are still loading.
13033
13553
 
13034
13554
  Passed straight to the list, which is where the rows are and so where the
@@ -13043,6 +13563,16 @@ consumer wiring the same flag twice. */
13043
13563
  multiple?: (HelixSelect["multiple"]) | undefined;
13044
13564
  /** Shown on the trigger while nothing is chosen. */
13045
13565
  placeholder?: (HelixSelect["placeholder"]) | undefined;
13566
+ /** Where the list opens: `floating`, under the trigger and above it where
13567
+ there is no room, or `item-aligned`, over the trigger with the chosen
13568
+ option where the trigger is, as a native select does on macOS and Radix
13569
+ Select does by default.
13570
+
13571
+ Over the trigger, a reader's eye stays on the answer as the list opens
13572
+ round it, and a short move reaches the options either side. Near an edge
13573
+ of the screen the list moves to stay on it, so the option may sit beside
13574
+ the trigger rather than on it. It follows the page as it scrolls. */
13575
+ position?: (HelixSelect["position"]) | undefined;
13046
13576
  /** Whether the control is disabled and cannot be used.
13047
13577
 
13048
13578
  Reflected, because the styled tier selects on it, and mirrored to
@@ -13069,6 +13599,16 @@ imperatively later, and nothing is hydrating by then.
13069
13599
 
13070
13600
  Here rather than on each control. */
13071
13601
  name?: (HelixSelect["name"]) | undefined;
13602
+ /** Whether the trigger holds its group's tab stop.
13603
+
13604
+ A toolbar keeps one tab stop across its controls, and writing `tabindex`
13605
+ onto this element would change markup the consumer rendered, which a React
13606
+ consumer's hydration reports. A toolbar sets this property instead, and
13607
+ the stop moves on the trigger inside the shadow root, as Button's does.
13608
+
13609
+ No attribute, because it is coordination between elements rather than
13610
+ anything a consumer sets. */
13611
+ focusable?: (HelixSelect["focusable"]) | undefined;
13072
13612
  /** What the trigger shows for the chosen options: a function given them, in
13073
13613
  the order they appear, that returns text, an element or a Lit template.
13074
13614
 
@@ -13302,6 +13842,11 @@ filled in. Write it in the page's language, such as `{start} bis {end}`. */
13302
13842
  showValue?: (HelixSlider["showValue"]) | undefined;
13303
13843
  /** How far one press of an arrow key moves the thumb. */
13304
13844
  step?: (HelixSlider["step"]) | undefined;
13845
+ /** Whether each thumb shows its value in a bubble beside it, as Web
13846
+ Awesome's `with-tooltip`. The styled slider shows the bubbles while the
13847
+ slider is under the pointer or holds focus. They repeat what each thumb
13848
+ already reports, so a screen reader skips them. */
13849
+ tooltip?: (HelixSlider["tooltip"]) | undefined;
13305
13850
  /** What a screen reader says for a thumb's value, with `{value}` filled in,
13306
13851
  such as `{value} degrees`. Empty announces the number alone. */
13307
13852
  "value-text"?: (HelixSlider["valueText"]) | undefined;
@@ -13463,6 +14008,20 @@ separated by spaces.
13463
14008
  Absent marks none, and the drawing is what it was. Each mark is a part,
13464
14009
  placed at its reading, for a stylesheet to draw. */
13465
14010
  marks?: (HelixSparkline["marks"]) | undefined;
14011
+ /** What the readings come to, said after the name: `{first}` and `{last}`
14012
+ for the first and the last reading, `{high}` and `{low}` for the highest
14013
+ and the lowest, each written as the readout writes it.
14014
+
14015
+ Set it to the words of the page's language, or to nothing to say no
14016
+ more than the name. Said only where the sparkline is named. */
14017
+ "overview-label"?: (HelixSparkline["overviewLabel"]) | undefined;
14018
+ /** What the readings come to, said after the name: `{first}` and `{last}`
14019
+ for the first and the last reading, `{high}` and `{low}` for the highest
14020
+ and the lowest, each written as the readout writes it.
14021
+
14022
+ Set it to the words of the page's language, or to nothing to say no
14023
+ more than the name. Said only where the sparkline is named. */
14024
+ overviewLabel?: (HelixSparkline["overviewLabel"]) | undefined;
13466
14025
  /** What the readings are drawn as.
13467
14026
 
13468
14027
  Absent is `area`, a line with the region beneath it washed. `line` is the
@@ -13505,6 +14064,12 @@ it. `{position}` and `{count}` are replaced with the numbers, written in
13505
14064
  Set it to the words of the page's language, such as `{position} von
13506
14065
  {count}`, or to nothing to say no position. */
13507
14066
  positionLabel?: (HelixSparkline["positionLabel"]) | undefined;
14067
+ /** Two values a band is drawn between, behind the line, separated by a
14068
+ space: `range="60 100"` marks a normal range.
14069
+
14070
+ The scale stretches to hold the band where the readings do not reach it.
14071
+ Absent draws none. */
14072
+ range?: (HelixSparkline["range"]) | undefined;
13508
14073
  /** The numbers, separated by whitespace or by commas.
13509
14074
 
13510
14075
  An array assigned to the property works too, which is what React 19 does
@@ -13516,6 +14081,13 @@ not. */
13516
14081
 
13517
14082
  export type HelixSparklineVueEvents = {};
13518
14083
 
14084
+ export type HelixSpeedDialGroupVueProps = {
14085
+ /** The group's name, drawn above its actions and read by screen readers. */
14086
+ label?: (HelixSpeedDialGroup["label"]) | undefined;
14087
+ };
14088
+
14089
+ export type HelixSpeedDialGroupVueEvents = {};
14090
+
13519
14091
  /** `HelixSpeedDialItem` component event */
13520
14092
  export type HelixSpeedDialItemElementEvent<E = Event> = TypedEvent<
13521
14093
  HelixSpeedDialItem,
@@ -13528,6 +14100,10 @@ export type HelixSpeedDialItemHelixSelectElementEvent =
13528
14100
  export type HelixSpeedDialItemVueProps = {
13529
14101
  /** Whether the action is disabled, so it cannot be chosen. */
13530
14102
  disabled?: (HelixSpeedDialItem["disabled"]) | undefined;
14103
+ /** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
14104
+ `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
14105
+ keyboard and Control elsewhere. Showing a shortcut does not bind it. */
14106
+ shortcut?: (HelixSpeedDialItem["shortcut"]) | undefined;
13531
14107
  /** The action's value, sent in `helix-select` when the action is chosen. */
13532
14108
  value?: (HelixSpeedDialItem["value"]) | undefined;
13533
14109
  };
@@ -13580,8 +14156,32 @@ the resolved state for stylesheets, which is what the mirror is for. */
13580
14156
  open?: (HelixSpeedDial["open"]) | undefined;
13581
14157
  /** Accessible name for the trigger and the set of actions it opens. */
13582
14158
  label?: (HelixSpeedDial["label"]) | undefined;
14159
+ /** The description the trigger gives under `open-on="long-press"`, saying how
14160
+ its actions are reached.
14161
+
14162
+ A slotted trigger is described by the dial, which carries the words as
14163
+ its own label for that: a Helix button's inner control at once, and a
14164
+ plain element of yours once a reader reaches it, after hydration, unless
14165
+ you described or labeled it yourself. */
14166
+ "long-press-label"?: (HelixSpeedDial["longPressLabel"]) | undefined;
14167
+ /** The description the trigger gives under `open-on="long-press"`, saying how
14168
+ its actions are reached.
14169
+
14170
+ A slotted trigger is described by the dial, which carries the words as
14171
+ its own label for that: a Helix button's inner control at once, and a
14172
+ plain element of yours once a reader reaches it, after hydration, unless
14173
+ you described or labeled it yourself. */
14174
+ longPressLabel?: (HelixSpeedDial["longPressLabel"]) | undefined;
13583
14175
  /** Space between the trigger and the actions, in pixels. */
13584
14176
  offset?: (HelixSpeedDial["offset"]) | undefined;
14177
+ /** What opens the dial. `click` opens it on a press of the trigger. Under
14178
+ `long-press`, a press is the trigger's own action, and the dial opens on a
14179
+ press held for half a second, or on Alt+Down or Alt+Up. */
14180
+ "open-on"?: (HelixSpeedDial["openOn"]) | undefined;
14181
+ /** What opens the dial. `click` opens it on a press of the trigger. Under
14182
+ `long-press`, a press is the trigger's own action, and the dial opens on a
14183
+ press held for half a second, or on Alt+Down or Alt+Up. */
14184
+ openOn?: (HelixSpeedDial["openOn"]) | undefined;
13585
14185
  /** The direction the actions open in. They move to another side if that side
13586
14186
  does not fit.
13587
14187
 
@@ -13763,6 +14363,8 @@ export type HelixSplitterVueEvents = {
13763
14363
  "helix-collapse": HelixSplitterHelixCollapseElementEvent;
13764
14364
  /** Fired after the divider settles somewhere new, with the new position. */
13765
14365
  "helix-resized": HelixSplitterHelixResizedElementEvent;
14366
+ /** Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now. */
14367
+ input: HelixSplitterElementEvent;
13766
14368
  };
13767
14369
 
13768
14370
  export type HelixStatGroupVueProps = {
@@ -13862,6 +14464,12 @@ in both. Of those four combinations three are ones nobody should pick, and
13862
14464
  a property whose job is mostly to be left alone is a property that mostly
13863
14465
  catches people out. */
13864
14466
  orientation?: (HelixSteps["orientation"]) | undefined;
14467
+ /** What the `progress` part says to a screen reader, with `{percent}` filled
14468
+ in with `progress`. */
14469
+ "progress-label"?: (HelixSteps["progressLabel"]) | undefined;
14470
+ /** What the `progress` part says to a screen reader, with `{percent}` filled
14471
+ in with `progress`. */
14472
+ progressLabel?: (HelixSteps["progressLabel"]) | undefined;
13865
14473
  /** What each step is marked with.
13866
14474
 
13867
14475
  Absent is the state itself: a check where a stage is done, a target where
@@ -14318,6 +14926,14 @@ is set. */
14318
14926
  "descending-label"?: (HelixTable["descendingLabel"]) | undefined;
14319
14927
  /** The word for a descending sort, in `sorted-label`. */
14320
14928
  descendingLabel?: (HelixTable["descendingLabel"]) | undefined;
14929
+ /** Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
14930
+ Page keys move focus between its cells, the headings included. Enter moves
14931
+ into a cell's controls, and Tab leaves the table.
14932
+
14933
+ Off by default, where the table is a static `table` and Tab reaches each
14934
+ link and control in it. On, the table writes a `tabindex` onto each of its
14935
+ cells, which is the one way a cell of your markup can take focus. */
14936
+ grid?: (HelixTable["grid"]) | undefined;
14321
14937
  /** Accessible name for the table.
14322
14938
 
14323
14939
  An `aria-label` or `aria-labelledby` on the host names the table too, and
@@ -14380,6 +14996,13 @@ export type HelixTableVueEvents = {
14380
14996
  };
14381
14997
 
14382
14998
  export type HelixTableRowVueProps = {
14999
+ /** The URL a press on the row follows, which makes the whole row a link.
15000
+ Empty, the default, leaves presses to the row's cells. */
15001
+ href?: (HelixTableRow["href"]) | undefined;
15002
+ /** The `rel` of the row's link. You set it yourself, as on an anchor. */
15003
+ rel?: (HelixTableRow["rel"]) | undefined;
15004
+ /** Where the row's link opens, such as `_blank`. */
15005
+ target?: (HelixTableRow["target"]) | undefined;
14383
15006
  /** The key the table's `selected` lists this row by. Left empty, the row is
14384
15007
  known by its place among the rows as written. */
14385
15008
  value?: (HelixTableRow["value"]) | undefined;
@@ -14530,6 +15153,12 @@ export type HelixTagGroupHelixDismissElementEvent =
14530
15153
  HelixTagGroupElementEvent<HelixDismissEvent>;
14531
15154
 
14532
15155
  export type HelixTagGroupVueProps = {
15156
+ /** The words the group shows and says once its last tag is removed, where
15157
+ nothing is in the `empty` slot. */
15158
+ "empty-label"?: (HelixTagGroup["emptyLabel"]) | undefined;
15159
+ /** The words the group shows and says once its last tag is removed, where
15160
+ nothing is in the `empty` slot. */
15161
+ emptyLabel?: (HelixTagGroup["emptyLabel"]) | undefined;
14533
15162
  /** The name of the set, such as "Filters", which a screen reader announces
14534
15163
  before its tags. */
14535
15164
  label?: (HelixTagGroup["label"]) | undefined;
@@ -15090,7 +15719,8 @@ Handed to the list. The value is `HH:mm` on twenty-four hours either way. */
15090
15719
  hourCycle?: (HelixTimeInput["hourCycle"]) | undefined;
15091
15720
  /** Language tag the times are written in.
15092
15721
 
15093
- Absent uses the runtime's own. */
15722
+ Absent is the page's: the `lang` of the nearest element with one, as
15723
+ Shoelace and Web Awesome read it, then the runtime's own. */
15094
15724
  locale?: (HelixTimeInput["locale"]) | undefined;
15095
15725
  /** Latest time that can be chosen, as `HH:mm`. */
15096
15726
  max?: (HelixTimeInput["max"]) | undefined;
@@ -15249,6 +15879,19 @@ export type HelixTimePickerHelixBeforeChangeElementEvent =
15249
15879
  HelixTimePickerElementEvent<HelixBeforeChangeEvent>;
15250
15880
 
15251
15881
  export type HelixTimePickerVueProps = {
15882
+ /** A message under the picker, such as what is wrong with the answer.
15883
+
15884
+ While set, the picker is invalid and does not submit, as a field's
15885
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
15886
+ controls a reader answers with are described by it. */
15887
+ feedback?: (HelixTimePicker["feedback"]) | undefined;
15888
+ /** Whether the answer fails validation, marked on the controls a reader
15889
+ answers with and as `:state(invalid)`.
15890
+
15891
+ A flag a field that wraps the picker sets, since that field owns the
15892
+ label, the hint and the message; on its own, `feedback` both marks the
15893
+ picker and says why. */
15894
+ invalid?: (HelixTimePicker["invalid"]) | undefined;
15252
15895
  /** The value the control starts with. A form reset returns it to this value,
15253
15896
  and to the `value` attribute where this one is not written, as a native
15254
15897
  control resets to the `value` it declares. */
@@ -15322,21 +15965,14 @@ English, "Stunde" in German. */
15322
15965
  Absent is the locale's own word, from `Intl.DisplayNames`: "Hour" in
15323
15966
  English, "Stunde" in German. */
15324
15967
  hourLabel?: (HelixTimePicker["hourLabel"]) | undefined;
15325
- /** Whether the current selection fails validation.
15326
-
15327
- A flag rather than a message, the same split Date Picker draws. A flat
15328
- picker has no room of its own for a sentence: the field that wraps one owns
15329
- the label, the hint and the feedback, and a second message inside the panel
15330
- would be the same error said twice. What is left for the picker is the one
15331
- thing the field cannot draw from outside, the mark on the answer itself. */
15332
- invalid?: (HelixTimePicker["invalid"]) | undefined;
15333
15968
  /** Accessible name for the list, which has no visible one of its own.
15334
15969
 
15335
15970
  An `aria-label` or `aria-labelledby` on the host names the list instead. */
15336
15971
  label?: (HelixTimePicker["label"]) | undefined;
15337
- /** Language tag the times are written in.
15972
+ /** Language tag the times and the wheels' names are written in.
15338
15973
 
15339
- Absent uses the runtime's own. */
15974
+ Absent is the page's: the `lang` of the nearest element with one, as
15975
+ Shoelace and Web Awesome read it, then the runtime's own. */
15340
15976
  locale?: (HelixTimePicker["locale"]) | undefined;
15341
15977
  /** Stops the arrow keys in the list from choosing each time they move to.
15342
15978
  Enter, Space or a click chooses.
@@ -15917,6 +16553,9 @@ export type HelixToggleVueEvents = {
15917
16553
  };
15918
16554
 
15919
16555
  export type HelixToolbarVueProps = {
16556
+ /** The size of every control in the toolbar: their height, icons, boxes and
16557
+ tags. Unset is the small size, as a toolbar is dense by nature. */
16558
+ size?: (HelixToolbar["size"]) | undefined;
15920
16559
  /** The toolbar's name, read by screen readers.
15921
16560
 
15922
16561
  An `aria-label` or `aria-labelledby` on the host names the toolbar too,
@@ -16546,6 +17185,30 @@ export type HelixTrendVueProps = {
16546
17185
  "down-label"?: (HelixTrend["downLabel"]) | undefined;
16547
17186
  /** The word read out for a move down. */
16548
17187
  downLabel?: (HelixTrend["downLabel"]) | undefined;
17188
+ /** `Intl.NumberFormat` options `value` is written with, as React Aria's
17189
+ NumberField takes them: a percent, a currency, a unit or a number of
17190
+ decimals. Written as JSON in the attribute.
17191
+
17192
+ ```html
17193
+ <helix-trend value="-0.084" format-options='{"style":"percent","maximumFractionDigits":1}'></helix-trend>
17194
+ ```
17195
+
17196
+ The example says "Down 8.4%". The size is written without a sign, since
17197
+ the arrow and the word say which way; set `signDisplay` for one. Absent
17198
+ writes the number as the locale writes any number. */
17199
+ "format-options"?: (HelixTrend["formatOptions"]) | undefined;
17200
+ /** `Intl.NumberFormat` options `value` is written with, as React Aria's
17201
+ NumberField takes them: a percent, a currency, a unit or a number of
17202
+ decimals. Written as JSON in the attribute.
17203
+
17204
+ ```html
17205
+ <helix-trend value="-0.084" format-options='{"style":"percent","maximumFractionDigits":1}'></helix-trend>
17206
+ ```
17207
+
17208
+ The example says "Down 8.4%". The size is written without a sign, since
17209
+ the arrow and the word say which way; set `signDisplay` for one. Absent
17210
+ writes the number as the locale writes any number. */
17211
+ formatOptions?: (HelixTrend["formatOptions"]) | undefined;
16549
17212
  /** Which movement counts as an improvement for this metric.
16550
17213
 
16551
17214
  Absent states the movement without judging it, which is the honest default:
@@ -16553,6 +17216,11 @@ revenue up is good news and latency up is bad news, and only the consumer
16553
17216
  knows which one this is. Set it once per metric and it holds while the
16554
17217
  movement changes underneath. */
16555
17218
  good?: (HelixTrend["good"]) | undefined;
17219
+ /** The locale `value` is written in, such as `de` for `1.234,5`.
17220
+
17221
+ Absent uses the runtime's own. Set it on a page rendered on a server, so
17222
+ the server and the browser write the figure alike. */
17223
+ locale?: (HelixTrend["locale"]) | undefined;
16556
17224
  /** Which way the measurement moved.
16557
17225
 
16558
17226
  Absent is neutral, so a trend with nothing to report draws a bar rather
@@ -16571,6 +17239,14 @@ three. */
16571
17239
  "up-label"?: (HelixTrend["upLabel"]) | undefined;
16572
17240
  /** The word read out for a move up. */
16573
17241
  upLabel?: (HelixTrend["upLabel"]) | undefined;
17242
+ /** The change as a signed number, such as `0.12` or `-8`, which sets the
17243
+ movement by its sign and is written as the metric.
17244
+
17245
+ Above zero is up, below is down, and zero is neutral; `movement` wins when
17246
+ both are written. The size is written in the `value` part with
17247
+ `format-options` and `locale`, in place of a slotted metric. Absent leaves
17248
+ the movement to `movement` and the metric to the slot. */
17249
+ value?: (HelixTrend["value"]) | undefined;
16574
17250
  /** The word read out after the direction when the move is a setback. */
16575
17251
  "worse-label"?: (HelixTrend["worseLabel"]) | undefined;
16576
17252
  /** The word read out after the direction when the move is a setback. */
@@ -16693,7 +17369,7 @@ arrives or leaves, so previous goes back through what has played. */
16693
17369
  };
16694
17370
 
16695
17371
  export type HelixVideoPlaylistVueEvents = {
16696
- /** The current entry changed. The playlist already holds the new entry when this is sent, and `detail.previous` is the entry it left. */
17372
+ /** The current entry changed. The playlist already holds the new entry when this is sent, and `detail.previous` is the entry it left. `currentEntry` is the entry itself, with its `src`, `poster` and name. */
16697
17373
  "helix-activate": HelixVideoPlaylistHelixActivateElementEvent;
16698
17374
  /** The current entry is about to change. Cancelable: cancel it to keep the current entry. */
16699
17375
  "helix-before-activate": HelixVideoPlaylistHelixBeforeActivateElementEvent;
@@ -16830,7 +17506,11 @@ assumed: it is absent on iPhone and behind a flag in Firefox, and a button
16830
17506
  that cannot work is worse than one that is not there.
16831
17507
 
16832
17508
  The names are `speed`, `pip`, `remote`, `download`, `rewind`, `forward`,
16833
- `previous` and `next`.
17509
+ `previous` and `next`. `full` stands for `rewind`, `forward`, `speed`,
17510
+ `pip` and `remote` in that order, the controls that act on the video by
17511
+ themselves, as Web Awesome's `full` preset does, and a name it already
17512
+ holds is drawn once. `extra-controls="full"` is the whole bar, and
17513
+ `overflow-controls="full"` puts all of it behind one button.
16834
17514
 
16835
17515
  **`previous` and `next` do nothing to the video, and are offered anyway.**
16836
17516
  They announce `helix-previous` and `helix-next` and stop there, so what
@@ -16860,7 +17540,11 @@ assumed: it is absent on iPhone and behind a flag in Firefox, and a button
16860
17540
  that cannot work is worse than one that is not there.
16861
17541
 
16862
17542
  The names are `speed`, `pip`, `remote`, `download`, `rewind`, `forward`,
16863
- `previous` and `next`.
17543
+ `previous` and `next`. `full` stands for `rewind`, `forward`, `speed`,
17544
+ `pip` and `remote` in that order, the controls that act on the video by
17545
+ themselves, as Web Awesome's `full` preset does, and a name it already
17546
+ holds is drawn once. `extra-controls="full"` is the whole bar, and
17547
+ `overflow-controls="full"` puts all of it behind one button.
16864
17548
 
16865
17549
  **`previous` and `next` do nothing to the video, and are offered anyway.**
16866
17550
  They announce `helix-previous` and `helix-next` and stop there, so what
@@ -17171,6 +17855,10 @@ export type HelixVirtualListHelixRangeChangeElementEvent =
17171
17855
  HelixVirtualListElementEvent<HelixRangeChangeEvent>;
17172
17856
 
17173
17857
  export type HelixVirtualListVueProps = {
17858
+ /** How many items a line holds. One, the default, is a list; more lays the
17859
+ items out as a grid of that many equal columns, windowed a line at a
17860
+ time, with Left and Right moving along a line. */
17861
+ columns?: (HelixVirtualList["columns"]) | undefined;
17174
17862
  /** The height of one row, in pixels, used to find the row at a scroll offset.
17175
17863
 
17176
17864
  An estimate rather than a measurement while `measured` is off, which is
@@ -17291,10 +17979,16 @@ export type CustomCssProperties = {
17291
17979
  "--announcement-background-color"?: (string) | undefined;
17292
17980
  /** The band's minimum height, so adding a control to it does not move the page down. A message long enough to wrap makes the band taller. */
17293
17981
  "--announcement-block-size"?: (string) | undefined;
17982
+ /** The size of the message's text. */
17983
+ "--announcement-font-size"?: (string) | undefined;
17294
17984
  /** The message's color, to pair with a fill set through the background hook. */
17295
17985
  "--announcement-foreground-color"?: (string) | undefined;
17296
17986
  /** The inline padding, matched to the page. */
17297
17987
  "--announcement-inset"?: (string) | undefined;
17988
+ /** Where the message sits in the band. Centered by default; `start` lines it up with the page under it. */
17989
+ "--announcement-text-align"?: (string) | undefined;
17990
+ /** The color a toned band's tint and outline are mixed from, in place of the tone's. */
17991
+ "--announcement-tone-color"?: (string) | undefined;
17298
17992
  /** The filter behind the banner. Set it to `none` when you pair the header with a panel. */
17299
17993
  "--app-header-backdrop"?: (string) | undefined;
17300
17994
  /** Fill behind the banner. */
@@ -17315,6 +18009,8 @@ export type CustomCssProperties = {
17315
18009
  "--area-chart-gap"?: (string) | undefined;
17316
18010
  /** Color of the rules drawn across the plot under `gridlines`. */
17317
18011
  "--area-chart-gridline-color"?: (string) | undefined;
18012
+ /** How much of each band shows under `overlap`, where the bands in front let the ones behind show through. */
18013
+ "--area-chart-overlap-opacity"?: (string) | undefined;
17318
18014
  /** Thickness of a band's top edge. Overrides `--chart-stroke`. */
17319
18015
  "--area-chart-width"?: (string) | undefined;
17320
18016
  /** Thickness of a band's top edge. Area Chart, Line Chart, and Bar Chart's `lines` all read this one property. `--area-chart-width` overrides it here. */
@@ -17327,12 +18023,22 @@ export type CustomCssProperties = {
17327
18023
  "--aura-haze"?: (string) | undefined;
17328
18024
  /** The hottest stop, at the center of a shape. Defaults to `--helix-color-primary-active` on a light page and `--helix-color-foreground` on a dark one. */
17329
18025
  "--aura-peak"?: (string) | undefined;
18026
+ /** The fill of the count of avatars past `max`. */
18027
+ "--avatar-group-overflow-background-color"?: (string) | undefined;
18028
+ /** The color of the count of avatars past `max`. */
18029
+ "--avatar-group-overflow-color"?: (string) | undefined;
18030
+ /** The type size of the count of avatars past `max`. */
18031
+ "--avatar-group-overflow-font-size"?: (string) | undefined;
17330
18032
  /** How far each avatar sits over the one before it. */
17331
18033
  "--avatar-group-overlap"?: (string) | undefined;
17332
18034
  /** Color of the ring that separates one avatar from the next. */
17333
18035
  "--avatar-group-ring-color"?: (string) | undefined;
17334
18036
  /** Fill behind the initials. */
17335
18037
  "--avatar-background-color"?: (string) | undefined;
18038
+ /** The color of the initials. */
18039
+ "--avatar-color"?: (string) | undefined;
18040
+ /** The weight of the initials. */
18041
+ "--avatar-font-weight"?: (string) | undefined;
17336
18042
  /** Edge length of the avatar. */
17337
18043
  "--avatar-size"?: (string) | undefined;
17338
18044
  /** How long one beat of `attention` takes. */
@@ -17341,10 +18047,14 @@ export type CustomCssProperties = {
17341
18047
  "--badge-background-color"?: (string) | undefined;
17342
18048
  /** The color of the count, to pair with a fill set through `--badge-background-color`. */
17343
18049
  "--badge-color"?: (string) | undefined;
18050
+ /** The weight of the count. */
18051
+ "--badge-font-weight"?: (string) | undefined;
17344
18052
  /** The space between the content and the count under `placement="inline"`. */
17345
18053
  "--badge-gap"?: (string) | undefined;
17346
18054
  /** Pulls the mark in from the corner, along both axes. */
17347
18055
  "--badge-offset"?: (string) | undefined;
18056
+ /** How far the indicator's corners are rounded. */
18057
+ "--badge-radius"?: (string) | undefined;
17348
18058
  /** The color of the ring between the indicator and what is behind it. */
17349
18059
  "--badge-ring-color"?: (string) | undefined;
17350
18060
  /** Fill of the category band under the pointer. */
@@ -17371,6 +18081,10 @@ export type CustomCssProperties = {
17371
18081
  "--chart-bar-wash"?: (string) | undefined;
17372
18082
  /** The color of the attribution. */
17373
18083
  "--blockquote-attribution-color"?: (string) | undefined;
18084
+ /** The typeface of the attribution, the page's by default. */
18085
+ "--blockquote-attribution-font-family"?: (string) | undefined;
18086
+ /** The weight of the attribution, the page's by default. */
18087
+ "--blockquote-attribution-font-weight"?: (string) | undefined;
17374
18088
  /** The font size of the attribution. */
17375
18089
  "--blockquote-attribution-size"?: (string) | undefined;
17376
18090
  /** The color of the quoted passage. */
@@ -17381,8 +18095,14 @@ export type CustomCssProperties = {
17381
18095
  "--blockquote-font-weight"?: (string) | undefined;
17382
18096
  /** The space between the passage and its attribution. */
17383
18097
  "--blockquote-gap"?: (string) | undefined;
18098
+ /** The letter spacing of the quoted passage, the tight tracking by default. */
18099
+ "--blockquote-letter-spacing"?: (string) | undefined;
17384
18100
  /** The line height of the quoted passage, the tight leading by default. */
17385
18101
  "--blockquote-line-height"?: (string) | undefined;
18102
+ /** The color of the mark `marks` draws, the subtle foreground by default. */
18103
+ "--blockquote-mark-color"?: (string) | undefined;
18104
+ /** The font size of the mark `marks` draws. */
18105
+ "--blockquote-mark-size"?: (string) | undefined;
17386
18106
  /** The font size of the quoted passage. */
17387
18107
  "--blockquote-size"?: (string) | undefined;
17388
18108
  /** Inline padding of a control slotted into a crumb, matching the steps either side of it. */
@@ -17405,8 +18125,20 @@ export type CustomCssProperties = {
17405
18125
  "--breadcrumbs-font-size"?: (string) | undefined;
17406
18126
  /** Space between items and separators. */
17407
18127
  "--breadcrumbs-gap"?: (string) | undefined;
18128
+ /** Color of the line between the two halves of a split crumb, under `separation="outlined"`. */
18129
+ "--breadcrumbs-split-divider-color"?: (string) | undefined;
18130
+ /** Fill across both halves of a split crumb while one of them is under the pointer, under the default `plain` separation. */
18131
+ "--breadcrumbs-split-fill"?: (string) | undefined;
17408
18132
  /** Space between the buttons, when `spaced`. */
17409
18133
  "--button-group-gap"?: (string) | undefined;
18134
+ /** Fill behind a pressed button, in a selection mode. Defaults to the foreground color. */
18135
+ "--button-group-pressed-background-color"?: (string) | undefined;
18136
+ /** Edge of a pressed button, in a selection mode. Defaults to its fill. */
18137
+ "--button-group-pressed-border-color"?: (string) | undefined;
18138
+ /** Words and icons of a pressed button, in a selection mode. Defaults to the background color. */
18139
+ "--button-group-pressed-color"?: (string) | undefined;
18140
+ /** Written on the control inside each toggle button of a group with `selection-mode`: `1` while it is pressed and `0` while it is not. Read it in a `::part(button)` rule to draw the pressed look. */
18141
+ "--button-group-pressed"?: (string) | undefined;
17410
18142
  /** Fill behind the button, in every state. */
17411
18143
  "--button-background-color"?: (string) | undefined;
17412
18144
  /** Fill behind the button under the pointer. Without it, `--button-background-color` also applies on hover. */
@@ -17471,8 +18203,12 @@ export type CustomCssProperties = {
17471
18203
  "--canvas-node-background-color"?: (string) | undefined;
17472
18204
  /** A color for the card that carries no meaning, such as a hex color from a document. Use it when no tone fits. */
17473
18205
  "--canvas-node-color"?: (string) | undefined;
18206
+ /** The size of the card's text. */
18207
+ "--canvas-node-font-size"?: (string) | undefined;
17474
18208
  /** The space between the card's edge and its content. */
17475
18209
  "--canvas-node-padding"?: (string) | undefined;
18210
+ /** The card's corners. A `shape` draws its own. */
18211
+ "--canvas-node-radius"?: (string) | undefined;
17476
18212
  /** The shadow under the card, set by `separation="elevated"`. */
17477
18213
  "--canvas-node-shadow"?: (string) | undefined;
17478
18214
  /** The background behind the board. */
@@ -17481,14 +18217,26 @@ export type CustomCssProperties = {
17481
18217
  "--canvas-block-size"?: (string) | undefined;
17482
18218
  /** The color of the frame's edge. */
17483
18219
  "--canvas-border-color"?: (string) | undefined;
18220
+ /** The color of a connection being drawn, and of the card it will arrive at and that card's points. */
18221
+ "--canvas-connect-color"?: (string) | undefined;
17484
18222
  /** The color of a connection with no tone. Set it in one edge's `style` to color only that edge. */
17485
18223
  "--canvas-edge-color"?: (string) | undefined;
17486
18224
  /** The width of the area a pointer can press on a connection, which is wider than the drawn line. */
17487
18225
  "--canvas-edge-target-width"?: (string) | undefined;
18226
+ /** The width of a connection's line. A selected or focused connection is drawn at twice it. */
18227
+ "--canvas-edge-width"?: (string) | undefined;
17488
18228
  /** The spacing of the grid lines or dots, in the document's units, so it scales with the zoom. */
17489
18229
  "--canvas-grid-size"?: (string) | undefined;
18230
+ /** The color of the label on a connection. */
18231
+ "--canvas-label-color"?: (string) | undefined;
17490
18232
  /** The width of the field for editing a label. */
17491
18233
  "--canvas-label-editor-inline-size"?: (string) | undefined;
18234
+ /** The size of the label on a connection. */
18235
+ "--canvas-label-font-size"?: (string) | undefined;
18236
+ /** The frame's corners. */
18237
+ "--canvas-radius"?: (string) | undefined;
18238
+ /** The color of what is selected: a card's outline, its corners and its move handle, a connection and its ends, and the box drawn to select. */
18239
+ "--canvas-selected-color"?: (string) | undefined;
17492
18240
  /** The background of the pan and zoom buttons. `Map` uses the same property. */
17493
18241
  "--viewport-control-background-color"?: (string) | undefined;
17494
18242
  /** How the regions pack when the card is stretched taller than its content. `start` by default, so the slack is at the bottom; `space-between` puts a footer on the floor. */
@@ -17501,10 +18249,18 @@ export type CustomCssProperties = {
17501
18249
  "--card-border-color"?: (string) | undefined;
17502
18250
  /** Width of the surface's edge. Follows `--helix-border-surface`, which is a hairline unless your theme sets another width. The edge is what sets the surface apart. */
17503
18251
  "--card-border-width"?: (string) | undefined;
18252
+ /** Color of the card's text. Muted by default, so the header reads as the card's own voice. */
18253
+ "--card-color"?: (string) | undefined;
17504
18254
  /** Space between the regions, and between a header or footer and its actions. */
17505
18255
  "--card-gap"?: (string) | undefined;
18256
+ /** Color of the header, and of a `Text` heading anywhere in the card. The foreground by default. */
18257
+ "--card-heading-color"?: (string) | undefined;
18258
+ /** Line height of the card's text. The normal leading by default. */
18259
+ "--card-line-height"?: (string) | undefined;
17506
18260
  /** Height of the media region. Defaults to `auto`, which follows an image's own proportions. A chart has no height of its own, so set one here for a chart. */
17507
18261
  "--card-media-block-size"?: (string) | undefined;
18262
+ /** How a slotted picture fills the media region, as `object-fit`. `cover` by default; `contain` shows all of a logo or a screenshot. */
18263
+ "--card-media-fit"?: (string) | undefined;
17508
18264
  /** Width of the media column when horizontal. */
17509
18265
  "--card-media-size"?: (string) | undefined;
17510
18266
  /** Inset applied to each region. */
@@ -17541,8 +18297,18 @@ export type CustomCssProperties = {
17541
18297
  "--chat-message-background-color-me"?: (string) | undefined;
17542
18298
  /** Text color in a turn. */
17543
18299
  "--chat-message-color"?: (string) | undefined;
18300
+ /** Text color in turns by `me`. */
18301
+ "--chat-message-color-me"?: (string) | undefined;
17544
18302
  /** Maximum width of a turn before its text wraps. */
17545
18303
  "--chat-message-measure"?: (string) | undefined;
18304
+ /** Color of the line under a turn, with its time and state. */
18305
+ "--chat-message-meta-color"?: (string) | undefined;
18306
+ /** Space above and below a turn's content inside its bubble. */
18307
+ "--chat-message-padding-block"?: (string) | undefined;
18308
+ /** Space either side of a turn's content inside its bubble. */
18309
+ "--chat-message-padding-inline"?: (string) | undefined;
18310
+ /** Corner radius of a turn's bubble. */
18311
+ "--chat-message-radius"?: (string) | undefined;
17546
18312
  /** Space between turns. */
17547
18313
  "--chat-gap"?: (string) | undefined;
17548
18314
  /** How tall the conversation may get before the transcript scrolls. */
@@ -17581,22 +18347,36 @@ export type CustomCssProperties = {
17581
18347
  "--checkbox-mark-color"?: (string) | undefined;
17582
18348
  /** The width and height of the box. */
17583
18349
  "--checkbox-size"?: (string) | undefined;
18350
+ /** The color a diff's added lines are tinted in and their `+` is drawn in. The success color by default. */
18351
+ "--code-block-added-color"?: (string) | undefined;
17584
18352
  /** A backdrop filter for the block and its header, for a translucent background. */
17585
18353
  "--code-block-backdrop"?: (string) | undefined;
17586
18354
  /** The background behind the code. Set it for a block that sits on a surface other than the page background. */
17587
18355
  "--code-block-background-color"?: (string) | undefined;
17588
18356
  /** The line around the block and its header. */
17589
18357
  "--code-block-border-color"?: (string) | undefined;
18358
+ /** The color of the code. A highlighter's own colors win on the tokens it colors. */
18359
+ "--code-block-color"?: (string) | undefined;
17590
18360
  /** The color of the button under a capped block that shows every line. */
17591
18361
  "--code-block-expand-color"?: (string) | undefined;
18362
+ /** The typeface of the code and its line numbers. The mono face by default. */
18363
+ "--code-block-font-family"?: (string) | undefined;
18364
+ /** The size of the code and its line numbers. */
18365
+ "--code-block-font-size"?: (string) | undefined;
17592
18366
  /** The color of the line numbers. */
17593
18367
  "--code-block-gutter-color"?: (string) | undefined;
17594
18368
  /** The background behind the name. The default is `surface-raised`. */
17595
18369
  "--code-block-header-background-color"?: (string) | undefined;
18370
+ /** The color of the name in the header. */
18371
+ "--code-block-label-color"?: (string) | undefined;
18372
+ /** The line height of the code and its line numbers, as a number or a length. */
18373
+ "--code-block-line-height"?: (string) | undefined;
17596
18374
  /** The tallest the code grows before it scrolls, or until `expandable`'s button shows every line. The default is no limit. */
17597
18375
  "--code-block-max-block-size"?: (string) | undefined;
17598
18376
  /** The corner radius of the header's top and the block's bottom, which form one shape. */
17599
18377
  "--code-block-radius"?: (string) | undefined;
18378
+ /** The color a diff's removed lines are tinted in and their `-` is drawn in. The danger color by default. */
18379
+ "--code-block-removed-color"?: (string) | undefined;
17600
18380
  /** Fill behind the fragment. Defaults to the foreground color at 6%, which looks the same on a light page and a dark one. */
17601
18381
  "--code-background-color"?: (string) | undefined;
17602
18382
  /** The fragment's typeface. Defaults to the mono face. */
@@ -17641,6 +18421,10 @@ export type CustomCssProperties = {
17641
18421
  "--color-picker-sample-size"?: (string) | undefined;
17642
18422
  /** The width and height of one preset. */
17643
18423
  "--color-picker-swatch-size"?: (string) | undefined;
18424
+ /** The widest the hue ring draws, with `wheel`. The picker's width by default. */
18425
+ "--color-picker-wheel-size"?: (string) | undefined;
18426
+ /** The width of the hue ring's band, with `wheel`. */
18427
+ "--color-picker-wheel-thickness"?: (string) | undefined;
17644
18428
  /** The chosen brightness, 0 to 100, as a percentage. */
17645
18429
  "--color-picker-brightness"?: (string) | undefined;
17646
18430
  /** The chosen hue, 0 to 360, unitless. */
@@ -17705,6 +18489,10 @@ export type CustomCssProperties = {
17705
18489
  "--data-table-color"?: (string) | undefined;
17706
18490
  /** The grid track list for the columns. It overrides the list worked out from the columns. */
17707
18491
  "--data-table-columns"?: (string) | undefined;
18492
+ /** The space between the grid and the footer below it. */
18493
+ "--data-table-footer-gap"?: (string) | undefined;
18494
+ /** The space between the pieces of the footer, such as a summary and the pagination. */
18495
+ "--data-table-footer-item-gap"?: (string) | undefined;
17708
18496
  /** The fill behind a heading while `windowed`. It is opaque, because rows scroll under the sticky heading. Unset otherwise. */
17709
18497
  "--data-table-heading-background-color"?: (string) | undefined;
17710
18498
  /** The text color of a heading. */
@@ -17715,6 +18503,10 @@ export type CustomCssProperties = {
17715
18503
  "--data-table-more-border-color"?: (string) | undefined;
17716
18504
  /** The fill behind the button in the `load-more` row while the pointer is over it. */
17717
18505
  "--data-table-more-hover-background-color"?: (string) | undefined;
18506
+ /** The space above and below the words of the button in the `load-more` row. */
18507
+ "--data-table-more-padding-block"?: (string) | undefined;
18508
+ /** The space either side of the words of the button in the `load-more` row. */
18509
+ "--data-table-more-padding-inline"?: (string) | undefined;
17718
18510
  /** The corner radius of the button in the `load-more` row. */
17719
18511
  "--data-table-more-radius"?: (string) | undefined;
17720
18512
  /** The space above and below a cell's content. */
@@ -17723,12 +18515,18 @@ export type CustomCssProperties = {
17723
18515
  "--data-table-padding-inline"?: (string) | undefined;
17724
18516
  /** The color of the line between rows. It takes a color only, because it fills the color in a border shorthand, and a full border value makes the rule invalid. It is drawn on the cells, because the row is `display: contents`. */
17725
18517
  "--data-table-rule-color"?: (string) | undefined;
18518
+ /** The fill across a selected row. */
18519
+ "--data-table-selected-background-color"?: (string) | undefined;
17726
18520
  /** The font size of headings and cells. */
17727
18521
  "--data-table-text"?: (string) | undefined;
17728
18522
  /** The color of the mark that opens and closes a row of a tree grid. */
17729
18523
  "--data-table-toggle-color"?: (string) | undefined;
18524
+ /** The space between the mark that opens a row of a tree grid and the row's name, also kept by a row with no children. */
18525
+ "--data-table-toggle-gap"?: (string) | undefined;
17730
18526
  /** The size of the mark that opens and closes a row of a tree grid, and of the room a row with no children keeps for it. */
17731
18527
  "--data-table-toggle-size"?: (string) | undefined;
18528
+ /** The space between the toolbar and the grid below it. */
18529
+ "--data-table-toolbar-gap"?: (string) | undefined;
17732
18530
  /** The alignment of the cell's column: `start`, `center`, or `end`. Unset when the column sets none. The component writes it on each cell it draws, and the stylesheet reads it. `Table` sets `--table-cell-align` for the same purpose. */
17733
18531
  "--data-table-cell-align"?: (string) | undefined;
17734
18532
  /** How deep a row is in a tree grid, from 1. The component writes it on each row header cell, and the stylesheet indents by it. */
@@ -17755,6 +18553,8 @@ export type CustomCssProperties = {
17755
18553
  "--date-picker-columns"?: (string) | undefined;
17756
18554
  /** Width and height of a day. */
17757
18555
  "--date-picker-day-size"?: (string) | undefined;
18556
+ /** The color of the message under the calendar, while `feedback` is set. */
18557
+ "--date-picker-feedback-color"?: (string) | undefined;
17758
18558
  /** Height of a month or a year in the months and years views, where `max-view` is set. */
17759
18559
  "--date-picker-period-size"?: (string) | undefined;
17760
18560
  /** Band behind the days in a range. */
@@ -17767,18 +18567,46 @@ export type CustomCssProperties = {
17767
18567
  "--date-picker-track-size"?: (string) | undefined;
17768
18568
  /** How many month columns are drawn, capped at two. `--date-picker-columns` overrides it. */
17769
18569
  "--date-picker-column-count"?: (string) | undefined;
18570
+ /** The space between the value and the controls in `actions`. */
18571
+ "--description-list-actions-gap"?: (string) | undefined;
18572
+ /** How a label and its value line up beside each other, as `align-items`. Defaults to `baseline`; `center` suits a value taller than a line, such as an avatar. */
18573
+ "--description-list-item-align"?: (string) | undefined;
18574
+ /** The space between a label and its value when the label sits over it. */
18575
+ "--description-list-item-gap"?: (string) | undefined;
18576
+ /** The color of a label. */
18577
+ "--description-list-label-color"?: (string) | undefined;
18578
+ /** The size of a label's text. */
18579
+ "--description-list-label-font-size"?: (string) | undefined;
18580
+ /** The weight of a label's text. */
18581
+ "--description-list-label-weight"?: (string) | undefined;
18582
+ /** The color of a value. */
18583
+ "--description-list-value-color"?: (string) | undefined;
18584
+ /** The space between the column of labels and the column of values, with `direction="row"`. */
18585
+ "--description-list-column-gap"?: (string) | undefined;
18586
+ /** The color of the rule between pairs, with `divided`. */
18587
+ "--description-list-divider-color"?: (string) | undefined;
18588
+ /** The thickness of the rule between pairs, with `divided`. */
18589
+ "--description-list-divider-width"?: (string) | undefined;
17770
18590
  /** Space between one pair and the next. The default is smaller with `direction="row"` than when stacked. Setting this property replaces both defaults. */
17771
18591
  "--description-list-gap"?: (string) | undefined;
18592
+ /** The width of the column of labels, with `direction="row"`. Defaults to the width of the longest label; set a length such as `10rem` to line up several lists. */
18593
+ "--description-list-label-width"?: (string) | undefined;
18594
+ /** The panel's fill. Follows `--helix-color-surface-overlay`. */
18595
+ "--dialog-background-color"?: (string) | undefined;
17772
18596
  /** Color of the panel's edge. */
17773
18597
  "--dialog-border-color"?: (string) | undefined;
17774
18598
  /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
17775
18599
  "--dialog-border-width"?: (string) | undefined;
18600
+ /** Color of the words in the panel. Follows `--helix-color-foreground`. */
18601
+ "--dialog-color"?: (string) | undefined;
17776
18602
  /** How big the mark above the title is. */
17777
18603
  "--dialog-icon-size"?: (string) | undefined;
17778
18604
  /** Width of the panel. */
17779
18605
  "--dialog-inline-size"?: (string) | undefined;
17780
18606
  /** Padding inside the panel. */
17781
18607
  "--dialog-padding"?: (string) | undefined;
18608
+ /** The panel's corner radius. Follows `--helix-radii-sm`. */
18609
+ "--dialog-radius"?: (string) | undefined;
17782
18610
  /** How far the panel rises as it opens. Follows `--helix-space-lg`. */
17783
18611
  "--dialog-rise"?: (string) | undefined;
17784
18612
  /** The tint over the page behind the dialog. Set it on the host, because a `var()` written inside `::backdrop` cannot read a token. */
@@ -17789,6 +18617,12 @@ export type CustomCssProperties = {
17789
18617
  "--divider-color"?: (string) | undefined;
17790
18618
  /** The color of the content set into the line. */
17791
18619
  "--divider-content-color"?: (string) | undefined;
18620
+ /** The typeface of the content set into the line. The sans face by default. */
18621
+ "--divider-content-font-family"?: (string) | undefined;
18622
+ /** The size of the content set into the line. The `xs` step by default. */
18623
+ "--divider-content-font-size"?: (string) | undefined;
18624
+ /** The weight of the content set into the line. The weight around the divider by default. */
18625
+ "--divider-content-font-weight"?: (string) | undefined;
17792
18626
  /** The space either side of the content set into the line. */
17793
18627
  "--divider-content-gap"?: (string) | undefined;
17794
18628
  /** The length of line before the content under `content-placement="start"`, or after it under `end`. */
@@ -17845,6 +18679,8 @@ export type CustomCssProperties = {
17845
18679
  "--drilldown-item-block-size"?: (string) | undefined;
17846
18680
  /** Color of a row's words. */
17847
18681
  "--drilldown-item-color"?: (string) | undefined;
18682
+ /** Color of the line under a row's label. */
18683
+ "--drilldown-item-description-color"?: (string) | undefined;
17848
18684
  /** How faint a disabled row is drawn. */
17849
18685
  "--drilldown-item-disabled-opacity"?: (string) | undefined;
17850
18686
  /** Size of a row's words. */
@@ -17919,12 +18755,20 @@ export type CustomCssProperties = {
17919
18755
  "--file-input-file-radius"?: (string) | undefined;
17920
18756
  /** Padding inside the field. */
17921
18757
  "--file-input-padding"?: (string) | undefined;
18758
+ /** The filled part of a file's upload bar. */
18759
+ "--file-input-progress-color"?: (string) | undefined;
18760
+ /** The unfilled part of a file's upload bar. */
18761
+ "--file-input-progress-track-color"?: (string) | undefined;
17922
18762
  /** Corner radius of the field. */
17923
18763
  "--file-input-radius"?: (string) | undefined;
17924
18764
  /** The remove button's icon at rest. */
17925
18765
  "--file-input-remove-color"?: (string) | undefined;
17926
18766
  /** The remove button's icon under the pointer. */
17927
18767
  "--file-input-remove-color-hover"?: (string) | undefined;
18768
+ /** The words beside a file's upload bar. */
18769
+ "--file-input-status-color"?: (string) | undefined;
18770
+ /** The words beside a file whose upload failed. */
18771
+ "--file-input-status-color-error"?: (string) | undefined;
17928
18772
  /** The fill behind the chip. */
17929
18773
  "--filter-input-chip-background-color"?: (string) | undefined;
17930
18774
  /** The color of the chip's border. */
@@ -18007,6 +18851,10 @@ export type CustomCssProperties = {
18007
18851
  "--heatmap-cell-size"?: (string) | undefined;
18008
18852
  /** Space between cells. Zero draws one continuous field. */
18009
18853
  "--heatmap-gap"?: (string) | undefined;
18854
+ /** The color of the ring on a selected cell, under `selection-mode`. */
18855
+ "--heatmap-selected-color"?: (string) | undefined;
18856
+ /** How thick the ring on a selected cell is. */
18857
+ "--heatmap-selected-width"?: (string) | undefined;
18010
18858
  /** The weakest step of the magnitude ramp, used by `tones="1 …"`. */
18011
18859
  "--heatmap-tone-1"?: (string) | undefined;
18012
18860
  /** The second step of the magnitude ramp. */
@@ -18039,6 +18887,12 @@ export type CustomCssProperties = {
18039
18887
  "--icon-size"?: (string) | undefined;
18040
18888
  /** The aspect ratio of the box, such as `16 / 9`. */
18041
18889
  "--image-aspect"?: (string) | undefined;
18890
+ /** How long the picture takes to fade in once it loads. `0s` shows it at once. */
18891
+ "--image-fade-duration"?: (string) | undefined;
18892
+ /** The background behind the fallback. Defaults to the placeholder's. */
18893
+ "--image-fallback-background-color"?: (string) | undefined;
18894
+ /** The color of the fallback's text. */
18895
+ "--image-fallback-color"?: (string) | undefined;
18042
18896
  /** How the image fills the box, as an `object-fit` value. */
18043
18897
  "--image-fit"?: (string) | undefined;
18044
18898
  /** The background behind the placeholder and the fallback. */
@@ -18059,16 +18913,34 @@ export type CustomCssProperties = {
18059
18913
  "--input-size"?: (string) | undefined;
18060
18914
  /** The fill of the key. */
18061
18915
  "--kbd-background-color"?: (string) | undefined;
18916
+ /** The height of a key, and the least width of one, in `em` of the text around it. */
18917
+ "--kbd-block-size"?: (string) | undefined;
18062
18918
  /** The color of the key's border and its bottom edge. */
18063
18919
  "--kbd-border-color"?: (string) | undefined;
18920
+ /** The color of the key's label. */
18921
+ "--kbd-color"?: (string) | undefined;
18922
+ /** The face of the key's label. Monospaced by default. */
18923
+ "--kbd-font-family"?: (string) | undefined;
18924
+ /** The size of the key's label, in `em` of the text around it. */
18925
+ "--kbd-font-size"?: (string) | undefined;
18926
+ /** The weight of the key's label. */
18927
+ "--kbd-font-weight"?: (string) | undefined;
18064
18928
  /** The space between two keys of a chord under `caps`. */
18065
18929
  "--kbd-gap"?: (string) | undefined;
18930
+ /** The space either side of the key's label. */
18931
+ "--kbd-padding-inline"?: (string) | undefined;
18932
+ /** How far the key's corners are rounded. */
18933
+ "--kbd-radius"?: (string) | undefined;
18066
18934
  /** The color of the `+` between two keys of a chord under `caps`. */
18067
18935
  "--kbd-separator-color"?: (string) | undefined;
18936
+ /** The color of the series names. */
18937
+ "--legend-color"?: (string) | undefined;
18068
18938
  /** The direction the entries run: `row`, which wraps, or `column`. */
18069
18939
  "--legend-direction"?: (string) | undefined;
18070
18940
  /** The space between a swatch and its name. */
18071
18941
  "--legend-entry-gap"?: (string) | undefined;
18942
+ /** The type size of the series names. */
18943
+ "--legend-font-size"?: (string) | undefined;
18072
18944
  /** The space between entries. */
18073
18945
  "--legend-gap"?: (string) | undefined;
18074
18946
  /** How strongly a hidden series' entry is drawn, under `toggles`. */
@@ -18109,6 +18981,8 @@ export type CustomCssProperties = {
18109
18981
  "--line-chart-band-color"?: (string) | undefined;
18110
18982
  /** Height of the drawing. */
18111
18983
  "--line-chart-block-size"?: (string) | undefined;
18984
+ /** The dash pattern of a series `dashed` names, as `stroke-dasharray` takes it. */
18985
+ "--line-chart-dash"?: (string) | undefined;
18112
18986
  /** Space between the drawing and its labels. */
18113
18987
  "--line-chart-gap"?: (string) | undefined;
18114
18988
  /** Color of the rules drawn across the plot under `gridlines`. */
@@ -18153,6 +19027,8 @@ export type CustomCssProperties = {
18153
19027
  "--listbox-background-color"?: (string) | undefined;
18154
19028
  /** The panel's border, as a shorthand. Set it to `none` when the list is already inside a panel. */
18155
19029
  "--listbox-border"?: (string) | undefined;
19030
+ /** How narrow a column may be with `layout="grid"`. As many columns as fit are drawn. Defaults to `8rem`. */
19031
+ "--listbox-column-min-inline-size"?: (string) | undefined;
18156
19032
  /** The color of the line shown while `load-error` is set. */
18157
19033
  "--listbox-error-color"?: (string) | undefined;
18158
19034
  /** Maximum height of the list before it scrolls. */
@@ -18203,12 +19079,32 @@ export type CustomCssProperties = {
18203
19079
  "--map-position-fill"?: (string) | undefined;
18204
19080
  /** The point's width. */
18205
19081
  "--map-position-size"?: (string) | undefined;
19082
+ /** The rule above the map credit, under the map. */
19083
+ "--map-attribution-border-color"?: (string) | undefined;
19084
+ /** The color of the map credit. */
19085
+ "--map-attribution-color"?: (string) | undefined;
19086
+ /** The size of the map credit's text. */
19087
+ "--map-attribution-font-size"?: (string) | undefined;
18206
19088
  /** The color behind the map while tiles load. */
18207
19089
  "--map-background-color"?: (string) | undefined;
18208
19090
  /** The frame's height, as a length. Ignored with `fill`, where the container decides it. */
18209
19091
  "--map-block-size"?: (string) | undefined;
18210
19092
  /** The frame's border color. */
18211
19093
  "--map-border-color"?: (string) | undefined;
19094
+ /** The fill of the pressed 3D button and the ring around the chosen map type and each shown layer in the layers menu. */
19095
+ "--map-chosen-color"?: (string) | undefined;
19096
+ /** The space between the map types and the layers in the layers menu. */
19097
+ "--map-layers-menu-gap"?: (string) | undefined;
19098
+ /** The width of the layers menu. */
19099
+ "--map-layers-menu-inline-size"?: (string) | undefined;
19100
+ /** The space inside the edge of the layers menu. */
19101
+ "--map-layers-menu-padding"?: (string) | undefined;
19102
+ /** The north half of the compass needle. */
19103
+ "--map-needle-north-color"?: (string) | undefined;
19104
+ /** The south half of the compass needle. */
19105
+ "--map-needle-south-color"?: (string) | undefined;
19106
+ /** The frame's corners. */
19107
+ "--map-radius"?: (string) | undefined;
18212
19108
  /** How far the needle turns to point north, as an angle. The frame writes it from `bearing`. */
18213
19109
  "--map-needle-turn"?: (string) | undefined;
18214
19110
  /** The color of the casing under the route. */
@@ -18287,6 +19183,10 @@ export type CustomCssProperties = {
18287
19183
  "--menu-min-inline-size"?: (string) | undefined;
18288
19184
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it. */
18289
19185
  "--menu-shadow"?: (string) | undefined;
19186
+ /** The trigger's width, written on the panel while it is open, as in `min-inline-size: var(--floating-anchor-inline-size)`. Read it; a value set here is written over. */
19187
+ "--floating-anchor-inline-size"?: (string) | undefined;
19188
+ /** The room between the panel and the edge of the screen it opens toward, written on the panel while it is open. Read it; a value set here is written over. */
19189
+ "--floating-available-block-size"?: (string) | undefined;
18290
19190
  /** Color of the heading. */
18291
19191
  "--menu-section-heading-color"?: (string) | undefined;
18292
19192
  /** The fill color. Overrides the band's tone. */
@@ -18309,6 +19209,12 @@ export type CustomCssProperties = {
18309
19209
  "--meter-track-color"?: (string) | undefined;
18310
19210
  /** How long the fill takes to move to a new reading, and to change its color. `0s` moves it at once. */
18311
19211
  "--meter-transition-duration"?: (string) | undefined;
19212
+ /** The color of the reading shown under `show-value`. */
19213
+ "--meter-value-color"?: (string) | undefined;
19214
+ /** The space between the bar and the reading under `show-value`. */
19215
+ "--meter-value-gap"?: (string) | undefined;
19216
+ /** The type size of the reading shown under `show-value`. */
19217
+ "--meter-value-size"?: (string) | undefined;
18312
19218
  /** Where a bound sits on the arc, as a length along it. */
18313
19219
  "--meter-along"?: (string) | undefined;
18314
19220
  /** Where a bound sits on a linear track, as a percentage. */
@@ -18375,6 +19281,8 @@ export type CustomCssProperties = {
18375
19281
  "--notifications-unread-offset"?: (string) | undefined;
18376
19282
  /** Corner radius of the unread mark, which can turn it into a dot. */
18377
19283
  "--notifications-unread-radius"?: (string) | undefined;
19284
+ /** The color of the `error` line. */
19285
+ "--notifications-error-color"?: (string) | undefined;
18378
19286
  /** How tall the feed may get before the list scrolls. */
18379
19287
  "--notifications-max-block-size"?: (string) | undefined;
18380
19288
  /** Width of the media column that every item keeps when any item in the feed has media. */
@@ -18425,29 +19333,93 @@ export type CustomCssProperties = {
18425
19333
  "--option-padding"?: (string) | undefined;
18426
19334
  /** The corner radius of the row. A listbox and a select remove it. */
18427
19335
  "--option-radius"?: (string) | undefined;
19336
+ /** The rule's color. */
19337
+ "--option-separator-color"?: (string) | undefined;
19338
+ /** The space above and below the rule. */
19339
+ "--option-separator-space"?: (string) | undefined;
19340
+ /** The rule's thickness. */
19341
+ "--option-separator-thickness"?: (string) | undefined;
18428
19342
  /** The color of the nearest dots. Defaults to `currentColor`. */
18429
19343
  "--orb-color"?: (string) | undefined;
18430
19344
  /** The color the farthest dots fade toward. Defaults to the page's background. */
18431
19345
  "--orb-ground"?: (string) | undefined;
18432
19346
  /** The diameter. Overrides `size`. */
18433
19347
  "--orb-size"?: (string) | undefined;
19348
+ /** The color of the heading in the `heading` slot. */
19349
+ "--outline-heading-color"?: (string) | undefined;
18434
19350
  /** How far each level is inset from the one above. */
18435
19351
  "--outline-indent"?: (string) | undefined;
19352
+ /** The color of the mark that moves to the section in view. */
19353
+ "--outline-indicator-color"?: (string) | undefined;
19354
+ /** The color of a link. */
19355
+ "--outline-link-color"?: (string) | undefined;
19356
+ /** The color of the link to the section in view. */
19357
+ "--outline-link-current-color"?: (string) | undefined;
19358
+ /** The weight of the link to the section in view. */
19359
+ "--outline-link-current-weight"?: (string) | undefined;
19360
+ /** The size of a link's text. */
19361
+ "--outline-link-font-size"?: (string) | undefined;
19362
+ /** The fill behind a link under the pointer. */
19363
+ "--outline-link-hover-background-color"?: (string) | undefined;
19364
+ /** The color of a link under the pointer. */
19365
+ "--outline-link-hover-color"?: (string) | undefined;
19366
+ /** The space above and below a link's text. */
19367
+ "--outline-link-padding-block"?: (string) | undefined;
19368
+ /** The space either side of a link's text, before any indent. */
19369
+ "--outline-link-padding-inline"?: (string) | undefined;
19370
+ /** The corner radius of a link's hover fill. */
19371
+ "--outline-link-radius"?: (string) | undefined;
18436
19372
  /** The width of the gutter that holds the line and the moving mark. */
18437
19373
  "--outline-rail"?: (string) | undefined;
19374
+ /** The color of the line down the leading edge. */
19375
+ "--outline-rule-color"?: (string) | undefined;
19376
+ /** Edge of the page you are on. */
19377
+ "--pagination-current-border-color"?: (string) | undefined;
18438
19378
  /** Fill behind the page you are on. */
18439
19379
  "--pagination-current-color"?: (string) | undefined;
19380
+ /** Weight of the number of the page you are on. */
19381
+ "--pagination-current-font-weight"?: (string) | undefined;
19382
+ /** Color of the number of the page you are on. */
19383
+ "--pagination-current-foreground-color"?: (string) | undefined;
19384
+ /** Color of a first, previous, next or last control with nowhere to go. */
19385
+ "--pagination-disabled-foreground-color"?: (string) | undefined;
19386
+ /** How faint a control with nowhere to go is drawn. */
19387
+ "--pagination-disabled-opacity"?: (string) | undefined;
19388
+ /** Color of the control that stands in for hidden pages. */
19389
+ "--pagination-ellipsis-foreground-color"?: (string) | undefined;
19390
+ /** Size of the numbers and the status text. */
19391
+ "--pagination-font-size"?: (string) | undefined;
19392
+ /** Weight of the numbers and the status text. */
19393
+ "--pagination-font-weight"?: (string) | undefined;
19394
+ /** Color of the numbers and the marks on every control. */
19395
+ "--pagination-foreground-color"?: (string) | undefined;
18440
19396
  /** Space between one control and the next. */
18441
19397
  "--pagination-gap"?: (string) | undefined;
18442
19398
  /** Fill behind a control under the pointer. */
18443
19399
  "--pagination-hover-color"?: (string) | undefined;
19400
+ /** Color of a control's number or mark under the pointer. */
19401
+ "--pagination-hover-foreground-color"?: (string) | undefined;
19402
+ /** Size of the mark on a first, previous, next or last control, drawn or slotted. */
19403
+ "--pagination-icon-size"?: (string) | undefined;
19404
+ /** Space either side of a control's number or mark. */
19405
+ "--pagination-padding"?: (string) | undefined;
19406
+ /** Corner radius of every control in the row. */
19407
+ "--pagination-radius"?: (string) | undefined;
18444
19408
  /** The box every control in the row takes. */
18445
19409
  "--pagination-size"?: (string) | undefined;
19410
+ /** Color of the text that says which page you are on, in `compact`. */
19411
+ "--pagination-status-foreground-color"?: (string) | undefined;
19412
+ /** Space between the label and the select. */
19413
+ "--pagination-size-gap"?: (string) | undefined;
19414
+ /** Color of the text. */
19415
+ "--pagination-summary-foreground-color"?: (string) | undefined;
19416
+ /** The color of the caret drawn in an empty box. Without it, the character color applies. */
19417
+ "--pin-input-caret-color"?: (string) | undefined;
18446
19418
  /** Fill behind each box. */
18447
19419
  "--pin-input-cell-background-color"?: (string) | undefined;
18448
19420
  /** Edge of each box at rest. Hover, focus and an error still draw their own. */
18449
19421
  "--pin-input-cell-border-color"?: (string) | undefined;
18450
- /** Edge of the box holding focus. */
19422
+ /** Edge of the box the caret is in. */
18451
19423
  "--pin-input-cell-border-color-focus"?: (string) | undefined;
18452
19424
  /** The color of a typed character. */
18453
19425
  "--pin-input-cell-color"?: (string) | undefined;
@@ -18459,6 +19431,8 @@ export type CustomCssProperties = {
18459
19431
  "--pin-input-cell-size"?: (string) | undefined;
18460
19432
  /** The space between one box and the next. */
18461
19433
  "--pin-input-gap"?: (string) | undefined;
19434
+ /** The color of the `placeholder` text in an empty box. */
19435
+ "--pin-input-placeholder-color"?: (string) | undefined;
18462
19436
  /** The color of the text `format` draws between boxes. */
18463
19437
  "--pin-input-separator-color"?: (string) | undefined;
18464
19438
  /** Size of the point drawn with `arrow`. Tooltip's point is the same size. */
@@ -18483,6 +19457,8 @@ export type CustomCssProperties = {
18483
19457
  "--progress-label-gap"?: (string) | undefined;
18484
19458
  /** Type size of a slotted label. */
18485
19459
  "--progress-label-size"?: (string) | undefined;
19460
+ /** How far the ends of the bar are rounded. */
19461
+ "--progress-radius"?: (string) | undefined;
18486
19462
  /** Diameter of the ring. */
18487
19463
  "--progress-ring-size"?: (string) | undefined;
18488
19464
  /** Thickness of the ring's stroke. */
@@ -18493,18 +19469,30 @@ export type CustomCssProperties = {
18493
19469
  "--progress-track-color"?: (string) | undefined;
18494
19470
  /** How long the fill takes to move to a new value. `0s` moves it at once. */
18495
19471
  "--progress-transition-duration"?: (string) | undefined;
19472
+ /** The color of the value shown under `show-value`. */
19473
+ "--progress-value-color"?: (string) | undefined;
19474
+ /** The space between the bar and the value under `show-value`. */
19475
+ "--progress-value-gap"?: (string) | undefined;
19476
+ /** The type size of the value shown under `show-value`. */
19477
+ "--progress-value-size"?: (string) | undefined;
18496
19478
  /** The value as a fraction of the range, 0 to 1. Pinned to 1 while indeterminate. */
18497
19479
  "--progress-fraction"?: (string) | undefined;
18498
19480
  /** The fill behind the modules, including the quiet zone and the logo's box. */
18499
19481
  "--qr-code-background-color"?: (string) | undefined;
18500
19482
  /** Color of the dark modules. Defaults to the dark media ink, which is the same in both color schemes so the code scans. */
18501
19483
  "--qr-code-color"?: (string) | undefined;
19484
+ /** The space around the fallback inside the square. */
19485
+ "--qr-code-fallback-padding"?: (string) | undefined;
18502
19486
  /** Color of the three corner squares. Defaults to the color of the modules. */
18503
19487
  "--qr-code-finder-color"?: (string) | undefined;
18504
19488
  /** The clear space around the center logo. */
18505
19489
  "--qr-code-logo-padding"?: (string) | undefined;
19490
+ /** The corner radius of the logo's box. */
19491
+ "--qr-code-logo-radius"?: (string) | undefined;
18506
19492
  /** How much of the center a logo can cover. Defaults to `27%`, which `H` correction allows, because it can lose thirty percent. */
18507
19493
  "--qr-code-logo-size"?: (string) | undefined;
19494
+ /** The corner radius of the square. */
19495
+ "--qr-code-radius"?: (string) | undefined;
18508
19496
  /** How wide the square is. Defaults to `12rem`. */
18509
19497
  "--qr-code-size"?: (string) | undefined;
18510
19498
  /** Color of the quoted text. */
@@ -18561,23 +19549,23 @@ export type CustomCssProperties = {
18561
19549
  "--sandbox-separator-color"?: (string) | undefined;
18562
19550
  /** Fill behind the source. */
18563
19551
  "--sandbox-source-background-color"?: (string) | undefined;
18564
- /** Color of a `callable` run, under `highlight`. Defaults to `--helix-color-syntax-callable`. */
19552
+ /** Color of a `callable` run, under `tokenize`. Defaults to `--helix-color-syntax-callable`. */
18565
19553
  "--sandbox-source-callable-color"?: (string) | undefined;
18566
- /** Color of a `comment` run, under `highlight`. Defaults to `--helix-color-syntax-comment`. */
19554
+ /** Color of a `comment` run, under `tokenize`. Defaults to `--helix-color-syntax-comment`. */
18567
19555
  "--sandbox-source-comment-color"?: (string) | undefined;
18568
- /** Color of a `constant` run, under `highlight`. Defaults to `--helix-color-syntax-constant`. */
19556
+ /** Color of a `constant` run, under `tokenize`. Defaults to `--helix-color-syntax-constant`. */
18569
19557
  "--sandbox-source-constant-color"?: (string) | undefined;
18570
- /** Color of an `invalid` run, under `highlight`. Defaults to `--helix-color-syntax-invalid`. */
19558
+ /** Color of an `invalid` run, under `tokenize`. Defaults to `--helix-color-syntax-invalid`. */
18571
19559
  "--sandbox-source-invalid-color"?: (string) | undefined;
18572
- /** Color of a `keyword` run, under `highlight`. Defaults to `--helix-color-syntax-keyword`. */
19560
+ /** Color of a `keyword` run, under `tokenize`. Defaults to `--helix-color-syntax-keyword`. */
18573
19561
  "--sandbox-source-keyword-color"?: (string) | undefined;
18574
19562
  /** Minimum height of the pane. */
18575
19563
  "--sandbox-source-min-block-size"?: (string) | undefined;
18576
- /** Color of a `name` run, under `highlight`. Defaults to `--helix-color-syntax-name`. */
19564
+ /** Color of a `name` run, under `tokenize`. Defaults to `--helix-color-syntax-name`. */
18577
19565
  "--sandbox-source-name-color"?: (string) | undefined;
18578
- /** Color of a `string` run, under `highlight`. Defaults to `--helix-color-syntax-string`. */
19566
+ /** Color of a `string` run, under `tokenize`. Defaults to `--helix-color-syntax-string`. */
18579
19567
  "--sandbox-source-string-color"?: (string) | undefined;
18580
- /** Color of a `tag` run, under `highlight`. Defaults to `--helix-color-syntax-tag`. */
19568
+ /** Color of a `tag` run, under `tokenize`. Defaults to `--helix-color-syntax-tag`. */
18581
19569
  "--sandbox-source-tag-color"?: (string) | undefined;
18582
19570
  /** Color of the bar's text. */
18583
19571
  "--sandbox-status-bar-color"?: (string) | undefined;
@@ -18589,6 +19577,8 @@ export type CustomCssProperties = {
18589
19577
  "--sandbox-toolbar-size"?: (string) | undefined;
18590
19578
  /** Height of the drawing. */
18591
19579
  "--scatter-chart-block-size"?: (string) | undefined;
19580
+ /** Diameter of the largest point under `size-by`. The smallest is `--scatter-chart-point-size`. */
19581
+ "--scatter-chart-bubble-size"?: (string) | undefined;
18592
19582
  /** Space between the drawing and its axes. */
18593
19583
  "--scatter-chart-gap"?: (string) | undefined;
18594
19584
  /** Color of the gridlines across the plot, drawn when `gridlines` is set. */
@@ -18603,6 +19593,8 @@ export type CustomCssProperties = {
18603
19593
  "--scatter-chart-trend-dash"?: (string) | undefined;
18604
19594
  /** The thickness of a line of best fit, under `trend`. */
18605
19595
  "--scatter-chart-trend-width"?: (string) | undefined;
19596
+ /** How large a point is drawn under `size-by`, from 0 to 1, by area. The component writes it, and the stylesheet that sizes the point reads it. */
19597
+ "--chart-point-weight"?: (string) | undefined;
18606
19598
  /** A point's horizontal position, as a percentage. The component writes it. */
18607
19599
  "--chart-point-x"?: (string) | undefined;
18608
19600
  /** A point's vertical position, as a percentage from the top. The component writes it. */
@@ -18695,12 +19687,18 @@ export type CustomCssProperties = {
18695
19687
  "--slider-thumb-ring-color"?: (string) | undefined;
18696
19688
  /** The thumb's size across the track. It equals the length by default, which makes the thumb round. */
18697
19689
  "--slider-thumb-size"?: (string) | undefined;
19690
+ /** The fill of the bubble each thumb shows its value in, under `tooltip`. */
19691
+ "--slider-tooltip-background-color"?: (string) | undefined;
19692
+ /** The color of the value in a thumb's bubble, under `tooltip`. */
19693
+ "--slider-tooltip-color"?: (string) | undefined;
18698
19694
  /** The color of the unfilled part of the track. */
18699
19695
  "--slider-track-color"?: (string) | undefined;
18700
19696
  /** An image for the whole track, such as a gradient for a slider whose value is a color. */
18701
19697
  "--slider-track-image"?: (string) | undefined;
18702
19698
  /** The thickness of the track. It matches the progress bar's size by default. */
18703
19699
  "--slider-track-size"?: (string) | undefined;
19700
+ /** Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part. */
19701
+ "--slider-at"?: (string) | undefined;
18704
19702
  /** The value as a fraction of the range, 0 to 1. */
18705
19703
  "--slider-fraction"?: (string) | undefined;
18706
19704
  /** Where the filled span starts, as a fraction of the track, 0 to 1: a range's lower thumb, or a single thumb's `origin`. */
@@ -18727,6 +19725,10 @@ export type CustomCssProperties = {
18727
19725
  "--sparkline-mark-ring-color"?: (string) | undefined;
18728
19726
  /** Size of the dot on the reading a pointer or a key rests on, and of the `marks` dots. */
18729
19727
  "--sparkline-mark-size"?: (string) | undefined;
19728
+ /** Fill of the band `range` draws. Without it, the line's color. */
19729
+ "--sparkline-range-color"?: (string) | undefined;
19730
+ /** Opacity of the band `range` draws. */
19731
+ "--sparkline-range-opacity"?: (string) | undefined;
18730
19732
  /** Ground of the reading written above the dot. */
18731
19733
  "--sparkline-readout-background-color"?: (string) | undefined;
18732
19734
  /** Color of the reading written above the dot. */
@@ -18735,6 +19737,10 @@ export type CustomCssProperties = {
18735
19737
  "--sparkline-readout-font-size"?: (string) | undefined;
18736
19738
  /** Thickness of the line, overriding `weight`. */
18737
19739
  "--sparkline-width"?: (string) | undefined;
19740
+ /** Color of the group's name. */
19741
+ "--speed-dial-group-label-color"?: (string) | undefined;
19742
+ /** Size of the group's name. */
19743
+ "--speed-dial-group-label-font-size"?: (string) | undefined;
18738
19744
  /** Fill of the round icon. */
18739
19745
  "--speed-dial-item-background-color"?: (string) | undefined;
18740
19746
  /** Color of the icon. */
@@ -18751,6 +19757,8 @@ export type CustomCssProperties = {
18751
19757
  "--speed-dial-label-color"?: (string) | undefined;
18752
19758
  /** Size of the action's name. */
18753
19759
  "--speed-dial-label-font-size"?: (string) | undefined;
19760
+ /** Color of the shortcut drawn after the action's name. */
19761
+ "--speed-dial-shortcut-color"?: (string) | undefined;
18754
19762
  /** Fill of the trigger the dial draws when none is slotted. */
18755
19763
  "--speed-dial-background-color"?: (string) | undefined;
18756
19764
  /** Color of that trigger's icon. */
@@ -18775,10 +19783,18 @@ export type CustomCssProperties = {
18775
19783
  "--splitter-grip-color"?: (string) | undefined;
18776
19784
  /** How far the grip runs along the divider. */
18777
19785
  "--splitter-grip-length"?: (string) | undefined;
19786
+ /** How thick the grip is, across the divider. */
19787
+ "--splitter-grip-thickness"?: (string) | undefined;
19788
+ /** Color of a mark slotted into `handle`. */
19789
+ "--splitter-handle-color"?: (string) | undefined;
18778
19790
  /** Color of the divider's target under the pointer. */
18779
19791
  "--splitter-hover-color"?: (string) | undefined;
19792
+ /** How thick the line is under the pointer, with focus and while it moves. */
19793
+ "--splitter-hover-thickness"?: (string) | undefined;
18780
19794
  /** Width of the area you can drag. */
18781
19795
  "--splitter-target"?: (string) | undefined;
19796
+ /** How thick the line is at rest. */
19797
+ "--splitter-thickness"?: (string) | undefined;
18782
19798
  /** Where a nested splitter crosses this one, as a percentage. */
18783
19799
  "--splitter-corner-at"?: (string) | undefined;
18784
19800
  /** Where the divider sits, as a percentage of the box. */
@@ -18843,6 +19859,8 @@ export type CustomCssProperties = {
18843
19859
  "--table-title-text"?: (string) | undefined;
18844
19860
  /** The column track list the table works out from its columns. The component writes it inline on the element that reads it, so setting it has no effect. Set `columns` to change the tracks. */
18845
19861
  "--table-template"?: (string) | undefined;
19862
+ /** The wash across the cells of a row with `href` under the pointer. */
19863
+ "--table-row-hover-background-color"?: (string) | undefined;
18846
19864
  /** The space between the tab row and the panel's content. */
18847
19865
  "--tabs-panel-padding-block-start"?: (string) | undefined;
18848
19866
  /** The space between tabs. */
@@ -18887,8 +19905,12 @@ export type CustomCssProperties = {
18887
19905
  "--tag-border-color"?: (string) | undefined;
18888
19906
  /** How strongly a `disabled` tag is drawn. */
18889
19907
  "--tag-disabled-opacity"?: (string) | undefined;
19908
+ /** The weight of the label. */
19909
+ "--tag-font-weight"?: (string) | undefined;
18890
19910
  /** The label color. */
18891
19911
  "--tag-foreground-color"?: (string) | undefined;
19912
+ /** The space between the category, the label and the remove button. */
19913
+ "--tag-gap"?: (string) | undefined;
18892
19914
  /** The corner radius of the tag. */
18893
19915
  "--tag-radius"?: (string) | undefined;
18894
19916
  /** The typeface. Overrides the ramp's. */
@@ -18927,16 +19949,30 @@ export type CustomCssProperties = {
18927
19949
  "--time-input-segment-placeholder-color"?: (string) | undefined;
18928
19950
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content. */
18929
19951
  "--time-input-shadow"?: (string) | undefined;
19952
+ /** The space between the wheels. None by default. */
19953
+ "--time-picker-columns-gap"?: (string) | undefined;
19954
+ /** The color of the message under the times, while `feedback` is set. */
19955
+ "--time-picker-feedback-color"?: (string) | undefined;
19956
+ /** Fill on a wheel's row under the pointer or the keyboard. */
19957
+ "--time-picker-hover-background-color"?: (string) | undefined;
19958
+ /** The ring around the chosen time, or around the times while nothing is chosen, while the picker is invalid. */
19959
+ "--time-picker-invalid-color"?: (string) | undefined;
18930
19960
  /** How tall the list is before it scrolls. */
18931
19961
  "--time-picker-list-block-size"?: (string) | undefined;
19962
+ /** The corners of the mark on a wheel's row. */
19963
+ "--time-picker-mark-radius"?: (string) | undefined;
18932
19964
  /** Fill behind the times inside a range. */
18933
19965
  "--time-picker-range-color"?: (string) | undefined;
18934
19966
  /** Height and minimum width of one row in a wheel. */
18935
19967
  "--time-picker-row-size"?: (string) | undefined;
18936
19968
  /** Fill on the chosen row of a wheel. */
18937
19969
  "--time-picker-selected-color"?: (string) | undefined;
19970
+ /** Ink on the chosen row of a wheel. */
19971
+ "--time-picker-selected-foreground-color"?: (string) | undefined;
18938
19972
  /** How tall a wheel is. Five rows by default. */
18939
19973
  "--time-picker-wheel-block-size"?: (string) | undefined;
19974
+ /** The mask that fades a wheel toward its ends, as a `mask-image`. Set `none` for no fade. */
19975
+ "--time-picker-wheel-mask"?: (string) | undefined;
18940
19976
  /** The color of the heading. */
18941
19977
  "--timeline-group-heading-color"?: (string) | undefined;
18942
19978
  /** How round the mark is. Zero is a square, and half its size is a disc. */
@@ -18947,14 +19983,32 @@ export type CustomCssProperties = {
18947
19983
  "--timeline-rail-size"?: (string) | undefined;
18948
19984
  /** Space between one entry and the next. */
18949
19985
  "--timeline-gap"?: (string) | undefined;
19986
+ /** The panel's color. Follows `--helix-color-surface-overlay`. */
19987
+ "--toast-background-color"?: (string) | undefined;
18950
19988
  /** Color of the panel's edge. */
18951
19989
  "--toast-border-color"?: (string) | undefined;
18952
19990
  /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
18953
19991
  "--toast-border-width"?: (string) | undefined;
19992
+ /** Color of the message's text. */
19993
+ "--toast-color"?: (string) | undefined;
19994
+ /** Color of the line in the `description` slot, under the heading. */
19995
+ "--toast-description-color"?: (string) | undefined;
19996
+ /** Color of the dismiss control's mark at rest. */
19997
+ "--toast-dismiss-color"?: (string) | undefined;
19998
+ /** Size of the message's text. The first line's controls and mark stay centered on it. */
19999
+ "--toast-font-size"?: (string) | undefined;
20000
+ /** Weight of the heading in the `heading` slot. */
20001
+ "--toast-heading-weight"?: (string) | undefined;
18954
20002
  /** Space between the message's edge and its contents. */
18955
20003
  "--toast-item-padding"?: (string) | undefined;
20004
+ /** Rounding of the panel's corners. */
20005
+ "--toast-radius"?: (string) | undefined;
18956
20006
  /** Shadow under the panel. Follows `--helix-shadow-floating`. A floating surface can sit over any content, so it has a shadow by default. */
18957
20007
  "--toast-shadow"?: (string) | undefined;
20008
+ /** Thickness of the bar that counts down a timed message. */
20009
+ "--toast-timer-size"?: (string) | undefined;
20010
+ /** Color of the mark and the countdown bar. Unset, each `tone` takes its own color, so set it per tone, as in `helix-toast-item[tone="danger"]`. */
20011
+ "--toast-tone-color"?: (string) | undefined;
18958
20012
  /** How long this message stays, in milliseconds, for a progress hint. */
18959
20013
  "--toast-duration"?: (string) | undefined;
18960
20014
  /** How far a swipe has moved the message across, in pixels, toward the right. */
@@ -18983,6 +20037,8 @@ export type CustomCssProperties = {
18983
20037
  "--toggle-item-color-selected"?: (string) | undefined;
18984
20038
  /** Space either side of an item's label. */
18985
20039
  "--toggle-item-padding-inline"?: (string) | undefined;
20040
+ /** How the controls line up across the toolbar's axis. Centered unless set; `stretch` makes a vertical toolbar's controls as wide as it is. */
20041
+ "--toolbar-align"?: (string) | undefined;
18986
20042
  /** The fill behind the controls. Transparent unless set. */
18987
20043
  "--toolbar-background-color"?: (string) | undefined;
18988
20044
  /** The color of the toolbar's edge, once it has a width. */
@@ -18995,16 +20051,22 @@ export type CustomCssProperties = {
18995
20051
  "--toolbar-padding"?: (string) | undefined;
18996
20052
  /** The corner radius of the toolbar's fill. */
18997
20053
  "--toolbar-radius"?: (string) | undefined;
20054
+ /** Extra space either side of a `Divider` between controls, along the toolbar's axis. None unless set. */
20055
+ "--toolbar-separator-gap"?: (string) | undefined;
18998
20056
  /** The size of the arrow on the bubble's edge. */
18999
20057
  "--tooltip-arrow-size"?: (string) | undefined;
19000
20058
  /** The blur behind a `frosted` or `glass` bubble. */
19001
20059
  "--tooltip-backdrop"?: (string) | undefined;
19002
20060
  /** The fill of the bubble. */
19003
20061
  "--tooltip-background-color"?: (string) | undefined;
20062
+ /** The edge of a `frosted` or `glass` bubble, the only kind that draws one. */
20063
+ "--tooltip-border-color"?: (string) | undefined;
19004
20064
  /** The color of the bubble's words. */
19005
20065
  "--tooltip-color"?: (string) | undefined;
19006
20066
  /** The size of the bubble's words. */
19007
20067
  "--tooltip-font-size"?: (string) | undefined;
20068
+ /** The space between two things slotted into the bubble, such as a glyph and its words. */
20069
+ "--tooltip-gap"?: (string) | undefined;
19008
20070
  /** The widest the bubble grows before its text wraps. */
19009
20071
  "--tooltip-max-inline-size"?: (string) | undefined;
19010
20072
  /** The space between the bubble's edge and its words. */
@@ -19091,6 +20153,30 @@ export type CustomCssProperties = {
19091
20153
  "--trend-worse-color"?: (string) | undefined;
19092
20154
  /** The fill behind a row. */
19093
20155
  "--video-playlist-item-background-color"?: (string) | undefined;
20156
+ /** The color of an entry's name. */
20157
+ "--video-playlist-item-color"?: (string) | undefined;
20158
+ /** The fill behind the entry that is playing. */
20159
+ "--video-playlist-item-current-background-color"?: (string) | undefined;
20160
+ /** The color of the bar beside the entry that is playing. */
20161
+ "--video-playlist-item-current-mark-color"?: (string) | undefined;
20162
+ /** The space between the thumbnail and the name. */
20163
+ "--video-playlist-item-gap"?: (string) | undefined;
20164
+ /** The fill behind a row under the pointer. */
20165
+ "--video-playlist-item-hover-background-color"?: (string) | undefined;
20166
+ /** The color of the content in the `meta` slot. */
20167
+ "--video-playlist-item-meta-color"?: (string) | undefined;
20168
+ /** The space above and below a row's content. */
20169
+ "--video-playlist-item-padding-block"?: (string) | undefined;
20170
+ /** The space after a row's content. */
20171
+ "--video-playlist-item-padding-inline-end"?: (string) | undefined;
20172
+ /** The space before a row's content, where the bar beside the playing entry sits. */
20173
+ "--video-playlist-item-padding-inline-start"?: (string) | undefined;
20174
+ /** The corner radius of a row. */
20175
+ "--video-playlist-item-radius"?: (string) | undefined;
20176
+ /** The shape of the thumbnail column. */
20177
+ "--video-playlist-media-aspect-ratio"?: (string) | undefined;
20178
+ /** The corner radius of the thumbnail. */
20179
+ "--video-playlist-media-radius"?: (string) | undefined;
19094
20180
  /** The width of the thumbnail column. */
19095
20181
  "--video-playlist-media-size"?: (string) | undefined;
19096
20182
  /** The color of the trigger. Defaults to the control bar's color. */
@@ -19099,6 +20185,10 @@ export type CustomCssProperties = {
19099
20185
  "--video-playlist-menu-poster"?: (string) | undefined;
19100
20186
  /** The size of the trigger's icon. */
19101
20187
  "--video-playlist-menu-size"?: (string) | undefined;
20188
+ /** The space between the player and the list. */
20189
+ "--video-playlist-gap"?: (string) | undefined;
20190
+ /** The space between the entries. */
20191
+ "--video-playlist-items-gap"?: (string) | undefined;
19102
20192
  /** The grid columns for the player and the list. */
19103
20193
  "--video-playlist-layout"?: (string) | undefined;
19104
20194
  /** The height the list reaches before it scrolls. */
@@ -19197,7 +20287,7 @@ export interface WcToolkitVueGlobalComponents {
19197
20287
  HelixBarChartVueProps,
19198
20288
  HelixBarChartVueEvents
19199
20289
  >;
19200
- /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn, because the size and spacing already set the passage apart. */
20290
+ /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn by default, because the size and spacing already set the passage apart. 'marks' draws one large opening mark over the passage, as a pull quote sets it, in the element's language. */
19201
20291
  "helix-blockquote": DefineCustomElement<
19202
20292
  HelixBlockquote,
19203
20293
  HelixBlockquoteVueProps,
@@ -19215,7 +20305,7 @@ export interface WcToolkitVueGlobalComponents {
19215
20305
  HelixBreadcrumbsVueProps,
19216
20306
  HelixBreadcrumbsVueEvents
19217
20307
  >;
19218
- /** Joins the buttons into one shape: the outer corners keep their radius, the inner corners lose it, and adjacent borders collapse into one line. The joining rule is in the base layer, paired with 'data-button' like the button's own box, because the corner is on the control inside each button's shadow root, where this component's styles cannot reach. The same rule works for your own anchor styled as a button. The buttons take their height from the region, so set 'data-density' on the group to make every button in it smaller or larger together. */
20308
+ /** Joins the buttons into one shape: the outer corners keep their radius, the inner corners lose it, and adjacent borders collapse into one line. A Helix button's corners are on the control inside its shadow root, where this component's styles cannot reach, so the group flattens them through the button's own '--button-radius-*' hooks. A native '<button>' and your own anchor styled with 'data-button' join through rules in the base layer, because a page rule setting their radius would beat any rule in here. The buttons take their height from the region, so 'size' makes every button in the group smaller or larger together, as 'data-density' on the group does, and a button's own size still wins. A native '<button>' in a sized group takes the height and the text size. With 'selection-mode', a pressed button takes the solid fill: '--button-group-pressed-background-color' behind it and '--button-group-pressed-color' for its words, set on the group or above it. */
19219
20309
  "helix-button-group": DefineCustomElement<
19220
20310
  HelixButtonGroup,
19221
20311
  HelixButtonGroupVueProps,
@@ -19227,7 +20317,7 @@ export interface WcToolkitVueGlobalComponents {
19227
20317
  HelixButtonVueProps,
19228
20318
  HelixButtonVueEvents
19229
20319
  >;
19230
- /** The background is a tint of the tone's color, mixed with 'color-mix'. A 'neutral' callout is drawn in the muted ink, for a note that reports no status, so it keeps to the palette whatever the brand. A bar on the inline start edge also marks the tone, so it still shows in grayscale and for people who do not distinguish the hues. 'tone' is set on the headless tier and carries the meaning, and this tier draws it. 'separation' is where the box ends: absent is the tint with the bar, 'outlined' an edge with no fill, and 'plain' the bar and the mark alone. The inset and the type follow 'data-density', as the controls around a callout do: set it on a region for tighter or looser callouts, or set '--callout-padding' and '--callout-font-size' on one. */
20320
+ /** The background is a tint of the tone's color, mixed with 'color-mix'. A 'neutral' callout is drawn in the muted ink, for a note that reports no status, so it keeps to the palette whatever the brand. A bar on the inline start edge also marks the tone, so it still shows in grayscale and for people who do not distinguish the hues. 'tone' is set on the headless tier and carries the meaning, and this tier draws it. 'separation' is where the box ends: absent is the tint with the bar, 'outlined' an edge with no fill, and 'plain' the bar and the mark alone. The inset and the type follow 'data-density', as the controls around a callout do: set it on a region for tighter or looser callouts, or on one callout itself, as '<helix-callout data-density="sm">'. That is how one callout is sized, and there is no 'size' beside it. '--callout-padding' and '--callout-font-size' set either to a value of your own. */
19231
20321
  "helix-callout": DefineCustomElement<
19232
20322
  HelixCallout,
19233
20323
  HelixCalloutVueProps,
@@ -19239,7 +20329,7 @@ export interface WcToolkitVueGlobalComponents {
19239
20329
  HelixCanvasEdgeVueProps,
19240
20330
  HelixCanvasEdgeVueEvents
19241
20331
  >;
19242
- /** The card is the host element, because the board writes the card's coordinates onto the host. Before the board places it, the card sits in normal flow. Without JavaScript, the page shows the cards' text in the order it was written. */
20332
+ /** The card is the host element, because the board writes the card's coordinates onto the host. Before the board places it, the card sits in normal flow. Without JavaScript, the page shows the cards' text in the order it was written. On a touch screen, the points and corners of the card with focus take a reach 44 pixels across, so a finger can start a connection from one. */
19243
20333
  "helix-canvas-node": DefineCustomElement<
19244
20334
  HelixCanvasNode,
19245
20335
  HelixCanvasNodeVueProps,
@@ -19359,7 +20449,7 @@ export interface WcToolkitVueGlobalComponents {
19359
20449
  HelixDescriptionListItemVueProps,
19360
20450
  HelixDescriptionListItemVueEvents
19361
20451
  >;
19362
- /** Labels are muted and values use the style of the surrounding text, so the values stand out and the labels help you find them. With 'direction="row"', the labels share one column as wide as the longest label, and the values start on one line beside it. **Below about 22rem of its own width, the row layout stacks** each label above its value. The width is measured on the list, because a details panel can be a sidebar on a wide screen or the whole of a narrow one. Below that width the label column leaves too little room for the values. **For a summary, set 'width="auto"' and 'justify="between"'.** The list is as wide as its widest pair, labels sit on the start edge, and values sit on the end edge in tabular figures, as in a set of totals. */
20452
+ /** Labels are muted and values use the style of the surrounding text, so the values stand out and the labels help you find them. With 'direction="row"', the labels share one column as wide as the longest label, and the values start on one line beside it. **Below about 22rem of its own width, the row layout stacks** each label above its value. The width is measured on the list, because a details panel can be a sidebar on a wide screen or the whole of a narrow one. Below that width the label column leaves too little room for the values. **For a summary, set 'width="auto"' and 'justify="between"'.** The list is as wide as its widest pair, labels sit on the start edge, and values sit on the end edge in tabular figures, as in a set of totals. **For a rule between pairs, set 'divided'.** The rule sits in the middle of the gap, so the pairs keep the same room on either side of it. */
19363
20453
  "helix-description-list": DefineCustomElement<
19364
20454
  HelixDescriptionList,
19365
20455
  HelixDescriptionListVueProps,
@@ -19443,7 +20533,7 @@ export interface WcToolkitVueGlobalComponents {
19443
20533
  HelixFilterInputVueProps,
19444
20534
  HelixFilterInputVueEvents
19445
20535
  >;
19446
- /** The host is the flex container and its only child is a slot, so '<helix-flex>' adds no box beyond the '<div>' it replaces. There is no separate Stack component. For a stack, set 'direction="column"'. 'gap' takes a space token name, so spacing stays on the scale. 'row-gap' and 'column-gap' set one axis each and win over 'gap' on theirs. 'layout' sets up one of three common patterns, and any attribute you also write wins over the pattern's own value: - 'cluster': items in a wrapping row, centered on one line, such as tags. - 'split': the first item at the start, the last at the end, and any between them spaced evenly, such as a title and its actions. Put several actions in a flex of their own so they stay together at the end. Wraps when there is no room. - 'flank' and 'flank-end': a fixed item beside one that takes the rest, such as an icon and its text, or a field and its button. The item that takes the rest stays at least '--flex-flank-min' wide, and the pair stacks once it cannot. - 'switch': the items share a row while the flex is at least '--flex-switch-at' wide, and each takes a line of its own below that, such as cards that stack on a narrow screen. It answers the width the flex is given, wherever it sits, with no breakpoint to maintain. Flex is presentation only, so it has no headless tier. */
20536
+ /** The host is the flex container and its only child is a slot, so '<helix-flex>' adds no box beyond the '<div>' it replaces. There is no separate Stack component. For a stack, set 'direction="column"'. 'gap' takes a space token name, so spacing stays on the scale. 'row-gap' and 'column-gap' set one axis each and win over 'gap' on theirs. 'layout' sets up a common pattern, and any attribute you also write wins over the pattern's own value: - 'cluster': items in a wrapping row, centered on one line, such as tags. - 'split': the first item at the start, the last at the end, and any between them spaced evenly, such as a title and its actions. Put several actions in a flex of their own so they stay together at the end. Wraps when there is no room. - 'flank' and 'flank-end': a fixed item beside one that takes the rest, such as an icon and its text, or a field and its button. The item that takes the rest stays at least '--flex-flank-min' wide, and the pair stacks once it cannot. - 'switch': the items share a row while the flex is at least '--flex-switch-at' wide, and each takes a line of its own below that, such as cards that stack on a narrow screen. It answers the width the flex is given, wherever it sits, with no breakpoint to maintain. Flex is presentation only, so it has no headless tier. */
19447
20537
  "helix-flex": DefineCustomElement<
19448
20538
  HelixFlex,
19449
20539
  HelixFlexVueProps,
@@ -19617,7 +20707,7 @@ export interface WcToolkitVueGlobalComponents {
19617
20707
  HelixMapTerrainVueProps,
19618
20708
  HelixMapTerrainVueEvents
19619
20709
  >;
19620
- /** Styles the trigger and lays out the panel it opens as a grid of columns. What opens and closes the panel comes from the base class. */
20710
+ /** Styles the trigger and lays out the panel it opens as a grid of columns. What opens and closes the panel comes from the base class. **The panel's contents are laid out by 'helix.css'**, through attributes you write on your own markup: 'data-megamenu-group' on each column, 'data-megamenu-heading' on a column's heading, and 'data-megamenu-item' on a link that carries a title in '<strong>' and a line of description in '<span>' or '<p>', with an icon before them. A plain '<a>' in a group is drawn as a navigation item. Without the attributes the panel holds your markup as you styled it. */
19621
20711
  "helix-megamenu": DefineCustomElement<
19622
20712
  HelixMegamenu,
19623
20713
  HelixMegamenuVueProps,
@@ -19695,13 +20785,19 @@ export interface WcToolkitVueGlobalComponents {
19695
20785
  HelixOptionVueProps,
19696
20786
  HelixOptionVueEvents
19697
20787
  >;
20788
+ /** A hairline across the panel in the list's border color, with a little air either side. */
20789
+ "helix-option-separator": DefineCustomElement<
20790
+ HelixOptionSeparator,
20791
+ HelixOptionSeparatorVueProps,
20792
+ HelixOptionSeparatorVueEvents
20793
+ >;
19698
20794
  /** A cloud of dots drawn to a canvas, with one shape per state: - 'connecting' and 'thinking': the same leaning sash, differing in how agitated it is. - 'waiting' and 'done': the same settled ball at different tempos. - 'fetching': a globe with a light moving around it. - 'listening': a closed sphere with a ripple crossing it. - 'working': a ring. Every state is the same banded grid with different parameters. Changing state interpolates the parameters, so every frame in between is a complete shape. A small change gets less time than a large one, such as a sash becoming a ring. The outline changes first, so the light starts orbiting only after the shape is round. The cloud does not rotate, and all movement happens inside it. The exception is the light, which travels because a ring of evenly spaced dots looks the same when rotated, so a turning state needs something fixed passing over it. Colors come from '--orb-color' and '--orb-ground'. Each dot's color is mixed toward the ground color by its depth, so depth holds when the theme changes. The animation stops when the orb is off screen or in a background tab. With 'prefers-reduced-motion', it draws one still frame. The orb is styled only and has behavior, which the tier split does not otherwise allow. Its role, name and busy state follow 'state', unless 'announce' makes it a status region, and the rest is drawing dots to a canvas, so there is no structure to restyle. For a drawing of your own, the headless 'Loader' holds the same busy progress bar and its name. Each state is also a custom state, such as ':state(thinking)' or ':state(done)', so a page can style what sits around an orb by what it shows, whether the state was written as an attribute or set from script. */
19699
20795
  "helix-orb": DefineCustomElement<
19700
20796
  HelixOrb,
19701
20797
  HelixOrbVueProps,
19702
20798
  HelixOrbVueEvents
19703
20799
  >;
19704
- /** A rule runs down the leading edge, and the current section is highlighted along it. Set nesting with 'data-level' on each link, using the heading levels: '2' through '6' each add one step of '--outline-indent', and a link without 'data-level' is at the top level. The outline does not read heading levels from the document, because the headings are not always in the document. Links in a nested '<ul>' take their indentation from your own stylesheet: the outline's styles reach the elements slotted into it and nothing inside them. Write the links flat with 'data-level' for the indentation drawn here, and screen readers still hear them as nested lists. A heading slotted into 'heading' is set above the links, lined up with them. */
20800
+ /** A rule runs down the leading edge, and the current section is highlighted along it. Set nesting with 'data-level' on each link, using the heading levels: '2' through '6' each add one step of '--outline-indent', and a link without 'data-level' is at the top level. The outline does not read heading levels from the document, because the headings are not always in the document. Links in a nested '<ul>' are styled by 'helix.css', since the outline's own styles reach the elements slotted into it and nothing inside them: the lists lose their bullets, each inner list is inset by '--outline-indent', and the links read the same hooks as flat ones. Those rules have no specificity, so any rule of yours wins. Screen readers hear the levels either way. A heading slotted into 'heading' is set above the links, lined up with them. */
19705
20801
  "helix-outline": DefineCustomElement<
19706
20802
  HelixOutline,
19707
20803
  HelixOutlineVueProps,
@@ -19725,7 +20821,7 @@ export interface WcToolkitVueGlobalComponents {
19725
20821
  HelixPaginationSummaryVueProps,
19726
20822
  HelixPaginationSummaryVueEvents
19727
20823
  >;
19728
- /** Square boxes at the control height, with space between them so the code reads as separate characters. The focus ring is on the current box, so you can see which character comes next. Figures are tabular, so every digit takes the same width and the row does not shift as you type. */
20824
+ /** Square boxes at the control height, with space between them so the code reads as separate characters. The focus ring is on the box the caret is in, so you can see which character comes next, and the caret is drawn there while it is empty. Figures are tabular, so every digit takes the same width and the row does not shift as you type. */
19729
20825
  "helix-pin-input": DefineCustomElement<
19730
20826
  HelixPinInput,
19731
20827
  HelixPinInputVueProps,
@@ -19773,7 +20869,7 @@ export interface WcToolkitVueGlobalComponents {
19773
20869
  HelixRatingVueProps,
19774
20870
  HelixRatingVueEvents
19775
20871
  >;
19776
- /** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. */
20872
+ /** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. **A preview says where it is.** It is ':state(loading)' from the moment it has a 'src' until that document can take the example, and again through 'reload()'. It is ':state(failed)' once the example throws an error it does not catch, until the next source is sent, which a frame on 'servePreview' reports. A page draws its own spinner or message from either, such as a sibling shown by 'helix-sandbox-preview:state(failed) + .message'. */
19777
20873
  "helix-sandbox-preview": DefineCustomElement<
19778
20874
  HelixSandboxPreview,
19779
20875
  HelixSandboxPreviewVueProps,
@@ -19785,7 +20881,7 @@ export interface WcToolkitVueGlobalComponents {
19785
20881
  HelixSandboxVueProps,
19786
20882
  HelixSandboxVueEvents
19787
20883
  >;
19788
- /** A real '<textarea>', so undo, selection, spellcheck suppression, mobile keyboards, and screen reader support come from the platform. Tab inserts two spaces, so you can indent code. To move focus out of the field, press Escape and then Tab. Shift+Tab moves focus back as it does anywhere else. The field's description says so to a screen reader. **'highlight' colors the source** with a highlighter you bring, such as one built on Lezer, Prism or Shiki. It is a function from the source to runs of text, each with an optional kind, and the pane draws the runs under a transparent field, so typing, selection and undo stay the textarea's. The kinds are 'callable', 'comment', 'constant', 'invalid', 'keyword', 'name', 'string' and 'tag', each colored by the '--helix-color-syntax-*' token of its name and a hook of its own, such as '--sandbox-source-keyword-color'. A run of any other kind is drawn in the field's own color. Every run with a kind is a 'token' part, and carries its kind as 'data-kind'. */
20884
+ /** A real '<textarea>', so undo, selection, spellcheck suppression, mobile keyboards, and screen reader support come from the platform. Tab inserts two spaces, so you can indent code. To move focus out of the field, press Escape and then Tab. Shift+Tab moves focus back as it does anywhere else. The field's description says so to a screen reader. **'tokenize' colors the source** with a highlighter you bring, such as one built on Lezer, Prism or Shiki. It is a function from the source to runs of text, each with an optional kind, and the pane draws the runs under a transparent field, so typing, selection and undo stay the textarea's. The kinds are 'callable', 'comment', 'constant', 'invalid', 'keyword', 'name', 'string' and 'tag', each colored by the '--helix-color-syntax-*' token of its name and a hook of its own, such as '--sandbox-source-keyword-color'. A run of any other kind is drawn in the field's own color. Every run with a kind is a 'token' part, and carries its kind as 'data-kind'. A 'tokenize' that throws leaves the source drawn plain and the field editable, and the error is reported to the page as an uncaught one. */
19789
20885
  "helix-sandbox-source": DefineCustomElement<
19790
20886
  HelixSandboxSource,
19791
20887
  HelixSandboxSourceVueProps,
@@ -19851,6 +20947,12 @@ export interface WcToolkitVueGlobalComponents {
19851
20947
  HelixSparklineVueProps,
19852
20948
  HelixSparklineVueEvents
19853
20949
  >;
20950
+ /** A column of actions with its name above them, in the small muted words a menu heads its sections with, lined up on the side the trigger is on. The space between two groups is the space between two actions. */
20951
+ "helix-speed-dial-group": DefineCustomElement<
20952
+ HelixSpeedDialGroup,
20953
+ HelixSpeedDialGroupVueProps,
20954
+ HelixSpeedDialGroupVueEvents
20955
+ >;
19854
20956
  /** Presentation only: a round mark the size of a small control, with the name on a chip beside it so it stays readable over whatever the dial floats over. The base class handles its behavior. */
19855
20957
  "helix-speed-dial-item": DefineCustomElement<
19856
20958
  HelixSpeedDialItem,
@@ -20018,7 +21120,7 @@ export interface WcToolkitVueGlobalComponents {
20018
21120
  HelixToggleVueProps,
20019
21121
  HelixToggleVueEvents
20020
21122
  >;
20021
- /** The toolbar draws no frame of its own, so it does not add a second frame inside whatever already frames the bar. */
21123
+ /** The toolbar draws no frame of its own, so it does not add a second frame inside whatever already frames the bar. Its controls are the small size, since a toolbar is dense by nature, and a control added later takes it without being told. 'size="md"' or '"lg"' makes every control in it larger together. */
20022
21124
  "helix-toolbar": DefineCustomElement<
20023
21125
  HelixToolbar,
20024
21126
  HelixToolbarVueProps,