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,42 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # GroupContent - Phlex implementation
4
- #
5
- # Container for content within a sidebar group.
6
- # Typically wraps a SidebarMenu.
7
- #
8
- # @example Basic usage
9
- # render UI::GroupContent.new do
10
- # render UI::Menu.new { ... }
11
- # end
12
- #
13
- # @example Inside a collapsible group
14
- # render UI::CollapsibleContent.new do
15
- # render UI::GroupContent.new do
16
- # render UI::Menu.new { ... }
17
- # end
18
- # end
19
- class UI::SidebarGroupContent < Phlex::HTML
20
- include UI::SidebarGroupContentBehavior
3
+ # GroupContent - Phlex implementation
4
+ #
5
+ # Container for content within a sidebar group.
6
+ # Typically wraps a SidebarMenu.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::GroupContent.new do
10
+ # render UI::Menu.new { ... }
11
+ # end
12
+ #
13
+ # @example Inside a collapsible group
14
+ # render UI::CollapsibleContent.new do
15
+ # render UI::GroupContent.new do
16
+ # render UI::Menu.new { ... }
17
+ # end
18
+ # end
19
+ class UI::SidebarGroupContent < Phlex::HTML
20
+ include UI::SidebarGroupContentBehavior
21
21
 
22
- def initialize(classes: "", **attributes)
23
- @classes = classes
24
- @attributes = attributes
25
- end
22
+ def initialize(classes: "", **attributes)
23
+ @classes = classes
24
+ @attributes = attributes
25
+ end
26
26
 
27
- def view_template(&block)
28
- all_attributes = sidebar_group_content_html_attributes
27
+ def view_template(&block)
28
+ all_attributes = sidebar_group_content_html_attributes
29
29
 
30
- if @attributes.key?(:class)
31
- merged_class = TailwindMerge::Merger.new.merge([
32
- all_attributes[:class],
33
- @attributes[:class]
34
- ].compact.join(" "))
35
- all_attributes = all_attributes.merge(class: merged_class)
36
- end
30
+ if @attributes.key?(:class)
31
+ merged_class = TailwindMerge::Merger.new.merge([
32
+ all_attributes[:class],
33
+ @attributes[:class]
34
+ ].compact.join(" "))
35
+ all_attributes = all_attributes.merge(class: merged_class)
36
+ end
37
37
 
38
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
38
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
39
39
 
40
- div(**all_attributes, &block)
41
- end
42
- end
40
+ div(**all_attributes, &block)
41
+ end
42
+ end
@@ -1,46 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # GroupLabel - Phlex implementation
4
- #
5
- # Label/header for a sidebar group.
6
- # Can be used with UI::CollapsibleTrigger for collapsible groups.
7
- #
8
- # @example Basic usage
9
- # render UI::GroupLabel.new { "Section" }
10
- #
11
- # @example With asChild for collapsible trigger
12
- # render UI::CollapsibleTrigger.new(as_child: true) do |trigger_attrs|
13
- # render UI::GroupLabel.new(**trigger_attrs) do
14
- # "Section"
15
- # render UI::Icon.new(name: "chevron-right", class: "ml-auto transition-transform group-data-[state=open]:rotate-90")
16
- # end
17
- # end
18
- class UI::SidebarGroupLabel < Phlex::HTML
19
- include UI::SidebarGroupLabelBehavior
3
+ # GroupLabel - Phlex implementation
4
+ #
5
+ # Label/header for a sidebar group.
6
+ # Can be used with UI::CollapsibleTrigger for collapsible groups.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::GroupLabel.new { "Section" }
10
+ #
11
+ # @example With asChild for collapsible trigger
12
+ # render UI::CollapsibleTrigger.new(as_child: true) do |trigger_attrs|
13
+ # render UI::GroupLabel.new(**trigger_attrs) do
14
+ # "Section"
15
+ # render UI::Icon.new(name: "chevron-right", class: "ml-auto transition-transform group-data-[state=open]:rotate-90")
16
+ # end
17
+ # end
18
+ class UI::SidebarGroupLabel < Phlex::HTML
19
+ include UI::SidebarGroupLabelBehavior
20
20
 
21
- def initialize(as_child: false, classes: "", **attributes)
22
- @as_child = as_child
23
- @classes = classes
24
- @attributes = attributes
25
- end
21
+ def initialize(as_child: false, classes: "", **attributes)
22
+ @as_child = as_child
23
+ @classes = classes
24
+ @attributes = attributes
25
+ end
26
26
 
