@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
package/src/menubar.tsx CHANGED
@@ -1,212 +1,237 @@
1
1
  'use client';
2
2
 
3
- import * as MenubarPrimitive from '@radix-ui/react-menubar';
4
- import { Check, ChevronRight, Circle } from 'lucide-react';
3
+ import { Menubar as MenubarPrimitive } from 'radix-ui';
5
4
  import * as React from 'react';
6
5
 
7
- import {
8
- MenubarBaseProps,
9
- MenubarCheckboxItemBaseProps,
10
- MenubarContentBaseProps,
11
- MenubarItemBaseProps,
12
- MenubarLabelBaseProps,
13
- MenubarMenuBaseProps,
14
- MenubarRadioItemBaseProps,
15
- MenubarSeparatorBaseProps,
16
- MenubarShortcutBaseProps,
17
- MenubarSubBaseProps,
18
- MenubarSubContentBaseProps,
19
- MenubarSubTriggerBaseProps,
20
- MenubarTriggerBaseProps,
21
- } from '@gv-tech/ui-core';
6
+ import { CheckIcon, ChevronRightIcon } from 'lucide-react';
22
7
  import { cn } from './lib/utils';
23
8
 
24
- function MenubarMenu({ ...props }: MenubarPrimitive.MenubarMenuProps & MenubarMenuBaseProps) {
25
- return <MenubarPrimitive.Menu {...props} />;
9
+ import type { MenubarBaseProps } from '@gv-tech/ui-core';
10
+
11
+ function Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>) {
12
+ return (
13
+ <MenubarPrimitive.Root
14
+ data-slot="menubar"
15
+ className={cn('flex h-8 items-center gap-0.5 rounded-lg border p-[3px]', className)}
16
+ {...props}
17
+ />
18
+ );
19
+ }
20
+
21
+ function MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {
22
+ return <MenubarPrimitive.Menu data-slot="menubar-menu" {...props} />;
26
23
  }
27
24
 
28
25
  function MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>) {
29
- return <MenubarPrimitive.Group {...props} />;
26
+ return <MenubarPrimitive.Group data-slot="menubar-group" {...props} />;
30
27
  }
31
28
 
32
29
  function MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {
33
- return <MenubarPrimitive.Portal {...props} />;
30
+ return <MenubarPrimitive.Portal data-slot="menubar-portal" {...props} />;
34
31
  }
35
32
 
36
33
  function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {
37
- return <MenubarPrimitive.RadioGroup {...props} />;
34
+ return <MenubarPrimitive.RadioGroup data-slot="menubar-radio-group" {...props} />;
38
35
  }
39
36
 
