@wealthx/shadcn 1.3.2 → 1.3.3

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 (313) hide show
  1. package/.turbo/turbo-build.log +262 -226
  2. package/CHANGELOG.md +6 -0
  3. package/dist/{chunk-2UM72RJ7.mjs → chunk-2D3HQPFN.mjs} +12 -10
  4. package/dist/chunk-2EM2FRU6.mjs +613 -0
  5. package/dist/{chunk-FH6QVUVZ.mjs → chunk-2GIYVERS.mjs} +2 -2
  6. package/dist/chunk-2P7HP7LR.mjs +68 -0
  7. package/dist/{chunk-HISNT2MG.mjs → chunk-37AE3OM5.mjs} +5 -5
  8. package/dist/{chunk-HBZLGDIN.mjs → chunk-3ERBUVHC.mjs} +169 -110
  9. package/dist/{chunk-C7CQJNMR.mjs → chunk-3VDET466.mjs} +2 -2
  10. package/dist/{chunk-462HMNO4.mjs → chunk-4MM7LHM5.mjs} +2 -2
  11. package/dist/{chunk-QMY3AZJH.mjs → chunk-4Z66LMIQ.mjs} +2 -2
  12. package/dist/{chunk-U5X52X37.mjs → chunk-57ZXILTS.mjs} +6 -6
  13. package/dist/{chunk-3OYFOX3X.mjs → chunk-5VOTTIXF.mjs} +2 -2
  14. package/dist/{chunk-LBMRIB3G.mjs → chunk-6AJUS7VX.mjs} +1 -1
  15. package/dist/{chunk-OODBHKG7.mjs → chunk-6HIOM2HL.mjs} +7 -4
  16. package/dist/{chunk-BDYZCBRT.mjs → chunk-6QAFGZC2.mjs} +2 -2
  17. package/dist/{chunk-U4NDAF2P.mjs → chunk-6TX73WG7.mjs} +1 -1
  18. package/dist/{chunk-GD4BJDJR.mjs → chunk-7BTFGCFC.mjs} +4 -4
  19. package/dist/{chunk-FAKPBKLT.mjs → chunk-7GWRPXHD.mjs} +4 -4
  20. package/dist/{chunk-NMOI6CQD.mjs → chunk-7YI3HEBH.mjs} +5 -5
  21. package/dist/{chunk-T4BJLT57.mjs → chunk-AE7MASLF.mjs} +5 -5
  22. package/dist/{chunk-VLQZANBF.mjs → chunk-AFML43VJ.mjs} +6 -1
  23. package/dist/chunk-BBXSNDS3.mjs +260 -0
  24. package/dist/chunk-BOW7U26Y.mjs +203 -0
  25. package/dist/{chunk-34NWQURD.mjs → chunk-BS75ICOO.mjs} +2 -2
  26. package/dist/chunk-D2NSIIXG.mjs +394 -0
  27. package/dist/{chunk-3GF7OVTP.mjs → chunk-DGNHGNYH.mjs} +2 -2
  28. package/dist/{chunk-VLARHE5V.mjs → chunk-DMXYRCHM.mjs} +6 -6
  29. package/dist/{chunk-OGOYQ7BG.mjs → chunk-DQB4EPIS.mjs} +1 -1
  30. package/dist/{chunk-MIZQHHUO.mjs → chunk-FL6DZFJK.mjs} +106 -38
  31. package/dist/{chunk-I3RZS7V2.mjs → chunk-FLL633WS.mjs} +19 -33
  32. package/dist/{chunk-PBL4OQV2.mjs → chunk-FTPBQVQ6.mjs} +4 -4
  33. package/dist/chunk-FYPSTTEJ.mjs +169 -0
  34. package/dist/{chunk-6O6KD7CE.mjs → chunk-G27TSQLQ.mjs} +6 -6
  35. package/dist/{chunk-66MI7Q4B.mjs → chunk-GT3RU6GA.mjs} +2 -2
  36. package/dist/{chunk-D6ID6M4V.mjs → chunk-GTAVSBDO.mjs} +2 -2
  37. package/dist/{chunk-24FUO7TD.mjs → chunk-H6NQTIF4.mjs} +2 -2
  38. package/dist/{chunk-7DHU4VGG.mjs → chunk-HK4HUQTV.mjs} +2 -2
  39. package/dist/chunk-I4KVSZCH.mjs +101 -0
  40. package/dist/{chunk-RGVKLTLH.mjs → chunk-IKXYTCSB.mjs} +2 -2
  41. package/dist/{chunk-Y6DWJSKZ.mjs → chunk-ISUA7DSB.mjs} +1 -1
  42. package/dist/{chunk-2A5RRQGG.mjs → chunk-JD3YWRNP.mjs} +10 -14
  43. package/dist/{chunk-J5UICVJS.mjs → chunk-JPGL36WQ.mjs} +2 -2
  44. package/dist/{chunk-7XJHLGUV.mjs → chunk-JTK6VJXY.mjs} +2 -2
  45. package/dist/{chunk-7YAU5CY6.mjs → chunk-JVMXMFBB.mjs} +2 -2
  46. package/dist/{chunk-IAE3F7DR.mjs → chunk-JZY6TNIS.mjs} +21 -21
  47. package/dist/{chunk-K5A5L6T2.mjs → chunk-K4KOD3KR.mjs} +12 -12
  48. package/dist/{chunk-MBON7YRJ.mjs → chunk-K5QV4TT6.mjs} +3 -3
  49. package/dist/{chunk-IHMFS7NZ.mjs → chunk-K5VHK7CM.mjs} +21 -21
  50. package/dist/{chunk-RJI6GKVF.mjs → chunk-KCWNDYPZ.mjs} +5 -5
  51. package/dist/{chunk-UFYSFDER.mjs → chunk-KFH36NKF.mjs} +1 -1
  52. package/dist/{chunk-EBXQWIYG.mjs → chunk-KLTACJ2G.mjs} +5 -5
  53. package/dist/{chunk-3TTACBDP.mjs → chunk-KWD6GANL.mjs} +4 -4
  54. package/dist/{chunk-IOJRDS6V.mjs → chunk-L4NSRQ3T.mjs} +218 -147
  55. package/dist/{chunk-GYMYRIZP.mjs → chunk-LBTHZSBT.mjs} +2 -2
  56. package/dist/{chunk-AMQZRHEZ.mjs → chunk-LQULK2E3.mjs} +5 -5
  57. package/dist/{chunk-YJG55G2H.mjs → chunk-LR6LHDP3.mjs} +5 -5
  58. package/dist/{chunk-7PV3IWCN.mjs → chunk-M4VYX2PV.mjs} +19 -1
  59. package/dist/{chunk-P76HMUI6.mjs → chunk-MDUKXXIL.mjs} +2 -2
  60. package/dist/{chunk-LV35NGVG.mjs → chunk-N6Q5IPKT.mjs} +9 -9
  61. package/dist/{chunk-DOEO3CDL.mjs → chunk-NB3ZL36B.mjs} +1 -1
  62. package/dist/{chunk-XREGSKX3.mjs → chunk-NOOEKOWY.mjs} +5 -5
  63. package/dist/{chunk-NL3ZO62D.mjs → chunk-NT4FX27K.mjs} +1 -1
  64. package/dist/{chunk-QZ4RE6NA.mjs → chunk-NTYQWVLI.mjs} +6 -6
  65. package/dist/{chunk-ERGGHC2V.mjs → chunk-OEOOYMC2.mjs} +2 -2
  66. package/dist/{chunk-4GAWMKMI.mjs → chunk-OIKBW2QD.mjs} +291 -54
  67. package/dist/{chunk-DUJTAXMH.mjs → chunk-OKTJFDPN.mjs} +6 -6
  68. package/dist/chunk-OLKMCXAR.mjs +1219 -0
  69. package/dist/{chunk-EI5F6FMT.mjs → chunk-OWFQSXVD.mjs} +3 -3
  70. package/dist/{chunk-6DZEXFNB.mjs → chunk-P2N2PEFY.mjs} +3 -3
  71. package/dist/{chunk-NSLMILBT.mjs → chunk-P7CEBZM6.mjs} +2 -2
  72. package/dist/{chunk-7S5AESZO.mjs → chunk-PNRUH7JY.mjs} +6 -6
  73. package/dist/{chunk-ZU4NV6RG.mjs → chunk-PNSYFE3K.mjs} +2 -2
  74. package/dist/{chunk-JKGDCQTZ.mjs → chunk-QTRSCVQ3.mjs} +5 -5
  75. package/dist/{chunk-ABFDMHOR.mjs → chunk-QX7IFQSF.mjs} +5 -5
  76. package/dist/{chunk-CFMQP5QS.mjs → chunk-QXKGOMUX.mjs} +6 -6
  77. package/dist/{chunk-NQPOYKAQ.mjs → chunk-R2ON6CAN.mjs} +2 -2
  78. package/dist/{chunk-DBHJ5KC3.mjs → chunk-R4HCRDU5.mjs} +1 -1
  79. package/dist/{chunk-EWRB4PAD.mjs → chunk-RCAOCHWA.mjs} +14 -14
  80. package/dist/{chunk-EFRENWEJ.mjs → chunk-RSUIPKGX.mjs} +2 -2
  81. package/dist/{chunk-DGHAXJBN.mjs → chunk-S2FKV4M5.mjs} +5 -5
  82. package/dist/{chunk-RGU7HOEC.mjs → chunk-SET2ANTY.mjs} +5 -7
  83. package/dist/chunk-SFH2NJEJ.mjs +47 -0
  84. package/dist/{chunk-6AW4KJHE.mjs → chunk-SIVYAI3M.mjs} +12 -12
  85. package/dist/{chunk-5FQIKDKP.mjs → chunk-THVO2N47.mjs} +8 -8
  86. package/dist/{chunk-JMHR3YGZ.mjs → chunk-TLAWKTSA.mjs} +3 -3
  87. package/dist/{chunk-HVY6KCCF.mjs → chunk-TOWTPLRC.mjs} +68 -72
  88. package/dist/{chunk-6JQFUE5I.mjs → chunk-UALR6JGV.mjs} +2 -2
  89. package/dist/{chunk-N6TNTQL6.mjs → chunk-UJZ4UHWI.mjs} +9 -11
  90. package/dist/{chunk-MARPPFOJ.mjs → chunk-UNACI2YK.mjs} +2 -2
  91. package/dist/{chunk-3NCUZIFP.mjs → chunk-V6XGXYCJ.mjs} +7 -7
  92. package/dist/chunk-VB5M6OZQ.mjs +57 -0
  93. package/dist/{chunk-5IS7G74I.mjs → chunk-VY5NEUP7.mjs} +6 -6
  94. package/dist/{chunk-JHJHG4GO.mjs → chunk-WE4YKBDE.mjs} +2 -2
  95. package/dist/{chunk-BKNFWEH2.mjs → chunk-WL6WVV47.mjs} +3 -3
  96. package/dist/{chunk-FWCSY2DS.mjs → chunk-WNQUEZJF.mjs} +22 -1
  97. package/dist/{chunk-2Y7YJKPE.mjs → chunk-WZ6UJCBL.mjs} +1 -1
  98. package/dist/{chunk-UMTOX62O.mjs → chunk-XYPW2XA5.mjs} +13 -10
  99. package/dist/chunk-Y2MTAVAK.mjs +34 -0
  100. package/dist/{chunk-6CR5N2JW.mjs → chunk-YCWLFG27.mjs} +6 -6
  101. package/dist/{chunk-PU4YZQXV.mjs → chunk-YE67AALL.mjs} +12 -12
  102. package/dist/{chunk-M3FV7LOK.mjs → chunk-YEWNFK5S.mjs} +6 -1
  103. package/dist/{chunk-R3VSPKNP.mjs → chunk-YIZHS72Z.mjs} +11 -12
  104. package/dist/{chunk-7PYJD5JI.mjs → chunk-ZEDMKQK2.mjs} +2 -2
  105. package/dist/{chunk-N2PT566P.mjs → chunk-ZFCDYW6N.mjs} +4 -4
  106. package/dist/chunk-ZGQIVGIN.mjs +57 -0
  107. package/dist/{chunk-Q2BGOAMG.mjs → chunk-ZKWXDQDG.mjs} +4 -4
  108. package/dist/{chunk-GHC7LLUX.mjs → chunk-ZOWL2L5J.mjs} +5 -5
  109. package/dist/components/ui/accordion.mjs +3 -3
  110. package/dist/components/ui/add-column-modal.js +2 -2
  111. package/dist/components/ui/add-column-modal.mjs +10 -10
  112. package/dist/components/ui/add-lead-modal.js +424 -82
  113. package/dist/components/ui/add-lead-modal.mjs +12 -9
  114. package/dist/components/ui/advisor-card.js +2 -2
  115. package/dist/components/ui/advisor-card.mjs +8 -8
  116. package/dist/components/ui/ai-assistant-drawer.js +2 -2
  117. package/dist/components/ui/ai-assistant-drawer.mjs +9 -9
  118. package/dist/components/ui/ai-builder.js +958 -0
  119. package/dist/components/ui/ai-builder.mjs +25 -0
  120. package/dist/components/ui/ai-conversations.js +2045 -0
  121. package/dist/components/ui/ai-conversations.mjs +41 -0
  122. package/dist/components/ui/alert-dialog.js +2 -2
  123. package/dist/components/ui/alert-dialog.mjs +5 -5
  124. package/dist/components/ui/alert.mjs +3 -3
  125. package/dist/components/ui/appointment-action-dialogs.js +19 -3
  126. package/dist/components/ui/appointment-action-dialogs.mjs +15 -14
  127. package/dist/components/ui/appointment-availability-settings.js +181 -111
  128. package/dist/components/ui/appointment-availability-settings.mjs +20 -18
  129. package/dist/components/ui/appointment-book-dialog.js +113 -24
  130. package/dist/components/ui/appointment-book-dialog.mjs +21 -20
  131. package/dist/components/ui/appointment-calendar-view.js +19 -3
  132. package/dist/components/ui/appointment-calendar-view.mjs +10 -9
  133. package/dist/components/ui/appointment-detail-sheet.js +19 -3
  134. package/dist/components/ui/appointment-detail-sheet.mjs +18 -17
  135. package/dist/components/ui/appointment-gmail-connect.js +49 -89
  136. package/dist/components/ui/appointment-gmail-connect.mjs +8 -9
  137. package/dist/components/ui/appointment-mini-card.js +2 -2
  138. package/dist/components/ui/appointment-mini-card.mjs +6 -6
  139. package/dist/components/ui/appointment-time-slot-picker.mjs +6 -6
  140. package/dist/components/ui/appointment-upcoming-card.js +19 -3
  141. package/dist/components/ui/appointment-upcoming-card.mjs +15 -14
  142. package/dist/components/ui/auth-logo.js +95 -0
  143. package/dist/components/ui/auth-logo.mjs +8 -0
  144. package/dist/components/ui/auth-page-layout.js +108 -0
  145. package/dist/components/ui/auth-page-layout.mjs +8 -0
  146. package/dist/components/ui/avatar.mjs +3 -3
  147. package/dist/components/ui/backoffice-alert-history-chart.js +2 -2
  148. package/dist/components/ui/backoffice-alert-history-chart.mjs +9 -9
  149. package/dist/components/ui/backoffice-alerts-chart.js +2 -2
  150. package/dist/components/ui/backoffice-alerts-chart.mjs +11 -11
  151. package/dist/components/ui/backoffice-connections-chart.js +2 -2
  152. package/dist/components/ui/backoffice-connections-chart.mjs +11 -11
  153. package/dist/components/ui/backoffice-contact-history-chart.js +2 -2
  154. package/dist/components/ui/backoffice-contact-history-chart.mjs +9 -9
  155. package/dist/components/ui/badge.mjs +4 -4
  156. package/dist/components/ui/borrowing-capacity-line-chart.js +145 -132
  157. package/dist/components/ui/borrowing-capacity-line-chart.mjs +9 -9
  158. package/dist/components/ui/button.js +2 -2
  159. package/dist/components/ui/button.mjs +4 -4
  160. package/dist/components/ui/calendar.js +17 -3
  161. package/dist/components/ui/calendar.mjs +6 -5
  162. package/dist/components/ui/card.mjs +3 -3
  163. package/dist/components/ui/cash-balance-line-chart.js +157 -152
  164. package/dist/components/ui/cash-balance-line-chart.mjs +9 -9
  165. package/dist/components/ui/cashflow-bar-chart.js +2 -2
  166. package/dist/components/ui/cashflow-bar-chart.mjs +9 -9
  167. package/dist/components/ui/chat-widget-primitives.js +573 -0
  168. package/dist/components/ui/chat-widget-primitives.mjs +21 -0
  169. package/dist/components/ui/chat-widget.js +1268 -0
  170. package/dist/components/ui/chat-widget.mjs +29 -0
  171. package/dist/components/ui/checkbox.mjs +3 -3
  172. package/dist/components/ui/chip.js +2 -2
  173. package/dist/components/ui/chip.mjs +6 -6
  174. package/dist/components/ui/color-picker.js +2 -2
  175. package/dist/components/ui/color-picker.mjs +7 -7
  176. package/dist/components/ui/combobox.mjs +3 -3
  177. package/dist/components/ui/data-table.js +2 -2
  178. package/dist/components/ui/data-table.mjs +12 -12
  179. package/dist/components/ui/date-picker.js +22 -6
  180. package/dist/components/ui/date-picker.mjs +9 -8
  181. package/dist/components/ui/dialog.js +2 -2
  182. package/dist/components/ui/dialog.mjs +5 -5
  183. package/dist/components/ui/document-checklist-template.js +630 -0
  184. package/dist/components/ui/document-checklist-template.mjs +15 -0
  185. package/dist/components/ui/drawer.js +2 -2
  186. package/dist/components/ui/drawer.mjs +3 -3
  187. package/dist/components/ui/dropdown-menu.mjs +3 -3
  188. package/dist/components/ui/empty.mjs +3 -3
  189. package/dist/components/ui/expense-bar-chart.js +2 -2
  190. package/dist/components/ui/expense-bar-chart.mjs +9 -9
  191. package/dist/components/ui/field.mjs +5 -5
  192. package/dist/components/ui/financial-cards.js +431 -291
  193. package/dist/components/ui/financial-cards.mjs +10 -9
  194. package/dist/components/ui/financial-drawers.js +4 -4
  195. package/dist/components/ui/financial-drawers.mjs +8 -8
  196. package/dist/components/ui/financial-primitives.mjs +3 -3
  197. package/dist/components/ui/financial-sections.js +8 -9
  198. package/dist/components/ui/financial-sections.mjs +12 -12
  199. package/dist/components/ui/form-primitives.mjs +8 -8
  200. package/dist/components/ui/income-bar-chart.js +2 -2
  201. package/dist/components/ui/income-bar-chart.mjs +9 -9
  202. package/dist/components/ui/input-group.js +2 -2
  203. package/dist/components/ui/input-group.mjs +7 -7
  204. package/dist/components/ui/input-otp.mjs +3 -3
  205. package/dist/components/ui/input.mjs +3 -3
  206. package/dist/components/ui/kanban-column.js +19 -23
  207. package/dist/components/ui/kanban-column.mjs +14 -14
  208. package/dist/components/ui/label.mjs +3 -3
  209. package/dist/components/ui/onboarding-layout.js +476 -0
  210. package/dist/components/ui/onboarding-layout.mjs +11 -0
  211. package/dist/components/ui/opportunity-card.js +2 -2
  212. package/dist/components/ui/opportunity-card.mjs +12 -12
  213. package/dist/components/ui/opportunity-edit-modals.js +22 -6
  214. package/dist/components/ui/opportunity-edit-modals.mjs +21 -20
  215. package/dist/components/ui/opportunity-summary-tab.js +991 -674
  216. package/dist/components/ui/opportunity-summary-tab.mjs +26 -26
  217. package/dist/components/ui/page-header.mjs +3 -3
  218. package/dist/components/ui/page-top-bar.mjs +3 -3
  219. package/dist/components/ui/pagination.js +2 -2
  220. package/dist/components/ui/pagination.mjs +6 -6
  221. package/dist/components/ui/password-strength-tooltip.js +197 -0
  222. package/dist/components/ui/password-strength-tooltip.mjs +11 -0
  223. package/dist/components/ui/pipeline-alerts.mjs +3 -3
  224. package/dist/components/ui/pipeline-board.js +19 -23
  225. package/dist/components/ui/pipeline-board.mjs +18 -18
  226. package/dist/components/ui/pipeline-chart.js +12 -6
  227. package/dist/components/ui/pipeline-chart.mjs +4 -3
  228. package/dist/components/ui/pipeline-dialogs.js +28 -12
  229. package/dist/components/ui/pipeline-dialogs.mjs +14 -13
  230. package/dist/components/ui/pipeline-primitives.mjs +6 -6
  231. package/dist/components/ui/popover.mjs +3 -3
  232. package/dist/components/ui/progress.mjs +3 -3
  233. package/dist/components/ui/property-cashflow-doughnut-chart.js +2 -2
  234. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +9 -9
  235. package/dist/components/ui/property-debt-equity-doughnut-chart.js +2 -2
  236. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +9 -9
  237. package/dist/components/ui/property-mobile-estimate-line-chart.js +2 -2
  238. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +9 -9
  239. package/dist/components/ui/radio-group.mjs +3 -3
  240. package/dist/components/ui/select.mjs +3 -3
  241. package/dist/components/ui/separator.mjs +3 -3
  242. package/dist/components/ui/sheet.mjs +3 -3
  243. package/dist/components/ui/sidebar-nav.js +6 -5
  244. package/dist/components/ui/sidebar-nav.mjs +7 -7
  245. package/dist/components/ui/skeleton.mjs +3 -3
  246. package/dist/components/ui/slider.mjs +3 -3
  247. package/dist/components/ui/sonner.mjs +2 -2
  248. package/dist/components/ui/spinner.mjs +3 -3
  249. package/dist/components/ui/stage-timeline.mjs +10 -10
  250. package/dist/components/ui/stepper.mjs +3 -3
  251. package/dist/components/ui/switch.mjs +3 -3
  252. package/dist/components/ui/table.mjs +3 -3
  253. package/dist/components/ui/tabs.mjs +3 -3
  254. package/dist/components/ui/textarea.mjs +3 -3
  255. package/dist/components/ui/toggle-group.mjs +4 -4
  256. package/dist/components/ui/toggle.mjs +3 -3
  257. package/dist/components/ui/tooltip.mjs +3 -3
  258. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +2 -2
  259. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +9 -9
  260. package/dist/components/ui/transactions-income-expense-bar-chart.js +2 -2
  261. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +9 -9
  262. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +2 -2
  263. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +9 -9
  264. package/dist/components/ui/two-fa-setup-form.js +612 -0
  265. package/dist/components/ui/two-fa-setup-form.mjs +16 -0
  266. package/dist/components/ui/upload-card.js +187 -0
  267. package/dist/components/ui/upload-card.mjs +10 -0
  268. package/dist/components/ui/video-background.js +118 -0
  269. package/dist/components/ui/video-background.mjs +8 -0
  270. package/dist/index.js +12764 -9396
  271. package/dist/index.mjs +341 -245
  272. package/dist/lib/colors.mjs +1 -1
  273. package/dist/lib/theme-provider.mjs +1 -1
  274. package/dist/lib/typography.mjs +2 -2
  275. package/dist/lib/utils.js +8 -2
  276. package/dist/lib/utils.mjs +6 -4
  277. package/dist/styles.css +1 -1
  278. package/package.json +61 -1
  279. package/src/components/index.tsx +126 -1
  280. package/src/components/ui/add-lead-modal.tsx +101 -142
  281. package/src/components/ui/ai-builder.tsx +560 -0
  282. package/src/components/ui/ai-conversations.tsx +1690 -0
  283. package/src/components/ui/appointment-availability-settings.tsx +152 -101
  284. package/src/components/ui/appointment-book-dialog.tsx +138 -24
  285. package/src/components/ui/appointment-calendar-view.tsx +2 -3
  286. package/src/components/ui/appointment-gmail-connect.tsx +23 -42
  287. package/src/components/ui/auth-logo.tsx +50 -0
  288. package/src/components/ui/auth-page-layout.tsx +59 -0
  289. package/src/components/ui/borrowing-capacity-line-chart.tsx +10 -8
  290. package/src/components/ui/button.tsx +2 -2
  291. package/src/components/ui/calendar.tsx +2 -1
  292. package/src/components/ui/cash-balance-line-chart.tsx +10 -14
  293. package/src/components/ui/chart-shared.tsx +10 -0
  294. package/src/components/ui/chat-widget-primitives.tsx +336 -0
  295. package/src/components/ui/chat-widget.tsx +822 -0
  296. package/src/components/ui/document-checklist-template.tsx +264 -0
  297. package/src/components/ui/drawer.tsx +2 -2
  298. package/src/components/ui/financial-cards.tsx +176 -78
  299. package/src/components/ui/financial-drawers.tsx +2 -2
  300. package/src/components/ui/financial-sections.tsx +1 -1
  301. package/src/components/ui/kanban-column.tsx +2 -5
  302. package/src/components/ui/onboarding-layout.tsx +109 -0
  303. package/src/components/ui/opportunity-summary-tab.tsx +469 -142
  304. package/src/components/ui/password-strength-tooltip.tsx +70 -0
  305. package/src/components/ui/pipeline-chart.tsx +2 -6
  306. package/src/components/ui/sidebar-nav.tsx +1 -11
  307. package/src/components/ui/two-fa-setup-form.tsx +229 -0
  308. package/src/components/ui/upload-card.tsx +98 -0
  309. package/src/components/ui/video-background.tsx +55 -0
  310. package/src/lib/format-date.ts +26 -0
  311. package/src/lib/utils.ts +11 -0
  312. package/src/styles/styles-css.ts +1 -1
  313. package/tsup.config.ts +13 -0
@@ -0,0 +1,476 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
+ }
47
+ return to;
48
+ };
49
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
50
+ // If the importer is in node compatibility mode or this is not an ESM
51
+ // file that has been converted to a CommonJS file using a Babel-
52
+ // compatible transform (i.e. "__esModule" has not been set), then set
53
+ // "default" to the CommonJS "module.exports" for node compatibility.
54
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
55
+ mod
56
+ ));
57
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
+
59
+ // src/components/ui/onboarding-layout.tsx
60
+ var onboarding_layout_exports = {};
61
+ __export(onboarding_layout_exports, {
62
+ OnboardingLayout: () => OnboardingLayout
63
+ });
64
+ module.exports = __toCommonJS(onboarding_layout_exports);
65
+
66
+ // src/components/ui/button.tsx
67
+ var import_react = require("react");
68
+ var import_class_variance_authority = require("class-variance-authority");
69
+ var import_lucide_react = require("lucide-react");
70
+
71
+ // src/lib/utils.ts
72
+ var import_clsx = require("clsx");
73
+ var import_tailwind_merge = require("tailwind-merge");
74
+ var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
75
+ extend: {
76
+ classGroups: {
77
+ "font-size": [
78
+ {
79
+ text: [
80
+ "display-large",
81
+ "display-medium",
82
+ "display-small",
83
+ "h1",
84
+ "h2",
85
+ "h3",
86
+ "h4",
87
+ "h5",
88
+ "h6",
89
+ "body-large",
90
+ "body-medium",
91
+ "body-small",
92
+ "label-large",
93
+ "label-medium",
94
+ "label-small",
95
+ "button",
96
+ "button-xs",
97
+ "caption",
98
+ "overline",
99
+ "code"
100
+ ]
101
+ }
102
+ ]
103
+ }
104
+ }
105
+ });
106
+ function cn(...inputs) {
107
+ return twMerge((0, import_clsx.clsx)(inputs));
108
+ }
109
+
110
+ // src/lib/slot.tsx
111
+ var React = __toESM(require("react"));
112
+ function mergeRefs(...refs) {
113
+ return (value) => {
114
+ for (const ref of refs) {
115
+ if (typeof ref === "function") ref(value);
116
+ else if (ref !== null)
117
+ ref.current = value;
118
+ }
119
+ };
120
+ }
121
+ var Slot = React.forwardRef(
122
+ (_a, forwardedRef) => {
123
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
124
+ const child = React.Children.only(children);
125
+ if (!React.isValidElement(child)) return null;
126
+ const childProps = child.props;
127
+ const merged = __spreadValues({}, props);
128
+ for (const key of Object.keys(childProps)) {
129
+ if (key === "className") {
130
+ merged.className = [props.className, childProps.className].filter(Boolean).join(" ");
131
+ } else if (key === "style") {
132
+ merged.style = __spreadValues(__spreadValues({}, props.style), childProps.style);
133
+ } else if (key.startsWith("on") && typeof childProps[key] === "function") {
134
+ const parentHandler = props[key];
135
+ if (typeof parentHandler === "function") {
136
+ merged[key] = (...args) => {
137
+ childProps[key](...args);
138
+ parentHandler(...args);
139
+ };
140
+ } else {
141
+ merged[key] = childProps[key];
142
+ }
143
+ } else {
144
+ merged[key] = childProps[key];
145
+ }
146
+ }
147
+ const childRef = child.ref;
148
+ merged.ref = forwardedRef ? mergeRefs(forwardedRef, childRef) : childRef;
149
+ return React.cloneElement(
150
+ child,
151
+ merged
152
+ );
153
+ }
154
+ );
155
+ Slot.displayName = "Slot";
156
+
157
+ // src/components/ui/button.tsx
158
+ var import_jsx_runtime = require("react/jsx-runtime");
159
+ var buttonVariants = (0, import_class_variance_authority.cva)(
160
+ "inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-button whitespace-nowrap transition-all active:scale-[0.98] 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 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
161
+ {
162
+ variants: {
163
+ variant: {
164
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
165
+ secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
166
+ destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
167
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
168
+ "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
169
+ "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
170
+ ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
171
+ link: "text-primary underline-offset-4 hover:underline"
172
+ },
173
+ size: {
174
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
175
+ xs: "h-6 gap-1 px-2 text-button-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
176
+ sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
177
+ lg: "h-10 px-6 has-[>svg]:px-4",
178
+ icon: "size-9",
179
+ "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3",
180
+ "icon-sm": "size-8",
181
+ "icon-lg": "size-10"
182
+ }
183
+ },
184
+ defaultVariants: {
185
+ variant: "default",
186
+ size: "default"
187
+ }
188
+ }
189
+ );
190
+ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
191
+ var _b = _a, {
192
+ className,
193
+ variant,
194
+ size,
195
+ asChild = false,
196
+ loading = false,
197
+ disabled,
198
+ type = "button",
199
+ children
200
+ } = _b, props = __objRest(_b, [
201
+ "className",
202
+ "variant",
203
+ "size",
204
+ "asChild",
205
+ "loading",
206
+ "disabled",
207
+ "type",
208
+ "children"
209
+ ]);
210
+ const Comp = asChild ? Slot : "button";
211
+ const isIconOnly = size === "icon" || size === "icon-xs" || size === "icon-sm" || size === "icon-lg";
212
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
213
+ Comp,
214
+ __spreadProps(__spreadValues({
215
+ className: cn(buttonVariants({ variant, size, className })),
216
+ "data-size": size,
217
+ "data-slot": "button",
218
+ "data-variant": variant,
219
+ disabled: loading || disabled,
220
+ ref,
221
+ type
222
+ }, props), {
223
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
224
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
225
+ !isIconOnly && children
226
+ ] }) : children
227
+ })
228
+ );
229
+ });
230
+
231
+ // src/components/ui/stepper.tsx
232
+ var React2 = __toESM(require("react"));
233
+ var import_lucide_react2 = require("lucide-react");
234
+ var import_jsx_runtime2 = require("react/jsx-runtime");
235
+ var StepperContext = React2.createContext({
236
+ activeStep: 0,
237
+ orientation: "horizontal",
238
+ totalSteps: 0
239
+ });
240
+ var StepContext = React2.createContext({
241
+ index: 0,
242
+ isActive: false,
243
+ isCompleted: false,
244
+ isFirst: true,
245
+ isLast: false
246
+ });
247
+ function Stepper({
248
+ activeStep = 0,
249
+ orientation = "horizontal",
250
+ className,
251
+ children
252
+ }) {
253
+ const totalSteps = React2.Children.count(children);
254
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepperContext.Provider, { value: { activeStep, orientation, totalSteps }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
255
+ "div",
256
+ {
257
+ "data-slot": "stepper",
258
+ className: cn(
259
+ "font-sans",
260
+ orientation === "horizontal" ? "flex w-full items-start" : "flex flex-col",
261
+ className
262
+ ),
263
+ children: React2.Children.map(
264
+ children,
265
+ (step, index) => React2.isValidElement(step) ? React2.cloneElement(
266
+ step,
267
+ { _index: index }
268
+ ) : step
269
+ )
270
+ }
271
+ ) });
272
+ }
273
+ function Step({ _index = 0, error, className, children }) {
274
+ const { activeStep, orientation, totalSteps } = React2.useContext(StepperContext);
275
+ const isActive = _index === activeStep;
276
+ const isCompleted = _index < activeStep;
277
+ const isFirst = _index === 0;
278
+ const isLast = _index === totalSteps - 1;
279
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
280
+ StepContext.Provider,
281
+ {
282
+ value: { index: _index, isActive, isCompleted, isFirst, isLast },
283
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
284
+ "div",
285
+ {
286
+ "data-slot": "step",
287
+ "aria-current": isActive ? "step" : void 0,
288
+ "data-active": isActive || void 0,
289
+ "data-completed": isCompleted || void 0,
290
+ "data-error": error || void 0,
291
+ className: cn(
292
+ orientation === "horizontal" ? "flex flex-1 flex-col items-center" : "flex flex-row gap-3",
293
+ className
294
+ ),
295
+ children
296
+ }
297
+ )
298
+ }
299
+ );
300
+ }
301
+ function StepIndicator({ error, className }) {
302
+ const { orientation } = React2.useContext(StepperContext);
303
+ const { index, isActive, isCompleted, isFirst, isLast } = React2.useContext(StepContext);
304
+ const filled = isActive || isCompleted;
305
+ const circle = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
306
+ "div",
307
+ {
308
+ className: cn(
309
+ "relative z-10 flex size-8 shrink-0 items-center justify-center rounded-full text-sm font-medium transition-colors",
310
+ !filled && !error && "border-2 border-border bg-background text-muted-foreground",
311
+ isActive && !error && "border-2 border-primary bg-primary text-primary-foreground",
312
+ isCompleted && !error && "bg-primary text-primary-foreground",
313
+ error && "border-2 border-destructive bg-destructive text-destructive-foreground"
314
+ ),
315
+ children: isCompleted && !error ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.Check, { className: "size-4", strokeWidth: 2.5 }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: index + 1 })
316
+ }
317
+ );
318
+ if (orientation === "horizontal") {
319
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
320
+ "div",
321
+ {
322
+ "data-slot": "step-indicator",
323
+ className: cn("flex w-full items-center", className),
324
+ children: [
325
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
326
+ "div",
327
+ {
328
+ className: cn(
329
+ "h-[2px] flex-1 transition-colors",
330
+ isFirst ? "bg-transparent" : isActive || isCompleted ? "bg-primary" : "bg-border"
331
+ )
332
+ }
333
+ ),
334
+ circle,
335
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
336
+ "div",
337
+ {
338
+ className: cn(
339
+ "h-[2px] flex-1 transition-colors",
340
+ isLast ? "bg-transparent" : isCompleted ? "bg-primary" : "bg-border"
341
+ )
342
+ }
343
+ )
344
+ ]
345
+ }
346
+ );
347
+ }
348
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
349
+ "div",
350
+ {
351
+ "data-slot": "step-indicator",
352
+ className: cn("flex w-8 shrink-0 flex-col items-center", className),
353
+ children: [
354
+ circle,
355
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
356
+ "div",
357
+ {
358
+ "data-slot": "step-connector",
359
+ className: cn(
360
+ "mt-1 w-[2px] flex-1 transition-colors",
361
+ isActive || isCompleted ? "bg-primary" : "bg-border"
362
+ )
363
+ }
364
+ )
365
+ ]
366
+ }
367
+ );
368
+ }
369
+ function StepLabel({
370
+ children,
371
+ description,
372
+ error,
373
+ className
374
+ }) {
375
+ const { orientation } = React2.useContext(StepperContext);
376
+ const { isActive, isCompleted, isLast } = React2.useContext(StepContext);
377
+ const subtext = typeof error === "string" ? error : description;
378
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
379
+ "div",
380
+ {
381
+ "data-slot": "step-label",
382
+ className: cn(
383
+ "flex flex-col",
384
+ orientation === "horizontal" ? "mt-2 items-center text-center" : cn("flex-1", !isLast && "pb-5"),
385
+ className
386
+ ),
387
+ children: [
388
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
389
+ "span",
390
+ {
391
+ className: cn(
392
+ "text-sm font-medium leading-tight transition-colors",
393
+ (isActive || isCompleted) && !error && "text-foreground",
394
+ !isActive && !isCompleted && !error && "text-muted-foreground",
395
+ error && "text-destructive"
396
+ ),
397
+ children
398
+ }
399
+ ),
400
+ subtext && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
401
+ "span",
402
+ {
403
+ className: cn(
404
+ "mt-0.5 text-xs",
405
+ error ? "text-destructive" : "text-muted-foreground"
406
+ ),
407
+ children: subtext
408
+ }
409
+ )
410
+ ]
411
+ }
412
+ );
413
+ }
414
+ function StepItem({ label, description, error }) {
415
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
416
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepIndicator, { error: !!error }),
417
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepLabel, { description, error, children: label })
418
+ ] });
419
+ }
420
+
421
+ // src/components/ui/onboarding-layout.tsx
422
+ var import_jsx_runtime3 = require("react/jsx-runtime");
423
+ function OnboardingLayout({
424
+ steps,
425
+ currentStepIndex,
426
+ nextLabel,
427
+ canProceed = true,
428
+ onBack,
429
+ onNext,
430
+ onSkip,
431
+ onUpgrade,
432
+ className,
433
+ children
434
+ }) {
435
+ var _a;
436
+ const isFirstStep = currentStepIndex === 0;
437
+ const isLastStep = currentStepIndex === steps.length - 1;
438
+ const currentStep = steps[currentStepIndex];
439
+ const isLocked = (_a = currentStep == null ? void 0 : currentStep.isLocked) != null ? _a : false;
440
+ const primaryLabel = isLocked ? "Upgrade Plan" : isLastStep ? "Finish Setup" : nextLabel != null ? nextLabel : "Next";
441
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
442
+ "div",
443
+ {
444
+ className: cn("flex h-full flex-col bg-background font-sans", className),
445
+ children: [
446
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "px-8 pt-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Stepper, { activeStep: currentStepIndex, children: steps.map((step) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Step, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
447
+ StepItem,
448
+ {
449
+ label: step.title,
450
+ description: step.isLocked ? "Upgrade to unlock" : step.isOptional ? "Optional" : void 0
451
+ }
452
+ ) }, step.id)) }) }),
453
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "min-h-0 flex-1 overflow-y-auto px-8 pt-4 pb-6", children }),
454
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center justify-between border-t border-border px-8 py-4", children: [
455
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: onSkip && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { variant: "ghost", size: "sm", onClick: onSkip, children: "Skip for now" }) }),
456
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex gap-2", children: [
457
+ !isFirstStep && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { variant: "outline-secondary", size: "sm", onClick: onBack, children: "Back" }),
458
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
459
+ Button,
460
+ {
461
+ size: "sm",
462
+ onClick: isLocked ? onUpgrade : onNext,
463
+ disabled: !isLocked && !canProceed,
464
+ children: primaryLabel
465
+ }
466
+ )
467
+ ] })
468
+ ] })
469
+ ]
470
+ }
471
+ );
472
+ }
473
+ // Annotate the CommonJS export names for ESM import in node:
474
+ 0 && (module.exports = {
475
+ OnboardingLayout
476
+ });
@@ -0,0 +1,11 @@
1
+ import {
2
+ OnboardingLayout
3
+ } from "../../chunk-2P7HP7LR.mjs";
4
+ import "../../chunk-6TX73WG7.mjs";
5
+ import "../../chunk-NOOEKOWY.mjs";
6
+ import "../../chunk-R4HCRDU5.mjs";
7
+ import "../../chunk-AFML43VJ.mjs";
8
+ import "../../chunk-WNQUEZJF.mjs";
9
+ export {
10
+ OnboardingLayout
11
+ };
@@ -248,9 +248,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
248
248
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
249
249
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
250
250
  destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
251
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
251
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
252
252
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
253
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
253
+ "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
254
254
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
255
255
  link: "text-primary underline-offset-4 hover:underline"
256
256
  },
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  LeadCard,
3
3
  OpportunityCard
4
- } from "../../chunk-K5A5L6T2.mjs";
5
- import "../../chunk-MBON7YRJ.mjs";
6
- import "../../chunk-EFRENWEJ.mjs";
4
+ } from "../../chunk-K4KOD3KR.mjs";
5
+ import "../../chunk-K5QV4TT6.mjs";
7
6
  import "../../chunk-MN5NYQCL.mjs";
8
- import "../../chunk-7PV3IWCN.mjs";
9
- import "../../chunk-BKNFWEH2.mjs";
10
- import "../../chunk-MARPPFOJ.mjs";
11
- import "../../chunk-FH6QVUVZ.mjs";
12
- import "../../chunk-RGVKLTLH.mjs";
13
- import "../../chunk-XREGSKX3.mjs";
14
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-RSUIPKGX.mjs";
8
+ import "../../chunk-WL6WVV47.mjs";
9
+ import "../../chunk-M4VYX2PV.mjs";
10
+ import "../../chunk-UNACI2YK.mjs";
11
+ import "../../chunk-2GIYVERS.mjs";
12
+ import "../../chunk-IKXYTCSB.mjs";
13
+ import "../../chunk-NOOEKOWY.mjs";
14
+ import "../../chunk-R4HCRDU5.mjs";
15
15
  import "../../chunk-FEZKMUCF.mjs";
16
16
  import "../../chunk-QOJ2DQD6.mjs";
17
- import "../../chunk-VLQZANBF.mjs";
18
- import "../../chunk-FWCSY2DS.mjs";
17
+ import "../../chunk-AFML43VJ.mjs";
18
+ import "../../chunk-WNQUEZJF.mjs";
19
19
  export {
20
20
  LeadCard,
21
21
  OpportunityCard
@@ -192,9 +192,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
192
192
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
193
193
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
194
194
  destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
195
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
195
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
196
196
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
197
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
197
+ "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
198
198
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
199
199
  link: "text-primary underline-offset-4 hover:underline"
200
200
  },
@@ -699,13 +699,29 @@ function Checkbox(_a) {
699
699
 
700
700
  // src/components/ui/date-picker.tsx
701
701
  var React4 = __toESM(require("react"));
702
- var import_date_fns = require("date-fns");
702
+ var import_date_fns2 = require("date-fns");
703
703
  var import_lucide_react7 = require("lucide-react");
704
704
 
705
705
  // src/components/ui/calendar.tsx
706
706
  var React3 = __toESM(require("react"));
707
707
  var import_lucide_react6 = require("lucide-react");
708
708
  var import_react_day_picker = require("react-day-picker");
709
+
710
+ // src/lib/format-date.ts
711
+ var import_date_fns = require("date-fns");
712
+ function safeParse(iso) {
713
+ return (0, import_date_fns.parseISO)(iso);
714
+ }
715
+ function formatDateShort(iso) {
716
+ if (!iso) return "\u2014";
717
+ try {
718
+ return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
719
+ } catch (e) {
720
+ return iso;
721
+ }
722
+ }
723
+
724
+ // src/components/ui/calendar.tsx
709
725
  var import_jsx_runtime10 = require("react/jsx-runtime");
710
726
  function CalendarRoot(_a) {
711
727
  var _b = _a, {
@@ -890,7 +906,7 @@ function CalendarDayButton(_a) {
890
906
  defaultClassNames.day,
891
907
  className
892
908
  ),
893
- "data-day": day.date.toLocaleDateString(),
909
+ "data-day": formatDateShort(day.date.toISOString()),
894
910
  "data-range-end": modifiers.range_end,
895
911
  "data-range-middle": modifiers.range_middle,
896
912
  "data-range-start": modifiers.range_start,
@@ -979,9 +995,9 @@ function DatePicker({
979
995
  const timeValue = value ? `${String(value.getHours()).padStart(2, "0")}:${String(value.getMinutes()).padStart(2, "0")}` : "";
980
996
  let displayValue;
981
997
  if (value && showTimePicker) {
982
- displayValue = (0, import_date_fns.format)(value, "dd/MM/yyyy HH:mm");
998
+ displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy HH:mm");
983
999
  } else if (value) {
984
- displayValue = (0, import_date_fns.format)(value, "dd/MM/yyyy");
1000
+ displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy");
985
1001
  }
986
1002
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Popover, { onOpenChange: disabled ? void 0 : setOpen, open, children: [
987
1003
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
@@ -5,28 +5,29 @@ import {
5
5
  EditExpensesModal,
6
6
  EditIncomeModal,
7
7
  EditLoanScenarioModal
8
- } from "../../chunk-IAE3F7DR.mjs";
9
- import "../../chunk-DUJTAXMH.mjs";
10
- import "../../chunk-3GF7OVTP.mjs";
11
- import "../../chunk-U5X52X37.mjs";
12
- import "../../chunk-Y6DWJSKZ.mjs";
13
- import "../../chunk-7XJHLGUV.mjs";
14
- import "../../chunk-EI5F6FMT.mjs";
15
- import "../../chunk-BDYZCBRT.mjs";
16
- import "../../chunk-34NWQURD.mjs";
17
- import "../../chunk-OODBHKG7.mjs";
18
- import "../../chunk-MARPPFOJ.mjs";
19
- import "../../chunk-7PYJD5JI.mjs";
20
- import "../../chunk-NSLMILBT.mjs";
21
- import "../../chunk-RGVKLTLH.mjs";
22
- import "../../chunk-GYMYRIZP.mjs";
23
- import "../../chunk-6DZEXFNB.mjs";
24
- import "../../chunk-XREGSKX3.mjs";
25
- import "../../chunk-DBHJ5KC3.mjs";
8
+ } from "../../chunk-JZY6TNIS.mjs";
9
+ import "../../chunk-57ZXILTS.mjs";
10
+ import "../../chunk-ISUA7DSB.mjs";
11
+ import "../../chunk-JTK6VJXY.mjs";
12
+ import "../../chunk-OWFQSXVD.mjs";
13
+ import "../../chunk-6QAFGZC2.mjs";
14
+ import "../../chunk-BS75ICOO.mjs";
15
+ import "../../chunk-OKTJFDPN.mjs";
16
+ import "../../chunk-DGNHGNYH.mjs";
17
+ import "../../chunk-6HIOM2HL.mjs";
18
+ import "../../chunk-M4VYX2PV.mjs";
19
+ import "../../chunk-UNACI2YK.mjs";
20
+ import "../../chunk-P7CEBZM6.mjs";
21
+ import "../../chunk-IKXYTCSB.mjs";
22
+ import "../../chunk-ZEDMKQK2.mjs";
23
+ import "../../chunk-LBTHZSBT.mjs";
24
+ import "../../chunk-P2N2PEFY.mjs";
25
+ import "../../chunk-NOOEKOWY.mjs";
26
+ import "../../chunk-R4HCRDU5.mjs";
26
27
  import "../../chunk-FEZKMUCF.mjs";
27
28
  import "../../chunk-QOJ2DQD6.mjs";
28
- import "../../chunk-VLQZANBF.mjs";
29
- import "../../chunk-FWCSY2DS.mjs";
29
+ import "../../chunk-AFML43VJ.mjs";
30
+ import "../../chunk-WNQUEZJF.mjs";
30
31
  export {
31
32
  EditAboutApplicantModal,
32
33
  EditAssetsModal,