@wealthx/shadcn 1.0.2 → 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 -138
  2. package/CHANGELOG.md +12 -0
  3. package/README.md +82 -0
  4. package/dist/{chunk-6OJF6XRN.mjs → chunk-24FUO7TD.mjs} +4 -8
  5. package/dist/{chunk-4AJ5HWHD.mjs → chunk-2I5S2AMY.mjs} +3 -3
  6. package/dist/chunk-2SF672SZ.mjs +161 -0
  7. package/dist/{chunk-GPRJQ24C.mjs → chunk-34NWQURD.mjs} +2 -2
  8. package/dist/{chunk-MQ72DIBH.mjs → chunk-3GF7OVTP.mjs} +14 -5
  9. package/dist/chunk-3WMX6KWS.mjs +245 -0
  10. package/dist/{chunk-PMKODV6M.mjs → chunk-462HMNO4.mjs} +6 -10
  11. package/dist/chunk-4CX4SBRO.mjs +153 -0
  12. package/dist/chunk-4MN6UQHG.mjs +443 -0
  13. package/dist/chunk-5QQVZTVZ.mjs +233 -0
  14. package/dist/{chunk-BGP2N52Z.mjs → chunk-66MI7Q4B.mjs} +5 -5
  15. package/dist/chunk-6FCGKSZX.mjs +268 -0
  16. package/dist/{chunk-CGOKTPXU.mjs → chunk-6JQFUE5I.mjs} +20 -23
  17. package/dist/{chunk-Z3MK2KKZ.mjs → chunk-7DHU4VGG.mjs} +7 -3
  18. package/dist/{chunk-VZ2NR7L3.mjs → chunk-7PYJD5JI.mjs} +35 -27
  19. package/dist/{chunk-JU2RUWHF.mjs → chunk-7XJHLGUV.mjs} +1 -1
  20. package/dist/{chunk-BMFN37JH.mjs → chunk-7YAU5CY6.mjs} +1 -1
  21. package/dist/chunk-A56YQQHG.mjs +402 -0
  22. package/dist/chunk-AH52LG6N.mjs +315 -0
  23. package/dist/{chunk-SLWCCURD.mjs → chunk-CLIN5525.mjs} +8 -4
  24. package/dist/{chunk-3VQNJ235.mjs → chunk-CSDO6VBW.mjs} +7 -0
  25. package/dist/chunk-D4ILTPOG.mjs +293 -0
  26. package/dist/{chunk-HS7TFG7V.mjs → chunk-D6ID6M4V.mjs} +1 -1
  27. package/dist/chunk-DOH3EHX7.mjs +378 -0
  28. package/dist/{chunk-MJIEMGRD.mjs → chunk-EFRENWEJ.mjs} +9 -17
  29. package/dist/chunk-ERGGHC2V.mjs +185 -0
  30. package/dist/{chunk-OXQQNQZI.mjs → chunk-FEZKMUCF.mjs} +10 -1
  31. package/dist/{chunk-55CEW76V.mjs → chunk-FH6QVUVZ.mjs} +1 -1
  32. package/dist/chunk-FMAXJ2SI.mjs +71 -0
  33. package/dist/chunk-FZIXGLMV.mjs +173 -0
  34. package/dist/{chunk-DS2AMHN2.mjs → chunk-GYMYRIZP.mjs} +2 -2
  35. package/dist/{chunk-KQDD5MU3.mjs → chunk-H45TKD34.mjs} +5 -5
  36. package/dist/{chunk-BBJBJSXQ.mjs → chunk-J5UICVJS.mjs} +1 -1
  37. package/dist/{chunk-RL772EH7.mjs → chunk-JHJHG4GO.mjs} +4 -12
  38. package/dist/chunk-KMCGSZTX.mjs +177 -0
  39. package/dist/{chunk-FHNT55I5.mjs → chunk-KUDCQ4FI.mjs} +4 -4
  40. package/dist/chunk-LE6YFY6D.mjs +209 -0
  41. package/dist/{chunk-HUVTPUV2.mjs → chunk-LLVQKSU3.mjs} +23 -19
  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-NLCKVHWB.mjs +161 -0
  45. package/dist/{chunk-YN5SYTOO.mjs → chunk-NQPOYKAQ.mjs} +9 -5
  46. package/dist/{chunk-ZZV5JVNW.mjs → chunk-NSLMILBT.mjs} +3 -7
  47. package/dist/chunk-NXA3CZ7A.mjs +248 -0
  48. package/dist/chunk-OGOYQ7BG.mjs +150 -0
  49. package/dist/{chunk-3NQGYJEZ.mjs → chunk-P6AM5V7O.mjs} +10 -18
  50. package/dist/{chunk-CZ3BW5GL.mjs → chunk-P76HMUI6.mjs} +5 -11
  51. package/dist/chunk-PCPLO5HT.mjs +671 -0
  52. package/dist/chunk-PG6K5XEC.mjs +475 -0
  53. package/dist/chunk-PJHPSRYD.mjs +234 -0
  54. package/dist/{chunk-DDPA2XXS.mjs → chunk-PMB3A7V3.mjs} +2 -2
  55. package/dist/chunk-PR6V5XKM.mjs +209 -0
  56. package/dist/{chunk-46OFHMQA.mjs → chunk-Q76O3RIQ.mjs} +10 -6
  57. package/dist/chunk-QVKWW6KE.mjs +272 -0
  58. package/dist/chunk-RGU7HOEC.mjs +140 -0
  59. package/dist/{chunk-JF4PHPD5.mjs → chunk-RGVKLTLH.mjs} +4 -4
  60. package/dist/{chunk-VG6UF6UT.mjs → chunk-RP3SQYA3.mjs} +2 -2
  61. package/dist/chunk-RRBS6D63.mjs +163 -0
  62. package/dist/chunk-SMQ3DG25.mjs +285 -0
  63. package/dist/chunk-SPJ5KXW7.mjs +199 -0
  64. package/dist/chunk-SYOD63OZ.mjs +225 -0
  65. package/dist/chunk-UFYSFDER.mjs +42 -0
  66. package/dist/chunk-VACKZOMY.mjs +190 -0
  67. package/dist/chunk-VLQZANBF.mjs +42 -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-YKPROFLB.mjs +161 -0
  76. package/dist/{chunk-K76E2TQU.mjs → chunk-ZRO5JO3H.mjs} +107 -67
  77. package/dist/{chunk-VYMHBV6D.mjs → chunk-ZU4NV6RG.mjs} +5 -3
  78. package/dist/components/ui/accordion.js +40 -4
  79. package/dist/components/ui/accordion.mjs +2 -2
  80. package/dist/components/ui/add-column-modal.js +789 -0
  81. package/dist/components/ui/add-column-modal.mjs +17 -0
  82. package/dist/components/ui/add-lead-modal.js +647 -0
  83. package/dist/components/ui/add-lead-modal.mjs +16 -0
  84. package/dist/components/ui/ai-assistant-drawer.js +686 -0
  85. package/dist/components/ui/ai-assistant-drawer.mjs +16 -0
  86. package/dist/components/ui/alert-dialog.js +37 -5
  87. package/dist/components/ui/alert-dialog.mjs +4 -4
  88. package/dist/components/ui/alert.js +37 -11
  89. package/dist/components/ui/alert.mjs +2 -2
  90. package/dist/components/ui/avatar.js +36 -8
  91. package/dist/components/ui/avatar.mjs +2 -2
  92. package/dist/components/ui/backoffice-alert-history-chart.js +624 -0
  93. package/dist/components/ui/backoffice-alert-history-chart.mjs +16 -0
  94. package/dist/components/ui/backoffice-contact-history-chart.js +687 -0
  95. package/dist/components/ui/backoffice-contact-history-chart.mjs +16 -0
  96. package/dist/components/ui/badge.js +37 -2
  97. package/dist/components/ui/badge.mjs +2 -2
  98. package/dist/components/ui/borrowing-capacity-line-chart.js +639 -0
  99. package/dist/components/ui/borrowing-capacity-line-chart.mjs +16 -0
  100. package/dist/components/ui/button.js +35 -3
  101. package/dist/components/ui/button.mjs +2 -2
  102. package/dist/components/ui/calendar.js +43 -19
  103. package/dist/components/ui/calendar.mjs +3 -3
  104. package/dist/components/ui/card.js +40 -4
  105. package/dist/components/ui/card.mjs +2 -2
  106. package/dist/components/ui/cash-balance-line-chart.js +627 -0
  107. package/dist/components/ui/cash-balance-line-chart.mjs +16 -0
  108. package/dist/components/ui/cashflow-bar-chart.js +650 -0
  109. package/dist/components/ui/cashflow-bar-chart.mjs +16 -0
  110. package/dist/components/ui/checkbox.js +36 -5
  111. package/dist/components/ui/checkbox.mjs +2 -3
  112. package/dist/components/ui/chip.js +37 -2
  113. package/dist/components/ui/chip.mjs +3 -3
  114. package/dist/components/ui/combobox.js +280 -0
  115. package/dist/components/ui/combobox.mjs +28 -0
  116. package/dist/components/ui/data-table.js +160 -88
  117. package/dist/components/ui/data-table.mjs +10 -11
  118. package/dist/components/ui/date-picker.js +44 -20
  119. package/dist/components/ui/date-picker.mjs +6 -7
  120. package/dist/components/ui/dialog.js +44 -12
  121. package/dist/components/ui/dialog.mjs +4 -4
  122. package/dist/components/ui/drawer.js +46 -10
  123. package/dist/components/ui/drawer.mjs +3 -3
  124. package/dist/components/ui/dropdown-menu.js +40 -16
  125. package/dist/components/ui/dropdown-menu.mjs +3 -3
  126. package/dist/components/ui/empty.js +41 -5
  127. package/dist/components/ui/empty.mjs +2 -2
  128. package/dist/components/ui/expense-bar-chart.js +642 -0
  129. package/dist/components/ui/expense-bar-chart.mjs +16 -0
  130. package/dist/components/ui/field.js +53 -21
  131. package/dist/components/ui/field.mjs +4 -4
  132. package/dist/components/ui/financial-cards.js +1002 -0
  133. package/dist/components/ui/financial-cards.mjs +24 -0
  134. package/dist/components/ui/financial-drawers.js +637 -0
  135. package/dist/components/ui/financial-drawers.mjs +17 -0
  136. package/dist/components/ui/financial-primitives.js +218 -0
  137. package/dist/components/ui/financial-primitives.mjs +22 -0
  138. package/dist/components/ui/financial-sections.js +1422 -0
  139. package/dist/components/ui/financial-sections.mjs +30 -0
  140. package/dist/components/ui/form-primitives.js +682 -0
  141. package/dist/components/ui/form-primitives.mjs +19 -0
  142. package/dist/components/ui/income-bar-chart.js +641 -0
  143. package/dist/components/ui/income-bar-chart.mjs +16 -0
  144. package/dist/components/ui/input-group.js +43 -7
  145. package/dist/components/ui/input-group.mjs +5 -5
  146. package/dist/components/ui/input-otp.js +39 -3
  147. package/dist/components/ui/input-otp.mjs +2 -2
  148. package/dist/components/ui/input.js +34 -2
  149. package/dist/components/ui/input.mjs +2 -2
  150. package/dist/components/ui/kanban-column.js +1143 -0
  151. package/dist/components/ui/kanban-column.mjs +20 -0
  152. package/dist/components/ui/label.js +35 -7
  153. package/dist/components/ui/label.mjs +2 -2
  154. package/dist/components/ui/opportunity-card.js +960 -0
  155. package/dist/components/ui/opportunity-card.mjs +20 -0
  156. package/dist/components/ui/opportunity-edit-modals.js +3360 -0
  157. package/dist/components/ui/opportunity-edit-modals.mjs +37 -0
  158. package/dist/components/ui/opportunity-summary-tab.js +4365 -0
  159. package/dist/components/ui/opportunity-summary-tab.mjs +34 -0
  160. package/dist/components/ui/pagination.js +35 -3
  161. package/dist/components/ui/pagination.mjs +3 -3
  162. package/dist/components/ui/pipeline-alerts.js +103 -0
  163. package/dist/components/ui/pipeline-alerts.mjs +8 -0
  164. package/dist/components/ui/pipeline-board.js +1408 -0
  165. package/dist/components/ui/pipeline-board.mjs +24 -0
  166. package/dist/components/ui/pipeline-chart.js +216 -0
  167. package/dist/components/ui/pipeline-chart.mjs +10 -0
  168. package/dist/components/ui/pipeline-dialogs.js +1183 -0
  169. package/dist/components/ui/pipeline-dialogs.mjs +23 -0
  170. package/dist/components/ui/pipeline-primitives.js +300 -0
  171. package/dist/components/ui/pipeline-primitives.mjs +11 -0
  172. package/dist/components/ui/popover.js +45 -4
  173. package/dist/components/ui/popover.mjs +3 -3
  174. package/dist/components/ui/progress.js +33 -1
  175. package/dist/components/ui/progress.mjs +2 -2
  176. package/dist/components/ui/property-cashflow-doughnut-chart.js +523 -0
  177. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +16 -0
  178. package/dist/components/ui/property-debt-equity-doughnut-chart.js +521 -0
  179. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +16 -0
  180. package/dist/components/ui/property-mobile-estimate-line-chart.js +682 -0
  181. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +16 -0
  182. package/dist/components/ui/radio-group.js +33 -1
  183. package/dist/components/ui/radio-group.mjs +2 -2
  184. package/dist/components/ui/select.js +66 -26
  185. package/dist/components/ui/select.mjs +3 -3
  186. package/dist/components/ui/separator.js +33 -1
  187. package/dist/components/ui/separator.mjs +2 -2
  188. package/dist/components/ui/sheet.js +37 -9
  189. package/dist/components/ui/sheet.mjs +3 -3
  190. package/dist/components/ui/skeleton.js +33 -1
  191. package/dist/components/ui/skeleton.mjs +2 -2
  192. package/dist/components/ui/slider.js +86 -102
  193. package/dist/components/ui/slider.mjs +2 -2
  194. package/dist/components/ui/spinner.js +33 -1
  195. package/dist/components/ui/spinner.mjs +2 -2
  196. package/dist/components/ui/stage-timeline.js +579 -0
  197. package/dist/components/ui/stage-timeline.mjs +15 -0
  198. package/dist/components/ui/switch.js +37 -4
  199. package/dist/components/ui/switch.mjs +2 -3
  200. package/dist/components/ui/table.js +37 -5
  201. package/dist/components/ui/table.mjs +2 -2
  202. package/dist/components/ui/tabs.js +36 -12
  203. package/dist/components/ui/tabs.mjs +2 -2
  204. package/dist/components/ui/textarea.js +34 -2
  205. package/dist/components/ui/textarea.mjs +2 -2
  206. package/dist/components/ui/toggle-group.js +35 -4
  207. package/dist/components/ui/toggle-group.mjs +3 -4
  208. package/dist/components/ui/toggle.js +35 -4
  209. package/dist/components/ui/toggle.mjs +2 -3
  210. package/dist/components/ui/tooltip.js +51 -22
  211. package/dist/components/ui/tooltip.mjs +3 -3
  212. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +528 -0
  213. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +16 -0
  214. package/dist/components/ui/transactions-income-expense-bar-chart.js +516 -0
  215. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +16 -0
  216. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +528 -0
  217. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +16 -0
  218. package/dist/index.js +11613 -2868
  219. package/dist/index.mjs +377 -164
  220. package/dist/lib/theme-provider.js +10 -1
  221. package/dist/lib/theme-provider.mjs +1 -1
  222. package/dist/lib/typography.js +8 -0
  223. package/dist/lib/typography.mjs +3 -1
  224. package/dist/lib/utils.js +33 -1
  225. package/dist/lib/utils.mjs +1 -1
  226. package/dist/styles.css +1 -1
  227. package/package.json +169 -6
  228. package/src/components/index.tsx +323 -13
  229. package/src/components/ui/accordion.tsx +6 -3
  230. package/src/components/ui/add-column-modal.tsx +339 -0
  231. package/src/components/ui/add-lead-modal.tsx +290 -0
  232. package/src/components/ui/ai-assistant-drawer.tsx +408 -0
  233. package/src/components/ui/alert-dialog.tsx +80 -54
  234. package/src/components/ui/alert.tsx +28 -28
  235. package/src/components/ui/avatar.tsx +30 -29
  236. package/src/components/ui/backoffice-alert-history-chart.tsx +260 -0
  237. package/src/components/ui/backoffice-contact-history-chart.tsx +325 -0
  238. package/src/components/ui/badge.tsx +17 -15
  239. package/src/components/ui/borrowing-capacity-line-chart.tsx +357 -0
  240. package/src/components/ui/button.tsx +30 -27
  241. package/src/components/ui/calendar.tsx +53 -67
  242. package/src/components/ui/card.tsx +27 -24
  243. package/src/components/ui/cash-balance-line-chart.tsx +302 -0
  244. package/src/components/ui/cashflow-bar-chart.tsx +363 -0
  245. package/src/components/ui/chart-shared.tsx +261 -0
  246. package/src/components/ui/checkbox.tsx +30 -26
  247. package/src/components/ui/combobox.tsx +223 -0
  248. package/src/components/ui/data-table.tsx +160 -99
  249. package/src/components/ui/date-picker.tsx +0 -2
  250. package/src/components/ui/dialog.tsx +70 -60
  251. package/src/components/ui/drawer.tsx +57 -48
  252. package/src/components/ui/dropdown-menu.tsx +90 -82
  253. package/src/components/ui/empty.tsx +31 -27
  254. package/src/components/ui/expense-bar-chart.tsx +296 -0
  255. package/src/components/ui/field.tsx +70 -62
  256. package/src/components/ui/financial-cards.tsx +830 -0
  257. package/src/components/ui/financial-drawers.tsx +339 -0
  258. package/src/components/ui/financial-primitives.tsx +331 -0
  259. package/src/components/ui/financial-sections.tsx +672 -0
  260. package/src/components/ui/form-primitives.tsx +536 -0
  261. package/src/components/ui/income-bar-chart.tsx +297 -0
  262. package/src/components/ui/input-group.tsx +41 -34
  263. package/src/components/ui/input-otp.tsx +29 -24
  264. package/src/components/ui/input.tsx +8 -8
  265. package/src/components/ui/kanban-column.tsx +333 -0
  266. package/src/components/ui/label.tsx +9 -12
  267. package/src/components/ui/opportunity-card.tsx +616 -0
  268. package/src/components/ui/opportunity-edit-modals.tsx +2528 -0
  269. package/src/components/ui/opportunity-summary-tab.tsx +579 -0
  270. package/src/components/ui/pipeline-alerts.tsx +74 -0
  271. package/src/components/ui/pipeline-board.tsx +268 -0
  272. package/src/components/ui/pipeline-chart.tsx +173 -0
  273. package/src/components/ui/pipeline-dialogs.tsx +303 -0
  274. package/src/components/ui/pipeline-primitives.tsx +108 -0
  275. package/src/components/ui/popover.tsx +41 -36
  276. package/src/components/ui/property-cashflow-doughnut-chart.tsx +188 -0
  277. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +185 -0
  278. package/src/components/ui/property-mobile-estimate-line-chart.tsx +393 -0
  279. package/src/components/ui/select.tsx +65 -52
  280. package/src/components/ui/sheet.tsx +55 -52
  281. package/src/components/ui/slider.tsx +54 -77
  282. package/src/components/ui/stage-timeline.tsx +205 -0
  283. package/src/components/ui/switch.tsx +42 -29
  284. package/src/components/ui/table.tsx +28 -28
  285. package/src/components/ui/tabs.tsx +22 -28
  286. package/src/components/ui/textarea.tsx +8 -8
  287. package/src/components/ui/toggle-group.tsx +0 -2
  288. package/src/components/ui/toggle.tsx +13 -15
  289. package/src/components/ui/tooltip.tsx +30 -28
  290. package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +191 -0
  291. package/src/components/ui/transactions-income-expense-bar-chart.tsx +205 -0
  292. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +191 -0
  293. package/src/lib/theme-provider.tsx +10 -0
  294. package/src/lib/typography.ts +9 -0
  295. package/src/lib/utils.ts +41 -3
  296. package/src/styles/globals.css +371 -124
  297. package/src/styles/styles-css.ts +1 -1
  298. package/tsup.config.ts +32 -0
  299. package/dist/chunk-K74JRTJR.mjs +0 -105
  300. package/dist/chunk-V7CNWJT3.mjs +0 -10
