@gv-tech/ui-web 2.22.1 → 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/drawer.tsx CHANGED
@@ -1,89 +1,94 @@
1
- 'use client';
2
-
3
1
  import * as React from 'react';
4
2
  import { Drawer as DrawerPrimitive } from 'vaul';
5
3
 
6
- import {
7
- DrawerBaseProps,
8
- DrawerCloseBaseProps,
9
- DrawerContentBaseProps,
10
- DrawerDescriptionBaseProps,
11
- DrawerFooterBaseProps,
12
- DrawerHeaderBaseProps,
13
- DrawerTitleBaseProps,
14
- DrawerTriggerBaseProps,
15
- } from '@gv-tech/ui-core';
16
4
  import { cn } from './lib/utils';
17
5
 
18
- const Drawer = ({ shouldScaleBackground = true, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) => (
19
- <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />
20
- );
21
- Drawer.displayName = 'Drawer';
6
+ import type { DrawerBaseProps } from '@gv-tech/ui-core';
22
7
 
23
- const DrawerTrigger = DrawerPrimitive.Trigger;
8
+ function Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {
9
+ return <DrawerPrimitive.Root data-slot="drawer" {...props} />;
10
+ }
24
11
 
25
- const DrawerPortal = DrawerPrimitive.Portal;
12
+ function DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {
13
+ return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />;
14
+ }
26
15
 
27
- const DrawerClose = DrawerPrimitive.Close;
16
+ function DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {
17
+ return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />;
18
+ }
28
19
 
29
- const DrawerOverlay = React.forwardRef<
30
- React.ElementRef<typeof DrawerPrimitive.Overlay>,
31
- React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>
32
- >(({ className, ...props }, ref) => (
33
- <DrawerPrimitive.Overlay ref={ref} className={cn('fixed inset-0 z-50 bg-black/80', className)} {...props} />
34
- ));
35
- DrawerOverlay.displayName = DrawerPrimitive.Overlay?.displayName || 'DrawerOverlay';
20
+ function DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {
21
+ return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />;
22
+ }
36
23
 
37
- const DrawerContent = React.forwardRef<
38
- React.ElementRef<typeof DrawerPrimitive.Content>,
39
- React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & DrawerContentBaseProps
40
- >(({ className, children, ...props }, ref) => (
41
- <DrawerPortal>
42
- <DrawerOverlay />
43
- <DrawerPrimitive.Content
44
- ref={ref}
24
+ function DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {
25
+ return (
26
+ <DrawerPrimitive.Overlay
27
+ data-slot="drawer-overlay"
45
28
  className={cn(
46
- 'bg-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border',
29
+ 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs',
47
30
  className,
48
31
  )}
49
32
  {...props}
50
- >
51
- <div className="bg-muted mx-auto mt-4 h-2 w-[100px] rounded-full" />
52
- {children}
53
- </DrawerPrimitive.Content>
54
- </DrawerPortal>
55
- ));
56
- DrawerContent.displayName = 'DrawerContent';
33
+ />
34
+ );
35
+ }
57
36
 
58
- const DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement> & DrawerHeaderBaseProps) => (
59
- <div className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)} {...props} />
60
- );
61
- DrawerHeader.displayName = 'DrawerHeader';
37
+ function DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>) {
38
+ return (
39
+ <DrawerPortal data-slot="drawer-portal">
40
+ <DrawerOverlay />
41
+ <DrawerPrimitive.Content
42
+ data-slot="drawer-content"
43
+ className={cn(
44
+ 'group/drawer-content bg-popover text-popover-foreground fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:start-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-e-xl data-[vaul-drawer-direction=left]:border-e data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:end-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-s-xl data-[vaul-drawer-direction=right]:border-s data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm',
45
+ className,
46
+ )}
47
+ {...props}
48
+ >
49
+ <div className="bg-muted mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" />
50
+ {children}
51
+ </DrawerPrimitive.Content>
52
+ </DrawerPortal>
53
+ );
54
+ }
62
55
 
63
- const DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement> & DrawerFooterBaseProps) => (
64
- <div className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />
65
- );
66
- DrawerFooter.displayName = 'DrawerFooter';
56
+ function DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {
57
+ return (
58
+ <div
59
+ data-slot="drawer-header"
60
+ className={cn(
61
+ 'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-start',
62
+ className,
63
+ )}
64
+ {...props}
65
+ />
66
+ );
67
+ }
67
68
 
