fernandes-ui 0.1.0 → 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 (785) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -61
  3. data/app/assets/javascripts/ui.esm.js +12 -3
  4. data/app/assets/javascripts/ui.js +12 -3
  5. data/app/assets/stylesheets/ui/application.css +621 -3
  6. data/app/behaviors/ui/accordion_behavior.rb +50 -26
  7. data/app/behaviors/ui/accordion_content_behavior.rb +58 -58
  8. data/app/behaviors/ui/accordion_item_behavior.rb +38 -38
  9. data/app/behaviors/ui/accordion_trigger_behavior.rb +65 -65
  10. data/app/behaviors/ui/alert_behavior.rb +53 -36
  11. data/app/behaviors/ui/alert_description_behavior.rb +25 -25
  12. data/app/behaviors/ui/alert_dialog_action_behavior.rb +21 -21
  13. data/app/behaviors/ui/alert_dialog_behavior.rb +58 -33
  14. data/app/behaviors/ui/alert_dialog_cancel_behavior.rb +21 -21
  15. data/app/behaviors/ui/alert_dialog_content_behavior.rb +34 -34
  16. data/app/behaviors/ui/alert_dialog_description_behavior.rb +19 -19
  17. data/app/behaviors/ui/alert_dialog_footer_behavior.rb +20 -20
  18. data/app/behaviors/ui/alert_dialog_header_behavior.rb +19 -19
  19. data/app/behaviors/ui/alert_dialog_overlay_behavior.rb +56 -56
  20. data/app/behaviors/ui/alert_dialog_title_behavior.rb +19 -19
  21. data/app/behaviors/ui/alert_dialog_trigger_behavior.rb +31 -31
  22. data/app/behaviors/ui/alert_title_behavior.rb +25 -25
  23. data/app/behaviors/ui/aspect_ratio_behavior.rb +46 -38
  24. data/app/behaviors/ui/avatar_behavior.rb +44 -37
  25. data/app/behaviors/ui/avatar_fallback_behavior.rb +37 -37
  26. data/app/behaviors/ui/avatar_image_behavior.rb +40 -40
  27. data/app/behaviors/ui/badge_behavior.rb +50 -43
  28. data/app/behaviors/ui/blockquote_behavior.rb +25 -17
  29. data/app/behaviors/ui/breadcrumb_behavior.rb +35 -19
  30. data/app/behaviors/ui/breadcrumb_ellipsis_behavior.rb +28 -28
  31. data/app/behaviors/ui/breadcrumb_item_behavior.rb +26 -26
  32. data/app/behaviors/ui/breadcrumb_link_behavior.rb +27 -27
  33. data/app/behaviors/ui/breadcrumb_list_behavior.rb +26 -26
  34. data/app/behaviors/ui/breadcrumb_page_behavior.rb +29 -29
  35. data/app/behaviors/ui/breadcrumb_separator_behavior.rb +28 -28
  36. data/app/behaviors/ui/button_behavior.rb +94 -82
  37. data/app/behaviors/ui/button_group_behavior.rb +48 -48
  38. data/app/behaviors/ui/button_group_separator_behavior.rb +29 -29
  39. data/app/behaviors/ui/button_group_text_behavior.rb +29 -29
  40. data/app/behaviors/ui/calendar_behavior.rb +131 -104
  41. data/app/behaviors/ui/card_action_behavior.rb +26 -26
  42. data/app/behaviors/ui/card_behavior.rb +40 -26
  43. data/app/behaviors/ui/card_content_behavior.rb +26 -26
  44. data/app/behaviors/ui/card_description_behavior.rb +26 -26
  45. data/app/behaviors/ui/card_footer_behavior.rb +26 -26
  46. data/app/behaviors/ui/card_header_behavior.rb +26 -26
  47. data/app/behaviors/ui/card_title_behavior.rb +26 -26
  48. data/app/behaviors/ui/carousel_behavior.rb +74 -48
  49. data/app/behaviors/ui/carousel_content_behavior.rb +53 -53
  50. data/app/behaviors/ui/carousel_item_behavior.rb +20 -20
  51. data/app/behaviors/ui/carousel_next_behavior.rb +31 -31
  52. data/app/behaviors/ui/carousel_previous_behavior.rb +31 -31
  53. data/app/behaviors/ui/checkbox_behavior.rb +54 -38
  54. data/app/behaviors/ui/collapsible_behavior.rb +49 -34
  55. data/app/behaviors/ui/collapsible_content_behavior.rb +31 -31
  56. data/app/behaviors/ui/collapsible_trigger_behavior.rb +47 -47
  57. data/app/behaviors/ui/command_behavior.rb +56 -29
  58. data/app/behaviors/ui/command_dialog_behavior.rb +52 -28
  59. data/app/behaviors/ui/command_empty_behavior.rb +28 -28
  60. data/app/behaviors/ui/command_group_behavior.rb +34 -34
  61. data/app/behaviors/ui/command_input_behavior.rb +40 -40
  62. data/app/behaviors/ui/command_item_behavior.rb +39 -39
  63. data/app/behaviors/ui/command_list_behavior.rb +30 -30
  64. data/app/behaviors/ui/command_separator_behavior.rb +23 -23
  65. data/app/behaviors/ui/command_shortcut_behavior.rb +22 -22
  66. data/app/behaviors/ui/context_menu_behavior.rb +55 -28
  67. data/app/behaviors/ui/context_menu_checkbox_item_behavior.rb +32 -32
  68. data/app/behaviors/ui/context_menu_content_behavior.rb +32 -32
  69. data/app/behaviors/ui/context_menu_item_behavior.rb +34 -34
  70. data/app/behaviors/ui/context_menu_label_behavior.rb +28 -28
  71. data/app/behaviors/ui/context_menu_radio_group_behavior.rb +17 -17
  72. data/app/behaviors/ui/context_menu_radio_item_behavior.rb +32 -32
  73. data/app/behaviors/ui/context_menu_separator_behavior.rb +18 -18
  74. data/app/behaviors/ui/context_menu_shortcut_behavior.rb +17 -17
  75. data/app/behaviors/ui/context_menu_trigger_behavior.rb +28 -28
  76. data/app/behaviors/ui/date_picker_behavior.rb +95 -78
  77. data/app/behaviors/ui/date_picker_input_behavior.rb +56 -56
  78. data/app/behaviors/ui/date_picker_trigger_behavior.rb +56 -56
  79. data/app/behaviors/ui/dialog_behavior.rb +67 -42
  80. data/app/behaviors/ui/dialog_content_behavior.rb +38 -38
  81. data/app/behaviors/ui/dialog_footer_behavior.rb +20 -20
  82. data/app/behaviors/ui/dialog_header_behavior.rb +20 -20
  83. data/app/behaviors/ui/dialog_overlay_behavior.rb +57 -57
  84. data/app/behaviors/ui/drawer_behavior.rb +79 -52
  85. data/app/behaviors/ui/drawer_close_behavior.rb +8 -8
  86. data/app/behaviors/ui/drawer_content_behavior.rb +90 -90
  87. data/app/behaviors/ui/drawer_description_behavior.rb +17 -17
  88. data/app/behaviors/ui/drawer_footer_behavior.rb +17 -17
  89. data/app/behaviors/ui/drawer_handle_behavior.rb +33 -33
  90. data/app/behaviors/ui/drawer_header_behavior.rb +23 -23
  91. data/app/behaviors/ui/drawer_overlay_behavior.rb +63 -63
  92. data/app/behaviors/ui/drawer_title_behavior.rb +20 -20
  93. data/app/behaviors/ui/drawer_trigger_behavior.rb +15 -15
  94. data/app/behaviors/ui/dropdown_menu_behavior.rb +59 -37
  95. data/app/behaviors/ui/dropdown_menu_checkbox_item_behavior.rb +37 -39
  96. data/app/behaviors/ui/dropdown_menu_content_behavior.rb +32 -32
  97. data/app/behaviors/ui/dropdown_menu_item_behavior.rb +34 -34
  98. data/app/behaviors/ui/dropdown_menu_label_behavior.rb +25 -25
  99. data/app/behaviors/ui/dropdown_menu_radio_group_behavior.rb +17 -17
  100. data/app/behaviors/ui/dropdown_menu_radio_item_behavior.rb +37 -39
  101. data/app/behaviors/ui/dropdown_menu_separator_behavior.rb +19 -19
  102. data/app/behaviors/ui/dropdown_menu_shortcut_behavior.rb +17 -17
  103. data/app/behaviors/ui/dropdown_menu_sub_behavior.rb +17 -17
  104. data/app/behaviors/ui/dropdown_menu_sub_content_behavior.rb +33 -33
  105. data/app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb +30 -30
  106. data/app/behaviors/ui/dropdown_menu_trigger_behavior.rb +39 -39
  107. data/app/behaviors/ui/empty_behavior.rb +111 -100
  108. data/app/behaviors/ui/field_behavior.rb +51 -37
  109. data/app/behaviors/ui/field_content_behavior.rb +18 -20
  110. data/app/behaviors/ui/field_description_behavior.rb +18 -20
  111. data/app/behaviors/ui/field_error_behavior.rb +42 -37
  112. data/app/behaviors/ui/field_group_behavior.rb +18 -20
  113. data/app/behaviors/ui/field_label_behavior.rb +19 -21
  114. data/app/behaviors/ui/field_legend_behavior.rb +26 -22
  115. data/app/behaviors/ui/field_separator_behavior.rb +24 -26
  116. data/app/behaviors/ui/field_set_behavior.rb +24 -20
  117. data/app/behaviors/ui/field_title_behavior.rb +18 -20
  118. data/app/behaviors/ui/h1_behavior.rb +25 -17
  119. data/app/behaviors/ui/h2_behavior.rb +25 -17
  120. data/app/behaviors/ui/h3_behavior.rb +25 -17
  121. data/app/behaviors/ui/h4_behavior.rb +25 -17
  122. data/app/behaviors/ui/hover_card_behavior.rb +41 -25
  123. data/app/behaviors/ui/hover_card_content_behavior.rb +35 -35
  124. data/app/behaviors/ui/hover_card_trigger_behavior.rb +38 -38
  125. data/app/behaviors/ui/inline_code_behavior.rb +25 -17
  126. data/app/behaviors/ui/input_behavior.rb +52 -42
  127. data/app/behaviors/ui/input_group_addon_behavior.rb +9 -2
  128. data/app/behaviors/ui/input_group_button_behavior.rb +9 -2
  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 +22 -3
  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 +77 -56
  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 +69 -71
  256. data/app/behaviors/ui/tooltip_behavior.rb +36 -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/blockquote.rb +1 -0
  282. data/app/components/ui/breadcrumb.rb +26 -26
  283. data/app/components/ui/breadcrumb_ellipsis.rb +47 -47
  284. data/app/components/ui/breadcrumb_item.rb +22 -22
  285. data/app/components/ui/breadcrumb_link.rb +22 -22
  286. data/app/components/ui/breadcrumb_list.rb +22 -22
  287. data/app/components/ui/breadcrumb_page.rb +20 -20
  288. data/app/components/ui/breadcrumb_separator.rb +43 -43
  289. data/app/components/ui/button.rb +44 -44
  290. data/app/components/ui/button_group.rb +44 -44
  291. data/app/components/ui/button_group_separator.rb +28 -28
  292. data/app/components/ui/button_group_text.rb +40 -40
  293. data/app/components/ui/calendar.rb +188 -188
  294. data/app/components/ui/card.rb +10 -10
  295. data/app/components/ui/card_action.rb +10 -10
  296. data/app/components/ui/card_content.rb +10 -10
  297. data/app/components/ui/card_description.rb +10 -10
  298. data/app/components/ui/card_footer.rb +10 -10
  299. data/app/components/ui/card_header.rb +10 -10
  300. data/app/components/ui/card_title.rb +10 -10
  301. data/app/components/ui/carousel.rb +14 -13
  302. data/app/components/ui/carousel_content.rb +12 -11
  303. data/app/components/ui/carousel_item.rb +11 -10
  304. data/app/components/ui/carousel_next.rb +13 -25
  305. data/app/components/ui/carousel_previous.rb +13 -25
  306. data/app/components/ui/checkbox.rb +43 -43
  307. data/app/components/ui/collapsible.rb +17 -17
  308. data/app/components/ui/collapsible_content.rb +11 -11
  309. data/app/components/ui/collapsible_trigger.rb +15 -15
  310. data/app/components/ui/combobox_wrapper.rb +53 -53
  311. data/app/components/ui/command.rb +12 -11
  312. data/app/components/ui/command_dialog.rb +17 -16
  313. data/app/components/ui/command_empty.rb +10 -10
  314. data/app/components/ui/command_group.rb +15 -15
  315. data/app/components/ui/command_input.rb +26 -26
  316. data/app/components/ui/command_item.rb +12 -12
  317. data/app/components/ui/command_list.rb +10 -10
  318. data/app/components/ui/command_separator.rb +10 -10
  319. data/app/components/ui/command_shortcut.rb +10 -10
  320. data/app/components/ui/context_menu.rb +25 -25
  321. data/app/components/ui/context_menu_checkbox_item.rb +42 -42
  322. data/app/components/ui/context_menu_content.rb +22 -22
  323. data/app/components/ui/context_menu_item.rb +34 -34
  324. data/app/components/ui/context_menu_label.rb +22 -22
  325. data/app/components/ui/context_menu_radio_group.rb +23 -23
  326. data/app/components/ui/context_menu_radio_item.rb +42 -42
  327. data/app/components/ui/context_menu_separator.rb +19 -19
  328. data/app/components/ui/context_menu_shortcut.rb +20 -20
  329. data/app/components/ui/context_menu_trigger.rb +22 -22
  330. data/app/components/ui/date_picker.rb +116 -116
  331. data/app/components/ui/date_picker_input.rb +66 -66
  332. data/app/components/ui/date_picker_trigger.rb +63 -63
  333. data/app/components/ui/dialog.rb +14 -14
  334. data/app/components/ui/dialog_close.rb +22 -22
  335. data/app/components/ui/dialog_content.rb +12 -12
  336. data/app/components/ui/dialog_description.rb +17 -17
  337. data/app/components/ui/dialog_footer.rb +10 -10
  338. data/app/components/ui/dialog_header.rb +10 -10
  339. data/app/components/ui/dialog_overlay.rb +13 -13
  340. data/app/components/ui/dialog_title.rb +17 -17
  341. data/app/components/ui/dialog_trigger.rb +32 -32
  342. data/app/components/ui/drawer.rb +34 -34
  343. data/app/components/ui/drawer_close.rb +18 -18
  344. data/app/components/ui/drawer_content.rb +14 -14
  345. data/app/components/ui/drawer_description.rb +11 -11
  346. data/app/components/ui/drawer_footer.rb +11 -11
  347. data/app/components/ui/drawer_handle.rb +10 -10
  348. data/app/components/ui/drawer_header.rb +11 -11
  349. data/app/components/ui/drawer_overlay.rb +12 -12
  350. data/app/components/ui/drawer_title.rb +11 -11
  351. data/app/components/ui/drawer_trigger.rb +29 -29
  352. data/app/components/ui/dropdown_menu.rb +49 -49
  353. data/app/components/ui/dropdown_menu_checkbox_item.rb +45 -45
  354. data/app/components/ui/dropdown_menu_content.rb +24 -24
  355. data/app/components/ui/dropdown_menu_item.rb +34 -34
  356. data/app/components/ui/dropdown_menu_label.rb +22 -22
  357. data/app/components/ui/dropdown_menu_radio_group.rb +23 -23
  358. data/app/components/ui/dropdown_menu_radio_item.rb +47 -47
  359. data/app/components/ui/dropdown_menu_separator.rb +19 -19
  360. data/app/components/ui/dropdown_menu_shortcut.rb +20 -20
  361. data/app/components/ui/dropdown_menu_sub.rb +23 -23
  362. data/app/components/ui/dropdown_menu_sub_content.rb +26 -26
  363. data/app/components/ui/dropdown_menu_sub_trigger.rb +40 -40
  364. data/app/components/ui/dropdown_menu_trigger.rb +36 -36
  365. data/app/components/ui/empty.rb +21 -21
  366. data/app/components/ui/empty_content.rb +18 -18
  367. data/app/components/ui/empty_description.rb +16 -16
  368. data/app/components/ui/empty_header.rb +20 -20
  369. data/app/components/ui/empty_media.rb +24 -24
  370. data/app/components/ui/empty_title.rb +16 -16
  371. data/app/components/ui/field.rb +30 -30
  372. data/app/components/ui/field_content.rb +20 -20
  373. data/app/components/ui/field_description.rb +20 -20
  374. data/app/components/ui/field_error.rb +50 -50
  375. data/app/components/ui/field_group.rb +23 -23
  376. data/app/components/ui/field_label.rb +22 -22
  377. data/app/components/ui/field_legend.rb +25 -25
  378. data/app/components/ui/field_separator.rb +41 -41
  379. data/app/components/ui/field_set.rb +22 -22
  380. data/app/components/ui/field_title.rb +20 -20
  381. data/app/components/ui/h1.rb +1 -0
  382. data/app/components/ui/h2.rb +1 -0
  383. data/app/components/ui/h3.rb +1 -0
  384. data/app/components/ui/h4.rb +1 -0
  385. data/app/components/ui/hover_card.rb +22 -22
  386. data/app/components/ui/hover_card_content.rb +28 -28
  387. data/app/components/ui/hover_card_trigger.rb +40 -40
  388. data/app/components/ui/inline_code.rb +1 -0
  389. data/app/components/ui/input.rb +15 -15
  390. data/app/components/ui/input_group.rb +28 -28
  391. data/app/components/ui/input_group_addon.rb +27 -27
  392. data/app/components/ui/input_group_button.rb +35 -35
  393. data/app/components/ui/input_group_input.rb +39 -39
  394. data/app/components/ui/input_group_text.rb +26 -26
  395. data/app/components/ui/input_group_textarea.rb +39 -39
  396. data/app/components/ui/input_otp.rb +48 -48
  397. data/app/components/ui/input_otp_group.rb +21 -21
  398. data/app/components/ui/input_otp_separator.rb +28 -28
  399. data/app/components/ui/input_otp_slot.rb +28 -28
  400. data/app/components/ui/item.rb +20 -20
  401. data/app/components/ui/item_actions.rb +10 -10
  402. data/app/components/ui/item_content.rb +10 -10
  403. data/app/components/ui/item_description.rb +10 -10
  404. data/app/components/ui/item_footer.rb +10 -10
  405. data/app/components/ui/item_group.rb +10 -10
  406. data/app/components/ui/item_header.rb +10 -10
  407. data/app/components/ui/item_media.rb +11 -11
  408. data/app/components/ui/item_separator.rb +10 -10
  409. data/app/components/ui/item_title.rb +10 -10
  410. data/app/components/ui/kbd.rb +24 -24
  411. data/app/components/ui/kbd_group.rb +25 -25
  412. data/app/components/ui/label.rb +25 -25
  413. data/app/components/ui/large.rb +1 -0
  414. data/app/components/ui/lead.rb +1 -0
  415. data/app/components/ui/list.rb +1 -0
  416. data/app/components/ui/menubar.rb +31 -31
  417. data/app/components/ui/menubar_checkbox_item.rb +45 -45
  418. data/app/components/ui/menubar_content.rb +27 -27
  419. data/app/components/ui/menubar_item.rb +34 -34
  420. data/app/components/ui/menubar_label.rb +24 -24
  421. data/app/components/ui/menubar_menu.rb +24 -24
  422. data/app/components/ui/menubar_radio_group.rb +24 -24
  423. data/app/components/ui/menubar_radio_item.rb +47 -47
  424. data/app/components/ui/menubar_separator.rb +18 -18
  425. data/app/components/ui/menubar_shortcut.rb +22 -22
  426. data/app/components/ui/menubar_sub.rb +25 -25
  427. data/app/components/ui/menubar_sub_content.rb +22 -22
  428. data/app/components/ui/menubar_sub_trigger.rb +41 -41
  429. data/app/components/ui/menubar_trigger.rb +21 -21
  430. data/app/components/ui/muted.rb +1 -0
  431. data/app/components/ui/navigation_menu.rb +43 -43
  432. data/app/components/ui/navigation_menu_content.rb +28 -28
  433. data/app/components/ui/navigation_menu_item.rb +31 -31
  434. data/app/components/ui/navigation_menu_link.rb +60 -60
  435. data/app/components/ui/navigation_menu_list.rb +23 -23
  436. data/app/components/ui/navigation_menu_trigger.rb +44 -44
  437. data/app/components/ui/navigation_menu_viewport.rb +20 -20
  438. data/app/components/ui/p.rb +1 -0
  439. data/app/components/ui/pagination.rb +15 -15
  440. data/app/components/ui/pagination_content.rb +15 -15
  441. data/app/components/ui/pagination_ellipsis.rb +20 -20
  442. data/app/components/ui/pagination_item.rb +13 -13
  443. data/app/components/ui/pagination_link.rb +21 -21
  444. data/app/components/ui/pagination_next.rb +25 -25
  445. data/app/components/ui/pagination_previous.rb +25 -25
  446. data/app/components/ui/popover.rb +44 -44
  447. data/app/components/ui/popover_content.rb +25 -25
  448. data/app/components/ui/popover_trigger.rb +30 -30
  449. data/app/components/ui/progress.rb +32 -32
  450. data/app/components/ui/radio_button.rb +44 -44
  451. data/app/components/ui/resizable_handle.rb +49 -49
  452. data/app/components/ui/resizable_panel.rb +31 -31
  453. data/app/components/ui/resizable_panel_group.rb +37 -37
  454. data/app/components/ui/responsive_dialog.rb +81 -81
  455. data/app/components/ui/scroll_area.rb +54 -54
  456. data/app/components/ui/scroll_area_corner.rb +27 -27
  457. data/app/components/ui/scroll_area_scrollbar.rb +37 -37
  458. data/app/components/ui/scroll_area_thumb.rb +31 -31
  459. data/app/components/ui/scroll_area_viewport.rb +33 -33
  460. data/app/components/ui/select.rb +38 -38
  461. data/app/components/ui/select_content.rb +36 -36
  462. data/app/components/ui/select_group.rb +32 -32
  463. data/app/components/ui/select_item.rb +58 -58
  464. data/app/components/ui/select_label.rb +28 -28
  465. data/app/components/ui/select_scroll_down_button.rb +39 -39
  466. data/app/components/ui/select_scroll_up_button.rb +39 -39
  467. data/app/components/ui/select_trigger.rb +38 -38
  468. data/app/components/ui/separator.rb +35 -35
  469. data/app/components/ui/sheet.rb +14 -14
  470. data/app/components/ui/sheet_close.rb +32 -32
  471. data/app/components/ui/sheet_content.rb +45 -45
  472. data/app/components/ui/sheet_description.rb +17 -17
  473. data/app/components/ui/sheet_footer.rb +10 -10
  474. data/app/components/ui/sheet_header.rb +10 -10
  475. data/app/components/ui/sheet_overlay.rb +13 -13
  476. data/app/components/ui/sheet_title.rb +17 -17
  477. data/app/components/ui/sheet_trigger.rb +21 -21
  478. data/app/components/ui/sidebar.rb +85 -85
  479. data/app/components/ui/sidebar_content.rb +27 -27
  480. data/app/components/ui/sidebar_footer.rb +29 -29
  481. data/app/components/ui/sidebar_group.rb +45 -45
  482. data/app/components/ui/sidebar_group_action.rb +39 -39
  483. data/app/components/ui/sidebar_group_content.rb +35 -35
  484. data/app/components/ui/sidebar_group_label.rb +38 -38
  485. data/app/components/ui/sidebar_header.rb +29 -29
  486. data/app/components/ui/sidebar_input.rb +35 -35
  487. data/app/components/ui/sidebar_inset.rb +35 -35
  488. data/app/components/ui/sidebar_menu.rb +32 -32
  489. data/app/components/ui/sidebar_menu_action.rb +52 -52
  490. data/app/components/ui/sidebar_menu_badge.rb +32 -32
  491. data/app/components/ui/sidebar_menu_button.rb +63 -63
  492. data/app/components/ui/sidebar_menu_item.rb +38 -38
  493. data/app/components/ui/sidebar_menu_skeleton.rb +57 -57
  494. data/app/components/ui/sidebar_menu_sub.rb +43 -43
  495. data/app/components/ui/sidebar_menu_sub_button.rb +40 -40
  496. data/app/components/ui/sidebar_menu_sub_item.rb +27 -27
  497. data/app/components/ui/sidebar_provider.rb +66 -66
  498. data/app/components/ui/sidebar_rail.rb +28 -28
  499. data/app/components/ui/sidebar_separator.rb +25 -25
  500. data/app/components/ui/sidebar_trigger.rb +54 -54
  501. data/app/components/ui/skeleton.rb +37 -37
  502. data/app/components/ui/small.rb +1 -0
  503. data/app/components/ui/sonner_toaster.rb +49 -49
  504. data/app/components/ui/spinner.rb +36 -36
  505. data/app/components/ui/switch.rb +62 -62
  506. data/app/components/ui/table.rb +42 -42
  507. data/app/components/ui/table_body.rb +22 -22
  508. data/app/components/ui/table_caption.rb +11 -11
  509. data/app/components/ui/table_cell.rb +11 -11
  510. data/app/components/ui/table_footer.rb +22 -22
  511. data/app/components/ui/table_head.rb +11 -11
  512. data/app/components/ui/table_header.rb +22 -22
  513. data/app/components/ui/table_row.rb +19 -19
  514. data/app/components/ui/tabs.rb +36 -36
  515. data/app/components/ui/tabs_content.rb +26 -26
  516. data/app/components/ui/tabs_list.rb +23 -23
  517. data/app/components/ui/tabs_trigger.rb +29 -29
  518. data/app/components/ui/textarea.rb +15 -15
  519. data/app/components/ui/toggle.rb +38 -38
  520. data/app/components/ui/toggle_group.rb +53 -53
  521. data/app/components/ui/toggle_group_item.rb +61 -61
  522. data/app/components/ui/tooltip.rb +27 -27
  523. data/app/components/ui/tooltip_content.rb +31 -31
  524. data/app/components/ui/tooltip_trigger.rb +36 -36
  525. data/app/helpers/ui/combobox_behavior.rb +1 -1
  526. data/app/helpers/ui/empty_behavior.rb +6 -6
  527. data/app/helpers/ui/input_group_input_behavior.rb +1 -1
  528. data/app/helpers/ui/input_group_textarea_behavior.rb +1 -1
  529. data/app/helpers/ui/popover_content_behavior.rb +1 -1
  530. data/app/helpers/ui/popover_trigger_behavior.rb +1 -1
  531. data/app/helpers/ui/select_behavior.rb +61 -61
  532. data/app/helpers/ui/select_content_behavior.rb +31 -31
  533. data/app/helpers/ui/select_group_behavior.rb +24 -24
  534. data/app/helpers/ui/select_item_behavior.rb +34 -34
  535. data/app/helpers/ui/select_label_behavior.rb +23 -23
  536. data/app/helpers/ui/select_scroll_down_button_behavior.rb +38 -38
  537. data/app/helpers/ui/select_scroll_up_button_behavior.rb +38 -38
  538. data/app/helpers/ui/select_trigger_behavior.rb +29 -29
  539. data/app/helpers/ui/spinner_behavior.rb +1 -1
  540. data/app/javascript/ui/controllers/accordion_controller.js +15 -3
  541. data/app/javascript/ui/controllers/command_controller.js +4 -3
  542. data/app/view_components/ui/accordion_component.rb +31 -31
  543. data/app/view_components/ui/accordion_content_component.rb +24 -24
  544. data/app/view_components/ui/accordion_item_component.rb +37 -37
  545. data/app/view_components/ui/accordion_trigger_component.rb +25 -25
  546. data/app/view_components/ui/alert_component.rb +18 -18
  547. data/app/view_components/ui/alert_description_component.rb +16 -16
  548. data/app/view_components/ui/alert_title_component.rb +16 -16
  549. data/app/view_components/ui/aspect_ratio_component.rb +20 -20
  550. data/app/view_components/ui/avatar_component.rb +16 -16
  551. data/app/view_components/ui/avatar_fallback_component.rb +16 -16
  552. data/app/view_components/ui/avatar_image_component.rb +19 -19
  553. data/app/view_components/ui/badge_component.rb +18 -18
  554. data/app/view_components/ui/blockquote_component.rb +1 -0
  555. data/app/view_components/ui/breadcrumb_component.rb +28 -28
  556. data/app/view_components/ui/breadcrumb_ellipsis_component.rb +41 -41
  557. data/app/view_components/ui/breadcrumb_item_component.rb +24 -24
  558. data/app/view_components/ui/breadcrumb_link_component.rb +24 -24
  559. data/app/view_components/ui/breadcrumb_list_component.rb +24 -24
  560. data/app/view_components/ui/breadcrumb_page_component.rb +22 -22
  561. data/app/view_components/ui/breadcrumb_separator_component.rb +38 -38
  562. data/app/view_components/ui/button_component.rb +39 -39
  563. data/app/view_components/ui/button_group_component.rb +33 -33
  564. data/app/view_components/ui/button_group_separator_component.rb +29 -29
  565. data/app/view_components/ui/button_group_text_component.rb +25 -25
  566. data/app/view_components/ui/calendar_component.rb +179 -182
  567. data/app/view_components/ui/card_action_component.rb +10 -10
  568. data/app/view_components/ui/card_component.rb +10 -10
  569. data/app/view_components/ui/card_content_component.rb +10 -10
  570. data/app/view_components/ui/card_description_component.rb +10 -10
  571. data/app/view_components/ui/card_footer_component.rb +10 -10
  572. data/app/view_components/ui/card_header_component.rb +10 -10
  573. data/app/view_components/ui/card_title_component.rb +10 -10
  574. data/app/view_components/ui/carousel_component.rb +14 -13
  575. data/app/view_components/ui/carousel_content_component.rb +12 -11
  576. data/app/view_components/ui/carousel_item_component.rb +11 -10
  577. data/app/view_components/ui/carousel_next_component.rb +15 -27
  578. data/app/view_components/ui/carousel_previous_component.rb +15 -27
  579. data/app/view_components/ui/checkbox_component.rb +48 -48
  580. data/app/view_components/ui/collapsible_component.rb +17 -17
  581. data/app/view_components/ui/collapsible_content_component.rb +11 -11
  582. data/app/view_components/ui/collapsible_trigger_component.rb +15 -15
  583. data/app/view_components/ui/combobox_wrapper_component.rb +53 -53
  584. data/app/view_components/ui/command_component.rb +12 -11
  585. data/app/view_components/ui/command_dialog_component.rb +17 -16
  586. data/app/view_components/ui/command_empty_component.rb +10 -10
  587. data/app/view_components/ui/command_group_component.rb +16 -16
  588. data/app/view_components/ui/command_input_component.rb +15 -15
  589. data/app/view_components/ui/command_item_component.rb +12 -12
  590. data/app/view_components/ui/command_list_component.rb +10 -10
  591. data/app/view_components/ui/command_separator_component.rb +10 -10
  592. data/app/view_components/ui/command_shortcut_component.rb +10 -10
  593. data/app/view_components/ui/context_menu_checkbox_item_component.rb +36 -37
  594. data/app/view_components/ui/context_menu_component.rb +14 -14
  595. data/app/view_components/ui/context_menu_content_component.rb +14 -14
  596. data/app/view_components/ui/context_menu_item_component.rb +22 -22
  597. data/app/view_components/ui/context_menu_label_component.rb +16 -16
  598. data/app/view_components/ui/context_menu_radio_group_component.rb +13 -13
  599. data/app/view_components/ui/context_menu_radio_item_component.rb +36 -37
  600. data/app/view_components/ui/context_menu_separator_component.rb +11 -11
  601. data/app/view_components/ui/context_menu_shortcut_component.rb +13 -13
  602. data/app/view_components/ui/context_menu_trigger_component.rb +14 -14
  603. data/app/view_components/ui/date_picker_component.rb +125 -125
  604. data/app/view_components/ui/date_picker_input_component.rb +68 -68
  605. data/app/view_components/ui/date_picker_trigger_component.rb +67 -67
  606. data/app/view_components/ui/dialog_close_component.rb +61 -61
  607. data/app/view_components/ui/dialog_component.rb +45 -45
  608. data/app/view_components/ui/dialog_content_component.rb +23 -23
  609. data/app/view_components/ui/dialog_description_component.rb +21 -21
  610. data/app/view_components/ui/dialog_footer_component.rb +17 -17
  611. data/app/view_components/ui/dialog_header_component.rb +18 -18
  612. data/app/view_components/ui/dialog_overlay_component.rb +30 -30
  613. data/app/view_components/ui/dialog_title_component.rb +21 -21
  614. data/app/view_components/ui/dialog_trigger_component.rb +61 -61
  615. data/app/view_components/ui/drawer_close_component.rb +30 -30
  616. data/app/view_components/ui/drawer_component.rb +76 -76
  617. data/app/view_components/ui/drawer_content_component.rb +26 -26
  618. data/app/view_components/ui/drawer_description_component.rb +17 -17
  619. data/app/view_components/ui/drawer_footer_component.rb +20 -20
  620. data/app/view_components/ui/drawer_handle_component.rb +19 -19
  621. data/app/view_components/ui/drawer_header_component.rb +20 -20
  622. data/app/view_components/ui/drawer_overlay_component.rb +22 -22
  623. data/app/view_components/ui/drawer_title_component.rb +17 -17
  624. data/app/view_components/ui/drawer_trigger_component.rb +60 -60
  625. data/app/view_components/ui/dropdown_menu_checkbox_item_component.rb +26 -26
  626. data/app/view_components/ui/dropdown_menu_component.rb +45 -45
  627. data/app/view_components/ui/dropdown_menu_content_component.rb +13 -13
  628. data/app/view_components/ui/dropdown_menu_item_component.rb +16 -16
  629. data/app/view_components/ui/dropdown_menu_label_component.rb +13 -13
  630. data/app/view_components/ui/dropdown_menu_radio_group_component.rb +12 -12
  631. data/app/view_components/ui/dropdown_menu_radio_item_component.rb +27 -27
  632. data/app/view_components/ui/dropdown_menu_separator_component.rb +11 -11
  633. data/app/view_components/ui/dropdown_menu_shortcut_component.rb +12 -12
  634. data/app/view_components/ui/dropdown_menu_sub_component.rb +12 -12
  635. data/app/view_components/ui/dropdown_menu_sub_content_component.rb +14 -14
  636. data/app/view_components/ui/dropdown_menu_sub_trigger_component.rb +22 -22
  637. data/app/view_components/ui/dropdown_menu_trigger_component.rb +46 -46
  638. data/app/view_components/ui/empty_component.rb +12 -12
  639. data/app/view_components/ui/empty_content_component.rb +12 -12
  640. data/app/view_components/ui/empty_description_component.rb +12 -12
  641. data/app/view_components/ui/empty_header_component.rb +12 -12
  642. data/app/view_components/ui/empty_media_component.rb +13 -13
  643. data/app/view_components/ui/empty_title_component.rb +12 -12
  644. data/app/view_components/ui/field_component.rb +36 -36
  645. data/app/view_components/ui/field_content_component.rb +22 -22
  646. data/app/view_components/ui/field_description_component.rb +22 -22
  647. data/app/view_components/ui/field_error_component.rb +55 -55
  648. data/app/view_components/ui/field_group_component.rb +27 -27
  649. data/app/view_components/ui/field_label_component.rb +24 -24
  650. data/app/view_components/ui/field_legend_component.rb +29 -29
  651. data/app/view_components/ui/field_separator_component.rb +43 -43
  652. data/app/view_components/ui/field_set_component.rb +25 -25
  653. data/app/view_components/ui/field_title_component.rb +22 -22
  654. data/app/view_components/ui/h3_component.rb +1 -0
  655. data/app/view_components/ui/h4_component.rb +1 -0
  656. data/app/view_components/ui/hover_card_component.rb +24 -24
  657. data/app/view_components/ui/hover_card_content_component.rb +30 -30
  658. data/app/view_components/ui/hover_card_trigger_component.rb +47 -47
  659. data/app/view_components/ui/inline_code_component.rb +1 -0
  660. data/app/view_components/ui/input_component.rb +17 -17
  661. data/app/view_components/ui/input_group_addon_component.rb +31 -31
  662. data/app/view_components/ui/input_group_button_component.rb +32 -32
  663. data/app/view_components/ui/input_group_component.rb +30 -30
  664. data/app/view_components/ui/input_group_input_component.rb +38 -38
  665. data/app/view_components/ui/input_group_text_component.rb +28 -28
  666. data/app/view_components/ui/input_group_textarea_component.rb +38 -38
  667. data/app/view_components/ui/input_otp_component.rb +52 -52
  668. data/app/view_components/ui/input_otp_group_component.rb +23 -23
  669. data/app/view_components/ui/input_otp_separator_component.rb +29 -29
  670. data/app/view_components/ui/input_otp_slot_component.rb +28 -28
  671. data/app/view_components/ui/item_actions_component.rb +12 -12
  672. data/app/view_components/ui/item_component.rb +23 -23
  673. data/app/view_components/ui/item_content_component.rb +12 -12
  674. data/app/view_components/ui/item_description_component.rb +12 -12
  675. data/app/view_components/ui/item_footer_component.rb +12 -12
  676. data/app/view_components/ui/item_group_component.rb +12 -12
  677. data/app/view_components/ui/item_header_component.rb +12 -12
  678. data/app/view_components/ui/item_media_component.rb +13 -13
  679. data/app/view_components/ui/item_separator_component.rb +12 -12
  680. data/app/view_components/ui/item_title_component.rb +12 -12
  681. data/app/view_components/ui/kbd_component.rb +25 -25
  682. data/app/view_components/ui/kbd_group_component.rb +26 -26
  683. data/app/view_components/ui/label_component.rb +18 -18
  684. data/app/view_components/ui/large_component.rb +1 -0
  685. data/app/view_components/ui/lead_component.rb +1 -0
  686. data/app/view_components/ui/list_component.rb +1 -0
  687. data/app/view_components/ui/menubar_checkbox_item_component.rb +40 -40
  688. data/app/view_components/ui/menubar_component.rb +19 -19
  689. data/app/view_components/ui/menubar_content_component.rb +21 -21
  690. data/app/view_components/ui/menubar_item_component.rb +26 -26
  691. data/app/view_components/ui/menubar_label_component.rb +18 -18
  692. data/app/view_components/ui/menubar_menu_component.rb +20 -20
  693. data/app/view_components/ui/menubar_radio_group_component.rb +21 -21
  694. data/app/view_components/ui/menubar_radio_item_component.rb +41 -41
  695. data/app/view_components/ui/menubar_separator_component.rb +16 -16
  696. data/app/view_components/ui/menubar_shortcut_component.rb +17 -17
  697. data/app/view_components/ui/menubar_sub_component.rb +20 -20
  698. data/app/view_components/ui/menubar_sub_content_component.rb +20 -20
  699. data/app/view_components/ui/menubar_sub_trigger_component.rb +37 -37
  700. data/app/view_components/ui/menubar_trigger_component.rb +18 -18
  701. data/app/view_components/ui/muted_component.rb +1 -0
  702. data/app/view_components/ui/navigation_menu_component.rb +37 -37
  703. data/app/view_components/ui/navigation_menu_content_component.rb +18 -18
  704. data/app/view_components/ui/navigation_menu_item_component.rb +18 -18
  705. data/app/view_components/ui/navigation_menu_link_component.rb +83 -83
  706. data/app/view_components/ui/navigation_menu_list_component.rb +16 -16
  707. data/app/view_components/ui/navigation_menu_trigger_component.rb +38 -38
  708. data/app/view_components/ui/navigation_menu_viewport_component.rb +16 -16
  709. data/app/view_components/ui/p_component.rb +1 -0
  710. data/app/view_components/ui/pagination_component.rb +14 -14
  711. data/app/view_components/ui/pagination_content_component.rb +14 -14
  712. data/app/view_components/ui/pagination_ellipsis_component.rb +20 -20
  713. data/app/view_components/ui/pagination_item_component.rb +12 -12
  714. data/app/view_components/ui/pagination_link_component.rb +21 -21
  715. data/app/view_components/ui/pagination_next_component.rb +24 -24
  716. data/app/view_components/ui/pagination_previous_component.rb +25 -25
  717. data/app/view_components/ui/popover_component.rb +50 -50
  718. data/app/view_components/ui/popover_content_component.rb +36 -36
  719. data/app/view_components/ui/popover_trigger_component.rb +60 -60
  720. data/app/view_components/ui/progress_component.rb +33 -33
  721. data/app/view_components/ui/radio_button_component.rb +49 -49
  722. data/app/view_components/ui/resizable_handle_component.rb +27 -27
  723. data/app/view_components/ui/resizable_panel_component.rb +33 -33
  724. data/app/view_components/ui/resizable_panel_group_component.rb +39 -39
  725. data/app/view_components/ui/responsive_dialog_component.rb +70 -70
  726. data/app/view_components/ui/scroll_area_component.rb +39 -39
  727. data/app/view_components/ui/scroll_area_corner_component.rb +18 -18
  728. data/app/view_components/ui/scroll_area_scrollbar_component.rb +28 -28
  729. data/app/view_components/ui/scroll_area_thumb_component.rb +23 -23
  730. data/app/view_components/ui/scroll_area_viewport_component.rb +25 -25
  731. data/app/view_components/ui/select_component.rb +27 -27
  732. data/app/view_components/ui/select_content_component.rb +35 -36
  733. data/app/view_components/ui/select_group_component.rb +22 -22
  734. data/app/view_components/ui/select_item_component.rb +39 -40
  735. data/app/view_components/ui/select_label_component.rb +18 -18
  736. data/app/view_components/ui/select_scroll_down_button_component.rb +29 -29
  737. data/app/view_components/ui/select_scroll_up_button_component.rb +29 -29
  738. data/app/view_components/ui/select_trigger_component.rb +22 -22
  739. data/app/view_components/ui/separator_component.rb +23 -23
  740. data/app/view_components/ui/sheet_close_component.rb +61 -61
  741. data/app/view_components/ui/sheet_component.rb +45 -45
  742. data/app/view_components/ui/sheet_content_component.rb +43 -43
  743. data/app/view_components/ui/sheet_description_component.rb +20 -20
  744. data/app/view_components/ui/sheet_footer_component.rb +17 -17
  745. data/app/view_components/ui/sheet_header_component.rb +17 -17
  746. data/app/view_components/ui/sheet_overlay_component.rb +30 -30
  747. data/app/view_components/ui/sheet_title_component.rb +20 -20
  748. data/app/view_components/ui/sheet_trigger_component.rb +50 -50
  749. data/app/view_components/ui/skeleton_component.rb +23 -23
  750. data/app/view_components/ui/slider_component.rb +55 -55
  751. data/app/view_components/ui/slider_range_component.rb +19 -19
  752. data/app/view_components/ui/slider_thumb_component.rb +25 -25
  753. data/app/view_components/ui/slider_track_component.rb +22 -22
  754. data/app/view_components/ui/small_component.rb +1 -0
  755. data/app/view_components/ui/sonner_toaster_component.rb +49 -49
  756. data/app/view_components/ui/spinner_component.rb +41 -41
  757. data/app/view_components/ui/switch_component.rb +52 -52
  758. data/app/view_components/ui/table_body_component.rb +14 -14
  759. data/app/view_components/ui/table_caption_component.rb +10 -10
  760. data/app/view_components/ui/table_cell_component.rb +10 -10
  761. data/app/view_components/ui/table_component.rb +20 -20
  762. data/app/view_components/ui/table_footer_component.rb +14 -14
  763. data/app/view_components/ui/table_head_component.rb +10 -10
  764. data/app/view_components/ui/table_header_component.rb +14 -14
  765. data/app/view_components/ui/table_row_component.rb +16 -16
  766. data/app/view_components/ui/tabs_component.rb +33 -33
  767. data/app/view_components/ui/tabs_content_component.rb +28 -28
  768. data/app/view_components/ui/tabs_list_component.rb +24 -24
  769. data/app/view_components/ui/tabs_trigger_component.rb +31 -31
  770. data/app/view_components/ui/textarea_component.rb +14 -14
  771. data/app/view_components/ui/toggle_component.rb +43 -43
  772. data/app/view_components/ui/toggle_group_component.rb +60 -60
  773. data/app/view_components/ui/toggle_group_item_component.rb +62 -62
  774. data/app/view_components/ui/tooltip_component.rb +14 -14
  775. data/app/view_components/ui/tooltip_content_component.rb +23 -23
  776. data/app/view_components/ui/tooltip_trigger_component.rb +19 -19
  777. data/app/views/ui/_command.html.erb +2 -0
  778. data/app/views/ui/carousel/_next.html.erb +1 -1
  779. data/app/views/ui/carousel/_previous.html.erb +1 -1
  780. data/lib/generators/ui/css_generator.rb +58 -0
  781. data/lib/generators/ui/install_generator.rb +140 -0
  782. data/lib/ui/version.rb +1 -1
  783. metadata +3 -3
  784. data/app/assets/stylesheets/ui/sonner.css +0 -610
  785. data/lib/generators/ui/install/install_generator.rb +0 -141