40
- function MenubarSub({ ...props }: MenubarPrimitive.MenubarSubProps & MenubarSubBaseProps) {
37
+ function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {
38
+ return (
39
+ <MenubarPrimitive.Trigger
40
+ data-slot="menubar-trigger"
41
+ className={cn(
42
+ 'hover:bg-muted aria-expanded:bg-muted flex items-center rounded-sm px-1.5 py-[2px] text-sm font-medium outline-hidden select-none',
43
+ className,
44
+ )}
45
+ {...props}
46
+ />
47
+ );
48
+ }
49
+
50
+ function MenubarContent({
51
+ className,
52
+ align = 'start',
53
+ alignOffset = -4,
54
+ sideOffset = 8,
55
+ ...props
56
+ }: React.ComponentProps<typeof MenubarPrimitive.Content>) {
57
+ return (
58
+ <MenubarPortal>
59
+ <MenubarPrimitive.Content
60
+ data-slot="menubar-content"
61
+ align={align}
62
+ alignOffset={alignOffset}
63
+ sideOffset={sideOffset}
64
+ className={cn(
65
+ '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 z-50 min-w-36 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-lg p-1 shadow-md ring-1 duration-100',
66
+ className,
67
+ )}
68
+ {...props}
69
+ />
70
+ </MenubarPortal>
71
+ );
72
+ }
73
+
74
+ function MenubarItem({
75
+ className,
76
+ inset,
77
+ variant = 'default',
78
+ ...props
79
+ }: React.ComponentProps<typeof MenubarPrimitive.Item> & {
80
+ inset?: boolean;
81
+ variant?: 'default' | 'destructive';
82
+ }) {
83
+ return (
84
+ <MenubarPrimitive.Item
85
+ data-slot="menubar-item"
86
+ data-inset={inset}
87
+ data-variant={variant}
88
+ className={cn(
89
+ 'group/menubar-item focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:*:[svg]:text-destructive! relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:ps-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
90
+ className,
91
+ )}
92
+ {...props}
93
+ />
94
+ );
95
+ }
96
+
97
+ function MenubarCheckboxItem({
98
+ className,
99
+ children,
100
+ checked,
101
+ inset,
102
+ ...props
103
+ }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem> & {
104
+ inset?: boolean;
105
+ }) {
106
+ return (
107
+ <MenubarPrimitive.CheckboxItem
108
+ data-slot="menubar-checkbox-item"
109
+ data-inset={inset}
110
+ className={cn(
111
+ 'focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 ps-7 pe-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-inset:ps-7 [&_svg]:pointer-events-none [&_svg]:shrink-0',
112
+ className,
113
+ )}
114
+ checked={checked}
115
+ {...props}
116
+ >
117
+ <span className="pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*=size-])]:size-4">
118
+ <MenubarPrimitive.ItemIndicator>
119
+ <CheckIcon />
120
+ </MenubarPrimitive.ItemIndicator>
121
+ </span>
122
+ {children}
123
+ </MenubarPrimitive.CheckboxItem>
124
+ );
125
+ }
126
+
127
+ function MenubarRadioItem({
128
+ className,
129
+ children,
130
+ inset,
131
+ ...props
132
+ }: React.ComponentProps<typeof MenubarPrimitive.RadioItem> & {
133
+ inset?: boolean;
134
+ }) {
135
+ return (
136
+ <MenubarPrimitive.RadioItem
137
+ data-slot="menubar-radio-item"
138
+ data-inset={inset}
139
+ className={cn(
140
+ 'focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 ps-7 pe-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:ps-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
141
+ className,
142
+ )}
143
+ {...props}
144
+ >
145
+ <span className="pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*=size-])]:size-4">
146
+ <MenubarPrimitive.ItemIndicator>
147
+ <CheckIcon />
148
+ </MenubarPrimitive.ItemIndicator>
149
+ </span>
150
+ {children}
151
+ </MenubarPrimitive.RadioItem>
152
+ );
153
+ }
154
+
155
+ function MenubarLabel({
156
+ className,
157
+ inset,
158
+ ...props
159
+ }: React.ComponentProps<typeof MenubarPrimitive.Label> & {
160
+ inset?: boolean;
161
+ }) {
162
+ return (
163
+ <MenubarPrimitive.Label
164
+ data-slot="menubar-label"
165
+ data-inset={inset}
166
+ className={cn('px-1.5 py-1 text-sm font-medium data-inset:ps-7', className)}
167
+ {...props}
168
+ />
169
+ );
170
+ }
171
+
172
+ function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Separator>) {
173
+ return (
174
+ <MenubarPrimitive.Separator
175
+ data-slot="menubar-separator"
176
+ className={cn('bg-border -mx-1 my-1 h-px', className)}
177
+ {...props}
178
+ />
179
+ );
180
+ }
181
+
182
+ function MenubarShortcut({ className, ...props }: React.ComponentProps<'span'>) {
183
+ return (
184
+ <span
185
+ data-slot="menubar-shortcut"
186
+ className={cn(
187
+ 'text-muted-foreground group-focus/menubar-item:text-accent-foreground ms-auto text-xs tracking-widest',
188
+ className,
189
+ )}
190
+ {...props}
191
+ />
192
+ );
193
+ }
194
+
195
+ function MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {
41
196
  return <MenubarPrimitive.Sub data-slot="menubar-sub" {...props} />;
42
197
  }
43
198
 
