fernandes-ui 0.1.1 → 0.1.4

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