fernandes-ui 0.1.1 → 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 (780) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/app/assets/javascripts/ui.esm.js +12 -3
  4. data/app/assets/javascripts/ui.js +12 -3
  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 +52 -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_button_behavior.rb +9 -2
  128. data/app/behaviors/ui/input_group_input_behavior.rb +1 -1
  129. data/app/behaviors/ui/input_group_textarea_behavior.rb +9 -3
  130. data/app/behaviors/ui/input_otp_behavior.rb +50 -36
  131. data/app/behaviors/ui/input_otp_group_behavior.rb +25 -25
  132. data/app/behaviors/ui/input_otp_separator_behavior.rb +26 -26
  133. data/app/behaviors/ui/input_otp_slot_behavior.rb +49 -41
  134. data/app/behaviors/ui/item_actions_behavior.rb +32 -26
  135. data/app/behaviors/ui/item_behavior.rb +100 -87
  136. data/app/behaviors/ui/item_content_behavior.rb +27 -26
  137. data/app/behaviors/ui/item_description_behavior.rb +27 -26
  138. data/app/behaviors/ui/item_footer_behavior.rb +27 -26
  139. data/app/behaviors/ui/item_group_behavior.rb +27 -26
  140. data/app/behaviors/ui/item_header_behavior.rb +27 -26
  141. data/app/behaviors/ui/item_media_behavior.rb +47 -41
  142. data/app/behaviors/ui/item_separator_behavior.rb +27 -26
  143. data/app/behaviors/ui/item_title_behavior.rb +27 -26
  144. data/app/behaviors/ui/kbd_behavior.rb +28 -22
  145. data/app/behaviors/ui/kbd_group_behavior.rb +18 -20
  146. data/app/behaviors/ui/label_behavior.rb +35 -26
  147. data/app/behaviors/ui/large_behavior.rb +25 -17
  148. data/app/behaviors/ui/lead_behavior.rb +25 -17
  149. data/app/behaviors/ui/list_behavior.rb +25 -17
  150. data/app/behaviors/ui/menubar_behavior.rb +73 -35
  151. data/app/behaviors/ui/menubar_checkbox_item_behavior.rb +54 -54
  152. data/app/behaviors/ui/menubar_content_behavior.rb +46 -46
  153. data/app/behaviors/ui/menubar_item_behavior.rb +63 -63
  154. data/app/behaviors/ui/menubar_label_behavior.rb +33 -33
  155. data/app/behaviors/ui/menubar_menu_behavior.rb +37 -33
  156. data/app/behaviors/ui/menubar_radio_group_behavior.rb +28 -28
  157. data/app/behaviors/ui/menubar_radio_item_behavior.rb +59 -59
  158. data/app/behaviors/ui/menubar_separator_behavior.rb +26 -26
  159. data/app/behaviors/ui/menubar_shortcut_behavior.rb +25 -25
  160. data/app/behaviors/ui/menubar_sub_behavior.rb +26 -26
  161. data/app/behaviors/ui/menubar_sub_content_behavior.rb +44 -44
  162. data/app/behaviors/ui/menubar_sub_trigger_behavior.rb +55 -55
  163. data/app/behaviors/ui/menubar_trigger_behavior.rb +40 -42
  164. data/app/behaviors/ui/muted_behavior.rb +25 -17
  165. data/app/behaviors/ui/navigation_menu_behavior.rb +65 -36
  166. data/app/behaviors/ui/navigation_menu_content_behavior.rb +58 -59
  167. data/app/behaviors/ui/navigation_menu_item_behavior.rb +31 -32
  168. data/app/behaviors/ui/navigation_menu_link_behavior.rb +57 -57
  169. data/app/behaviors/ui/navigation_menu_list_behavior.rb +28 -29
  170. data/app/behaviors/ui/navigation_menu_trigger_behavior.rb +50 -51
  171. data/app/behaviors/ui/navigation_menu_viewport_behavior.rb +54 -55
  172. data/app/behaviors/ui/p_behavior.rb +25 -17
  173. data/app/behaviors/ui/pagination_behavior.rb +36 -22
  174. data/app/behaviors/ui/pagination_content_behavior.rb +20 -20
  175. data/app/behaviors/ui/pagination_ellipsis_behavior.rb +21 -21
  176. data/app/behaviors/ui/pagination_item_behavior.rb +11 -11
  177. data/app/behaviors/ui/pagination_link_behavior.rb +51 -51
  178. data/app/behaviors/ui/pagination_next_behavior.rb +16 -16
  179. data/app/behaviors/ui/pagination_previous_behavior.rb +16 -16
  180. data/app/behaviors/ui/popover_behavior.rb +22 -3
  181. data/app/behaviors/ui/popover_content_behavior.rb +1 -1
  182. data/app/behaviors/ui/popover_trigger_behavior.rb +1 -1
  183. data/app/behaviors/ui/progress_behavior.rb +59 -40
  184. data/app/behaviors/ui/radio_button_behavior.rb +51 -36
  185. data/app/behaviors/ui/resizable_handle_behavior.rb +73 -73
  186. data/app/behaviors/ui/resizable_panel_behavior.rb +52 -45
  187. data/app/behaviors/ui/resizable_panel_group_behavior.rb +36 -36
  188. data/app/behaviors/ui/responsive_dialog_behavior.rb +43 -33
  189. data/app/behaviors/ui/scroll_area_behavior.rb +17 -2
  190. data/app/behaviors/ui/scroll_area_corner_behavior.rb +8 -2
  191. data/app/behaviors/ui/scroll_area_scrollbar_behavior.rb +8 -2
  192. data/app/behaviors/ui/scroll_area_thumb_behavior.rb +8 -2
  193. data/app/behaviors/ui/select_behavior.rb +111 -61
  194. data/app/behaviors/ui/select_content_behavior.rb +31 -31
  195. data/app/behaviors/ui/select_group_behavior.rb +24 -24
  196. data/app/behaviors/ui/select_item_behavior.rb +34 -34
  197. data/app/behaviors/ui/select_label_behavior.rb +23 -23
  198. data/app/behaviors/ui/select_scroll_down_button_behavior.rb +38 -38
  199. data/app/behaviors/ui/select_scroll_up_button_behavior.rb +38 -38
  200. data/app/behaviors/ui/select_trigger_behavior.rb +29 -29
  201. data/app/behaviors/ui/separator_behavior.rb +53 -49
  202. data/app/behaviors/ui/shared_as_child_behavior.rb +63 -63
  203. data/app/behaviors/ui/sheet_behavior.rb +63 -42
  204. data/app/behaviors/ui/sheet_content_behavior.rb +80 -80
  205. data/app/behaviors/ui/sheet_footer_behavior.rb +21 -21
  206. data/app/behaviors/ui/sheet_header_behavior.rb +21 -21
  207. data/app/behaviors/ui/sheet_overlay_behavior.rb +64 -64
  208. data/app/behaviors/ui/sidebar_behavior.rb +91 -76
  209. data/app/behaviors/ui/sidebar_content_behavior.rb +28 -28
  210. data/app/behaviors/ui/sidebar_footer_behavior.rb +27 -27
  211. data/app/behaviors/ui/sidebar_group_action_behavior.rb +32 -32
  212. data/app/behaviors/ui/sidebar_group_behavior.rb +27 -27
  213. data/app/behaviors/ui/sidebar_group_content_behavior.rb +27 -27
  214. data/app/behaviors/ui/sidebar_group_label_behavior.rb +31 -31
  215. data/app/behaviors/ui/sidebar_header_behavior.rb +27 -27
  216. data/app/behaviors/ui/sidebar_input_behavior.rb +28 -28
  217. data/app/behaviors/ui/sidebar_inset_behavior.rb +37 -31
  218. data/app/behaviors/ui/sidebar_menu_action_behavior.rb +45 -45
  219. data/app/behaviors/ui/sidebar_menu_badge_behavior.rb +38 -31
  220. data/app/behaviors/ui/sidebar_menu_behavior.rb +38 -27
  221. data/app/behaviors/ui/sidebar_menu_button_behavior.rb +67 -58
  222. data/app/behaviors/ui/sidebar_menu_item_behavior.rb +27 -27
  223. data/app/behaviors/ui/sidebar_menu_skeleton_behavior.rb +34 -27
  224. data/app/behaviors/ui/sidebar_menu_sub_behavior.rb +28 -28
  225. data/app/behaviors/ui/sidebar_menu_sub_button_behavior.rb +64 -55
  226. data/app/behaviors/ui/sidebar_menu_sub_item_behavior.rb +27 -27
  227. data/app/behaviors/ui/sidebar_provider_behavior.rb +53 -47
  228. data/app/behaviors/ui/sidebar_rail_behavior.rb +46 -39
  229. data/app/behaviors/ui/sidebar_separator_behavior.rb +28 -28
  230. data/app/behaviors/ui/sidebar_trigger_behavior.rb +32 -32
  231. data/app/behaviors/ui/slider_behavior.rb +40 -40
  232. data/app/behaviors/ui/slider_range_behavior.rb +15 -15
  233. data/app/behaviors/ui/slider_thumb_behavior.rb +21 -21
  234. data/app/behaviors/ui/slider_track_behavior.rb +19 -19
  235. data/app/behaviors/ui/small_behavior.rb +25 -17
  236. data/app/behaviors/ui/sonner_toaster_behavior.rb +37 -29
  237. data/app/behaviors/ui/spinner_behavior.rb +46 -41
  238. data/app/behaviors/ui/switch_behavior.rb +77 -56
  239. data/app/behaviors/ui/table_behavior.rb +30 -22
  240. data/app/behaviors/ui/table_body_behavior.rb +28 -22
  241. data/app/behaviors/ui/table_caption_behavior.rb +28 -22
  242. data/app/behaviors/ui/table_cell_behavior.rb +28 -22
  243. data/app/behaviors/ui/table_footer_behavior.rb +22 -22
  244. data/app/behaviors/ui/table_head_behavior.rb +28 -22
  245. data/app/behaviors/ui/table_header_behavior.rb +22 -22
  246. data/app/behaviors/ui/table_row_behavior.rb +28 -22
  247. data/app/behaviors/ui/tabs_behavior.rb +53 -28
  248. data/app/behaviors/ui/tabs_content_behavior.rb +33 -33
  249. data/app/behaviors/ui/tabs_list_behavior.rb +17 -17
  250. data/app/behaviors/ui/tabs_trigger_behavior.rb +42 -42
  251. data/app/behaviors/ui/textarea_behavior.rb +36 -28
  252. data/app/behaviors/ui/toggle_behavior.rb +83 -68
  253. data/app/behaviors/ui/toggle_group_behavior.rb +50 -52
  254. data/app/behaviors/ui/toggle_group_item_behavior.rb +69 -71
  255. data/app/behaviors/ui/tooltip_behavior.rb +36 -22
  256. data/app/behaviors/ui/tooltip_content_behavior.rb +53 -53
  257. data/app/behaviors/ui/tooltip_trigger_behavior.rb +55 -55
  258. data/app/components/ui/accordion.rb +32 -32
  259. data/app/components/ui/accordion_content.rb +25 -25
  260. data/app/components/ui/accordion_item.rb +41 -41
  261. data/app/components/ui/accordion_trigger.rb +44 -44
  262. data/app/components/ui/alert.rb +26 -26
  263. data/app/components/ui/alert_description.rb +21 -21
  264. data/app/components/ui/alert_dialog.rb +28 -28
  265. data/app/components/ui/alert_dialog_action.rb +29 -29
  266. data/app/components/ui/alert_dialog_cancel.rb +29 -29
  267. data/app/components/ui/alert_dialog_content.rb +20 -20
  268. data/app/components/ui/alert_dialog_description.rb +20 -20
  269. data/app/components/ui/alert_dialog_footer.rb +23 -23
  270. data/app/components/ui/alert_dialog_header.rb +22 -22
  271. data/app/components/ui/alert_dialog_overlay.rb +25 -25
  272. data/app/components/ui/alert_dialog_title.rb +20 -20
  273. data/app/components/ui/alert_dialog_trigger.rb +22 -22
  274. data/app/components/ui/alert_title.rb +19 -19
  275. data/app/components/ui/aspect_ratio.rb +26 -26
  276. data/app/components/ui/avatar.rb +26 -26
  277. data/app/components/ui/avatar_fallback.rb +28 -28
  278. data/app/components/ui/avatar_image.rb +29 -29
  279. data/app/components/ui/badge.rb +32 -32
  280. data/app/components/ui/blockquote.rb +1 -0
  281. data/app/components/ui/breadcrumb.rb +26 -26
  282. data/app/components/ui/breadcrumb_ellipsis.rb +47 -47
  283. data/app/components/ui/breadcrumb_item.rb +22 -22
  284. data/app/components/ui/breadcrumb_link.rb +22 -22
  285. data/app/components/ui/breadcrumb_list.rb +22 -22
  286. data/app/components/ui/breadcrumb_page.rb +20 -20
  287. data/app/components/ui/breadcrumb_separator.rb +43 -43
  288. data/app/components/ui/button.rb +44 -44
  289. data/app/components/ui/button_group.rb +44 -44
  290. data/app/components/ui/button_group_separator.rb +28 -28
  291. data/app/components/ui/button_group_text.rb +40 -40
  292. data/app/components/ui/calendar.rb +188 -188
  293. data/app/components/ui/card.rb +10 -10
  294. data/app/components/ui/card_action.rb +10 -10
  295. data/app/components/ui/card_content.rb +10 -10
  296. data/app/components/ui/card_description.rb +10 -10
  297. data/app/components/ui/card_footer.rb +10 -10
  298. data/app/components/ui/card_header.rb +10 -10
  299. data/app/components/ui/card_title.rb +10 -10
  300. data/app/components/ui/carousel.rb +14 -13
  301. data/app/components/ui/carousel_content.rb +12 -11
  302. data/app/components/ui/carousel_item.rb +11 -10
  303. data/app/components/ui/carousel_next.rb +13 -25
  304. data/app/components/ui/carousel_previous.rb +13 -25
  305. data/app/components/ui/checkbox.rb +43 -43
  306. data/app/components/ui/collapsible.rb +17 -17
  307. data/app/components/ui/collapsible_content.rb +11 -11
  308. data/app/components/ui/collapsible_trigger.rb +15 -15
  309. data/app/components/ui/combobox_wrapper.rb +53 -53
  310. data/app/components/ui/command.rb +12 -11
  311. data/app/components/ui/command_dialog.rb +17 -16
  312. data/app/components/ui/command_empty.rb +10 -10
  313. data/app/components/ui/command_group.rb +15 -15
  314. data/app/components/ui/command_input.rb +26 -26
  315. data/app/components/ui/command_item.rb +12 -12
  316. data/app/components/ui/command_list.rb +10 -10
  317. data/app/components/ui/command_separator.rb +10 -10
  318. data/app/components/ui/command_shortcut.rb +10 -10
  319. data/app/components/ui/context_menu.rb +25 -25
  320. data/app/components/ui/context_menu_checkbox_item.rb +42 -42
  321. data/app/components/ui/context_menu_content.rb +22 -22
  322. data/app/components/ui/context_menu_item.rb +34 -34
  323. data/app/components/ui/context_menu_label.rb +22 -22
  324. data/app/components/ui/context_menu_radio_group.rb +23 -23
  325. data/app/components/ui/context_menu_radio_item.rb +42 -42
  326. data/app/components/ui/context_menu_separator.rb +19 -19
  327. data/app/components/ui/context_menu_shortcut.rb +20 -20
  328. data/app/components/ui/context_menu_trigger.rb +22 -22
  329. data/app/components/ui/date_picker.rb +116 -116
  330. data/app/components/ui/date_picker_input.rb +66 -66
  331. data/app/components/ui/date_picker_trigger.rb +63 -63
  332. data/app/components/ui/dialog.rb +14 -14
  333. data/app/components/ui/dialog_close.rb +22 -22
  334. data/app/components/ui/dialog_content.rb +12 -12
  335. data/app/components/ui/dialog_description.rb +17 -17
  336. data/app/components/ui/dialog_footer.rb +10 -10
  337. data/app/components/ui/dialog_header.rb +10 -10
  338. data/app/components/ui/dialog_overlay.rb +13 -13
  339. data/app/components/ui/dialog_title.rb +17 -17
  340. data/app/components/ui/dialog_trigger.rb +32 -32
  341. data/app/components/ui/drawer.rb +34 -34
  342. data/app/components/ui/drawer_close.rb +18 -18
  343. data/app/components/ui/drawer_content.rb +14 -14
  344. data/app/components/ui/drawer_description.rb +11 -11
  345. data/app/components/ui/drawer_footer.rb +11 -11
  346. data/app/components/ui/drawer_handle.rb +10 -10
  347. data/app/components/ui/drawer_header.rb +11 -11
  348. data/app/components/ui/drawer_overlay.rb +12 -12
  349. data/app/components/ui/drawer_title.rb +11 -11
  350. data/app/components/ui/drawer_trigger.rb +29 -29
  351. data/app/components/ui/dropdown_menu.rb +49 -49
  352. data/app/components/ui/dropdown_menu_checkbox_item.rb +45 -45
  353. data/app/components/ui/dropdown_menu_content.rb +24 -24
  354. data/app/components/ui/dropdown_menu_item.rb +34 -34
  355. data/app/components/ui/dropdown_menu_label.rb +22 -22
  356. data/app/components/ui/dropdown_menu_radio_group.rb +23 -23
  357. data/app/components/ui/dropdown_menu_radio_item.rb +47 -47
  358. data/app/components/ui/dropdown_menu_separator.rb +19 -19
  359. data/app/components/ui/dropdown_menu_shortcut.rb +20 -20
  360. data/app/components/ui/dropdown_menu_sub.rb +23 -23
  361. data/app/components/ui/dropdown_menu_sub_content.rb +26 -26
  362. data/app/components/ui/dropdown_menu_sub_trigger.rb +40 -40
  363. data/app/components/ui/dropdown_menu_trigger.rb +36 -36
  364. data/app/components/ui/empty.rb +21 -21
  365. data/app/components/ui/empty_content.rb +18 -18
  366. data/app/components/ui/empty_description.rb +16 -16
  367. data/app/components/ui/empty_header.rb +20 -20
  368. data/app/components/ui/empty_media.rb +24 -24
  369. data/app/components/ui/empty_title.rb +16 -16
  370. data/app/components/ui/field.rb +30 -30
  371. data/app/components/ui/field_content.rb +20 -20
  372. data/app/components/ui/field_description.rb +20 -20
  373. data/app/components/ui/field_error.rb +50 -50
  374. data/app/components/ui/field_group.rb +23 -23
  375. data/app/components/ui/field_label.rb +22 -22
  376. data/app/components/ui/field_legend.rb +25 -25
  377. data/app/components/ui/field_separator.rb +41 -41
  378. data/app/components/ui/field_set.rb +22 -22
  379. data/app/components/ui/field_title.rb +20 -20
  380. data/app/components/ui/h1.rb +1 -0
  381. data/app/components/ui/h2.rb +1 -0
  382. data/app/components/ui/h3.rb +1 -0
  383. data/app/components/ui/h4.rb +1 -0
  384. data/app/components/ui/hover_card.rb +22 -22
  385. data/app/components/ui/hover_card_content.rb +28 -28
  386. data/app/components/ui/hover_card_trigger.rb +40 -40
  387. data/app/components/ui/inline_code.rb +1 -0
  388. data/app/components/ui/input.rb +15 -15
  389. data/app/components/ui/input_group.rb +28 -28
  390. data/app/components/ui/input_group_addon.rb +27 -27
  391. data/app/components/ui/input_group_button.rb +35 -35
  392. data/app/components/ui/input_group_input.rb +39 -39
  393. data/app/components/ui/input_group_text.rb +26 -26
  394. data/app/components/ui/input_group_textarea.rb +39 -39
  395. data/app/components/ui/input_otp.rb +48 -48
  396. data/app/components/ui/input_otp_group.rb +21 -21
  397. data/app/components/ui/input_otp_separator.rb +28 -28
  398. data/app/components/ui/input_otp_slot.rb +28 -28
  399. data/app/components/ui/item.rb +20 -20
  400. data/app/components/ui/item_actions.rb +10 -10
  401. data/app/components/ui/item_content.rb +10 -10
  402. data/app/components/ui/item_description.rb +10 -10
  403. data/app/components/ui/item_footer.rb +10 -10
  404. data/app/components/ui/item_group.rb +10 -10
  405. data/app/components/ui/item_header.rb +10 -10
  406. data/app/components/ui/item_media.rb +11 -11
  407. data/app/components/ui/item_separator.rb +10 -10
  408. data/app/components/ui/item_title.rb +10 -10
  409. data/app/components/ui/kbd.rb +24 -24
  410. data/app/components/ui/kbd_group.rb +25 -25
  411. data/app/components/ui/label.rb +25 -25
  412. data/app/components/ui/large.rb +1 -0
  413. data/app/components/ui/lead.rb +1 -0
  414. data/app/components/ui/list.rb +1 -0
  415. data/app/components/ui/menubar.rb +31 -31
  416. data/app/components/ui/menubar_checkbox_item.rb +45 -45
  417. data/app/components/ui/menubar_content.rb +27 -27
  418. data/app/components/ui/menubar_item.rb +34 -34
  419. data/app/components/ui/menubar_label.rb +24 -24
  420. data/app/components/ui/menubar_menu.rb +24 -24
  421. data/app/components/ui/menubar_radio_group.rb +24 -24
  422. data/app/components/ui/menubar_radio_item.rb +47 -47
  423. data/app/components/ui/menubar_separator.rb +18 -18
  424. data/app/components/ui/menubar_shortcut.rb +22 -22
  425. data/app/components/ui/menubar_sub.rb +25 -25
  426. data/app/components/ui/menubar_sub_content.rb +22 -22
  427. data/app/components/ui/menubar_sub_trigger.rb +41 -41
  428. data/app/components/ui/menubar_trigger.rb +21 -21
  429. data/app/components/ui/muted.rb +1 -0
  430. data/app/components/ui/navigation_menu.rb +43 -43
  431. data/app/components/ui/navigation_menu_content.rb +28 -28
  432. data/app/components/ui/navigation_menu_item.rb +31 -31
  433. data/app/components/ui/navigation_menu_link.rb +60 -60
  434. data/app/components/ui/navigation_menu_list.rb +23 -23
  435. data/app/components/ui/navigation_menu_trigger.rb +44 -44
  436. data/app/components/ui/navigation_menu_viewport.rb +20 -20
  437. data/app/components/ui/p.rb +1 -0
  438. data/app/components/ui/pagination.rb +15 -15
  439. data/app/components/ui/pagination_content.rb +15 -15
  440. data/app/components/ui/pagination_ellipsis.rb +20 -20
  441. data/app/components/ui/pagination_item.rb +13 -13
  442. data/app/components/ui/pagination_link.rb +21 -21
  443. data/app/components/ui/pagination_next.rb +25 -25
  444. data/app/components/ui/pagination_previous.rb +25 -25
  445. data/app/components/ui/popover.rb +44 -44
  446. data/app/components/ui/popover_content.rb +25 -25
  447. data/app/components/ui/popover_trigger.rb +30 -30
  448. data/app/components/ui/progress.rb +32 -32
  449. data/app/components/ui/radio_button.rb +44 -44
  450. data/app/components/ui/resizable_handle.rb +49 -49
  451. data/app/components/ui/resizable_panel.rb +31 -31
  452. data/app/components/ui/resizable_panel_group.rb +37 -37
  453. data/app/components/ui/responsive_dialog.rb +81 -81
  454. data/app/components/ui/scroll_area.rb +54 -54
  455. data/app/components/ui/scroll_area_corner.rb +27 -27
  456. data/app/components/ui/scroll_area_scrollbar.rb +37 -37
  457. data/app/components/ui/scroll_area_thumb.rb +31 -31
  458. data/app/components/ui/scroll_area_viewport.rb +33 -33
  459. data/app/components/ui/select.rb +38 -38
  460. data/app/components/ui/select_content.rb +36 -36
  461. data/app/components/ui/select_group.rb +32 -32
  462. data/app/components/ui/select_item.rb +58 -58
  463. data/app/components/ui/select_label.rb +28 -28
  464. data/app/components/ui/select_scroll_down_button.rb +39 -39
  465. data/app/components/ui/select_scroll_up_button.rb +39 -39
  466. data/app/components/ui/select_trigger.rb +38 -38
  467. data/app/components/ui/separator.rb +35 -35
  468. data/app/components/ui/sheet.rb +14 -14
  469. data/app/components/ui/sheet_close.rb +32 -32
  470. data/app/components/ui/sheet_content.rb +45 -45
  471. data/app/components/ui/sheet_description.rb +17 -17
  472. data/app/components/ui/sheet_footer.rb +10 -10
  473. data/app/components/ui/sheet_header.rb +10 -10
  474. data/app/components/ui/sheet_overlay.rb +13 -13
  475. data/app/components/ui/sheet_title.rb +17 -17
  476. data/app/components/ui/sheet_trigger.rb +21 -21
  477. data/app/components/ui/sidebar.rb +85 -85
  478. data/app/components/ui/sidebar_content.rb +27 -27
  479. data/app/components/ui/sidebar_footer.rb +29 -29
  480. data/app/components/ui/sidebar_group.rb +45 -45
  481. data/app/components/ui/sidebar_group_action.rb +39 -39
  482. data/app/components/ui/sidebar_group_content.rb +35 -35
  483. data/app/components/ui/sidebar_group_label.rb +38 -38
  484. data/app/components/ui/sidebar_header.rb +29 -29
  485. data/app/components/ui/sidebar_input.rb +35 -35
  486. data/app/components/ui/sidebar_inset.rb +35 -35
  487. data/app/components/ui/sidebar_menu.rb +32 -32
  488. data/app/components/ui/sidebar_menu_action.rb +52 -52
  489. data/app/components/ui/sidebar_menu_badge.rb +32 -32
  490. data/app/components/ui/sidebar_menu_button.rb +63 -63
  491. data/app/components/ui/sidebar_menu_item.rb +38 -38
  492. data/app/components/ui/sidebar_menu_skeleton.rb +57 -57
  493. data/app/components/ui/sidebar_menu_sub.rb +43 -43
  494. data/app/components/ui/sidebar_menu_sub_button.rb +40 -40
  495. data/app/components/ui/sidebar_menu_sub_item.rb +27 -27
  496. data/app/components/ui/sidebar_provider.rb +66 -66
  497. data/app/components/ui/sidebar_rail.rb +28 -28
  498. data/app/components/ui/sidebar_separator.rb +25 -25
  499. data/app/components/ui/sidebar_trigger.rb +54 -54
  500. data/app/components/ui/skeleton.rb +37 -37
  501. data/app/components/ui/small.rb +1 -0
  502. data/app/components/ui/sonner_toaster.rb +49 -49
  503. data/app/components/ui/spinner.rb +36 -36
  504. data/app/components/ui/switch.rb +62 -62
  505. data/app/components/ui/table.rb +42 -42
  506. data/app/components/ui/table_body.rb +22 -22
  507. data/app/components/ui/table_caption.rb +11 -11
  508. data/app/components/ui/table_cell.rb +11 -11
  509. data/app/components/ui/table_footer.rb +22 -22
  510. data/app/components/ui/table_head.rb +11 -11
  511. data/app/components/ui/table_header.rb +22 -22
  512. data/app/components/ui/table_row.rb +19 -19
  513. data/app/components/ui/tabs.rb +36 -36
  514. data/app/components/ui/tabs_content.rb +26 -26
  515. data/app/components/ui/tabs_list.rb +23 -23
  516. data/app/components/ui/tabs_trigger.rb +29 -29
  517. data/app/components/ui/textarea.rb +15 -15
  518. data/app/components/ui/toggle.rb +38 -38
  519. data/app/components/ui/toggle_group.rb +53 -53
  520. data/app/components/ui/toggle_group_item.rb +61 -61
  521. data/app/components/ui/tooltip.rb +27 -27
  522. data/app/components/ui/tooltip_content.rb +31 -31
  523. data/app/components/ui/tooltip_trigger.rb +36 -36
  524. data/app/helpers/ui/combobox_behavior.rb +1 -1
  525. data/app/helpers/ui/empty_behavior.rb +6 -6
  526. data/app/helpers/ui/input_group_input_behavior.rb +1 -1
  527. data/app/helpers/ui/input_group_textarea_behavior.rb +1 -1
  528. data/app/helpers/ui/popover_content_behavior.rb +1 -1
  529. data/app/helpers/ui/popover_trigger_behavior.rb +1 -1
  530. data/app/helpers/ui/select_behavior.rb +61 -61
  531. data/app/helpers/ui/select_content_behavior.rb +31 -31
  532. data/app/helpers/ui/select_group_behavior.rb +24 -24
  533. data/app/helpers/ui/select_item_behavior.rb +34 -34
  534. data/app/helpers/ui/select_label_behavior.rb +23 -23
  535. data/app/helpers/ui/select_scroll_down_button_behavior.rb +38 -38
  536. data/app/helpers/ui/select_scroll_up_button_behavior.rb +38 -38
  537. data/app/helpers/ui/select_trigger_behavior.rb +29 -29
  538. data/app/helpers/ui/spinner_behavior.rb +1 -1
  539. data/app/javascript/ui/controllers/accordion_controller.js +15 -3
  540. data/app/javascript/ui/controllers/command_controller.js +4 -3
  541. data/app/view_components/ui/accordion_component.rb +31 -31
  542. data/app/view_components/ui/accordion_content_component.rb +24 -24
  543. data/app/view_components/ui/accordion_item_component.rb +37 -37
  544. data/app/view_components/ui/accordion_trigger_component.rb +25 -25
  545. data/app/view_components/ui/alert_component.rb +18 -18
  546. data/app/view_components/ui/alert_description_component.rb +16 -16
  547. data/app/view_components/ui/alert_title_component.rb +16 -16
  548. data/app/view_components/ui/aspect_ratio_component.rb +20 -20
  549. data/app/view_components/ui/avatar_component.rb +16 -16
  550. data/app/view_components/ui/avatar_fallback_component.rb +16 -16
  551. data/app/view_components/ui/avatar_image_component.rb +19 -19
  552. data/app/view_components/ui/badge_component.rb +18 -18
  553. data/app/view_components/ui/blockquote_component.rb +1 -0
  554. data/app/view_components/ui/breadcrumb_component.rb +28 -28
  555. data/app/view_components/ui/breadcrumb_ellipsis_component.rb +41 -41
  556. data/app/view_components/ui/breadcrumb_item_component.rb +24 -24
  557. data/app/view_components/ui/breadcrumb_link_component.rb +24 -24
  558. data/app/view_components/ui/breadcrumb_list_component.rb +24 -24
  559. data/app/view_components/ui/breadcrumb_page_component.rb +22 -22
  560. data/app/view_components/ui/breadcrumb_separator_component.rb +38 -38
  561. data/app/view_components/ui/button_component.rb +39 -39
  562. data/app/view_components/ui/button_group_component.rb +33 -33
  563. data/app/view_components/ui/button_group_separator_component.rb +29 -29
  564. data/app/view_components/ui/button_group_text_component.rb +25 -25
  565. data/app/view_components/ui/calendar_component.rb +179 -182
  566. data/app/view_components/ui/card_action_component.rb +10 -10
  567. data/app/view_components/ui/card_component.rb +10 -10
  568. data/app/view_components/ui/card_content_component.rb +10 -10
  569. data/app/view_components/ui/card_description_component.rb +10 -10
  570. data/app/view_components/ui/card_footer_component.rb +10 -10
  571. data/app/view_components/ui/card_header_component.rb +10 -10
  572. data/app/view_components/ui/card_title_component.rb +10 -10
  573. data/app/view_components/ui/carousel_component.rb +14 -13
  574. data/app/view_components/ui/carousel_content_component.rb +12 -11
  575. data/app/view_components/ui/carousel_item_component.rb +11 -10
  576. data/app/view_components/ui/carousel_next_component.rb +15 -27
  577. data/app/view_components/ui/carousel_previous_component.rb +15 -27
  578. data/app/view_components/ui/checkbox_component.rb +48 -48
  579. data/app/view_components/ui/collapsible_component.rb +17 -17
  580. data/app/view_components/ui/collapsible_content_component.rb +11 -11
  581. data/app/view_components/ui/collapsible_trigger_component.rb +15 -15
  582. data/app/view_components/ui/combobox_wrapper_component.rb +53 -53
  583. data/app/view_components/ui/command_component.rb +12 -11
  584. data/app/view_components/ui/command_dialog_component.rb +17 -16
  585. data/app/view_components/ui/command_empty_component.rb +10 -10
  586. data/app/view_components/ui/command_group_component.rb +16 -16
  587. data/app/view_components/ui/command_input_component.rb +15 -15
  588. data/app/view_components/ui/command_item_component.rb +12 -12
  589. data/app/view_components/ui/command_list_component.rb +10 -10
  590. data/app/view_components/ui/command_separator_component.rb +10 -10
  591. data/app/view_components/ui/command_shortcut_component.rb +10 -10
  592. data/app/view_components/ui/context_menu_checkbox_item_component.rb +36 -37
  593. data/app/view_components/ui/context_menu_component.rb +14 -14
  594. data/app/view_components/ui/context_menu_content_component.rb +14 -14
  595. data/app/view_components/ui/context_menu_item_component.rb +22 -22
  596. data/app/view_components/ui/context_menu_label_component.rb +16 -16
  597. data/app/view_components/ui/context_menu_radio_group_component.rb +13 -13
  598. data/app/view_components/ui/context_menu_radio_item_component.rb +36 -37
  599. data/app/view_components/ui/context_menu_separator_component.rb +11 -11
  600. data/app/view_components/ui/context_menu_shortcut_component.rb +13 -13
  601. data/app/view_components/ui/context_menu_trigger_component.rb +14 -14
  602. data/app/view_components/ui/date_picker_component.rb +125 -125
  603. data/app/view_components/ui/date_picker_input_component.rb +68 -68
  604. data/app/view_components/ui/date_picker_trigger_component.rb +67 -67
  605. data/app/view_components/ui/dialog_close_component.rb +61 -61
  606. data/app/view_components/ui/dialog_component.rb +45 -45
  607. data/app/view_components/ui/dialog_content_component.rb +23 -23
  608. data/app/view_components/ui/dialog_description_component.rb +21 -21
  609. data/app/view_components/ui/dialog_footer_component.rb +17 -17
  610. data/app/view_components/ui/dialog_header_component.rb +18 -18
  611. data/app/view_components/ui/dialog_overlay_component.rb +30 -30
  612. data/app/view_components/ui/dialog_title_component.rb +21 -21
  613. data/app/view_components/ui/dialog_trigger_component.rb +61 -61
  614. data/app/view_components/ui/drawer_close_component.rb +30 -30
  615. data/app/view_components/ui/drawer_component.rb +76 -76
  616. data/app/view_components/ui/drawer_content_component.rb +26 -26
  617. data/app/view_components/ui/drawer_description_component.rb +17 -17
  618. data/app/view_components/ui/drawer_footer_component.rb +20 -20
  619. data/app/view_components/ui/drawer_handle_component.rb +19 -19
  620. data/app/view_components/ui/drawer_header_component.rb +20 -20
  621. data/app/view_components/ui/drawer_overlay_component.rb +22 -22
  622. data/app/view_components/ui/drawer_title_component.rb +17 -17
  623. data/app/view_components/ui/drawer_trigger_component.rb +60 -60
  624. data/app/view_components/ui/dropdown_menu_checkbox_item_component.rb +26 -26
  625. data/app/view_components/ui/dropdown_menu_component.rb +45 -45
  626. data/app/view_components/ui/dropdown_menu_content_component.rb +13 -13
  627. data/app/view_components/ui/dropdown_menu_item_component.rb +16 -16
  628. data/app/view_components/ui/dropdown_menu_label_component.rb +13 -13
  629. data/app/view_components/ui/dropdown_menu_radio_group_component.rb +12 -12
  630. data/app/view_components/ui/dropdown_menu_radio_item_component.rb +27 -27
  631. data/app/view_components/ui/dropdown_menu_separator_component.rb +11 -11
  632. data/app/view_components/ui/dropdown_menu_shortcut_component.rb +12 -12
  633. data/app/view_components/ui/dropdown_menu_sub_component.rb +12 -12
  634. data/app/view_components/ui/dropdown_menu_sub_content_component.rb +14 -14
  635. data/app/view_components/ui/dropdown_menu_sub_trigger_component.rb +22 -22
  636. data/app/view_components/ui/dropdown_menu_trigger_component.rb +46 -46
  637. data/app/view_components/ui/empty_component.rb +12 -12
  638. data/app/view_components/ui/empty_content_component.rb +12 -12
  639. data/app/view_components/ui/empty_description_component.rb +12 -12
  640. data/app/view_components/ui/empty_header_component.rb +12 -12
  641. data/app/view_components/ui/empty_media_component.rb +13 -13
  642. data/app/view_components/ui/empty_title_component.rb +12 -12
  643. data/app/view_components/ui/field_component.rb +36 -36
  644. data/app/view_components/ui/field_content_component.rb +22 -22
  645. data/app/view_components/ui/field_description_component.rb +22 -22
  646. data/app/view_components/ui/field_error_component.rb +55 -55
  647. data/app/view_components/ui/field_group_component.rb +27 -27
  648. data/app/view_components/ui/field_label_component.rb +24 -24
  649. data/app/view_components/ui/field_legend_component.rb +29 -29
  650. data/app/view_components/ui/field_separator_component.rb +43 -43
  651. data/app/view_components/ui/field_set_component.rb +25 -25
  652. data/app/view_components/ui/field_title_component.rb +22 -22
  653. data/app/view_components/ui/h3_component.rb +1 -0
  654. data/app/view_components/ui/h4_component.rb +1 -0
  655. data/app/view_components/ui/hover_card_component.rb +24 -24
  656. data/app/view_components/ui/hover_card_content_component.rb +30 -30
  657. data/app/view_components/ui/hover_card_trigger_component.rb +47 -47
  658. data/app/view_components/ui/inline_code_component.rb +1 -0
  659. data/app/view_components/ui/input_component.rb +17 -17
  660. data/app/view_components/ui/input_group_addon_component.rb +31 -31
  661. data/app/view_components/ui/input_group_button_component.rb +32 -32
  662. data/app/view_components/ui/input_group_component.rb +30 -30
  663. data/app/view_components/ui/input_group_input_component.rb +38 -38
  664. data/app/view_components/ui/input_group_text_component.rb +28 -28
  665. data/app/view_components/ui/input_group_textarea_component.rb +38 -38
  666. data/app/view_components/ui/input_otp_component.rb +52 -52
  667. data/app/view_components/ui/input_otp_group_component.rb +23 -23
  668. data/app/view_components/ui/input_otp_separator_component.rb +29 -29
  669. data/app/view_components/ui/input_otp_slot_component.rb +28 -28
  670. data/app/view_components/ui/item_actions_component.rb +12 -12
  671. data/app/view_components/ui/item_component.rb +23 -23
  672. data/app/view_components/ui/item_content_component.rb +12 -12
  673. data/app/view_components/ui/item_description_component.rb +12 -12
  674. data/app/view_components/ui/item_footer_component.rb +12 -12
  675. data/app/view_components/ui/item_group_component.rb +12 -12
  676. data/app/view_components/ui/item_header_component.rb +12 -12
  677. data/app/view_components/ui/item_media_component.rb +13 -13
  678. data/app/view_components/ui/item_separator_component.rb +12 -12
  679. data/app/view_components/ui/item_title_component.rb +12 -12
  680. data/app/view_components/ui/kbd_component.rb +25 -25
  681. data/app/view_components/ui/kbd_group_component.rb +26 -26
  682. data/app/view_components/ui/label_component.rb +18 -18
  683. data/app/view_components/ui/large_component.rb +1 -0
  684. data/app/view_components/ui/lead_component.rb +1 -0
  685. data/app/view_components/ui/list_component.rb +1 -0
  686. data/app/view_components/ui/menubar_checkbox_item_component.rb +40 -40
  687. data/app/view_components/ui/menubar_component.rb +19 -19
  688. data/app/view_components/ui/menubar_content_component.rb +21 -21
  689. data/app/view_components/ui/menubar_item_component.rb +26 -26
  690. data/app/view_components/ui/menubar_label_component.rb +18 -18
  691. data/app/view_components/ui/menubar_menu_component.rb +20 -20
  692. data/app/view_components/ui/menubar_radio_group_component.rb +21 -21
  693. data/app/view_components/ui/menubar_radio_item_component.rb +41 -41
  694. data/app/view_components/ui/menubar_separator_component.rb +16 -16
  695. data/app/view_components/ui/menubar_shortcut_component.rb +17 -17
  696. data/app/view_components/ui/menubar_sub_component.rb +20 -20
  697. data/app/view_components/ui/menubar_sub_content_component.rb +20 -20
  698. data/app/view_components/ui/menubar_sub_trigger_component.rb +37 -37
  699. data/app/view_components/ui/menubar_trigger_component.rb +18 -18
  700. data/app/view_components/ui/muted_component.rb +1 -0
  701. data/app/view_components/ui/navigation_menu_component.rb +37 -37
  702. data/app/view_components/ui/navigation_menu_content_component.rb +18 -18
  703. data/app/view_components/ui/navigation_menu_item_component.rb +18 -18
  704. data/app/view_components/ui/navigation_menu_link_component.rb +83 -83
  705. data/app/view_components/ui/navigation_menu_list_component.rb +16 -16
  706. data/app/view_components/ui/navigation_menu_trigger_component.rb +38 -38
  707. data/app/view_components/ui/navigation_menu_viewport_component.rb +16 -16
  708. data/app/view_components/ui/p_component.rb +1 -0
  709. data/app/view_components/ui/pagination_component.rb +14 -14
  710. data/app/view_components/ui/pagination_content_component.rb +14 -14
  711. data/app/view_components/ui/pagination_ellipsis_component.rb +20 -20
  712. data/app/view_components/ui/pagination_item_component.rb +12 -12
  713. data/app/view_components/ui/pagination_link_component.rb +21 -21
  714. data/app/view_components/ui/pagination_next_component.rb +24 -24
  715. data/app/view_components/ui/pagination_previous_component.rb +25 -25
  716. data/app/view_components/ui/popover_component.rb +50 -50
  717. data/app/view_components/ui/popover_content_component.rb +36 -36
  718. data/app/view_components/ui/popover_trigger_component.rb +60 -60
  719. data/app/view_components/ui/progress_component.rb +33 -33
  720. data/app/view_components/ui/radio_button_component.rb +49 -49
  721. data/app/view_components/ui/resizable_handle_component.rb +27 -27
  722. data/app/view_components/ui/resizable_panel_component.rb +33 -33
  723. data/app/view_components/ui/resizable_panel_group_component.rb +39 -39
  724. data/app/view_components/ui/responsive_dialog_component.rb +70 -70
  725. data/app/view_components/ui/scroll_area_component.rb +39 -39
  726. data/app/view_components/ui/scroll_area_corner_component.rb +18 -18
  727. data/app/view_components/ui/scroll_area_scrollbar_component.rb +28 -28
  728. data/app/view_components/ui/scroll_area_thumb_component.rb +23 -23
  729. data/app/view_components/ui/scroll_area_viewport_component.rb +25 -25
  730. data/app/view_components/ui/select_component.rb +27 -27
  731. data/app/view_components/ui/select_content_component.rb +35 -36
  732. data/app/view_components/ui/select_group_component.rb +22 -22
  733. data/app/view_components/ui/select_item_component.rb +39 -40
  734. data/app/view_components/ui/select_label_component.rb +18 -18
  735. data/app/view_components/ui/select_scroll_down_button_component.rb +29 -29
  736. data/app/view_components/ui/select_scroll_up_button_component.rb +29 -29
  737. data/app/view_components/ui/select_trigger_component.rb +22 -22
  738. data/app/view_components/ui/separator_component.rb +23 -23
  739. data/app/view_components/ui/sheet_close_component.rb +61 -61
  740. data/app/view_components/ui/sheet_component.rb +45 -45
  741. data/app/view_components/ui/sheet_content_component.rb +43 -43
  742. data/app/view_components/ui/sheet_description_component.rb +20 -20
  743. data/app/view_components/ui/sheet_footer_component.rb +17 -17
  744. data/app/view_components/ui/sheet_header_component.rb +17 -17
  745. data/app/view_components/ui/sheet_overlay_component.rb +30 -30
  746. data/app/view_components/ui/sheet_title_component.rb +20 -20
  747. data/app/view_components/ui/sheet_trigger_component.rb +50 -50
  748. data/app/view_components/ui/skeleton_component.rb +23 -23
  749. data/app/view_components/ui/slider_component.rb +55 -55
  750. data/app/view_components/ui/slider_range_component.rb +19 -19
  751. data/app/view_components/ui/slider_thumb_component.rb +25 -25
  752. data/app/view_components/ui/slider_track_component.rb +22 -22
  753. data/app/view_components/ui/small_component.rb +1 -0
  754. data/app/view_components/ui/sonner_toaster_component.rb +49 -49
  755. data/app/view_components/ui/spinner_component.rb +41 -41
  756. data/app/view_components/ui/switch_component.rb +52 -52
  757. data/app/view_components/ui/table_body_component.rb +14 -14
  758. data/app/view_components/ui/table_caption_component.rb +10 -10
  759. data/app/view_components/ui/table_cell_component.rb +10 -10
  760. data/app/view_components/ui/table_component.rb +20 -20
  761. data/app/view_components/ui/table_footer_component.rb +14 -14
  762. data/app/view_components/ui/table_head_component.rb +10 -10
  763. data/app/view_components/ui/table_header_component.rb +14 -14
  764. data/app/view_components/ui/table_row_component.rb +16 -16
  765. data/app/view_components/ui/tabs_component.rb +33 -33
  766. data/app/view_components/ui/tabs_content_component.rb +28 -28
  767. data/app/view_components/ui/tabs_list_component.rb +24 -24
  768. data/app/view_components/ui/tabs_trigger_component.rb +31 -31
  769. data/app/view_components/ui/textarea_component.rb +14 -14
  770. data/app/view_components/ui/toggle_component.rb +43 -43
  771. data/app/view_components/ui/toggle_group_component.rb +60 -60
  772. data/app/view_components/ui/toggle_group_item_component.rb +62 -62
  773. data/app/view_components/ui/tooltip_component.rb +14 -14
  774. data/app/view_components/ui/tooltip_content_component.rb +23 -23
  775. data/app/view_components/ui/tooltip_trigger_component.rb +19 -19
  776. data/app/views/ui/_command.html.erb +2 -0
  777. data/app/views/ui/carousel/_next.html.erb +1 -1
  778. data/app/views/ui/carousel/_previous.html.erb +1 -1
  779. data/lib/ui/version.rb +1 -1
  780. metadata +1 -1
