@gv-tech/ui-web 2.22.2 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/dist/accordion-Dd8Hrexd.mjs +244 -0
  2. package/dist/accordion-DdSOiVyo.js +1 -0
  3. package/dist/accordion.cjs +1 -1
  4. package/dist/accordion.d.ts +5 -7
  5. package/dist/accordion.d.ts.map +1 -1
  6. package/dist/accordion.mjs +1 -2
  7. package/dist/alert-dialog-B7zX3gJX.js +7 -0
  8. package/dist/alert-dialog-BQoG5g_w.mjs +213 -0
  9. package/dist/alert-dialog.cjs +1 -1
  10. package/dist/alert-dialog.d.ts +17 -21
  11. package/dist/alert-dialog.d.ts.map +1 -1
  12. package/dist/alert-dialog.mjs +2 -4
  13. package/dist/alert.cjs +1 -1
  14. package/dist/alert.d.ts +8 -8
  15. package/dist/alert.d.ts.map +1 -1
  16. package/dist/alert.mjs +37 -29
  17. package/dist/{aspect-ratio-CFWobEnT.mjs → aspect-ratio-DnChDaBi.mjs} +10 -4
  18. package/dist/{aspect-ratio-D9dApiWv.js → aspect-ratio-QD1ZXP2B.js} +1 -1
  19. package/dist/aspect-ratio.cjs +1 -1
  20. package/dist/aspect-ratio.d.ts +2 -4
  21. package/dist/aspect-ratio.d.ts.map +1 -1
  22. package/dist/aspect-ratio.mjs +1 -1
  23. package/dist/avatar-C4onD8-4.mjs +127 -0
  24. package/dist/avatar-ki_M47qG.js +1 -0
  25. package/dist/avatar.cjs +1 -1
  26. package/dist/avatar.d.ts +10 -7
  27. package/dist/avatar.d.ts.map +1 -1
  28. package/dist/avatar.mjs +2 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.d.ts +4 -5
  31. package/dist/badge.d.ts.map +1 -1
  32. package/dist/badge.mjs +17 -13
  33. package/dist/breadcrumb.cjs +1 -1
  34. package/dist/breadcrumb.d.ts +9 -17
  35. package/dist/breadcrumb.d.ts.map +1 -1
  36. package/dist/breadcrumb.mjs +67 -58
  37. package/dist/button-group.cjs +1 -0
  38. package/dist/button-group.d.ts +11 -0
  39. package/dist/button-group.d.ts.map +1 -0
  40. package/dist/button-group.mjs +39 -0
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.d.ts +3 -5
  43. package/dist/button.d.ts.map +1 -1
  44. package/dist/button.mjs +33 -26
  45. package/dist/calendar-D9sapvfY.js +1 -0
  46. package/dist/{calendar-DtFx4qdT.mjs → calendar-Dg6VGycy.mjs} +631 -625
  47. package/dist/calendar.cjs +1 -1
  48. package/dist/calendar.d.ts +5 -5
  49. package/dist/calendar.d.ts.map +1 -1
  50. package/dist/calendar.mjs +1 -2
  51. package/dist/card.cjs +1 -1
  52. package/dist/card.d.ts +10 -10
  53. package/dist/card.d.ts.map +1 -1
  54. package/dist/card.mjs +53 -40
  55. package/dist/carousel-6oFHLN7R.js +1 -0
  56. package/dist/{carousel-PQJ97GjQ.mjs → carousel-DbDoNdqJ.mjs} +54 -59
  57. package/dist/carousel.cjs +1 -1
  58. package/dist/carousel.d.ts +18 -13
  59. package/dist/carousel.d.ts.map +1 -1
  60. package/dist/carousel.mjs +2 -4
  61. package/dist/chart.cjs +3 -3
  62. package/dist/chart.d.ts +35 -7
  63. package/dist/chart.d.ts.map +1 -1
  64. package/dist/chart.mjs +64 -71
  65. package/dist/checkbox-BLgY82mB.js +1 -0
  66. package/dist/{checkbox-BOmSuATv.mjs → checkbox-Bts_zfqd.mjs} +32 -29
  67. package/dist/checkbox.cjs +1 -1
  68. package/dist/checkbox.d.ts +2 -5
  69. package/dist/checkbox.d.ts.map +1 -1
  70. package/dist/checkbox.mjs +1 -2
  71. package/dist/collapsible.cjs +1 -1
  72. package/dist/collapsible.d.ts +4 -6
  73. package/dist/collapsible.d.ts.map +1 -1
  74. package/dist/collapsible.mjs +21 -3
  75. package/dist/combobox-6qNx9Wbb.js +4 -0
  76. package/dist/combobox-yDMqxM_J.mjs +5522 -0
  77. package/dist/combobox.cjs +1 -0
  78. package/dist/combobox.d.ts +21 -0
  79. package/dist/combobox.d.ts.map +1 -0
  80. package/dist/combobox.mjs +4 -0
  81. package/dist/command-C6wJ5giF.mjs +576 -0
  82. package/dist/command-DCrPL1iW.js +1 -0
  83. package/dist/command.cjs +1 -1
  84. package/dist/command.d.ts +16 -80
  85. package/dist/command.d.ts.map +1 -1
  86. package/dist/command.mjs +1 -2
  87. package/dist/context-menu-CydUpD4W.mjs +349 -0
  88. package/dist/context-menu-DQ7XuuG5.js +1 -0
  89. package/dist/context-menu.cjs +1 -1
  90. package/dist/context-menu.d.ts +29 -21
  91. package/dist/context-menu.d.ts.map +1 -1
  92. package/dist/context-menu.mjs +1 -2
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.d.ts +15 -17
  95. package/dist/dialog.d.ts.map +1 -1
  96. package/dist/dialog.mjs +89 -43
  97. package/dist/direction.cjs +1 -0
  98. package/dist/direction.d.ts +7 -0
  99. package/dist/direction.d.ts.map +1 -0
  100. package/dist/direction.mjs +15 -0
  101. package/dist/dist-1C8JOpVg.js +1 -0
  102. package/dist/{dist-CTaBktQl.mjs → dist-B1OcuinL.mjs} +93 -92
  103. package/dist/dist-BGZDG175.mjs +199 -0
  104. package/dist/dist-BPBwSSyk.mjs +8 -0
  105. package/dist/{dist-BTlmz3JV.js → dist-BPX1UGAz2.js} +1 -1
  106. package/dist/dist-BRsDdVlJ.js +1 -0
  107. package/dist/{dist-_LAgxsbh.mjs → dist-BWwCr-xN.mjs} +10 -9
  108. package/dist/dist-BYdcKuDi.mjs +16 -0
  109. package/dist/{dist-DCKyUINZ.mjs → dist-BlB11V_z.mjs} +1 -1
  110. package/dist/dist-CCXBcfM3.js +1 -0
  111. package/dist/{dist--EFQaGUD.mjs → dist-CDU9vno-.mjs} +4 -4
  112. package/dist/dist-CJolxugc.js +1 -0
  113. package/dist/dist-CQhWBhaI.mjs +91 -0
  114. package/dist/dist-CRLbUj9C.js +1 -0
  115. package/dist/dist-CWElW7UD.js +1 -0
  116. package/dist/{dist-NIAlh3KC.js → dist-CXbzwSnE.js} +1 -1
  117. package/dist/{dist-C5EZ0AD6.mjs → dist-CYj6O95k.mjs} +42 -41
  118. package/dist/{dist-Bjlzl0jN.mjs → dist-Cacc4QIh.mjs} +13 -10
  119. package/dist/dist-ChuP-5Gb.js +1 -0
  120. package/dist/dist-CiM892Rg.js +1 -0
  121. package/dist/{dist-Doq7FY_P.js → dist-CuMQq0hV.js} +1 -1
  122. package/dist/dist-DMnXk8Uo.js +1 -0
  123. package/dist/{dist-CRmJFaEL.mjs → dist-DPBTfUqI.mjs} +18 -17
  124. package/dist/dist-DR0lXVFG.js +1 -0
  125. package/dist/dist-Da7BU5sd.js +5 -0
  126. package/dist/{dist-D_tuvB-W.mjs → dist-Dz3LbuDd.mjs} +8 -9
  127. package/dist/{dist-9gQKRtL7.mjs → dist-GhACpuJb2.mjs} +1 -1
  128. package/dist/dist-o4zlRoDG.js +1 -0
  129. package/dist/{dist-DdVp13bp.mjs → dist-rGeQfsgN.mjs} +1 -1
  130. package/dist/{dist-BQOrag93.mjs → dist-tvb2Wafb.mjs} +22 -21
  131. package/dist/drawer.cjs +1 -1
  132. package/dist/drawer.d.ts +10 -21
  133. package/dist/drawer.d.ts.map +1 -1
  134. package/dist/drawer.mjs +74 -45
  135. package/dist/dropdown-menu-BoJvZ3Fj.js +1 -0
  136. package/dist/dropdown-menu-CriaO1_i.mjs +347 -0
  137. package/dist/dropdown-menu.cjs +1 -1
  138. package/dist/dropdown-menu.d.ts +27 -21
  139. package/dist/dropdown-menu.d.ts.map +1 -1
  140. package/dist/dropdown-menu.mjs +1 -1
  141. package/dist/empty.cjs +1 -0
  142. package/dist/empty.d.ts +13 -0
  143. package/dist/empty.d.ts.map +1 -0
  144. package/dist/empty.mjs +60 -0
  145. package/dist/{es2015-DkZq_IIO.mjs → es2015-BhmbVcui.mjs} +2 -2
  146. package/dist/{es2015-Ca60p53M.js → es2015-D22cM8Q_.js} +1 -1
  147. package/dist/field.cjs +1 -0
  148. package/dist/field.d.ts +18 -0
  149. package/dist/field.d.ts.map +1 -0
  150. package/dist/field.mjs +109 -0
  151. package/dist/floating-ui.react-dom-DgS_bqyY.mjs +1089 -0
  152. package/dist/floating-ui.react-dom-DpCJEf_x.js +1 -0
  153. package/dist/form.cjs +1 -1
  154. package/dist/form.mjs +8 -8
  155. package/dist/hooks/use-mobile.d.ts +2 -0
  156. package/dist/hooks/use-mobile.d.ts.map +1 -0
  157. package/dist/hooks/use-theme.d.ts +16 -0
  158. package/dist/hooks/use-theme.d.ts.map +1 -1
  159. package/dist/{hover-card-BOk3-K0k.mjs → hover-card-CJ-ibpbC.mjs} +53 -33
  160. package/dist/hover-card-CK5SjVLL.js +1 -0
  161. package/dist/hover-card.cjs +1 -1
  162. package/dist/hover-card.d.ts +4 -6
  163. package/dist/hover-card.d.ts.map +1 -1
  164. package/dist/hover-card.mjs +1 -2
  165. package/dist/index.cjs +1 -1
  166. package/dist/index.d.ts +14 -43
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.mjs +66 -54
  169. package/dist/input-group.cjs +1 -0
  170. package/dist/input-group.d.ts +18 -0
  171. package/dist/input-group.d.ts.map +1 -0
  172. package/dist/input-group.mjs +78 -0
  173. package/dist/input-otp-BH_9dVhh.mjs +391 -0
  174. package/dist/input-otp-BibboKMt.js +20 -0
  175. package/dist/input-otp.cjs +1 -0
  176. package/dist/input-otp.d.ts +9 -0
  177. package/dist/input-otp.d.ts.map +1 -0
  178. package/dist/input-otp.mjs +4 -0
  179. package/dist/input.cjs +1 -1
  180. package/dist/input.d.ts +1 -4
  181. package/dist/input.d.ts.map +1 -1
  182. package/dist/input.mjs +11 -11
  183. package/dist/item.cjs +1 -0
  184. package/dist/item.d.ts +25 -0
  185. package/dist/item.d.ts.map +1 -0
  186. package/dist/item.mjs +118 -0
  187. package/dist/kbd.cjs +1 -0
  188. package/dist/kbd.d.ts +5 -0
  189. package/dist/kbd.d.ts.map +1 -0
  190. package/dist/kbd.mjs +20 -0
  191. package/dist/label-BXMSoyyu.js +1 -0
  192. package/dist/label-C8GNfPU0.mjs +25 -0
  193. package/dist/label.cjs +1 -1
  194. package/dist/label.d.ts +2 -5
  195. package/dist/label.d.ts.map +1 -1
  196. package/dist/label.mjs +1 -2
  197. package/dist/menubar-BcyqIJgy.mjs +441 -0
  198. package/dist/menubar-DPxokWFI.js +1 -0
  199. package/dist/menubar.cjs +1 -1
  200. package/dist/menubar.d.ts +25 -19
  201. package/dist/menubar.d.ts.map +1 -1
  202. package/dist/menubar.mjs +1 -1
  203. package/dist/native-select.cjs +1 -0
  204. package/dist/native-select.d.ts +8 -0
  205. package/dist/native-select.d.ts.map +1 -0
  206. package/dist/native-select.mjs +39 -0
  207. package/dist/navigation-menu-2yE2MUu-.js +1 -0
  208. package/dist/navigation-menu-N8gkxEXE.mjs +628 -0
  209. package/dist/navigation-menu.cjs +1 -1
  210. package/dist/navigation-menu.d.ts +11 -11
  211. package/dist/navigation-menu.d.ts.map +1 -1
  212. package/dist/navigation-menu.mjs +1 -2
  213. package/dist/pagination.cjs +1 -1
  214. package/dist/pagination.d.ts +13 -26
  215. package/dist/pagination.d.ts.map +1 -1
  216. package/dist/pagination.mjs +76 -59
  217. package/dist/popover-D1AO-E8p.js +1 -0
  218. package/dist/popover-wQACF3ut.mjs +245 -0
  219. package/dist/popover.cjs +1 -1
  220. package/dist/popover.d.ts +9 -8
  221. package/dist/popover.d.ts.map +1 -1
  222. package/dist/popover.mjs +2 -3
  223. package/dist/{progress-30ehxjKg.mjs → progress-DPWSEWa5.mjs} +19 -14
  224. package/dist/{progress-BqWHea4f.js → progress-ShXZwOfj.js} +2 -2
  225. package/dist/progress.cjs +1 -1
  226. package/dist/progress.d.ts +2 -4
  227. package/dist/progress.d.ts.map +1 -1
  228. package/dist/progress.mjs +1 -1
  229. package/dist/radio-group-CQbZCQmj.mjs +199 -0
  230. package/dist/radio-group-DAEi5vW_.js +1 -0
  231. package/dist/radio-group.cjs +1 -1
  232. package/dist/radio-group.d.ts +3 -8
  233. package/dist/radio-group.d.ts.map +1 -1
  234. package/dist/radio-group.mjs +1 -2
  235. package/dist/resizable-Cv-mKMKP.js +1 -0
  236. package/dist/{resizable-DhOcAmNX.mjs → resizable-DJSE3e5L.mjs} +310 -282
  237. package/dist/resizable.cjs +1 -1
  238. package/dist/resizable.d.ts +6 -7
  239. package/dist/resizable.d.ts.map +1 -1
  240. package/dist/resizable.mjs +1 -1
  241. package/dist/{scroll-area-DJcPs0_v.mjs → scroll-area-8QcqkHnC.mjs} +69 -58
  242. package/dist/scroll-area-Cqqinhxf.js +1 -0
  243. package/dist/scroll-area.cjs +1 -1
  244. package/dist/scroll-area.d.ts +3 -5
  245. package/dist/scroll-area.d.ts.map +1 -1
  246. package/dist/scroll-area.mjs +1 -2
  247. package/dist/search.cjs +1 -1
  248. package/dist/search.d.ts +1 -1
  249. package/dist/search.d.ts.map +1 -1
  250. package/dist/search.mjs +15 -14
  251. package/dist/select-DdUveoSA.js +1 -0
  252. package/dist/{select-D4bxRFq5.mjs → select-yoeH35x2.mjs} +279 -245
  253. package/dist/select.cjs +1 -1
  254. package/dist/select.d.ts +13 -13
  255. package/dist/select.d.ts.map +1 -1
  256. package/dist/select.mjs +1 -1
  257. package/dist/{separator-DZACUutC.mjs → separator-BU1ea5gl.mjs} +14 -10
  258. package/dist/separator-DBjErwHf.js +1 -0
  259. package/dist/separator.cjs +1 -1
  260. package/dist/separator.d.ts +2 -4
  261. package/dist/separator.d.ts.map +1 -1
  262. package/dist/separator.mjs +1 -2
  263. package/dist/sheet.cjs +1 -1
  264. package/dist/sheet.d.ts +13 -26
  265. package/dist/sheet.d.ts.map +1 -1
  266. package/dist/sheet.mjs +84 -54
  267. package/dist/shim-B5sEfNEJ.js +1 -0
  268. package/dist/shim-DX33EwUw.mjs +91 -0
  269. package/dist/sidebar-B-sWccYh.mjs +355 -0
  270. package/dist/sidebar-DIW-1cin.js +1 -0
  271. package/dist/sidebar.cjs +1 -0
  272. package/dist/sidebar.d.ts +45 -0
  273. package/dist/sidebar.d.ts.map +1 -0
  274. package/dist/sidebar.mjs +5 -0
  275. package/dist/skeleton.cjs +1 -1
  276. package/dist/skeleton.d.ts +1 -4
  277. package/dist/skeleton.d.ts.map +1 -1
  278. package/dist/skeleton.mjs +2 -3
  279. package/dist/{slider-DTdrUy_s.mjs → slider-CCPXejUF.mjs} +81 -59
  280. package/dist/slider-w05gD_Ix.js +1 -0
  281. package/dist/slider.cjs +1 -1
  282. package/dist/slider.d.ts +2 -4
  283. package/dist/slider.d.ts.map +1 -1
  284. package/dist/slider.mjs +1 -1
  285. package/dist/sonner.cjs +1 -1
  286. package/dist/sonner.d.ts +1 -5
  287. package/dist/sonner.d.ts.map +1 -1
  288. package/dist/sonner.mjs +23 -16
  289. package/dist/spinner.cjs +1 -0
  290. package/dist/spinner.d.ts +4 -0
  291. package/dist/spinner.d.ts.map +1 -0
  292. package/dist/spinner.mjs +15 -0
  293. package/dist/support-fab.cjs +1 -1
  294. package/dist/support-fab.mjs +1 -1
  295. package/dist/switch-CDBqsWQa.mjs +112 -0
  296. package/dist/switch-X2WBJsUu.js +1 -0
  297. package/dist/switch.cjs +1 -1
  298. package/dist/switch.d.ts +4 -4
  299. package/dist/switch.d.ts.map +1 -1
  300. package/dist/switch.mjs +1 -1
  301. package/dist/table.cjs +1 -1
  302. package/dist/table.d.ts +8 -10
  303. package/dist/table.d.ts.map +1 -1
  304. package/dist/table.mjs +62 -54
  305. package/dist/tabs-DzvgrVzk.js +1 -0
  306. package/dist/tabs-KDeHjVQU.mjs +160 -0
  307. package/dist/tabs.cjs +1 -1
  308. package/dist/tabs.d.ts +10 -8
  309. package/dist/tabs.d.ts.map +1 -1
  310. package/dist/tabs.mjs +2 -2
  311. package/dist/text.d.ts +1 -1
  312. package/dist/textarea.cjs +1 -1
  313. package/dist/textarea.d.ts +1 -4
  314. package/dist/textarea.d.ts.map +1 -1
  315. package/dist/textarea.mjs +10 -10
  316. package/dist/{theme-toggle-Dtze9fyN.js → theme-toggle-C2Y4bIM3.js} +1 -1
  317. package/dist/{theme-toggle-DAHBgdy0.mjs → theme-toggle-clE-HpSS.mjs} +9 -9
  318. package/dist/theme-toggle.cjs +1 -1
  319. package/dist/theme-toggle.mjs +1 -2
  320. package/dist/toast-1keyrzem.js +1 -0
  321. package/dist/{toast-G9LdgDDE.mjs → toast-DVI6jPq5.mjs} +102 -101
  322. package/dist/toast.cjs +1 -1
  323. package/dist/toast.d.ts.map +1 -1
  324. package/dist/toast.mjs +1 -1
  325. package/dist/{toaster-WQJjavlc.mjs → toaster-Czhz-ktg.mjs} +1 -1
  326. package/dist/{toaster-CKD4CKAZ.js → toaster-DfDb2-aI.js} +1 -1
  327. package/dist/toaster.cjs +1 -1
  328. package/dist/toaster.mjs +1 -1
  329. package/dist/toggle-BGkq5XDM.js +1 -0
  330. package/dist/toggle-BfIIdlA6.mjs +58 -0
  331. package/dist/toggle-group-CbqgoPFU.mjs +167 -0
  332. package/dist/toggle-group-D7hR4BT2.js +1 -0
  333. package/dist/toggle-group.cjs +1 -1
  334. package/dist/toggle-group.d.ts +7 -9
  335. package/dist/toggle-group.d.ts.map +1 -1
  336. package/dist/toggle-group.mjs +1 -1
  337. package/dist/toggle.cjs +1 -1
  338. package/dist/toggle.d.ts +6 -5
  339. package/dist/toggle.d.ts.map +1 -1
  340. package/dist/toggle.mjs +2 -19
  341. package/dist/tooltip-CAIbshMk.js +1 -0
  342. package/dist/{tooltip-BHEcM7lO.mjs → tooltip-D_o8Z-Ya.mjs} +106 -90
  343. package/dist/tooltip.cjs +1 -1
  344. package/dist/tooltip.d.ts +5 -10
  345. package/dist/tooltip.d.ts.map +1 -1
  346. package/dist/tooltip.mjs +1 -1
  347. package/package.json +8 -6
  348. package/src/accordion.tsx +58 -51
  349. package/src/alert-dialog.tsx +140 -93
  350. package/src/alert.tsx +44 -33
  351. package/src/aspect-ratio.tsx +10 -4
  352. package/src/avatar.tsx +92 -37
  353. package/src/badge.tsx +24 -14
  354. package/src/breadcrumb.tsx +73 -85
  355. package/src/button-group.tsx +78 -0
  356. package/src/button.tsx +46 -24
  357. package/src/calendar.tsx +52 -40
  358. package/src/card.tsx +67 -42
  359. package/src/carousel.tsx +164 -174
  360. package/src/chart.tsx +206 -232
  361. package/src/checkbox.tsx +17 -17
  362. package/src/collapsible.tsx +16 -10
  363. package/src/combobox.tsx +282 -0
  364. package/src/command.tsx +123 -120
  365. package/src/context-menu.tsx +206 -179
  366. package/src/dialog.tsx +111 -65
  367. package/src/direction.tsx +18 -0
  368. package/src/drawer.tsx +75 -78
  369. package/src/dropdown-menu.tsx +211 -180
  370. package/src/empty.tsx +83 -0
  371. package/src/field.tsx +217 -0
  372. package/src/hooks/use-mobile.ts +19 -0
  373. package/src/hover-card.tsx +33 -27
  374. package/src/index.ts +108 -154
  375. package/src/input-group.tsx +143 -0
  376. package/src/input-otp.tsx +81 -0
  377. package/src/input.tsx +8 -8
  378. package/src/item.tsx +185 -0
  379. package/src/kbd.tsx +21 -0
  380. package/src/label.tsx +17 -14
  381. package/src/menubar.tsx +211 -199
  382. package/src/native-select.tsx +54 -0
  383. package/src/navigation-menu.tsx +115 -110
  384. package/src/pagination.tsx +65 -80
  385. package/src/popover.tsx +53 -41
  386. package/src/progress.tsx +22 -20
  387. package/src/radio-group.tsx +22 -34
  388. package/src/resizable.tsx +34 -49
  389. package/src/scroll-area.tsx +43 -35
  390. package/src/search.tsx +12 -9
  391. package/src/select.tsx +138 -133
  392. package/src/separator.tsx +25 -18
  393. package/src/sheet.tsx +97 -127
  394. package/src/sidebar.tsx +660 -0
  395. package/src/skeleton.tsx +7 -6
  396. package/src/slider.tsx +51 -19
  397. package/src/sonner.tsx +22 -12
  398. package/src/spinner.tsx +10 -0
  399. package/src/support-fab.tsx +1 -1
  400. package/src/switch.tsx +28 -21
  401. package/src/table.tsx +61 -87
  402. package/src/tabs.tsx +75 -56
  403. package/src/textarea.tsx +8 -10
  404. package/src/toast.tsx +5 -0
  405. package/src/toggle-group.tsx +76 -40
  406. package/src/toggle.tsx +35 -15
  407. package/src/tooltip.tsx +41 -43
  408. package/dist/accordion-BTF24dQU.js +0 -1
  409. package/dist/accordion-DHTV2Am8.mjs +0 -221
  410. package/dist/alert-dialog-Bwn2-Uyf.mjs +0 -164
  411. package/dist/alert-dialog-DBMX5E0-.js +0 -7
  412. package/dist/avatar-BI7s8omb.js +0 -1
  413. package/dist/avatar-hzlewncL.mjs +0 -185
  414. package/dist/calendar-ykdYhTj9.js +0 -1
  415. package/dist/carousel-DSmAn1nc.js +0 -1
  416. package/dist/checkbox-dK6DJKeV.js +0 -1
  417. package/dist/command-CDSbHz4C.js +0 -1
  418. package/dist/command-j0rZqZ7B.mjs +0 -531
  419. package/dist/context-menu-BWgLbKLP.js +0 -1
  420. package/dist/context-menu-CWSzssAO.mjs +0 -292
  421. package/dist/dist-B28N93_W.js +0 -1
  422. package/dist/dist-B43Kk7ii.js +0 -1
  423. package/dist/dist-BTPL2C0R.js +0 -1
  424. package/dist/dist-BjEG16aJ.mjs +0 -111
  425. package/dist/dist-BlKAvKHD.js +0 -1
  426. package/dist/dist-C3Z3atn0.mjs +0 -10
  427. package/dist/dist-C4q8IPk4.mjs +0 -28
  428. package/dist/dist-CPglx4om.js +0 -1
  429. package/dist/dist-CV2U2xFR.js +0 -1
  430. package/dist/dist-Cv9YaN1n.mjs +0 -61
  431. package/dist/dist-DAe-fOIM.mjs +0 -25
  432. package/dist/dist-DQAJMTj0.js +0 -1
  433. package/dist/dist-DaCPM8ia.js +0 -1
  434. package/dist/dist-DasmYflz.js +0 -1
  435. package/dist/dist-DneYUKe0.js +0 -1
  436. package/dist/dist-Du2jbEkG.mjs +0 -1282
  437. package/dist/dist-Dw6-GQAn.js +0 -1
  438. package/dist/dist-DwGlbIjj.js +0 -5
  439. package/dist/dist-Dzjlf9ug.js +0 -1
  440. package/dist/dist-GaBUW_Tu.js +0 -1
  441. package/dist/dropdown-menu-Bz5LlLjl.js +0 -1
  442. package/dist/dropdown-menu-Cp1qpOLk.mjs +0 -288
  443. package/dist/hover-card-CyKIuXGH.js +0 -1
  444. package/dist/label-DGuuPl_e.mjs +0 -22
  445. package/dist/label-gVkdll-j.js +0 -1
  446. package/dist/menubar-DNrIQhY5.mjs +0 -410
  447. package/dist/menubar-DkjAo6qJ.js +0 -1
  448. package/dist/navigation-menu-1cmCEi0j.mjs +0 -602
  449. package/dist/navigation-menu-qPt8hpr5.js +0 -1
  450. package/dist/popover-CbM1tqdC.mjs +0 -201
  451. package/dist/popover-DGTgqdKX.js +0 -1
  452. package/dist/radio-group-BGThTiQM.mjs +0 -193
  453. package/dist/radio-group-ClFpAswm.js +0 -1
  454. package/dist/resizable-D09wr7tV.js +0 -1
  455. package/dist/scroll-area-W_aOLOdE.js +0 -1
  456. package/dist/select-BQtkQBiD.js +0 -1
  457. package/dist/separator-BmkhoDge.js +0 -1
  458. package/dist/slider-Bkluwc3b.js +0 -1
  459. package/dist/switch-DENAxyga.js +0 -1
  460. package/dist/switch-DbsdyQVg.mjs +0 -103
  461. package/dist/tabs-C9sMowgZ.mjs +0 -136
  462. package/dist/tabs-DeK-zpy4.js +0 -1
  463. package/dist/toast-BtXY2QTe.js +0 -1
  464. package/dist/toggle-group-B0H9TwdD.mjs +0 -155
  465. package/dist/toggle-group-CAyztsIl.js +0 -1
  466. package/dist/tooltip-CKcMl7tK.js +0 -1
  467. /package/dist/{dist-C_45sBzc.js → dist-C_45sBzc2.js} +0 -0
  468. /package/dist/{dist-DGzGsPqo.mjs → dist-DGzGsPqo2.mjs} +0 -0
@@ -1,177 +1,218 @@
1
- 'use client';
2
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
3
- import { Check, ChevronRight, Circle } from 'lucide-react';
1
+ import { ContextMenu as ContextMenuPrimitive } from 'radix-ui';
4
2
  import * as React from 'react';
5
3
 
6
- import {
7
- ContextMenuBaseProps,
8
- ContextMenuCheckboxItemBaseProps,
9
- ContextMenuContentBaseProps,
10
- ContextMenuGroupBaseProps,
11
- ContextMenuItemBaseProps,
12
- ContextMenuLabelBaseProps,
13
- ContextMenuRadioGroupBaseProps,
14
- ContextMenuRadioItemBaseProps,
15
- ContextMenuSeparatorBaseProps,
16
- ContextMenuShortcutBaseProps,
17
- ContextMenuSubBaseProps,
18
- ContextMenuSubContentBaseProps,
19
- ContextMenuSubTriggerBaseProps,
20
- ContextMenuTriggerBaseProps,
21
- } from '@gv-tech/ui-core';
4
+ import { CheckIcon, ChevronRightIcon } from 'lucide-react';
22
5
  import { cn } from './lib/utils';
23
6
 
24
- const ContextMenu = ContextMenuPrimitive.Root;
25
-
26
- const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
27
-
28
- const ContextMenuGroup = ContextMenuPrimitive.Group;
29
-
30
- const ContextMenuPortal = ContextMenuPrimitive.Portal;
31
-
32
- const ContextMenuSub = ContextMenuPrimitive.Sub;
33
-
34
- const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
35
-
36
- const ContextMenuSubTrigger = React.forwardRef<
37
- React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,
38
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & ContextMenuSubTriggerBaseProps
39
- >(({ className, inset, children, ...props }, ref) => (
40
- <ContextMenuPrimitive.SubTrigger
41
- ref={ref}
42
- className={cn(
43
- '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',
44
- inset && 'pl-8',
45
- className,
46
- )}
47
- {...props}
48
- >
49
- {children}
50
- <ChevronRight className="ml-auto h-4 w-4" />
51
- </ContextMenuPrimitive.SubTrigger>
52
- ));
53
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger?.displayName || 'ContextMenuSubTrigger';
54
-
55
- const ContextMenuSubContent = React.forwardRef<
56
- React.ElementRef<typeof ContextMenuPrimitive.SubContent>,
57
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent> & ContextMenuSubContentBaseProps
58
- >(({ className, ...props }, ref) => (
59
- <ContextMenuPrimitive.SubContent
60
- ref={ref}
61
- className={cn(
62
- '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-context-menu-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg',
63
- className,
64
- )}
65
- {...props}
66
- />
67
- ));
68
- ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent?.displayName || 'ContextMenuSubContent';
69
-
70
- const ContextMenuContent = React.forwardRef<
71
- React.ElementRef<typeof ContextMenuPrimitive.Content>,
72
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content> & ContextMenuContentBaseProps
73
- >(({ className, ...props }, ref) => (
74
- <ContextMenuPrimitive.Portal>
75
- <ContextMenuPrimitive.Content
76
- ref={ref}
7
+ import type { ContextMenuBaseProps } from '@gv-tech/ui-core';
8
+
9
+ function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {
10
+ return <ContextMenuPrimitive.Root data-slot="context-menu" {...props} />;
11
+ }
12
+
13
+ function ContextMenuTrigger({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {
14
+ return (
15
+ <ContextMenuPrimitive.Trigger
16
+ data-slot="context-menu-trigger"
17
+ className={cn('select-none', className)}
18
+ {...props}
19
+ />
20
+ );
21
+ }
22
+
23
+ function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {
24
+ return <ContextMenuPrimitive.Group data-slot="context-menu-group" {...props} />;
25
+ }
26
+
27
+ function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {
28
+ return <ContextMenuPrimitive.Portal data-slot="context-menu-portal" {...props} />;
29
+ }
30
+
31
+ function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {
32
+ return <ContextMenuPrimitive.Sub data-slot="context-menu-sub" {...props} />;
33
+ }
34
+
35
+ function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {
36
+ return <ContextMenuPrimitive.RadioGroup data-slot="context-menu-radio-group" {...props} />;
37
+ }
38
+
39
+ function ContextMenuContent({
40
+ className,
41
+ ...props
42
+ }: React.ComponentProps<typeof ContextMenuPrimitive.Content> & {
43
+ side?: 'top' | 'right' | 'bottom' | 'left';
44
+ }) {
45
+ return (
46
+ <ContextMenuPrimitive.Portal>
47
+ <ContextMenuPrimitive.Content
48
+ data-slot="context-menu-content"
49
+ className={cn(
50
+ '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-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100',
51
+ className,
52
+ )}
53
+ {...props}
54
+ />
55
+ </ContextMenuPrimitive.Portal>
56
+ );
57
+ }
58
+
59
+ function ContextMenuItem({
60
+ className,
61
+ inset,
62
+ variant = 'default',
63
+ ...props
64
+ }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
65
+ inset?: boolean;
66
+ variant?: 'default' | 'destructive';
67
+ }) {
68
+ return (
69
+ <ContextMenuPrimitive.Item
70
+ data-slot="context-menu-item"
71
+ data-inset={inset}
72
+ data-variant={variant}
77
73
  className={cn(
78
- '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 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] origin-[--radix-context-menu-content-transform-origin] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',
74
+ 'group/context-menu-item focus:bg-accent 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 focus:*:[svg]:text-accent-foreground 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',
79
75
  className,
80
76
  )}
81
77
  {...props}
82
78
  />
83
- </ContextMenuPrimitive.Portal>
84
- ));
85
- ContextMenuContent.displayName = ContextMenuPrimitive.Content?.displayName || 'ContextMenuContent';
86
-
87
- const ContextMenuItem = React.forwardRef<
88
- React.ElementRef<typeof ContextMenuPrimitive.Item>,
89
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & ContextMenuItemBaseProps
90
- >(({ className, inset, ...props }, ref) => (
91
- <ContextMenuPrimitive.Item
92
- ref={ref}
93
- className={cn(
94
- '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',
95
- inset && 'pl-8',
96
- className,
97
- )}
98
- {...props}
99
- />
100
- ));
101
- ContextMenuItem.displayName = ContextMenuPrimitive.Item?.displayName || 'ContextMenuItem';
102
-
103
- const ContextMenuCheckboxItem = React.forwardRef<
104
- React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,
105
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem> & ContextMenuCheckboxItemBaseProps
106
- >(({ className, children, checked, ...props }, ref) => (
107
- <ContextMenuPrimitive.CheckboxItem
108
- ref={ref}
109
- className={cn(
110
- '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',
111
- className,
112
- )}
113
- checked={checked}
114
- {...props}
115
- >
116
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
117
- <ContextMenuPrimitive.ItemIndicator>
118
- <Check className="h-4 w-4" />
119
- </ContextMenuPrimitive.ItemIndicator>
120
- </span>
121
- {children}
122
- </ContextMenuPrimitive.CheckboxItem>
123
- ));
124
- ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem?.displayName || 'ContextMenuCheckboxItem';
125
-
126
- const ContextMenuRadioItem = React.forwardRef<
127
- React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,
128
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem> & ContextMenuRadioItemBaseProps
129
- >(({ className, children, ...props }, ref) => (
130
- <ContextMenuPrimitive.RadioItem
131
- ref={ref}
132
- className={cn(
133
- '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',
134
- className,
135
- )}
136
- {...props}
137
- >
138
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
139
- <ContextMenuPrimitive.ItemIndicator>
140
- <Circle className="h-4 w-4 fill-current" />
141
- </ContextMenuPrimitive.ItemIndicator>
142
- </span>
143
- {children}
144
- </ContextMenuPrimitive.RadioItem>
145
- ));
146
- ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem?.displayName || 'ContextMenuRadioItem';
147
-
148
- const ContextMenuLabel = React.forwardRef<
149
- React.ElementRef<typeof ContextMenuPrimitive.Label>,
150
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & ContextMenuLabelBaseProps
151
- >(({ className, inset, ...props }, ref) => (
152
- <ContextMenuPrimitive.Label
153
- ref={ref}
154
- className={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
155
- {...props}
156
- />
157
- ));
158
- ContextMenuLabel.displayName = ContextMenuPrimitive.Label?.displayName || 'ContextMenuLabel';
159
-
160
- const ContextMenuSeparator = React.forwardRef<
161
- React.ElementRef<typeof ContextMenuPrimitive.Separator>,
162
- React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator> & ContextMenuSeparatorBaseProps
163
- >(({ className, ...props }, ref) => (
164
- <ContextMenuPrimitive.Separator ref={ref} className={cn('bg-border -mx-1 my-1 h-px', className)} {...props} />
165
- ));
166
- ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator?.displayName || 'ContextMenuSeparator';
167
-
168
- const ContextMenuShortcut = ({
79
+ );
80
+ }
81
+
82
+ function ContextMenuSubTrigger({
169
83
  className,
84
+ inset,
85
+ children,
170
86
  ...props
171
- }: React.HTMLAttributes<HTMLSpanElement> & ContextMenuShortcutBaseProps) => {
172
- return <span className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props} />;
173
- };
174
- ContextMenuShortcut.displayName = 'ContextMenuShortcut';
87
+ }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
88
+ inset?: boolean;
89
+ }) {
90
+ return (
91
+ <ContextMenuPrimitive.SubTrigger
92
+ data-slot="context-menu-sub-trigger"
93
+ data-inset={inset}
94
+ className={cn(
95
+ '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-hidden select-none data-inset:ps-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
96
+ className,
97
+ )}
98
+ {...props}
99
+ >
100
+ {children}
101
+ <ChevronRightIcon className="ms-auto" />
102
+ </ContextMenuPrimitive.SubTrigger>
103
+ );
104
+ }
105
+
106
+ function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {
107
+ return (
108
+ <ContextMenuPrimitive.SubContent
109
+ data-slot="context-menu-sub-content"
110
+ className={cn(
111
+ 'bg-popover text-popover-foreground 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-context-menu-content-transform-origin) overflow-hidden rounded-lg border p-1 shadow-lg duration-100',
112
+ className,
113
+ )}
114
+ {...props}
115
+ />
116
+ );
117
+ }
118
+
119
+ function ContextMenuCheckboxItem({
120
+ className,
121
+ children,
122
+ checked,
123
+ inset,
124
+ ...props
125
+ }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem> & {
126
+ inset?: boolean;
127
+ }) {
128
+ return (
129
+ <ContextMenuPrimitive.CheckboxItem
130
+ data-slot="context-menu-checkbox-item"
131
+ data-inset={inset}
132
+ className={cn(
133
+ 'focus:bg-accent 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',
134
+ className,
135
+ )}
136
+ checked={checked}
137
+ {...props}
138
+ >
139
+ <span className="pointer-events-none absolute end-2">
140
+ <ContextMenuPrimitive.ItemIndicator>
141
+ <CheckIcon />
142
+ </ContextMenuPrimitive.ItemIndicator>
143
+ </span>
144
+ {children}
145
+ </ContextMenuPrimitive.CheckboxItem>
146
+ );
147
+ }
148
+
149
+ function ContextMenuRadioItem({
150
+ className,
151
+ children,
152
+ inset,
153
+ ...props
154
+ }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem> & {
155
+ inset?: boolean;
156
+ }) {
157
+ return (
158
+ <ContextMenuPrimitive.RadioItem
159
+ data-slot="context-menu-radio-item"
160
+ data-inset={inset}
161
+ className={cn(
162
+ 'focus:bg-accent 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',
163
+ className,
164
+ )}
165
+ {...props}
166
+ >
167
+ <span className="pointer-events-none absolute end-2">
168
+ <ContextMenuPrimitive.ItemIndicator>
169
+ <CheckIcon />
170
+ </ContextMenuPrimitive.ItemIndicator>
171
+ </span>
172
+ {children}
173
+ </ContextMenuPrimitive.RadioItem>
174
+ );
175
+ }
176
+
177
+ function ContextMenuLabel({
178
+ className,
179
+ inset,
180
+ ...props
181
+ }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
182
+ inset?: boolean;
183
+ }) {
184
+ return (
185
+ <ContextMenuPrimitive.Label
186
+ data-slot="context-menu-label"
187
+ data-inset={inset}
188
+ className={cn('text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:ps-7', className)}
189
+ {...props}
190
+ />
191
+ );
192
+ }
193
+
194
+ function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {
195
+ return (
196
+ <ContextMenuPrimitive.Separator
197
+ data-slot="context-menu-separator"
198
+ className={cn('bg-border -mx-1 my-1 h-px', className)}
199
+ {...props}
200
+ />
201
+ );
202
+ }
203
+
204
+ function ContextMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {
205
+ return (
206
+ <span
207
+ data-slot="context-menu-shortcut"
208
+ className={cn(
209
+ 'text-muted-foreground group-focus/context-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',
210
+ className,
211
+ )}
212
+ {...props}
213
+ />
214
+ );
215
+ }
175
216
 
176
217
  export {
177
218
  ContextMenu,
@@ -191,19 +232,5 @@ export {
191
232
  ContextMenuTrigger,
192
233
  };
193
234
 
194
- export type {
195
- ContextMenuCheckboxItemBaseProps as ContextMenuCheckboxItemProps,
196
- ContextMenuContentBaseProps as ContextMenuContentProps,
197
- ContextMenuGroupBaseProps as ContextMenuGroupProps,
198
- ContextMenuItemBaseProps as ContextMenuItemProps,
199
- ContextMenuLabelBaseProps as ContextMenuLabelProps,
200
- ContextMenuBaseProps as ContextMenuProps,
201
- ContextMenuRadioGroupBaseProps as ContextMenuRadioGroupProps,
202
- ContextMenuRadioItemBaseProps as ContextMenuRadioItemProps,
203
- ContextMenuSeparatorBaseProps as ContextMenuSeparatorProps,
204
- ContextMenuShortcutBaseProps as ContextMenuShortcutProps,
205
- ContextMenuSubContentBaseProps as ContextMenuSubContentProps,
206
- ContextMenuSubBaseProps as ContextMenuSubProps,
207
- ContextMenuSubTriggerBaseProps as ContextMenuSubTriggerProps,
208
- ContextMenuTriggerBaseProps as ContextMenuTriggerProps,
209
- };
235
+ // Verify that the component satisfies the ui-core contract
236
+ const _verifyContextMenuContract: ContextMenuBaseProps = {} as unknown as React.ComponentProps<typeof ContextMenu>;
package/src/dialog.tsx CHANGED
@@ -1,86 +1,129 @@
1
1
  'use client';
2
- import * as DialogPrimitive from '@radix-ui/react-dialog';
3
- import { X } from 'lucide-react';
2
+
3
+ import { Dialog as DialogPrimitive } from 'radix-ui';
4
4
  import * as React from 'react';
5
5
 
6
+ import { XIcon } from 'lucide-react';
7
+ import { Button } from './button';
6
8
  import { cn } from './lib/utils';
7
9
 
8
- const Dialog = DialogPrimitive.Root;
10
+ import type { DialogBaseProps } from '@gv-tech/ui-core';
9
11
 
10
- const DialogTrigger = DialogPrimitive.Trigger;
12
+ function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {
13
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
14
+ }
11
15
 
12
- const DialogPortal = DialogPrimitive.Portal;
16
+ function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
17
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
18
+ }
13
19
 
14
- const DialogClose = DialogPrimitive.Close;
20
+ function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
21
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
22
+ }
15
23
 
16
- const DialogOverlay = React.forwardRef<
17
- React.ElementRef<typeof DialogPrimitive.Overlay>,
18
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
19
- >(({ className, ...props }, ref) => (
20
- <DialogPrimitive.Overlay
21
- ref={ref}
22
- className={cn(
23
- 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80',
24
- className,
25
- )}
26
- {...props}
27
- />
28
- ));
29
- DialogOverlay.displayName = DialogPrimitive.Overlay?.displayName || 'DialogOverlay';
24
+ function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {
25
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
26
+ }
30
27
 
31
- const DialogContent = React.forwardRef<
32
- React.ElementRef<typeof DialogPrimitive.Content>,
33
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>
34
- >(({ className, children, ...props }, ref) => (
35
- <DialogPortal>
36
- <DialogOverlay />
37
- <DialogPrimitive.Content
38
- ref={ref}
28
+ function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
29
+ return (
30
+ <DialogPrimitive.Overlay
31
+ data-slot="dialog-overlay"
39
32
  className={cn(
40
- 'bg-background 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg',
33
+ '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 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs',
41
34
  className,
42
35
  )}
43
36
  {...props}
44
- >
45
- {children}
46
- <DialogPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none">
47
- <X className="h-4 w-4" />
48
- <span className="sr-only">Close</span>
49
- </DialogPrimitive.Close>
50
- </DialogPrimitive.Content>
51
- </DialogPortal>
52
- ));
53
- DialogContent.displayName = DialogPrimitive.Content?.displayName || 'DialogContent';
37
+ />
38
+ );
39
+ }
54
40
 
