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,43 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ContentComponent - ViewComponent implementation
4
- #
5
- # The floating content panel.
6
- # Uses PopoverContentBehavior concern for shared styling logic.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::ContentComponent.new do %>
10
- # Popover content here
11
- # <% end %>
12
- #
13
- # @example With custom styling
14
- # <%= render UI::ContentComponent.new(classes: "w-80 p-6") do %>
15
- # Content
16
- # <% end %>
17
- class UI::PopoverContentComponent < ViewComponent::Base
18
- include UI::PopoverContentBehavior
3
+ # ContentComponent - ViewComponent implementation
4
+ #
5
+ # The floating content panel.
6
+ # Uses PopoverContentBehavior concern for shared styling logic.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::ContentComponent.new do %>
10
+ # Popover content here
11
+ # <% end %>
12
+ #
13
+ # @example With custom styling
14
+ # <%= render UI::ContentComponent.new(classes: "w-80 p-6") do %>
15
+ # Content
16
+ # <% end %>
17
+ class UI::PopoverContentComponent < ViewComponent::Base
18
+ include UI::PopoverContentBehavior
19
19
 
20
- # @param side [String] Side of the trigger to show the content ("top", "bottom", "left", "right")
21
- # @param align [String] Alignment relative to the trigger ("start", "center", "end")
22
- # @param classes [String] Additional CSS classes to merge
23
- # @param attributes [Hash] Additional HTML attributes
24
- def initialize(side: "bottom", align: "center", classes: "", **attributes)
25
- @side = side
26
- @align = align
27
- @classes = classes
28
- @attributes = attributes
29
- end
20
+ # @param side [String] Side of the trigger to show the content ("top", "bottom", "left", "right")
21
+ # @param align [String] Alignment relative to the trigger ("start", "center", "end")
22
+ # @param classes [String] Additional CSS classes to merge
23
+ # @param attributes [Hash] Additional HTML attributes
24
+ def initialize(side: "bottom", align: "center", classes: "", **attributes)
25
+ @side = side
26
+ @align = align
27
+ @classes = classes
28
+ @attributes = attributes
29
+ end
30
30
 
31
- def call
32
- content_attrs = popover_content_html_attributes
31
+ def call
32
+ content_attrs = popover_content_html_attributes
33
33
 
34
- # Merge data attributes properly
35
- if @attributes[:data]
36
- content_attrs[:data] = content_attrs[:data].merge(@attributes[:data])
37
- end
34
+ # Merge data attributes properly
35
+ if @attributes[:data]
36
+ content_attrs[:data] = content_attrs[:data].merge(@attributes[:data])
37
+ end
38
38
 
39
- content_tag :div, **content_attrs.deep_merge(@attributes.except(:data)) do
40
- content
41
- end
42
- end
39
+ content_tag :div, **content_attrs.deep_merge(@attributes.except(:data)) do
40
+ content
43
41
  end
42
+ end
43
+ end
@@ -1,72 +1,72 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # TriggerComponent - ViewComponent implementation
4
- #
5
- # Button or element that triggers the popover.
6
- # Uses PopoverTriggerBehavior concern for shared styling logic.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::TriggerComponent.new do %>
10
- # <button>Click me</button>
11
- # <% end %>
12
- #
13
- # @example As child (wraps content without adding wrapper)
14
- # <%= render UI::TriggerComponent.new(as_child: true) do %>
15
- # <button>Click me</button>
16
- # <% end %>
17
- class UI::PopoverTriggerComponent < ViewComponent::Base
18
- include UI::PopoverTriggerBehavior
3
+ # TriggerComponent - ViewComponent implementation
4
+ #
5
+ # Button or element that triggers the popover.
6
+ # Uses PopoverTriggerBehavior concern for shared styling logic.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::TriggerComponent.new do %>
10
+ # <button>Click me</button>
11
+ # <% end %>
12
+ #
13
+ # @example As child (wraps content without adding wrapper)
14
+ # <%= render UI::TriggerComponent.new(as_child: true) do %>
15
+ # <button>Click me</button>
16
+ # <% end %>
17
+ class UI::PopoverTriggerComponent < ViewComponent::Base
18
+ include UI::PopoverTriggerBehavior
19
19
 