44
- const Menubar = React.forwardRef<
45
- React.ElementRef<typeof MenubarPrimitive.Root>,
46
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root> & MenubarBaseProps
47
- >(({ className, ...props }, ref) => (
48
- <MenubarPrimitive.Root
49
- ref={ref}
50
- className={cn('bg-background flex h-9 items-center space-x-1 rounded-md border p-1 shadow-sm', className)}
51
- {...props}
52
- />
53
- ));
54
- Menubar.displayName = MenubarPrimitive.Root?.displayName || 'Menubar';
55
-
56
- const MenubarTrigger = React.forwardRef<
57
- React.ElementRef<typeof MenubarPrimitive.Trigger>,
58
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger> & MenubarTriggerBaseProps
59
- >(({ className, ...props }, ref) => (
60
- <MenubarPrimitive.Trigger
61
- ref={ref}
62
- className={cn(
63
- 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-3 py-1 text-sm font-medium outline-none select-none',
64
- className,
65
- )}
66
- {...props}
67
- />
68
- ));
69
- MenubarTrigger.displayName = MenubarPrimitive.Trigger?.displayName || 'MenubarTrigger';
70
-
71
- const MenubarSubTrigger = React.forwardRef<
72
- React.ElementRef<typeof MenubarPrimitive.SubTrigger>,
73
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & MenubarSubTriggerBaseProps
74
- >(({ className, inset, children, ...props }, ref) => (
75
- <MenubarPrimitive.SubTrigger
76
- ref={ref}
77
- className={cn(
78
- 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none',
79
- inset && 'pl-8',
80
- className,
81
- )}
82
- {...props}
83
- >
84
- {children}
85
- <ChevronRight className="ml-auto h-4 w-4" />
86
- </MenubarPrimitive.SubTrigger>
87
- ));
88
- MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger?.displayName || 'MenubarSubTrigger';
89
-
90
- const MenubarSubContent = React.forwardRef<
91
- React.ElementRef<typeof MenubarPrimitive.SubContent>,
92
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent> & MenubarSubContentBaseProps
93
- >(({ className, ...props }, ref) => (
94
- <MenubarPrimitive.SubContent
95
- ref={ref}
96
- className={cn(
97
- '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 z-50 min-w-[8rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg',
98
- className,
99
- )}
100
- {...props}
101
- />
102
- ));
103
- MenubarSubContent.displayName = MenubarPrimitive.SubContent?.displayName || 'MenubarSubContent';
104
-
105
- const MenubarContent = React.forwardRef<
106
- React.ElementRef<typeof MenubarPrimitive.Content>,
107
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content> & MenubarContentBaseProps
108
- >(({ className, align = 'start', alignOffset = -4, sideOffset = 8, ...props }, ref) => (
109
- <MenubarPrimitive.Portal>
110
- <MenubarPrimitive.Content
111
- ref={ref}
112
- align={align}
113
- alignOffset={alignOffset}
114
- sideOffset={sideOffset}
199
+ function MenubarSubTrigger({
200
+ className,
201
+ inset,
202
+ children,
203
+ ...props
204
+ }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
205
+ inset?: boolean;
206
+ }) {
207
+ return (
208
+ <MenubarPrimitive.SubTrigger
209
+ data-slot="menubar-sub-trigger"
210
+ data-inset={inset}
211
+ className={cn(
212
+ 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-none select-none data-inset:ps-7 [&_svg:not([class*=size-])]:size-4',
213
+ className,
214
+ )}
215
+ {...props}
216
+ >
217
+ {children}
218
+ <ChevronRightIcon className="ms-auto size-4" />
219
+ </MenubarPrimitive.SubTrigger>
220
+ );
221
+ }
222
+
223
+ function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {
224
+ return (
225
+ <MenubarPrimitive.SubContent
226
+ data-slot="menubar-sub-content"
115
227
  className={cn(
116
- 'bg-popover text-popover-foreground data-[state=open]:animate-in 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 z-50 min-w-[12rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-md',
228
+ '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 z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-lg p-1 shadow-lg ring-1 duration-100',
117
229
  className,
118
230
  )}
119
231
  {...props}
120
232
  />
121
- </MenubarPrimitive.Portal>
122
- ));
123
- MenubarContent.displayName = MenubarPrimitive.Content?.displayName || 'MenubarContent';
124
-
125
- const MenubarItem = React.forwardRef<
126
- React.ElementRef<typeof MenubarPrimitive.Item>,
127
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & MenubarItemBaseProps
128
- >(({ className, inset, ...props }, ref) => (
129
- <MenubarPrimitive.Item
130
- ref={ref}
131
- className={cn(
132
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
133
- inset && 'pl-8',
134
- className,
135
- )}
136
- {...props}
137
- />
138
- ));
139
- MenubarItem.displayName = MenubarPrimitive.Item?.displayName || 'MenubarItem';
140
-
141
- const MenubarCheckboxItem = React.forwardRef<
142
- React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,
143
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem> & MenubarCheckboxItemBaseProps
144
- >(({ className, children, checked, ...props }, ref) => (
145
- <MenubarPrimitive.CheckboxItem
146
- ref={ref}
147
- className={cn(
148
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
149
- className,
150
- )}
151
- checked={checked}
152
- {...props}
153
- >
154
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
155
- <MenubarPrimitive.ItemIndicator>
156
- <Check className="h-4 w-4" />
157
- </MenubarPrimitive.ItemIndicator>
158
- </span>
159
- {children}
160
- </MenubarPrimitive.CheckboxItem>
161
- ));
162
- MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem?.displayName || 'MenubarCheckboxItem';
163
-
164
- const MenubarRadioItem = React.forwardRef<
165
- React.ElementRef<typeof MenubarPrimitive.RadioItem>,
166
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem> & MenubarRadioItemBaseProps
167
- >(({ className, children, ...props }, ref) => (
168
- <MenubarPrimitive.RadioItem
169
- ref={ref}
170
- className={cn(
171
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
172
- className,
173
- )}
174
- {...props}
175
- >
176
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
177
- <MenubarPrimitive.ItemIndicator>
178
- <Circle className="h-4 w-4 fill-current" />
179
- </MenubarPrimitive.ItemIndicator>
180
- </span>
181
- {children}
182
- </MenubarPrimitive.RadioItem>
183
- ));
184
- MenubarRadioItem.displayName = MenubarPrimitive.RadioItem?.displayName || 'MenubarRadioItem';
185
-
186
- const MenubarLabel = React.forwardRef<
187
- React.ElementRef<typeof MenubarPrimitive.Label>,
188
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & MenubarLabelBaseProps
189
- >(({ className, inset, ...props }, ref) => (
190
- <MenubarPrimitive.Label
191
- ref={ref}
192
- className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
193
- {...props}
194
- />
195
- ));
196
- MenubarLabel.displayName = MenubarPrimitive.Label?.displayName || 'MenubarLabel';
197
-
198
- const MenubarSeparator = React.forwardRef<
199
- React.ElementRef<typeof MenubarPrimitive.Separator>,
200
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator> & MenubarSeparatorBaseProps
201
- >(({ className, ...props }, ref) => (
202
- <MenubarPrimitive.Separator ref={ref} className={cn('bg-muted -mx-1 my-1 h-px', className)} {...props} />
203
- ));
204
- MenubarSeparator.displayName = MenubarPrimitive.Separator?.displayName || 'MenubarSeparator';
205
-
206
- const MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement> & MenubarShortcutBaseProps) => {
207
- return <span className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props} />;
208
- };
209
- MenubarShortcut.displayname = 'MenubarShortcut';
233
+ );
234
+ }
210
235
 
