@fusion.dev/helix-headless 0.105.0 → 0.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -2,23 +2,26 @@ import { HelixFormElement } from '@fusion.dev/helix-core';
2
2
  import { type PropertyValues, type TemplateResult } from 'lit';
3
3
  declare const HelixHeadlessDatePicker_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & typeof HelixFormElement;
4
4
  /**
5
- * @summary Shows a month, and takes a date from it.
5
+ * @summary A month calendar for choosing one or more dates.
6
6
  *
7
7
  * @description
8
- * A grid of days, per the APG date grid: the whole grid is one tab stop, arrows
9
- * move by day and week, `PageUp` and `PageDown` by month, `Home` and `End` to
10
- * the ends of the week. Only the focused cell is in the tab sequence.
8
+ * A grid of days that follows the APG date grid pattern:
11
9
  *
12
- * **Dates are `YYYY-MM-DD` strings and every calculation is in UTC.** A
13
- * local-time `Date` shifts across a timezone or a daylight-saving boundary.
10
+ * - The grid is one tab stop. Only the focused cell is in the tab sequence.
11
+ * - Arrow keys move by day and by week.
12
+ * - `PageUp` and `PageDown` move by month.
13
+ * - `Home` and `End` move to the start and end of the week.
14
14
  *
15
- * `month` is what the grid shows, separately from `value`, so paging does not
16
- * select anything and a consumer can drive the view. Left unset it follows the
15
+ * **Dates are `YYYY-MM-DD` strings, and every calculation is in UTC**, because
16
+ * a local-time `Date` shifts across a time zone or daylight-saving boundary.
17
+ *
18
+ * `month` sets which month the grid shows, separately from `value`, so paging
19
+ * selects nothing and you can control the view. When unset, it follows the
17
20
  * first selected date, then the current month.
18
21
  *
19
- * `mode` decides how many dates are held: absent takes one, `range` takes two
20
- * and marks everything between them, `multiple` toggles. All three read and
21
- * write the same comma-separated `value`.
22
+ * `mode` sets how many dates are held. Unset holds one, `range` holds two and
23
+ * marks the dates between them, and `multiple` toggles each date. All three
24
+ * read and write the same comma-separated `value`.
22
25
  *
23
26
  * @since 0.1.0
24
27
  * @status stable
@@ -29,16 +32,16 @@ declare const HelixHeadlessDatePicker_base: (new (...args: any[]) => import("@fu
29
32
  * @slot next-icon - The glyph on the control that moves forward a month, usually a caret.
30
33
  * @slot previous-icon - The glyph on the control that moves back a month, usually a caret.
31
34
  *
32
- * @event {Event} change - Announced once the value has moved.
35
+ * @event {Event} change - Fired after the value changes.
33
36
  * @event {HelixBeforeChangeEvent} helix-before-change - Fired before the dates change, and cancelable.
34
37
  * @event {HelixNavigateEvent} helix-navigate - Fired before the month on show changes, and cancelable.
35
- * @event {Event} input - Announced once the value has moved.
38
+ * @event {Event} input - Fired after the value changes.
36
39
  *
37
- * @csspart cell - One column of a row, which is what a range paints.
40
+ * @csspart cell - One column of a week row. A range is painted on the cells.
38
41
  * @csspart cell-range-end - The cell of a range's last day, beside `cell`.
39
42
  * @csspart cell-range-middle - A cell between a range's ends, beside `cell`.
40
43
  * @csspart cell-range-start - The cell of a range's first day, beside `cell`.
41
- * @csspart day - The shape inside a cell, which is what a single date paints.
44
+ * @csspart day - The shape inside a cell. A single chosen date is painted on it.
42
45
  * @csspart day-disabled - A day that cannot be chosen, beside `day`.
43
46
  * @csspart day-outside - A day from a neighboring month, filling the grid out, beside `day`.
44
47
  * @csspart day-selected - The chosen day, or either end of a chosen range, beside `day`.
@@ -59,7 +62,7 @@ declare const HelixHeadlessDatePicker_base: (new (...args: any[]) => import("@fu
59
62
  */
60
63
  export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_base {
61
64
  /**
62
- * What a reader is told when the value holds something that is not a date.
65
+ * The validation message for a value that is not a date.
63
66
  *
64
67
  * **Every sentence a control raises in the browser's bubble is a property**,
65
68
  * named for the validity flag it reports, so a form in another language
@@ -67,7 +70,7 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
67
70
  */
68
71
  badInputMessage?: string;
69
72
  /**
70
- * Month to open on, where nothing declared one.
73
+ * The month to open on when `month` is not set.
71
74
  */
72
75
  defaultMonth: string;
73
76
  /**
@@ -111,7 +114,8 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
111
114
  /** The month on show, whoever set it, and `undefined` until somebody has. */
112
115
  private monthState;
113
116
  /**
114
- * The month on show, as `YYYY-MM`. Follows `value`, then the current month.
117
+ * The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
118
+ * then the current month.
115
119
  *
116
120
  * Separate from `value` on purpose, so paging selects nothing and a consumer
117
121
  * can drive the view. Reading gives the month on show; writing sets it, and
@@ -137,7 +141,7 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
137
141
  */
138
142
  previousLabel: string;
139
143
  /**
140
- * Whether the control refuses changes while still submitting its value.
144
+ * Blocks changes to the dates. The value is still submitted with the form.
141
145
  *
142
146
  * **Enforced by refusing every request in one place**, which is the seam this
143
147
  * component already has: `requestValue` is what every path here comes through,
@@ -218,7 +222,7 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
218
222
  connectedCallback(): void;
219
223
  disconnectedCallback(): void;
220
224
  /**
221
- * Whether the form refuses to submit while nothing is chosen.
225
+ * Stops the form from submitting while no date is chosen.
222
226
  */
223
227
  required: boolean;
224
228
  /** Refuses every change while read-only. See `readOnly`. */
@@ -238,7 +242,7 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
238
242
  */
239
243
  step: number;
240
244
  /**
241
- * What a reader is told when a date is required and none is chosen.
245
+ * The validation message for a required date picker with no date chosen.
242
246
  */
243
247
  valueMissingMessage?: string;
244
248
  /**
@@ -4,13 +4,13 @@ import { type TemplateResult } from 'lit';
4
4
  * @summary One label and its value.
5
5
  *
6
6
  * @description
7
- * An element rather than a pair of slots on the list, because a pair is the
8
- * unit a reader hears: the label is the `<dt>` and the value its `<dd>`, and the
9
- * two stay together however the list lays them out.
7
+ * Each pair is its own element: the label is the `<dt>` and the value its
8
+ * `<dd>`, and a screen reader hears them together however the list lays them
9
+ * out.
10
10
  *
11
- * The value is the default slot, since it is what varies and is often more
12
- * than text: a tag, an avatar, a link. The label is text almost every time, so
13
- * it is also a property.
11
+ * The value is the default slot, because it varies and is often more than text,
12
+ * such as a tag, an avatar, or a link. The label is almost always text, so it
13
+ * is also a property.
14
14
  *
15
15
  * @since 0.1.0
16
16
  * @status stable
@@ -24,7 +24,7 @@ import { type TemplateResult } from 'lit';
24
24
  */
25
25
  export declare class HelixHeadlessDescriptionListItem extends HelixElement {
26
26
  /**
27
- * What the value is called, for the common case of plain text.
27
+ * The label, when it is plain text.
28
28
  *
29
29
  * The fallback of the `label` slot, so slotted content replaces it rather than
30
30
  * appearing beside it. The value itself is the default slot: it is the half
@@ -1,24 +1,19 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type TemplateResult } 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
- * "Owner: Ada, Region: us-east, Created: 3 days ago" is the commonest panel in
9
- * any console, and built from layout primitives it is a run of adjacent text:
10
- * nothing tells a screen reader that a label and a value belong together, or
11
- * how many pairs there are. This renders the element the platform has for it,
12
- * a `<dl>`, with each item's label a `<dt>` and its value a `<dd>`.
7
+ * Renders a `<dl>`, with each item's label as a `<dt>` and its value as a
8
+ * `<dd>`, for panels such as "Owner: Ada, Region: us-east, Created: 3 days
9
+ * ago". A screen reader announces which label goes with which value and how
10
+ * many pairs there are.
13
11
  *
14
- * **The items render their own term and description**, and the list takes them
15
- * through its slot. The accessibility tree is built from the flattened tree, so
16
- * the pairs reach it inside the list rather than beside it. Measured in
17
- * Chromium's tree rather than assumed, because a list whose semantics stopped
18
- * at a shadow boundary would look identical on screen: one description list
19
- * holding term and definition pairs, node for node what a plain `<dl>` with the
20
- * same content produces, with a slotted label and with an item drawn as
21
- * `display: contents` alike.
12
+ * **Each item renders its own term and description**, and the list takes the
13
+ * items through its slot. The accessibility tree is built from the flattened
14
+ * tree, so the pairs appear inside the list. Measured in Chromium, the result
15
+ * matches a plain `<dl>` with the same content node for node, both with a
16
+ * slotted label and with an item set to `display: contents`.
22
17
  *
23
18
  * @since 0.1.0
24
19
  * @status stable
@@ -2,20 +2,22 @@ import { CommandController, HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type PropertyValues, type TemplateResult } from 'lit';
3
3
  declare const HelixHeadlessDialog_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & typeof HelixElement;
4
4
  /**
5
- * @summary A modal window, on the platform's own dialog.
5
+ * @summary A modal window built on the native `<dialog>` element.
6
6
  *
7
7
  * @description
8
- * A real `<dialog>` opened with `showModal()`, not a div with a role and a
9
- * hand-built trap. The platform gives four things that are each a day's work to
10
- * reimplement: the top layer, so the dialog is above everything whatever
11
- * `z-index` anyone wrote; a real backdrop; Escape; and inert-behind, so the
12
- * page underneath is unreachable by pointer, keyboard or virtual cursor.
8
+ * Renders a native `<dialog>` opened with `showModal()`. The platform provides:
13
9
  *
14
- * **`open` drives `showModal()`, and every way it can close comes back through
15
- * `requestOpen`.** A native dialog closes from three directions: the property,
16
- * Escape, and a `<form method="dialog">` submit. Left alone, two of them would
17
- * shut the dialog while the consumer's state still said open, which is the bug
18
- * that makes a modal impossible to reopen.
10
+ * - the top layer, so the dialog is above everything whatever the `z-index`
11
+ * - a backdrop
12
+ * - closing with Escape
13
+ * - an inert page behind the dialog, unreachable by pointer, keyboard, or
14
+ * virtual cursor
15
+ *
16
+ * `open` calls `showModal()`, and every way the dialog closes goes through
17
+ * `requestOpen`. A native dialog closes three ways: the property, Escape, and a
18
+ * `<form method="dialog">` submit. Routing all three through `requestOpen`
19
+ * keeps your state in step, so the dialog never closes while your state still
20
+ * says it is open, which would leave it impossible to reopen.
19
21
  *
20
22
  * @since 0.1.0
21
23
  * @status stable
@@ -24,14 +26,14 @@ declare const HelixHeadlessDialog_base: (new (...args: any[]) => import("@fusion
24
26
  * @documentation https://fusion.dev/helix/components/dialog
25
27
  *
26
28
  * @slot - The dialog's content.
27
- * @slot footer - The actions.
29
+ * @slot footer - The dialog's actions.
28
30
  * @slot header - The title, and anything beside it.
29
- * @slot icon - A single mark above the title, for a dialog that warns.
31
+ * @slot icon - An icon above the title, for a warning dialog.
30
32
  *
31
- * @event {Event} close - Relayed, because the platform's own does not escape.
33
+ * @event {Event} close - Sent from the host after the dialog closes, because the native `close` event does not leave the shadow root.
32
34
  * @event {HelixBeforeCloseEvent} helix-before-close - Fired before it closes, and cancelable.
33
35
  * @event {HelixBeforeOpenEvent} helix-before-open - Fired before it opens, and cancelable.
34
- * @event {Event} toggle - Says the state moved, carrying `newState` and `oldState`.
36
+ * @event {Event} toggle - Sent when the dialog opens or closes, with `newState` and `oldState`.
35
37
  *
36
38
  * @csspart dialog - The native dialog element.
37
39
  *
@@ -39,7 +41,7 @@ declare const HelixHeadlessDialog_base: (new (...args: any[]) => import("@fusion
39
41
  */
40
42
  export declare class HelixHeadlessDialog extends HelixHeadlessDialog_base {
41
43
  /**
42
- * Which close requests the browser answers on its own.
44
+ * Which close requests the browser handles on its own.
43
45
  *
44
46
  * `<dialog closedby>`, forwarded, and safe to forward because every path it
45
47
  * opens still comes back through this element: a close request fires `cancel`
@@ -57,7 +59,7 @@ export declare class HelixHeadlessDialog extends HelixHeadlessDialog_base {
57
59
  label: string;
58
60
  protected readonly commands: CommandController;
59
61
  /**
60
- * Whether Escape or a press on the backdrop can close it.
62
+ * Stops Escape and a press on the backdrop from closing the dialog.
61
63
  *
62
64
  * Off for a dialog that must be answered. It does not disable the close
63
65
  * control a consumer slots in: refusing to be dismissed is not the same as
@@ -86,10 +88,11 @@ export declare class HelixHeadlessDialog extends HelixHeadlessDialog_base {
86
88
  private returned;
87
89
  /** The native dialog, or nothing where there is no DOM to hold one. */
88
90
  private get dialog();
89
- /** Moves focus into the dialog and makes the rest of the page inert. */
91
+ /** Opens the dialog, moves focus into it, and makes the rest of the page inert. */
90
92
  show(): void;
91
93
  /**
92
- * Asks to close, which a consumer may refuse.
94
+ * Requests that the dialog close. A `helix-before-close` listener can cancel
95
+ * the request.
93
96
  *
94
97
  * Takes what the dialog closed with, the way `<dialog>.close(value)` does, so
95
98
  * the button that dismissed it can say which one it was. Set before the
@@ -1,18 +1,17 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type PropertyValues, type TemplateResult } from 'lit';
3
3
  /**
4
- * @summary Separates content into groups with a rule.
4
+ * @summary A line that separates content into groups.
5
5
  *
6
6
  * @description
7
- * The separator role lives on the rule inside the shadow root rather than on
8
- * the host. A role does not need to cross the shadow boundary the way an IDREF
9
- * does, and putting it on the rendered element means the semantics are in the
10
- * server's markup with no attribute written during a lifecycle the server never
11
- * runs.
7
+ * The separator role is on the rule inside the shadow root. A role does not
8
+ * need to cross the shadow boundary the way an IDREF does, so it can sit on the
9
+ * rendered element. The semantics are then in the server-rendered markup, with
10
+ * no attribute written by script after the element connects.
12
11
  *
13
12
  * Use `orientation="vertical"` between items on one line, such as inside a
14
- * toolbar. A vertical divider stretches to its flex parent rather than setting
15
- * a height of its own.
13
+ * toolbar. A vertical divider stretches to fit its flex parent and sets no
14
+ * height of its own.
16
15
  *
17
16
  * @since 0.1.0
18
17
  * @status stable
@@ -20,14 +19,14 @@ import { type PropertyValues, type TemplateResult } from 'lit';
20
19
  * @aliases Separator, Rule
21
20
  * @documentation https://fusion.dev/helix/components/divider
22
21
  *
23
- * @slot - Content set into the rule, such as the word between two sections.
22
+ * @slot - Content set into the line, such as a word between two sections.
24
23
  *
25
- * @csspart content - What is set into it.
26
- * @csspart line - The rule itself, or each half of it where something is set in.
24
+ * @csspart content - The content set into the line.
25
+ * @csspart line - The line, or each half of it when content is set into it.
27
26
  */
28
27
  export declare class HelixHeadlessDivider extends HelixElement {
29
28
  /**
30
- * Whether the rule is announced as a separator.
29
+ * Whether screen readers announce the line as a separator.
31
30
  *
32
31
  * Off by default, and out of the accessibility tree. Most rules on a page
33
32
  * separate nothing: they underline a heading or close a section that space
@@ -42,7 +41,7 @@ export declare class HelixHeadlessDivider extends HelixElement {
42
41
  */
43
42
  announced: boolean;
44
43
  /**
45
- * Which way the rule runs.
44
+ * The direction the line runs: `horizontal` or `vertical`.
46
45
  */
47
46
  orientation?: 'horizontal' | 'vertical';
48
47
  /**
@@ -3,18 +3,17 @@ import { nothing, type TemplateResult } from 'lit';
3
3
  import '../../tooltip/index.js';
4
4
  declare const HelixHeadlessDonutChart_base: typeof HelixElement & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinChartSourceInterface);
5
5
  /**
6
- * @summary Parts of a whole as a ring, read from a table.
6
+ * @summary A chart that shows parts of a whole as a ring, read from a table.
7
7
  *
8
8
  * @description
9
- * The chart with the narrowest honest use, so the component is narrow too.
9
+ * A donut chart divides one whole into parts, so the component reads one
10
+ * column.
10
11
  *
11
- * **It reads one column and treats the rows as the parts.** Every other chart
12
- * here takes a column per series; a ring has one whole to divide, so the first
13
- * column of numbers is the series and each row is a slice.
12
+ * **The first column of numbers is the series, and each row is a slice.** Other
13
+ * Helix charts take one column per series.
14
14
  *
15
- * **It refuses negative values rather than drawing them.** An arc for a
16
- * negative number either runs backwards over its neighbors or is silently
17
- * dropped. Those rows are skipped and the total is of what is left.
15
+ * **Negative values are skipped.** An arc cannot show a negative number, so
16
+ * those rows are left out and the total is the sum of the remaining rows.
18
17
  *
19
18
  * @since 0.1.0
20
19
  * @status stable
@@ -22,28 +21,28 @@ declare const HelixHeadlessDonutChart_base: typeof HelixElement & (new (...args:
22
21
  * @aliases Pie Chart, Ring Chart, Share Chart
23
22
  * @documentation https://fusion.dev/helix/components/donut-chart
24
23
  *
25
- * @slot - Goes in the middle of the ring. A total, usually.
24
+ * @slot - Content in the middle of the ring, usually a total.
26
25
  *
27
26
  * @csspart center - The middle of the ring, holding whatever is slotted.
28
27
  * @csspart mark - The invisible point the tooltip is anchored to.
29
28
  * @csspart plot - The drawing.
30
29
  * @csspart segment - One slice.
31
- * @csspart segment-active - The slice under the pointer, beside `segment`.
32
- * @csspart segment-edge - One slice as a closed shape, for a boundary to trace.
30
+ * @csspart segment-active - The slice under the pointer. Set alongside `segment`.
31
+ * @csspart segment-edge - One slice as a closed shape, used to draw its outline.
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 slice'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
  * @csspart track - The ring the slices are drawn on.
49
48
  *
@@ -67,7 +66,7 @@ export declare class HelixHeadlessDonutChart extends HelixHeadlessDonutChart_bas
67
66
  */
68
67
  connectedCallback(): void;
69
68
  /**
70
- * How much is left open in the middle.
69
+ * The size of the hole in the middle of the ring.
71
70
  *
72
71
  * Absent is a ring with room for a total in it. `small` and `large` move the
73
72
  * hole without moving the outer edge, so a chart keeps its footprint.
@@ -5,23 +5,24 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
5
5
  * @summary A panel that slides in from an edge.
6
6
  *
7
7
  * @description
8
- * Takes `MixinControllerOpen`, so `open`, `defaultOpen` and the
9
- * `helix-before-open` and `helix-before-close` requests behave exactly as they
10
- * do on an accordion item, and a consumer already knows the API.
8
+ * Uses `MixinControllerOpen`, so `open`, `defaultOpen`, and the
9
+ * `helix-before-open` and `helix-before-close` events work the same way as on
10
+ * an accordion item.
11
11
  *
12
- * Modal by default, which is three things together and not one: focus is
13
- * trapped inside, Escape and an outside press close it, and the page behind is
14
- * covered. A panel with the look of a modal and none of its behavior is worse
15
- * than an inline one, because it invites the reader to treat it as blocking.
12
+ * The drawer is modal by default, which means three things:
16
13
  *
17
- * Content stays mounted when closed, so it is in the server's markup and can
18
- * animate. A closed `<dialog>` is already out of the tab order and out of the
19
- * accessibility tree, so nothing here writes `inert`. The `role`, the
20
- * `aria-modal` and the scrim come from the element too, and
21
- * `drawer-root.ssr.spec.ts` asserts the panel carries no hand-written `inert`
22
- * and no hand-written `role`.
14
+ * - focus is trapped inside
15
+ * - Escape and a press outside close it
16
+ * - the page behind is covered
23
17
  *
24
- * Opened declaratively with the platform's invoker attributes:
18
+ * Content stays mounted when the drawer is closed, so it is in the server
19
+ * markup and can animate. A closed `<dialog>` is already out of the tab order
20
+ * and the accessibility tree, so the drawer does not write `inert`. The `role`,
21
+ * `aria-modal`, and the scrim also come from the `<dialog>` element.
22
+ * `drawer-root.ssr.spec.ts` checks that the panel has no hand-written `inert`
23
+ * or `role`.
24
+ *
25
+ * Open the drawer declaratively with the platform's invoker attributes:
25
26
  *
26
27
  * ```html
27
28
  * <helix-headless-button commandfor="nav" command="--toggle">Menu</helix-headless-button>
@@ -37,10 +38,10 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
37
38
  * @slot - The drawer's content.
38
39
  * @slot header - Content pinned above the scrolling area.
39
40
  *
40
- * @event {Event} close - Relayed, because the platform's own does not escape.
41
+ * @event {Event} close - Sent from the host after the drawer closes, because the native `close` event does not leave the shadow root.
41
42
  * @event {HelixBeforeCloseEvent} helix-before-close - Fired before the panel closes, and cancelable.
42
- * @event {HelixBeforeOpenEvent} helix-before-open - Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves.
43
- * @event {Event} toggle - Says the state moved, carrying `newState` and `oldState`.
43
+ * @event {HelixBeforeOpenEvent} helix-before-open - Fired before the panel opens, and cancelable. Canceling it keeps the panel closed.
44
+ * @event {Event} toggle - Sent when the drawer opens or closes, with `newState` and `oldState`.
44
45
  *
45
46
  * @csspart content - The scrolling content region.
46
47
  * @csspart header - The header region.
@@ -51,7 +52,7 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
51
52
  export declare class HelixHeadlessDrawer extends HelixHeadlessDrawer_base {
52
53
  protected readonly commands: CommandController;
53
54
  /**
54
- * Which close requests the browser answers on its own.
55
+ * Which close requests the browser handles on its own.
55
56
  *
56
57
  * `<dialog closedby>`, forwarded, and safe to forward because every path it
57
58
  * opens still comes back through this element: a close request fires `cancel`
@@ -1,43 +1,43 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { nothing, type PropertyValues, type TemplateResult } from 'lit';
3
3
  /**
4
- * @summary One row of a drill-down, which may hold a page of its own.
4
+ * @summary One row of a drill-down, which can open a page of its own.
5
5
  *
6
6
  * @description
7
- * A row that opens a page *contains* that page: its rows are this row's own
8
- * children, assigned to the `page` slot. The tree is the structure, so there
9
- * are no ids to wire and a consumer who moves a row has moved its page with it.
7
+ * A row that opens a page contains that page: the page's rows are this row's
8
+ * own children, assigned to the `page` slot. There are no ids to wire, and
9
+ * moving a row moves its page with it.
10
10
  *
11
- * **It renders one of three things**, and which one is the stack's business
12
- * rather than its own. On the page showing, it is a row. Showing its own page,
13
- * it contributes that page's rows and nothing else, because its row belongs to
14
- * the page above. On neither, it renders nothing at all: the rows are in the
15
- * light DOM and come back untouched, so there is no state to keep and nothing
16
- * to hide with an attribute this element would have to write onto itself.
11
+ * What the item renders depends on the stack:
17
12
  *
18
- * Choosing is announced, never applied. The row dispatches and the stack
19
- * decides whether that means drilling in or choosing a command.
13
+ * - On the page that is showing, it renders its row.
14
+ * - When its own page is showing, it renders only that page's rows. Its row
15
+ * belongs to the page above.
16
+ * - Otherwise it renders nothing. The rows stay in the light DOM untouched, so
17
+ * there is no state to keep.
20
18
  *
21
- * **A row that opens a page says so**, with a caret after its words and
22
- * `aria-haspopup`, the way `Menu` marks a row with a submenu: a row that goes
23
- * somewhere and a row that does something otherwise look the same until one is
24
- * pressed. Not on the server, which cannot see the children and so cannot know.
19
+ * Choosing a row dispatches an event, and the stack decides whether that drills
20
+ * in or runs a command.
21
+ *
22
+ * A row that opens a page shows a caret after its text and sets
23
+ * `aria-haspopup`, the same way `Menu` marks a row with a submenu. The server
24
+ * render leaves both out, because the server cannot see the children.
25
25
  *
26
26
  * @since 0.1.0
27
27
  * @status stable
28
28
  * @aliases Panel item, Drill row
29
29
  * @documentation https://fusion.dev/helix/components/drilldown
30
30
  *
31
- * @slot - The words naming this row.
32
- * @slot end - After the words, usually a mark or a count.
33
- * @slot page - The rows of the page this one opens.
34
- * @slot start - Before the words, usually an icon.
31
+ * @slot - The row's label.
32
+ * @slot end - Content after the label, usually an icon or a count.
33
+ * @slot page - The rows of the page this row opens.
34
+ * @slot start - Content before the label, usually an icon.
35
35
  *
36
- * @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable: refusing it takes the decision and nothing moves.
36
+ * @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
37
37
  *
38
38
  * @csspart item - The row itself.
39
- * @csspart label - The words.
40
- * @csspart mark - The caret at the end of a row that opens a page, after the `end` slot. A caret points, so a sheet mirrors it in a right-to-left document.
39
+ * @csspart label - The row's label.
40
+ * @csspart mark - The caret at the end of a row that opens a page, after the `end` slot. The caret points, so a stylesheet mirrors it in a right-to-left document.
41
41
  */
42
42
  export declare class HelixHeadlessDrilldownItem extends HelixElement {
43
43
  /**
@@ -45,7 +45,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
45
45
  */
46
46
  disabled: boolean;
47
47
  /**
48
- * Whether this row holds the region's tab stop. Written by the stack.
48
+ * Whether this row holds the region's tab stop. Set by the drill-down.
49
49
  *
50
50
  * A drill-down keeps one stop and moves within it on the arrows, so every
51
51
  * other row is at `-1`. Leave it off every row, including the first, and
@@ -77,7 +77,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
77
77
  */
78
78
  showingPage: boolean;
79
79
  /**
80
- * Identifies the row to whatever is listening.
80
+ * Identifies the row to your event listeners.
81
81
  */
82
82
  value: string;
83
83
  /**
@@ -112,8 +112,8 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
112
112
  /** Moves focus onto the row itself. */
113
113
  focusItem(): void;
114
114
  /**
115
- * Whether this is the row the set is on, which in a drill-down is where focus
116
- * is.
115
+ * Whether this is the current row, which in a drill-down is the row with
116
+ * focus.
117
117
  *
118
118
  * A radio group's selection is an answer it holds; a page of rows has no
119
119
  * answer, only the row a reader has walked to, so focus is the whole of what
@@ -129,7 +129,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
129
129
  * dereferences what it ran out of.
130
130
  */
131
131
  get selected(): boolean;
132
- /** Announces that this row was chosen. */
132
+ /** Fires `helix-select` for this row. */
133
133
  select(): void;
134
134
  protected render(): TemplateResult | typeof nothing;
135
135
  }