27
- def view_template(&block)
28
- if @as_child
29
- yield sidebar_group_label_html_attributes.deep_merge(@attributes)
30
- else
31
- all_attributes = sidebar_group_label_html_attributes
27
+ def view_template(&block)
28
+ if @as_child
29
+ yield sidebar_group_label_html_attributes.deep_merge(@attributes)
30
+ else
31
+ all_attributes = sidebar_group_label_html_attributes
32
32
 
33
- if @attributes.key?(:class)
34
- merged_class = TailwindMerge::Merger.new.merge([
35
- all_attributes[:class],
36
- @attributes[:class]
37
- ].compact.join(" "))
38
- all_attributes = all_attributes.merge(class: merged_class)
39
- end
33
+ if @attributes.key?(:class)
34
+ merged_class = TailwindMerge::Merger.new.merge([
35
+ all_attributes[:class],
36
+ @attributes[:class]
37
+ ].compact.join(" "))
38
+ all_attributes = all_attributes.merge(class: merged_class)
39
+ end
40
40
 
41
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
41
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
42
42
 
43
- div(**all_attributes, &block)
44
- end
45
- end
43
+ div(**all_attributes, &block)
46
44
  end
45
+ end
46
+ end
@@ -1,36 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Header - Phlex implementation
4
- #
5
- # Fixed header section at the top of the sidebar.
6
- #
7
- # @example Basic usage
8
- # render UI::Header.new do
9
- # # Header content (logo, brand, etc.)
10
- # end
11
- class UI::SidebarHeader < Phlex::HTML
12
- include UI::SidebarHeaderBehavior
3
+ # Header - Phlex implementation
4
+ #
5
+ # Fixed header section at the top of the sidebar.
6
+ #
7
+ # @example Basic usage
8
+ # render UI::Header.new do
9
+ # # Header content (logo, brand, etc.)
10
+ # end
11
+ class UI::SidebarHeader < Phlex::HTML
12
+ include UI::SidebarHeaderBehavior
13
13
 
14
- # @param classes [String] Additional CSS classes
15
- # @param attributes [Hash] Additional HTML attributes
16
- def initialize(classes: "", **attributes)
17
- @classes = classes
18
- @attributes = attributes
19
- end
14
+ # @param classes [String] Additional CSS classes
15
+ # @param attributes [Hash] Additional HTML attributes
16
+ def initialize(classes: "", **attributes)
17
+ @classes = classes
18
+ @attributes = attributes
19
+ end
20
20
 
21
- def view_template(&block)
22
- all_attributes = sidebar_header_html_attributes
21
+ def view_template(&block)
22
+ all_attributes = sidebar_header_html_attributes
23
23
 
24
- if @attributes.key?(:class)
25
- merged_class = TailwindMerge::Merger.new.merge([
26
- all_attributes[:class],
27
- @attributes[:class]
28
- ].compact.join(" "))
29
- all_attributes = all_attributes.merge(class: merged_class)
30
- end
24
+ if @attributes.key?(:class)
25
+ merged_class = TailwindMerge::Merger.new.merge([
26
+ all_attributes[:class],
27
+ @attributes[:class]
28
+ ].compact.join(" "))
29
+ all_attributes = all_attributes.merge(class: merged_class)
30
+ end
31
31
 
32
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
32
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
33
33
 
34
- div(**all_attributes, &block)
35
- end
36
- end
34
+ div(**all_attributes, &block)
35
+ end
36
+ end
@@ -1,42 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Input - Phlex implementation
4
- #
5
- # Input field styled for sidebar usage.
6
- # Typically used for search or filter functionality.
7
- #
8
- # @example Basic usage
9
- # render UI::Input.new(placeholder: "Search...")
10
- #
11
- # @example With icon
12
- # render UI::Group.new do
13
- # div(class: "relative") do
14
- # render UI::Icon.new(name: "search", class: "absolute left-2 top-2 size-4 text-muted-foreground")
15
- # render UI::Input.new(placeholder: "Search...", class: "pl-8")
16
- # end
17
- # end
18
- class UI::SidebarInput < Phlex::HTML
19
- include UI::SidebarInputBehavior
3
+ # Input - Phlex implementation
4
+ #
5
+ # Input field styled for sidebar usage.
6
+ # Typically used for search or filter functionality.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::Input.new(placeholder: "Search...")
10
+ #
11
+ # @example With icon
12
+ # render UI::Group.new do
13
+ # div(class: "relative") do
14
+ # render UI::Icon.new(name: "search", class: "absolute left-2 top-2 size-4 text-muted-foreground")
15
+ # render UI::Input.new(placeholder: "Search...", class: "pl-8")
16
+ # end
17
+ # end
18
+ class UI::SidebarInput < Phlex::HTML
19
+ include UI::SidebarInputBehavior
20
20
 
