fernandes-ui 0.1.1 → 0.1.4

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 (796) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/app/assets/javascripts/ui.esm.js +15 -9
  4. data/app/assets/javascripts/ui.js +15 -9
  5. data/app/behaviors/ui/accordion_behavior.rb +50 -26
  6. data/app/behaviors/ui/accordion_content_behavior.rb +58 -58
  7. data/app/behaviors/ui/accordion_item_behavior.rb +38 -38
  8. data/app/behaviors/ui/accordion_trigger_behavior.rb +65 -65
  9. data/app/behaviors/ui/alert_behavior.rb +53 -36
  10. data/app/behaviors/ui/alert_description_behavior.rb +25 -25
  11. data/app/behaviors/ui/alert_dialog_action_behavior.rb +21 -21
  12. data/app/behaviors/ui/alert_dialog_behavior.rb +58 -33
  13. data/app/behaviors/ui/alert_dialog_cancel_behavior.rb +21 -21
  14. data/app/behaviors/ui/alert_dialog_content_behavior.rb +34 -34
  15. data/app/behaviors/ui/alert_dialog_description_behavior.rb +19 -19
  16. data/app/behaviors/ui/alert_dialog_footer_behavior.rb +20 -20
  17. data/app/behaviors/ui/alert_dialog_header_behavior.rb +19 -19
  18. data/app/behaviors/ui/alert_dialog_overlay_behavior.rb +56 -56
  19. data/app/behaviors/ui/alert_dialog_title_behavior.rb +19 -19
  20. data/app/behaviors/ui/alert_dialog_trigger_behavior.rb +31 -31
  21. data/app/behaviors/ui/alert_title_behavior.rb +25 -25
  22. data/app/behaviors/ui/aspect_ratio_behavior.rb +46 -38
  23. data/app/behaviors/ui/avatar_behavior.rb +44 -37
  24. data/app/behaviors/ui/avatar_fallback_behavior.rb +37 -37
  25. data/app/behaviors/ui/avatar_image_behavior.rb +40 -40
  26. data/app/behaviors/ui/badge_behavior.rb +50 -43
  27. data/app/behaviors/ui/blockquote_behavior.rb +25 -17
  28. data/app/behaviors/ui/breadcrumb_behavior.rb +35 -19
  29. data/app/behaviors/ui/breadcrumb_ellipsis_behavior.rb +28 -28
  30. data/app/behaviors/ui/breadcrumb_item_behavior.rb +26 -26
  31. data/app/behaviors/ui/breadcrumb_link_behavior.rb +27 -27
  32. data/app/behaviors/ui/breadcrumb_list_behavior.rb +26 -26
  33. data/app/behaviors/ui/breadcrumb_page_behavior.rb +29 -29
  34. data/app/behaviors/ui/breadcrumb_separator_behavior.rb +28 -28
  35. data/app/behaviors/ui/button_behavior.rb +94 -82
  36. data/app/behaviors/ui/button_group_behavior.rb +48 -48
  37. data/app/behaviors/ui/button_group_separator_behavior.rb +29 -29
  38. data/app/behaviors/ui/button_group_text_behavior.rb +29 -29
  39. data/app/behaviors/ui/calendar_behavior.rb +131 -104
  40. data/app/behaviors/ui/card_action_behavior.rb +26 -26
  41. data/app/behaviors/ui/card_behavior.rb +40 -26
  42. data/app/behaviors/ui/card_content_behavior.rb +26 -26
  43. data/app/behaviors/ui/card_description_behavior.rb +26 -26
  44. data/app/behaviors/ui/card_footer_behavior.rb +26 -26
  45. data/app/behaviors/ui/card_header_behavior.rb +26 -26
  46. data/app/behaviors/ui/card_title_behavior.rb +26 -26
  47. data/app/behaviors/ui/carousel_behavior.rb +74 -48
  48. data/app/behaviors/ui/carousel_content_behavior.rb +53 -53
  49. data/app/behaviors/ui/carousel_item_behavior.rb +20 -20
  50. data/app/behaviors/ui/carousel_next_behavior.rb +31 -31
  51. data/app/behaviors/ui/carousel_previous_behavior.rb +31 -31
  52. data/app/behaviors/ui/checkbox_behavior.rb +54 -38
  53. data/app/behaviors/ui/collapsible_behavior.rb +49 -34
  54. data/app/behaviors/ui/collapsible_content_behavior.rb +31 -31
  55. data/app/behaviors/ui/collapsible_trigger_behavior.rb +47 -47
  56. data/app/behaviors/ui/command_behavior.rb +56 -29
  57. data/app/behaviors/ui/command_dialog_behavior.rb +44 -28
  58. data/app/behaviors/ui/command_empty_behavior.rb +28 -28
  59. data/app/behaviors/ui/command_group_behavior.rb +34 -34
  60. data/app/behaviors/ui/command_input_behavior.rb +40 -40
  61. data/app/behaviors/ui/command_item_behavior.rb +39 -39
  62. data/app/behaviors/ui/command_list_behavior.rb +30 -30
  63. data/app/behaviors/ui/command_separator_behavior.rb +23 -23
  64. data/app/behaviors/ui/command_shortcut_behavior.rb +22 -22
  65. data/app/behaviors/ui/context_menu_behavior.rb +55 -28
  66. data/app/behaviors/ui/context_menu_checkbox_item_behavior.rb +32 -32
  67. data/app/behaviors/ui/context_menu_content_behavior.rb +32 -32
  68. data/app/behaviors/ui/context_menu_item_behavior.rb +34 -34
  69. data/app/behaviors/ui/context_menu_label_behavior.rb +28 -28
  70. data/app/behaviors/ui/context_menu_radio_group_behavior.rb +17 -17
  71. data/app/behaviors/ui/context_menu_radio_item_behavior.rb +32 -32
  72. data/app/behaviors/ui/context_menu_separator_behavior.rb +18 -18
  73. data/app/behaviors/ui/context_menu_shortcut_behavior.rb +17 -17
  74. data/app/behaviors/ui/context_menu_trigger_behavior.rb +28 -28
  75. data/app/behaviors/ui/date_picker_behavior.rb +95 -78
  76. data/app/behaviors/ui/date_picker_input_behavior.rb +56 -56
  77. data/app/behaviors/ui/date_picker_trigger_behavior.rb +56 -56
  78. data/app/behaviors/ui/dialog_behavior.rb +67 -42
  79. data/app/behaviors/ui/dialog_content_behavior.rb +38 -38
  80. data/app/behaviors/ui/dialog_footer_behavior.rb +20 -20
  81. data/app/behaviors/ui/dialog_header_behavior.rb +20 -20
  82. data/app/behaviors/ui/dialog_overlay_behavior.rb +57 -57
  83. data/app/behaviors/ui/drawer_behavior.rb +79 -52
  84. data/app/behaviors/ui/drawer_close_behavior.rb +8 -8
  85. data/app/behaviors/ui/drawer_content_behavior.rb +90 -90
  86. data/app/behaviors/ui/drawer_description_behavior.rb +17 -17
  87. data/app/behaviors/ui/drawer_footer_behavior.rb +17 -17
  88. data/app/behaviors/ui/drawer_handle_behavior.rb +33 -33
  89. data/app/behaviors/ui/drawer_header_behavior.rb +23 -23
  90. data/app/behaviors/ui/drawer_overlay_behavior.rb +63 -63
  91. data/app/behaviors/ui/drawer_title_behavior.rb +20 -20
  92. data/app/behaviors/ui/drawer_trigger_behavior.rb +15 -15
  93. data/app/behaviors/ui/dropdown_menu_behavior.rb +59 -37
  94. data/app/behaviors/ui/dropdown_menu_checkbox_item_behavior.rb +37 -39
  95. data/app/behaviors/ui/dropdown_menu_content_behavior.rb +32 -32
  96. data/app/behaviors/ui/dropdown_menu_item_behavior.rb +34 -34
  97. data/app/behaviors/ui/dropdown_menu_label_behavior.rb +25 -25
  98. data/app/behaviors/ui/dropdown_menu_radio_group_behavior.rb +17 -17
  99. data/app/behaviors/ui/dropdown_menu_radio_item_behavior.rb +37 -39
  100. data/app/behaviors/ui/dropdown_menu_separator_behavior.rb +19 -19
  101. data/app/behaviors/ui/dropdown_menu_shortcut_behavior.rb +17 -17
  102. data/app/behaviors/ui/dropdown_menu_sub_behavior.rb +17 -17
  103. data/app/behaviors/ui/dropdown_menu_sub_content_behavior.rb +33 -33
  104. data/app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb +30 -30
  105. data/app/behaviors/ui/dropdown_menu_trigger_behavior.rb +39 -39
  106. data/app/behaviors/ui/empty_behavior.rb +111 -100
  107. data/app/behaviors/ui/field_behavior.rb +51 -37
  108. data/app/behaviors/ui/field_content_behavior.rb +18 -20
  109. data/app/behaviors/ui/field_description_behavior.rb +18 -20
  110. data/app/behaviors/ui/field_error_behavior.rb +42 -37
  111. data/app/behaviors/ui/field_group_behavior.rb +18 -20
  112. data/app/behaviors/ui/field_label_behavior.rb +19 -21
  113. data/app/behaviors/ui/field_legend_behavior.rb +26 -22
  114. data/app/behaviors/ui/field_separator_behavior.rb +24 -26
  115. data/app/behaviors/ui/field_set_behavior.rb +24 -20
  116. data/app/behaviors/ui/field_title_behavior.rb +18 -20
  117. data/app/behaviors/ui/h1_behavior.rb +25 -17
  118. data/app/behaviors/ui/h2_behavior.rb +25 -17
  119. data/app/behaviors/ui/h3_behavior.rb +25 -17
  120. data/app/behaviors/ui/h4_behavior.rb +25 -17
  121. data/app/behaviors/ui/hover_card_behavior.rb +41 -25
  122. data/app/behaviors/ui/hover_card_content_behavior.rb +35 -35
  123. data/app/behaviors/ui/hover_card_trigger_behavior.rb +38 -38
  124. data/app/behaviors/ui/inline_code_behavior.rb +25 -17
  125. data/app/behaviors/ui/input_behavior.rb +52 -42
  126. data/app/behaviors/ui/input_group_addon_behavior.rb +9 -2
  127. data/app/behaviors/ui/input_group_behavior.rb +3 -1
  128. data/app/behaviors/ui/input_group_button_behavior.rb +16 -8
  129. data/app/behaviors/ui/input_group_input_behavior.rb +1 -1
  130. data/app/behaviors/ui/input_group_textarea_behavior.rb +9 -3
  131. data/app/behaviors/ui/input_otp_behavior.rb +50 -36
  132. data/app/behaviors/ui/input_otp_group_behavior.rb +25 -25
  133. data/app/behaviors/ui/input_otp_separator_behavior.rb +26 -26
  134. data/app/behaviors/ui/input_otp_slot_behavior.rb +49 -41
  135. data/app/behaviors/ui/item_actions_behavior.rb +32 -26
  136. data/app/behaviors/ui/item_behavior.rb +100 -87
  137. data/app/behaviors/ui/item_content_behavior.rb +27 -26
  138. data/app/behaviors/ui/item_description_behavior.rb +27 -26
  139. data/app/behaviors/ui/item_footer_behavior.rb +27 -26
  140. data/app/behaviors/ui/item_group_behavior.rb +27 -26
  141. data/app/behaviors/ui/item_header_behavior.rb +27 -26
  142. data/app/behaviors/ui/item_media_behavior.rb +47 -41
  143. data/app/behaviors/ui/item_separator_behavior.rb +27 -26
  144. data/app/behaviors/ui/item_title_behavior.rb +27 -26
  145. data/app/behaviors/ui/kbd_behavior.rb +28 -22
  146. data/app/behaviors/ui/kbd_group_behavior.rb +18 -20
  147. data/app/behaviors/ui/label_behavior.rb +35 -26
  148. data/app/behaviors/ui/large_behavior.rb +25 -17
  149. data/app/behaviors/ui/lead_behavior.rb +25 -17
  150. data/app/behaviors/ui/list_behavior.rb +25 -17
  151. data/app/behaviors/ui/menubar_behavior.rb +73 -35
  152. data/app/behaviors/ui/menubar_checkbox_item_behavior.rb +54 -54
  153. data/app/behaviors/ui/menubar_content_behavior.rb +46 -46
  154. data/app/behaviors/ui/menubar_item_behavior.rb +63 -63
  155. data/app/behaviors/ui/menubar_label_behavior.rb +33 -33
  156. data/app/behaviors/ui/menubar_menu_behavior.rb +37 -33
  157. data/app/behaviors/ui/menubar_radio_group_behavior.rb +28 -28
  158. data/app/behaviors/ui/menubar_radio_item_behavior.rb +59 -59
  159. data/app/behaviors/ui/menubar_separator_behavior.rb +26 -26
  160. data/app/behaviors/ui/menubar_shortcut_behavior.rb +25 -25
  161. data/app/behaviors/ui/menubar_sub_behavior.rb +26 -26
  162. data/app/behaviors/ui/menubar_sub_content_behavior.rb +44 -44
  163. data/app/behaviors/ui/menubar_sub_trigger_behavior.rb +55 -55
  164. data/app/behaviors/ui/menubar_trigger_behavior.rb +40 -42
  165. data/app/behaviors/ui/muted_behavior.rb +25 -17
  166. data/app/behaviors/ui/navigation_menu_behavior.rb +65 -36
  167. data/app/behaviors/ui/navigation_menu_content_behavior.rb +58 -59
  168. data/app/behaviors/ui/navigation_menu_item_behavior.rb +31 -32
  169. data/app/behaviors/ui/navigation_menu_link_behavior.rb +57 -57
  170. data/app/behaviors/ui/navigation_menu_list_behavior.rb +28 -29
  171. data/app/behaviors/ui/navigation_menu_trigger_behavior.rb +50 -51
  172. data/app/behaviors/ui/navigation_menu_viewport_behavior.rb +54 -55
  173. data/app/behaviors/ui/p_behavior.rb +25 -17
  174. data/app/behaviors/ui/pagination_behavior.rb +36 -22
  175. data/app/behaviors/ui/pagination_content_behavior.rb +20 -20
  176. data/app/behaviors/ui/pagination_ellipsis_behavior.rb +21 -21
  177. data/app/behaviors/ui/pagination_item_behavior.rb +11 -11
  178. data/app/behaviors/ui/pagination_link_behavior.rb +51 -51
  179. data/app/behaviors/ui/pagination_next_behavior.rb +16 -16
  180. data/app/behaviors/ui/pagination_previous_behavior.rb +16 -16
  181. data/app/behaviors/ui/popover_behavior.rb +33 -6
  182. data/app/behaviors/ui/popover_content_behavior.rb +1 -1
  183. data/app/behaviors/ui/popover_trigger_behavior.rb +1 -1
  184. data/app/behaviors/ui/progress_behavior.rb +59 -40
  185. data/app/behaviors/ui/radio_button_behavior.rb +51 -36
  186. data/app/behaviors/ui/resizable_handle_behavior.rb +73 -73
  187. data/app/behaviors/ui/resizable_panel_behavior.rb +52 -45
  188. data/app/behaviors/ui/resizable_panel_group_behavior.rb +36 -36
  189. data/app/behaviors/ui/responsive_dialog_behavior.rb +43 -33
  190. data/app/behaviors/ui/scroll_area_behavior.rb +17 -2
  191. data/app/behaviors/ui/scroll_area_corner_behavior.rb +8 -2
  192. data/app/behaviors/ui/scroll_area_scrollbar_behavior.rb +8 -2
  193. data/app/behaviors/ui/scroll_area_thumb_behavior.rb +8 -2
  194. data/app/behaviors/ui/select_behavior.rb +111 -61
  195. data/app/behaviors/ui/select_content_behavior.rb +31 -31
  196. data/app/behaviors/ui/select_group_behavior.rb +24 -24
  197. data/app/behaviors/ui/select_item_behavior.rb +34 -34
  198. data/app/behaviors/ui/select_label_behavior.rb +23 -23
  199. data/app/behaviors/ui/select_scroll_down_button_behavior.rb +38 -38
  200. data/app/behaviors/ui/select_scroll_up_button_behavior.rb +38 -38
  201. data/app/behaviors/ui/select_trigger_behavior.rb +29 -29
  202. data/app/behaviors/ui/separator_behavior.rb +53 -49
  203. data/app/behaviors/ui/shared_as_child_behavior.rb +63 -63
  204. data/app/behaviors/ui/sheet_behavior.rb +63 -42
  205. data/app/behaviors/ui/sheet_content_behavior.rb +80 -80
  206. data/app/behaviors/ui/sheet_footer_behavior.rb +21 -21
  207. data/app/behaviors/ui/sheet_header_behavior.rb +21 -21
  208. data/app/behaviors/ui/sheet_overlay_behavior.rb +64 -64
  209. data/app/behaviors/ui/sidebar_behavior.rb +91 -76
  210. data/app/behaviors/ui/sidebar_content_behavior.rb +28 -28
  211. data/app/behaviors/ui/sidebar_footer_behavior.rb +27 -27
  212. data/app/behaviors/ui/sidebar_group_action_behavior.rb +32 -32
  213. data/app/behaviors/ui/sidebar_group_behavior.rb +27 -27
  214. data/app/behaviors/ui/sidebar_group_content_behavior.rb +27 -27
  215. data/app/behaviors/ui/sidebar_group_label_behavior.rb +31 -31
  216. data/app/behaviors/ui/sidebar_header_behavior.rb +27 -27
  217. data/app/behaviors/ui/sidebar_input_behavior.rb +28 -28
  218. data/app/behaviors/ui/sidebar_inset_behavior.rb +37 -31
  219. data/app/behaviors/ui/sidebar_menu_action_behavior.rb +45 -45
  220. data/app/behaviors/ui/sidebar_menu_badge_behavior.rb +38 -31
  221. data/app/behaviors/ui/sidebar_menu_behavior.rb +38 -27
  222. data/app/behaviors/ui/sidebar_menu_button_behavior.rb +67 -58
  223. data/app/behaviors/ui/sidebar_menu_item_behavior.rb +27 -27
  224. data/app/behaviors/ui/sidebar_menu_skeleton_behavior.rb +34 -27
  225. data/app/behaviors/ui/sidebar_menu_sub_behavior.rb +28 -28
  226. data/app/behaviors/ui/sidebar_menu_sub_button_behavior.rb +64 -55
  227. data/app/behaviors/ui/sidebar_menu_sub_item_behavior.rb +27 -27
  228. data/app/behaviors/ui/sidebar_provider_behavior.rb +53 -47
  229. data/app/behaviors/ui/sidebar_rail_behavior.rb +46 -39
  230. data/app/behaviors/ui/sidebar_separator_behavior.rb +28 -28
  231. data/app/behaviors/ui/sidebar_trigger_behavior.rb +32 -32
  232. data/app/behaviors/ui/slider_behavior.rb +40 -40
  233. data/app/behaviors/ui/slider_range_behavior.rb +15 -15
  234. data/app/behaviors/ui/slider_thumb_behavior.rb +21 -21
  235. data/app/behaviors/ui/slider_track_behavior.rb +19 -19
  236. data/app/behaviors/ui/small_behavior.rb +25 -17
  237. data/app/behaviors/ui/sonner_toaster_behavior.rb +37 -29
  238. data/app/behaviors/ui/spinner_behavior.rb +46 -41
  239. data/app/behaviors/ui/switch_behavior.rb +28 -7
  240. data/app/behaviors/ui/table_behavior.rb +30 -22
  241. data/app/behaviors/ui/table_body_behavior.rb +28 -22
  242. data/app/behaviors/ui/table_caption_behavior.rb +28 -22
  243. data/app/behaviors/ui/table_cell_behavior.rb +28 -22
  244. data/app/behaviors/ui/table_footer_behavior.rb +22 -22
  245. data/app/behaviors/ui/table_head_behavior.rb +28 -22
  246. data/app/behaviors/ui/table_header_behavior.rb +22 -22
  247. data/app/behaviors/ui/table_row_behavior.rb +28 -22
  248. data/app/behaviors/ui/tabs_behavior.rb +53 -28
  249. data/app/behaviors/ui/tabs_content_behavior.rb +33 -33
  250. data/app/behaviors/ui/tabs_list_behavior.rb +17 -17
  251. data/app/behaviors/ui/tabs_trigger_behavior.rb +42 -42
  252. data/app/behaviors/ui/textarea_behavior.rb +36 -28
  253. data/app/behaviors/ui/toggle_behavior.rb +83 -68
  254. data/app/behaviors/ui/toggle_group_behavior.rb +50 -52
  255. data/app/behaviors/ui/toggle_group_item_behavior.rb +73 -71
  256. data/app/behaviors/ui/tooltip_behavior.rb +46 -22
  257. data/app/behaviors/ui/tooltip_content_behavior.rb +53 -53
  258. data/app/behaviors/ui/tooltip_trigger_behavior.rb +55 -55
  259. data/app/components/ui/accordion.rb +32 -32
  260. data/app/components/ui/accordion_content.rb +25 -25
  261. data/app/components/ui/accordion_item.rb +41 -41
  262. data/app/components/ui/accordion_trigger.rb +44 -44
  263. data/app/components/ui/alert.rb +26 -26
  264. data/app/components/ui/alert_description.rb +21 -21
  265. data/app/components/ui/alert_dialog.rb +28 -28
  266. data/app/components/ui/alert_dialog_action.rb +29 -29
  267. data/app/components/ui/alert_dialog_cancel.rb +29 -29
  268. data/app/components/ui/alert_dialog_content.rb +20 -20
  269. data/app/components/ui/alert_dialog_description.rb +20 -20
  270. data/app/components/ui/alert_dialog_footer.rb +23 -23
  271. data/app/components/ui/alert_dialog_header.rb +22 -22
  272. data/app/components/ui/alert_dialog_overlay.rb +25 -25
  273. data/app/components/ui/alert_dialog_title.rb +20 -20
  274. data/app/components/ui/alert_dialog_trigger.rb +22 -22
  275. data/app/components/ui/alert_title.rb +19 -19
  276. data/app/components/ui/aspect_ratio.rb +26 -26
  277. data/app/components/ui/avatar.rb +26 -26
  278. data/app/components/ui/avatar_fallback.rb +28 -28
  279. data/app/components/ui/avatar_image.rb +29 -29
  280. data/app/components/ui/badge.rb +32 -32
  281. data/app/components/ui/base.rb +8 -0
  282. data/app/components/ui/blockquote.rb +1 -0
  283. data/app/components/ui/breadcrumb.rb +26 -26
  284. data/app/components/ui/breadcrumb_ellipsis.rb +47 -47
  285. data/app/components/ui/breadcrumb_item.rb +22 -22
  286. data/app/components/ui/breadcrumb_link.rb +22 -22
  287. data/app/components/ui/breadcrumb_list.rb +22 -22
  288. data/app/components/ui/breadcrumb_page.rb +20 -20
  289. data/app/components/ui/breadcrumb_separator.rb +43 -43
  290. data/app/components/ui/button.rb +44 -44
  291. data/app/components/ui/button_group.rb +44 -44
  292. data/app/components/ui/button_group_separator.rb +28 -28
  293. data/app/components/ui/button_group_text.rb +40 -40
  294. data/app/components/ui/calendar.rb +231 -180
  295. data/app/components/ui/card.rb +10 -10
  296. data/app/components/ui/card_action.rb +10 -10
  297. data/app/components/ui/card_content.rb +10 -10
  298. data/app/components/ui/card_description.rb +10 -10
  299. data/app/components/ui/card_footer.rb +10 -10
  300. data/app/components/ui/card_header.rb +10 -10
  301. data/app/components/ui/card_title.rb +10 -10
  302. data/app/components/ui/carousel.rb +14 -13
  303. data/app/components/ui/carousel_content.rb +12 -11
  304. data/app/components/ui/carousel_item.rb +11 -10
  305. data/app/components/ui/carousel_next.rb +13 -25
  306. data/app/components/ui/carousel_previous.rb +13 -25
  307. data/app/components/ui/checkbox.rb +43 -43
  308. data/app/components/ui/collapsible.rb +17 -17
  309. data/app/components/ui/collapsible_content.rb +11 -11
  310. data/app/components/ui/collapsible_trigger.rb +15 -15
  311. data/app/components/ui/combobox_wrapper.rb +53 -53
  312. data/app/components/ui/command.rb +12 -11
  313. data/app/components/ui/command_dialog.rb +17 -16
  314. data/app/components/ui/command_empty.rb +10 -10
  315. data/app/components/ui/command_group.rb +15 -15
  316. data/app/components/ui/command_input.rb +26 -26
  317. data/app/components/ui/command_item.rb +12 -12
  318. data/app/components/ui/command_list.rb +10 -10
  319. data/app/components/ui/command_separator.rb +10 -10
  320. data/app/components/ui/command_shortcut.rb +10 -10
  321. data/app/components/ui/context_menu.rb +25 -25
  322. data/app/components/ui/context_menu_checkbox_item.rb +42 -42
  323. data/app/components/ui/context_menu_content.rb +22 -22
  324. data/app/components/ui/context_menu_item.rb +34 -34
  325. data/app/components/ui/context_menu_label.rb +22 -22
  326. data/app/components/ui/context_menu_radio_group.rb +23 -23
  327. data/app/components/ui/context_menu_radio_item.rb +42 -42
  328. data/app/components/ui/context_menu_separator.rb +19 -19
  329. data/app/components/ui/context_menu_shortcut.rb +20 -20
  330. data/app/components/ui/context_menu_trigger.rb +22 -22
  331. data/app/components/ui/date_picker.rb +116 -116
  332. data/app/components/ui/date_picker_input.rb +66 -66
  333. data/app/components/ui/date_picker_trigger.rb +63 -63
  334. data/app/components/ui/dialog.rb +14 -14
  335. data/app/components/ui/dialog_close.rb +22 -22
  336. data/app/components/ui/dialog_content.rb +12 -12
  337. data/app/components/ui/dialog_description.rb +17 -17
  338. data/app/components/ui/dialog_footer.rb +10 -10
  339. data/app/components/ui/dialog_header.rb +10 -10
  340. data/app/components/ui/dialog_overlay.rb +13 -13
  341. data/app/components/ui/dialog_title.rb +17 -17
  342. data/app/components/ui/dialog_trigger.rb +32 -32
  343. data/app/components/ui/drawer.rb +34 -34
  344. data/app/components/ui/drawer_close.rb +18 -18
  345. data/app/components/ui/drawer_content.rb +14 -14
  346. data/app/components/ui/drawer_description.rb +11 -11
  347. data/app/components/ui/drawer_footer.rb +11 -11
  348. data/app/components/ui/drawer_handle.rb +10 -10
  349. data/app/components/ui/drawer_header.rb +11 -11
  350. data/app/components/ui/drawer_overlay.rb +12 -12
  351. data/app/components/ui/drawer_title.rb +11 -11
  352. data/app/components/ui/drawer_trigger.rb +29 -29
  353. data/app/components/ui/dropdown_menu.rb +49 -49
  354. data/app/components/ui/dropdown_menu_checkbox_item.rb +45 -45
  355. data/app/components/ui/dropdown_menu_content.rb +24 -24
  356. data/app/components/ui/dropdown_menu_item.rb +34 -34
  357. data/app/components/ui/dropdown_menu_label.rb +22 -22
  358. data/app/components/ui/dropdown_menu_radio_group.rb +23 -23
  359. data/app/components/ui/dropdown_menu_radio_item.rb +47 -47
  360. data/app/components/ui/dropdown_menu_separator.rb +19 -19
  361. data/app/components/ui/dropdown_menu_shortcut.rb +20 -20
  362. data/app/components/ui/dropdown_menu_sub.rb +23 -23
  363. data/app/components/ui/dropdown_menu_sub_content.rb +26 -26
  364. data/app/components/ui/dropdown_menu_sub_trigger.rb +40 -40
  365. data/app/components/ui/dropdown_menu_trigger.rb +37 -36
  366. data/app/components/ui/empty.rb +21 -21
  367. data/app/components/ui/empty_content.rb +18 -18
  368. data/app/components/ui/empty_description.rb +16 -16
  369. data/app/components/ui/empty_header.rb +20 -20
  370. data/app/components/ui/empty_media.rb +24 -24
  371. data/app/components/ui/empty_title.rb +16 -16
  372. data/app/components/ui/field.rb +30 -30
  373. data/app/components/ui/field_content.rb +20 -20
  374. data/app/components/ui/field_description.rb +20 -20
  375. data/app/components/ui/field_error.rb +50 -50
  376. data/app/components/ui/field_group.rb +23 -23
  377. data/app/components/ui/field_label.rb +22 -22
  378. data/app/components/ui/field_legend.rb +25 -25
  379. data/app/components/ui/field_separator.rb +41 -41
  380. data/app/components/ui/field_set.rb +22 -22
  381. data/app/components/ui/field_title.rb +20 -20
  382. data/app/components/ui/h1.rb +1 -0
  383. data/app/components/ui/h2.rb +1 -0
  384. data/app/components/ui/h3.rb +1 -0
  385. data/app/components/ui/h4.rb +1 -0
  386. data/app/components/ui/hover_card.rb +22 -22
  387. data/app/components/ui/hover_card_content.rb +28 -28
  388. data/app/components/ui/hover_card_trigger.rb +40 -40
  389. data/app/components/ui/inline_code.rb +1 -0
  390. data/app/components/ui/input.rb +15 -15
  391. data/app/components/ui/input_group.rb +28 -28
  392. data/app/components/ui/input_group_addon.rb +27 -27
  393. data/app/components/ui/input_group_button.rb +42 -35
  394. data/app/components/ui/input_group_input.rb +39 -39
  395. data/app/components/ui/input_group_text.rb +26 -26
  396. data/app/components/ui/input_group_textarea.rb +39 -39
  397. data/app/components/ui/input_otp.rb +48 -48
  398. data/app/components/ui/input_otp_group.rb +21 -21
  399. data/app/components/ui/input_otp_separator.rb +28 -28
  400. data/app/components/ui/input_otp_slot.rb +28 -28
  401. data/app/components/ui/item.rb +20 -20
  402. data/app/components/ui/item_actions.rb +10 -10
  403. data/app/components/ui/item_content.rb +10 -10
  404. data/app/components/ui/item_description.rb +10 -10
  405. data/app/components/ui/item_footer.rb +10 -10
  406. data/app/components/ui/item_group.rb +10 -10
  407. data/app/components/ui/item_header.rb +10 -10
  408. data/app/components/ui/item_media.rb +11 -11
  409. data/app/components/ui/item_separator.rb +10 -10
  410. data/app/components/ui/item_title.rb +10 -10
  411. data/app/components/ui/kbd.rb +24 -24
  412. data/app/components/ui/kbd_group.rb +25 -25
  413. data/app/components/ui/label.rb +25 -25
  414. data/app/components/ui/large.rb +1 -0
  415. data/app/components/ui/lead.rb +1 -0
  416. data/app/components/ui/list.rb +1 -0
  417. data/app/components/ui/menubar.rb +31 -31
  418. data/app/components/ui/menubar_checkbox_item.rb +45 -45
  419. data/app/components/ui/menubar_content.rb +27 -27
  420. data/app/components/ui/menubar_item.rb +34 -34
  421. data/app/components/ui/menubar_label.rb +24 -24
  422. data/app/components/ui/menubar_menu.rb +24 -24
  423. data/app/components/ui/menubar_radio_group.rb +24 -24
  424. data/app/components/ui/menubar_radio_item.rb +47 -47
  425. data/app/components/ui/menubar_separator.rb +18 -18
  426. data/app/components/ui/menubar_shortcut.rb +22 -22
  427. data/app/components/ui/menubar_sub.rb +25 -25
  428. data/app/components/ui/menubar_sub_content.rb +22 -22
  429. data/app/components/ui/menubar_sub_trigger.rb +41 -41
  430. data/app/components/ui/menubar_trigger.rb +21 -21
  431. data/app/components/ui/muted.rb +1 -0
  432. data/app/components/ui/navigation_menu.rb +43 -43
  433. data/app/components/ui/navigation_menu_content.rb +28 -28
  434. data/app/components/ui/navigation_menu_item.rb +31 -31
  435. data/app/components/ui/navigation_menu_link.rb +60 -60
  436. data/app/components/ui/navigation_menu_list.rb +23 -23
  437. data/app/components/ui/navigation_menu_trigger.rb +44 -44
  438. data/app/components/ui/navigation_menu_viewport.rb +20 -20
  439. data/app/components/ui/p.rb +1 -0
  440. data/app/components/ui/pagination.rb +15 -15
  441. data/app/components/ui/pagination_content.rb +15 -15
  442. data/app/components/ui/pagination_ellipsis.rb +20 -20
  443. data/app/components/ui/pagination_item.rb +13 -13
  444. data/app/components/ui/pagination_link.rb +21 -21
  445. data/app/components/ui/pagination_next.rb +25 -25
  446. data/app/components/ui/pagination_previous.rb +25 -25
  447. data/app/components/ui/popover.rb +67 -42
  448. data/app/components/ui/popover_content.rb +25 -25
  449. data/app/components/ui/popover_trigger.rb +30 -30
  450. data/app/components/ui/progress.rb +32 -32
  451. data/app/components/ui/radio_button.rb +44 -44
  452. data/app/components/ui/resizable_handle.rb +49 -49
  453. data/app/components/ui/resizable_panel.rb +31 -31
  454. data/app/components/ui/resizable_panel_group.rb +37 -37
  455. data/app/components/ui/responsive_dialog.rb +81 -81
  456. data/app/components/ui/scroll_area.rb +54 -54
  457. data/app/components/ui/scroll_area_corner.rb +27 -27
  458. data/app/components/ui/scroll_area_scrollbar.rb +37 -37
  459. data/app/components/ui/scroll_area_thumb.rb +31 -31
  460. data/app/components/ui/scroll_area_viewport.rb +33 -33
  461. data/app/components/ui/select.rb +49 -37
  462. data/app/components/ui/select_content.rb +36 -36
  463. data/app/components/ui/select_group.rb +32 -32
  464. data/app/components/ui/select_item.rb +58 -58
  465. data/app/components/ui/select_label.rb +28 -28
  466. data/app/components/ui/select_scroll_down_button.rb +39 -39
  467. data/app/components/ui/select_scroll_up_button.rb +39 -39
  468. data/app/components/ui/select_trigger.rb +38 -38
  469. data/app/components/ui/separator.rb +35 -35
  470. data/app/components/ui/sheet.rb +14 -14
  471. data/app/components/ui/sheet_close.rb +32 -32
  472. data/app/components/ui/sheet_content.rb +45 -45
  473. data/app/components/ui/sheet_description.rb +17 -17
  474. data/app/components/ui/sheet_footer.rb +10 -10
  475. data/app/components/ui/sheet_header.rb +10 -10
  476. data/app/components/ui/sheet_overlay.rb +13 -13
  477. data/app/components/ui/sheet_title.rb +17 -17
  478. data/app/components/ui/sheet_trigger.rb +21 -21
  479. data/app/components/ui/sidebar.rb +85 -85
  480. data/app/components/ui/sidebar_content.rb +27 -27
  481. data/app/components/ui/sidebar_footer.rb +29 -29
  482. data/app/components/ui/sidebar_group.rb +45 -45
  483. data/app/components/ui/sidebar_group_action.rb +39 -39
  484. data/app/components/ui/sidebar_group_content.rb +35 -35
  485. data/app/components/ui/sidebar_group_label.rb +38 -38
  486. data/app/components/ui/sidebar_header.rb +29 -29
  487. data/app/components/ui/sidebar_input.rb +35 -35
  488. data/app/components/ui/sidebar_inset.rb +35 -35
  489. data/app/components/ui/sidebar_menu.rb +32 -32
  490. data/app/components/ui/sidebar_menu_action.rb +52 -52
  491. data/app/components/ui/sidebar_menu_badge.rb +32 -32
  492. data/app/components/ui/sidebar_menu_button.rb +63 -63
  493. data/app/components/ui/sidebar_menu_item.rb +38 -38
  494. data/app/components/ui/sidebar_menu_skeleton.rb +57 -57
  495. data/app/components/ui/sidebar_menu_sub.rb +43 -43
  496. data/app/components/ui/sidebar_menu_sub_button.rb +40 -40
  497. data/app/components/ui/sidebar_menu_sub_item.rb +27 -27
  498. data/app/components/ui/sidebar_provider.rb +66 -66
  499. data/app/components/ui/sidebar_rail.rb +28 -28
  500. data/app/components/ui/sidebar_separator.rb +25 -25
  501. data/app/components/ui/sidebar_trigger.rb +54 -54
  502. data/app/components/ui/skeleton.rb +37 -37
  503. data/app/components/ui/small.rb +1 -0
  504. data/app/components/ui/sonner_toaster.rb +49 -49
  505. data/app/components/ui/spinner.rb +36 -36
  506. data/app/components/ui/switch.rb +62 -62
  507. data/app/components/ui/table.rb +42 -42
  508. data/app/components/ui/table_body.rb +22 -22
  509. data/app/components/ui/table_caption.rb +11 -11
  510. data/app/components/ui/table_cell.rb +11 -11
  511. data/app/components/ui/table_footer.rb +22 -22
  512. data/app/components/ui/table_head.rb +11 -11
  513. data/app/components/ui/table_header.rb +22 -22
  514. data/app/components/ui/table_row.rb +19 -19
  515. data/app/components/ui/tabs.rb +36 -36
  516. data/app/components/ui/tabs_content.rb +26 -26
  517. data/app/components/ui/tabs_list.rb +23 -23
  518. data/app/components/ui/tabs_trigger.rb +29 -29
  519. data/app/components/ui/textarea.rb +15 -15
  520. data/app/components/ui/toggle.rb +38 -38
  521. data/app/components/ui/toggle_group.rb +58 -52
  522. data/app/components/ui/toggle_group_item.rb +62 -61
  523. data/app/components/ui/tooltip.rb +49 -25
  524. data/app/components/ui/tooltip_content.rb +31 -31
  525. data/app/components/ui/tooltip_trigger.rb +36 -36
  526. data/app/helpers/ui/combobox_behavior.rb +1 -1
  527. data/app/helpers/ui/empty_behavior.rb +6 -6
  528. data/app/helpers/ui/input_group_input_behavior.rb +1 -1
  529. data/app/helpers/ui/input_group_textarea_behavior.rb +1 -1
  530. data/app/helpers/ui/popover_behavior.rb +5 -2
  531. data/app/helpers/ui/popover_content_behavior.rb +1 -1
  532. data/app/helpers/ui/popover_trigger_behavior.rb +1 -1
  533. data/app/helpers/ui/select_behavior.rb +61 -61
  534. data/app/helpers/ui/select_content_behavior.rb +31 -31
  535. data/app/helpers/ui/select_group_behavior.rb +24 -24
  536. data/app/helpers/ui/select_item_behavior.rb +34 -34
  537. data/app/helpers/ui/select_label_behavior.rb +23 -23
  538. data/app/helpers/ui/select_scroll_down_button_behavior.rb +38 -38
  539. data/app/helpers/ui/select_scroll_up_button_behavior.rb +38 -38
  540. data/app/helpers/ui/select_trigger_behavior.rb +29 -29
  541. data/app/helpers/ui/spinner_behavior.rb +1 -1
  542. data/app/javascript/ui/controllers/accordion_controller.js +15 -3
  543. data/app/javascript/ui/controllers/collapsible_controller.js +2 -0
  544. data/app/javascript/ui/controllers/command_controller.js +4 -3
  545. data/app/javascript/ui/controllers/dropdown_controller.js +8 -14
  546. data/app/view_components/ui/accordion_component.rb +31 -31
  547. data/app/view_components/ui/accordion_content_component.rb +24 -24
  548. data/app/view_components/ui/accordion_item_component.rb +37 -37
  549. data/app/view_components/ui/accordion_trigger_component.rb +25 -25
  550. data/app/view_components/ui/alert_component.rb +18 -18
  551. data/app/view_components/ui/alert_description_component.rb +16 -16
  552. data/app/view_components/ui/alert_title_component.rb +16 -16
  553. data/app/view_components/ui/aspect_ratio_component.rb +20 -20
  554. data/app/view_components/ui/avatar_component.rb +16 -16
  555. data/app/view_components/ui/avatar_fallback_component.rb +16 -16
  556. data/app/view_components/ui/avatar_image_component.rb +19 -19
  557. data/app/view_components/ui/badge_component.rb +18 -18
  558. data/app/view_components/ui/blockquote_component.rb +1 -0
  559. data/app/view_components/ui/breadcrumb_component.rb +28 -28
  560. data/app/view_components/ui/breadcrumb_ellipsis_component.rb +41 -41
  561. data/app/view_components/ui/breadcrumb_item_component.rb +24 -24
  562. data/app/view_components/ui/breadcrumb_link_component.rb +24 -24
  563. data/app/view_components/ui/breadcrumb_list_component.rb +24 -24
  564. data/app/view_components/ui/breadcrumb_page_component.rb +22 -22
  565. data/app/view_components/ui/breadcrumb_separator_component.rb +38 -38
  566. data/app/view_components/ui/button_component.rb +39 -39
  567. data/app/view_components/ui/button_group_component.rb +33 -33
  568. data/app/view_components/ui/button_group_separator_component.rb +29 -29
  569. data/app/view_components/ui/button_group_text_component.rb +25 -25
  570. data/app/view_components/ui/calendar_component.rb +241 -182
  571. data/app/view_components/ui/card_action_component.rb +10 -10
  572. data/app/view_components/ui/card_component.rb +10 -10
  573. data/app/view_components/ui/card_content_component.rb +10 -10
  574. data/app/view_components/ui/card_description_component.rb +10 -10
  575. data/app/view_components/ui/card_footer_component.rb +10 -10
  576. data/app/view_components/ui/card_header_component.rb +10 -10
  577. data/app/view_components/ui/card_title_component.rb +10 -10
  578. data/app/view_components/ui/carousel_component.rb +14 -13
  579. data/app/view_components/ui/carousel_content_component.rb +12 -11
  580. data/app/view_components/ui/carousel_item_component.rb +11 -10
  581. data/app/view_components/ui/carousel_next_component.rb +15 -27
  582. data/app/view_components/ui/carousel_previous_component.rb +15 -27
  583. data/app/view_components/ui/checkbox_component.rb +48 -48
  584. data/app/view_components/ui/collapsible_component.rb +17 -17
  585. data/app/view_components/ui/collapsible_content_component.rb +11 -11
  586. data/app/view_components/ui/collapsible_trigger_component.rb +15 -15
  587. data/app/view_components/ui/combobox_wrapper_component.rb +53 -53
  588. data/app/view_components/ui/command_component.rb +12 -11
  589. data/app/view_components/ui/command_dialog_component.rb +17 -16
  590. data/app/view_components/ui/command_empty_component.rb +10 -10
  591. data/app/view_components/ui/command_group_component.rb +16 -16
  592. data/app/view_components/ui/command_input_component.rb +15 -15
  593. data/app/view_components/ui/command_item_component.rb +12 -12
  594. data/app/view_components/ui/command_list_component.rb +10 -10
  595. data/app/view_components/ui/command_separator_component.rb +10 -10
  596. data/app/view_components/ui/command_shortcut_component.rb +10 -10
  597. data/app/view_components/ui/context_menu_checkbox_item_component.rb +36 -37
  598. data/app/view_components/ui/context_menu_component.rb +14 -14
  599. data/app/view_components/ui/context_menu_content_component.rb +14 -14
  600. data/app/view_components/ui/context_menu_item_component.rb +22 -22
  601. data/app/view_components/ui/context_menu_label_component.rb +16 -16
  602. data/app/view_components/ui/context_menu_radio_group_component.rb +13 -13
  603. data/app/view_components/ui/context_menu_radio_item_component.rb +36 -37
  604. data/app/view_components/ui/context_menu_separator_component.rb +11 -11
  605. data/app/view_components/ui/context_menu_shortcut_component.rb +13 -13
  606. data/app/view_components/ui/context_menu_trigger_component.rb +14 -14
  607. data/app/view_components/ui/date_picker_component.rb +125 -125
  608. data/app/view_components/ui/date_picker_input_component.rb +68 -68
  609. data/app/view_components/ui/date_picker_trigger_component.rb +67 -67
  610. data/app/view_components/ui/dialog_close_component.rb +61 -61
  611. data/app/view_components/ui/dialog_component.rb +45 -45
  612. data/app/view_components/ui/dialog_content_component.rb +23 -23
  613. data/app/view_components/ui/dialog_description_component.rb +21 -21
  614. data/app/view_components/ui/dialog_footer_component.rb +17 -17
  615. data/app/view_components/ui/dialog_header_component.rb +18 -18
  616. data/app/view_components/ui/dialog_overlay_component.rb +30 -30
  617. data/app/view_components/ui/dialog_title_component.rb +21 -21
  618. data/app/view_components/ui/dialog_trigger_component.rb +61 -61
  619. data/app/view_components/ui/drawer_close_component.rb +30 -30
  620. data/app/view_components/ui/drawer_component.rb +76 -76
  621. data/app/view_components/ui/drawer_content_component.rb +26 -26
  622. data/app/view_components/ui/drawer_description_component.rb +17 -17
  623. data/app/view_components/ui/drawer_footer_component.rb +20 -20
  624. data/app/view_components/ui/drawer_handle_component.rb +19 -19
  625. data/app/view_components/ui/drawer_header_component.rb +20 -20
  626. data/app/view_components/ui/drawer_overlay_component.rb +22 -22
  627. data/app/view_components/ui/drawer_title_component.rb +17 -17
  628. data/app/view_components/ui/drawer_trigger_component.rb +60 -60
  629. data/app/view_components/ui/dropdown_menu_checkbox_item_component.rb +26 -26
  630. data/app/view_components/ui/dropdown_menu_component.rb +45 -45
  631. data/app/view_components/ui/dropdown_menu_content_component.rb +13 -13
  632. data/app/view_components/ui/dropdown_menu_item_component.rb +16 -16
  633. data/app/view_components/ui/dropdown_menu_label_component.rb +13 -13
  634. data/app/view_components/ui/dropdown_menu_radio_group_component.rb +12 -12
  635. data/app/view_components/ui/dropdown_menu_radio_item_component.rb +27 -27
  636. data/app/view_components/ui/dropdown_menu_separator_component.rb +11 -11
  637. data/app/view_components/ui/dropdown_menu_shortcut_component.rb +12 -12
  638. data/app/view_components/ui/dropdown_menu_sub_component.rb +12 -12
  639. data/app/view_components/ui/dropdown_menu_sub_content_component.rb +14 -14
  640. data/app/view_components/ui/dropdown_menu_sub_trigger_component.rb +22 -22
  641. data/app/view_components/ui/dropdown_menu_trigger_component.rb +32 -48
  642. data/app/view_components/ui/empty_component.rb +12 -12
  643. data/app/view_components/ui/empty_content_component.rb +12 -12
  644. data/app/view_components/ui/empty_description_component.rb +12 -12
  645. data/app/view_components/ui/empty_header_component.rb +12 -12
  646. data/app/view_components/ui/empty_media_component.rb +13 -13
  647. data/app/view_components/ui/empty_title_component.rb +12 -12
  648. data/app/view_components/ui/field_component.rb +36 -36
  649. data/app/view_components/ui/field_content_component.rb +22 -22
  650. data/app/view_components/ui/field_description_component.rb +22 -22
  651. data/app/view_components/ui/field_error_component.rb +55 -55
  652. data/app/view_components/ui/field_group_component.rb +27 -27
  653. data/app/view_components/ui/field_label_component.rb +24 -24
  654. data/app/view_components/ui/field_legend_component.rb +29 -29
  655. data/app/view_components/ui/field_separator_component.rb +43 -43
  656. data/app/view_components/ui/field_set_component.rb +25 -25
  657. data/app/view_components/ui/field_title_component.rb +22 -22
  658. data/app/view_components/ui/h3_component.rb +1 -0
  659. data/app/view_components/ui/h4_component.rb +1 -0
  660. data/app/view_components/ui/hover_card_component.rb +24 -24
  661. data/app/view_components/ui/hover_card_content_component.rb +30 -30
  662. data/app/view_components/ui/hover_card_trigger_component.rb +47 -47
  663. data/app/view_components/ui/inline_code_component.rb +1 -0
  664. data/app/view_components/ui/input_component.rb +17 -17
  665. data/app/view_components/ui/input_group_addon_component.rb +31 -31
  666. data/app/view_components/ui/input_group_button_component.rb +47 -32
  667. data/app/view_components/ui/input_group_component.rb +30 -30
  668. data/app/view_components/ui/input_group_input_component.rb +38 -38
  669. data/app/view_components/ui/input_group_text_component.rb +28 -28
  670. data/app/view_components/ui/input_group_textarea_component.rb +38 -38
  671. data/app/view_components/ui/input_otp_component.rb +52 -52
  672. data/app/view_components/ui/input_otp_group_component.rb +23 -23
  673. data/app/view_components/ui/input_otp_separator_component.rb +29 -29
  674. data/app/view_components/ui/input_otp_slot_component.rb +28 -28
  675. data/app/view_components/ui/item_actions_component.rb +12 -12
  676. data/app/view_components/ui/item_component.rb +23 -23
  677. data/app/view_components/ui/item_content_component.rb +12 -12
  678. data/app/view_components/ui/item_description_component.rb +12 -12
  679. data/app/view_components/ui/item_footer_component.rb +12 -12
  680. data/app/view_components/ui/item_group_component.rb +12 -12
  681. data/app/view_components/ui/item_header_component.rb +12 -12
  682. data/app/view_components/ui/item_media_component.rb +13 -13
  683. data/app/view_components/ui/item_separator_component.rb +12 -12
  684. data/app/view_components/ui/item_title_component.rb +12 -12
  685. data/app/view_components/ui/kbd_component.rb +25 -25
  686. data/app/view_components/ui/kbd_group_component.rb +26 -26
  687. data/app/view_components/ui/label_component.rb +18 -18
  688. data/app/view_components/ui/large_component.rb +1 -0
  689. data/app/view_components/ui/lead_component.rb +1 -0
  690. data/app/view_components/ui/list_component.rb +1 -0
  691. data/app/view_components/ui/menubar_checkbox_item_component.rb +40 -40
  692. data/app/view_components/ui/menubar_component.rb +19 -19
  693. data/app/view_components/ui/menubar_content_component.rb +21 -21
  694. data/app/view_components/ui/menubar_item_component.rb +26 -26
  695. data/app/view_components/ui/menubar_label_component.rb +18 -18
  696. data/app/view_components/ui/menubar_menu_component.rb +20 -20
  697. data/app/view_components/ui/menubar_radio_group_component.rb +21 -21
  698. data/app/view_components/ui/menubar_radio_item_component.rb +41 -41
  699. data/app/view_components/ui/menubar_separator_component.rb +16 -16
  700. data/app/view_components/ui/menubar_shortcut_component.rb +17 -17
  701. data/app/view_components/ui/menubar_sub_component.rb +20 -20
  702. data/app/view_components/ui/menubar_sub_content_component.rb +20 -20
  703. data/app/view_components/ui/menubar_sub_trigger_component.rb +37 -37
  704. data/app/view_components/ui/menubar_trigger_component.rb +18 -18
  705. data/app/view_components/ui/muted_component.rb +1 -0
  706. data/app/view_components/ui/navigation_menu_component.rb +37 -37
  707. data/app/view_components/ui/navigation_menu_content_component.rb +18 -18
  708. data/app/view_components/ui/navigation_menu_item_component.rb +18 -18
  709. data/app/view_components/ui/navigation_menu_link_component.rb +83 -83
  710. data/app/view_components/ui/navigation_menu_list_component.rb +16 -16
  711. data/app/view_components/ui/navigation_menu_trigger_component.rb +38 -38
  712. data/app/view_components/ui/navigation_menu_viewport_component.rb +16 -16
  713. data/app/view_components/ui/p_component.rb +1 -0
  714. data/app/view_components/ui/pagination_component.rb +14 -14
  715. data/app/view_components/ui/pagination_content_component.rb +14 -14
  716. data/app/view_components/ui/pagination_ellipsis_component.rb +20 -20
  717. data/app/view_components/ui/pagination_item_component.rb +12 -12
  718. data/app/view_components/ui/pagination_link_component.rb +21 -21
  719. data/app/view_components/ui/pagination_next_component.rb +24 -24
  720. data/app/view_components/ui/pagination_previous_component.rb +25 -25
  721. data/app/view_components/ui/popover_component.rb +70 -49
  722. data/app/view_components/ui/popover_content_component.rb +36 -36
  723. data/app/view_components/ui/popover_trigger_component.rb +64 -59
  724. data/app/view_components/ui/progress_component.rb +33 -33
  725. data/app/view_components/ui/radio_button_component.rb +49 -49
  726. data/app/view_components/ui/resizable_handle_component.rb +27 -27
  727. data/app/view_components/ui/resizable_panel_component.rb +33 -33
  728. data/app/view_components/ui/resizable_panel_group_component.rb +39 -39
  729. data/app/view_components/ui/responsive_dialog_component.rb +70 -70
  730. data/app/view_components/ui/scroll_area_component.rb +39 -39
  731. data/app/view_components/ui/scroll_area_corner_component.rb +18 -18
  732. data/app/view_components/ui/scroll_area_scrollbar_component.rb +28 -28
  733. data/app/view_components/ui/scroll_area_thumb_component.rb +23 -23
  734. data/app/view_components/ui/scroll_area_viewport_component.rb +25 -25
  735. data/app/view_components/ui/select_component.rb +37 -26
  736. data/app/view_components/ui/select_content_component.rb +35 -36
  737. data/app/view_components/ui/select_group_component.rb +22 -22
  738. data/app/view_components/ui/select_item_component.rb +39 -40
  739. data/app/view_components/ui/select_label_component.rb +18 -18
  740. data/app/view_components/ui/select_scroll_down_button_component.rb +29 -29
  741. data/app/view_components/ui/select_scroll_up_button_component.rb +29 -29
  742. data/app/view_components/ui/select_trigger_component.rb +22 -22
  743. data/app/view_components/ui/separator_component.rb +23 -23
  744. data/app/view_components/ui/sheet_close_component.rb +61 -61
  745. data/app/view_components/ui/sheet_component.rb +45 -45
  746. data/app/view_components/ui/sheet_content_component.rb +43 -43
  747. data/app/view_components/ui/sheet_description_component.rb +20 -20
  748. data/app/view_components/ui/sheet_footer_component.rb +17 -17
  749. data/app/view_components/ui/sheet_header_component.rb +17 -17
  750. data/app/view_components/ui/sheet_overlay_component.rb +30 -30
  751. data/app/view_components/ui/sheet_title_component.rb +20 -20
  752. data/app/view_components/ui/sheet_trigger_component.rb +50 -50
  753. data/app/view_components/ui/skeleton_component.rb +23 -23
  754. data/app/view_components/ui/slider_component.rb +55 -55
  755. data/app/view_components/ui/slider_range_component.rb +19 -19
  756. data/app/view_components/ui/slider_thumb_component.rb +25 -25
  757. data/app/view_components/ui/slider_track_component.rb +22 -22
  758. data/app/view_components/ui/small_component.rb +1 -0
  759. data/app/view_components/ui/sonner_toaster_component.rb +49 -49
  760. data/app/view_components/ui/spinner_component.rb +41 -41
  761. data/app/view_components/ui/switch_component.rb +52 -52
  762. data/app/view_components/ui/table_body_component.rb +14 -14
  763. data/app/view_components/ui/table_caption_component.rb +10 -10
  764. data/app/view_components/ui/table_cell_component.rb +10 -10
  765. data/app/view_components/ui/table_component.rb +20 -20
  766. data/app/view_components/ui/table_footer_component.rb +14 -14
  767. data/app/view_components/ui/table_head_component.rb +10 -10
  768. data/app/view_components/ui/table_header_component.rb +14 -14
  769. data/app/view_components/ui/table_row_component.rb +16 -16
  770. data/app/view_components/ui/tabs_component.rb +33 -33
  771. data/app/view_components/ui/tabs_content_component.rb +28 -28
  772. data/app/view_components/ui/tabs_list_component.rb +24 -24
  773. data/app/view_components/ui/tabs_trigger_component.rb +31 -31
  774. data/app/view_components/ui/textarea_component.rb +14 -14
  775. data/app/view_components/ui/toggle_component.rb +43 -43
  776. data/app/view_components/ui/toggle_group_component.rb +60 -60
  777. data/app/view_components/ui/toggle_group_item_component.rb +62 -62
  778. data/app/view_components/ui/tooltip_component.rb +44 -13
  779. data/app/view_components/ui/tooltip_content_component.rb +23 -23
  780. data/app/view_components/ui/tooltip_trigger_component.rb +38 -18
  781. data/app/views/ui/_avatar.html.erb +8 -4
  782. data/app/views/ui/_button.html.erb +16 -0
  783. data/app/views/ui/_command.html.erb +2 -0
  784. data/app/views/ui/_date_picker.html.erb +4 -4
  785. data/app/views/ui/_popover.html.erb +30 -4
  786. data/app/views/ui/_select.html.erb +13 -2
  787. data/app/views/ui/_skeleton.html.erb +1 -1
  788. data/app/views/ui/_tooltip.html.erb +28 -2
  789. data/app/views/ui/carousel/_next.html.erb +1 -1
  790. data/app/views/ui/carousel/_previous.html.erb +1 -1
  791. data/app/views/ui/dropdown_menu/_trigger.html.erb +3 -1
  792. data/app/views/ui/input_group/_button.html.erb +14 -3
  793. data/app/views/ui/popover/_trigger.html.erb +22 -2
  794. data/app/views/ui/tooltip/_trigger.html.erb +16 -21
  795. data/lib/ui/version.rb +1 -1
  796. metadata +2 -1
@@ -1,62 +1,62 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Shared behavior for DatePicker trigger component (button)
4
- module UI::DatePickerTriggerBehavior
5
- # Generate data attributes for trigger
6
- def date_picker_trigger_data_attributes
7
- {
8
- ui__datepicker_target: "trigger",
9
- ui__popover_target: "trigger"
10
- }
11
- end
3
+ # Shared behavior for DatePicker trigger component (button)
4
+ module UI::DatePickerTriggerBehavior
5
+ # Generate data attributes for trigger
6
+ def date_picker_trigger_data_attributes
7
+ {
8
+ ui__datepicker_target: "trigger",
9
+ ui__popover_target: "trigger"
10
+ }
11
+ end
12
12
 
13
- # Build complete HTML attributes hash for trigger
14
- def date_picker_trigger_html_attributes
15
- base_attrs = @attributes&.except(:data) || {}
16
- user_data = @attributes&.fetch(:data, {}) || {}
17
- base_attrs.merge(
18
- class: date_picker_trigger_classes,
19
- type: "button",
20
- data: user_data.merge(date_picker_trigger_data_attributes)
21
- )
22
- end
13
+ # Build complete HTML attributes hash for trigger
14
+ def date_picker_trigger_html_attributes
15
+ base_attrs = @attributes&.except(:data) || {}
16
+ user_data = @attributes&.fetch(:data, {}) || {}
17
+ base_attrs.merge(
18
+ class: date_picker_trigger_classes,
19
+ type: "button",
20
+ data: user_data.merge(date_picker_trigger_data_attributes)
21
+ )
22
+ end
23
23
 
24
- # Trigger classes - button with outline variant style
25
- def date_picker_trigger_classes
26
- TailwindMerge::Merger.new.merge([
27
- # Button base styles
28
- "inline-flex items-center justify-between gap-2 whitespace-nowrap rounded-md text-sm font-medium",
29
- "ring-offset-background transition-colors",
30
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
31
- "disabled:pointer-events-none disabled:opacity-50",
32
- # Outline variant
33
- "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
34
- # Size default
35
- "h-10 px-4 py-2",
36
- # Width
37
- "w-[280px]",
38
- @classes
39
- ].compact.join(" "))
40
- end
24
+ # Trigger classes - button with outline variant style
25
+ def date_picker_trigger_classes
26
+ TailwindMerge::Merger.new.merge([
27
+ # Button base styles
28
+ "inline-flex items-center justify-between gap-2 whitespace-nowrap rounded-md text-sm font-medium",
29
+ "ring-offset-background transition-colors",
30
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
31
+ "disabled:pointer-events-none disabled:opacity-50",
32
+ # Outline variant
33
+ "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
34
+ # Size default
35
+ "h-10 px-4 py-2",
36
+ # Width
37
+ "w-[280px]",
38
+ @classes
39
+ ].compact.join(" "))
40
+ end
41
41
 
42
- # ChevronDown icon SVG
43
- def chevron_down_icon
44
- <<~SVG.html_safe
45
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 opacity-50">
46
- <path d="m6 9 6 6 6-6"/>
47
- </svg>
48
- SVG
49
- end
42
+ # ChevronDown icon SVG
43
+ def chevron_down_icon
44
+ <<~SVG.html_safe
45
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 opacity-50">
46
+ <path d="m6 9 6 6 6-6"/>
47
+ </svg>
48
+ SVG
49
+ end
50
50
 
51
- # Calendar icon SVG
52
- def calendar_icon
53
- <<~SVG.html_safe
54
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 opacity-50">
55
- <path d="M8 2v4"/>
56
- <path d="M16 2v4"/>
57
- <rect width="18" height="18" x="3" y="4" rx="2"/>
58
- <path d="M3 10h18"/>
59
- </svg>
60
- SVG
61
- end
62
- end
51
+ # Calendar icon SVG
52
+ def calendar_icon
53
+ <<~SVG.html_safe
54
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 opacity-50">
55
+ <path d="M8 2v4"/>
56
+ <path d="M16 2v4"/>
57
+ <rect width="18" height="18" x="3" y="4" rx="2"/>
58
+ <path d="M3 10h18"/>
59
+ </svg>
60
+ SVG
61
+ end
62
+ end
@@ -2,45 +2,70 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Dialog component
6
- # Handles main component logic and data attributes
7
- module UI::DialogBehavior
8
- # Generate data attributes for Stimulus controller
9
- def dialog_data_attributes
10
- attrs = {
11
- controller: "ui--dialog",
12
- ui__dialog_open_value: @open.to_s
13
- }
14
-
15
- # Only add optional values if they are explicitly set (not nil)
16
- attrs[:ui__dialog_close_on_escape_value] = @close_on_escape.to_s unless @close_on_escape.nil?
17
- attrs[:ui__dialog_close_on_overlay_click_value] = @close_on_overlay_click.to_s unless @close_on_overlay_click.nil?
18
-
19
- attrs
20
- end
21
-
22
- # Merge user-provided data attributes
23
- def merged_dialog_data_attributes
24
- user_data = @attributes&.fetch(:data, {}) || {}
25
- user_data.merge(dialog_data_attributes)
26
- end
27
-
28
- # Build complete HTML attributes hash
29
- def dialog_html_attributes
30
- base_attrs = @attributes&.except(:data) || {}
31
- base_attrs.merge(
32
- class: dialog_classes,
33
- data: merged_dialog_data_attributes
34
- )
35
- end
36
-
37
- # Base CSS classes
38
- def dialog_base_classes
39
- ""
40
- end
41
-
42
- # Generate final classes using TailwindMerge
43
- def dialog_classes
44
- TailwindMerge::Merger.new.merge([dialog_base_classes, @classes].compact.join(" "))
45
- end
46
- end
5
+ # UI::DialogBehavior
6
+ #
7
+ # @ui_component Dialog
8
+ # @ui_category overlay
9
+ #
10
+ # @ui_anatomy Dialog - Root container with state management (required)
11
+ # @ui_anatomy Close - Button to close/dismiss the component
12
+ # @ui_anatomy Content - Main content container (required)
13
+ # @ui_anatomy Description - Descriptive text element
14
+ # @ui_anatomy Footer - Footer section with actions
15
+ # @ui_anatomy Header - Header section with title and controls
16
+ # @ui_anatomy Overlay - Background overlay that dims the page
17
+ # @ui_anatomy Title - Title text element
18
+ # @ui_anatomy Trigger - Button or element that activates the component (required)
19
+ #
20
+ # @ui_feature Custom styling with Tailwind classes
21
+ # @ui_feature Focus management
22
+ #
23
+ # @ui_aria_pattern Dialog (Modal)
24
+ # @ui_aria_reference https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
25
+ #
26
+ # @ui_keyboard Escape Closes the component
27
+ #
28
+ # @ui_related alert_dialog
29
+ # @ui_related drawer
30
+ # @ui_related sheet
31
+ #
32
+ module UI::DialogBehavior
33
+ # Generate data attributes for Stimulus controller
34
+ def dialog_data_attributes
35
+ attrs = {
36
+ controller: "ui--dialog",
37
+ ui__dialog_open_value: @open.to_s
38
+ }
39
+
40
+ # Only add optional values if they are explicitly set (not nil)
41
+ attrs[:ui__dialog_close_on_escape_value] = @close_on_escape.to_s unless @close_on_escape.nil?
42
+ attrs[:ui__dialog_close_on_overlay_click_value] = @close_on_overlay_click.to_s unless @close_on_overlay_click.nil?
43
+
44
+ attrs
45
+ end
46
+
47
+ # Merge user-provided data attributes
48
+ def merged_dialog_data_attributes
49
+ user_data = @attributes&.fetch(:data, {}) || {}
50
+ user_data.merge(dialog_data_attributes)
51
+ end
52
+
53
+ # Build complete HTML attributes hash
54
+ def dialog_html_attributes
55
+ base_attrs = @attributes&.except(:data) || {}
56
+ base_attrs.merge(
57
+ class: dialog_classes,
58
+ data: merged_dialog_data_attributes
59
+ )
60
+ end
61
+
62
+ # Base CSS classes
63
+ def dialog_base_classes
64
+ ""
65
+ end
66
+
67
+ # Generate final classes using TailwindMerge
68
+ def dialog_classes
69
+ TailwindMerge::Merger.new.merge([dialog_base_classes, @classes].compact.join(" "))
70
+ end
71
+ end
@@ -2,45 +2,45 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Dialog Content component
6
- # Handles content area styling, ARIA attributes, and animations
7
- module UI::DialogContentBehavior
8
- # Base CSS classes for dialog content
9
- # Use opacity-0/scale-95 and pointer-events-none when closed for smooth animations
10
- def dialog_content_base_classes
11
- "bg-background data-[state=closed]:invisible data-[state=open]:visible data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:opacity-0 data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg"
12
- end
5
+ # Shared behavior for Dialog Content component
6
+ # Handles content area styling, ARIA attributes, and animations
7
+ module UI::DialogContentBehavior
8
+ # Base CSS classes for dialog content
9
+ # Use opacity-0/scale-95 and pointer-events-none when closed for smooth animations
10
+ def dialog_content_base_classes
11
+ "bg-background data-[state=closed]:invisible data-[state=open]:visible data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:opacity-0 data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg"
12
+ end
13
13
 
14
- # Merge base classes with custom classes using TailwindMerge
15
- def dialog_content_classes
16
- TailwindMerge::Merger.new.merge([dialog_content_base_classes, @classes].compact.join(" "))
17
- end
14
+ # Merge base classes with custom classes using TailwindMerge
15
+ def dialog_content_classes
16
+ TailwindMerge::Merger.new.merge([dialog_content_base_classes, @classes].compact.join(" "))
17
+ end
18
18
 
19
- # Data attributes for Stimulus target
20
- def dialog_content_data_attributes
21
- {
22
- ui__dialog_target: "content"
23
- }
24
- end
19
+ # Data attributes for Stimulus target
20
+ def dialog_content_data_attributes
21
+ {
22
+ ui__dialog_target: "content"
23
+ }
24
+ end
25
25
 
26
- # Merge user-provided data attributes
27
- def merged_dialog_content_data_attributes
28
- user_data = @attributes&.fetch(:data, {}) || {}
29
- user_data.merge(dialog_content_data_attributes)
30
- end
26
+ # Merge user-provided data attributes
27
+ def merged_dialog_content_data_attributes
28
+ user_data = @attributes&.fetch(:data, {}) || {}
29
+ user_data.merge(dialog_content_data_attributes)
30
+ end
31
31
 
32
- # Build complete HTML attributes hash for dialog content
33
- def dialog_content_html_attributes
34
- base_attrs = @attributes&.except(:data) || {}
35
- attrs = base_attrs.merge(
36
- class: dialog_content_classes,
37
- role: "dialog",
38
- "aria-modal": "true",
39
- "data-state": @open ? "open" : "closed",
40
- data: merged_dialog_content_data_attributes
41
- )
42
- # Add inert when closed to prevent focus on elements inside
43
- attrs[:inert] = true unless @open
44
- attrs
45
- end
46
- end
32
+ # Build complete HTML attributes hash for dialog content
33
+ def dialog_content_html_attributes
34
+ base_attrs = @attributes&.except(:data) || {}
35
+ attrs = base_attrs.merge(
36
+ class: dialog_content_classes,
37
+ role: "dialog",
38
+ "aria-modal": "true",
39
+ "data-state": @open ? "open" : "closed",
40
+ data: merged_dialog_content_data_attributes
41
+ )
42
+ # Add inert when closed to prevent focus on elements inside
43
+ attrs[:inert] = true unless @open
44
+ attrs
45
+ end
46
+ end
@@ -2,25 +2,25 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Dialog Footer component
6
- module UI::DialogFooterBehavior
7
- # Returns HTML attributes for the dialog footer
8
- def dialog_footer_html_attributes
9
- {
10
- class: dialog_footer_classes
11
- }
12
- end
5
+ # Shared behavior for Dialog Footer component
6
+ module UI::DialogFooterBehavior
7
+ # Returns HTML attributes for the dialog footer
8
+ def dialog_footer_html_attributes
9
+ {
10
+ class: dialog_footer_classes
11
+ }
12
+ end
13
13
 
14
- # Returns combined CSS classes for the dialog footer
15
- def dialog_footer_classes
16
- TailwindMerge::Merger.new.merge([
17
- dialog_footer_base_classes,
18
- @classes
19
- ].compact.join(" "))
20
- end
14
+ # Returns combined CSS classes for the dialog footer
15
+ def dialog_footer_classes
16
+ TailwindMerge::Merger.new.merge([
17
+ dialog_footer_base_classes,
18
+ @classes
19
+ ].compact.join(" "))
20
+ end
21
21
 
22
- # Base classes applied to dialog footer
23
- def dialog_footer_base_classes
24
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end"
25
- end
26
- end
22
+ # Base classes applied to dialog footer
23
+ def dialog_footer_base_classes
24
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end"
25
+ end
26
+ end
@@ -2,25 +2,25 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Dialog Header component
6
- module UI::DialogHeaderBehavior
7
- # Returns HTML attributes for the dialog header
8
- def dialog_header_html_attributes
9
- {
10
- class: dialog_header_classes
11
- }
12
- end
5
+ # Shared behavior for Dialog Header component
6
+ module UI::DialogHeaderBehavior
7
+ # Returns HTML attributes for the dialog header
8
+ def dialog_header_html_attributes
9
+ {
10
+ class: dialog_header_classes
11
+ }
12
+ end
13
13
 
14
- # Returns combined CSS classes for the dialog header
15
- def dialog_header_classes
16
- TailwindMerge::Merger.new.merge([
17
- dialog_header_base_classes,
18
- @classes
19
- ].compact.join(" "))
20
- end
14
+ # Returns combined CSS classes for the dialog header
15
+ def dialog_header_classes
16
+ TailwindMerge::Merger.new.merge([
17
+ dialog_header_base_classes,
18
+ @classes
19
+ ].compact.join(" "))
20
+ end
21
21
 
22
- # Base classes applied to dialog header
23
- def dialog_header_base_classes
24
- "flex flex-col gap-2 text-center sm:text-left"
25
- end
26
- end
22
+ # Base classes applied to dialog header
23
+ def dialog_header_base_classes
24
+ "flex flex-col gap-2 text-center sm:text-left"
25
+ end
26
+ end
@@ -2,68 +2,68 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Dialog Overlay component
6
- # Handles backdrop/overlay styling and attributes
7
- module UI::DialogOverlayBehavior
8
- # Base CSS classes for overlay backdrop
9
- # Use opacity-0 and pointer-events-none when closed for smooth animations
10
- def dialog_overlay_base_classes
11
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:opacity-0 data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none fixed inset-0 z-50 bg-black/50"
12
- end
5
+ # Shared behavior for Dialog Overlay component
6
+ # Handles backdrop/overlay styling and attributes
7
+ module UI::DialogOverlayBehavior
8
+ # Base CSS classes for overlay backdrop
9
+ # Use opacity-0 and pointer-events-none when closed for smooth animations
10
+ def dialog_overlay_base_classes
11
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:opacity-0 data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none fixed inset-0 z-50 bg-black/50"
12
+ end
13
13
 
14
- # Merge base classes with custom classes using TailwindMerge
15
- def dialog_overlay_classes
16
- TailwindMerge::Merger.new.merge([dialog_overlay_base_classes].compact.join(" "))
17
- end
14
+ # Merge base classes with custom classes using TailwindMerge
15
+ def dialog_overlay_classes
16
+ TailwindMerge::Merger.new.merge([dialog_overlay_base_classes].compact.join(" "))
17
+ end
18
18
 
19
- # Container wrapper classes
20
- # Use invisible (visibility: hidden) when closed, visible when open
21
- def dialog_overlay_container_base_classes
22
- "data-[state=closed]:invisible data-[state=open]:visible fixed inset-0 z-50"
23
- end
19
+ # Container wrapper classes
20
+ # Use invisible (visibility: hidden) when closed, visible when open
21
+ def dialog_overlay_container_base_classes
22
+ "data-[state=closed]:invisible data-[state=open]:visible fixed inset-0 z-50"
23
+ end
24
24
 
25
- # Merge container base classes with custom classes
26
- def dialog_overlay_container_classes
27
- TailwindMerge::Merger.new.merge([dialog_overlay_container_base_classes, @classes].compact.join(" "))
28
- end
25
+ # Merge container base classes with custom classes
26
+ def dialog_overlay_container_classes
27
+ TailwindMerge::Merger.new.merge([dialog_overlay_container_base_classes, @classes].compact.join(" "))
28
+ end
29
29
 
30
- # Data attributes for container
31
- def dialog_overlay_container_data_attributes
32
- {
33
- ui__dialog_target: "container"
34
- }
35
- end
30
+ # Data attributes for container
31
+ def dialog_overlay_container_data_attributes
32
+ {
33
+ ui__dialog_target: "container"
34
+ }
35
+ end
36
36
 
37
- # Data attributes for overlay backdrop
38
- def dialog_overlay_data_attributes
39
- {
40
- ui__dialog_target: "overlay",
41
- action: "click->ui--dialog#closeOnOverlayClick"
42
- }
43
- end
37
+ # Data attributes for overlay backdrop
38
+ def dialog_overlay_data_attributes
39
+ {
40
+ ui__dialog_target: "overlay",
41
+ action: "click->ui--dialog#closeOnOverlayClick"
42
+ }
43
+ end
44
44
 
45
- # Merge user-provided data attributes for container
46
- def merged_dialog_overlay_container_data_attributes
47
- user_data = @attributes&.fetch(:data, {}) || {}
48
- user_data.merge(dialog_overlay_container_data_attributes)
49
- end
45
+ # Merge user-provided data attributes for container
46
+ def merged_dialog_overlay_container_data_attributes
47
+ user_data = @attributes&.fetch(:data, {}) || {}
48
+ user_data.merge(dialog_overlay_container_data_attributes)
49
+ end
50
50
 
51
- # Build complete HTML attributes hash for container wrapper
52
- def dialog_overlay_container_html_attributes
53
- base_attrs = @attributes&.except(:data) || {}
54
- base_attrs.merge(
55
- class: dialog_overlay_container_classes,
56
- "data-state": @open ? "open" : "closed",
57
- data: merged_dialog_overlay_container_data_attributes
58
- )
59
- end
51
+ # Build complete HTML attributes hash for container wrapper
52
+ def dialog_overlay_container_html_attributes
53
+ base_attrs = @attributes&.except(:data) || {}
54
+ base_attrs.merge(
55
+ class: dialog_overlay_container_classes,
56
+ "data-state": @open ? "open" : "closed",
57
+ data: merged_dialog_overlay_container_data_attributes
58
+ )
59
+ end
60
60
 
61
- # Build complete HTML attributes hash for overlay backdrop
62
- def dialog_overlay_html_attributes
63
- {
64
- class: dialog_overlay_classes,
65
- "data-state": @open ? "open" : "closed",
66
- data: dialog_overlay_data_attributes
67
- }
68
- end
69
- end
61
+ # Build complete HTML attributes hash for overlay backdrop
62
+ def dialog_overlay_html_attributes
63
+ {
64
+ class: dialog_overlay_classes,
65
+ "data-state": @open ? "open" : "closed",
66
+ data: dialog_overlay_data_attributes
67
+ }
68
+ end
69
+ end