@gv-tech/ui-web 2.22.2 → 2.23.0

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 (468) hide show
  1. package/dist/accordion-Dd8Hrexd.mjs +244 -0
  2. package/dist/accordion-DdSOiVyo.js +1 -0
  3. package/dist/accordion.cjs +1 -1
  4. package/dist/accordion.d.ts +5 -7
  5. package/dist/accordion.d.ts.map +1 -1
  6. package/dist/accordion.mjs +1 -2
  7. package/dist/alert-dialog-B7zX3gJX.js +7 -0
  8. package/dist/alert-dialog-BQoG5g_w.mjs +213 -0
  9. package/dist/alert-dialog.cjs +1 -1
  10. package/dist/alert-dialog.d.ts +17 -21
  11. package/dist/alert-dialog.d.ts.map +1 -1
  12. package/dist/alert-dialog.mjs +2 -4
  13. package/dist/alert.cjs +1 -1
  14. package/dist/alert.d.ts +8 -8
  15. package/dist/alert.d.ts.map +1 -1
  16. package/dist/alert.mjs +37 -29
  17. package/dist/{aspect-ratio-CFWobEnT.mjs → aspect-ratio-DnChDaBi.mjs} +10 -4
  18. package/dist/{aspect-ratio-D9dApiWv.js → aspect-ratio-QD1ZXP2B.js} +1 -1
  19. package/dist/aspect-ratio.cjs +1 -1
  20. package/dist/aspect-ratio.d.ts +2 -4
  21. package/dist/aspect-ratio.d.ts.map +1 -1
  22. package/dist/aspect-ratio.mjs +1 -1
  23. package/dist/avatar-C4onD8-4.mjs +127 -0
  24. package/dist/avatar-ki_M47qG.js +1 -0
  25. package/dist/avatar.cjs +1 -1
  26. package/dist/avatar.d.ts +10 -7
  27. package/dist/avatar.d.ts.map +1 -1
  28. package/dist/avatar.mjs +2 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.d.ts +4 -5
  31. package/dist/badge.d.ts.map +1 -1
  32. package/dist/badge.mjs +17 -13
  33. package/dist/breadcrumb.cjs +1 -1
  34. package/dist/breadcrumb.d.ts +9 -17
  35. package/dist/breadcrumb.d.ts.map +1 -1
  36. package/dist/breadcrumb.mjs +67 -58
  37. package/dist/button-group.cjs +1 -0
  38. package/dist/button-group.d.ts +11 -0
  39. package/dist/button-group.d.ts.map +1 -0
  40. package/dist/button-group.mjs +39 -0
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.d.ts +3 -5
  43. package/dist/button.d.ts.map +1 -1
  44. package/dist/button.mjs +33 -26
  45. package/dist/calendar-D9sapvfY.js +1 -0
  46. package/dist/{calendar-DtFx4qdT.mjs → calendar-Dg6VGycy.mjs} +631 -625
  47. package/dist/calendar.cjs +1 -1
  48. package/dist/calendar.d.ts +5 -5
  49. package/dist/calendar.d.ts.map +1 -1
  50. package/dist/calendar.mjs +1 -2
  51. package/dist/card.cjs +1 -1
  52. package/dist/card.d.ts +10 -10
  53. package/dist/card.d.ts.map +1 -1
  54. package/dist/card.mjs +53 -40
  55. package/dist/carousel-6oFHLN7R.js +1 -0
  56. package/dist/{carousel-PQJ97GjQ.mjs → carousel-DbDoNdqJ.mjs} +54 -59
  57. package/dist/carousel.cjs +1 -1
  58. package/dist/carousel.d.ts +18 -13
  59. package/dist/carousel.d.ts.map +1 -1
  60. package/dist/carousel.mjs +2 -4
  61. package/dist/chart.cjs +3 -3
  62. package/dist/chart.d.ts +35 -7
  63. package/dist/chart.d.ts.map +1 -1
  64. package/dist/chart.mjs +64 -71
  65. package/dist/checkbox-BLgY82mB.js +1 -0
  66. package/dist/{checkbox-BOmSuATv.mjs → checkbox-Bts_zfqd.mjs} +32 -29
  67. package/dist/checkbox.cjs +1 -1
  68. package/dist/checkbox.d.ts +2 -5
  69. package/dist/checkbox.d.ts.map +1 -1
  70. package/dist/checkbox.mjs +1 -2
  71. package/dist/collapsible.cjs +1 -1
  72. package/dist/collapsible.d.ts +4 -6
  73. package/dist/collapsible.d.ts.map +1 -1
  74. package/dist/collapsible.mjs +21 -3
  75. package/dist/combobox-6qNx9Wbb.js +4 -0
  76. package/dist/combobox-yDMqxM_J.mjs +5522 -0
  77. package/dist/combobox.cjs +1 -0
  78. package/dist/combobox.d.ts +21 -0
  79. package/dist/combobox.d.ts.map +1 -0
  80. package/dist/combobox.mjs +4 -0
  81. package/dist/command-C6wJ5giF.mjs +576 -0
  82. package/dist/command-DCrPL1iW.js +1 -0
  83. package/dist/command.cjs +1 -1
  84. package/dist/command.d.ts +16 -80
  85. package/dist/command.d.ts.map +1 -1
  86. package/dist/command.mjs +1 -2
  87. package/dist/context-menu-CydUpD4W.mjs +349 -0
  88. package/dist/context-menu-DQ7XuuG5.js +1 -0
  89. package/dist/context-menu.cjs +1 -1
  90. package/dist/context-menu.d.ts +29 -21
  91. package/dist/context-menu.d.ts.map +1 -1
  92. package/dist/context-menu.mjs +1 -2
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.d.ts +15 -17
  95. package/dist/dialog.d.ts.map +1 -1
  96. package/dist/dialog.mjs +89 -43
  97. package/dist/direction.cjs +1 -0
  98. package/dist/direction.d.ts +7 -0
  99. package/dist/direction.d.ts.map +1 -0
  100. package/dist/direction.mjs +15 -0
  101. package/dist/dist-1C8JOpVg.js +1 -0
  102. package/dist/{dist-CTaBktQl.mjs → dist-B1OcuinL.mjs} +93 -92
  103. package/dist/dist-BGZDG175.mjs +199 -0
  104. package/dist/dist-BPBwSSyk.mjs +8 -0
  105. package/dist/{dist-BTlmz3JV.js → dist-BPX1UGAz2.js} +1 -1
  106. package/dist/dist-BRsDdVlJ.js +1 -0
  107. package/dist/{dist-_LAgxsbh.mjs → dist-BWwCr-xN.mjs} +10 -9
  108. package/dist/dist-BYdcKuDi.mjs +16 -0
  109. package/dist/{dist-DCKyUINZ.mjs → dist-BlB11V_z.mjs} +1 -1
  110. package/dist/dist-CCXBcfM3.js +1 -0
  111. package/dist/{dist--EFQaGUD.mjs → dist-CDU9vno-.mjs} +4 -4
  112. package/dist/dist-CJolxugc.js +1 -0
  113. package/dist/dist-CQhWBhaI.mjs +91 -0
  114. package/dist/dist-CRLbUj9C.js +1 -0
  115. package/dist/dist-CWElW7UD.js +1 -0
  116. package/dist/{dist-NIAlh3KC.js → dist-CXbzwSnE.js} +1 -1
  117. package/dist/{dist-C5EZ0AD6.mjs → dist-CYj6O95k.mjs} +42 -41
  118. package/dist/{dist-Bjlzl0jN.mjs → dist-Cacc4QIh.mjs} +13 -10
  119. package/dist/dist-ChuP-5Gb.js +1 -0
  120. package/dist/dist-CiM892Rg.js +1 -0
  121. package/dist/{dist-Doq7FY_P.js → dist-CuMQq0hV.js} +1 -1
  122. package/dist/dist-DMnXk8Uo.js +1 -0
  123. package/dist/{dist-CRmJFaEL.mjs → dist-DPBTfUqI.mjs} +18 -17
  124. package/dist/dist-DR0lXVFG.js +1 -0
  125. package/dist/dist-Da7BU5sd.js +5 -0
  126. package/dist/{dist-D_tuvB-W.mjs → dist-Dz3LbuDd.mjs} +8 -9
  127. package/dist/{dist-9gQKRtL7.mjs → dist-GhACpuJb2.mjs} +1 -1
  128. package/dist/dist-o4zlRoDG.js +1 -0
  129. package/dist/{dist-DdVp13bp.mjs → dist-rGeQfsgN.mjs} +1 -1
  130. package/dist/{dist-BQOrag93.mjs → dist-tvb2Wafb.mjs} +22 -21
  131. package/dist/drawer.cjs +1 -1
  132. package/dist/drawer.d.ts +10 -21
  133. package/dist/drawer.d.ts.map +1 -1
  134. package/dist/drawer.mjs +74 -45
  135. package/dist/dropdown-menu-BoJvZ3Fj.js +1 -0
  136. package/dist/dropdown-menu-CriaO1_i.mjs +347 -0
  137. package/dist/dropdown-menu.cjs +1 -1
  138. package/dist/dropdown-menu.d.ts +27 -21
  139. package/dist/dropdown-menu.d.ts.map +1 -1
  140. package/dist/dropdown-menu.mjs +1 -1
  141. package/dist/empty.cjs +1 -0
  142. package/dist/empty.d.ts +13 -0
  143. package/dist/empty.d.ts.map +1 -0
  144. package/dist/empty.mjs +60 -0
  145. package/dist/{es2015-DkZq_IIO.mjs → es2015-BhmbVcui.mjs} +2 -2
  146. package/dist/{es2015-Ca60p53M.js → es2015-D22cM8Q_.js} +1 -1
  147. package/dist/field.cjs +1 -0
  148. package/dist/field.d.ts +18 -0
  149. package/dist/field.d.ts.map +1 -0
  150. package/dist/field.mjs +109 -0
  151. package/dist/floating-ui.react-dom-DgS_bqyY.mjs +1089 -0
  152. package/dist/floating-ui.react-dom-DpCJEf_x.js +1 -0
  153. package/dist/form.cjs +1 -1
  154. package/dist/form.mjs +8 -8
  155. package/dist/hooks/use-mobile.d.ts +2 -0
  156. package/dist/hooks/use-mobile.d.ts.map +1 -0
  157. package/dist/hooks/use-theme.d.ts +16 -0
  158. package/dist/hooks/use-theme.d.ts.map +1 -1
  159. package/dist/{hover-card-BOk3-K0k.mjs → hover-card-CJ-ibpbC.mjs} +53 -33
  160. package/dist/hover-card-CK5SjVLL.js +1 -0
  161. package/dist/hover-card.cjs +1 -1
  162. package/dist/hover-card.d.ts +4 -6
  163. package/dist/hover-card.d.ts.map +1 -1
  164. package/dist/hover-card.mjs +1 -2
  165. package/dist/index.cjs +1 -1
  166. package/dist/index.d.ts +14 -43
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.mjs +66 -54
  169. package/dist/input-group.cjs +1 -0
  170. package/dist/input-group.d.ts +18 -0
  171. package/dist/input-group.d.ts.map +1 -0
  172. package/dist/input-group.mjs +78 -0
  173. package/dist/input-otp-BH_9dVhh.mjs +391 -0
  174. package/dist/input-otp-BibboKMt.js +20 -0
  175. package/dist/input-otp.cjs +1 -0
  176. package/dist/input-otp.d.ts +9 -0
  177. package/dist/input-otp.d.ts.map +1 -0
  178. package/dist/input-otp.mjs +4 -0
  179. package/dist/input.cjs +1 -1
  180. package/dist/input.d.ts +1 -4
  181. package/dist/input.d.ts.map +1 -1
  182. package/dist/input.mjs +11 -11
  183. package/dist/item.cjs +1 -0
  184. package/dist/item.d.ts +25 -0
  185. package/dist/item.d.ts.map +1 -0
  186. package/dist/item.mjs +118 -0
  187. package/dist/kbd.cjs +1 -0
  188. package/dist/kbd.d.ts +5 -0
  189. package/dist/kbd.d.ts.map +1 -0
  190. package/dist/kbd.mjs +20 -0
  191. package/dist/label-BXMSoyyu.js +1 -0
  192. package/dist/label-C8GNfPU0.mjs +25 -0
  193. package/dist/label.cjs +1 -1
  194. package/dist/label.d.ts +2 -5
  195. package/dist/label.d.ts.map +1 -1
  196. package/dist/label.mjs +1 -2
  197. package/dist/menubar-BcyqIJgy.mjs +441 -0
  198. package/dist/menubar-DPxokWFI.js +1 -0
  199. package/dist/menubar.cjs +1 -1
  200. package/dist/menubar.d.ts +25 -19
  201. package/dist/menubar.d.ts.map +1 -1
  202. package/dist/menubar.mjs +1 -1
  203. package/dist/native-select.cjs +1 -0
  204. package/dist/native-select.d.ts +8 -0
  205. package/dist/native-select.d.ts.map +1 -0
  206. package/dist/native-select.mjs +39 -0
  207. package/dist/navigation-menu-2yE2MUu-.js +1 -0
  208. package/dist/navigation-menu-N8gkxEXE.mjs +628 -0
  209. package/dist/navigation-menu.cjs +1 -1
  210. package/dist/navigation-menu.d.ts +11 -11
  211. package/dist/navigation-menu.d.ts.map +1 -1
  212. package/dist/navigation-menu.mjs +1 -2
  213. package/dist/pagination.cjs +1 -1
  214. package/dist/pagination.d.ts +13 -26
  215. package/dist/pagination.d.ts.map +1 -1
  216. package/dist/pagination.mjs +76 -59
  217. package/dist/popover-D1AO-E8p.js +1 -0
  218. package/dist/popover-wQACF3ut.mjs +245 -0
  219. package/dist/popover.cjs +1 -1
  220. package/dist/popover.d.ts +9 -8
  221. package/dist/popover.d.ts.map +1 -1
  222. package/dist/popover.mjs +2 -3
  223. package/dist/{progress-30ehxjKg.mjs → progress-DPWSEWa5.mjs} +19 -14
  224. package/dist/{progress-BqWHea4f.js → progress-ShXZwOfj.js} +2 -2
  225. package/dist/progress.cjs +1 -1
  226. package/dist/progress.d.ts +2 -4
  227. package/dist/progress.d.ts.map +1 -1
  228. package/dist/progress.mjs +1 -1
  229. package/dist/radio-group-CQbZCQmj.mjs +199 -0
  230. package/dist/radio-group-DAEi5vW_.js +1 -0
  231. package/dist/radio-group.cjs +1 -1
  232. package/dist/radio-group.d.ts +3 -8
  233. package/dist/radio-group.d.ts.map +1 -1
  234. package/dist/radio-group.mjs +1 -2
  235. package/dist/resizable-Cv-mKMKP.js +1 -0
  236. package/dist/{resizable-DhOcAmNX.mjs → resizable-DJSE3e5L.mjs} +310 -282
  237. package/dist/resizable.cjs +1 -1
  238. package/dist/resizable.d.ts +6 -7
  239. package/dist/resizable.d.ts.map +1 -1
  240. package/dist/resizable.mjs +1 -1
  241. package/dist/{scroll-area-DJcPs0_v.mjs → scroll-area-8QcqkHnC.mjs} +69 -58
  242. package/dist/scroll-area-Cqqinhxf.js +1 -0
  243. package/dist/scroll-area.cjs +1 -1
  244. package/dist/scroll-area.d.ts +3 -5
  245. package/dist/scroll-area.d.ts.map +1 -1
  246. package/dist/scroll-area.mjs +1 -2
  247. package/dist/search.cjs +1 -1
  248. package/dist/search.d.ts +1 -1
  249. package/dist/search.d.ts.map +1 -1
  250. package/dist/search.mjs +15 -14
  251. package/dist/select-DdUveoSA.js +1 -0
  252. package/dist/{select-D4bxRFq5.mjs → select-yoeH35x2.mjs} +279 -245
  253. package/dist/select.cjs +1 -1
  254. package/dist/select.d.ts +13 -13
  255. package/dist/select.d.ts.map +1 -1
  256. package/dist/select.mjs +1 -1
  257. package/dist/{separator-DZACUutC.mjs → separator-BU1ea5gl.mjs} +14 -10
  258. package/dist/separator-DBjErwHf.js +1 -0
  259. package/dist/separator.cjs +1 -1
  260. package/dist/separator.d.ts +2 -4
  261. package/dist/separator.d.ts.map +1 -1
  262. package/dist/separator.mjs +1 -2
  263. package/dist/sheet.cjs +1 -1
  264. package/dist/sheet.d.ts +13 -26
  265. package/dist/sheet.d.ts.map +1 -1
  266. package/dist/sheet.mjs +84 -54
  267. package/dist/shim-B5sEfNEJ.js +1 -0
  268. package/dist/shim-DX33EwUw.mjs +91 -0
  269. package/dist/sidebar-B-sWccYh.mjs +355 -0
  270. package/dist/sidebar-DIW-1cin.js +1 -0
  271. package/dist/sidebar.cjs +1 -0
  272. package/dist/sidebar.d.ts +45 -0
  273. package/dist/sidebar.d.ts.map +1 -0
  274. package/dist/sidebar.mjs +5 -0
  275. package/dist/skeleton.cjs +1 -1
  276. package/dist/skeleton.d.ts +1 -4
  277. package/dist/skeleton.d.ts.map +1 -1
  278. package/dist/skeleton.mjs +2 -3
  279. package/dist/{slider-DTdrUy_s.mjs → slider-CCPXejUF.mjs} +81 -59
  280. package/dist/slider-w05gD_Ix.js +1 -0
  281. package/dist/slider.cjs +1 -1
  282. package/dist/slider.d.ts +2 -4
  283. package/dist/slider.d.ts.map +1 -1
  284. package/dist/slider.mjs +1 -1
  285. package/dist/sonner.cjs +1 -1
  286. package/dist/sonner.d.ts +1 -5
  287. package/dist/sonner.d.ts.map +1 -1
  288. package/dist/sonner.mjs +23 -16
  289. package/dist/spinner.cjs +1 -0
  290. package/dist/spinner.d.ts +4 -0
  291. package/dist/spinner.d.ts.map +1 -0
  292. package/dist/spinner.mjs +15 -0
  293. package/dist/support-fab.cjs +1 -1
  294. package/dist/support-fab.mjs +1 -1
  295. package/dist/switch-CDBqsWQa.mjs +112 -0
  296. package/dist/switch-X2WBJsUu.js +1 -0
  297. package/dist/switch.cjs +1 -1
  298. package/dist/switch.d.ts +4 -4
  299. package/dist/switch.d.ts.map +1 -1
  300. package/dist/switch.mjs +1 -1
  301. package/dist/table.cjs +1 -1
  302. package/dist/table.d.ts +8 -10
  303. package/dist/table.d.ts.map +1 -1
  304. package/dist/table.mjs +62 -54
  305. package/dist/tabs-DzvgrVzk.js +1 -0
  306. package/dist/tabs-KDeHjVQU.mjs +160 -0
  307. package/dist/tabs.cjs +1 -1
  308. package/dist/tabs.d.ts +10 -8
  309. package/dist/tabs.d.ts.map +1 -1
  310. package/dist/tabs.mjs +2 -2
  311. package/dist/text.d.ts +1 -1
  312. package/dist/textarea.cjs +1 -1
  313. package/dist/textarea.d.ts +1 -4
  314. package/dist/textarea.d.ts.map +1 -1
  315. package/dist/textarea.mjs +10 -10
  316. package/dist/{theme-toggle-Dtze9fyN.js → theme-toggle-C2Y4bIM3.js} +1 -1
  317. package/dist/{theme-toggle-DAHBgdy0.mjs → theme-toggle-clE-HpSS.mjs} +9 -9
  318. package/dist/theme-toggle.cjs +1 -1
  319. package/dist/theme-toggle.mjs +1 -2
  320. package/dist/toast-1keyrzem.js +1 -0
  321. package/dist/{toast-G9LdgDDE.mjs → toast-DVI6jPq5.mjs} +102 -101
  322. package/dist/toast.cjs +1 -1
  323. package/dist/toast.d.ts.map +1 -1
  324. package/dist/toast.mjs +1 -1
  325. package/dist/{toaster-WQJjavlc.mjs → toaster-Czhz-ktg.mjs} +1 -1
  326. package/dist/{toaster-CKD4CKAZ.js → toaster-DfDb2-aI.js} +1 -1
  327. package/dist/toaster.cjs +1 -1
  328. package/dist/toaster.mjs +1 -1
  329. package/dist/toggle-BGkq5XDM.js +1 -0
  330. package/dist/toggle-BfIIdlA6.mjs +58 -0
  331. package/dist/toggle-group-CbqgoPFU.mjs +167 -0
  332. package/dist/toggle-group-D7hR4BT2.js +1 -0
  333. package/dist/toggle-group.cjs +1 -1
  334. package/dist/toggle-group.d.ts +7 -9
  335. package/dist/toggle-group.d.ts.map +1 -1
  336. package/dist/toggle-group.mjs +1 -1
  337. package/dist/toggle.cjs +1 -1
  338. package/dist/toggle.d.ts +6 -5
  339. package/dist/toggle.d.ts.map +1 -1
  340. package/dist/toggle.mjs +2 -19
  341. package/dist/tooltip-CAIbshMk.js +1 -0
  342. package/dist/{tooltip-BHEcM7lO.mjs → tooltip-D_o8Z-Ya.mjs} +106 -90
  343. package/dist/tooltip.cjs +1 -1
  344. package/dist/tooltip.d.ts +5 -10
  345. package/dist/tooltip.d.ts.map +1 -1
  346. package/dist/tooltip.mjs +1 -1
  347. package/package.json +8 -6
  348. package/src/accordion.tsx +58 -51
  349. package/src/alert-dialog.tsx +140 -93
  350. package/src/alert.tsx +44 -33
  351. package/src/aspect-ratio.tsx +10 -4
  352. package/src/avatar.tsx +92 -37
  353. package/src/badge.tsx +24 -14
  354. package/src/breadcrumb.tsx +73 -85
  355. package/src/button-group.tsx +78 -0
  356. package/src/button.tsx +46 -24
  357. package/src/calendar.tsx +52 -40
  358. package/src/card.tsx +67 -42
  359. package/src/carousel.tsx +164 -174
  360. package/src/chart.tsx +206 -232
  361. package/src/checkbox.tsx +17 -17
  362. package/src/collapsible.tsx +16 -10
  363. package/src/combobox.tsx +282 -0
  364. package/src/command.tsx +123 -120
  365. package/src/context-menu.tsx +206 -179
  366. package/src/dialog.tsx +111 -65
  367. package/src/direction.tsx +18 -0
  368. package/src/drawer.tsx +75 -78
  369. package/src/dropdown-menu.tsx +211 -180
  370. package/src/empty.tsx +83 -0
  371. package/src/field.tsx +217 -0
  372. package/src/hooks/use-mobile.ts +19 -0
  373. package/src/hover-card.tsx +33 -27
  374. package/src/index.ts +108 -154
  375. package/src/input-group.tsx +143 -0
  376. package/src/input-otp.tsx +81 -0
  377. package/src/input.tsx +8 -8
  378. package/src/item.tsx +185 -0
  379. package/src/kbd.tsx +21 -0
  380. package/src/label.tsx +17 -14
  381. package/src/menubar.tsx +211 -199
  382. package/src/native-select.tsx +54 -0
  383. package/src/navigation-menu.tsx +115 -110
  384. package/src/pagination.tsx +65 -80
  385. package/src/popover.tsx +53 -41
  386. package/src/progress.tsx +22 -20
  387. package/src/radio-group.tsx +22 -34
  388. package/src/resizable.tsx +34 -49
  389. package/src/scroll-area.tsx +43 -35
  390. package/src/search.tsx +12 -9
  391. package/src/select.tsx +138 -133
  392. package/src/separator.tsx +25 -18
  393. package/src/sheet.tsx +97 -127
  394. package/src/sidebar.tsx +660 -0
  395. package/src/skeleton.tsx +7 -6
  396. package/src/slider.tsx +51 -19
  397. package/src/sonner.tsx +22 -12
  398. package/src/spinner.tsx +10 -0
  399. package/src/support-fab.tsx +1 -1
  400. package/src/switch.tsx +28 -21
  401. package/src/table.tsx +61 -87
  402. package/src/tabs.tsx +75 -56
  403. package/src/textarea.tsx +8 -10
  404. package/src/toast.tsx +5 -0
  405. package/src/toggle-group.tsx +76 -40
  406. package/src/toggle.tsx +35 -15
  407. package/src/tooltip.tsx +41 -43
  408. package/dist/accordion-BTF24dQU.js +0 -1
  409. package/dist/accordion-DHTV2Am8.mjs +0 -221
  410. package/dist/alert-dialog-Bwn2-Uyf.mjs +0 -164
  411. package/dist/alert-dialog-DBMX5E0-.js +0 -7
  412. package/dist/avatar-BI7s8omb.js +0 -1
  413. package/dist/avatar-hzlewncL.mjs +0 -185
  414. package/dist/calendar-ykdYhTj9.js +0 -1
  415. package/dist/carousel-DSmAn1nc.js +0 -1
  416. package/dist/checkbox-dK6DJKeV.js +0 -1
  417. package/dist/command-CDSbHz4C.js +0 -1
  418. package/dist/command-j0rZqZ7B.mjs +0 -531
  419. package/dist/context-menu-BWgLbKLP.js +0 -1
  420. package/dist/context-menu-CWSzssAO.mjs +0 -292
  421. package/dist/dist-B28N93_W.js +0 -1
  422. package/dist/dist-B43Kk7ii.js +0 -1
  423. package/dist/dist-BTPL2C0R.js +0 -1
  424. package/dist/dist-BjEG16aJ.mjs +0 -111
  425. package/dist/dist-BlKAvKHD.js +0 -1
  426. package/dist/dist-C3Z3atn0.mjs +0 -10
  427. package/dist/dist-C4q8IPk4.mjs +0 -28
  428. package/dist/dist-CPglx4om.js +0 -1
  429. package/dist/dist-CV2U2xFR.js +0 -1
  430. package/dist/dist-Cv9YaN1n.mjs +0 -61
  431. package/dist/dist-DAe-fOIM.mjs +0 -25
  432. package/dist/dist-DQAJMTj0.js +0 -1
  433. package/dist/dist-DaCPM8ia.js +0 -1
  434. package/dist/dist-DasmYflz.js +0 -1
  435. package/dist/dist-DneYUKe0.js +0 -1
  436. package/dist/dist-Du2jbEkG.mjs +0 -1282
  437. package/dist/dist-Dw6-GQAn.js +0 -1
  438. package/dist/dist-DwGlbIjj.js +0 -5
  439. package/dist/dist-Dzjlf9ug.js +0 -1
  440. package/dist/dist-GaBUW_Tu.js +0 -1
  441. package/dist/dropdown-menu-Bz5LlLjl.js +0 -1
  442. package/dist/dropdown-menu-Cp1qpOLk.mjs +0 -288
  443. package/dist/hover-card-CyKIuXGH.js +0 -1
  444. package/dist/label-DGuuPl_e.mjs +0 -22
  445. package/dist/label-gVkdll-j.js +0 -1
  446. package/dist/menubar-DNrIQhY5.mjs +0 -410
  447. package/dist/menubar-DkjAo6qJ.js +0 -1
  448. package/dist/navigation-menu-1cmCEi0j.mjs +0 -602
  449. package/dist/navigation-menu-qPt8hpr5.js +0 -1
  450. package/dist/popover-CbM1tqdC.mjs +0 -201
  451. package/dist/popover-DGTgqdKX.js +0 -1
  452. package/dist/radio-group-BGThTiQM.mjs +0 -193
  453. package/dist/radio-group-ClFpAswm.js +0 -1
  454. package/dist/resizable-D09wr7tV.js +0 -1
  455. package/dist/scroll-area-W_aOLOdE.js +0 -1
  456. package/dist/select-BQtkQBiD.js +0 -1
  457. package/dist/separator-BmkhoDge.js +0 -1
  458. package/dist/slider-Bkluwc3b.js +0 -1
  459. package/dist/switch-DENAxyga.js +0 -1
  460. package/dist/switch-DbsdyQVg.mjs +0 -103
  461. package/dist/tabs-C9sMowgZ.mjs +0 -136
  462. package/dist/tabs-DeK-zpy4.js +0 -1
  463. package/dist/toast-BtXY2QTe.js +0 -1
  464. package/dist/toggle-group-B0H9TwdD.mjs +0 -155
  465. package/dist/toggle-group-CAyztsIl.js +0 -1
  466. package/dist/tooltip-CKcMl7tK.js +0 -1
  467. /package/dist/{dist-C_45sBzc.js → dist-C_45sBzc2.js} +0 -0
  468. /package/dist/{dist-DGzGsPqo.mjs → dist-DGzGsPqo2.mjs} +0 -0
