@fusion.dev/helix-headless 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 (162) hide show
  1. package/custom-elements.json +7324 -3890
  2. package/dist/accordion/item/accordion-item.d.ts +17 -16
  3. package/dist/accordion/root/accordion-root.d.ts +13 -17
  4. package/dist/announcement/root/announcement-root.d.ts +24 -31
  5. package/dist/app-header/root/app-header-root.d.ts +14 -14
  6. package/dist/area-chart/root/area-chart-root.d.ts +29 -48
  7. package/dist/avatar/group/avatar-group.d.ts +6 -8
  8. package/dist/avatar/root/avatar-root.d.ts +11 -11
  9. package/dist/badge/root/badge-root.d.ts +14 -15
  10. package/dist/bar-chart/root/bar-chart-root.d.ts +40 -44
  11. package/dist/blockquote/root/blockquote-root.d.ts +5 -7
  12. package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +25 -33
  13. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +12 -11
  14. package/dist/button/root/button-root.d.ts +16 -17
  15. package/dist/button-group/root/button-group-root.d.ts +9 -10
  16. package/dist/callout/root/callout-root.d.ts +10 -15
  17. package/dist/canvas/edge/canvas-edge.d.ts +21 -21
  18. package/dist/canvas/node/canvas-node.d.ts +43 -45
  19. package/dist/canvas/root/canvas-root.d.ts +100 -99
  20. package/dist/card/root/card-root.d.ts +10 -12
  21. package/dist/carousel/root/carousel-root.d.ts +32 -33
  22. package/dist/chat/composer/chat-composer.d.ts +24 -26
  23. package/dist/chat/message/chat-message.d.ts +30 -33
  24. package/dist/chat/root/chat-root.d.ts +63 -80
  25. package/dist/checkbox/root/checkbox-root.d.ts +30 -32
  26. package/dist/checkbox-group/root/checkbox-group-root.d.ts +25 -25
  27. package/dist/code/root/code-root.d.ts +6 -10
  28. package/dist/code-block/root/code-block-root.d.ts +35 -48
  29. package/dist/color-input/root/color-input-root.d.ts +52 -56
  30. package/dist/color-picker/root/color-picker-root.d.ts +49 -49
  31. package/dist/combobox/root/combobox-root.d.ts +52 -53
  32. package/dist/command/root/command-root.d.ts +35 -40
  33. package/dist/copy-button/root/copy-button-root.d.ts +24 -26
  34. package/dist/data-table/root/data-table-root.d.ts +106 -107
  35. package/dist/date-input/root/date-input-root.d.ts +54 -53
  36. package/dist/date-picker/root/date-picker-root.d.ts +25 -21
  37. package/dist/description-list/item/description-list-item.d.ts +7 -7
  38. package/dist/description-list/root/description-list-root.d.ts +10 -15
  39. package/dist/dialog/root/dialog-root.d.ts +22 -19
  40. package/dist/divider/root/divider-root.d.ts +12 -13
  41. package/dist/donut-chart/root/donut-chart-root.d.ts +19 -20
  42. package/dist/drawer/root/drawer-root.d.ts +19 -18
  43. package/dist/drilldown/item/drilldown-item.d.ts +28 -28
  44. package/dist/drilldown/root/drilldown-root.d.ts +22 -28
  45. package/dist/element-events.generated.js +7 -0
  46. package/dist/empty/root/empty-root.d.ts +16 -19
  47. package/dist/file-input/root/file-input-root.d.ts +32 -32
  48. package/dist/filter-input/chip/filter-chip.d.ts +36 -39
  49. package/dist/filter-input/field/filter-field.d.ts +25 -31
  50. package/dist/filter-input/menu/filter-menu.d.ts +50 -47
  51. package/dist/filter-input/operator/filter-operator.d.ts +15 -20
  52. package/dist/filter-input/root/filter-input-root.d.ts +80 -98
  53. package/dist/format-date/root/format-date-root.d.ts +19 -27
  54. package/dist/heatmap/root/heatmap-root.d.ts +40 -41
  55. package/dist/icon/root/icon-root.d.ts +21 -23
  56. package/dist/icon-button/root/icon-button-root.d.ts +12 -14
  57. package/dist/image/root/image-root.d.ts +30 -30
  58. package/dist/input/root/input-root.d.ts +36 -35
  59. package/dist/kbd/root/kbd-root.d.ts +13 -15
  60. package/dist/legend/root/legend-root.d.ts +18 -16
  61. package/dist/lightbox/item/lightbox-item.d.ts +13 -15
  62. package/dist/lightbox/root/lightbox-root.d.ts +40 -41
  63. package/dist/line-chart/root/line-chart-root.d.ts +20 -29
  64. package/dist/list/item/list-item.d.ts +17 -22
  65. package/dist/list/root/list-root.d.ts +6 -7
  66. package/dist/listbox/root/listbox-root.d.ts +42 -41
  67. package/dist/loader/root/loader-root.d.ts +16 -20
  68. package/dist/map/area/map-area.d.ts +6 -0
  69. package/dist/map/area/map-area.js +3 -0
  70. package/dist/map/buildings/map-buildings.d.ts +45 -0
  71. package/dist/map/buildings/map-buildings.js +37 -0
  72. package/dist/map/contours/map-contours.d.ts +61 -0
  73. package/dist/map/contours/map-contours.js +54 -0
  74. package/dist/map/index.d.ts +7 -0
  75. package/dist/map/index.js +5 -0
  76. package/dist/map/landcover/map-landcover.d.ts +47 -0
  77. package/dist/map/landcover/map-landcover.js +37 -0
  78. package/dist/map/marker/map-marker.d.ts +11 -4
  79. package/dist/map/marker/map-marker.js +13 -1
  80. package/dist/map/points/map-points.d.ts +7 -1
  81. package/dist/map/points/map-points.js +3 -0
  82. package/dist/map/raster/map-raster.d.ts +84 -0
  83. package/dist/map/raster/map-raster.js +96 -0
  84. package/dist/map/root/map-root.d.ts +169 -7
  85. package/dist/map/root/map-root.js +352 -4
  86. package/dist/map/route/map-route.d.ts +6 -0
  87. package/dist/map/route/map-route.js +3 -0
  88. package/dist/map/terrain/map-terrain.d.ts +68 -0
  89. package/dist/map/terrain/map-terrain.js +58 -0
  90. package/dist/megamenu/root/megamenu-root.d.ts +27 -25
  91. package/dist/menu/item/menu-item.d.ts +30 -31
  92. package/dist/menu/root/menu-root.d.ts +25 -29
  93. package/dist/meter/root/meter-root.d.ts +22 -21
  94. package/dist/navigation/root/navigation-root.d.ts +13 -16
  95. package/dist/notifications/group/notification-group.d.ts +27 -28
  96. package/dist/notifications/notification/notification.d.ts +35 -42
  97. package/dist/notifications/root/notifications-root.d.ts +22 -24
  98. package/dist/number-input/root/number-input-root.d.ts +46 -50
  99. package/dist/object-inspector/root/object-inspector-root.d.ts +46 -58
  100. package/dist/option/group/option-group.d.ts +11 -11
  101. package/dist/option/root/option-root.d.ts +28 -33
  102. package/dist/outline/root/outline-root.d.ts +18 -17
  103. package/dist/pagination/root/pagination-root.d.ts +37 -39
  104. package/dist/pagination/size/pagination-size.d.ts +37 -43
  105. package/dist/pagination/summary/pagination-summary.d.ts +12 -14
  106. package/dist/pin-input/root/pin-input-root.d.ts +32 -38
  107. package/dist/popover/root/popover-root.d.ts +16 -21
  108. package/dist/progress/root/progress-root.d.ts +16 -14
  109. package/dist/qr-code/root/qr-code-root.d.ts +22 -25
  110. package/dist/quote/root/quote-root.d.ts +5 -6
  111. package/dist/radio/group/radio-group.d.ts +26 -28
  112. package/dist/radio/root/radio-root.d.ts +24 -28
  113. package/dist/rating/root/rating-root.d.ts +27 -30
  114. package/dist/scatter-chart/root/scatter-chart-root.d.ts +43 -55
  115. package/dist/scroll-area/root/scroll-area-root.d.ts +15 -21
  116. package/dist/select/root/select-root.d.ts +41 -44
  117. package/dist/skeleton/root/skeleton-root.d.ts +7 -8
  118. package/dist/skip-link/root/skip-link-root.d.ts +21 -28
  119. package/dist/slider/root/slider-root.d.ts +36 -39
  120. package/dist/sparkline/root/sparkline-root.d.ts +22 -28
  121. package/dist/speed-dial/item/speed-dial-item.d.ts +21 -21
  122. package/dist/speed-dial/root/speed-dial-root.d.ts +25 -27
  123. package/dist/splitter/root/splitter-root.d.ts +37 -41
  124. package/dist/stat/group/stat-group.d.ts +4 -4
  125. package/dist/stat/root/stat-root.d.ts +8 -9
  126. package/dist/steps/root/steps-root.d.ts +11 -14
  127. package/dist/steps/step/step.d.ts +22 -29
  128. package/dist/switch/root/switch-root.d.ts +20 -24
  129. package/dist/table/cell/table-cell.d.ts +18 -8
  130. package/dist/table/cell/table-cell.js +5 -1
  131. package/dist/table/column/table-column.d.ts +62 -55
  132. package/dist/table/root/table-root.d.ts +16 -17
  133. package/dist/table/row/table-row.d.ts +3 -3
  134. package/dist/tabs/panel/tab-panel.d.ts +3 -3
  135. package/dist/tabs/root/tabs-root.d.ts +19 -17
  136. package/dist/tabs/tab/tab.d.ts +6 -6
  137. package/dist/tag/root/tag-root.d.ts +11 -12
  138. package/dist/textarea/root/textarea-root.d.ts +29 -32
  139. package/dist/time-input/root/time-input-root.d.ts +70 -69
  140. package/dist/time-picker/root/time-picker-root.d.ts +58 -66
  141. package/dist/timeline/item/timeline-item.d.ts +18 -24
  142. package/dist/timeline/root/timeline-root.d.ts +13 -21
  143. package/dist/toast/item/toast-item.d.ts +21 -22
  144. package/dist/toast/root/toast-root.d.ts +18 -23
  145. package/dist/toggle/group/toggle-group.d.ts +23 -25
  146. package/dist/toggle/root/toggle-root.d.ts +8 -8
  147. package/dist/toolbar/root/toolbar-root.d.ts +7 -10
  148. package/dist/tooltip/root/tooltip-root.d.ts +41 -47
  149. package/dist/tour/root/tour-root.d.ts +24 -26
  150. package/dist/tour/stop/tour-stop.d.ts +39 -48
  151. package/dist/tree/item/tree-item.d.ts +23 -25
  152. package/dist/tree/root/tree-root.d.ts +13 -12
  153. package/dist/trend/root/trend-root.d.ts +18 -19
  154. package/dist/video/root/video-root.d.ts +108 -101
  155. package/dist/video-playlist/item/video-playlist-item.d.ts +23 -28
  156. package/dist/video-playlist/menu/video-playlist-menu.d.ts +17 -21
  157. package/dist/video-playlist/root/video-playlist-root.d.ts +21 -25
  158. package/dist/virtual-list/root/virtual-list-root.d.ts +27 -26
  159. package/package.json +5 -5
  160. package/types/jsx.d.ts +10363 -9520
  161. package/types/svelte.d.ts +5 -0
  162. package/types/vue.d.ts +1440 -1032
