@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
@@ -0,0 +1,282 @@
1
+ 'use client';
2
+
3
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react';
4
+ import * as React from 'react';
5
+
6
+ import type {
7
+ ComboboxChipBaseProps,
8
+ ComboboxChipsBaseProps,
9
+ ComboboxChipsInputBaseProps,
10
+ ComboboxClearBaseProps,
11
+ ComboboxCollectionBaseProps,
12
+ ComboboxContentBaseProps,
13
+ ComboboxEmptyBaseProps,
14
+ ComboboxGroupBaseProps,
15
+ ComboboxInputBaseProps,
16
+ ComboboxItemBaseProps,
17
+ ComboboxLabelBaseProps,
18
+ ComboboxListBaseProps,
19
+ ComboboxSeparatorBaseProps,
20
+ ComboboxTriggerBaseProps,
21
+ ComboboxValueBaseProps,
22
+ } from '@gv-tech/ui-core';
23
+ import { CheckIcon, ChevronDownIcon, XIcon } from 'lucide-react';
24
+ import { Button } from './button';
25
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group';
26
+ import { cn } from './lib/utils';
27
+
28
+ const Combobox = ComboboxPrimitive.Root;
29
+
30
+ function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props & ComboboxValueBaseProps) {
31
+ return <ComboboxPrimitive.Value data-slot="combobox-value" {...props} />;
32
+ }
33
+
34
+ function ComboboxTrigger({
35
+ className,
36
+ children,
37
+ ...props
38
+ }: ComboboxPrimitive.Trigger.Props & ComboboxTriggerBaseProps) {
39
+ return (
40
+ <ComboboxPrimitive.Trigger
41
+ data-slot="combobox-trigger"
42
+ className={cn('[&_svg:not([class*=size-])]:size-4', className)}
43
+ {...props}
44
+ >
45
+ {children}
46
+ <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4" />
47
+ </ComboboxPrimitive.Trigger>
48
+ );
49
+ }
50
+
51
+ function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props & ComboboxClearBaseProps) {
52
+ return (
53
+ <ComboboxPrimitive.Clear
54
+ data-slot="combobox-clear"
55
+ render={<InputGroupButton variant="ghost" size="icon-xs" />}
56
+ className={cn(className)}
57
+ {...props}
58
+ >
59
+ <XIcon className="pointer-events-none" />
60
+ </ComboboxPrimitive.Clear>
61
+ );
62
+ }
63
+
64
+ function ComboboxInput({
65
+ className,
66
+ children,
67
+ disabled = false,
68
+ showTrigger = true,
69
+ showClear = false,
70
+ ...props
71
+ }: ComboboxPrimitive.Input.Props & ComboboxInputBaseProps) {
72
+ return (
73
+ <InputGroup className={cn('w-auto', className)}>
74
+ <ComboboxPrimitive.Input render={<InputGroupInput disabled={disabled} />} {...props} />
75
+ <InputGroupAddon align="inline-end">
76
+ {showTrigger && (
77
+ <InputGroupButton
78
+ size="icon-xs"
79
+ variant="ghost"
80
+ asChild
81
+ data-slot="input-group-button"
82
+ className="group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent"
83
+ disabled={disabled}
84
+ >
85
+ <ComboboxTrigger />
86
+ </InputGroupButton>
87
+ )}
88
+ {showClear && <ComboboxClear disabled={disabled} />}
89
+ </InputGroupAddon>
90
+ {children}
91
+ </InputGroup>
92
+ );
93
+ }
94
+
95
+ function ComboboxContent({
96
+ className,
97
+ side = 'bottom',
98
+ sideOffset = 6,
99
+ align = 'start',
100
+ alignOffset = 0,
101
+ anchor,
102
+ ...props
103
+ }: ComboboxPrimitive.Popup.Props &
104
+ Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'> &
105
+ ComboboxContentBaseProps) {
106
+ return (
107
+ <ComboboxPrimitive.Portal>
108
+ <ComboboxPrimitive.Positioner
109
+ side={side}
110
+ sideOffset={sideOffset}
111
+ align={align}
112
+ alignOffset={alignOffset}
113
+ anchor={anchor}
114
+ className="isolate z-50"
115
+ >
116
+ <ComboboxPrimitive.Popup
117
+ data-slot="combobox-content"
118
+ data-chips={!!anchor}
119
+ className={cn(
120
+ 'group/combobox-content bg-popover text-popover-foreground ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-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-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 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 max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg shadow-md ring-1 duration-100 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:shadow-none',
121
+ className,
122
+ )}
123
+ {...props}
124
+ />
125
+ </ComboboxPrimitive.Positioner>
126
+ </ComboboxPrimitive.Portal>
127
+ );
128
+ }
129
+
130
+ function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props & ComboboxListBaseProps) {
131
+ return (
132
+ <ComboboxPrimitive.List
133
+ data-slot="combobox-list"
134
+ className={cn(
135
+ 'no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0',
136
+ className,
137
+ )}
138
+ {...props}
139
+ />
140
+ );
141
+ }
142
+
143
+ function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props & ComboboxItemBaseProps) {
144
+ return (
145
+ <ComboboxPrimitive.Item
146
+ data-slot="combobox-item"
147
+ className={cn(
148
+ 'data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground relative flex w-full cursor-default items-center gap-2 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',
149
+ className,
150
+ )}
151
+ {...props}
152
+ >
153
+ {children}
154
+ <ComboboxPrimitive.ItemIndicator
155
+ render={<span className="pointer-events-none absolute end-2 flex size-4 items-center justify-center" />}
156
+ >
157
+ <CheckIcon className="pointer-events-none" />
158
+ </ComboboxPrimitive.ItemIndicator>
159
+ </ComboboxPrimitive.Item>
160
+ );
161
+ }
162
+
163
+ function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props & ComboboxGroupBaseProps) {
164
+ return <ComboboxPrimitive.Group data-slot="combobox-group" className={cn(className)} {...props} />;
165
+ }
166
+
167
+ function ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props & ComboboxLabelBaseProps) {
168
+ return (
169
+ <ComboboxPrimitive.GroupLabel
170
+ data-slot="combobox-label"
171
+ className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}
172
+ {...props}
173
+ />
174
+ );
175
+ }
176
+
177
+ function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props & ComboboxCollectionBaseProps) {
178
+ return <ComboboxPrimitive.Collection data-slot="combobox-collection" {...props} />;
179
+ }
180
+
181
+ function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props & ComboboxEmptyBaseProps) {
182
+ return (
183
+ <ComboboxPrimitive.Empty
184
+ data-slot="combobox-empty"
185
+ className={cn(
186
+ 'text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex',
187
+ className,
188
+ )}
189
+ {...props}
190
+ />
191
+ );
192
+ }
193
+
194
+ function ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props & ComboboxSeparatorBaseProps) {
195
+ return (
196
+ <ComboboxPrimitive.Separator
197
+ data-slot="combobox-separator"
198
+ className={cn('bg-border -mx-1 my-1 h-px', className)}
199
+ {...props}
200
+ />
201
+ );
202
+ }
203
+
204
+ function ComboboxChips({
205
+ className,
206
+ ...props
207
+ }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &
208
+ ComboboxPrimitive.Chips.Props &
209
+ ComboboxChipsBaseProps) {
210
+ return (
211
+ <ComboboxPrimitive.Chips
212
+ data-slot="combobox-chips"
213
+ className={cn(
214
+ 'border-input focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-destructive/20 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40 flex min-h-8 flex-wrap items-center gap-1 rounded-lg border bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:ring-3 has-aria-invalid:ring-3 has-data-[slot=combobox-chip]:px-1',
215
+ className,
216
+ )}
217
+ {...props}
218
+ />
219
+ );
220
+ }
221
+
222
+ function ComboboxChip({
223
+ className,
224
+ children,
225
+ showRemove = true,
226
+ ...props
227
+ }: ComboboxPrimitive.Chip.Props & ComboboxChipBaseProps) {
228
+ return (
229
+ <ComboboxPrimitive.Chip
230
+ data-slot="combobox-chip"
231
+ className={cn(
232
+ 'bg-muted text-foreground flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm px-1.5 text-xs font-medium whitespace-nowrap has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0',
233
+ className,
234
+ )}
235
+ {...props}
236
+ >
237
+ {children}
238
+ {showRemove && (
239
+ <ComboboxPrimitive.ChipRemove
240
+ render={<Button variant="ghost" size="icon-xs" />}
241
+ className="-ms-1 opacity-50 hover:opacity-100"
242
+ data-slot="combobox-chip-remove"
243
+ >
244
+ <XIcon className="pointer-events-none" />
245
+ </ComboboxPrimitive.ChipRemove>
246
+ )}
247
+ </ComboboxPrimitive.Chip>
248
+ );
249
+ }
250
+
251
+ function ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props & ComboboxChipsInputBaseProps) {
252
+ return (
253
+ <ComboboxPrimitive.Input
254
+ data-slot="combobox-chip-input"
255
+ className={cn('min-w-16 flex-1 outline-none', className)}
256
+ {...props}
257
+ />
258
+ );
259
+ }
260
+
261
+ function useComboboxAnchor() {
262
+ return React.useRef<HTMLDivElement | null>(null);
263
+ }
264
+
265
+ export {
266
+ Combobox,
267
+ ComboboxChip,
268
+ ComboboxChips,
269
+ ComboboxChipsInput,
270
+ ComboboxCollection,
271
+ ComboboxContent,
272
+ ComboboxEmpty,
273
+ ComboboxGroup,
274
+ ComboboxInput,
275
+ ComboboxItem,
276
+ ComboboxLabel,
277
+ ComboboxList,
278
+ ComboboxSeparator,
279
+ ComboboxTrigger,
280
+ ComboboxValue,
281
+ useComboboxAnchor,
282
+ };
package/src/command.tsx CHANGED
@@ -1,135 +1,145 @@
1
- 'use client';
2
-
3
- import { type DialogProps } from '@radix-ui/react-dialog';
4
1
  import { Command as CommandPrimitive } from 'cmdk';