20
- # @param as_child [Boolean] If true, adds data attributes to child without wrapper
21
- # @param classes [String] Additional CSS classes to merge
22
- # @param attributes [Hash] Additional HTML attributes
23
- def initialize(as_child: false, classes: "", **attributes)
24
- @as_child = as_child
25
- @classes = classes
26
- @attributes = attributes
27
- end
28
-
29
- def call
30
- trigger_attrs = popover_trigger_html_attributes.deep_merge(@attributes)
20
+ # @param as_child [Boolean] If true, adds data attributes to child without wrapper
21
+ # @param classes [String] Additional CSS classes to merge
22
+ # @param attributes [Hash] Additional HTML attributes
23
+ def initialize(as_child: false, classes: "", **attributes)
24
+ @as_child = as_child
25
+ @classes = classes
26
+ @attributes = attributes
27
+ end
31
28
 
32
- if @as_child
33
- # asChild mode: merge attributes into child element
34
- # Parse the rendered content and add trigger attributes to the first element
35
- rendered = content.to_s
29
+ def call
30
+ trigger_attrs = popover_trigger_html_attributes.deep_merge(@attributes)
36
31
 
37
- # Use Nokogiri to parse and modify the HTML
38
- doc = Nokogiri::HTML::DocumentFragment.parse(rendered)
39
- first_element = doc.children.find { |node| node.element? }
32
+ if @as_child
33
+ # asChild mode: merge attributes into child element
34
+ # Parse the rendered content and add trigger attributes to the first element
35
+ rendered = content.to_s
40
36
 
41
- if first_element
42
- # Merge data attributes
43
- trigger_attrs.fetch(:data, {}).each do |key, value|
44
- # Convert Rails naming convention to HTML: _ becomes -, __ becomes --
45
- html_key = key.to_s.gsub("__", "--").gsub("_", "-")
46
- first_element["data-#{html_key}"] = value
47
- end
37
+ # Use Nokogiri to parse and modify the HTML
38
+ doc = Nokogiri::HTML::DocumentFragment.parse(rendered)
39
+ first_element = doc.children.find { |node| node.element? }
48
40
 
49
- # Merge CSS classes with TailwindMerge
50
- if trigger_attrs[:class]
51
- existing_classes = first_element["class"] || ""
52
- merged_classes = TailwindMerge::Merger.new.merge([existing_classes, trigger_attrs[:class]].join(" "))
53
- first_element["class"] = merged_classes
54
- end
41
+ if first_element
42
+ # Merge data attributes
43
+ trigger_attrs.fetch(:data, {}).each do |key, value|
44
+ # Convert Rails naming convention to HTML: _ becomes -, __ becomes --
45
+ html_key = key.to_s.gsub("__", "--").tr("_", "-")
46
+ first_element["data-#{html_key}"] = value
47
+ end
55
48
 
56
- # Merge other attributes (except data and class)
57
- trigger_attrs.except(:data, :class).each do |key, value|
58
- first_element[key.to_s] = value
59
- end
49
+ # Merge CSS classes with TailwindMerge
50
+ if trigger_attrs[:class]
51
+ existing_classes = first_element["class"] || ""
52
+ merged_classes = TailwindMerge::Merger.new.merge([existing_classes, trigger_attrs[:class]].join(" "))
53
+ first_element["class"] = merged_classes
54
+ end
60
55
 
61
- doc.to_html.html_safe
62
- else
63
- content
64
- end
65
- else
66
- # Default mode: render as div
67
- content_tag :div, **trigger_attrs do
68
- content
69
- end
56
+ # Merge other attributes (except data and class)
57
+ trigger_attrs.except(:data, :class).each do |key, value|
58
+ first_element[key.to_s] = value
70
59
  end
