@fusion.dev/helix 0.105.0 → 0.107.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
@@ -2,20 +2,19 @@ import { HelixHeadlessHeatmap } from '@fusion.dev/helix-headless/heatmap';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../tooltip/index.js';
4
4
  /**
5
- * @summary A strip of cells colored by how each one went: uptime, contributions, activity.
5
+ * @summary A strip of cells, each colored by its reading, for uptime, contributions, or activity.
6
6
  *
7
7
  * @description
8
- * One grid, filled down the column then across: a week is a column, so the strip
9
- * reads left to right in weeks and top to bottom in days. `rows="1"` makes it a
8
+ * Cells fill down each column, then across. A column is a week, so the strip
9
+ * reads left to right in weeks and top to bottom in days. `rows="1"` makes a
10
10
  * single row.
11
11
  *
12
- * An empty cell takes the palette's quietest ground rather than being
13
- * transparent, so a gap reads as a period with nothing in it rather than as a
14
- * hole in the picture.
12
+ * An empty cell takes the palette's quietest background color, so a gap shows
13
+ * as a period with no data.
15
14
  *
16
- * `tones="success"` and `data-tone="danger"` reach the theme's status colors;
17
- * `tones="1 2 3 4 5"` reaches a five-step ramp of one hue, which is the only
18
- * thing two cells can be compared by.
15
+ * `tones="success"` and `data-tone="danger"` use the theme's status colors.
16
+ * `tones="1 2 3 4 5"` uses a five-step ramp of one hue, so cells can be
17
+ * compared by value.
19
18
  *
20
19
  * @since 0.1.0
21
20
  * @status stable
@@ -33,42 +32,43 @@ import '../../tooltip/index.js';
33
32
  * @csspart tooltip - The bubble, forwarded from `Tooltip`.
34
33
  * @csspart tooltip-anchor - The `Tooltip` element itself.
35
34
  * @csspart tooltip-arrow - The bubble's point, forwarded from `Tooltip`.
36
- * @csspart tooltip-arrow-bottom - The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.
37
- * @csspart tooltip-arrow-left - The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.
38
- * @csspart tooltip-arrow-right - The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.
39
- * @csspart tooltip-arrow-top - The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.
40
- * @csspart tooltip-bottom - The bubble while it is below the reading, beside `tooltip`.
35
+ * @csspart tooltip-arrow-bottom - The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
36
+ * @csspart tooltip-arrow-left - The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
37
+ * @csspart tooltip-arrow-right - The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
38
+ * @csspart tooltip-arrow-top - The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
39
+ * @csspart tooltip-bottom - The bubble while it is below the reading. Set alongside `tooltip`.
41
40
  * @csspart tooltip-cell - One column's name and value inside the tooltip.
42
41
  * @csspart tooltip-label - The reading's own name inside the tooltip.
43
- * @csspart tooltip-left - The bubble while it is left of the reading, beside `tooltip`.
42
+ * @csspart tooltip-left - The bubble while it is left of the reading. Set alongside `tooltip`.
44
43
  * @csspart tooltip-name - A column's name inside the tooltip.
45
- * @csspart tooltip-right - The bubble while it is right of the reading, beside `tooltip`.
46
- * @csspart tooltip-top - The bubble while it is above the reading, beside `tooltip`.
44
+ * @csspart tooltip-right - The bubble while it is right of the reading. Set alongside `tooltip`.
45
+ * @csspart tooltip-top - The bubble while it is above the reading. Set alongside `tooltip`.
47
46
  * @csspart tooltip-value - A column's value inside the tooltip.
48
47
  *
49
- * @cssproperty --heatmap-cell-height - How tall a cell is. A row of a tall thin cell is what a status page draws.
48
+ * @cssproperty --heatmap-cell-height - How tall a cell is. One row of tall, narrow cells looks like a status page.
50
49
  * @cssproperty --heatmap-cell-inline-size - How wide a cell is. The strip fits as many as the container allows.
51
50
  * @cssproperty --heatmap-cell-radius - How far a cell's corners are rounded.
52
- * @cssproperty --heatmap-cell-size - The size a cell wants on both axes, where neither is given its own.
53
- * @cssproperty --heatmap-gap - Space between cells. Zero is a continuous field rather than a grid of tiles.
54
- * @cssproperty --heatmap-tone-1 - The quietest step of the magnitude ramp, reached by `tones="1 …"`.
51
+ * @cssproperty --heatmap-cell-size - The size of a cell on both axes, used where neither axis has its own size set.
52
+ * @cssproperty --heatmap-gap - Space between cells. Zero draws one continuous field.
53
+ * @cssproperty --heatmap-tone-1 - The weakest step of the magnitude ramp, used by `tones="1 …"`.
55
54
  * @cssproperty --heatmap-tone-2 - The second step of the magnitude ramp.
56
55
  * @cssproperty --heatmap-tone-3 - The third step of the magnitude ramp.
57
56
  * @cssproperty --heatmap-tone-4 - The fourth step of the magnitude ramp.
58
- * @cssproperty --heatmap-tone-5 - The loudest step of the magnitude ramp.
59
- * @cssproperty --heatmap-tone-accent - What `accent` is worth.
60
- * @cssproperty --heatmap-tone-danger - What `danger` is worth.
61
- * @cssproperty --heatmap-tone-info - What `info` is worth.
62
- * @cssproperty --heatmap-tone-muted - What `muted` is worth: the quiet ground, for a bucket that means nothing happened.
63
- * @cssproperty --heatmap-tone-primary - What `primary` is worth.
64
- * @cssproperty --heatmap-tone-success - What `success` is worth, as a name or a `data-tone`.
65
- * @cssproperty --heatmap-tone-warning - What `warning` is worth.
57
+ * @cssproperty --heatmap-tone-5 - The strongest step of the magnitude ramp.
58
+ * @cssproperty --heatmap-tone-accent - The color of the `accent` tone.
59
+ * @cssproperty --heatmap-tone-danger - The color of the `danger` tone.
60
+ * @cssproperty --heatmap-tone-info - The color of the `info` tone.
61
+ * @cssproperty --heatmap-tone-muted - The color of the `muted` tone: a quiet background, for a bucket that means nothing happened.
62
+ * @cssproperty --heatmap-tone-primary - The color of the `primary` tone.
63
+ * @cssproperty --heatmap-tone-success - The color of the `success` tone, named in `tones` or in `data-tone`.
64
+ * @cssproperty --heatmap-tone-warning - The color of the `warning` tone.
66
65
  */
67
66
  export declare class HelixHeatmap extends HelixHeadlessHeatmap {
68
67
  static tier: string;
69
68
  static styles: CSSResultGroup;
70
69
  /**
71
- * The first guess at what this sheet draws, before it has been measured.
70
+ * The starting estimate of the gap this stylesheet draws, used until the
71
+ * strip is measured.
72
72
  *
73
73
  * **Not a contract.** `fits()` reads the strip back rather than being told a
74
74
  * cell size by hand, so nothing has to be kept in step and
@@ -83,7 +83,10 @@ export declare class HelixHeatmap extends HelixHeadlessHeatmap {
83
83
  * not move.
84
84
  */
85
85
  gap: number;
86
- /** The drawn cell width, for the reason `gap` is the drawn gap. `0.75rem` at the root font size. */
86
+ /**
87
+ * The starting estimate of the cell width this stylesheet draws, for the
88
+ * same reason as `gap`. `0.75rem` at the root font size.
89
+ */
87
90
  minCell: number;
88
91
  }
89
92
  declare global {
@@ -1,13 +1,13 @@
1
1
  import { HelixHeadlessIcon } from '@fusion.dev/helix-headless/icon';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary Renders a named icon from the Helix set.
4
+ * @summary A named icon from the Helix set.
5
5
  *
6
6
  * @description
7
- * Draws in `currentColor` and sizes from `--icon-size`, so an icon inherits the
8
- * color of the text it sits in and a container can resize it without reaching
9
- * for a prop. Inside a button that hook is set in `em`, which keeps the icon in
10
- * proportion as the button's own size changes.
7
+ * Draws in `currentColor` and sizes from `--icon-size`, so an icon takes the
8
+ * color of the text around it and a container can resize it without a property.
9
+ * Inside a button, `--icon-size` is set in `em`, so the icon scales with the
10
+ * button.
11
11
  *
12
12
  * @since 0.1.0
13
13
  * @status stable
@@ -17,7 +17,7 @@ import type { CSSResultGroup } from 'lit';
17
17
  *
18
18
  * @csspart svg - The rendered SVG.
19
19
  *
20
- * @cssproperty --icon-size - Edge length of the icon's box.
20
+ * @cssproperty --icon-size - The width and height of the icon's box.
21
21
  */
22
22
  export declare class HelixIcon extends HelixHeadlessIcon {
23
23
  static styles: CSSResultGroup;
@@ -5,14 +5,13 @@ declare const HelixIconButton_base: (new (...args: any[]) => import("../../share
5
5
  * @summary A square button whose content is an icon.
6
6
  *
7
7
  * @description
8
- * Top-level rather than `Button.Icon`, because a namespace means composition:
9
- * `Tabs.Tab` is part of a tab set, and an icon-only button is not part of a
10
- * button. It is a button with different content and a different shape, which
11
- * makes it its own component.
8
+ * Icon Button is a top-level component. A namespace such as `Tabs.Tab` is for a
9
+ * part of a larger component, and an icon-only button is a complete button with
10
+ * different content and a different shape.
12
11
  *
13
- * `label` is not optional in practice. An icon-only control with no accessible
14
- * name is announced as "button" and nothing else, which is the single most
15
- * common way a toolbar becomes unusable without sight.
12
+ * Always set `label`. An icon-only control with no accessible name is announced
13
+ * as "button" and nothing else, which is the most common way a toolbar becomes
14
+ * unusable without sight.
16
15
  *
17
16
  * @since 0.1.0
18
17
  * @status stable
@@ -25,12 +24,12 @@ declare const HelixIconButton_base: (new (...args: any[]) => import("../../share
25
24
  * @csspart button - The inner button or anchor.
26
25
  *
27
26
  * @cssproperty --icon-button-radius - Corner radius of the control, which a group flattens through `--button-radius-start` and `--button-radius-end`.
28
- * @cssproperty --icon-button-shadow - What it casts, where it is raised off the page.
27
+ * @cssproperty --icon-button-shadow - Shadow of a raised icon button.
29
28
  * @cssproperty --icon-button-size - Edge length of the control.
30
29
  */
31
30
  export declare class HelixIconButton extends HelixIconButton_base {
32
31
  /**
33
- * Whether it is raised off the page it sits on.
32
+ * Raises the button off the page with a shadow.
34
33
  *
35
34
  * Separate from `shape`, because they are separate facts: a docked control is
36
35
  * raised whatever its outline, and a circle inside a toolbar is not raised at
@@ -39,7 +38,7 @@ export declare class HelixIconButton extends HelixIconButton_base {
39
38
  */
40
39
  raised: boolean;
41
40
  /**
42
- * The outline it is cut to, which is an axis of its own and not a value on one.
41
+ * The button's shape. Leave it unset for a rounded square, or set `circle`.
43
42
  *
44
43
  * `emphasis` says how filled it is and `tone` says what it means; neither of
45
44
  * them says what shape it is, and folding a shape into either would put a
@@ -1,12 +1,12 @@
1
1
  import { HelixHeadlessImage } from '@fusion.dev/helix-headless/image';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A picture that says whether it arrived.
4
+ * @summary An image that shows a placeholder while it loads and a fallback if it fails.
5
5
  *
6
6
  * @description
7
- * Presentation only: the box the picture is given, how it fills it, and the
8
- * fade when it lands. What the three states are and when they change is the
9
- * base class.
7
+ * The styled tier adds presentation only: the box the picture is given, how the
8
+ * picture fills it, and the fade when it loads. The base class defines the
9
+ * three states and when they change.
10
10
  *
11
11
  * @since 0.1.0
12
12
  * @status stable
@@ -14,16 +14,16 @@ import type { CSSResultGroup } from 'lit';
14
14
  * @aliases Picture, Img, Figure
15
15
  * @documentation https://fusion.dev/helix/components/image
16
16
  *
17
- * @cssproperty --image-aspect - The ratio of the box, as `16 / 9`.
18
- * @cssproperty --image-fit - How the picture fills it.
19
- * @cssproperty --image-placeholder-color - The resting surface behind both stand-ins.
20
- * @cssproperty --image-position - Which part survives a crop.
21
- * @cssproperty --image-radius - Corner radius, under `shape="rounded"`.
17
+ * @cssproperty --image-aspect - The aspect ratio of the box, such as `16 / 9`.
18
+ * @cssproperty --image-fit - How the image fills the box, as an `object-fit` value.
19
+ * @cssproperty --image-placeholder-color - The background behind the placeholder and the fallback.
20
+ * @cssproperty --image-position - Which part of the image stays in view when it is cropped, as an `object-position` value.
21
+ * @cssproperty --image-radius - The corner radius when `shape` is `rounded`.
22
22
  */
23
23
  export declare class HelixImage extends HelixHeadlessImage {
24
24
  static styles: CSSResultGroup;
25
25
  /**
26
- * Whether the corners are cut.
26
+ * The shape of the corners. `rounded` rounds them.
27
27
  *
28
28
  * The axis and not a boolean, because `rounded` is a registered word and a
29
29
  * private spelling of a registry question is what `appearance` was retired
@@ -2,23 +2,20 @@ import { HelixHeadlessInput } from '@fusion.dev/helix-headless/input';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../icon/index.js';
4
4
  /**
5
- * @summary A single line of text a reader types into.
5
+ * @summary A field for a single line of text.
6
6
  *
7
7
  * @description
8
- * The frame is the field rather than the input, so anything slotted at either
9
- * end sits inside the same box as the text and the focus ring is drawn once,
10
- * around the whole control, instead of around a smaller box within it.
8
+ * The frame wraps the whole field, so anything slotted at either end sits in
9
+ * the same box as the text, and the focus ring goes around the whole control.
11
10
  *
12
- * The input itself is the native one, stripped rather than replaced, so the
13
- * caret, the selection, the autofill, and the keyboard a phone chooses are all
14
- * the platform's.
11
+ * The inner input is the native one with its styling removed, so the caret,
12
+ * selection, autofill, and a phone's keyboard all work natively.
15
13
  *
16
- * Height comes from the region, like every other control: `data-density` on
17
- * whatever holds it, not a `size` here. Invalid styling waits for the `invalid`
18
- * custom state, because a field is not wrong before anyone has filled it in and
19
- * `:user-invalid` cannot answer that here: it tracks the control the reader is
20
- * in, which is inside this shadow root, so it never reaches the host the rule
21
- * selects on.
14
+ * Height comes from `data-density` on a containing element, like every other
15
+ * control. There is no `size` property. Invalid styling applies only with the
16
+ * `invalid` custom state, so an empty field is not marked wrong before anyone
17
+ * fills it in. `:user-invalid` cannot be used here, because it matches the
18
+ * input inside the shadow root and never the host.
22
19
  *
23
20
  * @since 0.1.0
24
21
  * @status stable
@@ -4,12 +4,11 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A keyboard key or chord, set inline with text.
5
5
  *
6
6
  * @description
7
- * Drawn as a physical key: a hairline, a sunken fill, and one inset shadow
8
- * along the bottom edge that reads as depth without becoming a picture of a
9
- * key.
7
+ * Drawn as a physical key, with a hairline border, a sunken fill, and one inset
8
+ * shadow along the bottom edge.
10
9
  *
11
- * Sized in `em`, so it stays proportional to whatever it is set inside rather
12
- * than holding one size and looking wrong in a heading.
10
+ * Sized in `em`, so it stays in proportion with the text around it, including
11
+ * in a heading.
13
12
  *
14
13
  * @since 0.1.0
15
14
  * @status stable
@@ -17,8 +16,8 @@ import type { CSSResultGroup } from 'lit';
17
16
  * @aliases Key, Shortcut, Hotkey
18
17
  * @documentation https://fusion.dev/helix/components/kbd
19
18
  *
20
- * @cssproperty --kbd-background-color - Fill of the key.
21
- * @cssproperty --kbd-border-color - Color of the hairline and the edge.
19
+ * @cssproperty --kbd-background-color - The fill of the key.
20
+ * @cssproperty --kbd-border-color - The color of the key's border and its bottom edge.
22
21
  */
23
22
  export declare class HelixKbd extends HelixHeadlessKbd {
24
23
  static styles: CSSResultGroup;
@@ -1,19 +1,18 @@
1
1
  import { HelixHeadlessLegend } from '@fusion.dev/helix-headless/legend';
2
2
  import type { CSSResultGroup, PropertyValues } from 'lit';
3
3
  /**
4
- * @summary The names a chart draws, each beside the color it is drawn in.
4
+ * @summary A list of the series in a chart, each name beside the color it is drawn in.
5
5
  *
6
6
  * @description
7
- * A row that wraps, because a legend sits under a chart as wide as the chart
8
- * and there is no arrangement of eight names that fits every width. Set
9
- * `--legend-direction` to `column` where it sits beside one instead.
7
+ * Entries are laid out in a row that wraps, because a legend under a chart is
8
+ * as wide as the chart, and its names have to fit any width. Set
9
+ * `--legend-direction` to `column` when the legend sits beside a chart.
10
10
  *
11
- * The series colors are mapped on this tier rather than in the one below, which
12
- * carries the index and holds no tokens. `shared/chart/series.css` is where the
13
- * mapping lives, because an index in markup cannot select a token and a custom
14
- * property set inline would be the headless tier naming a color, and it is
15
- * shared because a chart and the legend keying it have to reach the same
16
- * twenty-four names.
11
+ * Series colors are mapped in this tier. The headless tier carries the index
12
+ * and holds no tokens. The mapping is in `shared/chart/series.css`, because an
13
+ * index in markup cannot select a token, and an inline custom property would
14
+ * put a color in the headless tier. Charts and legends share the file, so both
15
+ * use the same twenty-four color names.
17
16
  *
18
17
  * @since 0.1.0
19
18
  * @status stable
@@ -22,16 +21,16 @@ import type { CSSResultGroup, PropertyValues } from 'lit';
22
21
  * @aliases Key, Series Key
23
22
  * @documentation https://fusion.dev/helix/components/legend
24
23
  *
25
- * @cssproperty --legend-direction - `row`, which wraps, or `column`.
26
- * @cssproperty --legend-gap - Space between entries.
27
- * @cssproperty --legend-swatch-size - Size of the color patch.
28
- * @cssproperty --legend-swatch-stroke - Width of the edge an `outlined` or
24
+ * @cssproperty --legend-direction - The direction the entries run: `row`, which wraps, or `column`.
25
+ * @cssproperty --legend-gap - The space between entries.
26
+ * @cssproperty --legend-swatch-size - The size of the color swatch.
27
+ * @cssproperty --legend-swatch-stroke - The width of the edge an `outlined` or
29
28
  * `subtle` swatch is drawn with.
30
29
  */
31
30
  export declare class HelixLegend extends HelixHeadlessLegend {
32
31
  static styles: CSSResultGroup;
33
32
  /**
34
- * How much ink the swatches claim.
33
+ * How the swatches are drawn: `outlined`, `subtle`, or `solid`.
35
34
  *
36
35
  * **The same axis as the chart's, with the same values, because a legend that
37
36
  * does not match its chart is worse than no legend.** A key whose swatches are
@@ -50,13 +49,13 @@ export declare class HelixLegend extends HelixHeadlessLegend {
50
49
  */
51
50
  emphasis?: 'outlined' | 'solid' | 'subtle';
52
51
  /**
53
- * Which entries are glass rather than solid, by name.
52
+ * The names of the entries whose swatches are drawn as glass.
54
53
  *
55
54
  * Matched as `outlined` is.
56
55
  */
57
56
  glass?: string;
58
57
  /**
59
- * What the swatches are made of.
58
+ * The material of the swatches: `glass` or `frosted`. Unset is opaque.
60
59
  *
61
60
  * `glass` thins whatever emphasis drew, the way it does on a column, so a
62
61
  * legend beside a glass chart is in the same substance as the chart. Scaled by
@@ -77,7 +76,7 @@ export declare class HelixLegend extends HelixHeadlessLegend {
77
76
  */
78
77
  material?: 'frosted' | 'glass';
79
78
  /**
80
- * Which entries are drawn as an outline rather than a fill, by name.
79
+ * The names of the entries whose swatches are drawn as an outline.
81
80
  *
82
81
  * Space or comma separated and matched against the names this legend is
83
82
  * showing, which are the same names the chart matches its own `outlined`
@@ -86,7 +85,7 @@ export declare class HelixLegend extends HelixHeadlessLegend {
86
85
  */
87
86
  outlined?: string;
88
87
  /**
89
- * Where the legend sits and which way its entries run.
88
+ * Sets which way the entries run, to suit where you place the legend.
90
89
  *
91
90
  * Absent is a wrapping row, which is what sits under a chart. `start` and
92
91
  * `end` stack the entries in a column, for a legend beside one.
@@ -104,7 +103,7 @@ export declare class HelixLegend extends HelixHeadlessLegend {
104
103
  */
105
104
  placement?: 'end' | 'start';
106
105
  /**
107
- * Which entries are drawn as a wash of their color, by name.
106
+ * The names of the entries whose swatches are drawn as a wash of their color.
108
107
  *
109
108
  * Matched as `outlined` is.
110
109
  */
@@ -1,13 +1,12 @@
1
1
  import { HelixHeadlessLightboxItem } from '@fusion.dev/helix-headless/lightbox';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary One thing a lightbox can show.
4
+ * @summary One item a lightbox can show, such as a picture, a video frame, or a chart.
5
5
  *
6
6
  * @description
7
- * Presentation only: the box centers what it was given and holds it inside the
8
- * viewport rather than sizing it, because what is in here is the consumer's and
9
- * may be a picture, a frame of video or a chart. Which item is shown, and the
10
- * arithmetic that decides, is the base class.
7
+ * Presentation only. The box centers its content and keeps it within the
8
+ * viewport without setting its size, because the content may be a picture, a
9
+ * video frame, or a chart. The base class decides which item is shown.
11
10
  *
12
11
  * @since 0.100.0
13
12
  * @status stable
@@ -1,22 +1,19 @@
1
1
  import { HelixHeadlessLightbox } from '@fusion.dev/helix-headless/lightbox';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A viewer that opens one thing over the page.
4
+ * @summary A viewer that shows one item at a time over the page.
5
5
  *
6
6
  * @description
7
- * **A takeover rather than a panel, which is the whole difference from
8
- * `Dialog`.** A dialog is a thing over the page and stops short of the edges to
9
- * say so; a lightbox is the page for as long as it is open. The scrim is heavier
10
- * for the same reason: what is behind it is not meant to be read.
7
+ * A lightbox fills the viewport while it is open. A `Dialog` stops short of the
8
+ * edges because it sits over the page. The scrim is heavier than a dialog's,
9
+ * because the content behind it is not meant to be read.
11
10
  *
12
- * **A dark region that says so once**, with `color-scheme: dark` on the host,
13
- * which is `Video`'s answer to the same problem: the chrome is the consumer's
14
- * own components and they resolve their own tokens, so without a scheme on the
15
- * region they draw page-colored ink on a black room and disappear into it.
11
+ * The host sets `color-scheme: dark`, as `Video` does. The components in the
12
+ * chrome are yours and resolve their own tokens, so without a scheme on the
13
+ * region they would draw page-colored text on the black background.
16
14
  *
17
- * The chrome fades rather than leaves while the reader is still, because a bar
18
- * that is removed from the layout takes the picture's size with it and the
19
- * reader watches it jump every time they stop moving.
15
+ * When there is no input, the chrome fades out and keeps its place in the
16
+ * layout, so the picture does not change size.
20
17
  *
21
18
  * @since 0.100.0
22
19
  * @status stable
@@ -24,12 +21,12 @@ import type { CSSResultGroup } from 'lit';
24
21
  * @aliases Photo viewer, Image viewer, Gallery overlay
25
22
  * @documentation https://fusion.dev/helix/components/lightbox
26
23
  *
27
- * @event {HelixActivateEvent} helix-activate - Fired once the shown item has moved, so the element already holds it.
24
+ * @event {HelixActivateEvent} helix-activate - Fired after the shown item changes, when the element already holds the new item.
28
25
  *
29
- * @cssproperty --lightbox-foreground - Color of the chrome drawn over the content.
30
- * @cssproperty --lightbox-gap - Space between the chrome and the content.
26
+ * @cssproperty --lightbox-foreground - Color of the controls and text drawn over the content.
27
+ * @cssproperty --lightbox-gap - Space between the header or footer and the content.
31
28
  * @cssproperty --lightbox-padding - Inset from the edges of the screen.
32
- * @cssproperty --lightbox-scrim - The wash over the page behind the viewer. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one.
29
+ * @cssproperty --lightbox-scrim - The overlay color on the page behind the viewer. Set it on the host, because a `var()` inside `::backdrop` cannot resolve a token.
33
30
  */
34
31
  export declare class HelixLightbox extends HelixHeadlessLightbox {
35
32
  static styles: CSSResultGroup;
@@ -2,26 +2,24 @@ import { HelixHeadlessLineChart } from '@fusion.dev/helix-headless/line-chart';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  import '../../tooltip/index.js';
4
4
  /**
5
- * @summary A series over time as a line, read from a table.
5
+ * @summary A chart that draws series over time as lines, read from a table.
6
6
  *
7
7
  * @description
8
- * The lines take the series palette in order, so a chart of one is series one
9
- * and a chart of four is the first four, and a legend beside it maps the same
10
- * twenty-four.
8
+ * The lines take the series palette in order. A chart of one series uses series
9
+ * one, a chart of four uses the first four, and a legend beside it maps the
10
+ * same twenty-four.
11
11
  *
12
- * The stroke does not scale with the box. `preserveAspectRatio="none"` is what
13
- * lets one drawing fill a narrow card and a wide panel, and without
14
- * `vector-effect: non-scaling-stroke` the same line comes out hairline in the
15
- * first and heavy in the second. It rescues strokes and not geometry, which is
16
- * why nothing inside the drawing marks a reading: a circle in a stretched
17
- * coordinate space is an ellipse, and there is no vector-effect that answers
18
- * for a shape.
12
+ * The stroke width stays the same at any size. The drawing uses
13
+ * `preserveAspectRatio="none"` to fill a narrow card or a wide panel, and
14
+ * `vector-effect: non-scaling-stroke` keeps the line from turning hairline in
15
+ * one and heavy in the other. That applies to strokes only: a circle in the
16
+ * stretched drawing becomes an ellipse, so nothing inside the drawing marks a
17
+ * reading.
19
18
  *
20
- * **The last reading of each series is marked, and that is the same rule rather
21
- * than an exception to it.** `terminus` draws an HTML element placed over the
22
- * plot by percentage instead of a shape inside it, so it keeps its shape at any
23
- * width. It is on by default, as a dot, because the column of marks at the far
24
- * edge is where a reader looks for "and what is it now".
19
+ * `terminus` marks the last reading of each series with an HTML element placed
20
+ * over the plot by percentage, so it keeps its shape at any width. It is on by
21
+ * default, as a dot, because the far edge is where you look for the current
22
+ * value.
25
23
  *
26
24
  * @since 0.1.0
27
25
  * @status stable
@@ -30,21 +28,22 @@ import '../../tooltip/index.js';
30
28
  * @aliases Time Series, Trend Chart, Multi-line Chart
31
29
  * @documentation https://fusion.dev/helix/components/line-chart
32
30
  *
33
- * @cssproperty --chart-stroke - Thickness of a series drawn as a line, one name across this
31
+ * @cssproperty --chart-stroke - Thickness of a series drawn as a line. Line Chart, Area Chart's top edge, and Bar Chart's `lines` all read this one property. Each family's own width property overrides it.
34
32
  * family, Area Chart's top edge and Bar Chart's `lines`, since the three read one shared
35
33
  * rule. Each family's own width hook overrides it.
36
- * @cssproperty --chart-terminus-hole - A fill for the middle of a `ring` terminus, which is otherwise open. One name across this family and Sparkline, the two reading one shared sheet.
37
- * @cssproperty --chart-terminus-size - Size of the mark on each series' last reading. One name across this family and Sparkline, the two reading one shared sheet.
34
+ * @cssproperty --chart-terminus-hole - Fill for the middle of a `ring` terminus, which is otherwise open. Line Chart and Sparkline share this property.
35
+ * @cssproperty --chart-terminus-size - Size of the mark on each series' last reading. Line Chart and Sparkline share this property.
38
36
  * @cssproperty --line-chart-area-opacity - How much of a line's color its wash takes.
39
- * @cssproperty --line-chart-band-color - The slot the pointer is resting in.
37
+ * @cssproperty --line-chart-band-color - Color of the band around the reading under the pointer.
40
38
  * @cssproperty --line-chart-block-size - Height of the drawing.
41
39
  * @cssproperty --line-chart-gap - Space between the drawing and its labels.
42
- * @cssproperty --line-chart-gridline-color - One rule across the plot, under `gridlines`.
43
- * @cssproperty --line-chart-width - Thickness of a line, over `--chart-stroke`.
40
+ * @cssproperty --line-chart-gridline-color - Color of the rules drawn across the plot under `gridlines`.
41
+ * @cssproperty --line-chart-width - Thickness of a line. Overrides `--chart-stroke`.
44
42
  */
45
43
  export declare class HelixLineChart extends HelixHeadlessLineChart {
46
44
  /**
47
- * **The styled tier, so the tooltip this renders is the styled one.**
45
+ * The tag prefix for child elements. Set to the styled tier, so the chart
46
+ * renders the styled tooltip.
48
47
  *
49
48
  * `tag()` builds a child's tag name from this prefix, and the base declares
50
49
  * `helix-headless-`. Every other styled component that renders a child
@@ -62,7 +61,7 @@ export declare class HelixLineChart extends HelixHeadlessLineChart {
62
61
  */
63
62
  static tier: string;
64
63
  /**
65
- * How much ink the lines claim.
64
+ * How strongly the lines and their washes are drawn.
66
65
  *
67
66
  * `subtle` mixes each series toward the page, so a chart that is context stays
68
67
  * legible without competing. Toward the page rather than translucent, because a
@@ -83,7 +82,7 @@ export declare class HelixLineChart extends HelixHeadlessLineChart {
83
82
  */
84
83
  emphasis?: 'outlined' | 'solid' | 'subtle';
85
84
  /**
86
- * What the lines are made of.
85
+ * How translucent the lines are, as a material: `glass` or `frosted`.
87
86
  *
88
87
  * `glass` lets the gridlines read through them, which is what translucency is
89
88
  * for on a chart rather than decoration.
@@ -4,21 +4,20 @@ import { type CSSResultGroup, type TemplateResult } from 'lit';
4
4
  * @summary One row of a list.
5
5
  *
6
6
  * @description
7
- * A grid rather than a flex row, so the supporting text lines up under the
8
- * label rather than under the leading icon. The leading and trailing regions
9
- * hold their own width and the middle takes the rest.
7
+ * Laid out as a grid, so supporting text lines up under the label. The leading
8
+ * and trailing regions keep their own width, and the middle takes the rest.
10
9
  *
11
10
  * @since 0.1.0
12
11
  * @status stable
13
12
  * @aliases Row, Entry
14
13
  * @documentation https://fusion.dev/helix/components/list
15
14
  *
16
- * @csspart rail - The cell a railed list draws its number in.
15
+ * @csspart rail - The cell that holds the number in a railed list.
17
16
  *
18
- * @cssproperty --list-item-padding - Padding inside the row.
19
- * @cssproperty --list-item-rail-content - What the rail cell shows. Written by the list.
20
- * @cssproperty --list-item-rail-display - Whether there is a rail at all. Written by the list.
21
- * @cssproperty --list-item-term-weight - Weight of a description list's term.
17
+ * @cssproperty --list-item-padding - The padding inside the row.
18
+ * @cssproperty --list-item-rail-content - What the rail cell shows. The list sets it.
19
+ * @cssproperty --list-item-rail-display - Whether the row has a rail. The list sets it.
20
+ * @cssproperty --list-item-term-weight - The font weight of a term in a description list.
22
21
  */
23
22
  export declare class HelixListItem extends HelixHeadlessListItem {
24
23
  static styles: CSSResultGroup;
@@ -1,13 +1,11 @@
1
1
  import { HelixHeadlessList } from '@fusion.dev/helix-headless/list';
2
2
  import type { CSSResultGroup } from 'lit';
3
3
  /**
4
- * @summary A set of rows, read as a set.
4
+ * @summary A set of rows, announced as a list.
5
5
  *
6
6
  * @description
7
- * Rules between rows rather than around each one, so a list reads as one object
8
- * with divisions instead of as a stack of cards. `divided` is off by default,
9
- * because space alone separates rows perfectly well and a rule at every seam is
10
- * decoration doing what emptiness already does.
7
+ * `divided` draws rules between rows, so the list reads as one object with
8
+ * divisions. It is off by default, and space alone separates the rows.
11
9
  *
12
10
  * @since 0.1.0
13
11
  * @status stable
@@ -15,14 +13,14 @@ import type { CSSResultGroup } from 'lit';
15
13
  * @aliases Rows, Stack, Menu
16
14
  * @documentation https://fusion.dev/helix/components/list
17
15
  *
18
- * @cssproperty --list-gap - Space between rows.
19
- * @cssproperty --list-marker-gutter - Room the ordered and unordered markers hang into.
16
+ * @cssproperty --list-gap - The space between rows.
17
+ * @cssproperty --list-marker-gutter - The space that the markers of ordered and unordered lists sit in.
20
18
  * @cssproperty --list-rail-inline-size - The width of the rail's track.
21
- * @cssproperty --list-rail-style - What a rail counts with. Any `list-style-type`.
19
+ * @cssproperty --list-rail-style - The counter style of the rail's numbers. Takes any `list-style-type`.
22
20
  */
23
21
  export declare class HelixList extends HelixHeadlessList {
24
22
  /**
25
- * Whether a rule sits between rows.
23
+ * Draws a line between rows.
26
24
  */
27
25
  divided: boolean;
28
26
  /**