@fusion.dev/helix 0.146.0 → 0.147.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 (243) hide show
  1. package/custom-elements.json +5556 -539
  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/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
  19. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +5 -42
  20. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +17 -0
  21. package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
  22. package/dist/button/root/button-root.css.js +16 -197
  23. package/dist/button/root/button-root.d.ts +1 -0
  24. package/dist/button-group/root/button-group-root.css.js +2 -52
  25. package/dist/callout/root/callout-root.css.js +5 -138
  26. package/dist/callout/root/callout-root.d.ts +4 -2
  27. package/dist/canvas/node/canvas-node.css.js +10 -367
  28. package/dist/canvas/root/canvas-root.css.js +7 -270
  29. package/dist/card/root/card-root.css.js +5 -134
  30. package/dist/carousel/root/carousel-root.css.js +20 -386
  31. package/dist/chat/composer/chat-composer.css.js +4 -105
  32. package/dist/chat/message/chat-message.css.js +5 -239
  33. package/dist/chat/message/chat-message.d.ts +5 -0
  34. package/dist/chat/root/chat-root.css.js +5 -162
  35. package/dist/chat/typing.css.js +9 -46
  36. package/dist/checkbox/root/checkbox-root.css.js +12 -177
  37. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
  38. package/dist/code/root/code-root.css.js +3 -25
  39. package/dist/code-block/root/code-block-root.css.js +9 -274
  40. package/dist/color-input/root/color-input-root.css.js +5 -114
  41. package/dist/color-picker/root/color-picker-root.css.js +39 -337
  42. package/dist/color-picker/root/color-picker-root.d.ts +2 -0
  43. package/dist/combobox/root/combobox-root.css.js +8 -147
  44. package/dist/command/root/command-root.css.js +3 -74
  45. package/dist/copy-button/root/copy-button-root.css.js +3 -43
  46. package/dist/data-table/root/data-table-root.css.js +21 -245
  47. package/dist/data-table/root/data-table-root.d.ts +7 -0
  48. package/dist/date-input/root/date-input-root.css.js +8 -103
  49. package/dist/date-picker/root/date-picker-root.css.js +16 -278
  50. package/dist/date-picker/root/date-picker-root.d.ts +1 -0
  51. package/dist/description-list/item/description-list-item.css.js +1 -41
  52. package/dist/description-list/item/description-list-item.d.ts +7 -0
  53. package/dist/description-list/root/description-list-root.css.js +1 -34
  54. package/dist/description-list/root/description-list-root.d.ts +1 -0
  55. package/dist/dialog/root/dialog-root.css.js +7 -221
  56. package/dist/dialog/root/dialog-root.d.ts +3 -0
  57. package/dist/divider/root/divider-root.css.js +6 -81
  58. package/dist/donut-chart/root/donut-chart-root.css.js +7 -193
  59. package/dist/drawer/root/drawer-root.css.js +11 -237
  60. package/dist/drilldown/item/drilldown-item.css.js +4 -51
  61. package/dist/drilldown/item/drilldown-item.d.ts +1 -0
  62. package/dist/drilldown/root/drilldown-root.css.js +6 -120
  63. package/dist/element-events.generated.js +4 -1
  64. package/dist/empty/root/empty-root.css.js +2 -42
  65. package/dist/file-input/root/file-input-root.css.js +7 -173
  66. package/dist/file-input/root/file-input-root.d.ts +4 -0
  67. package/dist/filter-input/chip/filter-chip.css.js +2 -84
  68. package/dist/filter-input/field/filter-field.css.js +1 -3
  69. package/dist/filter-input/menu/filter-menu.css.js +1 -3
  70. package/dist/filter-input/operator/filter-operator.css.js +1 -3
  71. package/dist/filter-input/root/filter-input-root.css.js +6 -113
  72. package/dist/flex/root/flex-root.css.js +4 -207
  73. package/dist/flex/root/flex-root.d.ts +2 -2
  74. package/dist/format-date/root/format-date-root.css.js +1 -13
  75. package/dist/graph/root/graph-root.css.js +9 -444
  76. package/dist/grid/root/grid-root.css.js +1 -171
  77. package/dist/heatmap/root/heatmap-root.css.js +8 -156
  78. package/dist/heatmap/root/heatmap-root.d.ts +2 -0
  79. package/dist/icon/index.d.ts +1 -1
  80. package/dist/icon/root/icon-root.css.js +1 -18
  81. package/dist/icon/root/index.d.ts +1 -1
  82. package/dist/icon-button/root/icon-button-root.css.js +25 -203
  83. package/dist/icon-button/root/icon-button-root.d.ts +1 -0
  84. package/dist/image/root/image-root.css.js +7 -65
  85. package/dist/image/root/image-root.d.ts +3 -0
  86. package/dist/input/root/input-root.css.js +6 -79
  87. package/dist/kbd/root/kbd-root.css.js +2 -71
  88. package/dist/kbd/root/kbd-root.d.ts +7 -0
  89. package/dist/legend/root/legend-root.css.js +9 -106
  90. package/dist/legend/root/legend-root.d.ts +2 -0
  91. package/dist/lightbox/item/lightbox-item.css.js +1 -37
  92. package/dist/lightbox/root/lightbox-root.css.js +38 -183
  93. package/dist/line-chart/root/line-chart-root.css.js +4 -170
  94. package/dist/line-chart/root/line-chart-root.d.ts +1 -0
  95. package/dist/list/item/list-item.css.js +2 -94
  96. package/dist/list/root/list-root.css.js +4 -88
  97. package/dist/listbox/root/listbox-root.css.js +4 -111
  98. package/dist/loader/root/loader-root.css.js +5 -171
  99. package/dist/map/area/map-area.css.js +1 -23
  100. package/dist/map/buildings/map-buildings.css.js +1 -26
  101. package/dist/map/contours/map-contours.css.js +2 -5
  102. package/dist/map/landcover/map-landcover.css.js +1 -4
  103. package/dist/map/marker/map-marker.css.js +14 -327
  104. package/dist/map/points/map-points.css.js +1 -86
  105. package/dist/map/position/map-position.css.js +8 -227
  106. package/dist/map/raster/map-raster.css.js +1 -3
  107. package/dist/map/root/map-root.css.js +10 -352
  108. package/dist/map/route/map-route.css.js +1 -24
  109. package/dist/map/terrain/map-terrain.css.js +3 -7
  110. package/dist/megamenu/root/megamenu-root.css.js +11 -162
  111. package/dist/megamenu/root/megamenu-root.d.ts +8 -0
  112. package/dist/menu/item/menu-item.css.js +7 -130
  113. package/dist/menu/root/menu-root.css.js +1 -110
  114. package/dist/menu/section/menu-section.css.js +1 -13
  115. package/dist/meter/root/meter-root.css.js +17 -207
  116. package/dist/meter/root/meter-root.d.ts +3 -0
  117. package/dist/navigation/root/navigation-root.css.js +2 -54
  118. package/dist/notifications/group/notification-group.css.js +1 -61
  119. package/dist/notifications/notification/notification.css.js +17 -264
  120. package/dist/notifications/root/notifications-root.css.js +7 -125
  121. package/dist/notifications/root/notifications-root.d.ts +3 -1
  122. package/dist/number-input/root/number-input-root.css.js +10 -103
  123. package/dist/object-inspector/root/object-inspector-root.css.js +11 -162
  124. package/dist/option/group/option-group.css.js +1 -22
  125. package/dist/option/index.d.ts +1 -0
  126. package/dist/option/index.js +1 -0
  127. package/dist/option/root/option-root.css.js +3 -85
  128. package/dist/option/separator/option-separator.css.d.ts +1 -0
  129. package/dist/option/separator/option-separator.css.js +3 -0
  130. package/dist/option/separator/option-separator.d.ts +26 -0
  131. package/dist/option/separator/option-separator.js +16 -0
  132. package/dist/orb/root/orb-root.css.js +1 -41
  133. package/dist/outline/root/outline-root.css.js +24 -122
  134. package/dist/outline/root/outline-root.d.ts +17 -4
  135. package/dist/pagination/root/pagination-root.css.js +9 -105
  136. package/dist/pagination/size/pagination-size.css.js +1 -22
  137. package/dist/pagination/summary/pagination-summary.css.js +1 -7
  138. package/dist/pin-input/root/pin-input-root.css.js +2 -73
  139. package/dist/pin-input/root/pin-input-root.d.ts +9 -3
  140. package/dist/popover/root/popover-root.css.js +6 -127
  141. package/dist/progress/root/progress-root.css.js +7 -230
  142. package/dist/progress/root/progress-root.d.ts +4 -0
  143. package/dist/qr-code/root/qr-code-root.css.js +1 -68
  144. package/dist/quote/root/quote-root.css.js +1 -20
  145. package/dist/radio/group/radio-group.css.js +1 -21
  146. package/dist/radio/root/radio-root.css.js +5 -208
  147. package/dist/rating/root/rating-root.css.js +4 -117
  148. package/dist/sandbox/frame.d.ts +2 -1
  149. package/dist/sandbox/frame.js +1 -1
  150. package/dist/sandbox/index.d.ts +1 -1
  151. package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
  152. package/dist/sandbox/preview/sandbox-preview.d.ts +19 -3
  153. package/dist/sandbox/preview/sandbox-preview.js +17 -11
  154. package/dist/sandbox/root/sandbox-root.css.js +3 -70
  155. package/dist/sandbox/root/sandbox-root.d.ts +16 -4
  156. package/dist/sandbox/root/sandbox-root.js +29 -50
  157. package/dist/sandbox/source/sandbox-source.css.js +3 -95
  158. package/dist/sandbox/source/sandbox-source.d.ts +31 -25
  159. package/dist/sandbox/source/sandbox-source.js +12 -5
  160. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
  161. package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
  162. package/dist/sandbox/terminal/sandbox-terminal.d.ts +4 -0
  163. package/dist/sandbox/terminal/sandbox-terminal.js +2 -1
  164. package/dist/sandbox/tokens.d.ts +2 -2
  165. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
  166. package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -146
  167. package/dist/scatter-chart/root/scatter-chart-root.d.ts +1 -0
  168. package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
  169. package/dist/select/root/select-root.css.js +4 -124
  170. package/dist/shared/chart/series.css.js +1 -36
  171. package/dist/shared/chart/terminus.css.js +1 -47
  172. package/dist/shared/chart/tooltip.css.js +1 -68
  173. package/dist/shared/collection/state.css.js +1 -9
  174. package/dist/shared/field/field-frame.css.js +3 -33
  175. package/dist/shared/field/field-inline.css.js +1 -4
  176. package/dist/shared/field/field-segments.css.js +1 -39
  177. package/dist/shared/field/field-stacked.css.js +1 -5
  178. package/dist/shared/field/field.css.js +3 -57
  179. package/dist/shared/floating/entrance.css.js +3 -34
  180. package/dist/shared/floating/panel.css.js +2 -17
  181. package/dist/shared/glyph/glyph.css.js +1 -5
  182. package/dist/shared/live/live.css.js +1 -8
  183. package/dist/shared/tags/tags.css.js +1 -39
  184. package/dist/shared/viewport/viewport.css.js +8 -135
  185. package/dist/skeleton/root/skeleton-root.css.js +12 -120
  186. package/dist/skip-link/root/skip-link-root.css.js +2 -47
  187. package/dist/slider/root/slider-root.css.js +19 -330
  188. package/dist/slider/root/slider-root.d.ts +2 -0
  189. package/dist/sparkline/root/sparkline-root.css.js +8 -143
  190. package/dist/sparkline/root/sparkline-root.d.ts +2 -0
  191. package/dist/speed-dial/item/speed-dial-item.css.js +4 -73
  192. package/dist/speed-dial/root/speed-dial-root.css.js +3 -149
  193. package/dist/splitter/root/splitter-root.css.js +11 -176
  194. package/dist/stat/group/stat-group.css.js +1 -36
  195. package/dist/stat/root/stat-root.css.js +3 -62
  196. package/dist/steps/root/steps-root.css.js +7 -92
  197. package/dist/steps/step/step.css.js +5 -156
  198. package/dist/switch/root/switch-root.css.js +2 -110
  199. package/dist/table/cell/table-cell.css.js +1 -33
  200. package/dist/table/column/table-column.css.js +7 -105
  201. package/dist/table/root/table-root.css.js +1 -43
  202. package/dist/table/row/table-row.css.js +6 -18
  203. package/dist/table/row/table-row.d.ts +2 -0
  204. package/dist/tabs/panel/tab-panel.css.js +2 -17
  205. package/dist/tabs/root/tabs-root.css.js +6 -177
  206. package/dist/tabs/tab/tab.css.js +6 -54
  207. package/dist/tag/group/tag-group.css.js +1 -11
  208. package/dist/tag/root/tag-root.css.js +1 -166
  209. package/dist/tag/root/tag-root.d.ts +2 -0
  210. package/dist/text/root/text-root.css.js +11 -200
  211. package/dist/textarea/root/textarea-root.css.js +3 -71
  212. package/dist/time-input/root/time-input-root.css.js +7 -118
  213. package/dist/time-picker/root/time-picker-root.css.js +10 -134
  214. package/dist/time-picker/root/time-picker-root.d.ts +1 -0
  215. package/dist/timeline/group/timeline-group.css.js +1 -31
  216. package/dist/timeline/item/timeline-item.css.js +3 -134
  217. package/dist/timeline/root/timeline-root.css.js +1 -66
  218. package/dist/toast/item/toast-item.css.js +8 -250
  219. package/dist/toast/root/toast-root.css.js +1 -85
  220. package/dist/toast/root/toast-root.js +2 -1
  221. package/dist/toggle/group/toggle-group.css.js +7 -126
  222. package/dist/toggle/root/toggle-root.css.js +1 -23
  223. package/dist/toolbar/root/toolbar-root.css.js +1 -36
  224. package/dist/toolbar/root/toolbar-root.d.ts +2 -0
  225. package/dist/tooltip/root/tooltip-root.css.js +5 -101
  226. package/dist/tooltip/root/tooltip-root.d.ts +2 -0
  227. package/dist/tour/root/tour-root.css.js +2 -28
  228. package/dist/tour/stop/tour-stop.css.js +2 -109
  229. package/dist/tree/item/tree-item.css.js +12 -238
  230. package/dist/tree/root/tree-root.css.js +1 -40
  231. package/dist/trend/root/trend-root.css.js +5 -53
  232. package/dist/video/root/video-root.css.js +16 -398
  233. package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
  234. package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
  235. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
  236. package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
  237. package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
  238. package/dist/virtual-list/root/virtual-list-root.css.js +3 -40
  239. package/lint.json +1 -1
  240. package/package.json +6 -6
  241. package/types/jsx.d.ts +2804 -619
  242. package/types/svelte.d.ts +1 -0
  243. package/types/vue.d.ts +810 -169
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,
@@ -223,6 +224,7 @@ import type {
223
224
  HelixMapTiltEvent,
224
225
  HelixMapZoomEvent,
225
226
  HelixToggleEvent,
227
+ HelixBandEvent,
226
228
  HelixReadEvent,
227
229
  HelixCompleteEvent,
228
230
  HelixPreviewEvent,
@@ -352,18 +354,16 @@ too. */
352
354
  /** Whether find in page searches the section while it is closed, and opens it
353
355
  on a match.
354
356
 
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. */
357
+ Unset takes the accordion's `hidden-until-found`, which is on. Write
358
+ `hidden-until-found="false"` to keep find in page out of this section: a
359
+ closed section is then `hidden` and `inert`. */
359
360
  "hidden-until-found"?: (HelixAccordionItem["hiddenUntilFound"]) | undefined;
360
361
  /** Whether find in page searches the section while it is closed, and opens it
361
362
  on a match.
362
363
 
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. */
364
+ Unset takes the accordion's `hidden-until-found`, which is on. Write
365
+ `hidden-until-found="false"` to keep find in page out of this section: a
366
+ closed section is then `hidden` and `inert`. */
367
367
  hiddenUntilFound?: (HelixAccordionItem["hiddenUntilFound"]) | undefined;
368
368
  /** A group name. Opening an item closes the other items with the same name,
369
369
  as `<details name>` does.
@@ -426,12 +426,18 @@ Unset is 3. An item's own `heading-level` wins over this. */
426
426
  Unset is 3. An item's own `heading-level` wins over this. */
427
427
  headingLevel?: (HelixAccordion["headingLevel"]) | undefined;
428
428
  /** 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. */
429
+ matches in.
430
+
431
+ On by default, as in React Aria's disclosure. Write
432
+ `hidden-until-found="false"` to turn it off for every section; an item's
433
+ own `hidden-until-found` wins for that item. */
431
434
  "hidden-until-found"?: (HelixAccordion["hiddenUntilFound"]) | undefined;
432
435
  /** 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. */
436
+ matches in.
437
+
438
+ On by default, as in React Aria's disclosure. Write
439
+ `hidden-until-found="false"` to turn it off for every section; an item's
440
+ own `hidden-until-found` wins for that item. */
435
441
  hiddenUntilFound?: (HelixAccordion["hiddenUntilFound"]) | undefined;
436
442
  /** How many sections may be open at once.
437
443
 
@@ -687,6 +693,13 @@ The same three values `LineChart` takes, with the same fallback: a bare
687
693
  rather than under them, because the bands are opaque and a rule under one is
688
694
  a rule nobody sees. */
689
695
  gridlines?: (HelixAreaChart["gridlines"]) | undefined;
696
+ /** Draws every band from zero, in front of the next, so a band's height is
697
+ its own part's amount and not its place in a stack.
698
+
699
+ Absent stacks the parts, so the top edge is the total. Set, the first
700
+ column is in front and the scale fits the largest part. Reflected, because
701
+ the styled tier lets the bands behind show through the ones in front. */
702
+ overlap?: (HelixAreaChart["overlap"]) | undefined;
690
703
  /** Draws each reading as a hundred percent, so each band shows its share of
691
704
  the total.
692
705
 
@@ -887,6 +900,19 @@ replaces them when it arrives, so a slow connection shows who it is
887
900
  without a cached picture flashing initials first. Radix's `delayMs` is the
888
901
  same idea. */
889
902
  fallbackDelay?: (HelixAvatar["fallbackDelay"]) | undefined;
903
+ /** The letters shown where no picture loaded, such as `GH`, in place of the
904
+ ones taken from `name`.
905
+
906
+ For a name whose initials are not its first and last letters, or an
907
+ entity with a short mark of its own. Absent, the first letters of the
908
+ first and last words of `name` are shown. */
909
+ initials?: (HelixAvatar["initials"]) | undefined;
910
+ /** When the browser fetches the picture: `lazy` waits until it is near the
911
+ screen, as an `<img loading="lazy">` does, and `eager` fetches it at once.
912
+
913
+ Absent is the browser's own default, which is `eager`. `lazy` suits a long
914
+ list of people, most of them off screen. */
915
+ loading?: (HelixAvatar["loading"]) | undefined;
890
916
  /** Name of the person or entity.
891
917
 
892
918
  Used for the label and the initials. */
@@ -950,12 +976,28 @@ color.
950
976
  `Announcement` gives for its own neutral: a generated page should be able to
951
977
  say what it means rather than express it by leaving an attribute off. */
952
978
  tone?: (HelixBadge["tone"]) | undefined;
979
+ /** `Intl.NumberFormat` options a count is written with, such as
980
+ `{"notation":"compact"}` for `1.2K`, written as JSON in the attribute.
981
+
982
+ Absent, a count is shown as it was given. Text that is not a number is
983
+ shown as it is either way. */
984
+ "format-options"?: (HelixBadge["formatOptions"]) | undefined;
985
+ /** `Intl.NumberFormat` options a count is written with, such as
986
+ `{"notation":"compact"}` for `1.2K`, written as JSON in the attribute.
987
+
988
+ Absent, a count is shown as it was given. Text that is not a number is
989
+ shown as it is either way. */
990
+ formatOptions?: (HelixBadge["formatOptions"]) | undefined;
953
991
  /** The badge's name, read by screen readers.
954
992
 
955
993
  Required for a dot, which has no text to read. `{count}` is replaced with
956
994
  what the badge shows, so `label="{count} unread"` reads "8 unread" and
957
995
  stays current as `value` changes, with no label of yours to keep in step. */
958
996
  label?: (HelixBadge["label"]) | undefined;
997
+ /** The locale a count is written in under `format-options`, such as `de`.
998
+
999
+ Absent uses the runtime's own. */
1000
+ locale?: (HelixBadge["locale"]) | undefined;
959
1001
  /** The largest number the badge shows.
960
1002
 
961
1003
  Past it the indicator reads `{max}+`. */
@@ -1262,6 +1304,17 @@ The consumer's decision. */
1262
1304
  export type HelixBreadcrumbVueEvents = {};
1263
1305
 
1264
1306
  export type HelixBreadcrumbsVueProps = {
1307
+ /** How the two halves of a split crumb are told apart. A split crumb is one
1308
+ with a control in its `end` slot, such as a switcher's menu trigger.
1309
+
1310
+ - `plain` is the default. The halves are text at rest, like every other
1311
+ crumb. While one half is under the pointer, both halves take a light fill
1312
+ and that half takes the full hover fill.
1313
+ - `outlined` draws a hairline between the halves, at rest and under the
1314
+ pointer, the way an outlined surface keeps its edge at rest.
1315
+
1316
+ The other crumbs look the same under either value. */
1317
+ separation?: (HelixBreadcrumbs["separation"]) | undefined;
1265
1318
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1266
1319
  is replaced by how many it shows. Translate it with the page. */
1267
1320
  "expand-label"?: (HelixBreadcrumbs["expandLabel"]) | undefined;
@@ -1403,33 +1456,23 @@ is the platform's `commandfor`. */
1403
1456
  commandFor?: (HelixButton["commandFor"]) | undefined;
1404
1457
  /** Where this button's submission goes, overriding the form's own.
1405
1458
 
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. */
1459
+ **The five `form*` overrides ride on a native submit button that stands in
1460
+ for this one**, because `requestSubmit(submitter)` refuses the inner
1461
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
1462
+ root, so its form owner is not the consumer's form. The stand-in is a
1463
+ hidden `<button type="submit">` in the form for the one synchronous call,
1464
+ so the platform applies the overrides to that submission alone and leaves
1465
+ the form as it was. See `submitAs`. */
1418
1466
  formaction?: (HelixButton["formAction"]) | undefined;
1419
1467
  /** Where this button's submission goes, overriding the form's own.
1420
1468
 
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. */
1469
+ **The five `form*` overrides ride on a native submit button that stands in
1470
+ for this one**, because `requestSubmit(submitter)` refuses the inner
1471
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
1472
+ root, so its form owner is not the consumer's form. The stand-in is a
1473
+ hidden `<button type="submit">` in the form for the one synchronous call,
1474
+ so the platform applies the overrides to that submission alone and leaves
1475
+ the form as it was. See `submitAs`. */
1433
1476
  formAction?: (HelixButton["formAction"]) | undefined;
1434
1477
  /** How the submission is encoded, overriding the form's own. */
1435
1478
  formenctype?: (HelixButton["formEnctype"]) | undefined;
@@ -1475,13 +1518,10 @@ a press, so focus stays where the reader left it. */
1475
1518
  /** The value this button submits under its own `name`, as a native submit
1476
1519
  button does.
1477
1520
 
1478
- **Reported for exactly the submission this button starts and not otherwise.**
1521
+ **Sent with exactly the submission this button starts and not otherwise.**
1479
1522
  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.
1523
+ that submitted, and every other button on the form contributes nothing,
1524
+ which is what the native button standing in for this one at submit does.
1485
1525
 
1486
1526
  `CopyButton` has a `value` of its own meaning the text to put on the
1487
1527
  clipboard, which is not this and is why it is declared there rather than
@@ -2953,6 +2993,22 @@ say that without the component knowing what a row looks like. */
2953
2993
  "loading-text"?: (HelixChat["loadingText"]) | undefined;
2954
2994
  /** The text shown and announced while the rows load. */
2955
2995
  loadingText?: (HelixChat["loadingText"]) | undefined;
2996
+ /** Declarations for the turns from `turns` by each author, keyed by `author`,
2997
+ as JSON in the attribute: `{"ada": "--chat-message-background-color: …"}`.
2998
+
2999
+ The message drawn for each turn by that author takes them as its `style`,
3000
+ so the custom properties a message reads, its fill, text color, radius and
3001
+ padding, change for that author alone. A turn by an author with no entry
3002
+ takes none, and looks as it did. JSON that does not parse is no entries. */
3003
+ "author-styles"?: (HelixChat["authorStyles"]) | undefined;
3004
+ /** Declarations for the turns from `turns` by each author, keyed by `author`,
3005
+ as JSON in the attribute: `{"ada": "--chat-message-background-color: …"}`.
3006
+
3007
+ The message drawn for each turn by that author takes them as its `style`,
3008
+ so the custom properties a message reads, its fill, text color, radius and
3009
+ padding, change for that author alone. A turn by an author with no entry
3010
+ takes none, and looks as it did. JSON that does not parse is no entries. */
3011
+ authorStyles?: (HelixChat["authorStyles"]) | undefined;
2956
3012
  /** Whether the transcript opens pinned to the bottom, when `pinned` is not
2957
3013
  set.
2958
3014
 
@@ -3353,6 +3409,12 @@ block lays out. Not for a diff, whose files each scroll on their own. */
3353
3409
  In a diff, each file is named from the patch, and this names a patch that
3354
3410
  carries no name of its own. */
3355
3411
  label?: (HelixCodeBlock["label"]) | undefined;
3412
+ /** The language the code is written in, such as `ts` or `css`, handed to
3413
+ `highlight` as its second argument.
3414
+
3415
+ Absent hands it an empty string. It draws nothing of its own: the block's
3416
+ name is `label`. */
3417
+ language?: (HelixCodeBlock["language"]) | undefined;
3356
3418
  /** Whether the lines are numbered in a gutter beside the code.
3357
3419
 
3358
3420
  The numbers are hidden from the accessibility tree and are not part of a
@@ -3416,15 +3478,24 @@ than defaulted, so the host carries no attribute the consumer did not write. */
3416
3478
  /** Turns the code into highlighted markup, which the block draws in place of
3417
3479
  the plain text.
3418
3480
 
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. */
3481
+ Called with the code as written and the block's `language`, and returning
3482
+ HTML, such as the output of Shiki's `codeToHtml` or Prism's `highlight`.
3483
+ One function serves every block on a page, each block saying its own
3484
+ language:
3485
+
3486
+ ```js
3487
+ for (const block of document.querySelectorAll('helix-code-block')) {
3488
+ block.highlight = (code, lang) => codeToHtml(code, { lang, theme: 'github-light' })
3489
+ }
3490
+ ```
3491
+
3492
+ **The markup is drawn as given**, so it has to escape the code it was
3493
+ handed, which those highlighters do. A `<pre>` and `<code>` around the
3494
+ whole of it, which Shiki writes, are taken off, so the lines sit level
3495
+ with the gutter's numbers and the block keeps one tab stop. The code stays
3496
+ in the slot, so the copy button copies it as written and a reader without
3497
+ the script still has it. Not called on a server, which has no code to
3498
+ read, nor for a diff. */
3428
3499
  highlight?: (HelixCodeBlock["highlight"]) | undefined;
3429
3500
  };
3430
3501
 
@@ -3608,6 +3679,9 @@ The trade is real and is the reason this is not the default: a swatch cannot
3608
3679
  be read or pasted into without opening the panel, which is worse for a form
3609
3680
  where the color is the answer rather than a setting. */
3610
3681
  variant?: (HelixColorInput["variant"]) | undefined;
3682
+ /** Draws the panel's hue as a wheel around the square, in place of the hue
3683
+ ramp. See Color Picker's `wheel`. */
3684
+ wheel?: (HelixColorInput["wheel"]) | undefined;
3611
3685
  /** Whether the control is disabled and cannot be used.
3612
3686
 
3613
3687
  Reflected, because the styled tier selects on it, and mirrored to
@@ -3670,6 +3744,19 @@ export type HelixColorPickerHelixSampleStartElementEvent =
3670
3744
  HelixColorPickerElementEvent<HelixSampleStartEvent>;
3671
3745
 
3672
3746
  export type HelixColorPickerVueProps = {
3747
+ /** A message under the picker, such as what is wrong with the answer.
3748
+
3749
+ While set, the picker is invalid and does not submit, as a field's
3750
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
3751
+ controls a reader answers with are described by it. */
3752
+ feedback?: (HelixColorPicker["feedback"]) | undefined;
3753
+ /** Whether the answer fails validation, marked on the controls a reader
3754
+ answers with and as `:state(invalid)`.
3755
+
3756
+ A flag a field that wraps the picker sets, since that field owns the
3757
+ label, the hint and the message; on its own, `feedback` both marks the
3758
+ picker and says why. */
3759
+ invalid?: (HelixColorPicker["invalid"]) | undefined;
3673
3760
  /** The value the control starts with. A form reset returns it to this value,
3674
3761
  and to the `value` attribute where this one is not written, as a native
3675
3762
  control resets to the `value` it declares. */
@@ -3773,13 +3860,6 @@ the color. */
3773
3860
  "eyedropper-label"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
3774
3861
  /** What the eyedropper is called. */
3775
3862
  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
3863
  /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
3784
3864
 
3785
3865
  Only what is written. Everything is read whatever this says, so a picker on
@@ -3797,14 +3877,6 @@ Only what is written. Everything is read whatever this says, so a picker on
3797
3877
  "hue-label"?: (HelixColorPicker["hueLabel"]) | undefined;
3798
3878
  /** What the hue channel is called. */
3799
3879
  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
3880
  /** What the lightness channel's field is called, in `channel-fields` with
3809
3881
  hsl. */
3810
3882
  "lightness-label"?: (HelixColorPicker["lightnessLabel"]) | undefined;
@@ -3958,6 +4030,14 @@ speaks it. Absent is the control's own sentence, in English. */
3958
4030
  named for the validity flag it reports, so a form in another language
3959
4031
  speaks it. Absent is the control's own sentence, in English. */
3960
4032
  valueMissingMessage?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4033
+ /** Draws the hue as a wheel around the square, in place of the hue ramp, as
4034
+ React Aria's ColorWheel sits round its ColorArea.
4035
+
4036
+ The ring is one stop, a slider a reader turns with the arrow keys, Home
4037
+ and End, the same way round in either writing direction, and a press or a
4038
+ drag on it takes the hue in that direction. Off, the picker keeps its
4039
+ ramp. */
4040
+ wheel?: (HelixColorPicker["wheel"]) | undefined;
3961
4041
  /** Whether the control is disabled and cannot be used.
3962
4042
 
3963
4043
  Reflected, because the styled tier selects on it, and mirrored to
@@ -4368,7 +4448,9 @@ so a palette filtered on a server sends one `helix-filter` for a word.
4368
4448
  so a palette filtered on a server sends one `helix-filter` for a word.
4369
4449
  `0` filters on every keystroke. See Listbox's `filter-delay`. */
4370
4450
  filterDelay?: (HelixCommand["filterDelay"]) | undefined;
4371
- /** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`.
4451
+ /** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
4452
+ in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
4453
+ `alt` and `shift` the keys they name.
4372
4454
 
4373
4455
  Empty turns it off, for a consumer who opens the palette from a button or
4374
4456
  from their own shortcut handler. There is no list of defaults to fight
@@ -5181,7 +5263,11 @@ Saturday.
5181
5263
  Absent follows `locale`, where the engine knows the week of that language,
5182
5264
  and is Sunday otherwise. */
5183
5265
  firstDayOfWeek?: (HelixDateInput["firstDayOfWeek"]) | undefined;
5184
- /** The language tag for the names of months and days in the calendar. */
5266
+ /** The language tag for the field's order and words, and for the names of
5267
+ months and days in the calendar.
5268
+
5269
+ Absent is the page's: the `lang` of the nearest element with one, as
5270
+ Shoelace and Web Awesome read it, then the runtime's own. */
5185
5271
  locale?: (HelixDateInput["locale"]) | undefined;
5186
5272
  /** The latest date that can be chosen, as `YYYY-MM-DD`. */
5187
5273
  max?: (HelixDateInput["max"]) | undefined;
@@ -5377,6 +5463,19 @@ export type HelixDatePickerHelixNavigateElementEvent =
5377
5463
  HelixDatePickerElementEvent<HelixNavigateEvent>;
5378
5464
 
5379
5465
  export type HelixDatePickerVueProps = {
5466
+ /** A message under the picker, such as what is wrong with the answer.
5467
+
5468
+ While set, the picker is invalid and does not submit, as a field's
5469
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
5470
+ controls a reader answers with are described by it. */
5471
+ feedback?: (HelixDatePicker["feedback"]) | undefined;
5472
+ /** Whether the answer fails validation, marked on the controls a reader
5473
+ answers with and as `:state(invalid)`.
5474
+
5475
+ A flag a field that wraps the picker sets, since that field owns the
5476
+ label, the hint and the message; on its own, `feedback` both marks the
5477
+ picker and says why. */
5478
+ invalid?: (HelixDatePicker["invalid"]) | undefined;
5380
5479
  /** The value the control starts with. A form reset returns it to this value,
5381
5480
  and to the `value` attribute where this one is not written, as a native
5382
5481
  control resets to the `value` it declares. */
@@ -5430,13 +5529,12 @@ Absent follows `locale`, where the engine knows the week of that language
5430
5529
  Absent follows `locale`, where the engine knows the week of that language
5431
5530
  (Firefox does not), and is Sunday otherwise. */
5432
5531
  firstDayOfWeek?: (HelixDatePicker["firstDayOfWeek"]) | undefined;
5433
- /** Whether the current selection fails validation. */
5434
- invalid?: (HelixDatePicker["invalid"]) | undefined;
5435
5532
  /** Accessible name for the grid. */
5436
5533
  label?: (HelixDatePicker["label"]) | undefined;
5437
- /** Locale for month and day names.
5534
+ /** Locale for month and day names, and the day a week starts on.
5438
5535
 
5439
- Absent uses the runtime's own. */
5536
+ Absent is the page's: the `lang` of the nearest element with one, as
5537
+ Shoelace and Web Awesome read it, then the runtime's own. */
5440
5538
  locale?: (HelixDatePicker["locale"]) | undefined;
5441
5539
  /** Latest selectable date, as `YYYY-MM-DD`. */
5442
5540
  max?: (HelixDatePicker["max"]) | undefined;
@@ -5664,6 +5762,10 @@ The fallback of the `label` slot, so slotted content replaces it rather than
5664
5762
  appearing beside it. The value itself is the default slot: it is the half
5665
5763
  that varies and is often more than text. */
5666
5764
  label?: (HelixDescriptionListItem["label"]) | undefined;
5765
+ /** Says the values are several `<dd>` elements of your own, so the item
5766
+ draws no `<dd>` of its own around them, on the server too. Without it the
5767
+ item finds them once it runs, and the served markup wraps them until then. */
5768
+ several?: (HelixDescriptionListItem["several"]) | undefined;
5667
5769
  };
5668
5770
 
5669
5771
  export type HelixDescriptionListItemVueEvents = {};
@@ -6282,6 +6384,21 @@ export type HelixDrilldownVueEvents = {
6282
6384
  };
6283
6385
 
6284
6386
  export type HelixEmptyVueProps = {
6387
+ /** The heading as words, such as "No results", drawn as a heading when
6388
+ nothing is slotted into `heading`.
6389
+
6390
+ Absent draws none, and the `heading` slot is the only heading. */
6391
+ heading?: (HelixEmpty["heading"]) | undefined;
6392
+ /** The level of the heading `heading` draws, from 1 to 6.
6393
+
6394
+ Absent is 3, the level of a heading inside a page's section. Set it to fit
6395
+ the outline the empty view sits in. A slotted heading keeps its own. */
6396
+ "heading-level"?: (HelixEmpty["headingLevel"] | `${number}`) | undefined;
6397
+ /** The level of the heading `heading` draws, from 1 to 6.
6398
+
6399
+ Absent is 3, the level of a heading inside a page's section. Set it to fit
6400
+ the outline the empty view sits in. A slotted heading keeps its own. */
6401
+ headingLevel?: (HelixEmpty["headingLevel"]) | undefined;
6285
6402
  /** Whether the state is announced when it appears.
6286
6403
 
6287
6404
  On by default: an empty view almost always replaces something that was
@@ -6373,6 +6490,12 @@ refused. */
6373
6490
  maxFileSize?: (HelixFileInput["maxFileSize"]) | undefined;
6374
6491
  /** Whether more than one file can be chosen. */
6375
6492
  multiple?: (HelixFileInput["multiple"]) | undefined;
6493
+ /** The name of a file's progress bar, read by screen readers, with `{name}`
6494
+ filled in. A label with no `{name}` has it added after it. */
6495
+ "progress-label"?: (HelixFileInput["progressLabel"]) | undefined;
6496
+ /** The name of a file's progress bar, read by screen readers, with `{name}`
6497
+ filled in. A label with no `{name}` has it added after it. */
6498
+ progressLabel?: (HelixFileInput["progressLabel"]) | undefined;
6376
6499
  /** What a reader hears when files are refused, with `{count}` and `{names}`
6377
6500
  filled in. */
6378
6501
  "rejected-text"?: (HelixFileInput["rejectedText"]) | undefined;
@@ -6940,6 +7063,17 @@ few characters and a date is not. */
6940
7063
  elapsed?: (HelixFormatDate["elapsed"]) | undefined;
6941
7064
  /** How the era is written, such as AD, where a date is shown. */
6942
7065
  era?: (HelixFormatDate["era"]) | undefined;
7066
+ /** Draws an `elapsed` or `relative` reading once and leaves it, where it
7067
+ would otherwise move on as it goes stale.
7068
+
7069
+ For a reading that describes a moment the page itself is about, such as
7070
+ "3 hours ago" in a report generated then, or a list a reader compares
7071
+ line by line while it should not change under them. The reading is taken
7072
+ when the element draws, and again whenever `date` or another option
7073
+ changes. Turned off, the reading catches up and moves on again.
7074
+ `sl-relative-time` and `wa-relative-time` keep still unless `sync` is
7075
+ set; this keeps moving unless `frozen` is. */
7076
+ frozen?: (HelixFormatDate["frozen"]) | undefined;
6943
7077
  /** How the hour is written, where a time of day is shown. */
6944
7078
  hour?: (HelixFormatDate["hour"]) | undefined;
6945
7079
  /** The clock a time of day is written on: `h12` or `h11` for twelve hours,
@@ -6956,7 +7090,8 @@ reader the same clock whatever their language. */
6956
7090
  hourCycle?: (HelixFormatDate["hourCycle"]) | undefined;
6957
7091
  /** The locale to format the timestamp in.
6958
7092
 
6959
- Empty is the runtime's own. */
7093
+ Absent is the page's: the `lang` of the nearest element with one, as
7094
+ Shoelace and Web Awesome read it, then the runtime's own. */
6960
7095
  locale?: (HelixFormatDate["locale"]) | undefined;
6961
7096
  /** How the minute is written, where a time of day is shown. */
6962
7097
  minute?: (HelixFormatDate["minute"]) | undefined;
@@ -7389,6 +7524,9 @@ export type HelixGridVueEvents = {};
7389
7524
 
7390
7525
  /** `HelixHeatmap` component event */
7391
7526
  export type HelixHeatmapElementEvent<E = Event> = TypedEvent<HelixHeatmap, E>;
7527
+ /** `helix-before-change` event type */
7528
+ export type HelixHeatmapHelixBeforeChangeElementEvent =
7529
+ HelixHeatmapElementEvent<HelixBeforeChangeEvent>;
7392
7530
  /** `helix-resize` event type */
7393
7531
  export type HelixHeatmapHelixResizeElementEvent =
7394
7532
  HelixHeatmapElementEvent<HelixResizeEvent>;
@@ -7491,6 +7629,20 @@ calendar heatmap does: a week is a column, so the strip reads along the
7491
7629
  line in weeks, from the right on a right-to-left page, and top to bottom in
7492
7630
  days. */
7493
7631
  rows?: (HelixHeatmap["rows"]) | undefined;
7632
+ /** What the `selection` part says after the selection changes, with `{count}` for
7633
+ how many cells are selected. */
7634
+ "selection-label"?: (HelixHeatmap["selectionLabel"]) | undefined;
7635
+ /** What the `selection` part says after the selection changes, with `{count}` for
7636
+ how many cells are selected. */
7637
+ selectionLabel?: (HelixHeatmap["selectionLabel"]) | undefined;
7638
+ /** How many cells a reader can select: `single` or `multiple`.
7639
+
7640
+ Absent selects nothing, and a press or Space does what it did. */
7641
+ "selection-mode"?: (HelixHeatmap["selectionMode"]) | undefined;
7642
+ /** How many cells a reader can select: `single` or `multiple`.
7643
+
7644
+ Absent selects nothing, and a press or Space does what it did. */
7645
+ selectionMode?: (HelixHeatmap["selectionMode"]) | undefined;
7494
7646
  /** Lower bounds for the tone buckets, in the order the tones are given.
7495
7647
 
7496
7648
  `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
@@ -7513,9 +7665,19 @@ no order in it. */
7513
7665
  "total-label"?: (HelixHeatmap["totalLabel"]) | undefined;
7514
7666
  /** The word the `overview` puts before the total of the readings drawn. */
7515
7667
  totalLabel?: (HelixHeatmap["totalLabel"]) | undefined;
7668
+ /** The selected cells, by the names their rows have in the table, such as
7669
+ `2026-06-11`, separated by commas.
7670
+
7671
+ Set it to start with cells selected. Written by a press or a key under
7672
+ `selection-mode`. */
7673
+ value?: (HelixHeatmap["value"]) | undefined;
7516
7674
  };
7517
7675
 
7518
7676
  export type HelixHeatmapVueEvents = {
7677
+ /** Fired once a press or a key has changed which cells are selected. */
7678
+ change: HelixHeatmapElementEvent;
7679
+ /** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
7680
+ "helix-before-change": HelixHeatmapHelixBeforeChangeElementEvent;
7519
7681
  /** Fired when the number of cells drawn changes, with the new number. */
7520
7682
  "helix-resize": HelixHeatmapHelixResizeElementEvent;
7521
7683
  };
@@ -7597,33 +7759,23 @@ is the platform's `commandfor`. */
7597
7759
  commandFor?: (HelixIconButton["commandFor"]) | undefined;
7598
7760
  /** Where this button's submission goes, overriding the form's own.
7599
7761
 
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. */
7762
+ **The five `form*` overrides ride on a native submit button that stands in
7763
+ for this one**, because `requestSubmit(submitter)` refuses the inner
7764
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
7765
+ root, so its form owner is not the consumer's form. The stand-in is a
7766
+ hidden `<button type="submit">` in the form for the one synchronous call,
7767
+ so the platform applies the overrides to that submission alone and leaves
7768
+ the form as it was. See `submitAs`. */
7612
7769
  formaction?: (HelixIconButton["formAction"]) | undefined;
7613
7770
  /** Where this button's submission goes, overriding the form's own.
7614
7771
 
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. */
7772
+ **The five `form*` overrides ride on a native submit button that stands in
7773
+ for this one**, because `requestSubmit(submitter)` refuses the inner
7774
+ `<button>` twice over: it is `type="button"`, and it sits in this shadow
7775
+ root, so its form owner is not the consumer's form. The stand-in is a
7776
+ hidden `<button type="submit">` in the form for the one synchronous call,
7777
+ so the platform applies the overrides to that submission alone and leaves
7778
+ the form as it was. See `submitAs`. */
7627
7779
  formAction?: (HelixIconButton["formAction"]) | undefined;
7628
7780
  /** How the submission is encoded, overriding the form's own. */
7629
7781
  formenctype?: (HelixIconButton["formEnctype"]) | undefined;
@@ -7669,13 +7821,10 @@ a press, so focus stays where the reader left it. */
7669
7821
  /** The value this button submits under its own `name`, as a native submit
7670
7822
  button does.
7671
7823
 
7672
- **Reported for exactly the submission this button starts and not otherwise.**
7824
+ **Sent with exactly the submission this button starts and not otherwise.**
7673
7825
  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.
7826
+ that submitted, and every other button on the form contributes nothing,
7827
+ which is what the native button standing in for this one at submit does.
7679
7828
 
7680
7829
  `CopyButton` has a `value` of its own meaning the text to put on the
7681
7830
  clipboard, which is not this and is why it is declared there rather than
@@ -7910,7 +8059,12 @@ the *first* update mirrors to a custom state instead, which is what
7910
8059
  `:state(open)` and `:state(checked)` are.
7911
8060
 
7912
8061
  `loading` writes nothing, because it is where every image starts and the
7913
- resting state of a mirror is the attribute's absence. */
8062
+ resting state of a mirror is the attribute's absence.
8063
+
8064
+ **Kept beside the custom states, and what the styled tier draws from.** An
8065
+ engine without `CustomStateSet`, Safari before 17.4 and Firefox before
8066
+ 126, records no state, and a picture faded in by `:state(loaded)` alone
8067
+ would stay transparent there for good. A sheet of your own can read either. */
7914
8068
  status?: (HelixImage["status"]) | undefined;
7915
8069
  };