21
- def initialize(type: "text", classes: "", **attributes)
22
- @type = type
23
- @classes = classes
24
- @attributes = attributes
25
- end
21
+ def initialize(type: "text", classes: "", **attributes)
22
+ @type = type
23
+ @classes = classes
24
+ @attributes = attributes
25
+ end
26
26
 
27
- def view_template
28
- all_attributes = sidebar_input_html_attributes.merge(type: @type)
27
+ def view_template
28
+ all_attributes = sidebar_input_html_attributes.merge(type: @type)
29
29
 
30
- if @attributes.key?(:class)
31
- merged_class = TailwindMerge::Merger.new.merge([
32
- all_attributes[:class],
33
- @attributes[:class]
34
- ].compact.join(" "))
35
- all_attributes = all_attributes.merge(class: merged_class)
36
- end
30
+ if @attributes.key?(:class)
31
+ merged_class = TailwindMerge::Merger.new.merge([
32
+ all_attributes[:class],
33
+ @attributes[:class]
34
+ ].compact.join(" "))
35
+ all_attributes = all_attributes.merge(class: merged_class)
36
+ end
37
37
 
38
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
38
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
39
39
 
40
- input(**all_attributes)
41
- end
42
- end
40
+ input(**all_attributes)
41
+ end
42
+ end
@@ -1,42 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SidebarInset - Phlex implementation
4
- #
5
- # Main content area that sits alongside the sidebar.
6
- # Should be used as a sibling to Sidebar within SidebarProvider.
7
- #
8
- # @example Basic usage
9
- # render UI::SidebarProvider.new do
10
- # render UI::Sidebar.new { "Sidebar" }
11
- # render UI::SidebarInset.new do
12
- # # Main content here
13
- # end
14
- # end
15
- class UI::SidebarInset < Phlex::HTML
16
- include UI::SidebarInsetBehavior
3
+ # SidebarInset - Phlex implementation
4
+ #
5
+ # Main content area that sits alongside the sidebar.
6
+ # Should be used as a sibling to Sidebar within SidebarProvider.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::SidebarProvider.new do
10
+ # render UI::Sidebar.new { "Sidebar" }
11
+ # render UI::SidebarInset.new do
12
+ # # Main content here
13
+ # end
14
+ # end
15
+ class UI::SidebarInset < Phlex::HTML
16
+ include UI::SidebarInsetBehavior
17
17
 
18
- # @param classes [String] Additional CSS classes
19
- # @param attributes [Hash] Additional HTML attributes
20
- def initialize(classes: "", **attributes)
21
- @classes = classes
22
- @attributes = attributes
23
- end
18
+ # @param classes [String] Additional CSS classes
19
+ # @param attributes [Hash] Additional HTML attributes
20
+ def initialize(classes: "", **attributes)
21
+ @classes = classes
22
+ @attributes = attributes
23
+ end
24
24
 
25
- def view_template(&block)
26
- all_attributes = sidebar_inset_html_attributes
25
+ def view_template(&block)
26
+ all_attributes = sidebar_inset_html_attributes
27
27
 
28
- # Merge classes with TailwindMerge
29
- if @attributes.key?(:class)
30
- merged_class = TailwindMerge::Merger.new.merge([
31
- all_attributes[:class],
32
- @attributes[:class]
33
- ].compact.join(" "))
34
- all_attributes = all_attributes.merge(class: merged_class)
35
- end
28
+ # Merge classes with TailwindMerge
29
+ if @attributes.key?(:class)
30
+ merged_class = TailwindMerge::Merger.new.merge([
31
+ all_attributes[:class],
32
+ @attributes[:class]
33
+ ].compact.join(" "))
34
+ all_attributes = all_attributes.merge(class: merged_class)
35
+ end
36
36
 
37
- # Deep merge other attributes (excluding class)
38
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
37
+ # Deep merge other attributes (excluding class)
38
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
39
39
 
40
- main(**all_attributes, &block)
41
- end
42
- end
40
+ main(**all_attributes, &block)
41
+ end
42
+ end
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Menu - Phlex implementation
4
- #
5
- # List container for sidebar menu items.
6
- #
7
- # @example Basic usage
8
- # render UI::Menu.new do
9
- # render UI::MenuItem.new do
10
- # render UI::MenuButton.new do
11
- # render UI::Icon.new(name: "home")
12
- # plain "Home"
13
- # end
14
- # end
15
- # end
16
- class UI::SidebarMenu < Phlex::HTML
17
- include UI::SidebarMenuBehavior
3
+ # Menu - Phlex implementation
4
+ #
5
+ # List container for sidebar menu items.
6
+ #
7
+ # @example Basic usage
8
+ # render UI::Menu.new do
9
+ # render UI::MenuItem.new do
10
+ # render UI::MenuButton.new do
11
+ # render UI::Icon.new(name: "home")
12
+ # plain "Home"
13
+ # end
14
+ # end
15
+ # end
16
+ class UI::SidebarMenu < Phlex::HTML
17
+ include UI::SidebarMenuBehavior
18
18
 
19
- def initialize(classes: "", **attributes)
20
- @classes = classes
21
- @attributes = attributes
22
- end
19
+ def initialize(classes: "", **attributes)
20
+ @classes = classes
21
+ @attributes = attributes
22
+ end
23
23
 
24
- def view_template(&block)
25
- all_attributes = sidebar_menu_html_attributes
24
+ def view_template(&block)
25
+ all_attributes = sidebar_menu_html_attributes
26
26
 
27
- if @attributes.key?(:class)
28
- merged_class = TailwindMerge::Merger.new.merge([
29
- all_attributes[:class],
30
- @attributes[:class]
31
- ].compact.join(" "))
32
- all_attributes = all_attributes.merge(class: merged_class)
33
- end
27
+ if @attributes.key?(:class)
28
+ merged_class = TailwindMerge::Merger.new.merge([
29
+ all_attributes[:class],
30
+ @attributes[:class]
31
+ ].compact.join(" "))
32
+ all_attributes = all_attributes.merge(class: merged_class)
33
+ end
34
34
 
35
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
35
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
36
36
 
37
- ul(**all_attributes, &block)
38
- end
39
- end
37
+ ul(**all_attributes, &block)
38
+ end
39
+ end
@@ -1,60 +1,60 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenuAction - Phlex implementation
4
- #
5
- # Action button within a sidebar menu item, appears on hover/focus.
6
- # Typically used for dropdown menus or quick actions.
7
- #
8
- # @example Basic usage
9
- # render UI::MenuAction.new do
10
- # render UI::Icon.new(name: "ellipsis")
11
- # end
12
- #
13
- # @example Show on hover
14
- # render UI::MenuAction.new(show_on_hover: true) do
15
- # render UI::Icon.new(name: "ellipsis")
16
- # end
17
- #
18
- # @example With dropdown using asChild
19
- # render UI::MenuAction.new(as_child: true) do |action_attrs|
20
- # render UI::DropdownMenu.new do
21
- # render UI::DropdownMenuTrigger.new(as_child: true) do |trigger_attrs|
22
- # button(**action_attrs.deep_merge(trigger_attrs)) do
23
- # render UI::Icon.new(name: "ellipsis")
24
- # end
25
- # end
26
- # render UI::DropdownMenuContent.new do
27
- # # ... menu items
28
- # end
29
- # end
30
- # end
31
- class UI::SidebarMenuAction < Phlex::HTML
32
- include UI::SidebarMenuActionBehavior
3
+ # MenuAction - Phlex implementation
4
+ #
5
+ # Action button within a sidebar menu item, appears on hover/focus.
6
+ # Typically used for dropdown menus or quick actions.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::MenuAction.new do
10
+ # render UI::Icon.new(name: "ellipsis")
11
+ # end
12
+ #
13
+ # @example Show on hover
14
+ # render UI::MenuAction.new(show_on_hover: true) do
15
+ # render UI::Icon.new(name: "ellipsis")
16
+ # end
17
+ #
18
+ # @example With dropdown using asChild
19
+ # render UI::MenuAction.new(as_child: true) do |action_attrs|
20
+ # render UI::DropdownMenu.new do
21
+ # render UI::DropdownMenuTrigger.new(as_child: true) do |trigger_attrs|
22
+ # button(**action_attrs.deep_merge(trigger_attrs)) do
23
+ # render UI::Icon.new(name: "ellipsis")
24
+ # end
25
+ # end
26
+ # render UI::DropdownMenuContent.new do
27
+ # # ... menu items
28
+ # end
29
+ # end
30
+ # end
31
+ class UI::SidebarMenuAction < Phlex::HTML
32
+ include UI::SidebarMenuActionBehavior
33
33
 
