stimeo-ui 0.15.0 → 0.16.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 (267) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/README.md +120 -0
  3. package/dist/cable/index.js +63 -15
  4. package/dist/cable/index.js.map +1 -1
  5. package/dist/controllers/accordion_controller.d.ts +30 -3
  6. package/dist/controllers/accordion_controller.js +98 -9
  7. package/dist/controllers/accordion_controller.js.map +1 -1
  8. package/dist/controllers/alert_dialog_controller.d.ts +8 -7
  9. package/dist/controllers/alert_dialog_controller.js.map +1 -1
  10. package/dist/controllers/announcer_controller.d.ts +3 -2
  11. package/dist/controllers/announcer_controller.js +8 -1
  12. package/dist/controllers/announcer_controller.js.map +1 -1
  13. package/dist/controllers/auto_submit_controller.js +43 -2
  14. package/dist/controllers/auto_submit_controller.js.map +1 -1
  15. package/dist/controllers/avatar_controller.js +1 -1
  16. package/dist/controllers/avatar_controller.js.map +1 -1
  17. package/dist/controllers/breadcrumb_controller.d.ts +10 -7
  18. package/dist/controllers/breadcrumb_controller.js +9 -8
  19. package/dist/controllers/breadcrumb_controller.js.map +1 -1
  20. package/dist/controllers/bulk_select_controller.d.ts +4 -4
  21. package/dist/controllers/bulk_select_controller.js +7 -6
  22. package/dist/controllers/bulk_select_controller.js.map +1 -1
  23. package/dist/controllers/calendar_controller.d.ts +85 -23
  24. package/dist/controllers/calendar_controller.js +323 -123
  25. package/dist/controllers/calendar_controller.js.map +1 -1
  26. package/dist/controllers/carousel_controller.d.ts +67 -22
  27. package/dist/controllers/carousel_controller.js +263 -38
  28. package/dist/controllers/carousel_controller.js.map +1 -1
  29. package/dist/controllers/character_counter_controller.d.ts +1 -1
  30. package/dist/controllers/character_counter_controller.js +40 -2
  31. package/dist/controllers/character_counter_controller.js.map +1 -1
  32. package/dist/controllers/checkbox_controller.js +54 -10
  33. package/dist/controllers/checkbox_controller.js.map +1 -1
  34. package/dist/controllers/clipboard_controller.d.ts +28 -2
  35. package/dist/controllers/clipboard_controller.js +63 -5
  36. package/dist/controllers/clipboard_controller.js.map +1 -1
  37. package/dist/controllers/collapsible_controller.d.ts +25 -1
  38. package/dist/controllers/collapsible_controller.js +99 -14
  39. package/dist/controllers/collapsible_controller.js.map +1 -1
  40. package/dist/controllers/color_picker_controller.d.ts +29 -8
  41. package/dist/controllers/color_picker_controller.js +80 -34
  42. package/dist/controllers/color_picker_controller.js.map +1 -1
  43. package/dist/controllers/combobox_controller.d.ts +10 -1
  44. package/dist/controllers/combobox_controller.js +106 -16
  45. package/dist/controllers/combobox_controller.js.map +1 -1
  46. package/dist/controllers/command_palette_controller.d.ts +3 -3
  47. package/dist/controllers/command_palette_controller.js +35 -3
  48. package/dist/controllers/command_palette_controller.js.map +1 -1
  49. package/dist/controllers/conditional_fields_controller.js +56 -11
  50. package/dist/controllers/conditional_fields_controller.js.map +1 -1
  51. package/dist/controllers/confirm_controller.js +3 -0
  52. package/dist/controllers/confirm_controller.js.map +1 -1
  53. package/dist/controllers/context_menu_controller.d.ts +6 -0
  54. package/dist/controllers/context_menu_controller.js +32 -12
  55. package/dist/controllers/context_menu_controller.js.map +1 -1
  56. package/dist/controllers/countdown_controller.d.ts +30 -1
  57. package/dist/controllers/countdown_controller.js +129 -26
  58. package/dist/controllers/countdown_controller.js.map +1 -1
  59. package/dist/controllers/currency_input_controller.d.ts +74 -15
  60. package/dist/controllers/currency_input_controller.js +205 -58
  61. package/dist/controllers/currency_input_controller.js.map +1 -1
  62. package/dist/controllers/data_grid_controller.d.ts +63 -18
  63. package/dist/controllers/data_grid_controller.js +195 -29
  64. package/dist/controllers/data_grid_controller.js.map +1 -1
  65. package/dist/controllers/date_range_picker_controller.d.ts +34 -6
  66. package/dist/controllers/date_range_picker_controller.js +139 -27
  67. package/dist/controllers/date_range_picker_controller.js.map +1 -1
  68. package/dist/controllers/dialog_controller.d.ts +10 -3
  69. package/dist/controllers/dialog_controller.js +35 -8
  70. package/dist/controllers/dialog_controller.js.map +1 -1
  71. package/dist/controllers/direct_upload_controller.js +22 -4
  72. package/dist/controllers/direct_upload_controller.js.map +1 -1
  73. package/dist/controllers/dirty_form_controller.d.ts +2 -2
  74. package/dist/controllers/dirty_form_controller.js +14 -1
  75. package/dist/controllers/dirty_form_controller.js.map +1 -1
  76. package/dist/controllers/dismissible_controller.js +1 -0
  77. package/dist/controllers/dismissible_controller.js.map +1 -1
  78. package/dist/controllers/drawer_controller.d.ts +18 -10
  79. package/dist/controllers/drawer_controller.js +54 -19
  80. package/dist/controllers/drawer_controller.js.map +1 -1
  81. package/dist/controllers/dropdown_controller.d.ts +9 -3
  82. package/dist/controllers/dropdown_controller.js +36 -9
  83. package/dist/controllers/dropdown_controller.js.map +1 -1
  84. package/dist/controllers/editable_controller.js +34 -0
  85. package/dist/controllers/editable_controller.js.map +1 -1
  86. package/dist/controllers/file_dropzone_controller.js +144 -51
  87. package/dist/controllers/file_dropzone_controller.js.map +1 -1
  88. package/dist/controllers/filter_controller.d.ts +10 -4
  89. package/dist/controllers/filter_controller.js +20 -6
  90. package/dist/controllers/filter_controller.js.map +1 -1
  91. package/dist/controllers/flash_controller.d.ts +26 -6
  92. package/dist/controllers/flash_controller.js +305 -46
  93. package/dist/controllers/flash_controller.js.map +1 -1
  94. package/dist/controllers/focus_controller.js +1 -0
  95. package/dist/controllers/focus_controller.js.map +1 -1
  96. package/dist/controllers/form_field_controller.js +7 -5
  97. package/dist/controllers/form_field_controller.js.map +1 -1
  98. package/dist/controllers/form_validation_controller.js +19 -13
  99. package/dist/controllers/form_validation_controller.js.map +1 -1
  100. package/dist/controllers/frame_loading_controller.js +16 -2
  101. package/dist/controllers/frame_loading_controller.js.map +1 -1
  102. package/dist/controllers/highlight_controller.js +19 -2
  103. package/dist/controllers/highlight_controller.js.map +1 -1
  104. package/dist/controllers/hover_card_controller.d.ts +10 -2
  105. package/dist/controllers/hover_card_controller.js +40 -14
  106. package/dist/controllers/hover_card_controller.js.map +1 -1
  107. package/dist/controllers/idle_controller.d.ts +16 -3
  108. package/dist/controllers/idle_controller.js +90 -5
  109. package/dist/controllers/idle_controller.js.map +1 -1
  110. package/dist/controllers/input_mask_controller.d.ts +5 -2
  111. package/dist/controllers/input_mask_controller.js +65 -9
  112. package/dist/controllers/input_mask_controller.js.map +1 -1
  113. package/dist/controllers/intersection_controller.js +3 -0
  114. package/dist/controllers/intersection_controller.js.map +1 -1
  115. package/dist/controllers/lazy_frame_controller.js +11 -2
  116. package/dist/controllers/lazy_frame_controller.js.map +1 -1
  117. package/dist/controllers/listbox_controller.d.ts +50 -8
  118. package/dist/controllers/listbox_controller.js +203 -45
  119. package/dist/controllers/listbox_controller.js.map +1 -1
  120. package/dist/controllers/masonry_controller.js +0 -2
  121. package/dist/controllers/masonry_controller.js.map +1 -1
  122. package/dist/controllers/menu_controller.d.ts +9 -3
  123. package/dist/controllers/menu_controller.js +45 -16
  124. package/dist/controllers/menu_controller.js.map +1 -1
  125. package/dist/controllers/menubar_controller.d.ts +11 -0
  126. package/dist/controllers/menubar_controller.js +58 -24
  127. package/dist/controllers/menubar_controller.js.map +1 -1
  128. package/dist/controllers/meter_controller.js +9 -5
  129. package/dist/controllers/meter_controller.js.map +1 -1
  130. package/dist/controllers/multi_select_controller.d.ts +18 -3
  131. package/dist/controllers/multi_select_controller.js +278 -104
  132. package/dist/controllers/multi_select_controller.js.map +1 -1
  133. package/dist/controllers/navigation_menu_controller.d.ts +11 -0
  134. package/dist/controllers/navigation_menu_controller.js +48 -15
  135. package/dist/controllers/navigation_menu_controller.js.map +1 -1
  136. package/dist/controllers/nested_form_controller.js +37 -8
  137. package/dist/controllers/nested_form_controller.js.map +1 -1
  138. package/dist/controllers/network_status_controller.js +9 -1
  139. package/dist/controllers/network_status_controller.js.map +1 -1
  140. package/dist/controllers/number_input_controller.d.ts +36 -8
  141. package/dist/controllers/number_input_controller.js +124 -21
  142. package/dist/controllers/number_input_controller.js.map +1 -1
  143. package/dist/controllers/optimistic_controller.js +14 -1
  144. package/dist/controllers/optimistic_controller.js.map +1 -1
  145. package/dist/controllers/otp_controller.d.ts +22 -7
  146. package/dist/controllers/otp_controller.js +198 -55
  147. package/dist/controllers/otp_controller.js.map +1 -1
  148. package/dist/controllers/overflow_indicator_controller.d.ts +8 -12
  149. package/dist/controllers/overflow_indicator_controller.js +84 -13
  150. package/dist/controllers/overflow_indicator_controller.js.map +1 -1
  151. package/dist/controllers/overflow_menu_controller.d.ts +26 -6
  152. package/dist/controllers/overflow_menu_controller.js +112 -41
  153. package/dist/controllers/overflow_menu_controller.js.map +1 -1
  154. package/dist/controllers/pagination_controller.d.ts +19 -11
  155. package/dist/controllers/pagination_controller.js +74 -28
  156. package/dist/controllers/pagination_controller.js.map +1 -1
  157. package/dist/controllers/password_reveal_controller.d.ts +15 -1
  158. package/dist/controllers/password_reveal_controller.js +59 -2
  159. package/dist/controllers/password_reveal_controller.js.map +1 -1
  160. package/dist/controllers/persist_controller.js +30 -8
  161. package/dist/controllers/persist_controller.js.map +1 -1
  162. package/dist/controllers/pointer_drag_controller.js +131 -52
  163. package/dist/controllers/pointer_drag_controller.js.map +1 -1
  164. package/dist/controllers/popover_controller.d.ts +9 -3
  165. package/dist/controllers/popover_controller.js +45 -11
  166. package/dist/controllers/popover_controller.js.map +1 -1
  167. package/dist/controllers/portal_controller.d.ts +1 -1
  168. package/dist/controllers/portal_controller.js +6 -2
  169. package/dist/controllers/portal_controller.js.map +1 -1
  170. package/dist/controllers/preview_guard_controller.js +16 -1
  171. package/dist/controllers/preview_guard_controller.js.map +1 -1
  172. package/dist/controllers/progress_controller.js +8 -4
  173. package/dist/controllers/progress_controller.js.map +1 -1
  174. package/dist/controllers/radio_group_controller.d.ts +6 -4
  175. package/dist/controllers/radio_group_controller.js +42 -17
  176. package/dist/controllers/radio_group_controller.js.map +1 -1
  177. package/dist/controllers/range_slider_controller.d.ts +49 -1
  178. package/dist/controllers/range_slider_controller.js +88 -42
  179. package/dist/controllers/range_slider_controller.js.map +1 -1
  180. package/dist/controllers/rating_controller.d.ts +14 -3
  181. package/dist/controllers/rating_controller.js +39 -15
  182. package/dist/controllers/rating_controller.js.map +1 -1
  183. package/dist/controllers/read_more_controller.d.ts +24 -2
  184. package/dist/controllers/read_more_controller.js +69 -2
  185. package/dist/controllers/read_more_controller.js.map +1 -1
  186. package/dist/controllers/resizable_controller.d.ts +16 -2
  187. package/dist/controllers/resizable_controller.js +82 -22
  188. package/dist/controllers/resizable_controller.js.map +1 -1
  189. package/dist/controllers/scroll_area_controller.js +5 -1
  190. package/dist/controllers/scroll_area_controller.js.map +1 -1
  191. package/dist/controllers/scroll_visibility_controller.js +0 -1
  192. package/dist/controllers/scroll_visibility_controller.js.map +1 -1
  193. package/dist/controllers/scrollspy_controller.d.ts +3 -2
  194. package/dist/controllers/scrollspy_controller.js +6 -0
  195. package/dist/controllers/scrollspy_controller.js.map +1 -1
  196. package/dist/controllers/separator_controller.d.ts +41 -14
  197. package/dist/controllers/separator_controller.js +66 -37
  198. package/dist/controllers/separator_controller.js.map +1 -1
  199. package/dist/controllers/sidebar_controller.d.ts +20 -3
  200. package/dist/controllers/sidebar_controller.js +77 -18
  201. package/dist/controllers/sidebar_controller.js.map +1 -1
  202. package/dist/controllers/skeleton_controller.js +6 -1
  203. package/dist/controllers/skeleton_controller.js.map +1 -1
  204. package/dist/controllers/slider_controller.d.ts +45 -7
  205. package/dist/controllers/slider_controller.js +82 -47
  206. package/dist/controllers/slider_controller.js.map +1 -1
  207. package/dist/controllers/smart_sticky_header_controller.js +11 -1
  208. package/dist/controllers/smart_sticky_header_controller.js.map +1 -1
  209. package/dist/controllers/sortable_controller.js +17 -2
  210. package/dist/controllers/sortable_controller.js.map +1 -1
  211. package/dist/controllers/spinner_controller.js +10 -2
  212. package/dist/controllers/spinner_controller.js.map +1 -1
  213. package/dist/controllers/step_indicator_controller.d.ts +19 -17
  214. package/dist/controllers/step_indicator_controller.js +18 -17
  215. package/dist/controllers/step_indicator_controller.js.map +1 -1
  216. package/dist/controllers/stepper_controller.d.ts +34 -9
  217. package/dist/controllers/stepper_controller.js +101 -19
  218. package/dist/controllers/stepper_controller.js.map +1 -1
  219. package/dist/controllers/stick_to_bottom_controller.d.ts +19 -0
  220. package/dist/controllers/stick_to_bottom_controller.js +75 -5
  221. package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
  222. package/dist/controllers/submit_once_controller.d.ts +3 -2
  223. package/dist/controllers/submit_once_controller.js +16 -3
  224. package/dist/controllers/submit_once_controller.js.map +1 -1
  225. package/dist/controllers/switch_controller.d.ts +29 -7
  226. package/dist/controllers/switch_controller.js +101 -10
  227. package/dist/controllers/switch_controller.js.map +1 -1
  228. package/dist/controllers/tabs_controller.d.ts +12 -0
  229. package/dist/controllers/tabs_controller.js +21 -2
  230. package/dist/controllers/tabs_controller.js.map +1 -1
  231. package/dist/controllers/tags_input_controller.d.ts +15 -3
  232. package/dist/controllers/tags_input_controller.js +209 -59
  233. package/dist/controllers/tags_input_controller.js.map +1 -1
  234. package/dist/controllers/theme_controller.d.ts +20 -3
  235. package/dist/controllers/theme_controller.js +64 -14
  236. package/dist/controllers/theme_controller.js.map +1 -1
  237. package/dist/controllers/time_picker_controller.js +23 -8
  238. package/dist/controllers/time_picker_controller.js.map +1 -1
  239. package/dist/controllers/toast_controller.d.ts +52 -15
  240. package/dist/controllers/toast_controller.js +337 -54
  241. package/dist/controllers/toast_controller.js.map +1 -1
  242. package/dist/controllers/toggle_group_controller.d.ts +49 -7
  243. package/dist/controllers/toggle_group_controller.js +159 -23
  244. package/dist/controllers/toggle_group_controller.js.map +1 -1
  245. package/dist/controllers/toolbar_controller.js +32 -0
  246. package/dist/controllers/toolbar_controller.js.map +1 -1
  247. package/dist/controllers/tooltip_controller.d.ts +8 -0
  248. package/dist/controllers/tooltip_controller.js +39 -13
  249. package/dist/controllers/tooltip_controller.js.map +1 -1
  250. package/dist/controllers/transition_controller.js +4 -0
  251. package/dist/controllers/transition_controller.js.map +1 -1
  252. package/dist/controllers/tree_view_controller.d.ts +39 -8
  253. package/dist/controllers/tree_view_controller.js +169 -16
  254. package/dist/controllers/tree_view_controller.js.map +1 -1
  255. package/dist/index.d.ts +28 -1
  256. package/dist/index.js +4588 -1535
  257. package/dist/index.js.map +1 -1
  258. package/dist/inspector/cli.d.ts +72 -6
  259. package/dist/inspector/cli.js +262 -51
  260. package/dist/inspector/cli.js.map +1 -1
  261. package/dist/inspector/cli_bin.js +309 -51
  262. package/dist/inspector/cli_bin.js.map +1 -1
  263. package/dist/inspector/examples.json +40 -40
  264. package/dist/inspector/manifest.json +525 -59
  265. package/dist/positioning/index.js +2 -0
  266. package/dist/positioning/index.js.map +1 -1
  267. package/package.json +2 -2