60
+
61
+ doc.to_html.html_safe
62
+ else
63
+ content
64
+ end
65
+ else
66
+ # Default mode: render as div
67
+ content_tag :div, **trigger_attrs do
68
+ content
71
69
  end
72
70
  end
71
+ end
72
+ end
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ProgressComponent - ViewComponent implementation
4
- #
5
- # A progress indicator component for displaying task completion or loading status.
6
- # Uses ProgressBehavior for shared styling logic.
7
- #
8
- # @example Basic usage with value
9
- # <%= render UI::ProgressComponent.new(value: 60) %>
10
- #
11
- # @example Indeterminate progress (no value)
12
- # <%= render UI::ProgressComponent.new %>
13
- #
14
- # @example With custom classes
15
- # <%= render UI::ProgressComponent.new(value: 80, classes: "h-4") %>
16
- class UI::ProgressComponent < ViewComponent::Base
17
- include UI::ProgressBehavior
3
+ # ProgressComponent - ViewComponent implementation
4
+ #
5
+ # A progress indicator component for displaying task completion or loading status.
6
+ # Uses ProgressBehavior for shared styling logic.
7
+ #
8
+ # @example Basic usage with value
9
+ # <%= render UI::ProgressComponent.new(value: 60) %>
10
+ #
11
+ # @example Indeterminate progress (no value)
12
+ # <%= render UI::ProgressComponent.new %>
13
+ #
14
+ # @example With custom classes
15
+ # <%= render UI::ProgressComponent.new(value: 80, classes: "h-4") %>
16
+ class UI::ProgressComponent < ViewComponent::Base
17
+ include UI::ProgressBehavior
18
18
 
19
- # @param value [Numeric] Progress value between 0 and 100 (default: 0)
20
- # @param classes [String] Additional CSS classes to merge
21
- # @param attributes [Hash] Additional HTML attributes
22
- def initialize(value: 0, classes: "", **attributes)
23
- @value = value
24
- @classes = classes
25
- @attributes = attributes
26
- end
19
+ # @param value [Numeric] Progress value between 0 and 100 (default: 0)
20
+ # @param classes [String] Additional CSS classes to merge
21
+ # @param attributes [Hash] Additional HTML attributes
22
+ def initialize(value: 0, classes: "", **attributes)
23
+ @value = value
24
+ @classes = classes
25
+ @attributes = attributes
26
+ end
27
27
 
28
- def call
29
- attrs = progress_html_attributes
28
+ def call
29
+ attrs = progress_html_attributes
30
30
 
31
- content_tag :div, **attrs.merge(@attributes) do
32
- content_tag :div,
33
- nil,
34
- class: progress_indicator_classes,
35
- style: progress_indicator_style,
36
- data: { slot: "progress-indicator" }
37
- end
38
- end
31
+ content_tag :div, **attrs.merge(@attributes) do
32
+ content_tag :div,
33
+ nil,
34
+ class: progress_indicator_classes,
35
+ style: progress_indicator_style,
36
+ data: {slot: "progress-indicator"}
39
37
  end
38
+ end
39
+ end
@@ -1,56 +1,56 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class UI::RadioButtonComponent < ViewComponent::Base
4
- include UI::RadioButtonBehavior
3
+ class UI::RadioButtonComponent < ViewComponent::Base
4
+ include UI::RadioButtonBehavior
5
5
 
