@wealthx/shadcn 1.1.0 → 1.2.1

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 (300) hide show
  1. package/.turbo/turbo-build.log +235 -154
  2. package/CHANGELOG.md +12 -0
  3. package/dist/{chunk-6OJF6XRN.mjs → chunk-24FUO7TD.mjs} +4 -8
  4. package/dist/{chunk-4AJ5HWHD.mjs → chunk-2I5S2AMY.mjs} +3 -3
  5. package/dist/{chunk-GPRJQ24C.mjs → chunk-34NWQURD.mjs} +2 -2
  6. package/dist/{chunk-MQ72DIBH.mjs → chunk-3GF7OVTP.mjs} +14 -5
  7. package/dist/chunk-3WMX6KWS.mjs +245 -0
  8. package/dist/{chunk-PMKODV6M.mjs → chunk-462HMNO4.mjs} +6 -10
  9. package/dist/chunk-4CX4SBRO.mjs +153 -0
  10. package/dist/chunk-4MN6UQHG.mjs +443 -0
  11. package/dist/chunk-4Y6R4WEC.mjs +250 -0
  12. package/dist/{chunk-BGP2N52Z.mjs → chunk-66MI7Q4B.mjs} +5 -5
  13. package/dist/{chunk-CGOKTPXU.mjs → chunk-6JQFUE5I.mjs} +20 -23
  14. package/dist/{chunk-Z3MK2KKZ.mjs → chunk-7DHU4VGG.mjs} +7 -3
  15. package/dist/chunk-7MMXNK3C.mjs +317 -0
  16. package/dist/{chunk-VZ2NR7L3.mjs → chunk-7PYJD5JI.mjs} +35 -27
  17. package/dist/{chunk-JU2RUWHF.mjs → chunk-7XJHLGUV.mjs} +1 -1
  18. package/dist/{chunk-BMFN37JH.mjs → chunk-7YAU5CY6.mjs} +1 -1
  19. package/dist/chunk-A56YQQHG.mjs +402 -0
  20. package/dist/{chunk-GLW2UO6O.mjs → chunk-BL3DXM2X.mjs} +84 -62
  21. package/dist/{chunk-SLWCCURD.mjs → chunk-CLIN5525.mjs} +8 -4
  22. package/dist/{chunk-3VQNJ235.mjs → chunk-CSDO6VBW.mjs} +7 -0
  23. package/dist/chunk-D4ILTPOG.mjs +293 -0
  24. package/dist/{chunk-HS7TFG7V.mjs → chunk-D6ID6M4V.mjs} +1 -1
  25. package/dist/chunk-DOH3EHX7.mjs +378 -0
  26. package/dist/{chunk-MJIEMGRD.mjs → chunk-EFRENWEJ.mjs} +9 -17
  27. package/dist/{chunk-YBXCIF5Q.mjs → chunk-ERGGHC2V.mjs} +36 -49
  28. package/dist/{chunk-OXQQNQZI.mjs → chunk-FEZKMUCF.mjs} +10 -1
  29. package/dist/{chunk-55CEW76V.mjs → chunk-FH6QVUVZ.mjs} +1 -1
  30. package/dist/chunk-FMAXJ2SI.mjs +71 -0
  31. package/dist/chunk-FZIXGLMV.mjs +173 -0
  32. package/dist/chunk-GGM2UYGG.mjs +273 -0
  33. package/dist/{chunk-DS2AMHN2.mjs → chunk-GYMYRIZP.mjs} +2 -2
  34. package/dist/{chunk-KQDD5MU3.mjs → chunk-H45TKD34.mjs} +5 -5
  35. package/dist/{chunk-BBJBJSXQ.mjs → chunk-J5UICVJS.mjs} +1 -1
  36. package/dist/{chunk-RL772EH7.mjs → chunk-JHJHG4GO.mjs} +4 -12
  37. package/dist/{chunk-RN67642N.mjs → chunk-JNQORUPP.mjs} +49 -42
  38. package/dist/{chunk-5JGQAAQV.mjs → chunk-K3JYD4IU.mjs} +86 -63
  39. package/dist/{chunk-FHNT55I5.mjs → chunk-KUDCQ4FI.mjs} +4 -4
  40. package/dist/{chunk-UEL4RD5P.mjs → chunk-LHYCMLVA.mjs} +82 -68
  41. package/dist/{chunk-NLLKTU4B.mjs → chunk-LLVQKSU3.mjs} +21 -17
  42. package/dist/{chunk-KKHTJNMM.mjs → chunk-MARPPFOJ.mjs} +8 -4
  43. package/dist/{chunk-6AFMNC42.mjs → chunk-N2PT566P.mjs} +15 -11
  44. package/dist/{chunk-YN5SYTOO.mjs → chunk-NQPOYKAQ.mjs} +9 -5
  45. package/dist/{chunk-ZZV5JVNW.mjs → chunk-NSLMILBT.mjs} +3 -7
  46. package/dist/chunk-OGOYQ7BG.mjs +150 -0
  47. package/dist/chunk-OPNQAVVH.mjs +162 -0
  48. package/dist/{chunk-3NQGYJEZ.mjs → chunk-P6AM5V7O.mjs} +10 -18
  49. package/dist/{chunk-CZ3BW5GL.mjs → chunk-P76HMUI6.mjs} +5 -11
  50. package/dist/chunk-PCPLO5HT.mjs +671 -0
  51. package/dist/chunk-PG6K5XEC.mjs +475 -0
  52. package/dist/{chunk-DDPA2XXS.mjs → chunk-PMB3A7V3.mjs} +2 -2
  53. package/dist/chunk-PR6V5XKM.mjs +209 -0
  54. package/dist/{chunk-46OFHMQA.mjs → chunk-Q76O3RIQ.mjs} +10 -6
  55. package/dist/chunk-RGU7HOEC.mjs +140 -0
  56. package/dist/{chunk-JF4PHPD5.mjs → chunk-RGVKLTLH.mjs} +4 -4
  57. package/dist/{chunk-VG6UF6UT.mjs → chunk-RP3SQYA3.mjs} +2 -2
  58. package/dist/chunk-RYCLWMZ7.mjs +162 -0
  59. package/dist/chunk-SIZMLSRU.mjs +162 -0
  60. package/dist/chunk-SPJ5KXW7.mjs +199 -0
  61. package/dist/chunk-SWGT756Z.mjs +210 -0
  62. package/dist/chunk-SYOD63OZ.mjs +225 -0
  63. package/dist/chunk-TS2ZX2VS.mjs +270 -0
  64. package/dist/chunk-UFYSFDER.mjs +42 -0
  65. package/dist/chunk-VACKZOMY.mjs +190 -0
  66. package/dist/chunk-VLQZANBF.mjs +42 -0
  67. package/dist/chunk-VPBN3WOO.mjs +164 -0
  68. package/dist/chunk-WA6O6EUR.mjs +1885 -0
  69. package/dist/{chunk-E3K6O4FZ.mjs → chunk-WAZD7NFU.mjs} +5 -2
  70. package/dist/chunk-WG6JGJXB.mjs +165 -0
  71. package/dist/{chunk-I64K754C.mjs → chunk-WNGWBVLV.mjs} +2 -2
  72. package/dist/{chunk-3U7SD3MS.mjs → chunk-WOEHFRGB.mjs} +3 -3
  73. package/dist/{chunk-DKZRJOMF.mjs → chunk-XIRTEFKH.mjs} +12 -12
  74. package/dist/chunk-Y6DWJSKZ.mjs +79 -0
  75. package/dist/{chunk-CJ46PDXE.mjs → chunk-ZRO5JO3H.mjs} +106 -66
  76. package/dist/{chunk-VYMHBV6D.mjs → chunk-ZU4NV6RG.mjs} +5 -3
  77. package/dist/components/ui/accordion.js +40 -4
  78. package/dist/components/ui/accordion.mjs +2 -2
  79. package/dist/components/ui/add-column-modal.js +789 -0
  80. package/dist/components/ui/add-column-modal.mjs +17 -0
  81. package/dist/components/ui/add-lead-modal.js +647 -0
  82. package/dist/components/ui/add-lead-modal.mjs +16 -0
  83. package/dist/components/ui/ai-assistant-drawer.js +686 -0
  84. package/dist/components/ui/ai-assistant-drawer.mjs +16 -0
  85. package/dist/components/ui/alert-dialog.js +37 -5
  86. package/dist/components/ui/alert-dialog.mjs +4 -4
  87. package/dist/components/ui/alert.js +37 -11
  88. package/dist/components/ui/alert.mjs +2 -2
  89. package/dist/components/ui/avatar.js +36 -8
  90. package/dist/components/ui/avatar.mjs +2 -2
  91. package/dist/components/ui/backoffice-alert-history-chart.js +624 -0
  92. package/dist/components/ui/backoffice-alert-history-chart.mjs +16 -0
  93. package/dist/components/ui/backoffice-contact-history-chart.js +687 -0
  94. package/dist/components/ui/backoffice-contact-history-chart.mjs +16 -0
  95. package/dist/components/ui/badge.js +37 -2
  96. package/dist/components/ui/badge.mjs +2 -2
  97. package/dist/components/ui/borrowing-capacity-line-chart.js +640 -0
  98. package/dist/components/ui/borrowing-capacity-line-chart.mjs +16 -0
  99. package/dist/components/ui/button.js +35 -3
  100. package/dist/components/ui/button.mjs +2 -2
  101. package/dist/components/ui/calendar.js +43 -19
  102. package/dist/components/ui/calendar.mjs +3 -3
  103. package/dist/components/ui/card.js +40 -4
  104. package/dist/components/ui/card.mjs +2 -2
  105. package/dist/components/ui/cash-balance-line-chart.js +628 -0
  106. package/dist/components/ui/cash-balance-line-chart.mjs +16 -0
  107. package/dist/components/ui/cashflow-bar-chart.js +124 -70
  108. package/dist/components/ui/cashflow-bar-chart.mjs +8 -8
  109. package/dist/components/ui/checkbox.js +36 -5
  110. package/dist/components/ui/checkbox.mjs +2 -3
  111. package/dist/components/ui/chip.js +37 -2
  112. package/dist/components/ui/chip.mjs +3 -3
  113. package/dist/components/ui/combobox.js +68 -49
  114. package/dist/components/ui/combobox.mjs +2 -2
  115. package/dist/components/ui/data-table.js +160 -88
  116. package/dist/components/ui/data-table.mjs +10 -11
  117. package/dist/components/ui/date-picker.js +44 -20
  118. package/dist/components/ui/date-picker.mjs +6 -7
  119. package/dist/components/ui/dialog.js +44 -12
  120. package/dist/components/ui/dialog.mjs +4 -4
  121. package/dist/components/ui/drawer.js +46 -10
  122. package/dist/components/ui/drawer.mjs +3 -3
  123. package/dist/components/ui/dropdown-menu.js +40 -16
  124. package/dist/components/ui/dropdown-menu.mjs +3 -3
  125. package/dist/components/ui/empty.js +41 -5
  126. package/dist/components/ui/empty.mjs +2 -2
  127. package/dist/components/ui/expense-bar-chart.js +166 -67
  128. package/dist/components/ui/expense-bar-chart.mjs +8 -8
  129. package/dist/components/ui/field.js +53 -21
  130. package/dist/components/ui/field.mjs +4 -4
  131. package/dist/components/ui/financial-cards.js +1002 -0
  132. package/dist/components/ui/financial-cards.mjs +24 -0
  133. package/dist/components/ui/financial-drawers.js +637 -0
  134. package/dist/components/ui/financial-drawers.mjs +17 -0
  135. package/dist/components/ui/financial-primitives.js +218 -0
  136. package/dist/components/ui/financial-primitives.mjs +22 -0
  137. package/dist/components/ui/financial-sections.js +1422 -0
  138. package/dist/components/ui/financial-sections.mjs +30 -0
  139. package/dist/components/ui/form-primitives.js +682 -0
  140. package/dist/components/ui/form-primitives.mjs +19 -0
  141. package/dist/components/ui/income-bar-chart.js +164 -66
  142. package/dist/components/ui/income-bar-chart.mjs +8 -8
  143. package/dist/components/ui/input-group.js +43 -7
  144. package/dist/components/ui/input-group.mjs +5 -5
  145. package/dist/components/ui/input-otp.js +39 -3
  146. package/dist/components/ui/input-otp.mjs +2 -2
  147. package/dist/components/ui/input.js +34 -2
  148. package/dist/components/ui/input.mjs +2 -2
  149. package/dist/components/ui/kanban-column.js +1143 -0
  150. package/dist/components/ui/kanban-column.mjs +20 -0
  151. package/dist/components/ui/label.js +35 -7
  152. package/dist/components/ui/label.mjs +2 -2
  153. package/dist/components/ui/opportunity-card.js +960 -0
  154. package/dist/components/ui/opportunity-card.mjs +20 -0
  155. package/dist/components/ui/opportunity-edit-modals.js +3360 -0
  156. package/dist/components/ui/opportunity-edit-modals.mjs +37 -0
  157. package/dist/components/ui/opportunity-summary-tab.js +4365 -0
  158. package/dist/components/ui/opportunity-summary-tab.mjs +34 -0
  159. package/dist/components/ui/pagination.js +35 -3
  160. package/dist/components/ui/pagination.mjs +3 -3
  161. package/dist/components/ui/pipeline-alerts.js +103 -0
  162. package/dist/components/ui/pipeline-alerts.mjs +8 -0
  163. package/dist/components/ui/pipeline-board.js +1408 -0
  164. package/dist/components/ui/pipeline-board.mjs +24 -0
  165. package/dist/components/ui/pipeline-chart.js +216 -0
  166. package/dist/components/ui/pipeline-chart.mjs +10 -0
  167. package/dist/components/ui/pipeline-dialogs.js +1183 -0
  168. package/dist/components/ui/pipeline-dialogs.mjs +23 -0
  169. package/dist/components/ui/pipeline-primitives.js +300 -0
  170. package/dist/components/ui/pipeline-primitives.mjs +11 -0
  171. package/dist/components/ui/popover.js +45 -4
  172. package/dist/components/ui/popover.mjs +3 -3
  173. package/dist/components/ui/progress.js +33 -1
  174. package/dist/components/ui/progress.mjs +2 -2
  175. package/dist/components/ui/property-cashflow-doughnut-chart.js +523 -0
  176. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +16 -0
  177. package/dist/components/ui/property-debt-equity-doughnut-chart.js +521 -0
  178. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +16 -0
  179. package/dist/components/ui/property-mobile-estimate-line-chart.js +683 -0
  180. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +16 -0
  181. package/dist/components/ui/radio-group.js +33 -1
  182. package/dist/components/ui/radio-group.mjs +2 -2
  183. package/dist/components/ui/select.js +66 -26
  184. package/dist/components/ui/select.mjs +3 -3
  185. package/dist/components/ui/separator.js +33 -1
  186. package/dist/components/ui/separator.mjs +2 -2
  187. package/dist/components/ui/sheet.js +37 -9
  188. package/dist/components/ui/sheet.mjs +3 -3
  189. package/dist/components/ui/skeleton.js +33 -1
  190. package/dist/components/ui/skeleton.mjs +2 -2
  191. package/dist/components/ui/slider.js +86 -102
  192. package/dist/components/ui/slider.mjs +2 -2
  193. package/dist/components/ui/spinner.js +33 -1
  194. package/dist/components/ui/spinner.mjs +2 -2
  195. package/dist/components/ui/stage-timeline.js +579 -0
  196. package/dist/components/ui/stage-timeline.mjs +15 -0
  197. package/dist/components/ui/switch.js +37 -4
  198. package/dist/components/ui/switch.mjs +2 -3
  199. package/dist/components/ui/table.js +37 -5
  200. package/dist/components/ui/table.mjs +2 -2
  201. package/dist/components/ui/tabs.js +36 -12
  202. package/dist/components/ui/tabs.mjs +2 -2
  203. package/dist/components/ui/textarea.js +34 -2
  204. package/dist/components/ui/textarea.mjs +2 -2
  205. package/dist/components/ui/toggle-group.js +35 -4
  206. package/dist/components/ui/toggle-group.mjs +3 -4
  207. package/dist/components/ui/toggle.js +35 -4
  208. package/dist/components/ui/toggle.mjs +2 -3
  209. package/dist/components/ui/tooltip.js +51 -22
  210. package/dist/components/ui/tooltip.mjs +3 -3
  211. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +528 -0
  212. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +16 -0
  213. package/dist/components/ui/transactions-income-expense-bar-chart.js +77 -39
  214. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +8 -8
  215. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +528 -0
  216. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +16 -0
  217. package/dist/index.js +11620 -3832
  218. package/dist/index.mjs +333 -161
  219. package/dist/lib/theme-provider.js +10 -1
  220. package/dist/lib/theme-provider.mjs +1 -1
  221. package/dist/lib/typography.js +8 -0
  222. package/dist/lib/typography.mjs +3 -1
  223. package/dist/lib/utils.js +33 -1
  224. package/dist/lib/utils.mjs +1 -1
  225. package/dist/styles.css +1 -1
  226. package/package.json +140 -5
  227. package/src/components/index.tsx +296 -42
  228. package/src/components/ui/accordion.tsx +6 -3
  229. package/src/components/ui/add-column-modal.tsx +339 -0
  230. package/src/components/ui/add-lead-modal.tsx +290 -0
  231. package/src/components/ui/ai-assistant-drawer.tsx +408 -0
  232. package/src/components/ui/alert-dialog.tsx +80 -54
  233. package/src/components/ui/alert.tsx +28 -28
  234. package/src/components/ui/avatar.tsx +30 -29
  235. package/src/components/ui/backoffice-alert-history-chart.tsx +261 -0
  236. package/src/components/ui/backoffice-contact-history-chart.tsx +326 -0
  237. package/src/components/ui/badge.tsx +17 -15
  238. package/src/components/ui/borrowing-capacity-line-chart.tsx +359 -0
  239. package/src/components/ui/button.tsx +30 -27
  240. package/src/components/ui/calendar.tsx +53 -67
  241. package/src/components/ui/card.tsx +27 -24
  242. package/src/components/ui/cash-balance-line-chart.tsx +304 -0
  243. package/src/components/ui/cashflow-bar-chart.tsx +106 -78
  244. package/src/components/ui/chart-shared.tsx +176 -15
  245. package/src/components/ui/checkbox.tsx +30 -26
  246. package/src/components/ui/combobox.tsx +78 -72
  247. package/src/components/ui/data-table.tsx +160 -99
  248. package/src/components/ui/date-picker.tsx +0 -2
  249. package/src/components/ui/dialog.tsx +70 -60
  250. package/src/components/ui/drawer.tsx +57 -48
  251. package/src/components/ui/dropdown-menu.tsx +90 -82
  252. package/src/components/ui/empty.tsx +31 -27
  253. package/src/components/ui/expense-bar-chart.tsx +85 -66
  254. package/src/components/ui/field.tsx +70 -62
  255. package/src/components/ui/financial-cards.tsx +830 -0
  256. package/src/components/ui/financial-drawers.tsx +339 -0
  257. package/src/components/ui/financial-primitives.tsx +331 -0
  258. package/src/components/ui/financial-sections.tsx +672 -0
  259. package/src/components/ui/form-primitives.tsx +536 -0
  260. package/src/components/ui/income-bar-chart.tsx +81 -61
  261. package/src/components/ui/input-group.tsx +41 -34
  262. package/src/components/ui/input-otp.tsx +29 -24
  263. package/src/components/ui/input.tsx +8 -8
  264. package/src/components/ui/kanban-column.tsx +333 -0
  265. package/src/components/ui/label.tsx +9 -12
  266. package/src/components/ui/opportunity-card.tsx +616 -0
  267. package/src/components/ui/opportunity-edit-modals.tsx +2528 -0
  268. package/src/components/ui/opportunity-summary-tab.tsx +579 -0
  269. package/src/components/ui/pipeline-alerts.tsx +74 -0
  270. package/src/components/ui/pipeline-board.tsx +268 -0
  271. package/src/components/ui/pipeline-chart.tsx +173 -0
  272. package/src/components/ui/pipeline-dialogs.tsx +303 -0
  273. package/src/components/ui/pipeline-primitives.tsx +108 -0
  274. package/src/components/ui/popover.tsx +41 -36
  275. package/src/components/ui/property-cashflow-doughnut-chart.tsx +189 -0
  276. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +186 -0
  277. package/src/components/ui/property-mobile-estimate-line-chart.tsx +395 -0
  278. package/src/components/ui/select.tsx +65 -52
  279. package/src/components/ui/sheet.tsx +55 -52
  280. package/src/components/ui/slider.tsx +54 -77
  281. package/src/components/ui/stage-timeline.tsx +205 -0
  282. package/src/components/ui/switch.tsx +42 -29
  283. package/src/components/ui/table.tsx +28 -28
  284. package/src/components/ui/tabs.tsx +22 -28
  285. package/src/components/ui/textarea.tsx +8 -8
  286. package/src/components/ui/toggle-group.tsx +0 -2
  287. package/src/components/ui/toggle.tsx +13 -15
  288. package/src/components/ui/tooltip.tsx +30 -28
  289. package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +192 -0
  290. package/src/components/ui/transactions-income-expense-bar-chart.tsx +47 -39
  291. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +192 -0
  292. package/src/lib/theme-provider.tsx +10 -0
  293. package/src/lib/typography.ts +9 -0
  294. package/src/lib/utils.ts +41 -3
  295. package/src/styles/globals.css +371 -124
  296. package/src/styles/styles-css.ts +1 -1
  297. package/tsup.config.ts +27 -0
  298. package/dist/chunk-3EQP72AW.mjs +0 -58
  299. package/dist/chunk-K74JRTJR.mjs +0 -105
  300. package/dist/chunk-V7CNWJT3.mjs +0 -10