34
- def initialize(show_on_hover: false, as_child: false, classes: "", **attributes)
35
- @show_on_hover = show_on_hover
36
- @as_child = as_child
37
- @classes = classes
38
- @attributes = attributes
39
- end
34
+ def initialize(show_on_hover: false, as_child: false, classes: "", **attributes)
35
+ @show_on_hover = show_on_hover
36
+ @as_child = as_child
37
+ @classes = classes
38
+ @attributes = attributes
39
+ end
40
40
 
41
- def view_template(&block)
42
- if @as_child
43
- yield sidebar_menu_action_html_attributes.deep_merge(@attributes)
44
- else
45
- all_attributes = sidebar_menu_action_html_attributes
41
+ def view_template(&block)
42
+ if @as_child
43
+ yield sidebar_menu_action_html_attributes.deep_merge(@attributes)
44
+ else
45
+ all_attributes = sidebar_menu_action_html_attributes
46
46
 
47
- if @attributes.key?(:class)
48
- merged_class = TailwindMerge::Merger.new.merge([
49
- all_attributes[:class],
50
- @attributes[:class]
51
- ].compact.join(" "))
52
- all_attributes = all_attributes.merge(class: merged_class)
53
- end
47
+ if @attributes.key?(:class)
48
+ merged_class = TailwindMerge::Merger.new.merge([
49
+ all_attributes[:class],
50
+ @attributes[:class]
51
+ ].compact.join(" "))
52
+ all_attributes = all_attributes.merge(class: merged_class)
53
+ end
54
54
 
55
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
55
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
56
56
 
57
- button(**all_attributes, &block)
58
- end
59
- end
57
+ button(**all_attributes, &block)
60
58
  end
59
+ end
60
+ end
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # MenuBadge - Phlex implementation
4
- #
5
- # Badge that appears at the end of a menu button.
6
- # Used to display counts or status indicators.
7
- #
8
- # @example Basic usage
9
- # render UI::MenuItem.new do
10
- # render UI::MenuButton.new do
11
- # render UI::Icon.new(name: "inbox")
12
- # span { "Inbox" }
13
- # end
14
- # render UI::MenuBadge.new { "24" }
15
- # end
16
- class UI::SidebarMenuBadge < Phlex::HTML
17
- include UI::SidebarMenuBadgeBehavior
3
+ # MenuBadge - Phlex implementation
4
+ #
5
+ # Badge that appears at the end of a menu button.
6
+ # Used to display counts or status indicators.
7
+ #
8
+ # @example Basic usage
9
+ # render UI::MenuItem.new do
10
+ # render UI::MenuButton.new do
11
+ # render UI::Icon.new(name: "inbox")
12
+ # span { "Inbox" }
13
+ # end
14
+ # render UI::MenuBadge.new { "24" }
15
+ # end
16
+ class UI::SidebarMenuBadge < Phlex::HTML
17
+ include UI::SidebarMenuBadgeBehavior
18
18
 
19
- def initialize(classes: "", **attributes)
20
- @classes = classes
21
- @attributes = attributes
22
- end
19
+ def initialize(classes: "", **attributes)
20
+ @classes = classes
21
+ @attributes = attributes
22
+ end
23
23
 
24
- def view_template(&block)
25
- all_attributes = sidebar_menu_badge_html_attributes
24
+ def view_template(&block)
25
+ all_attributes = sidebar_menu_badge_html_attributes
26
26
 
27
- if @attributes.key?(:class)
28
- merged_class = TailwindMerge::Merger.new.merge([
29
- all_attributes[:class],
30
- @attributes[:class]
31
- ].compact.join(" "))
32
- all_attributes = all_attributes.merge(class: merged_class)
33
- end
27
+ if @attributes.key?(:class)
28
+ merged_class = TailwindMerge::Merger.new.merge([
29
+ all_attributes[:class],
30
+ @attributes[:class]
31
+ ].compact.join(" "))
32
+ all_attributes = all_attributes.merge(class: merged_class)
33
+ end
34
34
 
35
- all_attributes = all_attributes.deep_merge(@attributes.except(:class))
35
+ all_attributes = all_attributes.deep_merge(@attributes.except(:class))
36
36
 
37
- div(**all_attributes, &block)
38
- end
39
- end
37
+ div(**all_attributes, &block)
38
+ end
39
+ end