@gv-tech/design-system 2.19.0 → 2.21.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 (484) hide show
  1. package/dist/accordion.cjs +2 -2
  2. package/dist/accordion.cjs.map +1 -1
  3. package/dist/accordion.d.ts +2 -34
  4. package/dist/accordion.mjs +35 -38
  5. package/dist/accordion.mjs.map +1 -1
  6. package/dist/alert-dialog.cjs +2 -2
  7. package/dist/alert-dialog.cjs.map +1 -1
  8. package/dist/alert-dialog.d.ts +2 -74
  9. package/dist/alert-dialog.mjs +55 -69
  10. package/dist/alert-dialog.mjs.map +1 -1
  11. package/dist/alert.cjs +2 -2
  12. package/dist/alert.cjs.map +1 -1
  13. package/dist/alert.d.ts +2 -29
  14. package/dist/alert.mjs +36 -32
  15. package/dist/alert.mjs.map +1 -1
  16. package/dist/aspect-ratio.cjs +2 -2
  17. package/dist/aspect-ratio.cjs.map +1 -1
  18. package/dist/aspect-ratio.d.ts +2 -14
  19. package/dist/aspect-ratio.mjs +8 -6
  20. package/dist/aspect-ratio.mjs.map +1 -1
  21. package/dist/avatar.cjs +2 -2
  22. package/dist/avatar.cjs.map +1 -1
  23. package/dist/avatar.d.ts +2 -26
  24. package/dist/avatar.mjs +27 -29
  25. package/dist/avatar.mjs.map +1 -1
  26. package/dist/badge.cjs +2 -2
  27. package/dist/badge.cjs.map +1 -1
  28. package/dist/badge.d.ts +2 -21
  29. package/dist/badge.mjs +23 -25
  30. package/dist/badge.mjs.map +1 -1
  31. package/dist/breadcrumb.cjs +2 -2
  32. package/dist/breadcrumb.cjs.map +1 -1
  33. package/dist/breadcrumb.d.ts +2 -62
  34. package/dist/breadcrumb.mjs +60 -67
  35. package/dist/breadcrumb.mjs.map +1 -1
  36. package/dist/button.cjs +2 -2
  37. package/dist/button.cjs.map +1 -1
  38. package/dist/button.d.ts +2 -22
  39. package/dist/button.mjs +40 -39
  40. package/dist/button.mjs.map +1 -1
  41. package/dist/calendar.cjs +2 -2
  42. package/dist/calendar.cjs.map +1 -1
  43. package/dist/calendar.d.ts +2 -36
  44. package/dist/calendar.mjs +94 -130
  45. package/dist/calendar.mjs.map +1 -1
  46. package/dist/card.cjs +2 -2
  47. package/dist/card.cjs.map +1 -1
  48. package/dist/card.d.ts +2 -23
  49. package/dist/card.mjs +44 -33
  50. package/dist/card.mjs.map +1 -1
  51. package/dist/carousel.cjs +2 -2
  52. package/dist/carousel.cjs.map +1 -1
  53. package/dist/carousel.d.ts +2 -78
  54. package/dist/carousel.mjs +113 -151
  55. package/dist/carousel.mjs.map +1 -1
  56. package/dist/chart.cjs +5 -5
  57. package/dist/chart.cjs.map +1 -1
  58. package/dist/chart.d.ts +2 -90
  59. package/dist/chart.mjs +124 -182
  60. package/dist/chart.mjs.map +1 -1
  61. package/dist/checkbox.cjs +2 -2
  62. package/dist/checkbox.cjs.map +1 -1
  63. package/dist/checkbox.d.ts +2 -17
  64. package/dist/checkbox.mjs +19 -22
  65. package/dist/checkbox.mjs.map +1 -1
  66. package/dist/collapsible.cjs +2 -2
  67. package/dist/collapsible.cjs.map +1 -1
  68. package/dist/collapsible.d.ts +2 -32
  69. package/dist/collapsible.mjs +8 -8
  70. package/dist/collapsible.mjs.map +1 -1
  71. package/dist/command.cjs +2 -2
  72. package/dist/command.cjs.map +1 -1
  73. package/dist/command.d.ts +2 -133
  74. package/dist/command.mjs +80 -86
  75. package/dist/command.mjs.map +1 -1
  76. package/dist/context-menu.cjs +2 -2
  77. package/dist/context-menu.cjs.map +1 -1
  78. package/dist/context-menu.d.ts +2 -115
  79. package/dist/context-menu.mjs +72 -124
  80. package/dist/context-menu.mjs.map +1 -1
  81. package/dist/design-system.css +3 -1
  82. package/dist/dialog.cjs +2 -2
  83. package/dist/dialog.cjs.map +1 -1
  84. package/dist/dialog.d.ts +2 -31
  85. package/dist/dialog.mjs +50 -65
  86. package/dist/dialog.mjs.map +1 -1
  87. package/dist/drawer.cjs +2 -2
  88. package/dist/drawer.cjs.map +1 -1
  89. package/dist/drawer.d.ts +2 -79
  90. package/dist/drawer.mjs +49 -54
  91. package/dist/drawer.mjs.map +1 -1
  92. package/dist/dropdown-menu.cjs +2 -2
  93. package/dist/dropdown-menu.cjs.map +1 -1
  94. package/dist/dropdown-menu.d.ts +2 -124
  95. package/dist/dropdown-menu.mjs +73 -126
  96. package/dist/dropdown-menu.mjs.map +1 -1
  97. package/dist/form.cjs +2 -2
  98. package/dist/form.cjs.map +1 -1
  99. package/dist/form.d.ts +2 -62
  100. package/dist/form.mjs +75 -65
  101. package/dist/form.mjs.map +1 -1
  102. package/dist/hover-card.cjs +2 -2
  103. package/dist/hover-card.cjs.map +1 -1
  104. package/dist/hover-card.d.ts +2 -30
  105. package/dist/hover-card.mjs +17 -23
  106. package/dist/hover-card.mjs.map +1 -1
  107. package/dist/index.cjs +1 -2
  108. package/dist/index.d.ts +2 -2442
  109. package/dist/index.mjs +56 -430
  110. package/dist/input.cjs +2 -2
  111. package/dist/input.cjs.map +1 -1
  112. package/dist/input.d.ts +2 -14
  113. package/dist/input.mjs +16 -20
  114. package/dist/input.mjs.map +1 -1
  115. package/dist/label.cjs +2 -2
  116. package/dist/label.cjs.map +1 -1
  117. package/dist/label.d.ts +2 -14
  118. package/dist/label.mjs +14 -8
  119. package/dist/label.mjs.map +1 -1
  120. package/dist/menubar.cjs +2 -2
  121. package/dist/menubar.cjs.map +1 -1
  122. package/dist/menubar.d.ts +2 -125
  123. package/dist/menubar.mjs +101 -156
  124. package/dist/menubar.mjs.map +1 -1
  125. package/dist/navigation-menu.cjs +2 -2
  126. package/dist/navigation-menu.cjs.map +1 -1
  127. package/dist/navigation-menu.d.ts +2 -77
  128. package/dist/navigation-menu.mjs +58 -96
  129. package/dist/navigation-menu.mjs.map +1 -1
  130. package/dist/packages/design-tokens/src/index.d.ts +91 -0
  131. package/dist/packages/design-tokens/src/palette.d.ts +31 -0
  132. package/dist/packages/design-tokens/src/preset.d.ts +107 -0
  133. package/dist/packages/design-tokens/src/radii.d.ts +20 -0
  134. package/dist/packages/design-tokens/src/shadows.d.ts +11 -0
  135. package/dist/packages/design-tokens/src/spacing.d.ts +29 -0
  136. package/dist/packages/design-tokens/src/theme.d.ts +47 -0
  137. package/dist/packages/design-tokens/src/typography.d.ts +32 -0
  138. package/dist/packages/ui-core/src/contracts/accordion.d.ts +19 -0
  139. package/dist/packages/ui-core/src/contracts/alert-dialog.d.ts +39 -0
  140. package/dist/packages/ui-core/src/contracts/alert.d.ts +14 -0
  141. package/dist/packages/ui-core/src/contracts/aspect-ratio.d.ts +6 -0
  142. package/dist/packages/ui-core/src/contracts/avatar.d.ts +14 -0
  143. package/dist/packages/ui-core/src/contracts/badge.d.ts +6 -0
  144. package/dist/packages/ui-core/src/contracts/breadcrumb.d.ts +30 -0
  145. package/dist/packages/ui-core/src/contracts/button.d.ts +9 -0
  146. package/dist/packages/ui-core/src/contracts/calendar.d.ts +4 -0
  147. package/dist/packages/ui-core/src/contracts/card.d.ts +5 -0
  148. package/dist/packages/ui-core/src/contracts/carousel.d.ts +24 -0
  149. package/dist/packages/ui-core/src/contracts/chart.d.ts +33 -0
  150. package/dist/packages/ui-core/src/contracts/checkbox.d.ts +7 -0
  151. package/dist/packages/ui-core/src/contracts/collapsible.d.ts +18 -0
  152. package/dist/packages/ui-core/src/contracts/command.d.ts +35 -0
  153. package/dist/packages/ui-core/src/contracts/context-menu.d.ts +64 -0
  154. package/dist/packages/ui-core/src/contracts/dialog.d.ts +13 -0
  155. package/dist/packages/ui-core/src/contracts/drawer.d.ts +31 -0
  156. package/dist/packages/ui-core/src/contracts/dropdown-menu.d.ts +73 -0
  157. package/dist/packages/ui-core/src/contracts/form.d.ts +23 -0
  158. package/dist/packages/ui-core/src/contracts/hover-card.d.ts +18 -0
  159. package/dist/packages/ui-core/src/contracts/input.d.ts +5 -0
  160. package/dist/packages/ui-core/src/contracts/label.d.ts +6 -0
  161. package/dist/packages/ui-core/src/contracts/menubar.d.ts +73 -0
  162. package/dist/packages/ui-core/src/contracts/navigation-menu.d.ts +47 -0
  163. package/dist/packages/ui-core/src/contracts/pagination.d.ts +31 -0
  164. package/dist/packages/ui-core/src/contracts/popover.d.ts +24 -0
  165. package/dist/packages/ui-core/src/contracts/progress.d.ts +4 -0
  166. package/dist/packages/ui-core/src/contracts/radio.d.ts +9 -0
  167. package/dist/packages/ui-core/src/contracts/resizable.d.ts +38 -0
  168. package/dist/packages/ui-core/src/contracts/scroll-area.d.ts +13 -0
  169. package/dist/packages/ui-core/src/contracts/scroll-to-top.d.ts +25 -0
  170. package/dist/packages/ui-core/src/contracts/search.d.ts +12 -0
  171. package/dist/packages/ui-core/src/contracts/select.d.ts +54 -0
  172. package/dist/packages/ui-core/src/contracts/separator.d.ts +5 -0
  173. package/dist/packages/ui-core/src/contracts/sheet.d.ts +48 -0
  174. package/dist/packages/ui-core/src/contracts/skeleton.d.ts +5 -0
  175. package/dist/packages/ui-core/src/contracts/slider.d.ts +15 -0
  176. package/dist/packages/ui-core/src/contracts/sonner.d.ts +15 -0
  177. package/dist/packages/ui-core/src/contracts/switch.d.ts +11 -0
  178. package/dist/packages/ui-core/src/contracts/table-of-contents.d.ts +41 -0
  179. package/dist/packages/ui-core/src/contracts/table.d.ts +33 -0
  180. package/dist/packages/ui-core/src/contracts/tabs.d.ts +27 -0
  181. package/dist/packages/ui-core/src/contracts/text.d.ts +6 -0
  182. package/dist/packages/ui-core/src/contracts/textarea.d.ts +7 -0
  183. package/dist/packages/ui-core/src/contracts/theme-provider.d.ts +13 -0
  184. package/dist/packages/ui-core/src/contracts/theme-toggle.d.ts +15 -0
  185. package/dist/packages/ui-core/src/contracts/toast.d.ts +10 -0
  186. package/dist/packages/ui-core/src/contracts/toaster.d.ts +3 -0
  187. package/dist/packages/ui-core/src/contracts/toggle-group.d.ts +21 -0
  188. package/dist/packages/ui-core/src/contracts/toggle.d.ts +29 -0
  189. package/dist/packages/ui-core/src/contracts/tooltip.d.ts +24 -0
  190. package/dist/packages/ui-core/src/index.d.ts +56 -0
  191. package/dist/packages/ui-web/src/accordion.d.ts +9 -0
  192. package/dist/packages/ui-web/src/accordion.test.d.ts +1 -0
  193. package/dist/packages/ui-web/src/alert-dialog.d.ts +22 -0
  194. package/dist/packages/ui-web/src/alert-dialog.test.d.ts +1 -0
  195. package/dist/packages/ui-web/src/alert.d.ts +11 -0
  196. package/dist/packages/ui-web/src/alert.test.d.ts +1 -0
  197. package/dist/packages/ui-web/src/aspect-ratio.d.ts +6 -0
  198. package/dist/packages/ui-web/src/aspect-ratio.test.d.ts +1 -0
  199. package/dist/packages/ui-web/src/avatar.d.ts +8 -0
  200. package/dist/packages/ui-web/src/avatar.test.d.ts +1 -0
  201. package/dist/packages/ui-web/src/badge.d.ts +11 -0
  202. package/dist/packages/ui-web/src/badge.test.d.ts +1 -0
  203. package/dist/packages/ui-web/src/breadcrumb.d.ts +19 -0
  204. package/dist/packages/ui-web/src/button.d.ts +13 -0
  205. package/dist/packages/ui-web/src/button.test.d.ts +1 -0
  206. package/dist/packages/ui-web/src/calendar.d.ts +10 -0
  207. package/dist/packages/ui-web/src/calendar.test.d.ts +1 -0
  208. package/dist/packages/ui-web/src/card.d.ts +11 -0
  209. package/dist/packages/ui-web/src/card.test.d.ts +1 -0
  210. package/dist/packages/ui-web/src/carousel.d.ts +24 -0
  211. package/dist/packages/ui-web/src/carousel.test.d.ts +1 -0
  212. package/dist/packages/ui-web/src/chart.d.ts +16 -0
  213. package/dist/packages/ui-web/src/chart.test.d.ts +1 -0
  214. package/dist/packages/ui-web/src/checkbox.d.ts +7 -0
  215. package/dist/packages/ui-web/src/checkbox.test.d.ts +1 -0
  216. package/dist/packages/ui-web/src/collapsible.d.ts +8 -0
  217. package/dist/packages/ui-web/src/collapsible.test.d.ts +1 -0
  218. package/dist/packages/ui-web/src/command.d.ts +82 -0
  219. package/dist/packages/ui-web/src/command.test.d.ts +1 -0
  220. package/dist/packages/ui-web/src/context-menu.d.ts +23 -0
  221. package/dist/packages/ui-web/src/context-menu.test.d.ts +1 -0
  222. package/dist/packages/ui-web/src/dialog.d.ts +19 -0
  223. package/dist/packages/ui-web/src/dialog.test.d.ts +1 -0
  224. package/dist/packages/ui-web/src/drawer.d.ts +25 -0
  225. package/dist/packages/ui-web/src/drawer.test.d.ts +1 -0
  226. package/dist/packages/ui-web/src/dropdown-menu.d.ts +23 -0
  227. package/dist/packages/ui-web/src/dropdown-menu.test.d.ts +1 -0
  228. package/dist/packages/ui-web/src/form.d.ts +26 -0
  229. package/dist/packages/ui-web/src/form.test.d.ts +1 -0
  230. package/dist/packages/ui-web/src/hooks/use-theme.d.ts +51 -0
  231. package/dist/packages/ui-web/src/hooks/use-toast.d.ts +44 -0
  232. package/dist/packages/ui-web/src/hover-card.d.ts +8 -0
  233. package/dist/packages/ui-web/src/hover-card.test.d.ts +1 -0
  234. package/dist/packages/ui-web/src/index.d.ts +107 -0
  235. package/dist/packages/ui-web/src/input.d.ts +6 -0
  236. package/dist/packages/ui-web/src/input.test.d.ts +1 -0
  237. package/dist/packages/ui-web/src/label.d.ts +8 -0
  238. package/dist/packages/ui-web/src/label.test.d.ts +1 -0
  239. package/dist/packages/ui-web/src/lib/utils.d.ts +3 -0
  240. package/dist/packages/ui-web/src/menubar.d.ts +24 -0
  241. package/dist/packages/ui-web/src/menubar.test.d.ts +1 -0
  242. package/dist/packages/ui-web/src/navigation-menu.d.ts +15 -0
  243. package/dist/packages/ui-web/src/navigation-menu.test.d.ts +1 -0
  244. package/dist/packages/ui-web/src/pagination.d.ts +30 -0
  245. package/dist/packages/ui-web/src/pagination.test.d.ts +1 -0
  246. package/dist/packages/ui-web/src/popover.d.ts +9 -0
  247. package/dist/packages/ui-web/src/popover.test.d.ts +1 -0
  248. package/dist/packages/ui-web/src/progress.d.ts +6 -0
  249. package/dist/packages/ui-web/src/progress.test.d.ts +1 -0
  250. package/dist/packages/ui-web/src/radio-group.d.ts +10 -0
  251. package/dist/packages/ui-web/src/radio-group.test.d.ts +1 -0
  252. package/dist/packages/ui-web/src/resizable.d.ts +8 -0
  253. package/dist/packages/ui-web/src/resizable.test.d.ts +1 -0
  254. package/dist/packages/ui-web/src/scroll-area.d.ts +7 -0
  255. package/dist/packages/ui-web/src/scroll-area.test.d.ts +1 -0
  256. package/dist/packages/ui-web/src/scroll-to-top.d.ts +7 -0
  257. package/dist/packages/ui-web/src/scroll-to-top.test.d.ts +1 -0
  258. package/dist/packages/ui-web/src/search.d.ts +7 -0
  259. package/dist/packages/ui-web/src/search.test.d.ts +1 -0
  260. package/dist/packages/ui-web/src/select.d.ts +15 -0
  261. package/dist/packages/ui-web/src/select.test.d.ts +1 -0
  262. package/dist/packages/ui-web/src/separator.d.ts +6 -0
  263. package/dist/packages/ui-web/src/separator.test.d.ts +1 -0
  264. package/dist/packages/ui-web/src/setupTests.d.ts +0 -0
  265. package/dist/packages/ui-web/src/sheet.d.ts +28 -0
  266. package/dist/packages/ui-web/src/sheet.test.d.ts +1 -0
  267. package/dist/packages/ui-web/src/skeleton.d.ts +5 -0
  268. package/dist/packages/ui-web/src/skeleton.test.d.ts +1 -0
  269. package/dist/packages/ui-web/src/slider.d.ts +6 -0
  270. package/dist/packages/ui-web/src/slider.test.d.ts +1 -0
  271. package/dist/packages/ui-web/src/sonner.d.ts +7 -0
  272. package/dist/packages/ui-web/src/sonner.test.d.ts +1 -0
  273. package/dist/packages/ui-web/src/support-fab.d.ts +15 -0
  274. package/dist/packages/ui-web/src/support-fab.test.d.ts +1 -0
  275. package/dist/packages/ui-web/src/switch.d.ts +6 -0
  276. package/dist/packages/ui-web/src/switch.test.d.ts +1 -0
  277. package/dist/packages/ui-web/src/table-of-contents.d.ts +23 -0
  278. package/dist/packages/ui-web/src/table-of-contents.test.d.ts +1 -0
  279. package/dist/packages/ui-web/src/table.d.ts +12 -0
  280. package/dist/packages/ui-web/src/table.test.d.ts +1 -0
  281. package/dist/packages/ui-web/src/tabs.d.ts +9 -0
  282. package/dist/packages/ui-web/src/tabs.test.d.ts +1 -0
  283. package/dist/packages/ui-web/src/text.d.ts +12 -0
  284. package/dist/packages/ui-web/src/text.test.d.ts +1 -0
  285. package/dist/packages/ui-web/src/textarea.d.ts +6 -0
  286. package/dist/packages/ui-web/src/textarea.test.d.ts +1 -0
  287. package/dist/packages/ui-web/src/theme-provider.d.ts +4 -0
  288. package/dist/packages/ui-web/src/theme-toggle.d.ts +3 -0
  289. package/dist/packages/ui-web/src/theme-toggle.test.d.ts +1 -0
  290. package/dist/packages/ui-web/src/toast.d.ts +16 -0
  291. package/dist/packages/ui-web/src/toast.test.d.ts +1 -0
  292. package/dist/packages/ui-web/src/toaster.d.ts +2 -0
  293. package/dist/packages/ui-web/src/toggle-group.d.ts +13 -0
  294. package/dist/packages/ui-web/src/toggle-group.test.d.ts +1 -0
  295. package/dist/packages/ui-web/src/toggle.d.ts +8 -0
  296. package/dist/packages/ui-web/src/toggle.test.d.ts +1 -0
  297. package/dist/packages/ui-web/src/tooltip.d.ts +12 -0
  298. package/dist/pagination.cjs +2 -2
  299. package/dist/pagination.cjs.map +1 -1
  300. package/dist/pagination.d.ts +2 -94
  301. package/dist/pagination.mjs +63 -67
  302. package/dist/pagination.mjs.map +1 -1
  303. package/dist/popover.cjs +2 -2
  304. package/dist/popover.cjs.map +1 -1
  305. package/dist/popover.d.ts +2 -39
  306. package/dist/popover.mjs +17 -24
  307. package/dist/popover.mjs.map +1 -1
  308. package/dist/progress.cjs +2 -2
  309. package/dist/progress.cjs.map +1 -1
  310. package/dist/progress.d.ts +2 -11
  311. package/dist/progress.mjs +19 -23
  312. package/dist/progress.mjs.map +1 -1
  313. package/dist/radio-group.cjs +2 -2
  314. package/dist/radio-group.cjs.map +1 -1
  315. package/dist/radio-group.d.ts +2 -25
  316. package/dist/radio-group.mjs +25 -27
  317. package/dist/radio-group.mjs.map +1 -1
  318. package/dist/resizable.cjs +2 -2
  319. package/dist/resizable.cjs.map +1 -1
  320. package/dist/resizable.d.ts +2 -53
  321. package/dist/resizable.mjs +21 -34
  322. package/dist/resizable.mjs.map +1 -1
  323. package/dist/rolldown-runtime-C0IHAABJ.mjs +23 -0
  324. package/dist/rolldown-runtime-CacfPODE.js +1 -0
  325. package/dist/scroll-area.cjs +2 -2
  326. package/dist/scroll-area.cjs.map +1 -1
  327. package/dist/scroll-area.d.ts +2 -22
  328. package/dist/scroll-area.mjs +31 -30
  329. package/dist/scroll-area.mjs.map +1 -1
  330. package/dist/scroll-to-top.cjs +2 -2
  331. package/dist/scroll-to-top.cjs.map +1 -1
  332. package/dist/scroll-to-top.d.ts +2 -37
  333. package/dist/scroll-to-top.mjs +72 -84
  334. package/dist/scroll-to-top.mjs.map +1 -1
  335. package/dist/search.cjs +2 -2
  336. package/dist/search.cjs.map +1 -1
  337. package/dist/search.d.ts +2 -26
  338. package/dist/search.mjs +54 -63
  339. package/dist/search.mjs.map +1 -1
  340. package/dist/select.cjs +2 -2
  341. package/dist/select.cjs.map +1 -1
  342. package/dist/select.d.ts +2 -87
  343. package/dist/select.mjs +70 -100
  344. package/dist/select.mjs.map +1 -1
  345. package/dist/separator.cjs +2 -2
  346. package/dist/separator.cjs.map +1 -1
  347. package/dist/separator.d.ts +2 -12
  348. package/dist/separator.mjs +17 -18
  349. package/dist/separator.mjs.map +1 -1
  350. package/dist/sheet.cjs +2 -2
  351. package/dist/sheet.cjs.map +1 -1
  352. package/dist/sheet.d.ts +2 -97
  353. package/dist/sheet.mjs +58 -64
  354. package/dist/sheet.mjs.map +1 -1
  355. package/dist/skeleton.cjs +2 -2
  356. package/dist/skeleton.cjs.map +1 -1
  357. package/dist/skeleton.d.ts +2 -11
  358. package/dist/skeleton.mjs +15 -8
  359. package/dist/skeleton.mjs.map +1 -1
  360. package/dist/slider.cjs +2 -2
  361. package/dist/slider.cjs.map +1 -1
  362. package/dist/slider.d.ts +2 -22
  363. package/dist/slider.mjs +19 -20
  364. package/dist/slider.mjs.map +1 -1
  365. package/dist/sonner.cjs +2 -2
  366. package/dist/sonner.cjs.map +1 -1
  367. package/dist/sonner.d.ts +2 -25
  368. package/dist/sonner.mjs +22 -24
  369. package/dist/sonner.mjs.map +1 -1
  370. package/dist/src/index.d.ts +2 -0
  371. package/dist/src/setupTests.d.ts +0 -0
  372. package/dist/src-B8AA-nU4.js +2 -0
  373. package/dist/src-B8AA-nU4.js.map +1 -0
  374. package/dist/src-C65A5RuY.mjs +23 -0
  375. package/dist/src-C65A5RuY.mjs.map +1 -0
  376. package/dist/support-fab.cjs +2 -2
  377. package/dist/support-fab.cjs.map +1 -1
  378. package/dist/support-fab.d.ts +2 -20
  379. package/dist/support-fab.mjs +82 -117
  380. package/dist/support-fab.mjs.map +1 -1
  381. package/dist/switch.cjs +2 -2
  382. package/dist/switch.cjs.map +1 -1
  383. package/dist/switch.d.ts +2 -18
  384. package/dist/switch.mjs +16 -27
  385. package/dist/switch.mjs.map +1 -1
  386. package/dist/table-of-contents.cjs +2 -2
  387. package/dist/table-of-contents.cjs.map +1 -1
  388. package/dist/table-of-contents.d.ts +2 -68
  389. package/dist/table-of-contents.mjs +161 -156
  390. package/dist/table-of-contents.mjs.map +1 -1
  391. package/dist/table.cjs +2 -2
  392. package/dist/table.cjs.map +1 -1
  393. package/dist/table.d.ts +2 -59
  394. package/dist/table.mjs +60 -58
  395. package/dist/table.mjs.map +1 -1
  396. package/dist/tabs.cjs +2 -2
  397. package/dist/tabs.cjs.map +1 -1
  398. package/dist/tabs.d.ts +2 -42
  399. package/dist/tabs.mjs +27 -46
  400. package/dist/tabs.mjs.map +1 -1
  401. package/dist/text.cjs +2 -2
  402. package/dist/text.cjs.map +1 -1
  403. package/dist/text.d.ts +2 -21
  404. package/dist/text.mjs +42 -42
  405. package/dist/text.mjs.map +1 -1
  406. package/dist/textarea.cjs +2 -2
  407. package/dist/textarea.cjs.map +1 -1
  408. package/dist/textarea.d.ts +2 -16
  409. package/dist/textarea.mjs +14 -18
  410. package/dist/textarea.mjs.map +1 -1
  411. package/dist/theme-provider.cjs +2 -2
  412. package/dist/theme-provider.cjs.map +1 -1
  413. package/dist/theme-provider.d.ts +2 -22
  414. package/dist/theme-provider.mjs +17 -8
  415. package/dist/theme-provider.mjs.map +1 -1
  416. package/dist/theme-toggle-B8UiizQB.js +2 -0
  417. package/dist/theme-toggle-B8UiizQB.js.map +1 -0
  418. package/dist/theme-toggle-DoAVRoyO.mjs +321 -0
  419. package/dist/theme-toggle-DoAVRoyO.mjs.map +1 -0
  420. package/dist/theme-toggle.cjs +1 -2
  421. package/dist/theme-toggle.d.ts +2 -23
  422. package/dist/theme-toggle.mjs +3 -9
  423. package/dist/toast.cjs +2 -2
  424. package/dist/toast.cjs.map +1 -1
  425. package/dist/toast.d.ts +2 -26
  426. package/dist/toast.mjs +53 -70
  427. package/dist/toast.mjs.map +1 -1
  428. package/dist/toaster-BgZxvlTL.mjs +128 -0
  429. package/dist/toaster-BgZxvlTL.mjs.map +1 -0
  430. package/dist/toaster-DnZKPR-G.js +2 -0
  431. package/dist/toaster-DnZKPR-G.js.map +1 -0
  432. package/dist/toaster.cjs +1 -2
  433. package/dist/toaster.d.ts +2 -9
  434. package/dist/toaster.mjs +3 -7
  435. package/dist/toggle-group.cjs +2 -2
  436. package/dist/toggle-group.cjs.map +1 -1
  437. package/dist/toggle-group.d.ts +2 -22
  438. package/dist/toggle-group.mjs +39 -37
  439. package/dist/toggle-group.mjs.map +1 -1
  440. package/dist/toggle.cjs +2 -2
  441. package/dist/toggle.cjs.map +1 -1
  442. package/dist/toggle.d.ts +2 -43
  443. package/dist/toggle.mjs +19 -12
  444. package/dist/toggle.mjs.map +1 -1
  445. package/dist/tooltip.cjs +2 -2
  446. package/dist/tooltip.cjs.map +1 -1
  447. package/dist/tooltip.d.ts +2 -48
  448. package/dist/tooltip.mjs +25 -29
  449. package/dist/tooltip.mjs.map +1 -1
  450. package/dist/utils-BtI8Nf6i.mjs +12 -0
  451. package/dist/utils-BtI8Nf6i.mjs.map +1 -0
  452. package/dist/utils-CbSX47LV.js +2 -0
  453. package/dist/utils-CbSX47LV.js.map +1 -0
  454. package/dist/vendor-Cr0eKZrm.mjs +28603 -0
  455. package/dist/vendor-Cr0eKZrm.mjs.map +1 -0
  456. package/dist/vendor-D3ZzLf8D.js +92 -0
  457. package/dist/vendor-D3ZzLf8D.js.map +1 -0
  458. package/package.json +32 -32
  459. package/dist/index.cjs.map +0 -1
  460. package/dist/index.mjs.map +0 -1
  461. package/dist/theme-toggle-BNtYv2Jv.mjs +0 -177
  462. package/dist/theme-toggle-BNtYv2Jv.mjs.map +0 -1
  463. package/dist/theme-toggle-DK_OhDRf.js +0 -2
  464. package/dist/theme-toggle-DK_OhDRf.js.map +0 -1
  465. package/dist/theme-toggle.cjs.map +0 -1
  466. package/dist/theme-toggle.mjs.map +0 -1
  467. package/dist/toaster-Cj_SryBI.mjs +0 -119
  468. package/dist/toaster-Cj_SryBI.mjs.map +0 -1
  469. package/dist/toaster-Q_hzVonm.js +0 -2
  470. package/dist/toaster-Q_hzVonm.js.map +0 -1
  471. package/dist/toaster.cjs.map +0 -1
  472. package/dist/toaster.mjs.map +0 -1
  473. package/dist/toggle-DPMTgo47.mjs +0 -25
  474. package/dist/toggle-DPMTgo47.mjs.map +0 -1
  475. package/dist/toggle-_F_yB_Dj.js +0 -2
  476. package/dist/toggle-_F_yB_Dj.js.map +0 -1
  477. package/dist/utils-Bgpn0CK0.mjs +0 -12
  478. package/dist/utils-Bgpn0CK0.mjs.map +0 -1
  479. package/dist/utils-CBWPs0D7.js +0 -2
  480. package/dist/utils-CBWPs0D7.js.map +0 -1
  481. package/dist/vendor-BQwS7aJt.mjs +0 -25217
  482. package/dist/vendor-BQwS7aJt.mjs.map +0 -1
  483. package/dist/vendor-B_07FHqh.js +0 -68
  484. package/dist/vendor-B_07FHqh.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gv-tech/design-system",
