@gv-tech/design-system 2.21.0 → 2.22.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 (234) hide show
  1. package/dist/accordion.cjs +1 -1
  2. package/dist/accordion.cjs.map +1 -1
  3. package/dist/accordion.mjs +2 -2
  4. package/dist/accordion.mjs.map +1 -1
  5. package/dist/alert-dialog.cjs +1 -1
  6. package/dist/alert-dialog.cjs.map +1 -1
  7. package/dist/alert-dialog.mjs +2 -2
  8. package/dist/alert-dialog.mjs.map +1 -1
  9. package/dist/alert.cjs +1 -1
  10. package/dist/alert.cjs.map +1 -1
  11. package/dist/alert.mjs +2 -2
  12. package/dist/alert.mjs.map +1 -1
  13. package/dist/aspect-ratio.cjs +1 -1
  14. package/dist/aspect-ratio.cjs.map +1 -1
  15. package/dist/aspect-ratio.mjs +1 -1
  16. package/dist/avatar.cjs +1 -1
  17. package/dist/avatar.cjs.map +1 -1
  18. package/dist/avatar.mjs +2 -2
  19. package/dist/avatar.mjs.map +1 -1
  20. package/dist/badge.cjs +1 -1
  21. package/dist/badge.cjs.map +1 -1
  22. package/dist/badge.mjs +2 -2
  23. package/dist/badge.mjs.map +1 -1
  24. package/dist/breadcrumb.cjs +1 -1
  25. package/dist/breadcrumb.cjs.map +1 -1
  26. package/dist/breadcrumb.mjs +2 -2
  27. package/dist/breadcrumb.mjs.map +1 -1
  28. package/dist/button.cjs +1 -1
  29. package/dist/button.cjs.map +1 -1
  30. package/dist/button.mjs +2 -2
  31. package/dist/button.mjs.map +1 -1
  32. package/dist/calendar.cjs +1 -1
  33. package/dist/calendar.cjs.map +1 -1
  34. package/dist/calendar.mjs +2 -2
  35. package/dist/calendar.mjs.map +1 -1
  36. package/dist/card.cjs +1 -1
  37. package/dist/card.cjs.map +1 -1
  38. package/dist/card.mjs +2 -2
  39. package/dist/card.mjs.map +1 -1
  40. package/dist/carousel.cjs +1 -1
  41. package/dist/carousel.cjs.map +1 -1
  42. package/dist/carousel.mjs +2 -2
  43. package/dist/carousel.mjs.map +1 -1
  44. package/dist/chart.cjs +3 -3
  45. package/dist/chart.cjs.map +1 -1
  46. package/dist/chart.mjs +55 -45
  47. package/dist/chart.mjs.map +1 -1
  48. package/dist/checkbox.cjs +1 -1
  49. package/dist/checkbox.cjs.map +1 -1
  50. package/dist/checkbox.mjs +2 -2
  51. package/dist/checkbox.mjs.map +1 -1
  52. package/dist/collapsible.cjs +1 -1
  53. package/dist/collapsible.mjs +1 -1
  54. package/dist/command.cjs +1 -1
  55. package/dist/command.cjs.map +1 -1
  56. package/dist/command.mjs +2 -2
  57. package/dist/command.mjs.map +1 -1
  58. package/dist/context-menu.cjs +1 -1
  59. package/dist/context-menu.cjs.map +1 -1
  60. package/dist/context-menu.mjs +2 -2
  61. package/dist/context-menu.mjs.map +1 -1
  62. package/dist/design-system.css +2 -2
  63. package/dist/dialog.cjs +1 -1
  64. package/dist/dialog.cjs.map +1 -1
  65. package/dist/dialog.mjs +2 -2
  66. package/dist/dialog.mjs.map +1 -1
  67. package/dist/drawer.cjs +1 -1
  68. package/dist/drawer.cjs.map +1 -1
  69. package/dist/drawer.mjs +2 -2
  70. package/dist/drawer.mjs.map +1 -1
  71. package/dist/dropdown-menu.cjs +1 -1
  72. package/dist/dropdown-menu.cjs.map +1 -1
  73. package/dist/dropdown-menu.mjs +2 -2
  74. package/dist/dropdown-menu.mjs.map +1 -1
  75. package/dist/form.cjs +1 -1
  76. package/dist/form.cjs.map +1 -1
  77. package/dist/form.mjs +2 -2
  78. package/dist/form.mjs.map +1 -1
  79. package/dist/hover-card.cjs +1 -1
  80. package/dist/hover-card.cjs.map +1 -1
  81. package/dist/hover-card.mjs +2 -2
  82. package/dist/hover-card.mjs.map +1 -1
  83. package/dist/index.cjs +1 -1
  84. package/dist/index.mjs +4 -4
  85. package/dist/input.cjs +1 -1
  86. package/dist/input.cjs.map +1 -1
  87. package/dist/input.mjs +2 -2
  88. package/dist/input.mjs.map +1 -1
  89. package/dist/label.cjs +1 -1
  90. package/dist/label.cjs.map +1 -1
  91. package/dist/label.mjs +2 -2
  92. package/dist/label.mjs.map +1 -1
  93. package/dist/menubar.cjs +1 -1
  94. package/dist/menubar.cjs.map +1 -1
  95. package/dist/menubar.mjs +2 -2
  96. package/dist/menubar.mjs.map +1 -1
  97. package/dist/navigation-menu.cjs +1 -1
  98. package/dist/navigation-menu.cjs.map +1 -1
  99. package/dist/navigation-menu.mjs +2 -2
  100. package/dist/navigation-menu.mjs.map +1 -1
  101. package/dist/pagination.cjs +1 -1
  102. package/dist/pagination.cjs.map +1 -1
  103. package/dist/pagination.mjs +2 -2
  104. package/dist/pagination.mjs.map +1 -1
  105. package/dist/popover.cjs +1 -1
  106. package/dist/popover.cjs.map +1 -1
  107. package/dist/popover.mjs +2 -2
  108. package/dist/popover.mjs.map +1 -1
  109. package/dist/progress.cjs +1 -1
  110. package/dist/progress.cjs.map +1 -1
  111. package/dist/progress.mjs +2 -2
  112. package/dist/progress.mjs.map +1 -1
  113. package/dist/radio-group.cjs +1 -1
  114. package/dist/radio-group.cjs.map +1 -1
  115. package/dist/radio-group.mjs +2 -2
  116. package/dist/radio-group.mjs.map +1 -1
  117. package/dist/resizable.cjs +1 -1
  118. package/dist/resizable.cjs.map +1 -1
  119. package/dist/resizable.mjs +2 -2
  120. package/dist/resizable.mjs.map +1 -1
  121. package/dist/{rolldown-runtime-C0IHAABJ.mjs → rolldown-runtime-CWhphoD1.mjs} +1 -1
  122. package/dist/rolldown-runtime-mLOUI7ql.js +1 -0
  123. package/dist/scroll-area.cjs +1 -1
  124. package/dist/scroll-area.cjs.map +1 -1
  125. package/dist/scroll-area.mjs +2 -2
  126. package/dist/scroll-area.mjs.map +1 -1
  127. package/dist/scroll-to-top.cjs +1 -1
  128. package/dist/scroll-to-top.cjs.map +1 -1
  129. package/dist/scroll-to-top.mjs +2 -2
  130. package/dist/scroll-to-top.mjs.map +1 -1
  131. package/dist/search.cjs +1 -1
  132. package/dist/search.cjs.map +1 -1
  133. package/dist/search.mjs +2 -2
  134. package/dist/search.mjs.map +1 -1
  135. package/dist/select.cjs +1 -1
  136. package/dist/select.cjs.map +1 -1
  137. package/dist/select.mjs +2 -2
  138. package/dist/select.mjs.map +1 -1
  139. package/dist/separator.cjs +1 -1
  140. package/dist/separator.cjs.map +1 -1
  141. package/dist/separator.mjs +2 -2
  142. package/dist/separator.mjs.map +1 -1
  143. package/dist/sheet.cjs +1 -1
  144. package/dist/sheet.cjs.map +1 -1
  145. package/dist/sheet.mjs +2 -2
  146. package/dist/sheet.mjs.map +1 -1
  147. package/dist/skeleton.cjs +1 -1
  148. package/dist/skeleton.cjs.map +1 -1
  149. package/dist/skeleton.mjs +2 -2
  150. package/dist/skeleton.mjs.map +1 -1
  151. package/dist/slider.cjs +1 -1
  152. package/dist/slider.cjs.map +1 -1
  153. package/dist/slider.mjs +2 -2
  154. package/dist/slider.mjs.map +1 -1
  155. package/dist/sonner.cjs +1 -1
  156. package/dist/sonner.cjs.map +1 -1
  157. package/dist/sonner.mjs +1 -1
  158. package/dist/sonner.mjs.map +1 -1
  159. package/dist/{src-B8AA-nU4.js → src-D3IDWqE2.js} +2 -2
  160. package/dist/{src-B8AA-nU4.js.map → src-D3IDWqE2.js.map} +1 -1
  161. package/dist/{src-C65A5RuY.mjs → src-N08I3kfW.mjs} +2 -2
  162. package/dist/{src-C65A5RuY.mjs.map → src-N08I3kfW.mjs.map} +1 -1
  163. package/dist/support-fab.cjs +1 -1
  164. package/dist/support-fab.cjs.map +1 -1
  165. package/dist/support-fab.mjs +2 -2
  166. package/dist/support-fab.mjs.map +1 -1
  167. package/dist/switch.cjs +1 -1
  168. package/dist/switch.cjs.map +1 -1
  169. package/dist/switch.mjs +2 -2
  170. package/dist/switch.mjs.map +1 -1
  171. package/dist/table-of-contents.cjs +1 -1
  172. package/dist/table-of-contents.cjs.map +1 -1
  173. package/dist/table-of-contents.mjs +2 -2
  174. package/dist/table-of-contents.mjs.map +1 -1
  175. package/dist/table.cjs +1 -1
  176. package/dist/table.cjs.map +1 -1
  177. package/dist/table.mjs +2 -2
  178. package/dist/table.mjs.map +1 -1
  179. package/dist/tabs.cjs +1 -1
  180. package/dist/tabs.cjs.map +1 -1
  181. package/dist/tabs.mjs +2 -2
  182. package/dist/tabs.mjs.map +1 -1
  183. package/dist/text.cjs +1 -1
  184. package/dist/text.cjs.map +1 -1
  185. package/dist/text.mjs +2 -2
  186. package/dist/text.mjs.map +1 -1
  187. package/dist/textarea.cjs +1 -1
  188. package/dist/textarea.cjs.map +1 -1
  189. package/dist/textarea.mjs +2 -2
  190. package/dist/textarea.mjs.map +1 -1
  191. package/dist/theme-provider.cjs +1 -1
  192. package/dist/theme-provider.cjs.map +1 -1
  193. package/dist/theme-provider.mjs +1 -1
  194. package/dist/theme-provider.mjs.map +1 -1
  195. package/dist/{theme-toggle-DoAVRoyO.mjs → theme-toggle-B6QS2aTS.mjs} +3 -3
  196. package/dist/{theme-toggle-DoAVRoyO.mjs.map → theme-toggle-B6QS2aTS.mjs.map} +1 -1
  197. package/dist/theme-toggle-CbtfA8aG.js +2 -0
  198. package/dist/{theme-toggle-B8UiizQB.js.map → theme-toggle-CbtfA8aG.js.map} +1 -1
  199. package/dist/theme-toggle.cjs +1 -1
  200. package/dist/theme-toggle.mjs +1 -1
  201. package/dist/toast.cjs +1 -1
  202. package/dist/toast.cjs.map +1 -1
  203. package/dist/toast.mjs +2 -2
  204. package/dist/toast.mjs.map +1 -1
  205. package/dist/{toaster-DnZKPR-G.js → toaster-C-1djNvf.js} +2 -2
  206. package/dist/{toaster-DnZKPR-G.js.map → toaster-C-1djNvf.js.map} +1 -1
  207. package/dist/{toaster-BgZxvlTL.mjs → toaster-CEa33QUH.mjs} +2 -2
  208. package/dist/{toaster-BgZxvlTL.mjs.map → toaster-CEa33QUH.mjs.map} +1 -1
  209. package/dist/toaster.cjs +1 -1
  210. package/dist/toaster.mjs +1 -1
  211. package/dist/toggle-group.cjs +1 -1
  212. package/dist/toggle-group.cjs.map +1 -1
  213. package/dist/toggle-group.mjs +3 -3
  214. package/dist/toggle-group.mjs.map +1 -1
  215. package/dist/toggle.cjs +1 -1
  216. package/dist/toggle.cjs.map +1 -1
  217. package/dist/toggle.mjs +3 -3
  218. package/dist/toggle.mjs.map +1 -1
  219. package/dist/tooltip.cjs +1 -1
  220. package/dist/tooltip.cjs.map +1 -1
  221. package/dist/tooltip.mjs +2 -2
  222. package/dist/tooltip.mjs.map +1 -1
  223. package/dist/{utils-BtI8Nf6i.mjs → utils-BsD1_fYL.mjs} +2 -2
  224. package/dist/{utils-BtI8Nf6i.mjs.map → utils-BsD1_fYL.mjs.map} +1 -1
  225. package/dist/utils-DU-Y_pvO.js +2 -0
  226. package/dist/{utils-CbSX47LV.js.map → utils-DU-Y_pvO.js.map} +1 -1
  227. package/dist/{vendor-D3ZzLf8D.js → vendor-3cr8xz0x.js} +8 -8
  228. package/dist/{vendor-D3ZzLf8D.js.map → vendor-3cr8xz0x.js.map} +1 -1
  229. package/dist/{vendor-Cr0eKZrm.mjs → vendor-ChPUVHXi.mjs} +7 -6
  230. package/dist/{vendor-Cr0eKZrm.mjs.map → vendor-ChPUVHXi.mjs.map} +1 -1
  231. package/package.json +22 -22
  232. package/dist/rolldown-runtime-CacfPODE.js +0 -1
  233. package/dist/theme-toggle-B8UiizQB.js +0 -2
  234. package/dist/utils-CbSX47LV.js +0 -2
