fernandes-ui 0.1.1 → 0.1.2

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 (780) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/app/assets/javascripts/ui.esm.js +12 -3
  4. data/app/assets/javascripts/ui.js +12 -3
  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 +52 -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_button_behavior.rb +9 -2
  128. data/app/behaviors/ui/input_group_input_behavior.rb +1 -1
  129. data/app/behaviors/ui/input_group_textarea_behavior.rb +9 -3
  130. data/app/behaviors/ui/input_otp_behavior.rb +50 -36
  131. data/app/behaviors/ui/input_otp_group_behavior.rb +25 -25
  132. data/app/behaviors/ui/input_otp_separator_behavior.rb +26 -26
  133. data/app/behaviors/ui/input_otp_slot_behavior.rb +49 -41
  134. data/app/behaviors/ui/item_actions_behavior.rb +32 -26
  135. data/app/behaviors/ui/item_behavior.rb +100 -87
  136. data/app/behaviors/ui/item_content_behavior.rb +27 -26
  137. data/app/behaviors/ui/item_description_behavior.rb +27 -26
  138. data/app/behaviors/ui/item_footer_behavior.rb +27 -26
  139. data/app/behaviors/ui/item_group_behavior.rb +27 -26
  140. data/app/behaviors/ui/item_header_behavior.rb +27 -26
  141. data/app/behaviors/ui/item_media_behavior.rb +47 -41
  142. data/app/behaviors/ui/item_separator_behavior.rb +27 -26
  143. data/app/behaviors/ui/item_title_behavior.rb +27 -26
  144. data/app/behaviors/ui/kbd_behavior.rb +28 -22
  145. data/app/behaviors/ui/kbd_group_behavior.rb +18 -20
  146. data/app/behaviors/ui/label_behavior.rb +35 -26
  147. data/app/behaviors/ui/large_behavior.rb +25 -17
  148. data/app/behaviors/ui/lead_behavior.rb +25 -17
  149. data/app/behaviors/ui/list_behavior.rb +25 -17
  150. data/app/behaviors/ui/menubar_behavior.rb +73 -35
  151. data/app/behaviors/ui/menubar_checkbox_item_behavior.rb +54 -54
  152. data/app/behaviors/ui/menubar_content_behavior.rb +46 -46
  153. data/app/behaviors/ui/menubar_item_behavior.rb +63 -63
  154. data/app/behaviors/ui/menubar_label_behavior.rb +33 -33
  155. data/app/behaviors/ui/menubar_menu_behavior.rb +37 -33
  156. data/app/behaviors/ui/menubar_radio_group_behavior.rb +28 -28
  157. data/app/behaviors/ui/menubar_radio_item_behavior.rb +59 -59
  158. data/app/behaviors/ui/menubar_separator_behavior.rb +26 -26
  159. data/app/behaviors/ui/menubar_shortcut_behavior.rb +25 -25
  160. data/app/behaviors/ui/menubar_sub_behavior.rb +26 -26
  161. data/app/behaviors/ui/menubar_sub_content_behavior.rb +44 -44
  162. data/app/behaviors/ui/menubar_sub_trigger_behavior.rb +55 -55
  163. data/app/behaviors/ui/menubar_trigger_behavior.rb +40 -42
  164. data/app/behaviors/ui/muted_behavior.rb +25 -17
  165. data/app/behaviors/ui/navigation_menu_behavior.rb +65 -36
  166. data/app/behaviors/ui/navigation_menu_content_behavior.rb +58 -59
  167. data/app/behaviors/ui/navigation_menu_item_behavior.rb +31 -32
  168. data/app/behaviors/ui/navigation_menu_link_behavior.rb +57 -57
  169. data/app/behaviors/ui/navigation_menu_list_behavior.rb +28 -29
  170. data/app/behaviors/ui/navigation_menu_trigger_behavior.rb +50 -51
  171. data/app/behaviors/ui/navigation_menu_viewport_behavior.rb +54 -55
  172. data/app/behaviors/ui/p_behavior.rb +25 -17
  173. data/app/behaviors/ui/pagination_behavior.rb +36 -22
  174. data/app/behaviors/ui/pagination_content_behavior.rb +20 -20
  175. data/app/behaviors/ui/pagination_ellipsis_behavior.rb +21 -21
  176. data/app/behaviors/ui/pagination_item_behavior.rb +11 -11
  177. data/app/behaviors/ui/pagination_link_behavior.rb +51 -51
  178. data/app/behaviors/ui/pagination_next_behavior.rb +16 -16
  179. data/app/behaviors/ui/pagination_previous_behavior.rb +16 -16
  180. data/app/behaviors/ui/popover_behavior.rb +22 -3
  181. data/app/behaviors/ui/popover_content_behavior.rb +1 -1
  182. data/app/behaviors/ui/popover_trigger_behavior.rb +1 -1
  183. data/app/behaviors/ui/progress_behavior.rb +59 -40
  184. data/app/behaviors/ui/radio_button_behavior.rb +51 -36
  185. data/app/behaviors/ui/resizable_handle_behavior.rb +73 -73
  186. data/app/behaviors/ui/resizable_panel_behavior.rb +52 -45
  187. data/app/behaviors/ui/resizable_panel_group_behavior.rb +36 -36
  188. data/app/behaviors/ui/responsive_dialog_behavior.rb +43 -33
  189. data/app/behaviors/ui/scroll_area_behavior.rb +17 -2
  190. data/app/behaviors/ui/scroll_area_corner_behavior.rb +8 -2
  191. data/app/behaviors/ui/scroll_area_scrollbar_behavior.rb +8 -2
  192. data/app/behaviors/ui/scroll_area_thumb_behavior.rb +8 -2
  193. data/app/behaviors/ui/select_behavior.rb +111 -61
  194. data/app/behaviors/ui/select_content_behavior.rb +31 -31
  195. data/app/behaviors/ui/select_group_behavior.rb +24 -24
  196. data/app/behaviors/ui/select_item_behavior.rb +34 -34
  197. data/app/behaviors/ui/select_label_behavior.rb +23 -23
  198. data/app/behaviors/ui/select_scroll_down_button_behavior.rb +38 -38
  199. data/app/behaviors/ui/select_scroll_up_button_behavior.rb +38 -38
  200. data/app/behaviors/ui/select_trigger_behavior.rb +29 -29
  201. data/app/behaviors/ui/separator_behavior.rb +53 -49
  202. data/app/behaviors/ui/shared_as_child_behavior.rb +63 -63
  203. data/app/behaviors/ui/sheet_behavior.rb +63 -42
  204. data/app/behaviors/ui/sheet_content_behavior.rb +80 -80
  205. data/app/behaviors/ui/sheet_footer_behavior.rb +21 -21
  206. data/app/behaviors/ui/sheet_header_behavior.rb +21 -21
  207. data/app/behaviors/ui/sheet_overlay_behavior.rb +64 -64
  208. data/app/behaviors/ui/sidebar_behavior.rb +91 -76
  209. data/app/behaviors/ui/sidebar_content_behavior.rb +28 -28
  210. data/app/behaviors/ui/sidebar_footer_behavior.rb +27 -27
  211. data/app/behaviors/ui/sidebar_group_action_behavior.rb +32 -32
  212. data/app/behaviors/ui/sidebar_group_behavior.rb +27 -27
  213. data/app/behaviors/ui/sidebar_group_content_behavior.rb +27 -27
  214. data/app/behaviors/ui/sidebar_group_label_behavior.rb +31 -31
  215. data/app/behaviors/ui/sidebar_header_behavior.rb +27 -27
  216. data/app/behaviors/ui/sidebar_input_behavior.rb +28 -28
  217. data/app/behaviors/ui/sidebar_inset_behavior.rb +37 -31
  218. data/app/behaviors/ui/sidebar_menu_action_behavior.rb +45 -45
  219. data/app/behaviors/ui/sidebar_menu_badge_behavior.rb +38 -31
  220. data/app/behaviors/ui/sidebar_menu_behavior.rb +38 -27
  221. data/app/behaviors/ui/sidebar_menu_button_behavior.rb +67 -58
  222. data/app/behaviors/ui/sidebar_menu_item_behavior.rb +27 -27
  223. data/app/behaviors/ui/sidebar_menu_skeleton_behavior.rb +34 -27
  224. data/app/behaviors/ui/sidebar_menu_sub_behavior.rb +28 -28
  225. data/app/behaviors/ui/sidebar_menu_sub_button_behavior.rb +64 -55
  226. data/app/behaviors/ui/sidebar_menu_sub_item_behavior.rb +27 -27
  227. data/app/behaviors/ui/sidebar_provider_behavior.rb +53 -47
  228. data/app/behaviors/ui/sidebar_rail_behavior.rb +46 -39
  229. data/app/behaviors/ui/sidebar_separator_behavior.rb +28 -28
  230. data/app/behaviors/ui/sidebar_trigger_behavior.rb +32 -32
  231. data/app/behaviors/ui/slider_behavior.rb +40 -40
  232. data/app/behaviors/ui/slider_range_behavior.rb +15 -15
  233. data/app/behaviors/ui/slider_thumb_behavior.rb +21 -21
  234. data/app/behaviors/ui/slider_track_behavior.rb +19 -19
  235. data/app/behaviors/ui/small_behavior.rb +25 -17
  236. data/app/behaviors/ui/sonner_toaster_behavior.rb +37 -29
  237. data/app/behaviors/ui/spinner_behavior.rb +46 -41
  238. data/app/behaviors/ui/switch_behavior.rb +77 -56
  239. data/app/behaviors/ui/table_behavior.rb +30 -22
  240. data/app/behaviors/ui/table_body_behavior.rb +28 -22
  241. data/app/behaviors/ui/table_caption_behavior.rb +28 -22
  242. data/app/behaviors/ui/table_cell_behavior.rb +28 -22
  243. data/app/behaviors/ui/table_footer_behavior.rb +22 -22
  244. data/app/behaviors/ui/table_head_behavior.rb +28 -22
  245. data/app/behaviors/ui/table_header_behavior.rb +22 -22
  246. data/app/behaviors/ui/table_row_behavior.rb +28 -22
  247. data/app/behaviors/ui/tabs_behavior.rb +53 -28
  248. data/app/behaviors/ui/tabs_content_behavior.rb +33 -33
  249. data/app/behaviors/ui/tabs_list_behavior.rb +17 -17
  250. data/app/behaviors/ui/tabs_trigger_behavior.rb +42 -42
  251. data/app/behaviors/ui/textarea_behavior.rb +36 -28
  252. data/app/behaviors/ui/toggle_behavior.rb +83 -68
  253. data/app/behaviors/ui/toggle_group_behavior.rb +50 -52
  254. data/app/behaviors/ui/toggle_group_item_behavior.rb +69 -71
  255. data/app/behaviors/ui/tooltip_behavior.rb +36 -22
  256. data/app/behaviors/ui/tooltip_content_behavior.rb +53 -53
  257. data/app/behaviors/ui/tooltip_trigger_behavior.rb +55 -55
  258. data/app/components/ui/accordion.rb +32 -32
  259. data/app/components/ui/accordion_content.rb +25 -25
  260. data/app/components/ui/accordion_item.rb +41 -41
  261. data/app/components/ui/accordion_trigger.rb +44 -44
  262. data/app/components/ui/alert.rb +26 -26
  263. data/app/components/ui/alert_description.rb +21 -21
  264. data/app/components/ui/alert_dialog.rb +28 -28
  265. data/app/components/ui/alert_dialog_action.rb +29 -29
  266. data/app/components/ui/alert_dialog_cancel.rb +29 -29
  267. data/app/components/ui/alert_dialog_content.rb +20 -20
  268. data/app/components/ui/alert_dialog_description.rb +20 -20
  269. data/app/components/ui/alert_dialog_footer.rb +23 -23
  270. data/app/components/ui/alert_dialog_header.rb +22 -22
  271. data/app/components/ui/alert_dialog_overlay.rb +25 -25
  272. data/app/components/ui/alert_dialog_title.rb +20 -20
  273. data/app/components/ui/alert_dialog_trigger.rb +22 -22
  274. data/app/components/ui/alert_title.rb +19 -19
  275. data/app/components/ui/aspect_ratio.rb +26 -26
  276. data/app/components/ui/avatar.rb +26 -26
  277. data/app/components/ui/avatar_fallback.rb +28 -28
  278. data/app/components/ui/avatar_image.rb +29 -29
  279. data/app/components/ui/badge.rb +32 -32
  280. data/app/components/ui/blockquote.rb +1 -0
  281. data/app/components/ui/breadcrumb.rb +26 -26
  282. data/app/components/ui/breadcrumb_ellipsis.rb +47 -47
  283. data/app/components/ui/breadcrumb_item.rb +22 -22
  284. data/app/components/ui/breadcrumb_link.rb +22 -22
  285. data/app/components/ui/breadcrumb_list.rb +22 -22
  286. data/app/components/ui/breadcrumb_page.rb +20 -20
  287. data/app/components/ui/breadcrumb_separator.rb +43 -43
  288. data/app/components/ui/button.rb +44 -44
  289. data/app/components/ui/button_group.rb +44 -44
  290. data/app/components/ui/button_group_separator.rb +28 -28
  291. data/app/components/ui/button_group_text.rb +40 -40
  292. data/app/components/ui/calendar.rb +188 -188
  293. data/app/components/ui/card.rb +10 -10
  294. data/app/components/ui/card_action.rb +10 -10
  295. data/app/components/ui/card_content.rb +10 -10
  296. data/app/components/ui/card_description.rb +10 -10
  297. data/app/components/ui/card_footer.rb +10 -10
  298. data/app/components/ui/card_header.rb +10 -10
  299. data/app/components/ui/card_title.rb +10 -10
  300. data/app/components/ui/carousel.rb +14 -13
  301. data/app/components/ui/carousel_content.rb +12 -11
  302. data/app/components/ui/carousel_item.rb +11 -10
  303. data/app/components/ui/carousel_next.rb +13 -25
  304. data/app/components/ui/carousel_previous.rb +13 -25
  305. data/app/components/ui/checkbox.rb +43 -43
  306. data/app/components/ui/collapsible.rb +17 -17
  307. data/app/components/ui/collapsible_content.rb +11 -11
  308. data/app/components/ui/collapsible_trigger.rb +15 -15
  309. data/app/components/ui/combobox_wrapper.rb +53 -53
  310. data/app/components/ui/command.rb +12 -11
  311. data/app/components/ui/command_dialog.rb +17 -16
  312. data/app/components/ui/command_empty.rb +10 -10
  313. data/app/components/ui/command_group.rb +15 -15
  314. data/app/components/ui/command_input.rb +26 -26
  315. data/app/components/ui/command_item.rb +12 -12
  316. data/app/components/ui/command_list.rb +10 -10
  317. data/app/components/ui/command_separator.rb +10 -10
  318. data/app/components/ui/command_shortcut.rb +10 -10
  319. data/app/components/ui/context_menu.rb +25 -25
  320. data/app/components/ui/context_menu_checkbox_item.rb +42 -42
  321. data/app/components/ui/context_menu_content.rb +22 -22
  322. data/app/components/ui/context_menu_item.rb +34 -34
  323. data/app/components/ui/context_menu_label.rb +22 -22
  324. data/app/components/ui/context_menu_radio_group.rb +23 -23
  325. data/app/components/ui/context_menu_radio_item.rb +42 -42
  326. data/app/components/ui/context_menu_separator.rb +19 -19
  327. data/app/components/ui/context_menu_shortcut.rb +20 -20
  328. data/app/components/ui/context_menu_trigger.rb +22 -22
  329. data/app/components/ui/date_picker.rb +116 -116
  330. data/app/components/ui/date_picker_input.rb +66 -66
  331. data/app/components/ui/date_picker_trigger.rb +63 -63
  332. data/app/components/ui/dialog.rb +14 -14
  333. data/app/components/ui/dialog_close.rb +22 -22
  334. data/app/components/ui/dialog_content.rb +12 -12
  335. data/app/components/ui/dialog_description.rb +17 -17
  336. data/app/components/ui/dialog_footer.rb +10 -10
  337. data/app/components/ui/dialog_header.rb +10 -10
  338. data/app/components/ui/dialog_overlay.rb +13 -13
  339. data/app/components/ui/dialog_title.rb +17 -17
  340. data/app/components/ui/dialog_trigger.rb +32 -32
  341. data/app/components/ui/drawer.rb +34 -34
  342. data/app/components/ui/drawer_close.rb +18 -18
  343. data/app/components/ui/drawer_content.rb +14 -14
  344. data/app/components/ui/drawer_description.rb +11 -11
  345. data/app/components/ui/drawer_footer.rb +11 -11
  346. data/app/components/ui/drawer_handle.rb +10 -10
  347. data/app/components/ui/drawer_header.rb +11 -11
  348. data/app/components/ui/drawer_overlay.rb +12 -12
  349. data/app/components/ui/drawer_title.rb +11 -11
  350. data/app/components/ui/drawer_trigger.rb +29 -29
  351. data/app/components/ui/dropdown_menu.rb +49 -49
  352. data/app/components/ui/dropdown_menu_checkbox_item.rb +45 -45
  353. data/app/components/ui/dropdown_menu_content.rb +24 -24
  354. data/app/components/ui/dropdown_menu_item.rb +34 -34
  355. data/app/components/ui/dropdown_menu_label.rb +22 -22
  356. data/app/components/ui/dropdown_menu_radio_group.rb +23 -23
  357. data/app/components/ui/dropdown_menu_radio_item.rb +47 -47
  358. data/app/components/ui/dropdown_menu_separator.rb +19 -19
  359. data/app/components/ui/dropdown_menu_shortcut.rb +20 -20
  360. data/app/components/ui/dropdown_menu_sub.rb +23 -23
  361. data/app/components/ui/dropdown_menu_sub_content.rb +26 -26
  362. data/app/components/ui/dropdown_menu_sub_trigger.rb +40 -40
  363. data/app/components/ui/dropdown_menu_trigger.rb +36 -36
  364. data/app/components/ui/empty.rb +21 -21
  365. data/app/components/ui/empty_content.rb +18 -18
  366. data/app/components/ui/empty_description.rb +16 -16
  367. data/app/components/ui/empty_header.rb +20 -20
  368. data/app/components/ui/empty_media.rb +24 -24
  369. data/app/components/ui/empty_title.rb +16 -16
  370. data/app/components/ui/field.rb +30 -30
  371. data/app/components/ui/field_content.rb +20 -20
  372. data/app/components/ui/field_description.rb +20 -20
  373. data/app/components/ui/field_error.rb +50 -50
  374. data/app/components/ui/field_group.rb +23 -23
  375. data/app/components/ui/field_label.rb +22 -22
  376. data/app/components/ui/field_legend.rb +25 -25
  377. data/app/components/ui/field_separator.rb +41 -41
  378. data/app/components/ui/field_set.rb +22 -22
  379. data/app/components/ui/field_title.rb +20 -20
  380. data/app/components/ui/h1.rb +1 -0
  381. data/app/components/ui/h2.rb +1 -0
  382. data/app/components/ui/h3.rb +1 -0
  383. data/app/components/ui/h4.rb +1 -0
  384. data/app/components/ui/hover_card.rb +22 -22
  385. data/app/components/ui/hover_card_content.rb +28 -28
  386. data/app/components/ui/hover_card_trigger.rb +40 -40
  387. data/app/components/ui/inline_code.rb +1 -0
  388. data/app/components/ui/input.rb +15 -15
  389. data/app/components/ui/input_group.rb +28 -28
  390. data/app/components/ui/input_group_addon.rb +27 -27
  391. data/app/components/ui/input_group_button.rb +35 -35
  392. data/app/components/ui/input_group_input.rb +39 -39
  393. data/app/components/ui/input_group_text.rb +26 -26
  394. data/app/components/ui/input_group_textarea.rb +39 -39
  395. data/app/components/ui/input_otp.rb +48 -48
  396. data/app/components/ui/input_otp_group.rb +21 -21
  397. data/app/components/ui/input_otp_separator.rb +28 -28
  398. data/app/components/ui/input_otp_slot.rb +28 -28
  399. data/app/components/ui/item.rb +20 -20
  400. data/app/components/ui/item_actions.rb +10 -10
  401. data/app/components/ui/item_content.rb +10 -10
  402. data/app/components/ui/item_description.rb +10 -10
  403. data/app/components/ui/item_footer.rb +10 -10
  404. data/app/components/ui/item_group.rb +10 -10
  405. data/app/components/ui/item_header.rb +10 -10
  406. data/app/components/ui/item_media.rb +11 -11
  407. data/app/components/ui/item_separator.rb +10 -10
  408. data/app/components/ui/item_title.rb +10 -10
  409. data/app/components/ui/kbd.rb +24 -24
  410. data/app/components/ui/kbd_group.rb +25 -25
  411. data/app/components/ui/label.rb +25 -25
  412. data/app/components/ui/large.rb +1 -0
  413. data/app/components/ui/lead.rb +1 -0
  414. data/app/components/ui/list.rb +1 -0
  415. data/app/components/ui/menubar.rb +31 -31
  416. data/app/components/ui/menubar_checkbox_item.rb +45 -45
  417. data/app/components/ui/menubar_content.rb +27 -27
  418. data/app/components/ui/menubar_item.rb +34 -34
  419. data/app/components/ui/menubar_label.rb +24 -24
  420. data/app/components/ui/menubar_menu.rb +24 -24
  421. data/app/components/ui/menubar_radio_group.rb +24 -24
  422. data/app/components/ui/menubar_radio_item.rb +47 -47
  423. data/app/components/ui/menubar_separator.rb +18 -18
  424. data/app/components/ui/menubar_shortcut.rb +22 -22
  425. data/app/components/ui/menubar_sub.rb +25 -25
  426. data/app/components/ui/menubar_sub_content.rb +22 -22
  427. data/app/components/ui/menubar_sub_trigger.rb +41 -41
  428. data/app/components/ui/menubar_trigger.rb +21 -21
  429. data/app/components/ui/muted.rb +1 -0
  430. data/app/components/ui/navigation_menu.rb +43 -43
  431. data/app/components/ui/navigation_menu_content.rb +28 -28
  432. data/app/components/ui/navigation_menu_item.rb +31 -31
  433. data/app/components/ui/navigation_menu_link.rb +60 -60
  434. data/app/components/ui/navigation_menu_list.rb +23 -23
  435. data/app/components/ui/navigation_menu_trigger.rb +44 -44
  436. data/app/components/ui/navigation_menu_viewport.rb +20 -20
  437. data/app/components/ui/p.rb +1 -0
  438. data/app/components/ui/pagination.rb +15 -15
  439. data/app/components/ui/pagination_content.rb +15 -15
  440. data/app/components/ui/pagination_ellipsis.rb +20 -20
  441. data/app/components/ui/pagination_item.rb +13 -13
  442. data/app/components/ui/pagination_link.rb +21 -21
  443. data/app/components/ui/pagination_next.rb +25 -25
  444. data/app/components/ui/pagination_previous.rb +25 -25
  445. data/app/components/ui/popover.rb +44 -44
  446. data/app/components/ui/popover_content.rb +25 -25
  447. data/app/components/ui/popover_trigger.rb +30 -30
  448. data/app/components/ui/progress.rb +32 -32
  449. data/app/components/ui/radio_button.rb +44 -44
  450. data/app/components/ui/resizable_handle.rb +49 -49
  451. data/app/components/ui/resizable_panel.rb +31 -31
  452. data/app/components/ui/resizable_panel_group.rb +37 -37
  453. data/app/components/ui/responsive_dialog.rb +81 -81
  454. data/app/components/ui/scroll_area.rb +54 -54
  455. data/app/components/ui/scroll_area_corner.rb +27 -27
  456. data/app/components/ui/scroll_area_scrollbar.rb +37 -37
  457. data/app/components/ui/scroll_area_thumb.rb +31 -31
  458. data/app/components/ui/scroll_area_viewport.rb +33 -33
  459. data/app/components/ui/select.rb +38 -38
  460. data/app/components/ui/select_content.rb +36 -36
  461. data/app/components/ui/select_group.rb +32 -32
  462. data/app/components/ui/select_item.rb +58 -58
  463. data/app/components/ui/select_label.rb +28 -28
  464. data/app/components/ui/select_scroll_down_button.rb +39 -39
  465. data/app/components/ui/select_scroll_up_button.rb +39 -39
  466. data/app/components/ui/select_trigger.rb +38 -38
  467. data/app/components/ui/separator.rb +35 -35
  468. data/app/components/ui/sheet.rb +14 -14
  469. data/app/components/ui/sheet_close.rb +32 -32
  470. data/app/components/ui/sheet_content.rb +45 -45
  471. data/app/components/ui/sheet_description.rb +17 -17
  472. data/app/components/ui/sheet_footer.rb +10 -10
  473. data/app/components/ui/sheet_header.rb +10 -10
  474. data/app/components/ui/sheet_overlay.rb +13 -13
  475. data/app/components/ui/sheet_title.rb +17 -17
  476. data/app/components/ui/sheet_trigger.rb +21 -21
  477. data/app/components/ui/sidebar.rb +85 -85
  478. data/app/components/ui/sidebar_content.rb +27 -27
  479. data/app/components/ui/sidebar_footer.rb +29 -29
  480. data/app/components/ui/sidebar_group.rb +45 -45
  481. data/app/components/ui/sidebar_group_action.rb +39 -39
  482. data/app/components/ui/sidebar_group_content.rb +35 -35
  483. data/app/components/ui/sidebar_group_label.rb +38 -38
  484. data/app/components/ui/sidebar_header.rb +29 -29
  485. data/app/components/ui/sidebar_input.rb +35 -35
  486. data/app/components/ui/sidebar_inset.rb +35 -35
  487. data/app/components/ui/sidebar_menu.rb +32 -32
  488. data/app/components/ui/sidebar_menu_action.rb +52 -52
  489. data/app/components/ui/sidebar_menu_badge.rb +32 -32
  490. data/app/components/ui/sidebar_menu_button.rb +63 -63
  491. data/app/components/ui/sidebar_menu_item.rb +38 -38
  492. data/app/components/ui/sidebar_menu_skeleton.rb +57 -57
  493. data/app/components/ui/sidebar_menu_sub.rb +43 -43
  494. data/app/components/ui/sidebar_menu_sub_button.rb +40 -40
  495. data/app/components/ui/sidebar_menu_sub_item.rb +27 -27
  496. data/app/components/ui/sidebar_provider.rb +66 -66
  497. data/app/components/ui/sidebar_rail.rb +28 -28
  498. data/app/components/ui/sidebar_separator.rb +25 -25
  499. data/app/components/ui/sidebar_trigger.rb +54 -54
  500. data/app/components/ui/skeleton.rb +37 -37
  501. data/app/components/ui/small.rb +1 -0
  502. data/app/components/ui/sonner_toaster.rb +49 -49
  503. data/app/components/ui/spinner.rb +36 -36
  504. data/app/components/ui/switch.rb +62 -62
  505. data/app/components/ui/table.rb +42 -42
  506. data/app/components/ui/table_body.rb +22 -22
  507. data/app/components/ui/table_caption.rb +11 -11
  508. data/app/components/ui/table_cell.rb +11 -11
  509. data/app/components/ui/table_footer.rb +22 -22
  510. data/app/components/ui/table_head.rb +11 -11
  511. data/app/components/ui/table_header.rb +22 -22
  512. data/app/components/ui/table_row.rb +19 -19
  513. data/app/components/ui/tabs.rb +36 -36
  514. data/app/components/ui/tabs_content.rb +26 -26
  515. data/app/components/ui/tabs_list.rb +23 -23
  516. data/app/components/ui/tabs_trigger.rb +29 -29
  517. data/app/components/ui/textarea.rb +15 -15
  518. data/app/components/ui/toggle.rb +38 -38
  519. data/app/components/ui/toggle_group.rb +53 -53
  520. data/app/components/ui/toggle_group_item.rb +61 -61
  521. data/app/components/ui/tooltip.rb +27 -27
  522. data/app/components/ui/tooltip_content.rb +31 -31
  523. data/app/components/ui/tooltip_trigger.rb +36 -36
  524. data/app/helpers/ui/combobox_behavior.rb +1 -1
  525. data/app/helpers/ui/empty_behavior.rb +6 -6
  526. data/app/helpers/ui/input_group_input_behavior.rb +1 -1
  527. data/app/helpers/ui/input_group_textarea_behavior.rb +1 -1
  528. data/app/helpers/ui/popover_content_behavior.rb +1 -1
  529. data/app/helpers/ui/popover_trigger_behavior.rb +1 -1
  530. data/app/helpers/ui/select_behavior.rb +61 -61
  531. data/app/helpers/ui/select_content_behavior.rb +31 -31
  532. data/app/helpers/ui/select_group_behavior.rb +24 -24
  533. data/app/helpers/ui/select_item_behavior.rb +34 -34
  534. data/app/helpers/ui/select_label_behavior.rb +23 -23
  535. data/app/helpers/ui/select_scroll_down_button_behavior.rb +38 -38
  536. data/app/helpers/ui/select_scroll_up_button_behavior.rb +38 -38
  537. data/app/helpers/ui/select_trigger_behavior.rb +29 -29
  538. data/app/helpers/ui/spinner_behavior.rb +1 -1
  539. data/app/javascript/ui/controllers/accordion_controller.js +15 -3
  540. data/app/javascript/ui/controllers/command_controller.js +4 -3
  541. data/app/view_components/ui/accordion_component.rb +31 -31
  542. data/app/view_components/ui/accordion_content_component.rb +24 -24
  543. data/app/view_components/ui/accordion_item_component.rb +37 -37
  544. data/app/view_components/ui/accordion_trigger_component.rb +25 -25
  545. data/app/view_components/ui/alert_component.rb +18 -18
  546. data/app/view_components/ui/alert_description_component.rb +16 -16
  547. data/app/view_components/ui/alert_title_component.rb +16 -16
  548. data/app/view_components/ui/aspect_ratio_component.rb +20 -20
  549. data/app/view_components/ui/avatar_component.rb +16 -16
  550. data/app/view_components/ui/avatar_fallback_component.rb +16 -16
  551. data/app/view_components/ui/avatar_image_component.rb +19 -19
  552. data/app/view_components/ui/badge_component.rb +18 -18
  553. data/app/view_components/ui/blockquote_component.rb +1 -0
  554. data/app/view_components/ui/breadcrumb_component.rb +28 -28
  555. data/app/view_components/ui/breadcrumb_ellipsis_component.rb +41 -41
  556. data/app/view_components/ui/breadcrumb_item_component.rb +24 -24
  557. data/app/view_components/ui/breadcrumb_link_component.rb +24 -24
  558. data/app/view_components/ui/breadcrumb_list_component.rb +24 -24
  559. data/app/view_components/ui/breadcrumb_page_component.rb +22 -22
  560. data/app/view_components/ui/breadcrumb_separator_component.rb +38 -38
  561. data/app/view_components/ui/button_component.rb +39 -39
  562. data/app/view_components/ui/button_group_component.rb +33 -33
  563. data/app/view_components/ui/button_group_separator_component.rb +29 -29
  564. data/app/view_components/ui/button_group_text_component.rb +25 -25
  565. data/app/view_components/ui/calendar_component.rb +179 -182
  566. data/app/view_components/ui/card_action_component.rb +10 -10
  567. data/app/view_components/ui/card_component.rb +10 -10
  568. data/app/view_components/ui/card_content_component.rb +10 -10
  569. data/app/view_components/ui/card_description_component.rb +10 -10
  570. data/app/view_components/ui/card_footer_component.rb +10 -10
  571. data/app/view_components/ui/card_header_component.rb +10 -10
  572. data/app/view_components/ui/card_title_component.rb +10 -10
  573. data/app/view_components/ui/carousel_component.rb +14 -13
  574. data/app/view_components/ui/carousel_content_component.rb +12 -11
  575. data/app/view_components/ui/carousel_item_component.rb +11 -10
  576. data/app/view_components/ui/carousel_next_component.rb +15 -27
  577. data/app/view_components/ui/carousel_previous_component.rb +15 -27
  578. data/app/view_components/ui/checkbox_component.rb +48 -48
  579. data/app/view_components/ui/collapsible_component.rb +17 -17
  580. data/app/view_components/ui/collapsible_content_component.rb +11 -11
  581. data/app/view_components/ui/collapsible_trigger_component.rb +15 -15
  582. data/app/view_components/ui/combobox_wrapper_component.rb +53 -53
  583. data/app/view_components/ui/command_component.rb +12 -11
  584. data/app/view_components/ui/command_dialog_component.rb +17 -16
  585. data/app/view_components/ui/command_empty_component.rb +10 -10
  586. data/app/view_components/ui/command_group_component.rb +16 -16
  587. data/app/view_components/ui/command_input_component.rb +15 -15
  588. data/app/view_components/ui/command_item_component.rb +12 -12
  589. data/app/view_components/ui/command_list_component.rb +10 -10
  590. data/app/view_components/ui/command_separator_component.rb +10 -10
  591. data/app/view_components/ui/command_shortcut_component.rb +10 -10
  592. data/app/view_components/ui/context_menu_checkbox_item_component.rb +36 -37
  593. data/app/view_components/ui/context_menu_component.rb +14 -14
  594. data/app/view_components/ui/context_menu_content_component.rb +14 -14
  595. data/app/view_components/ui/context_menu_item_component.rb +22 -22
  596. data/app/view_components/ui/context_menu_label_component.rb +16 -16
  597. data/app/view_components/ui/context_menu_radio_group_component.rb +13 -13
  598. data/app/view_components/ui/context_menu_radio_item_component.rb +36 -37
  599. data/app/view_components/ui/context_menu_separator_component.rb +11 -11
  600. data/app/view_components/ui/context_menu_shortcut_component.rb +13 -13
  601. data/app/view_components/ui/context_menu_trigger_component.rb +14 -14
  602. data/app/view_components/ui/date_picker_component.rb +125 -125
  603. data/app/view_components/ui/date_picker_input_component.rb +68 -68
  604. data/app/view_components/ui/date_picker_trigger_component.rb +67 -67
  605. data/app/view_components/ui/dialog_close_component.rb +61 -61
  606. data/app/view_components/ui/dialog_component.rb +45 -45
  607. data/app/view_components/ui/dialog_content_component.rb +23 -23
  608. data/app/view_components/ui/dialog_description_component.rb +21 -21
  609. data/app/view_components/ui/dialog_footer_component.rb +17 -17
  610. data/app/view_components/ui/dialog_header_component.rb +18 -18
  611. data/app/view_components/ui/dialog_overlay_component.rb +30 -30
  612. data/app/view_components/ui/dialog_title_component.rb +21 -21
  613. data/app/view_components/ui/dialog_trigger_component.rb +61 -61
  614. data/app/view_components/ui/drawer_close_component.rb +30 -30
  615. data/app/view_components/ui/drawer_component.rb +76 -76
  616. data/app/view_components/ui/drawer_content_component.rb +26 -26
  617. data/app/view_components/ui/drawer_description_component.rb +17 -17
  618. data/app/view_components/ui/drawer_footer_component.rb +20 -20
  619. data/app/view_components/ui/drawer_handle_component.rb +19 -19
  620. data/app/view_components/ui/drawer_header_component.rb +20 -20
  621. data/app/view_components/ui/drawer_overlay_component.rb +22 -22
  622. data/app/view_components/ui/drawer_title_component.rb +17 -17
  623. data/app/view_components/ui/drawer_trigger_component.rb +60 -60
  624. data/app/view_components/ui/dropdown_menu_checkbox_item_component.rb +26 -26
  625. data/app/view_components/ui/dropdown_menu_component.rb +45 -45
  626. data/app/view_components/ui/dropdown_menu_content_component.rb +13 -13
  627. data/app/view_components/ui/dropdown_menu_item_component.rb +16 -16
  628. data/app/view_components/ui/dropdown_menu_label_component.rb +13 -13
  629. data/app/view_components/ui/dropdown_menu_radio_group_component.rb +12 -12
  630. data/app/view_components/ui/dropdown_menu_radio_item_component.rb +27 -27
  631. data/app/view_components/ui/dropdown_menu_separator_component.rb +11 -11
  632. data/app/view_components/ui/dropdown_menu_shortcut_component.rb +12 -12
  633. data/app/view_components/ui/dropdown_menu_sub_component.rb +12 -12
  634. data/app/view_components/ui/dropdown_menu_sub_content_component.rb +14 -14
  635. data/app/view_components/ui/dropdown_menu_sub_trigger_component.rb +22 -22
  636. data/app/view_components/ui/dropdown_menu_trigger_component.rb +46 -46
  637. data/app/view_components/ui/empty_component.rb +12 -12
  638. data/app/view_components/ui/empty_content_component.rb +12 -12
  639. data/app/view_components/ui/empty_description_component.rb +12 -12
  640. data/app/view_components/ui/empty_header_component.rb +12 -12
  641. data/app/view_components/ui/empty_media_component.rb +13 -13
  642. data/app/view_components/ui/empty_title_component.rb +12 -12
  643. data/app/view_components/ui/field_component.rb +36 -36
  644. data/app/view_components/ui/field_content_component.rb +22 -22
  645. data/app/view_components/ui/field_description_component.rb +22 -22
  646. data/app/view_components/ui/field_error_component.rb +55 -55
  647. data/app/view_components/ui/field_group_component.rb +27 -27
  648. data/app/view_components/ui/field_label_component.rb +24 -24
  649. data/app/view_components/ui/field_legend_component.rb +29 -29
  650. data/app/view_components/ui/field_separator_component.rb +43 -43
  651. data/app/view_components/ui/field_set_component.rb +25 -25
  652. data/app/view_components/ui/field_title_component.rb +22 -22
  653. data/app/view_components/ui/h3_component.rb +1 -0
  654. data/app/view_components/ui/h4_component.rb +1 -0
  655. data/app/view_components/ui/hover_card_component.rb +24 -24
  656. data/app/view_components/ui/hover_card_content_component.rb +30 -30
  657. data/app/view_components/ui/hover_card_trigger_component.rb +47 -47
  658. data/app/view_components/ui/inline_code_component.rb +1 -0
  659. data/app/view_components/ui/input_component.rb +17 -17
  660. data/app/view_components/ui/input_group_addon_component.rb +31 -31
  661. data/app/view_components/ui/input_group_button_component.rb +32 -32
  662. data/app/view_components/ui/input_group_component.rb +30 -30
  663. data/app/view_components/ui/input_group_input_component.rb +38 -38
  664. data/app/view_components/ui/input_group_text_component.rb +28 -28
  665. data/app/view_components/ui/input_group_textarea_component.rb +38 -38
  666. data/app/view_components/ui/input_otp_component.rb +52 -52
  667. data/app/view_components/ui/input_otp_group_component.rb +23 -23
  668. data/app/view_components/ui/input_otp_separator_component.rb +29 -29
  669. data/app/view_components/ui/input_otp_slot_component.rb +28 -28
  670. data/app/view_components/ui/item_actions_component.rb +12 -12
  671. data/app/view_components/ui/item_component.rb +23 -23
  672. data/app/view_components/ui/item_content_component.rb +12 -12
  673. data/app/view_components/ui/item_description_component.rb +12 -12
  674. data/app/view_components/ui/item_footer_component.rb +12 -12
  675. data/app/view_components/ui/item_group_component.rb +12 -12
  676. data/app/view_components/ui/item_header_component.rb +12 -12
  677. data/app/view_components/ui/item_media_component.rb +13 -13
  678. data/app/view_components/ui/item_separator_component.rb +12 -12
  679. data/app/view_components/ui/item_title_component.rb +12 -12
  680. data/app/view_components/ui/kbd_component.rb +25 -25
  681. data/app/view_components/ui/kbd_group_component.rb +26 -26
  682. data/app/view_components/ui/label_component.rb +18 -18
  683. data/app/view_components/ui/large_component.rb +1 -0
  684. data/app/view_components/ui/lead_component.rb +1 -0
  685. data/app/view_components/ui/list_component.rb +1 -0
  686. data/app/view_components/ui/menubar_checkbox_item_component.rb +40 -40
  687. data/app/view_components/ui/menubar_component.rb +19 -19
  688. data/app/view_components/ui/menubar_content_component.rb +21 -21
  689. data/app/view_components/ui/menubar_item_component.rb +26 -26
  690. data/app/view_components/ui/menubar_label_component.rb +18 -18
  691. data/app/view_components/ui/menubar_menu_component.rb +20 -20
  692. data/app/view_components/ui/menubar_radio_group_component.rb +21 -21
  693. data/app/view_components/ui/menubar_radio_item_component.rb +41 -41
  694. data/app/view_components/ui/menubar_separator_component.rb +16 -16
  695. data/app/view_components/ui/menubar_shortcut_component.rb +17 -17
  696. data/app/view_components/ui/menubar_sub_component.rb +20 -20
  697. data/app/view_components/ui/menubar_sub_content_component.rb +20 -20
  698. data/app/view_components/ui/menubar_sub_trigger_component.rb +37 -37
  699. data/app/view_components/ui/menubar_trigger_component.rb +18 -18
  700. data/app/view_components/ui/muted_component.rb +1 -0
  701. data/app/view_components/ui/navigation_menu_component.rb +37 -37
  702. data/app/view_components/ui/navigation_menu_content_component.rb +18 -18
  703. data/app/view_components/ui/navigation_menu_item_component.rb +18 -18
  704. data/app/view_components/ui/navigation_menu_link_component.rb +83 -83
  705. data/app/view_components/ui/navigation_menu_list_component.rb +16 -16
  706. data/app/view_components/ui/navigation_menu_trigger_component.rb +38 -38
  707. data/app/view_components/ui/navigation_menu_viewport_component.rb +16 -16
  708. data/app/view_components/ui/p_component.rb +1 -0
  709. data/app/view_components/ui/pagination_component.rb +14 -14
  710. data/app/view_components/ui/pagination_content_component.rb +14 -14
  711. data/app/view_components/ui/pagination_ellipsis_component.rb +20 -20
  712. data/app/view_components/ui/pagination_item_component.rb +12 -12
  713. data/app/view_components/ui/pagination_link_component.rb +21 -21
  714. data/app/view_components/ui/pagination_next_component.rb +24 -24
  715. data/app/view_components/ui/pagination_previous_component.rb +25 -25
  716. data/app/view_components/ui/popover_component.rb +50 -50
  717. data/app/view_components/ui/popover_content_component.rb +36 -36
  718. data/app/view_components/ui/popover_trigger_component.rb +60 -60
  719. data/app/view_components/ui/progress_component.rb +33 -33
  720. data/app/view_components/ui/radio_button_component.rb +49 -49
  721. data/app/view_components/ui/resizable_handle_component.rb +27 -27
  722. data/app/view_components/ui/resizable_panel_component.rb +33 -33
  723. data/app/view_components/ui/resizable_panel_group_component.rb +39 -39
  724. data/app/view_components/ui/responsive_dialog_component.rb +70 -70
  725. data/app/view_components/ui/scroll_area_component.rb +39 -39
  726. data/app/view_components/ui/scroll_area_corner_component.rb +18 -18
  727. data/app/view_components/ui/scroll_area_scrollbar_component.rb +28 -28
  728. data/app/view_components/ui/scroll_area_thumb_component.rb +23 -23
  729. data/app/view_components/ui/scroll_area_viewport_component.rb +25 -25
  730. data/app/view_components/ui/select_component.rb +27 -27
  731. data/app/view_components/ui/select_content_component.rb +35 -36
  732. data/app/view_components/ui/select_group_component.rb +22 -22
  733. data/app/view_components/ui/select_item_component.rb +39 -40
  734. data/app/view_components/ui/select_label_component.rb +18 -18
  735. data/app/view_components/ui/select_scroll_down_button_component.rb +29 -29
  736. data/app/view_components/ui/select_scroll_up_button_component.rb +29 -29
  737. data/app/view_components/ui/select_trigger_component.rb +22 -22
  738. data/app/view_components/ui/separator_component.rb +23 -23
  739. data/app/view_components/ui/sheet_close_component.rb +61 -61
  740. data/app/view_components/ui/sheet_component.rb +45 -45
  741. data/app/view_components/ui/sheet_content_component.rb +43 -43
  742. data/app/view_components/ui/sheet_description_component.rb +20 -20
  743. data/app/view_components/ui/sheet_footer_component.rb +17 -17
  744. data/app/view_components/ui/sheet_header_component.rb +17 -17
  745. data/app/view_components/ui/sheet_overlay_component.rb +30 -30
  746. data/app/view_components/ui/sheet_title_component.rb +20 -20
  747. data/app/view_components/ui/sheet_trigger_component.rb +50 -50
  748. data/app/view_components/ui/skeleton_component.rb +23 -23
  749. data/app/view_components/ui/slider_component.rb +55 -55
  750. data/app/view_components/ui/slider_range_component.rb +19 -19
  751. data/app/view_components/ui/slider_thumb_component.rb +25 -25
  752. data/app/view_components/ui/slider_track_component.rb +22 -22
  753. data/app/view_components/ui/small_component.rb +1 -0
  754. data/app/view_components/ui/sonner_toaster_component.rb +49 -49
  755. data/app/view_components/ui/spinner_component.rb +41 -41
  756. data/app/view_components/ui/switch_component.rb +52 -52
  757. data/app/view_components/ui/table_body_component.rb +14 -14
  758. data/app/view_components/ui/table_caption_component.rb +10 -10
  759. data/app/view_components/ui/table_cell_component.rb +10 -10
  760. data/app/view_components/ui/table_component.rb +20 -20
  761. data/app/view_components/ui/table_footer_component.rb +14 -14
  762. data/app/view_components/ui/table_head_component.rb +10 -10
  763. data/app/view_components/ui/table_header_component.rb +14 -14
  764. data/app/view_components/ui/table_row_component.rb +16 -16
  765. data/app/view_components/ui/tabs_component.rb +33 -33
  766. data/app/view_components/ui/tabs_content_component.rb +28 -28
  767. data/app/view_components/ui/tabs_list_component.rb +24 -24
  768. data/app/view_components/ui/tabs_trigger_component.rb +31 -31
  769. data/app/view_components/ui/textarea_component.rb +14 -14
  770. data/app/view_components/ui/toggle_component.rb +43 -43
  771. data/app/view_components/ui/toggle_group_component.rb +60 -60
  772. data/app/view_components/ui/toggle_group_item_component.rb +62 -62
  773. data/app/view_components/ui/tooltip_component.rb +14 -14
  774. data/app/view_components/ui/tooltip_content_component.rb +23 -23
  775. data/app/view_components/ui/tooltip_trigger_component.rb +19 -19
  776. data/app/views/ui/_command.html.erb +2 -0
  777. data/app/views/ui/carousel/_next.html.erb +1 -1
  778. data/app/views/ui/carousel/_previous.html.erb +1 -1
  779. data/lib/ui/version.rb +1 -1
  780. metadata +1 -1
