stimeo-ui 0.16.0 → 0.18.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 (337) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +27 -11
  3. package/dist/cable/index.d.ts +88 -31
  4. package/dist/cable/index.js +384 -449
  5. package/dist/cable/index.js.map +1 -1
  6. package/dist/coerce-JtZVNG5h.d.ts +20 -0
  7. package/dist/controllers/accordion_controller.d.ts +4 -2
  8. package/dist/controllers/accordion_controller.js +174 -55
  9. package/dist/controllers/accordion_controller.js.map +1 -1
  10. package/dist/controllers/alert_dialog_controller.d.ts +12 -2
  11. package/dist/controllers/alert_dialog_controller.js +903 -235
  12. package/dist/controllers/alert_dialog_controller.js.map +1 -1
  13. package/dist/controllers/announcer_controller.d.ts +37 -5
  14. package/dist/controllers/announcer_controller.js +238 -205
  15. package/dist/controllers/announcer_controller.js.map +1 -1
  16. package/dist/controllers/aspect_ratio_controller.js +0 -10
  17. package/dist/controllers/aspect_ratio_controller.js.map +1 -1
  18. package/dist/controllers/auto_submit_controller.d.ts +30 -6
  19. package/dist/controllers/auto_submit_controller.js +414 -145
  20. package/dist/controllers/auto_submit_controller.js.map +1 -1
  21. package/dist/controllers/avatar_controller.js +185 -107
  22. package/dist/controllers/avatar_controller.js.map +1 -1
  23. package/dist/controllers/breadcrumb_controller.js +0 -130
  24. package/dist/controllers/breadcrumb_controller.js.map +1 -1
  25. package/dist/controllers/bulk_select_controller.d.ts +21 -3
  26. package/dist/controllers/bulk_select_controller.js +282 -58
  27. package/dist/controllers/bulk_select_controller.js.map +1 -1
  28. package/dist/controllers/calendar_controller.d.ts +38 -16
  29. package/dist/controllers/calendar_controller.js +228 -260
  30. package/dist/controllers/calendar_controller.js.map +1 -1
  31. package/dist/controllers/carousel_controller.d.ts +43 -12
  32. package/dist/controllers/carousel_controller.js +536 -436
  33. package/dist/controllers/carousel_controller.js.map +1 -1
  34. package/dist/controllers/character_counter_controller.d.ts +44 -7
  35. package/dist/controllers/character_counter_controller.js +493 -207
  36. package/dist/controllers/character_counter_controller.js.map +1 -1
  37. package/dist/controllers/checkbox_controller.d.ts +7 -2
  38. package/dist/controllers/checkbox_controller.js +38 -74
  39. package/dist/controllers/checkbox_controller.js.map +1 -1
  40. package/dist/controllers/clipboard_controller.d.ts +16 -5
  41. package/dist/controllers/clipboard_controller.js +261 -149
  42. package/dist/controllers/clipboard_controller.js.map +1 -1
  43. package/dist/controllers/collapsible_controller.d.ts +17 -5
  44. package/dist/controllers/collapsible_controller.js +304 -120
  45. package/dist/controllers/collapsible_controller.js.map +1 -1
  46. package/dist/controllers/color_picker_controller.d.ts +18 -6
  47. package/dist/controllers/color_picker_controller.js +178 -146
  48. package/dist/controllers/color_picker_controller.js.map +1 -1
  49. package/dist/controllers/combobox_controller.d.ts +24 -6
  50. package/dist/controllers/combobox_controller.js +522 -156
  51. package/dist/controllers/combobox_controller.js.map +1 -1
  52. package/dist/controllers/command_palette_controller.d.ts +51 -20
  53. package/dist/controllers/command_palette_controller.js +1156 -395
  54. package/dist/controllers/command_palette_controller.js.map +1 -1
  55. package/dist/controllers/conditional_fields_controller.d.ts +15 -2
  56. package/dist/controllers/conditional_fields_controller.js +300 -171
  57. package/dist/controllers/conditional_fields_controller.js.map +1 -1
  58. package/dist/controllers/confirm_controller.d.ts +49 -12
  59. package/dist/controllers/confirm_controller.js +980 -262
  60. package/dist/controllers/confirm_controller.js.map +1 -1
  61. package/dist/controllers/context_menu_controller.d.ts +80 -18
  62. package/dist/controllers/context_menu_controller.js +346 -153
  63. package/dist/controllers/context_menu_controller.js.map +1 -1
  64. package/dist/controllers/count_up_controller.d.ts +13 -1
  65. package/dist/controllers/count_up_controller.js +73 -21
  66. package/dist/controllers/count_up_controller.js.map +1 -1
  67. package/dist/controllers/countdown_controller.d.ts +47 -3
  68. package/dist/controllers/countdown_controller.js +281 -158
  69. package/dist/controllers/countdown_controller.js.map +1 -1
  70. package/dist/controllers/currency_input_controller.d.ts +93 -10
  71. package/dist/controllers/currency_input_controller.js +575 -225
  72. package/dist/controllers/currency_input_controller.js.map +1 -1
  73. package/dist/controllers/data_grid_controller.d.ts +25 -12
  74. package/dist/controllers/data_grid_controller.js +248 -214
  75. package/dist/controllers/data_grid_controller.js.map +1 -1
  76. package/dist/controllers/date_range_picker_controller.d.ts +42 -14
  77. package/dist/controllers/date_range_picker_controller.js +338 -235
  78. package/dist/controllers/date_range_picker_controller.js.map +1 -1
  79. package/dist/controllers/dialog_controller.d.ts +17 -6
  80. package/dist/controllers/dialog_controller.js +899 -237
  81. package/dist/controllers/dialog_controller.js.map +1 -1
  82. package/dist/controllers/direct_upload_controller.d.ts +25 -8
  83. package/dist/controllers/direct_upload_controller.js +97 -167
  84. package/dist/controllers/direct_upload_controller.js.map +1 -1
  85. package/dist/controllers/dirty_form_controller.d.ts +6 -1
  86. package/dist/controllers/dirty_form_controller.js +72 -69
  87. package/dist/controllers/dirty_form_controller.js.map +1 -1
  88. package/dist/controllers/dismissible_controller.d.ts +19 -0
  89. package/dist/controllers/dismissible_controller.js +196 -24
  90. package/dist/controllers/dismissible_controller.js.map +1 -1
  91. package/dist/controllers/drawer_controller.d.ts +39 -11
  92. package/dist/controllers/drawer_controller.js +974 -355
  93. package/dist/controllers/drawer_controller.js.map +1 -1
  94. package/dist/controllers/dropdown_controller.d.ts +31 -1
  95. package/dist/controllers/dropdown_controller.js +339 -96
  96. package/dist/controllers/dropdown_controller.js.map +1 -1
  97. package/dist/controllers/editable_controller.d.ts +12 -1
  98. package/dist/controllers/editable_controller.js +315 -88
  99. package/dist/controllers/editable_controller.js.map +1 -1
  100. package/dist/controllers/empty_state_controller.js +79 -58
  101. package/dist/controllers/empty_state_controller.js.map +1 -1
  102. package/dist/controllers/file_dropzone_controller.d.ts +63 -18
  103. package/dist/controllers/file_dropzone_controller.js +322 -211
  104. package/dist/controllers/file_dropzone_controller.js.map +1 -1
  105. package/dist/controllers/filter_controller.js +77 -42
  106. package/dist/controllers/filter_controller.js.map +1 -1
  107. package/dist/controllers/flash_controller.d.ts +35 -12
  108. package/dist/controllers/flash_controller.js +238 -347
  109. package/dist/controllers/flash_controller.js.map +1 -1
  110. package/dist/controllers/focus_controller.d.ts +15 -6
  111. package/dist/controllers/focus_controller.js +679 -240
  112. package/dist/controllers/focus_controller.js.map +1 -1
  113. package/dist/controllers/form_field_controller.js +156 -132
  114. package/dist/controllers/form_field_controller.js.map +1 -1
  115. package/dist/controllers/form_validation_controller.d.ts +3 -3
  116. package/dist/controllers/form_validation_controller.js +31 -97
  117. package/dist/controllers/form_validation_controller.js.map +1 -1
  118. package/dist/controllers/frame_loading_controller.d.ts +47 -14
  119. package/dist/controllers/frame_loading_controller.js +275 -217
  120. package/dist/controllers/frame_loading_controller.js.map +1 -1
  121. package/dist/controllers/highlight_controller.d.ts +27 -6
  122. package/dist/controllers/highlight_controller.js +107 -75
  123. package/dist/controllers/highlight_controller.js.map +1 -1
  124. package/dist/controllers/hover_card_controller.d.ts +60 -4
  125. package/dist/controllers/hover_card_controller.js +327 -130
  126. package/dist/controllers/hover_card_controller.js.map +1 -1
  127. package/dist/controllers/idle_controller.d.ts +48 -6
  128. package/dist/controllers/idle_controller.js +271 -101
  129. package/dist/controllers/idle_controller.js.map +1 -1
  130. package/dist/controllers/input_mask_controller.d.ts +30 -13
  131. package/dist/controllers/input_mask_controller.js +483 -97
  132. package/dist/controllers/input_mask_controller.js.map +1 -1
  133. package/dist/controllers/intersection_controller.d.ts +32 -13
  134. package/dist/controllers/intersection_controller.js +150 -106
  135. package/dist/controllers/intersection_controller.js.map +1 -1
  136. package/dist/controllers/lazy_frame_controller.d.ts +19 -2
  137. package/dist/controllers/lazy_frame_controller.js +24 -68
  138. package/dist/controllers/lazy_frame_controller.js.map +1 -1
  139. package/dist/controllers/listbox_controller.d.ts +44 -9
  140. package/dist/controllers/listbox_controller.js +523 -240
  141. package/dist/controllers/listbox_controller.js.map +1 -1
  142. package/dist/controllers/local_time_controller.d.ts +9 -7
  143. package/dist/controllers/local_time_controller.js +102 -77
  144. package/dist/controllers/local_time_controller.js.map +1 -1
  145. package/dist/controllers/masonry_controller.d.ts +11 -3
  146. package/dist/controllers/masonry_controller.js +80 -96
  147. package/dist/controllers/masonry_controller.js.map +1 -1
  148. package/dist/controllers/menu_controller.d.ts +55 -11
  149. package/dist/controllers/menu_controller.js +302 -188
  150. package/dist/controllers/menu_controller.js.map +1 -1
  151. package/dist/controllers/menubar_controller.d.ts +51 -9
  152. package/dist/controllers/menubar_controller.js +232 -345
  153. package/dist/controllers/menubar_controller.js.map +1 -1
  154. package/dist/controllers/meter_controller.d.ts +33 -20
  155. package/dist/controllers/meter_controller.js +417 -87
  156. package/dist/controllers/meter_controller.js.map +1 -1
  157. package/dist/controllers/multi_select_controller.d.ts +48 -18
  158. package/dist/controllers/multi_select_controller.js +785 -393
  159. package/dist/controllers/multi_select_controller.js.map +1 -1
  160. package/dist/controllers/navigation_menu_controller.d.ts +27 -6
  161. package/dist/controllers/navigation_menu_controller.js +190 -250
  162. package/dist/controllers/navigation_menu_controller.js.map +1 -1
  163. package/dist/controllers/nested_form_controller.d.ts +10 -0
  164. package/dist/controllers/nested_form_controller.js +396 -192
  165. package/dist/controllers/nested_form_controller.js.map +1 -1
  166. package/dist/controllers/network_status_controller.d.ts +23 -0
  167. package/dist/controllers/network_status_controller.js +268 -62
  168. package/dist/controllers/network_status_controller.js.map +1 -1
  169. package/dist/controllers/number_input_controller.d.ts +50 -8
  170. package/dist/controllers/number_input_controller.js +610 -303
  171. package/dist/controllers/number_input_controller.js.map +1 -1
  172. package/dist/controllers/optimistic_controller.d.ts +8 -5
  173. package/dist/controllers/optimistic_controller.js +45 -87
  174. package/dist/controllers/optimistic_controller.js.map +1 -1
  175. package/dist/controllers/otp_controller.d.ts +55 -8
  176. package/dist/controllers/otp_controller.js +658 -255
  177. package/dist/controllers/otp_controller.js.map +1 -1
  178. package/dist/controllers/overflow_indicator_controller.d.ts +5 -0
  179. package/dist/controllers/overflow_indicator_controller.js +122 -113
  180. package/dist/controllers/overflow_indicator_controller.js.map +1 -1
  181. package/dist/controllers/overflow_menu_controller.d.ts +58 -20
  182. package/dist/controllers/overflow_menu_controller.js +470 -295
  183. package/dist/controllers/overflow_menu_controller.js.map +1 -1
  184. package/dist/controllers/pagination_controller.d.ts +37 -7
  185. package/dist/controllers/pagination_controller.js +332 -123
  186. package/dist/controllers/pagination_controller.js.map +1 -1
  187. package/dist/controllers/password_reveal_controller.d.ts +46 -8
  188. package/dist/controllers/password_reveal_controller.js +392 -121
  189. package/dist/controllers/password_reveal_controller.js.map +1 -1
  190. package/dist/controllers/password_strength_controller.d.ts +15 -6
  191. package/dist/controllers/password_strength_controller.js +111 -158
  192. package/dist/controllers/password_strength_controller.js.map +1 -1
  193. package/dist/controllers/persist_controller.d.ts +11 -4
  194. package/dist/controllers/persist_controller.js +165 -111
  195. package/dist/controllers/persist_controller.js.map +1 -1
  196. package/dist/controllers/pointer_drag_controller.d.ts +35 -12
  197. package/dist/controllers/pointer_drag_controller.js +434 -188
  198. package/dist/controllers/pointer_drag_controller.js.map +1 -1
  199. package/dist/controllers/popover_controller.d.ts +41 -5
  200. package/dist/controllers/popover_controller.js +269 -113
  201. package/dist/controllers/popover_controller.js.map +1 -1
  202. package/dist/controllers/portal_controller.d.ts +44 -4
  203. package/dist/controllers/portal_controller.js +215 -76
  204. package/dist/controllers/portal_controller.js.map +1 -1
  205. package/dist/controllers/preview_guard_controller.d.ts +10 -4
  206. package/dist/controllers/preview_guard_controller.js +243 -116
  207. package/dist/controllers/preview_guard_controller.js.map +1 -1
  208. package/dist/controllers/progress_controller.d.ts +20 -19
  209. package/dist/controllers/progress_controller.js +391 -78
  210. package/dist/controllers/progress_controller.js.map +1 -1
  211. package/dist/controllers/radio_group_controller.d.ts +21 -9
  212. package/dist/controllers/radio_group_controller.js +278 -211
  213. package/dist/controllers/radio_group_controller.js.map +1 -1
  214. package/dist/controllers/range_slider_controller.d.ts +47 -6
  215. package/dist/controllers/range_slider_controller.js +220 -113
  216. package/dist/controllers/range_slider_controller.js.map +1 -1
  217. package/dist/controllers/rating_controller.d.ts +20 -4
  218. package/dist/controllers/rating_controller.js +458 -211
  219. package/dist/controllers/rating_controller.js.map +1 -1
  220. package/dist/controllers/read_more_controller.d.ts +2 -0
  221. package/dist/controllers/read_more_controller.js +138 -63
  222. package/dist/controllers/read_more_controller.js.map +1 -1
  223. package/dist/controllers/reading_progress_controller.d.ts +1 -1
  224. package/dist/controllers/reading_progress_controller.js +166 -137
  225. package/dist/controllers/reading_progress_controller.js.map +1 -1
  226. package/dist/controllers/relative_time_controller.d.ts +20 -6
  227. package/dist/controllers/relative_time_controller.js +211 -112
  228. package/dist/controllers/relative_time_controller.js.map +1 -1
  229. package/dist/controllers/reset_on_restore_controller.d.ts +85 -0
  230. package/dist/controllers/{reset_before_cache_controller.js → reset_on_restore_controller.js} +103 -38
  231. package/dist/controllers/reset_on_restore_controller.js.map +1 -0
  232. package/dist/controllers/resizable_controller.d.ts +31 -2
  233. package/dist/controllers/resizable_controller.js +299 -150
  234. package/dist/controllers/resizable_controller.js.map +1 -1
  235. package/dist/controllers/roving_controller.d.ts +3 -3
  236. package/dist/controllers/roving_controller.js +49 -88
  237. package/dist/controllers/roving_controller.js.map +1 -1
  238. package/dist/controllers/scroll_area_controller.d.ts +7 -3
  239. package/dist/controllers/scroll_area_controller.js +490 -246
  240. package/dist/controllers/scroll_area_controller.js.map +1 -1
  241. package/dist/controllers/scroll_restore_controller.d.ts +3 -3
  242. package/dist/controllers/scroll_restore_controller.js +14 -55
  243. package/dist/controllers/scroll_restore_controller.js.map +1 -1
  244. package/dist/controllers/scroll_visibility_controller.d.ts +28 -12
  245. package/dist/controllers/scroll_visibility_controller.js +432 -149
  246. package/dist/controllers/scroll_visibility_controller.js.map +1 -1
  247. package/dist/controllers/scrollspy_controller.d.ts +6 -1
  248. package/dist/controllers/scrollspy_controller.js +193 -248
  249. package/dist/controllers/scrollspy_controller.js.map +1 -1
  250. package/dist/controllers/separator_controller.d.ts +20 -5
  251. package/dist/controllers/separator_controller.js +285 -142
  252. package/dist/controllers/separator_controller.js.map +1 -1
  253. package/dist/controllers/sidebar_controller.d.ts +65 -8
  254. package/dist/controllers/sidebar_controller.js +1069 -404
  255. package/dist/controllers/sidebar_controller.js.map +1 -1
  256. package/dist/controllers/skeleton_controller.d.ts +23 -0
  257. package/dist/controllers/skeleton_controller.js +259 -101
  258. package/dist/controllers/skeleton_controller.js.map +1 -1
  259. package/dist/controllers/slider_controller.d.ts +29 -2
  260. package/dist/controllers/slider_controller.js +187 -86
  261. package/dist/controllers/slider_controller.js.map +1 -1
  262. package/dist/controllers/smart_sticky_header_controller.d.ts +22 -4
  263. package/dist/controllers/smart_sticky_header_controller.js +173 -66
  264. package/dist/controllers/smart_sticky_header_controller.js.map +1 -1
  265. package/dist/controllers/sortable_controller.d.ts +4 -4
  266. package/dist/controllers/sortable_controller.js +26 -125
  267. package/dist/controllers/sortable_controller.js.map +1 -1
  268. package/dist/controllers/spinner_controller.d.ts +39 -4
  269. package/dist/controllers/spinner_controller.js +288 -173
  270. package/dist/controllers/spinner_controller.js.map +1 -1
  271. package/dist/controllers/step_indicator_controller.d.ts +9 -4
  272. package/dist/controllers/step_indicator_controller.js +105 -46
  273. package/dist/controllers/step_indicator_controller.js.map +1 -1
  274. package/dist/controllers/stepper_controller.d.ts +14 -6
  275. package/dist/controllers/stepper_controller.js +120 -73
  276. package/dist/controllers/stepper_controller.js.map +1 -1
  277. package/dist/controllers/stick_to_bottom_controller.d.ts +9 -1
  278. package/dist/controllers/stick_to_bottom_controller.js +275 -140
  279. package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
  280. package/dist/controllers/sticky_observer_controller.d.ts +11 -0
  281. package/dist/controllers/sticky_observer_controller.js +220 -49
  282. package/dist/controllers/sticky_observer_controller.js.map +1 -1
  283. package/dist/controllers/submit_once_controller.d.ts +24 -8
  284. package/dist/controllers/submit_once_controller.js +376 -227
  285. package/dist/controllers/submit_once_controller.js.map +1 -1
  286. package/dist/controllers/switch_controller.d.ts +18 -4
  287. package/dist/controllers/switch_controller.js +201 -84
  288. package/dist/controllers/switch_controller.js.map +1 -1
  289. package/dist/controllers/tabs_controller.d.ts +9 -6
  290. package/dist/controllers/tabs_controller.js +41 -30
  291. package/dist/controllers/tabs_controller.js.map +1 -1
  292. package/dist/controllers/tags_input_controller.d.ts +16 -3
  293. package/dist/controllers/tags_input_controller.js +293 -173
  294. package/dist/controllers/tags_input_controller.js.map +1 -1
  295. package/dist/controllers/textarea_autosize_controller.d.ts +11 -1
  296. package/dist/controllers/textarea_autosize_controller.js +108 -74
  297. package/dist/controllers/textarea_autosize_controller.js.map +1 -1
  298. package/dist/controllers/theme_controller.d.ts +24 -11
  299. package/dist/controllers/theme_controller.js +140 -116
  300. package/dist/controllers/theme_controller.js.map +1 -1
  301. package/dist/controllers/time_picker_controller.d.ts +55 -5
  302. package/dist/controllers/time_picker_controller.js +331 -127
  303. package/dist/controllers/time_picker_controller.js.map +1 -1
  304. package/dist/controllers/toast_controller.d.ts +40 -16
  305. package/dist/controllers/toast_controller.js +244 -324
  306. package/dist/controllers/toast_controller.js.map +1 -1
  307. package/dist/controllers/toggle_group_controller.d.ts +14 -6
  308. package/dist/controllers/toggle_group_controller.js +252 -191
  309. package/dist/controllers/toggle_group_controller.js.map +1 -1
  310. package/dist/controllers/toolbar_controller.d.ts +8 -6
  311. package/dist/controllers/toolbar_controller.js +219 -120
  312. package/dist/controllers/toolbar_controller.js.map +1 -1
  313. package/dist/controllers/tooltip_controller.d.ts +49 -4
  314. package/dist/controllers/tooltip_controller.js +158 -124
  315. package/dist/controllers/tooltip_controller.js.map +1 -1
  316. package/dist/controllers/transition_controller.d.ts +22 -4
  317. package/dist/controllers/transition_controller.js +123 -119
  318. package/dist/controllers/transition_controller.js.map +1 -1
  319. package/dist/controllers/tree_view_controller.d.ts +22 -12
  320. package/dist/controllers/tree_view_controller.js +283 -369
  321. package/dist/controllers/tree_view_controller.js.map +1 -1
  322. package/dist/index.d.ts +10 -5
  323. package/dist/index.js +8573 -10410
  324. package/dist/index.js.map +1 -1
  325. package/dist/inspector/cli.d.ts +38 -14
  326. package/dist/inspector/cli.js +108 -40
  327. package/dist/inspector/cli.js.map +1 -1
  328. package/dist/inspector/cli_bin.js +145 -64
  329. package/dist/inspector/cli_bin.js.map +1 -1
  330. package/dist/inspector/examples.json +20 -20
  331. package/dist/inspector/manifest.json +802 -101
  332. package/dist/positioning/index.d.ts +15 -7
  333. package/dist/positioning/index.js +154 -47
  334. package/dist/positioning/index.js.map +1 -1
  335. package/package.json +11 -10
  336. package/dist/controllers/reset_before_cache_controller.d.ts +0 -76
  337. package/dist/controllers/reset_before_cache_controller.js.map +0 -1
@@ -1,8 +1,27 @@
1
1
  import { Controller } from '@hotwired/stimulus';
2
2
 
3
- // src/controllers/pagination_controller.ts
3
+ var FOCUS_EVENTS = /* @__PURE__ */ new Set(["blur", "focus", "focusin", "focusout"]);
4
+ var POINTER_EVENTS = /* @__PURE__ */ new Set(["mouseenter", "mouseleave", "pointerenter", "pointerleave"]);
5
+ function stateReasonFor(event) {
6
+ if (!event) return "api";
7
+ if (FOCUS_EVENTS.has(event.type)) return "focus";
8
+ if (POINTER_EVENTS.has(event.type)) return "pointer";
9
+ return "user";
10
+ }
11
+
12
+ function actionSource(source) {
13
+ if (source instanceof HTMLElement) {
14
+ return { event: null, host: source, origin: source, reason: "api" };
15
+ }
16
+ const event = source ?? null;
17
+ return {
18
+ event,
19
+ host: event?.currentTarget instanceof Element ? event.currentTarget : null,
20
+ origin: event?.target instanceof Element ? event.target : null,
21
+ reason: stateReasonFor(event)
22
+ };
23
+ }
4
24
 
5
- // src/utils/focus_candidate.ts
6
25
  function inheritsFieldsetDisabled(control) {
7
26
  let fieldset = control.closest("fieldset[disabled]");
8
27
  while (fieldset) {
@@ -12,35 +31,60 @@ function inheritsFieldsetDisabled(control) {
12
31
  }
13
32
  return false;
14
33
  }
34
+ function unslotted(element) {
35
+ return element.assignedSlot === null && element.parentElement?.shadowRoot != null;
36
+ }
37
+ function flatTreeParent(element) {
38
+ if (unslotted(element)) return null;
39
+ const parent = element.assignedSlot ?? element.parentNode;
40
+ if (parent instanceof ShadowRoot) return parent.host;
41
+ return parent instanceof Element ? parent : null;
42
+ }
15
43
  function canTakeFocus(element) {
16
- if (element.closest("[hidden], [inert]")) return false;
44
+ for (let node = element; node; node = flatTreeParent(node)) {
45
+ if (unslotted(node) || node.matches("[hidden], [inert]")) return false;
46
+ }
17
47
  if (element instanceof HTMLInputElement && element.type === "hidden") return false;
18
48
  if (!("disabled" in element)) return true;
19
49
  if (element.disabled) return false;
20
50
  return !inheritsFieldsetDisabled(element);
21
51
  }
52
+ function deepActiveElement(ownerDocument) {
53
+ let active = ownerDocument.activeElement;
54
+ while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;
55
+ return active;
56
+ }
57
+
58
+ var ListenerSet = class {
59
+ #abort = new AbortController();
60
+ add(target, type, handler, options) {
61
+ target.addEventListener(type, handler, { ...options, signal: this.#abort.signal });
62
+ }
63
+ dispose() {
64
+ this.#abort.abort();
65
+ this.#abort = new AbortController();
66
+ }
67
+ };
22
68
 
23
- // src/utils/microtask_coalescer.ts
24
69
  var MicrotaskCoalescer = class {
25
70
  #run;
26
71
  #queued = false;
27
72
  #active = false;
28
73
  #generation = 0;
29
- /** @param run - the single reconciliation pass, invoked at most once per batch. */
30
74
  constructor(run) {
31
75
  this.#run = run;
32
76
  }
33
- /** Opens the window in which {@link schedule} is honoured; call from `connect()`. */
34
77
  activate() {
35
78
  this.#active = true;
36
79
  }
37
- /** Closes the window and drops any pending pass; call from `disconnect()`. */
38
80
  cancel() {
39
81
  this.#active = false;
40
82
  this.#queued = false;
41
83
  this.#generation += 1;
42
84
  }
43
- /** Requests one pass after the batch settles. Idempotent; inert outside the window. */
85
+ get pending() {
86
+ return this.#queued;
87
+ }
44
88
  schedule() {
45
89
  if (!this.#active || this.#queued) return;
46
90
  this.#queued = true;
@@ -53,171 +97,329 @@ var MicrotaskCoalescer = class {
53
97
  }
54
98
  };
55
99
 
56
- // src/utils/before_cache_reset.ts
57
- var BeforeCacheReset = class _BeforeCacheReset {
58
- /** Every subscribed instance, iterated by the one shared document listener. */
59
- static #subscribers = /* @__PURE__ */ new Set();
60
- /** The shared listener; installed while at least one instance is subscribed. */
61
- static #onBeforeCache = () => {
62
- for (const subscriber of _BeforeCacheReset.#subscribers) subscriber.#rewind();
63
- };
64
- #rewind;
65
- /** @param rewind - the pass that returns this controller's state to its initial form. */
66
- constructor(rewind) {
67
- this.#rewind = rewind;
100
+ var MorphRenderWatcher = class {
101
+ #listeners = new ListenerSet();
102
+ #pass;
103
+ #element = null;
104
+ #onMorph = () => this.#pass.schedule();
105
+ constructor(run) {
106
+ this.#pass = new MicrotaskCoalescer(run);
68
107
  }
69
- /** Subscribes to `turbo:before-cache`; call from `connect()`. Idempotent. */
70
- activate() {
71
- const first = _BeforeCacheReset.#subscribers.size === 0;
72
- _BeforeCacheReset.#subscribers.add(this);
73
- if (first) {
74
- document.addEventListener("turbo:before-cache", _BeforeCacheReset.#onBeforeCache);
75
- }
108
+ observe(element) {
109
+ if (this.#element === element) return;
110
+ this.disconnect();
111
+ this.#element = element;
112
+ this.#pass.activate();
113
+ this.#listeners.add(element, "turbo:morph-element", this.#onMorph);
76
114
  }
77
- /** Unsubscribes; call from `disconnect()`. Safe when never subscribed. */
78
- deactivate() {
79
- _BeforeCacheReset.#subscribers.delete(this);
80
- if (_BeforeCacheReset.#subscribers.size > 0) return;
81
- document.removeEventListener("turbo:before-cache", _BeforeCacheReset.#onBeforeCache);
115
+ schedule() {
116
+ this.#pass.schedule();
117
+ }
118
+ get pending() {
119
+ return this.#pass.pending;
120
+ }
121
+ disconnect() {
122
+ this.#listeners.dispose();
123
+ this.#pass.cancel();
124
+ this.#element = null;
125
+ }
126
+ };
127
+
128
+ var MoveCounter = class {
129
+ #sequence = 0;
130
+ record() {
131
+ this.#sequence += 1;
132
+ return this.#sequence;
133
+ }
134
+ isLatest(token) {
135
+ return token === this.#sequence;
136
+ }
137
+ };
138
+
139
+ var NUMBER_BOUNDS = {
140
+ finite: { finite: true }};
141
+ function matchesNumberBounds(value, bounds) {
142
+ if (!Number.isFinite(value)) {
143
+ const direction = value === Infinity ? "positive" : value === -Infinity ? "negative" : null;
144
+ if (direction === null) return false;
145
+ if (bounds.allowInfinity !== "both" && bounds.allowInfinity !== direction) return false;
146
+ }
147
+ if (bounds.min !== void 0 && value < bounds.min) return false;
148
+ if (bounds.max !== void 0 && value > bounds.max) return false;
149
+ if (bounds.exclusiveMin !== void 0 && value <= bounds.exclusiveMin) return false;
150
+ if (bounds.integer && !Number.isInteger(value)) return false;
151
+ if (bounds.allowedValues !== void 0 && !bounds.allowedValues.includes(value)) return false;
152
+ return true;
153
+ }
154
+
155
+ function readNumber(raw, fallback, bounds) {
156
+ return matchesNumberBounds(raw, bounds) ? raw : fallback;
157
+ }
158
+
159
+ var NumberValueReader = class {
160
+ #lastRejected = /* @__PURE__ */ new Map();
161
+ read(owner, name, raw, fallback, bounds) {
162
+ const resolved = readNumber(raw, fallback, bounds);
163
+ if (matchesNumberBounds(raw, bounds)) {
164
+ this.#lastRejected.delete(name);
165
+ return resolved;
166
+ }
167
+ const attribute = `data-${owner.identifier}-${name.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)}-value`;
168
+ const literal = owner.element.getAttribute(attribute);
169
+ if (literal === null) {
170
+ this.#lastRejected.delete(name);
171
+ return resolved;
172
+ }
173
+ if (this.#lastRejected.get(name) !== literal) {
174
+ this.#lastRejected.set(name, literal);
175
+ console.warn(
176
+ `Stimeo UI: "${owner.identifier}" has an invalid number Value "${name}" declaration ${JSON.stringify(literal)}; using ${fallback}.`
177
+ );
178
+ }
179
+ return resolved;
82
180
  }
83
181
  };
84
182
 
85
- // src/utils/tabindex_loan.ts
86
- var TabindexLoan = class {
183
+ function setAttributeIfChanged(element, name, value, beforeWrite) {
184
+ if (element.getAttribute(name) === value) return false;
185
+ if (value === null) element.removeAttribute(name);
186
+ else element.setAttribute(name, value);
187
+ return true;
188
+ }
189
+
190
+ function queryOpenDescendants(root, selector) {
191
+ const matches = [];
192
+ const roots = [root];
193
+ for (const scope of roots) {
194
+ matches.push(...scope.querySelectorAll(selector));
195
+ if (scope.nodeType === Node.ELEMENT_NODE) {
196
+ const shadow = scope.shadowRoot;
197
+ if (shadow) roots.push(shadow);
198
+ }
199
+ for (const element of scope.querySelectorAll("*")) {
200
+ if (element.shadowRoot) roots.push(element.shadowRoot);
201
+ }
202
+ }
203
+ return matches;
204
+ }
205
+
206
+ function sharedRegistry(key, create) {
207
+ const symbol = Symbol.for(key);
208
+ const scope = globalThis;
209
+ const existing = scope[symbol];
210
+ if (existing !== void 0) return existing;
211
+ const registry = create();
212
+ Object.defineProperty(globalThis, symbol, { value: registry });
213
+ return registry;
214
+ }
215
+
216
+ function holdsFocus(element) {
217
+ return element.matches(":focus") || deepActiveElement(element.ownerDocument) === element;
218
+ }
219
+ var TabindexLoan = class _TabindexLoan {
220
+ static #registry = sharedRegistry(
221
+ "stimeo-ui.tabindex-loan.registry.v1",
222
+ () => ({ stacks: /* @__PURE__ */ new WeakMap(), names: /* @__PURE__ */ new Set() })
223
+ );
87
224
  #value;
225
+ #record;
226
+ #preserveFocus;
88
227
  #lent = /* @__PURE__ */ new Set();
89
- /** Returns live loans before Turbo can copy them into its page snapshot. */
90
- #beforeCache = new BeforeCacheReset(() => this.returnAll());
91
- /**
92
- * @param value - the `tabindex` to lend. `"-1"` (the default) is
93
- * programmatically focusable but not a Tab stop; `"0"` is a real Tab stop,
94
- * which a scroll region with no focusable content of its own needs.
95
- */
96
- constructor(value = "-1") {
228
+ constructor(value, owner, options = {}) {
97
229
  this.#value = value;
98
- }
99
- /** Lends `element` the value; no-ops when it already carries a `tabindex`. */
100
- lend(element) {
101
- if (element.hasAttribute("tabindex")) return;
102
- element.setAttribute("tabindex", this.#value);
230
+ this.#record = `data-${owner}-tabindex-loan`;
231
+ this.#preserveFocus = options.preserveFocus === true;
232
+ _TabindexLoan.#registry.names.add(this.#record);
233
+ }
234
+ lend(element, options = {}) {
235
+ const stack = this.#stack(element);
236
+ const current = element.getAttribute("tabindex");
237
+ const held = stack.find((hold) => hold.loan === this) ?? stack.find(
238
+ (hold) => hold.loan === null && hold.record === this.#record && hold.value === this.#value
239
+ );
240
+ const linked = stack.at(-1)?.value === current;
241
+ if (!held && options.onlyIfUnfocusable && (current !== null || element.tabIndex >= 0)) return;
242
+ if (!held && current !== null && !linked) return;
103
243
  this.#lent.add(element);
104
- this.#beforeCache.activate();
244
+ if (held) held.loan = this;
245
+ else stack.push({ loan: this, record: this.#record, value: this.#value, linked });
246
+ this.#mark(element, stack);
247
+ if (current === null || !held && current !== this.#value) {
248
+ element.setAttribute("tabindex", this.#value);
249
+ }
250
+ }
251
+ return(element) {
252
+ const stack = this.#stack(element);
253
+ const hold = stack.find((held) => held.loan === this) ?? stack.find(
254
+ (held) => held.loan === null && held.record === this.#record && held.value === this.#value
255
+ );
256
+ if (!hold) return false;
257
+ if (!this.#release(element, stack, hold, this.#preserveFocus)) {
258
+ hold.loan = this;
259
+ this.#lent.add(element);
260
+ return false;
261
+ }
262
+ this.#lent.delete(element);
263
+ return true;
105
264
  }
106
- /** Takes back every loan whose value is still the one that was lent. */
107
265
  returnAll() {
108
- for (const element of this.#lent) {
109
- if (element.getAttribute("tabindex") === this.#value) element.removeAttribute("tabindex");
266
+ for (const element of Array.from(this.#lent)) this.return(element);
267
+ }
268
+ reclaim(element) {
269
+ if (element.getAttribute(this.#record) !== this.#value) return;
270
+ const stack = this.#stack(element);
271
+ const hold = stack.find((held) => held.loan === null && held.record === this.#record);
272
+ if (hold && !holdsFocus(element)) this.#release(element, stack, hold);
273
+ }
274
+ reclaimWithin(root) {
275
+ for (const element of queryOpenDescendants(root, `[${this.#record}]`)) {
276
+ this.reclaim(element);
277
+ }
278
+ }
279
+ #stack(element) {
280
+ const stacks = _TabindexLoan.#registry.stacks;
281
+ const stack = stacks.get(element) ?? this.#seed(element);
282
+ stacks.set(element, stack);
283
+ return stack;
284
+ }
285
+ #seed(element) {
286
+ const current = element.getAttribute("tabindex");
287
+ const holds = [];
288
+ for (const record of _TabindexLoan.#registry.names) {
289
+ const value = element.getAttribute(record);
290
+ if (value !== null) holds.push({ loan: null, record, value, linked: true });
291
+ }
292
+ holds.sort((one, other) => Number(one.value === current) - Number(other.value === current));
293
+ for (const [index, hold] of holds.entries()) hold.linked = index > 0;
294
+ return holds;
295
+ }
296
+ #release(element, stack, hold, preserveFocus = false) {
297
+ const current = element.getAttribute("tabindex");
298
+ const index = stack.indexOf(hold);
299
+ const owns = current === hold.value && !stack.slice(index + 1).some((above2) => above2.value === current);
300
+ if (owns && preserveFocus && holdsFocus(element)) return false;
301
+ stack.splice(index, 1);
302
+ const above = stack[index];
303
+ if (above) above.linked &&= hold.linked;
304
+ this.#mark(element, stack);
305
+ if (!owns) return true;
306
+ const below = hold.linked ? stack[index - 1] : void 0;
307
+ if (!below) element.removeAttribute("tabindex");
308
+ else if (below.value !== current) element.setAttribute("tabindex", below.value);
309
+ return true;
310
+ }
311
+ #mark(element, stack) {
312
+ const records = /* @__PURE__ */ new Map([[this.#record, null]]);
313
+ for (const hold of stack) records.set(hold.record, hold.value);
314
+ for (const [name, recorded] of records) {
315
+ setAttributeIfChanged(element, name, recorded);
110
316
  }
111
- this.#lent.clear();
112
- this.#beforeCache.deactivate();
113
317
  }
114
318
  };
115
319
 
116
- // src/controllers/pagination_controller.ts
117
- var PaginationController = class extends Controller {
320
+ function targetSelector(identifier, name) {
321
+ return `[data-${identifier}-target~="${name}"]`;
322
+ }
323
+
324
+ var PaginationController = class _PaginationController extends Controller {
325
+ #numbers = new NumberValueReader();
326
+ #moves = new MoveCounter();
327
+ #moveToken = 0;
118
328
  static targets = ["page", "prev", "next"];
119
329
  static values = {
120
330
  page: { type: Number, default: 1 },
121
331
  total: { type: Number, default: 1 }
122
332
  };
333
+ static valueConstraints = {
334
+ page: NUMBER_BOUNDS.finite,
335
+ total: NUMBER_BOUNDS.finite
336
+ };
123
337
  static actions = ["next", "prev", "select"];
124
338
  static events = ["change", "reconcile"];
125
- /** Marks a `disabled` this controller applied at a boundary, in its own namespace. */
126
339
  get #boundaryAttribute() {
127
340
  return `data-${this.identifier}-boundary-disabled`;
128
341
  }
129
- /** The `tabindex` this instance lends the root for the focus fallback. */
130
- #tabindex = new TabindexLoan();
131
- /**
132
- * Collapses the Value and target callbacks of one mutation into one pass, and
133
- * refuses the ones Stimulus delivers before `connect()`, which renders itself.
134
- */
135
- #repaint = new MicrotaskCoalescer(() => this.#reconcilePage());
136
- /** The page shown last, which the next move of the current page is measured from. */
342
+ #tabindex = new TabindexLoan("-1", this.identifier);
343
+ #repaint = new MorphRenderWatcher(() => this.#reconcilePage());
137
344
  #shown = 1;
138
- /** Renders the initial state from the clamped `page` and `total`. */
139
345
  connect() {
140
- this.#repaint.activate();
346
+ this.#tabindex.reclaim(this.element);
347
+ this.#repaint.observe(this.element);
141
348
  this.#shown = this.#page;
142
349
  this.#render();
143
350
  }
144
- /** Drops a pending pass and reverts the one attribute added outside the state hooks. */
145
351
  disconnect() {
146
- this.#repaint.cancel();
352
+ this.#repaint.disconnect();
147
353
  this.#tabindex.returnAll();
148
354
  }
149
- /** Re-renders when application code (or a Turbo morph) changes `page` at runtime. */
150
355
  pageValueChanged() {
151
356
  this.#repaint.schedule();
152
357
  }
153
- /** Re-renders when application code (or a Turbo morph) changes `total` at runtime. */
154
358
  totalValueChanged() {
155
359
  this.#repaint.schedule();
156
360
  }
157
- /** Syncs a page button appended/replaced at runtime (the consumer owns the list). */
158
361
  pageTargetConnected() {
159
362
  this.#repaint.schedule();
160
363
  }
161
- /** Syncs a `prev` button appended/replaced at runtime. */
162
364
  prevTargetConnected() {
163
365
  this.#repaint.schedule();
164
366
  }
165
- /** Syncs a `next` button appended/replaced at runtime. */
367
+ prevTargetDisconnected(button) {
368
+ this.#releaseDeparted(button, this.prevTargets);
369
+ this.#repaint.schedule();
370
+ }
166
371
  nextTargetConnected() {
167
372
  this.#repaint.schedule();
168
373
  }
169
- /** Makes the clicked page button (its `data-page`) current. */
170
- select(event) {
171
- const button = event.currentTarget;
374
+ nextTargetDisconnected(button) {
375
+ this.#releaseDeparted(button, this.nextTargets);
376
+ this.#repaint.schedule();
377
+ }
378
+ select(source) {
379
+ const { host, origin, reason } = actionSource(source);
380
+ const button = host?.closest(targetSelector(this.identifier, "page"));
381
+ if (!button || !this.pageTargets.includes(button)) return;
382
+ if (origin && origin.closest(`[data-controller~="${this.identifier}"]`) !== this.element)
383
+ return;
172
384
  const raw = button.dataset.page;
173
385
  if (raw === void 0 || raw.trim() === "") return;
174
386
  const page = Number(raw);
175
387
  if (!Number.isInteger(page)) return;
176
- this.#goto(page);
388
+ this.#goto(page, reason);
177
389
  }
178
- /** Steps to the previous page. */
179
- prev() {
180
- this.#goto(this.#page - 1);
390
+ prev(event) {
391
+ this.#goto(this.#page - 1, stateReasonFor(event));
181
392
  }
182
- /** Steps to the next page. */
183
- next() {
184
- this.#goto(this.#page + 1);
393
+ next(event) {
394
+ this.#goto(this.#page + 1, stateReasonFor(event));
185
395
  }
186
- /** Moves to `page` (clamped to `[1, total]`), re-renders, and dispatches `change`. */
187
- #goto(page) {
188
- if (!Number.isFinite(page)) return;
189
- const previous = this.#page;
396
+ #goto(page, reason) {
397
+ const previous = this.#shown;
190
398
  const target = this.#clamp(page);
191
- if (target === previous) return;
399
+ if (target === previous && target === this.#page) return;
192
400
  this.pageValue = target;
193
401
  this.#shown = target;
402
+ const changed = target !== previous;
403
+ if (changed) this.#moveToken = this.#moves.record();
404
+ const token = this.#moveToken;
194
405
  this.#render();
406
+ if (!changed || !this.#moves.isLatest(token)) return;
195
407
  this.dispatch("change", {
196
- detail: { page: target, total: this.#total, previous }
408
+ detail: { page: target, total: this.#total, previous, reason }
197
409
  });
198
410
  }
199
- /**
200
- * Renders one settled batch of Value and target changes, and reports a current
201
- * page that moved from the one shown before as `reconcile`.
202
- */
203
411
  #reconcilePage() {
204
412
  const previous = this.#shown;
205
413
  const page = this.#page;
206
414
  this.#shown = page;
415
+ const token = this.#moveToken;
207
416
  this.#render();
208
- if (page !== previous) {
417
+ if (page !== previous && this.#moves.isLatest(token)) {
209
418
  this.dispatch("reconcile", { detail: { page, total: this.#total, previous } });
210
419
  }
211
420
  }
212
- /**
213
- * Syncs `aria-current` on the page buttons and the prev/next `disabled` state.
214
- *
215
- * It reads `page` and `total` through their clamps and never writes either Value,
216
- * so a declaration outside the range stays in the attributes as the page wrote it.
217
- *
218
- * @stimeoRenderRoot
219
- */
220
421
  #render() {
422
+ const token = this.#moveToken;
221
423
  const page = this.#page;
222
424
  for (const button of this.pageTargets) {
223
425
  if (Number(button.dataset.page) === page) {
@@ -230,40 +432,35 @@ var PaginationController = class extends Controller {
230
432
  const next = this.hasNextTarget ? this.nextTarget : null;
231
433
  const atStart = page <= 1;
232
434
  const atEnd = page >= this.#total;
233
- const prevStaysDisabled = this.#disabledAfter(prev, atStart);
234
435
  const nextStaysDisabled = this.#disabledAfter(next, atEnd);
235
436
  this.#release(prev, atStart);
236
437
  this.#release(next, atEnd);
237
438
  this.#disable(prev, atStart, nextStaysDisabled ? null : next);
238
- this.#disable(next, atEnd, prevStaysDisabled ? null : prev);
439
+ if (!this.#moves.isLatest(token)) return;
440
+ this.#disable(next, atEnd, prev);
239
441
  }
240
- /** Whether a boundary button will still be `disabled` once this render applies. */
241
442
  #disabledAfter(button, atBoundary) {
242
443
  if (!button) return true;
243
444
  if (atBoundary) return true;
244
445
  return button.disabled && !this.#owns(button);
245
446
  }
246
- /** Releases the boundary `disabled` this controller owns, once away from it. */
447
+ #releaseDeparted(button, targets) {
448
+ if (!targets.includes(button)) this.#release(button, false);
449
+ }
247
450
  #release(button, atBoundary) {
248
451
  if (!button || atBoundary || !this.#owns(button)) return;
249
452
  button.disabled = false;
250
453
  button.removeAttribute(this.#boundaryAttribute);
251
454
  }
252
- /**
253
- * Disables a boundary button, first moving focus off it when it is the active
254
- * element so disabling never strands focus.
255
- */
256
455
  #disable(button, atBoundary, opposite) {
257
456
  if (!button || !atBoundary) return;
258
457
  if (button.disabled && !this.#owns(button)) return;
458
+ const token = this.#moveToken;
259
459
  if (button === document.activeElement) this.#moveFocusAwayFrom(opposite);
460
+ if (!this.#moves.isLatest(token)) return;
260
461
  button.disabled = true;
261
462
  button.setAttribute(this.#boundaryAttribute, "");
262
463
  }
263
- /**
264
- * Moves focus to `opposite` (already resolved to `null` when it will stay
265
- * disabled), else to the current page button, else to the landmark itself.
266
- */
267
464
  #moveFocusAwayFrom(opposite) {
268
465
  const page = this.#page;
269
466
  const currentPage = this.pageTargets.find(
@@ -279,26 +476,38 @@ var PaginationController = class extends Controller {
279
476
  this.#tabindex.lend(this.element);
280
477
  this.element.focus();
281
478
  }
282
- /** Total pages, normalized to a finite integer >= 1. */
283
479
  get #total() {
284
- const total = this.totalValue;
285
- return Number.isFinite(total) ? Math.max(1, Math.trunc(total)) : 1;
480
+ const total = this.#safeTotal;
481
+ return Math.max(1, Math.trunc(total));
286
482
  }
287
- /** The current page, normalized into `[1, total]`. */
288
483
  get #page() {
289
- return this.#clamp(this.pageValue);
484
+ return this.#clamp(this.#safePage);
290
485
  }
291
- /** Constrains `page` to `[1, total]`; a non-finite page falls back to page 1. */
292
486
  #clamp(page) {
293
- if (!Number.isFinite(page)) return 1;
294
487
  return Math.min(this.#total, Math.max(1, Math.trunc(page)));
295
488
  }
296
- /** Whether the button's current `disabled` was applied by boundary control. */
297
489
  #owns(button) {
298
490
  return button.hasAttribute(this.#boundaryAttribute);
299
491
  }
492
+ get #safePage() {
493
+ return this.#numbers.read(
494
+ this,
495
+ "page",
496
+ this.pageValue,
497
+ _PaginationController.values.page.default,
498
+ _PaginationController.valueConstraints.page
499
+ );
500
+ }
501
+ get #safeTotal() {
502
+ return this.#numbers.read(
503
+ this,
504
+ "total",
505
+ this.totalValue,
506
+ _PaginationController.values.total.default,
507
+ _PaginationController.valueConstraints.total
508
+ );
509
+ }
300
510
  };
301
511
 
302
512
  export { PaginationController };
303
- //# sourceMappingURL=pagination_controller.js.map
304
513
  //# sourceMappingURL=pagination_controller.js.map