7916
8070
 
@@ -8152,6 +8306,13 @@ export type HelixKbdHelixShortcutElementEvent =
8152
8306
  HelixKbdElementEvent<HelixShortcutEvent>;
8153
8307
 
8154
8308
  export type HelixKbdVueProps = {
8309
+ /** What the chord does to the control `for` names once it is pressed:
8310
+ `focus` moves focus to the control and `click` presses it.
8311
+
8312
+ Unset, the chord sends `helix-shortcut` and does nothing else, for a page
8313
+ that acts on the event itself. It acts only where `within` listens, after
8314
+ `helix-shortcut`, and not when a listener cancels that event. */
8315
+ activate?: (HelixKbd["activate"]) | undefined;
8155
8316
  /** Draws a chord under `keys` as one key per key, each a `key` part with a
8156
8317
  `separator` part between two where the platform writes a `+`, as GitHub
8157
8318
  and most docs draw `Ctrl` `K`.
@@ -8320,14 +8481,18 @@ shadow root reads a table in that root rather than one in the document.
8320
8481
 
8321
8482
  Set it to start with series hidden. Every chart reading the same table
8322
8483
  draws without them. Commas only, because a column's heading may hold a
8323
- space. For a ring the names are the rows. */
8484
+ space. For a ring the names are the rows. An array of names set on the
8485
+ property works too, as React sets `hiddenSeries={['Direct']}`; a toggle
8486
+ writes the list back as a string. */
8324
8487
  "hidden-series"?: (HelixLegend["hiddenSeries"]) | undefined;
8325
8488
  /** The series hidden on the table, by name, separated by commas: what
8326
8489
  `toggles` hides and shows.
8327
8490
 
8328
8491
  Set it to start with series hidden. Every chart reading the same table
8329
8492
  draws without them. Commas only, because a column's heading may hold a
8330
- space. For a ring the names are the rows. */
8493
+ space. For a ring the names are the rows. An array of names set on the
8494
+ property works too, as React sets `hiddenSeries={['Direct']}`; a toggle
8495
+ writes the list back as a string. */
8331
8496
  hiddenSeries?: (HelixLegend["hiddenSeries"]) | undefined;
8332
8497
  /** The name of the list, which a screen reader announces before its entries.
8333
8498
 
@@ -8417,12 +8582,14 @@ hydration, or diffed by a framework, it comes back holding whatever the
8417
8582
  last reader did rather than what the author wrote. `:state(open)` carries
8418
8583
  the resolved state for stylesheets, which is what the mirror is for. */
8419
8584
  open?: (HelixLightbox["open"]) | undefined;
8420
- /** Draws the viewer's own previous, next and close controls over the picture.
8585
+ /** Draws the viewer's own previous, next and close controls over the picture,
8586
+ and zoom-out and zoom-in controls where `max-zoom` allows zooming.
8421
8587
 
8422
8588
  Off by default, for a viewer whose chrome you compose in the `header` and
8423
8589
  `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`. */
8590
+ reader is idle, the previous and next ones say they are unavailable at
8591
+ either end of a set that does not `loop`, and the zoom ones at either end
8592
+ of the scale. */
8426
8593
  controls?: (HelixLightbox["controls"]) | undefined;
8427
8594
  /** Draws the place of the shown item in the set over the picture, in the
8428
8595
  words of `status-label`, such as "2 of 5". It hides with the controls while
@@ -8495,6 +8662,20 @@ Announced rather than only drawn, because the picture changing under a
8495
8662
  reader who cannot see it is otherwise silent. A consumer who has their own
8496
8663
  counter in the chrome can empty this and say it themselves. */
8497
8664
  statusLabel?: (HelixLightbox["statusLabel"]) | undefined;
8665
+ /** The zoom-in control's accessible name. */
8666
+ "zoom-in-label"?: (HelixLightbox["zoomInLabel"]) | undefined;
8667
+ /** The zoom-in control's accessible name. */
8668
+ zoomInLabel?: (HelixLightbox["zoomInLabel"]) | undefined;
8669
+ /** The zoom-out control's accessible name. */
8670
+ "zoom-out-label"?: (HelixLightbox["zoomOutLabel"]) | undefined;
8671
+ /** The zoom-out control's accessible name. */
8672
+ zoomOutLabel?: (HelixLightbox["zoomOutLabel"]) | undefined;
8673
+ /** What the live region says once a reader has stopped zooming, with the
8674
+ scale as a whole `{percent}` filled in. Empty it to say nothing. */
8675
+ "zoom-status-label"?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8676
+ /** What the live region says once a reader has stopped zooming, with the
8677
+ scale as a whole `{percent}` filled in. Empty it to say nothing. */
8678
+ zoomStatusLabel?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8498
8679
  };