211
236
  export {
212
237
  Menubar,
@@ -227,18 +252,5 @@ export {
227
252
  MenubarTrigger,
228
253
  };
229
254
 
230
- export type {
231
- MenubarCheckboxItemBaseProps as MenubarCheckboxItemProps,
232
- MenubarContentBaseProps as MenubarContentProps,
233
- MenubarItemBaseProps as MenubarItemProps,
234
- MenubarLabelBaseProps as MenubarLabelProps,
235
- MenubarMenuBaseProps as MenubarMenuProps,
236
- MenubarBaseProps as MenubarProps,
237
- MenubarRadioItemBaseProps as MenubarRadioItemProps,
238
- MenubarSeparatorBaseProps as MenubarSeparatorProps,
239
- MenubarShortcutBaseProps as MenubarShortcutProps,
240
- MenubarSubContentBaseProps as MenubarSubContentProps,
241
- MenubarSubBaseProps as MenubarSubProps,
242
- MenubarSubTriggerBaseProps as MenubarSubTriggerProps,
243
- MenubarTriggerBaseProps as MenubarTriggerProps,
244
- };
255
+ // Verify that the component satisfies the ui-core contract
256
+ const _verifyMenubarContract: MenubarBaseProps = {} as unknown as React.ComponentProps<typeof Menubar>;
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+
3
+ import type {
4
+ NativeSelectBaseProps,
5
+ NativeSelectOptGroupBaseProps,
6
+ NativeSelectOptionBaseProps,
7
+ } from '@gv-tech/ui-core';
8
+ import { ChevronDownIcon } from 'lucide-react';
9
+ import { cn } from './lib/utils';
10
+
11
+ type NativeSelectProps = Omit<React.ComponentProps<'select'>, 'size'> & NativeSelectBaseProps;
12
+
13
+ function NativeSelect({ className, size = 'default', ...props }: NativeSelectProps) {
14
+ return (
15
+ <div
16
+ className={cn('group/native-select relative w-fit has-[select:disabled]:opacity-50', className)}
17
+ data-slot="native-select-wrapper"
18
+ data-size={size}
19
+ >
20
+ <select
21
+ data-slot="native-select"
22
+ data-size={size}
23
+ className="border-input selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 h-8 w-full min-w-0 appearance-none rounded-lg border bg-transparent py-1 ps-2.5 pe-8 text-sm transition-colors outline-none select-none focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:ring-3 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[size=sm]:py-0.5"
24
+ {...props}
25
+ />
26
+ <ChevronDownIcon
27
+ className="text-muted-foreground pointer-events-none absolute end-2.5 top-1/2 size-4 -translate-y-1/2 select-none"
28
+ aria-hidden="true"
29
+ data-slot="native-select-icon"
30
+ />
31
+ </div>
32
+ );
33
+ }
34
+
35
+ function NativeSelectOption({ className, ...props }: React.ComponentProps<'option'> & NativeSelectOptionBaseProps) {
36
+ return (
37
+ <option data-slot="native-select-option" className={cn('bg-[Canvas] text-[CanvasText]', className)} {...props} />
38
+ );
39
+ }
40
+
41
+ function NativeSelectOptGroup({
42
+ className,
43
+ ...props
44
+ }: React.ComponentProps<'optgroup'> & NativeSelectOptGroupBaseProps) {
45
+ return (
46
+ <optgroup
47
+ data-slot="native-select-optgroup"
48
+ className={cn('bg-[Canvas] text-[CanvasText]', className)}
49
+ {...props}
50
+ />
51
+ );
52
+ }
53
+
54
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };