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,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SubContentComponent - ViewComponent implementation
4
- class UI::DropdownMenuSubContentComponent < ViewComponent::Base
5
- include UI::DropdownMenuSubContentBehavior
3
+ # SubContentComponent - ViewComponent implementation
4
+ class UI::DropdownMenuSubContentComponent < ViewComponent::Base
5
+ include UI::DropdownMenuSubContentBehavior
6
6
 
7
- def initialize(side: "right", align: "start", classes: "", **attributes)
8
- @side = side
9
- @align = align
10
- @classes = classes
11
- @attributes = attributes
12
- end
7
+ def initialize(side: "right", align: "start", classes: "", **attributes)
8
+ @side = side
9
+ @align = align
10
+ @classes = classes
11
+ @attributes = attributes
12
+ end
13
13
 
14
- def call
15
- content_tag :div, **dropdown_menu_sub_content_html_attributes.merge(@attributes.except(:data)) do
16
- content
17
- end
18
- end
14
+ def call
15
+ content_tag :div, **dropdown_menu_sub_content_html_attributes.merge(@attributes.except(:data)) do
16
+ content
19
17
  end
18
+ end
19
+ end
@@ -1,29 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SubTriggerComponent - ViewComponent implementation
4
- class UI::DropdownMenuSubTriggerComponent < ViewComponent::Base
5
- include UI::DropdownMenuSubTriggerBehavior
3
+ # SubTriggerComponent - ViewComponent implementation
4
+ class UI::DropdownMenuSubTriggerComponent < ViewComponent::Base
5
+ include UI::DropdownMenuSubTriggerBehavior
6
6
 
7
- def initialize(inset: false, classes: "", **attributes)
8
- @inset = inset
9
- @classes = classes
10
- @attributes = attributes
11
- end
7
+ def initialize(inset: false, classes: "", **attributes)
8
+ @inset = inset
9
+ @classes = classes
10
+ @attributes = attributes
11
+ end
12
12
 
13
- def call
14
- content_tag :div, **dropdown_menu_sub_trigger_html_attributes.merge(@attributes.except(:data)) do
15
- safe_join([
16
- content,
17
- chevron_icon_html
18
- ])
19
- end
20
- end
13
+ def call
14
+ content_tag :div, **dropdown_menu_sub_trigger_html_attributes.merge(@attributes.except(:data)) do
15
+ safe_join([
16
+ content,
17
+ chevron_icon_html
18
+ ])
19
+ end
20
+ end
21
21
 
22
- private
22
+ private
23
23
 
24
- def chevron_icon_html
25
- content_tag :svg, xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "ml-auto lucide lucide-chevron-right h-4 w-4" do
26
- tag.path(d: "m9 18 6-6-6-6")
27
- end
28
- end
24
+ def chevron_icon_html
25
+ content_tag :svg, xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "ml-auto lucide lucide-chevron-right h-4 w-4" do
26
+ tag.path(d: "m9 18 6-6-6-6")
29
27
  end