@@ -7,6 +7,8 @@ import { Controller } from '@hotwired/stimulus';
7
7
  * <div data-controller="stimeo--calendar"
8
8
  * data-stimeo--calendar-month-value="2026-05"
9
9
  * data-stimeo--calendar-selected-value="2026-05-31">
10
+ * <input type="hidden" name="on" data-stimeo--calendar-target="field" />
11
+ * <input type="hidden" name="month" data-stimeo--calendar-target="monthField" />
10
12
  * <button data-action="click->stimeo--calendar#prev">Previous</button>
11
13
  * <span data-stimeo--calendar-target="label">May 2026</span>
12
14
  * <button data-action="click->stimeo--calendar#next">Next</button>
@@ -27,15 +29,63 @@ import { Controller } from '@hotwired/stimulus';
27
29
  * the `locale` Value, else the nearest `lang` up the ancestor chain, else the
28
30
  * runtime default; a malformed language tag falls back to English so the grid
29
31
  * still paints.
30
- * - Roving tabindex focus tracking (exactly one focusable day at any time).
32
+ * - Without a `month`, the grid opens on the month of the selected day, else on
33
+ * the current month, when an instance first connects, and stays on the month
34
+ * it shows until a month step or the page writes `month` — a later connection
35
+ * of the same instance, after an in-page move or with the identifier added
36
+ * back, keeps it too. Opening on a month writes nothing to `month`.
37
+ * - Roving tabindex focus tracking (exactly one focusable day at any time). The
38
+ * tab stop opens on the selected day, else on today when the shown month
39
+ * holds it, else on the 1st of the shown month; a selected day the grid does
40
+ * not show leaves it on the 1st.
31
41
  * - Full grid keyboard controls (arrows, PageUp/Down, Home/End, Shift+PageUp/Down).
