stimulus-library 0.7.3 → 0.8.0-beta

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 (356) hide show
  1. package/README.md +1 -1
  2. package/dist/controllers/ajax/async_block_controller.js +30 -0
  3. package/dist/controllers/ajax/{index.d.ts → index.js} +0 -1
  4. package/dist/controllers/ajax/lazy_block_controller.js +37 -0
  5. package/dist/controllers/ajax/load_block_controller.js +63 -0
  6. package/dist/controllers/ajax/poll_block_controller.js +35 -0
  7. package/dist/controllers/anchor_spy_controller.js +47 -0
  8. package/dist/controllers/back_link_controller.js +25 -0
  9. package/dist/controllers/clipboard_controller.js +35 -0
  10. package/dist/controllers/confirm_controller.js +33 -0
  11. package/dist/controllers/confirm_navigation_controller.js +29 -0
  12. package/dist/controllers/debug_controller.js +7 -0
  13. package/dist/controllers/disable_with_controller.js +66 -0
  14. package/dist/controllers/dismissable_controller.js +8 -0
  15. package/dist/controllers/element_save_controller.js +80 -0
  16. package/dist/controllers/empty_dom_controller.js +42 -0
  17. package/dist/controllers/equalize_controller.js +39 -0
  18. package/dist/controllers/forms/auto_submit_form_controller.js +62 -0
  19. package/dist/controllers/forms/autosize_controller.js +32 -0
  20. package/dist/controllers/forms/char_count_controller.js +37 -0
  21. package/dist/controllers/forms/checkbox_disable_inputs_controller.js +32 -0
  22. package/dist/controllers/forms/checkbox_enable_inputs_controller.js +32 -0
  23. package/dist/controllers/forms/checkbox_select_all_controller.js +35 -0
  24. package/dist/controllers/forms/checkbox_xor_controller.js +24 -0
  25. package/dist/controllers/forms/detect_dirty_controller.js +98 -0
  26. package/dist/controllers/forms/detect_dirty_form_controller.js +107 -0
  27. package/dist/controllers/forms/enable_inputs_controller.js +21 -0
  28. package/dist/controllers/forms/focus_steal_controller.js +28 -0
  29. package/dist/controllers/forms/form_rc_controller.js +47 -0
  30. package/dist/controllers/forms/form_save_controller.js +109 -0
  31. package/dist/controllers/forms/{index.d.ts → index.js} +0 -1
  32. package/dist/controllers/forms/limited_selection_checkboxes_controller.js +28 -0
  33. package/dist/controllers/forms/navigate_form_errors_controller.js +154 -0
  34. package/dist/controllers/forms/nested_form_controller.js +49 -0
  35. package/dist/controllers/forms/password_confirm_controller.js +26 -0
  36. package/dist/controllers/forms/password_peek_controller.js +21 -0
  37. package/dist/controllers/forms/remote_form_controller.js +26 -0
  38. package/dist/controllers/forms/sync_inputs_controller.js +67 -0
  39. package/dist/controllers/forms/value_warn_controller.js +45 -0
  40. package/dist/controllers/forms/word_count_controller.js +37 -0
  41. package/dist/controllers/{index.d.ts → index.js} +3 -1
  42. package/dist/controllers/media/fallback_image_controller.js +44 -0
  43. package/dist/controllers/media/{index.d.ts → index.js} +0 -1
  44. package/dist/controllers/media/lightbox_image_controller.js +71 -0
  45. package/dist/controllers/media/media_player_controller.js +31 -0
  46. package/dist/controllers/prefetch_controller.js +74 -0
  47. package/dist/controllers/print_button_controller.js +18 -0
  48. package/dist/controllers/responsive_iframe_controller.js +35 -0
  49. package/dist/controllers/scroll/{index.d.ts → index.js} +0 -1
  50. package/dist/controllers/scroll/scroll_container_controller.js +81 -0
  51. package/dist/controllers/scroll/scroll_into_focus_controller.js +20 -0
  52. package/dist/controllers/scroll/scroll_to_bottom_controller.js +37 -0
  53. package/dist/controllers/scroll/scroll_to_controller.js +22 -0
  54. package/dist/controllers/scroll/scroll_to_top_controller.js +37 -0
  55. package/dist/controllers/self_destruct_controller.js +11 -0
  56. package/dist/controllers/signal/events.js +12 -0
  57. package/dist/controllers/signal/expressions.js +54 -0
  58. package/dist/controllers/signal/{index.d.ts → index.js} +0 -1
  59. package/dist/controllers/signal/signal_action_controller.js +31 -0
  60. package/dist/controllers/signal/signal_dom_children_controller.js +40 -0
  61. package/dist/controllers/signal/signal_input_controller.js +36 -0
  62. package/dist/controllers/signal/signal_visibility_controller.js +44 -0
  63. package/dist/controllers/sticky_controller.js +44 -0
  64. package/dist/controllers/tables/{index.d.ts → index.js} +0 -1
  65. package/dist/controllers/tables/table_sort_controller.js +97 -0
  66. package/dist/controllers/tables/table_truncate_controller.js +81 -0
  67. package/dist/controllers/teleport_controller.js +48 -0
  68. package/dist/controllers/temporary_state_controller.js +65 -0
  69. package/dist/controllers/toggle_class_controller.js +115 -0
  70. package/dist/controllers/trix_modifier_controller.js +121 -0
  71. package/dist/controllers/turbo_frame_rc_controller.js +65 -0
  72. package/dist/controllers/turbo_frame_refresh_controller.js +32 -0
  73. package/dist/controllers/utility/alert_controller.js +7 -0
  74. package/dist/controllers/utility/fullscreen_controller.js +10 -0
  75. package/dist/controllers/utility/{index.d.ts → index.js} +0 -1
  76. package/dist/controllers/utility/intersection_controller.js +25 -0
  77. package/dist/controllers/utility/interval_controller.js +16 -0
  78. package/dist/controllers/utility/presence_controller.js +19 -0
  79. package/dist/controllers/utility/print_controller.js +7 -0
  80. package/dist/controllers/utility/timeout_controller.js +13 -0
  81. package/dist/controllers/utility/user_focus_controller.js +23 -0
  82. package/dist/controllers/visual/clock_controller.js +51 -0
  83. package/dist/controllers/visual/countdown_controller.js +116 -0
  84. package/dist/controllers/visual/duration_controller.js +79 -0
  85. package/dist/controllers/visual/{index.d.ts → index.js} +0 -1
  86. package/dist/controllers/visual/tabs_controller.js +79 -0
  87. package/dist/controllers/visual/time_distance_controller.js +50 -0
  88. package/dist/controllers/visual/tree_view_controller.js +92 -0
  89. package/dist/{index.d.ts → index.js} +3 -1
  90. package/dist/mixins/create_mixin.js +11 -0
  91. package/dist/mixins/{index.d.ts → index.js} +0 -1
  92. package/dist/mixins/install_class_methods.js +28 -0
  93. package/dist/mixins/use_click_outside.js +17 -0
  94. package/dist/mixins/use_event_bus.js +19 -0
  95. package/dist/mixins/use_event_listener.js +34 -0
  96. package/dist/mixins/use_fullscreen.js +42 -0
  97. package/dist/mixins/use_geolocation.js +62 -0
  98. package/dist/mixins/use_hover.js +29 -0
  99. package/dist/mixins/use_injected_html.js +37 -0
  100. package/dist/mixins/use_intersection.js +45 -0
  101. package/dist/mixins/use_interval.js +13 -0
  102. package/dist/mixins/use_localstorage.js +122 -0
  103. package/dist/mixins/use_mutation_observer.js +9 -0
  104. package/dist/mixins/use_temporary_content.js +38 -0
  105. package/dist/mixins/use_timeout.js +20 -0
  106. package/dist/mixins/use_trix_modifiers.js +71 -0
  107. package/dist/polyfills/string.replaceAll.js +13 -0
  108. package/dist/utilities/arrays.js +3 -0
  109. package/dist/utilities/base_controller.js +56 -0
  110. package/dist/utilities/elements.js +102 -0
  111. package/dist/utilities/ephemeral_controller.js +42 -0
  112. package/dist/utilities/event_bus.js +2 -0
  113. package/dist/utilities/events.js +10 -0
  114. package/dist/utilities/fetchRetry.js +22 -0
  115. package/dist/utilities/{index.d.ts → index.js} +0 -1
  116. package/dist/utilities/logging.js +82 -0
  117. package/dist/utilities/reactive.js +23 -0
  118. package/dist/utilities/request_submit.js +20 -0
  119. package/dist/utilities/scroll.js +89 -0
  120. package/dist/utilities/stimulus.js +13 -0
  121. package/dist/utilities/strings.js +5 -0
  122. package/dist/utilities/turbo.js +3 -0
  123. package/package.json +8 -18
  124. package/CHANGELOG.md +0 -499
  125. package/dist/controllers/ajax/async_block_controller.d.ts +0 -18
  126. package/dist/controllers/ajax/async_block_controller.d.ts.map +0 -1
  127. package/dist/controllers/ajax/index.d.ts.map +0 -1
  128. package/dist/controllers/ajax/lazy_block_controller.d.ts +0 -10
  129. package/dist/controllers/ajax/lazy_block_controller.d.ts.map +0 -1
  130. package/dist/controllers/ajax/load_block_controller.d.ts +0 -24
  131. package/dist/controllers/ajax/load_block_controller.d.ts.map +0 -1
  132. package/dist/controllers/ajax/poll_block_controller.d.ts +0 -16
  133. package/dist/controllers/ajax/poll_block_controller.d.ts.map +0 -1
  134. package/dist/controllers/anchor_spy_controller.d.ts +0 -21
  135. package/dist/controllers/anchor_spy_controller.d.ts.map +0 -1
  136. package/dist/controllers/back_link_controller.d.ts +0 -17
  137. package/dist/controllers/back_link_controller.d.ts.map +0 -1
  138. package/dist/controllers/clipboard_controller.d.ts +0 -19
  139. package/dist/controllers/clipboard_controller.d.ts.map +0 -1
  140. package/dist/controllers/confirm_controller.d.ts +0 -13
  141. package/dist/controllers/confirm_controller.d.ts.map +0 -1
  142. package/dist/controllers/confirm_navigation_controller.d.ts +0 -15
  143. package/dist/controllers/confirm_navigation_controller.d.ts.map +0 -1
  144. package/dist/controllers/debug_controller.d.ts +0 -7
  145. package/dist/controllers/debug_controller.d.ts.map +0 -1
  146. package/dist/controllers/disable_with_controller.d.ts +0 -20
  147. package/dist/controllers/disable_with_controller.d.ts.map +0 -1
  148. package/dist/controllers/dismissable_controller.d.ts +0 -7
  149. package/dist/controllers/dismissable_controller.d.ts.map +0 -1
  150. package/dist/controllers/element_save_controller.d.ts +0 -31
  151. package/dist/controllers/element_save_controller.d.ts.map +0 -1
  152. package/dist/controllers/empty_dom_controller.d.ts +0 -22
  153. package/dist/controllers/empty_dom_controller.d.ts.map +0 -1
  154. package/dist/controllers/forms/auto_submit_form_controller.d.ts +0 -23
  155. package/dist/controllers/forms/auto_submit_form_controller.d.ts.map +0 -1
  156. package/dist/controllers/forms/autosize_controller.d.ts +0 -9
  157. package/dist/controllers/forms/autosize_controller.d.ts.map +0 -1
  158. package/dist/controllers/forms/char_count_controller.d.ts +0 -21
  159. package/dist/controllers/forms/char_count_controller.d.ts.map +0 -1
  160. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts +0 -17
  161. package/dist/controllers/forms/checkbox_disable_inputs_controller.d.ts.map +0 -1
  162. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts +0 -17
  163. package/dist/controllers/forms/checkbox_enable_inputs_controller.d.ts.map +0 -1
  164. package/dist/controllers/forms/checkbox_select_all_controller.d.ts +0 -14
  165. package/dist/controllers/forms/checkbox_select_all_controller.d.ts.map +0 -1
  166. package/dist/controllers/forms/checkbox_xor_controller.d.ts +0 -9
  167. package/dist/controllers/forms/checkbox_xor_controller.d.ts.map +0 -1
  168. package/dist/controllers/forms/detect_dirty_controller.d.ts +0 -15
  169. package/dist/controllers/forms/detect_dirty_controller.d.ts.map +0 -1
  170. package/dist/controllers/forms/detect_dirty_form_controller.d.ts +0 -18
  171. package/dist/controllers/forms/detect_dirty_form_controller.d.ts.map +0 -1
  172. package/dist/controllers/forms/enable_inputs_controller.d.ts +0 -14
  173. package/dist/controllers/forms/enable_inputs_controller.d.ts.map +0 -1
  174. package/dist/controllers/forms/focus_steal_controller.d.ts +0 -12
  175. package/dist/controllers/forms/focus_steal_controller.d.ts.map +0 -1
  176. package/dist/controllers/forms/form_rc_controller.d.ts +0 -18
  177. package/dist/controllers/forms/form_rc_controller.d.ts.map +0 -1
  178. package/dist/controllers/forms/form_save_controller.d.ts +0 -32
  179. package/dist/controllers/forms/form_save_controller.d.ts.map +0 -1
  180. package/dist/controllers/forms/index.d.ts.map +0 -1
  181. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts +0 -17
  182. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts.map +0 -1
  183. package/dist/controllers/forms/navigate_form_errors_controller.d.ts +0 -41
  184. package/dist/controllers/forms/navigate_form_errors_controller.d.ts.map +0 -1
  185. package/dist/controllers/forms/nested_form_controller.d.ts +0 -22
  186. package/dist/controllers/forms/nested_form_controller.d.ts.map +0 -1
  187. package/dist/controllers/forms/password_confirm_controller.d.ts +0 -12
  188. package/dist/controllers/forms/password_confirm_controller.d.ts.map +0 -1
  189. package/dist/controllers/forms/password_peek_controller.d.ts +0 -9
  190. package/dist/controllers/forms/password_peek_controller.d.ts.map +0 -1
  191. package/dist/controllers/forms/remote_form_controller.d.ts +0 -14
  192. package/dist/controllers/forms/remote_form_controller.d.ts.map +0 -1
  193. package/dist/controllers/forms/sync_inputs_controller.d.ts +0 -20
  194. package/dist/controllers/forms/sync_inputs_controller.d.ts.map +0 -1
  195. package/dist/controllers/forms/value_warn_controller.d.ts +0 -31
  196. package/dist/controllers/forms/value_warn_controller.d.ts.map +0 -1
  197. package/dist/controllers/forms/word_count_controller.d.ts +0 -21
  198. package/dist/controllers/forms/word_count_controller.d.ts.map +0 -1
  199. package/dist/controllers/index.d.ts.map +0 -1
  200. package/dist/controllers/media/fallback_image_controller.d.ts +0 -20
  201. package/dist/controllers/media/fallback_image_controller.d.ts.map +0 -1
  202. package/dist/controllers/media/index.d.ts.map +0 -1
  203. package/dist/controllers/media/lightbox_image_controller.d.ts +0 -31
  204. package/dist/controllers/media/lightbox_image_controller.d.ts.map +0 -1
  205. package/dist/controllers/media/media_player_controller.d.ts +0 -10
  206. package/dist/controllers/media/media_player_controller.d.ts.map +0 -1
  207. package/dist/controllers/prefetch_controller.d.ts +0 -17
  208. package/dist/controllers/prefetch_controller.d.ts.map +0 -1
  209. package/dist/controllers/print_button_controller.d.ts +0 -8
  210. package/dist/controllers/print_button_controller.d.ts.map +0 -1
  211. package/dist/controllers/responsive_iframe_controller.d.ts +0 -17
  212. package/dist/controllers/responsive_iframe_controller.d.ts.map +0 -1
  213. package/dist/controllers/scroll/index.d.ts.map +0 -1
  214. package/dist/controllers/scroll/scroll_container_controller.d.ts +0 -22
  215. package/dist/controllers/scroll/scroll_container_controller.d.ts.map +0 -1
  216. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts +0 -16
  217. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts.map +0 -1
  218. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts +0 -12
  219. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts.map +0 -1
  220. package/dist/controllers/scroll/scroll_to_controller.d.ts +0 -18
  221. package/dist/controllers/scroll/scroll_to_controller.d.ts.map +0 -1
  222. package/dist/controllers/scroll/scroll_to_top_controller.d.ts +0 -12
  223. package/dist/controllers/scroll/scroll_to_top_controller.d.ts.map +0 -1
  224. package/dist/controllers/self_destruct_controller.d.ts +0 -9
  225. package/dist/controllers/self_destruct_controller.d.ts.map +0 -1
  226. package/dist/controllers/signal/events.d.ts +0 -5
  227. package/dist/controllers/signal/events.d.ts.map +0 -1
  228. package/dist/controllers/signal/expressions.d.ts +0 -2
  229. package/dist/controllers/signal/expressions.d.ts.map +0 -1
  230. package/dist/controllers/signal/index.d.ts.map +0 -1
  231. package/dist/controllers/signal/signal_action_controller.d.ts +0 -15
  232. package/dist/controllers/signal/signal_action_controller.d.ts.map +0 -1
  233. package/dist/controllers/signal/signal_dom_children_controller.d.ts +0 -17
  234. package/dist/controllers/signal/signal_dom_children_controller.d.ts.map +0 -1
  235. package/dist/controllers/signal/signal_input_controller.d.ts +0 -20
  236. package/dist/controllers/signal/signal_input_controller.d.ts.map +0 -1
  237. package/dist/controllers/signal/signal_visibility_controller.d.ts +0 -18
  238. package/dist/controllers/signal/signal_visibility_controller.d.ts.map +0 -1
  239. package/dist/controllers/sticky_controller.d.ts +0 -16
  240. package/dist/controllers/sticky_controller.d.ts.map +0 -1
  241. package/dist/controllers/tables/index.d.ts.map +0 -1
  242. package/dist/controllers/tables/table_sort_controller.d.ts +0 -20
  243. package/dist/controllers/tables/table_sort_controller.d.ts.map +0 -1
  244. package/dist/controllers/tables/table_truncate_controller.d.ts +0 -26
  245. package/dist/controllers/tables/table_truncate_controller.d.ts.map +0 -1
  246. package/dist/controllers/teleport_controller.d.ts +0 -16
  247. package/dist/controllers/teleport_controller.d.ts.map +0 -1
  248. package/dist/controllers/temporary_state_controller.d.ts +0 -27
  249. package/dist/controllers/temporary_state_controller.d.ts.map +0 -1
  250. package/dist/controllers/toggle_class_controller.d.ts +0 -36
  251. package/dist/controllers/toggle_class_controller.d.ts.map +0 -1
  252. package/dist/controllers/trix_modifier_controller.d.ts +0 -88
  253. package/dist/controllers/trix_modifier_controller.d.ts.map +0 -1
  254. package/dist/controllers/turbo_frame_rc_controller.d.ts +0 -21
  255. package/dist/controllers/turbo_frame_rc_controller.d.ts.map +0 -1
  256. package/dist/controllers/turbo_frame_refresh_controller.d.ts +0 -14
  257. package/dist/controllers/turbo_frame_refresh_controller.d.ts.map +0 -1
  258. package/dist/controllers/utility/alert_controller.d.ts +0 -9
  259. package/dist/controllers/utility/alert_controller.d.ts.map +0 -1
  260. package/dist/controllers/utility/fullscreen_controller.d.ts +0 -8
  261. package/dist/controllers/utility/fullscreen_controller.d.ts.map +0 -1
  262. package/dist/controllers/utility/index.d.ts.map +0 -1
  263. package/dist/controllers/utility/intersection_controller.d.ts +0 -14
  264. package/dist/controllers/utility/intersection_controller.d.ts.map +0 -1
  265. package/dist/controllers/utility/interval_controller.d.ts +0 -11
  266. package/dist/controllers/utility/interval_controller.d.ts.map +0 -1
  267. package/dist/controllers/utility/presence_controller.d.ts +0 -14
  268. package/dist/controllers/utility/presence_controller.d.ts.map +0 -1
  269. package/dist/controllers/utility/print_controller.d.ts +0 -5
  270. package/dist/controllers/utility/print_controller.d.ts.map +0 -1
  271. package/dist/controllers/utility/timeout_controller.d.ts +0 -10
  272. package/dist/controllers/utility/timeout_controller.d.ts.map +0 -1
  273. package/dist/controllers/utility/user_focus_controller.d.ts +0 -9
  274. package/dist/controllers/utility/user_focus_controller.d.ts.map +0 -1
  275. package/dist/controllers/visual/clock_controller.d.ts +0 -16
  276. package/dist/controllers/visual/clock_controller.d.ts.map +0 -1
  277. package/dist/controllers/visual/countdown_controller.d.ts +0 -46
  278. package/dist/controllers/visual/countdown_controller.d.ts.map +0 -1
  279. package/dist/controllers/visual/duration_controller.d.ts +0 -26
  280. package/dist/controllers/visual/duration_controller.d.ts.map +0 -1
  281. package/dist/controllers/visual/index.d.ts.map +0 -1
  282. package/dist/controllers/visual/tabs_controller.d.ts +0 -30
  283. package/dist/controllers/visual/tabs_controller.d.ts.map +0 -1
  284. package/dist/controllers/visual/time_distance_controller.d.ts +0 -16
  285. package/dist/controllers/visual/time_distance_controller.d.ts.map +0 -1
  286. package/dist/controllers/visual/tree_view_controller.d.ts +0 -26
  287. package/dist/controllers/visual/tree_view_controller.d.ts.map +0 -1
  288. package/dist/index.d.ts.map +0 -1
  289. package/dist/mixins/create_mixin.d.ts +0 -3
  290. package/dist/mixins/create_mixin.d.ts.map +0 -1
  291. package/dist/mixins/index.d.ts.map +0 -1
  292. package/dist/mixins/install_class_methods.d.ts +0 -6
  293. package/dist/mixins/install_class_methods.d.ts.map +0 -1
  294. package/dist/mixins/use_click_outside.d.ts +0 -5
  295. package/dist/mixins/use_click_outside.d.ts.map +0 -1
  296. package/dist/mixins/use_event_bus.d.ts +0 -8
  297. package/dist/mixins/use_event_bus.d.ts.map +0 -1
  298. package/dist/mixins/use_event_listener.d.ts +0 -20
  299. package/dist/mixins/use_event_listener.d.ts.map +0 -1
  300. package/dist/mixins/use_fullscreen.d.ts +0 -9
  301. package/dist/mixins/use_fullscreen.d.ts.map +0 -1
  302. package/dist/mixins/use_geolocation.d.ts +0 -19
  303. package/dist/mixins/use_geolocation.d.ts.map +0 -1
  304. package/dist/mixins/use_hover.d.ts +0 -5
  305. package/dist/mixins/use_hover.d.ts.map +0 -1
  306. package/dist/mixins/use_injected_html.d.ts +0 -11
  307. package/dist/mixins/use_injected_html.d.ts.map +0 -1
  308. package/dist/mixins/use_intersection.d.ts +0 -14
  309. package/dist/mixins/use_intersection.d.ts.map +0 -1
  310. package/dist/mixins/use_interval.d.ts +0 -3
  311. package/dist/mixins/use_interval.d.ts.map +0 -1
  312. package/dist/mixins/use_localstorage.d.ts +0 -21
  313. package/dist/mixins/use_localstorage.d.ts.map +0 -1
  314. package/dist/mixins/use_mutation_observer.d.ts +0 -3
  315. package/dist/mixins/use_mutation_observer.d.ts.map +0 -1
  316. package/dist/mixins/use_temporary_content.d.ts +0 -6
  317. package/dist/mixins/use_temporary_content.d.ts.map +0 -1
  318. package/dist/mixins/use_timeout.d.ts +0 -3
  319. package/dist/mixins/use_timeout.d.ts.map +0 -1
  320. package/dist/mixins/use_trix_modifiers.d.ts +0 -11
  321. package/dist/mixins/use_trix_modifiers.d.ts.map +0 -1
  322. package/dist/stimulus-library.cjs.js +0 -2
  323. package/dist/stimulus-library.cjs.js.map +0 -1
  324. package/dist/stimulus-library.es.js +0 -4719
  325. package/dist/stimulus-library.es.js.map +0 -1
  326. package/dist/stimulus-library.umd.js +0 -2
  327. package/dist/stimulus-library.umd.js.map +0 -1
  328. package/dist/utilities/arrays.d.ts +0 -2
  329. package/dist/utilities/arrays.d.ts.map +0 -1
  330. package/dist/utilities/base_controller.d.ts +0 -11
  331. package/dist/utilities/base_controller.d.ts.map +0 -1
  332. package/dist/utilities/elements.d.ts +0 -49
  333. package/dist/utilities/elements.d.ts.map +0 -1
  334. package/dist/utilities/ephemeral_controller.d.ts +0 -6
  335. package/dist/utilities/ephemeral_controller.d.ts.map +0 -1
  336. package/dist/utilities/event_bus.d.ts +0 -4
  337. package/dist/utilities/event_bus.d.ts.map +0 -1
  338. package/dist/utilities/events.d.ts +0 -3
  339. package/dist/utilities/events.d.ts.map +0 -1
  340. package/dist/utilities/fetchRetry.d.ts +0 -2
  341. package/dist/utilities/fetchRetry.d.ts.map +0 -1
  342. package/dist/utilities/index.d.ts.map +0 -1
  343. package/dist/utilities/logging.d.ts +0 -6
  344. package/dist/utilities/logging.d.ts.map +0 -1
  345. package/dist/utilities/reactive.d.ts +0 -2
  346. package/dist/utilities/reactive.d.ts.map +0 -1
  347. package/dist/utilities/request_submit.d.ts +0 -3
  348. package/dist/utilities/request_submit.d.ts.map +0 -1
  349. package/dist/utilities/scroll.d.ts +0 -11
  350. package/dist/utilities/scroll.d.ts.map +0 -1
  351. package/dist/utilities/stimulus.d.ts +0 -3
  352. package/dist/utilities/stimulus.d.ts.map +0 -1
  353. package/dist/utilities/strings.d.ts +0 -2
  354. package/dist/utilities/strings.d.ts.map +0 -1
  355. package/dist/utilities/turbo.d.ts +0 -2
  356. package/dist/utilities/turbo.d.ts.map +0 -1
@@ -0,0 +1,102 @@
1
+ export function isHTMLLinkElement(element) {
2
+ return element.nodeName == "LINK";
3
+ }
4
+ export function isHTMLAnchorElement(element) {
5
+ return element.nodeName == "A";
6
+ }
7
+ export function isHTMLFormElement(element) {
8
+ return element.nodeName == "FORM";
9
+ }
10
+ export function isHTMLInputElement(element) {
11
+ return element.nodeName == "INPUT";
12
+ }
13
+ export function isHTMLLabelElement(element) {
14
+ return element.nodeName == "LABEL";
15
+ }
16
+ export function isHTMLTextAreaElement(element) {
17
+ return element.nodeName == "TEXTAREA";
18
+ }
19
+ export function isHTMLButtonElement(element) {
20
+ return element.nodeName == "BUTTON";
21
+ }
22
+ export function isHTMLSelectElement(element) {
23
+ return element.nodeName == "SELECT";
24
+ }
25
+ export function isHTMLImageElement(element) {
26
+ return element.nodeName == "IMG";
27
+ }
28
+ export function isHTMLButtonInputElement(element) {
29
+ return element.nodeName == "INPUT" && element.type == "button";
30
+ }
31
+ export function isHTMLSubmitInputElement(element) {
32
+ return element.nodeName == "INPUT" && element.type == "submit";
33
+ }
34
+ export function isHTMLResetInputElement(element) {
35
+ return element.nodeName == "INPUT" && element.type == "reset";
36
+ }
37
+ export function isHTMLButtonButtonElement(element) {
38
+ return element.nodeName == "BUTTON" && element.type == "button";
39
+ }
40
+ export function isHTMLSubmitButtonElement(element) {
41
+ return element.nodeName == "BUTTON" && element.type == "submit";
42
+ }
43
+ export function isHTMLResetButtonElement(element) {
44
+ return element.nodeName == "BUTTON" && element.type == "reset";
45
+ }
46
+ export function isTypeOfResetButtonElement(element) {
47
+ return isHTMLResetButtonElement(element) || isHTMLResetInputElement(element);
48
+ }
49
+ export function isTypeOfSubmitButtonElement(element) {
50
+ return isHTMLSubmitButtonElement(element) || isHTMLSubmitInputElement(element);
51
+ }
52
+ export function isTypeOfButtonableElement(element) {
53
+ return isTypeOfResetButtonElement(element) || isTypeOfSubmitButtonElement(element) || isHTMLButtonButtonElement(element);
54
+ }
55
+ export function isElementCheckable(element) {
56
+ return isHTMLInputElement(element) && (element.type === "radio" || element.type === "checkbox");
57
+ }
58
+ export function isTypeOfFormInputElement(element) {
59
+ return isHTMLInputElement(element) || isHTMLSelectElement(element) || isHTMLTextAreaElement(element);
60
+ }
61
+ export function createHiddenButton(type) {
62
+ let button = document.createElement('button');
63
+ button.type = type;
64
+ button.style.display = 'none';
65
+ button.dataset.sythentic = 'true';
66
+ return button;
67
+ }
68
+ export function createHiddenInput(name, value) {
69
+ let input = document.createElement('input');
70
+ input.type = 'hidden';
71
+ input.name = name;
72
+ input.value = value;
73
+ return input;
74
+ }
75
+ export function insertElement(targetElement, insertPosition, element) {
76
+ let createdElement = targetElement.insertAdjacentElement(insertPosition, element);
77
+ if (!createdElement) {
78
+ throw new Error(`Failed to insert element ${element.nodeName} into ${targetElement.nodeName}`);
79
+ }
80
+ return createdElement;
81
+ }
82
+ export function insertHiddenInput(name, value, targetElement, insertPosition) {
83
+ return insertElement(targetElement, insertPosition, createHiddenInput(name, value));
84
+ }
85
+ export function insertHiddenButton(type, targetElement, insertPosition) {
86
+ return insertElement(targetElement, insertPosition, createHiddenButton(type));
87
+ }
88
+ export function getAllRadiosInGroup(radio) {
89
+ let parent = radio.form || document;
90
+ return Array.from(parent.querySelectorAll(`input[type="radio"][name="${radio.name}"]`));
91
+ }
92
+ export function getOtherRadiosInGroup(radio) {
93
+ return getAllRadiosInGroup(radio).filter((r) => r !== radio);
94
+ }
95
+ export function isElementInViewport(el) {
96
+ const rect = el.getBoundingClientRect();
97
+ const windowHeight = window.innerHeight || document.documentElement.clientHeight;
98
+ const windowWidth = window.innerWidth || document.documentElement.clientWidth;
99
+ const vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;
100
+ const horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;
101
+ return vertInView && horInView;
102
+ }
@@ -0,0 +1,42 @@
1
+ import camelCase from "lodash-es/camelCase";
2
+ import { BaseController } from "./base_controller";
3
+ import '../polyfills/string.replaceAll';
4
+ export class EphemeralController extends BaseController {
5
+ _cleanupSelf() {
6
+ this.cleanup(this.el);
7
+ }
8
+ cleanup(element) {
9
+ var _a, _b, _c;
10
+ // @ts-ignore
11
+ element.dataset.controller = ((_a = element.dataset.controller) === null || _a === void 0 ? void 0 : _a.replaceAll(new RegExp(`(\\s|^)${this.identifier}(\\s|$)`, "g"), "")) || "";
12
+ if (element.dataset.controller == "") {
13
+ // If there are no controllers left, remove the attribute
14
+ delete element.dataset.controller;
15
+ }
16
+ let substringIdentifierValueRegex = new RegExp(`(\\s|^)${this.identifier}\\..+?(\\s|$)`, "g");
17
+ // @ts-ignore
18
+ element.dataset.target = ((_b = element.dataset.target) === null || _b === void 0 ? void 0 : _b.replaceAll(substringIdentifierValueRegex, "")) || "";
19
+ delete element.dataset[camelCase(`${this.identifier}-target`)];
20
+ if (element.dataset.target == "") {
21
+ // If there are no targets left, remove the attribute
22
+ delete element.dataset.target;
23
+ }
24
+ // @ts-ignore
25
+ element.dataset.action = ((_c = element.dataset.target) === null || _c === void 0 ? void 0 : _c.replaceAll(substringIdentifierValueRegex, "")) || "";
26
+ delete element.dataset[camelCase(`${this.identifier}-action`)];
27
+ if (element.dataset.action == "") {
28
+ // If there are no actions left, remove the attribute
29
+ delete element.dataset.action;
30
+ }
31
+ // @ts-ignore
32
+ let values = this.constructor.values;
33
+ if (values) {
34
+ Object.keys(values).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-value`)]);
35
+ }
36
+ // @ts-ignore
37
+ let classes = this.constructor.classes;
38
+ if (classes) {
39
+ Object.keys(classes).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-class`)]);
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,2 @@
1
+ import mitt from 'mitt';
2
+ export const EventBus = mitt();
@@ -0,0 +1,10 @@
1
+ import { logEvent } from "./logging";
2
+ export function dispatchEvent(controller, element, eventName, options = {}) {
3
+ let mergedOptions = Object.assign({}, { bubbles: true, cancelable: true, detail: { target: element } }, options);
4
+ if (!mergedOptions.detail.target) {
5
+ mergedOptions.detail.target = element;
6
+ }
7
+ let event = new CustomEvent(eventName, mergedOptions);
8
+ logEvent(controller, eventName, event, element);
9
+ element.dispatchEvent(event);
10
+ }
@@ -0,0 +1,22 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export function fetchRetry(n, input, init) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ try {
13
+ return yield fetch(input, init);
14
+ }
15
+ catch (err) {
16
+ if (n === 1) {
17
+ throw err;
18
+ }
19
+ return yield fetchRetry(n - 1, input, init);
20
+ }
21
+ });
22
+ }
@@ -5,4 +5,3 @@ export * from "./turbo";
5
5
  export * from "./event_bus";
6
6
  export * from "./request_submit";
7
7
  export * from "./elements";
8
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,82 @@
1
+ export function logProperty(prop) {
2
+ switch (prop) {
3
+ case "application":
4
+ case "el":
5
+ case "element":
6
+ case "constructor":
7
+ case "initialize":
8
+ case "log":
9
+ case "logEvent":
10
+ case "dispatch":
11
+ case "data":
12
+ case "valueDescriptorMap":
13
+ case "mutate":
14
+ case "identifier":
15
+ return false;
16
+ }
17
+ if (/^_.*?$/.test(prop)) {
18
+ return false;
19
+ }
20
+ if (/^.*?Target(s)?$/.test(prop)) {
21
+ return false;
22
+ }
23
+ if (/^.*?Value$/.test(prop)) {
24
+ return false;
25
+ }
26
+ if (/^.*?ValueChanged$/.test(prop)) {
27
+ return false;
28
+ }
29
+ if (/^.*?Class$/.test(prop)) {
30
+ return false;
31
+ }
32
+ if (/^.*?Classes$/.test(prop)) {
33
+ return false;
34
+ }
35
+ if (/^.*?ClassesPresent$/.test(prop)) {
36
+ return false;
37
+ }
38
+ return true;
39
+ }
40
+ export function log(controller, functionName, args = {}) {
41
+ if (!controller.application.debug) {
42
+ return;
43
+ }
44
+ let logger = console;
45
+ logger.groupCollapsed(...colorize(controller.identifier, "#3B82F6"), `#${functionName}`);
46
+ logger.log(Object.assign({ element: controller.element, controller: controller }, args));
47
+ logger.groupEnd();
48
+ }
49
+ export function warn(controller, warning, args = {}) {
50
+ if (!controller.application.debug) {
51
+ return;
52
+ }
53
+ let logger = console;
54
+ logger.groupCollapsed(...colorize(controller.identifier, "#F39B1AFF"), `!! ${warning} !!`);
55
+ logger.warn(Object.assign({ element: controller.element, controller: controller }, args));
56
+ logger.groupEnd();
57
+ }
58
+ export function logEvent(controller, eventName, event, element) {
59
+ if (!controller.application.debug) {
60
+ return;
61
+ }
62
+ let logger = console;
63
+ logger.groupCollapsed(...colorizeMany([
64
+ { text: controller.identifier, color: "#3B82F6" },
65
+ { text: eventName, color: "#0be000" },
66
+ ]), event.detail);
67
+ logger.log(...colorize("Dispatched on", "#3b82f6"), element);
68
+ logger.log(...colorize("event", "#3b82f6"), event);
69
+ logger.log(...colorize("event details", "#3b82f6"), event.detail);
70
+ logger.groupEnd();
71
+ }
72
+ function colorize(text, color) {
73
+ return colorizeMany([{ text, color }]);
74
+ }
75
+ function colorizeMany(texts) {
76
+ let str = "";
77
+ let colors = texts.flatMap(x => {
78
+ str += `%c${x.text}%c `;
79
+ return [`color: ${x.color}`, "color: unset"];
80
+ });
81
+ return [str, ...colors];
82
+ }
@@ -0,0 +1,23 @@
1
+ export function reactive(object) {
2
+ if (object === null || typeof object !== 'object') {
3
+ return object;
4
+ }
5
+ for (const property in object) {
6
+ if (Object.getOwnPropertyDescriptor(object, property) == undefined) {
7
+ continue;
8
+ }
9
+ // @ts-ignore
10
+ object[property] = reactive(object[property]);
11
+ }
12
+ return new Proxy(object, {
13
+ get(target, property) {
14
+ // @ts-ignore
15
+ return target[property];
16
+ },
17
+ set(target, property, value) {
18
+ // @ts-ignore
19
+ target[property] = reactive(value);
20
+ return true;
21
+ },
22
+ });
23
+ }
@@ -0,0 +1,20 @@
1
+ import { insertHiddenButton } from "./elements";
2
+ export function requestSubmit(form) {
3
+ if (form.requestSubmit) {
4
+ form.requestSubmit();
5
+ }
6
+ else {
7
+ let button = form.querySelector('button[type="submit"]');
8
+ if (!button) {
9
+ button = insertHiddenButton("submit", form, 'beforeend');
10
+ }
11
+ button.click();
12
+ }
13
+ }
14
+ export function requestReset(form) {
15
+ let button = form.querySelector('button[type="reset"]');
16
+ if (!button) {
17
+ button = insertHiddenButton("reset", form, 'beforeend');
18
+ }
19
+ button.click();
20
+ }
@@ -0,0 +1,89 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import smoothScroll from 'smoothscroll-polyfill';
11
+ export function scrollToElement(element, { behavior = "smooth", block = "start", inline = "nearest" } = {}) {
12
+ return __awaiter(this, void 0, void 0, function* () {
13
+ smoothScroll.polyfill();
14
+ element.scrollIntoView({ behavior, block, inline });
15
+ });
16
+ }
17
+ export function scrollAbsoluteTop(element, { behavior = "smooth" } = {}) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ smoothScroll.polyfill();
20
+ element.scrollTo({ top: 0, left: 0, behavior });
21
+ });
22
+ }
23
+ export function scrollAbsoluteBottom(element, { behavior = "smooth" } = {}) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ smoothScroll.polyfill();
26
+ if (element == window) {
27
+ element.scrollTo({ top: document.body.scrollHeight, left: 0, behavior });
28
+ }
29
+ else {
30
+ element.scrollTo({ top: element.scrollHeight, left: 0, behavior });
31
+ }
32
+ });
33
+ }
34
+ export function scrollAbsoluteLeft(element, { behavior = "smooth" } = {}) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ smoothScroll.polyfill();
37
+ element.scrollTo({ left: 0, behavior });
38
+ });
39
+ }
40
+ export function scrollAbsoluteRight(element, { behavior = "smooth" } = {}) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ smoothScroll.polyfill();
43
+ if (element == window) {
44
+ element.scrollTo({ left: document.body.scrollWidth, behavior });
45
+ }
46
+ else {
47
+ element.scrollTo({ left: element.scrollWidth, behavior });
48
+ }
49
+ });
50
+ }
51
+ export function scrollUp(element, amount, { behavior = "smooth" } = {}) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ smoothScroll.polyfill();
54
+ element.scrollBy({ top: -amount, left: 0, behavior });
55
+ });
56
+ }
57
+ export function scrollDown(element, amount, { behavior = "smooth" } = {}) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ smoothScroll.polyfill();
60
+ element.scrollBy({ top: amount, left: 0, behavior });
61
+ });
62
+ }
63
+ export function scrollLeft(element, amount, { behavior = "smooth" } = {}) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ smoothScroll.polyfill();
66
+ element.scrollBy({ top: 0, left: -amount, behavior });
67
+ });
68
+ }
69
+ export function scrollRight(element, amount, { behavior = "smooth" } = {}) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ smoothScroll.polyfill();
72
+ element.scrollBy({ top: 0, left: amount, behavior });
73
+ });
74
+ }
75
+ export function getScrollParent(node) {
76
+ smoothScroll.polyfill();
77
+ if (!node) {
78
+ return null;
79
+ }
80
+ if (node == document.body) {
81
+ return window;
82
+ }
83
+ const overflowY = getComputedStyle(node).overflowY;
84
+ const isScrollable = overflowY !== "visible" && overflowY !== "hidden";
85
+ if (isScrollable && node.scrollHeight >= node.clientHeight) {
86
+ return node;
87
+ }
88
+ return getScrollParent(node.parentElement) || document.body;
89
+ }
@@ -0,0 +1,13 @@
1
+ export function controllerMethod(controller, methodName) {
2
+ // @ts-ignore
3
+ const method = controller[methodName];
4
+ if (typeof method == 'function') {
5
+ return method;
6
+ }
7
+ else if (method != undefined) {
8
+ return () => method;
9
+ }
10
+ else {
11
+ return () => void 0;
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ import camelCase from "lodash-es/camelCase";
2
+ import upperFirst from "lodash-es/upperFirst";
3
+ export function pascalCase(str) {
4
+ return upperFirst(camelCase(str));
5
+ }
@@ -0,0 +1,3 @@
1
+ export function isTurboFrame(element) {
2
+ return element.nodeName == "TURBO-FRAME";
3
+ }
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "ruby on rails",
10
10
  "ruby-on-rails"
11
11
  ],
12
- "version": "0.7.3",
12
+ "version": "0.8.0-beta",
13
13
  "license": "MIT",
14
14
  "author": {
15
15
  "name": "Sub-Xaero",
@@ -23,43 +23,33 @@
23
23
  "files": [
24
24
  "dist"
25
25
  ],
26
- "source": "src/index.ts",
27
- "main": "dist/stimulus-library.umd.js",
28
- "module": "dist/stimulus-library.es.js",
26
+ "module": "dist/index.js",
29
27
  "types": "dist/index.d.ts",
30
- "exports": {
31
- ".": {
32
- "import": "./dist/stimulus-library.es.js",
33
- "require": "./dist/stimulus-library.umd.js"
34
- }
35
- },
36
28
  "scripts": {
37
- "build": "vite build && tsc --emitDeclarationOnly",
38
- "dev": "vite build --watch",
39
- "dev:types": "tsc --emitDeclarationOnly --watch",
29
+ "build": "tsc",
30
+ "dev": "tsc --watch",
40
31
  "prepack": "yarn build",
41
32
  "release": "standard-version",
42
33
  "test": "cypress run",
43
- "test:treeshake": "agadoo dist stimulus-library.js"
34
+ "test:treeshake": "agadoo dist"
44
35
  },
45
36
  "dependencies": {
37
+ "@babel/runtime": "^7.17.9",
38
+ "@hotwired/stimulus": "^3.0.1",
46
39
  "date-fns": "^2.28.0",
47
40
  "dialog-polyfill": "^0.5.6",
48
41
  "lodash-es": "^4.17.21",
49
42
  "mitt": "^3.0.0",
50
43
  "smoothscroll-polyfill": "^0.4.4"
51
44
  },
52
- "peerDependencies": {
53
- "stimulus": "^3.0.0 || ^2.0.0"
54
- },
55
45
  "devDependencies": {
56
46
  "@types/lodash-es": "^4.17.6",
57
47
  "@types/smoothscroll-polyfill": "^0.3.1",
58
48
  "agadoo": "^2.0.0",
59
49
  "cypress": "^9.4.1",
50
+ "fast-glob": "^3.2.11",
60
51
  "rimraf": "^3.0.2",
61
52
  "standard-version": "^9.3.2",
62
- "stimulus": "^3.0.1",
63
53
  "typescript": "^4.5.5",
64
54
  "vite": "^2.7.13"
65
55
  }