8499
8680
 
8500
8681
  export type HelixLightboxVueEvents = {
@@ -8621,6 +8802,13 @@ sum can pass under the curve fitted through the sum beneath it, so a
8621
8802
  smoothed stack can draw a part as less than nothing. There is no such edge
8622
8803
  here, which is what lets a line take the reading aid. */
8623
8804
  curve?: (HelixLineChart["curve"]) | undefined;
8805
+ /** The series drawn as a dashed line, by their headings, separated by
8806
+ commas: `dashed="Forecast, Target"`.
8807
+
8808
+ For a series that is not a reading, such as a forecast or a goal, drawn
8809
+ beside the ones that are. Each takes a `line-dashed` part beside `line`,
8810
+ which a stylesheet draws dashed. Absent, every line is solid. */
8811
+ dashed?: (HelixLineChart["dashed"]) | undefined;
8624
8812
  /** Which rules are drawn across the plot, if any.
8625
8813
 
8626
8814
  Absent draws none, which is the honest default rather than a timid one: a
@@ -10164,6 +10352,12 @@ slot replaces it. */
10164
10352
 
10165
10353
  export type HelixMenuSectionVueEvents = {};
10166
10354
 
10355
+ /** `HelixMeter` component event */
10356
+ export type HelixMeterElementEvent<E = Event> = TypedEvent<HelixMeter, E>;
10357
+ /** `helix-band` event type */
10358
+ export type HelixMeterHelixBandElementEvent =
10359
+ HelixMeterElementEvent<HelixBandEvent>;
10360
+
10167
10361
  export type HelixMeterVueProps = {
10168
10362
  /** How strongly the reading is drawn. `subtle` draws it as a wash of its color.
10169
10363
 
@@ -10212,6 +10406,16 @@ stylesheet outside as `indicator-good`, `-fair` or `-poor` among the fill's
10212
10406
  part names, so reflecting here would write an attribute onto the host for
10213
10407
  no reader. */
10214
10408
  band?: (HelixMeter["band"]) | undefined;
10409
+ /** The words each band is said with under `live`, by its name, written as
10410
+ JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10411
+
10412
+ A band left out keeps its default: "Good", "Fair" or "Poor". */
10413
+ "band-labels"?: (HelixMeter["bandLabels"]) | undefined;
10414
+ /** The words each band is said with under `live`, by its name, written as
10415
+ JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10416
+
10417
+ A band left out keeps its default: "Good", "Fair" or "Poor". */
10418
+ bandLabels?: (HelixMeter["bandLabels"]) | undefined;
10215
10419
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
10216
10420
  Meter and ProgressBar take them: a unit, a currency, or a number of
10217
10421
  decimals. Written as JSON in the attribute.
@@ -10247,6 +10451,13 @@ Absent leaves the range unbanded. */
10247
10451
  A visible label in the `label` slot names it instead, with the words it
10248
10452
  shows, so the name and the label cannot disagree. */
10249
10453
  label?: (HelixMeter["label"]) | undefined;
10454
+ /** Says the reading in a polite `live` region each time it moves into
10455
+ another band, with the band's word, such as "92%, Poor".
10456
+
10457
+ For a meter whose value changes while it is on screen. Off by default,
10458
+ because a meter that reads a fixed level has nothing new to say. A meter
10459
+ with no bands says nothing. */
10460
+ live?: (HelixMeter["live"]) | undefined;
10250
10461
  /** The locale the percentage is written in, such as `fr` for `72 %`.
10251
10462
 
10252
10463
  Absent uses the runtime's own. */
@@ -10312,7 +10523,10 @@ fair summary of a task and a poor one of a quantity. */
10312
10523
  valueText?: (HelixMeter["valueText"]) | undefined;
10313
10524
  };
10314
10525
 
10315
- export type HelixMeterVueEvents = {};
10526
+ export type HelixMeterVueEvents = {
10527
+ /** 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. */
10528
+ "helix-band": HelixMeterHelixBandElementEvent;
10529
+ };
10316
10530
 
10317
10531
  export type HelixNavigationVueProps = {
10318
10532
  /** Whether the arrow keys move focus between the destinations.
@@ -10717,7 +10931,13 @@ than states: a duration, a weight, a count they are looking for rather than
10717
10931
  one they already know. */
10718
10932
  scrub?: (HelixNumberInput["scrub"]) | undefined;
10719
10933
  /** 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. */
10934
+ invalid, as it is in a native number field.
10935
+
10936
+ Unset, a step moves by one, or by one percent under a percent format, and
10937
+ a typed number is rounded to the smallest amount `format-options` shows
10938
+ rather than to whole steps, as React Aria's NumberField does: a field
10939
+ showing dollars keeps the cents typed into it. Without `format-options`
10940
+ the grid is whole numbers, as in a native number field. */
10721
10941
  step?: (HelixNumberInput["step"]) | undefined;
10722
10942
  /** The message the browser shows when the number is off the step grid, with
10723
10943
  `{below}` and `{above}` filled in with the nearest valid values. */
@@ -11136,6 +11356,10 @@ export type HelixOptionVueEvents = {
11136
11356
  "helix-select": HelixOptionHelixSelectElementEvent;
11137
11357
  };
11138
11358
 
11359
+ export type HelixOptionSeparatorVueProps = {};
11360
+
11361
+ export type HelixOptionSeparatorVueEvents = {};
11362
+
11139
11363
  export type HelixOrbVueProps = {
11140
11364
  /** Says each new state politely, such as "Working" and then "Done".
11141
11365
 
@@ -11565,12 +11789,9 @@ and this one was the English a form in another language still spoke in
11565
11789
  the bubble it raises on submit: `feedback` replaces the message under
11566
11790
  the field and does not reach that one. */
11567
11791
  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. */
11792
+ /** The autofill hint for the browser. `one-time-code` is why this defaults to
11793
+ anything at all: it is the token that lets a phone offer the code out of a
11794
+ message. */
11574
11795
  autocomplete?: (HelixPinInput["autocomplete"]) | undefined;
11575
11796
  /** Whether the form is submitted once the last box is filled, as Web
11576
11797
  Awesome's `autosubmit` and Radix's `autoSubmit`. Only for a code the field
@@ -11580,9 +11801,9 @@ took: a refused last character submits nothing. */
11580
11801
  to keep them as typed. Web Awesome's OTP input takes the same `case`, for
11581
11802
  a code a service reads in one case. */
11582
11803
  case?: (HelixPinInput["case"]) | undefined;
11583
- /** Accessible name for one box, with `{index}` and `{length}` filled in. */
11804
+ /** The name each box once had, with `{index}` and `{length}` filled in. */
11584
11805
  "cell-label"?: (HelixPinInput["cellLabel"]) | undefined;
11585
- /** Accessible name for one box, with `{index}` and `{length}` filled in. */
11806
+ /** The name each box once had, with `{index}` and `{length}` filled in. */
11586
11807
  cellLabel?: (HelixPinInput["cellLabel"]) | undefined;
11587
11808
  /** Separators drawn between the boxes: `#` or `*` for a box and anything
11588
11809
  else as it is written, so `###-###` draws a dash after the third. The
@@ -11590,21 +11811,22 @@ separators are hidden from screen readers and are not part of the value. */
11590
11811
  format?: (HelixPinInput["format"]) | undefined;
11591
11812
  /** How many characters the code has. */
11592
11813
  length?: (HelixPinInput["length"]) | undefined;
11593
- /** Whether the characters are hidden, the way a password is. */
11814
+ /** Whether the characters are hidden, the way a password is. The field is a
11815
+ password field, and each filled box draws `mask-character`. */
11594
11816
  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. */
11817
+ /** What a filled box draws under `mask`, in place of its character, as Web
11818
+ Awesome's `--mask-char`. */
11819
+ "mask-character"?: (HelixPinInput["maskCharacter"]) | undefined;
11820
+ /** What a filled box draws under `mask`, in place of its character, as Web
11821
+ Awesome's `--mask-char`. */
11822
+ maskCharacter?: (HelixPinInput["maskCharacter"]) | undefined;
11823
+ /** What an empty box shows, usually a single dot. It is not shown in the box
11824
+ the caret is in. Empty by default, because a row of boxes already reads as
11825
+ a row of boxes. */
11604
11826
  placeholder?: (HelixPinInput["placeholder"]) | undefined;
11605
- /** Whether the boxes block input. A read-only code still submits its value. */
11827
+ /** Whether the field blocks input. A read-only code still submits its value. */
11606
11828
  readonly?: (HelixPinInput["readOnly"]) | undefined;
11607
- /** Whether the boxes block input. A read-only code still submits its value. */
11829
+ /** Whether the field blocks input. A read-only code still submits its value. */
11608
11830
  readOnly?: (HelixPinInput["readOnly"]) | undefined;
11609
11831
  /** The message shown when the code is started and not finished, with
11610
11832
  `{length}` filled in. When it is unset, an English default is shown. */
@@ -11629,8 +11851,7 @@ marked letters wants `text`, which judges nothing.
11629
11851
 
11630
11852
  **Not reflected**: nothing selects on it, so reflecting only writes
11631
11853
  `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,
11854
+ attribute no consumer's markup had. The field takes it as `inputmode`,
11634
11855
  which is what makes the keyboard follow. */
11635
11856
  type?: (HelixPinInput["type"]) | undefined;
11636
11857
  /** Whether the control is disabled and cannot be used.
@@ -11742,6 +11963,12 @@ export type HelixPopoverVueEvents = {
11742
11963
  "helix-before-open": HelixPopoverHelixBeforeOpenElementEvent;
11743
11964
  };
11744
11965
 
11966
+ /** `HelixProgress` component event */
11967
+ export type HelixProgressElementEvent<E = Event> = TypedEvent<HelixProgress, E>;
11968
+ /** `helix-complete` event type */
11969
+ export type HelixProgressHelixCompleteElementEvent =
11970
+ HelixProgressElementEvent<HelixCompleteEvent>;
11971
+
11745
11972
  export type HelixProgressVueProps = {
11746
11973
  /** How strongly the bar is drawn.
11747
11974
 
@@ -11761,6 +11988,18 @@ from, so an outline there costs legibility and buys no distinction. `solid`
11761
11988
  is the resting state and is written by not writing it, per the rule that a
11762
11989
  reflected property takes no default. */
11763
11990
  emphasis?: (HelixProgress["emphasis"]) | undefined;
11991
+ /** The words a screen reader hears when the value reaches `max`, such as
11992
+ "Upload complete".
11993
+
11994
+ Said once, politely, as the work finishes. Empty says nothing, for a bar
11995
+ whose page announces the result itself. */
11996
+ "complete-label"?: (HelixProgress["completeLabel"]) | undefined;
11997
+ /** The words a screen reader hears when the value reaches `max`, such as
11998
+ "Upload complete".
11999
+
12000
+ Said once, politely, as the work finishes. Empty says nothing, for a bar
12001
+ whose page announces the result itself. */
12002
+ completeLabel?: (HelixProgress["completeLabel"]) | undefined;
11764
12003
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
11765
12004
  Meter and ProgressBar take them: a unit, a currency, or a number of
11766
12005
  decimals. Written as JSON in the attribute.
@@ -11871,12 +12110,21 @@ report progress. */
11871
12110
  valueText?: (HelixProgress["valueText"]) | undefined;
11872
12111
  };
11873
12112
 
11874
- export type HelixProgressVueEvents = {};
12113
+ export type HelixProgressVueEvents = {
12114
+ /** The value reached `max` from below. Its `value` is `max`. Not sent for a bar that starts full. */
12115
+ "helix-complete": HelixProgressHelixCompleteElementEvent;
12116
+ };
11875
12117
 
11876
12118
  /** `HelixQrCode` component event */
11877
12119
  export type HelixQrCodeElementEvent<E = Event> = TypedEvent<HelixQrCode, E>;
11878
12120
 
11879
12121
  export type HelixQrCodeVueProps = {
12122
+ /** The words a code with no `label` is named by, followed by its value where
12123
+ the value is a web address. */
12124
+ "code-label"?: (HelixQrCode["codeLabel"]) | undefined;
12125
+ /** The words a code with no `label` is named by, followed by its value where
12126
+ the value is a web address. */
12127
+ codeLabel?: (HelixQrCode["codeLabel"]) | undefined;
11880
12128
  /** The error correction level, which sets how much of the code can be lost
11881
12129
  and still scan.
11882
12130
 
@@ -11886,10 +12134,13 @@ chosen automatically when the slot is filled: it is the level that makes
11886
12134
  covering safe, and a consumer who fills the slot has said what they want
11887
12135
  without having to know that. */
11888
12136
  correction?: (HelixQrCode["correction"]) | undefined;
11889
- /** The image's accessible name.
12137
+ /** The image's accessible name: what the code is for, such as "Open the
12138
+ menu".
11890
12139
 
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. */
12140
+ Absent names it by `code-label` and, for a web address, the address,
12141
+ which is what a reader who cannot scan it needs. Any other value is left
12142
+ out of the name, since it may hold a secret, such as an authenticator's
12143
+ key or a network's password. */
11893
12144
  label?: (HelixQrCode["label"]) | undefined;
11894
12145
  /** How the modules are drawn.
11895
12146
 
@@ -12710,8 +12961,12 @@ runs of text, each with an optional kind, such as
12710
12961
 
12711
12962
  Absent, the pane is a plain field. Runs whose text does not add up to the
12712
12963
  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;
12964
+ the caret, and so is the source when the function throws. Set it as a
12965
+ property.
12966
+
12967
+ Named for what it returns, runs of text, where Code Block's `highlight`
12968
+ returns markup. */
12969
+ tokenize?: (HelixSandboxSource["tokenize"]) | undefined;
12715
12970
  };
12716
12971
 
12717
12972
  export type HelixSandboxSourceVueEvents = {
@@ -12848,6 +13103,20 @@ is read along. */
12848
13103
  "points-label"?: (HelixScatterChart["pointsLabel"]) | undefined;
12849
13104
  /** The word the summary uses for a row when it counts them. */
12850
13105
  pointsLabel?: (HelixScatterChart["pointsLabel"]) | undefined;
13106
+ /** The heading of a column whose numbers size the points, such as
13107
+ `Population`, which makes the chart a bubble chart.
13108
+
13109
+ That column is then a measure and no series: it draws no points of its
13110
+ own, and each point's area follows its row's number in it. Absent, every
13111
+ point is one size. */
13112
+ "size-by"?: (HelixScatterChart["sizeBy"]) | undefined;
13113
+ /** The heading of a column whose numbers size the points, such as
13114
+ `Population`, which makes the chart a bubble chart.
13115
+
13116
+ That column is then a measure and no series: it draws no points of its
13117
+ own, and each point's area follows its row's number in it. Absent, every
13118
+ point is one size. */
13119
+ sizeBy?: (HelixScatterChart["sizeBy"]) | undefined;
12851
13120
  /** Draws each series' line of best fit across the plot, by least squares, in
12852
13121
  the series' color: the regression line a reader would otherwise draw by
12853
13122
  eye.
@@ -13029,6 +13298,24 @@ the field and does not reach that one. */
13029
13298
  Passed to the listbox rather than acted on here, because the listbox owns
13030
13299
  the filtering, the empty state and the keyboard. */
13031
13300
  filterable?: (HelixSelect["filterable"]) | undefined;
13301
+ /** The open list's name where nothing names the Select, read by screen
13302
+ readers. The list has no visible name.
13303
+
13304
+ A Select named by `label`, `aria-label`, `aria-labelledby` or a `<label>`
13305
+ gives its list that name, and this is not used. Unnamed, the Select is
13306
+ reported once by the missing-name warning, and its list is not reported a
13307
+ second time for a name the page never wrote: the list is this element's,
13308
+ and so is the fallback. Combobox calls its list the same. */
13309
+ "list-label"?: (HelixSelect["listLabel"]) | undefined;
13310
+ /** The open list's name where nothing names the Select, read by screen
13311
+ readers. The list has no visible name.
13312
+
13313
+ A Select named by `label`, `aria-label`, `aria-labelledby` or a `<label>`
13314
+ gives its list that name, and this is not used. Unnamed, the Select is
13315
+ reported once by the missing-name warning, and its list is not reported a
13316
+ second time for a name the page never wrote: the list is this element's,
13317
+ and so is the fallback. Combobox calls its list the same. */
13318
+ listLabel?: (HelixSelect["listLabel"]) | undefined;
13032
13319
  /** Whether the options are still loading.
13033
13320
 
13034
13321
  Passed straight to the list, which is where the rows are and so where the
@@ -13043,6 +13330,16 @@ consumer wiring the same flag twice. */
13043
13330
  multiple?: (HelixSelect["multiple"]) | undefined;
13044
13331
  /** Shown on the trigger while nothing is chosen. */
13045
13332
  placeholder?: (HelixSelect["placeholder"]) | undefined;
13333
+ /** Where the list opens: `floating`, under the trigger and above it where
13334
+ there is no room, or `item-aligned`, over the trigger with the chosen
13335
+ option where the trigger is, as a native select does on macOS and Radix
13336
+ Select does by default.
13337
+
13338
+ Over the trigger, a reader's eye stays on the answer as the list opens
13339
+ round it, and a short move reaches the options either side. Near an edge
13340
+ of the screen the list moves to stay on it, so the option may sit beside
13341
+ the trigger rather than on it. It follows the page as it scrolls. */
13342
+ position?: (HelixSelect["position"]) | undefined;
13046
13343
  /** Whether the control is disabled and cannot be used.
13047
13344
 
13048
13345
  Reflected, because the styled tier selects on it, and mirrored to
@@ -13069,6 +13366,16 @@ imperatively later, and nothing is hydrating by then.
13069
13366
 
13070
13367
  Here rather than on each control. */
13071
13368
  name?: (HelixSelect["name"]) | undefined;
13369
+ /** Whether the trigger holds its group's tab stop.
13370
+
13371
+ A toolbar keeps one tab stop across its controls, and writing `tabindex`
13372
+ onto this element would change markup the consumer rendered, which a React
13373
+ consumer's hydration reports. A toolbar sets this property instead, and
13374
+ the stop moves on the trigger inside the shadow root, as Button's does.
13375
+
13376
+ No attribute, because it is coordination between elements rather than
13377
+ anything a consumer sets. */
13378
+ focusable?: (HelixSelect["focusable"]) | undefined;
13072
13379
  /** What the trigger shows for the chosen options: a function given them, in
13073
13380
  the order they appear, that returns text, an element or a Lit template.
13074
13381
 
@@ -13302,6 +13609,11 @@ filled in. Write it in the page's language, such as `{start} bis {end}`. */
13302
13609
  showValue?: (HelixSlider["showValue"]) | undefined;
13303
13610
  /** How far one press of an arrow key moves the thumb. */
13304
13611
  step?: (HelixSlider["step"]) | undefined;
13612
+ /** Whether each thumb shows its value in a bubble beside it, as Web
13613
+ Awesome's `with-tooltip`. The styled slider shows the bubbles while the
13614
+ slider is under the pointer or holds focus. They repeat what each thumb
13615
+ already reports, so a screen reader skips them. */
13616
+ tooltip?: (HelixSlider["tooltip"]) | undefined;
13305
13617
  /** What a screen reader says for a thumb's value, with `{value}` filled in,
13306
13618
  such as `{value} degrees`. Empty announces the number alone. */
13307
13619
  "value-text"?: (HelixSlider["valueText"]) | undefined;
@@ -13463,6 +13775,20 @@ separated by spaces.
13463
13775
  Absent marks none, and the drawing is what it was. Each mark is a part,
13464
13776
  placed at its reading, for a stylesheet to draw. */
13465
13777
  marks?: (HelixSparkline["marks"]) | undefined;
13778
+ /** What the readings come to, said after the name: `{first}` and `{last}`
13779
+ for the first and the last reading, `{high}` and `{low}` for the highest
13780
+ and the lowest, each written as the readout writes it.
13781
+
13782
+ Set it to the words of the page's language, or to nothing to say no
13783
+ more than the name. Said only where the sparkline is named. */
13784
+ "overview-label"?: (HelixSparkline["overviewLabel"]) | undefined;
13785
+ /** What the readings come to, said after the name: `{first}` and `{last}`
13786
+ for the first and the last reading, `{high}` and `{low}` for the highest
13787
+ and the lowest, each written as the readout writes it.
13788
+
13789
+ Set it to the words of the page's language, or to nothing to say no
13790
+ more than the name. Said only where the sparkline is named. */
13791
+ overviewLabel?: (HelixSparkline["overviewLabel"]) | undefined;
13466
13792
  /** What the readings are drawn as.
13467
13793
 
13468
13794
  Absent is `area`, a line with the region beneath it washed. `line` is the
@@ -13505,6 +13831,12 @@ it. `{position}` and `{count}` are replaced with the numbers, written in
13505
13831
  Set it to the words of the page's language, such as `{position} von
13506
13832
  {count}`, or to nothing to say no position. */
13507
13833
  positionLabel?: (HelixSparkline["positionLabel"]) | undefined;
13834
+ /** Two values a band is drawn between, behind the line, separated by a
13835
+ space: `range="60 100"` marks a normal range.
13836
+
13837
+ The scale stretches to hold the band where the readings do not reach it.
13838
+ Absent draws none. */
13839
+ range?: (HelixSparkline["range"]) | undefined;
13508
13840
  /** The numbers, separated by whitespace or by commas.
13509
13841
 
13510
13842
  An array assigned to the property works too, which is what React 19 does
@@ -13763,6 +14095,8 @@ export type HelixSplitterVueEvents = {
13763
14095
  "helix-collapse": HelixSplitterHelixCollapseElementEvent;
13764
14096
  /** Fired after the divider settles somewhere new, with the new position. */
13765
14097
  "helix-resized": HelixSplitterHelixResizedElementEvent;
14098
+ /** Fired each time a drag moves the divider, before it settles, as a range input does while it is dragged. Read `position` for where it is now. */
14099
+ input: HelixSplitterElementEvent;
13766
14100
  };
13767
14101
 
13768
14102
  export type HelixStatGroupVueProps = {
@@ -13862,6 +14196,12 @@ in both. Of those four combinations three are ones nobody should pick, and
13862
14196
  a property whose job is mostly to be left alone is a property that mostly
13863
14197
  catches people out. */
13864
14198
  orientation?: (HelixSteps["orientation"]) | undefined;
14199
+ /** What the `progress` part says to a screen reader, with `{percent}` filled
14200
+ in with `progress`. */
14201
+ "progress-label"?: (HelixSteps["progressLabel"]) | undefined;
14202
+ /** What the `progress` part says to a screen reader, with `{percent}` filled
14203
+ in with `progress`. */
14204
+ progressLabel?: (HelixSteps["progressLabel"]) | undefined;
13865
14205
  /** What each step is marked with.
13866
14206
 
13867
14207
  Absent is the state itself: a check where a stage is done, a target where
@@ -14380,6 +14720,13 @@ export type HelixTableVueEvents = {
14380
14720
  };
14381
14721
 
14382
14722
  export type HelixTableRowVueProps = {
14723
+ /** The URL a press on the row follows, which makes the whole row a link.
14724
+ Empty, the default, leaves presses to the row's cells. */
14725
+ href?: (HelixTableRow["href"]) | undefined;
14726
+ /** The `rel` of the row's link. You set it yourself, as on an anchor. */
14727
+ rel?: (HelixTableRow["rel"]) | undefined;
14728
+ /** Where the row's link opens, such as `_blank`. */
14729
+ target?: (HelixTableRow["target"]) | undefined;
14383
14730
  /** The key the table's `selected` lists this row by. Left empty, the row is
14384
14731
  known by its place among the rows as written. */
14385
14732
  value?: (HelixTableRow["value"]) | undefined;
@@ -14530,6 +14877,12 @@ export type HelixTagGroupHelixDismissElementEvent =
14530
14877
  HelixTagGroupElementEvent<HelixDismissEvent>;
14531
14878
 
14532
14879
  export type HelixTagGroupVueProps = {
14880
+ /** The words the group shows and says once its last tag is removed, where
14881
+ nothing is in the `empty` slot. */
14882
+ "empty-label"?: (HelixTagGroup["emptyLabel"]) | undefined;
14883
+ /** The words the group shows and says once its last tag is removed, where
14884
+ nothing is in the `empty` slot. */
14885
+ emptyLabel?: (HelixTagGroup["emptyLabel"]) | undefined;
14533
14886
  /** The name of the set, such as "Filters", which a screen reader announces
14534
14887
  before its tags. */
14535
14888
  label?: (HelixTagGroup["label"]) | undefined;
@@ -15090,7 +15443,8 @@ Handed to the list. The value is `HH:mm` on twenty-four hours either way. */
15090
15443
  hourCycle?: (HelixTimeInput["hourCycle"]) | undefined;
15091
15444
  /** Language tag the times are written in.
15092
15445
 
15093
- Absent uses the runtime's own. */
15446
+ Absent is the page's: the `lang` of the nearest element with one, as
15447
+ Shoelace and Web Awesome read it, then the runtime's own. */
15094
15448
  locale?: (HelixTimeInput["locale"]) | undefined;
15095
15449
  /** Latest time that can be chosen, as `HH:mm`. */
15096
15450
  max?: (HelixTimeInput["max"]) | undefined;
@@ -15249,6 +15603,19 @@ export type HelixTimePickerHelixBeforeChangeElementEvent =
15249
15603
  HelixTimePickerElementEvent<HelixBeforeChangeEvent>;
15250
15604
 
15251
15605
  export type HelixTimePickerVueProps = {
15606
+ /** A message under the picker, such as what is wrong with the answer.
15607
+
15608
+ While set, the picker is invalid and does not submit, as a field's
15609
+ `feedback` is, it is marked invalid to a reader and to CSS, and the
15610
+ controls a reader answers with are described by it. */
15611
+ feedback?: (HelixTimePicker["feedback"]) | undefined;
15612
+ /** Whether the answer fails validation, marked on the controls a reader
15613
+ answers with and as `:state(invalid)`.
15614
+
15615
+ A flag a field that wraps the picker sets, since that field owns the
15616
+ label, the hint and the message; on its own, `feedback` both marks the
15617
+ picker and says why. */
15618
+ invalid?: (HelixTimePicker["invalid"]) | undefined;
15252
15619
  /** The value the control starts with. A form reset returns it to this value,
15253
15620
  and to the `value` attribute where this one is not written, as a native
15254
15621
  control resets to the `value` it declares. */
@@ -15322,21 +15689,14 @@ English, "Stunde" in German. */
15322
15689
  Absent is the locale's own word, from `Intl.DisplayNames`: "Hour" in
15323
15690
  English, "Stunde" in German. */
15324
15691
  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
15692
  /** Accessible name for the list, which has no visible one of its own.
15334
15693
 
15335
15694
  An `aria-label` or `aria-labelledby` on the host names the list instead. */
15336
15695
  label?: (HelixTimePicker["label"]) | undefined;
15337
- /** Language tag the times are written in.
15696
+ /** Language tag the times and the wheels' names are written in.
15338
15697
 
15339
- Absent uses the runtime's own. */
15698
+ Absent is the page's: the `lang` of the nearest element with one, as
15699
+ Shoelace and Web Awesome read it, then the runtime's own. */
15340
15700
  locale?: (HelixTimePicker["locale"]) | undefined;
15341
15701
  /** Stops the arrow keys in the list from choosing each time they move to.
15342
15702
  Enter, Space or a click chooses.
@@ -16546,6 +16906,30 @@ export type HelixTrendVueProps = {
16546
16906
  "down-label"?: (HelixTrend["downLabel"]) | undefined;
16547
16907
  /** The word read out for a move down. */
16548
16908
  downLabel?: (HelixTrend["downLabel"]) | undefined;
16909
+ /** `Intl.NumberFormat` options `value` is written with, as React Aria's
16910
+ NumberField takes them: a percent, a currency, a unit or a number of
16911
+ decimals. Written as JSON in the attribute.
16912
+
16913
+ ```html
16914
+ <helix-trend value="-0.084" format-options='{"style":"percent","maximumFractionDigits":1}'></helix-trend>
16915
+ ```
16916
+
16917
+ The example says "Down 8.4%". The size is written without a sign, since
16918
+ the arrow and the word say which way; set `signDisplay` for one. Absent
16919
+ writes the number as the locale writes any number. */
16920
+ "format-options"?: (HelixTrend["formatOptions"]) | undefined;
16921
+ /** `Intl.NumberFormat` options `value` is written with, as React Aria's
16922
+ NumberField takes them: a percent, a currency, a unit or a number of
16923
+ decimals. Written as JSON in the attribute.
16924
+
16925
+ ```html
16926
+ <helix-trend value="-0.084" format-options='{"style":"percent","maximumFractionDigits":1}'></helix-trend>
16927
+ ```
16928
+
16929
+ The example says "Down 8.4%". The size is written without a sign, since
16930
+ the arrow and the word say which way; set `signDisplay` for one. Absent
16931
+ writes the number as the locale writes any number. */
16932
+ formatOptions?: (HelixTrend["formatOptions"]) | undefined;
16549
16933
  /** Which movement counts as an improvement for this metric.
16550
16934
 
16551
16935
  Absent states the movement without judging it, which is the honest default:
@@ -16553,6 +16937,11 @@ revenue up is good news and latency up is bad news, and only the consumer
16553
16937
  knows which one this is. Set it once per metric and it holds while the
16554
16938
  movement changes underneath. */
16555
16939
  good?: (HelixTrend["good"]) | undefined;
16940
+ /** The locale `value` is written in, such as `de` for `1.234,5`.
16941
+
16942
+ Absent uses the runtime's own. Set it on a page rendered on a server, so
16943
+ the server and the browser write the figure alike. */
16944
+ locale?: (HelixTrend["locale"]) | undefined;
16556
16945
  /** Which way the measurement moved.
16557
16946
 
16558
16947
  Absent is neutral, so a trend with nothing to report draws a bar rather
@@ -16571,6 +16960,14 @@ three. */
16571
16960
  "up-label"?: (HelixTrend["upLabel"]) | undefined;
16572
16961
  /** The word read out for a move up. */
16573
16962
  upLabel?: (HelixTrend["upLabel"]) | undefined;
16963
+ /** The change as a signed number, such as `0.12` or `-8`, which sets the
16964
+ movement by its sign and is written as the metric.
16965
+
16966
+ Above zero is up, below is down, and zero is neutral; `movement` wins when
16967
+ both are written. The size is written in the `value` part with
16968
+ `format-options` and `locale`, in place of a slotted metric. Absent leaves
16969
+ the movement to `movement` and the metric to the slot. */
16970
+ value?: (HelixTrend["value"]) | undefined;
16574
16971
  /** The word read out after the direction when the move is a setback. */
16575
16972
  "worse-label"?: (HelixTrend["worseLabel"]) | undefined;
16576
16973
  /** The word read out after the direction when the move is a setback. */
@@ -16693,7 +17090,7 @@ arrives or leaves, so previous goes back through what has played. */
16693
17090
  };
16694
17091
 
16695
17092
  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. */
17093
+ /** 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
17094
  "helix-activate": HelixVideoPlaylistHelixActivateElementEvent;
16698
17095
  /** The current entry is about to change. Cancelable: cancel it to keep the current entry. */
16699
17096
  "helix-before-activate": HelixVideoPlaylistHelixBeforeActivateElementEvent;
@@ -16830,7 +17227,11 @@ assumed: it is absent on iPhone and behind a flag in Firefox, and a button
16830
17227
  that cannot work is worse than one that is not there.
16831
17228
 
16832
17229
  The names are `speed`, `pip`, `remote`, `download`, `rewind`, `forward`,
16833
- `previous` and `next`.
17230
+ `previous` and `next`. `full` stands for `rewind`, `forward`, `speed`,
17231
+ `pip` and `remote` in that order, the controls that act on the video by
17232
+ themselves, as Web Awesome's `full` preset does, and a name it already
17233
+ holds is drawn once. `extra-controls="full"` is the whole bar, and
17234
+ `overflow-controls="full"` puts all of it behind one button.
16834
17235
 
16835
17236
  **`previous` and `next` do nothing to the video, and are offered anyway.**
16836
17237
  They announce `helix-previous` and `helix-next` and stop there, so what
@@ -16860,7 +17261,11 @@ assumed: it is absent on iPhone and behind a flag in Firefox, and a button
16860
17261
  that cannot work is worse than one that is not there.
16861
17262
 
16862
17263
  The names are `speed`, `pip`, `remote`, `download`, `rewind`, `forward`,
16863
- `previous` and `next`.
17264
+ `previous` and `next`. `full` stands for `rewind`, `forward`, `speed`,
17265
+ `pip` and `remote` in that order, the controls that act on the video by
17266
+ themselves, as Web Awesome's `full` preset does, and a name it already
17267
+ holds is drawn once. `extra-controls="full"` is the whole bar, and
17268
+ `overflow-controls="full"` puts all of it behind one button.
16864
17269
 
16865
17270
  **`previous` and `next` do nothing to the video, and are offered anyway.**
16866
17271
  They announce `helix-previous` and `helix-next` and stop there, so what
@@ -17171,6 +17576,10 @@ export type HelixVirtualListHelixRangeChangeElementEvent =
17171
17576
  HelixVirtualListElementEvent<HelixRangeChangeEvent>;
17172
17577
 
17173
17578
  export type HelixVirtualListVueProps = {
17579
+ /** How many items a line holds. One, the default, is a list; more lays the
17580
+ items out as a grid of that many equal columns, windowed a line at a
17581
+ time, with Left and Right moving along a line. */
17582
+ columns?: (HelixVirtualList["columns"]) | undefined;
17174
17583
  /** The height of one row, in pixels, used to find the row at a scroll offset.
17175
17584
 
17176
17585
  An estimate rather than a measurement while `measured` is off, which is
@@ -17291,10 +17700,16 @@ export type CustomCssProperties = {
17291
17700
  "--announcement-background-color"?: (string) | undefined;
17292
17701
  /** 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
17702
  "--announcement-block-size"?: (string) | undefined;
17703
+ /** The size of the message's text. */
17704
+ "--announcement-font-size"?: (string) | undefined;
17294
17705
  /** The message's color, to pair with a fill set through the background hook. */
17295
17706
  "--announcement-foreground-color"?: (string) | undefined;
17296
17707
  /** The inline padding, matched to the page. */
17297
17708
  "--announcement-inset"?: (string) | undefined;
17709
+ /** Where the message sits in the band. Centered by default; `start` lines it up with the page under it. */
17710
+ "--announcement-text-align"?: (string) | undefined;
17711
+ /** The color a toned band's tint and outline are mixed from, in place of the tone's. */
17712
+ "--announcement-tone-color"?: (string) | undefined;
17298
17713
  /** The filter behind the banner. Set it to `none` when you pair the header with a panel. */
17299
17714
  "--app-header-backdrop"?: (string) | undefined;
17300
17715
  /** Fill behind the banner. */
@@ -17315,6 +17730,8 @@ export type CustomCssProperties = {
17315
17730
  "--area-chart-gap"?: (string) | undefined;
17316
17731
  /** Color of the rules drawn across the plot under `gridlines`. */
17317
17732
  "--area-chart-gridline-color"?: (string) | undefined;
17733
+ /** How much of each band shows under `overlap`, where the bands in front let the ones behind show through. */
17734
+ "--area-chart-overlap-opacity"?: (string) | undefined;
17318
17735
  /** Thickness of a band's top edge. Overrides `--chart-stroke`. */
17319
17736
  "--area-chart-width"?: (string) | undefined;
17320
17737
  /** 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 +17744,22 @@ export type CustomCssProperties = {
17327
17744
  "--aura-haze"?: (string) | undefined;
17328
17745
  /** 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
17746
  "--aura-peak"?: (string) | undefined;
17747
+ /** The fill of the count of avatars past `max`. */
17748
+ "--avatar-group-overflow-background-color"?: (string) | undefined;
17749
+ /** The color of the count of avatars past `max`. */
17750
+ "--avatar-group-overflow-color"?: (string) | undefined;
17751
+ /** The type size of the count of avatars past `max`. */
17752
+ "--avatar-group-overflow-font-size"?: (string) | undefined;
17330
17753
  /** How far each avatar sits over the one before it. */
17331
17754
  "--avatar-group-overlap"?: (string) | undefined;
17332
17755
  /** Color of the ring that separates one avatar from the next. */
17333
17756
  "--avatar-group-ring-color"?: (string) | undefined;
17334
17757
  /** Fill behind the initials. */
17335
17758
  "--avatar-background-color"?: (string) | undefined;
17759
+ /** The color of the initials. */
17760
+ "--avatar-color"?: (string) | undefined;
17761
+ /** The weight of the initials. */
17762
+ "--avatar-font-weight"?: (string) | undefined;
17336
17763
  /** Edge length of the avatar. */
17337
17764
  "--avatar-size"?: (string) | undefined;
17338
17765
  /** How long one beat of `attention` takes. */
@@ -17341,10 +17768,14 @@ export type CustomCssProperties = {
17341
17768
  "--badge-background-color"?: (string) | undefined;
17342
17769
  /** The color of the count, to pair with a fill set through `--badge-background-color`. */
17343
17770
  "--badge-color"?: (string) | undefined;
17771
+ /** The weight of the count. */
17772
+ "--badge-font-weight"?: (string) | undefined;
17344
17773
  /** The space between the content and the count under `placement="inline"`. */
17345
17774
  "--badge-gap"?: (string) | undefined;
17346
17775
  /** Pulls the mark in from the corner, along both axes. */
17347
17776
  "--badge-offset"?: (string) | undefined;
17777
+ /** How far the indicator's corners are rounded. */
17778
+ "--badge-radius"?: (string) | undefined;
17348
17779
  /** The color of the ring between the indicator and what is behind it. */
17349
17780
  "--badge-ring-color"?: (string) | undefined;
17350
17781
  /** Fill of the category band under the pointer. */
@@ -17405,6 +17836,10 @@ export type CustomCssProperties = {
17405
17836
  "--breadcrumbs-font-size"?: (string) | undefined;
17406
17837
  /** Space between items and separators. */
17407
17838
  "--breadcrumbs-gap"?: (string) | undefined;
17839
+ /** Color of the line between the two halves of a split crumb, under `separation="outlined"`. */
17840
+ "--breadcrumbs-split-divider-color"?: (string) | undefined;
17841
+ /** Fill across both halves of a split crumb while one of them is under the pointer, under the default `plain` separation. */
17842
+ "--breadcrumbs-split-fill"?: (string) | undefined;
17408
17843
  /** Space between the buttons, when `spaced`. */
17409
17844
  "--button-group-gap"?: (string) | undefined;
17410
17845
  /** Fill behind the button, in every state. */
@@ -17541,8 +17976,18 @@ export type CustomCssProperties = {
17541
17976
  "--chat-message-background-color-me"?: (string) | undefined;
17542
17977
  /** Text color in a turn. */
17543
17978
  "--chat-message-color"?: (string) | undefined;
17979
+ /** Text color in turns by `me`. */
17980
+ "--chat-message-color-me"?: (string) | undefined;
17544
17981
  /** Maximum width of a turn before its text wraps. */
17545
17982
  "--chat-message-measure"?: (string) | undefined;
17983
+ /** Color of the line under a turn, with its time and state. */
17984
+ "--chat-message-meta-color"?: (string) | undefined;
17985
+ /** Space above and below a turn's content inside its bubble. */
17986
+ "--chat-message-padding-block"?: (string) | undefined;
17987
+ /** Space either side of a turn's content inside its bubble. */
17988
+ "--chat-message-padding-inline"?: (string) | undefined;
17989
+ /** Corner radius of a turn's bubble. */
17990
+ "--chat-message-radius"?: (string) | undefined;
17546
17991
  /** Space between turns. */
17547
17992
  "--chat-gap"?: (string) | undefined;
17548
17993
  /** How tall the conversation may get before the transcript scrolls. */
@@ -17641,6 +18086,10 @@ export type CustomCssProperties = {
17641
18086
  "--color-picker-sample-size"?: (string) | undefined;
17642
18087
  /** The width and height of one preset. */
17643
18088
  "--color-picker-swatch-size"?: (string) | undefined;
18089
+ /** The widest the hue ring draws, with `wheel`. The picker's width by default. */
18090
+ "--color-picker-wheel-size"?: (string) | undefined;
18091
+ /** The width of the hue ring's band, with `wheel`. */
18092
+ "--color-picker-wheel-thickness"?: (string) | undefined;
17644
18093
  /** The chosen brightness, 0 to 100, as a percentage. */
17645
18094
  "--color-picker-brightness"?: (string) | undefined;
17646
18095
  /** The chosen hue, 0 to 360, unitless. */
@@ -17705,6 +18154,10 @@ export type CustomCssProperties = {
17705
18154
  "--data-table-color"?: (string) | undefined;
17706
18155
  /** The grid track list for the columns. It overrides the list worked out from the columns. */
17707
18156
  "--data-table-columns"?: (string) | undefined;
18157
+ /** The space between the grid and the footer below it. */
18158
+ "--data-table-footer-gap"?: (string) | undefined;
18159
+ /** The space between the pieces of the footer, such as a summary and the pagination. */
18160
+ "--data-table-footer-item-gap"?: (string) | undefined;
17708
18161
  /** The fill behind a heading while `windowed`. It is opaque, because rows scroll under the sticky heading. Unset otherwise. */
17709
18162
  "--data-table-heading-background-color"?: (string) | undefined;
17710
18163
  /** The text color of a heading. */
@@ -17715,6 +18168,10 @@ export type CustomCssProperties = {
17715
18168
  "--data-table-more-border-color"?: (string) | undefined;
17716
18169
  /** The fill behind the button in the `load-more` row while the pointer is over it. */
17717
18170
  "--data-table-more-hover-background-color"?: (string) | undefined;
18171
+ /** The space above and below the words of the button in the `load-more` row. */
18172
+ "--data-table-more-padding-block"?: (string) | undefined;
18173
+ /** The space either side of the words of the button in the `load-more` row. */
18174
+ "--data-table-more-padding-inline"?: (string) | undefined;
17718
18175
  /** The corner radius of the button in the `load-more` row. */
17719
18176
  "--data-table-more-radius"?: (string) | undefined;
17720
18177
  /** The space above and below a cell's content. */
@@ -17723,12 +18180,18 @@ export type CustomCssProperties = {
17723
18180
  "--data-table-padding-inline"?: (string) | undefined;
17724
18181
  /** 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
18182
  "--data-table-rule-color"?: (string) | undefined;
18183
+ /** The fill across a selected row. */
18184
+ "--data-table-selected-background-color"?: (string) | undefined;
17726
18185
  /** The font size of headings and cells. */
17727
18186
  "--data-table-text"?: (string) | undefined;
17728
18187
  /** The color of the mark that opens and closes a row of a tree grid. */
17729
18188
  "--data-table-toggle-color"?: (string) | undefined;
18189
+ /** 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. */
18190
+ "--data-table-toggle-gap"?: (string) | undefined;
17730
18191
  /** 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
18192
  "--data-table-toggle-size"?: (string) | undefined;
18193
+ /** The space between the toolbar and the grid below it. */
18194
+ "--data-table-toolbar-gap"?: (string) | undefined;
17732
18195
  /** 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
18196
  "--data-table-cell-align"?: (string) | undefined;
17734
18197
  /** 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 +18218,8 @@ export type CustomCssProperties = {
17755
18218
  "--date-picker-columns"?: (string) | undefined;
17756
18219
  /** Width and height of a day. */
17757
18220
  "--date-picker-day-size"?: (string) | undefined;
18221
+ /** The color of the message under the calendar, while `feedback` is set. */
18222
+ "--date-picker-feedback-color"?: (string) | undefined;
17758
18223
  /** Height of a month or a year in the months and years views, where `max-view` is set. */
17759
18224
  "--date-picker-period-size"?: (string) | undefined;
17760
18225
  /** Band behind the days in a range. */
@@ -17767,18 +18232,38 @@ export type CustomCssProperties = {
17767
18232
  "--date-picker-track-size"?: (string) | undefined;
17768
18233
  /** How many month columns are drawn, capped at two. `--date-picker-columns` overrides it. */
17769
18234
  "--date-picker-column-count"?: (string) | undefined;
18235
+ /** The space between the value and the controls in `actions`. */
18236
+ "--description-list-actions-gap"?: (string) | undefined;
18237
+ /** The space between a label and its value when the label sits over it. */
18238
+ "--description-list-item-gap"?: (string) | undefined;
18239
+ /** The color of a label. */
18240
+ "--description-list-label-color"?: (string) | undefined;
18241
+ /** The size of a label's text. */
18242
+ "--description-list-label-font-size"?: (string) | undefined;
18243
+ /** The weight of a label's text. */
18244
+ "--description-list-label-weight"?: (string) | undefined;
18245
+ /** The color of a value. */
18246
+ "--description-list-value-color"?: (string) | undefined;
18247
+ /** The space between the column of labels and the column of values, with `direction="row"`. */
18248
+ "--description-list-column-gap"?: (string) | undefined;
17770
18249
  /** Space between one pair and the next. The default is smaller with `direction="row"` than when stacked. Setting this property replaces both defaults. */
17771
18250
  "--description-list-gap"?: (string) | undefined;
18251
+ /** The panel's fill. Follows `--helix-color-surface-overlay`. */
18252
+ "--dialog-background-color"?: (string) | undefined;
17772
18253
  /** Color of the panel's edge. */
17773
18254
  "--dialog-border-color"?: (string) | undefined;
17774
18255
  /** 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
18256
  "--dialog-border-width"?: (string) | undefined;
18257
+ /** Color of the words in the panel. Follows `--helix-color-foreground`. */
18258
+ "--dialog-color"?: (string) | undefined;
17776
18259
  /** How big the mark above the title is. */
17777
18260
  "--dialog-icon-size"?: (string) | undefined;
17778
18261
  /** Width of the panel. */
17779
18262
  "--dialog-inline-size"?: (string) | undefined;
17780
18263
  /** Padding inside the panel. */
17781
18264
  "--dialog-padding"?: (string) | undefined;
18265
+ /** The panel's corner radius. Follows `--helix-radii-sm`. */
18266
+ "--dialog-radius"?: (string) | undefined;
17782
18267
  /** How far the panel rises as it opens. Follows `--helix-space-lg`. */
17783
18268
  "--dialog-rise"?: (string) | undefined;
17784
18269
  /** The tint over the page behind the dialog. Set it on the host, because a `var()` written inside `::backdrop` cannot read a token. */
@@ -17845,6 +18330,8 @@ export type CustomCssProperties = {
17845
18330
  "--drilldown-item-block-size"?: (string) | undefined;
17846
18331
  /** Color of a row's words. */
17847
18332
  "--drilldown-item-color"?: (string) | undefined;
18333
+ /** Color of the line under a row's label. */
18334
+ "--drilldown-item-description-color"?: (string) | undefined;
17848
18335
  /** How faint a disabled row is drawn. */
17849
18336
  "--drilldown-item-disabled-opacity"?: (string) | undefined;
17850
18337
  /** Size of a row's words. */
@@ -17919,12 +18406,20 @@ export type CustomCssProperties = {
17919
18406
  "--file-input-file-radius"?: (string) | undefined;
17920
18407
  /** Padding inside the field. */
17921
18408
  "--file-input-padding"?: (string) | undefined;
18409
+ /** The filled part of a file's upload bar. */
18410
+ "--file-input-progress-color"?: (string) | undefined;
18411
+ /** The unfilled part of a file's upload bar. */
18412
+ "--file-input-progress-track-color"?: (string) | undefined;
17922
18413
  /** Corner radius of the field. */
17923
18414
  "--file-input-radius"?: (string) | undefined;
17924
18415
  /** The remove button's icon at rest. */
17925
18416
  "--file-input-remove-color"?: (string) | undefined;
17926
18417
  /** The remove button's icon under the pointer. */
17927
18418
  "--file-input-remove-color-hover"?: (string) | undefined;
18419
+ /** The words beside a file's upload bar. */
18420
+ "--file-input-status-color"?: (string) | undefined;
18421
+ /** The words beside a file whose upload failed. */
18422
+ "--file-input-status-color-error"?: (string) | undefined;
17928
18423
  /** The fill behind the chip. */
17929
18424
  "--filter-input-chip-background-color"?: (string) | undefined;
17930
18425
  /** The color of the chip's border. */
@@ -18007,6 +18502,10 @@ export type CustomCssProperties = {
18007
18502
  "--heatmap-cell-size"?: (string) | undefined;
18008
18503
  /** Space between cells. Zero draws one continuous field. */
18009
18504
  "--heatmap-gap"?: (string) | undefined;
18505
+ /** The color of the ring on a selected cell, under `selection-mode`. */
18506
+ "--heatmap-selected-color"?: (string) | undefined;
18507
+ /** How thick the ring on a selected cell is. */
18508
+ "--heatmap-selected-width"?: (string) | undefined;
18010
18509
  /** The weakest step of the magnitude ramp, used by `tones="1 …"`. */
18011
18510
  "--heatmap-tone-1"?: (string) | undefined;
18012
18511
  /** The second step of the magnitude ramp. */
@@ -18039,6 +18538,12 @@ export type CustomCssProperties = {
18039
18538
  "--icon-size"?: (string) | undefined;
18040
18539
  /** The aspect ratio of the box, such as `16 / 9`. */
18041
18540
  "--image-aspect"?: (string) | undefined;
18541
+ /** How long the picture takes to fade in once it loads. `0s` shows it at once. */
18542
+ "--image-fade-duration"?: (string) | undefined;
18543
+ /** The background behind the fallback. Defaults to the placeholder's. */
18544
+ "--image-fallback-background-color"?: (string) | undefined;
18545
+ /** The color of the fallback's text. */
18546
+ "--image-fallback-color"?: (string) | undefined;
18042
18547
  /** How the image fills the box, as an `object-fit` value. */
18043
18548
  "--image-fit"?: (string) | undefined;
18044
18549
  /** The background behind the placeholder and the fallback. */
@@ -18059,16 +18564,34 @@ export type CustomCssProperties = {
18059
18564
  "--input-size"?: (string) | undefined;
18060
18565
  /** The fill of the key. */
18061
18566
  "--kbd-background-color"?: (string) | undefined;
18567
+ /** The height of a key, and the least width of one, in `em` of the text around it. */
18568
+ "--kbd-block-size"?: (string) | undefined;
18062
18569
  /** The color of the key's border and its bottom edge. */
18063
18570
  "--kbd-border-color"?: (string) | undefined;
18571
+ /** The color of the key's label. */
18572
+ "--kbd-color"?: (string) | undefined;
18573
+ /** The face of the key's label. Monospaced by default. */
18574
+ "--kbd-font-family"?: (string) | undefined;
18575
+ /** The size of the key's label, in `em` of the text around it. */
18576
+ "--kbd-font-size"?: (string) | undefined;
18577
+ /** The weight of the key's label. */
18578
+ "--kbd-font-weight"?: (string) | undefined;
18064
18579
  /** The space between two keys of a chord under `caps`. */
18065
18580
  "--kbd-gap"?: (string) | undefined;
18581
+ /** The space either side of the key's label. */
18582
+ "--kbd-padding-inline"?: (string) | undefined;
18583
+ /** How far the key's corners are rounded. */
18584
+ "--kbd-radius"?: (string) | undefined;
18066
18585
  /** The color of the `+` between two keys of a chord under `caps`. */
18067
18586
  "--kbd-separator-color"?: (string) | undefined;
18587
+ /** The color of the series names. */
18588
+ "--legend-color"?: (string) | undefined;
18068
18589
  /** The direction the entries run: `row`, which wraps, or `column`. */
18069
18590
  "--legend-direction"?: (string) | undefined;
18070
18591
  /** The space between a swatch and its name. */
18071
18592
  "--legend-entry-gap"?: (string) | undefined;
18593
+ /** The type size of the series names. */
18594
+ "--legend-font-size"?: (string) | undefined;
18072
18595
  /** The space between entries. */
18073
18596
  "--legend-gap"?: (string) | undefined;
18074
18597
  /** How strongly a hidden series' entry is drawn, under `toggles`. */
@@ -18109,6 +18632,8 @@ export type CustomCssProperties = {
18109
18632
  "--line-chart-band-color"?: (string) | undefined;
18110
18633
  /** Height of the drawing. */
18111
18634
  "--line-chart-block-size"?: (string) | undefined;
18635
+ /** The dash pattern of a series `dashed` names, as `stroke-dasharray` takes it. */
18636
+ "--line-chart-dash"?: (string) | undefined;
18112
18637
  /** Space between the drawing and its labels. */
18113
18638
  "--line-chart-gap"?: (string) | undefined;
18114
18639
  /** Color of the rules drawn across the plot under `gridlines`. */
@@ -18287,6 +18812,10 @@ export type CustomCssProperties = {
18287
18812
  "--menu-min-inline-size"?: (string) | undefined;
18288
18813
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it. */
18289
18814
  "--menu-shadow"?: (string) | undefined;
18815
+ /** 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. */
18816
+ "--floating-anchor-inline-size"?: (string) | undefined;
18817
+ /** 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. */
18818
+ "--floating-available-block-size"?: (string) | undefined;
18290
18819
  /** Color of the heading. */
18291
18820
  "--menu-section-heading-color"?: (string) | undefined;
18292
18821
  /** The fill color. Overrides the band's tone. */
@@ -18309,6 +18838,12 @@ export type CustomCssProperties = {
18309
18838
  "--meter-track-color"?: (string) | undefined;
18310
18839
  /** How long the fill takes to move to a new reading, and to change its color. `0s` moves it at once. */
18311
18840
  "--meter-transition-duration"?: (string) | undefined;
18841
+ /** The color of the reading shown under `show-value`. */
18842
+ "--meter-value-color"?: (string) | undefined;
18843
+ /** The space between the bar and the reading under `show-value`. */
18844
+ "--meter-value-gap"?: (string) | undefined;
18845
+ /** The type size of the reading shown under `show-value`. */
18846
+ "--meter-value-size"?: (string) | undefined;
18312
18847
  /** Where a bound sits on the arc, as a length along it. */
18313
18848
  "--meter-along"?: (string) | undefined;
18314
18849
  /** Where a bound sits on a linear track, as a percentage. */
@@ -18425,16 +18960,46 @@ export type CustomCssProperties = {
18425
18960
  "--option-padding"?: (string) | undefined;
18426
18961
  /** The corner radius of the row. A listbox and a select remove it. */
18427
18962
  "--option-radius"?: (string) | undefined;
18963
+ /** The rule's color. */
18964
+ "--option-separator-color"?: (string) | undefined;
18965
+ /** The space above and below the rule. */
18966
+ "--option-separator-space"?: (string) | undefined;
18967
+ /** The rule's thickness. */
18968
+ "--option-separator-thickness"?: (string) | undefined;
18428
18969
  /** The color of the nearest dots. Defaults to `currentColor`. */
18429
18970
  "--orb-color"?: (string) | undefined;
18430
18971
  /** The color the farthest dots fade toward. Defaults to the page's background. */
18431
18972
  "--orb-ground"?: (string) | undefined;
18432
18973
  /** The diameter. Overrides `size`. */
18433
18974
  "--orb-size"?: (string) | undefined;
18975
+ /** The color of the heading in the `heading` slot. */
18976
+ "--outline-heading-color"?: (string) | undefined;
18434
18977
  /** How far each level is inset from the one above. */
18435
18978
  "--outline-indent"?: (string) | undefined;
18979
+ /** The color of the mark that moves to the section in view. */
18980
+ "--outline-indicator-color"?: (string) | undefined;
18981
+ /** The color of a link. */
18982
+ "--outline-link-color"?: (string) | undefined;
18983
+ /** The color of the link to the section in view. */
18984
+ "--outline-link-current-color"?: (string) | undefined;
18985
+ /** The weight of the link to the section in view. */
18986
+ "--outline-link-current-weight"?: (string) | undefined;
18987
+ /** The size of a link's text. */
18988
+ "--outline-link-font-size"?: (string) | undefined;
18989
+ /** The fill behind a link under the pointer. */
18990
+ "--outline-link-hover-background-color"?: (string) | undefined;
18991
+ /** The color of a link under the pointer. */
18992
+ "--outline-link-hover-color"?: (string) | undefined;
18993
+ /** The space above and below a link's text. */
18994
+ "--outline-link-padding-block"?: (string) | undefined;
18995
+ /** The space either side of a link's text, before any indent. */
18996
+ "--outline-link-padding-inline"?: (string) | undefined;
18997
+ /** The corner radius of a link's hover fill. */
18998
+ "--outline-link-radius"?: (string) | undefined;
18436
18999
  /** The width of the gutter that holds the line and the moving mark. */
18437
19000
  "--outline-rail"?: (string) | undefined;
19001
+ /** The color of the line down the leading edge. */
19002
+ "--outline-rule-color"?: (string) | undefined;
18438
19003
  /** Fill behind the page you are on. */
18439
19004
  "--pagination-current-color"?: (string) | undefined;
18440
19005
  /** Space between one control and the next. */
@@ -18443,11 +19008,13 @@ export type CustomCssProperties = {
18443
19008
  "--pagination-hover-color"?: (string) | undefined;
18444
19009
  /** The box every control in the row takes. */
18445
19010
  "--pagination-size"?: (string) | undefined;
19011
+ /** The color of the caret drawn in an empty box. Without it, the character color applies. */
19012
+ "--pin-input-caret-color"?: (string) | undefined;
18446
19013
  /** Fill behind each box. */
18447
19014
  "--pin-input-cell-background-color"?: (string) | undefined;
18448
19015
  /** Edge of each box at rest. Hover, focus and an error still draw their own. */
18449
19016
  "--pin-input-cell-border-color"?: (string) | undefined;
18450
- /** Edge of the box holding focus. */
19017
+ /** Edge of the box the caret is in. */
18451
19018
  "--pin-input-cell-border-color-focus"?: (string) | undefined;
18452
19019
  /** The color of a typed character. */
18453
19020
  "--pin-input-cell-color"?: (string) | undefined;
@@ -18459,6 +19026,8 @@ export type CustomCssProperties = {
18459
19026
  "--pin-input-cell-size"?: (string) | undefined;
18460
19027
  /** The space between one box and the next. */
18461
19028
  "--pin-input-gap"?: (string) | undefined;
19029
+ /** The color of the `placeholder` text in an empty box. */
19030
+ "--pin-input-placeholder-color"?: (string) | undefined;
18462
19031
  /** The color of the text `format` draws between boxes. */
18463
19032
  "--pin-input-separator-color"?: (string) | undefined;
18464
19033
  /** Size of the point drawn with `arrow`. Tooltip's point is the same size. */
@@ -18483,6 +19052,8 @@ export type CustomCssProperties = {
18483
19052
  "--progress-label-gap"?: (string) | undefined;
18484
19053
  /** Type size of a slotted label. */
18485
19054
  "--progress-label-size"?: (string) | undefined;
19055
+ /** How far the ends of the bar are rounded. */
19056
+ "--progress-radius"?: (string) | undefined;
18486
19057
  /** Diameter of the ring. */
18487
19058
  "--progress-ring-size"?: (string) | undefined;
18488
19059
  /** Thickness of the ring's stroke. */
@@ -18493,6 +19064,12 @@ export type CustomCssProperties = {
18493
19064
  "--progress-track-color"?: (string) | undefined;
18494
19065
  /** How long the fill takes to move to a new value. `0s` moves it at once. */
18495
19066
  "--progress-transition-duration"?: (string) | undefined;
19067
+ /** The color of the value shown under `show-value`. */
19068
+ "--progress-value-color"?: (string) | undefined;
19069
+ /** The space between the bar and the value under `show-value`. */
19070
+ "--progress-value-gap"?: (string) | undefined;
19071
+ /** The type size of the value shown under `show-value`. */
19072
+ "--progress-value-size"?: (string) | undefined;
18496
19073
  /** The value as a fraction of the range, 0 to 1. Pinned to 1 while indeterminate. */
18497
19074
  "--progress-fraction"?: (string) | undefined;
18498
19075
  /** The fill behind the modules, including the quiet zone and the logo's box. */
@@ -18561,23 +19138,23 @@ export type CustomCssProperties = {
18561
19138
  "--sandbox-separator-color"?: (string) | undefined;
18562
19139
  /** Fill behind the source. */
18563
19140
  "--sandbox-source-background-color"?: (string) | undefined;
18564
- /** Color of a `callable` run, under `highlight`. Defaults to `--helix-color-syntax-callable`. */
19141
+ /** Color of a `callable` run, under `tokenize`. Defaults to `--helix-color-syntax-callable`. */
18565
19142
  "--sandbox-source-callable-color"?: (string) | undefined;
18566
- /** Color of a `comment` run, under `highlight`. Defaults to `--helix-color-syntax-comment`. */
19143
+ /** Color of a `comment` run, under `tokenize`. Defaults to `--helix-color-syntax-comment`. */
18567
19144
  "--sandbox-source-comment-color"?: (string) | undefined;
18568
- /** Color of a `constant` run, under `highlight`. Defaults to `--helix-color-syntax-constant`. */
19145
+ /** Color of a `constant` run, under `tokenize`. Defaults to `--helix-color-syntax-constant`. */
18569
19146
  "--sandbox-source-constant-color"?: (string) | undefined;
18570
- /** Color of an `invalid` run, under `highlight`. Defaults to `--helix-color-syntax-invalid`. */
19147
+ /** Color of an `invalid` run, under `tokenize`. Defaults to `--helix-color-syntax-invalid`. */
18571
19148
  "--sandbox-source-invalid-color"?: (string) | undefined;
18572
- /** Color of a `keyword` run, under `highlight`. Defaults to `--helix-color-syntax-keyword`. */
19149
+ /** Color of a `keyword` run, under `tokenize`. Defaults to `--helix-color-syntax-keyword`. */
18573
19150
  "--sandbox-source-keyword-color"?: (string) | undefined;
18574
19151
  /** Minimum height of the pane. */
18575
19152
  "--sandbox-source-min-block-size"?: (string) | undefined;
18576
- /** Color of a `name` run, under `highlight`. Defaults to `--helix-color-syntax-name`. */
19153
+ /** Color of a `name` run, under `tokenize`. Defaults to `--helix-color-syntax-name`. */
18577
19154
  "--sandbox-source-name-color"?: (string) | undefined;
18578
- /** Color of a `string` run, under `highlight`. Defaults to `--helix-color-syntax-string`. */
19155
+ /** Color of a `string` run, under `tokenize`. Defaults to `--helix-color-syntax-string`. */
18579
19156
  "--sandbox-source-string-color"?: (string) | undefined;
18580
- /** Color of a `tag` run, under `highlight`. Defaults to `--helix-color-syntax-tag`. */
19157
+ /** Color of a `tag` run, under `tokenize`. Defaults to `--helix-color-syntax-tag`. */
18581
19158
  "--sandbox-source-tag-color"?: (string) | undefined;
18582
19159
  /** Color of the bar's text. */
18583
19160
  "--sandbox-status-bar-color"?: (string) | undefined;
@@ -18589,6 +19166,8 @@ export type CustomCssProperties = {
18589
19166
  "--sandbox-toolbar-size"?: (string) | undefined;
18590
19167
  /** Height of the drawing. */
18591
19168
  "--scatter-chart-block-size"?: (string) | undefined;
19169
+ /** Diameter of the largest point under `size-by`. The smallest is `--scatter-chart-point-size`. */
19170
+ "--scatter-chart-bubble-size"?: (string) | undefined;
18592
19171
  /** Space between the drawing and its axes. */
18593
19172
  "--scatter-chart-gap"?: (string) | undefined;
18594
19173
  /** Color of the gridlines across the plot, drawn when `gridlines` is set. */
@@ -18603,6 +19182,8 @@ export type CustomCssProperties = {
18603
19182
  "--scatter-chart-trend-dash"?: (string) | undefined;
18604
19183
  /** The thickness of a line of best fit, under `trend`. */
18605
19184
  "--scatter-chart-trend-width"?: (string) | undefined;
19185
+ /** 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. */
19186
+ "--chart-point-weight"?: (string) | undefined;
18606
19187
  /** A point's horizontal position, as a percentage. The component writes it. */
18607
19188
  "--chart-point-x"?: (string) | undefined;
18608
19189
  /** A point's vertical position, as a percentage from the top. The component writes it. */
@@ -18695,12 +19276,18 @@ export type CustomCssProperties = {
18695
19276
  "--slider-thumb-ring-color"?: (string) | undefined;
18696
19277
  /** The thumb's size across the track. It equals the length by default, which makes the thumb round. */
18697
19278
  "--slider-thumb-size"?: (string) | undefined;
19279
+ /** The fill of the bubble each thumb shows its value in, under `tooltip`. */
19280
+ "--slider-tooltip-background-color"?: (string) | undefined;
19281
+ /** The color of the value in a thumb's bubble, under `tooltip`. */
19282
+ "--slider-tooltip-color"?: (string) | undefined;
18698
19283
  /** The color of the unfilled part of the track. */
18699
19284
  "--slider-track-color"?: (string) | undefined;
18700
19285
  /** An image for the whole track, such as a gradient for a slider whose value is a color. */
18701
19286
  "--slider-track-image"?: (string) | undefined;
18702
19287
  /** The thickness of the track. It matches the progress bar's size by default. */
18703
19288
  "--slider-track-size"?: (string) | undefined;
19289
+ /** Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part. */
19290
+ "--slider-at"?: (string) | undefined;
18704
19291
  /** The value as a fraction of the range, 0 to 1. */
18705
19292
  "--slider-fraction"?: (string) | undefined;
18706
19293
  /** 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 +19314,10 @@ export type CustomCssProperties = {
18727
19314
  "--sparkline-mark-ring-color"?: (string) | undefined;
18728
19315
  /** Size of the dot on the reading a pointer or a key rests on, and of the `marks` dots. */
18729
19316
  "--sparkline-mark-size"?: (string) | undefined;
19317
+ /** Fill of the band `range` draws. Without it, the line's color. */
19318
+ "--sparkline-range-color"?: (string) | undefined;
19319
+ /** Opacity of the band `range` draws. */
19320
+ "--sparkline-range-opacity"?: (string) | undefined;
18730
19321
  /** Ground of the reading written above the dot. */
18731
19322
  "--sparkline-readout-background-color"?: (string) | undefined;
18732
19323
  /** Color of the reading written above the dot. */
@@ -18843,6 +19434,8 @@ export type CustomCssProperties = {
18843
19434
  "--table-title-text"?: (string) | undefined;
18844
19435
  /** 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
19436
  "--table-template"?: (string) | undefined;
19437
+ /** The wash across the cells of a row with `href` under the pointer. */
19438
+ "--table-row-hover-background-color"?: (string) | undefined;
18846
19439
  /** The space between the tab row and the panel's content. */
18847
19440
  "--tabs-panel-padding-block-start"?: (string) | undefined;
18848
19441
  /** The space between tabs. */
@@ -18887,8 +19480,12 @@ export type CustomCssProperties = {
18887
19480
  "--tag-border-color"?: (string) | undefined;
18888
19481
  /** How strongly a `disabled` tag is drawn. */
18889
19482
  "--tag-disabled-opacity"?: (string) | undefined;
19483
+ /** The weight of the label. */
19484
+ "--tag-font-weight"?: (string) | undefined;
18890
19485
  /** The label color. */
18891
19486
  "--tag-foreground-color"?: (string) | undefined;
19487
+ /** The space between the category, the label and the remove button. */
19488
+ "--tag-gap"?: (string) | undefined;
18892
19489
  /** The corner radius of the tag. */
18893
19490
  "--tag-radius"?: (string) | undefined;
18894
19491
  /** The typeface. Overrides the ramp's. */
@@ -18927,6 +19524,8 @@ export type CustomCssProperties = {
18927
19524
  "--time-input-segment-placeholder-color"?: (string) | undefined;
18928
19525
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content. */
18929
19526
  "--time-input-shadow"?: (string) | undefined;
19527
+ /** The color of the message under the times, while `feedback` is set. */
19528
+ "--time-picker-feedback-color"?: (string) | undefined;
18930
19529
  /** How tall the list is before it scrolls. */
18931
19530
  "--time-picker-list-block-size"?: (string) | undefined;
18932
19531
  /** Fill behind the times inside a range. */
@@ -18983,6 +19582,8 @@ export type CustomCssProperties = {
18983
19582
  "--toggle-item-color-selected"?: (string) | undefined;
18984
19583
  /** Space either side of an item's label. */
18985
19584
  "--toggle-item-padding-inline"?: (string) | undefined;
19585
+ /** 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. */
19586
+ "--toolbar-align"?: (string) | undefined;
18986
19587
  /** The fill behind the controls. Transparent unless set. */
18987
19588
  "--toolbar-background-color"?: (string) | undefined;
18988
19589
  /** The color of the toolbar's edge, once it has a width. */
@@ -18995,16 +19596,22 @@ export type CustomCssProperties = {
18995
19596
  "--toolbar-padding"?: (string) | undefined;
18996
19597
  /** The corner radius of the toolbar's fill. */
18997
19598
  "--toolbar-radius"?: (string) | undefined;
19599
+ /** Extra space either side of a `Divider` between controls, along the toolbar's axis. None unless set. */
19600
+ "--toolbar-separator-gap"?: (string) | undefined;
18998
19601
  /** The size of the arrow on the bubble's edge. */
18999
19602
  "--tooltip-arrow-size"?: (string) | undefined;
19000
19603
  /** The blur behind a `frosted` or `glass` bubble. */
19001
19604
  "--tooltip-backdrop"?: (string) | undefined;
19002
19605
  /** The fill of the bubble. */
19003
19606
  "--tooltip-background-color"?: (string) | undefined;
19607
+ /** The edge of a `frosted` or `glass` bubble, the only kind that draws one. */
19608
+ "--tooltip-border-color"?: (string) | undefined;
19004
19609
  /** The color of the bubble's words. */
19005
19610
  "--tooltip-color"?: (string) | undefined;
19006
19611
  /** The size of the bubble's words. */
19007
19612
  "--tooltip-font-size"?: (string) | undefined;
19613
+ /** The space between two things slotted into the bubble, such as a glyph and its words. */
19614
+ "--tooltip-gap"?: (string) | undefined;
19008
19615
  /** The widest the bubble grows before its text wraps. */
19009
19616
  "--tooltip-max-inline-size"?: (string) | undefined;
19010
19617
  /** The space between the bubble's edge and its words. */
@@ -19091,6 +19698,30 @@ export type CustomCssProperties = {
19091
19698
  "--trend-worse-color"?: (string) | undefined;
19092
19699
  /** The fill behind a row. */
19093
19700
  "--video-playlist-item-background-color"?: (string) | undefined;
19701
+ /** The color of an entry's name. */
19702
+ "--video-playlist-item-color"?: (string) | undefined;
19703
+ /** The fill behind the entry that is playing. */
19704
+ "--video-playlist-item-current-background-color"?: (string) | undefined;
19705
+ /** The color of the bar beside the entry that is playing. */
19706
+ "--video-playlist-item-current-mark-color"?: (string) | undefined;
19707
+ /** The space between the thumbnail and the name. */
19708
+ "--video-playlist-item-gap"?: (string) | undefined;
19709
+ /** The fill behind a row under the pointer. */
19710
+ "--video-playlist-item-hover-background-color"?: (string) | undefined;
19711
+ /** The color of the content in the `meta` slot. */
19712
+ "--video-playlist-item-meta-color"?: (string) | undefined;
19713
+ /** The space above and below a row's content. */
19714
+ "--video-playlist-item-padding-block"?: (string) | undefined;
19715
+ /** The space after a row's content. */
19716
+ "--video-playlist-item-padding-inline-end"?: (string) | undefined;
19717
+ /** The space before a row's content, where the bar beside the playing entry sits. */
19718
+ "--video-playlist-item-padding-inline-start"?: (string) | undefined;
19719
+ /** The corner radius of a row. */
19720
+ "--video-playlist-item-radius"?: (string) | undefined;
19721
+ /** The shape of the thumbnail column. */
19722
+ "--video-playlist-media-aspect-ratio"?: (string) | undefined;
19723
+ /** The corner radius of the thumbnail. */
19724
+ "--video-playlist-media-radius"?: (string) | undefined;
19094
19725
  /** The width of the thumbnail column. */
19095
19726
  "--video-playlist-media-size"?: (string) | undefined;
19096
19727
  /** The color of the trigger. Defaults to the control bar's color. */
@@ -19099,6 +19730,10 @@ export type CustomCssProperties = {
19099
19730
  "--video-playlist-menu-poster"?: (string) | undefined;
19100
19731
  /** The size of the trigger's icon. */
19101
19732
  "--video-playlist-menu-size"?: (string) | undefined;
19733
+ /** The space between the player and the list. */
19734
+ "--video-playlist-gap"?: (string) | undefined;
19735
+ /** The space between the entries. */
19736
+ "--video-playlist-items-gap"?: (string) | undefined;
19102
19737
  /** The grid columns for the player and the list. */
19103
19738
  "--video-playlist-layout"?: (string) | undefined;
19104
19739
  /** The height the list reaches before it scrolls. */
@@ -19227,7 +19862,7 @@ export interface WcToolkitVueGlobalComponents {
19227
19862
  HelixButtonVueProps,
19228
19863
  HelixButtonVueEvents
19229
19864
  >;
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. */
19865
+ /** 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
19866
  "helix-callout": DefineCustomElement<
19232
19867
  HelixCallout,
19233
19868
  HelixCalloutVueProps,
@@ -19443,7 +20078,7 @@ export interface WcToolkitVueGlobalComponents {
19443
20078
  HelixFilterInputVueProps,
19444
20079
  HelixFilterInputVueEvents
19445
20080
  >;
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. */
20081
+ /** 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
20082
  "helix-flex": DefineCustomElement<
19448
20083
  HelixFlex,
19449
20084
  HelixFlexVueProps,
@@ -19617,7 +20252,7 @@ export interface WcToolkitVueGlobalComponents {
19617
20252
  HelixMapTerrainVueProps,
19618
20253
  HelixMapTerrainVueEvents
19619
20254
  >;
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. */
20255
+ /** 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
20256
  "helix-megamenu": DefineCustomElement<
19622
20257
  HelixMegamenu,
19623
20258
  HelixMegamenuVueProps,
@@ -19695,13 +20330,19 @@ export interface WcToolkitVueGlobalComponents {
19695
20330
  HelixOptionVueProps,
19696
20331
  HelixOptionVueEvents
19697
20332
  >;
20333
+ /** A hairline across the panel in the list's border color, with a little air either side. */
20334
+ "helix-option-separator": DefineCustomElement<
20335
+ HelixOptionSeparator,
20336
+ HelixOptionSeparatorVueProps,
20337
+ HelixOptionSeparatorVueEvents
20338
+ >;
19698
20339
  /** 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
20340
  "helix-orb": DefineCustomElement<
19700
20341
  HelixOrb,
19701
20342
  HelixOrbVueProps,
19702
20343
  HelixOrbVueEvents
19703
20344
  >;
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. */
20345
+ /** 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
20346
  "helix-outline": DefineCustomElement<
19706
20347
  HelixOutline,
19707
20348
  HelixOutlineVueProps,
@@ -19725,7 +20366,7 @@ export interface WcToolkitVueGlobalComponents {
19725
20366
  HelixPaginationSummaryVueProps,
19726
20367
  HelixPaginationSummaryVueEvents
19727
20368
  >;
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. */
20369
+ /** 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
20370
  "helix-pin-input": DefineCustomElement<
19730
20371
  HelixPinInput,
19731
20372
  HelixPinInputVueProps,
@@ -19773,7 +20414,7 @@ export interface WcToolkitVueGlobalComponents {
19773
20414
  HelixRatingVueProps,
19774
20415
  HelixRatingVueEvents
19775
20416
  >;
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. */
20417
+ /** 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
20418
  "helix-sandbox-preview": DefineCustomElement<
19778
20419
  HelixSandboxPreview,
19779
20420
  HelixSandboxPreviewVueProps,
@@ -19785,7 +20426,7 @@ export interface WcToolkitVueGlobalComponents {
19785
20426
  HelixSandboxVueProps,
19786
20427
  HelixSandboxVueEvents
19787
20428
  >;
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'. */
20429
+ /** 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
20430
  "helix-sandbox-source": DefineCustomElement<
19790
20431
  HelixSandboxSource,
19791
20432
  HelixSandboxSourceVueProps,