@fusion.dev/helix 0.104.1 → 0.106.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 (198) hide show
  1. package/custom-elements.json +13098 -4950
  2. package/dist/accordion/item/accordion-item.d.ts +9 -10
  3. package/dist/accordion/root/accordion-root.d.ts +8 -9
  4. package/dist/announcement/root/announcement-root.d.ts +7 -7
  5. package/dist/app-header/root/app-header-root.d.ts +14 -12
  6. package/dist/area-chart/root/area-chart-root.d.ts +23 -32
  7. package/dist/aura/root/aura-root.d.ts +32 -31
  8. package/dist/avatar/group/avatar-group.d.ts +8 -11
  9. package/dist/avatar/root/avatar-root.d.ts +4 -5
  10. package/dist/badge/root/badge-root.d.ts +7 -8
  11. package/dist/bar-chart/root/bar-chart-root.d.ts +17 -16
  12. package/dist/blockquote/root/blockquote-root.d.ts +4 -5
  13. package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +7 -7
  14. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +2 -2
  15. package/dist/button/root/button-root.d.ts +16 -13
  16. package/dist/button-group/root/button-group-root.d.ts +6 -6
  17. package/dist/callout/root/callout-root.d.ts +8 -8
  18. package/dist/canvas/edge/canvas-edge.d.ts +3 -3
  19. package/dist/canvas/node/canvas-node.d.ts +17 -18
  20. package/dist/canvas/root/canvas-root.d.ts +18 -19
  21. package/dist/card/root/card-root.d.ts +14 -14
  22. package/dist/carousel/root/carousel-root.d.ts +11 -14
  23. package/dist/chat/composer/chat-composer.d.ts +10 -11
  24. package/dist/chat/message/chat-message.d.ts +18 -18
  25. package/dist/chat/root/chat-root.d.ts +15 -18
  26. package/dist/checkbox/root/checkbox-root.d.ts +17 -16
  27. package/dist/checkbox-group/root/checkbox-group-root.d.ts +6 -5
  28. package/dist/code/root/code-root.d.ts +9 -9
  29. package/dist/code-block/root/code-block-root.d.ts +14 -15
  30. package/dist/color-input/root/color-input-root.d.ts +13 -18
  31. package/dist/color-picker/root/color-picker-root.d.ts +26 -27
  32. package/dist/combobox/root/combobox-root.css.js +3 -2
  33. package/dist/combobox/root/combobox-root.d.ts +8 -8
  34. package/dist/command/root/command-root.d.ts +5 -6
  35. package/dist/copy-button/root/copy-button-root.d.ts +4 -5
  36. package/dist/data-table/root/data-table-root.d.ts +30 -37
  37. package/dist/date-input/root/date-input-root.d.ts +15 -17
  38. package/dist/date-picker/root/date-picker-root.d.ts +11 -12
  39. package/dist/description-list/item/description-list-item.d.ts +2 -2
  40. package/dist/description-list/root/description-list-root.d.ts +13 -14
  41. package/dist/dialog/root/dialog-root.d.ts +9 -10
  42. package/dist/divider/root/divider-root.d.ts +11 -12
  43. package/dist/donut-chart/root/donut-chart-root.d.ts +12 -15
  44. package/dist/drawer/root/drawer-root.d.ts +14 -13
  45. package/dist/drilldown/item/drilldown-item.d.ts +3 -4
  46. package/dist/drilldown/root/drilldown-root.d.ts +6 -9
  47. package/dist/element-events.generated.js +19 -1
  48. package/dist/empty/root/empty-root.d.ts +3 -4
  49. package/dist/file-input/root/file-input-root.d.ts +8 -12
  50. package/dist/filter-input/chip/filter-chip.d.ts +11 -10
  51. package/dist/filter-input/field/filter-field.d.ts +7 -8
  52. package/dist/filter-input/menu/filter-menu.d.ts +7 -8
  53. package/dist/filter-input/operator/filter-operator.d.ts +5 -5
  54. package/dist/filter-input/root/filter-input-root.d.ts +25 -27
  55. package/dist/flex/root/flex-root.d.ts +9 -14
  56. package/dist/format-date/root/format-date-root.d.ts +5 -8
  57. package/dist/grid/root/grid-root.d.ts +13 -11
  58. package/dist/heatmap/root/heatmap-root.d.ts +34 -31
  59. package/dist/icon/root/icon-root.d.ts +6 -6
  60. package/dist/icon-button/root/icon-button-root.d.ts +9 -10
  61. package/dist/image/root/image-root.d.ts +10 -10
  62. package/dist/input/root/input-root.d.ts +10 -13
  63. package/dist/kbd/root/kbd-root.d.ts +6 -7
  64. package/dist/legend/root/legend-root.d.ts +19 -20
  65. package/dist/lightbox/item/lightbox-item.d.ts +4 -5
  66. package/dist/lightbox/root/lightbox-root.d.ts +13 -16
  67. package/dist/line-chart/root/line-chart-root.d.ts +24 -25
  68. package/dist/list/item/list-item.d.ts +7 -8
  69. package/dist/list/root/list-root.d.ts +7 -9
  70. package/dist/listbox/root/listbox-root.d.ts +8 -9
  71. package/dist/loader/root/loader-root.d.ts +5 -7
  72. package/dist/map/area/map-area.css.d.ts +1 -0
  73. package/dist/map/area/map-area.css.js +24 -0
  74. package/dist/map/area/map-area.d.ts +27 -0
  75. package/dist/map/area/map-area.js +20 -0
  76. package/dist/map/buildings/map-buildings.css.d.ts +1 -0
  77. package/dist/map/buildings/map-buildings.css.js +27 -0
  78. package/dist/map/buildings/map-buildings.d.ts +28 -0
  79. package/dist/map/buildings/map-buildings.js +20 -0
  80. package/dist/map/contours/map-contours.css.d.ts +1 -0
  81. package/dist/map/contours/map-contours.css.js +8 -0
  82. package/dist/map/contours/map-contours.d.ts +25 -0
  83. package/dist/map/contours/map-contours.js +16 -0
  84. package/dist/map/index.d.ts +10 -0
  85. package/dist/map/index.js +10 -0
  86. package/dist/map/landcover/map-landcover.css.d.ts +1 -0
  87. package/dist/map/landcover/map-landcover.css.js +5 -0
  88. package/dist/map/landcover/map-landcover.d.ts +25 -0
  89. package/dist/map/landcover/map-landcover.js +16 -0
  90. package/dist/map/marker/map-marker.css.d.ts +1 -0
  91. package/dist/map/marker/map-marker.css.js +340 -0
  92. package/dist/map/marker/map-marker.d.ts +51 -0
  93. package/dist/map/marker/map-marker.js +29 -0
  94. package/dist/map/points/map-points.css.d.ts +1 -0
  95. package/dist/map/points/map-points.css.js +82 -0
  96. package/dist/map/points/map-points.d.ts +29 -0
  97. package/dist/map/points/map-points.js +20 -0
  98. package/dist/map/position/map-position.css.d.ts +1 -0
  99. package/dist/map/position/map-position.css.js +239 -0
  100. package/dist/map/position/map-position.d.ts +41 -0
  101. package/dist/map/position/map-position.js +26 -0
  102. package/dist/map/raster/map-raster.css.d.ts +1 -0
  103. package/dist/map/raster/map-raster.css.js +4 -0
  104. package/dist/map/raster/map-raster.d.ts +23 -0
  105. package/dist/map/raster/map-raster.js +16 -0
  106. package/dist/map/root/map-root.css.js +252 -1
  107. package/dist/map/root/map-root.d.ts +13 -12
  108. package/dist/map/root/map-root.js +4 -0
  109. package/dist/map/route/map-route.css.d.ts +1 -0
  110. package/dist/map/route/map-route.css.js +25 -0
  111. package/dist/map/route/map-route.d.ts +31 -0
  112. package/dist/map/route/map-route.js +23 -0
  113. package/dist/map/terrain/map-terrain.css.d.ts +1 -0
  114. package/dist/map/terrain/map-terrain.css.js +12 -0
  115. package/dist/map/terrain/map-terrain.d.ts +27 -0
  116. package/dist/map/terrain/map-terrain.js +16 -0
  117. package/dist/megamenu/root/megamenu-root.d.ts +14 -14
  118. package/dist/menu/item/menu-item.d.ts +8 -8
  119. package/dist/menu/root/menu-root.d.ts +9 -9
  120. package/dist/meter/root/meter-root.d.ts +29 -38
  121. package/dist/navigation/root/navigation-root.d.ts +4 -5
  122. package/dist/notifications/group/notification-group.d.ts +9 -13
  123. package/dist/notifications/notification/notification.d.ts +27 -33
  124. package/dist/notifications/root/notifications-root.d.ts +9 -11
  125. package/dist/number-input/root/number-input-root.d.ts +16 -18
  126. package/dist/object-inspector/root/object-inspector-root.d.ts +11 -12
  127. package/dist/option/group/option-group.d.ts +3 -4
  128. package/dist/option/root/option-root.d.ts +7 -8
  129. package/dist/orb/root/orb-root.d.ts +30 -36
  130. package/dist/outline/root/outline-root.d.ts +8 -10
  131. package/dist/pagination/root/pagination-root.d.ts +13 -23
  132. package/dist/pagination/size/pagination-size.d.ts +7 -7
  133. package/dist/pagination/summary/pagination-summary.d.ts +3 -4
  134. package/dist/pin-input/root/pin-input-root.d.ts +8 -11
  135. package/dist/popover/root/popover-root.d.ts +14 -16
  136. package/dist/progress/root/progress-root.d.ts +10 -13
  137. package/dist/qr-code/root/qr-code-root.d.ts +13 -14
  138. package/dist/quote/root/quote-root.d.ts +2 -2
  139. package/dist/radio/group/radio-group.d.ts +6 -6
  140. package/dist/radio/root/radio-root.d.ts +16 -19
  141. package/dist/rating/root/rating-root.d.ts +9 -9
  142. package/dist/sandbox/preview/sandbox-preview.d.ts +18 -19
  143. package/dist/sandbox/root/sandbox-root.d.ts +27 -27
  144. package/dist/sandbox/source/sandbox-source.d.ts +9 -12
  145. package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +9 -11
  146. package/dist/sandbox/terminal/sandbox-terminal.d.ts +13 -15
  147. package/dist/sandbox/toolbar/sandbox-toolbar.d.ts +8 -9
  148. package/dist/scatter-chart/root/scatter-chart-root.d.ts +18 -29
  149. package/dist/scroll-area/root/scroll-area-root.d.ts +13 -13
  150. package/dist/select/root/select-root.d.ts +14 -14
  151. package/dist/shared/mixin-control-surface/mixin-control-surface.d.ts +8 -2
  152. package/dist/shared/viewport/viewport.css.js +7 -2
  153. package/dist/skeleton/root/skeleton-root.d.ts +6 -7
  154. package/dist/skip-link/root/skip-link-root.d.ts +16 -19
  155. package/dist/slider/root/slider-root.d.ts +16 -18
  156. package/dist/sparkline/root/sparkline-root.d.ts +16 -24
  157. package/dist/speed-dial/item/speed-dial-item.d.ts +5 -5
  158. package/dist/speed-dial/root/speed-dial-root.d.ts +3 -4
  159. package/dist/splitter/root/splitter-root.d.ts +23 -32
  160. package/dist/stat/group/stat-group.d.ts +4 -5
  161. package/dist/stat/root/stat-root.d.ts +4 -5
  162. package/dist/steps/root/steps-root.d.ts +12 -13
  163. package/dist/switch/root/switch-root.d.ts +13 -17
  164. package/dist/table/cell/table-cell.css.js +5 -0
  165. package/dist/table/cell/table-cell.d.ts +4 -4
  166. package/dist/table/column/table-column.d.ts +3 -4
  167. package/dist/table/root/table-root.d.ts +5 -6
  168. package/dist/table/row/table-row.d.ts +3 -3
  169. package/dist/tabs/panel/tab-panel.d.ts +2 -3
  170. package/dist/tabs/root/tabs-root.d.ts +12 -11
  171. package/dist/tabs/tab/tab.d.ts +4 -4
  172. package/dist/tag/root/tag-root.d.ts +10 -11
  173. package/dist/text/root/text-root.d.ts +22 -30
  174. package/dist/textarea/root/textarea-root.d.ts +4 -5
  175. package/dist/time-input/root/time-input-root.d.ts +12 -14
  176. package/dist/time-picker/root/time-picker-root.d.ts +8 -10
  177. package/dist/timeline/item/timeline-item.d.ts +2 -2
  178. package/dist/timeline/root/timeline-root.d.ts +3 -3
  179. package/dist/toast/item/toast-item.d.ts +7 -8
  180. package/dist/toast/root/toast-root.d.ts +10 -12
  181. package/dist/toggle/group/toggle-group.d.ts +10 -12
  182. package/dist/toggle/root/toggle-root.d.ts +2 -3
  183. package/dist/toolbar/root/toolbar-root.d.ts +3 -3
  184. package/dist/tooltip/root/tooltip-root.d.ts +10 -10
  185. package/dist/tour/root/tour-root.d.ts +5 -6
  186. package/dist/tour/stop/tour-stop.d.ts +14 -14
  187. package/dist/tree/item/tree-item.d.ts +6 -9
  188. package/dist/tree/root/tree-root.d.ts +7 -8
  189. package/dist/trend/root/trend-root.d.ts +12 -19
  190. package/dist/video/root/video-root.d.ts +15 -21
  191. package/dist/video-playlist/item/video-playlist-item.d.ts +4 -4
  192. package/dist/video-playlist/menu/video-playlist-menu.d.ts +14 -16
  193. package/dist/video-playlist/root/video-playlist-root.d.ts +5 -5
  194. package/dist/virtual-list/root/virtual-list-root.d.ts +6 -8
  195. package/package.json +6 -6
  196. package/types/jsx.d.ts +14221 -11621
  197. package/types/svelte.d.ts +10 -0
  198. package/types/vue.d.ts +2679 -1951
@@ -1,12 +1,11 @@
1
1
  import { HelixHeadlessTable } from '@fusion.dev/helix-headless/table';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Tabular data laid out on a grid.
4
+ * @summary A table of data, laid out on a grid.
5
5
  *
6
6
  * @description
7
- * Hairline rules between rows and no fill, per the rule that depth comes from a
8
- * single border rather than from elevation. A dense table earns its density by
9
- * decorating none of it.
7
+ * Rows have hairline rules between them and no fill. Helix shows depth with a
8
+ * single border and no elevation, and a dense table adds no other decoration.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -15,10 +14,10 @@ import type { CSSResultGroup } from 'lit';
15
14
  *
16
15
  * @slot - The table's rows.
17
16
  *
18
- * @csspart live - The empty and loading lines again, in a region a screen reader hears when they change. Visually hidden in the styled tier.
17
+ * @csspart live - A live region that repeats the empty and loading text, so screen readers announce it when it changes. Visually hidden in the styled tier.
19
18
  * @csspart table - The grid.
20
19
  *
21
- * @cssproperty --table-columns - Track list for the columns, which wins over the one the columns worked out.
20
+ * @cssproperty --table-columns - Track list for the columns. It overrides the track list worked out from the columns.
22
21
  */
23
22
  export declare class HelixTable extends HelixHeadlessTable {
24
23
  static styles: CSSResultGroup;
@@ -4,9 +4,9 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One row of a table.
5
5
  *
6
6
  * @description
7
- * No box of its own, so its cells become items of the table's grid and line up
8
- * with every other row's. The element still exists, which is what lets a row be
9
- * selected, hidden or made interactive without a wrapper that would break the
7
+ * The row has no box of its own, so its cells become items of the table's grid
8
+ * and line up with every other row. The element still exists, so a row can be
9
+ * selected, hidden, or made interactive without a wrapper that would break the
10
10
  * columns.
11
11
  *
12
12
  * @since 0.1.0
@@ -4,9 +4,8 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary The content shown for one tab.
5
5
  *
6
6
  * @description
7
- * No box of its own, so only the panel that is showing takes space: a tab set
8
- * with four panels gives the visible one the whole height rather than a
9
- * quarter of it.
7
+ * The panel has no box of its own, so only the panel that is showing takes
8
+ * space. In a set of four panels, the visible one gets the full height.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -4,24 +4,25 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A row of tabs and the panel each one shows.
5
5
  *
6
6
  * @description
7
- * One mark travels between the tabs rather than each of them filling and
8
- * emptying in turn. A fill that swaps is two things changing at once and reads
9
- * as a flicker; one that moves is a single object the eye follows, and it says
10
- * where the current tab was as well as where it is. `Navigation` marks its
11
- * destinations the same way and for the same reason.
7
+ * One mark moves between the tabs to show the current one. A moving mark is a
8
+ * single object that is easy to follow, and it shows where the selection came
9
+ * from. A fill that switches from tab to tab changes two things at once and
10
+ * looks like a flicker. `Navigation` marks its destinations the same way.
12
11
  *
13
- * What the mark is depends on `variant`: unset it is a raised pill on the
14
- * selected tab with nothing behind the row, `underlined` makes it a bar along
15
- * the bottom of the strip on a rule, and `segmented` grows it to the tab's own
16
- * box inside a sunken track.
12
+ * The mark depends on `variant`:
13
+ *
14
+ * - Unset, it is a raised pill on the selected tab, with nothing behind the
15
+ * row.
16
+ * - `underlined` makes it a bar along the bottom of the strip, on a rule.
17
+ * - `segmented` makes it the size of the tab's box, inside a sunken track.
17
18
  *
18
19
  * @since 0.1.0
19
20
  * @status stable
20
21
  * @category navigation
21
22
  * @documentation https://fusion.dev/helix/components/tabs
22
23
  *
23
- * @slot - The tabs, which are this element's own children.
24
- * @slot panels - The panels, which are this element's own children. A wrapper around them is assigned to the slot and pairs with nothing, since the pairing walks these children rather than the slot's tree.
24
+ * @slot - The tabs, as direct children of this element.
25
+ * @slot panels - The panels, as direct children of this element. Panels inside a wrapper are not paired with tabs, because pairing reads only the direct children.
25
26
  *
26
27
  * @csspart panels - The panel container.
27
28
  * @csspart tabs - The tab list.
@@ -4,10 +4,10 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One tab in a tab list.
5
5
  *
6
6
  * @description
7
- * A control's height, so a tab row sits level with the buttons beside it. The
8
- * current tab is not marked here: one indicator travels along the tab list, and
9
- * each tab keeps a transparent edge of the same width so its box does not move
10
- * when it becomes current.
7
+ * A tab has a control's height, so a tab row sits level with the buttons beside
8
+ * it. The current tab is marked by one indicator that moves along the tab list.
9
+ * Each tab keeps a transparent edge of the same width, so its box does not
10
+ * shift when it becomes current.
11
11
  *
12
12
  * @since 0.1.0
13
13
  * @status stable
@@ -1,12 +1,11 @@
1
1
  import { HelixHeadlessTag } from '@fusion.dev/helix-headless/tag';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Labels content with a short piece of metadata.
4
+ * @summary A short label that adds metadata to content.
5
5
  *
6
6
  * @description
7
- * Seven tones. The fill is a tint of the status color, mixed with
8
- * `color-mix` rather than held as a token per status, so a theme that changes
9
- * the status colors gets the tints with them.
7
+ * Seven tones. The fill is a tint of the status color made with `color-mix`, so
8
+ * when a theme changes its status colors, the tints change with them.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -16,18 +15,18 @@ import type { CSSResultGroup } from 'lit';
16
15
  *
17
16
  * @slot - The tag's label.
18
17
  *
19
- * @event {HelixDismissEvent} helix-dismiss - Fired when the reader asks to remove the tag. Cancelable: refusing it takes the decision and nothing moves.
18
+ * @event {HelixDismissEvent} helix-dismiss - The remove button was pressed. The tag does not remove itself, so remove it in response. Cancelable.
20
19
  *
21
20
  * @csspart dismiss - The remove button, when `dismissible`.
22
21
  *
23
- * @cssproperty --tag-background-color - Fill behind the tag.
24
- * @cssproperty --tag-border-color - Color of the edge, for a chip that separates by fill alone.
25
- * @cssproperty --tag-foreground-color - Label color.
26
- * @cssproperty --tag-radius - Corner radius of the tag.
22
+ * @cssproperty --tag-background-color - The fill behind the tag.
23
+ * @cssproperty --tag-border-color - The color of the tag's edge.
24
+ * @cssproperty --tag-foreground-color - The label color.
25
+ * @cssproperty --tag-radius - The corner radius of the tag.
27
26
  */
28
27
  export declare class HelixTag extends HelixHeadlessTag {
29
28
  /**
30
- * How much of the tone the tag wears.
29
+ * How strongly the tag shows its tone: `subtle`, `solid`, or `outlined`.
31
30
  *
32
31
  * - `subtle` is the default: a wash of the tone with the label in it, for a
33
32
  * tag that labels something rather than warning about it.
@@ -42,7 +41,7 @@ export declare class HelixTag extends HelixHeadlessTag {
42
41
  */
43
42
  emphasis?: 'outlined' | 'solid' | 'subtle';
44
43
  /**
45
- * Which status the tag reports.
44
+ * The meaning the tag's color shows, such as `success` or `danger`.
46
45
  *
47
46
  * `tone` is semantic color, which is what these are and what `helix-text`
48
47
  * already calls them. `helix component`'s `axes` holds the vocabulary.
@@ -1,36 +1,29 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A run of text, with the element and the look chosen separately.
4
+ * @summary Text, with its HTML element and its type style set separately.
5
5
  *
6
6
  * @description
7
- * Two properties, and they answer different questions. `as` is the element,
8
- * which decides the document outline and what a screen reader announces.
9
- * `variant` is the ramp, which decides size, weight, leading, and tracking
10
- * together.
7
+ * `as` sets the element, which decides the document outline and what a screen
8
+ * reader announces. `variant` sets the type ramp, which decides size, weight,
9
+ * leading, and tracking together.
11
10
  *
12
- * They are separate because they genuinely come apart: a section's second
13
- * heading sometimes has to look smaller without lying about the outline, and a
14
- * `<p>` sometimes has to read as a caption. They default to matching, so the
15
- * common case is `as="h2"` and nothing else.
11
+ * The two match by default, so usually you set only `as`, such as `as="h2"`.
12
+ * Set `variant` when the look and the element differ, such as a heading that
13
+ * looks smaller or a `<p>` styled as a caption.
16
14
  *
17
- * The pairing is resolved in CSS rather than by computing an attribute, so the
18
- * element writes nothing to its own host: `as="h2"` picks up the heading ramp
19
- * through a selector, and setting `variant` takes the pairing rule out of play.
20
- * Deriving it in `willUpdate` works and must not be done: it puts an attribute
21
- * on the host that the server's markup does not have, which is a hydration
22
- * mismatch in every React consumer.
15
+ * The pairing is resolved in CSS, so the element writes nothing to its host.
16
+ * `as="h2"` picks up the heading ramp through a selector, and setting `variant`
17
+ * overrides the pairing. Do not derive it in `willUpdate`, because that adds a
18
+ * host attribute the server markup does not have, which causes a hydration
19
+ * mismatch in React.
23
20
  *
24
- * **Size, weight, and leading are not properties.** Exposing them separately
25
- * offers a few hundred combinations of which a handful are right, and every
26
- * caller then picks one. A ramp is a decision the system already made:
27
- * the ramp is named, and a page built from it is consistent because there was
28
- * nothing else to choose.
21
+ * Size, weight, and leading are not separate properties. Choose a named ramp
22
+ * with `variant`.
29
23
  *
30
- * `tone` and `emphasis` stay separate, because color carries state rather than
31
- * typography, and what a line means is not how loudly it says it. Folding
32
- * either in would mean `caption-danger` and `label-muted` and the rest of the
33
- * cross product, which is the explosion a named ramp exists to prevent.
24
+ * `tone` and `emphasis` are separate from `variant`, because color carries
25
+ * state. Combining them would need a variant for every pair, such as
26
+ * `caption-danger` and `label-muted`.
34
27
  *
35
28
  * @since 0.1.0
36
29
  * @status stable
@@ -44,13 +37,13 @@ import type { CSSResultGroup } from 'lit';
44
37
  */
45
38
  export declare class HelixText extends HelixElement {
46
39
  /**
47
- * Which element to render.
40
+ * The HTML element to render.
48
41
  *
49
42
  * Decides the outline and the semantics.
50
43
  */
51
44
  as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'strong' | 'em' | 'code' | 'label';
52
45
  /**
53
- * How loud the text is, beside what it means.
46
+ * Makes the text quieter: `muted`, or the quieter `subtle`.
54
47
  *
55
48
  * `muted` is the quiet ink that still has to be read, and `subtle` the
56
49
  * quieter one below it. Two axes because the test says so: a line can be a
@@ -67,9 +60,8 @@ export declare class HelixText extends HelixElement {
67
60
  */
68
61
  emphasis?: 'muted' | 'subtle';
69
62
  /**
70
- * What the text means. A separate axis from the type ramp, because color
71
- * carries state: folding it in would mean `caption-danger` and the rest of the
72
- * cross product.
63
+ * The meaning of the text, shown by its color, such as `danger` or `success`.
64
+ * It is set separately from `variant`.
73
65
  *
74
66
  * **There is no `default` value**, and one must not be added: it would match
75
67
  * no rule and fall through to the inherited ink, reading as working while
@@ -80,7 +72,7 @@ export declare class HelixText extends HelixElement {
80
72
  */
81
73
  tone?: 'accent' | 'danger' | 'info' | 'primary' | 'success' | 'warning';
82
74
  /**
83
- * Type treatment.
75
+ * The type style, which sets the size, weight, leading, and tracking.
84
76
  *
85
77
  * Defaults to the one that matches `as`.
86
78
  */
@@ -1,13 +1,12 @@
1
1
  import { HelixHeadlessTextarea } from '@fusion.dev/helix-headless/textarea';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Several lines of text a reader types into.
4
+ * @summary A multi-line text field.
5
5
  *
6
6
  * @description
7
- * The same frame an `Input` wears, so a form of mixed fields reads as one set
8
- * rather than as two kinds of box. What differs is the resize handle, which is
9
- * the platform's and is left alone on the block axis only: a field that can be
10
- * dragged wider than the form holding it is a field that breaks the layout.
7
+ * Uses the same frame as `Input`, so mixed fields in a form match. The
8
+ * platform's resize handle is kept on the block axis only, so the field cannot
9
+ * be dragged wider than its form.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -4,18 +4,16 @@ import '../../icon/index.js';
4
4
  import '../../tag/index.js';
5
5
  import '../../time-picker/index.js';
6
6
  /**
7
- * @summary A time, typed or picked from a list.
7
+ * @summary A field for a time, typed or picked from a list.
8
8
  *
9
9
  * @description
10
- * The frame is the field rather than the input, so the trigger sits inside the
11
- * same box as the text and the focus ring is drawn once around the whole
12
- * control. The trigger is a mark within that box rather than a button beside it,
13
- * the arrangement Date Input settled on.
10
+ * The frame wraps the whole field, so the trigger sits in the same box as the
11
+ * text and the focus ring goes around the whole control. The trigger is drawn
12
+ * inside that box, as in Date Input.
14
13
  *
15
- * The panel is the field's width, which is the one place this differs from Input
16
- * Date: a calendar is seven columns with a width of its own, and a list of times
17
- * is a column of one line each, so it should be as wide as the control it
18
- * belongs to. That is the same reasoning Select gives for its own list.
14
+ * The panel is as wide as the field. This is the one difference from Input
15
+ * Date, whose calendar has seven columns and a width of its own. A list of
16
+ * times is one column, so it matches the control, as Select's list does.
19
17
  *
20
18
  * @since 0.1.0
21
19
  * @status stable
@@ -25,11 +23,11 @@ import '../../time-picker/index.js';
25
23
  *
26
24
  * @cssproperty --time-input-background-color - Fill behind the field.
27
25
  * @cssproperty --time-input-border-color - Color of the panel's edge.
28
- * @cssproperty --time-input-border-width - Width of the panel's edge. Follows
29
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
30
- * theme says otherwise.
31
- * @cssproperty --time-input-shadow - Lift under the panel. Follows `--helix-shadow-floating`:
32
- * a floating surface sits over content nobody can predict, so it keeps a lift by default.
26
+ * @cssproperty --time-input-border-width - Width of the panel's edge. Defaults to
27
+ * `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless
28
+ * your theme sets a width.
29
+ * @cssproperty --time-input-shadow - Shadow under the panel. Defaults to
30
+ * `--helix-shadow-floating`, because the panel can sit over any content.
33
31
  */
34
32
  export declare class HelixTimeInput extends HelixHeadlessTimeInput {
35
33
  static tier: string;
@@ -3,17 +3,15 @@ import type { CSSResultGroup } from 'lit';
3
3
  import '../../listbox/index.js';
4
4
  import '../../option/index.js';
5
5
  /**
6
- * @summary Picks a time, from a list of them.
6
+ * @summary A control for choosing a time from a list or from wheels.
7
7
  *
8
8
  * @description
9
- * A bounded list on a surface of its own, because ninety-six rows is taller than
10
- * anywhere it will be put. `--time-picker-list-block-size` is the bound and it is a height
11
- * rather than a count of rows: what a panel has is room, and a row count would
12
- * have to be recomputed every time the density changed.
9
+ * The list has a bounded height on a surface of its own, because 96 rows are
10
+ * taller than any place it is used. `--time-picker-list-block-size` sets the
11
+ * bound as a height, so it does not need recomputing when the density changes.
13
12
  *
14
- * No border and no fill of its own. Flat on a page it takes what it is given,
15
- * and in Time Input's panel the panel supplies both: a list that brought its own
16
- * card would be a card inside a card there.
13
+ * The picker has no border or fill of its own. On a page it takes the space it
14
+ * is given, and inside Time Input the panel supplies both.
17
15
  *
18
16
  * @since 0.1.0
19
17
  * @status stable
@@ -22,8 +20,8 @@ import '../../option/index.js';
22
20
  * @documentation https://fusion.dev/helix/components/time-picker
23
21
  *
24
22
  * @cssproperty --time-picker-list-block-size - How tall the list is before it scrolls.
25
- * @cssproperty --time-picker-range-color - Wash behind the times inside a range.
26
- * @cssproperty --time-picker-row-size - Height and least width of one row in a wheel.
23
+ * @cssproperty --time-picker-range-color - Fill behind the times inside a range.
24
+ * @cssproperty --time-picker-row-size - Height and minimum width of one row in a wheel.
27
25
  * @cssproperty --time-picker-selected-color - Fill on the chosen row of a wheel.
28
26
  * @cssproperty --time-picker-wheel-block-size - How tall a wheel is. Five rows by default.
29
27
  */
@@ -4,8 +4,8 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One event on a timeline: when it happened, and what it was.
5
5
  *
6
6
  * @description
7
- * Presentation only: the rail down the side, the mark on it, and the line that
8
- * arrives at this entry from the one before.
7
+ * Draws the rail down the side, the mark on it, and the line that arrives from
8
+ * the previous entry.
9
9
  *
10
10
  * @since 0.1.0
11
11
  * @status stable
@@ -1,11 +1,11 @@
1
1
  import { HelixHeadlessTimeline } from '@fusion.dev/helix-headless/timeline';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A record of what happened, in the order it happened.
4
+ * @summary A list of events, in the order they happened.
5
5
  *
6
6
  * @description
7
- * Presentation only: the direction time runs in, and the spacing between one
8
- * event and the next. Every entry draws its own mark and its own line.
7
+ * Sets the direction time runs in and the spacing between events. Each entry
8
+ * draws its own mark and line.
9
9
  *
10
10
  * @since 0.1.0
11
11
  * @status stable
@@ -4,10 +4,9 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One message in the toast region.
5
5
  *
6
6
  * @description
7
- * A surface with a shadow, because a toast sits over whatever the reader was
8
- * looking at rather than in it. The severity is a bar down the leading edge and
9
- * not a fill: a message is text to be read, and a colored panel behind it
10
- * costs contrast for something the mark already says.
7
+ * A surface with a shadow, because a toast sits over the page content. The
8
+ * severity is a bar along the leading edge, so the message text keeps full
9
+ * contrast on the surface.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -15,11 +14,11 @@ import type { CSSResultGroup } from 'lit';
15
14
  *
16
15
  * @cssproperty --toast-border-color - Color of the panel's edge.
17
16
  * @cssproperty --toast-border-width - Width of the panel's edge. Follows
18
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
19
- * theme says otherwise.
17
+ * `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your
18
+ * theme sets a border.
20
19
  * @cssproperty --toast-item-padding - Space between the message's edge and its contents.
21
- * @cssproperty --toast-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
22
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
20
+ * @cssproperty --toast-shadow - Shadow under the panel. Follows `--helix-shadow-floating`. A
21
+ * floating surface can sit over any content, so it has a shadow by default.
23
22
  */
24
23
  export declare class HelixToastItem extends HelixHeadlessToastItem {
25
24
  static styles: CSSResultGroup;
@@ -1,21 +1,19 @@
1
1
  import { HelixHeadlessToast } from '@fusion.dev/helix-headless/toast';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary The region messages arrive in, and the only thing that announces them.
4
+ * @summary The region that holds toast messages, and the only element that announces them.
5
5
  *
6
6
  * @description
7
- * Fixed to the window, and it catches nothing: the region spans a whole edge,
8
- * so a stack of one message in a corner would otherwise put an invisible bar
9
- * across everything beside it. The region is transparent to a pointer and the
10
- * messages take it back.
7
+ * Fixed to the window. The region spans a whole edge, so it ignores the pointer
8
+ * and only the messages receive clicks. Content beside a message stays
9
+ * clickable.
11
10
  *
12
- * **It belongs at the root of the application.** `position: fixed` is
13
- * positioned against the viewport only while no ancestor carries `transform`,
14
- * `filter`, `perspective` or `contain`, any of which makes that ancestor the
15
- * containing block instead, and it is still clipped by an ancestor with
16
- * `overflow: hidden`. That is a real constraint rather than a style note, and
17
- * it is the same fact that put every other floating surface in this library
18
- * into the top layer.
11
+ * **Place the region at the root of your application.** `position: fixed`
12
+ * positions against the viewport only while no ancestor has `transform`,
13
+ * `filter`, `perspective`, or `contain`. Any of these makes that ancestor the
14
+ * containing block, and an ancestor with `overflow: hidden` still clips the
15
+ * region. The other floating surfaces in Helix use the top layer for the same
16
+ * reason.
19
17
  *
20
18
  * @since 0.1.0
21
19
  * @status stable
@@ -4,15 +4,13 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A row of options with the selection marked by a moving indicator.
5
5
  *
6
6
  * @description
7
- * The indicator travels between items rather than the fill swapping. A fill
8
- * that appears on one item as it disappears from another is two changes at once
9
- * and reads as a flicker; one object moving is something the eye follows, and
10
- * it says where the selection came from as well as where it went.
7
+ * The indicator moves between items, so a change of selection is one moving
8
+ * object the eye can follow.
11
9
  *
12
- * It animates `translate` and `inline-size`. Width is a layout property and the
13
- * rule is transform and opacity only, but the indicator is out of flow, so
14
- * animating its width reflows nothing else. Scaling instead would distort the
15
- * corner radius, which is worse than the exception.
10
+ * It animates `translate` and `inline-size`. Animating width is an exception to
11
+ * the transform and opacity rule, and it is safe because the indicator is out
12
+ * of flow and its width reflows nothing else. Scaling would distort the corner
13
+ * radius.
16
14
  *
17
15
  * @since 0.1.0
18
16
  * @status stable
@@ -20,16 +18,16 @@ import type { CSSResultGroup } from 'lit';
20
18
  * @documentation https://fusion.dev/helix/components/toggle
21
19
  *
22
20
  * @slot - The group's items.
23
- * @slot end - Whatever sits after the track on its own line, such as a count or a reset.
24
- * @slot start - Whatever sits before the track on its own line, such as an icon or a caption.
21
+ * @slot end - Content after the track, on the same line, such as a count or a reset.
22
+ * @slot start - Content before the track, on the same line, such as an icon or a caption.
25
23
  *
26
24
  * @csspart indicator - The moving marker behind the selected item.
27
25
  *
28
- * @cssproperty --toggle-group-indicator-color - Fill of the moving marker.
26
+ * @cssproperty --toggle-group-indicator-color - The fill of the moving marker.
29
27
  */
30
28
  export declare class HelixToggleGroup extends HelixHeadlessToggleGroup {
31
29
  /**
32
- * How the group separates itself from the page.
30
+ * How the group is set apart from the page.
33
31
  *
34
32
  * Separation rather than emphasis, because what `plain` drops is the
35
33
  * background *and* the border: the question is where the group ends, not how
@@ -4,9 +4,8 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One option in a toggle group.
5
5
  *
6
6
  * @description
7
- * Carries no background of its own. The selected look comes from the group's
8
- * indicator sitting behind it, which is what lets that marker travel instead of
9
- * one fill appearing as another disappears.
7
+ * Has no background of its own. The selected look comes from the group's
8
+ * indicator behind it, which moves between items.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -4,8 +4,8 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A group of controls that share one tab stop.
5
5
  *
6
6
  * @description
7
- * No chrome of its own: a toolbar is a place controls sit, and a border around
8
- * them would be a second frame inside whatever already frames the bar.
7
+ * The toolbar draws no frame of its own, so it does not add a second frame
8
+ * inside whatever already frames the bar.
9
9
  *
10
10
  * @since 0.1.0
11
11
  * @status stable
@@ -17,7 +17,7 @@ import type { CSSResultGroup } from 'lit';
17
17
  *
18
18
  * @csspart toolbar - The toolbar container.
19
19
  *
20
- * @cssproperty --toolbar-gap - Space between controls.
20
+ * @cssproperty --toolbar-gap - The space between controls.
21
21
  */
22
22
  export declare class HelixToolbar extends HelixHeadlessToolbar {
23
23
  static styles: CSSResultGroup;
@@ -1,14 +1,14 @@
1
1
  import { HelixHeadlessTooltip } from '@fusion.dev/helix-headless/tooltip';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A short description that appears beside what it describes.
4
+ * @summary A short text that appears next to an element on hover and focus.
5
5
  *
6
6
  * @description
7
- * The bubble is in the top layer, so it needs no `z-index` and cannot be
8
- * clipped by whatever it sits inside.
7
+ * The bubble is in the top layer, so it needs no `z-index` and no container
8
+ * clips it.
9
9
  *
10
- * The arrow is positioned by the same pass that positions the bubble, so it
11
- * still points at the trigger after the bubble has slid along to stay in view.
10
+ * The arrow is positioned in the same pass as the bubble, so it still points at
11
+ * the trigger after the bubble shifts to stay in view.
12
12
  *
13
13
  * @since 0.1.0
14
14
  * @status stable
@@ -17,14 +17,14 @@ import type { CSSResultGroup } from 'lit';
17
17
  * @aliases Hint, Popup label
18
18
  * @documentation https://fusion.dev/helix/components/tooltip
19
19
  *
20
- * @cssproperty --tooltip-arrow-size - Size of the point at the bubble's edge.
21
- * @cssproperty --tooltip-backdrop - Blur behind a `frosted` or `glass` bubble.
22
- * @cssproperty --tooltip-background-color - Fill of the bubble.
23
- * @cssproperty --tooltip-max-inline-size - Widest the bubble grows before wrapping.
20
+ * @cssproperty --tooltip-arrow-size - The size of the arrow on the bubble's edge.
21
+ * @cssproperty --tooltip-backdrop - The blur behind a `frosted` or `glass` bubble.
22
+ * @cssproperty --tooltip-background-color - The fill of the bubble.
23
+ * @cssproperty --tooltip-max-inline-size - The widest the bubble grows before its text wraps.
24
24
  */
25
25
  export declare class HelixTooltip extends HelixHeadlessTooltip {
26
26
  /**
27
- * What the bubble is made of.
27
+ * The bubble's surface: `frosted` or `glass`.
28
28
  *
29
29
  * Absent is the inverse bubble, a dark surface over a light page, which is
30
30
  * what a hint over content the theme cannot know has always been here. `glass`
@@ -1,20 +1,19 @@
1
1
  import { HelixHeadlessTour } from '@fusion.dev/helix-headless/tour';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A guided run through an interface, one stop at a time.
4
+ * @summary A guided tour of an interface, one stop at a time.
5
5
  *
6
6
  * @description
7
- * It draws the light and nothing else: the scrim's color and the lit box's
8
- * corners are this tier's, and the order, the stops and the measuring stay
9
- * below.
7
+ * Draws the spotlight: the scrim's color and the corners of the lit box. The
8
+ * order, the stops, and the measuring are in the headless tier.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
13
12
  * @category overlays
14
13
  * @documentation https://fusion.dev/helix/components/tour
15
14
  *
16
- * @cssproperty --tour-scrim-color - The darkness outside the lit box.
17
- * @cssproperty --tour-spotlight-radius - Corner radius of the lit box.
15
+ * @cssproperty --tour-scrim-color - The color of the dimmed area outside the spotlight.
16
+ * @cssproperty --tour-spotlight-radius - The corner radius of the spotlight.
18
17
  */
19
18
  export declare class HelixTour extends HelixHeadlessTour {
20
19
  static styles: CSSResultGroup;