@@ -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
@@ -2,56 +2,83 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Drawer component (Root)
6
- # Handles main component logic and data attributes for Vaul drawer
7
- module UI::DrawerBehavior
8
- # Generate data attributes for Stimulus controller
9
- def drawer_data_attributes
10
- attrs = {
11
- controller: "ui--drawer",
12
- ui__drawer_open_value: @open,
13
- ui__drawer_direction_value: @direction,
14
- ui__drawer_dismissible_value: @dismissible,
15
- ui__drawer_modal_value: @modal
16
- }
17
-
18
- # Add snap points if provided
19
- if @snap_points && !@snap_points.empty?
20
- attrs[:ui__drawer_snap_points_value] = @snap_points.to_json
21
- attrs[:ui__drawer_active_snap_point_value] = @active_snap_point || -1
22
- attrs[:ui__drawer_fade_from_index_value] = @fade_from_index || (@snap_points.length - 1)
23
- attrs[:ui__drawer_snap_to_sequential_point_value] = @snap_to_sequential_point if @snap_to_sequential_point
24
- end
25
-
26
- # Add advanced options
27
- attrs[:ui__drawer_handle_only_value] = @handle_only if @handle_only
28
- attrs[:ui__drawer_reposition_inputs_value] = @reposition_inputs if @reposition_inputs == false
29
-
30
- attrs
31
- end
32
-
33
- # Merge user-provided data attributes
34
- def merged_drawer_data_attributes
35
- user_data = @attributes&.fetch(:data, {}) || {}
36
- user_data.merge(drawer_data_attributes)
37
- end
38
-
39
- # Build complete HTML attributes hash
40
- def drawer_html_attributes
41
- base_attrs = @attributes&.except(:data) || {}
42
- base_attrs.merge(
43
- class: drawer_classes,
44
- data: merged_drawer_data_attributes
45
- )
46
- end
47
-
48
- # Base CSS classes
49
- def drawer_base_classes
50
- ""
51
- end
52
-
53
- # Generate final classes using TailwindMerge
54
- def drawer_classes
55
- TailwindMerge::Merger.new.merge([drawer_base_classes, @classes].compact.join(" "))
56
- end
5
+ # UI::DrawerBehavior
6
+ #
7
+ # @ui_component Drawer
8
+ # @ui_category overlay
9
+ #
10
+ # @ui_anatomy Drawer - 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 Handle - Draggable handle element
16
+ # @ui_anatomy Header - Header section with title and controls
17
+ # @ui_anatomy Overlay - Background overlay that dims the page
18
+ # @ui_anatomy Title - Title text element
19
+ # @ui_anatomy Trigger - Button or element that activates the component (required)
20
+ #
21
+ # @ui_feature Custom styling with Tailwind classes
22
+ # @ui_feature Focus management
23
+ # @ui_feature Animation support
24
+ #
25
+ # @ui_aria_pattern Dialog (Modal)
26
+ # @ui_aria_reference https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
27
+ #
28
+ # @ui_keyboard Escape Closes the component
29
+ # @ui_keyboard End Moves focus to last item
30
+ #
31
+ # @ui_related dialog
32
+ # @ui_related sheet
33
+ #
34
+ module UI::DrawerBehavior
35
+ # Generate data attributes for Stimulus controller
36
+ def drawer_data_attributes
37
+ attrs = {
38
+ controller: "ui--drawer",
39
+ ui__drawer_open_value: @open,
40
+ ui__drawer_direction_value: @direction,
41
+ ui__drawer_dismissible_value: @dismissible,
42
+ ui__drawer_modal_value: @modal
43
+ }
44
+
45
+ # Add snap points if provided
46
+ if @snap_points && !@snap_points.empty?
47
+ attrs[:ui__drawer_snap_points_value] = @snap_points.to_json
48
+ attrs[:ui__drawer_active_snap_point_value] = @active_snap_point || -1
49
+ attrs[:ui__drawer_fade_from_index_value] = @fade_from_index || (@snap_points.length - 1)
50
+ attrs[:ui__drawer_snap_to_sequential_point_value] = @snap_to_sequential_point if @snap_to_sequential_point
57
51
  end