3
- "version": "2.19.0",
3
+ "version": "2.21.0",
4
4
  "description": "Garcia Ventures react design system",
5
5
  "license": "MIT",
6
6
  "author": "Eric N. Garcia <eng618@garciaericn.com>",
@@ -34,6 +34,8 @@
34
34
  "build:site": "bun --filter playground-web build",
35
35
  "clean": "rm -rf .nx .next .expo .turbo dist dist-site *.tsbuildinfo .eslintcache",
36
36
  "dev": "bun --filter playground-web dev",
37
+ "shadcn:update": "npx shadcn@latest add --all --overwrite --yes",
38
+ "shadcn:info": "npx shadcn@latest info",
37
39
  "format": "prettier --write .",
38
40
  "format:ci": "prettier --check .",
39
41
  "lint": "eslint . --cache",
@@ -53,35 +55,35 @@
53
55
  "validate:no-cache": "tsx ./scripts/validate.ts --no-cache"
54
56
  },
55
57
  "dependencies": {
56
- "@expo/metro-config": "~54.0.14",
57
- "@expo/metro-runtime": "~6.1.2",
58
+ "@expo/metro-config": "~55.0.16",
59
+ "@expo/metro-runtime": "~55.0.9",
58
60
  "@rn-primitives/types": "^1.2.0",
59
61
  "class-variance-authority": "^0.7.1",
60
62
  "expo": "~55.0.5",
61
- "expo-splash-screen": "~31.0.13",
62
- "expo-status-bar": "~3.0.9",
63
- "expo-system-ui": "~6.0.9",
64
- "lucide-react-native": "^0.574.0",
63
+ "expo-splash-screen": "~55.0.18",
64
+ "expo-status-bar": "~55.0.5",
65
+ "expo-system-ui": "~55.0.15",
66
+ "lucide-react-native": "^1.8.0",
65
67
  "react": "^19.2.4",
66
68
  "react-dom": "^19.2.4",
67
- "react-native": "0.83.2",
69
+ "react-native": "0.85.1",
68
70
  "react-native-svg": "^15.15.3",
69
71
  "react-native-svg-transformer": "~1.5.3",
70
72
  "tslib": "^2.8.1"
71
73
  },