55
- const DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
56
- <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />
57
- );
58
- DialogHeader.displayName = 'DialogHeader';
41
+ function DialogContent({
42
+ className,
43
+ children,
44
+ showCloseButton = true,
45
+ ...props
46
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
47
+ showCloseButton?: boolean;
48
+ }) {
49
+ return (
50
+ <DialogPortal>
51
+ <DialogOverlay />
52
+ <DialogPrimitive.Content
53
+ data-slot="dialog-content"
54
+ className={cn(
55
+ 'bg-popover text-popover-foreground ring-foreground/10 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 fixed start-1/2 top-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 text-sm ring-1 duration-100 outline-none sm:max-w-sm rtl:translate-x-1/2',
56
+ className,
57
+ )}
58
+ {...props}
59
+ >
60
+ {children}
61
+ {showCloseButton && (
62
+ <DialogPrimitive.Close data-slot="dialog-close" asChild>
63
+ <Button variant="ghost" className="absolute end-2 top-2" size="icon-sm">
64
+ <XIcon />
65
+ <span className="sr-only">Close</span>
66
+ </Button>
67
+ </DialogPrimitive.Close>
68
+ )}
69
+ </DialogPrimitive.Content>
70
+ </DialogPortal>
71
+ );
72
+ }
59
73
 
60
- const DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
61
- <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />
62
- );
63
- DialogFooter.displayName = 'DialogFooter';
74
+ function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {
75
+ return <div data-slot="dialog-header" className={cn('flex flex-col gap-2', className)} {...props} />;
76
+ }
64
77
 
65
- const DialogTitle = React.forwardRef<
66
- React.ElementRef<typeof DialogPrimitive.Title>,
67
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
68
- >(({ className, ...props }, ref) => (
69
- <DialogPrimitive.Title
70
- ref={ref}
71
- className={cn('text-lg leading-none font-semibold tracking-tight', className)}
72
- {...props}
73
- />
74
- ));
75
- DialogTitle.displayName = DialogPrimitive.Title?.displayName || 'DialogTitle';
78
+ function DialogFooter({
79
+ className,
80
+ showCloseButton = false,
81
+ children,
82
+ ...props
83
+ }: React.ComponentProps<'div'> & {
84
+ showCloseButton?: boolean;
85
+ }) {
86
+ return (
87
+ <div
88
+ data-slot="dialog-footer"
89
+ className={cn(
90
+ 'bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 sm:flex-row sm:justify-end',
91
+ className,
92
+ )}
93
+ {...props}
94
+ >
95
+ {children}
96
+ {showCloseButton && (
97
+ <DialogPrimitive.Close asChild>
98
+ <Button variant="outline">Close</Button>
99
+ </DialogPrimitive.Close>
100
+ )}
101
+ </div>
102
+ );
103
+ }
104
+
105
+ function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {
106
+ return (
107
+ <DialogPrimitive.Title
108
+ data-slot="dialog-title"
109
+ className={cn('text-base leading-none font-medium', className)}
110
+ {...props}
111
+ />
112
+ );
113
+ }
76
114
 
