@tydavidson/design-system 1.1.2 → 1.1.4

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 (324) hide show
  1. package/dist/index.d.mts +925 -0
  2. package/dist/index.d.ts +925 -7
  3. package/dist/index.js +1752 -23
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1643 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/themes/index.d.mts +95 -0
  8. package/dist/themes/index.d.ts +95 -6
  9. package/dist/themes/index.js +218 -17
  10. package/dist/themes/index.js.map +1 -1
  11. package/dist/themes/index.mjs +190 -0
  12. package/dist/themes/index.mjs.map +1 -0
  13. package/package.json +26 -12
  14. package/dist/components/SidebarNav.d.ts +0 -13
  15. package/dist/components/SidebarNav.d.ts.map +0 -1
  16. package/dist/components/SidebarNav.js +0 -63
  17. package/dist/components/SidebarNav.js.map +0 -1
  18. package/dist/components/SidebarNavClient.d.ts +0 -2
  19. package/dist/components/SidebarNavClient.d.ts.map +0 -1
  20. package/dist/components/SidebarNavClient.js +0 -35
  21. package/dist/components/SidebarNavClient.js.map +0 -1
  22. package/dist/components/email/button.d.ts +0 -11
  23. package/dist/components/email/button.d.ts.map +0 -1
  24. package/dist/components/email/button.js +0 -86
  25. package/dist/components/email/button.js.map +0 -1
  26. package/dist/components/email/index.d.ts +0 -7
  27. package/dist/components/email/index.d.ts.map +0 -1
  28. package/dist/components/email/index.js +0 -17
  29. package/dist/components/email/index.js.map +0 -1
  30. package/dist/components/email/layout.d.ts +0 -23
  31. package/dist/components/email/layout.d.ts.map +0 -1
  32. package/dist/components/email/layout.js +0 -93
  33. package/dist/components/email/layout.js.map +0 -1
  34. package/dist/components/email/typography.d.ts +0 -11
  35. package/dist/components/email/typography.d.ts.map +0 -1
  36. package/dist/components/email/typography.js +0 -55
  37. package/dist/components/email/typography.js.map +0 -1
  38. package/dist/components/hooks/use-mobile.d.ts +0 -2
  39. package/dist/components/hooks/use-mobile.d.ts.map +0 -1
  40. package/dist/components/hooks/use-mobile.js +0 -7
  41. package/dist/components/hooks/use-mobile.js.map +0 -1
  42. package/dist/components/typography/heading/heading.d.ts +0 -48
  43. package/dist/components/typography/heading/heading.d.ts.map +0 -1
  44. package/dist/components/typography/heading/heading.js +0 -93
  45. package/dist/components/typography/heading/heading.js.map +0 -1
  46. package/dist/components/typography/heading/heading.stories.d.ts +0 -12
  47. package/dist/components/typography/heading/heading.stories.d.ts.map +0 -1
  48. package/dist/components/typography/heading/heading.stories.js +0 -77
  49. package/dist/components/typography/heading/heading.stories.js.map +0 -1
  50. package/dist/components/typography/heading/index.d.ts +0 -2
  51. package/dist/components/typography/heading/index.d.ts.map +0 -1
  52. package/dist/components/typography/heading/index.js +0 -18
  53. package/dist/components/typography/heading/index.js.map +0 -1
  54. package/dist/components/typography/index.d.ts +0 -5
  55. package/dist/components/typography/index.d.ts.map +0 -1
  56. package/dist/components/typography/index.js +0 -24
  57. package/dist/components/typography/index.js.map +0 -1
  58. package/dist/components/typography/showcase.d.ts +0 -7
  59. package/dist/components/typography/showcase.d.ts.map +0 -1
  60. package/dist/components/typography/showcase.js +0 -15
  61. package/dist/components/typography/showcase.js.map +0 -1
  62. package/dist/components/typography/text/index.d.ts +0 -2
  63. package/dist/components/typography/text/index.d.ts.map +0 -1
  64. package/dist/components/typography/text/index.js +0 -18
  65. package/dist/components/typography/text/index.js.map +0 -1
  66. package/dist/components/typography/text/text.d.ts +0 -43
  67. package/dist/components/typography/text/text.d.ts.map +0 -1
  68. package/dist/components/typography/text/text.js +0 -74
  69. package/dist/components/typography/text/text.js.map +0 -1
  70. package/dist/components/typography/text/text.stories.d.ts +0 -13
  71. package/dist/components/typography/text/text.stories.d.ts.map +0 -1
  72. package/dist/components/typography/text/text.stories.js +0 -75
  73. package/dist/components/typography/text/text.stories.js.map +0 -1
  74. package/dist/components/ui/accordion.d.ts +0 -8
  75. package/dist/components/ui/accordion.d.ts.map +0 -1
  76. package/dist/components/ui/accordion.js +0 -53
  77. package/dist/components/ui/accordion.js.map +0 -1
  78. package/dist/components/ui/alert.d.ts +0 -9
  79. package/dist/components/ui/alert.d.ts.map +0 -1
  80. package/dist/components/ui/alert.js +0 -64
  81. package/dist/components/ui/alert.js.map +0 -1
  82. package/dist/components/ui/aspect-ratio.d.ts +0 -5
  83. package/dist/components/ui/aspect-ratio.d.ts.map +0 -1
  84. package/dist/components/ui/aspect-ratio.js +0 -40
  85. package/dist/components/ui/aspect-ratio.js.map +0 -1
  86. package/dist/components/ui/avatar.d.ts +0 -7
  87. package/dist/components/ui/avatar.d.ts.map +0 -1
  88. package/dist/components/ui/avatar.js +0 -50
  89. package/dist/components/ui/avatar.js.map +0 -1
  90. package/dist/components/ui/badge.d.ts +0 -15
  91. package/dist/components/ui/badge.d.ts.map +0 -1
  92. package/dist/components/ui/badge.js +0 -82
  93. package/dist/components/ui/badge.js.map +0 -1
  94. package/dist/components/ui/breadcrumb.d.ts +0 -11
  95. package/dist/components/ui/breadcrumb.d.ts.map +0 -1
  96. package/dist/components/ui/breadcrumb.js +0 -63
  97. package/dist/components/ui/breadcrumb.js.map +0 -1
  98. package/dist/components/ui/button.d.ts +0 -41
  99. package/dist/components/ui/button.d.ts.map +0 -1
  100. package/dist/components/ui/button.js +0 -109
  101. package/dist/components/ui/button.js.map +0 -1
  102. package/dist/components/ui/calendar.d.ts +0 -9
  103. package/dist/components/ui/calendar.d.ts.map +0 -1
  104. package/dist/components/ui/calendar.js +0 -47
  105. package/dist/components/ui/calendar.js.map +0 -1
  106. package/dist/components/ui/card/card.d.ts +0 -35
  107. package/dist/components/ui/card/card.d.ts.map +0 -1
  108. package/dist/components/ui/card/card.js +0 -62
  109. package/dist/components/ui/card/card.js.map +0 -1
  110. package/dist/components/ui/card/index.d.ts +0 -2
  111. package/dist/components/ui/card/index.d.ts.map +0 -1
  112. package/dist/components/ui/card/index.js +0 -18
  113. package/dist/components/ui/card/index.js.map +0 -1
  114. package/dist/components/ui/card.d.ts +0 -12
  115. package/dist/components/ui/card.d.ts.map +0 -1
  116. package/dist/components/ui/card.js +0 -65
  117. package/dist/components/ui/card.js.map +0 -1
  118. package/dist/components/ui/checkbox.d.ts +0 -5
  119. package/dist/components/ui/checkbox.d.ts.map +0 -1
  120. package/dist/components/ui/checkbox.js +0 -45
  121. package/dist/components/ui/checkbox.js.map +0 -1
  122. package/dist/components/ui/collapsible.d.ts +0 -7
  123. package/dist/components/ui/collapsible.d.ts.map +0 -1
  124. package/dist/components/ui/collapsible.js +0 -44
  125. package/dist/components/ui/collapsible.js.map +0 -1
  126. package/dist/components/ui/command.d.ts +0 -83
  127. package/dist/components/ui/command.d.ts.map +0 -1
  128. package/dist/components/ui/command.js +0 -73
  129. package/dist/components/ui/command.js.map +0 -1
  130. package/dist/components/ui/context-menu.d.ts +0 -31
  131. package/dist/components/ui/context-menu.d.ts.map +0 -1
  132. package/dist/components/ui/context-menu.js +0 -92
  133. package/dist/components/ui/context-menu.js.map +0 -1
  134. package/dist/components/ui/dialog.d.ts +0 -20
  135. package/dist/components/ui/dialog.d.ts.map +0 -1
  136. package/dist/components/ui/dialog.js +0 -68
  137. package/dist/components/ui/dialog.js.map +0 -1
  138. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +0 -32
  139. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  140. package/dist/components/ui/dropdown-menu/dropdown-menu.js +0 -108
  141. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +0 -1
  142. package/dist/components/ui/dropdown-menu/index.d.ts +0 -2
  143. package/dist/components/ui/dropdown-menu/index.d.ts.map +0 -1
  144. package/dist/components/ui/dropdown-menu/index.js +0 -18
  145. package/dist/components/ui/dropdown-menu/index.js.map +0 -1
  146. package/dist/components/ui/header.d.ts +0 -3
  147. package/dist/components/ui/header.d.ts.map +0 -1
  148. package/dist/components/ui/header.js +0 -16
  149. package/dist/components/ui/header.js.map +0 -1
  150. package/dist/components/ui/hover-card.d.ts +0 -7
  151. package/dist/components/ui/hover-card.d.ts.map +0 -1
  152. package/dist/components/ui/hover-card.js +0 -48
  153. package/dist/components/ui/hover-card.js.map +0 -1
  154. package/dist/components/ui/index.d.ts +0 -15
  155. package/dist/components/ui/index.d.ts.map +0 -1
  156. package/dist/components/ui/index.js +0 -43
  157. package/dist/components/ui/index.js.map +0 -1
  158. package/dist/components/ui/input.d.ts +0 -6
  159. package/dist/components/ui/input.d.ts.map +0 -1
  160. package/dist/components/ui/input.js +0 -45
  161. package/dist/components/ui/input.js.map +0 -1
  162. package/dist/components/ui/label.d.ts +0 -6
  163. package/dist/components/ui/label.d.ts.map +0 -1
  164. package/dist/components/ui/label.js +0 -46
  165. package/dist/components/ui/label.js.map +0 -1
  166. package/dist/components/ui/nav.d.ts +0 -9
  167. package/dist/components/ui/nav.d.ts.map +0 -1
  168. package/dist/components/ui/nav.js +0 -25
  169. package/dist/components/ui/nav.js.map +0 -1
  170. package/dist/components/ui/org-switcher.d.ts +0 -13
  171. package/dist/components/ui/org-switcher.d.ts.map +0 -1
  172. package/dist/components/ui/org-switcher.js +0 -52
  173. package/dist/components/ui/org-switcher.js.map +0 -1
  174. package/dist/components/ui/popover.d.ts +0 -8
  175. package/dist/components/ui/popover.d.ts.map +0 -1
  176. package/dist/components/ui/popover.js +0 -50
  177. package/dist/components/ui/popover.js.map +0 -1
  178. package/dist/components/ui/progress.d.ts +0 -5
  179. package/dist/components/ui/progress.d.ts.map +0 -1
  180. package/dist/components/ui/progress.js +0 -44
  181. package/dist/components/ui/progress.js.map +0 -1
  182. package/dist/components/ui/radio-group.d.ts +0 -6
  183. package/dist/components/ui/radio-group.d.ts.map +0 -1
  184. package/dist/components/ui/radio-group.js +0 -52
  185. package/dist/components/ui/radio-group.js.map +0 -1
  186. package/dist/components/ui/select.d.ts +0 -14
  187. package/dist/components/ui/select.d.ts.map +0 -1
  188. package/dist/components/ui/select.js +0 -72
  189. package/dist/components/ui/select.js.map +0 -1
  190. package/dist/components/ui/separator.d.ts +0 -5
  191. package/dist/components/ui/separator.d.ts.map +0 -1
  192. package/dist/components/ui/separator.js +0 -44
  193. package/dist/components/ui/separator.js.map +0 -1
  194. package/dist/components/ui/sheet.d.ts +0 -22
  195. package/dist/components/ui/sheet.d.ts.map +0 -1
  196. package/dist/components/ui/sheet.js +0 -76
  197. package/dist/components/ui/sheet.js.map +0 -1
  198. package/dist/components/ui/sidebar.d.ts +0 -65
  199. package/dist/components/ui/sidebar.d.ts.map +0 -1
  200. package/dist/components/ui/sidebar.js +0 -269
  201. package/dist/components/ui/sidebar.js.map +0 -1
  202. package/dist/components/ui/skeleton.d.ts +0 -3
  203. package/dist/components/ui/skeleton.d.ts.map +0 -1
  204. package/dist/components/ui/skeleton.js +0 -9
  205. package/dist/components/ui/skeleton.js.map +0 -1
  206. package/dist/components/ui/slider.d.ts +0 -5
  207. package/dist/components/ui/slider.d.ts.map +0 -1
  208. package/dist/components/ui/slider.js +0 -44
  209. package/dist/components/ui/slider.js.map +0 -1
  210. package/dist/components/ui/switch.d.ts +0 -5
  211. package/dist/components/ui/switch.d.ts.map +0 -1
  212. package/dist/components/ui/switch.js +0 -44
  213. package/dist/components/ui/switch.js.map +0 -1
  214. package/dist/components/ui/tabs.d.ts +0 -8
  215. package/dist/components/ui/tabs.d.ts.map +0 -1
  216. package/dist/components/ui/tabs.js +0 -52
  217. package/dist/components/ui/tabs.js.map +0 -1
  218. package/dist/components/ui/textarea.d.ts +0 -6
  219. package/dist/components/ui/textarea.d.ts.map +0 -1
  220. package/dist/components/ui/textarea.js +0 -45
  221. package/dist/components/ui/textarea.js.map +0 -1
  222. package/dist/components/ui/theme-toggle/index.d.ts +0 -2
  223. package/dist/components/ui/theme-toggle/index.d.ts.map +0 -1
  224. package/dist/components/ui/theme-toggle/index.js +0 -18
  225. package/dist/components/ui/theme-toggle/index.js.map +0 -1
  226. package/dist/components/ui/theme-toggle/theme-toggle.d.ts +0 -21
  227. package/dist/components/ui/theme-toggle/theme-toggle.d.ts.map +0 -1
  228. package/dist/components/ui/theme-toggle/theme-toggle.js +0 -52
  229. package/dist/components/ui/theme-toggle/theme-toggle.js.map +0 -1
  230. package/dist/components/ui/toast.d.ts +0 -5
  231. package/dist/components/ui/toast.d.ts.map +0 -1
  232. package/dist/components/ui/toast.js +0 -17
  233. package/dist/components/ui/toast.js.map +0 -1
  234. package/dist/components/ui/toggle-group.d.ts +0 -6
  235. package/dist/components/ui/toggle-group.d.ts.map +0 -1
  236. package/dist/components/ui/toggle-group.js +0 -47
  237. package/dist/components/ui/toggle-group.js.map +0 -1
  238. package/dist/components/ui/toggle.d.ts +0 -5
  239. package/dist/components/ui/toggle.d.ts.map +0 -1
  240. package/dist/components/ui/toggle.js +0 -44
  241. package/dist/components/ui/toggle.js.map +0 -1
  242. package/dist/components/ui/tooltip.d.ts +0 -8
  243. package/dist/components/ui/tooltip.d.ts.map +0 -1
  244. package/dist/components/ui/tooltip.js +0 -50
  245. package/dist/components/ui/tooltip.js.map +0 -1
  246. package/dist/components/ui/use-toast.d.ts +0 -3
  247. package/dist/components/ui/use-toast.d.ts.map +0 -1
  248. package/dist/components/ui/use-toast.js +0 -7
  249. package/dist/components/ui/use-toast.js.map +0 -1
  250. package/dist/email/button.d.ts +0 -11
  251. package/dist/email/button.d.ts.map +0 -1
  252. package/dist/email/button.js +0 -86
  253. package/dist/email/button.js.map +0 -1
  254. package/dist/email/index.d.ts +0 -7
  255. package/dist/email/index.d.ts.map +0 -1
  256. package/dist/email/index.js +0 -17
  257. package/dist/email/index.js.map +0 -1
  258. package/dist/email/layout.d.ts +0 -23
  259. package/dist/email/layout.d.ts.map +0 -1
  260. package/dist/email/layout.js +0 -93
  261. package/dist/email/layout.js.map +0 -1
  262. package/dist/email/typography.d.ts +0 -11
  263. package/dist/email/typography.d.ts.map +0 -1
  264. package/dist/email/typography.js +0 -55
  265. package/dist/email/typography.js.map +0 -1
  266. package/dist/hooks/use-media-query.d.ts +0 -2
  267. package/dist/hooks/use-media-query.d.ts.map +0 -1
  268. package/dist/hooks/use-media-query.js +0 -20
  269. package/dist/hooks/use-media-query.js.map +0 -1
  270. package/dist/index.d.ts.map +0 -1
  271. package/dist/lib/theme-utils.d.ts +0 -42
  272. package/dist/lib/theme-utils.d.ts.map +0 -1
  273. package/dist/lib/theme-utils.js +0 -85
  274. package/dist/lib/theme-utils.js.map +0 -1
  275. package/dist/lib/types.d.ts +0 -18
  276. package/dist/lib/types.d.ts.map +0 -1
  277. package/dist/lib/types.js +0 -6
  278. package/dist/lib/types.js.map +0 -1
  279. package/dist/lib/utils.d.ts +0 -34
  280. package/dist/lib/utils.d.ts.map +0 -1
  281. package/dist/lib/utils.js +0 -52
  282. package/dist/lib/utils.js.map +0 -1
  283. package/dist/styles/constants/button-colors.d.ts +0 -59
  284. package/dist/styles/constants/button-colors.d.ts.map +0 -1
  285. package/dist/styles/constants/button-colors.js +0 -61
  286. package/dist/styles/constants/button-colors.js.map +0 -1
  287. package/dist/themes/catalog.d.ts +0 -2
  288. package/dist/themes/catalog.d.ts.map +0 -1
  289. package/dist/themes/catalog.js +0 -16
  290. package/dist/themes/catalog.js.map +0 -1
  291. package/dist/themes/index.d.ts.map +0 -1
  292. package/dist/themes/theme-context.d.ts +0 -30
  293. package/dist/themes/theme-context.d.ts.map +0 -1
  294. package/dist/themes/theme-context.js +0 -43
  295. package/dist/themes/theme-context.js.map +0 -1
  296. package/dist/themes/theme-provider.d.ts +0 -9
  297. package/dist/themes/theme-provider.d.ts.map +0 -1
  298. package/dist/themes/theme-provider.js +0 -16
  299. package/dist/themes/theme-provider.js.map +0 -1
  300. package/dist/tokens/colors.d.ts +0 -135
  301. package/dist/tokens/colors.d.ts.map +0 -1
  302. package/dist/tokens/colors.js +0 -140
  303. package/dist/tokens/colors.js.map +0 -1
  304. package/dist/tokens/index.d.ts +0 -256
  305. package/dist/tokens/index.d.ts.map +0 -1
  306. package/dist/tokens/index.js +0 -39
  307. package/dist/tokens/index.js.map +0 -1
  308. package/dist/tokens/radius.d.ts +0 -19
  309. package/dist/tokens/radius.d.ts.map +0 -1
  310. package/dist/tokens/radius.js +0 -27
  311. package/dist/tokens/radius.js.map +0 -1
  312. package/dist/tokens/shadows.d.ts +0 -21
  313. package/dist/tokens/shadows.d.ts.map +0 -1
  314. package/dist/tokens/shadows.js +0 -26
  315. package/dist/tokens/shadows.js.map +0 -1
  316. package/dist/tokens/spacing.d.ts +0 -26
  317. package/dist/tokens/spacing.d.ts.map +0 -1
  318. package/dist/tokens/spacing.js +0 -36
  319. package/dist/tokens/spacing.js.map +0 -1
  320. package/dist/tokens/typography.d.ts +0 -75
  321. package/dist/tokens/typography.d.ts.map +0 -1
  322. package/dist/tokens/typography.js +0 -55
  323. package/dist/tokens/typography.js.map +0 -1
  324. package/dist/tsconfig.build.tsbuildinfo +0 -1