package/dist/tabs.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.cjs","names":[],"sources":["../packages/ui-web/src/tabs.tsx"],"sourcesContent":["'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { TabsBaseProps, TabsContentBaseProps, TabsListBaseProps, TabsTriggerBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & TabsListBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List?.displayName || 'TabsList';\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & TabsTriggerBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger?.displayName || 'TabsTrigger';\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & TabsContentBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content?.displayName || 'TabsContent';\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\nexport type {\n TabsContentBaseProps as TabsContentProps,\n TabsListBaseProps as TabsListProps,\n TabsBaseProps as TabsProps,\n TabsTriggerBaseProps as TabsTriggerProps,\n};\n"],"mappings":"+PAQM,EAAA,EAAA,EAEA,EAAW,EAAM,YAGpB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,4FACA,EACD,CACD,GAAI,EACJ,CAAA,CACF,CACF,EAAS,YAAA,EAAA,GAAkC,aAAe,WAE1D,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,iYACA,EACD,CACD,GAAI,EACJ,CAAA,CACF,CACF,EAAY,YAAA,EAAA,GAAqC,aAAe,cAEhE,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,kIACA,EACD,CACD,GAAI,EACJ,CAAA,CACF,CACF,EAAY,YAAA,EAAA,GAAqC,aAAe"}
1
+ {"version":3,"file":"tabs.cjs","names":[],"sources":["../packages/ui-web/src/tabs.tsx"],"sourcesContent":["'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { TabsBaseProps, TabsContentBaseProps, TabsListBaseProps, TabsTriggerBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & TabsListBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List?.displayName || 'TabsList';\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & TabsTriggerBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger?.displayName || 'TabsTrigger';\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & TabsContentBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content?.displayName || 'TabsContent';\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\nexport type {\n TabsContentBaseProps as TabsContentProps,\n TabsListBaseProps as TabsListProps,\n TabsBaseProps as TabsProps,\n TabsTriggerBaseProps as TabsTriggerProps,\n};\n"],"mappings":"+PAQM,EAAA,EAAA,EAEA,EAAW,EAAM,YAGpB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,4FACA,CACF,EACA,GAAI,CACL,CAAA,CACF,EACD,EAAS,YAAA,EAAA,GAAkC,aAAe,WAE1D,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,iYACA,CACF,EACA,GAAI,CACL,CAAA,CACF,EACD,EAAY,YAAA,EAAA,GAAqC,aAAe,cAEhE,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,kIACA,CACF,EACA,GAAI,CACL,CAAA,CACF,EACD,EAAY,YAAA,EAAA,GAAqC,aAAe"}
package/dist/tabs.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { _ as e, g as t, h as n, v as r, vr as i } from "./vendor-Cr0eKZrm.mjs";
4
- import { t as a } from "./utils-BtI8Nf6i.mjs";
3
+ import { _ as e, g as t, h as n, v as r, vr as i } from "./vendor-ChPUVHXi.mjs";
4
+ import { t as a } from "./utils-BsD1_fYL.mjs";
5
5
  import * as o from "react";
6
6
  //#region packages/ui-web/src/tabs.tsx