@@ -1,81 +1,81 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ResponsiveDialog component (ViewComponent)
4
- # Combines Dialog (desktop) and Drawer (mobile) with responsive switching
5
- #
6
- # Hybrid CSS + Stimulus approach:
7
- # - Renders both Dialog and Drawer
8
- # - CSS hides one based on breakpoint (md:hidden / md:block)
9
- # - Stimulus controller syncs state between them
10
- #
11
- # @example Basic usage
12
- # <%= render UI::ResponsiveDialogComponent.new do %>
13
- # <!-- Content will be rendered in both Dialog and Drawer -->
14
- # <form>...</form>
15
- # <% end %>
16
- #
17
- # @example With custom breakpoint
18
- # <%= render UI::ResponsiveDialogComponent.new(
19
- # breakpoint: 1024,
20
- # direction: "right"
21
- # ) do %>
22
- # <!-- Content -->
23
- # <% end %>
24
- class UI::ResponsiveDialogComponent < ViewComponent::Base
25
- include UI::ResponsiveDialogBehavior
3
+ # ResponsiveDialog component (ViewComponent)
4
+ # Combines Dialog (desktop) and Drawer (mobile) with responsive switching
5
+ #
6
+ # Hybrid CSS + Stimulus approach:
7
+ # - Renders both Dialog and Drawer
8
+ # - CSS hides one based on breakpoint (md:hidden / md:block)
9
+ # - Stimulus controller syncs state between them
10
+ #
11
+ # @example Basic usage
12
+ # <%= render UI::ResponsiveDialogComponent.new do %>
13
+ # <!-- Content will be rendered in both Dialog and Drawer -->
14
+ # <form>...</form>
15
+ # <% end %>
16
+ #
17
+ # @example With custom breakpoint
18
+ # <%= render UI::ResponsiveDialogComponent.new(
19
+ # breakpoint: 1024,
20
+ # direction: "right"
21
+ # ) do %>
22
+ # <!-- Content -->
23
+ # <% end %>
24
+ class UI::ResponsiveDialogComponent < ViewComponent::Base
25
+ include UI::ResponsiveDialogBehavior
26
26
 