32
42
  * - Automatic month wrapping and date clamping for missing dates (e.g. leap years, 31st to 30th).
43
+ * - `min`, `max` and `weekStart` changed at runtime repaint the month on screen
44
+ * once connected, and DOM focus in the grid stays on the day it was on while
45
+ * that day is still shown.
46
+ * - A `month` that moves the painted month — written by application code, a
47
+ * morph, or the grid's own month steps — takes DOM focus in the grid to the
48
+ * tab stop of the new month. A key that crosses into another month makes the
49
+ * day it moved to that tab stop, so focus lands there.
50
+ * - An `aria-disabled` the consumer wrote on a day stays with that date while
51
+ * the grid shows it, in whichever cell a repaint moves the date to.
52
+ *
53
+ * `selected` is a request: the grid publishes it as the selection only while
54
+ * `min` / `max` allow that day. A day outside them is neither `aria-selected`
55
+ * nor mirrored into `field`, and it comes back once the bounds allow it again;
56
+ * the Value itself is never rewritten.
33
57
  *
34
58
  * `monthchange` dispatches `{ month: string }`; `select` dispatches `{ date: string }`.
59
+ * `reconcile` dispatches `{ date: string }` — the selection now published, empty
60
+ * when there is none — once per paint in which a change the page made after
61
+ * connect moved the published selection: `selected` written by application
62
+ * code or a morph, or `min` / `max` withholding the requested day or giving it
63
+ * back. A selection the user picks is reported as `select` alone. Connecting,
64
+ * or connecting again, reports neither `monthchange` nor `reconcile`, whichever
65
+ * month the grid opens on.
66
+ *
67
+ * Two optional fields carry the grid's state into a form, so a server can serve
68
+ * the days it is showing: `field` mirrors the published selection (`YYYY-MM-DD`,
69
+ * empty when nothing is selected) and `monthField` the month being painted
70
+ * (`YYYY-MM`). A move the user made — the previous/next controls, a month
71
+ * crossing by keyboard, picking a day — emits a native bubbling `change` from
72
+ * the field that moved, the way a form control does, so `stimeo--auto-submit`
73
+ * and form-level validation hear it. A repaint driven by the Values, by a
74
+ * replacement field, or by the initial paint refreshes both mirrors silently,
75
+ * and so does a move of the selection a change the page made, which `reconcile`
76
+ * reports even in a paint the user's own move asked for.
77
+ *
78
+ * A day `min` / `max` exclude cannot be picked, even before a paint has marked
79
+ * its cell. A pick is painted — `aria-selected` and both fields — before
80
+ * anything reports it: each field that moved, then `monthchange` when the paint
81
+ * moved the month, then `select`. A listener that replaces the selection before
82
+ * these reports are all out — by picking another day, or with a paint in which
83
+ * `min` / `max` withhold this one — has the newer selection report itself, and
84
+ * what is still pending for the replaced pick is not sent.
35
85
  *