28
+ end
29
+ end
@@ -1,52 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # TriggerComponent - ViewComponent implementation
4
- class UI::DropdownMenuTriggerComponent < ViewComponent::Base
5
- include UI::DropdownMenuTriggerBehavior
6
-
7
- def initialize(as_child: false, classes: "", **attributes)
8
- @as_child = as_child
9
- @classes = classes
10
- @attributes = attributes
11
- end
12
-
13
- def call
14
- trigger_attrs = dropdown_menu_trigger_html_attributes.deep_merge(@attributes)
15
-
16
- if @as_child
17
- # asChild mode: merge attributes into child element
18
- rendered = content.to_s
19
- doc = Nokogiri::HTML::DocumentFragment.parse(rendered)
20
- first_element = doc.children.find { |node| node.element? }
21
-
22
- if first_element
23
- # Merge data attributes (convert Rails naming to HTML)
24
- trigger_attrs.fetch(:data, {}).each do |key, value|
25
- html_key = key.to_s.gsub("__", "--").gsub("_", "-")
26
- first_element["data-#{html_key}"] = value
27
- end
28
-
29
- # Merge CSS classes with TailwindMerge
30
- if trigger_attrs[:class]
31
- existing_classes = first_element["class"] || ""
32
- merged_classes = TailwindMerge::Merger.new.merge([existing_classes, trigger_attrs[:class]].join(" "))
33
- first_element["class"] = merged_classes
34
- end
35
-
36
- # Merge other attributes (except data and class)
37
- trigger_attrs.except(:data, :class).each do |key, value|
38
- first_element[key.to_s] = value
39
- end
40
-
41
- doc.to_html.html_safe
42
- else
43
- content
44
- end
45
- else
46
- # Default mode: render as div
47
- content_tag :div, **trigger_attrs do
48
- content
49
- end
50
- end
3
+ # TriggerComponent - ViewComponent implementation
4
+ class UI::DropdownMenuTriggerComponent < ViewComponent::Base
5
+ include UI::DropdownMenuTriggerBehavior
6
+
7
+ renders_one :trigger_content
8
+
9
+ def initialize(as_child: false, classes: "", **attributes)
10
+ @as_child = as_child
11
+ @classes = classes
12
+ @attributes = attributes
13
+ end
14
+
15
+ # Returns trigger attributes for as_child mode
16
+ def trigger_attrs
17
+ attrs = dropdown_menu_trigger_html_attributes.deep_merge(@attributes)
18
+ # When as_child is true, only pass functional attributes (data, aria, tabindex, role)
19
+ # The child component handles its own styling (following shadcn pattern)
20
+ attrs.except(:class)
21
+ end
22
+
23
+ def call
24
+ all_attrs = dropdown_menu_trigger_html_attributes.deep_merge(@attributes)
25
+
26
+ if @as_child
27
+ # asChild mode: yield attributes to block, child handles rendering
28
+ content
29
+ else
30
+ # Default mode: render as div
31
+ content_tag :div, **all_attrs do
32
+ content
51
33
  end
52
34
  end
35
+ end
36
+ end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyComponent - ViewComponent implementation
4
- class UI::EmptyComponent < ViewComponent::Base
5
- include UI::EmptyBehavior
3
+ # EmptyComponent - ViewComponent implementation
4
+ class UI::EmptyComponent < ViewComponent::Base
5
+ include UI::EmptyBehavior
6
6
 
7
- def initialize(classes: "", **attributes)
8
- @classes = classes
9
- @attributes = attributes
10
- end
7
+ def initialize(classes: "", **attributes)
8
+ @classes = classes
9
+ @attributes = attributes
10
+ end
11
11
 
12
- def call
13
- tag.div(**empty_html_attributes.merge(@attributes)) do
14
- content
15
- end
16
- end
12
+ def call
13
+ tag.div(**empty_html_attributes.merge(@attributes)) do
14
+ content
17
15
  end
16
+ end
17
+ end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyContentComponent - ViewComponent implementation
4
- class UI::EmptyContentComponent < ViewComponent::Base
5
- include UI::EmptyContentBehavior
3
+ # EmptyContentComponent - ViewComponent implementation
4
+ class UI::EmptyContentComponent < ViewComponent::Base
5
+ include UI::EmptyContentBehavior
6
6
 
7
- def initialize(classes: "", **attributes)
8
- @classes = classes
9
- @attributes = attributes
10
- end
7
+ def initialize(classes: "", **attributes)
8
+ @classes = classes
9
+ @attributes = attributes
10
+ end
11
11
 
12
- def call
13
- tag.div(**empty_content_html_attributes.merge(@attributes)) do
14
- content
15
- end
16
- end
12
+ def call
13
+ tag.div(**empty_content_html_attributes.merge(@attributes)) do
14
+ content
17
15
  end
16
+ end
17
+ end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyDescriptionComponent - ViewComponent implementation
4
- class UI::EmptyDescriptionComponent < ViewComponent::Base
5
- include UI::EmptyDescriptionBehavior
3
+ # EmptyDescriptionComponent - ViewComponent implementation
4
+ class UI::EmptyDescriptionComponent < ViewComponent::Base
5
+ include UI::EmptyDescriptionBehavior
6
6
 
7
- def initialize(classes: "", **attributes)
8
- @classes = classes
9
- @attributes = attributes
10
- end
7
+ def initialize(classes: "", **attributes)
8
+ @classes = classes
9
+ @attributes = attributes
10
+ end
11
11
 