5
- import { Search } from 'lucide-react';
6
2
  import * as React from 'react';
7
3
 
8
- import {
9
- CommandBaseProps,
10
- CommandEmptyBaseProps,
11
- CommandGroupBaseProps,
12
- CommandInputBaseProps,
13
- CommandItemBaseProps,
14
- CommandListBaseProps,
15
- CommandSeparatorBaseProps,
16
- CommandShortcutBaseProps,
17
- } from '@gv-tech/ui-core';
18
- import { Dialog, DialogContent, DialogDescription, DialogTitle } from './dialog';
4
+ import { CheckIcon, SearchIcon } from 'lucide-react';
5
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';
6
+ import { InputGroup, InputGroupAddon } from './input-group';
19
7
  import { cn } from './lib/utils';
20
8
 
21
- const Command = React.forwardRef<
22
- React.ElementRef<typeof CommandPrimitive>,
23
- React.ComponentPropsWithoutRef<typeof CommandPrimitive> & CommandBaseProps
24
- >(({ className, ...props }, ref) => (
25
- <CommandPrimitive
26
- ref={ref}
27
- className={cn(
28
- 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',
29
- className,
30
- )}
31
- {...props}
32
- />
33
- ));
34
- Command.displayName = CommandPrimitive?.displayName || 'Command';
9
+ import type { CommandBaseProps } from '@gv-tech/ui-core';
35
10
 