68
- const DrawerTitle = React.forwardRef<
69
- React.ElementRef<typeof DrawerPrimitive.Title>,
70
- React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> & DrawerTitleBaseProps
71
- >(({ className, ...props }, ref) => (
72
- <DrawerPrimitive.Title
73
- ref={ref}
74
- className={cn('text-lg leading-none font-semibold tracking-tight', className)}
75
- {...props}
76
- />
77
- ));
78
- DrawerTitle.displayName = DrawerPrimitive.Title?.displayName || 'DrawerTitle';
69
+ function DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {
70
+ return <div data-slot="drawer-footer" className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />;
71
+ }
79
72
 
80
- const DrawerDescription = React.forwardRef<
81
- React.ElementRef<typeof DrawerPrimitive.Description>,
82
- React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> & DrawerDescriptionBaseProps
83
- >(({ className, ...props }, ref) => (
84
- <DrawerPrimitive.Description ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />
85
- ));
86
- DrawerDescription.displayName = DrawerPrimitive.Description?.displayName || 'DrawerDescription';
73
+ function DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {
74
+ return (
75
+ <DrawerPrimitive.Title
76
+ data-slot="drawer-title"
77
+ className={cn('text-foreground text-base font-medium', className)}
78
+ {...props}
79
+ />
80
+ );
81
+ }
82
+
83
+ function DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {
84
+ return (
85
+ <DrawerPrimitive.Description
86
+ data-slot="drawer-description"
87
+ className={cn('text-muted-foreground text-sm', className)}
88
+ {...props}
89
+ />
90
+ );
91
+ }
87
92
 