@@ -3,29 +3,23 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
3
3
  import '../../tooltip/index.js';
4
4
  declare const HelixHeadlessBarChart_base: typeof HelixElement & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinChartSourceInterface);
5
5
  /**
6
- * @summary Categories as columns, read from a table.
6
+ * @summary A chart that draws a table's categories as columns.
7
7
  *
8
8
  * @description
9
- * Two decisions are made here rather than left to a consumer.
9
+ * Every bar is measured from zero, and no property changes the baseline,
10
+ * because a bar's length is its value. To show the differences between values,
11
+ * use a line chart.
10
12
  *
11
- * **It measures from zero and there is no property to change that.** A bar's
12
- * length *is* its value, so a baseline anywhere else makes the lengths
13
- * proportional to nothing. A reader who wants the differences between values
14
- * rather than the values should be drawing a line, which claims only a shape.
13
+ * The labels are HTML beside the drawing. An `<svg>` that fills its box scales
14
+ * the text inside it: the same `font-size` renders at 10px in a narrow chart
15
+ * and 43px in a wide one, and SVG has no setting that keeps text at one size
16
+ * the way `vector-effect` does for strokes.
15
17
  *
16
- * **The labels are HTML beside the drawing rather than `<text>` inside it.** An
17
- * `<svg>` that fills its box scales everything in it, including type: the same
18
- * `font-size` comes out at 10px in a narrow chart and 43px in a wide one, and
19
- * there is no non-scaling-font to answer it the way `vector-effect` answers
20
- * strokes. So the columns are drawn and the words are written around them.
18
+ * The table is the accessible representation, and the drawing is `aria-hidden`,
19
+ * so screen reader users get the numbers themselves.
21
20
  *
22
- * The table is the accessible representation and this drawing is `aria-hidden`.
23
- * A reader who wants the numbers gets the numbers, not a described picture of
24
- * them.
25
- *
26
- * The custom properties below are written by this component and read by whoever
27
- * draws it. A consumer sets none of them: they carry a number this element
28
- * computed and CSS cannot.
21
+ * The component writes the custom properties below with numbers it computes,
22
+ * and the stylesheet that draws the chart reads them. Do not set them yourself.
29
23
  *
30
24
  * @since 0.1.0
31
25
  * @status stable
@@ -33,47 +27,47 @@ declare const HelixHeadlessBarChart_base: typeof HelixElement & (new (...args: a
33
27
  * @aliases Column Chart, Categorical Chart
34
28
  * @documentation https://fusion.dev/helix/components/bar-chart
35
29
  *
36
- * @csspart axis - One scale's numbers, drawn only when `secondary` splits them.
37
- * @csspart band - The slot the pointer is resting in.
30
+ * @csspart axis - The numbers of one scale, drawn only when `secondary` splits the chart into two scales.
31
+ * @csspart band - The category band under the pointer.
38
32
  * @csspart bar - One column.
39
33
  * @csspart bar-wash-end - The far stop of a bar's gradient, where one is used.
40
34
  * @csspart bar-wash-start - The stop of a bar's gradient at its base.
41
- * @csspart baseline - The rule the columns stand on.
42
- * @csspart gridline - One rule across the plot, under `gridlines`.
35
+ * @csspart baseline - The line the columns stand on.
36
+ * @csspart gridline - One gridline across the plot, drawn when `gridlines` is set.
43
37
  * @csspart group - One category's columns, together.
44
- * @csspart group-active - The group the tooltip is about, beside `group`.
38
+ * @csspart group-active - The group the tooltip describes. Set together with `group`.
45
39
  * @csspart label - One category's name.
46
40
  * @csspart labels - The row of category names.
47
- * @csspart line - A series drawn as a line rather than as columns, under `lines`.
41
+ * @csspart line - A series drawn as a line, named in `lines`.
48
42
  * @csspart mark - The invisible point the tooltip is anchored to.
49
43
  * @csspart plot - The drawing.
50
44
  * @csspart svg - The drawing surface the bars and lines sit on.
51
45
  * @csspart tick - One number on an axis.
52
- * @csspart tooltip - The bubble, forwarded from `Tooltip`.
46
+ * @csspart tooltip - The tooltip bubble, forwarded from `Tooltip`.
53
47
  * @csspart tooltip-anchor - The `Tooltip` element itself.
54
- * @csspart tooltip-arrow - The bubble's point, forwarded from `Tooltip`.
55
- * @csspart tooltip-arrow-bottom - The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.
56
- * @csspart tooltip-arrow-left - The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.
57
- * @csspart tooltip-arrow-right - The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.
58
- * @csspart tooltip-arrow-top - The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.
59
- * @csspart tooltip-bottom - The bubble while it is below the reading, beside `tooltip`.
48
+ * @csspart tooltip-arrow - The tooltip's arrow, forwarded from `Tooltip`.
49
+ * @csspart tooltip-arrow-bottom - The arrow while the bubble is below the reading, on the bubble's top edge. Set together with `tooltip-arrow`.
50
+ * @csspart tooltip-arrow-left - The arrow while the bubble is left of the reading, on the bubble's right edge. Set together with `tooltip-arrow`.
51
+ * @csspart tooltip-arrow-right - The arrow while the bubble is right of the reading, on the bubble's left edge. Set together with `tooltip-arrow`.
52
+ * @csspart tooltip-arrow-top - The arrow while the bubble is above the reading, on the bubble's bottom edge. Set together with `tooltip-arrow`.
53
+ * @csspart tooltip-bottom - The bubble while it is below the reading. Set together with `tooltip`.
60
54
  * @csspart tooltip-cell - One column's name and value inside the tooltip.
61
- * @csspart tooltip-label - The reading's own name inside the tooltip.
62
- * @csspart tooltip-left - The bubble while it is left of the reading, beside `tooltip`.
55
+ * @csspart tooltip-label - The reading's category name inside the tooltip.
56
+ * @csspart tooltip-left - The bubble while it is left of the reading. Set together with `tooltip`.
63
57
  * @csspart tooltip-name - A column's name inside the tooltip.
64
- * @csspart tooltip-right - The bubble while it is right of the reading, beside `tooltip`.
65
- * @csspart tooltip-top - The bubble while it is above the reading, beside `tooltip`.
58
+ * @csspart tooltip-right - The bubble while it is right of the reading. Set together with `tooltip`.
59
+ * @csspart tooltip-top - The bubble while it is above the reading. Set together with `tooltip`.
66
60
  * @csspart tooltip-value - A column's value inside the tooltip.
67
61
  *
68
- * @cssproperty --bar-chart-axis - How wide an axis column is drawn, in `ch`, from the widest number on it. Written on the axis itself, and only where the categories run along the bottom: turned sideways an axis is a row and takes a line's height instead.
69
- * @cssproperty --bar-chart-secondary - The color of the secondary axis, where one series owns it. Written by the component from that series' `--chart-series-*`, so it promises the series color and nothing more: whatever that hook resolves to is what the axis is drawn in.
70
- * @cssproperty --chart-bar-wash - The gradient a bar would take, named per bar so the
71
- * styled tier can point `fill` at it. Drawn whatever the treatment and used only where
72
- * `wash="gradient"` asks for it.
62
+ * @cssproperty --bar-chart-axis - The width of an axis, in `ch`, set from the widest number on it. The chart sets it on the axis itself, and only when the categories run along the bottom. In a horizontal chart the axis is a row, one line high.
63
+ * @cssproperty --bar-chart-secondary - The color of the secondary axis, when one series is on it. The chart sets it from that series' `--chart-series-*` property, so the axis is drawn in whatever color that property resolves to.
64
+ * @cssproperty --chart-bar-wash - The gradient for a bar, named per bar so the styled
65
+ * tier can use it as the `fill`. It is always drawn, and used only when
66
+ * `wash="gradient"` is set.
73
67
  */
74
68
  export declare class HelixHeadlessBarChart extends HelixHeadlessBarChart_base {
75
69
  /**
76
- * Which rules are drawn across the plot, if any.
70
+ * Which gridlines are drawn across the plot, if any.
77
71
  *
78
72
  * Absent draws none. `value` rules the axis the columns are *measured* on,
79
73
  * `category` rules the axis they are *arranged* on with one through each
@@ -94,7 +88,8 @@ export declare class HelixHeadlessBarChart extends HelixHeadlessBarChart_base {
94
88
  */
95
89
  gridlines?: 'both' | 'category' | 'value';
96
90
  /**
97
- * Which series are drawn as a line instead of as columns, by name.
91
+ * The names of the series to draw as lines. The other series are drawn as
92
+ * columns.
98
93
  *
99
94
  * Separated by whitespace or commas and matched against the column headings
100
95
  * the table gives, so a chart says `lines="Margin"` rather than counting
@@ -118,7 +113,8 @@ export declare class HelixHeadlessBarChart extends HelixHeadlessBarChart_base {
118
113
  */
119
114
  lines?: string;
120
115
  /**
121
- * Whether the categories run down the side rather than along the bottom.
116
+ * Where the categories run. Leave it unset for categories along the bottom,
117
+ * or set `horizontal` to run them down the side.
122
118
  *
123
119
  * Absent is columns. `horizontal` is the one to reach for when the category
124
120
  * names are words rather than dates: a row of long names either overlaps or
@@ -130,7 +126,7 @@ export declare class HelixHeadlessBarChart extends HelixHeadlessBarChart_base {
130
126
  */
131
127
  orientation?: 'horizontal';
132
128
  /**
133
- * Which series are measured against a scale of their own, by name.
129
+ * The names of the series measured against a second scale of their own.
134
130
  *
135
131
  * Separated and matched the way `lines` is, against the column headings the
136
132
  * table gives. Opt in: absent, every series shares one domain, which is what
@@ -4,13 +4,11 @@ import { type PropertyValues, type TemplateResult } from 'lit';
4
4
  * @summary A passage set off from the prose around it.
5
5
  *
6
6
  * @description
7
- * Renders a real `<blockquote>` with a `<footer>` for the attribution, which is
8
- * the structure the HTML spec describes for exactly this: the attribution is
9
- * about the quotation rather than part of it, and putting it inside the quoted
10
- * text claims the source said their own name.
7
+ * Renders a `<blockquote>` with a `<footer>` for the attribution, the structure
8
+ * the HTML spec describes. The attribution sits outside the quoted text because
9
+ * it is about the quotation.
11
10
  *
12
- * A quotation run inside a sentence is a `Quote`, which is a different element
13
- * because it is a different job.
11
+ * For a quotation inside a sentence, use `Quote`.
14
12
  *
15
13
  * @since 0.1.0
16
14
  * @status stable
@@ -26,7 +24,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
26
24
  */
27
25
  export declare class HelixHeadlessBlockquote extends HelixElement {
28
26
  /**
29
- * URL identifying where the passage came from.
27
+ * The URL of the source the passage came from.
30
28
  */
31
29
  cite: string;
32
30
  /**
@@ -4,56 +4,47 @@ import { type PropertyValues, type TemplateResult } from 'lit';
4
4
  * @summary One step in a breadcrumb trail.
5
5
  *
6
6
  * @description
7
- * Contributes the separator, the list-item role, and the link itself where one
8
- * is wanted.
7
+ * Each crumb renders its separator and sets its list-item role. It hides its
8
+ * own separator with `:host(:first-child)`, so the trail needs no index from
9
+ * the parent.
9
10
  *
10
- * **`href` makes the crumb the link.** A router cannot reach an anchor inside a
11
- * shadow root, and the consumer restores the soft navigation by intercepting the
12
- * click on the way out, which is what `Tree.Item` and `List.Item` both do. What
13
- * the anchor buys is the whole crumb as a target, Enter, middle click, the
14
- * status bar, and a trail that works before any JavaScript runs.
11
+ * Set `href` to make the whole crumb an anchor, which works with Enter, middle
12
+ * click, and the status bar, and before any JavaScript runs. A router cannot
13
+ * reach an anchor inside a shadow root, so intercept the click for client-side
14
+ * navigation, as with `Tree.Item` and `List.Item`. A trail that collapses also
15
+ * reads `href` to rebuild its hidden crumbs elsewhere.
15
16
  *
16
- * **And the parent needs it.** A trail that collapses has to rebuild its hidden
17
- * crumbs somewhere else, which means reading each one's destination. From a
18
- * property that is a read; from a consumer's slotted markup it is a hunt for an
19
- * anchor and a guess about which element is the link.
17
+ * Without `href`, the crumb renders a plain `<span>` around what you slot,
18
+ * including your own anchor.
20
19
  *
21
- * A crumb with no `href` is unchanged: the consumer slots whatever they like,
22
- * including their own anchor, and this renders a plain `<span>` around it.
23
- *
24
- * Each item renders its own separator and hides it with `:host(:first-child)`,
25
- * so the trail needs no index and no coordination from the parent. `:host()`
26
- * takes a structural pseudo-class, unlike `:has()`, which it rejects.
27
- *
28
- * The current page is text, not a link. Linking a page to itself is a known
29
- * screen-reader annoyance, and `aria-current="page"` on the host is what
30
- * conveys position.
20
+ * The current page is plain text, and `aria-current="page"` on the host conveys
21
+ * the position.
31
22
  *
32
23
  * @since 0.1.0
33
24
  * @status stable
34
25
  * @aliases Crumb
35
26
  * @documentation https://fusion.dev/helix/components/breadcrumbs
36
27
  *
37
- * @slot - The step's label. Without an `href` this may be the consumer's own
38
- * anchor, styled with `data-link="quiet"`, since a slotted anchor belongs to the
39
- * outer tree and cannot be reached from this component's styles.
40
- * @slot end - After the label and outside the link, so it may be a control: this is where a
41
- * switcher's menu trigger goes. A count or a mark is equally at home here and is no longer
42
- * read into the link's accessible name.
28
+ * @slot - The step's label. Without an `href`, you can slot your own anchor
29
+ * here. Give it `data-link="quiet"`, because a slotted anchor belongs to the
30
+ * outer tree and the crumb's styles cannot reach it.
31
+ * @slot end - Content after the label and outside the link, such as a switcher's
32
+ * menu trigger, a count, or a mark. It can hold a control, and it is not read as
33
+ * part of the link's accessible name.
43
34
  * @slot separator - Replaces the chevron shown before this item.
44
- * @slot start - Before the label, for an icon.
35
+ * @slot start - Content before the label, such as an icon.
45
36
  *
46
37
  * @csspart link - The crumb itself, which is an `<a>` where `href` is set.
47
38
  * @csspart separator - The separator preceding the item.
48
- * @csspart separator-mark - The glyph between this crumb and the next, where none is slotted.
39
+ * @csspart separator-mark - The chevron between crumbs, shown when no separator is slotted.
49
40
  */
50
41
  export declare class HelixHeadlessBreadcrumb extends HelixElement {
51
42
  /**
52
- * Whether this item is the page the reader is on.
43
+ * Marks this item as the page you are on.
53
44
  */
54
45
  current: boolean;
55
46
  /**
56
- * Where the crumb goes, and nothing where it is the current page.
47
+ * The URL the crumb links to. The current page has none.
57
48
  *
58
49
  * **Optional and reflected, because a stylesheet does select on it.** A sheet
59
50
  * writes `:host(:not([href])) [part="link"]` to take the block padding off a
@@ -72,13 +63,14 @@ export declare class HelixHeadlessBreadcrumb extends HelixElement {
72
63
  */
73
64
  href?: string;
74
65
  /**
75
- * What the link declares about where it goes.
66
+ * The link's `rel` value, which describes how the linked page relates to this
67
+ * one.
76
68
  *
77
69
  * The consumer's decision.
78
70
  */
79
71
  rel: string;
80
72
  /**
81
- * Where the link opens, for the rare crumb that leaves the site.
73
+ * Where the link opens. Use it for a crumb that leaves the site.
82
74
  */
83
75
  target: string;
84
76
  protected willUpdate(changed: PropertyValues): void;
@@ -4,18 +4,19 @@ import { type PropertyValues, type TemplateResult } from 'lit';
4
4
  * @summary Shows the path to the current page.
5
5
  *
6
6
  * @description
7
- * The host is the landmark, so `aria-label` on it names the trail directly. A
8
- * page may hold more than one navigation, and landmarks are how a
9
- * screen-reader user chooses between them.
7
+ * The host is the navigation landmark, so an `aria-label` on it names the
8
+ * trail. When a page has more than one navigation landmark, screen reader users
9
+ * choose between them by name.
10
10
  *
11
- * `role="list"` is set explicitly on the `<ol>` even though it is one:
12
- * `list-style: none` strips list semantics in Safari, and a breadcrumb trail
13
- * always removes its markers.
11
+ * The `<ol>` has an explicit `role="list"`, because Safari removes list
12
+ * semantics from a list with `list-style: none`, and the trail always hides its
13
+ * markers.
14
14
  *
15
- * Items are slotted rather than wrapped, so they are `<ol>` children in the
16
- * flat tree and each carries `role="listitem"` itself.
15
+ * The items are slotted directly, so they are `<ol>` children in the flat tree,
16
+ * and each item sets `role="listitem"` on itself.
17
17
  *
18
- * **The trail does not measure itself, and the overflow is markup.**
18
+ * The trail does not measure itself, and you write its overflow in markup: put
19
+ * the crumb that holds the folded items where the gap should appear.
19
20
  *
20
21
  * @since 0.1.0
21
22
  * @status stable
@@ -23,8 +24,8 @@ import { type PropertyValues, type TemplateResult } from 'lit';
23
24
  * @aliases Breadcrumb, Crumbs
24
25
  * @documentation https://fusion.dev/helix/components/breadcrumbs
25
26
  *
26
- * @slot - The trail's items, in order from root to current page, with the
27
- * crumb holding the fold wherever the gap should appear.
27
+ * @slot - The trail's items, in order from the root to the current page. Put
28
+ * the crumb that holds the folded items where the gap should appear.
28
29
  *
29
30
  * @csspart list - The ordered list.
30
31
  */
@@ -4,25 +4,22 @@ import { type PropertyValues, type TemplateResult } from 'lit';
4
4
  * @summary Triggers an action, submits a form, or navigates.
5
5
  *
6
6
  * @description
7
- * Renders a real `<button>`, so activation, focus, and the browser's own
8
- * affordances come from the platform rather than from key handlers.
7
+ * Renders a real `<button>`, so activation, focus, and other browser behavior
8
+ * come from the platform.
9
9
  *
10
- * **It never renders an anchor.** A router has to render its own `<a>` to
11
- * intercept a click and cannot render one inside this shadow root, so a button
12
- * that could also be a link forced every such navigation to be a full page
13
- * load. A link that looks like a button is styling rather than behavior, so it
14
- * is a recipe in the base layer: `<Link data-button="solid">` is the same
15
- * control, and the consumer keeps their anchor.
10
+ * **It never renders an anchor.** A router renders its own `<a>` to intercept a
11
+ * click, and it cannot render one inside the button's shadow root. For a link
12
+ * that looks like a button, use the base layer recipe on your own anchor:
13
+ * `<Link data-button="solid">` draws the same control.
16
14
  *
17
- * `delegatesFocus` puts focus on the inner control, and it serializes into the
18
- * server's markup, so the button is keyboard reachable before any JavaScript
15
+ * `delegatesFocus` moves focus to the inner control. It is serialized into the
16
+ * server markup, so the button is reachable by keyboard before any JavaScript
19
17
  * loads.
20
18
  *
21
- * Form submission is explicit. A `<button type="submit">` inside a shadow root
22
- * submits nothing, because the form is on the other side of the boundary, so
23
- * the inner control is always `type="button"` and this element calls
24
- * `requestSubmit()` on its form instead. That routes through validation, unlike
25
- * `submit()`.
19
+ * The inner control is always `type="button"`, because a
20
+ * `<button type="submit">` inside a shadow root cannot submit a form outside
21
+ * it. To submit, the button calls `requestSubmit()` on its form, which runs
22
+ * validation, unlike `submit()`.
26
23
  *
27
24
  * @since 0.1.0
28
25
  * @status stable
@@ -137,7 +134,8 @@ export declare class HelixHeadlessButton extends HelixFormElement {
137
134
  */
138
135
  formTarget: string;
139
136
  /**
140
- * Accessible name, for a button whose content is not text.
137
+ * The button's name, read by screen readers, for a button whose content is
138
+ * not text.
141
139
  *
142
140
  * Lives here rather than only on `IconButton` so the two share one render.
143
141
  * An icon-only button without it is a control a screen reader announces as
@@ -152,7 +150,8 @@ export declare class HelixHeadlessButton extends HelixFormElement {
152
150
  */
153
151
  type: 'button' | 'submit' | 'reset';
154
152
  /**
155
- * What this button submits under its own `name`, the way a native submitter does.
153
+ * The value this button submits under its own `name`, as a native submit
154
+ * button does.
156
155
  *
157
156
  * **Reported for exactly the submission this button starts and not otherwise.**
158
157
  * A native submit button contributes `name=value` only when it is the one
@@ -4,17 +4,16 @@ import { type PropertyValues, type TemplateResult } from 'lit';
4
4
  * @summary Groups related buttons into one control.
5
5
  *
6
6
  * @description
7
- * The host is the group, so `role="group"` sits on it through internals and
8
- * `label` names it. A group of buttons with no name is announced as a run of
9
- * separate controls, which is what the grouping exists to say it is not.
7
+ * Sets `role="group"` on the host through internals, and `label` names the
8
+ * group. Without a name, a screen reader announces the buttons as separate
9
+ * controls.
10
10
  *
11
- * It manages no focus. A group is not a toolbar: the APG toolbar pattern asks
12
- * for one tab stop with arrow keys inside it, and that is what Toolbar is for.
13
- * Here every button keeps its own tab stop, which is what a reader expects from
14
- * buttons sitting side by side.
11
+ * The group does not manage focus, so each button keeps its own tab stop. For
12
+ * one tab stop with arrow keys between the buttons, the APG toolbar pattern,
13
+ * use Toolbar.
15
14
  *
16
- * Buttons are slotted rather than wrapped, so they stay the consumer's own
17
- * elements and keep whatever appearance and size they were given.
15
+ * Buttons are slotted, so they stay your own elements and keep their own
16
+ * appearance and size.
18
17
  *
19
18
  * @since 0.1.0
20
19
  * @status stable
@@ -26,7 +25,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
26
25
  */
27
26
  export declare class HelixHeadlessButtonGroup extends HelixElement {
28
27
  /**
29
- * Accessible name for the group.
28
+ * The group's name, read by screen readers.
30
29
  *
31
30
  * On the host through internals, so an author's `aria-label` still overrides
32
31
  * it and nothing lands on the host that a consumer's markup did not have.
@@ -1,24 +1,19 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type PropertyValues, type TemplateResult } from 'lit';
3
3
  /**
4
- * @summary Sets a passage apart as information, a warning, or an error.
4
+ * @summary A passage set apart as information, a warning, or an error.
5
5
  *
6
6
  * @description
7
- * `tone` lives on the headless tier rather than being a treatment on the styled
8
- * one, because it is meaning and not decoration. It picks the icon and that
9
- * icon's accessible name, so a reader who cannot see that the box is red still
10
- * hears "Error". A callout whose meaning existed only as a color would say
11
- * nothing to them at all.
7
+ * `tone` is on the headless tier because it carries meaning. It picks the icon
8
+ * and the icon's accessible name, so a screen reader announces "Error" for an
9
+ * error callout whether or not the color is seen.
12
10
  *
13
- * The icon is the fallback content of a slot, so a consumer replaces it by
14
- * slotting their own and the default disappears with no emptiness check. That
15
- * is what slot fallback is for.
11
+ * The icon is the fallback content of a slot. Slot your own icon to replace it,
12
+ * and the default disappears with no extra check.
16
13
  *
17
- * Not an `Announcement`, which is the other thing this could be mistaken for.
18
- * A callout interrupts a document to set a passage apart and is read where it
19
- * sits; an announcement is page-level chrome above the masthead, announces
20
- * itself as a live region, and can be dismissed. Neither is a variant of the
21
- * other.
14
+ * A callout sets a passage apart inside a document and is read where it sits.
15
+ * For page-level chrome above the masthead that is a live region and can be
16
+ * dismissed, use `Announcement`.
22
17
  *
23
18
  * @since 0.1.0
24
19
  * @status stable
@@ -32,7 +27,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
32
27
  *
33
28
  * @csspart content - The content region.
34
29
  * @csspart icon - The icon region.
35
- * @csspart icon-mark - The tone glyph, where none is slotted.
30
+ * @csspart icon-mark - The icon for the tone, shown when no icon is slotted.
36
31
  */
37
32
  export declare class HelixHeadlessCallout extends HelixElement {
38
33
  protected willUpdate(changed: PropertyValues): void;
@@ -5,15 +5,14 @@ import type { CanvasEnd, CanvasSide } from '../root/canvas-document.js';
5
5
  * @summary A connector between two cards on a canvas.
6
6
  *
7
7
  * @description
8
- * **A declaration rather than a drawing**, which is the shape `Table.Column`
9
- * has: this element renders nothing at all and the board draws the line,
10
- * because a connector is geometry between two other elements and neither end of
11
- * it belongs here. What this carries is which cards, which sides, and what sits
12
- * at the ends.
8
+ * Declares a connector between two cards, the way `Table.Column` declares a
9
+ * column. The element renders nothing, and the board draws the line. The
10
+ * element carries which cards the connector joins, which sides it leaves and
11
+ * arrives on, and what sits at each end.
13
12
  *
14
- * Written as markup for the reason its cards are: an array of edges handed to a
15
- * custom element does not survive React's hydration, and a connector a consumer
16
- * can write is one they can also put a condition around.
13
+ * Connectors are markup for the same reason cards are: an array of edges passed
14
+ * to a custom element does not survive React hydration. As markup, a connector
15
+ * can also be rendered conditionally.
17
16
  *
18
17
  * @since 0.100.0
19
18
  * @status experimental
@@ -22,21 +21,22 @@ import type { CanvasEnd, CanvasSide } from '../root/canvas-document.js';
22
21
  * @documentation https://fusion.dev/helix/components/canvas
23
22
  */
24
23
  export declare class HelixHeadlessCanvasEdge extends HelixElement {
25
- /** The card it leaves. */
24
+ /** The name of the card the connection starts from. */
26
25
  from: string;
27
26
  /**
28
- * What sits at the end it leaves from.
27
+ * The marker at the start of the connection.
29
28
  *
30
29
  * Absent is nothing, which is the format's own default and what makes an
31
30
  * ordinary connector a one-way arrow.
32
31
  */
33
32
  fromEnd?: CanvasEnd;
34
- /** Which side of that card it leaves, where the document says. */
33
+ /** The side of the `from` card the connection leaves from, when the document sets one. */
35
34
  fromSide?: CanvasSide | undefined;
36
- /** What the connector says, drawn at its middle. */
35
+ /** Text drawn at the middle of the connection. */
37
36
  label?: string | undefined;
38
37
  /**
39
- * What a request calls this connection, unique on its board.
38
+ * The connection's name, unique on its board, which events use to refer to
39
+ * it.
40
40
  *
41
41
  * Optional, unlike a card's: a connection is also known by its two ends,
42
42
  * which `helix-remove` carries beside this, so a page that names none of its
@@ -44,7 +44,7 @@ export declare class HelixHeadlessCanvasEdge extends HelixElement {
44
44
  */
45
45
  name: string;
46
46
  /**
47
- * How it travels: `straight`, or `step` for right angles.
47
+ * The route the line takes: `straight`, or `step` for right angles.
48
48
  *
49
49
  * Absent is whatever the board says, and a curve where the board says
50
50
  * nothing. Not part of JSON Canvas, which draws every edge one way; a
@@ -57,30 +57,30 @@ export declare class HelixHeadlessCanvasEdge extends HelixElement {
57
57
  */
58
58
  path?: 'straight' | 'step';
59
59
  /**
60
- * Keeps this connection: a reader cannot remove it.
60
+ * Prevents the connection from being removed.
61
61
  *
62
62
  * The board's `readonly` still wins. A connection is still removed with a
63
63
  * card at either end of it, since a line to a card that has gone is not one
64
64
  * the board can draw.
65
65
  */
66
66
  readOnly: boolean;
67
- /** The card it arrives at. */
67
+ /** The name of the card the connection ends at. */
68
68
  to: string;
69
- /** What sits at the end it arrives at. Absent is an arrow, as the format says. */
69
+ /** The marker at the end of the connection. Unset is an arrow, as JSON Canvas specifies. */
70
70
  toEnd?: CanvasEnd;
71
71
  /**
72
- * What the connection means, in the words every Helix component uses.
72
+ * The meaning of the connection, shown by its color, in the same tones as
73
+ * other Helix components.
73
74
  *
74
75
  * A color with no meaning is `--canvas-edge-color`, written in the edge's own
75
76
  * `style`: the line is drawn by the board rather than by this element, so the
76
77
  * board carries the value across from where it was written.
77
78
  */
78
79
  tone?: 'accent' | 'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning';
79
- /** Which side of that card it arrives at, where the document says. */
80
+ /** The side of the `to` card the connection arrives at, when the document sets one. */
80
81
  toSide?: CanvasSide | undefined;
81
82
  /**
82
- * How the line is drawn: `dashed` or `dotted`, and solid where it says
83
- * neither.
83
+ * How the line is drawn: `dashed` or `dotted`. Unset is solid.
84
84
  *
85
85
  * **A variant rather than an axis**, which is what the registry keeps it for:
86
86
  * no other family draws a line whose stroke says something, and a dashed