36
86
  * @remarks
37
- * Behavior only. The controller updates classes, attributes (aria-selected, data-outside, etc.),
38
- * and text contents dynamically on 42 pre-allocated `day` targets.
87
+ * Behavior only. The controller updates attributes (`aria-selected`, `data-outside`,
88
+ * `tabindex`, …) and text content on the 42 pre-allocated `day` targets.
39
89
  */
40
90
  declare class CalendarController extends Controller<HTMLElement> {
41
91
  #private;
@@ -67,12 +117,16 @@ declare class CalendarController extends Controller<HTMLElement> {
67
117
  };
68
118
  };
69
119
  static actions: readonly ["next", "onKeydown", "prev", "selectByClick"];
70
- static events: readonly ["monthchange", "select"];
120
+ static events: readonly ["monthchange", "reconcile", "select"];
71
121
  readonly labelTarget: HTMLElement;
72
122
  readonly gridTarget: HTMLElement;
73
123
  readonly dayTargets: HTMLElement[];
124
+ readonly fieldTarget: HTMLInputElement;
125
+ readonly monthFieldTarget: HTMLInputElement;
74
126
  readonly hasLabelTarget: boolean;
75
127
  readonly hasGridTarget: boolean;
128
+ readonly hasFieldTarget: boolean;
129
+ readonly hasMonthFieldTarget: boolean;
76
130
  monthValue: string;