72
74
  "devDependencies": {
73
75
  "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
74
- "@eng618/prettier-config": "^2.10.0",
75
- "@expo/cli": "~54.0.23",
76
+ "@eng618/prettier-config": "^2.10.1",
77
+ "@expo/cli": "~55.0.24",
76
78
  "@gv-tech/eslint-config": "^0.1.14",
77
- "@nx/expo": "22.5.4",
78
- "@nx/jest": "22.5.4",
79
- "@nx/js": "^22.5.4",
79
+ "@nx/expo": "22.6.5",
80
+ "@nx/jest": "22.6.5",
81
+ "@nx/js": "^22.6.5",
80
82
  "@rn-primitives/slot": "^1.2.0",
81
83
  "@swc-node/register": "~1.11.1",
82
84
  "@swc/core": "~1.15.18",
83
85
  "@swc/helpers": "~0.5.19",
84
- "@tailwindcss/postcss": "4.2.1",
86
+ "@tailwindcss/postcss": "4.2.2",
85
87
  "@testing-library/dom": "^10.4.1",
86
88
  "@testing-library/jest-dom": "^6.9.1",
87
89
  "@testing-library/react": "^16.3.2",
@@ -93,43 +95,40 @@
93
95
  "@types/react-native-web": "^0.19.2",
94
96
  "@typescript-eslint/eslint-plugin": "^8.56.1",
95
97
  "@typescript-eslint/parser": "^8.56.1",
96
- "@vitejs/plugin-react": "^5.1.4",
98
+ "@vitejs/plugin-react": "^6.0.1",
97
99
  "axe-core": "^4.11.1",
98
100
  "esbuild-plugin-jsx": "^1.0.1",
99
101
  "eslint": "^10.0.3",
100
102
  "eslint-plugin-jsx-a11y": "^6.10.2",
101
103
  "eslint-plugin-react": "^7.37.5",
102
104
  "eslint-plugin-react-hooks": "^7.0.1",
105
+ "expo-cli": "^6.3.10",
103
106
  "husky": "^9.1.7",
104
- "jsdom": "^27.4.0",
105
- "lint-staged": "^16.3.2",
106
- "metro-config": "~0.83.5",
107
- "metro-resolver": "~0.83.5",
107
+ "jsdom": "^29.0.2",
108
+ "lint-staged": "^17.0.5",
109
+ "metro-config": "~0.84.3",
110
+ "metro-resolver": "~0.84.3",
108
111
  "next-themes": "^0.4.6",
109
- "nx": "^22.5.4",
112
+ "nx": "^22.6.5",
110
113
  "postcss": "^8.5.8",
111
114
  "prettier": "^3.8.1",
112
- "prettier-plugin-jsdoc": "^1.8.0",
113
- "prettier-plugin-organize-imports": "^4.3.0",
114
- "prettier-plugin-packagejson": "^3.0.1",
115
- "prettier-plugin-tailwindcss": "^0.7.2",
116
115
  "react-icons": "^5.6.0",
117
- "react-native-reanimated": "4.2.1",
116
+ "react-native-reanimated": "4.3.0",
118
117
  "react-native-web": "^0.21.2",
119
- "react-native-worklets": "0.7.2",
118
+ "react-native-worklets": "0.8.1",
120
119
  "react-router-dom": "^7.13.1",
121
- "recharts": "2.15.4",
120
+ "recharts": "3.8.1",
122
121
  "rollup-plugin-esbuild": "^6.2.1",
123
122
  "sonner": "^2.0.7",
124
- "tailwindcss": "4.2.1",
123
+ "tailwindcss": "4.2.2",
125
124
  "tsx": "^4.21.0",
126
- "typescript": "^5.9.3",
127
- "vite": "7.3.1",
125
+ "typescript": "^6.0.3",
126
+ "vite": "8.0.8",
128
127
  "vite-plugin-dts": "^4.5.4",
129
128
  "vitest": "^4.0.18"
130
129
  },
131
130
  "peerDependencies": {
132
- "lucide-react-native": "^0.475.0",
131
+ "lucide-react-native": "^1.8.0",
133
132
  "nativewind": "^4.2.2",
134
133
  "next-themes": "^0.4.0",
135
134
  "prop-types": "^15.8.1",
@@ -144,7 +143,8 @@
144
143
  "@types/react-dom": "^19.2.3",
145
144
  "eslint": "^10.0.0",
146
145
  "react": "^19.2.4",
147
- "react-dom": "^19.2.4"
146
+ "react-dom": "^19.2.4",
147
+ "react-is": "^19.2.5"
148
148
  },
149
149
  "engines": {
150
150
  "node": ">=20"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../packages/design-tokens/src/spacing.ts","../packages/design-tokens/src/radii.ts","../packages/design-tokens/src/typography.ts","../packages/design-tokens/src/shadows.ts","../packages/design-tokens/src/index.ts"],"sourcesContent":["// Spacing scale for the GV Tech design system.\n// Based on a 4px baseline grid. Values are in rem (assuming 16px root font size).\n\nexport const spacing = {\n px: '1px',\n 0: '0',\n 0.5: '0.125rem', // 2px\n 1: '0.25rem', // 4px\n 1.5: '0.375rem', // 6px\n 2: '0.5rem', // 8px\n 2.5: '0.625rem', // 10px\n 3: '0.75rem', // 12px\n 3.5: '0.875rem', // 14px\n 4: '1rem', // 16px\n 5: '1.25rem', // 20px\n 6: '1.5rem', // 24px\n 7: '1.75rem', // 28px\n 8: '2rem', // 32px\n 9: '2.25rem', // 36px\n 10: '2.5rem', // 40px\n 12: '3rem', // 48px\n 14: '3.5rem', // 56px\n 16: '4rem', // 64px\n 20: '5rem', // 80px\n 24: '6rem', // 96px\n 32: '8rem', // 128px\n 40: '10rem', // 160px\n 48: '12rem', // 192px\n 56: '14rem', // 224px\n 64: '16rem', // 256px\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","// Border radius tokens for the GV Tech design system.\n\nexport const radii = {\n none: '0',\n sm: 'calc(var(--radius) - 4px)',\n md: 'calc(var(--radius) - 2px)',\n lg: 'var(--radius)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n full: '9999px',\n} as const;\n\n// Numeric radius values (in px) for React Native, which doesn't support CSS calc().\n// Based on a default --radius of 0.5rem (8px).\nexport const radiiNumeric = {\n none: 0,\n sm: 4, // 8 - 4\n md: 6, // 8 - 2\n lg: 8, // base\n xl: 12, // 8 + 4\n '2xl': 16, // 8 + 8\n full: 9999,\n} as const;\n\nexport type RadiiTokens = typeof radii;\nexport type RadiiNumericTokens = typeof radiiNumeric;\n","// Typography tokens for the GV Tech design system.\n// Defines font families, sizes, weights, and line heights.\n\nexport const typography = {\n fontFamily: {\n sans: 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n mono: 'ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace',\n },\n fontSize: {\n xs: '0.75rem', // 12px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '1.875rem', // 30px\n '4xl': '2.25rem', // 36px\n '5xl': '3rem', // 48px\n },\n fontWeight: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n },\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","// Shadow / elevation tokens for the GV Tech design system.\n// Web values use CSS box-shadow syntax.\n// Native consumers should map these to platform-specific elevation or shadow props.\n\nexport const shadows = {\n none: 'none',\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n default: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n} as const;\n\nexport type ShadowTokens = typeof shadows;\n","// @gv-tech/design-tokens\n// Single source of truth for all design tokens in the GV Tech design system.\n// Consumed by both web (ui-web) and native (ui-native) implementations.\n\n// Color tokens\nexport { palette } from './palette';\nexport type { PaletteTokens } from './palette';\n\nexport { theme } from './theme';\nexport type { ThemeTokens } from './theme';\n\n// Layout tokens\nexport { spacing } from './spacing';\nexport type { SpacingTokens } from './spacing';\n\nexport { radii, radiiNumeric } from './radii';\nexport type { RadiiNumericTokens, RadiiTokens } from './radii';\n\n// Typography tokens\nexport { typography } from './typography';\nexport type { TypographyTokens } from './typography';\n\n// Elevation tokens\nexport { shadows } from './shadows';\nexport type { ShadowTokens } from './shadows';\n\n// Convenience re-export of all tokens as a single object.\n// Mirrors the legacy `tokens` export from `src/theme/tokens.ts`.\nimport { palette } from './palette';\nimport { theme } from './theme';\n\nexport const tokens = {\n palette,\n theme,\n} as const;\n"],"names":["spacing","radii","radiiNumeric","typography","shadows","tokens","palette","theme"],"mappings":"2oDAGaA,GAAU,CACrB,GAAI,MACJ,EAAG,IACH,GAAK,WACL,EAAG,UACH,IAAK,WACL,EAAG,SACH,IAAK,WACL,EAAG,UACH,IAAK,WACL,EAAG,OACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,OACH,EAAG,UACH,GAAI,SACJ,GAAI,OACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACN,EC5BaC,GAAQ,CACnB,KAAM,IACN,GAAI,4BACJ,GAAI,4BACJ,GAAI,gBACJ,GAAI,4BACJ,MAAO,4BACP,KAAM,QACR,EAIaC,GAAe,CAC1B,KAAM,EACN,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,GACJ,MAAO,GACP,KAAM,IACR,ECnBaC,GAAa,CACxB,WAAY,CACV,KAAM,8HACN,KAAM,wFAAA,EAER,SAAU,CACR,GAAI,UACJ,GAAI,WACJ,KAAM,OACN,GAAI,WACJ,GAAI,UACJ,MAAO,SACP,MAAO,WACP,MAAO,UACP,MAAO,MAAA,EAET,WAAY,CACV,OAAQ,MACR,OAAQ,MACR,SAAU,MACV,KAAM,KAAA,EAER,WAAY,CACV,KAAM,IACN,MAAO,OACP,KAAM,QACN,OAAQ,MACR,QAAS,QACT,MAAO,GAAA,CAEX,EC7BaC,GAAU,CACrB,KAAM,OACN,GAAI,gCACJ,QAAS,gEACT,GAAI,mEACJ,GAAI,qEACJ,GAAI,sEACJ,MAAO,sCACP,MAAO,qCACT,ECkBaC,GAAS,CACpB,QAAAC,EAAAA,QACA,MAAAC,EAAAA,KACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../packages/design-tokens/src/spacing.ts","../packages/design-tokens/src/radii.ts","../packages/design-tokens/src/typography.ts","../packages/design-tokens/src/shadows.ts","../packages/design-tokens/src/index.ts"],"sourcesContent":["// Spacing scale for the GV Tech design system.\n// Based on a 4px baseline grid. Values are in rem (assuming 16px root font size).\n\nexport const spacing = {\n px: '1px',\n 0: '0',\n 0.5: '0.125rem', // 2px\n 1: '0.25rem', // 4px\n 1.5: '0.375rem', // 6px\n 2: '0.5rem', // 8px\n 2.5: '0.625rem', // 10px\n 3: '0.75rem', // 12px\n 3.5: '0.875rem', // 14px\n 4: '1rem', // 16px\n 5: '1.25rem', // 20px\n 6: '1.5rem', // 24px\n 7: '1.75rem', // 28px\n 8: '2rem', // 32px\n 9: '2.25rem', // 36px\n 10: '2.5rem', // 40px\n 12: '3rem', // 48px\n 14: '3.5rem', // 56px\n 16: '4rem', // 64px\n 20: '5rem', // 80px\n 24: '6rem', // 96px\n 32: '8rem', // 128px\n 40: '10rem', // 160px\n 48: '12rem', // 192px\n 56: '14rem', // 224px\n 64: '16rem', // 256px\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","// Border radius tokens for the GV Tech design system.\n\nexport const radii = {\n none: '0',\n sm: 'calc(var(--radius) - 4px)',\n md: 'calc(var(--radius) - 2px)',\n lg: 'var(--radius)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n full: '9999px',\n} as const;\n\n// Numeric radius values (in px) for React Native, which doesn't support CSS calc().\n// Based on a default --radius of 0.5rem (8px).\nexport const radiiNumeric = {\n none: 0,\n sm: 4, // 8 - 4\n md: 6, // 8 - 2\n lg: 8, // base\n xl: 12, // 8 + 4\n '2xl': 16, // 8 + 8\n full: 9999,\n} as const;\n\nexport type RadiiTokens = typeof radii;\nexport type RadiiNumericTokens = typeof radiiNumeric;\n","// Typography tokens for the GV Tech design system.\n// Defines font families, sizes, weights, and line heights.\n\nexport const typography = {\n fontFamily: {\n sans: 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n mono: 'ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace',\n },\n fontSize: {\n xs: '0.75rem', // 12px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '1.875rem', // 30px\n '4xl': '2.25rem', // 36px\n '5xl': '3rem', // 48px\n },\n fontWeight: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n },\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","// Shadow / elevation tokens for the GV Tech design system.\n// Web values use CSS box-shadow syntax.\n// Native consumers should map these to platform-specific elevation or shadow props.\n\nexport const shadows = {\n none: 'none',\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n default: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n} as const;\n\nexport type ShadowTokens = typeof shadows;\n","// @gv-tech/design-tokens\n// Single source of truth for all design tokens in the GV Tech design system.\n// Consumed by both web (ui-web) and native (ui-native) implementations.\n\n// Color tokens\nexport { palette } from './palette';\nexport type { PaletteTokens } from './palette';\n\nexport { theme } from './theme';\nexport type { ThemeTokens } from './theme';\n\n// Layout tokens\nexport { spacing } from './spacing';\nexport type { SpacingTokens } from './spacing';\n\nexport { radii, radiiNumeric } from './radii';\nexport type { RadiiNumericTokens, RadiiTokens } from './radii';\n\n// Typography tokens\nexport { typography } from './typography';\nexport type { TypographyTokens } from './typography';\n\n// Elevation tokens\nexport { shadows } from './shadows';\nexport type { ShadowTokens } from './shadows';\n\n// Convenience re-export of all tokens as a single object.\n// Mirrors the legacy `tokens` export from `src/theme/tokens.ts`.\nimport { palette } from './palette';\nimport { theme } from './theme';\n\nexport const tokens = {\n palette,\n theme,\n} as const;\n"],"names":["spacing","radii","radiiNumeric","typography","shadows","tokens","palette","theme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,IAAU;AAAA,EACrB,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,KAAK;AAAA;AAAA,EACL,GAAG;AAAA;AAAA,EACH,KAAK;AAAA;AAAA,EACL,GAAG;AAAA;AAAA,EACH,KAAK;AAAA;AAAA,EACL,GAAG;AAAA;AAAA,EACH,KAAK;AAAA;AAAA,EACL,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AACN,GC5BaC,IAAQ;AAAA,EACnB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AACR,GAIaC,IAAe;AAAA,EAC1B,MAAM;AAAA,EACN,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,IAAI;AAAA;AAAA,EACJ,OAAO;AAAA;AAAA,EACP,MAAM;AACR,GCnBaC,IAAa;AAAA,EACxB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAAA,EAER,UAAU;AAAA,IACR,IAAI;AAAA;AAAA,IACJ,IAAI;AAAA;AAAA,IACJ,MAAM;AAAA;AAAA,IACN,IAAI;AAAA;AAAA,IACJ,IAAI;AAAA;AAAA,IACJ,OAAO;AAAA;AAAA,IACP,OAAO;AAAA;AAAA,IACP,OAAO;AAAA;AAAA,IACP,OAAO;AAAA;AAAA,EAAA;AAAA,EAET,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,EAAA;AAAA,EAER,YAAY;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,EAAA;AAEX,GC7BaC,IAAU;AAAA,EACrB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AACT,GCkBaC,IAAS;AAAA,EACpB,SAAAC;AAAAA,EACA,OAAAC;AACF;"}
@@ -1,177 +0,0 @@
1
- import { j as r, bZ as m, b_ as y, b$ as p } from "./vendor-BQwS7aJt.mjs";
2
- import { Button as x } from "./button.mjs";
3
- import { DropdownMenu as b, DropdownMenuTrigger as f, DropdownMenuContent as T, DropdownMenuItem as c } from "./dropdown-menu.mjs";
4
- import { useTheme as F } from "next-themes";
5
- import { c as s } from "./utils-Bgpn0CK0.mjs";
6
- const e = {
7
- brand: {
8
- blue: "hsl(225 73% 57%)",
9
- // Royal Blue (Intellect)
10
- green: "hsl(151 66% 27%)",
11
- // #177245 (Stability)
12
- floralWhite: "hsl(40 100% 97%)"
13
- // Light Neutral / Floral White
14
- },
15
- neutral: {
16
- white: "hsl(0 0% 100%)",
17
- black: "hsl(0 0% 0%)",
18
- // Pure Black
19
- gray50: "hsl(0 0% 96%)",
20
- // White Smoke
21
- gray100: "hsl(0 0% 92%)",
22
- // Gainsboro
23
- gray200: "hsl(0 0% 89%)",
24
- // Light Gray
25
- gray300: "hsl(0 0% 88%)",
26
- // French Gray
27
- gray400: "hsl(0 0% 70%)",
28
- // Silver
29
- gray500: "hsl(215 16% 47%)",
30
- // Steel Blue
31
- gray600: "hsl(222 47% 11%)",
32
- // Oxford Blue
33
- gray700: "hsl(0 0% 18%)",
34
- // Raisin Black
35
- gray800: "hsl(0 0% 15%)",
36
- // Jet
37
- gray900: "hsl(0 0% 14%)",
38
- // Eerie Black
39
- gray950: "hsl(0 0% 11%)",
40
- // Night (alt)
41
- gray975: "hsl(0 0% 9%)",
42
- // Night
43
- gray990: "hsl(0 0% 6%)"
44
- // Black (almost)
45
- },
46
- semantic: {
47
- success: "hsl(93 28% 54%)",
48
- // Asparagus / Pistachio
49
- successDark: "hsl(96 44% 61%)",
50
- destructive: "hsl(0 84.2% 60.2%)",
51
- // Vivid Red
52
- destructiveDark: "hsl(0 62.8% 30.6%)"
53
- // Blood Red
54
- }
55
- }, j = {
56
- light: {
57
- background: e.neutral.gray50,
58
- foreground: e.neutral.gray600,
59
- card: e.neutral.white,
60
- cardForeground: e.neutral.gray600,
61
- popover: e.neutral.white,
62
- popoverForeground: e.neutral.gray600,
63
- primary: e.brand.blue,
64
- primaryForeground: e.neutral.white,
65
- secondary: e.semantic.success,
66
- secondaryForeground: e.neutral.white,
67
- muted: e.neutral.gray100,
68
- mutedForeground: e.neutral.gray500,
69
- accent: e.neutral.gray300,
70
- accentForeground: e.neutral.gray600,
71
- destructive: e.semantic.destructive,
72
- destructiveForeground: e.neutral.white,
73
- border: e.neutral.gray200,
74
- input: e.neutral.gray200,
75
- ring: e.neutral.gray600,
76
- radius: "0.5rem"
77
- },
78
- dark: {
79
- background: e.neutral.gray975,
80
- foreground: e.neutral.white,
81
- card: e.neutral.gray900,
82
- cardForeground: e.neutral.white,
83
- popover: e.neutral.gray950,
84
- popoverForeground: e.neutral.white,
85
- primary: "hsl(227 96% 71%)",
86
- // Keeping as specific HSL to match original
87
- primaryForeground: e.neutral.gray975,
88
- secondary: e.semantic.successDark,
89
- secondaryForeground: e.neutral.gray975,
90
- muted: e.neutral.gray990,
91
- mutedForeground: e.neutral.gray400,
92
- accent: e.neutral.gray800,
93
- accentForeground: e.neutral.white,
94
- destructive: e.semantic.destructiveDark,
95
- destructiveForeground: e.neutral.white,
96
- border: e.neutral.gray700,
97
- input: e.neutral.gray700,
98
- ring: "hsl(0 0% 90%)",
99
- // Platinum
100
- radius: "0.5rem"
101
- }
102
- };
103
- function D() {
104
- const t = F(), { resolvedTheme: n } = t, a = n === "dark" ? j.dark : j.light;
105
- return {
106
- ...t,
107
- tokens: a
108
- };
109
- }
110
- function $({ variant: t = "binary", onThemeChange: n, customTheme: a, className: i }) {
111
- const { theme: k, setTheme: w, resolvedTheme: v } = D(), u = a ?? k, h = (a || v) === "dark", o = u === "system", l = (d) => {
112
- n ? n(d) : w(d);
113
- }, g = () => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
114
- /* @__PURE__ */ r.jsx(
115
- m,
116
- {
117
- className: s(
118
- "h-[1.2rem] w-[1.2rem] transition-all",
119
- !o && !h ? "scale-100 rotate-0" : "scale-0 -rotate-90"
120
- )
121
- }
122
- ),
123
- /* @__PURE__ */ r.jsx(
124
- y,
125
- {
126
- className: s(
127
- "absolute h-[1.2rem] w-[1.2rem] transition-all",
128
- !o && h ? "scale-100 rotate-0" : "scale-0 rotate-90"
129
- )
130
- }
131
- ),
132
- /* @__PURE__ */ r.jsx(
133
- p,
134
- {
135
- className: s(
136
- "absolute h-[1.2rem] w-[1.2rem] transition-all",
137
- o ? "scale-100 rotate-0" : "scale-0 rotate-90"
138
- )
139
- }
140
- ),
141
- /* @__PURE__ */ r.jsx("span", { className: "sr-only", children: "Toggle theme" })
142
- ] });
143
- return t === "ternary" ? /* @__PURE__ */ r.jsxs(b, { children: [
144
- /* @__PURE__ */ r.jsx(f, { asChild: !0, children: /* @__PURE__ */ r.jsx(x, { variant: "ghost", size: "icon", className: s("relative h-9 w-9", i), children: /* @__PURE__ */ r.jsx(g, {}) }) }),
145
- /* @__PURE__ */ r.jsxs(T, { align: "end", children: [
146
- /* @__PURE__ */ r.jsxs(c, { onClick: () => l("light"), children: [
147
- /* @__PURE__ */ r.jsx(m, { className: "mr-2 h-4 w-4" }),
148
- /* @__PURE__ */ r.jsx("span", { children: "Light" })
149
- ] }),
150
- /* @__PURE__ */ r.jsxs(c, { onClick: () => l("dark"), children: [
151
- /* @__PURE__ */ r.jsx(y, { className: "mr-2 h-4 w-4" }),
152
- /* @__PURE__ */ r.jsx("span", { children: "Dark" })
153
- ] }),
154
- /* @__PURE__ */ r.jsxs(c, { onClick: () => l("system"), children: [
155
- /* @__PURE__ */ r.jsx(p, { className: "mr-2 h-4 w-4" }),
156
- /* @__PURE__ */ r.jsx("span", { children: "System" })
157
- ] })
158
- ] })
159
- ] }) : /* @__PURE__ */ r.jsx(
160
- x,
161
- {
162
- variant: "ghost",
163
- size: "icon",
164
- className: s("relative h-9 w-9", i),
165
- onClick: () => l(u === "dark" ? "light" : "dark"),
166
- "aria-label": "Toggle theme",
167
- children: /* @__PURE__ */ r.jsx(g, {})
168
- }
169
- );
170
- }
171
- export {
172
- $ as T,
173
- e as p,
174
- j as t,
175
- D as u
176
- };
177
- //# sourceMappingURL=theme-toggle-BNtYv2Jv.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-toggle-BNtYv2Jv.mjs","sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../packages/ui-web/src/hooks/use-theme.ts","../packages/ui-web/src/theme-toggle.tsx"],"sourcesContent":["// Primitive color palette for the GV Tech design system.\n// These are the raw color values. They should NOT be used directly in components —\n// use semantic tokens from `theme.ts` instead.\n\nexport const palette = {\n brand: {\n blue: 'hsl(225 73% 57%)', // Royal Blue (Intellect)\n green: 'hsl(151 66% 27%)', // #177245 (Stability)\n floralWhite: 'hsl(40 100% 97%)', // Light Neutral / Floral White\n },\n neutral: {\n white: 'hsl(0 0% 100%)',\n black: 'hsl(0 0% 0%)', // Pure Black\n gray50: 'hsl(0 0% 96%)', // White Smoke\n gray100: 'hsl(0 0% 92%)', // Gainsboro\n gray200: 'hsl(0 0% 89%)', // Light Gray\n gray300: 'hsl(0 0% 88%)', // French Gray\n gray400: 'hsl(0 0% 70%)', // Silver\n gray500: 'hsl(215 16% 47%)', // Steel Blue\n gray600: 'hsl(222 47% 11%)', // Oxford Blue\n gray700: 'hsl(0 0% 18%)', // Raisin Black\n gray800: 'hsl(0 0% 15%)', // Jet\n gray900: 'hsl(0 0% 14%)', // Eerie Black\n gray950: 'hsl(0 0% 11%)', // Night (alt)\n gray975: 'hsl(0 0% 9%)', // Night\n gray990: 'hsl(0 0% 6%)', // Black (almost)\n },\n semantic: {\n success: 'hsl(93 28% 54%)', // Asparagus / Pistachio\n successDark: 'hsl(96 44% 61%)',\n destructive: 'hsl(0 84.2% 60.2%)', // Vivid Red\n destructiveDark: 'hsl(0 62.8% 30.6%)', // Blood Red\n },\n} as const;\n\nexport type PaletteTokens = typeof palette;\n","// Semantic theme tokens for the GV Tech design system.\n// These map primitive palette values to semantic roles (background, foreground, etc.)\n// for both light and dark modes. Components should reference these tokens, not palette directly.\n\nimport { palette } from './palette';\n\nexport const theme = {\n light: {\n background: palette.neutral.gray50,\n foreground: palette.neutral.gray600,\n card: palette.neutral.white,\n cardForeground: palette.neutral.gray600,\n popover: palette.neutral.white,\n popoverForeground: palette.neutral.gray600,\n primary: palette.brand.blue,\n primaryForeground: palette.neutral.white,\n secondary: palette.semantic.success,\n secondaryForeground: palette.neutral.white,\n muted: palette.neutral.gray100,\n mutedForeground: palette.neutral.gray500,\n accent: palette.neutral.gray300,\n accentForeground: palette.neutral.gray600,\n destructive: palette.semantic.destructive,\n destructiveForeground: palette.neutral.white,\n border: palette.neutral.gray200,\n input: palette.neutral.gray200,\n ring: palette.neutral.gray600,\n radius: '0.5rem',\n },\n dark: {\n background: palette.neutral.gray975,\n foreground: palette.neutral.white,\n card: palette.neutral.gray900,\n cardForeground: palette.neutral.white,\n popover: palette.neutral.gray950,\n popoverForeground: palette.neutral.white,\n primary: 'hsl(227 96% 71%)', // Keeping as specific HSL to match original\n primaryForeground: palette.neutral.gray975,\n secondary: palette.semantic.successDark,\n secondaryForeground: palette.neutral.gray975,\n muted: palette.neutral.gray990,\n mutedForeground: palette.neutral.gray400,\n accent: palette.neutral.gray800,\n accentForeground: palette.neutral.white,\n destructive: palette.semantic.destructiveDark,\n destructiveForeground: palette.neutral.white,\n border: palette.neutral.gray700,\n input: palette.neutral.gray700,\n ring: 'hsl(0 0% 90%)', // Platinum\n radius: '0.5rem',\n },\n} as const;\n\nexport type ThemeTokens = typeof theme.light;\n","import { theme } from '@gv-tech/design-tokens';\nimport { useTheme as useNextTheme } from 'next-themes';\n\nexport function useTheme() {\n const context = useNextTheme();\n const { resolvedTheme } = context;\n\n // Default to light theme tokens if resolvedTheme is undefined or invalid\n const activeTokens = resolvedTheme === 'dark' ? theme.dark : theme.light;\n\n return {\n ...context,\n tokens: activeTokens,\n };\n}\n","'use client';\n\nimport { ThemeToggleBaseProps } from '@gv-tech/ui-core';\nimport { Moon, Sun, SunMoon } from 'lucide-react';\nimport { Button } from './button';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from './dropdown-menu';\nimport { useTheme } from './hooks/use-theme';\nimport { cn } from './lib/utils';\n\nexport type ThemeToggleProps = ThemeToggleBaseProps;\n\nexport function ThemeToggle({ variant = 'binary', onThemeChange, customTheme, className }: ThemeToggleProps) {\n const { theme: nextTheme, setTheme: setNextTheme, resolvedTheme } = useTheme();\n\n // Use customTheme if provided, otherwise fallback to next-themes\n const currentTheme = customTheme ?? nextTheme;\n\n // Determine the effective theme for icon rendering\n const effectiveTheme = customTheme ? customTheme : resolvedTheme;\n const isDark = effectiveTheme === 'dark';\n const isSystem = currentTheme === 'system';\n\n const handleThemeChange = (newTheme: string) => {\n if (onThemeChange) {\n onThemeChange(newTheme);\n } else {\n setNextTheme(newTheme);\n }\n };\n\n const IconToggle = () => (\n <>\n <Sun\n className={cn(\n 'h-[1.2rem] w-[1.2rem] transition-all',\n !isSystem && !isDark ? 'scale-100 rotate-0' : 'scale-0 -rotate-90',\n )}\n />\n <Moon\n className={cn(\n 'absolute h-[1.2rem] w-[1.2rem] transition-all',\n !isSystem && isDark ? 'scale-100 rotate-0' : 'scale-0 rotate-90',\n )}\n />\n <SunMoon\n className={cn(\n 'absolute h-[1.2rem] w-[1.2rem] transition-all',\n isSystem ? 'scale-100 rotate-0' : 'scale-0 rotate-90',\n )}\n />\n <span className=\"sr-only\">Toggle theme</span>\n </>\n );\n\n if (variant === 'ternary') {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className={cn('relative h-9 w-9', className)}>\n <IconToggle />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => handleThemeChange('light')}>\n <Sun className=\"mr-2 h-4 w-4\" />\n <span>Light</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => handleThemeChange('dark')}>\n <Moon className=\"mr-2 h-4 w-4\" />\n <span>Dark</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => handleThemeChange('system')}>\n <SunMoon className=\"mr-2 h-4 w-4\" />\n <span>System</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n }\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={cn('relative h-9 w-9', className)}\n onClick={() => handleThemeChange(currentTheme === 'dark' ? 'light' : 'dark')}\n aria-label=\"Toggle theme\"\n >\n <IconToggle />\n </Button>\n );\n}\n"],"names":["palette","theme","useTheme","context","useNextTheme","resolvedTheme","activeTokens","ThemeToggle","variant","onThemeChange","customTheme","className","nextTheme","setNextTheme","currentTheme","isDark","isSystem","handleThemeChange","newTheme","IconToggle","jsxs","Fragment","jsx","Sun","cn","Moon","SunMoon","DropdownMenu","DropdownMenuTrigger","Button","DropdownMenuContent","DropdownMenuItem"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const r=require("./vendor-B_07FHqh.js"),x=require("./button.cjs"),t=require("./dropdown-menu.cjs"),k=require("next-themes"),n=require("./utils-CBWPs0D7.js"),e={brand:{blue:"hsl(225 73% 57%)",green:"hsl(151 66% 27%)",floralWhite:"hsl(40 100% 97%)"},neutral:{white:"hsl(0 0% 100%)",black:"hsl(0 0% 0%)",gray50:"hsl(0 0% 96%)",gray100:"hsl(0 0% 92%)",gray200:"hsl(0 0% 89%)",gray300:"hsl(0 0% 88%)",gray400:"hsl(0 0% 70%)",gray500:"hsl(215 16% 47%)",gray600:"hsl(222 47% 11%)",gray700:"hsl(0 0% 18%)",gray800:"hsl(0 0% 15%)",gray900:"hsl(0 0% 14%)",gray950:"hsl(0 0% 11%)",gray975:"hsl(0 0% 9%)",gray990:"hsl(0 0% 6%)"},semantic:{success:"hsl(93 28% 54%)",successDark:"hsl(96 44% 61%)",destructive:"hsl(0 84.2% 60.2%)",destructiveDark:"hsl(0 62.8% 30.6%)"}},i={light:{background:e.neutral.gray50,foreground:e.neutral.gray600,card:e.neutral.white,cardForeground:e.neutral.gray600,popover:e.neutral.white,popoverForeground:e.neutral.gray600,primary:e.brand.blue,primaryForeground:e.neutral.white,secondary:e.semantic.success,secondaryForeground:e.neutral.white,muted:e.neutral.gray100,mutedForeground:e.neutral.gray500,accent:e.neutral.gray300,accentForeground:e.neutral.gray600,destructive:e.semantic.destructive,destructiveForeground:e.neutral.white,border:e.neutral.gray200,input:e.neutral.gray200,ring:e.neutral.gray600,radius:"0.5rem"},dark:{background:e.neutral.gray975,foreground:e.neutral.white,card:e.neutral.gray900,cardForeground:e.neutral.white,popover:e.neutral.gray950,popoverForeground:e.neutral.white,primary:"hsl(227 96% 71%)",primaryForeground:e.neutral.gray975,secondary:e.semantic.successDark,secondaryForeground:e.neutral.gray975,muted:e.neutral.gray990,mutedForeground:e.neutral.gray400,accent:e.neutral.gray800,accentForeground:e.neutral.white,destructive:e.semantic.destructiveDark,destructiveForeground:e.neutral.white,border:e.neutral.gray700,input:e.neutral.gray700,ring:"hsl(0 0% 90%)",radius:"0.5rem"}};function p(){const a=k.useTheme(),{resolvedTheme:o}=a,s=o==="dark"?i.dark:i.light;return{...a,tokens:s}}function v({variant:a="binary",onThemeChange:o,customTheme:s,className:c}){const{theme:y,setTheme:j,resolvedTheme:w}=p(),h=s??y,d=(s||w)==="dark",l=h==="system",u=m=>{o?o(m):j(m)},g=()=>r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(r.Sun,{className:n.cn("h-[1.2rem] w-[1.2rem] transition-all",!l&&!d?"scale-100 rotate-0":"scale-0 -rotate-90")}),r.jsxRuntimeExports.jsx(r.Moon,{className:n.cn("absolute h-[1.2rem] w-[1.2rem] transition-all",!l&&d?"scale-100 rotate-0":"scale-0 rotate-90")}),r.jsxRuntimeExports.jsx(r.SunMoon,{className:n.cn("absolute h-[1.2rem] w-[1.2rem] transition-all",l?"scale-100 rotate-0":"scale-0 rotate-90")}),r.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Toggle theme"})]});return a==="ternary"?r.jsxRuntimeExports.jsxs(t.DropdownMenu,{children:[r.jsxRuntimeExports.jsx(t.DropdownMenuTrigger,{asChild:!0,children:r.jsxRuntimeExports.jsx(x.Button,{variant:"ghost",size:"icon",className:n.cn("relative h-9 w-9",c),children:r.jsxRuntimeExports.jsx(g,{})})}),r.jsxRuntimeExports.jsxs(t.DropdownMenuContent,{align:"end",children:[r.jsxRuntimeExports.jsxs(t.DropdownMenuItem,{onClick:()=>u("light"),children:[r.jsxRuntimeExports.jsx(r.Sun,{className:"mr-2 h-4 w-4"}),r.jsxRuntimeExports.jsx("span",{children:"Light"})]}),r.jsxRuntimeExports.jsxs(t.DropdownMenuItem,{onClick:()=>u("dark"),children:[r.jsxRuntimeExports.jsx(r.Moon,{className:"mr-2 h-4 w-4"}),r.jsxRuntimeExports.jsx("span",{children:"Dark"})]}),r.jsxRuntimeExports.jsxs(t.DropdownMenuItem,{onClick:()=>u("system"),children:[r.jsxRuntimeExports.jsx(r.SunMoon,{className:"mr-2 h-4 w-4"}),r.jsxRuntimeExports.jsx("span",{children:"System"})]})]})]}):r.jsxRuntimeExports.jsx(x.Button,{variant:"ghost",size:"icon",className:n.cn("relative h-9 w-9",c),onClick:()=>u(h==="dark"?"light":"dark"),"aria-label":"Toggle theme",children:r.jsxRuntimeExports.jsx(g,{})})}exports.ThemeToggle=v;exports.palette=e;exports.theme=i;exports.useTheme=p;
2
- //# sourceMappingURL=theme-toggle-DK_OhDRf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-toggle-DK_OhDRf.js","sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../packages/ui-web/src/hooks/use-theme.ts","../packages/ui-web/src/theme-toggle.tsx"],"sourcesContent":["// Primitive color palette for the GV Tech design system.\n// These are the raw color values. They should NOT be used directly in components —\n// use semantic tokens from `theme.ts` instead.\n\nexport const palette = {\n brand: {\n blue: 'hsl(225 73% 57%)', // Royal Blue (Intellect)\n green: 'hsl(151 66% 27%)', // #177245 (Stability)\n floralWhite: 'hsl(40 100% 97%)', // Light Neutral / Floral White\n },\n neutral: {\n white: 'hsl(0 0% 100%)',\n black: 'hsl(0 0% 0%)', // Pure Black\n gray50: 'hsl(0 0% 96%)', // White Smoke\n gray100: 'hsl(0 0% 92%)', // Gainsboro\n gray200: 'hsl(0 0% 89%)', // Light Gray\n gray300: 'hsl(0 0% 88%)', // French Gray\n gray400: 'hsl(0 0% 70%)', // Silver\n gray500: 'hsl(215 16% 47%)', // Steel Blue\n gray600: 'hsl(222 47% 11%)', // Oxford Blue\n gray700: 'hsl(0 0% 18%)', // Raisin Black\n gray800: 'hsl(0 0% 15%)', // Jet\n gray900: 'hsl(0 0% 14%)', // Eerie Black\n gray950: 'hsl(0 0% 11%)', // Night (alt)\n gray975: 'hsl(0 0% 9%)', // Night\n gray990: 'hsl(0 0% 6%)', // Black (almost)\n },\n semantic: {\n success: 'hsl(93 28% 54%)', // Asparagus / Pistachio\n successDark: 'hsl(96 44% 61%)',\n destructive: 'hsl(0 84.2% 60.2%)', // Vivid Red\n destructiveDark: 'hsl(0 62.8% 30.6%)', // Blood Red\n },\n} as const;\n\nexport type PaletteTokens = typeof palette;\n","// Semantic theme tokens for the GV Tech design system.\n// These map primitive palette values to semantic roles (background, foreground, etc.)\n// for both light and dark modes. Components should reference these tokens, not palette directly.\n\nimport { palette } from './palette';\n\nexport const theme = {\n light: {\n background: palette.neutral.gray50,\n foreground: palette.neutral.gray600,\n card: palette.neutral.white,\n cardForeground: palette.neutral.gray600,\n popover: palette.neutral.white,\n popoverForeground: palette.neutral.gray600,\n primary: palette.brand.blue,\n primaryForeground: palette.neutral.white,\n secondary: palette.semantic.success,\n secondaryForeground: palette.neutral.white,\n muted: palette.neutral.gray100,\n mutedForeground: palette.neutral.gray500,\n accent: palette.neutral.gray300,\n accentForeground: palette.neutral.gray600,\n destructive: palette.semantic.destructive,\n destructiveForeground: palette.neutral.white,\n border: palette.neutral.gray200,\n input: palette.neutral.gray200,\n ring: palette.neutral.gray600,\n radius: '0.5rem',\n },\n dark: {\n background: palette.neutral.gray975,\n foreground: palette.neutral.white,\n card: palette.neutral.gray900,\n cardForeground: palette.neutral.white,\n popover: palette.neutral.gray950,\n popoverForeground: palette.neutral.white,\n primary: 'hsl(227 96% 71%)', // Keeping as specific HSL to match original\n primaryForeground: palette.neutral.gray975,\n secondary: palette.semantic.successDark,\n secondaryForeground: palette.neutral.gray975,\n muted: palette.neutral.gray990,\n mutedForeground: palette.neutral.gray400,\n accent: palette.neutral.gray800,\n accentForeground: palette.neutral.white,\n destructive: palette.semantic.destructiveDark,\n destructiveForeground: palette.neutral.white,\n border: palette.neutral.gray700,\n input: palette.neutral.gray700,\n ring: 'hsl(0 0% 90%)', // Platinum\n radius: '0.5rem',\n },\n} as const;\n\nexport type ThemeTokens = typeof theme.light;\n","import { theme } from '@gv-tech/design-tokens';\nimport { useTheme as useNextTheme } from 'next-themes';\n\nexport function useTheme() {\n const context = useNextTheme();\n const { resolvedTheme } = context;\n\n // Default to light theme tokens if resolvedTheme is undefined or invalid\n const activeTokens = resolvedTheme === 'dark' ? theme.dark : theme.light;\n\n return {\n ...context,\n tokens: activeTokens,\n };\n}\n","'use client';\n\nimport { ThemeToggleBaseProps } from '@gv-tech/ui-core';\nimport { Moon, Sun, SunMoon } from 'lucide-react';\nimport { Button } from './button';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from './dropdown-menu';\nimport { useTheme } from './hooks/use-theme';\nimport { cn } from './lib/utils';\n\nexport type ThemeToggleProps = ThemeToggleBaseProps;\n\nexport function ThemeToggle({ variant = 'binary', onThemeChange, customTheme, className }: ThemeToggleProps) {\n const { theme: nextTheme, setTheme: setNextTheme, resolvedTheme } = useTheme();\n\n // Use customTheme if provided, otherwise fallback to next-themes\n const currentTheme = customTheme ?? nextTheme;\n\n // Determine the effective theme for icon rendering\n const effectiveTheme = customTheme ? customTheme : resolvedTheme;\n const isDark = effectiveTheme === 'dark';\n const isSystem = currentTheme === 'system';\n\n const handleThemeChange = (newTheme: string) => {\n if (onThemeChange) {\n onThemeChange(newTheme);\n } else {\n setNextTheme(newTheme);\n }\n };\n\n const IconToggle = () => (\n <>\n <Sun\n className={cn(\n 'h-[1.2rem] w-[1.2rem] transition-all',\n !isSystem && !isDark ? 'scale-100 rotate-0' : 'scale-0 -rotate-90',\n )}\n />\n <Moon\n className={cn(\n 'absolute h-[1.2rem] w-[1.2rem] transition-all',\n !isSystem && isDark ? 'scale-100 rotate-0' : 'scale-0 rotate-90',\n )}\n />\n <SunMoon\n className={cn(\n 'absolute h-[1.2rem] w-[1.2rem] transition-all',\n isSystem ? 'scale-100 rotate-0' : 'scale-0 rotate-90',\n )}\n />\n <span className=\"sr-only\">Toggle theme</span>\n </>\n );\n\n if (variant === 'ternary') {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className={cn('relative h-9 w-9', className)}>\n <IconToggle />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => handleThemeChange('light')}>\n <Sun className=\"mr-2 h-4 w-4\" />\n <span>Light</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => handleThemeChange('dark')}>\n <Moon className=\"mr-2 h-4 w-4\" />\n <span>Dark</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => handleThemeChange('system')}>\n <SunMoon className=\"mr-2 h-4 w-4\" />\n <span>System</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n }\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={cn('relative h-9 w-9', className)}\n onClick={() => handleThemeChange(currentTheme === 'dark' ? 'light' : 'dark')}\n aria-label=\"Toggle theme\"\n >\n <IconToggle />\n </Button>\n );\n}\n"],"names":["palette","theme","useTheme","context","useNextTheme","resolvedTheme","activeTokens","ThemeToggle","variant","onThemeChange","customTheme","className","nextTheme","setNextTheme","currentTheme","isDark","isSystem","handleThemeChange","newTheme","IconToggle","jsxs","Fragment","jsx","Sun","cn","Moon","SunMoon","DropdownMenu","DropdownMenuTrigger","Button","DropdownMenuContent","DropdownMenuItem"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-toggle.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-toggle.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,119 +0,0 @@
1
- import { j as T } from "./vendor-BQwS7aJt.mjs";
2
- import * as A from "react";
3
- import { ToastProvider as E, Toast as _, ToastTitle as f, ToastDescription as m, ToastClose as D, ToastViewport as l } from "./toast.mjs";
4
- const I = 1, M = 1e6, a = {
5
- ADD_TOAST: "ADD_TOAST",
6
- UPDATE_TOAST: "UPDATE_TOAST",
7
- DISMISS_TOAST: "DISMISS_TOAST",
8
- REMOVE_TOAST: "REMOVE_TOAST"
9
- };
10
- let c = 0;
11
- function h() {
12
- return c = (c + 1) % Number.MAX_SAFE_INTEGER, c.toString();
13
- }
14
- const u = /* @__PURE__ */ new Map(), d = (t) => {
15
- if (u.has(t))
16
- return;
17
- const s = setTimeout(() => {
18
- u.delete(t), r({
19
- type: "REMOVE_TOAST",
20
- toastId: t
21
- });
22
- }, M);
23
- u.set(t, s);
24
- }, x = (t, s) => {
25
- switch (s.type) {
26
- case a.ADD_TOAST:
27
- return {
28
- ...t,
29
- toasts: [s.toast, ...t.toasts].slice(0, I)
30
- };
31
- case a.UPDATE_TOAST:
32
- return {
33
- ...t,
34
- toasts: t.toasts.map((e) => e.id === s.toast.id ? { ...e, ...s.toast } : e)
35
- };
36
- case a.DISMISS_TOAST: {
37
- const { toastId: e } = s;
38
- return e ? d(e) : t.toasts.forEach((o) => {
39
- d(o.id);
40
- }), {
41
- ...t,
42
- toasts: t.toasts.map(
43
- (o) => o.id === e || e === void 0 ? {
44
- ...o,
45
- open: !1
46
- } : o
47
- )
48
- };
49
- }
50
- case a.REMOVE_TOAST:
51
- return s.toastId === void 0 ? {
52
- ...t,
53
- toasts: []
54
- } : {
55
- ...t,
56
- toasts: t.toasts.filter((e) => e.id !== s.toastId)
57
- };
58
- }
59
- }, i = [];
60
- let S = { toasts: [] };
61
- function r(t) {
62
- S = x(S, t), i.forEach((s) => {
63
- s(S);
64
- });
65
- }
66
- function j({ ...t }) {
67
- const s = h(), e = (n) => r({
68
- type: "UPDATE_TOAST",
69
- toast: { ...n, id: s }
70
- }), o = () => r({ type: "DISMISS_TOAST", toastId: s });
71
- return r({
72
- type: "ADD_TOAST",
73
- toast: {
74
- ...t,
75
- id: s,
76
- open: !0,
77
- onOpenChange: (n) => {
78
- n || o();
79
- }
80
- }
81
- }), {
82
- id: s,
83
- dismiss: o,
84
- update: e
85
- };
86
- }
87
- function R() {
88
- const [t, s] = A.useState(S);
89
- return A.useEffect(() => (i.push(s), () => {
90
- const e = i.indexOf(s);
91
- e > -1 && i.splice(e, 1);
92
- }), [t]), {
93
- ...t,
94
- toast: j,
95
- dismiss: (e) => r({ type: "DISMISS_TOAST", toastId: e })
96
- };
97
- }
98
- function g({ ...t }) {
99
- const { toasts: s } = R();
100
- return /* @__PURE__ */ T.jsxs(E, { ...t, children: [
101
- s.map(function({ id: e, title: o, description: n, action: O, ...p }) {
102
- return /* @__PURE__ */ T.jsxs(_, { ...p, children: [
103
- /* @__PURE__ */ T.jsxs("div", { className: "grid gap-1", children: [
104
- o && /* @__PURE__ */ T.jsx(f, { children: o }),
105
- n && /* @__PURE__ */ T.jsx(m, { children: n })
106
- ] }),
107
- O,
108
- /* @__PURE__ */ T.jsx(D, {})
109
- ] }, e);
110
- }),
111
- /* @__PURE__ */ T.jsx(l, {})
112
- ] });
113
- }
114
- export {
115
- g as T,
116
- j as t,
117
- R as u
118
- };
119
- //# sourceMappingURL=toaster-Cj_SryBI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster-Cj_SryBI.mjs","sources":["../packages/ui-web/src/hooks/use-toast.ts","../packages/ui-web/src/toaster.tsx"],"sourcesContent":["'use client';\n\n// Inspired by react-hot-toast library\nimport * as React from 'react';\n\nimport type { ToastActionElement, ToastProps } from '../index';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case actionTypes.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case actionTypes.UPDATE_TOAST:\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case actionTypes.DISMISS_TOAST: {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case actionTypes.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) {\n dismiss();\n }\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { toast, useToast };\n","'use client';\n\nimport { ToasterBaseProps } from '@gv-tech/ui-core';\nimport { useToast } from './hooks/use-toast';\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from './toast';\n\nexport function Toaster({ ...props }: ToasterBaseProps) {\n const { toasts } = useToast();\n\n return (\n <ToastProvider {...props}>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && <ToastDescription>{description}</ToastDescription>}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n"],"names":["TOAST_LIMIT","TOAST_REMOVE_DELAY","actionTypes","count","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","state","action","t","toast","listeners","memoryState","listener","props","id","update","dismiss","open","useToast","setState","React","index","Toaster","toasts","jsxs","ToastProvider","title","description","Toast","jsx","ToastTitle","ToastDescription","ToastClose","ToastViewport"],"mappings":";;;AAOA,MAAMA,IAAc,GACdC,IAAqB,KASrBC,IAAc;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,eAAe;AAAA,EACf,cAAc;AAChB;AAEA,IAAIC,IAAQ;AAEZ,SAASC,IAAQ;AACf,SAAAD,KAASA,IAAQ,KAAK,OAAO,kBACtBA,EAAM,SAAA;AACf;AA0BA,MAAME,wBAAoB,IAAA,GAEpBC,IAAmB,CAACC,MAAoB;AAC5C,MAAIF,EAAc,IAAIE,CAAO;AAC3B;AAGF,QAAMC,IAAU,WAAW,MAAM;AAC/B,IAAAH,EAAc,OAAOE,CAAO,GAC5BE,EAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAAF;AAAA,IAAA,CACD;AAAA,EACH,GAAGN,CAAkB;AAErB,EAAAI,EAAc,IAAIE,GAASC,CAAO;AACpC,GAEaE,IAAU,CAACC,GAAcC,MAA0B;AAC9D,UAAQA,EAAO,MAAA;AAAA,IACb,KAAKV,EAAY;AACf,aAAO;AAAA,QACL,GAAGS;AAAA,QACH,QAAQ,CAACC,EAAO,OAAO,GAAGD,EAAM,MAAM,EAAE,MAAM,GAAGX,CAAW;AAAA,MAAA;AAAA,IAGhE,KAAKE,EAAY;AACf,aAAO;AAAA,QACL,GAAGS;AAAA,QACH,QAAQA,EAAM,OAAO,IAAI,CAACE,MAAOA,EAAE,OAAOD,EAAO,MAAM,KAAK,EAAE,GAAGC,GAAG,GAAGD,EAAO,MAAA,IAAUC,CAAE;AAAA,MAAA;AAAA,IAG9F,KAAKX,EAAY,eAAe;AAC9B,YAAM,EAAE,SAAAK,MAAYK;AAIpB,aAAIL,IACFD,EAAiBC,CAAO,IAExBI,EAAM,OAAO,QAAQ,CAACG,MAAU;AAC9B,QAAAR,EAAiBQ,EAAM,EAAE;AAAA,MAC3B,CAAC,GAGI;AAAA,QACL,GAAGH;AAAA,QACH,QAAQA,EAAM,OAAO;AAAA,UAAI,CAACE,MACxBA,EAAE,OAAON,KAAWA,MAAY,SAC5B;AAAA,YACE,GAAGM;AAAA,YACH,MAAM;AAAA,UAAA,IAERA;AAAA,QAAA;AAAA,MACN;AAAA,IAEJ;AAAA,IACA,KAAKX,EAAY;AACf,aAAIU,EAAO,YAAY,SACd;AAAA,QACL,GAAGD;AAAA,QACH,QAAQ,CAAA;AAAA,MAAC,IAGN;AAAA,QACL,GAAGA;AAAA,QACH,QAAQA,EAAM,OAAO,OAAO,CAACE,MAAMA,EAAE,OAAOD,EAAO,OAAO;AAAA,MAAA;AAAA,EAC5D;AAEN,GAEMG,IAA2C,CAAA;AAEjD,IAAIC,IAAqB,EAAE,QAAQ,GAAC;AAEpC,SAASP,EAASG,GAAgB;AAChC,EAAAI,IAAcN,EAAQM,GAAaJ,CAAM,GACzCG,EAAU,QAAQ,CAACE,MAAa;AAC9B,IAAAA,EAASD,CAAW;AAAA,EACtB,CAAC;AACH;AAIA,SAASF,EAAM,EAAE,GAAGI,KAAgB;AAClC,QAAMC,IAAKf,EAAA,GAELgB,IAAS,CAACF,MACdT,EAAS;AAAA,IACP,MAAM;AAAA,IACN,OAAO,EAAE,GAAGS,GAAO,IAAAC,EAAA;AAAA,EAAG,CACvB,GACGE,IAAU,MAAMZ,EAAS,EAAE,MAAM,iBAAiB,SAASU,GAAI;AAErE,SAAAV,EAAS;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,GAAGS;AAAA,MACH,IAAAC;AAAA,MACA,MAAM;AAAA,MACN,cAAc,CAACG,MAAS;AACtB,QAAKA,KACHD,EAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF,CACD,GAEM;AAAA,IACL,IAAAF;AAAA,IACA,SAAAE;AAAA,IACA,QAAAD;AAAA,EAAA;AAEJ;AAEA,SAASG,IAAW;AAClB,QAAM,CAACZ,GAAOa,CAAQ,IAAIC,EAAM,SAAgBT,CAAW;AAE3D,SAAAS,EAAM,UAAU,OACdV,EAAU,KAAKS,CAAQ,GAChB,MAAM;AACX,UAAME,IAAQX,EAAU,QAAQS,CAAQ;AACxC,IAAIE,IAAQ,MACVX,EAAU,OAAOW,GAAO,CAAC;AAAA,EAE7B,IACC,CAACf,CAAK,CAAC,GAEH;AAAA,IACL,GAAGA;AAAA,IACH,OAAAG;AAAA,IACA,SAAS,CAACP,MAAqBE,EAAS,EAAE,MAAM,iBAAiB,SAAAF,GAAS;AAAA,EAAA;AAE9E;ACtLO,SAASoB,EAAQ,EAAE,GAAGT,KAA2B;AACtD,QAAM,EAAE,QAAAU,EAAA,IAAWL,EAAA;AAEnB,SACEM,gBAAAA,EAAAA,KAACC,GAAA,EAAe,GAAGZ,GAChB,UAAA;AAAA,IAAAU,EAAO,IAAI,SAAU,EAAE,IAAAT,GAAI,OAAAY,GAAO,aAAAC,GAAa,QAAApB,GAAQ,GAAGM,KAAS;AAClE,aACEW,gBAAAA,EAAAA,KAACI,GAAA,EAAgB,GAAGf,GAClB,UAAA;AAAA,QAAAW,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,cACZ,UAAA;AAAA,UAAAE,KAASG,gBAAAA,EAAAA,IAACC,KAAY,UAAAJ,EAAA,CAAM;AAAA,UAC5BC,KAAeE,gBAAAA,EAAAA,IAACE,GAAA,EAAkB,UAAAJ,EAAA,CAAY;AAAA,QAAA,GACjD;AAAA,QACCpB;AAAA,8BACAyB,GAAA,CAAA,CAAW;AAAA,MAAA,EAAA,GANFlB,CAOZ;AAAA,IAEJ,CAAC;AAAA,0BACAmB,GAAA,CAAA,CAAc;AAAA,EAAA,GACjB;AAEJ;"}
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("./vendor-B_07FHqh.js"),_=require("react"),T=require("./toast.cjs");function m(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,o.get?o:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const p=m(_),x=1,D=1e6,a={ADD_TOAST:"ADD_TOAST",UPDATE_TOAST:"UPDATE_TOAST",DISMISS_TOAST:"DISMISS_TOAST",REMOVE_TOAST:"REMOVE_TOAST"};let S=0;function j(){return S=(S+1)%Number.MAX_SAFE_INTEGER,S.toString()}const d=new Map,O=t=>{if(d.has(t))return;const s=setTimeout(()=>{d.delete(t),i({type:"REMOVE_TOAST",toastId:t})},D);d.set(t,s)},R=(t,s)=>{switch(s.type){case a.ADD_TOAST:return{...t,toasts:[s.toast,...t.toasts].slice(0,x)};case a.UPDATE_TOAST:return{...t,toasts:t.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case a.DISMISS_TOAST:{const{toastId:e}=s;return e?O(e):t.toasts.forEach(o=>{O(o.id)}),{...t,toasts:t.toasts.map(o=>o.id===e||e===void 0?{...o,open:!1}:o)}}case a.REMOVE_TOAST:return s.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(e=>e.id!==s.toastId)}}},c=[];let u={toasts:[]};function i(t){u=R(u,t),c.forEach(s=>{s(u)})}function A({...t}){const s=j(),e=r=>i({type:"UPDATE_TOAST",toast:{...r,id:s}}),o=()=>i({type:"DISMISS_TOAST",toastId:s});return i({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:r=>{r||o()}}}),{id:s,dismiss:o,update:e}}function E(){const[t,s]=p.useState(u);return p.useEffect(()=>(c.push(s),()=>{const e=c.indexOf(s);e>-1&&c.splice(e,1)}),[t]),{...t,toast:A,dismiss:e=>i({type:"DISMISS_TOAST",toastId:e})}}function I({...t}){const{toasts:s}=E();return n.jsxRuntimeExports.jsxs(T.ToastProvider,{...t,children:[s.map(function({id:e,title:o,description:r,action:f,...l}){return n.jsxRuntimeExports.jsxs(T.Toast,{...l,children:[n.jsxRuntimeExports.jsxs("div",{className:"grid gap-1",children:[o&&n.jsxRuntimeExports.jsx(T.ToastTitle,{children:o}),r&&n.jsxRuntimeExports.jsx(T.ToastDescription,{children:r})]}),f,n.jsxRuntimeExports.jsx(T.ToastClose,{})]},e)}),n.jsxRuntimeExports.jsx(T.ToastViewport,{})]})}exports.Toaster=I;exports.toast=A;exports.useToast=E;
2
- //# sourceMappingURL=toaster-Q_hzVonm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster-Q_hzVonm.js","sources":["../packages/ui-web/src/hooks/use-toast.ts","../packages/ui-web/src/toaster.tsx"],"sourcesContent":["'use client';\n\n// Inspired by react-hot-toast library\nimport * as React from 'react';\n\nimport type { ToastActionElement, ToastProps } from '../index';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case actionTypes.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case actionTypes.UPDATE_TOAST:\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case actionTypes.DISMISS_TOAST: {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case actionTypes.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) {\n dismiss();\n }\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { toast, useToast };\n","'use client';\n\nimport { ToasterBaseProps } from '@gv-tech/ui-core';\nimport { useToast } from './hooks/use-toast';\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from './toast';\n\nexport function Toaster({ ...props }: ToasterBaseProps) {\n const { toasts } = useToast();\n\n return (\n <ToastProvider {...props}>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && <ToastDescription>{description}</ToastDescription>}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n"],"names":["TOAST_LIMIT","TOAST_REMOVE_DELAY","actionTypes","count","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","state","action","t","toast","listeners","memoryState","listener","props","id","update","dismiss","open","useToast","setState","React","index","Toaster","toasts","jsxs","ToastProvider","title","description","Toast","jsx","ToastTitle","ToastDescription","ToastClose","ToastViewport"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,25 +0,0 @@
1
- import { g as e } from "./vendor-BQwS7aJt.mjs";
2
- const n = e(
3
- "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
4
- {
5
- variants: {
6
- variant: {
7
- default: "bg-transparent",
8
- outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
9
- },
10
- size: {
11
- default: "h-9 px-2 min-w-9",
12
- sm: "h-8 px-1.5 min-w-8",
13
- lg: "h-10 px-2.5 min-w-10"
14
- }
15
- },
16
- defaultVariants: {
17
- variant: "default",
18
- size: "default"
19
- }
20
- }
21
- );
22
- export {
23
- n as t
24
- };
25
- //# sourceMappingURL=toggle-DPMTgo47.mjs.map