36
- const CommandDialog = ({ children, ...props }: DialogProps) => {
11
+ function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {
12
+ return (
13
+ <CommandPrimitive
14
+ data-slot="command"
15
+ className={cn(
16
+ 'bg-popover text-popover-foreground flex size-full flex-col overflow-hidden rounded-xl! p-1',
17
+ className,
18
+ )}
19
+ {...props}
20
+ />
21
+ );
22
+ }
23
+
24
+ function CommandDialog({
25
+ title = 'Command Palette',
26
+ description = 'Search for a command to run...',
27
+ children,
28
+ className,
29
+ showCloseButton = false,
30
+ ...props
31
+ }: React.ComponentProps<typeof Dialog> & {
32
+ title?: string;
33
+ description?: string;
34
+ className?: string;
35
+ showCloseButton?: boolean;
36
+ }) {
37
37
  return (
38
38
  <Dialog {...props}>
39
- <DialogContent className="overflow-hidden p-0">
40
- <DialogTitle className="sr-only">Search</DialogTitle>
41
- <DialogDescription className="sr-only">Search for documentation and components.</DialogDescription>
42
- <Command className="[&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
39
+ <DialogHeader className="sr-only">
40
+ <DialogTitle>{title}</DialogTitle>
41
+ <DialogDescription>{description}</DialogDescription>
42
+ </DialogHeader>
43
+ <DialogContent
44
+ className={cn('top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0 shadow-2xl', className)}
45
+ showCloseButton={showCloseButton}
46
+ >
47
+ <Command className="[&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5">
43
48
  {children}
44
49
  </Command>
45
50
  </DialogContent>
46
51
  </Dialog>
47
52
  );
48
- };
53
+ }
54
+
55
+ function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {
56
+ return (
57
+ <div data-slot="command-input-wrapper" className="p-1 pb-0">
58
+ <InputGroup className="border-input/30 bg-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:ps-2!">
59
+ <CommandPrimitive.Input
60
+ data-slot="command-input"
61
+ className={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}
62
+ {...props}
63
+ />
64
+ <InputGroupAddon>
65
+ <SearchIcon className="size-4 shrink-0 opacity-50" />
66
+ </InputGroupAddon>
67
+ </InputGroup>
68
+ </div>
69
+ );
70
+ }
71
+
72
+ function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {
73
+ return (
74
+ <CommandPrimitive.List
75
+ data-slot="command-list"
76
+ className={cn('no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', className)}
77
+ {...props}
78
+ />
79
+ );
80
+ }
49
81
 
50
- const CommandInput = React.forwardRef<
51
- React.ElementRef<typeof CommandPrimitive.Input>,
52
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & CommandInputBaseProps
53
- >(({ className, ...props }, ref) => (
54
- <div className="flex items-center border-b px-3" cmdk-input-wrapper="">
55
- <Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
56
- <CommandPrimitive.Input
57
- ref={ref}
82
+ function CommandEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {
83
+ return (
84
+ <CommandPrimitive.Empty
85
+ data-slot="command-empty"
86
+ className={cn('py-6 text-center text-sm', className)}
87
+ {...props}
88
+ />
89
+ );
90
+ }
91
+
92
+ function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {
93
+ return (
94
+ <CommandPrimitive.Group
95
+ data-slot="command-group"
58
96
  className={cn(
59
- 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',
97
+ 'text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium',
60
98
  className,
61
99
  )}
62
100
  {...props}
63
101
  />
64
- </div>
65
- ));
66
-
67
- CommandInput.displayName = CommandPrimitive.Input?.displayName || 'CommandInput';
68
-
69
- const CommandList = React.forwardRef<
70
- React.ElementRef<typeof CommandPrimitive.List>,
71
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> & CommandListBaseProps
72
- >(({ className, ...props }, ref) => (
73
- <CommandPrimitive.List
74
- ref={ref}
75
- className={cn('max-h-[300px] overflow-x-hidden overflow-y-auto', className)}
76
- {...props}
77
- />
78
- ));
79
-
80
- CommandList.displayName = CommandPrimitive.List?.displayName || 'CommandList';
81
-
82
- const CommandEmpty = React.forwardRef<
83
- React.ElementRef<typeof CommandPrimitive.Empty>,
84
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> & CommandEmptyBaseProps
85
- >((props, ref) => <CommandPrimitive.Empty ref={ref} className="py-6 text-center text-sm" {...props} />);
86
-
87
- CommandEmpty.displayName = CommandPrimitive.Empty?.displayName || 'CommandEmpty';
88
-
89
- const CommandGroup = React.forwardRef<
90
- React.ElementRef<typeof CommandPrimitive.Group>,
91
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> & CommandGroupBaseProps
92
- >(({ className, ...props }, ref) => (
93
- <CommandPrimitive.Group
94
- ref={ref}
95
- className={cn(
96
- 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',
97
- className,
98
- )}
99
- {...props}
100
- />
101
- ));
102
-
103
- CommandGroup.displayName = CommandPrimitive.Group?.displayName || 'CommandGroup';
104
-
105
- const CommandSeparator = React.forwardRef<
106
- React.ElementRef<typeof CommandPrimitive.Separator>,
107
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> & CommandSeparatorBaseProps
108
- >(({ className, ...props }, ref) => (
109
- <CommandPrimitive.Separator ref={ref} className={cn('bg-border -mx-1 h-px', className)} {...props} />
110
- ));
111
- CommandSeparator.displayName = CommandPrimitive.Separator?.displayName || 'CommandSeparator';
102
+ );
103
+ }
112
104
 
113
- const CommandItem = React.forwardRef<
114
- React.ElementRef<typeof CommandPrimitive.Item>,
115
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> & CommandItemBaseProps
116
- >(({ className, ...props }, ref) => (
117
- <CommandPrimitive.Item
118
- ref={ref}
119
- className={cn(
120
- 'data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
121
- className,
122
- )}
123
- {...props}
124
- />
125
- ));
105
+ function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {
106
+ return (
107
+ <CommandPrimitive.Separator
108
+ data-slot="command-separator"
109
+ className={cn('bg-border -mx-1 h-px', className)}
110
+ {...props}
111
+ />
112
+ );
113
+ }
126
114
 
127
- CommandItem.displayName = CommandPrimitive.Item?.displayName || 'CommandItem';
115
+ function CommandItem({ className, children, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {
116
+ return (
117
+ <CommandPrimitive.Item
118
+ data-slot="command-item"
119
+ className={cn(
120
+ 'group/command-item data-[selected=true]:bg-muted data-[selected=true]:text-foreground data-[selected=true]:*:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
121
+ className,
122
+ )}
123
+ {...props}
124
+ >
125
+ {children}
126
+ <CheckIcon className="ms-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" />
127
+ </CommandPrimitive.Item>
128
+ );
129
+ }
128
130
 
129
- const CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement> & CommandShortcutBaseProps) => {
130
- return <span className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props} />;
131
- };
132
- CommandShortcut.displayName = 'CommandShortcut';
131
+ function CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {
132
+ return (
133
+ <span
134
+ data-slot="command-shortcut"
135
+ className={cn(
136
+ 'text-muted-foreground group-data-[selected=true]/command-item:text-foreground ms-auto text-xs tracking-widest',
137
+ className,
138
+ )}
139
+ {...props}
140
+ />
141
+ );
142
+ }
133
143
 
134
144
  export {
135
145
  Command,
@@ -142,13 +152,6 @@ export {
142
152
  CommandSeparator,
143
153
  CommandShortcut,
144
154
  };
145
- export type {
146
- CommandEmptyBaseProps as CommandEmptyProps,
147
- CommandGroupBaseProps as CommandGroupProps,
148
- CommandInputBaseProps as CommandInputProps,
149
- CommandItemBaseProps as CommandItemProps,
150
- CommandListBaseProps as CommandListProps,
151
- CommandBaseProps as CommandProps,
152
- CommandSeparatorBaseProps as CommandSeparatorProps,
153
- CommandShortcutBaseProps as CommandShortcutProps,
154
- };
155
+
156
+ // Verify that the component satisfies the ui-core contract
157
+ const _verifyCommandContract: CommandBaseProps = {} as unknown as React.ComponentProps<typeof Command>;