@fusion.dev/helix-headless 0.142.0 → 0.143.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 (217) hide show
  1. package/custom-elements.json +16710 -707
  2. package/dist/accordion/item/accordion-item.d.ts +38 -2
  3. package/dist/accordion/item/accordion-item.js +38 -6
  4. package/dist/accordion/root/accordion-root.d.ts +23 -1
  5. package/dist/accordion/root/accordion-root.js +39 -3
  6. package/dist/announcement/root/announcement-root.d.ts +11 -7
  7. package/dist/announcement/root/announcement-root.js +1 -1
  8. package/dist/app-header/root/app-header-root.d.ts +21 -0
  9. package/dist/app-header/root/app-header-root.js +31 -5
  10. package/dist/area-chart/root/area-chart-root.js +16 -5
  11. package/dist/avatar/group/avatar-group.d.ts +24 -3
  12. package/dist/avatar/group/avatar-group.js +34 -2
  13. package/dist/avatar/root/avatar-root.d.ts +3 -1
  14. package/dist/avatar/root/avatar-root.js +8 -1
  15. package/dist/badge/root/badge-root.d.ts +8 -0
  16. package/dist/bar-chart/root/bar-chart-root.d.ts +19 -3
  17. package/dist/bar-chart/root/bar-chart-root.js +43 -13
  18. package/dist/blockquote/root/blockquote-root.d.ts +12 -7
  19. package/dist/blockquote/root/blockquote-root.js +6 -4
  20. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +9 -3
  21. package/dist/breadcrumbs/root/breadcrumbs-root.js +9 -1
  22. package/dist/button/root/button-root.d.ts +37 -0
  23. package/dist/button/root/button-root.js +44 -0
  24. package/dist/callout/root/callout-root.d.ts +14 -5
  25. package/dist/callout/root/callout-root.js +11 -3
  26. package/dist/canvas/root/canvas-root.d.ts +1 -0
  27. package/dist/canvas/root/canvas-root.js +10 -1
  28. package/dist/carousel/root/carousel-root.d.ts +47 -5
  29. package/dist/carousel/root/carousel-root.js +53 -21
  30. package/dist/chat/composer/chat-composer.d.ts +13 -11
  31. package/dist/chat/composer/chat-composer.js +6 -12
  32. package/dist/chat/message/chat-message.js +8 -1
  33. package/dist/chat/root/chat-root.d.ts +1 -0
  34. package/dist/chat/root/chat-root.js +2 -1
  35. package/dist/checkbox/root/checkbox-root.d.ts +7 -0
  36. package/dist/checkbox/root/checkbox-root.js +7 -3
  37. package/dist/checkbox-group/root/checkbox-group-root.d.ts +65 -32
  38. package/dist/checkbox-group/root/checkbox-group-root.js +85 -37
  39. package/dist/code/root/code-root.d.ts +1 -1
  40. package/dist/code-block/root/code-block-root.d.ts +19 -0
  41. package/dist/code-block/root/code-block-root.js +21 -1
  42. package/dist/color-input/root/color-input-root.d.ts +26 -1
  43. package/dist/color-input/root/color-input-root.js +32 -3
  44. package/dist/color-picker/root/color-picker-root.d.ts +37 -7
  45. package/dist/color-picker/root/color-picker-root.js +83 -6
  46. package/dist/combobox/root/combobox-root.d.ts +90 -2
  47. package/dist/combobox/root/combobox-root.js +160 -19
  48. package/dist/command/root/command-root.d.ts +17 -6
  49. package/dist/command/root/command-root.js +12 -1
  50. package/dist/copy-button/root/copy-button-root.d.ts +21 -6
  51. package/dist/copy-button/root/copy-button-root.js +11 -1
  52. package/dist/data-table/root/data-table-root.d.ts +164 -10
  53. package/dist/data-table/root/data-table-root.js +488 -57
  54. package/dist/date-input/root/date-input-root.d.ts +53 -8
  55. package/dist/date-input/root/date-input-root.js +70 -18
  56. package/dist/date-picker/root/date-picker-root.d.ts +84 -17
  57. package/dist/date-picker/root/date-picker-root.js +125 -20
  58. package/dist/dialog/root/dialog-root.d.ts +38 -10
  59. package/dist/dialog/root/dialog-root.js +55 -2
  60. package/dist/donut-chart/root/donut-chart-root.d.ts +39 -15
  61. package/dist/donut-chart/root/donut-chart-root.js +30 -10
  62. package/dist/drawer/root/drawer-root.d.ts +32 -7
  63. package/dist/drawer/root/drawer-root.js +50 -5
  64. package/dist/drilldown/item/drilldown-item.d.ts +16 -13
  65. package/dist/drilldown/item/drilldown-item.js +6 -2
  66. package/dist/drilldown/root/drilldown-root.d.ts +21 -5
  67. package/dist/drilldown/root/drilldown-root.js +26 -10
  68. package/dist/element-events.generated.js +35 -9
  69. package/dist/file-input/root/file-input-root.d.ts +18 -1
  70. package/dist/file-input/root/file-input-root.js +34 -8
  71. package/dist/filter-input/menu/filter-menu.d.ts +9 -0
  72. package/dist/filter-input/menu/filter-menu.js +8 -0
  73. package/dist/filter-input/root/filter-input-root.d.ts +5 -2
  74. package/dist/filter-input/root/filter-input-root.js +22 -7
  75. package/dist/format-date/root/format-date-root.d.ts +11 -3
  76. package/dist/format-date/root/format-date-root.js +26 -5
  77. package/dist/graph/root/graph-root.d.ts +24 -3
  78. package/dist/graph/root/graph-root.js +66 -12
  79. package/dist/heatmap/root/buckets.d.ts +2 -1
  80. package/dist/heatmap/root/buckets.js +5 -1
  81. package/dist/heatmap/root/heatmap-root.d.ts +27 -6
  82. package/dist/heatmap/root/heatmap-root.js +23 -6
  83. package/dist/icon/root/icon-root.d.ts +24 -3
  84. package/dist/icon/root/icon-root.js +34 -1
  85. package/dist/icon-button/root/icon-button-root.d.ts +1 -1
  86. package/dist/image/root/image-root.d.ts +9 -2
  87. package/dist/image/root/image-root.js +8 -2
  88. package/dist/input/root/input-root.d.ts +51 -9
  89. package/dist/input/root/input-root.js +46 -5
  90. package/dist/kbd/root/kbd-root.d.ts +12 -4
  91. package/dist/kbd/root/kbd-root.js +10 -11
  92. package/dist/legend/root/legend-root.d.ts +7 -0
  93. package/dist/legend/root/legend-root.js +7 -2
  94. package/dist/lightbox/item/lightbox-item.d.ts +2 -1
  95. package/dist/lightbox/root/lightbox-root.d.ts +16 -5
  96. package/dist/lightbox/root/lightbox-root.js +24 -3
  97. package/dist/line-chart/root/line-chart-root.d.ts +19 -2
  98. package/dist/line-chart/root/line-chart-root.js +40 -13
  99. package/dist/list/item/list-item.d.ts +11 -5
  100. package/dist/list/item/list-item.js +5 -6
  101. package/dist/listbox/root/listbox-root.d.ts +111 -2
  102. package/dist/listbox/root/listbox-root.js +144 -16
  103. package/dist/map/root/map-root.d.ts +19 -4
  104. package/dist/map/root/map-root.js +36 -7
  105. package/dist/megamenu/root/megamenu-root.d.ts +10 -1
  106. package/dist/megamenu/root/megamenu-root.js +10 -1
  107. package/dist/menu/item/menu-item.d.ts +41 -12
  108. package/dist/menu/item/menu-item.js +46 -3
  109. package/dist/menu/root/menu-root.d.ts +32 -2
  110. package/dist/menu/root/menu-root.js +48 -8
  111. package/dist/meter/root/meter-root.d.ts +6 -0
  112. package/dist/meter/root/meter-root.js +18 -2
  113. package/dist/navigation/root/navigation-root.d.ts +10 -2
  114. package/dist/navigation/root/navigation-root.js +13 -2
  115. package/dist/notifications/group/notification-group.d.ts +1 -0
  116. package/dist/notifications/notification/notification.d.ts +12 -0
  117. package/dist/notifications/notification/notification.js +31 -2
  118. package/dist/notifications/root/notifications-root.d.ts +7 -0
  119. package/dist/notifications/root/notifications-root.js +17 -2
  120. package/dist/number-input/root/number-input-root.d.ts +62 -7
  121. package/dist/number-input/root/number-input-root.js +68 -16
  122. package/dist/object-inspector/root/object-inspector-root.d.ts +48 -5
  123. package/dist/object-inspector/root/object-inspector-root.js +91 -11
  124. package/dist/option/root/option-root.d.ts +4 -1
  125. package/dist/option/root/option-root.js +1 -0
  126. package/dist/outline/root/outline-root.d.ts +13 -2
  127. package/dist/outline/root/outline-root.js +4 -2
  128. package/dist/pagination/root/pagination-root.d.ts +19 -1
  129. package/dist/pagination/root/pagination-root.js +49 -9
  130. package/dist/pagination/size/pagination-size.d.ts +13 -3
  131. package/dist/pagination/size/pagination-size.js +7 -0
  132. package/dist/pin-input/root/pin-input-root.d.ts +16 -0
  133. package/dist/pin-input/root/pin-input-root.js +19 -5
  134. package/dist/popover/root/popover-root.d.ts +19 -2
  135. package/dist/popover/root/popover-root.js +22 -1
  136. package/dist/progress/root/progress-root.d.ts +16 -1
  137. package/dist/progress/root/progress-root.js +31 -7
  138. package/dist/qr-code/root/qr-code-root.d.ts +19 -0
  139. package/dist/qr-code/root/qr-code-root.js +29 -1
  140. package/dist/radio/group/radio-group.d.ts +41 -0
  141. package/dist/radio/group/radio-group.js +50 -14
  142. package/dist/radio/root/radio-root.d.ts +8 -5
  143. package/dist/radio/root/radio-root.js +1 -2
  144. package/dist/rating/root/rating-root.d.ts +24 -1
  145. package/dist/rating/root/rating-root.js +24 -7
  146. package/dist/scatter-chart/root/scatter-chart-root.js +15 -7
  147. package/dist/select/root/select-root.d.ts +69 -3
  148. package/dist/select/root/select-root.js +92 -8
  149. package/dist/skeleton/root/skeleton-root.d.ts +14 -3
  150. package/dist/skeleton/root/skeleton-root.js +17 -3
  151. package/dist/skip-link/root/skip-link-root.d.ts +10 -0
  152. package/dist/skip-link/root/skip-link-root.js +15 -1
  153. package/dist/slider/root/slider-root.d.ts +20 -2
  154. package/dist/slider/root/slider-root.js +41 -3
  155. package/dist/sparkline/root/sparkline-root.d.ts +9 -10
  156. package/dist/speed-dial/item/speed-dial-item.d.ts +11 -5
  157. package/dist/speed-dial/item/speed-dial-item.js +7 -2
  158. package/dist/speed-dial/root/speed-dial-root.d.ts +15 -4
  159. package/dist/speed-dial/root/speed-dial-root.js +19 -5
  160. package/dist/splitter/root/splitter-root.d.ts +28 -6
  161. package/dist/splitter/root/splitter-root.js +35 -1
  162. package/dist/stat/root/stat-root.d.ts +7 -1
  163. package/dist/stat/root/stat-root.js +14 -1
  164. package/dist/steps/root/steps-root.js +1 -1
  165. package/dist/switch/root/switch-root.d.ts +2 -0
  166. package/dist/switch/root/switch-root.js +1 -0
  167. package/dist/table/cell/table-cell.d.ts +24 -4
  168. package/dist/table/cell/table-cell.js +21 -1
  169. package/dist/table/column/table-column.d.ts +32 -6
  170. package/dist/table/column/table-column.js +36 -6
  171. package/dist/table/root/table-root.d.ts +94 -3
  172. package/dist/table/root/table-root.js +128 -5
  173. package/dist/table/row/table-row.d.ts +7 -0
  174. package/dist/table/row/table-row.js +9 -1
  175. package/dist/tabs/root/tabs-root.d.ts +6 -1
  176. package/dist/tabs/root/tabs-root.js +6 -2
  177. package/dist/tag/root/tag-root.d.ts +23 -1
  178. package/dist/tag/root/tag-root.js +16 -2
  179. package/dist/textarea/root/textarea-root.d.ts +4 -0
  180. package/dist/textarea/root/textarea-root.js +1 -1
  181. package/dist/time-input/root/time-input-root.d.ts +28 -2
  182. package/dist/time-input/root/time-input-root.js +46 -10
  183. package/dist/time-picker/root/time-picker-root.d.ts +101 -18
  184. package/dist/time-picker/root/time-picker-root.js +115 -16
  185. package/dist/toast/root/toast-root.d.ts +64 -1
  186. package/dist/toast/root/toast-root.js +147 -2
  187. package/dist/toggle/group/toggle-group.d.ts +38 -1
  188. package/dist/toggle/group/toggle-group.js +34 -8
  189. package/dist/toggle/root/toggle-root.d.ts +14 -10
  190. package/dist/toggle/root/toggle-root.js +3 -3
  191. package/dist/toolbar/root/toolbar-root.d.ts +55 -15
  192. package/dist/toolbar/root/toolbar-root.js +99 -16
  193. package/dist/tooltip/root/tooltip-root.d.ts +37 -4
  194. package/dist/tooltip/root/tooltip-root.js +48 -0
  195. package/dist/tour/root/tour-root.d.ts +34 -5
  196. package/dist/tour/root/tour-root.js +51 -14
  197. package/dist/tour/stop/tour-stop.d.ts +18 -1
  198. package/dist/tour/stop/tour-stop.js +25 -5
  199. package/dist/tree/item/tree-item.d.ts +21 -5
  200. package/dist/tree/item/tree-item.js +14 -4
  201. package/dist/tree/root/tree-root.d.ts +29 -5
  202. package/dist/tree/root/tree-root.js +64 -8
  203. package/dist/trend/root/trend-root.d.ts +23 -1
  204. package/dist/trend/root/trend-root.js +28 -7
  205. package/dist/video/root/keys.d.ts +5 -0
  206. package/dist/video/root/keys.js +13 -1
  207. package/dist/video/root/video-root.d.ts +19 -0
  208. package/dist/video/root/video-root.js +48 -4
  209. package/dist/video-playlist/menu/video-playlist-menu.d.ts +20 -2
  210. package/dist/video-playlist/menu/video-playlist-menu.js +27 -5
  211. package/dist/video-playlist/root/video-playlist-root.js +6 -3
  212. package/dist/virtual-list/root/virtual-list-root.d.ts +52 -4
  213. package/dist/virtual-list/root/virtual-list-root.js +103 -21
  214. package/lint.json +1 -1
  215. package/package.json +5 -5
  216. package/types/jsx.d.ts +4348 -965
  217. package/types/vue.d.ts +972 -232
@@ -42,6 +42,21 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
42
42
  *
43
43
  * To act on a single row, such as opening it, put a link or a button in a cell.
44
44
  *
45
+ * The grid is one tab stop, and the arrow keys move between its cells, the
46
+ * headings included:
47
+ *
48
+ * - The arrow keys move one cell, and Home and End to the ends of the row.
49
+ * - Control with Home or End moves to the first or the last cell of the grid.
50
+ * - Page Up and Page Down move by the rows that fit in view.
51
+ * - Enter or F2 moves into the cell's controls, and Escape moves back to the
52
+ * cell. Tab moves between the controls of one cell.
53
+ * - Enter or Space on a sortable heading sorts by it, and Space on a row of a
54
+ * `selectable` table selects it.
55
+ *
56
+ * The controls inside the cells leave the tab order, so Tab moves past the
57
+ * whole grid. A windowed table keeps the row holding focus drawn while the
58
+ * rest scroll away.
59
+ *
45
60
  * People can resize and reorder the columns. `resizable` on a column puts a
46
61
  * separator on its edge. `reorderable` on the table puts a grip on each heading
47
62
  * that has a `field`, moved by dragging or with the arrow keys. The new order
@@ -67,11 +82,16 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
67
82
  * @slot footer - Content below the grid. It replaces the built-in pagination.
68
83
  * @slot toolbar - Content above the grid, such as a search field or actions.
69
84
  *
85
+ * @event {HelixActivateEvent} helix-activate - Fired after the page changes, with the new page as a string in `detail.value`.
70
86
  * @event {HelixFilterEvent} helix-filter - The search query is about to change. Cancelable: cancel it to keep the current query.
87
+ * @event {HelixFilteredEvent} helix-filtered - Fired after the search query changes, with the new query.
71
88
  * @event {HelixNavigateEvent} helix-navigate - Another page was requested. Cancelable: cancel it to stay on the current page.
72
- * @event {HelixReorderEvent} helix-reorder - The columns were moved. The event carries every field in the new order. Cancelable: cancel it to keep the current order.
73
- * @event {HelixSelectEvent} helix-select - The selection changed. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection.
89
+ * @event {HelixReorderEvent} helix-reorder - The columns are about to move. The event carries every field in the new order. Cancelable: cancel it to keep the current order.
90
+ * @event {HelixReorderedEvent} helix-reordered - Fired after the columns move, with every field in the new order.
91
+ * @event {HelixSelectEvent} helix-select - The selection is about to change. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection.
92
+ * @event {HelixSelectedEvent} helix-selected - Fired after the selection changes, with every selected key, separated by commas.
74
93
  * @event {HelixSortEvent} helix-sort - A different sort order was requested. Cancelable: cancel it to keep the current order.
94
+ * @event {HelixSortedEvent} helix-sorted - Fired after the sort order changes, with the new order.
75
95
  *
76
96
  * @csspart after - The space that stands in for the rows below the window. Only while `windowed`.
77
97
  * @csspart before - The space that stands in for the rows above the window. Only while `windowed`.
@@ -176,6 +196,11 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
176
196
  */
177
197
  get filter(): string;
178
198
  set filter(next: string);
199
+ /**
200
+ * The built-in pagination's name for a gap in its run of pages. `{page}` is
201
+ * replaced with the page it jumps to.
202
+ */
203
+ gapLabel: string;
179
204
  /**
180
205
  * The grid's name, read by screen readers.
181
206
  */
@@ -192,6 +217,8 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
192
217
  * inverts the data flow.
193
218
  */
194
219
  mode: 'client' | 'server';
220
+ /** The built-in pagination's name for the button that moves forward a page. */
221
+ nextLabel: string;
195
222
  /**
196
223
  * The column order, as field names separated by spaces.
197
224
  *
@@ -212,6 +239,11 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
212
239
  */
213
240
  get page(): number;
214
241
  set page(next: number);
242
+ /**
243
+ * The built-in pagination's name for one page. `{page}` and `{pages}` are
244
+ * replaced with the page number and the page count.
245
+ */
246
+ pageLabel: string;
215
247
  /**
216
248
  * The number of rows on a page. `0` shows every row, with no paging.
217
249
  *
@@ -233,6 +265,10 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
233
265
  */
234
266
  get paginated(): boolean;
235
267
  set paginated(next: boolean);
268
+ /** The name of the built-in pagination's navigation landmark. */
269
+ paginationLabel: string;
270
+ /** The built-in pagination's name for the button that moves back a page. */
271
+ previousLabel: string;
236
272
  /**
237
273
  * Lets users reorder the columns.
238
274
  *
@@ -240,6 +276,13 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
240
276
  * place at a time with the arrow keys once it has focus.
241
277
  */
242
278
  reorderable: boolean;
279
+ /** What screen readers hear when a search leaves one row. `{count}` is the count. */
280
+ resultLabel: string;
281
+ /**
282
+ * What screen readers hear when a search leaves any other number of rows.
283
+ * `{count}` is the count.
284
+ */
285
+ resultsLabel: string;
243
286
  /**
244
287
  * The field that identifies each row.
245
288
  *
@@ -274,6 +317,8 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
274
317
  * are known by their place in the result, which a sort changes.
275
318
  */
276
319
  selectable: boolean;
320
+ /** The name of the checkbox in the heading that selects every row. */
321
+ selectAllLabel: string;
277
322
  /**
278
323
  * The keys of the selected rows, separated by commas.
279
324
  *
@@ -290,12 +335,18 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
290
335
  * rows are chosen.
291
336
  */
292
337
  selectedLabel: string;
338
+ /**
339
+ * The name of a row's checkbox. `{row}` is replaced with the row's value in
340
+ * the first column that has a field, or with its key.
341
+ */
342
+ selectRowLabel: string;
293
343
  /**
294
344
  * The sort order, as `field:direction`.
295
345
  *
296
- * Set it and this element defers: a reader's click fires `helix-sort` and
297
- * changes nothing until a new value arrives. `default-sort` seeds an order this
298
- * element then owns.
346
+ * A reader's click on a sortable heading fires `helix-sort` first, and
347
+ * refusing it leaves the order as it was. To own the order yourself, refuse
348
+ * the event and set this to the order you chose. `default-sort` seeds an
349
+ * order this element then owns.
299
350
  */
300
351
  get sort(): string;
301
352
  set sort(next: string);
@@ -343,6 +394,25 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
343
394
  private paginatedState;
344
395
  private orderState;
345
396
  private selectedState;
397
+ /**
398
+ * The row holding the grid's tab stop: `-1` for the headings, otherwise a
399
+ * row of the page counted from 0. Unset until a reader moves, when the stop
400
+ * rests on the first row, or on the headings where there is none.
401
+ */
402
+ private activeRow;
403
+ /** The column holding the grid's tab stop, the checkbox column counted. */
404
+ private activeColumn;
405
+ /**
406
+ * The key of the row holding the tab stop, so a sort or a filter keeps the
407
+ * stop on the row a reader was on. Only kept while `row-key` is set.
408
+ */
409
+ private activeKey;
410
+ /** Whether the next render should move focus to the active cell. */
411
+ private focusWanted;
412
+ /** The page as last drawn, for the keys to count rows against between renders. */
413
+ private drawnPage;
414
+ /** The grid's size as the last render counted it, for the internals. */
415
+ private counts;
346
416
  /** The order while a grip is being dragged, before anybody has been asked. */
347
417
  private dragOrder;
348
418
  /** The column a grip is dragging, and the pointer doing it. */
@@ -387,8 +457,30 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
387
457
  */
388
458
  private held;
389
459
  private arrange;
390
- /** The part of a page the reader can see, which is every row when not windowed. */
460
+ /**
461
+ * The part of a page the reader can see, which is every row when not
462
+ * windowed, each with its place in the page.
463
+ *
464
+ * **The row holding the tab stop is drawn wherever the window is.** A row
465
+ * that scrolled out took the focus inside it to the body, and a grid whose
466
+ * one tab stop is not drawn has no tab stop at all. It is drawn beside the
467
+ * window, on the side it belongs, and the spacer on that side gives up its
468
+ * room, so every other row stays where it was.
469
+ */
391
470
  private windowOf;
471
+ /** The row drawn outside the window to keep the tab stop, if there is one. */
472
+ private keptRow;
473
+ /** What a row is known by between renders: its `row-key`, or its place in the page. */
474
+ private rowKeyOf;
475
+ /**
476
+ * The row holding the tab stop in this page: the row with the key it was
477
+ * on, where `row-key` says, and otherwise the same place, held to the page.
478
+ */
479
+ private currentRow;
480
+ /** How many cells a row has: the checkbox and every drawn column. */
481
+ private get width();
482
+ /** The column holding the tab stop, held to the row's width. */
483
+ private get currentColumn();
392
484
  /** The columns declared as children, in the order they are written. */
393
485
  get tableColumns(): HelixHeadlessTableColumn[];
394
486
  /**
@@ -545,8 +637,12 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
545
637
  private get everyKey();
546
638
  /** Ticks or clears one row, which the checkbox asked for and was refused. */
547
639
  private readonly toggleRow;
640
+ /** Asks for one row to be chosen or let go. */
641
+ private chooseRow;
548
642
  /** Selects every row, or clears them all where every one already was. */
549
643
  private readonly toggleAll;
644
+ /** Asks for every row, or for none where every one already was. */
645
+ private chooseAll;
550
646
  /**
551
647
  * Moves a column by some places among the ones that move and are drawn.
552
648
  *
@@ -603,6 +699,8 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
603
699
  private heardSort;
604
700
  /** The selection last heard, for the same reason. */
605
701
  private heardSelected;
702
+ /** The search last heard, for the same reason. */
703
+ private heardFilter;
606
704
  /**
607
705
  * What the table says after a sort or a change to the chosen rows.
608
706
  *
@@ -676,8 +774,7 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
676
774
  * reader on page three should hear row 41, and a grid whose indices restart at
677
775
  * every page tells a reader the result is twenty rows long however many it has.
678
776
  *
679
- * A window is the second offset and stacks on the page: with both on, row one
680
- * of the window is the page's start plus how far down the page it begins.
777
+ * `within` is the row's place in the page, which already counts the window.
681
778
  */
682
779
  private rowIndex;
683
780
  /**
@@ -690,8 +787,6 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
690
787
  private get placement();
691
788
  /** The signature the recorded heights were measured against. */
692
789
  private measuredAgainst;
693
- /** Where the window begins in the page, which is the top when there is none. */
694
- private get windowStart();
695
790
  /**
696
791
  * The room the rows outside the window would have taken.
697
792
  *
@@ -731,6 +826,59 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
731
826
  * makes of them, so a keyboard needs nothing of its own.
732
827
  */
733
828
  private readonly handleHeadClick;
829
+ /**
830
+ * The cell at a place in the grid. The headings are row `-1`, the rows of
831
+ * the page count from 0, and the checkbox column, where there is one, is
832
+ * column 0.
833
+ */
834
+ private cellAt;
835
+ /** The cell an event came from or through, and its place in the grid. */
836
+ private placeOf;
837
+ /**
838
+ * The controls inside a cell, in order: what Enter and F2 move into, and
839
+ * what Tab moves between while focus is in the cell.
840
+ */
841
+ private controlsIn;
842
+ /**
843
+ * Takes the controls a consumer's `cell` drew out of the tab order, so the
844
+ * grid stays one tab stop. They are reached with Enter or F2.
845
+ */
846
+ private quietControls;
847
+ /** Moves the tab stop to a cell, and focus with it on the next render. */
848
+ private moveTo;
849
+ /** How many rows Page Up and Page Down move: those that fit in view, less one. */
850
+ private pageStep;
851
+ /** How tall the headings are, which stick over the rows in a windowed table. */
852
+ private headHeight;
853
+ /** Whether focus is on a cell of the grid, or inside one. */
854
+ private gridHasFocus;
855
+ /** Whether focus was in the grid before this render, for `placeFocus` to keep it there. */
856
+ private hadFocus;
857
+ /**
858
+ * Focuses the cell holding the tab stop, where a key asked to move there or
859
+ * a render took focus away from the grid.
860
+ *
861
+ * **A render can take focus away**: a sort moves the row elements, and a
862
+ * moved element loses focus to the body. Put back on the cell the stop is on,
863
+ * which follows the row by its key.
864
+ */
865
+ private placeFocus;
866
+ /** A cell, or a control inside one, took focus: the tab stop moves there. */
867
+ private readonly handleFocusIn;
868
+ /**
869
+ * The grid's keys, on a cell and inside one.
870
+ *
871
+ * On a cell, the arrows, Home, End, Page Up and Page Down move between
872
+ * cells, and Enter, Space and F2 act on it. Inside a cell the control has the
873
+ * keys, apart from Escape and F2, which go back to the cell, and Tab, which
874
+ * moves between the cell's controls. A key a control already handled is left
875
+ * alone.
876
+ */
877
+ private readonly handleGridKey;
878
+ /** Enter, Space and F2 on a cell. */
879
+ private activate;
880
+ /** The keys the grid takes while focus is on a control inside a cell. */
881
+ private handleControlKey;
734
882
  /** Whether the event passed through a part of that name on its way here. */
735
883
  private partIn;
736
884
  /** The arrow keys on a grip move its column a place, along the writing direction. */
@@ -753,6 +901,12 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
753
901
  */
754
902
  private readonly handleResize;
755
903
  private columnFrom;
904
+ /**
905
+ * The composed pagination's notification, stopped for the reason its
906
+ * request is: this element sends its own `helix-activate` once its own page
907
+ * has moved, and one move is one event.
908
+ */
909
+ private readonly stopPageNotification;
756
910
  /**
757
911
  * The composed pagination's request, relayed as this element's own.
758
912
  *