52
+
53
+ # Add advanced options
54
+ attrs[:ui__drawer_handle_only_value] = @handle_only if @handle_only
55
+ attrs[:ui__drawer_reposition_inputs_value] = @reposition_inputs if @reposition_inputs == false
56
+
57
+ attrs
58
+ end
59
+
60
+ # Merge user-provided data attributes
61
+ def merged_drawer_data_attributes
62
+ user_data = @attributes&.fetch(:data, {}) || {}
63
+ user_data.merge(drawer_data_attributes)
64
+ end
65
+
66
+ # Build complete HTML attributes hash
67
+ def drawer_html_attributes
68
+ base_attrs = @attributes&.except(:data) || {}
69
+ base_attrs.merge(
70
+ class: drawer_classes,
71
+ data: merged_drawer_data_attributes
72
+ )
73
+ end
74
+
75
+ # Base CSS classes
76
+ def drawer_base_classes
77
+ ""
78
+ end
79
+
80
+ # Generate final classes using TailwindMerge
81
+ def drawer_classes
82
+ TailwindMerge::Merger.new.merge([drawer_base_classes, @classes].compact.join(" "))
83
+ end
84
+ end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Shared behavior for Drawer Close component
4
- # Closes drawer on click
5
- module UI::DrawerCloseBehavior
6
- # Data attributes for close button
7
- def drawer_close_data_attributes
8
- { data: { action: "click->ui--drawer#close" } }
9
- end
10
- end
3
+ # Shared behavior for Drawer Close component
4
+ # Closes drawer on click
5
+ module UI::DrawerCloseBehavior
6
+ # Data attributes for close button
7
+ def drawer_close_data_attributes
8
+ {data: {action: "click->ui--drawer#close"}}
9
+ end
10
+ end
@@ -2,106 +2,106 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Drawer Content component
6
- # Handles draggable panel styling, direction variants, and animations
7
- module UI::DrawerContentBehavior
8
- # Base CSS classes for drawer content
9
- # Direction-aware positioning with animations
10
- def drawer_content_base_classes
11
- [
12
- # Base structure with group for child targeting
13
- "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
5
+ # Shared behavior for Drawer Content component
6
+ # Handles draggable panel styling, direction variants, and animations
7
+ module UI::DrawerContentBehavior
8
+ # Base CSS classes for drawer content
9
+ # Direction-aware positioning with animations
10
+ def drawer_content_base_classes
11
+ [
12
+ # Base structure with group for child targeting
13
+ "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
14
14
 
15
- # Pointer events control - prevent interaction when closed, enable when open
16
- "data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none",
15
+ # Pointer events control - prevent interaction when closed, enable when open
16
+ "data-[state=open]:pointer-events-auto data-[state=closed]:pointer-events-none",
17
17
 
18
- # Note: NO CSS transitions - JavaScript controls all animations via inline styles
19
- # This prevents conflicts between CSS and JS transitions
18
+ # Note: NO CSS transitions - JavaScript controls all animations via inline styles
19
+ # This prevents conflicts between CSS and JS transitions
20
20
 
21
- # Bottom direction (default)
22
- "data-[vaul-drawer-direction=bottom]:inset-x-0",
23
- "data-[vaul-drawer-direction=bottom]:bottom-0",
24
- "data-[vaul-drawer-direction=bottom]:mt-24",
25
- "data-[vaul-drawer-direction=bottom]:max-h-[80vh]",
26
- "data-[vaul-drawer-direction=bottom]:rounded-t-lg",
27
- "data-[vaul-drawer-direction=bottom]:border-t",
28
- "data-[vaul-drawer-direction=bottom]:data-[state=closed]:translate-y-full",
29
- "data-[vaul-drawer-direction=bottom]:data-[state=open]:translate-y-0",
21
+ # Bottom direction (default)
22
+ "data-[vaul-drawer-direction=bottom]:inset-x-0",
23
+ "data-[vaul-drawer-direction=bottom]:bottom-0",
24
+ "data-[vaul-drawer-direction=bottom]:mt-24",
25
+ "data-[vaul-drawer-direction=bottom]:max-h-[80vh]",
26
+ "data-[vaul-drawer-direction=bottom]:rounded-t-lg",
27
+ "data-[vaul-drawer-direction=bottom]:border-t",
28
+ "data-[vaul-drawer-direction=bottom]:data-[state=closed]:translate-y-full",
29
+ "data-[vaul-drawer-direction=bottom]:data-[state=open]:translate-y-0",
30
30
 
31
- # Top direction
32
- "data-[vaul-drawer-direction=top]:inset-x-0",
33
- "data-[vaul-drawer-direction=top]:top-0",
34
- "data-[vaul-drawer-direction=top]:mb-24",
35
- "data-[vaul-drawer-direction=top]:max-h-[80vh]",
36
- "data-[vaul-drawer-direction=top]:rounded-b-lg",
37
- "data-[vaul-drawer-direction=top]:border-b",
38
- "data-[vaul-drawer-direction=top]:data-[state=closed]:-translate-y-full",
39
- "data-[vaul-drawer-direction=top]:data-[state=open]:translate-y-0",
31
+ # Top direction
32
+ "data-[vaul-drawer-direction=top]:inset-x-0",
33
+ "data-[vaul-drawer-direction=top]:top-0",
34
+ "data-[vaul-drawer-direction=top]:mb-24",
35
+ "data-[vaul-drawer-direction=top]:max-h-[80vh]",
36
+ "data-[vaul-drawer-direction=top]:rounded-b-lg",
37
+ "data-[vaul-drawer-direction=top]:border-b",
38
+ "data-[vaul-drawer-direction=top]:data-[state=closed]:-translate-y-full",
39
+ "data-[vaul-drawer-direction=top]:data-[state=open]:translate-y-0",
40
40
 
41
- # Right direction
42
- "data-[vaul-drawer-direction=right]:inset-y-0",
43
- "data-[vaul-drawer-direction=right]:right-0",
44
- "data-[vaul-drawer-direction=right]:w-3/4",
45
- "data-[vaul-drawer-direction=right]:border-l",
46
- "data-[vaul-drawer-direction=right]:sm:max-w-sm",
47
- "data-[vaul-drawer-direction=right]:data-[state=closed]:translate-x-full",
48
- "data-[vaul-drawer-direction=right]:data-[state=open]:translate-x-0",
41
+ # Right direction
42
+ "data-[vaul-drawer-direction=right]:inset-y-0",
43
+ "data-[vaul-drawer-direction=right]:right-0",
44
+ "data-[vaul-drawer-direction=right]:w-3/4",
45
+ "data-[vaul-drawer-direction=right]:border-l",
46
+ "data-[vaul-drawer-direction=right]:sm:max-w-sm",
47
+ "data-[vaul-drawer-direction=right]:data-[state=closed]:translate-x-full",
48
+ "data-[vaul-drawer-direction=right]:data-[state=open]:translate-x-0",
49
49
 
50
- # Left direction
51
- "data-[vaul-drawer-direction=left]:inset-y-0",
52
- "data-[vaul-drawer-direction=left]:left-0",
53
- "data-[vaul-drawer-direction=left]:w-3/4",
54
- "data-[vaul-drawer-direction=left]:border-r",
55
- "data-[vaul-drawer-direction=left]:sm:max-w-sm",
56
- "data-[vaul-drawer-direction=left]:data-[state=closed]:-translate-x-full",
57
- "data-[vaul-drawer-direction=left]:data-[state=open]:translate-x-0"
58
- ].join(" ")
59
- end
50
+ # Left direction
51
+ "data-[vaul-drawer-direction=left]:inset-y-0",
52
+ "data-[vaul-drawer-direction=left]:left-0",
53
+ "data-[vaul-drawer-direction=left]:w-3/4",
54
+ "data-[vaul-drawer-direction=left]:border-r",
55
+ "data-[vaul-drawer-direction=left]:sm:max-w-sm",
56
+ "data-[vaul-drawer-direction=left]:data-[state=closed]:-translate-x-full",
57
+ "data-[vaul-drawer-direction=left]:data-[state=open]:translate-x-0"
58
+ ].join(" ")
59
+ end
60
60
 