27
- # @param open [Boolean] whether the dialog/drawer is open
28
- # @param breakpoint [Integer] responsive breakpoint in pixels (default: 768 = md)
29
- # @param direction [String] drawer direction: "bottom", "top", "left", "right"
30
- # @param classes [String] additional CSS classes
31
- # @param attributes [Hash] additional HTML attributes
32
- def initialize(
33
- open: false,
34
- breakpoint: 768,
35
- direction: "bottom",
36
- classes: "",
37
- attributes: {}
38
- )
39
- @open = open
40
- @breakpoint = breakpoint
41
- @direction = direction
42
- @classes = classes
43
- @attributes = attributes
44
- end
27
+ # @param open [Boolean] whether the dialog/drawer is open
28
+ # @param breakpoint [Integer] responsive breakpoint in pixels (default: 768 = md)
29
+ # @param direction [String] drawer direction: "bottom", "top", "left", "right"
30
+ # @param classes [String] additional CSS classes
31
+ # @param attributes [Hash] additional HTML attributes
32
+ def initialize(
33
+ open: false,
34
+ breakpoint: 768,
35
+ direction: "bottom",
36
+ classes: "",
37
+ attributes: {}
38
+ )
39
+ @open = open
40
+ @breakpoint = breakpoint
41
+ @direction = direction
42
+ @classes = classes
43
+ @attributes = attributes
44
+ end
45
45
 
