@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
@@ -4,21 +4,21 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A fragment of code inside a line of prose.
5
5
  *
6
6
  * @description
7
- * A step down the scale, because a monospace face reads larger than the prose
8
- * around it at the same nominal size. `--code-size` overrides it.
7
+ * The text is one step smaller than the prose around it, because a monospace
8
+ * face looks larger than proportional text at the same nominal size. Set
9
+ * `--code-size` to change it.
9
10
  *
10
11
  * @since 0.1.0
11
12
  * @status stable
12
13
  * @category typography
13
14
  * @documentation https://fusion.dev/helix/components/code
14
15
  *
15
- * @cssproperty --code-background-color - Fill behind the fragment. Defaults to a 6%
16
- * wash of the ink, which composites the same against a light page and a dark one.
17
- * @cssproperty --code-foreground-color - The fragment's ink. Defaults to the prose's
18
- * own, pulled back towards `foreground-muted`.
19
- * @cssproperty --code-padding - Space either side of the fragment. Defaults to half
20
- * of `space-2xs`, which is what keeps a bracket beside the chip rather than a space
21
- * away from it.
16
+ * @cssproperty --code-background-color - Fill behind the fragment. Defaults to the
17
+ * foreground color at 6%, which looks the same on a light page and a dark one.
18
+ * @cssproperty --code-foreground-color - Color of the fragment's text. Defaults to the
19
+ * foreground color mixed toward `foreground-muted`.
20
+ * @cssproperty --code-padding - Space either side of the fragment. Defaults to half of
21
+ * `space-2xs`, so a bracket next to the fragment sits close to it.
22
22
  * @cssproperty --code-size - The fragment's size. Defaults to `text-sm`.
23
23
  */