61
- # Merge base classes with custom classes using TailwindMerge
62
- def drawer_content_classes
63
- TailwindMerge::Merger.new.merge([drawer_content_base_classes, @classes].compact.join(" "))
64
- end
61
+ # Merge base classes with custom classes using TailwindMerge
62
+ def drawer_content_classes
63
+ TailwindMerge::Merger.new.merge([drawer_content_base_classes, @classes].compact.join(" "))
64
+ end
65
65
 
66
- # Data attributes for Stimulus target (go inside data: hash)
67
- def drawer_content_data_attributes
68
- attrs = {
69
- ui__drawer_target: "content"
70
- }
66
+ # Data attributes for Stimulus target (go inside data: hash)
67
+ def drawer_content_data_attributes
68
+ attrs = {
69
+ ui__drawer_target: "content"
70
+ }
71
71
 
72
- # Add action for pointer events (drag handling)
73
- attrs[:action] = [
74
- "pointerdown->ui--drawer#handlePointerDown",
75
- "pointermove->ui--drawer#handlePointerMove",
76
- "pointerup->ui--drawer#handlePointerUp",
77
- "pointercancel->ui--drawer#handlePointerCancel"
78
- ].join(" ")
72
+ # Add action for pointer events (drag handling)
73
+ attrs[:action] = [
74
+ "pointerdown->ui--drawer#handlePointerDown",
75
+ "pointermove->ui--drawer#handlePointerMove",
76
+ "pointerup->ui--drawer#handlePointerUp",
77
+ "pointercancel->ui--drawer#handlePointerCancel"
78
+ ].join(" ")
79
79
 
80
- attrs
81
- end
80
+ attrs
81
+ end
82
82
 
83
- # Merge user-provided data attributes
84
- def merged_drawer_content_data_attributes
85
- user_data = @attributes&.fetch(:data, {}) || {}
86
- user_data.merge(drawer_content_data_attributes)
87
- end
83
+ # Merge user-provided data attributes
84
+ def merged_drawer_content_data_attributes
85
+ user_data = @attributes&.fetch(:data, {}) || {}
86
+ user_data.merge(drawer_content_data_attributes)
87
+ end
88
88
 
89
- # Build complete HTML attributes hash for drawer content
90
- def drawer_content_html_attributes
91
- direction = @direction || "bottom"
89
+ # Build complete HTML attributes hash for drawer content
90
+ def drawer_content_html_attributes
91
+ direction = @direction || "bottom"
92
92
 
93
- base_attrs = @attributes&.except(:data) || {}
94
- attrs = base_attrs.merge(
95
- class: drawer_content_classes,
96
- role: "dialog",
97
- "aria-modal": "true",
98
- "data-state": @open ? "open" : "closed",
99
- "data-vaul-drawer": "",
100
- "data-vaul-drawer-direction": direction,
101
- data: merged_drawer_content_data_attributes
102
- )
103
- # Add inert when closed to prevent focus on elements inside
104
- attrs[:inert] = true unless @open
105
- attrs
106
- end
107
- end
93
+ base_attrs = @attributes&.except(:data) || {}
94
+ attrs = base_attrs.merge(
95
+ class: drawer_content_classes,
96
+ role: "dialog",
97
+ "aria-modal": "true",
98
+ "data-state": @open ? "open" : "closed",
99
+ "data-vaul-drawer": "",
100
+ "data-vaul-drawer-direction": direction,
101
+ data: merged_drawer_content_data_attributes
102
+ )
103
+ # Add inert when closed to prevent focus on elements inside
104
+ attrs[:inert] = true unless @open
105
+ attrs
106
+ end
107
+ end
@@ -2,22 +2,22 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Drawer Description component
6
- # ARIA-compliant description for drawer
7
- module UI::DrawerDescriptionBehavior
8
- # Base CSS classes for drawer description
9
- def drawer_description_base_classes
10
- "text-muted-foreground text-sm"
11
- end
5
+ # Shared behavior for Drawer Description component
6
+ # ARIA-compliant description for drawer
7
+ module UI::DrawerDescriptionBehavior
8
+ # Base CSS classes for drawer description
9
+ def drawer_description_base_classes
10
+ "text-muted-foreground text-sm"
11
+ end
12
12
 