46
- def call
47
- attrs = responsive_dialog_html_attributes
48
- attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
46
+ def call
47
+ attrs = responsive_dialog_html_attributes
48
+ attrs[:data] = attrs[:data].merge(@attributes.fetch(:data, {}))
49
49
 
50
- content_tag :div, **attrs.merge(@attributes.except(:data)) do
51
- # Mobile: Drawer (hidden on md and up)
52
- mobile_wrapper + desktop_wrapper
53
- end
54
- end
50
+ content_tag :div, **attrs.merge(@attributes.except(:data)) do
51
+ # Mobile: Drawer (hidden on md and up)
52
+ mobile_wrapper + desktop_wrapper
53
+ end
54
+ end
55
55
 
56
- private
56
+ private
57
57
 
58
- def mobile_wrapper
59
- content_tag :div, class: "md:hidden", data: { "ui--responsive-dialog-target": "drawer" } do
60
- render_drawer
61
- end
62
- end
58
+ def mobile_wrapper
59
+ content_tag :div, class: "md:hidden", data: {"ui--responsive-dialog-target": "drawer"} do
60
+ render_drawer
61
+ end
62
+ end
63
63
 
64
- def desktop_wrapper
65
- content_tag :div, class: "hidden md:block", data: { "ui--responsive-dialog-target": "dialog" } do
66
- render_dialog
67
- end
68
- end
64
+ def desktop_wrapper
65
+ content_tag :div, class: "hidden md:block", data: {"ui--responsive-dialog-target": "dialog"} do
66
+ render_dialog
67
+ end
68
+ end
69
69
 