7
7
  var s = i(), c = e, l = o.forwardRef(({ className: e, ...n }, r) => /* @__PURE__ */ (0, s.jsx)(t, {
package/dist/tabs.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","names":[],"sources":["../packages/ui-web/src/tabs.tsx"],"sourcesContent":["'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { TabsBaseProps, TabsContentBaseProps, TabsListBaseProps, TabsTriggerBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & TabsListBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List?.displayName || 'TabsList';\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & TabsTriggerBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger?.displayName || 'TabsTrigger';\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & TabsContentBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content?.displayName || 'TabsContent';\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\nexport type {\n TabsContentBaseProps as TabsContentProps,\n TabsListBaseProps as TabsListProps,\n TabsBaseProps as TabsProps,\n TabsTriggerBaseProps as TabsTriggerProps,\n};\n"],"mappings":";;;;;;aAQM,IAAO,GAEP,IAAW,EAAM,YAGpB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,6FACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAS,cAAA,GAAkC,eAAe;AAE1D,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,kYACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAY,cAAA,GAAqC,eAAe;AAEhE,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,mIACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAY,cAAA,GAAqC,eAAe"}
1
+ {"version":3,"file":"tabs.mjs","names":[],"sources":["../packages/ui-web/src/tabs.tsx"],"sourcesContent":["'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { TabsBaseProps, TabsContentBaseProps, TabsListBaseProps, TabsTriggerBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & TabsListBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List?.displayName || 'TabsList';\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & TabsTriggerBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger?.displayName || 'TabsTrigger';\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & TabsContentBaseProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content?.displayName || 'TabsContent';\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\nexport type {\n TabsContentBaseProps as TabsContentProps,\n TabsListBaseProps as TabsListProps,\n TabsBaseProps as TabsProps,\n TabsTriggerBaseProps as TabsTriggerProps,\n};\n"],"mappings":";;;;;;aAQM,IAAO,GAEP,IAAW,EAAM,YAGpB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,6FACA,CACF;CACA,GAAI;AACL,CAAA,CACF;AACD,EAAS,cAAA,GAAkC,eAAe;AAE1D,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,kYACA,CACF;CACA,GAAI;AACL,CAAA,CACF;AACD,EAAY,cAAA,GAAqC,eAAe;AAEhE,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,mIACA,CACF;CACA,GAAI;AACL,CAAA,CACF;AACD,EAAY,cAAA,GAAqC,eAAe"}
package/dist/text.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./rolldown-runtime-CacfPODE.js`),t=require(`./vendor-D3ZzLf8D.js`),n=require(`./utils-CbSX47LV.js`);let r=require(`react`);r=e.r(r);var i=t.vr(),a=t.Gn(``,{variants:{variant:{h1:`scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl`,h2:`scroll-m-20 text-3xl font-semibold tracking-tight`,h3:`scroll-m-20 text-2xl font-semibold tracking-tight`,h4:`scroll-m-20 text-xl font-semibold tracking-tight`,body:`leading-7`,bodySmall:`text-sm leading-6`,caption:`text-xs text-muted-foreground`,label:`text-sm font-medium leading-none`,overline:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`}},defaultVariants:{variant:`body`}}),o={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,body:`p`,bodySmall:`p`,caption:`span`,label:`label`,overline:`span`},s=r.forwardRef(({className:e,variant:t=`body`,as:r,children:s,...c},l)=>(0,i.jsx)(r||o[t??`body`]||`p`,{ref:l,className:n.t(a({variant:t,className:e})),...c,children:s}));s.displayName=`Text`,exports.Text=s,exports.textVariants=a;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=t.Gn(``,{variants:{variant:{h1:`scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl`,h2:`scroll-m-20 text-3xl font-semibold tracking-tight`,h3:`scroll-m-20 text-2xl font-semibold tracking-tight`,h4:`scroll-m-20 text-xl font-semibold tracking-tight`,body:`leading-7`,bodySmall:`text-sm leading-6`,caption:`text-xs text-muted-foreground`,label:`text-sm font-medium leading-none`,overline:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`}},defaultVariants:{variant:`body`}}),o={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,body:`p`,bodySmall:`p`,caption:`span`,label:`label`,overline:`span`},s=r.forwardRef(({className:e,variant:t=`body`,as:r,children:s,...c},l)=>(0,i.jsx)(r||o[t??`body`]||`p`,{ref:l,className:n.t(a({variant:t,className:e})),...c,children:s}));s.displayName=`Text`,exports.Text=s,exports.textVariants=a;
2
2
  //# sourceMappingURL=text.cjs.map
package/dist/text.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.cjs","names":[],"sources":["../packages/ui-web/src/text.tsx"],"sourcesContent":["'use client';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport type { TextBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n body: 'leading-7',\n bodySmall: 'text-sm leading-6',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n overline: 'text-xs font-semibold uppercase tracking-widest text-muted-foreground',\n },\n },\n defaultVariants: {\n variant: 'body',\n },\n});\n\n// Map variant to the most semantic HTML element\nconst variantElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n label: 'label',\n overline: 'span',\n};\n\nexport interface TextProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants>, TextBaseProps {\n as?: keyof React.JSX.IntrinsicElements;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n ({ className, variant = 'body', as, children, ...props }, ref) => {\n const Comp = (as || variantElementMap[variant ?? 'body'] || 'p') as React.ElementType;\n return (\n <Comp ref={ref} className={cn(textVariants({ variant, className }))} {...props}>\n {children}\n </Comp>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text, textVariants };\n"],"mappings":"+PAOM,EAAe,EAAA,GAAI,GAAI,CAC3B,SAAU,CACR,QAAS,CACP,GAAI,iEACJ,GAAI,oDACJ,GAAI,oDACJ,GAAI,mDACJ,KAAM,YACN,UAAW,oBACX,QAAS,gCACT,MAAO,mCACP,SAAU,wEACX,CACF,CACD,gBAAiB,CACf,QAAS,OACV,CACF,CAAC,CAGI,EAAuE,CAC3E,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,KAAM,IACN,UAAW,IACX,QAAS,OACT,MAAO,QACP,SAAU,OACX,CAMK,EAAO,EAAM,YAChB,CAAE,YAAW,UAAU,OAAQ,KAAI,WAAU,GAAG,GAAS,KAGtD,EAAA,EAAA,KAFY,GAAM,EAAkB,GAAW,SAAW,IAE1D,CAAW,MAAK,UAAW,EAAA,EAAG,EAAa,CAAE,UAAS,YAAW,CAAC,CAAC,CAAE,GAAI,EACtE,WACI,CAAA,CAGZ,CACD,EAAK,YAAc"}
1
+ {"version":3,"file":"text.cjs","names":[],"sources":["../packages/ui-web/src/text.tsx"],"sourcesContent":["'use client';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport type { TextBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n body: 'leading-7',\n bodySmall: 'text-sm leading-6',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n overline: 'text-xs font-semibold uppercase tracking-widest text-muted-foreground',\n },\n },\n defaultVariants: {\n variant: 'body',\n },\n});\n\n// Map variant to the most semantic HTML element\nconst variantElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n label: 'label',\n overline: 'span',\n};\n\nexport interface TextProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants>, TextBaseProps {\n as?: keyof React.JSX.IntrinsicElements;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n ({ className, variant = 'body', as, children, ...props }, ref) => {\n const Comp = (as || variantElementMap[variant ?? 'body'] || 'p') as React.ElementType;\n return (\n <Comp ref={ref} className={cn(textVariants({ variant, className }))} {...props}>\n {children}\n </Comp>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text, textVariants };\n"],"mappings":"+PAOM,EAAe,EAAA,GAAI,GAAI,CAC3B,SAAU,CACR,QAAS,CACP,GAAI,iEACJ,GAAI,oDACJ,GAAI,oDACJ,GAAI,mDACJ,KAAM,YACN,UAAW,oBACX,QAAS,gCACT,MAAO,mCACP,SAAU,uEACZ,CACF,EACA,gBAAiB,CACf,QAAS,MACX,CACF,CAAC,EAGK,EAAuE,CAC3E,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,KAAM,IACN,UAAW,IACX,QAAS,OACT,MAAO,QACP,SAAU,MACZ,EAMM,EAAO,EAAM,YAChB,CAAE,YAAW,UAAU,OAAQ,KAAI,WAAU,GAAG,GAAS,KAGtD,EAAA,EAAA,KAFY,GAAM,EAAkB,GAAW,SAAW,IAE1D,CAAW,MAAK,UAAW,EAAA,EAAG,EAAa,CAAE,UAAS,WAAU,CAAC,CAAC,EAAG,GAAI,EACtE,UACG,CAAA,CAGZ,EACA,EAAK,YAAc"}
package/dist/text.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { Gn as e, vr as t } from "./vendor-Cr0eKZrm.mjs";
4
- import { t as n } from "./utils-BtI8Nf6i.mjs";
3
+ import { Gn as e, vr as t } from "./vendor-ChPUVHXi.mjs";
4
+ import { t as n } from "./utils-BsD1_fYL.mjs";
5
5
  import * as r from "react";
6
6
  //#region packages/ui-web/src/text.tsx
7
7
  var i = t(), a = e("", {
package/dist/text.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.mjs","names":[],"sources":["../packages/ui-web/src/text.tsx"],"sourcesContent":["'use client';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport type { TextBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n body: 'leading-7',\n bodySmall: 'text-sm leading-6',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n overline: 'text-xs font-semibold uppercase tracking-widest text-muted-foreground',\n },\n },\n defaultVariants: {\n variant: 'body',\n },\n});\n\n// Map variant to the most semantic HTML element\nconst variantElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n label: 'label',\n overline: 'span',\n};\n\nexport interface TextProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants>, TextBaseProps {\n as?: keyof React.JSX.IntrinsicElements;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n ({ className, variant = 'body', as, children, ...props }, ref) => {\n const Comp = (as || variantElementMap[variant ?? 'body'] || 'p') as React.ElementType;\n return (\n <Comp ref={ref} className={cn(textVariants({ variant, className }))} {...props}>\n {children}\n </Comp>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text, textVariants };\n"],"mappings":";;;;;;aAOM,IAAe,EAAI,IAAI;CAC3B,UAAU,EACR,SAAS;EACP,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;EACN,WAAW;EACX,SAAS;EACT,OAAO;EACP,UAAU;EACX,EACF;CACD,iBAAiB,EACf,SAAS,QACV;CACF,CAAC,EAGI,IAAuE;CAC3E,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,WAAW;CACX,SAAS;CACT,OAAO;CACP,UAAU;CACX,EAMK,IAAO,EAAM,YAChB,EAAE,cAAW,aAAU,QAAQ,OAAI,aAAU,GAAG,KAAS,MAGtD,iBAAA,GAAA,EAAA,KAFY,KAAM,EAAkB,KAAW,WAAW,KAE1D;CAAW;CAAK,WAAW,EAAG,EAAa;EAAE;EAAS;EAAW,CAAC,CAAC;CAAE,GAAI;CACtE;CACI,CAAA,CAGZ;AACD,EAAK,cAAc"}
1
+ {"version":3,"file":"text.mjs","names":[],"sources":["../packages/ui-web/src/text.tsx"],"sourcesContent":["'use client';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport type { TextBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n body: 'leading-7',\n bodySmall: 'text-sm leading-6',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n overline: 'text-xs font-semibold uppercase tracking-widest text-muted-foreground',\n },\n },\n defaultVariants: {\n variant: 'body',\n },\n});\n\n// Map variant to the most semantic HTML element\nconst variantElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n label: 'label',\n overline: 'span',\n};\n\nexport interface TextProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants>, TextBaseProps {\n as?: keyof React.JSX.IntrinsicElements;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n ({ className, variant = 'body', as, children, ...props }, ref) => {\n const Comp = (as || variantElementMap[variant ?? 'body'] || 'p') as React.ElementType;\n return (\n <Comp ref={ref} className={cn(textVariants({ variant, className }))} {...props}>\n {children}\n </Comp>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text, textVariants };\n"],"mappings":";;;;;;aAOM,IAAe,EAAI,IAAI;CAC3B,UAAU,EACR,SAAS;EACP,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;EACN,WAAW;EACX,SAAS;EACT,OAAO;EACP,UAAU;CACZ,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CAAC,GAGK,IAAuE;CAC3E,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,WAAW;CACX,SAAS;CACT,OAAO;CACP,UAAU;AACZ,GAMM,IAAO,EAAM,YAChB,EAAE,cAAW,aAAU,QAAQ,OAAI,aAAU,GAAG,KAAS,MAGtD,iBAAA,GAAA,EAAA,KAFY,KAAM,EAAkB,KAAW,WAAW,KAE1D;CAAW;CAAK,WAAW,EAAG,EAAa;EAAE;EAAS;CAAU,CAAC,CAAC;CAAG,GAAI;CACtE;AACG,CAAA,CAGZ;AACA,EAAK,cAAc"}
package/dist/textarea.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./rolldown-runtime-CacfPODE.js`),t=require(`./vendor-D3ZzLf8D.js`),n=require(`./utils-CbSX47LV.js`);let r=require(`react`);r=e.r(r);var i=t.vr(),a=r.forwardRef(({className:e,...t},r)=>(0,i.jsx)(`textarea`,{className:n.t(`border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:r,...t}));a.displayName=`Textarea`,exports.Textarea=a;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=r.forwardRef(({className:e,...t},r)=>(0,i.jsx)(`textarea`,{className:n.t(`border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:r,...t}));a.displayName=`Textarea`,exports.Textarea=a;
2
2
  //# sourceMappingURL=textarea.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.cjs","names":[],"sources":["../packages/ui-web/src/textarea.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { TextareaBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, keyof TextareaBaseProps>, TextareaBaseProps {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"+PAUM,EAAW,EAAM,YAAgD,CAAE,YAAW,GAAG,GAAS,KAE5F,EAAA,EAAA,KAAC,WAAD,CACE,UAAW,EAAA,EACT,4QACA,EACD,CACI,MACL,GAAI,EACJ,CAAA,CAEJ,CACF,EAAS,YAAc"}
1
+ {"version":3,"file":"textarea.cjs","names":[],"sources":["../packages/ui-web/src/textarea.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { TextareaBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, keyof TextareaBaseProps>, TextareaBaseProps {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"+PAUM,EAAW,EAAM,YAAgD,CAAE,YAAW,GAAG,GAAS,KAE5F,EAAA,EAAA,KAAC,WAAD,CACE,UAAW,EAAA,EACT,4QACA,CACF,EACK,MACL,GAAI,CACL,CAAA,CAEJ,EACD,EAAS,YAAc"}
package/dist/textarea.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { vr as e } from "./vendor-Cr0eKZrm.mjs";
4
- import { t } from "./utils-BtI8Nf6i.mjs";
3
+ import { vr as e } from "./vendor-ChPUVHXi.mjs";
4
+ import { t } from "./utils-BsD1_fYL.mjs";
5
5
  import * as n from "react";
6
6
  //#region packages/ui-web/src/textarea.tsx
7
7
  var r = e(), i = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("textarea", {
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.mjs","names":[],"sources":["../packages/ui-web/src/textarea.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { TextareaBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, keyof TextareaBaseProps>, TextareaBaseProps {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":";;;;;;aAUM,IAAW,EAAM,YAAgD,EAAE,cAAW,GAAG,KAAS,MAE5F,iBAAA,GAAA,EAAA,KAAC,YAAD;CACE,WAAW,EACT,6QACA,EACD;CACI;CACL,GAAI;CACJ,CAAA,CAEJ;AACF,EAAS,cAAc"}
1
+ {"version":3,"file":"textarea.mjs","names":[],"sources":["../packages/ui-web/src/textarea.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { TextareaBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, keyof TextareaBaseProps>, TextareaBaseProps {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":";;;;;;aAUM,IAAW,EAAM,YAAgD,EAAE,cAAW,GAAG,KAAS,MAE5F,iBAAA,GAAA,EAAA,KAAC,YAAD;CACE,WAAW,EACT,6QACA,CACF;CACK;CACL,GAAI;AACL,CAAA,CAEJ;AACD,EAAS,cAAc"}
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./rolldown-runtime-CacfPODE.js`);const e=require(`./vendor-D3ZzLf8D.js`);let t=require(`next-themes`);var n=e.vr();function r({children:e,...r}){return(0,n.jsx)(t.ThemeProvider,{attribute:`class`,defaultTheme:`system`,enableSystem:!0,...r,children:e})}exports.ThemeProvider=r;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./vendor-3cr8xz0x.js");let t=require("next-themes");var n=e.vr();function r({children:e,...r}){return(0,n.jsx)(t.ThemeProvider,{attribute:`class`,defaultTheme:`system`,enableSystem:!0,...r,children:e})}exports.ThemeProvider=r;
2
2
  //# sourceMappingURL=theme-provider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.cjs","names":[],"sources":["../packages/ui-web/src/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport { ThemeProviderBaseProps } from '@gv-tech/ui-core';\nimport type { ThemeProviderProps as NextThemesProviderProps } from 'next-themes';\nimport { ThemeProvider as NextThemesProvider } from 'next-themes';\n\nexport type ThemeProviderProps = NextThemesProviderProps & ThemeProviderBaseProps;\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return (\n <NextThemesProvider attribute=\"class\" defaultTheme=\"system\" enableSystem {...props}>\n {children}\n </NextThemesProvider>\n );\n}\n"],"mappings":"yNAQA,SAAgB,EAAc,CAAE,WAAU,GAAG,GAA6B,CACxE,OACE,EAAA,EAAA,KAAC,EAAA,cAAD,CAAoB,UAAU,QAAQ,aAAa,SAAS,aAAA,GAAa,GAAI,EAC1E,WACkB,CAAA"}
1
+ {"version":3,"file":"theme-provider.cjs","names":[],"sources":["../packages/ui-web/src/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport { ThemeProviderBaseProps } from '@gv-tech/ui-core';\nimport type { ThemeProviderProps as NextThemesProviderProps } from 'next-themes';\nimport { ThemeProvider as NextThemesProvider } from 'next-themes';\n\nexport type ThemeProviderProps = NextThemesProviderProps & ThemeProviderBaseProps;\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return (\n <NextThemesProvider attribute=\"class\" defaultTheme=\"system\" enableSystem {...props}>\n {children}\n </NextThemesProvider>\n );\n}\n"],"mappings":"+KAQA,SAAgB,EAAc,CAAE,WAAU,GAAG,GAA6B,CACxE,OACE,EAAA,EAAA,KAAC,EAAA,cAAD,CAAoB,UAAU,QAAQ,aAAa,SAAS,aAAA,GAAa,GAAI,EAC1E,UACiB,CAAA,CAExB"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  "use client";
3
- import { vr as e } from "./vendor-Cr0eKZrm.mjs";
3
+ import { vr as e } from "./vendor-ChPUVHXi.mjs";
4
4
  import { ThemeProvider as t } from "next-themes";
5
5
  //#region packages/ui-web/src/theme-provider.tsx
6
6
  var n = e();
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.mjs","names":[],"sources":["../packages/ui-web/src/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport { ThemeProviderBaseProps } from '@gv-tech/ui-core';\nimport type { ThemeProviderProps as NextThemesProviderProps } from 'next-themes';\nimport { ThemeProvider as NextThemesProvider } from 'next-themes';\n\nexport type ThemeProviderProps = NextThemesProviderProps & ThemeProviderBaseProps;\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return (\n <NextThemesProvider attribute=\"class\" defaultTheme=\"system\" enableSystem {...props}>\n {children}\n </NextThemesProvider>\n );\n}\n"],"mappings":";;;;;;AAQA,SAAgB,EAAc,EAAE,aAAU,GAAG,KAA6B;AACxE,QACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAoB,WAAU;EAAQ,cAAa;EAAS,cAAA;EAAa,GAAI;EAC1E;EACkB,CAAA"}
1
+ {"version":3,"file":"theme-provider.mjs","names":[],"sources":["../packages/ui-web/src/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport { ThemeProviderBaseProps } from '@gv-tech/ui-core';\nimport type { ThemeProviderProps as NextThemesProviderProps } from 'next-themes';\nimport { ThemeProvider as NextThemesProvider } from 'next-themes';\n\nexport type ThemeProviderProps = NextThemesProviderProps & ThemeProviderBaseProps;\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return (\n <NextThemesProvider attribute=\"class\" defaultTheme=\"system\" enableSystem {...props}>\n {children}\n </NextThemesProvider>\n );\n}\n"],"mappings":";;;;;;AAQA,SAAgB,EAAc,EAAE,aAAU,GAAG,KAA6B;CACxE,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAoB,WAAU;EAAQ,cAAa;EAAS,cAAA;EAAa,GAAI;EAC1E;CACiB,CAAA;AAExB"}
@@ -1,5 +1,5 @@
1
- import { Jn as e, Xn as t, qn as n, vr as r } from "./vendor-Cr0eKZrm.mjs";
2
- import { t as i } from "./utils-BtI8Nf6i.mjs";
1
+ import { Jn as e, Xn as t, qn as n, vr as r } from "./vendor-ChPUVHXi.mjs";
2
+ import { t as i } from "./utils-BsD1_fYL.mjs";
3
3
  import { Button as a } from "./button.mjs";
4
4
  import { DropdownMenu as o, DropdownMenuContent as s, DropdownMenuItem as c, DropdownMenuTrigger as l } from "./dropdown-menu.mjs";
5
5
  import { useTheme as u } from "next-themes";
@@ -318,4 +318,4 @@ function S({ variant: r = "binary", onThemeChange: u, customTheme: d, className:
318
318
  //#endregion
319
319
  export { _ as a, h as c, d, v as i, p as l, b as n, g as o, y as r, m as s, S as t, f as u };
320
320
 
321
- //# sourceMappingURL=theme-toggle-DoAVRoyO.mjs.map
321
+ //# sourceMappingURL=theme-toggle-B6QS2aTS.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle-DoAVRoyO.mjs","names":[],"sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../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/preset.ts","../packages/design-tokens/src/index.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","// 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","// Tailwind CSS configuration preset for GV Tech design system.\n// This registers our colors, shadows, border radii, and animations natively.\n\nexport const preset = {\n theme: {\n extend: {\n colors: {\n background: 'hsl(var(--background) / <alpha-value>)',\n foreground: 'hsl(var(--foreground) / <alpha-value>)',\n card: {\n DEFAULT: 'hsl(var(--card) / <alpha-value>)',\n foreground: 'hsl(var(--card-foreground) / <alpha-value>)',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover) / <alpha-value>)',\n foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',\n },\n primary: {\n DEFAULT: 'hsl(var(--primary) / <alpha-value>)',\n foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',\n foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted) / <alpha-value>)',\n foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent) / <alpha-value>)',\n foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',\n foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',\n },\n border: 'hsl(var(--border) / <alpha-value>)',\n input: 'hsl(var(--input) / <alpha-value>)',\n ring: 'hsl(var(--ring) / <alpha-value>)',\n\n // Primitive palette tokens exported dynamically via CSS variable mappings\n brand: {\n blue: 'hsl(var(--brand-blue) / <alpha-value>)',\n green: 'hsl(var(--brand-green) / <alpha-value>)',\n 'floral-white': 'hsl(var(--brand-floral-white) / <alpha-value>)',\n },\n neutral: {\n white: 'hsl(var(--neutral-white) / <alpha-value>)',\n black: 'hsl(var(--neutral-black) / <alpha-value>)',\n gray50: 'hsl(var(--neutral-gray50) / <alpha-value>)',\n gray100: 'hsl(var(--neutral-gray100) / <alpha-value>)',\n gray200: 'hsl(var(--neutral-gray200) / <alpha-value>)',\n gray300: 'hsl(var(--neutral-gray300) / <alpha-value>)',\n gray400: 'hsl(var(--neutral-gray400) / <alpha-value>)',\n gray500: 'hsl(var(--neutral-gray500) / <alpha-value>)',\n gray600: 'hsl(var(--neutral-gray600) / <alpha-value>)',\n gray700: 'hsl(var(--neutral-gray700) / <alpha-value>)',\n gray800: 'hsl(var(--neutral-gray800) / <alpha-value>)',\n gray900: 'hsl(var(--neutral-gray900) / <alpha-value>)',\n gray950: 'hsl(var(--neutral-gray950) / <alpha-value>)',\n gray975: 'hsl(var(--neutral-gray975) / <alpha-value>)',\n gray990: 'hsl(var(--neutral-gray990) / <alpha-value>)',\n },\n semantic: {\n success: 'hsl(var(--semantic-success) / <alpha-value>)',\n 'success-dark': 'hsl(var(--semantic-success-dark) / <alpha-value>)',\n destructive: 'hsl(var(--semantic-destructive) / <alpha-value>)',\n 'destructive-dark': 'hsl(var(--semantic-destructive-dark) / <alpha-value>)',\n },\n },\n borderRadius: {\n lg: 'var(--radius)',\n md: 'calc(var(--radius) - 2px)',\n sm: 'calc(var(--radius) - 4px)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n },\n boxShadow: {\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 },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n },\n },\n },\n};\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\nexport { preset } from './preset';\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"],"mappings":";;;;;;AAIA,IAAa,IAAU;CACrB,OAAO;EACL,MAAM;EACN,OAAO;EACP,aAAa;EACd;CACD,SAAS;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACV;CACD,UAAU;EACR,SAAS;EACT,aAAa;EACb,aAAa;EACb,iBAAiB;EAClB;CACF,EC3BY,IAAQ;CACnB,OAAO;EACL,YAAY,EAAQ,QAAQ;EAC5B,YAAY,EAAQ,QAAQ;EAC5B,MAAM,EAAQ,QAAQ;EACtB,gBAAgB,EAAQ,QAAQ;EAChC,SAAS,EAAQ,QAAQ;EACzB,mBAAmB,EAAQ,QAAQ;EACnC,SAAS,EAAQ,MAAM;EACvB,mBAAmB,EAAQ,QAAQ;EACnC,WAAW,EAAQ,SAAS;EAC5B,qBAAqB,EAAQ,QAAQ;EACrC,OAAO,EAAQ,QAAQ;EACvB,iBAAiB,EAAQ,QAAQ;EACjC,QAAQ,EAAQ,QAAQ;EACxB,kBAAkB,EAAQ,QAAQ;EAClC,aAAa,EAAQ,SAAS;EAC9B,uBAAuB,EAAQ,QAAQ;EACvC,QAAQ,EAAQ,QAAQ;EACxB,OAAO,EAAQ,QAAQ;EACvB,MAAM,EAAQ,QAAQ;EACtB,QAAQ;EACT;CACD,MAAM;EACJ,YAAY,EAAQ,QAAQ;EAC5B,YAAY,EAAQ,QAAQ;EAC5B,MAAM,EAAQ,QAAQ;EACtB,gBAAgB,EAAQ,QAAQ;EAChC,SAAS,EAAQ,QAAQ;EACzB,mBAAmB,EAAQ,QAAQ;EACnC,SAAS;EACT,mBAAmB,EAAQ,QAAQ;EACnC,WAAW,EAAQ,SAAS;EAC5B,qBAAqB,EAAQ,QAAQ;EACrC,OAAO,EAAQ,QAAQ;EACvB,iBAAiB,EAAQ,QAAQ;EACjC,QAAQ,EAAQ,QAAQ;EACxB,kBAAkB,EAAQ,QAAQ;EAClC,aAAa,EAAQ,SAAS;EAC9B,uBAAuB,EAAQ,QAAQ;EACvC,QAAQ,EAAQ,QAAQ;EACxB,OAAO,EAAQ,QAAQ;EACvB,MAAM;EACN,QAAQ;EACT;CACF,EChDY,IAAU;CACrB,IAAI;CACJ,GAAG;CACH,IAAK;CACL,GAAG;CACH,KAAK;CACL,GAAG;CACH,KAAK;CACL,GAAG;CACH,KAAK;CACL,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EC5BY,IAAQ;CACnB,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;CACP,EAIY,IAAe;CAC1B,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;CACP,ECnBY,IAAa;CACxB,YAAY;EACV,MAAM;EACN,MAAM;EACP;CACD,UAAU;EACR,IAAI;EACJ,IAAI;EACJ,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACR;CACD,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,MAAM;EACP;CACD,YAAY;EACV,MAAM;EACN,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACR;CACF,EC7BY,IAAU;CACrB,MAAM;CACN,IAAI;CACJ,SAAS;CACT,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACR,ECVY,IAAS,EACpB,OAAO,EACL,QAAQ;CACN,QAAQ;EACN,YAAY;EACZ,YAAY;EACZ,MAAM;GACJ,SAAS;GACT,YAAY;GACb;EACD,SAAS;GACP,SAAS;GACT,YAAY;GACb;EACD,SAAS;GACP,SAAS;GACT,YAAY;GACb;EACD,WAAW;GACT,SAAS;GACT,YAAY;GACb;EACD,OAAO;GACL,SAAS;GACT,YAAY;GACb;EACD,QAAQ;GACN,SAAS;GACT,YAAY;GACb;EACD,aAAa;GACX,SAAS;GACT,YAAY;GACb;EACD,QAAQ;EACR,OAAO;EACP,MAAM;EAGN,OAAO;GACL,MAAM;GACN,OAAO;GACP,gBAAgB;GACjB;EACD,SAAS;GACP,OAAO;GACP,OAAO;GACP,QAAQ;GACR,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACT,SAAS;GACV;EACD,UAAU;GACR,SAAS;GACT,gBAAgB;GAChB,aAAa;GACb,oBAAoB;GACrB;EACF;CACD,cAAc;EACZ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACR;CACD,WAAW;EACT,IAAI;EACJ,SAAS;EACT,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACP,OAAO;EACR;CACD,WAAW;EACT,kBAAkB;GAChB,MAAM,EAAE,QAAQ,KAAK;GACrB,IAAI,EAAE,QAAQ,yCAAyC;GACxD;EACD,gBAAgB;GACd,MAAM,EAAE,QAAQ,yCAAyC;GACzD,IAAI,EAAE,QAAQ,KAAK;GACpB;EACF;CACD,WAAW;EACT,kBAAkB;EAClB,gBAAgB;EACjB;CACF,EACF,EACF,ECxEY,IAAS;CACpB;CACA;CACD;;;AC/BD,SAAgB,IAAW;CACzB,IAAM,IAAU,GAAc,EACxB,EAAE,qBAAkB,GAGpB,IAAe,MAAkB,SAAS,EAAM,OAAO,EAAM;AAEnE,QAAO;EACL,GAAG;EACH,QAAQ;EACT;;;;;ACFH,SAAgB,EAAY,EAAE,aAAU,UAAU,kBAAe,gBAAa,gBAA+B;CAC3G,IAAM,EAAE,OAAO,GAAW,UAAU,GAAc,qBAAkB,GAAU,EAGxE,IAAe,KAAe,GAI9B,KADiB,KAA4B,OACjB,QAC5B,IAAW,MAAiB,UAE5B,KAAqB,MAAqB;AAC9C,EAAI,IACF,EAAc,EAAS,GAEvB,EAAa,EAAS;IAIpB,UACJ,iBAAA,GAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA;EACE,iBAAA,GAAA,EAAA,KAAC,GAAD,EACE,WAAW,EACT,wCACA,CAAC,KAAY,CAAC,IAAS,uBAAuB,qBAC/C,EACD,CAAA;EACF,iBAAA,GAAA,EAAA,KAAC,GAAD,EACE,WAAW,EACT,iDACA,CAAC,KAAY,IAAS,uBAAuB,oBAC9C,EACD,CAAA;EACF,iBAAA,GAAA,EAAA,KAAC,GAAD,EACE,WAAW,EACT,iDACA,IAAW,uBAAuB,oBACnC,EACD,CAAA;EACF,iBAAA,GAAA,EAAA,KAAC,QAAD;GAAM,WAAU;aAAU;GAAmB,CAAA;EAC5C,EAAA,CAAA;AA6BL,QA1BI,MAAY,YAEZ,iBAAA,GAAA,EAAA,MAAC,GAAD,EAAA,UAAA,CACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAqB,SAAA;YACnB,iBAAA,GAAA,EAAA,KAAC,GAAD;GAAQ,SAAQ;GAAQ,MAAK;GAAO,WAAW,EAAG,oBAAoB,EAAU;aAC9E,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAc,CAAA;GACP,CAAA;EACW,CAAA,EACtB,iBAAA,GAAA,EAAA,MAAC,GAAD;EAAqB,OAAM;YAA3B;GACE,iBAAA,GAAA,EAAA,MAAC,GAAD;IAAkB,eAAe,EAAkB,QAAQ;cAA3D,CACE,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAK,WAAU,gBAAiB,CAAA,EAChC,iBAAA,GAAA,EAAA,KAAC,QAAD,EAAA,UAAM,SAAY,CAAA,CACD;;GACnB,iBAAA,GAAA,EAAA,MAAC,GAAD;IAAkB,eAAe,EAAkB,OAAO;cAA1D,CACE,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EACjC,iBAAA,GAAA,EAAA,KAAC,QAAD,EAAA,UAAM,QAAW,CAAA,CACA;;GACnB,iBAAA,GAAA,EAAA,MAAC,GAAD;IAAkB,eAAe,EAAkB,SAAS;cAA5D,CACE,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAS,WAAU,gBAAiB,CAAA,EACpC,iBAAA,GAAA,EAAA,KAAC,QAAD,EAAA,UAAM,UAAa,CAAA,CACF;;GACC;IACT,EAAA,CAAA,GAKjB,iBAAA,GAAA,EAAA,KAAC,GAAD;EACE,SAAQ;EACR,MAAK;EACL,WAAW,EAAG,oBAAoB,EAAU;EAC5C,eAAe,EAAkB,MAAiB,SAAS,UAAU,OAAO;EAC5E,cAAW;YAEX,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAc,CAAA;EACP,CAAA"}
1
+ {"version":3,"file":"theme-toggle-B6QS2aTS.mjs","names":[],"sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../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/preset.ts","../packages/design-tokens/src/index.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","// 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","// Tailwind CSS configuration preset for GV Tech design system.\n// This registers our colors, shadows, border radii, and animations natively.\n\nexport const preset = {\n theme: {\n extend: {\n colors: {\n background: 'hsl(var(--background) / <alpha-value>)',\n foreground: 'hsl(var(--foreground) / <alpha-value>)',\n card: {\n DEFAULT: 'hsl(var(--card) / <alpha-value>)',\n foreground: 'hsl(var(--card-foreground) / <alpha-value>)',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover) / <alpha-value>)',\n foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',\n },\n primary: {\n DEFAULT: 'hsl(var(--primary) / <alpha-value>)',\n foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',\n foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted) / <alpha-value>)',\n foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent) / <alpha-value>)',\n foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',\n foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',\n },\n border: 'hsl(var(--border) / <alpha-value>)',\n input: 'hsl(var(--input) / <alpha-value>)',\n ring: 'hsl(var(--ring) / <alpha-value>)',\n\n // Primitive palette tokens exported dynamically via CSS variable mappings\n brand: {\n blue: 'hsl(var(--brand-blue) / <alpha-value>)',\n green: 'hsl(var(--brand-green) / <alpha-value>)',\n 'floral-white': 'hsl(var(--brand-floral-white) / <alpha-value>)',\n },\n neutral: {\n white: 'hsl(var(--neutral-white) / <alpha-value>)',\n black: 'hsl(var(--neutral-black) / <alpha-value>)',\n gray50: 'hsl(var(--neutral-gray50) / <alpha-value>)',\n gray100: 'hsl(var(--neutral-gray100) / <alpha-value>)',\n gray200: 'hsl(var(--neutral-gray200) / <alpha-value>)',\n gray300: 'hsl(var(--neutral-gray300) / <alpha-value>)',\n gray400: 'hsl(var(--neutral-gray400) / <alpha-value>)',\n gray500: 'hsl(var(--neutral-gray500) / <alpha-value>)',\n gray600: 'hsl(var(--neutral-gray600) / <alpha-value>)',\n gray700: 'hsl(var(--neutral-gray700) / <alpha-value>)',\n gray800: 'hsl(var(--neutral-gray800) / <alpha-value>)',\n gray900: 'hsl(var(--neutral-gray900) / <alpha-value>)',\n gray950: 'hsl(var(--neutral-gray950) / <alpha-value>)',\n gray975: 'hsl(var(--neutral-gray975) / <alpha-value>)',\n gray990: 'hsl(var(--neutral-gray990) / <alpha-value>)',\n },\n semantic: {\n success: 'hsl(var(--semantic-success) / <alpha-value>)',\n 'success-dark': 'hsl(var(--semantic-success-dark) / <alpha-value>)',\n destructive: 'hsl(var(--semantic-destructive) / <alpha-value>)',\n 'destructive-dark': 'hsl(var(--semantic-destructive-dark) / <alpha-value>)',\n },\n },\n borderRadius: {\n lg: 'var(--radius)',\n md: 'calc(var(--radius) - 2px)',\n sm: 'calc(var(--radius) - 4px)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n },\n boxShadow: {\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 },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n },\n },\n },\n};\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\nexport { preset } from './preset';\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"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./vendor-3cr8xz0x.js"),t=require("./utils-DU-Y_pvO.js"),n=require("./button.cjs"),r=require("./dropdown-menu.cjs");let i=require("next-themes");var a={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%)`}},o={light:{background:a.neutral.gray50,foreground:a.neutral.gray600,card:a.neutral.white,cardForeground:a.neutral.gray600,popover:a.neutral.white,popoverForeground:a.neutral.gray600,primary:a.brand.blue,primaryForeground:a.neutral.white,secondary:a.semantic.success,secondaryForeground:a.neutral.white,muted:a.neutral.gray100,mutedForeground:a.neutral.gray500,accent:a.neutral.gray300,accentForeground:a.neutral.gray600,destructive:a.semantic.destructive,destructiveForeground:a.neutral.white,border:a.neutral.gray200,input:a.neutral.gray200,ring:a.neutral.gray600,radius:`0.5rem`},dark:{background:a.neutral.gray975,foreground:a.neutral.white,card:a.neutral.gray900,cardForeground:a.neutral.white,popover:a.neutral.gray950,popoverForeground:a.neutral.white,primary:`hsl(227 96% 71%)`,primaryForeground:a.neutral.gray975,secondary:a.semantic.successDark,secondaryForeground:a.neutral.gray975,muted:a.neutral.gray990,mutedForeground:a.neutral.gray400,accent:a.neutral.gray800,accentForeground:a.neutral.white,destructive:a.semantic.destructiveDark,destructiveForeground:a.neutral.white,border:a.neutral.gray700,input:a.neutral.gray700,ring:`hsl(0 0% 90%)`,radius:`0.5rem`}},s={px:`1px`,0:`0`,.5:`0.125rem`,1:`0.25rem`,1.5:`0.375rem`,2:`0.5rem`,2.5:`0.625rem`,3:`0.75rem`,3.5:`0.875rem`,4:`1rem`,5:`1.25rem`,6:`1.5rem`,7:`1.75rem`,8:`2rem`,9:`2.25rem`,10:`2.5rem`,12:`3rem`,14:`3.5rem`,16:`4rem`,20:`5rem`,24:`6rem`,32:`8rem`,40:`10rem`,48:`12rem`,56:`14rem`,64:`16rem`},c={none:`0`,sm:`calc(var(--radius) - 4px)`,md:`calc(var(--radius) - 2px)`,lg:`var(--radius)`,xl:`calc(var(--radius) + 4px)`,"2xl":`calc(var(--radius) + 8px)`,full:`9999px`},l={none:0,sm:4,md:6,lg:8,xl:12,"2xl":16,full:9999},u={fontFamily:{sans:`Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,mono:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`},fontSize:{xs:`0.75rem`,sm:`0.875rem`,base:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`},fontWeight:{normal:`400`,medium:`500`,semibold:`600`,bold:`700`},lineHeight:{none:`1`,tight:`1.25`,snug:`1.375`,normal:`1.5`,relaxed:`1.625`,loose:`2`}},d={none:`none`,sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,default:`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},f={theme:{extend:{colors:{background:`hsl(var(--background) / <alpha-value>)`,foreground:`hsl(var(--foreground) / <alpha-value>)`,card:{DEFAULT:`hsl(var(--card) / <alpha-value>)`,foreground:`hsl(var(--card-foreground) / <alpha-value>)`},popover:{DEFAULT:`hsl(var(--popover) / <alpha-value>)`,foreground:`hsl(var(--popover-foreground) / <alpha-value>)`},primary:{DEFAULT:`hsl(var(--primary) / <alpha-value>)`,foreground:`hsl(var(--primary-foreground) / <alpha-value>)`},secondary:{DEFAULT:`hsl(var(--secondary) / <alpha-value>)`,foreground:`hsl(var(--secondary-foreground) / <alpha-value>)`},muted:{DEFAULT:`hsl(var(--muted) / <alpha-value>)`,foreground:`hsl(var(--muted-foreground) / <alpha-value>)`},accent:{DEFAULT:`hsl(var(--accent) / <alpha-value>)`,foreground:`hsl(var(--accent-foreground) / <alpha-value>)`},destructive:{DEFAULT:`hsl(var(--destructive) / <alpha-value>)`,foreground:`hsl(var(--destructive-foreground) / <alpha-value>)`},border:`hsl(var(--border) / <alpha-value>)`,input:`hsl(var(--input) / <alpha-value>)`,ring:`hsl(var(--ring) / <alpha-value>)`,brand:{blue:`hsl(var(--brand-blue) / <alpha-value>)`,green:`hsl(var(--brand-green) / <alpha-value>)`,"floral-white":`hsl(var(--brand-floral-white) / <alpha-value>)`},neutral:{white:`hsl(var(--neutral-white) / <alpha-value>)`,black:`hsl(var(--neutral-black) / <alpha-value>)`,gray50:`hsl(var(--neutral-gray50) / <alpha-value>)`,gray100:`hsl(var(--neutral-gray100) / <alpha-value>)`,gray200:`hsl(var(--neutral-gray200) / <alpha-value>)`,gray300:`hsl(var(--neutral-gray300) / <alpha-value>)`,gray400:`hsl(var(--neutral-gray400) / <alpha-value>)`,gray500:`hsl(var(--neutral-gray500) / <alpha-value>)`,gray600:`hsl(var(--neutral-gray600) / <alpha-value>)`,gray700:`hsl(var(--neutral-gray700) / <alpha-value>)`,gray800:`hsl(var(--neutral-gray800) / <alpha-value>)`,gray900:`hsl(var(--neutral-gray900) / <alpha-value>)`,gray950:`hsl(var(--neutral-gray950) / <alpha-value>)`,gray975:`hsl(var(--neutral-gray975) / <alpha-value>)`,gray990:`hsl(var(--neutral-gray990) / <alpha-value>)`},semantic:{success:`hsl(var(--semantic-success) / <alpha-value>)`,"success-dark":`hsl(var(--semantic-success-dark) / <alpha-value>)`,destructive:`hsl(var(--semantic-destructive) / <alpha-value>)`,"destructive-dark":`hsl(var(--semantic-destructive-dark) / <alpha-value>)`}},borderRadius:{lg:`var(--radius)`,md:`calc(var(--radius) - 2px)`,sm:`calc(var(--radius) - 4px)`,xl:`calc(var(--radius) + 4px)`,"2xl":`calc(var(--radius) + 8px)`},boxShadow:{sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,DEFAULT:`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},keyframes:{"accordion-down":{from:{height:`0`},to:{height:`var(--radix-accordion-content-height)`}},"accordion-up":{from:{height:`var(--radix-accordion-content-height)`},to:{height:`0`}}},animation:{"accordion-down":`accordion-down 0.2s ease-out`,"accordion-up":`accordion-up 0.2s ease-out`}}}},p={palette:a,theme:o};function m(){let e=(0,i.useTheme)(),{resolvedTheme:t}=e,n=t===`dark`?o.dark:o.light;return{...e,tokens:n}}var h=e.vr();function g({variant:i=`binary`,onThemeChange:a,customTheme:o,className:s}){let{theme:c,setTheme:l,resolvedTheme:u}=m(),d=o??c,f=(o||u)===`dark`,p=d===`system`,g=e=>{a?a(e):l(e)},_=()=>(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(e.qn,{className:t.t(`h-[1.2rem] w-[1.2rem] transition-all`,!p&&!f?`scale-100 rotate-0`:`scale-0 -rotate-90`)}),(0,h.jsx)(e.Xn,{className:t.t(`absolute h-[1.2rem] w-[1.2rem] transition-all`,!p&&f?`scale-100 rotate-0`:`scale-0 rotate-90`)}),(0,h.jsx)(e.Jn,{className:t.t(`absolute h-[1.2rem] w-[1.2rem] transition-all`,p?`scale-100 rotate-0`:`scale-0 rotate-90`)}),(0,h.jsx)(`span`,{className:`sr-only`,children:`Toggle theme`})]});return i===`ternary`?(0,h.jsxs)(r.DropdownMenu,{children:[(0,h.jsx)(r.DropdownMenuTrigger,{asChild:!0,children:(0,h.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:t.t(`relative h-9 w-9`,s),children:(0,h.jsx)(_,{})})}),(0,h.jsxs)(r.DropdownMenuContent,{align:`end`,children:[(0,h.jsxs)(r.DropdownMenuItem,{onClick:()=>g(`light`),children:[(0,h.jsx)(e.qn,{className:`mr-2 h-4 w-4`}),(0,h.jsx)(`span`,{children:`Light`})]}),(0,h.jsxs)(r.DropdownMenuItem,{onClick:()=>g(`dark`),children:[(0,h.jsx)(e.Xn,{className:`mr-2 h-4 w-4`}),(0,h.jsx)(`span`,{children:`Dark`})]}),(0,h.jsxs)(r.DropdownMenuItem,{onClick:()=>g(`system`),children:[(0,h.jsx)(e.Jn,{className:`mr-2 h-4 w-4`}),(0,h.jsx)(`span`,{children:`System`})]})]})]}):(0,h.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:t.t(`relative h-9 w-9`,s),onClick:()=>g(d===`dark`?`light`:`dark`),"aria-label":`Toggle theme`,children:(0,h.jsx)(_,{})})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=theme-toggle-CbtfA8aG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle-B8UiizQB.js","names":[],"sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../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/preset.ts","../packages/design-tokens/src/index.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","// 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","// Tailwind CSS configuration preset for GV Tech design system.\n// This registers our colors, shadows, border radii, and animations natively.\n\nexport const preset = {\n theme: {\n extend: {\n colors: {\n background: 'hsl(var(--background) / <alpha-value>)',\n foreground: 'hsl(var(--foreground) / <alpha-value>)',\n card: {\n DEFAULT: 'hsl(var(--card) / <alpha-value>)',\n foreground: 'hsl(var(--card-foreground) / <alpha-value>)',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover) / <alpha-value>)',\n foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',\n },\n primary: {\n DEFAULT: 'hsl(var(--primary) / <alpha-value>)',\n foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',\n foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted) / <alpha-value>)',\n foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent) / <alpha-value>)',\n foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',\n foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',\n },\n border: 'hsl(var(--border) / <alpha-value>)',\n input: 'hsl(var(--input) / <alpha-value>)',\n ring: 'hsl(var(--ring) / <alpha-value>)',\n\n // Primitive palette tokens exported dynamically via CSS variable mappings\n brand: {\n blue: 'hsl(var(--brand-blue) / <alpha-value>)',\n green: 'hsl(var(--brand-green) / <alpha-value>)',\n 'floral-white': 'hsl(var(--brand-floral-white) / <alpha-value>)',\n },\n neutral: {\n white: 'hsl(var(--neutral-white) / <alpha-value>)',\n black: 'hsl(var(--neutral-black) / <alpha-value>)',\n gray50: 'hsl(var(--neutral-gray50) / <alpha-value>)',\n gray100: 'hsl(var(--neutral-gray100) / <alpha-value>)',\n gray200: 'hsl(var(--neutral-gray200) / <alpha-value>)',\n gray300: 'hsl(var(--neutral-gray300) / <alpha-value>)',\n gray400: 'hsl(var(--neutral-gray400) / <alpha-value>)',\n gray500: 'hsl(var(--neutral-gray500) / <alpha-value>)',\n gray600: 'hsl(var(--neutral-gray600) / <alpha-value>)',\n gray700: 'hsl(var(--neutral-gray700) / <alpha-value>)',\n gray800: 'hsl(var(--neutral-gray800) / <alpha-value>)',\n gray900: 'hsl(var(--neutral-gray900) / <alpha-value>)',\n gray950: 'hsl(var(--neutral-gray950) / <alpha-value>)',\n gray975: 'hsl(var(--neutral-gray975) / <alpha-value>)',\n gray990: 'hsl(var(--neutral-gray990) / <alpha-value>)',\n },\n semantic: {\n success: 'hsl(var(--semantic-success) / <alpha-value>)',\n 'success-dark': 'hsl(var(--semantic-success-dark) / <alpha-value>)',\n destructive: 'hsl(var(--semantic-destructive) / <alpha-value>)',\n 'destructive-dark': 'hsl(var(--semantic-destructive-dark) / <alpha-value>)',\n },\n },\n borderRadius: {\n lg: 'var(--radius)',\n md: 'calc(var(--radius) - 2px)',\n sm: 'calc(var(--radius) - 4px)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n },\n boxShadow: {\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 },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n },\n },\n },\n};\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\nexport { preset } from './preset';\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"],"mappings":"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"}
1
+ {"version":3,"file":"theme-toggle-CbtfA8aG.js","names":[],"sources":["../packages/design-tokens/src/palette.ts","../packages/design-tokens/src/theme.ts","../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/preset.ts","../packages/design-tokens/src/index.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","// 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","// Tailwind CSS configuration preset for GV Tech design system.\n// This registers our colors, shadows, border radii, and animations natively.\n\nexport const preset = {\n theme: {\n extend: {\n colors: {\n background: 'hsl(var(--background) / <alpha-value>)',\n foreground: 'hsl(var(--foreground) / <alpha-value>)',\n card: {\n DEFAULT: 'hsl(var(--card) / <alpha-value>)',\n foreground: 'hsl(var(--card-foreground) / <alpha-value>)',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover) / <alpha-value>)',\n foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',\n },\n primary: {\n DEFAULT: 'hsl(var(--primary) / <alpha-value>)',\n foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',\n foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted) / <alpha-value>)',\n foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent) / <alpha-value>)',\n foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',\n foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',\n },\n border: 'hsl(var(--border) / <alpha-value>)',\n input: 'hsl(var(--input) / <alpha-value>)',\n ring: 'hsl(var(--ring) / <alpha-value>)',\n\n // Primitive palette tokens exported dynamically via CSS variable mappings\n brand: {\n blue: 'hsl(var(--brand-blue) / <alpha-value>)',\n green: 'hsl(var(--brand-green) / <alpha-value>)',\n 'floral-white': 'hsl(var(--brand-floral-white) / <alpha-value>)',\n },\n neutral: {\n white: 'hsl(var(--neutral-white) / <alpha-value>)',\n black: 'hsl(var(--neutral-black) / <alpha-value>)',\n gray50: 'hsl(var(--neutral-gray50) / <alpha-value>)',\n gray100: 'hsl(var(--neutral-gray100) / <alpha-value>)',\n gray200: 'hsl(var(--neutral-gray200) / <alpha-value>)',\n gray300: 'hsl(var(--neutral-gray300) / <alpha-value>)',\n gray400: 'hsl(var(--neutral-gray400) / <alpha-value>)',\n gray500: 'hsl(var(--neutral-gray500) / <alpha-value>)',\n gray600: 'hsl(var(--neutral-gray600) / <alpha-value>)',\n gray700: 'hsl(var(--neutral-gray700) / <alpha-value>)',\n gray800: 'hsl(var(--neutral-gray800) / <alpha-value>)',\n gray900: 'hsl(var(--neutral-gray900) / <alpha-value>)',\n gray950: 'hsl(var(--neutral-gray950) / <alpha-value>)',\n gray975: 'hsl(var(--neutral-gray975) / <alpha-value>)',\n gray990: 'hsl(var(--neutral-gray990) / <alpha-value>)',\n },\n semantic: {\n success: 'hsl(var(--semantic-success) / <alpha-value>)',\n 'success-dark': 'hsl(var(--semantic-success-dark) / <alpha-value>)',\n destructive: 'hsl(var(--semantic-destructive) / <alpha-value>)',\n 'destructive-dark': 'hsl(var(--semantic-destructive-dark) / <alpha-value>)',\n },\n },\n borderRadius: {\n lg: 'var(--radius)',\n md: 'calc(var(--radius) - 2px)',\n sm: 'calc(var(--radius) - 4px)',\n xl: 'calc(var(--radius) + 4px)',\n '2xl': 'calc(var(--radius) + 8px)',\n },\n boxShadow: {\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 },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n },\n },\n },\n};\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\nexport { preset } from './preset';\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"],"mappings":"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"}
@@ -1 +1 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme-toggle-B8UiizQB.js`);exports.ThemeToggle=e.t;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./theme-toggle-CbtfA8aG.js");exports.ThemeToggle=e.t;
@@ -1,4 +1,4 @@
1
1
  "use client";
2
2
  "use client";
3
- import { t as e } from "./theme-toggle-DoAVRoyO.mjs";
3
+ import { t as e } from "./theme-toggle-B6QS2aTS.mjs";
4
4
  export { e as ThemeToggle };
package/dist/toast.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./rolldown-runtime-CacfPODE.js`),t=require(`./vendor-D3ZzLf8D.js`),n=require(`./utils-CbSX47LV.js`);let r=require(`react`);r=e.r(r);var i=t.vr(),a=t.i,o=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.s,{ref:a,className:n.t(`fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]`,e),...r}));o.displayName=t.s?.displayName||`ToastViewport`;var s=t.Gn(`group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),c=r.forwardRef(({className:e,variant:r,...a},o)=>(0,i.jsx)(t.a,{ref:o,className:n.t(s({variant:r}),e),...a}));c.displayName=t.a?.displayName||`Toast`;var l=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.t,{ref:a,className:n.t(`hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50`,e),...r}));l.displayName=t.t?.displayName||`ToastAction`;var u=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.n,{ref:a,className:n.t(`text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600`,e),"toast-close":``,...r,children:(0,i.jsx)(t.Kn,{className:`h-4 w-4`})}));u.displayName=t.n?.displayName||`ToastClose`;var d=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.o,{ref:a,className:n.t(`text-sm font-semibold [&+div]:text-xs`,e),...r}));d.displayName=t.o?.displayName||`ToastTitle`;var f=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.r,{ref:a,className:n.t(`text-sm opacity-90`,e),...r}));f.displayName=t.r?.displayName||`ToastDescription`,exports.Toast=c,exports.ToastAction=l,exports.ToastClose=u,exports.ToastDescription=f,exports.ToastProvider=a,exports.ToastTitle=d,exports.ToastViewport=o;
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a=t.i,o=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.s,{ref:a,className:n.t(`fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]`,e),...r}));o.displayName=t.s?.displayName||`ToastViewport`;var s=t.Gn(`group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),c=r.forwardRef(({className:e,variant:r,...a},o)=>(0,i.jsx)(t.a,{ref:o,className:n.t(s({variant:r}),e),...a}));c.displayName=t.a?.displayName||`Toast`;var l=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.t,{ref:a,className:n.t(`hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50`,e),...r}));l.displayName=t.t?.displayName||`ToastAction`;var u=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.n,{ref:a,className:n.t(`text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600`,e),"toast-close":``,...r,children:(0,i.jsx)(t.Kn,{className:`h-4 w-4`})}));u.displayName=t.n?.displayName||`ToastClose`;var d=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.o,{ref:a,className:n.t(`text-sm font-semibold [&+div]:text-xs`,e),...r}));d.displayName=t.o?.displayName||`ToastTitle`;var f=r.forwardRef(({className:e,...r},a)=>(0,i.jsx)(t.r,{ref:a,className:n.t(`text-sm opacity-90`,e),...r}));f.displayName=t.r?.displayName||`ToastDescription`,exports.Toast=c,exports.ToastAction=l,exports.ToastClose=u,exports.ToastDescription=f,exports.ToastProvider=a,exports.ToastTitle=d,exports.ToastViewport=o;
2
2
  //# sourceMappingURL=toast.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.cjs","names":[],"sources":["../packages/ui-web/src/toast.tsx"],"sourcesContent":["'use client';\nimport * as ToastPrimitives from '@radix-ui/react-toast';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport?.displayName || 'ToastViewport';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root?.displayName || 'Toast';\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action?.displayName || 'ToastAction';\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close?.displayName || 'ToastClose';\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold [&+div]:text-xs', className)} {...props} />\n));\nToastTitle.displayName = ToastPrimitives.Title?.displayName || 'ToastTitle';\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nToastDescription.displayName = ToastPrimitives.Description?.displayName || 'ToastDescription';\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n type ToastActionElement,\n type ToastProps,\n};\n"],"mappings":"+PAQM,EAAA,EAAA,EAEA,EAAgB,EAAM,YAGzB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,oIACA,EACD,CACD,GAAI,EACJ,CAAA,CACF,CACF,EAAc,YAAA,EAAA,GAAwC,aAAe,gBAErE,IAAM,EAAgB,EAAA,GACpB,4lBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,uCACT,YAAa,kFACd,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CACF,CAEK,EAAQ,EAAM,YAGjB,CAAE,YAAW,UAAS,GAAG,GAAS,KAC5B,EAAA,EAAA,KAAA,EAAA,EAAA,CAA2B,MAAK,UAAW,EAAA,EAAG,EAAc,CAAE,UAAS,CAAC,CAAE,EAAU,CAAE,GAAI,EAAS,CAAA,CAC1G,CACF,EAAM,YAAA,EAAA,GAAoC,aAAe,QAEzD,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,0dACA,EACD,CACD,GAAI,EACJ,CAAA,CACF,CACF,EAAY,YAAA,EAAA,GAAsC,aAAe,cAEjE,IAAM,EAAa,EAAM,YAGtB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,wVACA,EACD,CACD,cAAY,GACZ,GAAI,YAEJ,EAAA,EAAA,KAAC,EAAA,GAAD,CAAG,UAAU,UAAY,CAAA,CACH,CAAA,CACxB,CACF,EAAW,YAAA,EAAA,GAAqC,aAAe,aAE/D,IAAM,EAAa,EAAM,YAGtB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CAA4B,MAAK,UAAW,EAAA,EAAG,wCAAyC,EAAU,CAAE,GAAI,EAAS,CAAA,CACjH,CACF,EAAW,YAAA,EAAA,GAAqC,aAAe,aAE/D,IAAM,EAAmB,EAAM,YAG5B,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CAAkC,MAAK,UAAW,EAAA,EAAG,qBAAsB,EAAU,CAAE,GAAI,EAAS,CAAA,CACpG,CACF,EAAiB,YAAA,EAAA,GAA2C,aAAe"}
1
+ {"version":3,"file":"toast.cjs","names":[],"sources":["../packages/ui-web/src/toast.tsx"],"sourcesContent":["'use client';\nimport * as ToastPrimitives from '@radix-ui/react-toast';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport?.displayName || 'ToastViewport';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root?.displayName || 'Toast';\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action?.displayName || 'ToastAction';\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close?.displayName || 'ToastClose';\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold [&+div]:text-xs', className)} {...props} />\n));\nToastTitle.displayName = ToastPrimitives.Title?.displayName || 'ToastTitle';\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nToastDescription.displayName = ToastPrimitives.Description?.displayName || 'ToastDescription';\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n type ToastActionElement,\n type ToastProps,\n};\n"],"mappings":"+PAQM,EAAA,EAAA,EAEA,EAAgB,EAAM,YAGzB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,oIACA,CACF,EACA,GAAI,CACL,CAAA,CACF,EACD,EAAc,YAAA,EAAA,GAAwC,aAAe,gBAErE,IAAM,EAAgB,EAAA,GACpB,4lBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,uCACT,YAAa,iFACf,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAEM,EAAQ,EAAM,YAGjB,CAAE,YAAW,UAAS,GAAG,GAAS,KAC5B,EAAA,EAAA,KAAA,EAAA,EAAA,CAA2B,MAAK,UAAW,EAAA,EAAG,EAAc,CAAE,SAAQ,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC1G,EACD,EAAM,YAAA,EAAA,GAAoC,aAAe,QAEzD,IAAM,EAAc,EAAM,YAGvB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,0dACA,CACF,EACA,GAAI,CACL,CAAA,CACF,EACD,EAAY,YAAA,EAAA,GAAsC,aAAe,cAEjE,IAAM,EAAa,EAAM,YAGtB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CACO,MACL,UAAW,EAAA,EACT,wVACA,CACF,EACA,cAAY,GACZ,GAAI,YAEJ,EAAA,EAAA,KAAC,EAAA,GAAD,CAAG,UAAU,SAAW,CAAA,CACH,CAAA,CACxB,EACD,EAAW,YAAA,EAAA,GAAqC,aAAe,aAE/D,IAAM,EAAa,EAAM,YAGtB,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CAA4B,MAAK,UAAW,EAAA,EAAG,wCAAyC,CAAS,EAAG,GAAI,CAAQ,CAAA,CACjH,EACD,EAAW,YAAA,EAAA,GAAqC,aAAe,aAE/D,IAAM,EAAmB,EAAM,YAG5B,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,KAAA,EAAA,EAAA,CAAkC,MAAK,UAAW,EAAA,EAAG,qBAAsB,CAAS,EAAG,GAAI,CAAQ,CAAA,CACpG,EACD,EAAiB,YAAA,EAAA,GAA2C,aAAe"}
package/dist/toast.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { Gn as e, Kn as t, a as n, i as r, n as i, o as a, r as o, s, t as c, vr as l } from "./vendor-Cr0eKZrm.mjs";
4
- import { t as u } from "./utils-BtI8Nf6i.mjs";
3
+ import { Gn as e, Kn as t, a as n, i as r, n as i, o as a, r as o, s, t as c, vr as l } from "./vendor-ChPUVHXi.mjs";
4
+ import { t as u } from "./utils-BsD1_fYL.mjs";
5
5
  import * as d from "react";
6
6
  //#region packages/ui-web/src/toast.tsx
7
7
  var f = l(), p = r, m = d.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ (0, f.jsx)(s, {
@@ -1 +1 @@
1
- {"version":3,"file":"toast.mjs","names":[],"sources":["../packages/ui-web/src/toast.tsx"],"sourcesContent":["'use client';\nimport * as ToastPrimitives from '@radix-ui/react-toast';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport?.displayName || 'ToastViewport';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root?.displayName || 'Toast';\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action?.displayName || 'ToastAction';\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close?.displayName || 'ToastClose';\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold [&+div]:text-xs', className)} {...props} />\n));\nToastTitle.displayName = ToastPrimitives.Title?.displayName || 'ToastTitle';\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nToastDescription.displayName = ToastPrimitives.Description?.displayName || 'ToastDescription';\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n type ToastActionElement,\n type ToastProps,\n};\n"],"mappings":";;;;;;aAQM,IAAgB,GAEhB,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,qIACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAc,cAAA,GAAwC,eAAe;AAErE,IAAM,IAAgB,EACpB,6lBACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aAAa;EACd,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF,EAEK,IAAQ,EAAM,YAGjB,EAAE,cAAW,YAAS,GAAG,KAAS,MAC5B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAA2B;CAAK,WAAW,EAAG,EAAc,EAAE,YAAS,CAAC,EAAE,EAAU;CAAE,GAAI;CAAS,CAAA,CAC1G;AACF,EAAM,cAAA,GAAoC,eAAe;AAEzD,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,2dACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAY,cAAA,GAAsC,eAAe;AAEjE,IAAM,IAAa,EAAM,YAGtB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,yVACA,EACD;CACD,eAAY;CACZ,GAAI;WAEJ,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAG,WAAU,WAAY,CAAA;CACH,CAAA,CACxB;AACF,EAAW,cAAA,GAAqC,eAAe;AAE/D,IAAM,IAAa,EAAM,YAGtB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAA4B;CAAK,WAAW,EAAG,yCAAyC,EAAU;CAAE,GAAI;CAAS,CAAA,CACjH;AACF,EAAW,cAAA,GAAqC,eAAe;AAE/D,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAAkC;CAAK,WAAW,EAAG,sBAAsB,EAAU;CAAE,GAAI;CAAS,CAAA,CACpG;AACF,EAAiB,cAAA,GAA2C,eAAe"}
1
+ {"version":3,"file":"toast.mjs","names":[],"sources":["../packages/ui-web/src/toast.tsx"],"sourcesContent":["'use client';\nimport * as ToastPrimitives from '@radix-ui/react-toast';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from './lib/utils';\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport?.displayName || 'ToastViewport';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root?.displayName || 'Toast';\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action?.displayName || 'ToastAction';\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-1 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close?.displayName || 'ToastClose';\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold [&+div]:text-xs', className)} {...props} />\n));\nToastTitle.displayName = ToastPrimitives.Title?.displayName || 'ToastTitle';\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nToastDescription.displayName = ToastPrimitives.Description?.displayName || 'ToastDescription';\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n type ToastActionElement,\n type ToastProps,\n};\n"],"mappings":";;;;;;aAQM,IAAgB,GAEhB,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,qIACA,CACF;CACA,GAAI;AACL,CAAA,CACF;AACD,EAAc,cAAA,GAAwC,eAAe;AAErE,IAAM,IAAgB,EACpB,6lBACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aAAa;CACf,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF,GAEM,IAAQ,EAAM,YAGjB,EAAE,cAAW,YAAS,GAAG,KAAS,MAC5B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAA2B;CAAK,WAAW,EAAG,EAAc,EAAE,WAAQ,CAAC,GAAG,CAAS;CAAG,GAAI;AAAQ,CAAA,CAC1G;AACD,EAAM,cAAA,GAAoC,eAAe;AAEzD,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,2dACA,CACF;CACA,GAAI;AACL,CAAA,CACF;AACD,EAAY,cAAA,GAAsC,eAAe;AAEjE,IAAM,IAAa,EAAM,YAGtB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CACO;CACL,WAAW,EACT,yVACA,CACF;CACA,eAAY;CACZ,GAAI;WAEJ,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAG,WAAU,UAAW,CAAA;AACH,CAAA,CACxB;AACD,EAAW,cAAA,GAAqC,eAAe;AAE/D,IAAM,IAAa,EAAM,YAGtB,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAA4B;CAAK,WAAW,EAAG,yCAAyC,CAAS;CAAG,GAAI;AAAQ,CAAA,CACjH;AACD,EAAW,cAAA,GAAqC,eAAe;AAE/D,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,GAAG,KAAS,MAC1B,iBAAA,GAAA,EAAA,KAAC,GAAD;CAAkC;CAAK,WAAW,EAAG,sBAAsB,CAAS;CAAG,GAAI;AAAQ,CAAA,CACpG;AACD,EAAiB,cAAA,GAA2C,eAAe"}