@@ -1,42 +1,30 @@
1
- 'use client';
2
- import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
3
- import { Circle } from 'lucide-react';
1
+ import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
4
2
  import * as React from 'react';
5
3
 
6
- import type { RadioGroupBaseProps, RadioGroupItemBaseProps } from '@gv-tech/ui-core';
7
4
  import { cn } from './lib/utils';
8
5
 
9
- export interface RadioGroupProps
10
- extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>, RadioGroupBaseProps {}
6
+ function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
7
+ return <RadioGroupPrimitive.Root data-slot="radio-group" className={cn('grid w-full gap-2', className)} {...props} />;
8
+ }
11
9
 
12
- const RadioGroup = React.forwardRef<React.ElementRef<typeof RadioGroupPrimitive.Root>, RadioGroupProps>(
13
- ({ className, ...props }, ref) => {
14
- return <RadioGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={ref} />;
15
- },
16
- );
17
- RadioGroup.displayName = RadioGroupPrimitive.Root?.displayName || 'RadioGroup';
18
-
19
- export interface RadioGroupItemProps
20
- extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, RadioGroupItemBaseProps {}
21
-
22
- const RadioGroupItem = React.forwardRef<React.ElementRef<typeof RadioGroupPrimitive.Item>, RadioGroupItemProps>(
23
- ({ className, ...props }, ref) => {
24
- return (
25
- <RadioGroupPrimitive.Item
26
- ref={ref}
27
- className={cn(
28
- 'border-primary text-primary focus-visible:ring-ring aspect-square h-4 w-4 rounded-full border shadow focus:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50',
29
- className,
30
- )}
31
- {...props}
10
+ function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
11
+ return (
12
+ <RadioGroupPrimitive.Item
13
+ data-slot="radio-group-item"
14
+ className={cn(
15
+ 'group/radio-group-item peer border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary relative flex aspect-square size-4 shrink-0 rounded-full border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3',
16
+ className,
17
+ )}
18
+ {...props}
19
+ >
20
+ <RadioGroupPrimitive.Indicator
21
+ data-slot="radio-group-indicator"
22
+ className="flex size-4 items-center justify-center"
32
23
  >
33
- <RadioGroupPrimitive.Indicator className="flex items-center justify-center">
34
- <Circle className="fill-primary h-3.5 w-3.5" />
35
- </RadioGroupPrimitive.Indicator>
36
- </RadioGroupPrimitive.Item>
37
- );
38
- },
39
- );
40
- RadioGroupItem.displayName = RadioGroupPrimitive.Item?.displayName || 'RadioGroupItem';
24
+ <span className="bg-primary-foreground absolute start-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full rtl:translate-x-1/2" />
25
+ </RadioGroupPrimitive.Indicator>
26
+ </RadioGroupPrimitive.Item>
27
+ );
28
+ }
41
29
 