70
- def render_drawer
71
- render UI::DrawerComponent.new(open: @open, direction: @direction) do
72
- content
73
- end
74
- end
70
+ def render_drawer
71
+ render UI::DrawerComponent.new(open: @open, direction: @direction) do
72
+ content
73
+ end
74
+ end
75
75
 
76
- def render_dialog
77
- render UI::DialogComponent.new(open: @open) do
78
- content
79
- end
80
- end
76
+ def render_dialog
77
+ render UI::DialogComponent.new(open: @open) do
78
+ content
81
79
  end
80
+ end
81
+ end
@@ -1,46 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ScrollAreaComponent - ViewComponent implementation
4
- #
5
- # Augments native scroll functionality for custom, cross-browser styling.
6
- # Root container with Stimulus controller.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::ScrollAreaComponent.new(classes: "h-[200px] w-[350px] rounded-md border p-4") do %>
10
- # <div class="space-y-4">
11
- # <h3 class="text-sm font-semibold">Tags</h3>
12
- # <!-- Content here -->
13
- # </div>
14
- # <% end %>
15
- class UI::ScrollAreaComponent < ViewComponent::Base
16
- include UI::ScrollAreaBehavior
3
+ # ScrollAreaComponent - ViewComponent implementation
4
+ #
5
+ # Augments native scroll functionality for custom, cross-browser styling.
6
+ # Root container with Stimulus controller.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::ScrollAreaComponent.new(classes: "h-[200px] w-[350px] rounded-md border p-4") do %>
10
+ # <div class="space-y-4">
11
+ # <h3 class="text-sm font-semibold">Tags</h3>
12
+ # <!-- Content here -->
13
+ # </div>
14
+ # <% end %>
15
+ class UI::ScrollAreaComponent < ViewComponent::Base
16
+ include UI::ScrollAreaBehavior
17
17
 
