@wealthx/shadcn 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/.turbo/turbo-build.log +235 -154
  2. package/CHANGELOG.md +6 -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-2SF672SZ.mjs +161 -0
  6. package/dist/{chunk-GPRJQ24C.mjs → chunk-34NWQURD.mjs} +2 -2
  7. package/dist/{chunk-MQ72DIBH.mjs → chunk-3GF7OVTP.mjs} +14 -5
  8. package/dist/chunk-3WMX6KWS.mjs +245 -0
  9. package/dist/{chunk-PMKODV6M.mjs → chunk-462HMNO4.mjs} +6 -10
  10. package/dist/chunk-4CX4SBRO.mjs +153 -0
  11. package/dist/chunk-4MN6UQHG.mjs +443 -0
  12. package/dist/{chunk-GLW2UO6O.mjs → chunk-5QQVZTVZ.mjs} +82 -61
  13. package/dist/{chunk-BGP2N52Z.mjs → chunk-66MI7Q4B.mjs} +5 -5
  14. package/dist/chunk-6FCGKSZX.mjs +268 -0
  15. package/dist/{chunk-CGOKTPXU.mjs → chunk-6JQFUE5I.mjs} +20 -23
  16. package/dist/{chunk-Z3MK2KKZ.mjs → chunk-7DHU4VGG.mjs} +7 -3
  17. package/dist/{chunk-VZ2NR7L3.mjs → chunk-7PYJD5JI.mjs} +35 -27
  18. package/dist/{chunk-JU2RUWHF.mjs → chunk-7XJHLGUV.mjs} +1 -1
  19. package/dist/{chunk-BMFN37JH.mjs → chunk-7YAU5CY6.mjs} +1 -1
  20. package/dist/chunk-A56YQQHG.mjs +402 -0
  21. package/dist/chunk-AH52LG6N.mjs +315 -0
  22. package/dist/{chunk-SLWCCURD.mjs → chunk-CLIN5525.mjs} +8 -4
  23. package/dist/{chunk-3VQNJ235.mjs → chunk-CSDO6VBW.mjs} +7 -0
  24. package/dist/chunk-D4ILTPOG.mjs +293 -0
  25. package/dist/{chunk-HS7TFG7V.mjs → chunk-D6ID6M4V.mjs} +1 -1
  26. package/dist/chunk-DOH3EHX7.mjs +378 -0
  27. package/dist/{chunk-MJIEMGRD.mjs → chunk-EFRENWEJ.mjs} +9 -17
  28. package/dist/{chunk-YBXCIF5Q.mjs → chunk-ERGGHC2V.mjs} +36 -49
  29. package/dist/{chunk-OXQQNQZI.mjs → chunk-FEZKMUCF.mjs} +10 -1
  30. package/dist/{chunk-55CEW76V.mjs → chunk-FH6QVUVZ.mjs} +1 -1
  31. package/dist/chunk-FMAXJ2SI.mjs +71 -0
  32. package/dist/chunk-FZIXGLMV.mjs +173 -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-KMCGSZTX.mjs} +47 -41
  38. package/dist/{chunk-FHNT55I5.mjs → chunk-KUDCQ4FI.mjs} +4 -4
  39. package/dist/chunk-LE6YFY6D.mjs +209 -0
  40. package/dist/{chunk-NLLKTU4B.mjs → chunk-LLVQKSU3.mjs} +21 -17
  41. package/dist/{chunk-KKHTJNMM.mjs → chunk-MARPPFOJ.mjs} +8 -4
  42. package/dist/{chunk-6AFMNC42.mjs → chunk-N2PT566P.mjs} +15 -11
  43. package/dist/chunk-NLCKVHWB.mjs +161 -0
  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-NXA3CZ7A.mjs +248 -0
  47. package/dist/chunk-OGOYQ7BG.mjs +150 -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-5JGQAAQV.mjs → chunk-PJHPSRYD.mjs} +84 -62
  53. package/dist/{chunk-DDPA2XXS.mjs → chunk-PMB3A7V3.mjs} +2 -2
  54. package/dist/chunk-PR6V5XKM.mjs +209 -0
  55. package/dist/{chunk-46OFHMQA.mjs → chunk-Q76O3RIQ.mjs} +10 -6
  56. package/dist/chunk-QVKWW6KE.mjs +272 -0
  57. package/dist/chunk-RGU7HOEC.mjs +140 -0
  58. package/dist/{chunk-JF4PHPD5.mjs → chunk-RGVKLTLH.mjs} +4 -4
  59. package/dist/{chunk-VG6UF6UT.mjs → chunk-RP3SQYA3.mjs} +2 -2
  60. package/dist/chunk-RRBS6D63.mjs +163 -0
  61. package/dist/{chunk-UEL4RD5P.mjs → chunk-SMQ3DG25.mjs} +80 -67
  62. package/dist/chunk-SPJ5KXW7.mjs +199 -0
  63. package/dist/chunk-SYOD63OZ.mjs +225 -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-WA6O6EUR.mjs +1885 -0
  68. package/dist/{chunk-E3K6O4FZ.mjs → chunk-WAZD7NFU.mjs} +5 -2
  69. package/dist/chunk-WG6JGJXB.mjs +165 -0
  70. package/dist/{chunk-I64K754C.mjs → chunk-WNGWBVLV.mjs} +2 -2
  71. package/dist/{chunk-3U7SD3MS.mjs → chunk-WOEHFRGB.mjs} +3 -3
  72. package/dist/{chunk-DKZRJOMF.mjs → chunk-XIRTEFKH.mjs} +12 -12
  73. package/dist/chunk-Y6DWJSKZ.mjs +79 -0
  74. package/dist/chunk-YKPROFLB.mjs +161 -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 +639 -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 +627 -0
  106. package/dist/components/ui/cash-balance-line-chart.mjs +16 -0
  107. package/dist/components/ui/cashflow-bar-chart.js +123 -69
  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 +165 -66
  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 +163 -65
  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 +682 -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 +76 -38
  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 +11616 -3831
  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 +260 -0
  236. package/src/components/ui/backoffice-contact-history-chart.tsx +325 -0
  237. package/src/components/ui/badge.tsx +17 -15
  238. package/src/components/ui/borrowing-capacity-line-chart.tsx +357 -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 +302 -0
  243. package/src/components/ui/cashflow-bar-chart.tsx +104 -77
  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 +83 -65
  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 +79 -60
  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 +188 -0
  276. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +185 -0
  277. package/src/components/ui/property-mobile-estimate-line-chart.tsx +393 -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 +191 -0
  290. package/src/components/ui/transactions-income-expense-bar-chart.tsx +45 -38
  291. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +191 -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