13
- # Merge base classes with custom classes using TailwindMerge
14
- def drawer_description_classes
15
- TailwindMerge::Merger.new.merge([drawer_description_base_classes, @classes].compact.join(" "))
16
- end
13
+ # Merge base classes with custom classes using TailwindMerge
14
+ def drawer_description_classes
15
+ TailwindMerge::Merger.new.merge([drawer_description_base_classes, @classes].compact.join(" "))
16
+ end
17
17
 
18
- # Build complete HTML attributes hash for description
19
- def drawer_description_html_attributes
20
- base_attrs = @attributes || {}
21
- base_attrs.merge(class: drawer_description_classes)
22
- end
23
- end
18
+ # Build complete HTML attributes hash for description
19
+ def drawer_description_html_attributes
20
+ base_attrs = @attributes || {}
21
+ base_attrs.merge(class: drawer_description_classes)
22
+ end
23
+ end
@@ -2,22 +2,22 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Drawer Footer component
6
- # Action area for drawer (buttons, etc.)
7
- module UI::DrawerFooterBehavior
8
- # Base CSS classes for drawer footer
9
- def drawer_footer_base_classes
10
- "mt-auto flex flex-col gap-2 p-4"
11
- end
5
+ # Shared behavior for Drawer Footer component
6
+ # Action area for drawer (buttons, etc.)
7
+ module UI::DrawerFooterBehavior
8
+ # Base CSS classes for drawer footer
9
+ def drawer_footer_base_classes
10
+ "mt-auto flex flex-col gap-2 p-4"
11
+ end
12
12
 
13
- # Merge base classes with custom classes using TailwindMerge
14
- def drawer_footer_classes
15
- TailwindMerge::Merger.new.merge([drawer_footer_base_classes, @classes].compact.join(" "))
16
- end
13
+ # Merge base classes with custom classes using TailwindMerge
14
+ def drawer_footer_classes
15
+ TailwindMerge::Merger.new.merge([drawer_footer_base_classes, @classes].compact.join(" "))
16
+ end
17
17
 
18
- # Build complete HTML attributes hash for footer
19
- def drawer_footer_html_attributes
20
- base_attrs = @attributes || {}
21
- base_attrs.merge(class: drawer_footer_classes)
22
- end
23
- end
18
+ # Build complete HTML attributes hash for footer
19
+ def drawer_footer_html_attributes
20
+ base_attrs = @attributes || {}
21
+ base_attrs.merge(class: drawer_footer_classes)
22
+ end
23
+ end
@@ -2,39 +2,39 @@
2
2
 
3
3
  require "tailwind_merge"
4
4
 
5
- # Shared behavior for Drawer Handle component
6
- # Visual affordance for drag gesture (shown on bottom/top drawers only)
7
- module UI::DrawerHandleBehavior
8
- # Base CSS classes for handle container
9
- def drawer_handle_container_base_classes
10
- [
11
- "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full",
12
- # Only show for bottom direction (matching shadcn/ui implementation)
13
- "group-data-[vaul-drawer-direction=bottom]/drawer-content:block"
14
- ].join(" ")
15
- end
5
+ # Shared behavior for Drawer Handle component
6
+ # Visual affordance for drag gesture (shown on bottom/top drawers only)
7
+ module UI::DrawerHandleBehavior
8
+ # Base CSS classes for handle container
9
+ def drawer_handle_container_base_classes
10
+ [
11
+ "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full",
12
+ # Only show for bottom direction (matching shadcn/ui implementation)
13
+ "group-data-[vaul-drawer-direction=bottom]/drawer-content:block"
14
+ ].join(" ")
15
+ end
16
16
 
17
- # Merge base classes with custom classes using TailwindMerge
18
- def drawer_handle_classes
19
- TailwindMerge::Merger.new.merge([drawer_handle_container_base_classes, @classes].compact.join(" "))
20
- end
17
+ # Merge base classes with custom classes using TailwindMerge
18
+ def drawer_handle_classes
19
+ TailwindMerge::Merger.new.merge([drawer_handle_container_base_classes, @classes].compact.join(" "))
20
+ end
21
21
 
22
- # Data attributes for handle (Stimulus target only)
23
- def drawer_handle_data_attributes
24
- user_data = @attributes&.fetch(:data, {}) || {}
25
- user_data.merge({
26
- ui__drawer_target: "handle"
27
- })
28
- end
22
+ # Data attributes for handle (Stimulus target only)
23
+ def drawer_handle_data_attributes
24
+ user_data = @attributes&.fetch(:data, {}) || {}
25
+ user_data.merge({
26
+ ui__drawer_target: "handle"
27
+ })
28
+ end
29
29
 
30
- # Build complete HTML attributes hash for handle
31
- def drawer_handle_html_attributes
32
- base_attrs = @attributes&.except(:data) || {}
33
- base_attrs.merge(
34
- class: drawer_handle_classes,
35
- "aria-hidden": "true",
36
- "data-vaul-handle": "",
37
- data: drawer_handle_data_attributes
38
- )
39
- end
40
- end
30
+ # Build complete HTML attributes hash for handle
31
+ def drawer_handle_html_attributes
32
+ base_attrs = @attributes&.except(:data) || {}
33
+ base_attrs.merge(
34
+ class: drawer_handle_classes,
35
+ "aria-hidden": "true",
36
+ "data-vaul-handle": "",
37
+ data: drawer_handle_data_attributes
38
+ )
39
+ end
40
+ end