@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,16 +2,16 @@ import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type PropertyValues, type TemplateResult } from 'lit';
3
3
  declare const HelixHeadlessTree_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerActiveInterface) & typeof HelixElement;
4
4
  /**
5
- * @summary A tree of items, navigable entirely from the keyboard.
5
+ * @summary A hierarchy of items, with branches that open and close.
6
6
  *
7
7
  * @description
8
- * Focus is a single tab stop, moved with the arrow keys, which is what the tree
9
- * pattern requires: a sidebar of forty items should not be forty presses of Tab
10
- * to get past. The tree owns which item is the tab stop and moves it as focus
11
- * moves, so the browser's own focus order is never fought with.
8
+ * The tree is a single tab stop, and arrow keys move focus between items, as
9
+ * the tree pattern requires, so Tab moves past a long sidebar in one press. The
10
+ * tree moves the tab stop to the focused item, so the browser's focus order
11
+ * stays intact.
12
12
  *
13
13
  * Items are found with `instanceof`, never by tag name, so the headless tier
14
- * does not learn about the styled one.
14
+ * does not depend on the styled one.
15
15
  *
16
16
  * @since 0.1.0
17
17
  * @status stable
@@ -21,13 +21,13 @@ declare const HelixHeadlessTree_base: (new (...args: any[]) => import("@fusion.d
21
21
  *
22
22
  * @slot - The tree's items.
23
23
  *
24
- * @event {HelixActivateEvent} helix-activate - Fired once the current one has moved, so the element already holds it.
25
- * @event {HelixBeforeActivateEvent} helix-before-activate - Fired before the current node moves, and cancelable. The only way to refuse one.
26
- * @event {HelixSelectEvent} helix-select - Fired when an item is chosen. Dispatched by the item and listened for here, because the tree is what a consumer holds a reference to. Cancelable: refusing it takes the decision and nothing moves.
24
+ * @event {HelixActivateEvent} helix-activate - Fired after the current node changes, so the tree already holds the new one.
25
+ * @event {HelixBeforeActivateEvent} helix-before-activate - Fired before the current node changes, and cancelable. Canceling it is the only way to stop the change.
26
+ * @event {HelixSelectEvent} helix-select - Fired when an item is chosen. The item sends it, and you can listen for it on the tree. Cancelable: canceling it changes nothing.
27
27
  *
28
28
  * @csspart empty - Shown when there are no rows to show.
29
- * @csspart live - The empty and loading lines again, in a region a screen reader hears when they change. Visually hidden in the styled tier.
30
- * @csspart loading - Shown while the rows are still on their way.
29
+ * @csspart live - A copy of the empty and loading messages, in a live region that announces them when they change. Visually hidden in the styled tier.
30
+ * @csspart loading - Shown while the rows load.
31
31
  * @csspart tree - The tree container.
32
32
  */
33
33
  export declare class HelixHeadlessTree extends HelixHeadlessTree_base {
@@ -36,7 +36,8 @@ export declare class HelixHeadlessTree extends HelixHeadlessTree_base {
36
36
  */
37
37
  label: string;
38
38
  /**
39
- * What a step inward means: nothing, a rank, or a heading over what follows.
39
+ * What a deeper level means: `peer` for no change, `subordinate` for a lower
40
+ * rank, or `heading` for a parent that heads the items under it.
40
41
  *
41
42
  * All three answers are right, for different trees, which is why this is
42
43
  * asked rather than decided. `peer` is a file explorer: every row is the same
@@ -1,27 +1,26 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { type TemplateResult } from 'lit';
3
3
  /**
4
- * @summary Which way a measurement moved, and whether that is good news.
4
+ * @summary An indicator that shows which way a measurement moved, and whether the change is good.
5
5
  *
6
6
  * @description
7
- * Three parts: a direction that is up, down or neutral, the metric that moved,
8
- * and a label saying over what. The arrow carries the direction and its color
9
- * carries the judgment, and the two are separate properties because they are
10
- * separate facts.
7
+ * A trend has three parts: a direction of up, down, or neutral, the metric that
8
+ * moved, and a label for the period it moved over. The arrow shows the
9
+ * direction and its color shows whether the change is good. Direction and
10
+ * judgment are separate properties because they are separate facts.
11
11
  *
12
- * **`good` is absent by default, so an unjudged trend is gray.** Every
13
- * dashboard convention says up is green, and for churn, latency, error rate,
14
- * cost and bounce rate that convention is a lie told in the most legible color
15
- * on the page. State the metric's polarity once and the component does the part
16
- * that varies.
12
+ * `good` is unset by default, so a trend with no judgment is gray. For churn,
13
+ * latency, error rate, cost, and bounce rate, up is bad. Set the metric's
14
+ * polarity once with `good`, and the component picks the color from the
15
+ * direction.
17
16
  *
18
- * The direction is also written as a word, because a colored arrow says
19
- * nothing to a reader who is not looking at it. `part="direction"` is what the
20
- * styled tier clips out of sight and leaves in the accessibility tree.
17
+ * The direction is also written as a word, so a screen reader reads it. The
18
+ * styled tier hides `part="direction"` visually and keeps it in the
19
+ * accessibility tree.
21
20
  *
22
- * Both the metric and the label are bare slots. An element whose only job is to
23
- * assign itself a slot on connect gives its own host an attribute after
24
- * upgrade, which a React consumer's server markup never had.
21
+ * The metric and the label are bare slots. An element that assigned its own
22
+ * slot on connect would add an attribute to its host after upgrade, which the
23
+ * React server markup did not have.
25
24
  *
26
25
  * @since 0.1.0
27
26
  * @status stable
@@ -30,9 +29,9 @@ import { type TemplateResult } from 'lit';
30
29
  * @documentation https://fusion.dev/helix/components/trend
31
30
  *
32
31
  * @slot - The metric that moved.
33
- * @slot label - What it moved over.
32
+ * @slot label - The period the metric moved over.
34
33
  *
35
- * @csspart direction - The direction as a word, for readers who are not looking.
34
+ * @csspart direction - The direction as a word, for people who cannot see the arrow.
36
35
  * @csspart icon - The arrow.
37
36
  */
38
37
  export declare class HelixHeadlessTrend extends HelixElement {
@@ -48,7 +47,7 @@ export declare class HelixHeadlessTrend extends HelixElement {
48
47
  */
49
48
  direction?: 'down' | 'neutral' | 'up';
50
49
  /**
51
- * Which direction is the improvement, for this metric.
50
+ * Which direction counts as an improvement for this metric.
52
51
  *
53
52
  * Absent states the movement without judging it, which is the honest default:
54
53
  * revenue up is good news and latency up is bad news, and only the consumer
@@ -2,34 +2,32 @@ import { HelixElement } from '@fusion.dev/helix-core';
2
2
  import { nothing, type PropertyValues, type TemplateResult } from 'lit';
3
3
  import '../../menu/index.js';
4
4
  /**
5
- * @summary Plays a video, with controls this library draws rather than the
6
- * browser's.
5
+ * @summary A video player with controls drawn by Helix.
7
6
  *
8
7
  * @description
9
- * **The picture is a real `<video>`.** Decoding, buffering, captions, Picture
10
- * in Picture, AirPlay and whatever codecs a device has are the platform's. What
11
- * is replaced is the control bar, which is the one part that cannot be styled.
8
+ * The picture is a native `<video>`, so decoding, buffering, captions, Picture
9
+ * in Picture, AirPlay, and codecs come from the platform. The component
10
+ * replaces the control bar, because the native bar cannot be styled.
12
11
  *
13
- * **Every control is a real control.** The scrubber and the volume are
14
- * `<input type="range">`, so arrow keys, Home and End, the platform's touch
15
- * target and its screen reader announcement all come for free.
12
+ * The scrubber and the volume are `<input type="range">` elements, so arrow
13
+ * keys, Home and End, touch targets, and screen reader announcements work as
14
+ * they do natively.
16
15
  *
17
- * **Native controls are the fallback, not the default.** Where a consumer sets
18
- * `controls` the browser's bar is used and this one is not drawn, and the keys
19
- * below are not bound: two handlers on one press is a video that seeks twice.
16
+ * When you set `controls`, the browser's control bar is used, the Helix bar is
17
+ * not drawn, and the keys below are not bound, so a key press does not seek
18
+ * twice.
20
19
  *
21
- * The keys are the ones every player uses: Space and `k` to play or pause, the
22
- * arrows to seek and to change volume, `m` to mute, `f` for fullscreen. They
23
- * are bound on this element rather than on the document, because a video is not
24
- * a palette.
20
+ * The keys match other players, and they are bound on the element only:
21
+ * - Space and `k` play or pause.
22
+ * - The arrow keys seek and change the volume.
23
+ * - `m` mutes.
24
+ * - `f` toggles fullscreen.
25
25
  *
26
- * **`<source>` and `<track>` are copied into the video, never slotted into it.**
27
- * A media element runs resource selection over its own child *nodes*, and a slot
28
- * is one node, so slotted sources reach it as nothing: no text tracks, no
29
- * current source, `readyState` zero. A video given sources that way does not
30
- * merely lack captions, it does not play. They are copied rather than moved,
31
- * because the consumer's light DOM is theirs, and rebuilt whenever the slot
32
- * changes.
26
+ * `<source>` and `<track>` children are copied into the video. A media element
27
+ * selects resources from its own child nodes, and a slot is one node, so
28
+ * slotted sources would give the video no text tracks, no current source, and a
29
+ * `readyState` of zero, and it would not play. They are copied so your light
30
+ * DOM stays intact, and are copied again whenever the slot changes.
33
31
  *
34
32
  * @since 0.1.0
35
33
  * @status stable
@@ -38,71 +36,69 @@ import '../../menu/index.js';
38
36
  * @documentation https://fusion.dev/helix/components/video
39
37
  *
40
38
  * @slot - `<source>` and `<track>` elements, which are copied into the video.
41
- * @slot controls - Added to the control bar, before fullscreen.
42
- * @slot header - Top left over the frame: a heading, and a way out of a set beside it.
39
+ * @slot controls - Extra controls, added to the control bar before the fullscreen button.
40
+ * @slot header - Content over the top left of the picture, such as a heading and a back button.
43
41
  * @slot poster - Shown over the video until it starts.
44
42
  *
45
- * @event {Event} ended - Relayed, because it does not cross a shadow boundary.
46
- * @event {HelixNextEvent} helix-next - Fired when the reader asks for the next item.
47
- * @event {HelixPreviousEvent} helix-previous - Fired when they ask for the previous one.
48
- * @event {Event} pause - Relayed for the same reason.
49
- * @event {Event} play - Relayed for the same reason.
43
+ * @event {Event} ended - The video reached its end. Relayed from the inner video, since the native event does not cross the shadow boundary.
44
+ * @event {HelixNextEvent} helix-next - The next video was requested. Load it in response.
45
+ * @event {HelixPreviousEvent} helix-previous - The previous video was requested. Load it in response.
46
+ * @event {Event} pause - Playback paused. Relayed from the inner video.
47
+ * @event {Event} play - Playback started. Relayed from the inner video.
50
48
  *
51
- * @csspart captions - Subtitles on and off.
52
- * @csspart captions-menu - The language menu, where there is more than one.
49
+ * @csspart captions - The button that turns captions on and off.
50
+ * @csspart captions-menu - The menu of caption languages, when the video has more than one track.
53
51
  * @csspart captions-menu-back - The control that returns from a submenu.
54
52
  * @csspart captions-menu-back-mark - The glyph on the back control of a submenu.
55
- * @csspart captions-menu-empty - Shown when there are no items to show.
53
+ * @csspart captions-menu-empty - The text shown when the menu has no items.
56
54
  * @csspart captions-menu-header - The bar above a submenu, holding the way back and its name.
57
- * @csspart captions-menu-live - The inner menu's `live`, the region a screen reader hears its empty and loading lines from.
58
- * @csspart captions-menu-loading - Shown while the items are still on their way.
55
+ * @csspart captions-menu-live - The inner menu's `live` part, a live region that repeats the empty and loading text for screen readers.
56
+ * @csspart captions-menu-loading - The text shown while the items are loading.
59
57
  * @csspart captions-menu-surface - The floating panel the menu is drawn on.
60
58
  * @csspart captions-menu-title - The name of the submenu that is showing.
61
- * @csspart controls - The bar along the bottom.
62
- * @csspart cue - The caption on screen now, drawn by this element.
63
- * @csspart download - Saves the file, where it was asked for.
64
- * @csspart entry - One row in a menu this player opens.
59
+ * @csspart controls - The control bar along the bottom.
60
+ * @csspart cue - The caption currently on screen, drawn by this element.
61
+ * @csspart download - The button that downloads the file, when `extra-controls` includes it.
62
+ * @csspart entry - One row in a menu that the player opens.
65
63
  * @csspart entry-item - The row, which is an `<a>` where `href` is set.
66
- * @csspart entry-mark - The trailing mark: a tick when checked, a caret when it opens.
67
- * @csspart entry-start - The leading column, which is a slot and is always there.
68
- * @csspart failure - What is said when the source will not play.
69
- * @csspart forward - The control that goes on ten seconds.
70
- * @csspart fullscreen - The whole screen, and back.
71
- * @csspart header - The region top left, for a heading and a way out of a set.
72
- * @csspart live - What the loading line says, in a region a screen reader hears when it changes. Visually hidden in the styled tier.
73
- * @csspart loading - What is said while the picture waits for more of itself.
74
- * The part of that which spins is drawn on it, which is `::part(loading)::before`
75
- * from a consumer's sheet: this tier ships no CSS, so a box it renders for one to
76
- * paint is an empty child costing whatever the consumer's own layout charges for
77
- * a child. `ListItem` measured that.
78
- * @csspart more - The button that opens it.
79
- * @csspart mute - Sound on and off.
80
- * @csspart next - Asks for the next item, where it was asked for.
81
- * @csspart overflow - The menu holding the controls kept off the bar.
64
+ * @csspart entry-mark - The trailing mark: a check mark when the row is checked, or a caret when it opens a submenu.
65
+ * @csspart entry-start - The leading column that holds the `start` slot. It is always rendered.
66
+ * @csspart failure - The message shown when the source cannot be played.
67
+ * @csspart forward - The button that skips forward ten seconds.
68
+ * @csspart fullscreen - The button that enters and leaves fullscreen.
69
+ * @csspart header - The region at the top left that holds the `header` slot.
70
+ * @csspart live - A live region that repeats the loading text, so screen readers announce it when it changes. Visually hidden in the styled tier.
71
+ * @csspart loading - The text shown while the video waits for more data. Draw the spinner
72
+ * with `::part(loading)::before` in your stylesheet. This tier ships no CSS and renders
73
+ * no extra box for it.
74
+ * @csspart more - The button that opens the `overflow` menu.
75
+ * @csspart mute - The button that turns sound on and off.
76
+ * @csspart next - The button that requests the next video, when `extra-controls` includes it.
77
+ * @csspart overflow - The menu that holds the controls kept off the bar.
82
78
  * @csspart overflow-back - The control that returns from a submenu.
83
79
  * @csspart overflow-back-mark - The glyph on the back control of a submenu.
84
- * @csspart overflow-empty - Shown when there are no items to show.
80
+ * @csspart overflow-empty - The text shown when the menu has no items.
85
81
  * @csspart overflow-header - The bar above a submenu, holding the way back and its name.
86
- * @csspart overflow-live - The inner menu's `live`, the region a screen reader hears its empty and loading lines from.
87
- * @csspart overflow-loading - Shown while the items are still on their way.
82
+ * @csspart overflow-live - The inner menu's `live` part, a live region that repeats the empty and loading text for screen readers.
83
+ * @csspart overflow-loading - The text shown while the items are loading.
88
84
  * @csspart overflow-surface - The floating panel the menu is drawn on.
89
85
  * @csspart overflow-title - The name of the submenu that is showing.
90
- * @csspart pip - Picture in picture, where it was asked for and exists.
91
- * @csspart play - Play and pause.
92
- * @csspart poster - What covers it before it plays.
93
- * @csspart previous - Asks for the previous one.
94
- * @csspart remote - Play on another device, where one is available.
86
+ * @csspart pip - The picture-in-picture button, when `extra-controls` includes it and the browser supports it.
87
+ * @csspart play - The button that plays and pauses.
88
+ * @csspart poster - The poster that covers the video before it plays.
89
+ * @csspart previous - The button that requests the previous video, when `extra-controls` includes it.
90
+ * @csspart remote - The button that plays the video on another device, when one is available.
95
91
  * @csspart remote-pressed - The remote control while the picture is on another device, beside `remote`.
96
- * @csspart rewind - The control that goes back ten seconds.
97
- * @csspart scrubber - Where it is, and where to go.
98
- * @csspart sound - The speaker and its level, which are one control.
99
- * @csspart speed - Playback speed, where it was asked for.
92
+ * @csspart rewind - The button that skips back ten seconds.
93
+ * @csspart scrubber - The slider that shows the position and moves playback to a new one.
94
+ * @csspart sound - The mute button and the volume slider, grouped as one control.
95
+ * @csspart speed - The playback speed control, when `extra-controls` includes it.
100
96
  * @csspart stage - The box holding the picture and its controls, and the focus
101
97
  * target the keys are bound to.
102
- * @csspart start - The mark over the picture before anything has played.
98
+ * @csspart start - The large play button over the picture, shown while the video is not playing.
103
99
  * @csspart time - The position and the duration.
104
100
  * @csspart video - The video itself.
105
- * @csspart volume - How loud.
101
+ * @csspart volume - The volume slider.
106
102
  *
107
103
  * @cssproperty --video-intrinsic-ratio - The media's own aspect ratio, once it is known. `--video-aspect-ratio` overrides it.
108
104
  * @cssproperty --video-level - The current volume, 0 to 1.
@@ -110,7 +106,8 @@ import '../../menu/index.js';
110
106
  */
111
107
  export declare class HelixHeadlessVideo extends HelixElement {
112
108
  /**
113
- * Whether it starts on its own, which a browser only allows while silent.
109
+ * Whether the video starts playing on its own. Browsers allow this only while
110
+ * it is muted.
114
111
  *
115
112
  * Forwarded rather than acted on. Whether an unprompted play is permitted is
116
113
  * the browser's policy and not this element's, and `play()` already swallows
@@ -119,7 +116,8 @@ export declare class HelixHeadlessVideo extends HelixElement {
119
116
  */
120
117
  autoplay: boolean;
121
118
  /**
122
- * What the captions control is called where the video has one track, which it switches on and off.
119
+ * The name of the captions control when the video has one track. The control
120
+ * turns that track on and off.
123
121
  *
124
122
  * **Every word this player speaks is a property**, so a page in another
125
123
  * language hears its own: the play, pause, loading and error labels were,
@@ -127,11 +125,13 @@ export declare class HelixHeadlessVideo extends HelixElement {
127
125
  */
128
126
  captionsLabel: string;
129
127
  /**
130
- * The row that turns captions off, where the video has several tracks to choose from.
128
+ * The name of the row that turns captions off, when the video has several
129
+ * tracks.
131
130
  */
132
131
  captionsOffLabel: string;
133
132
  /**
134
- * Whether the browser draws the controls instead of this element.
133
+ * Whether the browser draws its native controls. When set, this element draws
134
+ * no controls of its own.
135
135
  *
136
136
  * A fallback rather than a default. Two bars over one video is worse than
137
137
  * either alone, so this one is not drawn at all when it is set.
@@ -143,7 +143,7 @@ export declare class HelixHeadlessVideo extends HelixElement {
143
143
  */
144
144
  crossOrigin: 'anonymous' | 'use-credentials' | null;
145
145
  /**
146
- * Whether it *starts* silent, which is what an autoplaying video must do.
146
+ * Whether the video starts muted, which an autoplaying video must do.
147
147
  *
148
148
  * **Named for the platform's split, which is real.** The `muted` content
149
149
  * attribute reflects to `defaultMuted`; the `muted` property is live state a
@@ -154,11 +154,12 @@ export declare class HelixHeadlessVideo extends HelixElement {
154
154
  */
155
155
  defaultMuted: boolean;
156
156
  /**
157
- * Whether the browser may offer picture in picture.
157
+ * Whether picture in picture is turned off, so the browser does not offer it.
158
158
  */
159
159
  disablePictureInPicture: boolean;
160
160
  /**
161
- * Whether the browser may offer playback on a remote device.
161
+ * Whether remote playback is turned off, so the browser does not offer to
162
+ * play on another device.
162
163
  */
163
164
  disableRemotePlayback: boolean;
164
165
  /**
@@ -166,11 +167,11 @@ export declare class HelixHeadlessVideo extends HelixElement {
166
167
  */
167
168
  downloadLabel: string;
168
169
  /**
169
- * And what they are told when it will not play at all.
170
+ * The message shown when the video cannot be played.
170
171
  */
171
172
  errorLabel: string;
172
173
  /**
173
- * Controls beyond the ones every player has, named in the order they appear.
174
+ * Extra controls to add to the bar, named in the order they appear.
174
175
  *
175
176
  * A list rather than a property apiece. A bar is a row with a budget, and a
176
177
  * boolean per feature invites a consumer to switch all of them on: naming
@@ -214,7 +215,8 @@ export declare class HelixHeadlessVideo extends HelixElement {
214
215
  */
215
216
  fullscreenLabel: string;
216
217
  /**
217
- * How long the bar waits after the pointer stops before it goes, in ms.
218
+ * How long the control bar stays after the pointer stops moving, in
219
+ * milliseconds.
218
220
  *
219
221
  * A wait rather than leaving with the pointer, or a reader moving across the
220
222
  * picture to reach a control watches the bar vanish under them. Zero turns
@@ -226,15 +228,15 @@ export declare class HelixHeadlessVideo extends HelixElement {
226
228
  */
227
229
  idleDelay: number;
228
230
  /**
229
- * Accessible name, since a video is not described by its filename.
231
+ * Accessible name for the video, which its filename does not provide.
230
232
  */
231
233
  label: string;
232
234
  /**
233
- * What a reader is told while the picture is waiting for more of itself.
235
+ * The text announced while the video waits for more data.
234
236
  */
235
237
  loadingLabel: string;
236
238
  /**
237
- * Whether it starts again at the end.
239
+ * Whether the video starts again at the end.
238
240
  */
239
241
  loop: boolean;
240
242
  /**
@@ -242,7 +244,8 @@ export declare class HelixHeadlessVideo extends HelixElement {
242
244
  */
243
245
  moreLabel: string;
244
246
  /**
245
- * What the control that silences the video is called, pressed while it is silent.
247
+ * The name of the mute control. The control shows as pressed while the video
248
+ * is muted.
246
249
  */
247
250
  muteLabel: string;
248
251
  /**
@@ -250,8 +253,8 @@ export declare class HelixHeadlessVideo extends HelixElement {
250
253
  */
251
254
  nextLabel: string;
252
255
  /**
253
- * Controls that go behind one button instead of onto the bar, named the same
254
- * way.
256
+ * Controls to place in a menu behind one button, named the same way as
257
+ * `extra-controls`.
255
258
  *
256
259
  * **Named rather than measured, and the reason is that a width cannot answer
257
260
  * this.** A media query asks about the window, and the bar's problem is its
@@ -268,7 +271,7 @@ export declare class HelixHeadlessVideo extends HelixElement {
268
271
  */
269
272
  overflowControls: string;
270
273
  /**
271
- * And while it would stop it.
274
+ * The name of the play control while pressing it would pause the video.
272
275
  */
273
276
  pauseLabel: string;
274
277
  /**
@@ -280,19 +283,19 @@ export declare class HelixHeadlessVideo extends HelixElement {
280
283
  */
281
284
  pipLabel: string;
282
285
  /**
283
- * What the play control is called while it would start the video.
286
+ * The name of the play control while pressing it would start the video.
284
287
  */
285
288
  playLabel: string;
286
289
  /**
287
- * Whether it plays where it sits rather than taking over the screen.
290
+ * Whether the video plays in place, inside the page.
288
291
  */
289
292
  playsInline: boolean;
290
293
  /**
291
- * A still shown before it plays, which the platform draws itself.
294
+ * An image shown before the video plays, drawn by the browser.
292
295
  */
293
296
  poster: string;
294
297
  /**
295
- * How much to fetch before anything is asked for.
298
+ * How much of the video to load before playback is requested.
296
299
  */
297
300
  preload: 'auto' | 'metadata' | 'none';
298
301
  /**
@@ -320,11 +323,12 @@ export declare class HelixHeadlessVideo extends HelixElement {
320
323
  */
321
324
  speeds: string;
322
325
  /**
323
- * Where the video is, for the common case of one file.
326
+ * The URL of the video, when there is one file.
324
327
  */
325
328
  src: string;
326
329
  /**
327
- * The big mark over the picture whenever it is not playing, or `none`.
330
+ * The large play button over the picture while the video is not playing. Set
331
+ * `none` to hide it.
328
332
  *
329
333
  * **On unless it is turned off, because a stopped video has nothing else.**
330
334
  * Measured on the bar as it was: the play glyph is 16 by 16 in a 24 by 24
@@ -441,7 +445,7 @@ export declare class HelixHeadlessVideo extends HelixElement {
441
445
  */
442
446
  private media;
443
447
  /**
444
- * The media's own state, under the platform's own names.
448
+ * The URL of the source the video is playing.
445
449
  *
446
450
  * **Published because there is no other way in.** The `<video>` is inside
447
451
  * this shadow root and `querySelector` does not cross it, so a consumer
@@ -469,29 +473,29 @@ export declare class HelixHeadlessVideo extends HelixElement {
469
473
  */
470
474
  get currentTime(): number;
471
475
  set currentTime(seconds: number);
472
- /** The rate playback returns to, which `defaultPlaybackRate` names natively. */
476
+ /** The playback rate the video returns to by default. */
473
477
  get defaultPlaybackRate(): number;
474
478
  set defaultPlaybackRate(rate: number);
475
479
  /** How long the media runs, in seconds, and `NaN` until that is known. */
476
480
  get duration(): number;
477
481
  /** Whether playback has run off the end. */
478
482
  get ended(): boolean;
479
- /** Whether playback is stopped, which is the resting state and not an error. */
483
+ /** Whether playback is paused, which is the resting state. */
480
484
  get paused(): boolean;
481
- /** How fast it plays, where 1 is the recorded speed. */
485
+ /** How fast the video plays, where 1 is the recorded speed. */
482
486
  get playbackRate(): number;
483
487
  set playbackRate(rate: number);
484
488
  /** Whether pitch is held steady when the rate changes. */
485
489
  get preservesPitch(): boolean;
486
490
  set preservesPitch(preserve: boolean);
487
- /** Whether it is currently moving to a new position. */
491
+ /** Whether the video is moving to a new position. */
488
492
  get seeking(): boolean;
489
493
  /** The media's own height in pixels, and zero until the metadata has loaded. */
490
494
  get videoHeight(): number;
491
495
  /** The media's own width in pixels, and zero until the metadata has loaded. */
492
496
  get videoWidth(): number;
493
497
  /**
494
- * Whether there is sound, now, which a reader's click moves.
498
+ * Whether the video is muted right now. The mute control changes it.
495
499
  *
496
500
  * The live half of the pair above. Writing mutes or unmutes the media itself
497
501
  * rather than the attribute, which is what the platform does and what the
@@ -499,12 +503,12 @@ export declare class HelixHeadlessVideo extends HelixElement {
499
503
  */
500
504
  get muted(): boolean;
501
505
  set muted(quiet: boolean);
502
- /** How loud it plays, 0 to 1. */
506
+ /** The volume, from 0 to 1. */
503
507
  get volume(): number;
504
508
  set volume(level: number);
505
509
  private get video();
506
510
  /**
507
- * Starts playing, where the platform allows it.
511
+ * Starts playback, if the browser allows it.
508
512
  *
509
513
  * The rejection is swallowed on purpose: a browser refuses `play()` when
510
514
  * nothing the reader did asked for it, and that is a policy answer rather than
@@ -512,9 +516,12 @@ export declare class HelixHeadlessVideo extends HelixElement {
512
516
  * control, which is the correct thing to be looking at.
513
517
  */
514
518
  play(): void;
515
- /** Stops, leaving the frame up. */
519
+ /** Pauses playback and leaves the current frame showing. */
516
520
  pause(): void;
517
- /** Toggles playback, which is what every key and the button both come to. */
521
+ /**
522
+ * Plays the video if it is paused, and pauses it if it is playing. The play
523
+ * button and the play keys call this.
524
+ */
518
525
  toggle(): void;
519
526
  /** Moves to a point in seconds, clamped to what exists. */
520
527
  seek(seconds: number): void;