@@ -1,8 +1,6 @@
1
- "use client"
2
-
3
- import { type ReactElement, useState, type ComponentProps } from "react"
4
- import { Switch as SwitchPrimitive } from "@base-ui/react/switch"
5
- import { cn } from "@/lib/utils"
1
+ import { type ReactElement, useState, type ComponentProps } from "react";
2
+ import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
3
+ import { cn } from "@/lib/utils";
6
4
 
7
5
  /**
8
6
  * Switch — shadcn/WealthX
@@ -13,8 +11,8 @@ import { cn } from "@/lib/utils"
13
11
  * Tokens: unchecked=input, checked=primary, error=destructive, thumb=background.
14
12
  */
15
13
  export type SwitchProps = ComponentProps<typeof SwitchPrimitive.Root> & {
16
- size?: "sm" | "default"
17
- }
14
+ size?: "sm" | "default";
15
+ };
18
16
 
19
17
  function Switch({
20
18
  className,
@@ -32,7 +30,7 @@ function Switch({
32
30
  "data-checked:bg-primary data-unchecked:bg-input",
33
31
  "aria-invalid:data-checked:bg-destructive aria-invalid:border-destructive",
34
32
  "dark:data-unchecked:bg-input/80",
35
- className
33
+ className,
36
34
  )}
37
35
  data-size={size}
38
36
  data-slot="switch"
@@ -43,25 +41,28 @@ function Switch({
43
41
  "pointer-events-none block rounded-full bg-background ring-0 transition-transform",
44
42
  "group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3",
45
43
  "data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0",
46
- "dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground"
44
+ "dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground",
47
45
  )}
48
46
  data-slot="switch-thumb"
49
47
  />
50
48
  </SwitchPrimitive.Root>
51
- )
49
+ );
52
50
  }
53
51
 
54
52
  /**
55
53
  * SwitchCard -- card wrapper with label + description + switch toggle.
56
54
  * Figma: SwitchCard (3041:6237)
57
55
  */
58
- export type SwitchCardProps = Omit<ComponentProps<typeof SwitchPrimitive.Root>, "children"> & {
59
- label: string
60
- description?: string
61
- error?: boolean
62
- switchPosition?: "left" | "right"
63
- size?: "sm" | "default"
64
- }
56
+ export type SwitchCardProps = Omit<
57
+ ComponentProps<typeof SwitchPrimitive.Root>,
58
+ "children"
59
+ > & {
60
+ label: string;
61
+ description?: string;
62
+ error?: boolean;
63
+ switchPosition?: "left" | "right";
64
+ size?: "sm" | "default";
65
+ };
65
66
 
66
67
  function SwitchCard({
67
68
  className,
@@ -76,8 +77,10 @@ function SwitchCard({
76
77
  size,
77
78
  ...props
78
79
  }: SwitchCardProps): ReactElement {
79
- const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false)
80
- const isChecked = checked ?? internalChecked
80
+ const [internalChecked, setInternalChecked] = useState(
81
+ defaultChecked ?? false,
82
+ );
83
+ const isChecked = checked ?? internalChecked;
81
84
 
82
85
  const switchElement = (
83
86
  <Switch
@@ -86,20 +89,24 @@ function SwitchCard({
86
89
  className="shrink-0"
87
90
  disabled={disabled}
88
91
  onCheckedChange={(value, event) => {
89
- setInternalChecked(value)
90
- onCheckedChange?.(value, event)
92
+ setInternalChecked(value);
93
+ onCheckedChange?.(value, event);
91
94
  }}
92
95
  size={size}
93
96
  {...props}
94
97
  />
95
- )
98
+ );
96
99
 
97
100
  const contentElement = (
98
101
  <div className="flex flex-col gap-1">
99
102
  <span className="text-sm font-medium leading-none">{label}</span>
100
- {description ? <span className="text-sm text-muted-foreground">{description}</span> : null}
103
+ {description ? (
104
+ <span className="text-body-small text-muted-foreground">
105
+ {description}
106
+ </span>
107
+ ) : null}
101
108
  </div>
102
- )
109
+ );
103
110
 
104
111
  return (
105
112
  <label
@@ -110,17 +117,23 @@ function SwitchCard({
110
117
  error
111
118
  ? ["border-destructive", isChecked && "bg-destructive/5"]
112
119
  : isChecked && "border-primary bg-primary/5",
113
- className
120
+ className,
114
121
  )}
115
122
  data-slot="switch-card"
116
123
  >
117
124
  {switchPosition === "left" ? (
118
- <>{switchElement}{contentElement}</>
125
+ <>
126
+ {switchElement}
127
+ {contentElement}
128
+ </>
119
129
  ) : (
120
- <>{contentElement}{switchElement}</>
130
+ <>
131
+ {contentElement}
132
+ {switchElement}
133
+ </>
121
134
  )}
122
135
  </label>
123
- )
136
+ );
124
137
  }
125
138
 
126
- export { Switch, SwitchCard }
139
+ export { Switch, SwitchCard };
@@ -9,11 +9,11 @@
9
9
  * - TableRow: `data-[state=selected]:bg-muted` -- `data-[state=selected]:bg-primary/10` — selected tint matches Figma (primary + 10% opacity)
10
10
  * - TableFooter: inherits same cell padding via className
11
11
  */
12
- import { type ReactElement } from "react"
13
- import * as React from "react"
14
- import { cn } from "@/lib/utils"
12
+ import { type ReactElement } from "react";
13
+ import * as React from "react";
14
+ import { cn } from "@/lib/utils";
15
15
 
16
- export type TableProps = React.ComponentProps<"table">
16
+ export type TableProps = React.ComponentProps<"table">;
17
17
 
18
18
  function Table({ className, ...props }: TableProps): ReactElement {
19
19
  return (
@@ -22,15 +22,15 @@ function Table({ className, ...props }: TableProps): ReactElement {
22
22
  data-slot="table-container"
23
23
  >
24
24
  <table
25
- className={cn("w-full caption-bottom text-sm", className)}
25
+ className={cn("w-full caption-bottom text-body-small", className)}
26
26
  data-slot="table"
27
27
  {...props}
28
28
  />
29
29
  </div>
30
- )
30
+ );
31
31
  }
32
32
 
33
- export type TableHeaderProps = React.ComponentProps<"thead">
33
+ export type TableHeaderProps = React.ComponentProps<"thead">;
34
34
 