6
- def initialize(
7
- name: nil,
8
- id: nil,
9
- value: nil,
10
- checked: false,
11
- disabled: false,
12
- required: false,
13
- classes: "",
14
- **attributes
15
- )
16
- @name = name
17
- @id = id
18
- @value = value
19
- @checked = checked
20
- @disabled = disabled
21
- @required = required
22
- @classes = classes
23
- @attributes = attributes
24
- end
6
+ def initialize(
7
+ name: nil,
8
+ id: nil,
9
+ value: nil,
10
+ checked: false,
11
+ disabled: false,
12
+ required: false,
13
+ classes: "",
14
+ **attributes
15
+ )
16
+ @name = name
17
+ @id = id
18
+ @value = value
19
+ @checked = checked
20
+ @disabled = disabled
21
+ @required = required
22
+ @classes = classes
23
+ @attributes = attributes
24
+ end
25
25
 
26
- def call
27
- content_tag :div, class: "relative inline-flex items-center justify-center" do
28
- safe_join([
29
- content_tag(:input, nil, radio_button_html_attributes),
30
- indicator_icon
31
- ])
32
- end
33
- end
26
+ def call
27
+ content_tag :div, class: "relative inline-flex items-center justify-center" do
28
+ safe_join([
29
+ content_tag(:input, nil, radio_button_html_attributes),
30
+ indicator_icon
31
+ ])
32
+ end
33
+ end
34
34
 
35
- private
35
+ private
36
36
 
37
- attr_reader :classes, :attributes
37
+ attr_reader :classes, :attributes
38
38
 
39
- def indicator_icon
40
- content_tag(
41
- :svg,
42
- content_tag(:circle, nil, cx: "12", cy: "12", r: "10"),
43
- xmlns: "http://www.w3.org/2000/svg",
44
- width: "24",
45
- height: "24",
46
- viewBox: "0 0 24 24",
47
- fill: "none",
48
- stroke: "currentColor",
49
- "stroke-width": "2",
50
- "stroke-linecap": "round",
51
- "stroke-linejoin": "round",
52
- class: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 pointer-events-none opacity-0 peer-checked:opacity-100 transition-opacity",
53
- data: { slot: "radio-group-indicator" }
54
- )
55
- end
56
- end
39
+ def indicator_icon
40
+ content_tag(
41
+ :svg,
42
+ content_tag(:circle, nil, cx: "12", cy: "12", r: "10"),
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ width: "24",
45
+ height: "24",
46
+ viewBox: "0 0 24 24",
47
+ fill: "none",
48
+ stroke: "currentColor",
49
+ "stroke-width": "2",
50
+ "stroke-linecap": "round",
51
+ "stroke-linejoin": "round",
52
+ class: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 pointer-events-none opacity-0 peer-checked:opacity-100 transition-opacity",
53
+ data: {slot: "radio-group-indicator"}
54
+ )
55
+ end
56
+ end
@@ -1,35 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ResizableHandle component (ViewComponent)
4
- # Draggable handle between resizable panels
5
- #
6
- # @example Basic handle
7
- # <%= render UI::HandleComponent.new %>
8
- #
9
- # @example Handle with visible grip icon
10
- # <%= render UI::HandleComponent.new(with_handle: true) %>
11
- class UI::ResizableHandleComponent < ViewComponent::Base
12
- include UI::ResizableHandleBehavior
3
+ # ResizableHandle component (ViewComponent)
4
+ # Draggable handle between resizable panels
5
+ #
6
+ # @example Basic handle
7
+ # <%= render UI::HandleComponent.new %>
8
+ #
9
+ # @example Handle with visible grip icon
10
+ # <%= render UI::HandleComponent.new(with_handle: true) %>
11
+ class UI::ResizableHandleComponent < ViewComponent::Base
12
+ include UI::ResizableHandleBehavior
13
13
 
14
- # @param with_handle [Boolean] show visible grip icon
15
- # @param classes [String] additional CSS classes
16
- # @param attributes [Hash] additional HTML attributes
17
- def initialize(with_handle: false, classes: "", attributes: {})
18
- @with_handle = with_handle
19
- @classes = classes
20
- @attributes = attributes
21
- end
14
+ # @param with_handle [Boolean] show visible grip icon
15
+ # @param classes [String] additional CSS classes
16
+ # @param attributes [Hash] additional HTML attributes
17
+ def initialize(with_handle: false, classes: "", attributes: {})
18
+ @with_handle = with_handle
19
+ @classes = classes
20
+ @attributes = attributes
21
+ end
22
22
 