18
- # @param type [String] Scrollbar visibility behavior ("hover", "scroll", "auto", "always")
19
- # @param scroll_hide_delay [Integer] Delay in ms before hiding scrollbar on hover
20
- # @param classes [String] Additional CSS classes to merge
21
- # @param attributes [Hash] Additional HTML attributes
22
- def initialize(type: "hover", scroll_hide_delay: 600, classes: "", **attributes)
23
- @type = type
24
- @scroll_hide_delay = scroll_hide_delay
25
- @classes = classes
26
- @attributes = attributes
27
- end
18
+ # @param type [String] Scrollbar visibility behavior ("hover", "scroll", "auto", "always")
19
+ # @param scroll_hide_delay [Integer] Delay in ms before hiding scrollbar on hover
20
+ # @param classes [String] Additional CSS classes to merge
21
+ # @param attributes [Hash] Additional HTML attributes
22
+ def initialize(type: "hover", scroll_hide_delay: 600, classes: "", **attributes)
23
+ @type = type
24
+ @scroll_hide_delay = scroll_hide_delay
25
+ @classes = classes
26
+ @attributes = attributes
27
+ end
28
28
 
29
- def call
30
- root_attrs = scroll_area_html_attributes.deep_merge(@attributes)
29
+ def call
30
+ root_attrs = scroll_area_html_attributes.deep_merge(@attributes)
31
31
 
32
- # Add Stimulus controller and values
33
- root_attrs[:data] ||= {}
34
- root_attrs[:data][:controller] = "ui--scroll-area"
35
- root_attrs[:data][:ui__scroll_area_type_value] = @type
36
- root_attrs[:data][:ui__scroll_area_scroll_hide_delay_value] = @scroll_hide_delay
32
+ # Add Stimulus controller and values
33
+ root_attrs[:data] ||= {}
34
+ root_attrs[:data][:controller] = "ui--scroll-area"
35
+ root_attrs[:data][:ui__scroll_area_type_value] = @type
36
+ root_attrs[:data][:ui__scroll_area_scroll_hide_delay_value] = @scroll_hide_delay
37
37
 
38
- content_tag :div, **root_attrs do
39
- safe_join([
40
- render(UI::ViewportComponent.new) { content },
41
- render(UI::ScrollbarComponent.new(orientation: "vertical")),
42
- render(UI::CornerComponent.new)
43
- ])
44
- end
45
- end
38
+ content_tag :div, **root_attrs do
39
+ safe_join([
40
+ render(UI::ViewportComponent.new) { content },
41
+ render(UI::ScrollbarComponent.new(orientation: "vertical")),
42
+ render(UI::CornerComponent.new)
43
+ ])
46
44
  end
45
+ end
46
+ end
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # CornerComponent - ViewComponent implementation
4
- #
5
- # Intersection element between vertical and horizontal scrollbars.
6
- #
7
- # @example Default usage (automatically used by ScrollAreaComponent)
8
- # <%= render UI::CornerComponent.new %>
9
- class UI::ScrollAreaCornerComponent < ViewComponent::Base
10
- include UI::ScrollAreaCornerBehavior
3
+ # CornerComponent - ViewComponent implementation
4
+ #
5
+ # Intersection element between vertical and horizontal scrollbars.
6
+ #
7
+ # @example Default usage (automatically used by ScrollAreaComponent)
8
+ # <%= render UI::CornerComponent.new %>
9
+ class UI::ScrollAreaCornerComponent < ViewComponent::Base
10
+ include UI::ScrollAreaCornerBehavior
11
11
 
12
- # @param classes [String] Additional CSS classes to merge
13
- # @param attributes [Hash] Additional HTML attributes
14
- def initialize(classes: "", **attributes)
15
- @classes = classes
16
- @attributes = attributes
17
- end
12
+ # @param classes [String] Additional CSS classes to merge
13
+ # @param attributes [Hash] Additional HTML attributes
14
+ def initialize(classes: "", **attributes)
15
+ @classes = classes
16
+ @attributes = attributes
17
+ end
18
18
 
19
- def call
20
- content_tag :div, nil, **scroll_area_corner_html_attributes.deep_merge(@attributes)
21
- end
22
- end
19
+ def call
20
+ content_tag :div, nil, **scroll_area_corner_html_attributes.deep_merge(@attributes)
21
+ end
22
+ end
@@ -1,35 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ScrollbarComponent - ViewComponent implementation
4
- #
5
- # Custom scrollbar track that contains the draggable thumb.
6
- #
7
- # @example Vertical scrollbar (default)
8
- # <%= render UI::ScrollbarComponent.new(orientation: "vertical") %>
9
- #
10
- # @example Horizontal scrollbar
11
- # <%= render UI::ScrollbarComponent.new(orientation: "horizontal") %>
12
- class UI::ScrollAreaScrollbarComponent < ViewComponent::Base
13
- include UI::ScrollAreaScrollbarBehavior
3
+ # ScrollbarComponent - ViewComponent implementation
4
+ #
5
+ # Custom scrollbar track that contains the draggable thumb.
6
+ #
7
+ # @example Vertical scrollbar (default)
8
+ # <%= render UI::ScrollbarComponent.new(orientation: "vertical") %>
9
+ #
10
+ # @example Horizontal scrollbar
11
+ # <%= render UI::ScrollbarComponent.new(orientation: "horizontal") %>
12
+ class UI::ScrollAreaScrollbarComponent < ViewComponent::Base
13
+ include UI::ScrollAreaScrollbarBehavior
14
14
 
15
- # @param orientation [String] "vertical" or "horizontal"
16
- # @param classes [String] Additional CSS classes to merge
17
- # @param attributes [Hash] Additional HTML attributes
18
- def initialize(orientation: "vertical", classes: "", **attributes)
19
- @orientation = orientation
20
- @classes = classes
21
- @attributes = attributes
22
- end
15
+ # @param orientation [String] "vertical" or "horizontal"
16
+ # @param classes [String] Additional CSS classes to merge
17
+ # @param attributes [Hash] Additional HTML attributes
18
+ def initialize(orientation: "vertical", classes: "", **attributes)
19
+ @orientation = orientation
20
+ @classes = classes
21
+ @attributes = attributes
22
+ end
23
23
 
24
- def call
25
- scrollbar_attrs = scroll_area_scrollbar_html_attributes.deep_merge(@attributes)
24
+ def call
25
+ scrollbar_attrs = scroll_area_scrollbar_html_attributes.deep_merge(@attributes)
26
26
 
27
- # Add Stimulus target
28
- scrollbar_attrs[:data] ||= {}
29
- scrollbar_attrs[:data][:"ui--scroll-area-target"] = "scrollbar"
27
+ # Add Stimulus target
28
+ scrollbar_attrs[:data] ||= {}
29
+ scrollbar_attrs[:data][:"ui--scroll-area-target"] = "scrollbar"
30
30
 
31
- content_tag :div, **scrollbar_attrs do
32
- render UI::ThumbComponent.new
33
- end
34
- end
31
+ content_tag :div, **scrollbar_attrs do
32
+ render UI::ThumbComponent.new
35
33
  end
34
+ end
35
+ end
@@ -1,29 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ThumbComponent - ViewComponent implementation
4
- #
5
- # Draggable scroll indicator inside the scrollbar.
6
- #
7
- # @example Default usage (automatically used by ScrollbarComponent)
8
- # <%= render UI::ThumbComponent.new %>
9
- class UI::ScrollAreaThumbComponent < ViewComponent::Base
10
- include UI::ScrollAreaThumbBehavior
3
+ # ThumbComponent - ViewComponent implementation
4
+ #
5
+ # Draggable scroll indicator inside the scrollbar.
6
+ #
7
+ # @example Default usage (automatically used by ScrollbarComponent)
8
+ # <%= render UI::ThumbComponent.new %>
9
+ class UI::ScrollAreaThumbComponent < ViewComponent::Base
10
+ include UI::ScrollAreaThumbBehavior
11
11
 
12
- # @param classes [String] Additional CSS classes to merge
13
- # @param attributes [Hash] Additional HTML attributes
14
- def initialize(classes: "", **attributes)
15
- @classes = classes
16
- @attributes = attributes
17
- end
12
+ # @param classes [String] Additional CSS classes to merge
13
+ # @param attributes [Hash] Additional HTML attributes
14
+ def initialize(classes: "", **attributes)
15
+ @classes = classes
16
+ @attributes = attributes
17
+ end
18
18
 
19
- def call
20
- thumb_attrs = scroll_area_thumb_html_attributes.deep_merge(@attributes)
19
+ def call
20
+ thumb_attrs = scroll_area_thumb_html_attributes.deep_merge(@attributes)
21
21
 
22
- # Add Stimulus target and action for drag
23
- thumb_attrs[:data] ||= {}
24
- thumb_attrs[:data][:"ui--scroll-area-target"] = "thumb"
25
- thumb_attrs[:data][:action] = "pointerdown->ui--scroll-area#startDrag"
22
+ # Add Stimulus target and action for drag
23
+ thumb_attrs[:data] ||= {}
24
+ thumb_attrs[:data][:"ui--scroll-area-target"] = "thumb"
25
+ thumb_attrs[:data][:action] = "pointerdown->ui--scroll-area#startDrag"
26
26
 
27
- content_tag :div, nil, **thumb_attrs
28
- end
29
- end
27
+ content_tag :div, nil, **thumb_attrs
28
+ end
29
+ end
@@ -1,32 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ViewportComponent - ViewComponent implementation
4
- #
5
- # Scrollable content container with hidden native scrollbar.
6
- #
7
- # @example Basic usage (automatically used by ScrollAreaComponent)
8
- # <%= render UI::ViewportComponent.new do %>
9
- # <!-- Content here -->
10
- # <% end %>
11
- class UI::ScrollAreaViewportComponent < ViewComponent::Base
12
- include UI::ScrollAreaViewportBehavior
3
+ # ViewportComponent - ViewComponent implementation
4
+ #
5
+ # Scrollable content container with hidden native scrollbar.
6
+ #
7
+ # @example Basic usage (automatically used by ScrollAreaComponent)
8
+ # <%= render UI::ViewportComponent.new do %>
9
+ # <!-- Content here -->
10
+ # <% end %>
11
+ class UI::ScrollAreaViewportComponent < ViewComponent::Base
12
+ include UI::ScrollAreaViewportBehavior
13
13
 
14
- # @param classes [String] Additional CSS classes to merge
15
- # @param attributes [Hash] Additional HTML attributes
16
- def initialize(classes: "", **attributes)
17
- @classes = classes
18
- @attributes = attributes
19
- end
14
+ # @param classes [String] Additional CSS classes to merge
15
+ # @param attributes [Hash] Additional HTML attributes
16
+ def initialize(classes: "", **attributes)
17
+ @classes = classes
18
+ @attributes = attributes
19
+ end
20
20
 
21
- def call
22
- viewport_attrs = scroll_area_viewport_html_attributes.deep_merge(@attributes)
21
+ def call
22
+ viewport_attrs = scroll_area_viewport_html_attributes.deep_merge(@attributes)
23
23
 
24
- # Add Stimulus target
25
- viewport_attrs[:data] ||= {}
26
- viewport_attrs[:data][:"ui--scroll-area-target"] = "viewport"
24
+ # Add Stimulus target
25
+ viewport_attrs[:data] ||= {}
26
+ viewport_attrs[:data][:"ui--scroll-area-target"] = "viewport"
27
27
 
28
- content_tag :div, **viewport_attrs do
29
- content_tag :div, content, style: "min-width: 100%; display: table;"
30
- end
31
- end
28
+ content_tag :div, **viewport_attrs do
29
+ content_tag :div, content, style: "min-width: 100%; display: table;"
32
30
  end
31
+ end
32
+ end
@@ -1,31 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SelectComponent - ViewComponent implementation
4
- #
5
- # A custom select component with keyboard navigation, scrollable viewport, and form integration.
6
- # Root container that wraps trigger, content, and items.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::SelectComponent.new(value: "apple") do %>
10
- # <%= render UI::TriggerComponent.new(placeholder: "Select a fruit...") %>
11
- # <%= render UI::ContentComponent.new do %>
12
- # <%= render UI::ItemComponent.new(value: "apple") { "Apple" } %>
13
- # <%= render UI::ItemComponent.new(value: "banana") { "Banana" } %>
14
- # <% end %>
15
- # <% end %>
16
- class UI::SelectComponent < ViewComponent::Base
17
- include UI::SelectBehavior
3
+ # SelectComponent - ViewComponent implementation
4
+ #
5
+ # A custom select component with keyboard navigation, scrollable viewport, and form integration.
6
+ # Root container that wraps trigger, content, and items.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::SelectComponent.new(value: "apple") do %>
10
+ # <%= render UI::TriggerComponent.new(placeholder: "Select a fruit...") %>
11
+ # <%= render UI::ContentComponent.new do %>
12
+ # <%= render UI::ItemComponent.new(value: "apple") { "Apple" } %>
13
+ # <%= render UI::ItemComponent.new(value: "banana") { "Banana" } %>
14
+ # <% end %>
15
+ # <% end %>
16
+ class UI::SelectComponent < ViewComponent::Base
17
+ include UI::SelectBehavior
18
18
 
19
- # @param value [String] Currently selected value
20
- # @param classes [String] Additional CSS classes to merge
21
- # @param attributes [Hash] Additional HTML attributes
22
- def initialize(value: nil, classes: "", **attributes)
23
- @value = value
24
- @classes = classes
25
- @attributes = attributes
26
- end
19
+ # @param value [String] Currently selected value
20
+ # @param classes [String] Additional CSS classes to merge
21
+ # @param attributes [Hash] Additional HTML attributes
22
+ def initialize(value: nil, classes: "", **attributes)
23
+ @value = value
24
+ @classes = classes
25
+ @attributes = attributes
26
+ end
27
27
 
28
- def call
29
- content_tag :div, content, **select_html_attributes.deep_merge(@attributes)
30
- end
31
- end
28
+ def call
29
+ content_tag :div, content, **select_html_attributes.deep_merge(@attributes)
30
+ end
31
+ end
@@ -1,41 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ContentComponent - ViewComponent implementation
4
- #
5
- # Dropdown container that holds items and groups.
6
- # Includes scroll buttons and viewport.
7
- #
8
- # @example Basic usage
9
- # <%= render UI::ContentComponent.new do %>
10
- # <%= render UI::ItemComponent.new(value: "apple") { "Apple" } %>
11
- # <%= render UI::ItemComponent.new(value: "banana") { "Banana" } %>
12
- # <% end %>
13
- class UI::SelectContentComponent < ViewComponent::Base
14
- include UI::SelectContentBehavior
3
+ # ContentComponent - ViewComponent implementation
4
+ #
5
+ # Dropdown container that holds items and groups.
6
+ # Includes scroll buttons and viewport.
7
+ #
8
+ # @example Basic usage
9
+ # <%= render UI::ContentComponent.new do %>
10
+ # <%= render UI::ItemComponent.new(value: "apple") { "Apple" } %>
11
+ # <%= render UI::ItemComponent.new(value: "banana") { "Banana" } %>
12
+ # <% end %>
13
+ class UI::SelectContentComponent < ViewComponent::Base
14
+ include UI::SelectContentBehavior
15
15
 
16
- # @param classes [String] Additional CSS classes to merge
17
- # @param attributes [Hash] Additional HTML attributes
18
- def initialize(classes: "", **attributes)
19
- @classes = classes
20
- @attributes = attributes
21
- end
16
+ # @param classes [String] Additional CSS classes to merge
17
+ # @param attributes [Hash] Additional HTML attributes
18
+ def initialize(classes: "", **attributes)
19
+ @classes = classes
20
+ @attributes = attributes
21
+ end
22
22
 
23
- def call
24
- content_tag :div, **select_content_html_attributes.deep_merge(@attributes) do
25
- safe_join([
26
- render(UI::ScrollUpButtonComponent.new),
27
- content_tag(:div,
28
- content,
29
- data: {
30
- radix_select_viewport: true,
31
- ui__select_target: "viewport",
32
- action: "scroll->ui--select#handleScroll"
33
- },
34
- class: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 focus-visible:ring-ring/50 p-1",
35
- style: "overflow-y: auto; overflow-x: hidden;"
36
- ),
37
- render(UI::ScrollDownButtonComponent.new)
38
- ])
39
- end
40
- end
23
+ def call
24
+ content_tag :div, **select_content_html_attributes.deep_merge(@attributes) do
25
+ safe_join([
26
+ render(UI::SelectScrollUpButtonComponent.new),
27
+ content_tag(:div,
28
+ content,
29
+ data: {
30
+ radix_select_viewport: true,
31
+ ui__select_target: "viewport",
32
+ action: "scroll->ui--select#handleScroll"
33
+ },
34
+ class: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 focus-visible:ring-ring/50 p-1",
35
+ style: "overflow-y: auto; overflow-x: hidden;"),
36
+ render(UI::SelectScrollDownButtonComponent.new)
37
+ ])
41
38
  end
39
+ end
40
+ end
@@ -1,26 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # GroupComponent - ViewComponent implementation
4
- #
5
- # Container for grouping select items with a label.
6
- #
7
- # @example Basic usage
8
- # <%= render UI::GroupComponent.new do %>
9
- # <%= render UI::LabelComponent.new { "North America" } %>
10
- # <%= render UI::ItemComponent.new(value: "america/new_york") { "Eastern Time" } %>
11
- # <%= render UI::ItemComponent.new(value: "america/chicago") { "Central Time" } %>
12
- # <% end %>
13
- class UI::SelectGroupComponent < ViewComponent::Base
14
- include UI::SelectGroupBehavior
3
+ # GroupComponent - ViewComponent implementation
4
+ #
5
+ # Container for grouping select items with a label.
6
+ #
7
+ # @example Basic usage
8
+ # <%= render UI::GroupComponent.new do %>
9
+ # <%= render UI::LabelComponent.new { "North America" } %>
10
+ # <%= render UI::ItemComponent.new(value: "america/new_york") { "Eastern Time" } %>
11
+ # <%= render UI::ItemComponent.new(value: "america/chicago") { "Central Time" } %>
12
+ # <% end %>
13
+ class UI::SelectGroupComponent < ViewComponent::Base
14
+ include UI::SelectGroupBehavior
15
15
 
16
- # @param classes [String] Additional CSS classes to merge
17
- # @param attributes [Hash] Additional HTML attributes
18
- def initialize(classes: "", **attributes)
19
- @classes = classes
20
- @attributes = attributes
21
- end
16
+ # @param classes [String] Additional CSS classes to merge
17
+ # @param attributes [Hash] Additional HTML attributes
18
+ def initialize(classes: "", **attributes)
19
+ @classes = classes
20
+ @attributes = attributes
21
+ end
22
22
 
23
- def call
24
- content_tag :div, content, **select_group_html_attributes.deep_merge(@attributes)
25
- end
26
- end
23
+ def call
24
+ content_tag :div, content, **select_group_html_attributes.deep_merge(@attributes)
25
+ end
26
+ end