package/dist/index.js CHANGED
@@ -1,24 +1,1753 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- // Main design system exports
18
- __exportStar(require("./components/ui"), exports);
19
- __exportStar(require("./components/email"), exports);
20
- __exportStar(require("./components/typography"), exports);
21
- __exportStar(require("./lib/utils"), exports);
22
- __exportStar(require("./tokens"), exports);
23
- __exportStar(require("./themes"), exports);
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var reactSlot = require('@radix-ui/react-slot');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
10
+ var iconsReact = require('@tabler/icons-react');
11
+ var TogglePrimitive = require('@radix-ui/react-toggle');
12
+ var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
13
+ var SliderPrimitive = require('@radix-ui/react-slider');
14
+ var PopoverPrimitive = require('@radix-ui/react-popover');
15
+ var HoverCardPrimitive = require('@radix-ui/react-hover-card');
16
+ var SheetPrimitive = require('@radix-ui/react-dialog');
17
+ var cmdk = require('cmdk');
18
+ var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
19
+ var ContextMenuPrimitive = require('@radix-ui/react-context-menu');
20
+ var nextThemes = require('next-themes');
21
+
22
+ function _interopNamespace(e) {
23
+ if (e && e.__esModule) return e;
24
+ var n = Object.create(null);
25
+ if (e) {
26
+ Object.keys(e).forEach(function (k) {
27
+ if (k !== 'default') {
28
+ var d = Object.getOwnPropertyDescriptor(e, k);
29
+ Object.defineProperty(n, k, d.get ? d : {
30
+ enumerable: true,
31
+ get: function () { return e[k]; }
32
+ });
33
+ }
34
+ });
35
+ }
36
+ n.default = e;
37
+ return Object.freeze(n);
38
+ }
39
+
40
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
41
+ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
42
+ var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
43
+ var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
44
+ var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
45
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
46
+ var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrimitive);
47
+ var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
48
+ var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
49
+ var ContextMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(ContextMenuPrimitive);
50
+
51
+ // src/components/ui/button.tsx
52
+ function cn(...inputs) {
53
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
54
+ }
55
+ function generateId(prefix = "id") {
56
+ const randomId = Math.random().toString(36).substring(2, 9);
57
+ return `${prefix}-${randomId}`;
58
+ }
59
+ function isNotNullOrUndefined(value) {
60
+ return value !== null && value !== void 0;
61
+ }
62
+ function filterDOMProps(props, propNames) {
63
+ const result = { ...props };
64
+ propNames.forEach((name) => delete result[name]);
65
+ return result;
66
+ }
67
+ var buttonVariants = classVarianceAuthority.cva(
68
+ "float-button inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[4px] text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
69
+ {
70
+ variants: {
71
+ variant: {
72
+ primary: "bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]",
73
+ secondary: "bg-[var(--button-bg-secondary)] text-[var(--button-text-secondary)] hover:bg-[var(--button-bg-secondary-hover)] hover:text-[var(--button-text-secondary-hover)] border-[var(--button-border-secondary)] hover:border-[var(--button-border-secondary-hover)]",
74
+ ghost: "text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]",
75
+ outline: "border text-[var(--button-text-outline)] hover:bg-[var(--button-bg-outline-hover)] hover:text-[var(--button-text-outline-hover)] border-[var(--button-border-outline)] hover:border-[var(--button-border-outline-hover)]",
76
+ link: "text-[var(--button-text-link)] hover:text-[var(--button-text-link-hover)] bg-transparent border-transparent",
77
+ destructive: "bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]",
78
+ // Backward compatibility
79
+ default: "bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]",
80
+ tertiary: "text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]",
81
+ primaryError: "bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]"
82
+ },
83
+ size: {
84
+ sm: "h-6 px-2 text-xs float-button-sm",
85
+ md: "h-8 px-3 text-sm float-button-md",
86
+ lg: "h-10 px-5 text-base float-button-lg",
87
+ iconSm: "h-6 w-6 p-0 float-button-icon-sm",
88
+ iconMd: "h-8 w-8 p-0 float-button-icon-md",
89
+ iconLg: "h-10 w-10 p-0 float-button-icon-lg",
90
+ // For backward compatibility
91
+ icon: "h-8 w-8 p-0 float-button-icon-md"
92
+ // Map "icon" to be equivalent to iconMd
93
+ }
94
+ },
95
+ defaultVariants: {
96
+ variant: "primary",
97
+ size: "md"
98
+ }
99
+ }
100
+ );
101
+ var Button = React2__namespace.forwardRef(
102
+ ({
103
+ className,
104
+ variant,
105
+ size = "md",
106
+ asChild = false,
107
+ leftIcon,
108
+ rightIcon,
109
+ isLoading = false,
110
+ color = "brand",
111
+ dsVariant,
112
+ iconOnly = false,
113
+ children,
114
+ ...props
115
+ }, ref) => {
116
+ let resolvedVariant = dsVariant || variant;
117
+ if (resolvedVariant === "default") resolvedVariant = "primary";
118
+ if (resolvedVariant === "tertiary") resolvedVariant = "ghost";
119
+ if (resolvedVariant === "primaryError") resolvedVariant = "destructive";
120
+ const isDisabled = props.disabled || isLoading;
121
+ let sizeVariant = size;
122
+ if (iconOnly) {
123
+ if (typeof size === "string" && !size.startsWith("icon")) {
124
+ if (size === "sm") sizeVariant = "iconSm";
125
+ else if (size === "lg") sizeVariant = "iconLg";
126
+ else sizeVariant = "iconMd";
127
+ }
128
+ }
129
+ const classes = cn(
130
+ buttonVariants({
131
+ variant: resolvedVariant,
132
+ size: sizeVariant,
133
+ className
134
+ })
135
+ );
136
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
137
+ leftIcon && !asChild && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center justify-center", children: leftIcon }),
138
+ isLoading && !asChild ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
139
+ /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "animate-spin -ml-1 mr-2", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1" }),
141
+ /* @__PURE__ */ jsxRuntime.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })
142
+ ] }),
143
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Loading..." })
144
+ ] }) : children,
145
+ rightIcon && !asChild && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center justify-center", children: rightIcon })
146
+ ] });
147
+ if (asChild) {
148
+ return /* @__PURE__ */ jsxRuntime.jsx(
149
+ reactSlot.Slot,
150
+ {
151
+ className: classes,
152
+ ref,
153
+ ...props,
154
+ children
155
+ }
156
+ );
157
+ }
158
+ return /* @__PURE__ */ jsxRuntime.jsx(
159
+ "button",
160
+ {
161
+ className: classes,
162
+ disabled: isDisabled,
163
+ ref,
164
+ ...props,
165
+ children: content
166
+ }
167
+ );
168
+ }
169
+ );
170
+ Button.displayName = "Button";
171
+ var DropdownMenuRoot = DropdownMenuPrimitive__namespace.Root;
172
+ var DropdownMenuTrigger = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
173
+ DropdownMenuPrimitive__namespace.Trigger,
174
+ {
175
+ ref,
176
+ className: cn("outline-none select-none", className),
177
+ ...props,
178
+ children
179
+ }
180
+ ));
181
+ DropdownMenuTrigger.displayName = DropdownMenuPrimitive__namespace.Trigger.displayName;
182
+ var DropdownMenuContent = React2__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => {
183
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
184
+ DropdownMenuPrimitive__namespace.Content,
185
+ {
186
+ ref,
187
+ sideOffset,
188
+ className: cn(
189
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border text-sm shadow-md animate-in fade-in-80 px-1",
190
+ "bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]",
191
+ "shadow-[var(--dropdown-shadow)]",
192
+ className
193
+ ),
194
+ ...props
195
+ }
196
+ ) });
197
+ });
198
+ DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
199
+ var DropdownMenuItem = React2__namespace.forwardRef(({ className, color, leftIcon, rightIcon, children, inset, ...props }, ref) => {
200
+ const baseClasses = cn(
201
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
202
+ "text-[var(--dropdown-item-text)]",
203
+ "focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]",
204
+ "hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
205
+ inset && "pl-8"
206
+ );
207
+ const colorVariantClasses = {
208
+ brand: "focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]",
209
+ error: "focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]",
210
+ warning: "focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]",
211
+ success: "focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]"
212
+ };
213
+ return /* @__PURE__ */ jsxRuntime.jsxs(
214
+ DropdownMenuPrimitive__namespace.Item,
215
+ {
216
+ ref,
217
+ className: cn(
218
+ baseClasses,
219
+ color && colorVariantClasses[color],
220
+ className
221
+ ),
222
+ ...props,
223
+ children: [
224
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]", { "ml-auto": !children && rightIcon }), children: leftIcon }),
225
+ children,
226
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current", children: rightIcon })
227
+ ]
228
+ }
229
+ );
230
+ });
231
+ DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
232
+ var DropdownMenuLabel = React2__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
233
+ DropdownMenuPrimitive__namespace.Label,
234
+ {
235
+ ref,
236
+ className: cn(
237
+ "py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1",
238
+ inset ? "pl-8" : "pl-2",
239
+ className
240
+ ),
241
+ ...props
242
+ }
243
+ ));
244
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
245
+ var DropdownMenuCheckboxItem = React2__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
246
+ DropdownMenuPrimitive__namespace.CheckboxItem,
247
+ {
248
+ ref,
249
+ className: cn(
250
+ "relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
251
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
252
+ className
253
+ ),
254
+ checked,
255
+ ...props,
256
+ children: [
257
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconCheck, { className: "h-4 w-4 text-[var(--text-tertiary)]", strokeWidth: 2 }) }) }),
258
+ children
259
+ ]
260
+ }
261
+ ));
262
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
263
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
264
+ var DropdownMenuRadioItem = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
265
+ DropdownMenuPrimitive__namespace.RadioItem,
266
+ {
267
+ ref,
268
+ className: cn(
269
+ "relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
270
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
271
+ className
272
+ ),
273
+ ...props,
274
+ children: [
275
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconPointFilled, { className: "h-3 w-3 fill-current text-[var(--text-tertiary)]" }) }) }),
276
+ children
277
+ ]
278
+ }
279
+ ));
280
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
281
+ var DropdownMenuSeparator = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
282
+ DropdownMenuPrimitive__namespace.Separator,
283
+ {
284
+ ref,
285
+ className: cn("-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]", className),
286
+ ...props
287
+ }
288
+ ));
289
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
290
+ var DropdownMenuShortcut = ({
291
+ className,
292
+ ...props
293
+ }) => {
294
+ return /* @__PURE__ */ jsxRuntime.jsx(
295
+ "span",
296
+ {
297
+ className: cn("ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]", className),
298
+ ...props
299
+ }
300
+ );
301
+ };
302
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
303
+ var DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
304
+ var DropdownMenuSubTrigger = React2__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
305
+ DropdownMenuPrimitive__namespace.SubTrigger,
306
+ {
307
+ ref,
308
+ className: cn(
309
+ "flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
310
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
311
+ inset && "pl-8",
312
+ className
313
+ ),
314
+ ...props,
315
+ children: [
316
+ children,
317
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronRight, { className: "ml-auto h-4 w-4 text-[var(--text-tertiary)]" })
318
+ ]
319
+ }
320
+ ));
321
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
322
+ var DropdownMenuSubContent = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
323
+ DropdownMenuPrimitive__namespace.SubContent,
324
+ {
325
+ ref,
326
+ className: cn(
327
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2",
328
+ "bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]",
329
+ className
330
+ ),
331
+ ...props
332
+ }
333
+ ));
334
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
335
+ var DropdownMenu = {
336
+ Root: DropdownMenuRoot,
337
+ Trigger: DropdownMenuTrigger,
338
+ Content: DropdownMenuContent,
339
+ Item: DropdownMenuItem,
340
+ CheckboxItem: DropdownMenuCheckboxItem,
341
+ RadioGroup: DropdownMenuRadioGroup,
342
+ RadioItem: DropdownMenuRadioItem,
343
+ Label: DropdownMenuLabel,
344
+ Separator: DropdownMenuSeparator,
345
+ Shortcut: DropdownMenuShortcut,
346
+ Group: DropdownMenuPrimitive__namespace.Group,
347
+ Portal: DropdownMenuPrimitive__namespace.Portal,
348
+ Sub: DropdownMenuSub,
349
+ SubContent: DropdownMenuSubContent,
350
+ SubTrigger: DropdownMenuSubTrigger
351
+ };
352
+ var Heading = React2__namespace.forwardRef(
353
+ ({
354
+ level = 1,
355
+ size,
356
+ weight = "bold",
357
+ italic = false,
358
+ underline = false,
359
+ color = "default",
360
+ className = "",
361
+ as,
362
+ children,
363
+ ...props
364
+ }, ref) => {
365
+ const defaultTag = `h${level}`;
366
+ const Component = as || defaultTag;
367
+ const defaultSizes = {
368
+ 1: "md",
369
+ 2: "sm",
370
+ 3: "xs",
371
+ 4: "text-xl",
372
+ 5: "text-lg",
373
+ 6: "text-md"
374
+ };
375
+ const finalSize = size || defaultSizes[level];
376
+ const sizeClasses = {
377
+ "2xl": "text-5xl leading-tight tracking-tight",
378
+ "xl": "text-4xl leading-tight tracking-tight",
379
+ "lg": "text-3xl leading-tight tracking-tight",
380
+ "md": "text-2xl leading-tight tracking-tight",
381
+ "sm": "text-xl leading-tight tracking-tight",
382
+ "xs": "text-lg leading-tight tracking-tight",
383
+ "text-xl": "text-xl leading-tight",
384
+ "text-lg": "text-lg leading-tight",
385
+ "text-md": "text-base leading-tight"
386
+ };
387
+ const weightClasses = {
388
+ regular: "font-normal",
389
+ medium: "font-medium",
390
+ semibold: "font-semibold",
391
+ bold: "font-bold"
392
+ };
393
+ const colorClasses = {
394
+ default: "text-foreground",
395
+ muted: "text-muted-foreground",
396
+ brand: "text-brand-700 dark:text-brand-400",
397
+ error: "text-error-700 dark:text-error-400",
398
+ warning: "text-warning-700 dark:text-warning-400",
399
+ success: "text-success-700 dark:text-success-400"
400
+ };
401
+ return /* @__PURE__ */ jsxRuntime.jsx(
402
+ Component,
403
+ {
404
+ ref,
405
+ className: cn(
406
+ sizeClasses[finalSize],
407
+ weightClasses[weight],
408
+ colorClasses[color],
409
+ italic && "italic",
410
+ underline && "underline",
411
+ className
412
+ ),
413
+ ...props,
414
+ children
415
+ }
416
+ );
417
+ }
418
+ );
419
+ Heading.displayName = "Heading";
420
+ var Text = React2__namespace.forwardRef(
421
+ ({
422
+ size = "md",
423
+ weight = "regular",
424
+ italic = false,
425
+ underline = false,
426
+ color = "default",
427
+ className = "",
428
+ as: Component = "p",
429
+ children,
430
+ ...props
431
+ }, ref) => {
432
+ const sizeClasses = {
433
+ xl: "text-xl leading-relaxed",
434
+ lg: "text-lg leading-relaxed",
435
+ md: "text-base leading-relaxed",
436
+ sm: "text-sm leading-relaxed",
437
+ xs: "text-xs leading-relaxed"
438
+ };
439
+ const weightClasses = {
440
+ regular: "font-normal",
441
+ medium: "font-medium",
442
+ semibold: "font-semibold",
443
+ bold: "font-bold"
444
+ };
445
+ const colorClasses = {
446
+ default: "text-foreground",
447
+ muted: "text-muted-foreground",
448
+ brand: "text-brand-700 dark:text-brand-400",
449
+ error: "text-error-700 dark:text-error-400",
450
+ warning: "text-warning-700 dark:text-warning-400",
451
+ success: "text-success-700 dark:text-success-400"
452
+ };
453
+ return /* @__PURE__ */ jsxRuntime.jsx(
454
+ Component,
455
+ {
456
+ ref,
457
+ className: cn(
458
+ sizeClasses[size],
459
+ weightClasses[weight],
460
+ colorClasses[color],
461
+ italic && "italic",
462
+ underline && "underline",
463
+ className
464
+ ),
465
+ ...props,
466
+ children
467
+ }
468
+ );
469
+ }
470
+ );
471
+ Text.displayName = "Text";
472
+ var Toggle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
473
+ TogglePrimitive__namespace.Root,
474
+ {
475
+ ref,
476
+ className: cn(
477
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]",
478
+ className
479
+ ),
480
+ ...props
481
+ }
482
+ ));
483
+ Toggle.displayName = TogglePrimitive__namespace.Root.displayName;
484
+ var ToggleGroup = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
485
+ ToggleGroupPrimitive__namespace.Root,
486
+ {
487
+ ref,
488
+ className: cn("flex items-center gap-1", className),
489
+ ...props,
490
+ children
491
+ }
492
+ ));
493
+ ToggleGroup.displayName = ToggleGroupPrimitive__namespace.Root.displayName;
494
+ var ToggleGroupItem = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
495
+ ToggleGroupPrimitive__namespace.Item,
496
+ {
497
+ ref,
498
+ className: cn(
499
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]",
500
+ className
501
+ ),
502
+ ...props
503
+ }
504
+ ));
505
+ ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
506
+ var Slider = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
507
+ SliderPrimitive__namespace.Root,
508
+ {
509
+ ref,
510
+ className: cn(
511
+ "relative flex w-full touch-none select-none items-center",
512
+ className
513
+ ),
514
+ ...props,
515
+ children: [
516
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: "absolute h-full bg-primary" }) }),
517
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
518
+ ]
519
+ }
520
+ ));
521
+ Slider.displayName = SliderPrimitive__namespace.Root.displayName;
522
+ var Popover = PopoverPrimitive__namespace.Root;
523
+ var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
524
+ var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
525
+ var PopoverContent = React2__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
526
+ PopoverPrimitive__namespace.Content,
527
+ {
528
+ ref,
529
+ align,
530
+ sideOffset,
531
+ className: cn(
532
+ "z-50 w-72 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
533
+ className
534
+ ),
535
+ ...props
536
+ }
537
+ ) }));
538
+ PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
539
+ var HoverCard = HoverCardPrimitive__namespace.Root;
540
+ var HoverCardTrigger = HoverCardPrimitive__namespace.Trigger;
541
+ var HoverCardContent = React2__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
542
+ HoverCardPrimitive__namespace.Content,
543
+ {
544
+ ref,
545
+ align,
546
+ sideOffset,
547
+ className: cn(
548
+ "z-50 w-64 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
549
+ className
550
+ ),
551
+ ...props
552
+ }
553
+ ));
554
+ HoverCardContent.displayName = HoverCardPrimitive__namespace.Content.displayName;
555
+ var Sheet = SheetPrimitive__namespace.Root;
556
+ var SheetTrigger = SheetPrimitive__namespace.Trigger;
557
+ var SheetClose = SheetPrimitive__namespace.Close;
558
+ var SheetPortal = SheetPrimitive__namespace.Portal;
559
+ var SheetOverlay = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
560
+ SheetPrimitive__namespace.Overlay,
561
+ {
562
+ className: cn(
563
+ "fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
564
+ className
565
+ ),
566
+ ...props,
567
+ ref
568
+ }
569
+ ));
570
+ SheetOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
571
+ var SheetContent = React2__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => {
572
+ const sideClasses = {
573
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
574
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
575
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
576
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
577
+ };
578
+ return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
579
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
580
+ /* @__PURE__ */ jsxRuntime.jsxs(
581
+ SheetPrimitive__namespace.Content,
582
+ {
583
+ ref,
584
+ className: cn(
585
+ "fixed z-50 gap-4 bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
586
+ sideClasses[side],
587
+ className
588
+ ),
589
+ ...props,
590
+ children: [
591
+ children,
592
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]", children: [
593
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { size: 16, stroke: 1.5 }),
594
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
595
+ ] })
596
+ ]
597
+ }
598
+ )
599
+ ] });
600
+ });
601
+ SheetContent.displayName = SheetPrimitive__namespace.Content.displayName;
602
+ var SheetHeader = ({
603
+ className,
604
+ ...props
605
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
606
+ "div",
607
+ {
608
+ className: cn(
609
+ "flex flex-col space-y-2 text-center sm:text-left",
610
+ className
611
+ ),
612
+ ...props
613
+ }
614
+ );
615
+ SheetHeader.displayName = "SheetHeader";
616
+ var SheetFooter = ({
617
+ className,
618
+ ...props
619
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
620
+ "div",
621
+ {
622
+ className: cn(
623
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
624
+ className
625
+ ),
626
+ ...props
627
+ }
628
+ );
629
+ SheetFooter.displayName = "SheetFooter";
630
+ var SheetTitle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
631
+ SheetPrimitive__namespace.Title,
632
+ {
633
+ ref,
634
+ className: cn("text-lg font-semibold text-[var(--text-primary)]", className),
635
+ ...props
636
+ }
637
+ ));
638
+ SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
639
+ var SheetDescription = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
640
+ SheetPrimitive__namespace.Description,
641
+ {
642
+ ref,
643
+ className: cn("text-sm text-[var(--text-tertiary)]", className),
644
+ ...props
645
+ }
646
+ ));
647
+ SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
648
+ var Dialog = SheetPrimitive__namespace.Root;
649
+ var DialogPortal = SheetPrimitive__namespace.Portal;
650
+ var DialogOverlay = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
651
+ SheetPrimitive__namespace.Overlay,
652
+ {
653
+ ref,
654
+ className: cn(
655
+ "fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
656
+ className
657
+ ),
658
+ ...props
659
+ }
660
+ ));
661
+ DialogOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
662
+ var DialogContent = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
663
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
664
+ /* @__PURE__ */ jsxRuntime.jsxs(
665
+ SheetPrimitive__namespace.Content,
666
+ {
667
+ ref,
668
+ className: cn(
669
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] shadow-lg p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
670
+ className
671
+ ),
672
+ ...props,
673
+ children: [
674
+ children,
675
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]", children: [
676
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4", stroke: 1.5 }),
677
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
678
+ ] })
679
+ ]
680
+ }
681
+ )
682
+ ] }));
683
+ DialogContent.displayName = SheetPrimitive__namespace.Content.displayName;
684
+ var DialogTitle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
685
+ SheetPrimitive__namespace.Title,
686
+ {
687
+ ref,
688
+ className: cn(
689
+ "text-lg font-semibold leading-none tracking-tight text-[var(--text-primary)]",
690
+ className
691
+ ),
692
+ ...props
693
+ }
694
+ ));
695
+ DialogTitle.displayName = SheetPrimitive__namespace.Title.displayName;
696
+ var DialogDescription = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
697
+ SheetPrimitive__namespace.Description,
698
+ {
699
+ ref,
700
+ className: cn("text-sm text-[var(--text-tertiary)]", className),
701
+ ...props
702
+ }
703
+ ));
704
+ DialogDescription.displayName = SheetPrimitive__namespace.Description.displayName;
705
+ var Command = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
706
+ cmdk.Command,
707
+ {
708
+ ref,
709
+ className: cn(
710
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
711
+ className
712
+ ),
713
+ ...props
714
+ }
715
+ ));
716
+ Command.displayName = cmdk.Command.displayName;
717
+ var CommandDialog = ({ children, ...props }) => {
718
+ return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
719
+ };
720
+ var CommandInput = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
721
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSearch, { size: 16, stroke: 1.5, className: "mr-2 shrink-0 opacity-50" }),
722
+ /* @__PURE__ */ jsxRuntime.jsx(
723
+ cmdk.Command.Input,
724
+ {
725
+ ref,
726
+ className: cn(
727
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
728
+ className
729
+ ),
730
+ ...props
731
+ }
732
+ )
733
+ ] }));
734
+ CommandInput.displayName = cmdk.Command.Input.displayName;
735
+ var CommandList = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
736
+ cmdk.Command.List,
737
+ {
738
+ ref,
739
+ className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
740
+ ...props
741
+ }
742
+ ));
743
+ CommandList.displayName = cmdk.Command.List.displayName;
744
+ var CommandEmpty = React2__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
745
+ cmdk.Command.Empty,
746
+ {
747
+ ref,
748
+ className: "py-6 text-center text-sm",
749
+ ...props
750
+ }
751
+ ));
752
+ CommandEmpty.displayName = cmdk.Command.Empty.displayName;
753
+ var CommandGroup = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
754
+ cmdk.Command.Group,
755
+ {
756
+ ref,
757
+ className: cn(
758
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
759
+ className
760
+ ),
761
+ ...props
762
+ }
763
+ ));
764
+ CommandGroup.displayName = cmdk.Command.Group.displayName;
765
+ var CommandSeparator = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
766
+ cmdk.Command.Separator,
767
+ {
768
+ ref,
769
+ className: cn("-mx-1 h-px bg-border", className),
770
+ ...props
771
+ }
772
+ ));
773
+ CommandSeparator.displayName = cmdk.Command.Separator.displayName;
774
+ var CommandItem = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
775
+ cmdk.Command.Item,
776
+ {
777
+ ref,
778
+ className: cn(
779
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
780
+ className
781
+ ),
782
+ ...props
783
+ }
784
+ ));
785
+ CommandItem.displayName = cmdk.Command.Item.displayName;
786
+ var CommandShortcut = ({
787
+ className,
788
+ ...props
789
+ }) => {
790
+ return /* @__PURE__ */ jsxRuntime.jsx(
791
+ "span",
792
+ {
793
+ className: cn(
794
+ "ml-auto text-xs tracking-widest text-muted-foreground",
795
+ className
796
+ ),
797
+ ...props
798
+ }
799
+ );
800
+ };
801
+ CommandShortcut.displayName = "CommandShortcut";
802
+ var Collapsible = CollapsiblePrimitive__namespace.Root;
803
+ var CollapsibleTrigger2 = CollapsiblePrimitive__namespace.CollapsibleTrigger;
804
+ var CollapsibleContent2 = CollapsiblePrimitive__namespace.CollapsibleContent;
805
+ var ContextMenu = ContextMenuPrimitive__namespace.Root;
806
+ var ContextMenuTrigger = ContextMenuPrimitive__namespace.Trigger;
807
+ var ContextMenuGroup = ContextMenuPrimitive__namespace.Group;
808
+ var ContextMenuPortal = ContextMenuPrimitive__namespace.Portal;
809
+ var ContextMenuSub = ContextMenuPrimitive__namespace.Sub;
810
+ var ContextMenuRadioGroup = ContextMenuPrimitive__namespace.RadioGroup;
811
+ var ContextMenuSubTrigger = React2__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
812
+ ContextMenuPrimitive__namespace.SubTrigger,
813
+ {
814
+ ref,
815
+ className: cn(
816
+ "flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
817
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
818
+ inset && "pl-8",
819
+ className
820
+ ),
821
+ ...props,
822
+ children: [
823
+ children,
824
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronRight, { className: "ml-auto h-4 w-4 text-[var(--text-tertiary)]" })
825
+ ]
826
+ }
827
+ ));
828
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive__namespace.SubTrigger.displayName;
829
+ var ContextMenuSubContent = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
830
+ ContextMenuPrimitive__namespace.SubContent,
831
+ {
832
+ ref,
833
+ className: cn(
834
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2",
835
+ "bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]",
836
+ className
837
+ ),
838
+ ...props
839
+ }
840
+ ));
841
+ ContextMenuSubContent.displayName = ContextMenuPrimitive__namespace.SubContent.displayName;
842
+ var ContextMenuContent = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
843
+ ContextMenuPrimitive__namespace.Content,
844
+ {
845
+ ref,
846
+ className: cn(
847
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-md animate-in fade-in-80 px-1",
848
+ "bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]",
849
+ "shadow-[var(--dropdown-shadow)]",
850
+ className
851
+ ),
852
+ ...props
853
+ }
854
+ ) }));
855
+ ContextMenuContent.displayName = ContextMenuPrimitive__namespace.Content.displayName;
856
+ var ContextMenuItem = React2__namespace.forwardRef(({ className, inset, color, leftIcon, rightIcon, children, ...props }, ref) => {
857
+ const baseClasses = cn(
858
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
859
+ "text-[var(--dropdown-item-text)]",
860
+ "focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]",
861
+ "hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
862
+ inset && "pl-8"
863
+ );
864
+ const colorVariantClasses = {
865
+ brand: "focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]",
866
+ error: "focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]",
867
+ warning: "focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]",
868
+ success: "focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]"
869
+ };
870
+ return /* @__PURE__ */ jsxRuntime.jsxs(
871
+ ContextMenuPrimitive__namespace.Item,
872
+ {
873
+ ref,
874
+ className: cn(
875
+ baseClasses,
876
+ color && colorVariantClasses[color],
877
+ className
878
+ ),
879
+ ...props,
880
+ children: [
881
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]", { "ml-auto": !children && rightIcon }), children: leftIcon }),
882
+ children,
883
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current", children: rightIcon })
884
+ ]
885
+ }
886
+ );
887
+ });
888
+ ContextMenuItem.displayName = ContextMenuPrimitive__namespace.Item.displayName;
889
+ var ContextMenuCheckboxItem = React2__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
890
+ ContextMenuPrimitive__namespace.CheckboxItem,
891
+ {
892
+ ref,
893
+ className: cn(
894
+ "relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
895
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
896
+ className
897
+ ),
898
+ checked,
899
+ ...props,
900
+ children: [
901
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconCheck, { className: "h-4 w-4 text-[var(--text-tertiary)]", strokeWidth: 2 }) }) }),
902
+ children
903
+ ]
904
+ }
905
+ ));
906
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive__namespace.CheckboxItem.displayName;
907
+ var ContextMenuRadioItem = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
908
+ ContextMenuPrimitive__namespace.RadioItem,
909
+ {
910
+ ref,
911
+ className: cn(
912
+ "relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
913
+ "text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]",
914
+ className
915
+ ),
916
+ ...props,
917
+ children: [
918
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconPointFilled, { className: "h-3 w-3 fill-current text-[var(--text-tertiary)]" }) }) }),
919
+ children
920
+ ]
921
+ }
922
+ ));
923
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive__namespace.RadioItem.displayName;
924
+ var ContextMenuLabel = React2__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
925
+ ContextMenuPrimitive__namespace.Label,
926
+ {
927
+ ref,
928
+ className: cn(
929
+ "py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1",
930
+ inset ? "pl-8" : "pl-2",
931
+ className
932
+ ),
933
+ ...props
934
+ }
935
+ ));
936
+ ContextMenuLabel.displayName = ContextMenuPrimitive__namespace.Label.displayName;
937
+ var ContextMenuSeparator = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
938
+ ContextMenuPrimitive__namespace.Separator,
939
+ {
940
+ ref,
941
+ className: cn("-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]", className),
942
+ ...props
943
+ }
944
+ ));
945
+ ContextMenuSeparator.displayName = ContextMenuPrimitive__namespace.Separator.displayName;
946
+ var ContextMenuShortcut = ({
947
+ className,
948
+ ...props
949
+ }) => {
950
+ return /* @__PURE__ */ jsxRuntime.jsx(
951
+ "span",
952
+ {
953
+ className: cn("ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]", className),
954
+ ...props
955
+ }
956
+ );
957
+ };
958
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
959
+ var EmailButton = ({
960
+ variant = "primary",
961
+ size = "md",
962
+ children,
963
+ href,
964
+ style,
965
+ fullWidth = false,
966
+ ...props
967
+ }) => {
968
+ const getVariantStyles = () => {
969
+ switch (variant) {
970
+ case "primary":
971
+ return {
972
+ backgroundColor: "#4A49A6",
973
+ color: "#ffffff",
974
+ border: "1px solid #4A49A6"
975
+ };
976
+ case "secondary":
977
+ return {
978
+ backgroundColor: "#f8f9fa",
979
+ color: "#4A49A6",
980
+ border: "1px solid #dee2e6"
981
+ };
982
+ case "ghost":
983
+ return {
984
+ backgroundColor: "transparent",
985
+ color: "#4A49A6",
986
+ border: "1px solid transparent"
987
+ };
988
+ case "outline":
989
+ return {
990
+ backgroundColor: "transparent",
991
+ color: "#4A49A6",
992
+ border: "1px solid #4A49A6"
993
+ };
994
+ case "destructive":
995
+ return {
996
+ backgroundColor: "#dc3545",
997
+ color: "#ffffff",
998
+ border: "1px solid #dc3545"
999
+ };
1000
+ default:
1001
+ return {
1002
+ backgroundColor: "#4A49A6",
1003
+ color: "#ffffff",
1004
+ border: "1px solid #4A49A6"
1005
+ };
1006
+ }
1007
+ };
1008
+ const getSizeStyles = () => {
1009
+ switch (size) {
1010
+ case "sm":
1011
+ return {
1012
+ padding: "6px 12px",
1013
+ fontSize: "12px",
1014
+ borderRadius: "4px"
1015
+ };
1016
+ case "lg":
1017
+ return {
1018
+ padding: "12px 24px",
1019
+ fontSize: "16px",
1020
+ borderRadius: "6px"
1021
+ };
1022
+ default:
1023
+ return {
1024
+ padding: "8px 16px",
1025
+ fontSize: "14px",
1026
+ borderRadius: "4px"
1027
+ };
1028
+ }
1029
+ };
1030
+ const baseStyles = {
1031
+ display: "inline-block",
1032
+ textDecoration: "none",
1033
+ textAlign: "center",
1034
+ fontWeight: "500",
1035
+ cursor: "pointer",
1036
+ width: fullWidth ? "100%" : "auto",
1037
+ ...getVariantStyles(),
1038
+ ...getSizeStyles(),
1039
+ ...style
1040
+ };
1041
+ if (href) {
1042
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href, style: baseStyles, ...props, children });
1043
+ }
1044
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { style: baseStyles, ...props, children });
1045
+ };
1046
+ var EmailText = ({
1047
+ children,
1048
+ variant = "body",
1049
+ style
1050
+ }) => {
1051
+ const getVariantStyles = () => {
1052
+ switch (variant) {
1053
+ case "heading":
1054
+ return {
1055
+ fontSize: "24px",
1056
+ fontWeight: "bold",
1057
+ color: "#1A1A1E",
1058
+ margin: "0 0 16px 0",
1059
+ lineHeight: "1.2"
1060
+ };
1061
+ case "lead":
1062
+ return {
1063
+ fontSize: "16px",
1064
+ color: "#1A1A1E",
1065
+ margin: "0 0 12px 0",
1066
+ lineHeight: "1.5"
1067
+ };
1068
+ case "caption":
1069
+ return {
1070
+ fontSize: "12px",
1071
+ color: "#6B7280",
1072
+ margin: "0 0 8px 0",
1073
+ lineHeight: "1.4"
1074
+ };
1075
+ case "muted":
1076
+ return {
1077
+ fontSize: "14px",
1078
+ color: "#6B7280",
1079
+ margin: "0 0 12px 0",
1080
+ lineHeight: "1.5"
1081
+ };
1082
+ default:
1083
+ return {
1084
+ fontSize: "14px",
1085
+ color: "#1A1A1E",
1086
+ margin: "0 0 12px 0",
1087
+ lineHeight: "1.5"
1088
+ };
1089
+ }
1090
+ };
1091
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { ...getVariantStyles(), ...style }, children });
1092
+ };
1093
+ var EmailHeading = (props) => /* @__PURE__ */ jsxRuntime.jsx(EmailText, { variant: "heading", ...props });
1094
+ var EmailCaption = (props) => /* @__PURE__ */ jsxRuntime.jsx(EmailText, { variant: "caption", ...props });
1095
+ var EmailMuted = (props) => /* @__PURE__ */ jsxRuntime.jsx(EmailText, { variant: "muted", ...props });
1096
+ var EmailLayout = ({
1097
+ children,
1098
+ preheader
1099
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1100
+ preheader && /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
1101
+ color: "transparent",
1102
+ display: "none",
1103
+ height: "0",
1104
+ maxHeight: "0",
1105
+ maxWidth: "0",
1106
+ opacity: "0",
1107
+ overflow: "hidden",
1108
+ visibility: "hidden",
1109
+ width: "0"
1110
+ }, children: preheader }),
1111
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
1112
+ backgroundColor: "#F4F4F5",
1113
+ fontFamily: "Helvetica-Neue, Helvetica, Arial, sans-serif",
1114
+ fontSize: "16px",
1115
+ lineHeight: "1.3",
1116
+ margin: "0",
1117
+ padding: "0"
1118
+ }, children })
1119
+ ] });
1120
+ var EmailContainer = ({
1121
+ children,
1122
+ style
1123
+ }) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
1124
+ maxWidth: "600px",
1125
+ margin: "0 auto",
1126
+ padding: "24px",
1127
+ backgroundColor: "#ffffff",
1128
+ border: "1px solid #eaebed",
1129
+ borderRadius: "16px",
1130
+ ...style
1131
+ }, children });
1132
+ var EmailHeader = ({
1133
+ logoUrl = "http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/e4e1b526-0ef3-4511-a7a8-bc94353e9b3b/201x67.png",
1134
+ logoAlt = "Float",
1135
+ logoWidth = "100px",
1136
+ logoHeight = "auto"
1137
+ }) => {
1138
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
1139
+ width: "100px",
1140
+ textAlign: "center",
1141
+ marginBottom: "24px"
1142
+ }, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: "https://float.tech", style: {
1143
+ color: "#4A49A6",
1144
+ fontWeight: "bold",
1145
+ textDecoration: "none"
1146
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(
1147
+ "img",
1148
+ {
1149
+ src: logoUrl,
1150
+ alt: logoAlt,
1151
+ width: logoWidth,
1152
+ height: logoHeight,
1153
+ style: {
1154
+ display: "block",
1155
+ margin: "0 auto",
1156
+ border: "0",
1157
+ outline: "none",
1158
+ textDecoration: "none",
1159
+ height: "auto",
1160
+ maxWidth: "200px",
1161
+ width: "100%"
1162
+ }
1163
+ }
1164
+ ) }) });
1165
+ };
1166
+ var EmailFooter = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
1167
+ clear: "both",
1168
+ paddingTop: "24px",
1169
+ textAlign: "center",
1170
+ width: "100%"
1171
+ }, children: children || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1172
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { style: {
1173
+ color: "#9a9ea6",
1174
+ fontFamily: "Helvetica-Neue, Helvetica, Arial, sans-serif",
1175
+ fontSize: "14px",
1176
+ fontWeight: "normal",
1177
+ margin: "0",
1178
+ marginBottom: "16px",
1179
+ paddingBottom: "0px",
1180
+ textAlign: "center"
1181
+ }, children: [
1182
+ "Float helps financial institutions interact seamlessly through shared digital workflows and standardized APIs across the transaction lifecycle.",
1183
+ " ",
1184
+ /* @__PURE__ */ jsxRuntime.jsx("a", { href: "https://float.tech", style: {
1185
+ color: "#4A49A6",
1186
+ fontSize: "14px",
1187
+ fontWeight: "bold",
1188
+ paddingBottom: "0px",
1189
+ textAlign: "center",
1190
+ textDecoration: "underline"
1191
+ }, children: "Learn more" }),
1192
+ "."
1193
+ ] }),
1194
+ /* @__PURE__ */ jsxRuntime.jsx("a", { href: "https://float.tech", style: {
1195
+ color: "#4A49A6",
1196
+ fontSize: "14px",
1197
+ fontWeight: "bold",
1198
+ paddingBottom: "0px",
1199
+ textAlign: "center",
1200
+ textDecoration: "underline"
1201
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(
1202
+ "img",
1203
+ {
1204
+ src: "http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/6a3db2b3-d35b-423f-8aac-830de81fb114/32x32.png",
1205
+ alt: "Float Logo",
1206
+ width: "32",
1207
+ height: "32",
1208
+ style: {
1209
+ display: "inline-block",
1210
+ marginBottom: "16px"
1211
+ }
1212
+ }
1213
+ ) }),
1214
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: {
1215
+ color: "#9a9ea6",
1216
+ fontFamily: "Helvetica-Neue, Helvetica, Arial, sans-serif",
1217
+ fontSize: "14px",
1218
+ paddingBottom: "0px"
1219
+ }, children: [
1220
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: "Float Technologies Inc." }),
1221
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: "SoHo, New York" })
1222
+ ] })
1223
+ ] }) });
1224
+
1225
+ // src/tokens/colors.ts
1226
+ var colors = {
1227
+ // Base colors
1228
+ brand: {
1229
+ 25: "hsl(var(--brand-25))",
1230
+ 50: "hsl(var(--brand-50))",
1231
+ 100: "hsl(var(--brand-100))",
1232
+ 200: "hsl(var(--brand-200))",
1233
+ 300: "hsl(var(--brand-300))",
1234
+ 400: "hsl(var(--brand-400))",
1235
+ 500: "hsl(var(--brand-500))",
1236
+ 600: "hsl(var(--brand-600))",
1237
+ 700: "hsl(var(--brand-700))",
1238
+ 800: "hsl(var(--brand-800))",
1239
+ 900: "hsl(var(--brand-900))",
1240
+ 950: "hsl(var(--brand-950))"
1241
+ },
1242
+ error: {
1243
+ 25: "hsl(var(--error-25))",
1244
+ 50: "hsl(var(--error-50))",
1245
+ 100: "hsl(var(--error-100))",
1246
+ 200: "hsl(var(--error-200))",
1247
+ 300: "hsl(var(--error-300))",
1248
+ 400: "hsl(var(--error-400))",
1249
+ 500: "hsl(var(--error-500))",
1250
+ 600: "hsl(var(--error-600))",
1251
+ 700: "hsl(var(--error-700))",
1252
+ 800: "hsl(var(--error-800))",
1253
+ 900: "hsl(var(--error-900))",
1254
+ 950: "hsl(var(--error-950))"
1255
+ },
1256
+ warning: {
1257
+ 25: "hsl(var(--warning-25))",
1258
+ 50: "hsl(var(--warning-50))",
1259
+ 100: "hsl(var(--warning-100))",
1260
+ 200: "hsl(var(--warning-200))",
1261
+ 300: "hsl(var(--warning-300))",
1262
+ 400: "hsl(var(--warning-400))",
1263
+ 500: "hsl(var(--warning-500))",
1264
+ 600: "hsl(var(--warning-600))",
1265
+ 700: "hsl(var(--warning-700))",
1266
+ 800: "hsl(var(--warning-800))",
1267
+ 900: "hsl(var(--warning-900))",
1268
+ 950: "hsl(var(--warning-950))"
1269
+ },
1270
+ success: {
1271
+ 25: "hsl(var(--success-25))",
1272
+ 50: "hsl(var(--success-50))",
1273
+ 100: "hsl(var(--success-100))",
1274
+ 200: "hsl(var(--success-200))",
1275
+ 300: "hsl(var(--success-300))",
1276
+ 400: "hsl(var(--success-400))",
1277
+ 500: "hsl(var(--success-500))",
1278
+ 600: "hsl(var(--success-600))",
1279
+ 700: "hsl(var(--success-700))",
1280
+ 800: "hsl(var(--success-800))",
1281
+ 900: "hsl(var(--success-900))",
1282
+ 950: "hsl(var(--success-950))"
1283
+ },
1284
+ gray: {
1285
+ 25: "hsl(var(--gray-25))",
1286
+ 50: "hsl(var(--gray-50))",
1287
+ 100: "hsl(var(--gray-100))",
1288
+ 200: "hsl(var(--gray-200))",
1289
+ 300: "hsl(var(--gray-300))",
1290
+ 400: "hsl(var(--gray-400))",
1291
+ 500: "hsl(var(--gray-500))",
1292
+ 600: "hsl(var(--gray-600))",
1293
+ 700: "hsl(var(--gray-700))",
1294
+ 800: "hsl(var(--gray-800))",
1295
+ 900: "hsl(var(--gray-900))",
1296
+ 950: "hsl(var(--gray-950))"
1297
+ },
1298
+ // Semantic tokens
1299
+ text: {
1300
+ primary: "hsl(var(--foreground))",
1301
+ secondary: "hsl(var(--muted-foreground))",
1302
+ tertiary: "hsl(var(--muted-foreground))",
1303
+ disabled: "hsl(var(--muted-foreground))",
1304
+ brand: "hsl(var(--brand-700))",
1305
+ "on-brand": "hsl(var(--brand-50))",
1306
+ error: "hsl(var(--error-600))",
1307
+ warning: "hsl(var(--warning-600))",
1308
+ success: "hsl(var(--success-600))"
1309
+ },
1310
+ background: {
1311
+ primary: "hsl(var(--background))",
1312
+ secondary: "hsl(var(--secondary))",
1313
+ tertiary: "hsl(var(--muted))",
1314
+ brand: "hsl(var(--brand-50))",
1315
+ error: "hsl(var(--error-50))",
1316
+ warning: "hsl(var(--warning-50))",
1317
+ success: "hsl(var(--success-50))",
1318
+ card: "hsl(var(--card))"
1319
+ },
1320
+ border: {
1321
+ primary: "hsl(var(--border))",
1322
+ secondary: "hsl(var(--input))",
1323
+ tertiary: "hsl(var(--accent))",
1324
+ brand: "hsl(var(--brand-300))",
1325
+ error: "hsl(var(--error-300))",
1326
+ warning: "hsl(var(--warning-300))",
1327
+ success: "hsl(var(--success-300))"
1328
+ },
1329
+ focus: {
1330
+ ring: "hsl(var(--ring))",
1331
+ brand: "hsl(var(--brand-500))",
1332
+ error: "hsl(var(--error-500))",
1333
+ warning: "hsl(var(--warning-500))",
1334
+ success: "hsl(var(--success-500))"
1335
+ },
1336
+ // Component-specific
1337
+ button: {
1338
+ primary: {
1339
+ bg: "hsl(var(--brand-600))",
1340
+ text: "white",
1341
+ hover: "hsl(var(--brand-700))",
1342
+ focus: "hsl(var(--brand-500))"
1343
+ },
1344
+ secondary: {
1345
+ bg: "transparent",
1346
+ text: "hsl(var(--brand-700))",
1347
+ border: "hsl(var(--brand-300))",
1348
+ hover: "hsl(var(--brand-50))",
1349
+ focus: "hsl(var(--brand-500))"
1350
+ },
1351
+ tertiary: {
1352
+ bg: "transparent",
1353
+ text: "hsl(var(--brand-700))",
1354
+ hover: "hsl(var(--brand-50))",
1355
+ focus: "hsl(var(--brand-500))"
1356
+ }
1357
+ }
1358
+ };
1359
+
1360
+ // src/tokens/typography.ts
1361
+ var typography = {
1362
+ fontFamily: {
1363
+ sans: ["var(--font-inter)", "sans-serif"]
1364
+ },
1365
+ fontWeight: {
1366
+ regular: "400",
1367
+ medium: "500",
1368
+ semibold: "600",
1369
+ bold: "700"
1370
+ },
1371
+ fontSize: {
1372
+ // Display sizes
1373
+ "display-2xl": ["4.5rem", { lineHeight: "5.625rem", letterSpacing: "-0.02em" }],
1374
+ "display-xl": ["3.75rem", { lineHeight: "4.5rem", letterSpacing: "-0.02em" }],
1375
+ "display-lg": ["3rem", { lineHeight: "3.75rem", letterSpacing: "-0.02em" }],
1376
+ "display-md": ["2.25rem", { lineHeight: "2.75rem", letterSpacing: "-0.02em" }],
1377
+ "display-sm": ["1.875rem", { lineHeight: "2.375rem", letterSpacing: "-0.02em" }],
1378
+ "display-xs": ["1.5rem", { lineHeight: "2rem", letterSpacing: "-0.02em" }],
1379
+ // Text sizes
1380
+ "text-xl": ["1.25rem", { lineHeight: "1.875rem" }],
1381
+ "text-lg": ["1.125rem", { lineHeight: "1.75rem" }],
1382
+ "text-md": ["1rem", { lineHeight: "1.5rem" }],
1383
+ "text-sm": ["0.875rem", { lineHeight: "1.25rem" }],
1384
+ "text-xs": ["0.75rem", { lineHeight: "1.125rem" }]
1385
+ },
1386
+ // Predefined style combinations
1387
+ styles: {
1388
+ h1: "text-display-md font-bold",
1389
+ h2: "text-display-sm font-bold",
1390
+ h3: "text-display-xs font-bold",
1391
+ h4: "text-text-xl font-semibold",
1392
+ h5: "text-text-lg font-semibold",
1393
+ h6: "text-text-md font-semibold",
1394
+ // Body text
1395
+ body: "text-text-md font-regular",
1396
+ "body-large": "text-text-lg font-regular",
1397
+ "body-small": "text-text-sm font-regular",
1398
+ // Special styles
1399
+ caption: "text-text-xs font-medium",
1400
+ overline: "text-text-xs font-medium uppercase tracking-wider",
1401
+ label: "text-text-sm font-medium"
1402
+ },
1403
+ // For semantic variants
1404
+ variants: {
1405
+ italic: "italic",
1406
+ underline: "underline"
1407
+ }
1408
+ };
1409
+
1410
+ // src/tokens/spacing.ts
1411
+ var spacing = {
1412
+ // We don't need to redefine the base spacing scale
1413
+ // as we'll use Tailwind's defaults
1414
+ // Semantic spacing that maps to Tailwind's scale
1415
+ layout: {
1416
+ page: "6",
1417
+ // maps to Tailwind's spacing-6 (1.5rem, 24px)
1418
+ section: "8",
1419
+ // maps to Tailwind's spacing-8 (2rem, 32px)
1420
+ subsection: "4",
1421
+ // maps to Tailwind's spacing-4 (1rem, 16px)
1422
+ inline: "2"
1423
+ // maps to Tailwind's spacing-2 (0.5rem, 8px)
1424
+ },
1425
+ // Component-specific spacing that maps to Tailwind's scale
1426
+ component: {
1427
+ xxs: "1",
1428
+ // maps to Tailwind's spacing-1 (0.25rem, 4px)
1429
+ xs: "2",
1430
+ // maps to Tailwind's spacing-2 (0.5rem, 8px)
1431
+ sm: "3",
1432
+ // maps to Tailwind's spacing-3 (0.75rem, 12px)
1433
+ md: "4",
1434
+ // maps to Tailwind's spacing-4 (1rem, 16px)
1435
+ lg: "6",
1436
+ // maps to Tailwind's spacing-6 (1.5rem, 24px)
1437
+ xl: "8",
1438
+ // maps to Tailwind's spacing-8 (2rem, 32px)
1439
+ xxl: "12"
1440
+ // maps to Tailwind's spacing-12 (3rem, 48px)
1441
+ },
1442
+ // Any custom spacing values not in Tailwind's default scale
1443
+ // would be defined here for extending in the Tailwind config
1444
+ custom: {
1445
+ // Example: '4.5': '1.125rem', // 18px
1446
+ }
1447
+ };
1448
+
1449
+ // src/tokens/radius.ts
1450
+ var radius = {
1451
+ // Semantic radius values using CSS variables
1452
+ default: "var(--radius)",
1453
+ card: "var(--radius)",
1454
+ button: "var(--radius)",
1455
+ input: "var(--radius)",
1456
+ badge: "var(--radius)",
1457
+ // Shape variants
1458
+ pill: "9999px",
1459
+ circle: "50%",
1460
+ // Any custom radius values to extend Tailwind's defaults
1461
+ // would be defined here
1462
+ custom: {
1463
+ // Example: 'medium': '0.375rem', // 6px
1464
+ }
1465
+ };
1466
+
1467
+ // src/tokens/shadows.ts
1468
+ var shadows = {
1469
+ // Base shadow values
1470
+ none: "none",
1471
+ xs: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
1472
+ sm: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
1473
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
1474
+ lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
1475
+ xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",
1476
+ "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)",
1477
+ inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",
1478
+ // Semantic shadow values
1479
+ "elevation-low": "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
1480
+ "elevation-medium": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
1481
+ "elevation-high": "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
1482
+ // Component specific
1483
+ card: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
1484
+ dropdown: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
1485
+ modal: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"
1486
+ };
1487
+
1488
+ // src/tokens/index.ts
1489
+ var tokens = {
1490
+ colors,
1491
+ typography,
1492
+ spacing,
1493
+ radius,
1494
+ shadows
1495
+ };
1496
+ function ThemeProvider({
1497
+ children,
1498
+ ...props
1499
+ }) {
1500
+ return /* @__PURE__ */ jsxRuntime.jsx(
1501
+ nextThemes.ThemeProvider,
1502
+ {
1503
+ attribute: "class",
1504
+ defaultTheme: "system",
1505
+ enableSystem: true,
1506
+ disableTransitionOnChange: true,
1507
+ ...props,
1508
+ children
1509
+ }
1510
+ );
1511
+ }
1512
+
1513
+ // src/lib/theme-utils.ts
1514
+ var mapColorToShadcnVariant = (color) => {
1515
+ switch (color) {
1516
+ case "brand":
1517
+ return "default";
1518
+ case "error":
1519
+ return "destructive";
1520
+ case "warning":
1521
+ case "success":
1522
+ return "secondary";
1523
+ // Will need additional classes
1524
+ default:
1525
+ return "default";
1526
+ }
1527
+ };
1528
+ var mapVariantToShadcnVariant = (variant) => {
1529
+ switch (variant) {
1530
+ case "primary":
1531
+ return "default";
1532
+ case "secondary":
1533
+ return "outline";
1534
+ case "tertiary":
1535
+ return "ghost";
1536
+ default:
1537
+ return "default";
1538
+ }
1539
+ };
1540
+ var getColorVariantClasses = (color, variant) => {
1541
+ const colorVariantMap = {
1542
+ primary: {
1543
+ brand: "bg-brand-600 hover:bg-brand-700 text-white focus-visible:ring-brand-500",
1544
+ error: "bg-error-600 hover:bg-error-700 text-white focus-visible:ring-error-500",
1545
+ warning: "bg-warning-600 hover:bg-warning-700 text-white focus-visible:ring-warning-500",
1546
+ success: "bg-success-600 hover:bg-success-700 text-white focus-visible:ring-success-500"
1547
+ },
1548
+ secondary: {
1549
+ brand: "border-brand-300 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
1550
+ error: "border-error-300 text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
1551
+ warning: "border-warning-300 text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
1552
+ success: "border-success-300 text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
1553
+ },
1554
+ tertiary: {
1555
+ brand: "text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
1556
+ error: "text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
1557
+ warning: "text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
1558
+ success: "text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
1559
+ }
1560
+ };
1561
+ return colorVariantMap[variant]?.[color] || "";
1562
+ };
1563
+ var isDarkTheme = (theme, systemTheme) => {
1564
+ if (theme === "system") {
1565
+ return systemTheme === "dark";
1566
+ }
1567
+ return theme === "dark";
1568
+ };
1569
+ function useTheme() {
1570
+ const { theme, setTheme, resolvedTheme, systemTheme } = nextThemes.useTheme();
1571
+ const isDark = isDarkTheme(theme, systemTheme);
1572
+ return {
1573
+ theme: theme || "system",
1574
+ setTheme,
1575
+ resolvedTheme: resolvedTheme || "light",
1576
+ isDark
1577
+ };
1578
+ }
1579
+ function ThemeContextProvider({
1580
+ children
1581
+ }) {
1582
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
1583
+ }
1584
+ function ThemeToggle({
1585
+ className,
1586
+ variant = "icon",
1587
+ size = "md",
1588
+ ...props
1589
+ }) {
1590
+ const { theme, setTheme, resolvedTheme } = useTheme();
1591
+ const [mounted, setMounted] = React2__namespace.useState(false);
1592
+ React2__namespace.useEffect(() => {
1593
+ setMounted(true);
1594
+ }, []);
1595
+ if (!mounted) return null;
1596
+ const toggleTheme = () => {
1597
+ setTheme(resolvedTheme === "dark" ? "light" : "dark");
1598
+ };
1599
+ const iconSize = {
1600
+ sm: 16,
1601
+ md: 20,
1602
+ lg: 24
1603
+ };
1604
+ const sizeClasses = {
1605
+ sm: "h-8 w-8",
1606
+ md: "h-10 w-10",
1607
+ lg: "h-12 w-12"
1608
+ };
1609
+ const textSizeClasses = {
1610
+ sm: "text-xs",
1611
+ md: "text-sm",
1612
+ lg: "text-base"
1613
+ };
1614
+ if (variant === "icon") {
1615
+ return /* @__PURE__ */ jsxRuntime.jsx(
1616
+ "button",
1617
+ {
1618
+ type: "button",
1619
+ onClick: toggleTheme,
1620
+ className: cn(
1621
+ "inline-flex items-center justify-center rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground",
1622
+ sizeClasses[size],
1623
+ className
1624
+ ),
1625
+ "aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
1626
+ ...props,
1627
+ children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5 })
1628
+ }
1629
+ );
1630
+ }
1631
+ if (variant === "button") {
1632
+ return /* @__PURE__ */ jsxRuntime.jsx(
1633
+ "button",
1634
+ {
1635
+ type: "button",
1636
+ onClick: toggleTheme,
1637
+ className: cn(
1638
+ "inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2",
1639
+ textSizeClasses[size],
1640
+ "hover:bg-accent hover:text-accent-foreground",
1641
+ className
1642
+ ),
1643
+ ...props,
1644
+ children: resolvedTheme === "dark" ? "Light Mode" : "Dark Mode"
1645
+ }
1646
+ );
1647
+ }
1648
+ return /* @__PURE__ */ jsxRuntime.jsx(
1649
+ "button",
1650
+ {
1651
+ type: "button",
1652
+ onClick: toggleTheme,
1653
+ className: cn(
1654
+ "inline-flex items-center justify-center rounded-md px-3 py-2 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1655
+ textSizeClasses[size],
1656
+ resolvedTheme === "dark" ? "bg-accent text-accent-foreground hover:bg-accent/80" : "bg-muted text-muted-foreground hover:bg-muted/80",
1657
+ className
1658
+ ),
1659
+ "aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
1660
+ ...props,
1661
+ children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
1662
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
1663
+ "Light"
1664
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
1665
+ /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
1666
+ "Dark"
1667
+ ] })
1668
+ }
1669
+ );
1670
+ }
1671
+
1672
+ exports.Button = Button;
1673
+ exports.Collapsible = Collapsible;
1674
+ exports.CollapsibleContent = CollapsibleContent2;
1675
+ exports.CollapsibleTrigger = CollapsibleTrigger2;
1676
+ exports.Command = Command;
1677
+ exports.CommandDialog = CommandDialog;
1678
+ exports.CommandEmpty = CommandEmpty;
1679
+ exports.CommandGroup = CommandGroup;
1680
+ exports.CommandInput = CommandInput;
1681
+ exports.CommandItem = CommandItem;
1682
+ exports.CommandList = CommandList;
1683
+ exports.CommandSeparator = CommandSeparator;
1684
+ exports.CommandShortcut = CommandShortcut;
1685
+ exports.ContextMenu = ContextMenu;
1686
+ exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
1687
+ exports.ContextMenuContent = ContextMenuContent;
1688
+ exports.ContextMenuGroup = ContextMenuGroup;
1689
+ exports.ContextMenuItem = ContextMenuItem;
1690
+ exports.ContextMenuLabel = ContextMenuLabel;
1691
+ exports.ContextMenuPortal = ContextMenuPortal;
1692
+ exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
1693
+ exports.ContextMenuRadioItem = ContextMenuRadioItem;
1694
+ exports.ContextMenuSeparator = ContextMenuSeparator;
1695
+ exports.ContextMenuShortcut = ContextMenuShortcut;
1696
+ exports.ContextMenuSub = ContextMenuSub;
1697
+ exports.ContextMenuSubContent = ContextMenuSubContent;
1698
+ exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
1699
+ exports.ContextMenuTrigger = ContextMenuTrigger;
1700
+ exports.DropdownMenu = DropdownMenu;
1701
+ exports.EmailButton = EmailButton;
1702
+ exports.EmailCaption = EmailCaption;
1703
+ exports.EmailContainer = EmailContainer;
1704
+ exports.EmailFooter = EmailFooter;
1705
+ exports.EmailHeader = EmailHeader;
1706
+ exports.EmailHeading = EmailHeading;
1707
+ exports.EmailLayout = EmailLayout;
1708
+ exports.EmailMuted = EmailMuted;
1709
+ exports.EmailText = EmailText;
1710
+ exports.Heading = Heading;
1711
+ exports.HoverCard = HoverCard;
1712
+ exports.HoverCardContent = HoverCardContent;
1713
+ exports.HoverCardTrigger = HoverCardTrigger;
1714
+ exports.Popover = Popover;
1715
+ exports.PopoverAnchor = PopoverAnchor;
1716
+ exports.PopoverContent = PopoverContent;
1717
+ exports.PopoverTrigger = PopoverTrigger;
1718
+ exports.Sheet = Sheet;
1719
+ exports.SheetClose = SheetClose;
1720
+ exports.SheetContent = SheetContent;
1721
+ exports.SheetDescription = SheetDescription;
1722
+ exports.SheetFooter = SheetFooter;
1723
+ exports.SheetHeader = SheetHeader;
1724
+ exports.SheetOverlay = SheetOverlay;
1725
+ exports.SheetPortal = SheetPortal;
1726
+ exports.SheetTitle = SheetTitle;
1727
+ exports.SheetTrigger = SheetTrigger;
1728
+ exports.Slider = Slider;
1729
+ exports.Text = Text;
1730
+ exports.ThemeContextProvider = ThemeContextProvider;
1731
+ exports.ThemeProvider = ThemeProvider;
1732
+ exports.ThemeToggle = ThemeToggle;
1733
+ exports.Toggle = Toggle;
1734
+ exports.ToggleGroup = ToggleGroup;
1735
+ exports.ToggleGroupItem = ToggleGroupItem;
1736
+ exports.buttonVariants = buttonVariants;
1737
+ exports.cn = cn;
1738
+ exports.colors = colors;
1739
+ exports.filterDOMProps = filterDOMProps;
1740
+ exports.generateId = generateId;
1741
+ exports.getColorVariantClasses = getColorVariantClasses;
1742
+ exports.isDarkTheme = isDarkTheme;
1743
+ exports.isNotNullOrUndefined = isNotNullOrUndefined;
1744
+ exports.mapColorToShadcnVariant = mapColorToShadcnVariant;
1745
+ exports.mapVariantToShadcnVariant = mapVariantToShadcnVariant;
1746
+ exports.radius = radius;
1747
+ exports.shadows = shadows;
1748
+ exports.spacing = spacing;
1749
+ exports.tokens = tokens;
1750
+ exports.typography = typography;
1751
+ exports.useTheme = useTheme;
1752
+ //# sourceMappingURL=index.js.map
24
1753
  //# sourceMappingURL=index.js.map