42
30
  export { RadioGroup, RadioGroupItem };
package/src/resizable.tsx CHANGED
@@ -1,59 +1,44 @@
1
1
  'use client';
2
2
 
3
- import { GripVertical } from 'lucide-react';
4
- import * as React from 'react';
5
- import { Group, Panel, Separator } from 'react-resizable-panels';
3
+ import * as ResizablePrimitive from 'react-resizable-panels';
6
4
 
7
- import { ResizableHandleBaseProps, ResizablePanelBaseProps, ResizablePanelGroupBaseProps } from '@gv-tech/ui-core';
8
5
  import { cn } from './lib/utils';
9
6
 
10
- // Assuming newer version uses PanelGroup/PanelResizeHandle, but user code used Group/Separator.
11
- // Let's check if PanelGroup exists, if not fallback to Group.
12
- // Actually, I should inspect the user's code again.
13
- // User code:
14
- // const ResizablePanelGroup = ({ ... }: React.ComponentProps<typeof Group> ...
15
- // const ResizableHandle = ({ ... }: React.ComponentProps<typeof Separator> ...
16
-
17
- // It seems the user is using an older version or a specific version where Group and Separator are the exports.
18
- // I will align with user's code.
19
-
20
- const ResizablePanelGroup = ({
21
- className,
22
- direction,
23
- ...props
24
- }: React.ComponentProps<typeof Group> & ResizablePanelGroupBaseProps) => (
25
- <Group
26
- orientation={direction}
27
- className={cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className)}
28
- {...props}
29
- />
30
- );
31
-
32
- const ResizablePanel = Panel;
33
-
34
- const ResizableHandle = ({
7
+ function ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {
8
+ return (
9
+ <ResizablePrimitive.Group
10
+ data-slot="resizable-panel-group"
11
+ className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}
12
+ {...props}
13
+ />
14
+ );
15
+ }
16
+
17
+ function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {
18
+ return <ResizablePrimitive.Panel data-slot="resizable-panel" {...props} />;
19
+ }
20
+
21
+ function ResizableHandle({
35
22
  withHandle,
36
23
  className,
37
24
  ...props
38
- }: React.ComponentProps<typeof Separator> & ResizableHandleBaseProps) => (
39
- <Separator
40
- className={cn(
41
- 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-none data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90',
42
- className,
43
- )}
44
- {...props}
45
- >
46
- {withHandle && (
47
- <div className="bg-border z-10 flex h-4 w-3 items-center justify-center rounded-sm border">
48
- <GripVertical className="h-2.5 w-2.5" />
49
- </div>
50
- )}
51
- </Separator>
52
- );
25
+ }: ResizablePrimitive.SeparatorProps & {
26
+ withHandle?: boolean;
27
+ }) {
28
+ return (
29
+ <ResizablePrimitive.Separator
30
+ data-slot="resizable-handle"
31
+ className={cn(
32
+ 'bg-border ring-offset-background focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:start-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:start-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 rtl:after:translate-x-1/2 rtl:aria-[orientation=horizontal]:after:-translate-x-0 [&[aria-orientation=horizontal]>div]:rotate-90',
33
+ className,
34
+ )}
35
+ {...props}
36
+ >
37
+ {withHandle && <div className="bg-border z-10 flex h-6 w-1 shrink-0 rounded-lg" />}
38
+ </ResizablePrimitive.Separator>
39
+ );
40
+ }
53
41
 