@@ -9,47 +9,47 @@
9
9
  * - DialogFooter: `border-t border-border pt-4` — separator above footer
10
10
  * - Close button: no radius, `hover:bg-foreground/5`, `focus:ring-border`
11
11
  */
12
- import { type ReactElement } from "react"
13
- import * as React from "react"
14
- import { XIcon } from "lucide-react"
15
- import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
16
- import { cn } from "@/lib/utils"
17
- import { useThemeVars } from "@/lib/theme-provider"
18
- import { buttonVariants } from "@/components/ui/button"
19
-
20
- export type DialogProps = React.ComponentProps<typeof DialogPrimitive.Root>
21
-
22
- function Dialog({
23
- ...props
24
- }: DialogProps): ReactElement {
25
- return <DialogPrimitive.Root data-slot="dialog" {...props} />
12
+ import { type ReactElement } from "react";
13
+ import * as React from "react";
14
+ import { XIcon } from "lucide-react";
15
+ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
16
+ import { cn } from "@/lib/utils";
17
+ import { useThemeVars } from "@/lib/theme-provider";
18
+ import { buttonVariants } from "@/components/ui/button";
19
+
20
+ export type DialogProps = React.ComponentProps<typeof DialogPrimitive.Root>;
21
+
22
+ function Dialog({ ...props }: DialogProps): ReactElement {
23
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
26
24
  }
27
25
 
28
- export type DialogTriggerProps = React.ComponentProps<typeof DialogPrimitive.Trigger>
26
+ export type DialogTriggerProps = React.ComponentProps<
27
+ typeof DialogPrimitive.Trigger
28
+ >;
29
29
 
30
- function DialogTrigger({
31
- ...props
32
- }: DialogTriggerProps): ReactElement {
33
- return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
30
+ function DialogTrigger({ ...props }: DialogTriggerProps): ReactElement {
31
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
34
32
  }
35
33
 
36
- export type DialogPortalProps = React.ComponentProps<typeof DialogPrimitive.Portal>
34
+ export type DialogPortalProps = React.ComponentProps<
35
+ typeof DialogPrimitive.Portal
36
+ >;
37
37
 
38
- function DialogPortal({
39
- ...props
40
- }: DialogPortalProps): ReactElement {
41
- return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
38
+ function DialogPortal({ ...props }: DialogPortalProps): ReactElement {
39
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
42
40
  }
43
41
 
44
- export type DialogCloseProps = React.ComponentProps<typeof DialogPrimitive.Close>
42
+ export type DialogCloseProps = React.ComponentProps<
43
+ typeof DialogPrimitive.Close
44
+ >;
45
45
 
46
- function DialogClose({
47
- ...props
48
- }: DialogCloseProps): ReactElement {
49
- return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
46
+ function DialogClose({ ...props }: DialogCloseProps): ReactElement {
47
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
50
48
  }
51
49
 
52
- export type DialogOverlayProps = React.ComponentProps<typeof DialogPrimitive.Backdrop>
50
+ export type DialogOverlayProps = React.ComponentProps<
51
+ typeof DialogPrimitive.Backdrop
52
+ >;
53
53
 
54
54
  function DialogOverlay({
55
55
  className,
@@ -60,17 +60,19 @@ function DialogOverlay({
60
60
  className={cn(
61
61
  // WealthX: foreground/50 scrim (matches Figma — foreground token at 50% opacity)
62
62
  "fixed inset-0 z-50 bg-foreground/50 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0",
63
- className
63
+ className,
64
64
  )}
65
65
  data-slot="dialog-overlay"
66
66
  {...props}
67
67
  />
68
- )
68
+ );
69
69
  }
70
70
 
71
- export type DialogContentProps = React.ComponentProps<typeof DialogPrimitive.Popup> & {
72
- showCloseButton?: boolean
73
- }
71
+ export type DialogContentProps = React.ComponentProps<
72
+ typeof DialogPrimitive.Popup
73
+ > & {
74
+ showCloseButton?: boolean;
75
+ };
74
76
 
75
77
  function DialogContent({
76
78
  className,
@@ -82,19 +84,20 @@ function DialogContent({
82
84
  const themeVars = useThemeVars();
83
85
  return (
84
86
  <DialogPortal>
85
- <DialogOverlay />
87
+ <DialogOverlay style={themeVars as React.CSSProperties} />
86
88
  <DialogPrimitive.Popup
87
89
  className={cn(
88
90
  // WealthX: removed rounded-lg (sharp corners), shadow-lg (flat panels), foreground/50 scrim via DialogOverlay
89
91
  "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 duration-200 outline-none data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 sm:max-w-lg",
90
- className
92
+ className,
91
93
  )}
92
94
  data-slot="dialog-content"
93
95
  style={{ ...themeVars, ...style } as React.CSSProperties}
94
96
  {...props}
95
97
  >
96
98
  {children}
97
- {showCloseButton ? <DialogPrimitive.Close
99
+ {showCloseButton ? (
100
+ <DialogPrimitive.Close
98
101
  className="absolute top-4 right-4 transition-colors hover:bg-foreground/5 focus:outline-hidden focus:ring-2 focus:ring-border focus:ring-offset-0 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
99
102
  // WealthX: removed rounded-xs (sharp), replaced opacity fade with hover:bg-foreground/5,
100
103
  // focus ring uses border color (subtle, matches Figma DialogClose focus state)
@@ -102,15 +105,19 @@ function DialogContent({
102
105
  >
103
106
  <XIcon />
104
107
  <span className="sr-only">Close</span>
105
- </DialogPrimitive.Close> : null}
108
+ </DialogPrimitive.Close>
109
+ ) : null}
106
110
  </DialogPrimitive.Popup>
107
111
  </DialogPortal>
108
- )
112
+ );
109
113
  }
110
114
 
111
- export type DialogHeaderProps = React.ComponentProps<"div">
115
+ export type DialogHeaderProps = React.ComponentProps<"div">;
112
116
 
113
- function DialogHeader({ className, ...props }: DialogHeaderProps): ReactElement {
117
+ function DialogHeader({
118
+ className,
119
+ ...props
120
+ }: DialogHeaderProps): ReactElement {
114
121
  return (
115
122
  <div
116
123
  // WealthX: always left-aligned (no sm:text-left — no centered variant)
@@ -118,12 +125,12 @@ function DialogHeader({ className, ...props }: DialogHeaderProps): ReactElement
118
125
  data-slot="dialog-header"
119
126
  {...props}
120
127
  />
121
- )
128
+ );
122
129
  }
123
130
 
124
131
  export type DialogFooterProps = React.ComponentProps<"div"> & {
125
- showCloseButton?: boolean
126
- }
132
+ showCloseButton?: boolean;
133
+ };
127
134
 
128
135
  function DialogFooter({
129
136
  className,
@@ -136,37 +143,40 @@ function DialogFooter({
136
143
  className={cn(
137
144
  // WealthX: always row layout, right-aligned, separator above footer
138
145
  "flex flex-row justify-end gap-2 border-t border-border pt-4",
139
- className
146
+ className,
140
147
  )}
141
148
  data-slot="dialog-footer"
142
149
  {...props}
143
150
  >
144
151
  {children}
145
- {showCloseButton ? <DialogPrimitive.Close
152
+ {showCloseButton ? (
153
+ <DialogPrimitive.Close
146
154
  className={cn(buttonVariants({ variant: "outline" }))}
147
155
  >
148
156
  Close
149
- </DialogPrimitive.Close> : null}
157
+ </DialogPrimitive.Close>
158
+ ) : null}
150
159
  </div>
151
- )
160
+ );
152
161
  }
153
162
 
154
- export type DialogTitleProps = React.ComponentProps<typeof DialogPrimitive.Title>
163
+ export type DialogTitleProps = React.ComponentProps<
164
+ typeof DialogPrimitive.Title
165
+ >;
155
166
 
156
- function DialogTitle({
157
- className,
158
- ...props
159
- }: DialogTitleProps): ReactElement {
167
+ function DialogTitle({ className, ...props }: DialogTitleProps): ReactElement {
160
168
  return (
161
169
  <DialogPrimitive.Title
162
- className={cn("text-lg leading-none font-semibold", className)}
170
+ className={cn("text-h5 leading-none", className)}
163
171
  data-slot="dialog-title"
164
172
  {...props}
165
173
  />
166
- )
174
+ );
167
175
  }
168
176
 
169
- export type DialogDescriptionProps = React.ComponentProps<typeof DialogPrimitive.Description>
177
+ export type DialogDescriptionProps = React.ComponentProps<
178
+ typeof DialogPrimitive.Description
179
+ >;
170
180
 
171
181
  function DialogDescription({
172
182
  className,
@@ -174,11 +184,11 @@ function DialogDescription({
174
184
  }: DialogDescriptionProps): ReactElement {
175
185
  return (
176
186
  <DialogPrimitive.Description
177
- className={cn("text-sm text-muted-foreground", className)}
187
+ className={cn("text-body-small text-muted-foreground", className)}
178
188
  data-slot="dialog-description"
179
189
  {...props}
180
190
  />
181
- )
191
+ );
182
192
  }
183
193
 
184
194
  export {
@@ -192,4 +202,4 @@ export {
192
202
  DialogPortal,
193
203
  DialogTitle,
194
204
  DialogTrigger,
195
- }
205
+ };
@@ -8,45 +8,45 @@
8
8
  * - DrawerHeader: removed `text-center` for top/bottom — always left-aligned per DS rule
9
9
  * - DrawerTitle: added `text-lg` — matches Figma Text-lg/Semibold
10
10
  */
11
- import { type ReactElement } from "react"
12
- import * as React from "react"
13
- import { Drawer as DrawerPrimitive } from "vaul"
14
- import { cn } from "@/lib/utils"
15
- import { useThemeVars } from "@/lib/theme-provider"
11
+ import { type ReactElement } from "react";
12
+ import * as React from "react";
13
+ import { Drawer as DrawerPrimitive } from "vaul";
14
+ import { cn } from "@/lib/utils";
15
+ import { useThemeVars } from "@/lib/theme-provider";
16
16
 
17
- export type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>
17
+ export type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>;
18
18
 
19
- function Drawer({
20
- ...props
21
- }: DrawerProps): ReactElement {
22
- return <DrawerPrimitive.Root data-slot="drawer" {...props} />
19
+ function Drawer({ ...props }: DrawerProps): ReactElement {
20
+ return <DrawerPrimitive.Root data-slot="drawer" {...props} />;
23
21
  }
24
22
 
25
- export type DrawerTriggerProps = React.ComponentProps<typeof DrawerPrimitive.Trigger>
23
+ export type DrawerTriggerProps = React.ComponentProps<
24
+ typeof DrawerPrimitive.Trigger
25
+ >;
26
26
 
27
- function DrawerTrigger({
28
- ...props
29
- }: DrawerTriggerProps): ReactElement {
30
- return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />
27
+ function DrawerTrigger({ ...props }: DrawerTriggerProps): ReactElement {
28
+ return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />;
31
29
  }
32
30
 
33
- export type DrawerPortalProps = React.ComponentProps<typeof DrawerPrimitive.Portal>
31
+ export type DrawerPortalProps = React.ComponentProps<
32
+ typeof DrawerPrimitive.Portal
33
+ >;
34
34
 
35
- function DrawerPortal({
36
- ...props
37
- }: DrawerPortalProps): ReactElement {
38
- return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />
35
+ function DrawerPortal({ ...props }: DrawerPortalProps): ReactElement {
36
+ return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />;
39
37
  }
40
38
 
41
- export type DrawerCloseProps = React.ComponentProps<typeof DrawerPrimitive.Close>
39
+ export type DrawerCloseProps = React.ComponentProps<
40
+ typeof DrawerPrimitive.Close
41
+ >;
42
42
 
43
- function DrawerClose({
44
- ...props
45
- }: DrawerCloseProps): ReactElement {
46
- return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />
43
+ function DrawerClose({ ...props }: DrawerCloseProps): ReactElement {
44
+ return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />;
47
45
  }
48
46
 
49
- export type DrawerOverlayProps = React.ComponentProps<typeof DrawerPrimitive.Overlay>
47
+ export type DrawerOverlayProps = React.ComponentProps<
48
+ typeof DrawerPrimitive.Overlay
49
+ >;
50
50
 
51
51
  function DrawerOverlay({
52
52
  className,
@@ -57,15 +57,17 @@ function DrawerOverlay({
57
57
  className={cn(
58
58
  // WealthX: foreground/50 scrim — matches Figma overlay token
59
59
  "fixed inset-0 z-50 bg-foreground/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-forwards data-[state=open]:animate-in data-[state=open]:fade-in-0",
60
- className
60
+ className,
61
61
  )}
62
62
  data-slot="drawer-overlay"
63
63
  {...props}
64
64
  />
65
- )
65
+ );
66
66
  }
67
67
 
68
- export type DrawerContentProps = React.ComponentProps<typeof DrawerPrimitive.Content>
68
+ export type DrawerContentProps = React.ComponentProps<
69
+ typeof DrawerPrimitive.Content
70
+ >;
69
71
 
70
72
  function DrawerContent({
71
73
  className,
@@ -85,7 +87,7 @@ function DrawerContent({
85
87
  "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:border-t",
86
88
  "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
87
89
  "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
88
- className
90
+ className,
89
91
  )}
90
92
  data-slot="drawer-content"
91
93
  style={{ ...themeVars, ...style } as React.CSSProperties}
@@ -96,12 +98,15 @@ function DrawerContent({
96
98
  {children}
97
99
  </DrawerPrimitive.Content>
98
100
  </DrawerPortal>
99
- )
101
+ );
100
102
  }
101
103
 
102
- export type DrawerHeaderProps = React.ComponentProps<"div">
104
+ export type DrawerHeaderProps = React.ComponentProps<"div">;
103
105
 
104
- function DrawerHeader({ className, ...props }: DrawerHeaderProps): ReactElement {
106
+ function DrawerHeader({
107
+ className,
108
+ ...props
109
+ }: DrawerHeaderProps): ReactElement {
105
110
  return (
106
111
  <div
107
112
  // WealthX: always left-aligned — no text-center for any direction
@@ -109,38 +114,42 @@ function DrawerHeader({ className, ...props }: DrawerHeaderProps): ReactElement
109
114
  data-slot="drawer-header"
110
115
  {...props}
111
116
  />
112
- )
117
+ );
113
118
  }
114
119
 
115
- export type DrawerFooterProps = React.ComponentProps<"div">
120
+ export type DrawerFooterProps = React.ComponentProps<"div">;
116
121
 
117
- function DrawerFooter({ className, ...props }: DrawerFooterProps): ReactElement {
122
+ function DrawerFooter({
123
+ className,
124
+ ...props
125
+ }: DrawerFooterProps): ReactElement {
118
126
  return (
119
127
  <div
120
128
  className={cn("mt-auto flex flex-col gap-2 p-4", className)}
121
129
  data-slot="drawer-footer"
122
130
  {...props}
123
131
  />
124
- )
132
+ );
125
133
  }
126
134
 
127
- export type DrawerTitleProps = React.ComponentProps<typeof DrawerPrimitive.Title>
135
+ export type DrawerTitleProps = React.ComponentProps<
136
+ typeof DrawerPrimitive.Title
137
+ >;
128
138
 
129
- function DrawerTitle({
130
- className,
131
- ...props
132
- }: DrawerTitleProps): ReactElement {
139
+ function DrawerTitle({ className, ...props }: DrawerTitleProps): ReactElement {
133
140
  return (
134
141
  <DrawerPrimitive.Title
135
142
  // WealthX: text-lg matches Figma Text-lg/Semibold
136
- className={cn("text-lg font-semibold text-foreground", className)}
143
+ className={cn("text-h5 text-foreground", className)}
137
144
  data-slot="drawer-title"
138
145
  {...props}
139
146
  />
140
- )
147
+ );
141
148
  }
142
149
 
143
- export type DrawerDescriptionProps = React.ComponentProps<typeof DrawerPrimitive.Description>
150
+ export type DrawerDescriptionProps = React.ComponentProps<
151
+ typeof DrawerPrimitive.Description
152
+ >;
144
153
 
145
154
  function DrawerDescription({
146
155
  className,
@@ -148,11 +157,11 @@ function DrawerDescription({
148
157
  }: DrawerDescriptionProps): ReactElement {
149
158
  return (
150
159
  <DrawerPrimitive.Description
151
- className={cn("text-sm text-muted-foreground", className)}
160
+ className={cn("text-body-small text-muted-foreground", className)}
152
161
  data-slot="drawer-description"
153
162
  {...props}
154
163
  />
155
- )
164
+ );
156
165
  }
157
166
 
158
167
  export {
@@ -166,4 +175,4 @@ export {
166
175
  DrawerFooter,
167
176
  DrawerTitle,
168
177
  DrawerDescription,
169
- }
178
+ };