35
35
  function TableHeader({ className, ...props }: TableHeaderProps): ReactElement {
36
36
  return (
@@ -39,10 +39,10 @@ function TableHeader({ className, ...props }: TableHeaderProps): ReactElement {
39
39
  data-slot="table-header"
40
40
  {...props}
41
41
  />
42
- )
42
+ );
43
43
  }
44
44
 
45
- export type TableBodyProps = React.ComponentProps<"tbody">
45
+ export type TableBodyProps = React.ComponentProps<"tbody">;
46
46
 
47
47
  function TableBody({ className, ...props }: TableBodyProps): ReactElement {
48
48
  return (
@@ -51,56 +51,56 @@ function TableBody({ className, ...props }: TableBodyProps): ReactElement {
51
51
  data-slot="table-body"
52
52
  {...props}
53
53
  />
54
- )
54
+ );
55
55
  }
56
56
 
57
- export type TableFooterProps = React.ComponentProps<"tfoot">
57
+ export type TableFooterProps = React.ComponentProps<"tfoot">;
58
58
 
59
59
  function TableFooter({ className, ...props }: TableFooterProps): ReactElement {
60
60
  return (
61
61
  <tfoot
62
62
  className={cn(
63
- "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
64
- className
63
+ "border-t bg-muted/50 text-label-medium [&>tr]:last:border-b-0",
64
+ className,
65
65
  )}
66
66
  data-slot="table-footer"
67
67
  {...props}
68
68
  />
69
- )
69
+ );
70
70
  }
71
71
 
72
- export type TableRowProps = React.ComponentProps<"tr">
72
+ export type TableRowProps = React.ComponentProps<"tr">;
73
73
 
74
74
  function TableRow({ className, ...props }: TableRowProps): ReactElement {
75
75
  return (
76
76
  <tr
77
77
  className={cn(
78
78
  "border-b transition-[background-color,opacity] hover:bg-muted/50 data-[state=selected]:bg-primary/10",
79
- className
79
+ className,
80
80
  )}
81
81
  data-slot="table-row"
82
82
  {...props}
83
83
  />
84
- )
84
+ );
85
85
  }
86
86
 
87
- export type TableHeadProps = React.ComponentProps<"th">
87
+ export type TableHeadProps = React.ComponentProps<"th">;
88
88
 
89
89
  function TableHead({ className, ...props }: TableHeadProps): ReactElement {
90
90
  return (
91
91
  <th
92
92
  className={cn(
93
- "h-10 px-4 text-left align-middle font-medium whitespace-nowrap text-muted-foreground",
93
+ "h-10 px-4 text-left align-middle text-label-medium whitespace-nowrap text-muted-foreground",
94
94
  "[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
95
- className
95
+ className,
96
96
  )}
97
97
  data-slot="table-head"
98
98
  {...props}
99
99
  />
100
- )
100
+ );
101
101
  }
102
102
 
103
- export type TableCellProps = React.ComponentProps<"td">
103
+ export type TableCellProps = React.ComponentProps<"td">;
104
104
 
105
105
  function TableCell({ className, ...props }: TableCellProps): ReactElement {
106
106
  return (
@@ -108,15 +108,15 @@ function TableCell({ className, ...props }: TableCellProps): ReactElement {
108
108
  className={cn(
109
109
  "px-4 py-3 align-middle whitespace-nowrap",
110
110
  "[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
111
- className
111
+ className,
112
112
  )}
113
113
  data-slot="table-cell"
114
114
  {...props}
115
115
  />
116
- )
116
+ );
117
117
  }
118
118
 
119
- export type TableCaptionProps = React.ComponentProps<"caption">
119
+ export type TableCaptionProps = React.ComponentProps<"caption">;
120
120
 