@@ -11,47 +11,44 @@
11
11
  * - DropdownMenuRadioItem: rounded-sm → rounded-none; added data-checked:bg-primary/10
12
12
  * - DropdownMenuSubContent: rounded-md → rounded-none
13
13
  */
14
- import { type ReactElement } from "react"
15
- import * as React from "react"
16
- import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
17
- import { Menu as MenuPrimitive } from "@base-ui/react/menu"
18
- import { cn } from "@/lib/utils"
19
- import { useThemeVars } from "@/lib/theme-provider"
14
+ import { type ReactElement } from "react";
15
+ import * as React from "react";
16
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
17
+ import { Menu as MenuPrimitive } from "@base-ui/react/menu";
18
+ import { cn } from "@/lib/utils";
19
+ import { useThemeVars } from "@/lib/theme-provider";
20
20
 
21
- export type DropdownMenuProps = React.ComponentProps<typeof MenuPrimitive.Root>
21
+ export type DropdownMenuProps = React.ComponentProps<typeof MenuPrimitive.Root>;
22
22
 
23
- function DropdownMenu({
24
- ...props
25
- }: DropdownMenuProps): ReactElement {
26
- return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />
23
+ function DropdownMenu({ ...props }: DropdownMenuProps): ReactElement {
24
+ return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
27
25
  }
28
26
 
29
- export type DropdownMenuPortalProps = React.ComponentProps<typeof MenuPrimitive.Portal>
27
+ export type DropdownMenuPortalProps = React.ComponentProps<
28
+ typeof MenuPrimitive.Portal
29
+ >;
30
30
 
31
31
  function DropdownMenuPortal({
32
32
  ...props
33
33
  }: DropdownMenuPortalProps): ReactElement {
34
- return (
35
- <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
36
- )
34
+ return <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;
37
35
  }
38
36
 
39
- export type DropdownMenuTriggerProps = React.ComponentProps<typeof MenuPrimitive.Trigger>
37
+ export type DropdownMenuTriggerProps = React.ComponentProps<
38
+ typeof MenuPrimitive.Trigger
39
+ >;
40
40
 
41
41
  function DropdownMenuTrigger({
42
42
  ...props
43
43
  }: DropdownMenuTriggerProps): ReactElement {
44
- return (
45
- <MenuPrimitive.Trigger
46
- data-slot="dropdown-menu-trigger"
47
- {...props}
48
- />
49
- )
44
+ return <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;
50
45
  }
51
46
 
52
- export type DropdownMenuContentProps = React.ComponentProps<typeof MenuPrimitive.Popup> & {
53
- sideOffset?: number
54
- }
47
+ export type DropdownMenuContentProps = React.ComponentProps<
48
+ typeof MenuPrimitive.Popup
49
+ > & {
50
+ sideOffset?: number;
51
+ };
55
52
 
56
53
  function DropdownMenuContent({
57
54
  className,
@@ -66,7 +63,7 @@ function DropdownMenuContent({
66
63
  <MenuPrimitive.Popup
67
64
  className={cn(
68
65
  "z-50 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-none border bg-popover p-1 text-popover-foreground shadow-md 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
69
- className
66
+ className,
70
67
  )}
71
68
  data-slot="dropdown-menu-content"
72
69
  style={{ ...themeVars, ...style } as React.CSSProperties}
@@ -74,23 +71,23 @@ function DropdownMenuContent({
74
71
  />
75
72
  </MenuPrimitive.Positioner>
76
73
  </MenuPrimitive.Portal>
77
- )
74
+ );
78
75
  }
79
76
 
80
- export type DropdownMenuGroupProps = React.ComponentProps<typeof MenuPrimitive.Group>
77
+ export type DropdownMenuGroupProps = React.ComponentProps<
78
+ typeof MenuPrimitive.Group
79
+ >;
81
80
 
82
- function DropdownMenuGroup({
83
- ...props
84
- }: DropdownMenuGroupProps): ReactElement {
85
- return (
86
- <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
87
- )
81
+ function DropdownMenuGroup({ ...props }: DropdownMenuGroupProps): ReactElement {
82
+ return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;
88
83
  }
89
84
 
90
- export type DropdownMenuItemProps = React.ComponentProps<typeof MenuPrimitive.Item> & {
91
- inset?: boolean
92
- variant?: "default" | "destructive"
93
- }
85
+ export type DropdownMenuItemProps = React.ComponentProps<
86
+ typeof MenuPrimitive.Item
87
+ > & {
88
+ inset?: boolean;
89
+ variant?: "default" | "destructive";
90
+ };
94
91
 
95
92
  function DropdownMenuItem({
96
93
  className,
@@ -101,18 +98,20 @@ function DropdownMenuItem({
101
98
  return (
102
99
  <MenuPrimitive.Item
103
100
  className={cn(
104
- "relative flex cursor-default items-center gap-2 rounded-none px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
105
- className
101
+ "relative flex cursor-default items-center gap-2 rounded-none px-2 py-1.5 text-body-small outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
102
+ className,
106
103
  )}
107
104
  data-inset={inset}
108
105
  data-slot="dropdown-menu-item"
109
106
  data-variant={variant}
110
107
  {...props}
111
108
  />
112
- )
109
+ );
113
110
  }
114
111
 
115
- export type DropdownMenuCheckboxItemProps = React.ComponentProps<typeof MenuPrimitive.CheckboxItem>
112
+ export type DropdownMenuCheckboxItemProps = React.ComponentProps<
113
+ typeof MenuPrimitive.CheckboxItem
114
+ >;
116
115
 
117
116
  function DropdownMenuCheckboxItem({
118
117
  className,
@@ -124,8 +123,8 @@ function DropdownMenuCheckboxItem({
124
123
  <MenuPrimitive.CheckboxItem
125
124
  checked={checked}
126
125
  className={cn(
127
- "relative flex cursor-default items-center gap-2 rounded-none py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-checked:bg-primary/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
128
- className
126
+ "relative flex cursor-default items-center gap-2 rounded-none py-1.5 pr-2 pl-8 text-body-small outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-checked:bg-primary/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
127
+ className,
129
128
  )}
130
129
  data-slot="dropdown-menu-checkbox-item"
131
130
  {...props}
@@ -137,10 +136,12 @@ function DropdownMenuCheckboxItem({
137
136
  </span>
138
137
  {children}
139
138
  </MenuPrimitive.CheckboxItem>
140
- )
139
+ );
141
140
  }
142
141
 
143
- export type DropdownMenuRadioGroupProps = React.ComponentProps<typeof MenuPrimitive.RadioGroup>
142
+ export type DropdownMenuRadioGroupProps = React.ComponentProps<
143
+ typeof MenuPrimitive.RadioGroup
144
+ >;
144
145
 
145
146
  function DropdownMenuRadioGroup({
146
147
  ...props
@@ -150,10 +151,12 @@ function DropdownMenuRadioGroup({
150
151
  data-slot="dropdown-menu-radio-group"
151
152
  {...props}
152
153
  />
153
- )
154
+ );
154
155
  }
155
156
 
156
- export type DropdownMenuRadioItemProps = React.ComponentProps<typeof MenuPrimitive.RadioItem>
157
+ export type DropdownMenuRadioItemProps = React.ComponentProps<
158
+ typeof MenuPrimitive.RadioItem
159
+ >;
157
160
 
158
161
  function DropdownMenuRadioItem({
159
162
  className,
@@ -163,8 +166,8 @@ function DropdownMenuRadioItem({
163
166
  return (
164
167
  <MenuPrimitive.RadioItem
165
168
  className={cn(
166
- "relative flex cursor-default items-center gap-2 rounded-none py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-checked:bg-primary/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
167
- className
169
+ "relative flex cursor-default items-center gap-2 rounded-none py-1.5 pr-2 pl-8 text-body-small outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-checked:bg-primary/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
170
+ className,
168
171
  )}
169
172
  data-slot="dropdown-menu-radio-item"
170
173
  {...props}
@@ -176,12 +179,14 @@ function DropdownMenuRadioItem({
176
179
  </span>
177
180
  {children}
178
181
  </MenuPrimitive.RadioItem>
179
- )
182
+ );
180
183
  }
181
184
 
182
- export type DropdownMenuLabelProps = React.ComponentProps<typeof MenuPrimitive.GroupLabel> & {
183
- inset?: boolean
184
- }
185
+ export type DropdownMenuLabelProps = React.ComponentProps<
186
+ typeof MenuPrimitive.GroupLabel
187
+ > & {
188
+ inset?: boolean;
189
+ };
185
190
 
186
191
  function DropdownMenuLabel({
187
192
  className,
@@ -190,18 +195,17 @@ function DropdownMenuLabel({
190
195
  }: DropdownMenuLabelProps): ReactElement {
191
196
  return (
192
197
  <MenuPrimitive.GroupLabel
193
- className={cn(
194
- "px-2 py-1.5 text-sm font-medium data-inset:pl-8",
195
- className
196
- )}
198
+ className={cn("px-2 py-1.5 text-label-medium data-inset:pl-8", className)}
197
199
  data-inset={inset}
198
200
  data-slot="dropdown-menu-label"
199
201
  {...props}
200
202
  />
201
- )
203
+ );
202
204
  }
203
205
 
204
- export type DropdownMenuSeparatorProps = React.ComponentProps<typeof MenuPrimitive.Separator>
206
+ export type DropdownMenuSeparatorProps = React.ComponentProps<
207
+ typeof MenuPrimitive.Separator
208
+ >;
205
209
 
206
210
  function DropdownMenuSeparator({
207
211
  className,
@@ -213,10 +217,10 @@ function DropdownMenuSeparator({
213
217
  data-slot="dropdown-menu-separator"
214
218
  {...props}
215
219
  />
216
- )
220
+ );
217
221
  }
218
222
 
219
- export type DropdownMenuShortcutProps = React.ComponentProps<"span">
223
+ export type DropdownMenuShortcutProps = React.ComponentProps<"span">;
220
224
 
221
225
  function DropdownMenuShortcut({
222
226
  className,
@@ -225,26 +229,28 @@ function DropdownMenuShortcut({
225
229
  return (
226
230
  <span
227
231
  className={cn(
228
- "ml-auto text-xs tracking-widest text-muted-foreground",
229
- className
232
+ "ml-auto text-caption tracking-widest text-muted-foreground",
233
+ className,
230
234
  )}
231
235
  data-slot="dropdown-menu-shortcut"
232
236
  {...props}
233
237
  />
234
- )
238
+ );
235
239
  }
236
240
 
237
- export type DropdownMenuSubProps = React.ComponentProps<typeof MenuPrimitive.SubmenuRoot>
241
+ export type DropdownMenuSubProps = React.ComponentProps<
242
+ typeof MenuPrimitive.SubmenuRoot
243
+ >;
238
244
 
239
- function DropdownMenuSub({
240
- ...props
241
- }: DropdownMenuSubProps): ReactElement {
242
- return <MenuPrimitive.SubmenuRoot data-slot="dropdown-menu-sub" {...props} />
245
+ function DropdownMenuSub({ ...props }: DropdownMenuSubProps): ReactElement {
246
+ return <MenuPrimitive.SubmenuRoot data-slot="dropdown-menu-sub" {...props} />;
243
247
  }
244
248
 
245
- export type DropdownMenuSubTriggerProps = React.ComponentProps<typeof MenuPrimitive.SubmenuTrigger> & {
246
- inset?: boolean
247
- }
249
+ export type DropdownMenuSubTriggerProps = React.ComponentProps<
250
+ typeof MenuPrimitive.SubmenuTrigger
251
+ > & {
252
+ inset?: boolean;
253
+ };
248
254
 
249
255
  function DropdownMenuSubTrigger({
250
256
  className,
@@ -255,8 +261,8 @@ function DropdownMenuSubTrigger({
255
261
  return (
256
262
  <MenuPrimitive.SubmenuTrigger
257
263
  className={cn(
258
- "flex cursor-default items-center gap-2 rounded-none px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
259
- className
264
+ "flex cursor-default items-center gap-2 rounded-none px-2 py-1.5 text-body-small outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
265
+ className,
260
266
  )}
261
267
  data-inset={inset}
262
268
  data-slot="dropdown-menu-sub-trigger"
@@ -265,12 +271,14 @@ function DropdownMenuSubTrigger({
265
271
  {children}
266
272
  <ChevronRightIcon className="ml-auto size-4" />
267
273
  </MenuPrimitive.SubmenuTrigger>
268
- )
274
+ );
269
275
  }
270
276
 
271
- export type DropdownMenuSubContentProps = React.ComponentProps<typeof MenuPrimitive.Popup> & {
272
- sideOffset?: number
273
- }
277
+ export type DropdownMenuSubContentProps = React.ComponentProps<
278
+ typeof MenuPrimitive.Popup
279
+ > & {
280
+ sideOffset?: number;
281
+ };
274
282
 
275
283
  function DropdownMenuSubContent({
276
284
  className,
@@ -285,7 +293,7 @@ function DropdownMenuSubContent({
285
293
  <MenuPrimitive.Popup
286
294
  className={cn(
287
295
  "z-50 min-w-[8rem] overflow-hidden rounded-none border bg-popover p-1 text-popover-foreground shadow-lg 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
288
- className
296
+ className,
289
297
  )}
290
298
  data-slot="dropdown-menu-sub-content"
291
299
  style={{ ...themeVars, ...style } as React.CSSProperties}
@@ -293,7 +301,7 @@ function DropdownMenuSubContent({
293
301
  />
294
302
  </MenuPrimitive.Positioner>
295
303
  </MenuPrimitive.Portal>
296
- )
304
+ );
297
305
  }
298
306
 
299
307
  export {
@@ -312,4 +320,4 @@ export {
312
320
  DropdownMenuSub,
313
321
  DropdownMenuSubTrigger,
314
322
  DropdownMenuSubContent,
315
- }
323
+ };
@@ -1,7 +1,7 @@
1
- import { type ReactElement } from "react"
2
- import * as React from "react"
3
- import { cva, type VariantProps } from "class-variance-authority"
4
- 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 { cn } from "@/lib/utils";
5
5
 
6
6
  /**
7
7
  * Empty — WealthX DS (shadcn registry base)
@@ -11,34 +11,34 @@ import { cn } from "@/lib/utils"
11
11
  * - `rounded-lg` removed — sharp corners per WealthX DS
12
12
  */
13
13
 
14
- export type EmptyProps = React.ComponentProps<"div">
14
+ export type EmptyProps = React.ComponentProps<"div">;
15
15
 
16
16
  function Empty({ className, ...props }: EmptyProps): ReactElement {
17
17
  return (
18
18
  <div
19
19
  className={cn(
20
20
  "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 border border-dashed p-6 text-center text-balance md:p-12",
21
- className
21
+ className,
22
22
  )}
23
23
  data-slot="empty"
24
24
  {...props}
25
25
  />
26
- )
26
+ );
27
27
  }
28
28
 
29
- export type EmptyHeaderProps = React.ComponentProps<"div">
29
+ export type EmptyHeaderProps = React.ComponentProps<"div">;
30
30
 
31
31
  function EmptyHeader({ className, ...props }: EmptyHeaderProps): ReactElement {
32
32
  return (
33
33
  <div
34
34
  className={cn(
35
35
  "flex max-w-sm flex-col items-center gap-2 text-center",
36
- className
36
+ className,
37
37
  )}
38
38
  data-slot="empty-header"
39
39
  {...props}
40
40
  />
41
- )
41
+ );
42
42
  }
43
43
 
44
44
  const emptyMediaVariants = cva(
@@ -53,10 +53,11 @@ const emptyMediaVariants = cva(
53
53
  defaultVariants: {
54
54
  variant: "default",
55
55
  },
56
- }
57
- )
56
+ },
57
+ );
58
58
 
59
- export type EmptyMediaProps = React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>
59
+ export type EmptyMediaProps = React.ComponentProps<"div"> &
60
+ VariantProps<typeof emptyMediaVariants>;
60
61
 
61
62
  function EmptyMedia({
62
63
  className,
@@ -70,22 +71,22 @@ function EmptyMedia({
70
71
  data-variant={variant}
71
72
  {...props}
72
73
  />
73
- )
74
+ );
74
75
  }
75
76
 
76
- export type EmptyTitleProps = React.ComponentProps<"div">
77
+ export type EmptyTitleProps = React.ComponentProps<"div">;
77
78
 
78
79
  function EmptyTitle({ className, ...props }: EmptyTitleProps): ReactElement {
79
80
  return (
80
81
  <div
81
- className={cn("text-lg font-medium tracking-tight", className)}
82
+ className={cn("text-h5", className)}
82
83
  data-slot="empty-title"
83
84
  {...props}
84
85
  />
85
- )
86
+ );
86
87
  }
87
88
 
88
- export type EmptyDescriptionProps = React.ComponentProps<"div">
89
+ export type EmptyDescriptionProps = React.ComponentProps<"div">;
89
90
 
90
91
  function EmptyDescription({
91
92
  className,
@@ -94,28 +95,31 @@ function EmptyDescription({
94
95
  return (
95
96
  <div
96
97
  className={cn(
97
- "text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
98
- className
98
+ "text-body-small leading-relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
99
+ className,
99
100
  )}
100
101
  data-slot="empty-description"
101
102
  {...props}
102
103
  />
103
- )
104
+ );
104
105
  }
105
106
 
106
- export type EmptyContentProps = React.ComponentProps<"div">
107
+ export type EmptyContentProps = React.ComponentProps<"div">;
107
108
 
108
- function EmptyContent({ className, ...props }: EmptyContentProps): ReactElement {
109
+ function EmptyContent({
110
+ className,
111
+ ...props
112
+ }: EmptyContentProps): ReactElement {
109
113
  return (
110
114
  <div
111
115
  className={cn(
112
- "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance",
113
- className
116
+ "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-body-small text-balance",
117
+ className,
114
118
  )}
115
119
  data-slot="empty-content"
116
120
  {...props}
117
121
  />
118
- )
122
+ );
119
123
  }
120
124
 
121
125
  export {
@@ -125,4 +129,4 @@ export {
125
129
  EmptyDescription,
126
130
  EmptyContent,
127
131
  EmptyMedia,
128
- }
132
+ };