54
42
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
55
- export type {
56
- ResizableHandleBaseProps as ResizableHandleProps,
57
- ResizablePanelGroupBaseProps as ResizablePanelGroupProps,
58
- ResizablePanelBaseProps as ResizablePanelProps,
59
- };
43
+
44
+ // The script was manually reverted here
@@ -1,42 +1,50 @@
1
- 'use client';
2
-
3
- import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
1
+ import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
4
2
  import * as React from 'react';
5
3
 
6
- import { ScrollAreaBaseProps, ScrollBarBaseProps } from '@gv-tech/ui-core';
7
4
  import { cn } from './lib/utils';
8
5
 
9
- const ScrollArea = React.forwardRef<
10
- React.ElementRef<typeof ScrollAreaPrimitive.Root>,
11
- React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & ScrollAreaBaseProps
12
- >(({ className, children, ...props }, ref) => (
13
- <ScrollAreaPrimitive.Root ref={ref} className={cn('relative overflow-hidden', className)} {...props}>
14
- <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">{children}</ScrollAreaPrimitive.Viewport>
15
- <ScrollBar />
16
- <ScrollAreaPrimitive.Corner />
17
- </ScrollAreaPrimitive.Root>
18
- ));
19
- ScrollArea.displayName = ScrollAreaPrimitive.Root?.displayName || 'ScrollArea';
6
+ import type { ScrollAreaBaseProps } from '@gv-tech/ui-core';
7
+
8
+ function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {
9
+ return (
10
+ <ScrollAreaPrimitive.Root data-slot="scroll-area" className={cn('relative', className)} {...props}>
11
+ <ScrollAreaPrimitive.Viewport
12
+ data-slot="scroll-area-viewport"
13
+ className="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
14
+ >
15
+ {children}
16
+ </ScrollAreaPrimitive.Viewport>
17
+ <ScrollBar />
18
+ <ScrollAreaPrimitive.Corner />
19
+ </ScrollAreaPrimitive.Root>
20
+ );
21
+ }
20
22
 