121
121
  function TableCaption({
122
122
  className,
@@ -124,11 +124,11 @@ function TableCaption({
124
124
  }: TableCaptionProps): ReactElement {
125
125
  return (
126
126
  <caption
127
- className={cn("mt-4 text-sm text-muted-foreground", className)}
127
+ className={cn("mt-4 text-body-small text-muted-foreground", className)}
128
128
  data-slot="table-caption"
129
129
  {...props}
130
130
  />
131
- )
131
+ );
132
132
  }
133
133
 
134
134
  export {
@@ -140,4 +140,4 @@ export {
140
140
  TableRow,
141
141
  TableCell,
142
142
  TableCaption,
143
- }
143
+ };
@@ -1,12 +1,12 @@
1
- import { type ReactElement } from "react"
2
- import * as React from "react"
3
- import { cva, type VariantProps } from "class-variance-authority"
4
- import { Tabs as TabsPrimitive } from "@base-ui/react/tabs"
5
- import { cn } from "@/lib/utils"
1
+ import { type ReactElement } from "react";
2
+ import * as React from "react";
3
+ import { cva, type VariantProps } from "class-variance-authority";
4
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
5
+ import { cn } from "@/lib/utils";
6
6
 
7
7
  export type TabsProps = React.ComponentProps<typeof TabsPrimitive.Root> & {
8
- orientation?: "horizontal" | "vertical"
9
- }
8
+ orientation?: "horizontal" | "vertical";
9
+ };
10
10
 
11
11
  function Tabs({
12
12
  className,
@@ -17,13 +17,13 @@ function Tabs({
17
17
  <TabsPrimitive.Root
18
18
  className={cn(
19
19
  "group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",
20
- className
20
+ className,
21
21
  )}
22
22
  data-orientation={orientation}
23
23
  data-slot="tabs"
24
24
  {...props}
25
25
  />
26
- )
26
+ );
27
27
  }
28
28
 
29
29
  const tabsListVariants = cva(
@@ -38,11 +38,11 @@ const tabsListVariants = cva(
38
38
  defaultVariants: {
39
39
  variant: "default",
40
40
  },
41
- }
42
- )
41
+ },
42
+ );
43
43
 
44
44
  export type TabsListProps = React.ComponentProps<typeof TabsPrimitive.List> &
45
- VariantProps<typeof tabsListVariants>
45
+ VariantProps<typeof tabsListVariants>;
46
46
 
47
47
  function TabsList({
48
48
  className,
@@ -56,21 +56,18 @@ function TabsList({
56
56
  data-variant={variant}
57
57
  {...props}
58
58
  />
59
- )
59
+ );
60
60
  }
61
61
 
62
- export type TabsTriggerProps = React.ComponentProps<typeof TabsPrimitive.Tab>
62
+ export type TabsTriggerProps = React.ComponentProps<typeof TabsPrimitive.Tab>;
63
63
 
64
- function TabsTrigger({
65
- className,
66
- ...props
67
- }: TabsTriggerProps): ReactElement {
64
+ function TabsTrigger({ className, ...props }: TabsTriggerProps): ReactElement {
68
65
  return (
69
66
  <TabsPrimitive.Tab
70
67
  className={cn(
71
68
  // Base layout & typography
72
69
  "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap",
73
- "rounded-none border border-transparent px-1.5 py-1 text-sm font-medium",
70
+ "rounded-none border border-transparent px-1.5 py-1 text-label-medium",
74
71
  "text-muted-foreground transition-all",
75
72
  // Vertical orientation
76
73
  "group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start",
@@ -93,27 +90,24 @@ function TabsTrigger({
93
90
  "group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
94
91
  // SVG icons
95
92
  "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
96
- className
93
+ className,
97
94
  )}
98
95
  data-slot="tabs-trigger"
99
96
  {...props}
100
97
  />
101
- )
98
+ );
102
99
  }
103
100
 
104
- export type TabsContentProps = React.ComponentProps<typeof TabsPrimitive.Panel>
101
+ export type TabsContentProps = React.ComponentProps<typeof TabsPrimitive.Panel>;
105
102
 
106
- function TabsContent({
107
- className,
108
- ...props
109
- }: TabsContentProps): ReactElement {
103
+ function TabsContent({ className, ...props }: TabsContentProps): ReactElement {
110
104
  return (
111
105
  <TabsPrimitive.Panel
112
106
  className={cn("flex-1 outline-none", className)}
113
107
  data-slot="tabs-content"
114
108
  {...props}
115
109
  />
116
- )
110
+ );
117
111
  }
118
112
 
119
- export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }
113
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -5,24 +5,24 @@
5
5
  * - `shadow-xs` removed — flat panels per Figma
6
6
  * - `font-sans` added — consistent typography token
7
7
  */
8
- import { type ReactElement } from "react"
9
- import * as React from "react"
10
- import { cn } from "@/lib/utils"
8
+ import { type ReactElement } from "react";
9
+ import * as React from "react";
10
+ import { cn } from "@/lib/utils";
11
11
 
12
- export type TextareaProps = React.ComponentProps<"textarea">
12
+ export type TextareaProps = React.ComponentProps<"textarea">;
13
13
 
14
14
  function Textarea({ className, ...props }: TextareaProps): ReactElement {
15
15
  return (
16
16
  <textarea
17
17
  className={cn(
18
18
  // WealthX: removed shadow-xs (flat panels), added font-sans
19
- "flex field-sizing-content min-h-16 w-full border border-input bg-transparent px-3 py-2 text-base font-sans transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
20
- className
19
+ "flex field-sizing-content min-h-16 w-full border border-input bg-transparent px-3 py-2 text-body-medium font-sans transition-[color,box-shadow] outline-none placeholder:font-normal placeholder:text-muted-foreground focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
20
+ className,
21
21
  )}
22
22
  data-slot="textarea"
23
23
  {...props}
24
24
  />
25
- )
25
+ );
26
26
  }
27
27
 
28
- export { Textarea }
28
+ export { Textarea };
@@ -1,5 +1,3 @@
1
- "use client"
2
-
3
1
  import { type ReactElement } from "react"
4
2
  import * as React from "react"
5
3
  import { type VariantProps } from "class-variance-authority"
@@ -1,10 +1,8 @@
1
- "use client"
2
-
3
- import { type ReactElement } from "react"
4
- import * as React from "react"
5
- import { cva, type VariantProps } from "class-variance-authority"
6
- import { Toggle as ToggleComponent } from "@base-ui/react/toggle"
7
- import { cn } from "@/lib/utils"
1
+ import { type ReactElement } from "react";
2
+ import * as React from "react";
3
+ import { cva, type VariantProps } from "class-variance-authority";
4
+ import { Toggle as ToggleComponent } from "@base-ui/react/toggle";
5
+ import { cn } from "@/lib/utils";
8
6
 
9
7
  /**
10
8
  * Toggle — WealthX DS overrides (shadcn base)
@@ -12,12 +10,12 @@ import { cn } from "@/lib/utils"
12
10
  * Changes from shadcn default:
13
11
  * - `rounded-md` removed — sharp corners per WealthX DS
14
12
  * - `shadow-xs` removed from outline variant — flat panels
15
- * - Pressed/on state uses `bg-primary/10` + `inset-ring-primary` via Figma tokens
13
+ * - Pressed/on state uses `bg-primary/10` + `inset-ring-primary` + `text-foreground` via Figma tokens
16
14
  * (inset-ring instead of border-primary so indicator is independent of border-width,
17
15
  * works correctly inside ToggleGroup where border-l is collapsed for connected items)
18
16
  */
19
17
  const toggleVariants = cva(
20
- "inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-pressed:bg-primary/10 data-pressed:inset-ring data-pressed:inset-ring-primary data-pressed:text-foreground data-pressed:hover:bg-primary/10 data-pressed:hover:text-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
18
+ "inline-flex items-center justify-center gap-2 text-label-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-pressed:bg-primary/10 data-pressed:inset-ring data-pressed:inset-ring-primary data-pressed:text-foreground data-pressed:hover:bg-primary/10 data-pressed:hover:text-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
21
19
  {
22
20
  variants: {
23
21
  variant: {
@@ -27,7 +25,7 @@ const toggleVariants = cva(
27
25
  },
28
26
  size: {
29
27
  default: "h-9 min-w-9 px-2",
30
- sm: "h-8 min-w-8 px-1.5",
28
+ sm: "h-8 min-w-8 px-1.5 text-caption",
31
29
  lg: "h-10 min-w-10 px-2.5",
32
30
  },
33
31
  },
@@ -35,11 +33,11 @@ const toggleVariants = cva(
35
33
  variant: "default",
36
34
  size: "default",
37
35
  },
38
- }
39
- )
36
+ },
37
+ );
40
38
 
41
39
  export type ToggleProps = React.ComponentProps<typeof ToggleComponent> &
42
- VariantProps<typeof toggleVariants>
40
+ VariantProps<typeof toggleVariants>;
43
41
 