77
131
  selectedValue: string;
78
132
  minValue: string;
@@ -82,11 +136,14 @@ declare class CalendarController extends Controller<HTMLElement> {
82
136
  /** The date currently receiving focus in the grid (local time). */
83
137
  focusedDate: Date;
84
138
  connect(): void;
85
- /** Cancels any pending deferred focus so it never fires on a detached element. */
139
+ /**
140
+ * Drops a pending repaint and a pending focus move, and stops reporting, so
141
+ * nothing reaches for a grid that is not connected.
142
+ */
86
143
  disconnect(): void;
87
144
  /**
88
- * Stimulus lifecycle callback triggered automatically when the monthValue changes.
89
- * Forces a re-render of the date grid and updates labels.
145
+ * Paints the month `month` names, whether application code, a morph or the
146
+ * grid's own navigation wrote it; focus in the grid follows to the tab stop.
90
147
  */
91
148
  monthValueChanged(): void;
92
149
  /**
@@ -94,15 +151,28 @@ declare class CalendarController extends Controller<HTMLElement> {
94
151
  *
95
152
  * Stimulus runs this for the initial Value too, before `connect()`. The paint
96
153
  * it triggers is idempotent — the month comes from `month` (or, while that is
97
- * still empty, from `focusedDate`), and `monthchange` only reports a move away
98
- * from a month already announced, so the first paint never reports one.
154
+ * still empty, from `focusedDate`) — and a grid that has not connected
155
+ * reports nothing, so that paint never reports a month.
99
156
  */
100
157
  localeValueChanged(): void;
101
158
  /**
102
- * Stimulus lifecycle callback triggered automatically when the selectedValue changes.
103
- * Re-renders grid cells to update `aria-selected` indicators.
159
+ * Repaints `aria-selected` and the field when the requested day changes, and
160
+ * moves the tab stop to the day the grid now publishes. A request `min` /
161
+ * `max` withhold is not published, so the tab stop stays where it was.
104
162
  */
105
163
  selectedValueChanged(): void;
164
+ /** Repaints when `min` changes after connect, so the disabled days and the selection follow. */
165
+ minValueChanged(): void;
166
+ /** Repaints when `max` changes after connect, so the disabled days and the selection follow. */
167
+ maxValueChanged(): void;
168
+ /**
169
+ * Lays the grid out again when `weekStart` changes after connect, so every
170
+ * date moves to the column of its weekday.
171
+ *
172
+ * Only the day cells are painted: column headers are author markup, so the
173
+ * author updates them together with the Value.
174
+ */
175
+ weekStartValueChanged(): void;
106
176
  /** Navigates to the previous month. */
107
177
  prev(event?: Event): void;
108
178
  /** Navigates to the next month. */
@@ -111,18 +181,10 @@ declare class CalendarController extends Controller<HTMLElement> {
111
181
  selectByClick(event: MouseEvent): void;
112
182
  /** Handles grid cell keyboard navigation and triggers selection. */
113
183
  onKeydown(event: KeyboardEvent): void;
114
- /**
115
- * Renders the grid days and updates the month/year label, then reports the
116
- * painted month once it differs from the one already announced.
117
- *
118
- * The report belongs to the paint, not to the `month` Value: the Value is only
119
- * one of the things that decide the month on screen. While a malformed `month`
120
- * falls back, changing `selected` and selecting a neighbouring month's cell
121
- * move the painted month too, and both repaint from here. Reading the report
122
- * off the paint keeps the event naming the month the grid shows, in the
123
- * `YYYY-MM` the detail contract promises, whichever route repainted.
124
- */
125
- render(): void;
184
+ /** Fills a selected-day field inserted or replaced at runtime with the published selection. */
185
+ fieldTargetConnected(field: HTMLInputElement): void;
186
+ /** Fills a painted-month field inserted or replaced at runtime. */
187
+ monthFieldTargetConnected(field: HTMLInputElement): void;
126
188
  selectDayElement(dayElement: HTMLElement): void;
127
189
  }
128
190