21
- const ScrollBar = React.forwardRef<
22
- React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
23
- React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar> & ScrollBarBaseProps
24
- >(({ className, orientation = 'vertical', ...props }, ref) => (
25
- <ScrollAreaPrimitive.ScrollAreaScrollbar
26
- ref={ref}
27
- orientation={orientation}
28
- className={cn(
29
- 'flex touch-none transition-colors select-none',
30
- orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',
31
- orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',
32
- className,
33
- )}
34
- {...props}
35
- >
36
- <ScrollAreaPrimitive.ScrollAreaThumb className="bg-border relative flex-1 rounded-full" />
37
- </ScrollAreaPrimitive.ScrollAreaScrollbar>
38
- ));
39
- ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar?.displayName || 'ScrollBar';
23
+ function ScrollBar({
24
+ className,
25
+ orientation = 'vertical',
26
+ ...props
27
+ }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {
28
+ return (
29
+ <ScrollAreaPrimitive.ScrollAreaScrollbar
30
+ data-slot="scroll-area-scrollbar"
31
+ data-orientation={orientation}
32
+ orientation={orientation}
33
+ className={cn(
34
+ 'flex touch-none p-px transition-colors select-none data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-s data-[orientation=vertical]:border-s-transparent',
35
+ className,
36
+ )}
37
+ {...props}
38
+ >
39
+ <ScrollAreaPrimitive.ScrollAreaThumb
40
+ data-slot="scroll-area-thumb"
41
+ className="bg-border relative flex-1 rounded-full"
42
+ />
43
+ </ScrollAreaPrimitive.ScrollAreaScrollbar>
44
+ );
45
+ }
40
46
 
41
47
  export { ScrollArea, ScrollBar };
42
- export type { ScrollAreaBaseProps as ScrollAreaProps, ScrollBarBaseProps as ScrollBarProps };
48
+
49
+ // Verify that the component satisfies the ui-core contract
50
+ const _verifyScrollAreaContract: ScrollAreaBaseProps = {} as unknown as React.ComponentProps<typeof ScrollArea>;
package/src/search.tsx CHANGED
@@ -9,7 +9,7 @@ import { cn } from './lib/utils';
9
9
 
10
10
  export type SearchProps = SearchBaseProps;
11
11
 
12
- export function Search({ children, open: customOpen, onOpenChange }: SearchProps) {
12
+ export function Search({ children, open: customOpen, onOpenChange, disableShortcut }: SearchProps) {
13
13
  const [open, setOpen] = React.useState(false);
14
14
 
15
15
  // If customOpen is provided (controlled), use it. Otherwise use internal state.
@@ -38,6 +38,10 @@ export function Search({ children, open: customOpen, onOpenChange }: SearchProps
38
38
  );
39
39
 
40
40
  React.useEffect(() => {
41
+ if (disableShortcut) {
42
+ return;
43
+ }
44
+
41
45
  const down = (e: KeyboardEvent) => {
42
46
  if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {
43
47
  e.preventDefault();
@@ -47,7 +51,7 @@ export function Search({ children, open: customOpen, onOpenChange }: SearchProps
47
51
 
48
52
  document.addEventListener('keydown', down);
49
53
  return () => document.removeEventListener('keydown', down);
50
- }, [setIsOpen]);
54
+ }, [setIsOpen, disableShortcut]);
51
55
 
52
56
  return (
53
57
  <CommandDialog open={isOpen} onOpenChange={setIsOpen}>
@@ -59,7 +63,7 @@ export function Search({ children, open: customOpen, onOpenChange }: SearchProps
59
63
  export interface SearchTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, SearchTriggerBaseProps {}
60
64
 
61
65
  export const SearchTrigger = React.forwardRef<HTMLButtonElement, SearchTriggerProps>(
62
- ({ className, placeholder, variant = 'default', responsive = false, ...props }, ref) => {
66
+ ({ className, placeholder, variant = 'default', responsive = true, ...props }, ref) => {
63
67
  const defaultPlaceholder = variant === 'compact' ? 'Search...' : 'Search docs...';
64
68
  const activePlaceholder = placeholder || defaultPlaceholder;
65
69
 
@@ -70,23 +74,22 @@ export const SearchTrigger = React.forwardRef<HTMLButtonElement, SearchTriggerPr
70
74
  'text-muted-foreground relative h-9 text-sm transition-all transition-colors',
71
75
  variant === 'default'
72
76
  ? 'w-full justify-start pr-12'
73
- : cn('w-9 justify-center px-0', responsive && '2xl:w-48 2xl:justify-start 2xl:px-3 2xl:pr-12'),
77
+ : cn('w-auto justify-between gap-2 px-2', responsive && 'md:w-64 md:px-3'),
74
78
  className,
75
79
  )}
76
80
  ref={ref}
77
81
  {...props}
78
82
  >
79
- <span className="inline-flex items-center gap-2">
83
+ <span className="inline-flex flex-1 items-center gap-2 overflow-hidden">
80
84
  <SearchIcon className="h-4 w-4 shrink-0" />
81
- <span className={cn('truncate', variant === 'compact' && (responsive ? 'hidden 2xl:inline' : 'hidden'))}>
85
+ <span className={cn('truncate', variant === 'compact' && (responsive ? 'hidden md:inline' : 'hidden'))}>
82
86
  {activePlaceholder}
83
87
  </span>
84
88
  </span>
85
89
  <kbd
86
90
  className={cn(
87
- 'bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none',
88
- variant === 'default' && 'sm:flex',
89
- variant === 'compact' && responsive && '2xl:flex',
91
+ 'bg-muted pointer-events-none h-6 shrink-0 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none',
92
+ variant === 'default' ? 'absolute top-1.5 right-1.5 hidden sm:flex' : 'flex',
90
93
  )}
91
94
  >
92
95
  <span className="text-xs">⌘</span>K
package/src/select.tsx CHANGED
@@ -1,146 +1,161 @@
1
1
  'use client';
2
2
 
3
- import * as SelectPrimitive from '@radix-ui/react-select';
4
- import { Check, ChevronDown, ChevronUp } from 'lucide-react';
3
+ import { Select as SelectPrimitive } from 'radix-ui';
5
4
  import * as React from 'react';
6
5
 
7
- import {
8
- SelectBaseProps,
9
- SelectContentBaseProps,
10
- SelectGroupBaseProps,
11
- SelectItemBaseProps,
12
- SelectLabelBaseProps,
13
- SelectScrollDownButtonBaseProps,
14
- SelectScrollUpButtonBaseProps,
15
- SelectSeparatorBaseProps,
16
- SelectTriggerBaseProps,
17
- SelectValueBaseProps,
18
- } from '@gv-tech/ui-core';
6
+ import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';
19
7
  import { cn } from './lib/utils';
20
8
 
21
- const Select = SelectPrimitive.Root;
9
+ import type { SelectBaseProps } from '@gv-tech/ui-core';
22
10
 
23
- const SelectGroup = SelectPrimitive.Group;
11
+ function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {
12
+ return <SelectPrimitive.Root data-slot="select" {...props} />;
13
+ }
24
14
 
25
- const SelectValue = SelectPrimitive.Value;
15
+ function SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {
16
+ return <SelectPrimitive.Group data-slot="select-group" className={cn('scroll-my-1 p-1', className)} {...props} />;
17
+ }
26
18
 
27
- const SelectTrigger = React.forwardRef<
28
- React.ElementRef<typeof SelectPrimitive.Trigger>,
29
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & SelectTriggerBaseProps
30
- >(({ className, children, ...props }, ref) => (
31
- <SelectPrimitive.Trigger
32
- ref={ref}
33
- className={cn(
34
- 'border-input ring-offset-background data-[placeholder]:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',
35
- className,
36
- )}
37
- {...props}
38
- >
39
- {children}
40
- <SelectPrimitive.Icon asChild>
41
- <ChevronDown className="h-4 w-4 opacity-50" />
42
- </SelectPrimitive.Icon>
43
- </SelectPrimitive.Trigger>
44
- ));
45
- SelectTrigger.displayName = SelectPrimitive.Trigger?.displayName || 'SelectTrigger';
19
+ function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {
20
+ return <SelectPrimitive.Value data-slot="select-value" {...props} />;
21
+ }
46
22
 
47
- const SelectScrollUpButton = React.forwardRef<
48
- React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
49
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton> & SelectScrollUpButtonBaseProps
50
- >(({ className, ...props }, ref) => (
51
- <SelectPrimitive.ScrollUpButton
52
- ref={ref}
53
- className={cn('flex cursor-default items-center justify-center py-1', className)}
54
- {...props}
55
- >
56
- <ChevronUp className="h-4 w-4" />
57
- </SelectPrimitive.ScrollUpButton>
58
- ));
59
- SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton?.displayName || 'SelectScrollUpButton';
60
-
61
- const SelectScrollDownButton = React.forwardRef<
62
- React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
63
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton> & SelectScrollDownButtonBaseProps
64
- >(({ className, ...props }, ref) => (
65
- <SelectPrimitive.ScrollDownButton
66
- ref={ref}
67
- className={cn('flex cursor-default items-center justify-center py-1', className)}
68
- {...props}
69
- >
70
- <ChevronDown className="h-4 w-4" />
71
- </SelectPrimitive.ScrollDownButton>
72
- ));
73
- SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton?.displayName || 'SelectScrollDownButton';
74
-
75
- const SelectContent = React.forwardRef<
76
- React.ElementRef<typeof SelectPrimitive.Content>,
77
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & SelectContentBaseProps
78
- >(({ className, children, position = 'popper', ...props }, ref) => (
79
- <SelectPrimitive.Portal>
80
- <SelectPrimitive.Content
81
- ref={ref}
23
+ function SelectTrigger({
24
+ className,
25
+ size = 'default',
26
+ children,
27
+ ...props
28
+ }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
29
+ size?: 'sm' | 'default';
30
+ }) {
31
+ return (
32
+ <SelectPrimitive.Trigger
33
+ data-slot="select-trigger"
34
+ data-size={size}
82
35
  className={cn(
83
- 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-x-hidden overflow-y-auto rounded-md border shadow-md',
84
- position === 'popper' &&
85
- 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
36
+ 'border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 flex w-fit items-center justify-between gap-1.5 rounded-lg border bg-transparent py-2 ps-2.5 pe-2 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
86
37
  className,
87
38
  )}
88
- position={position}
89
39
  {...props}
90
40
  >
91
- <SelectScrollUpButton />
92
- <SelectPrimitive.Viewport
41
+ {children}
42
+ <SelectPrimitive.Icon asChild>
43
+ <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4" />
44
+ </SelectPrimitive.Icon>
45
+ </SelectPrimitive.Trigger>
46
+ );
47
+ }
48
+
49
+ function SelectContent({
50
+ className,
51
+ children,
52
+ position = 'item-aligned',
53
+ align = 'center',
54
+ ...props
55
+ }: React.ComponentProps<typeof SelectPrimitive.Content>) {
56
+ return (
57
+ <SelectPrimitive.Portal>
58
+ <SelectPrimitive.Content
59
+ data-slot="select-content"
60
+ data-align-trigger={position === 'item-aligned'}
93
61
  className={cn(
94
- 'p-1',
62
+ 'bg-popover text-popover-foreground ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg shadow-md ring-1 duration-100 data-[align-trigger=true]:animate-none',
95
63
  position === 'popper' &&
96
- 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',
64
+ 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 rtl:data-[side=left]:translate-x-1 rtl:data-[side=right]:-translate-x-1',
65
+ className,
97
66
  )}
67
+ position={position}
68
+ align={align}
69
+ {...props}
98
70
  >
99
- {children}
100
- </SelectPrimitive.Viewport>
101
- <SelectScrollDownButton />
102
- </SelectPrimitive.Content>
103
- </SelectPrimitive.Portal>
104
- ));
105
- SelectContent.displayName = SelectPrimitive.Content?.displayName || 'SelectContent';
71
+ <SelectScrollUpButton />
72
+ <SelectPrimitive.Viewport
73
+ data-position={position}
74
+ className={cn(
75
+ 'data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)',
76
+ position === 'popper' && '',
77
+ )}
78
+ >
79
+ {children}
80
+ </SelectPrimitive.Viewport>
81
+ <SelectScrollDownButton />
82
+ </SelectPrimitive.Content>
83
+ </SelectPrimitive.Portal>
84
+ );
85
+ }
106
86
 
107
- const SelectLabel = React.forwardRef<
108
- React.ElementRef<typeof SelectPrimitive.Label>,
109
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label> & SelectLabelBaseProps
110
- >(({ className, ...props }, ref) => (
111
- <SelectPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', className)} {...props} />
112
- ));
113
- SelectLabel.displayName = SelectPrimitive.Label?.displayName || 'SelectLabel';
87
+ function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {
88
+ return (
89
+ <SelectPrimitive.Label
90
+ data-slot="select-label"
91
+ className={cn('text-muted-foreground px-1.5 py-1 text-xs', className)}
92
+ {...props}
93
+ />
94
+ );
95
+ }
114
96
 
115
- const SelectItem = React.forwardRef<
116
- React.ElementRef<typeof SelectPrimitive.Item>,
117
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & SelectItemBaseProps
118
- >(({ className, children, ...props }, ref) => (
119
- <SelectPrimitive.Item
120
- ref={ref}
121
- className={cn(
122
- 'focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
123
- className,
124
- )}
125
- {...props}
126
- >
127
- <span className="absolute right-2 flex h-3.5 w-3.5 items-center justify-center">
128
- <SelectPrimitive.ItemIndicator>
129
- <Check className="h-4 w-4" />
130
- </SelectPrimitive.ItemIndicator>
131
- </span>
132
- <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
133
- </SelectPrimitive.Item>
134
- ));
135
- SelectItem.displayName = SelectPrimitive.Item?.displayName || 'SelectItem';
97
+ function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {
98
+ return (
99
+ <SelectPrimitive.Item
100
+ data-slot="select-item"
101
+ className={cn(
102
+ 'focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2',
103
+ className,
104
+ )}
105
+ {...props}
106
+ >
107
+ <span className="pointer-events-none absolute end-2 flex size-4 items-center justify-center">
108
+ <SelectPrimitive.ItemIndicator>
109
+ <CheckIcon className="pointer-events-none" />
110
+ </SelectPrimitive.ItemIndicator>
111
+ </span>
112
+ <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
113
+ </SelectPrimitive.Item>
114
+ );
115
+ }
136
116
 
137
- const SelectSeparator = React.forwardRef<
138
- React.ElementRef<typeof SelectPrimitive.Separator>,
139
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator> & SelectSeparatorBaseProps
140
- >(({ className, ...props }, ref) => (
141
- <SelectPrimitive.Separator ref={ref} className={cn('bg-muted -mx-1 my-1 h-px', className)} {...props} />
142
- ));
143
- SelectSeparator.displayName = SelectPrimitive.Separator?.displayName || 'SelectSeparator';
117
+ function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {
118
+ return (
119
+ <SelectPrimitive.Separator
120
+ data-slot="select-separator"
121
+ className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}
122
+ {...props}
123
+ />
124
+ );
125
+ }
126
+
127
+ function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
128
+ return (
129
+ <SelectPrimitive.ScrollUpButton
130
+ data-slot="select-scroll-up-button"
131
+ className={cn(
132
+ 'bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4',
133
+ className,
134
+ )}
135
+ {...props}
136
+ >
137
+ <ChevronUpIcon />
138
+ </SelectPrimitive.ScrollUpButton>
139
+ );
140
+ }
141
+
142
+ function SelectScrollDownButton({
143
+ className,
144
+ ...props
145
+ }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {
146
+ return (
147
+ <SelectPrimitive.ScrollDownButton
148
+ data-slot="select-scroll-down-button"
149
+ className={cn(
150
+ 'bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4',
151
+ className,
152
+ )}
153
+ {...props}
154
+ >
155
+ <ChevronDownIcon />
156
+ </SelectPrimitive.ScrollDownButton>
157
+ );
158
+ }
144
159
 
145
160
  export {
146
161
  Select,
@@ -155,15 +170,5 @@ export {
155
170
  SelectValue,
156
171
  };
157
172
 
158
- export type {
159
- SelectContentBaseProps as SelectContentProps,
160
- SelectGroupBaseProps as SelectGroupProps,
161
- SelectItemBaseProps as SelectItemProps,
162
- SelectLabelBaseProps as SelectLabelProps,
163
- SelectBaseProps as SelectProps,
164
- SelectScrollDownButtonBaseProps as SelectScrollDownButtonProps,
165
- SelectScrollUpButtonBaseProps as SelectScrollUpButtonProps,
166
- SelectSeparatorBaseProps as SelectSeparatorProps,
167
- SelectTriggerBaseProps as SelectTriggerProps,
168
- SelectValueBaseProps as SelectValueProps,
169
- };
173
+ // Verify that the component satisfies the ui-core contract
174
+ const _verifySelectContract: SelectBaseProps = {} as unknown as React.ComponentProps<typeof Select>;