44
42
  function Toggle({
45
43
  className,
@@ -53,7 +51,7 @@ function Toggle({
53
51
  data-slot="toggle"
54
52
  {...props}
55
53
  />
56
- )
54
+ );
57
55
  }
58
56
 
59
- export { Toggle, toggleVariants }
57
+ export { Toggle, toggleVariants };
@@ -1,8 +1,8 @@
1
- import { type ReactElement } from "react"
2
- import * as React from "react"
3
- import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip"
4
- import { cn } from "@/lib/utils"
5
- import { useThemeVars } from "@/lib/theme-provider"
1
+ import { type ReactElement } from "react";
2
+ import * as React from "react";
3
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
4
+ import { cn } from "@/lib/utils";
5
+ import { useThemeVars } from "@/lib/theme-provider";
6
6
 
7
7
  /**
8
8
  * Tooltip — WealthX Design System
@@ -12,7 +12,9 @@ import { useThemeVars } from "@/lib/theme-provider"
12
12
  * WealthX overrides: bg-brand-secondary, text-brand-secondary-foreground, sharp corners (no rounded-md)
13
13
  */
14
14
 
15
- export type TooltipProviderProps = React.ComponentProps<typeof TooltipPrimitive.Provider>
15
+ export type TooltipProviderProps = React.ComponentProps<
16
+ typeof TooltipPrimitive.Provider
17
+ >;
16
18
 
17
19
  function TooltipProvider({
18
20
  delay = 0,
@@ -24,32 +26,34 @@ function TooltipProvider({
24
26
  delay={delay}
25
27
  {...props}
26
28
  />
27
- )
29
+ );
28
30
  }
29
31
 
30
- export type TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>
32
+ export type TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>;
31
33
 
32
- function Tooltip({
33
- ...props
34
- }: TooltipProps): ReactElement {
35
- return <TooltipPrimitive.Root data-slot="tooltip" {...props} />
34
+ function Tooltip({ ...props }: TooltipProps): ReactElement {
35
+ return <TooltipPrimitive.Root data-slot="tooltip" {...props} />;
36
36
  }
37
37
 
38
- export type TooltipTriggerProps = React.ComponentProps<typeof TooltipPrimitive.Trigger>
38
+ export type TooltipTriggerProps = React.ComponentProps<
39
+ typeof TooltipPrimitive.Trigger
40
+ >;
39
41
 
40
- function TooltipTrigger({
41
- ...props
42
- }: TooltipTriggerProps): ReactElement {
43
- return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
42
+ function TooltipTrigger({ ...props }: TooltipTriggerProps): ReactElement {
43
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
44
44
  }
45
45
 
46
- export type TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> & {
47
- sideOffset?: number
48
- }
46
+ export type TooltipContentProps = React.ComponentProps<
47
+ typeof TooltipPrimitive.Popup
48
+ > & {
49
+ sideOffset?: number;
50
+ side?: React.ComponentProps<typeof TooltipPrimitive.Positioner>["side"];
51
+ };
49
52
 
50
53
  function TooltipContent({
51
54
  className,
52
55
  sideOffset = 8,
56
+ side,
53
57
  children,
54
58
  style,
55
59
  ...props
@@ -57,24 +61,22 @@ function TooltipContent({
57
61
  const themeVars = useThemeVars();
58
62
  return (
59
63
  <TooltipPrimitive.Portal>
60
- <TooltipPrimitive.Positioner sideOffset={sideOffset}>
64
+ <TooltipPrimitive.Positioner sideOffset={sideOffset} side={side}>
61
65
  <TooltipPrimitive.Popup
62
66
  className={cn(
63
- "z-50 w-fit animate-in bg-brand-secondary px-3 py-1.5 text-xs text-balance text-brand-secondary-foreground fade-in-0 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 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards",
64
- className
67
+ "relative z-50 w-fit animate-in overflow-visible bg-brand-secondary px-3 py-1.5 text-caption text-balance text-brand-secondary-foreground fade-in-0 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 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards",
68
+ className,
65
69
  )}
66
70
  data-slot="tooltip-content"
67
71
  style={{ ...themeVars, ...style } as React.CSSProperties}
68
72
  {...props}
69
73
  >
70
74
  {children}
75
+ <TooltipPrimitive.Arrow className="z-50 size-2.5 rotate-45 bg-brand-secondary data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1 data-[side=top]:-bottom-1" />
71
76
  </TooltipPrimitive.Popup>
72
- <TooltipPrimitive.Arrow
73
- className="z-50 size-2.5 rotate-45 bg-brand-secondary"
74
- />
75
77
  </TooltipPrimitive.Positioner>
76
78
  </TooltipPrimitive.Portal>
77
- )
79
+ );
78
80
  }
79
81
 
80
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
82
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };