@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
@@ -3,16 +3,15 @@ import type { CSSResultGroup } from 'lit';
3
3
  import '../../listbox/index.js';
4
4
  import '../../option/index.js';
5
5
  /**
6
- * @summary A closed list that opens to be chosen from.
6
+ * @summary A control that opens a list of options to choose from.
7
7
  *
8
8
  * @description
9
- * The trigger wears the same frame as an `Input`, because in a form it stands
10
- * in a row with them and a control that looks like a button among fields reads
11
- * as an action rather than an answer.
9
+ * The trigger uses the same frame as `Input`, so it lines up with the fields
10
+ * beside it in a form. A trigger that looked like a button would read as an
11
+ * action.
12
12
  *
13
- * The panel is an overlay surface rather than a sunken one: it sits over the
14
- * page instead of on it, which is what its shadow says and what tells it apart
15
- * from the field it came out of.
13
+ * The panel uses an overlay surface. Its shadow shows that it sits over the
14
+ * page and sets it apart from the field it opened from.
16
15
  *
17
16
  * @since 0.1.0
18
17
  * @status stable
@@ -21,18 +20,19 @@ import '../../option/index.js';
21
20
  * @documentation https://fusion.dev/helix/components/select
22
21
  *
23
22
  * @cssproperty --select-border-color - Color of the panel's edge.
24
- * @cssproperty --select-border-width - Width of the panel's edge. Follows
25
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
26
- * theme says otherwise.
27
- * @cssproperty --select-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
28
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
29
- * @cssproperty --select-surface-max-block-size - How tall the panel gets.
23
+ * @cssproperty --select-border-width - Width of the panel's edge. Defaults to
24
+ * `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless
25
+ * your theme sets a width.
26
+ * @cssproperty --select-shadow - Shadow under the panel. Defaults to
27
+ * `--helix-shadow-floating`, because the panel can sit over any content.
28
+ * @cssproperty --select-surface-max-block-size - Maximum height of the panel.
30
29
  */
31
30
  export declare class HelixSelect extends HelixHeadlessSelect {
32
31
  static tier: string;
33
32
  static styles: CSSResultGroup;
34
33
  /**
35
- * How much ink the trigger claims.
34
+ * How strongly the trigger is drawn. Leave it unset for a framed field, or
35
+ * set `ghost` for a trigger with no fill or edge.
36
36
  *
37
37
  * **The first field in this library to take an axis, and the case that asked
38
38
  * for it is a control in a row rather than a control on a form.** A chat's
@@ -19,9 +19,15 @@ type Constructor<T> = new (...args: any[]) => T;
19
19
  * three drift the first time one gains a value.
20
20
  */
21
21
  export declare class MixinControlSurfaceInterface {
22
- /** How filled it is drawn. Absent is the control's own resting treatment. */
22
+ /**
23
+ * How much fill the control is drawn with. Without it, the control uses its
24
+ * default.
25
+ */
23
26
  emphasis?: 'ghost' | 'outlined' | 'solid' | 'subtle';
24
- /** What it means. Absent is `neutral`, which is the resting case. */
27
+ /**
28
+ * Which color the control is drawn in, by what it means. Without it, the tone
29
+ * is `neutral`.
30
+ */
25
31
  tone?: 'accent' | 'danger' | 'neutral' | 'primary';
26
32
  }
27
33
  export declare const MixinControlSurface: <T extends Constructor<HelixElement>>(Base: T) => Constructor<MixinControlSurfaceInterface> & T;
@@ -83,8 +83,9 @@ grid-area: full;
83
83
  [part="controls"] button {
84
84
  align-items: center;
85
85
  background-color: var(--viewport-control-background-color, var(--helix-color-surface-overlay));
86
- border: var(--helix-border-thin) solid var(--helix-color-border);
86
+ border: var(--helix-border-floating) solid var(--helix-color-border);
87
87
  border-radius: var(--helix-radii-sm);
88
+ box-shadow: var(--helix-shadow-floating);
88
89
  block-size: var(--helix-size-control-sm);
89
90
  color: var(--helix-color-foreground);
90
91
  cursor: pointer;
@@ -102,5 +103,9 @@ outline-offset: var(--helix-size-focus-offset);
102
103
  }
103
104
 
104
105
  [part="controls"] button:hover {
105
- background-color: var(--helix-color-surface-raised);
106
+ background-color: color-mix(
107
+ in oklab,
108
+ var(--helix-color-foreground) 10%,
109
+ var(--viewport-control-background-color, var(--helix-color-surface-overlay))
110
+ );
106
111
  }`);
@@ -1,12 +1,11 @@
1
1
  import { HelixHeadlessSkeleton } from '@fusion.dev/helix-headless/skeleton';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Stands in for content that has not arrived.
4
+ * @summary A placeholder shown in place of content that is still loading.
5
5
  *
6
6
  * @description
7
- * A sweep rather than a pulse. A block fading in and out reads as something
8
- * broken; a highlight traveling across it reads as work in progress, and it is
9
- * the same one property animating either way.
7
+ * Animates a highlight sweeping across the block, which reads as work in
8
+ * progress. A block fading in and out can look broken.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
@@ -14,13 +13,13 @@ import type { CSSResultGroup } from 'lit';
14
13
  * @aliases Placeholder, Shimmer, Ghost
15
14
  * @documentation https://fusion.dev/helix/components/skeleton
16
15
  *
17
- * @csspart skeleton - The placeholder surface.
16
+ * @csspart skeleton - The placeholder shape.
18
17
  *
19
- * @cssproperty --skeleton-size - Diameter of the circle shape.
18
+ * @cssproperty --skeleton-size - The diameter of the circle shape.
20
19
  */
21
20
  export declare class HelixSkeleton extends HelixHeadlessSkeleton {
22
21
  /**
23
- * What the missing content is shaped like.
22
+ * The shape of the placeholder: `text`, `circle`, or a block when unset.
24
23
  *
25
24
  * Unset is a block, which is what most missing things are.
26
25
  */
@@ -1,23 +1,20 @@
1
1
  import { HelixHeadlessSkipLink } from '@fusion.dev/helix-headless/skip-link';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary The first stop on a page, which moves the reader past everything
5
- * repeated on every page.
4
+ * @summary A link at the start of a page that moves keyboard focus past the
5
+ * header to the main content.
6
6
  *
7
7
  * @description
8
- * Out of sight until the keyboard reaches it, then in the corner of the
9
- * viewport and impossible to miss. The hiding is the base layer's visually
10
- * hidden helper, so the link stays in the tab order and in the accessibility
11
- * tree while nobody can see it; `display: none` would have taken it out of
12
- * both. The reveal is this sheet's.
8
+ * Hidden until it receives keyboard focus, then shown in the corner of the
9
+ * viewport. It is hidden with the base layer's visually hidden helper, so it
10
+ * stays in the tab order and the accessibility tree. This stylesheet adds the
11
+ * reveal.
13
12
  *
14
- * **Fixed to the viewport rather than placed where it sits in the document**,
15
- * because it is first in the document and the page may already be scrolled
16
- * when focus arrives, by a restored position or an anchor in the address. A
17
- * link revealed above the top of the screen is revealed to nobody.
13
+ * It is fixed to the viewport, because the page may already be scrolled when
14
+ * focus arrives, from a restored position or an anchor in the address.
18
15
  *
19
- * Put it first inside `<body>`, before the header, and give the content
20
- * region the id its `href` names.
16
+ * Put it first inside `<body>`, before the header, and give the content region
17
+ * the id its `href` names.
21
18
  *
22
19
  * @since 0.1.0
23
20
  * @status stable
@@ -25,12 +22,12 @@ import type { CSSResultGroup } from 'lit';
25
22
  * @aliases Skip navigation, Skip to content
26
23
  * @documentation https://fusion.dev/helix/components/skip-link
27
24
  *
28
- * @cssproperty --skip-link-border-color - Color of the revealed link's edge.
29
- * @cssproperty --skip-link-border-width - Width of the revealed link's edge. Follows
30
- * `--helix-border-floating`, which is `0`, so the link is told apart by its lift unless a
31
- * theme says otherwise.
32
- * @cssproperty --skip-link-shadow - Lift under the revealed link. Follows
33
- * `--helix-shadow-floating`, since it sits over whatever the page has at its corner.
25
+ * @cssproperty --skip-link-border-color - The border color of the link while it is shown.
26
+ * @cssproperty --skip-link-border-width - The border width of the link while it is shown. Follows
27
+ * `--helix-border-floating`, which is `0`, so the link is set apart by its shadow unless a
28
+ * theme sets a border.
29
+ * @cssproperty --skip-link-shadow - The shadow under the link while it is shown. Follows
30
+ * `--helix-shadow-floating`, because the link sits over the corner of the page.
34
31
  */
35
32
  export declare class HelixSkipLink extends HelixHeadlessSkipLink {
36
33
  static tier: string;
@@ -5,14 +5,12 @@ import type { CSSResultGroup } from 'lit';
5
5
  *
6
6
  * @description
7
7
  * The track and the thumb are the browser's own, restyled through the range
8
- * pseudo-elements rather than replaced. What that buys is everything a
9
- * hand-built slider has to reimplement and usually gets slightly wrong: the
10
- * drag, the keys, and a hit area sized by the platform for a finger.
8
+ * pseudo-elements. The drag, the keys, and the hit area sized for a finger stay
9
+ * native.
11
10
  *
12
- * The filled part of the track is painted with a gradient driven by the
13
- * fraction the headless tier writes, rather than by a second element laid over
14
- * it. One element cannot be half one color by any other means that survives
15
- * the thumb being dragged.
11
+ * The filled part of the track is a gradient driven by the fraction the
12
+ * headless tier writes. A gradient lets one element show two colors that follow
13
+ * the thumb while you drag it.
16
14
  *
17
15
  * @since 0.1.0
18
16
  * @status stable
@@ -20,17 +18,17 @@ import type { CSSResultGroup } from 'lit';
20
18
  * @aliases Range, Range input
21
19
  * @documentation https://fusion.dev/helix/components/slider
22
20
  *
23
- * @cssproperty --slider-fill-color - The part behind the thumb.
24
- * @cssproperty --slider-length - How long a vertical track is. Nine rem by default, and read only when `orientation` is `vertical`, a horizontal track taking the width of its row.
25
- * @cssproperty --slider-marker-color - The ticks along the track.
26
- * @cssproperty --slider-thumb-color - The handle.
27
- * @cssproperty --slider-thumb-length - The handle along the track. Follows the size unless it is told otherwise, and setting one of the two is what makes the handle an oval.
28
- * @cssproperty --slider-thumb-radius - The handle's corners. Fully round by default, so a handle given two dimensions is a capsule until this says otherwise.
29
- * @cssproperty --slider-thumb-ring-color - The fence separating the handle from the track, for a slider that is not on the page.
30
- * @cssproperty --slider-thumb-size - The handle across the track. Square with the length by default, which is what makes it round.
31
- * @cssproperty --slider-track-color - The part not yet chosen.
32
- * @cssproperty --slider-track-image - The whole track, for a slider whose color is the value.
33
- * @cssproperty --slider-track-size - How thick the track is. The progress bar's own size by default, the two being the same object.
21
+ * @cssproperty --slider-fill-color - The color of the filled part of the track, behind the thumb.
22
+ * @cssproperty --slider-length - The length of a vertical track. It defaults to nine rem and applies only when `orientation` is `vertical`. A horizontal track takes the width of its row.
23
+ * @cssproperty --slider-marker-color - The color of the marks along the track.
24
+ * @cssproperty --slider-thumb-color - The color of the thumb.
25
+ * @cssproperty --slider-thumb-length - The thumb's size along the track. It follows `--slider-thumb-size` unless you set it, and setting one of the two makes the thumb an oval.
26
+ * @cssproperty --slider-thumb-radius - The thumb's corner radius. It is fully round by default, so a thumb with two different dimensions is a capsule unless you change it.
27
+ * @cssproperty --slider-thumb-ring-color - The color of the ring between the thumb and the track. Set it for a slider that sits on a surface other than the page background.
28
+ * @cssproperty --slider-thumb-size - The thumb's size across the track. It equals the length by default, which makes the thumb round.
29
+ * @cssproperty --slider-track-color - The color of the unfilled part of the track.
30
+ * @cssproperty --slider-track-image - An image for the whole track, such as a gradient for a slider whose value is a color.
31
+ * @cssproperty --slider-track-size - The thickness of the track. It matches the progress bar's size by default.
34
32
  */
35
33
  export declare class HelixSlider extends HelixHeadlessSlider {
36
34
  static styles: CSSResultGroup;
@@ -1,27 +1,19 @@
1
1
  import { HelixHeadlessSparkline } from '@fusion.dev/helix-headless/sparkline';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A line with no axes, for the shape of a series beside the number it belongs to.
4
+ * @summary A small chart with no axes that shows the shape of a series beside its number.
5
5
  *
6
6
  * @description
7
- * Sized in `em` by default, so a sparkline set beside a figure is a figure-sized
8
- * thing and one set in a table row is a row-sized thing. The type scale is
9
- * absolute and cannot say "a little wider than this".
7
+ * Sized in `em` by default, so it scales with the text around it: figure-sized
8
+ * beside a figure, and row-sized in a table row.
10
9
  *
11
- * The stroke does not scale with the box. `preserveAspectRatio="none"` is what
12
- * lets one drawing fill a 60px slot and a 600px one, and without
13
- * `vector-effect: non-scaling-stroke` the same line comes out hairline in the
14
- * first and heavy in the second.
10
+ * `preserveAspectRatio="none"` lets one drawing fill a 60px slot or a 600px
11
+ * one, and `vector-effect: non-scaling-stroke` keeps the stroke from stretching
12
+ * with it. The line's weight is set in `em`, so it grows with the drawing's
13
+ * text size.
15
14
  *
16
- * One color on the host, read by the line, the wash, the columns and the mark
17
- * alike, so moving `--sparkline-color` cannot leave parts of one drawing
18
- * disagreeing.
19
- *
20
- * The line's weight is set in `em` rather than pixels, so it grows with the
21
- * drawing the way the drawing grows with its type. A fixed pixel width leaves a
22
- * 200 pixel sparkline wearing a hairline: `vector-effect` keeps a stroke out of
23
- * the view box's stretch, and it also keeps it out of every other reason it
24
- * might want to be bigger.
15
+ * Set `--sparkline-color` on the host to color the line, the fill, the columns,
16
+ * and the mark together.
25
17
  *
26
18
  * @since 0.1.0
27
19
  * @status stable
@@ -30,19 +22,19 @@ import type { CSSResultGroup } from 'lit';
30
22
  * @aliases Micro Chart, Trend Line, Inline Chart
31
23
  * @documentation https://fusion.dev/helix/components/sparkline
32
24
  *
33
- * @cssproperty --chart-terminus-hole - A fill for the middle of a `ring` terminus, which is otherwise open.
25
+ * @cssproperty --chart-terminus-hole - A fill for the middle of a `ring` terminus. Without it, the middle is open.
34
26
  * @cssproperty --chart-terminus-size - Size of the mark on the last reading.
35
- * @cssproperty --sparkline-area-opacity - How much of the line's color the wash takes where it meets the line.
36
- * @cssproperty --sparkline-bar-radius - Corner radius on a column, under `plot="bar"`.
37
- * @cssproperty --sparkline-bar-stroke - Thickness of a column's edge under `outlined`.
27
+ * @cssproperty --sparkline-area-opacity - Opacity of the area fill where it meets the line.
28
+ * @cssproperty --sparkline-bar-radius - Corner radius of a column, when `plot="bar"`.
29
+ * @cssproperty --sparkline-bar-stroke - Thickness of a column's edge when `emphasis` is `outlined`.
38
30
  * @cssproperty --sparkline-block-size - Height of the drawing.
39
- * @cssproperty --sparkline-color - Color of the line, the wash, the columns and the mark.
31
+ * @cssproperty --sparkline-color - Color of the line, the area fill, the columns, and the mark.
40
32
  * @cssproperty --sparkline-inline-size - Width of the drawing.
41
33
  * @cssproperty --sparkline-width - Thickness of the line, overriding `weight`.
42
34
  */
43
35
  export declare class HelixSparkline extends HelixHeadlessSparkline {
44
36
  /**
45
- * How much ink the drawing claims.
37
+ * How strongly the line, area, or columns are drawn.
46
38
  *
47
39
  * `subtle` mixes the drawing toward the page. The case is a table where one row
48
40
  * is being read and the rest are context.
@@ -94,7 +86,7 @@ export declare class HelixSparkline extends HelixHeadlessSparkline {
94
86
  */
95
87
  terminus?: 'none' | 'ring' | 'square' | 'triangle';
96
88
  /**
97
- * How heavy the line is drawn.
89
+ * How thick the line is drawn.
98
90
  *
99
91
  * Absent is the weight a sparkline is usually drawn at. `thin` suits one set
100
92
  * in a table row among many; `thick` suits one standing on its own, where a
@@ -1,12 +1,12 @@
1
1
  import { HelixHeadlessSpeedDialItem } from '@fusion.dev/helix-headless/speed-dial';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary One action in a speed dial: a mark, and a name beside it.
4
+ * @summary One action in a speed dial: an icon and a name beside it.
5
5
  *
6
6
  * @description
7
- * Presentation only: a round mark the size of a small control, and the name on
8
- * a chip beside it so it can be read against whatever the dial is floating
9
- * over. Everything about choosing it is the base class.
7
+ * Presentation only: a round mark the size of a small control, with the name on
8
+ * a chip beside it so it stays readable over whatever the dial floats over. The
9
+ * base class handles its behavior.
10
10
  *
11
11
  * @since 0.1.0
12
12
  * @status stable
@@ -14,7 +14,7 @@ import type { CSSResultGroup } from 'lit';
14
14
  * @aliases Speed dial action, FAB action, Quick action
15
15
  * @documentation https://fusion.dev/helix/components/speed-dial
16
16
  *
17
- * @cssproperty --speed-dial-item-size - Edge length of the mark.
17
+ * @cssproperty --speed-dial-item-size - Edge length of the icon.
18
18
  */
19
19
  export declare class HelixSpeedDialItem extends HelixHeadlessSpeedDialItem {
20
20
  static styles: CSSResultGroup;
@@ -2,12 +2,11 @@ import { HelixHeadlessSpeedDial } from '@fusion.dev/helix-headless/speed-dial';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../icon/index.js';
4
4
  /**
5
- * @summary A button that fans out the few actions a screen is for.
5
+ * @summary A floating button that opens a short list of the main actions on a screen.
6
6
  *
7
7
  * @description
8
- * Presentation only: the column the actions fan into, and which end they line
9
- * up on. Everything about what opens it, what closes it and how a keyboard
10
- * moves through it is the base class.
8
+ * Presentation only: the column the actions fan into, and the end they align
9
+ * to. The base class handles opening, closing, and keyboard movement.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -1,35 +1,26 @@
1
1
  import { HelixHeadlessSplitter } from '@fusion.dev/helix-headless/splitter';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Two panes and a divider the reader can move.
4
+ * @summary Two panes and a divider that you can move.
5
5
  *
6
6
  * @description
7
- * The divider is a line to look at and a box to hit, and they are different
8
- * sizes. Drawn at the border's own width it is a one pixel pointer target, which
9
- * is the fault every hand-rolled splitter has; the line is a border and the
10
- * target is the box around it.
7
+ * The divider's line and its pointer target are different sizes. The line is a
8
+ * border, and the target is the larger box around it.
11
9
  *
12
- * It lights on hover before it is touched, because a hairline says nothing about
13
- * being movable, and the whole target lights rather than the line, so the thing
14
- * that answers the pointer is the thing that changed.
10
+ * The whole target lights on hover, so you can see that the divider moves
11
+ * before you drag it.
15
12
  *
16
- * Both panes scroll and both have their minimum size taken off them. A flex
17
- * item's floor is its content, so a pane holding anything scrollable would
18
- * otherwise refuse to go below it: the divider would stop at a width nobody
19
- * asked for and nothing would say why.
13
+ * Both panes scroll, and both have their minimum size removed. Without this, a
14
+ * pane holding scrollable content could not shrink below its content, and the
15
+ * divider would stop early with no visible reason.
20
16
  *
21
- * The corner where a nested splitter crosses is twice the divider's target,
22
- * because it is aimed at as a point rather than a line. It draws nothing of its
23
- * own: the `move` cursor already says what it is, at the moment a reader is on
24
- * it. A ring on focus is the exception, since with nothing drawn there would
25
- * otherwise be no way to see where the keyboard is.
17
+ * The corner where a nested splitter crosses is twice the divider's target
18
+ * size, because you aim at a point. It draws nothing except a focus ring, and
19
+ * the `move` cursor shows what it is.
26
20
  *
27
- * A divider stays lit for as long as it is moving, which `:hover` cannot say on
28
- * its own: a drag captures the pointer, and a corner moves the nested divider
29
- * while the reader is nowhere near it. It goes primary while it moves rather
30
- * than merely darker, because hover is a question and a drag is an answer, and
31
- * because a corner moving two dividers at once needs the pair to read as one
32
- * gesture.
21
+ * A divider stays lit while it moves, including while a drag captures the
22
+ * pointer and while a corner moves it. It uses the primary color while moving,
23
+ * so the two dividers a corner moves look like one gesture.
33
24
  *
34
25
  * @since 0.1.0
35
26
  * @status stable
@@ -38,21 +29,21 @@ import type { CSSResultGroup } from 'lit';
38
29
  * @documentation https://fusion.dev/helix/components/splitter
39
30
  *
40
31
  * @csspart corner - The handle where a nested splitter's divider crosses this one.
41
- * @csspart end - The box holding the second.
32
+ * @csspart end - The box that holds the second pane.
42
33
  * @csspart separator - The divider itself.
43
- * @csspart start - The box holding the first pane.
34
+ * @csspart start - The box that holds the first pane.
44
35
  *
45
- * @cssproperty --splitter-color - The line between the panes.
46
- * @cssproperty --splitter-corner - How wide the handle at a crossing is.
47
- * @cssproperty --splitter-drag-color - The line while it is being moved.
48
- * @cssproperty --splitter-grip-color - The grip beside the line, once it is shown.
36
+ * @cssproperty --splitter-color - Color of the line between the panes.
37
+ * @cssproperty --splitter-corner - Width of the handle where two dividers cross.
38
+ * @cssproperty --splitter-drag-color - Color of the line while it is being moved.
39
+ * @cssproperty --splitter-grip-color - Color of the grip beside the line, when the grip is shown.
49
40
  * @cssproperty --splitter-grip-length - How far the grip runs along the divider.
50
- * @cssproperty --splitter-hover-color - The target under the pointer.
51
- * @cssproperty --splitter-target - How wide the draggable box is.
41
+ * @cssproperty --splitter-hover-color - Color of the divider's target under the pointer.
42
+ * @cssproperty --splitter-target - Width of the area you can drag.
52
43
  */
53
44
  export declare class HelixSplitter extends HelixHeadlessSplitter {
54
45
  /**
55
- * Whether the divider carries a grip.
46
+ * Whether the divider shows a grip.
56
47
  *
57
48
  * - `line` is the divider alone, for a splitter the reader already knows is
58
49
  * one: an editor, a mail client, anything they open every day.
@@ -4,10 +4,9 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A row of related measurements.
5
5
  *
6
6
  * @description
7
- * Wraps rather than scrolls, and each figure keeps its own width instead of
8
- * every one taking an equal share: a set of figures is read by comparing them,
9
- * and equal columns make a four-digit number and a two-digit one look like the
10
- * same quantity.
7
+ * Stats wrap onto a new line when space runs out, and each figure keeps its own
8
+ * width. Figures are read by comparing them, and equal columns would make a
9
+ * four-digit number and a two-digit one look like the same quantity.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -18,7 +17,7 @@ import type { CSSResultGroup } from 'lit';
18
17
  */
19
18
  export declare class HelixStatGroup extends HelixHeadlessStatGroup {
20
19
  /**
21
- * Whether the figures are separated by a rule as well as by space.
20
+ * Draws a rule between the figures, in addition to the space.
22
21
  */
23
22
  divided: boolean;
24
23
  static styles: CSSResultGroup;
@@ -1,13 +1,12 @@
1
1
  import { HelixHeadlessStat } from '@fusion.dev/helix-headless/stat';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary One measurement, with the word for what it measures.
4
+ * @summary One measurement, with a label that names what it measures.
5
5
  *
6
6
  * @description
7
- * The value is set on the display face at a size the type scale does not reach,
8
- * because a figure is the one place on a page where the number is the design.
9
- * The label sits above it in the label ramp, quiet and wide-tracked, so the
10
- * pair reads as one object rather than as two lines of text.
7
+ * The value uses the display typeface at a size above the type scale, because
8
+ * the figure is the focus. The label sits above it in the label style, small
9
+ * and widely tracked, so the pair reads as one unit.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -1,17 +1,16 @@
1
1
  import { HelixHeadlessSteps } from '@fusion.dev/helix-headless/steps';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A sequence of stages, and where the reader is in it.
4
+ * @summary A sequence of stages that shows which stage the user is on.
5
5
  *
6
6
  * @description
7
- * The numbering is a CSS counter rather than a property, so a step's position
8
- * is drawn by the browser at layout and is right in the server's markup with no
9
- * script involved. Reordering the steps renumbers them; nothing has to be told.
7
+ * The numbers are a CSS counter, so the browser draws each step's position at
8
+ * layout, the numbers are correct in the server's markup with no script, and
9
+ * reordering the steps renumbers them.
10
10
  *
11
- * A step's name is a `helix-button`, so what it looks like under the pointer,
12
- * with focus, and when refused are Button's decisions and Button's hooks. There
13
- * is no `--steps-hover-color`: `--button-background-color` is that hook, and a
14
- * second name for it here would be a second thing to keep in step.
11
+ * A step's name is a `helix-button`, so its hover, focus, and disabled styles
12
+ * come from `Button` and use Button's custom properties. To change the hover
13
+ * color, set `--button-background-color`. There is no `--steps-hover-color`.
15
14
  *
16
15
  * @since 0.1.0
17
16
  * @status stable
@@ -19,12 +18,12 @@ import type { CSSResultGroup } from 'lit';
19
18
  * @aliases Stepper, Wizard, Progress steps
20
19
  * @documentation https://fusion.dev/helix/components/steps
21
20
  *
22
- * @cssproperty --steps-complete-color - The mark on a finished step.
23
- * @cssproperty --steps-connector-color - The rule running through the steps.
24
- * @cssproperty --steps-connector-inset - Air either side of a mark, before the rail.
25
- * @cssproperty --steps-current-color - The mark on the current step.
21
+ * @cssproperty --steps-complete-color - Color of the mark on a finished step.
22
+ * @cssproperty --steps-connector-color - Color of the line that connects the steps.
23
+ * @cssproperty --steps-connector-inset - Space on either side of a mark, before the connecting line.
24
+ * @cssproperty --steps-current-color - Color of the mark on the current step.
26
25
  * @cssproperty --steps-gap - Space between one step and the next.
27
- * @cssproperty --steps-marker-size - Size of the mark, glyph or digit.
26
+ * @cssproperty --steps-marker-size - Size of the mark, whether an icon or a digit.
28
27
  */
29
28
  export declare class HelixSteps extends HelixHeadlessSteps {
30
29
  static styles: CSSResultGroup;
@@ -4,22 +4,18 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A control that turns something on or off.
5
5
  *
6
6
  * @description
7
- * A thumb traveling in a groove, which is the one place in the library color
8
- * is used to say "on". A checkbox does not, because a tick is legible on its
9
- * own; a switch has no mark, so the fill is the whole of what distinguishes the
10
- * two states and there is nothing else for it to be.
7
+ * A thumb moves along a track. The switch is the one place in Helix where color
8
+ * means "on". A checkbox has a tick, and a switch has no mark, so the fill is
9
+ * what tells the two states apart.
11
10
  *
12
- * The input itself is the hit target and is drawn as the track, stretched over
13
- * it and invisible, so the press, the focus and the label forwarding are all
14
- * the platform's while the picture is ours.
11
+ * The input is the hit target. It is stretched over the track and made
12
+ * invisible, so the press, the focus, and the label forwarding come from the
13
+ * platform.
15
14
  *
16
- * **Its height is `--helix-size-switch`, which is one step above the
17
- * checkbox's** at every density rather than the same as it. A checkbox is a box
18
- * with a mark in it; a switch is a track with a thumb inside it, and at the
19
- * checkbox's height the thumb has two pixels of groove around it and the whole
20
- * control reads as a small dash. The width follows the height, so setting
21
- * `--switch-block-size` widens it too and the proportion is not something a
22
- * consumer has to keep.
15
+ * The height is `--helix-size-switch`, one step above the checkbox's at every
16
+ * density. At the checkbox's height the thumb has two pixels of track around
17
+ * it, and the control looks like a small dash. The width follows the height, so
18
+ * setting `--switch-block-size` widens the switch too and keeps the proportion.
23
19
  *
24
20
  * @since 0.1.0
25
21
  * @status stable
@@ -28,9 +24,9 @@ import type { CSSResultGroup } from 'lit';
28
24
  * @documentation https://fusion.dev/helix/components/switch
29
25
  *
30
26
  * @cssproperty --switch-block-size - Height of the track. The width follows it.
31
- * @cssproperty --switch-inline-size - Length of the track, if not the derived one.
32
- * @cssproperty --switch-on-color - Fill when it is on.
33
- * @cssproperty --switch-thumb-color - The handle, in both states.
27
+ * @cssproperty --switch-inline-size - Length of the track. Set it to override the length derived from the height.
28
+ * @cssproperty --switch-on-color - Fill when the switch is on.
29
+ * @cssproperty --switch-thumb-color - Color of the thumb, in both states.
34
30
  */
35
31
  export declare class HelixSwitch extends HelixHeadlessSwitch {
36
32
  static styles: CSSResultGroup;
@@ -20,6 +20,11 @@ padding-inline: var(--helix-space-none) var(--helix-space-md);
20
20
  text-align: var(--table-cell-align);
21
21
  }
22
22
 
23
+ :host(:state(text)) slot {
24
+ display: block;
25
+ min-inline-size: 0;
26
+ }
27
+
23
28
  ::slotted(*) {
24
29
  min-inline-size: 0;
25
30
  }
@@ -4,10 +4,10 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One cell of a table.
5
5
  *
6
6
  * @description
7
- * Every cell is the same height whatever it holds, so a row with a tag or an
8
- * icon button in it sits level with a row of text. Content is set in full
9
- * foreground, since the cells are what a reader is reading, and a long
10
- * identifier breaks rather than running into the next column.
7
+ * Every cell has the same height whatever it holds, so a row with a tag or an
8
+ * icon button in it sits level with a row of text. Content uses the full
9
+ * foreground color, and a long identifier breaks onto a new line so it does not
10
+ * run into the next column.
11
11
  *
12
12
  * @since 0.1.0
13
13
  * @status stable
@@ -1,12 +1,11 @@
1
1
  import { HelixHeadlessTableColumn } from '@fusion.dev/helix-headless/table';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary One column of a table: its heading, and how wide it is.
4
+ * @summary One column of a table: its heading and its width.
5
5
  *
6
6
  * @description
7
- * Styled as the header cell it is, and it carries the same rule and inset as
8
- * the cells beneath it so the heading and its column read as one line down the
9
- * table.
7
+ * Styled as a header cell, with the same rule and inset as the cells below it,
8
+ * so the heading and its column read as one line down the table.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable