@fusion.dev/helix-headless 0.142.1 → 0.144.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 (285) hide show
  1. package/custom-elements.json +25381 -1202
  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.d.ts +12 -4
  11. package/dist/area-chart/root/area-chart-root.js +39 -11
  12. package/dist/avatar/group/avatar-group.d.ts +24 -3
  13. package/dist/avatar/group/avatar-group.js +34 -2
  14. package/dist/avatar/root/avatar-root.d.ts +17 -1
  15. package/dist/avatar/root/avatar-root.js +31 -10
  16. package/dist/badge/root/badge-root.d.ts +12 -0
  17. package/dist/badge/root/badge-root.js +1 -1
  18. package/dist/bar-chart/root/bar-chart-root.d.ts +30 -5
  19. package/dist/bar-chart/root/bar-chart-root.js +58 -21
  20. package/dist/blockquote/root/blockquote-root.d.ts +12 -7
  21. package/dist/blockquote/root/blockquote-root.js +6 -4
  22. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +9 -3
  23. package/dist/breadcrumbs/root/breadcrumbs-root.js +9 -1
  24. package/dist/button/root/button-root.d.ts +84 -1
  25. package/dist/button/root/button-root.js +81 -3
  26. package/dist/callout/root/callout-root.d.ts +32 -6
  27. package/dist/callout/root/callout-root.js +26 -7
  28. package/dist/canvas/root/canvas-root.d.ts +1 -0
  29. package/dist/canvas/root/canvas-root.js +10 -1
  30. package/dist/card/root/card-root.d.ts +30 -1
  31. package/dist/card/root/card-root.js +38 -5
  32. package/dist/carousel/root/carousel-root.d.ts +47 -5
  33. package/dist/carousel/root/carousel-root.js +53 -21
  34. package/dist/chat/composer/chat-composer.d.ts +13 -11
  35. package/dist/chat/composer/chat-composer.js +6 -12
  36. package/dist/chat/message/chat-message.js +8 -1
  37. package/dist/chat/root/chat-root.d.ts +1 -0
  38. package/dist/chat/root/chat-root.js +2 -1
  39. package/dist/checkbox/root/checkbox-root.d.ts +7 -0
  40. package/dist/checkbox/root/checkbox-root.js +9 -3
  41. package/dist/checkbox-group/root/checkbox-group-root.d.ts +116 -33
  42. package/dist/checkbox-group/root/checkbox-group-root.js +141 -44
  43. package/dist/code/root/code-root.d.ts +1 -1
  44. package/dist/code-block/lines.d.ts +13 -0
  45. package/dist/code-block/lines.js +2 -0
  46. package/dist/code-block/root/code-block-root.d.ts +49 -0
  47. package/dist/code-block/root/code-block-root.js +44 -3
  48. package/dist/color-input/root/color-input-root.d.ts +60 -2
  49. package/dist/color-input/root/color-input-root.js +55 -7
  50. package/dist/color-picker/channels.d.ts +26 -0
  51. package/dist/color-picker/channels.js +84 -0
  52. package/dist/color-picker/root/color-picker-root.d.ts +118 -12
  53. package/dist/color-picker/root/color-picker-root.js +183 -13
  54. package/dist/combobox/root/combobox-root.d.ts +126 -3
  55. package/dist/combobox/root/combobox-root.js +224 -21
  56. package/dist/command/root/command-root.d.ts +47 -10
  57. package/dist/command/root/command-root.js +45 -4
  58. package/dist/copy-button/from.d.ts +22 -0
  59. package/dist/copy-button/from.js +28 -0
  60. package/dist/copy-button/root/copy-button-root.d.ts +48 -7
  61. package/dist/copy-button/root/copy-button-root.js +54 -8
  62. package/dist/data-table/root/data-table-root.d.ts +164 -10
  63. package/dist/data-table/root/data-table-root.js +488 -57
  64. package/dist/date-input/root/date-input-root.d.ts +123 -9
  65. package/dist/date-input/root/date-input-root.js +147 -45
  66. package/dist/date-picker/root/date-picker-root.d.ts +229 -18
  67. package/dist/date-picker/root/date-picker-root.js +342 -46
  68. package/dist/dialog/description.d.ts +9 -0
  69. package/dist/dialog/description.js +14 -0
  70. package/dist/dialog/root/dialog-root.d.ts +101 -10
  71. package/dist/dialog/root/dialog-root.js +83 -4
  72. package/dist/donut-chart/root/donut-chart-root.d.ts +61 -16
  73. package/dist/donut-chart/root/donut-chart-root.js +48 -13
  74. package/dist/drawer/root/drawer-root.d.ts +93 -7
  75. package/dist/drawer/root/drawer-root.js +126 -5
  76. package/dist/drawer/swipe-start.d.ts +9 -0
  77. package/dist/drawer/swipe-start.js +12 -0
  78. package/dist/drilldown/item/drilldown-item.d.ts +16 -13
  79. package/dist/drilldown/item/drilldown-item.js +6 -2
  80. package/dist/drilldown/root/drilldown-root.d.ts +21 -5
  81. package/dist/drilldown/root/drilldown-root.js +26 -10
  82. package/dist/element-events.generated.js +42 -13
  83. package/dist/empty/root/empty-root.d.ts +1 -1
  84. package/dist/file-input/root/file-input-root.d.ts +65 -1
  85. package/dist/file-input/root/file-input-root.js +76 -12
  86. package/dist/file-input/screen.d.ts +35 -0
  87. package/dist/file-input/screen.js +49 -0
  88. package/dist/filter-input/menu/filter-menu.d.ts +9 -0
  89. package/dist/filter-input/menu/filter-menu.js +8 -0
  90. package/dist/filter-input/root/filter-input-root.d.ts +43 -6
  91. package/dist/filter-input/root/filter-input-root.js +89 -10
  92. package/dist/filter-input/suggest.d.ts +17 -0
  93. package/dist/filter-input/suggest.js +23 -0
  94. package/dist/format-date/options.d.ts +33 -0
  95. package/dist/format-date/options.js +42 -0
  96. package/dist/format-date/root/format-date-root.d.ts +62 -3
  97. package/dist/format-date/root/format-date-root.js +78 -37
  98. package/dist/graph/root/graph-root.d.ts +24 -3
  99. package/dist/graph/root/graph-root.js +66 -12
  100. package/dist/heatmap/root/buckets.d.ts +2 -1
  101. package/dist/heatmap/root/buckets.js +5 -1
  102. package/dist/heatmap/root/heatmap-root.d.ts +47 -9
  103. package/dist/heatmap/root/heatmap-root.js +46 -18
  104. package/dist/icon/index.d.ts +2 -0
  105. package/dist/icon/index.js +2 -0
  106. package/dist/icon/registry.d.ts +37 -0
  107. package/dist/icon/registry.js +83 -0
  108. package/dist/icon/root/icon-root.d.ts +53 -6
  109. package/dist/icon/root/icon-root.js +72 -4
  110. package/dist/icon/root/index.d.ts +2 -0
  111. package/dist/icon/root/index.js +2 -0
  112. package/dist/icon/set.d.ts +1 -0
  113. package/dist/icon/set.js +3 -0
  114. package/dist/icon-button/root/icon-button-root.d.ts +1 -1
  115. package/dist/image/root/image-root.d.ts +23 -2
  116. package/dist/image/root/image-root.js +23 -4
  117. package/dist/input/root/input-root.d.ts +62 -9
  118. package/dist/input/root/input-root.js +61 -5
  119. package/dist/kbd/root/kbd-root.d.ts +26 -11
  120. package/dist/kbd/root/kbd-root.js +35 -38
  121. package/dist/kbd/shortcut.d.ts +18 -0
  122. package/dist/kbd/shortcut.js +35 -0
  123. package/dist/legend/hidden-series.d.ts +8 -0
  124. package/dist/legend/hidden-series.js +13 -0
  125. package/dist/legend/root/legend-root.d.ts +63 -0
  126. package/dist/legend/root/legend-root.js +61 -7
  127. package/dist/lightbox/item/lightbox-item.d.ts +17 -1
  128. package/dist/lightbox/item/lightbox-item.js +10 -1
  129. package/dist/lightbox/root/lightbox-root.d.ts +77 -6
  130. package/dist/lightbox/root/lightbox-root.js +116 -5
  131. package/dist/line-chart/root/line-chart-root.d.ts +29 -4
  132. package/dist/line-chart/root/line-chart-root.js +58 -17
  133. package/dist/list/item/list-item.d.ts +11 -5
  134. package/dist/list/item/list-item.js +5 -6
  135. package/dist/listbox/range.d.ts +17 -0
  136. package/dist/listbox/range.js +5 -0
  137. package/dist/listbox/root/listbox-root.d.ts +184 -4
  138. package/dist/listbox/root/listbox-root.js +229 -23
  139. package/dist/loader/busy.d.ts +17 -0
  140. package/dist/loader/busy.js +24 -0
  141. package/dist/loader/root/loader-root.d.ts +37 -0
  142. package/dist/loader/root/loader-root.js +52 -3
  143. package/dist/map/root/map-root.d.ts +19 -4
  144. package/dist/map/root/map-root.js +36 -7
  145. package/dist/megamenu/root/megamenu-root.d.ts +10 -1
  146. package/dist/megamenu/root/megamenu-root.js +10 -1
  147. package/dist/menu/item/menu-item.d.ts +41 -12
  148. package/dist/menu/item/menu-item.js +46 -3
  149. package/dist/menu/root/menu-root.d.ts +32 -2
  150. package/dist/menu/root/menu-root.js +48 -8
  151. package/dist/meter/root/meter-root.d.ts +13 -0
  152. package/dist/meter/root/meter-root.js +24 -5
  153. package/dist/navigation/root/navigation-root.d.ts +10 -2
  154. package/dist/navigation/root/navigation-root.js +13 -2
  155. package/dist/notifications/feed-keys.d.ts +10 -0
  156. package/dist/notifications/feed-keys.js +14 -0
  157. package/dist/notifications/group/notification-group.d.ts +1 -0
  158. package/dist/notifications/notification/notification.d.ts +29 -0
  159. package/dist/notifications/notification/notification.js +51 -3
  160. package/dist/notifications/root/notifications-root.d.ts +49 -0
  161. package/dist/notifications/root/notifications-root.js +76 -2
  162. package/dist/number-input/root/number-input-root.d.ts +109 -7
  163. package/dist/number-input/root/number-input-root.js +109 -21
  164. package/dist/object-inspector/root/object-inspector-root.d.ts +49 -5
  165. package/dist/object-inspector/root/object-inspector-root.js +92 -12
  166. package/dist/option/root/option-root.d.ts +58 -6
  167. package/dist/option/root/option-root.js +35 -5
  168. package/dist/outline/root/outline-root.d.ts +13 -2
  169. package/dist/outline/root/outline-root.js +4 -2
  170. package/dist/pagination/root/pagination-root.d.ts +19 -1
  171. package/dist/pagination/root/pagination-root.js +49 -9
  172. package/dist/pagination/size/pagination-size.d.ts +13 -3
  173. package/dist/pagination/size/pagination-size.js +7 -0
  174. package/dist/pin-input/format.d.ts +7 -0
  175. package/dist/pin-input/format.js +16 -0
  176. package/dist/pin-input/root/pin-input-root.d.ts +37 -0
  177. package/dist/pin-input/root/pin-input-root.js +48 -7
  178. package/dist/popover/root/popover-root.d.ts +78 -3
  179. package/dist/popover/root/popover-root.js +74 -5
  180. package/dist/progress/root/progress-root.d.ts +23 -1
  181. package/dist/progress/root/progress-root.js +40 -10
  182. package/dist/qr-code/export.d.ts +31 -0
  183. package/dist/qr-code/export.js +10 -0
  184. package/dist/qr-code/root/qr-code-root.d.ts +45 -0
  185. package/dist/qr-code/root/qr-code-root.js +78 -3
  186. package/dist/radio/group/radio-group.d.ts +64 -0
  187. package/dist/radio/group/radio-group.js +66 -12
  188. package/dist/radio/root/radio-root.d.ts +8 -5
  189. package/dist/radio/root/radio-root.js +1 -2
  190. package/dist/rating/root/rating-root.d.ts +49 -1
  191. package/dist/rating/root/rating-root.js +69 -10
  192. package/dist/scatter-chart/root/scatter-chart-root.d.ts +17 -3
  193. package/dist/scatter-chart/root/scatter-chart-root.js +40 -14
  194. package/dist/select/root/select-root.d.ts +93 -3
  195. package/dist/select/root/select-root.js +111 -13
  196. package/dist/skeleton/root/skeleton-root.d.ts +39 -3
  197. package/dist/skeleton/root/skeleton-root.js +33 -4
  198. package/dist/skip-link/root/skip-link-root.d.ts +10 -0
  199. package/dist/skip-link/root/skip-link-root.js +15 -1
  200. package/dist/slider/root/slider-root.d.ts +59 -2
  201. package/dist/slider/root/slider-root.js +82 -8
  202. package/dist/sparkline/root/sparkline-root.d.ts +9 -10
  203. package/dist/speed-dial/item/speed-dial-item.d.ts +11 -5
  204. package/dist/speed-dial/item/speed-dial-item.js +7 -2
  205. package/dist/speed-dial/root/speed-dial-root.d.ts +15 -4
  206. package/dist/speed-dial/root/speed-dial-root.js +19 -5
  207. package/dist/splitter/root/splitter-root.d.ts +28 -6
  208. package/dist/splitter/root/splitter-root.js +35 -1
  209. package/dist/stat/root/stat-root.d.ts +9 -1
  210. package/dist/stat/root/stat-root.js +15 -2
  211. package/dist/steps/root/steps-root.js +1 -1
  212. package/dist/steps/step/step.d.ts +1 -0
  213. package/dist/steps/step/step.js +1 -1
  214. package/dist/switch/root/switch-root.d.ts +14 -2
  215. package/dist/switch/root/switch-root.js +7 -1
  216. package/dist/table/cell/table-cell.d.ts +24 -4
  217. package/dist/table/cell/table-cell.js +21 -1
  218. package/dist/table/column/table-column.d.ts +32 -6
  219. package/dist/table/column/table-column.js +36 -6
  220. package/dist/table/root/table-root.d.ts +94 -3
  221. package/dist/table/root/table-root.js +128 -5
  222. package/dist/table/row/table-row.d.ts +7 -0
  223. package/dist/table/row/table-row.js +9 -1
  224. package/dist/tabs/root/tabs-root.d.ts +6 -1
  225. package/dist/tabs/root/tabs-root.js +6 -2
  226. package/dist/tag/group/tag-group.d.ts +107 -0
  227. package/dist/tag/group/tag-group.js +157 -0
  228. package/dist/tag/index.d.ts +1 -0
  229. package/dist/tag/index.js +1 -0
  230. package/dist/tag/root/tag-root.d.ts +83 -1
  231. package/dist/tag/root/tag-root.js +87 -17
  232. package/dist/tag/selection.d.ts +10 -0
  233. package/dist/tag/selection.js +12 -0
  234. package/dist/textarea/grow.d.ts +22 -0
  235. package/dist/textarea/grow.js +20 -0
  236. package/dist/textarea/root/textarea-root.d.ts +13 -0
  237. package/dist/textarea/root/textarea-root.js +10 -2
  238. package/dist/time-input/root/time-input-root.d.ts +71 -6
  239. package/dist/time-input/root/time-input-root.js +110 -44
  240. package/dist/time-picker/root/time-picker-root.d.ts +155 -26
  241. package/dist/time-picker/root/time-picker-root.js +192 -63
  242. package/dist/toast/hotkey.d.ts +22 -0
  243. package/dist/toast/hotkey.js +23 -0
  244. package/dist/toast/item/toast-item.d.ts +16 -1
  245. package/dist/toast/item/toast-item.js +41 -13
  246. package/dist/toast/root/toast-root.d.ts +105 -8
  247. package/dist/toast/root/toast-root.js +209 -4
  248. package/dist/toggle/group/toggle-group.d.ts +95 -16
  249. package/dist/toggle/group/toggle-group.js +99 -13
  250. package/dist/toggle/root/toggle-root.d.ts +26 -11
  251. package/dist/toggle/root/toggle-root.js +14 -6
  252. package/dist/toolbar/root/toolbar-root.d.ts +55 -15
  253. package/dist/toolbar/root/toolbar-root.js +99 -16
  254. package/dist/tooltip/focus-target.d.ts +6 -0
  255. package/dist/tooltip/focus-target.js +9 -0
  256. package/dist/tooltip/root/tooltip-root.d.ts +73 -15
  257. package/dist/tooltip/root/tooltip-root.js +96 -7
  258. package/dist/tour/naming.d.ts +30 -0
  259. package/dist/tour/naming.js +10 -0
  260. package/dist/tour/root/tour-root.d.ts +67 -3
  261. package/dist/tour/root/tour-root.js +105 -17
  262. package/dist/tour/stop/tour-stop.d.ts +65 -3
  263. package/dist/tour/stop/tour-stop.js +61 -11
  264. package/dist/tour/wait.d.ts +11 -0
  265. package/dist/tour/wait.js +19 -0
  266. package/dist/tree/item/tree-item.d.ts +21 -5
  267. package/dist/tree/item/tree-item.js +14 -4
  268. package/dist/tree/root/tree-root.d.ts +29 -5
  269. package/dist/tree/root/tree-root.js +64 -8
  270. package/dist/trend/root/trend-root.d.ts +36 -1
  271. package/dist/trend/root/trend-root.js +41 -15
  272. package/dist/video/root/keys.d.ts +5 -0
  273. package/dist/video/root/keys.js +13 -1
  274. package/dist/video/root/video-root.d.ts +19 -0
  275. package/dist/video/root/video-root.js +48 -4
  276. package/dist/video-playlist/menu/video-playlist-menu.d.ts +20 -2
  277. package/dist/video-playlist/menu/video-playlist-menu.js +27 -5
  278. package/dist/video-playlist/root/video-playlist-root.js +6 -3
  279. package/dist/virtual-list/root/virtual-list-root.d.ts +52 -4
  280. package/dist/virtual-list/root/virtual-list-root.js +103 -21
  281. package/lint.json +1 -1
  282. package/package.json +5 -5
  283. package/types/jsx.d.ts +9140 -1149
  284. package/types/svelte.d.ts +1 -0
  285. package/types/vue.d.ts +2089 -267
@@ -1,4 +1,4 @@
1
- import { HelixFormElement } from '@fusion.dev/helix-core';
1
+ import { type CalendarView, 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
  /**
@@ -23,6 +23,20 @@ declare const HelixHeadlessDatePicker_base: (new (...args: any[]) => import("@fu
23
23
  * marks the dates between them, and `multiple` toggles each date. All three
24
24
  * read and write the same comma-separated `value`.
25
25
  *
26
+ * `max-view` makes the heading a button that steps back to the months of the
27
+ * year, and with `year` to a page of years, as Zag's date picker does. The
28
+ * arrows, Home, End and the page keys move there, Enter or a press chooses, and
29
+ * Escape goes back to the days.
30
+ *
31
+ * `isDateUnavailable` and `dayContent` are properties for a script: a rule
32
+ * that bars dates, and what each day shows in place of its number.
33
+ *
34
+ * The month heading is a live region, so a screen reader hears the new month
35
+ * when Previous or Next is pressed. Neither moves past `min` or `max`, and the
36
+ * keys stop at them too. A value outside the bounds, on a barred day, or off
37
+ * `step` reports `rangeUnderflow`, `rangeOverflow`, `badInput` or
38
+ * `stepMismatch`, so a form does not submit it.
39
+ *
26
40
  * @since 0.1.0
27
41
  * @status stable
28
42
  * @category forms
@@ -49,10 +63,17 @@ declare const HelixHeadlessDatePicker_base: (new (...args: any[]) => import("@fu
49
63
  * @csspart grid - The grid of days.
50
64
  * @csspart header - The month name and its controls.
51
65
  * @csspart heading - The month and year being shown.
66
+ * @csspart heading-button - The heading as a button that shows the months or the years, where `max-view` is set.
52
67
  * @csspart month - One month, its header and its grid.
53
68
  * @csspart months - The run of months.
54
69
  * @csspart next - The control that moves to the next month.
55
70
  * @csspart next-mark - The glyph on the next month control, where none is slotted.
71
+ * @csspart period - One month in the months view, or one year in the years view.
72
+ * @csspart period-current - This month or this year, beside `period`.
73
+ * @csspart period-disabled - A month or a year wholly outside `min` and `max`, beside `period`.
74
+ * @csspart period-row - One row of three months or years.
75
+ * @csspart period-selected - The month or the year on show, beside `period`.
76
+ * @csspart periods - The grid of months or years.
56
77
  * @csspart previous - The control that moves to the previous month.
57
78
  * @csspart previous-mark - The glyph on the previous month control, where none is slotted.
58
79
  * @csspart week - One row of days.
@@ -69,26 +90,53 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
69
90
  * speaks it. Absent is the control's own sentence, in English.
70
91
  */
71
92
  badInputMessage?: string;
93
+ /**
94
+ * What each day shows, in place of its number: a function given the date as
95
+ * `YYYY-MM-DD` that returns text, an element or a Lit template.
96
+ *
97
+ * For a price or a dot under the number, as React Aria's `CalendarCell`
98
+ * takes children. The cell is still named by its whole date, so what you
99
+ * draw here is for the eye; say anything a reader must hear in the date's
100
+ * description elsewhere. Return the day's number with it where it should
101
+ * still show. A property only, there being no way to write a function in
102
+ * markup.
103
+ */
104
+ dayContent?: ((date: string) => unknown) | undefined;
72
105
  /**
73
106
  * The month to open on when `month` is not set.
74
107
  */
75
108
  defaultMonth: string;
76
109
  /**
77
- * Dates that cannot be chosen, comma separated, as `YYYY-MM-DD`.
110
+ * Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
111
+ * spaces.
78
112
  */
79
113
  disableDates: string;
80
114
  /**
81
- * Days of the week that cannot be chosen, comma separated, `0` to `6`.
115
+ * Days of the week that cannot be chosen, `0` for Sunday to `6` for
116
+ * Saturday, separated by commas or spaces.
82
117
  */
83
118
  disableDays: string;
84
119
  /**
85
120
  * First column of the week, `0` for Sunday through `6` for Saturday.
121
+ *
122
+ * Absent follows `locale`, where the engine knows the week of that language
123
+ * (Firefox does not), and is Sunday otherwise.
86
124
  */
87
- firstDayOfWeek: number;
125
+ firstDayOfWeek?: number;
88
126
  /**
89
127
  * Whether the current selection fails validation.
90
128
  */
91
129
  invalid: boolean;
130
+ /**
131
+ * A rule for which dates cannot be chosen: a function given the date as
132
+ * `YYYY-MM-DD` that returns `true` to bar it.
133
+ *
134
+ * For what a list cannot say, such as the second Tuesday of each month or
135
+ * the days a server has fully booked. It bars a date as `disable-dates`
136
+ * does, in the grid and in validation. A property only, as React Aria's
137
+ * `isDateUnavailable` is a prop.
138
+ */
139
+ isDateUnavailable?: ((date: string) => boolean) | undefined;
92
140
  /**
93
141
  * Accessible name for the grid.
94
142
  */
@@ -103,6 +151,17 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
103
151
  * Latest selectable date, as `YYYY-MM-DD`.
104
152
  */
105
153
  max: string;
154
+ /**
155
+ * How far the heading lets a reader step back from the days: `month` to a
156
+ * year's months, or `year` to a page of years and then its months.
157
+ *
158
+ * Absent, the heading is text and the calendar moves a month at a time. Set,
159
+ * the heading is a button that shows the months, and from there the years,
160
+ * so a birth date forty years back is three presses rather than four hundred
161
+ * and eighty. Choosing a year shows its months, and choosing a month shows
162
+ * its days.
163
+ */
164
+ maxView?: 'month' | 'year';
106
165
  /**
107
166
  * Earliest selectable date, as `YYYY-MM-DD`.
108
167
  */
@@ -127,10 +186,23 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
127
186
  * How many months to show, side by side.
128
187
  */
129
188
  months: number;
189
+ /**
190
+ * The name of the heading where it shows the months, with `{heading}`
191
+ * filled in as the month on show.
192
+ */
193
+ monthViewLabel: string;
130
194
  /**
131
195
  * Accessible name for the control that pages forward.
132
196
  */
133
197
  nextLabel: string;
198
+ /**
199
+ * Accessible name for the control that moves forward a year, in the months.
200
+ */
201
+ nextYearLabel: string;
202
+ /**
203
+ * Accessible name for the control that moves forward a page, in the years.
204
+ */
205
+ nextYearsLabel: string;
134
206
  /**
135
207
  * Accessible name for the control that pages back.
136
208
  *
@@ -141,19 +213,18 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
141
213
  */
142
214
  previousLabel: string;
143
215
  /**
144
- * Blocks changes to the dates. The value is still submitted with the form.
145
- *
146
- * **Enforced by refusing every request in one place**, which is the seam this
147
- * component already has: `requestValue` is what every path here comes through,
148
- * and gating it once is what stops the next call site from being written
149
- * without the check.
150
- *
151
- * Not `disabled`, which is the confusion worth naming: a disabled control
152
- * submits nothing and leaves the tab order, and a read-only one submits its
153
- * value and stays reachable, which is what a form showing a value somebody
154
- * else set needs.
216
+ * Accessible name for the control that moves back a year, in the months.
155
217
  */
156
- readOnly: boolean;
218
+ previousYearLabel: string;
219
+ /**
220
+ * Accessible name for the control that moves back a page, in the years.
221
+ */
222
+ previousYearsLabel: string;
223
+ /**
224
+ * The validation message for a date after `max`. `{max}` is replaced with
225
+ * `max`, written as a date in `locale`.
226
+ */
227
+ rangeOverflowMessage?: string;
157
228
  /**
158
229
  * The date the grid's tab stop is on.
159
230
  *
@@ -162,6 +233,17 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
162
233
  private focused;
163
234
  /** The selected dates, in order. */
164
235
  private get selected();
236
+ /** The day the week starts on: `firstDayOfWeek`, or the locale's. */
237
+ private get weekStart();
238
+ /**
239
+ * Whether the last date the reader moved to is this picker's own doing.
240
+ *
241
+ * A value that moves from outside, typed into Date Input or set by a script,
242
+ * takes the tab stop to the selected day, as the APG date picker does. A
243
+ * value this grid chose leaves it where the reader pressed, which in a range
244
+ * is the end they just picked.
245
+ */
246
+ private choosing;
165
247
  /** The range's ends, when there are two and the mode asks for them. */
166
248
  private get range();
167
249
  private isSelected;
@@ -200,6 +282,12 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
200
282
  * one that moves.
201
283
  */
202
284
  private barred;
285
+ /** Pulls a date inside `min` and `max`, so the keys stop at the bounds. */
286
+ private clamp;
287
+ /** Whether the month before the first one shown is wholly before `min`. */
288
+ private get atStart();
289
+ /** Whether the month after the last one shown is wholly after `max`. */
290
+ private get atEnd();
203
291
  /**
204
292
  * Moves the view, announcing it first.
205
293
  *
@@ -219,14 +307,85 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
219
307
  */
220
308
  private select;
221
309
  private readonly handleKeydown;
310
+ /**
311
+ * The year the months view shows, and the year the years view is on.
312
+ *
313
+ * Its own state rather than `month`, because looking through the months of
314
+ * another year chooses nothing and moves nothing on show: the month changes,
315
+ * and `helix-navigate` is sent, only once a month is chosen.
316
+ */
317
+ private pageYear;
318
+ /**
319
+ * Where the tab stop is among the months, as their index, or among the
320
+ * years, as the year.
321
+ */
322
+ private periodFocus;
323
+ /** The year on show in the months and the years. */
324
+ private get periodYear();
325
+ /** The index or the year the tab stop sits on in the months or the years. */
326
+ private get periodStop();
327
+ /** Whether a month, as its first day, lies wholly outside `min` and `max`. */
328
+ private monthOut;
329
+ /** Whether a year lies wholly outside `min` and `max`. */
330
+ private yearOut;
331
+ /** Changes the view, and takes focus to its tab stop once it has drawn. */
332
+ private zoom;
333
+ /**
334
+ * The heading's press: from the days to the months, and from the months to
335
+ * the years where `max-view` allows.
336
+ */
337
+ private readonly handleHeading;
338
+ /**
339
+ * Takes a month or a year: a year shows its months, and a month shows its
340
+ * days, moving the calendar there with `helix-navigate` first.
341
+ */
342
+ private choosePeriod;
343
+ /** Moves the months a year, or the years a page. */
344
+ private turnPage;
345
+ /**
346
+ * The keys in the months and the years: the arrows, Home, End and the page
347
+ * keys move, Enter and Space choose, and Escape goes back to the days.
348
+ *
349
+ * Escape is stopped here, so a Date Input around this calendar keeps its
350
+ * panel open: a reader backing out of the years has not asked to leave.
351
+ */
352
+ private handlePeriodKeydown;
353
+ /**
354
+ * Moves focus to the grid's tab stop: the selected day, or the day last
355
+ * moved to, or the first of the month.
356
+ *
357
+ * Date Input calls this when its trigger opens the calendar, which is where
358
+ * the APG date picker dialog puts focus. The host is not focusable, so a
359
+ * plain `focus()` on it did nothing and focus stayed on the trigger.
360
+ */
361
+ focus(options?: FocusOptions): void;
222
362
  connectedCallback(): void;
223
363
  disconnectedCallback(): void;
224
364
  /**
225
- * Stops the form from submitting while no date is chosen.
365
+ * The validation message for a date before `min`. `{min}` is replaced with
366
+ * `min`, written as a date in `locale`.
226
367
  */
227
- required: boolean;
368
+ rangeUnderflowMessage?: string;
228
369
  /** Refuses every change while read-only. See `readOnly`. */
229
370
  requestValue(next: string): boolean;
371
+ /**
372
+ * Blocks changes to the dates. The value is still submitted with the form.
373
+ *
374
+ * **Enforced by refusing every request in one place**, which is the seam this
375
+ * component already has: `requestValue` is what every path here comes through,
376
+ * and gating it once is what stops the next call site from being written
377
+ * without the check.
378
+ *
379
+ * Not `disabled`, which is the confusion worth naming: a disabled control
380
+ * submits nothing and leaves the tab order, and a read-only one submits its
381
+ * value and stays reachable, which is what a form showing a value somebody
382
+ * else set needs.
383
+ */
384
+ readOnly: boolean;
385
+ /**
386
+ * Stops the form from submitting while no date is chosen.
387
+ */
388
+ required: boolean;
230
389
  /**
231
390
  * How far apart the selectable dates are, in days.
232
391
  *
@@ -241,10 +400,42 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
241
400
  * date including the one already chosen.
242
401
  */
243
402
  step: number;
403
+ /**
404
+ * The validation message for a date that `step` skips.
405
+ */
406
+ stepMismatchMessage?: string;
407
+ /**
408
+ * The validation message for a date that `disable-dates` or `disable-days`
409
+ * bars.
410
+ */
411
+ unavailableMessage?: string;
244
412
  /**
245
413
  * The validation message for a required date picker with no date chosen.
246
414
  */
247
415
  valueMissingMessage?: string;
416
+ /**
417
+ * What the calendar shows: the days of a month, the months of a year, or a
418
+ * page of years. `day` unless `max-view` lets a reader step back.
419
+ *
420
+ * Not reflected, being state. Set it to open on the months or the years.
421
+ */
422
+ view: CalendarView;
423
+ /**
424
+ * The name of the heading where it shows a page of years, with `{heading}`
425
+ * filled in as the year on show.
426
+ */
427
+ yearViewLabel: string;
428
+ /** A date written for a message, in `locale`. */
429
+ private spoken;
430
+ /**
431
+ * What is wrong with a date the calendar can read, as a validity flag and a
432
+ * message, or nothing.
433
+ *
434
+ * Measured before this: a value before `min`, after `max`, or on a barred
435
+ * day reported valid and was submitted, where a native date input reports
436
+ * the bound it is past.
437
+ */
438
+ private fault;
248
439
  /**
249
440
  * Reports "required and empty", or clears it.
250
441
  *
@@ -323,6 +514,26 @@ export declare class HelixHeadlessDatePicker extends HelixHeadlessDatePicker_bas
323
514
  protected renderPreviousMark(): TemplateResult;
324
515
  protected renderNextMark(): TemplateResult;
325
516
  private renderMonth;
517
+ /**
518
+ * What a day shows: its number, or what `day-content` returns for it.
519
+ *
520
+ * A seam, so a tier above can draw a day its own way, and filler days from a
521
+ * neighboring month keep their number, being only there to square the grid.
522
+ */
523
+ protected renderDay(date: Date, outside: boolean): unknown;
524
+ /**
525
+ * The heading's words, as a button that steps back to the months or the
526
+ * years where `max-view` allows, and as text everywhere else.
527
+ */
528
+ private renderHeadingText;
529
+ /**
530
+ * The months of a year, or a page of years, in rows of three, with the
531
+ * controls that turn the page.
532
+ *
533
+ * A grid of its own, `periods`, so a stylesheet tells it from the days, and
534
+ * one tab stop in it, the month or year the keys are on.
535
+ */
536
+ private renderPeriods;
326
537
  protected render(): TemplateResult;
327
538
  /**
328
539
  * The value as a `Date`, at midnight UTC, or `null` while there is no date.