88
93
  export {
89
94
  Drawer,
@@ -98,13 +103,5 @@ export {
98
103
  DrawerTrigger,
99
104
  };
100
105
 
101
- export type {
102
- DrawerCloseBaseProps as DrawerCloseProps,
103
- DrawerContentBaseProps as DrawerContentProps,
104
- DrawerDescriptionBaseProps as DrawerDescriptionProps,
105
- DrawerFooterBaseProps as DrawerFooterProps,
106
- DrawerHeaderBaseProps as DrawerHeaderProps,
107
- DrawerBaseProps as DrawerProps,
108
- DrawerTitleBaseProps as DrawerTitleProps,
109
- DrawerTriggerBaseProps as DrawerTriggerProps,
110
- };
106
+ // Verify that the component satisfies the ui-core contract
107
+ const _verifyDrawerContract: DrawerBaseProps = {} as unknown as React.ComponentProps<typeof Drawer>;
@@ -1,180 +1,225 @@
1
1
  'use client';
2
2
 
3
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
- import { Check, ChevronRight, Circle } from 'lucide-react';
3
+ import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';
5
4
  import * as React from 'react';
6
5
 
7
- import {
8
- DropdownMenuBaseProps,
9
- DropdownMenuCheckboxItemBaseProps,
10
- DropdownMenuContentBaseProps,
11
- DropdownMenuGroupBaseProps,
12
- DropdownMenuItemBaseProps,
13
- DropdownMenuLabelBaseProps,
14
- DropdownMenuRadioGroupBaseProps,
15
- DropdownMenuRadioItemBaseProps,
16
- DropdownMenuSeparatorBaseProps,
17
- DropdownMenuShortcutBaseProps,
18
- DropdownMenuSubBaseProps,
19
- DropdownMenuSubContentBaseProps,
20
- DropdownMenuSubTriggerBaseProps,
21
- DropdownMenuTriggerBaseProps,
22
- } from '@gv-tech/ui-core';
6
+ import { CheckIcon, ChevronRightIcon } from 'lucide-react';
23
7
  import { cn } from './lib/utils';
24
8
 
25
- const DropdownMenu = DropdownMenuPrimitive.Root;
26
-
27
- const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
28
-
29
- const DropdownMenuGroup = DropdownMenuPrimitive.Group;
30
-
31
- const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
32
-
33
- const DropdownMenuSub = DropdownMenuPrimitive.Sub;
34
-
35
- const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
36
-
37
- const DropdownMenuSubTrigger = React.forwardRef<
38
- React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
39
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & DropdownMenuSubTriggerBaseProps
40
- >(({ className, inset, children, ...props }, ref) => (
41
- <DropdownMenuPrimitive.SubTrigger
42
- ref={ref}
43
- className={cn(
44
- 'focus:bg-accent data-[state=open]:bg-accent flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
45
- inset && 'pl-8',
46
- className,
47
- )}
48
- {...props}
49
- >
50
- {children}
51
- <ChevronRight className="ml-auto" />
52
- </DropdownMenuPrimitive.SubTrigger>
53
- ));
54
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger?.displayName || 'DropdownMenuSubTrigger';
55
-
56
- const DropdownMenuSubContent = React.forwardRef<
57
- React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
58
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> & DropdownMenuSubContentBaseProps
59
- >(({ className, ...props }, ref) => (
60
- <DropdownMenuPrimitive.SubContent
61
- ref={ref}
62
- className={cn(
63
- '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-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg',
64
- className,
65
- )}
66
- {...props}
67
- />
68
- ));
69
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent?.displayName || 'DropdownMenuSubContent';
70
-
71
- const DropdownMenuContent = React.forwardRef<
72
- React.ElementRef<typeof DropdownMenuPrimitive.Content>,
73
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & DropdownMenuContentBaseProps
74
- >(({ className, sideOffset = 4, ...props }, ref) => (
75
- <DropdownMenuPrimitive.Portal>
76
- <DropdownMenuPrimitive.Content
77
- ref={ref}
78
- sideOffset={sideOffset}
9
+ import type { DropdownMenuBaseProps } from '@gv-tech/ui-core';
10
+
11
+ function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
12
+ return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
13
+ }
14
+
15
+ function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
16
+ return <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;
17
+ }
18
+
19
+ function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
20
+ return <DropdownMenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;
21
+ }
22
+
23
+ function DropdownMenuContent({
24
+ className,
25
+ align = 'start',
26
+ sideOffset = 4,
27
+ ...props
28
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
29
+ return (
30
+ <DropdownMenuPrimitive.Portal>
31
+ <DropdownMenuPrimitive.Content
32
+ data-slot="dropdown-menu-content"
33
+ sideOffset={sideOffset}
34
+ align={align}
35
+ className={cn(
36
+ '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 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 data-[state=closed]:overflow-hidden',
37
+ className,
38
+ )}
39
+ {...props}
40
+ />
41
+ </DropdownMenuPrimitive.Portal>
42
+ );
43
+ }
44
+
45
+ function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
46
+ return <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;
47
+ }
48
+
49
+ function DropdownMenuItem({
50
+ className,
51
+ inset,
52
+ variant = 'default',
53
+ ...props
54
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
55
+ inset?: boolean;
56
+ variant?: 'default' | 'destructive';
57
+ }) {
58
+ return (
59
+ <DropdownMenuPrimitive.Item
60
+ data-slot="dropdown-menu-item"
61
+ data-inset={inset}
62
+ data-variant={variant}
79
63
  className={cn(
80
- 'bg-popover text-popover-foreground z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',
81
- '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 origin-[--radix-dropdown-menu-content-transform-origin]',
64
+ 'group/dropdown-menu-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',
82
65
  className,
83
66
  )}
84
67
  {...props}
85
68
  />
86
- </DropdownMenuPrimitive.Portal>
87
- ));
88
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content?.displayName || 'DropdownMenuContent';
89
-
90
- const DropdownMenuItem = React.forwardRef<
91
- React.ElementRef<typeof DropdownMenuPrimitive.Item>,
92
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & DropdownMenuItemBaseProps
93
- >(({ className, inset, ...props }, ref) => (
94
- <DropdownMenuPrimitive.Item
95
- ref={ref}
96
- className={cn(
97
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm transition-colors outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0',
98
- inset && 'pl-8',
99
- className,
100
- )}
101
- {...props}
102
- />
103
- ));
104
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item?.displayName || 'DropdownMenuItem';
105
-
106
- const DropdownMenuCheckboxItem = React.forwardRef<
107
- React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
108
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> & DropdownMenuCheckboxItemBaseProps
109
- >(({ className, children, checked, ...props }, ref) => (
110
- <DropdownMenuPrimitive.CheckboxItem
111
- ref={ref}
112
- className={cn(
113
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm transition-colors outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
114
- className,
115
- )}
116
- checked={checked}
117
- {...props}
118
- >
119
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
120
- <DropdownMenuPrimitive.ItemIndicator>
121
- <Check className="h-4 w-4" />
122
- </DropdownMenuPrimitive.ItemIndicator>
123
- </span>
124
- {children}
125
- </DropdownMenuPrimitive.CheckboxItem>
126
- ));
127
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem?.displayName || 'DropdownMenuCheckboxItem';
128
-
129
- const DropdownMenuRadioItem = React.forwardRef<
130
- React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
131
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> & DropdownMenuRadioItemBaseProps
132
- >(({ className, children, ...props }, ref) => (
133
- <DropdownMenuPrimitive.RadioItem
134
- ref={ref}
135
- className={cn(
136
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm transition-colors outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
137
- className,
138
- )}
139
- {...props}
140
- >
141
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
142
- <DropdownMenuPrimitive.ItemIndicator>
143
- <Circle className="h-2 w-2 fill-current" />
144
- </DropdownMenuPrimitive.ItemIndicator>
145
- </span>
146
- {children}
147
- </DropdownMenuPrimitive.RadioItem>
148
- ));
149
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem?.displayName || 'DropdownMenuRadioItem';
150
-
151
- const DropdownMenuLabel = React.forwardRef<
152
- React.ElementRef<typeof DropdownMenuPrimitive.Label>,
153
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & DropdownMenuLabelBaseProps
154
- >(({ className, inset, ...props }, ref) => (
155
- <DropdownMenuPrimitive.Label
156
- ref={ref}
157
- className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
158
- {...props}
159
- />
160
- ));
161
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label?.displayName || 'DropdownMenuLabel';
162
-
163
- const DropdownMenuSeparator = React.forwardRef<
164
- React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
165
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> & DropdownMenuSeparatorBaseProps
166
- >(({ className, ...props }, ref) => (
167
- <DropdownMenuPrimitive.Separator ref={ref} className={cn('bg-muted -mx-1 my-1 h-px', className)} {...props} />
168
- ));
169
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator?.displayName || 'DropdownMenuSeparator';
170
-
171
- const DropdownMenuShortcut = ({
69
+ );
70
+ }
71
+
72
+ function DropdownMenuCheckboxItem({
172
73
  className,
74
+ children,
75
+ checked,
76
+ inset,
173
77
  ...props
174
- }: React.HTMLAttributes<HTMLSpanElement> & DropdownMenuShortcutBaseProps) => {
175
- return <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />;
176
- };
177
- DropdownMenuShortcut.displayName = 'DropdownMenuShortcut';
78
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {
79
+ inset?: boolean;
80
+ }) {
81
+ return (
82
+ <DropdownMenuPrimitive.CheckboxItem
83
+ data-slot="dropdown-menu-checkbox-item"
84
+ data-inset={inset}
85
+ className={cn(
86
+ '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-1.5 pe-8 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',
87
+ className,
88
+ )}
89
+ checked={checked}
90
+ {...props}
91
+ >
92
+ <span
93
+ className="pointer-events-none absolute end-2 flex items-center justify-center"
94
+ data-slot="dropdown-menu-checkbox-item-indicator"
95
+ >
96
+ <DropdownMenuPrimitive.ItemIndicator>
97
+ <CheckIcon />
98
+ </DropdownMenuPrimitive.ItemIndicator>
99
+ </span>
100
+ {children}
101
+ </DropdownMenuPrimitive.CheckboxItem>
102
+ );
103
+ }
104
+
105
+ function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
106
+ return <DropdownMenuPrimitive.RadioGroup data-slot="dropdown-menu-radio-group" {...props} />;
107
+ }
108
+
109
+ function DropdownMenuRadioItem({
110
+ className,
111
+ children,
112
+ inset,
113
+ ...props
114
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
115
+ inset?: boolean;
116
+ }) {
117
+ return (
118
+ <DropdownMenuPrimitive.RadioItem
119
+ data-slot="dropdown-menu-radio-item"
120
+ data-inset={inset}
121
+ className={cn(
122
+ '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-1.5 pe-8 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',
123
+ className,
124
+ )}
125
+ {...props}
126
+ >
127
+ <span
128
+ className="pointer-events-none absolute end-2 flex items-center justify-center"
129
+ data-slot="dropdown-menu-radio-item-indicator"
130
+ >
131
+ <DropdownMenuPrimitive.ItemIndicator>
132
+ <CheckIcon />
133
+ </DropdownMenuPrimitive.ItemIndicator>
134
+ </span>
135
+ {children}
136
+ </DropdownMenuPrimitive.RadioItem>
137
+ );
138
+ }
139
+
140
+ function DropdownMenuLabel({
141
+ className,
142
+ inset,
143
+ ...props
144
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
145
+ inset?: boolean;
146
+ }) {
147
+ return (
148
+ <DropdownMenuPrimitive.Label
149
+ data-slot="dropdown-menu-label"
150
+ data-inset={inset}
151
+ className={cn('text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:ps-7', className)}
152
+ {...props}
153
+ />
154
+ );
155
+ }
156
+
157
+ function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
158
+ return (
159
+ <DropdownMenuPrimitive.Separator
160
+ data-slot="dropdown-menu-separator"
161
+ className={cn('bg-border -mx-1 my-1 h-px', className)}
162
+ {...props}
163
+ />
164
+ );
165
+ }
166
+
167
+ function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {
168
+ return (
169
+ <span
170
+ data-slot="dropdown-menu-shortcut"
171
+ className={cn(
172
+ 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',
173
+ className,
174
+ )}
175
+ {...props}
176
+ />
177
+ );
178
+ }
179
+
180
+ function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
181
+ return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />;
182
+ }
183
+
184
+ function DropdownMenuSubTrigger({
185
+ className,
186
+ inset,
187
+ children,
188
+ ...props
189
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
190
+ inset?: boolean;
191
+ }) {
192
+ return (
193
+ <DropdownMenuPrimitive.SubTrigger
194
+ data-slot="dropdown-menu-sub-trigger"
195
+ data-inset={inset}
196
+ className={cn(
197
+ 'focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]: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-hidden select-none data-inset:ps-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
198
+ className,
199
+ )}
200
+ {...props}
201
+ >
202
+ {children}
203
+ <ChevronRightIcon className="ms-auto" />
204
+ </DropdownMenuPrimitive.SubTrigger>
205
+ );
206
+ }
207
+
208
+ function DropdownMenuSubContent({
209
+ className,
210
+ ...props
211
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {
212
+ return (
213
+ <DropdownMenuPrimitive.SubContent
214
+ data-slot="dropdown-menu-sub-content"
215
+ className={cn(
216
+ '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-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg p-1 shadow-lg ring-1 duration-100',
217
+ className,
218
+ )}
219
+ {...props}
220
+ />
221
+ );
222
+ }
178
223
 
179
224
  export {
180
225
  DropdownMenu,
@@ -194,19 +239,5 @@ export {
194
239
  DropdownMenuTrigger,
195
240
  };
196
241
 
197
- export type {
198
- DropdownMenuCheckboxItemBaseProps as DropdownMenuCheckboxItemProps,
199
- DropdownMenuContentBaseProps as DropdownMenuContentProps,
200
- DropdownMenuGroupBaseProps as DropdownMenuGroupProps,
201
- DropdownMenuItemBaseProps as DropdownMenuItemProps,
202
- DropdownMenuLabelBaseProps as DropdownMenuLabelProps,
203
- DropdownMenuBaseProps as DropdownMenuProps,
204
- DropdownMenuRadioGroupBaseProps as DropdownMenuRadioGroupProps,
205
- DropdownMenuRadioItemBaseProps as DropdownMenuRadioItemProps,
206
- DropdownMenuSeparatorBaseProps as DropdownMenuSeparatorProps,
207
- DropdownMenuShortcutBaseProps as DropdownMenuShortcutProps,
208
- DropdownMenuSubContentBaseProps as DropdownMenuSubContentProps,
209
- DropdownMenuSubBaseProps as DropdownMenuSubProps,
210
- DropdownMenuSubTriggerBaseProps as DropdownMenuSubTriggerProps,
211
- DropdownMenuTriggerBaseProps as DropdownMenuTriggerProps,
212
- };
242
+ // Verify that the component satisfies the ui-core contract
243
+ const _verifyDropdownMenuContract: DropdownMenuBaseProps = {} as unknown as React.ComponentProps<typeof DropdownMenu>;