77
- const DialogDescription = React.forwardRef<
78
- React.ElementRef<typeof DialogPrimitive.Description>,
79
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
80
- >(({ className, ...props }, ref) => (
81
- <DialogPrimitive.Description ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />
82
- ));
83
- DialogDescription.displayName = DialogPrimitive.Description?.displayName || 'DialogDescription';
115
+ function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {
116
+ return (
117
+ <DialogPrimitive.Description
118
+ data-slot="dialog-description"
119
+ className={cn(
120
+ 'text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3',
121
+ className,
122
+ )}
123
+ {...props}
124
+ />
125
+ );
126
+ }
84
127
 
85
128
  export {
86
129
  Dialog,
@@ -94,3 +137,6 @@ export {
94
137
  DialogTitle,
95
138
  DialogTrigger,
96
139
  };
140
+
141
+ // Verify that the component satisfies the ui-core contract
142
+ const _verifyDialogContract: DialogBaseProps = {} as unknown as React.ComponentProps<typeof Dialog>;
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+
3
+ import { Direction } from 'radix-ui';
4
+ import * as React from 'react';
5
+
6
+ import type { DirectionProviderBaseProps } from '@gv-tech/ui-core';
7
+
8
+ function DirectionProvider({
9
+ dir,
10
+ direction,
11
+ children,
12
+ }: React.ComponentProps<typeof Direction.DirectionProvider> & DirectionProviderBaseProps) {
13
+ return <Direction.DirectionProvider dir={direction ?? dir}>{children}</Direction.DirectionProvider>;
14
+ }
15
+
16
+ const useDirection = Direction.useDirection;
17
+
18
+ export { DirectionProvider, useDirection };