12
- def call
13
- tag.p(**empty_description_html_attributes.merge(@attributes)) do
14
- content
15
- end
16
- end
12
+ def call
13
+ tag.p(**empty_description_html_attributes.merge(@attributes)) do
14
+ content
17
15
  end
16
+ end
17
+ end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyHeaderComponent - ViewComponent implementation
4
- class UI::EmptyHeaderComponent < ViewComponent::Base
5
- include UI::EmptyHeaderBehavior
3
+ # EmptyHeaderComponent - ViewComponent implementation
4
+ class UI::EmptyHeaderComponent < ViewComponent::Base
5
+ include UI::EmptyHeaderBehavior
6
6
 
7
- def initialize(classes: "", **attributes)
8
- @classes = classes
9
- @attributes = attributes
10
- end
7
+ def initialize(classes: "", **attributes)
8
+ @classes = classes
9
+ @attributes = attributes
10
+ end
11
11
 
12
- def call
13
- tag.div(**empty_header_html_attributes.merge(@attributes)) do
14
- content
15
- end
16
- end
12
+ def call
13
+ tag.div(**empty_header_html_attributes.merge(@attributes)) do
14
+ content
17
15
  end
16
+ end
17
+ end
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyMediaComponent - ViewComponent implementation
4
- class UI::EmptyMediaComponent < ViewComponent::Base
5
- include UI::EmptyMediaBehavior
3
+ # EmptyMediaComponent - ViewComponent implementation
4
+ class UI::EmptyMediaComponent < ViewComponent::Base
5
+ include UI::EmptyMediaBehavior
6
6
 
7
- def initialize(variant: "default", classes: "", **attributes)
8
- @variant = variant
9
- @classes = classes
10
- @attributes = attributes
11
- end
7
+ def initialize(variant: "default", classes: "", **attributes)
8
+ @variant = variant
9
+ @classes = classes
10
+ @attributes = attributes
11
+ end
12
12
 
13
- def call
14
- tag.div(**empty_media_html_attributes.merge(@attributes)) do
15
- content
16
- end
17
- end
13
+ def call
14
+ tag.div(**empty_media_html_attributes.merge(@attributes)) do
15
+ content
18
16
  end
17
+ end
18
+ end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # EmptyTitleComponent - ViewComponent implementation
4
- class UI::EmptyTitleComponent < ViewComponent::Base
5
- include UI::EmptyTitleBehavior
3
+ # EmptyTitleComponent - ViewComponent implementation
4
+ class UI::EmptyTitleComponent < ViewComponent::Base
5
+ include UI::EmptyTitleBehavior
6
6
 
7
- def initialize(classes: "", **attributes)
8
- @classes = classes
9
- @attributes = attributes
10
- end
7
+ def initialize(classes: "", **attributes)
8
+ @classes = classes
9
+ @attributes = attributes
10
+ end
11
11
 
12
- def call
13
- tag.h3(**empty_title_html_attributes.merge(@attributes)) do
14
- content
15
- end
16
- end
12
+ def call
13
+ tag.h3(**empty_title_html_attributes.merge(@attributes)) do
14
+ content
17
15
  end
16
+ end
17
+ end
@@ -1,41 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # FieldComponent - ViewComponent implementation
4
- #
5
- # Core wrapper for a single form field with support for different orientations.
6
- # Uses FieldBehavior concern for shared styling logic.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::FieldComponent.new do %>
10
- # Field content here
11
- # <% end %>
12
- #
13
- # @example With orientation
14
- # <%= render UI::FieldComponent.new(orientation: "horizontal") do %>
15
- # Field content
16
- # <% end %>
17
- #
18
- # @example With validation state
19
- # <%= render UI::FieldComponent.new(data_invalid: true) do %>
20
- # Field content
21
- # <% end %>
22
- class UI::FieldComponent < ViewComponent::Base
23
- include UI::FieldBehavior
3
+ # FieldComponent - ViewComponent implementation
4
+ #
5
+ # Core wrapper for a single form field with support for different orientations.
6
+ # Uses FieldBehavior concern for shared styling logic.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::FieldComponent.new do %>
10
+ # Field content here
11
+ # <% end %>
12
+ #
13
+ # @example With orientation
14
+ # <%= render UI::FieldComponent.new(orientation: "horizontal") do %>
15
+ # Field content
16
+ # <% end %>
17
+ #
18
+ # @example With validation state
19
+ # <%= render UI::FieldComponent.new(data_invalid: true) do %>
20
+ # Field content
21
+ # <% end %>
22
+ class UI::FieldComponent < ViewComponent::Base
23
+ include UI::FieldBehavior
24
24
 
25
- # @param orientation [String] Layout orientation: "vertical", "horizontal", or "responsive"
26
- # @param data_invalid [Boolean] Whether field is in invalid state
27
- # @param classes [String] Additional CSS classes to merge
28
- # @param attributes [Hash] Additional HTML attributes
29
- def initialize(orientation: "vertical", data_invalid: nil, classes: "", **attributes)
30
- @orientation = orientation
31
- @data_invalid = data_invalid
32
- @classes = classes
33
- @attributes = attributes
34
- end
25
+ # @param orientation [String] Layout orientation: "vertical", "horizontal", or "responsive"
26
+ # @param data_invalid [Boolean] Whether field is in invalid state
27
+ # @param classes [String] Additional CSS classes to merge
28
+ # @param attributes [Hash] Additional HTML attributes
29
+ def initialize(orientation: "vertical", data_invalid: nil, classes: "", **attributes)
30
+ @orientation = orientation
31
+ @data_invalid = data_invalid
32
+ @classes = classes
33
+ @attributes = attributes
34
+ end
35
35
 
36
- def call
37
- content_tag :div, **field_html_attributes do
38
- content
39
- end
40
- end
36
+ def call
37
+ content_tag :div, **field_html_attributes do
38
+ content
41
39
  end
40
+ end
41
+ end
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # FieldContentComponent - ViewComponent implementation
4
- #
5
- # Flex column that groups control and descriptions.
6
- # Uses FieldContentBehavior concern for shared styling logic.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::FieldContentComponent.new do %>
10
- # Content here
11
- # <% end %>
12
- class UI::FieldContentComponent < ViewComponent::Base
13
- include UI::FieldContentBehavior
3
+ # FieldContentComponent - ViewComponent implementation
4
+ #
5
+ # Flex column that groups control and descriptions.
6
+ # Uses FieldContentBehavior concern for shared styling logic.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::FieldContentComponent.new do %>
10
+ # Content here
11
+ # <% end %>
12
+ class UI::FieldContentComponent < ViewComponent::Base
13
+ include UI::FieldContentBehavior
14
14
 
15
- # @param classes [String] Additional CSS classes to merge
16
- # @param attributes [Hash] Additional HTML attributes
17
- def initialize(classes: "", **attributes)
18
- @classes = classes
19
- @attributes = attributes
20
- end
15
+ # @param classes [String] Additional CSS classes to merge
16
+ # @param attributes [Hash] Additional HTML attributes
17
+ def initialize(classes: "", **attributes)
18
+ @classes = classes
19
+ @attributes = attributes
20
+ end
21
21
 
22
- def call
23
- content_tag :div, **field_content_html_attributes do
24
- content
25
- end
26
- end
22
+ def call
23
+ content_tag :div, **field_content_html_attributes do
24
+ content
27
25
  end
26
+ end
27
+ end
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # FieldDescriptionComponent - ViewComponent implementation
4
- #
5
- # Helper text for form fields.
6
- # Uses FieldDescriptionBehavior concern for shared styling logic.
7
- #
8
- # @example With block
9
- # <%= render UI::FieldDescriptionComponent.new do %>
10
- # Helper text
11
- # <% end %>
12
- class UI::FieldDescriptionComponent < ViewComponent::Base
13
- include UI::FieldDescriptionBehavior
3
+ # FieldDescriptionComponent - ViewComponent implementation
4
+ #
5
+ # Helper text for form fields.
6
+ # Uses FieldDescriptionBehavior concern for shared styling logic.
7
+ #
8
+ # @example With block
9
+ # <%= render UI::FieldDescriptionComponent.new do %>
10
+ # Helper text
11
+ # <% end %>
12
+ class UI::FieldDescriptionComponent < ViewComponent::Base
13
+ include UI::FieldDescriptionBehavior
14
14
 
15
- # @param classes [String] Additional CSS classes to merge
16
- # @param attributes [Hash] Additional HTML attributes
17
- def initialize(classes: "", **attributes)
18
- @classes = classes
19
- @attributes = attributes
20
- end
15
+ # @param classes [String] Additional CSS classes to merge
16
+ # @param attributes [Hash] Additional HTML attributes
17
+ def initialize(classes: "", **attributes)
18
+ @classes = classes
19
+ @attributes = attributes
20
+ end
21
21
 
22
- def call
23
- content_tag :p, **field_description_html_attributes do
24
- content
25
- end
26
- end
22
+ def call
23
+ content_tag :p, **field_description_html_attributes do
24
+ content
27
25
  end
26
+ end
27
+ end
@@ -1,63 +1,63 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # FieldErrorComponent - ViewComponent implementation
4
- #
5
- # Error message display for form fields with accessibility support.
6
- # Uses FieldErrorBehavior concern for shared styling logic.
7
- #
8
- # @example With single error
9
- # <%= render UI::FieldErrorComponent.new(errors: ["Email is required"]) %>
10
- #
11
- # @example With multiple errors
12
- # <%= render UI::FieldErrorComponent.new(errors: ["Email is required", "Email is invalid"]) %>
13
- #
14
- # @example With block
15
- # <%= render UI::FieldErrorComponent.new do %>
16
- # Error message
17
- # <% end %>
18
- class UI::FieldErrorComponent < ViewComponent::Base
19
- include UI::FieldErrorBehavior
20
-
21
- # @param errors [Array] Array of error messages
22
- # @param classes [String] Additional CSS classes to merge
23
- # @param attributes [Hash] Additional HTML attributes
24
- def initialize(errors: nil, classes: "", **attributes)
25
- @errors = errors
26
- @classes = classes
27
- @attributes = attributes
28
- end
3
+ # FieldErrorComponent - ViewComponent implementation
4
+ #
5
+ # Error message display for form fields with accessibility support.
6
+ # Uses FieldErrorBehavior concern for shared styling logic.
7
+ #
8
+ # @example With single error
9
+ # <%= render UI::FieldErrorComponent.new(errors: ["Email is required"]) %>
10
+ #
11
+ # @example With multiple errors
12
+ # <%= render UI::FieldErrorComponent.new(errors: ["Email is required", "Email is invalid"]) %>
13
+ #
14
+ # @example With block
15
+ # <%= render UI::FieldErrorComponent.new do %>
16
+ # Error message
17
+ # <% end %>
18
+ class UI::FieldErrorComponent < ViewComponent::Base
19
+ include UI::FieldErrorBehavior
20
+
21
+ # @param errors [Array] Array of error messages
22
+ # @param classes [String] Additional CSS classes to merge
23
+ # @param attributes [Hash] Additional HTML attributes
24
+ def initialize(errors: nil, classes: "", **attributes)
25
+ @errors = errors
26
+ @classes = classes
27
+ @attributes = attributes
28
+ end
29
+
30
+ def call
31
+ return unless has_errors? || content?
32
+
33
+ if has_errors?
34
+ render_errors
35
+ else
36
+ render_content
37
+ end
38
+ end
29
39
 
30
- def call
31
- return unless has_errors? || content?
40
+ private
32
41
 
33
- if has_errors?
34
- render_errors
35
- else
36
- render_content
37
- end
38
- end
42
+ attr_reader :classes, :attributes
39
43
 
40
- private
41
-
42
- attr_reader :classes, :attributes
43
-
44
- def render_errors
45
- if single_error?
46
- content_tag :p, **field_error_html_attributes do
47
- error_message(@errors.first)
48
- end
49
- else
50
- content_tag :ul, **field_error_html_attributes do
51
- safe_join(@errors.map { |error|
52
- content_tag :li, error_message(error)
53
- })
54
- end
55
- end
44
+ def render_errors
45
+ if single_error?
46
+ content_tag :p, **field_error_html_attributes do
47
+ error_message(@errors.first)
56
48
  end
57
-
58
- def render_content
59
- content_tag :p, **field_error_html_attributes do
60
- content
61
- end
49
+ else
50
+ content_tag :ul, **field_error_html_attributes do
51
+ safe_join(@errors.map { |error|
52
+ content_tag :li, error_message(error)
53
+ })
62
54
  end
63
55
  end
56
+ end
57
+
58
+ def render_content
59
+ content_tag :p, **field_error_html_attributes do
60
+ content
61
+ end
62
+ end
63
+ end