@fusion.dev/helix 0.105.0 → 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 (178) hide show
  1. package/custom-elements.json +8259 -4085
  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 +7 -0
  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/buildings/map-buildings.css.d.ts +1 -0
  73. package/dist/map/buildings/map-buildings.css.js +27 -0
  74. package/dist/map/buildings/map-buildings.d.ts +28 -0
  75. package/dist/map/buildings/map-buildings.js +20 -0
  76. package/dist/map/contours/map-contours.css.d.ts +1 -0
  77. package/dist/map/contours/map-contours.css.js +8 -0
  78. package/dist/map/contours/map-contours.d.ts +25 -0
  79. package/dist/map/contours/map-contours.js +16 -0
  80. package/dist/map/index.d.ts +5 -0
  81. package/dist/map/index.js +5 -0
  82. package/dist/map/landcover/map-landcover.css.d.ts +1 -0
  83. package/dist/map/landcover/map-landcover.css.js +5 -0
  84. package/dist/map/landcover/map-landcover.d.ts +25 -0
  85. package/dist/map/landcover/map-landcover.js +16 -0
  86. package/dist/map/marker/map-marker.css.js +5 -0
  87. package/dist/map/position/map-position.css.js +5 -0
  88. package/dist/map/raster/map-raster.css.d.ts +1 -0
  89. package/dist/map/raster/map-raster.css.js +4 -0
  90. package/dist/map/raster/map-raster.d.ts +23 -0
  91. package/dist/map/raster/map-raster.js +16 -0
  92. package/dist/map/root/map-root.css.js +218 -1
  93. package/dist/map/terrain/map-terrain.css.d.ts +1 -0
  94. package/dist/map/terrain/map-terrain.css.js +12 -0
  95. package/dist/map/terrain/map-terrain.d.ts +27 -0
  96. package/dist/map/terrain/map-terrain.js +16 -0
  97. package/dist/megamenu/root/megamenu-root.d.ts +14 -14
  98. package/dist/menu/item/menu-item.d.ts +8 -8
  99. package/dist/menu/root/menu-root.d.ts +9 -9
  100. package/dist/meter/root/meter-root.d.ts +29 -38
  101. package/dist/navigation/root/navigation-root.d.ts +4 -5
  102. package/dist/notifications/group/notification-group.d.ts +9 -13
  103. package/dist/notifications/notification/notification.d.ts +27 -33
  104. package/dist/notifications/root/notifications-root.d.ts +9 -11
  105. package/dist/number-input/root/number-input-root.d.ts +16 -18
  106. package/dist/object-inspector/root/object-inspector-root.d.ts +11 -12
  107. package/dist/option/group/option-group.d.ts +3 -4
  108. package/dist/option/root/option-root.d.ts +7 -8
  109. package/dist/orb/root/orb-root.d.ts +30 -36
  110. package/dist/outline/root/outline-root.d.ts +8 -10
  111. package/dist/pagination/root/pagination-root.d.ts +13 -23
  112. package/dist/pagination/size/pagination-size.d.ts +7 -7
  113. package/dist/pagination/summary/pagination-summary.d.ts +3 -4
  114. package/dist/pin-input/root/pin-input-root.d.ts +8 -11
  115. package/dist/popover/root/popover-root.d.ts +14 -16
  116. package/dist/progress/root/progress-root.d.ts +10 -13
  117. package/dist/qr-code/root/qr-code-root.d.ts +13 -14
  118. package/dist/quote/root/quote-root.d.ts +2 -2
  119. package/dist/radio/group/radio-group.d.ts +6 -6
  120. package/dist/radio/root/radio-root.d.ts +16 -19
  121. package/dist/rating/root/rating-root.d.ts +9 -9
  122. package/dist/sandbox/preview/sandbox-preview.d.ts +18 -19
  123. package/dist/sandbox/root/sandbox-root.d.ts +27 -27
  124. package/dist/sandbox/source/sandbox-source.d.ts +9 -12
  125. package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +9 -11
  126. package/dist/sandbox/terminal/sandbox-terminal.d.ts +13 -15
  127. package/dist/sandbox/toolbar/sandbox-toolbar.d.ts +8 -9
  128. package/dist/scatter-chart/root/scatter-chart-root.d.ts +18 -29
  129. package/dist/scroll-area/root/scroll-area-root.d.ts +13 -13
  130. package/dist/select/root/select-root.d.ts +14 -14
  131. package/dist/shared/mixin-control-surface/mixin-control-surface.d.ts +8 -2
  132. package/dist/shared/viewport/viewport.css.js +5 -1
  133. package/dist/skeleton/root/skeleton-root.d.ts +6 -7
  134. package/dist/skip-link/root/skip-link-root.d.ts +16 -19
  135. package/dist/slider/root/slider-root.d.ts +16 -18
  136. package/dist/sparkline/root/sparkline-root.d.ts +16 -24
  137. package/dist/speed-dial/item/speed-dial-item.d.ts +5 -5
  138. package/dist/speed-dial/root/speed-dial-root.d.ts +3 -4
  139. package/dist/splitter/root/splitter-root.d.ts +23 -32
  140. package/dist/stat/group/stat-group.d.ts +4 -5
  141. package/dist/stat/root/stat-root.d.ts +4 -5
  142. package/dist/steps/root/steps-root.d.ts +12 -13
  143. package/dist/switch/root/switch-root.d.ts +13 -17
  144. package/dist/table/cell/table-cell.css.js +5 -0
  145. package/dist/table/cell/table-cell.d.ts +4 -4
  146. package/dist/table/column/table-column.d.ts +3 -4
  147. package/dist/table/root/table-root.d.ts +5 -6
  148. package/dist/table/row/table-row.d.ts +3 -3
  149. package/dist/tabs/panel/tab-panel.d.ts +2 -3
  150. package/dist/tabs/root/tabs-root.d.ts +12 -11
  151. package/dist/tabs/tab/tab.d.ts +4 -4
  152. package/dist/tag/root/tag-root.d.ts +10 -11
  153. package/dist/text/root/text-root.d.ts +22 -30
  154. package/dist/textarea/root/textarea-root.d.ts +4 -5
  155. package/dist/time-input/root/time-input-root.d.ts +12 -14
  156. package/dist/time-picker/root/time-picker-root.d.ts +8 -10
  157. package/dist/timeline/item/timeline-item.d.ts +2 -2
  158. package/dist/timeline/root/timeline-root.d.ts +3 -3
  159. package/dist/toast/item/toast-item.d.ts +7 -8
  160. package/dist/toast/root/toast-root.d.ts +10 -12
  161. package/dist/toggle/group/toggle-group.d.ts +10 -12
  162. package/dist/toggle/root/toggle-root.d.ts +2 -3
  163. package/dist/toolbar/root/toolbar-root.d.ts +3 -3
  164. package/dist/tooltip/root/tooltip-root.d.ts +10 -10
  165. package/dist/tour/root/tour-root.d.ts +5 -6
  166. package/dist/tour/stop/tour-stop.d.ts +14 -14
  167. package/dist/tree/item/tree-item.d.ts +6 -9
  168. package/dist/tree/root/tree-root.d.ts +7 -8
  169. package/dist/trend/root/trend-root.d.ts +12 -19
  170. package/dist/video/root/video-root.d.ts +15 -21
  171. package/dist/video-playlist/item/video-playlist-item.d.ts +4 -4
  172. package/dist/video-playlist/menu/video-playlist-menu.d.ts +14 -16
  173. package/dist/video-playlist/root/video-playlist-root.d.ts +5 -5
  174. package/dist/virtual-list/root/virtual-list-root.d.ts +6 -8
  175. package/package.json +6 -6
  176. package/types/jsx.d.ts +10064 -8833
  177. package/types/svelte.d.ts +5 -0
  178. package/types/vue.d.ts +1909 -1480
@@ -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;
@@ -2,28 +2,28 @@ import { HelixHeadlessTourStop } from '@fusion.dev/helix-headless/tour';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../button/index.js';
4
4
  /**
5
- * @summary One stop on a tour: what it points at, and a panel to say it in.
5
+ * @summary One stop on a tour: the element it points at, and a panel of content about it.
6
6
  *
7
7
  * @description
8
- * The panel is `Popover`'s panel by another name, on purpose: a surface, an
9
- * inset and a lift, so a stop and a flyout on the same page are the same
10
- * object. What this tier adds beyond that is the point, which no other surface
11
- * here draws.
8
+ * The panel uses the same styles as `Popover`'s panel, with a surface, an
9
+ * inset, and a shadow, so a stop matches a popover on the same page. The styled
10
+ * tier adds the pointer toward the target, which no other Helix surface draws.
12
11
  *
13
12
  * @since 0.1.0
14
13
  * @status stable
15
14
  * @category overlays
16
15
  * @documentation https://fusion.dev/helix/components/tour
17
16
  *
18
- * @cssproperty --tour-arrow-size - The point's box, before it is rotated.
19
- * @cssproperty --tour-border-width - Width of the panel's edge. Follows
20
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
21
- * theme says otherwise.
22
- * @cssproperty --tour-bubble-size - How wide the panel may grow.
23
- * @cssproperty --tour-padding - Inset inside the panel.
24
- * @cssproperty --tour-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
25
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
26
- * @cssproperty --tour-surface-color - The panel's own surface.
17
+ * @cssproperty --tour-arrow-size - The size of the arrow's box, before it is rotated.
18
+ * @cssproperty --tour-border-width - The width of the panel's border. It follows
19
+ * `--helix-border-floating`, which is `0`, so the panel stands out by its
20
+ * shadow unless a theme sets a border.
21
+ * @cssproperty --tour-bubble-size - The widest the panel can grow.
22
+ * @cssproperty --tour-padding - The padding inside the panel.
23
+ * @cssproperty --tour-shadow - The shadow under the panel. It follows
24
+ * `--helix-shadow-floating`. The panel can sit over any content, so it has a
25
+ * shadow by default.
26
+ * @cssproperty --tour-surface-color - The color of the panel's surface.
27
27
  */
28
28
  export declare class HelixTourStop extends HelixHeadlessTourStop {
29
29
  static tier: string;
@@ -4,14 +4,11 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One node in a tree.
5
5
  *
6
6
  * @description
7
- * Indent comes from the `level` the tree sets, as a multiple of one hook, so a
8
- * node moved to another depth re-indents without any nested selector. Nesting
9
- * selectors by depth is the usual approach and stops working at whatever depth
10
- * nobody wrote a rule for.
7
+ * Indentation is a multiple of one hook, set from the `level` the tree assigns,
8
+ * so an item moved to another depth re-indents with no nested selectors, at any
9
+ * depth.
11
10
  *
12
- * The twisty rotates rather than swapping glyphs, so opening a branch is a
13
- * short movement instead of a substitution. Motion carries the state change;
14
- * the row itself stays flat.
11
+ * The twisty rotates when a branch opens. The row itself stays flat.
15
12
  *
16
13
  * @since 0.1.0
17
14
  * @status stable
@@ -21,7 +18,7 @@ import type { CSSResultGroup } from 'lit';
21
18
  * @slot - The item's label.
22
19
  * @slot children - Nested items, which make this a branch.
23
20
  *
24
- * @event {HelixSelectEvent} helix-select - Fired when the item is chosen. Cancelable: refusing it takes the decision and nothing moves.
21
+ * @event {HelixSelectEvent} helix-select - Fired when the item is chosen, and cancelable. Canceling it changes nothing.
25
22
  *
26
23
  * @csspart group - The container for nested items.
27
24
  * @csspart item - The node, and the focus target.
@@ -32,7 +29,7 @@ import type { CSSResultGroup } from 'lit';
32
29
  * @cssproperty --tree-chevron-size - Size of the chevron, and the gutter a leaf reserves.
33
30
  * @cssproperty --tree-gap - Space between rows.
34
31
  * @cssproperty --tree-indent - Indent added per level.
35
- * @cssproperty --tree-row-size - Least height of a row, so rows with and without an icon match.
32
+ * @cssproperty --tree-row-size - Minimum height of a row, so rows with and without an icon match.
36
33
  */
37
34
  export declare class HelixTreeItem extends HelixHeadlessTreeItem {
38
35
  static styles: CSSResultGroup;
@@ -1,12 +1,11 @@
1
1
  import { HelixHeadlessTree } from '@fusion.dev/helix-headless/tree';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A tree of items, navigable entirely from the keyboard.
4
+ * @summary A hierarchy of items, with branches that open and close.
5
5
  *
6
6
  * @description
7
7
  * Quiet by default: no rules between rows and no fill except on the selected
8
- * item. A navigation tree is read by scanning, and every line of chrome added
9
- * to it is one more thing between the reader and the label.
8
+ * item, so the labels are easy to scan.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -16,17 +15,17 @@ import type { CSSResultGroup } from 'lit';
16
15
  *
17
16
  * @slot - The tree's items.
18
17
  *
19
- * @event {HelixSelectEvent} helix-select - Fired when an item is chosen. Dispatched by the item and listened for here, because the tree is what a consumer holds a reference to. Cancelable: refusing it takes the decision and nothing moves.
18
+ * @event {HelixSelectEvent} helix-select - Fired when an item is chosen. The item sends it, and you can listen for it on the tree. Cancelable: canceling it changes nothing.
20
19
  *
21
- * @csspart live - The empty and loading lines again, in a region a screen reader hears when they change. Visually hidden in the styled tier.
20
+ * @csspart live - A copy of the empty and loading messages, in a live region that announces them when they change. Visually hidden in the styled tier.
22
21
  * @csspart tree - The tree container.
23
22
  *
24
- * @cssproperty --tree-chevron-gap - Set from `chevron-placement`; the space before the chevron.
25
- * @cssproperty --tree-chevron-order - Set from `chevron-placement`; read by each item.
23
+ * @cssproperty --tree-chevron-gap - The space before the chevron. Set from `chevron-placement`.
24
+ * @cssproperty --tree-chevron-order - The chevron's order in the row. Set from `chevron-placement` and read by each item.
26
25
  * @cssproperty --tree-chevron-size - Size of the chevron, and the gutter a leaf reserves.
27
26
  * @cssproperty --tree-gap - Space between rows.
28
27
  * @cssproperty --tree-indent - Indent added per level.
29
- * @cssproperty --tree-row-size - Least height of a row, so rows with and without an icon match.
28
+ * @cssproperty --tree-row-size - Minimum height of a row, so rows with and without an icon match.
30
29
  */
31
30
  export declare class HelixTree extends HelixHeadlessTree {
32
31
  /**