24
24
  export declare class HelixCode extends HelixHeadlessCode {
@@ -2,31 +2,30 @@ import { HelixHeadlessCodeBlock } from '@fusion.dev/helix-headless/code-block';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../copy-button/index.js';
4
4
  /**
5
- * @summary A block of code, with somewhere to put its name and a way to take it.
5
+ * @summary A block of code with an optional name and a copy button.
6
6
  *
7
7
  * @description
8
- * The header sits above the code rather than floating on it, and the copy
9
- * button stands at its end. Overlaid, which is the usual build, the button
10
- * covers the first line, which is the one line of a snippet a reader is most
11
- * likely to be reading. A block with no name has no header, and the button
12
- * stands beside the code in room the block keeps clear: an end gutter for code,
13
- * a band above the first hunk for a diff.
8
+ * The header sits above the code with the copy button at its end, so the button
9
+ * never covers the first line. A block with no name has no header. The button
10
+ * then sits beside the code in space the block keeps clear: an end gutter for
11
+ * code, and a band above the first hunk for a diff.
14
12
  *
15
- * A diff is drawn a block per file in the same frame, each changed line washed
16
- * in its tone at Tag's resting strength with its `+` or `-` in the tone's ink,
17
- * so the change does not rest on telling two pale grounds apart. A split diff
18
- * stacks its two versions below about 40rem of the file's own width.
13
+ * A diff draws one block per file in the same frame. Each changed line is
14
+ * tinted in its tone at Tag's resting strength, with its `+` or `-` in the
15
+ * tone's ink color, so you can see the change without comparing two pale
16
+ * backgrounds. A split diff stacks its two versions when the file is narrower
17
+ * than about 40rem.
19
18
  *
20
19
  * @since 0.1.0
21
20
  * @status stable
22
21
  * @category typography
23
22
  * @documentation https://fusion.dev/helix/components/code-block
24
23
  *
25
- * @cssproperty --code-block-backdrop - A filter over what shows through the block and its header, for a translucent ground.
26
- * @cssproperty --code-block-background-color - The ground behind the code, for a block that is not on the page.
24
+ * @cssproperty --code-block-backdrop - A backdrop filter for the block and its header, for a translucent background.
25
+ * @cssproperty --code-block-background-color - The background behind the code. Set it for a block that sits on a surface other than the page background.
27
26
  * @cssproperty --code-block-border-color - The line around the block and its header.
28
- * @cssproperty --code-block-header-background-color - The ground behind the name, where it should not be `surface-raised`.
29
- * @cssproperty --code-block-radius - The corner on the header's top and the block's bottom, which are one shape.
27
+ * @cssproperty --code-block-header-background-color - The background behind the name. The default is `surface-raised`.
28
+ * @cssproperty --code-block-radius - The corner radius of the header's top and the block's bottom, which form one shape.
30
29
  */
31
30
  export declare class HelixCodeBlock extends HelixHeadlessCodeBlock {
32
31
  static tier: string;
@@ -2,24 +2,19 @@ import { HelixHeadlessColorInput } from '@fusion.dev/helix-headless/color-input'
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../color-picker/index.js';
4
4
  /**
5
- * @summary A color, typed in any syntax or picked from a panel.
5
+ * @summary A field for a color, typed in any syntax or picked from a panel.
6
6
  *
7
7
  * @description
8
- * The frame is the field rather than the input, so the trigger sits inside the
9
- * same box as the text and the focus ring is drawn once around the whole
10
- * control.
8
+ * The frame wraps the whole field, so the trigger sits inside the same box as
9
+ * the text and one focus ring surrounds the control.
11
10
  *
12
- * **The trigger fills the trailing end rather than sitting in it as an icon.** A
13
- * color field has one thing to show and it is a color, so the swatch takes the
14
- * height of the control and reads as a block of it. It is the one field here
15
- * whose trailing affordance is the value itself: Date Input's calendar mark
16
- * stands for an action, and an action stretched to field height is a large icon
17
- * and nothing more.
11
+ * The trigger fills the trailing end of the field. It is a swatch of the
12
+ * current color at the full height of the control. Date Input's calendar
13
+ * trigger stays icon-sized, because it stands for an action.
18
14
  *
19
- * **The panel has no padding, and clips instead.** The square runs to its edge
20
- * and takes the panel's rounded corners from being clipped by it, rather than
21
- * sitting inset with a band of overlay showing on all four sides. The picker
22
- * pads its own lower rows.
15
+ * The panel has no padding and clips its content, so the square runs to the
16
+ * panel's edges and takes its rounded corners. The picker pads its own lower
17
+ * rows.
23
18
  *
24
19
  * @since 0.1.0
25
20
  * @status stable
@@ -29,15 +24,15 @@ import '../../color-picker/index.js';
29
24
  *
30
25
  * @cssproperty --color-input-background-color - Fill behind the field.
31
26
  * @cssproperty --color-input-border-color - Color of the panel's edge.
32
- * @cssproperty --color-input-border-width - Width of the panel's edge. Follows
27
+ * @cssproperty --color-input-border-width - Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
33
28
  * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
34
29
  * theme says otherwise.
35
30
  * @cssproperty --color-input-panel-size - Width of the panel, and so of the square.
36
- * @cssproperty --color-input-shadow - Lift under the panel. Follows
31
+ * @cssproperty --color-input-shadow - Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it.
37
32
  * `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it
38
33
  * keeps a lift by default.
39
- * @cssproperty --color-input-swatch-radius - Corner radius of that block.
40
- * @cssproperty --color-input-swatch-size - Edge length of the block in `variant="swatch"`.
34
+ * @cssproperty --color-input-swatch-radius - Corner radius of the swatch in `variant="swatch"`.
35
+ * @cssproperty --color-input-swatch-size - Edge length of the swatch in `variant="swatch"`.
41
36
  */
42
37
  export declare class HelixColorInput extends HelixHeadlessColorInput {
43
38
  static tier: string;
@@ -5,30 +5,29 @@ import '../../button-group/index.js';
5
5
  import '../../icon/index.js';
6
6
  import '../../slider/index.js';
7
7
  /**
8
- * @summary Picks a color, from a square and two ramps.
8
+ * @summary A color picker made of a square and two ramps.
9
9
  *
10
10
  * @description
11
- * **The square is painted in three layers, not composited from elements**: the
12
- * hue underneath, white sliding in from the left to take the saturation out,
13
- * black rising from the bottom to take the brightness out. One element, one
14
- * declaration, and it repaints as the hue moves because the hue is a custom
15
- * property the tier below writes.
16
- *
17
- * **The two range inputs over it are invisible and still there.** Not
18
- * `display: none` and not `visibility: hidden`, either of which would take them
19
- * out of the tab order and out of the accessibility tree, which is the entire
20
- * reason a square built this way is reachable at all. They carry
21
- * `pointer-events: none` so the square answers the pointer itself, and the focus
22
- * ring is drawn on the square rather than on them, so it lands where the reader
23
- * is looking.
24
- *
25
- * **Every chip sits on a checkerboard.** A color with alpha painted on a solid
26
- * background is just a different color, and the one thing a preview owes a
27
- * reader is the difference between "pale blue" and "blue, half transparent".
28
- *
29
- * No padding and no surface of its own. Flat on a page it takes the space it is
30
- * given, and in Color Input's panel the panel supplies both: a picker that
31
- * brought its own card would be a card inside a card there.
11
+ * The square is one element painted in three layers:
12
+ *
13
+ * - the hue at the bottom
14
+ * - white from the left, which removes saturation
15
+ * - black from the bottom, which removes brightness
16
+ *
17
+ * It repaints as the hue changes, because the hue is a custom property that the
18
+ * headless tier writes.
19
+ *
20
+ * The two range inputs over the square are invisible and stay in the tab order
21
+ * and the accessibility tree, which is what makes the square reachable. They
22
+ * have `pointer-events: none`, so the square handles the pointer, and the focus
23
+ * ring is drawn on the square.
24
+ *
25
+ * Every color chip sits on a checkerboard, so a color with alpha looks
26
+ * transparent. On a solid background, half-transparent blue would look the same
27
+ * as pale blue.
28
+ *
29
+ * The picker has no padding or surface of its own. On a page it takes the space
30
+ * it is given, and inside Color Input the panel supplies both.
32
31
  *
33
32
  * @since 0.1.0
34
33
  * @status stable
@@ -36,11 +35,11 @@ import '../../slider/index.js';
36
35
  * @aliases Color, ColorArea, Swatch picker
37
36
  * @documentation https://fusion.dev/helix/components/color-picker
38
37
  *
39
- * @cssproperty --color-picker-grid-radius - Corner radius of the square.
40
- * @cssproperty --color-picker-grid-ratio - Aspect ratio of the square.
41
- * @cssproperty --color-picker-padding - Inset of the rows under the square, and the bottom.
42
- * @cssproperty --color-picker-sample-size - Edge length of the chip that copies the value.
43
- * @cssproperty --color-picker-swatch-size - Edge length of one preset.
38
+ * @cssproperty --color-picker-grid-radius - The corner radius of the square.
39
+ * @cssproperty --color-picker-grid-ratio - The aspect ratio of the square.
40
+ * @cssproperty --color-picker-padding - The inset of the rows under the square and of the picker's bottom edge.
41
+ * @cssproperty --color-picker-sample-size - The width and height of the chip that copies the value.
42
+ * @cssproperty --color-picker-swatch-size - The width and height of one preset.
44
43
  */
45
44
  export declare class HelixColorPicker extends HelixHeadlessColorPicker {
46
45
  static tier: string;
@@ -88,9 +88,10 @@ flex: 0 0 auto;
88
88
  --_floating-shadow: var(--combobox-shadow, var(--helix-shadow-floating));
89
89
 
90
90
  box-sizing: border-box;
91
- inline-size: var(--combobox-panel-size, var(--floating-anchor-inline-size, 100%));
91
+ inline-size: var(--combobox-panel-size, max-content);
92
92
  max-block-size: var(--floating-available-block-size, none);
93
- min-inline-size: max-content;
93
+ max-inline-size: calc(100vw - var(--helix-space-md) * 2);
94
+ min-inline-size: var(--floating-anchor-inline-size, 100%);
94
95
  overflow: hidden;
95
96
  padding: var(--helix-space-none);
96
97
  position: absolute;
@@ -3,12 +3,12 @@ import type { CSSResultGroup } from 'lit';
3
3
  import '../../listbox/index.js';
4
4
  import '../../tag/index.js';
5
5
  /**
6
- * @summary A field that filters a list as it is typed into.
6
+ * @summary A text field that filters a list of options as you type.
7
7
  *
8
8
  * @description
9
- * The frame is the field rather than the input, so the caret, the marks and the
10
- * focus ring are drawn once around the whole control, which is the arrangement
11
- * Input, Color Input and Date Input all take.
9
+ * The frame is drawn around the field, so the caret, the marks, and the focus
10
+ * ring sit inside one outline around the whole control. Input, Color Input, and
11
+ * Date Input use the same arrangement.
12
12
  *
13
13
  * @since 0.1.0
14
14
  * @status stable
@@ -19,12 +19,12 @@ import '../../tag/index.js';
19
19
  * @cssproperty --combobox-background-color - Fill behind the field.
20
20
  * @cssproperty --combobox-border-color - Color of the panel's edge.
21
21
  * @cssproperty --combobox-border-width - Width of the panel's edge. Follows
22
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
23
- * theme says otherwise.
22
+ * `--helix-border-floating`, which is `0` unless your theme sets it, so the panel's shadow
23
+ * sets it apart.
24
24
  * @cssproperty --combobox-control-size - Smallest the text field shrinks to once tags share its line.
25
25
  * @cssproperty --combobox-panel-size - Width of the panel. Follows the field by default.
26
- * @cssproperty --combobox-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
27
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
26
+ * @cssproperty --combobox-shadow - Shadow under the panel. Follows `--helix-shadow-floating`.
27
+ * A floating panel can sit over any content, so it has a shadow by default.
28
28
  */
29
29
  export declare class HelixCombobox extends HelixHeadlessCombobox {
30
30
  static tier: string;
@@ -3,14 +3,13 @@ import type { CSSResultGroup } from 'lit';
3
3
  import '../../dialog/index.js';
4
4
  import '../../listbox/index.js';
5
5
  /**
6
- * @summary A list of commands, opened from anywhere and filtered by typing.
6
+ * @summary A command palette: a list of commands that opens from anywhere on the page and filters as you type.
7
7
  *
8
8
  * @description
9
- * The palette is a dialog holding a filterable listbox, so what this tier adds
10
- * is where that dialog sits and how the list reads inside it. It opens against
11
- * the top of the window rather than centered, which is where every palette a
12
- * reader has used opens: a list that grows and shrinks as it is filtered would
13
- * otherwise walk up and down the screen under the words being typed.
9
+ * The palette is a dialog holding a filterable listbox. This tier sets where
10
+ * the dialog sits and how the list looks inside it. The dialog opens near the
11
+ * top of the window, so the text field stays in place while the list grows and
12
+ * shrinks as you type.
14
13
  *
15
14
  * @since 0.1.0
16
15
  * @status stable
@@ -3,13 +3,12 @@ import type { CSSResultGroup } from 'lit';
3
3
  import '../../tooltip/index.js';
4
4
  declare const HelixCopyButton_base: (new (...args: any[]) => import("../../shared/mixin-control-surface/mixin-control-surface.js").MixinControlSurfaceInterface) & typeof HelixHeadlessCopyButton;
5
5
  /**
6
- * @summary A button that puts a string on the clipboard and says it did.
6
+ * @summary A button that copies a string to the clipboard and confirms the copy.
7
7
  *
8
8
  * @description
9
- * Takes the icon button's square box, then stacks its two faces in one grid
10
- * cell so the press never changes the button's size. See the stylesheet: a
11
- * control that resizes under the pointer at the moment a reader is looking at
12
- * it for reassurance reads as a second, accidental press.
9
+ * Uses the icon button's square box and stacks its two faces in one grid cell,
10
+ * so a press never changes the button's size. A button that resizes as you
11
+ * press it looks like a second, accidental press.
13
12
  *
14
13
  * @since 0.1.0
15
14
  * @status stable
@@ -4,59 +4,52 @@ import '../../checkbox/index.js';
4
4
  import '../../pagination/index.js';
5
5
  import '../../table/index.js';
6
6
  /**
7
- * @summary A table that owns a result: rows as data, with sort, filter and paging.
7
+ * @summary A table drawn from an array of rows, with sorting, filtering, and paging.
8
8
  *
9
9
  * @description
10
- * Hairline rules between rows and no fill, per the rule that depth comes from a
11
- * single border rather than from elevation. A header band would be elevation
12
- * spelled differently, so the headings are weight and color instead.
10
+ * Rows have hairline rules between them and no fill, and the headings are set
11
+ * apart by weight and color. Helix shows depth with a single border and no
12
+ * elevation, and a header band would be elevation.
13
13
  *
14
- * The grid scrolls its own box and the toolbar and footer sit outside it: a
15
- * search field that slides sideways when a reader scrolls the columns is a
16
- * search field they lose.
14
+ * The grid scrolls in its own box, and the toolbar and footer sit outside it,
15
+ * so the search field stays in place when the columns scroll sideways.
17
16
  *
18
17
  * `windowed` draws only the rows in view, for a result too long to lay out at
19
- * once, and the headings stay put while they scroll. It is independent of
20
- * `paginated` and of `mode`, so a page can be windowed and a server-fed chunk
21
- * can be too.
18
+ * once, and the headings stay in place while the rows scroll. It works with or
19
+ * without `paginated` and with either `mode`, so a page or a chunk from a
20
+ * server can be windowed.
22
21
  *
23
- * **The cell values do not server-render**, which is the headless tier's
24
- * limitation and worth repeating where a consumer chooses between the two: use
25
- * `helix-table` where the content has to be in the served HTML.
22
+ * **The cell values do not server-render.** Use `helix-table` when the content
23
+ * has to be in the served HTML.
26
24
  *
27
25
  * @since 0.1.0
28
26
  * @status stable
29
27
  * @category data
30
28
  * @documentation https://fusion.dev/helix/components/data-table
31
29
  *
32
- * @slot - The columns, declared rather than drawn.
33
- * @slot footer - Below the grid, replacing the pagination this would otherwise draw.
34
- * @slot toolbar - Above the grid, for a search field or actions.
30
+ * @slot - The columns, as `TableColumn` elements.
31
+ * @slot footer - Content below the grid. It replaces the built-in pagination.
32
+ * @slot toolbar - Content above the grid, such as a search field or actions.
35
33
  *
36
34
  * @csspart cell - One cell.
37
- * @csspart cell-selected - A cell of a selected row, beside `cell`.
38
- * @csspart live - The empty and loading lines again, in a region a screen reader hears when they change. Visually hidden in the styled tier.
35
+ * @csspart cell-selected - Added to `cell` in a selected row.
36
+ * @csspart live - A copy of the empty and loading messages, which screen readers announce when they change. Visually hidden in the styled tier.
39
37
  * @csspart table - The grid.
40
38
  *
41
- * @cssproperty --data-table-block-size - How tall the scrolling box is while `windowed`.
42
- * Ignored otherwise, where the grid is as tall as its rows. A definite height rather than a
43
- * maximum, so a short result under `windowed` keeps the full box with space below it: a
44
- * maximum would leave the height a function of the rows drawn, and the rows drawn a function
45
- * of the height, which is the loop the window controller has to guard against rather than
46
- * one worth entering on purpose.
47
- * @cssproperty --data-table-color - Ink in a cell.
48
- * @cssproperty --data-table-columns - Track list for the columns, which wins over the one the columns worked out.
49
- * @cssproperty --data-table-heading-background-color - Fill behind a heading while `windowed`.
50
- * Opaque on purpose: rows scroll under a sticky heading and a transparent one lets them
51
- * through. Unset otherwise, so the headings stay weight rather than a band.
52
- * @cssproperty --data-table-heading-color - Ink in a heading.
53
- * @cssproperty --data-table-padding-block - Space above and below a cell's content.
54
- * @cssproperty --data-table-padding-inline - Space either side of a cell's content.
55
- * @cssproperty --data-table-rule-color - Color of the hairline between rows. A color
56
- * and not a border: it lands in the color slot of a shorthand, so a whole border
57
- * written into it produces invalid CSS and drops the rule. Drawn on the cells rather
58
- * than the row, which is `display: contents` and measures `0px`.
59
- * @cssproperty --data-table-text - Type size, headings and cells alike.
39
+ * @cssproperty --data-table-block-size - The height of the scrolling box while `windowed`.
40
+ * Ignored otherwise, where the grid is as tall as its rows. It is a fixed height, so a
41
+ * short result keeps the full box with space below it.
42
+ * @cssproperty --data-table-color - The text color of a cell.
43
+ * @cssproperty --data-table-columns - The grid track list for the columns. It overrides the list worked out from the columns.
44
+ * @cssproperty --data-table-heading-background-color - The fill behind a heading while `windowed`.
45
+ * It is opaque, because rows scroll under the sticky heading. Unset otherwise.
46
+ * @cssproperty --data-table-heading-color - The text color of a heading.
47
+ * @cssproperty --data-table-padding-block - The space above and below a cell's content.
48
+ * @cssproperty --data-table-padding-inline - The space on either side of a cell's content.
49
+ * @cssproperty --data-table-rule-color - The color of the line between rows. It takes a
50
+ * color only, because it fills the color in a border shorthand, and a full border value
51
+ * makes the rule invalid. It is drawn on the cells, because the row is `display: contents`.
52
+ * @cssproperty --data-table-text - The font size of headings and cells.
60
53
  */
61
54
  export declare class HelixDataTable extends HelixHeadlessDataTable {
62
55
  static tier: string;
@@ -6,18 +6,15 @@ import '../../tag/index.js';
6
6
  * @summary A date, typed or picked from a calendar.
7
7
  *
8
8
  * @description
9
- * The frame is the field rather than the input, so the trigger sits inside the
10
- * same box as the text and the focus ring is drawn once around the whole
11
- * control. The trigger is a mark within that box rather than a button beside it:
12
- * a second frame inside the first is two controls where a reader sees one.
9
+ * The frame is drawn around the whole field, so the trigger sits inside the
10
+ * same box as the text and the focus ring surrounds the whole control. The
11
+ * trigger is a mark inside that box, so the field reads as one control.
13
12
  *
14
- * The calendar is the real `helix-date-picker`, in a panel with no border of its
15
- * own. A surface over the page is told apart by its shadow and by what it
16
- * covers, and a line around it as well reads as a box drawn around something
17
- * already separate.
13
+ * The calendar is the real `helix-date-picker`, in a panel with no border. Its
14
+ * shadow and what it covers set it apart from the page.
18
15
  *
19
- * Height comes from the region, like every other control: `data-density` on
20
- * whatever holds it.
16
+ * Height comes from the region, like every other control. Set `data-density` on
17
+ * the element that holds it.
21
18
  *
22
19
  * @since 0.1.0
23
20
  * @status stable
@@ -25,13 +22,14 @@ import '../../tag/index.js';
25
22
  * @aliases DatePicker, DateField, InputDate
26
23
  * @documentation https://fusion.dev/helix/components/date-input
27
24
  *
28
- * @cssproperty --date-input-background-color - Fill behind the field.
29
- * @cssproperty --date-input-border-color - Color of the panel's edge.
30
- * @cssproperty --date-input-border-width - Width of the panel's edge. Follows
31
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
32
- * theme says otherwise.
33
- * @cssproperty --date-input-shadow - Lift under the panel. Follows `--helix-shadow-floating`:
34
- * a floating surface sits over content nobody can predict, so it keeps a lift by default.
25
+ * @cssproperty --date-input-background-color - The fill behind the field.
26
+ * @cssproperty --date-input-border-color - The color of the panel's border.
27
+ * @cssproperty --date-input-border-width - The width of the panel's border. It
28
+ * follows `--helix-border-floating`, which is `0`, so the panel stands out by its
29
+ * shadow unless a theme sets a border.
30
+ * @cssproperty --date-input-shadow - The shadow under the panel. It follows
31
+ * `--helix-shadow-floating`. The panel can sit over any content, so it has a
32
+ * shadow by default.
35
33
  */
36
34
  export declare class HelixDateInput extends HelixHeadlessDateInput {
37
35
  static tier: string;
@@ -1,22 +1,21 @@
1
1
  import { HelixHeadlessDatePicker } from '@fusion.dev/helix-headless/date-picker';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Shows a month, and takes a date from it.
4
+ * @summary A month calendar for choosing one or more dates.
5
5
  *
6
6
  * @description
7
- * Six week rows always, so the grid keeps one height and a month change does
8
- * not move whatever sits beneath it.
7
+ * The grid always has six week rows, so it keeps one height and a month change
8
+ * does not move the content below it.
9
9
  *
10
- * The column track is wider than the day, and the day is centered in it. The
11
- * difference is the space between days, which belongs to the track rather than
12
- * to a `gap`, so a range can paint across the whole track and stay continuous.
10
+ * Each column track is wider than a day, with the day centered in it. The space
11
+ * between days belongs to the track and is not set with `gap`, so a range can
12
+ * paint across the whole track and stay continuous.
13
13
  *
14
- * Days from the neighboring months stay in place, marked quieter rather than
15
- * hidden, so the first and last weeks are whole rows rather than ragged ones.
16
- * They are filler and take no click, which the pointer says: no hover, and the
17
- * cursor a box that does nothing has. At `months="2"` the same date is a
18
- * trailing cell in one grid and a real one in the next, so a filler day that
19
- * could be chosen would put one answer on the page twice.
14
+ * Days from the neighboring months stay in place, styled quieter, so the first
15
+ * and last weeks are full rows. They cannot be chosen, have no hover style, and
16
+ * show the default cursor. With `months="2"`, a date can be a trailing cell in
17
+ * one grid and a real cell in the next, so a selectable filler day would put
18
+ * the same selection on the page twice.
20
19
  *
21
20
  * @since 0.1.0
22
21
  * @status stable
@@ -4,8 +4,8 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One label and its value.
5
5
  *
6
6
  * @description
7
- * A subgrid of the list, so the label and value stay one element, and one pair
8
- * to a screen reader, while lining up with every other pair in the list.
7
+ * Each item is a subgrid of the list, so the label and value stay one element,
8
+ * and one pair to a screen reader, while lining up with every other pair.
9
9
  *
10
10
  * @since 0.1.0
11
11
  * @status stable
@@ -1,23 +1,22 @@
1
1
  import { HelixHeadlessDescriptionList } from '@fusion.dev/helix-headless/description-list';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Labels and their values, read as pairs: the details panel every
5
- * product has.
4
+ * @summary A list of labels and their values, such as a details panel.
6
5
  *
7
6
  * @description
8
- * Each label is quiet and each value takes the text around it, so the eye goes
9
- * to the values and the labels are there to find them by. With
10
- * `direction="row"` the labels share one column, as wide as the longest of
11
- * them, and the values start on one line beside it.
7
+ * Labels are muted and values use the style of the surrounding text, so the
8
+ * values stand out and the labels help you find them. With `direction="row"`,
9
+ * the labels share one column as wide as the longest label, and the values
10
+ * start on one line beside it.
12
11
  *
13
- * **Beside falls back to over below about 22rem of its own width**, measured on
14
- * the list rather than on the viewport, since a details panel is as often a
15
- * sidebar on a wide screen as the whole of a narrow one. Below that the label
16
- * column leaves the values too little room to be read.
12
+ * **Below about 22rem of its own width, the row layout stacks** each label
13
+ * above its value. The width is measured on the list, because a details panel
14
+ * can be a sidebar on a wide screen or the whole of a narrow one. Below that
15
+ * width the label column leaves too little room for the values.
17
16
  *
18
- * **`width="auto"` with `justify="between"` is a summary**: the list as wide as
19
- * its widest pair, labels on the start edge and values on the end one in
20
- * figures of one width, which is how a set of totals is read.
17
+ * **For a summary, set `width="auto"` and `justify="between"`.** The list is as
18
+ * wide as its widest pair, labels sit on the start edge, and values sit on the
19
+ * end edge in tabular figures, as in a set of totals.
21
20
  *
22
21
  * @since 0.1.0
23
22
  * @status stable
@@ -25,7 +24,7 @@ import type { CSSResultGroup } from 'lit';
25
24
  * @aliases Data list, Key-value list, Details, Properties
26
25
  * @documentation https://fusion.dev/helix/components/description-list
27
26
  *
28
- * @cssproperty --description-list-gap - Space between one pair and the next. Its resting value is tighter with `direction="row"` than stacked, a row of pairs needing less air between them than a column of them does, and setting this takes both.
27
+ * @cssproperty --description-list-gap - Space between one pair and the next. The default is smaller with `direction="row"` than when stacked. Setting this property replaces both defaults.
29
28
  */
30
29
  export declare class HelixDescriptionList extends HelixHeadlessDescriptionList {
31
30
  static styles: CSSResultGroup;
@@ -1,13 +1,12 @@
1
1
  import { HelixHeadlessDialog } from '@fusion.dev/helix-headless/dialog';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A modal window, on the platform's own dialog.
4
+ * @summary A modal window built on the native `<dialog>` element.
5
5
  *
6
6
  * @description
7
- * The panel is `surface-overlay` with a shadow, because that is what it is: a
8
- * thing over the page rather than on it. The scrim is drawn on `::backdrop`,
9
- * which is the platform's own element for it and sits in the top layer with the
10
- * dialog rather than being a div somebody positioned.
7
+ * The panel uses `surface-overlay` with a shadow, because it sits over the
8
+ * page. The scrim is drawn on `::backdrop`, the platform's element for it,
9
+ * which sits in the top layer with the dialog.
11
10
  *
12
11
  * @since 0.1.0
13
12
  * @status stable
@@ -17,16 +16,16 @@ import type { CSSResultGroup } from 'lit';
17
16
  *
18
17
  * @cssproperty --dialog-border-color - Color of the panel's edge.
19
18
  * @cssproperty --dialog-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.
19
+ * `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your
20
+ * theme sets a border.
22
21
  * @cssproperty --dialog-icon-size - How big the mark above the title is.
23
22
  * @cssproperty --dialog-inline-size - Width of the panel.
24
23
  * @cssproperty --dialog-padding - Padding inside the panel.
25
24
  * @cssproperty --dialog-rise - How far the panel rises as it opens. Follows
26
25
  * `--helix-space-lg`.
27
- * @cssproperty --dialog-scrim - The wash over the page behind the dialog. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one.
28
- * @cssproperty --dialog-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
29
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
26
+ * @cssproperty --dialog-scrim - The tint over the page behind the dialog. Set it on the host, because a `var()` written inside `::backdrop` cannot read a token.
27
+ * @cssproperty --dialog-shadow - Shadow under the panel. Follows `--helix-shadow-floating`. A
28
+ * floating surface can sit over any content, so it has a shadow by default.
30
29
  */
31
30
  export declare class HelixDialog extends HelixHeadlessDialog {
32
31
  /**