@@ -1,53 +1,53 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarContentBehavior
4
- #
5
- # Shared behavior for MenubarContent component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarContentBehavior
7
- # Returns HTML attributes for the content container
8
- def menubar_content_html_attributes
9
- {
10
- class: menubar_content_classes,
11
- data: menubar_content_data_attributes,
12
- role: "menu",
13
- tabindex: "-1"
14
- }
15
- end
3
+ # MenubarContentBehavior
4
+ #
5
+ # Shared behavior for MenubarContent component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarContentBehavior
7
+ # Returns HTML attributes for the content container
8
+ def menubar_content_html_attributes
9
+ {
10
+ class: menubar_content_classes,
11
+ data: menubar_content_data_attributes,
12
+ role: "menu",
13
+ tabindex: "-1"
14
+ }
15
+ end
16
16
 
17
- # Returns combined CSS classes for the content
18
- def menubar_content_classes
19
- classes_value = respond_to?(:classes, true) ? classes : @classes
20
- base_classes = [
21
- "bg-popover text-popover-foreground",
22
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
23
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
24
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
25
- "data-[side=bottom]:slide-in-from-top-2",
26
- "data-[side=left]:slide-in-from-right-2",
27
- "data-[side=right]:slide-in-from-left-2",
28
- "data-[side=top]:slide-in-from-bottom-2",
29
- "z-50 min-w-[12rem] overflow-hidden rounded-md border p-1 shadow-md",
30
- "hidden absolute"
31
- ].join(" ")
17
+ # Returns combined CSS classes for the content
18
+ def menubar_content_classes
19
+ classes_value = respond_to?(:classes, true) ? classes : @classes
20
+ base_classes = [
21
+ "bg-popover text-popover-foreground",
22
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
23
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
24
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
25
+ "data-[side=bottom]:slide-in-from-top-2",
26
+ "data-[side=left]:slide-in-from-right-2",
27
+ "data-[side=right]:slide-in-from-left-2",
28
+ "data-[side=top]:slide-in-from-bottom-2",
29
+ "z-50 min-w-[12rem] overflow-hidden rounded-md border p-1 shadow-md",
30
+ "hidden absolute"
31
+ ].join(" ")
32
32
 
33
- TailwindMerge::Merger.new.merge([
34
- base_classes,
35
- classes_value
36
- ].compact.join(" "))
37
- end
33
+ TailwindMerge::Merger.new.merge([
34
+ base_classes,
35
+ classes_value
36
+ ].compact.join(" "))
37
+ end
38
38
 
39
- # Returns data attributes for Stimulus target
40
- def menubar_content_data_attributes
41
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
39
+ # Returns data attributes for Stimulus target
40
+ def menubar_content_data_attributes
41
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
42
42
 
43
- align_value = defined?(@align) ? @align : "start"
44
- side_value = defined?(@side) ? @side : "bottom"
43
+ align_value = defined?(@align) ? @align : "start"
44
+ side_value = defined?(@side) ? @side : "bottom"
45
45
 
46
- (attributes_value&.fetch(:data, {}) || {}).merge({
47
- "ui--menubar-target": "content",
48
- state: "closed",
49
- side: side_value,
50
- align: align_value
51
- })
52
- end
53
- end
46
+ (attributes_value&.fetch(:data, {}) || {}).merge({
47
+ "ui--menubar-target": "content",
48
+ state: "closed",
49
+ side: side_value,
50
+ align: align_value
51
+ })
52
+ end
53
+ end
@@ -1,78 +1,78 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarItemBehavior
4
- #
5
- # Shared behavior for MenubarItem component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarItemBehavior
7
- # Returns HTML attributes for the menu item
8
- def menubar_item_html_attributes
9
- attrs = {
10
- class: menubar_item_classes,
11
- data: menubar_item_data_attributes,
12
- role: "menuitem",
13
- tabindex: "-1"
14
- }
3
+ # MenubarItemBehavior
4
+ #
5
+ # Shared behavior for MenubarItem component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarItemBehavior
7
+ # Returns HTML attributes for the menu item
8
+ def menubar_item_html_attributes
9
+ attrs = {
10
+ class: menubar_item_classes,
11
+ data: menubar_item_data_attributes,
12
+ role: "menuitem",
13
+ tabindex: "-1"
14
+ }
15
15
 
16
- # Add disabled attribute if specified
17
- attrs[:"data-disabled"] = "" if disabled?
16
+ # Add disabled attribute if specified
17
+ attrs[:"data-disabled"] = "" if disabled?
18
18
 
19
- attrs
20
- end
19
+ attrs
20
+ end
21
21
 
22
- # Returns combined CSS classes for the item
23
- def menubar_item_classes
24
- classes_value = respond_to?(:classes, true) ? classes : @classes
25
- variant_classes = variant_class
26
- inset_class = inset? ? "pl-8" : ""
22
+ # Returns combined CSS classes for the item
23
+ def menubar_item_classes
24
+ classes_value = respond_to?(:classes, true) ? classes : @classes
25
+ variant_classes = variant_class
26
+ inset_class = inset? ? "pl-8" : ""
27
27
 
28
- TailwindMerge::Merger.new.merge([
29
- "focus:bg-accent focus:text-accent-foreground",
30
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm",
31
- "outline-hidden select-none whitespace-nowrap",
32
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
33
- "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
34
- variant_classes,
35
- inset_class,
36
- classes_value
37
- ].compact.join(" "))
38
- end
28
+ TailwindMerge::Merger.new.merge([
29
+ "focus:bg-accent focus:text-accent-foreground",
30
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm",
31
+ "outline-hidden select-none whitespace-nowrap",
32
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
33
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
34
+ variant_classes,
35
+ inset_class,
36
+ classes_value
37
+ ].compact.join(" "))
38
+ end
39
39
 
40
- # Returns data attributes for the item
41
- def menubar_item_data_attributes
42
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
43
- base_data = {
44
- "ui--menubar-target": "item",
45
- action: "click->ui--menubar#selectItem mouseenter->ui--menubar#trackHoveredItem"
46
- }
40
+ # Returns data attributes for the item
41
+ def menubar_item_data_attributes
42
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
43
+ base_data = {
44
+ "ui--menubar-target": "item",
45
+ action: "click->ui--menubar#selectItem mouseenter->ui--menubar#trackHoveredItem"
46
+ }
47
47
 
48
- # Add variant if destructive
49
- base_data[:variant] = "destructive" if destructive?
48
+ # Add variant if destructive
49
+ base_data[:variant] = "destructive" if destructive?
50
50
 
51
- (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
52
- end
51
+ (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
52
+ end
53
53
 
54
- private
54
+ private
55
55
 
56
- def variant_class
57
- return "" unless destructive?
56
+ def variant_class
57
+ return "" unless destructive?
58
58
 
59
- [
60
- "data-[variant=destructive]:text-destructive",
61
- "data-[variant=destructive]:focus:bg-destructive/10",
62
- "dark:data-[variant=destructive]:focus:bg-destructive/20",
63
- "data-[variant=destructive]:focus:text-destructive"
64
- ].join(" ")
65
- end
59
+ [
60
+ "data-[variant=destructive]:text-destructive",
61
+ "data-[variant=destructive]:focus:bg-destructive/10",
62
+ "dark:data-[variant=destructive]:focus:bg-destructive/20",
63
+ "data-[variant=destructive]:focus:text-destructive"
64
+ ].join(" ")
65
+ end
66
66
 
67
- def destructive?
68
- defined?(@variant) && @variant == :destructive
69
- end
67
+ def destructive?
68
+ defined?(@variant) && @variant == :destructive
69
+ end
70
70
 
71
- def inset?
72
- defined?(@inset) && @inset
73
- end
71
+ def inset?
72
+ defined?(@inset) && @inset
73
+ end
74
74
 
75
- def disabled?
76
- defined?(@disabled) && @disabled
77
- end
78
- end
75
+ def disabled?
76
+ defined?(@disabled) && @disabled
77
+ end
78
+ end
@@ -1,41 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarLabelBehavior
4
- #
5
- # Shared behavior for MenubarLabel component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarLabelBehavior
7
- # Returns HTML attributes for the label
8
- def menubar_label_html_attributes
9
- {
10
- class: menubar_label_classes,
11
- data: menubar_label_data_attributes
12
- }
13
- end
3
+ # MenubarLabelBehavior
4
+ #
5
+ # Shared behavior for MenubarLabel component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarLabelBehavior
7
+ # Returns HTML attributes for the label
8
+ def menubar_label_html_attributes
9
+ {
10
+ class: menubar_label_classes,
11
+ data: menubar_label_data_attributes
12
+ }
13
+ end
14
14
 
15
- # Returns combined CSS classes for the label
16
- def menubar_label_classes
17
- classes_value = respond_to?(:classes, true) ? classes : @classes
18
- inset_class = inset? ? "pl-8" : ""
15
+ # Returns combined CSS classes for the label
16
+ def menubar_label_classes
17
+ classes_value = respond_to?(:classes, true) ? classes : @classes
18
+ inset_class = inset? ? "pl-8" : ""
19
19
 
20
- TailwindMerge::Merger.new.merge([
21
- "px-2 py-1.5 text-sm font-medium",
22
- inset_class,
23
- classes_value
24
- ].compact.join(" "))
25
- end
20
+ TailwindMerge::Merger.new.merge([
21
+ "px-2 py-1.5 text-sm font-medium",
22
+ inset_class,
23
+ classes_value
24
+ ].compact.join(" "))
25
+ end
26
26
 
27
- # Returns data attributes for the label
28
- def menubar_label_data_attributes
29
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
30
- base_data = {}
31
- base_data[:inset] = "" if inset?
27
+ # Returns data attributes for the label
28
+ def menubar_label_data_attributes
29
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
30
+ base_data = {}
31
+ base_data[:inset] = "" if inset?
32
32
 
33
- (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
34
- end
33
+ (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
34
+ end
35
35
 
36
- private
36
+ private
37
37
 
38
- def inset?
39
- defined?(@inset) && @inset
40
- end
41
- end
38
+ def inset?
39
+ defined?(@inset) && @inset
40
+ end
41
+ end
@@ -1,39 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarMenuBehavior
4
- #
5
- # Shared behavior for MenubarMenu component across ERB, ViewComponent, and Phlex implementations.
6
- # This is a wrapper for each top-level menu in the menubar.
7
- module UI::MenubarMenuBehavior
8
- # Returns HTML attributes for the menu wrapper
9
- def menubar_menu_html_attributes
10
- attrs = {
11
- class: menubar_menu_classes,
12
- data: menubar_menu_data_attributes
13
- }
3
+ # UI::MenubarMenuBehavior
4
+ #
5
+ # @ui_component Menubar Menu
6
+ # @ui_description Menu - Phlex implementation
7
+ # @ui_category other
8
+ #
9
+ # @ui_anatomy Menubar Menu - Wrapper for each top-level menu in the menubar. (required)
10
+ #
11
+ # @ui_feature Custom styling with Tailwind classes
12
+ #
13
+ module UI::MenubarMenuBehavior
14
+ # Returns HTML attributes for the menu wrapper
15
+ def menubar_menu_html_attributes
16
+ {
17
+ class: menubar_menu_classes,
18
+ data: menubar_menu_data_attributes
19
+ }
20
+ end
14
21
 
15
- attrs
16
- end
22
+ # Returns combined CSS classes for the menu wrapper
23
+ def menubar_menu_classes
24
+ classes_value = respond_to?(:classes, true) ? classes : @classes
25
+ TailwindMerge::Merger.new.merge([
26
+ "relative",
27
+ classes_value
28
+ ].compact.join(" "))
29
+ end
17
30
 
18
- # Returns combined CSS classes for the menu wrapper
19
- def menubar_menu_classes
20
- classes_value = respond_to?(:classes, true) ? classes : @classes
21
- TailwindMerge::Merger.new.merge([
22
- "relative",
23
- classes_value
24
- ].compact.join(" "))
25
- end
31
+ # Returns data attributes for Stimulus target
32
+ def menubar_menu_data_attributes
33
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
34
+ base_data = {
35
+ "ui--menubar-target": "menu"
36
+ }
26
37
 
27
- # Returns data attributes for Stimulus target
28
- def menubar_menu_data_attributes
29
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
30
- base_data = {
31
- "ui--menubar-target": "menu"
32
- }
38
+ # Add value if provided (used to identify which menu is open)
39
+ base_data[:"ui--menubar-value"] = @value if defined?(@value) && @value
33
40
 
34
- # Add value if provided (used to identify which menu is open)
35
- base_data[:"ui--menubar-value"] = @value if defined?(@value) && @value
36
-
37
- (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
38
- end
39
- end
41
+ (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
42
+ end
43
+ end
@@ -1,34 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarRadioGroupBehavior
4
- #
5
- # Shared behavior for MenubarRadioGroup component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarRadioGroupBehavior
7
- # Returns HTML attributes for the radio group
8
- def menubar_radio_group_html_attributes
9
- {
10
- class: menubar_radio_group_classes,
11
- data: menubar_radio_group_data_attributes,
12
- role: "group"
13
- }
14
- end
3
+ # MenubarRadioGroupBehavior
4
+ #
5
+ # Shared behavior for MenubarRadioGroup component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarRadioGroupBehavior
7
+ # Returns HTML attributes for the radio group
8
+ def menubar_radio_group_html_attributes
9
+ {
10
+ class: menubar_radio_group_classes,
11
+ data: menubar_radio_group_data_attributes,
12
+ role: "group"
13
+ }
14
+ end
15
15
 
16
- # Returns combined CSS classes for the radio group
17
- def menubar_radio_group_classes
18
- classes_value = respond_to?(:classes, true) ? classes : @classes
19
- TailwindMerge::Merger.new.merge([
20
- classes_value
21
- ].compact.join(" "))
22
- end
16
+ # Returns combined CSS classes for the radio group
17
+ def menubar_radio_group_classes
18
+ classes_value = respond_to?(:classes, true) ? classes : @classes
19
+ TailwindMerge::Merger.new.merge([
20
+ classes_value
21
+ ].compact.join(" "))
22
+ end
23
23
 
24
- # Returns data attributes for the radio group
25
- def menubar_radio_group_data_attributes
26
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
27
- base_data = {}
24
+ # Returns data attributes for the radio group
25
+ def menubar_radio_group_data_attributes
26
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
27
+ base_data = {}
28
28
 
29
- # Store the current value if provided
30
- base_data[:"ui--menubar-radio-value"] = @value if defined?(@value) && @value
29
+ # Store the current value if provided
30
+ base_data[:"ui--menubar-radio-value"] = @value if defined?(@value) && @value
31
31
 
32
- (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
33
- end
34
- end
32
+ (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
33
+ end
34
+ end
@@ -1,61 +1,61 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarRadioItemBehavior
4
- #
5
- # Shared behavior for MenubarRadioItem component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarRadioItemBehavior
7
- # Returns HTML attributes for the radio item
8
- def menubar_radio_item_html_attributes
9
- attrs = {
10
- class: menubar_radio_item_classes,
11
- data: menubar_radio_item_data_attributes,
12
- role: "menuitemradio",
13
- "aria-checked": checked?.to_s,
14
- tabindex: "-1"
15
- }
16
-
17
- # Add disabled attribute if specified
18
- attrs[:"data-disabled"] = "" if disabled?
19
-
20
- attrs
21
- end
22
-
23
- # Returns combined CSS classes for the radio item
24
- def menubar_radio_item_classes
25
- classes_value = respond_to?(:classes, true) ? classes : @classes
26
-
27
- TailwindMerge::Merger.new.merge([
28
- "focus:bg-accent focus:text-accent-foreground",
29
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm",
30
- "outline-hidden select-none whitespace-nowrap",
31
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
32
- "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
33
- classes_value
34
- ].compact.join(" "))
35
- end
36
-
37
- # Returns data attributes for the radio item
38
- def menubar_radio_item_data_attributes
39
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
40
- base_data = {
41
- "ui--menubar-target": "item",
42
- action: "click->ui--menubar#selectRadio mouseenter->ui--menubar#trackHoveredItem",
43
- state: checked? ? "checked" : "unchecked"
44
- }
45
-
46
- # Store the value for this radio item
47
- base_data[:"ui--menubar-radio-item-value"] = @value if defined?(@value) && @value
48
-
49
- (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
50
- end
51
-
52
- private
53
-
54
- def checked?
55
- defined?(@checked) && @checked
56
- end
57
-
58
- def disabled?
59
- defined?(@disabled) && @disabled
60
- end
61
- end
3
+ # MenubarRadioItemBehavior
4
+ #
5
+ # Shared behavior for MenubarRadioItem component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarRadioItemBehavior
7
+ # Returns HTML attributes for the radio item
8
+ def menubar_radio_item_html_attributes
9
+ attrs = {
10
+ class: menubar_radio_item_classes,
11
+ data: menubar_radio_item_data_attributes,
12
+ role: "menuitemradio",
13
+ "aria-checked": checked?.to_s,
14
+ tabindex: "-1"
15
+ }
16
+
17
+ # Add disabled attribute if specified
18
+ attrs[:"data-disabled"] = "" if disabled?
19
+
20
+ attrs
21
+ end
22
+
23
+ # Returns combined CSS classes for the radio item
24
+ def menubar_radio_item_classes
25
+ classes_value = respond_to?(:classes, true) ? classes : @classes
26
+
27
+ TailwindMerge::Merger.new.merge([
28
+ "focus:bg-accent focus:text-accent-foreground",
29
+ "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm",
30
+ "outline-hidden select-none whitespace-nowrap",
31
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
32
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
33
+ classes_value
34
+ ].compact.join(" "))
35
+ end
36
+
37
+ # Returns data attributes for the radio item
38
+ def menubar_radio_item_data_attributes
39
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
40
+ base_data = {
41
+ "ui--menubar-target": "item",
42
+ action: "click->ui--menubar#selectRadio mouseenter->ui--menubar#trackHoveredItem",
43
+ state: checked? ? "checked" : "unchecked"
44
+ }
45
+
46
+ # Store the value for this radio item
47
+ base_data[:"ui--menubar-radio-item-value"] = @value if defined?(@value) && @value
48
+
49
+ (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
50
+ end
51
+
52
+ private
53
+
54
+ def checked?
55
+ defined?(@checked) && @checked
56
+ end
57
+
58
+ def disabled?
59
+ defined?(@disabled) && @disabled
60
+ end
61
+ end
@@ -1,30 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenubarSeparatorBehavior
4
- #
5
- # Shared behavior for MenubarSeparator component across ERB, ViewComponent, and Phlex implementations.
6
- module UI::MenubarSeparatorBehavior
7
- # Returns HTML attributes for the separator
8
- def menubar_separator_html_attributes
9
- {
10
- class: menubar_separator_classes,
11
- data: menubar_separator_data_attributes,
12
- role: "separator"
13
- }
14
- end
3
+ # MenubarSeparatorBehavior
4
+ #
5
+ # Shared behavior for MenubarSeparator component across ERB, ViewComponent, and Phlex implementations.
6
+ module UI::MenubarSeparatorBehavior
7
+ # Returns HTML attributes for the separator
8
+ def menubar_separator_html_attributes
9
+ {
10
+ class: menubar_separator_classes,
11
+ data: menubar_separator_data_attributes,
12
+ role: "separator"
13
+ }
14
+ end
15
15
 
16
- # Returns combined CSS classes for the separator
17
- def menubar_separator_classes
18
- classes_value = respond_to?(:classes, true) ? classes : @classes
19
- TailwindMerge::Merger.new.merge([
20
- "bg-border -mx-1 my-1 h-px",
21
- classes_value
22
- ].compact.join(" "))
23
- end
16
+ # Returns combined CSS classes for the separator
17
+ def menubar_separator_classes
18
+ classes_value = respond_to?(:classes, true) ? classes : @classes
19
+ TailwindMerge::Merger.new.merge([
20
+ "bg-border -mx-1 my-1 h-px",
21
+ classes_value
22
+ ].compact.join(" "))
23
+ end
24
24
 
25
- # Returns data attributes for the separator
26
- def menubar_separator_data_attributes
27
- attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
28
- (attributes_value&.fetch(:data, {}) || {})
29
- end
30
- end
25
+ # Returns data attributes for the separator
26
+ def menubar_separator_data_attributes
27
+ attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
28
+ attributes_value&.fetch(:data, {}) || {}
29
+ end
30
+ end