23
- def call
24
- attrs = handle_html_attributes
25
- attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
23
+ def call
24
+ attrs = handle_html_attributes
25
+ attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
26
26
 
27
- content_tag :div, **attrs.merge(@attributes.except(:data)) do
28
- if @with_handle
29
- content_tag :div, class: grip_container_classes do
30
- helpers.lucide_icon("grip-vertical", class: "h-2.5 w-2.5")
31
- end
32
- end
27
+ content_tag :div, **attrs.merge(@attributes.except(:data)) do
28
+ if @with_handle
29
+ content_tag :div, class: grip_container_classes do
30
+ helpers.lucide_icon("grip-vertical", class: "h-2.5 w-2.5")
33
31
  end
34
32
  end
35
33
  end
34
+ end
35
+ end
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ResizablePanel component (ViewComponent)
4
- # Individual resizable panel within a panel group
5
- #
6
- # @example Basic usage
7
- # <%= render UI::PanelComponent.new(default_size: 50) do %>
8
- # Panel content
9
- # <% end %>
10
- #
11
- # @example With constraints
12
- # <%= render UI::PanelComponent.new(default_size: 50, min_size: 20, max_size: 80) do %>
13
- # Constrained panel
14
- # <% end %>
15
- class UI::ResizablePanelComponent < ViewComponent::Base
16
- include UI::ResizablePanelBehavior
3
+ # ResizablePanel component (ViewComponent)
4
+ # Individual resizable panel within a panel group
5
+ #
6
+ # @example Basic usage
7
+ # <%= render UI::PanelComponent.new(default_size: 50) do %>
8
+ # Panel content
9
+ # <% end %>
10
+ #
11
+ # @example With constraints
12
+ # <%= render UI::PanelComponent.new(default_size: 50, min_size: 20, max_size: 80) do %>
13
+ # Constrained panel
14
+ # <% end %>
15
+ class UI::ResizablePanelComponent < ViewComponent::Base
16
+ include UI::ResizablePanelBehavior
17
17
 
18
- # @param default_size [Integer, Float] initial size as percentage (0-100)
19
- # @param min_size [Integer, Float, nil] minimum size as percentage
20
- # @param max_size [Integer, Float, nil] maximum size as percentage
21
- # @param classes [String] additional CSS classes
22
- # @param attributes [Hash] additional HTML attributes
23
- def initialize(default_size: nil, min_size: nil, max_size: nil, classes: "", attributes: {})
24
- @default_size = default_size
25
- @min_size = min_size
26
- @max_size = max_size
27
- @classes = classes
28
- @attributes = attributes
29
- end
18
+ # @param default_size [Integer, Float] initial size as percentage (0-100)
19
+ # @param min_size [Integer, Float, nil] minimum size as percentage
20
+ # @param max_size [Integer, Float, nil] maximum size as percentage
21
+ # @param classes [String] additional CSS classes
22
+ # @param attributes [Hash] additional HTML attributes
23
+ def initialize(default_size: nil, min_size: nil, max_size: nil, classes: "", attributes: {})
24
+ @default_size = default_size
25
+ @min_size = min_size
26
+ @max_size = max_size
27
+ @classes = classes
28
+ @attributes = attributes
29
+ end
30
30
 
31
- def call
32
- attrs = panel_html_attributes
33
- attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
31
+ def call
32
+ attrs = panel_html_attributes
33
+ attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
34
34
 
35
- content_tag :div, **attrs.merge(@attributes.except(:data)) do
36
- content
37
- end
38
- end
35
+ content_tag :div, **attrs.merge(@attributes.except(:data)) do
36
+ content
39
37
  end
38
+ end
39
+ end
@@ -1,45 +1,45 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ResizablePanelGroup container component (ViewComponent)
4
- # Wraps resizable panels with Stimulus controller
5
- #
6
- # @example Basic horizontal layout
7
- # <%= render UI::PanelGroupComponent.new(direction: "horizontal") do %>
8
- # <%= render UI::PanelComponent.new(default_size: 50) do %>
9
- # Left panel content
10
- # <% end %>
11
- # <%= render UI::HandleComponent.new %>
12
- # <%= render UI::PanelComponent.new(default_size: 50) do %>
13
- # Right panel content
14
- # <% end %>
15
- # <% end %>
16
- #
17
- # @example Vertical layout
18
- # <%= render UI::PanelGroupComponent.new(direction: "vertical") do %>
19
- # <%= render UI::PanelComponent.new(default_size: 30) { "Top" } %>
20
- # <%= render UI::HandleComponent.new %>
21
- # <%= render UI::PanelComponent.new(default_size: 70) { "Bottom" } %>
22
- # <% end %>
23
- class UI::ResizablePanelGroupComponent < ViewComponent::Base
24
- include UI::ResizablePanelGroupBehavior
3
+ # ResizablePanelGroup container component (ViewComponent)
4
+ # Wraps resizable panels with Stimulus controller
5
+ #
6
+ # @example Basic horizontal layout
7
+ # <%= render UI::PanelGroupComponent.new(direction: "horizontal") do %>
8
+ # <%= render UI::PanelComponent.new(default_size: 50) do %>
9
+ # Left panel content
10
+ # <% end %>
11
+ # <%= render UI::HandleComponent.new %>
12
+ # <%= render UI::PanelComponent.new(default_size: 50) do %>
13
+ # Right panel content
14
+ # <% end %>
15
+ # <% end %>
16
+ #
17
+ # @example Vertical layout
18
+ # <%= render UI::PanelGroupComponent.new(direction: "vertical") do %>
19
+ # <%= render UI::PanelComponent.new(default_size: 30) { "Top" } %>
20
+ # <%= render UI::HandleComponent.new %>
21
+ # <%= render UI::PanelComponent.new(default_size: 70) { "Bottom" } %>
22
+ # <% end %>
23
+ class UI::ResizablePanelGroupComponent < ViewComponent::Base
24
+ include UI::ResizablePanelGroupBehavior
25
25
 
26
- # @param direction [String] "horizontal" or "vertical" layout
27
- # @param keyboard_resize_by [Integer] percentage to resize by on keyboard input
28
- # @param classes [String] additional CSS classes
29
- # @param attributes [Hash] additional HTML attributes
30
- def initialize(direction: "horizontal", keyboard_resize_by: 10, classes: "", attributes: {})
31
- @direction = direction
32
- @keyboard_resize_by = keyboard_resize_by
33
- @classes = classes
34
- @attributes = attributes
35
- end
26
+ # @param direction [String] "horizontal" or "vertical" layout
27
+ # @param keyboard_resize_by [Integer] percentage to resize by on keyboard input
28
+ # @param classes [String] additional CSS classes
29
+ # @param attributes [Hash] additional HTML attributes
30
+ def initialize(direction: "horizontal", keyboard_resize_by: 10, classes: "", attributes: {})
31
+ @direction = direction
32
+ @keyboard_resize_by = keyboard_resize_by
33
+ @classes = classes
34
+ @attributes = attributes
35
+ end
36
36
 
37
- def call
38
- attrs = panel_group_html_attributes
39
- attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
37
+ def call
38
+ attrs = panel_group_html_attributes
39
+ attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
40
40
 
41
- content_tag :div, **attrs.merge(@attributes.except(:data)) do
42
- content
43
- end
44
- end
41
+ content_tag :div, **attrs.merge(@attributes.except(:data)) do
42
+ content
45
43
  end
44
+ end
45
+ end