@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
@@ -1,30 +1,46 @@
1
+ import {
2
+ Table,
3
+ TableBody,
4
+ TableCell,
5
+ TableHead,
6
+ TableHeader,
7
+ TableRow
8
+ } from "./chunk-GT3RU6GA.mjs";
9
+ import {
10
+ TablePagination
11
+ } from "./chunk-FTPBQVQ6.mjs";
1
12
  import {
2
13
  Checkbox
3
- } from "./chunk-RGVKLTLH.mjs";
14
+ } from "./chunk-IKXYTCSB.mjs";
4
15
  import {
5
16
  Spinner
6
- } from "./chunk-7YAU5CY6.mjs";
17
+ } from "./chunk-JVMXMFBB.mjs";
7
18
  import {
8
19
  Input
9
- } from "./chunk-GYMYRIZP.mjs";
20
+ } from "./chunk-LBTHZSBT.mjs";
10
21
  import {
11
22
  Dialog,
12
23
  DialogContent,
13
24
  DialogFooter,
14
25
  DialogHeader,
15
26
  DialogTitle
16
- } from "./chunk-6DZEXFNB.mjs";
27
+ } from "./chunk-P2N2PEFY.mjs";
17
28
  import {
18
29
  Button
19
- } from "./chunk-XREGSKX3.mjs";
30
+ } from "./chunk-NOOEKOWY.mjs";
20
31
  import {
21
32
  cn
22
- } from "./chunk-VLQZANBF.mjs";
33
+ } from "./chunk-AFML43VJ.mjs";
23
34
 
24
35
  // src/components/ui/add-lead-modal.tsx
25
36
  import * as React from "react";
26
37
  import { Search, X } from "lucide-react";
27
38
  import { jsx, jsxs } from "react/jsx-runtime";
39
+ function toggleInSet(prev, value) {
40
+ const next = new Set(prev);
41
+ next.has(value) ? next.delete(value) : next.add(value);
42
+ return next;
43
+ }
28
44
  function AddLeadModal({
29
45
  open,
30
46
  onOpenChange,
@@ -36,7 +52,9 @@ function AddLeadModal({
36
52
  onSearchChange,
37
53
  page = 0,
38
54
  pageSize = 10,
55
+ pageSizeOptions,
39
56
  onPageChange,
57
+ onPageSizeChange,
40
58
  onAdd,
41
59
  className
42
60
  }) {
@@ -57,17 +75,8 @@ function AddLeadModal({
57
75
  return next;
58
76
  });
59
77
  }
60
- function toggleOne(id) {
61
- setSelectedIds((prev) => {
62
- const next = new Set(prev);
63
- next.has(id) ? next.delete(id) : next.add(id);
64
- return next;
65
- });
66
- }
67
78
  const totalPages = Math.max(1, Math.ceil(total / pageSize));
68
- const canPrev = page > 0;
69
- const canNext = page < totalPages - 1;
70
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: isSubmitting ? void 0 : onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: cn("sm:max-w-2xl", className), children: [
79
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: isSubmitting ? void 0 : onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { size: "2xl", align: "top", className, children: [
71
80
  /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: "Add Lead" }) }),
72
81
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
73
82
  /* @__PURE__ */ jsx(Search, { className: "absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground" }),
@@ -96,9 +105,9 @@ function AddLeadModal({
96
105
  ] }),
97
106
  /* @__PURE__ */ jsxs("div", { className: "relative min-h-[200px] overflow-auto border border-border", children: [
98
107
  isLoading && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center bg-background/60", children: /* @__PURE__ */ jsx(Spinner, {}) }),
99
- /* @__PURE__ */ jsxs("table", { className: "w-full border-separate border-spacing-0 text-sm", children: [
100
- /* @__PURE__ */ jsx("thead", { className: "sticky top-0 bg-muted/50", children: /* @__PURE__ */ jsxs("tr", { children: [
101
- /* @__PURE__ */ jsx("th", { className: "w-10 border-b border-border", children: /* @__PURE__ */ jsx("div", { className: "flex h-10 w-full items-center justify-center", children: /* @__PURE__ */ jsx("span", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
108
+ /* @__PURE__ */ jsxs(Table, { children: [
109
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { className: "hover:bg-transparent", children: [
110
+ /* @__PURE__ */ jsx(TableHead, { className: "w-10", children: /* @__PURE__ */ jsx("span", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
102
111
  Checkbox,
103
112
  {
104
113
  checked: somePageSelected && !allPageSelected ? "indeterminate" : allPageSelected,
@@ -106,42 +115,41 @@ function AddLeadModal({
106
115
  "aria-label": "Select all on page",
107
116
  disabled: contacts.length === 0 || isSubmitting
108
117
  }
109
- ) }) }) }),
110
- ["Name", "Email", "Phone"].map((col) => /* @__PURE__ */ jsx("th", { className: "border-b border-border", children: /* @__PURE__ */ jsx("div", { className: "flex h-10 items-center px-3 text-xs font-semibold text-foreground", children: col }) }, col))
118
+ ) }) }),
119
+ /* @__PURE__ */ jsx(TableHead, { children: "Name" }),
120
+ /* @__PURE__ */ jsx(TableHead, { children: "Email" }),
121
+ /* @__PURE__ */ jsx(TableHead, { children: "Phone" })
111
122
  ] }) }),
112
- /* @__PURE__ */ jsx("tbody", { children: contacts.length === 0 && !isLoading ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
113
- "td",
123
+ /* @__PURE__ */ jsx(TableBody, { children: contacts.length === 0 && !isLoading ? /* @__PURE__ */ jsx(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx(
124
+ TableCell,
114
125
  {
115
126
  colSpan: 4,
116
- className: "py-10 text-center text-xs text-muted-foreground",
127
+ className: "py-10 text-center text-muted-foreground",
117
128
  children: "No contacts found."
118
129
  }
119
- ) }) : contacts.map((contact, idx) => {
130
+ ) }) : contacts.map((contact) => {
120
131
  var _a, _b;
121
132
  const isSelected = selectedIds.has(contact.id);
122
- const tdCls = cn(
123
- idx < contacts.length - 1 && "border-b border-border"
124
- );
125
133
  return /* @__PURE__ */ jsxs(
126
- "tr",
134
+ TableRow,
127
135
  {
128
- className: cn(
129
- "cursor-pointer",
130
- isSelected ? "bg-primary/5 hover:bg-primary/10" : "hover:bg-muted/30"
131
- ),
132
- onClick: () => !isSubmitting && toggleOne(contact.id),
136
+ "data-state": isSelected ? "selected" : void 0,
137
+ className: "cursor-pointer",
138
+ onClick: () => !isSubmitting && setSelectedIds((prev) => toggleInSet(prev, contact.id)),
133
139
  children: [
134
- /* @__PURE__ */ jsx("td", { className: tdCls, children: /* @__PURE__ */ jsx("div", { className: "flex h-12 w-full items-center justify-center", children: /* @__PURE__ */ jsx("span", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
140
+ /* @__PURE__ */ jsx(TableCell, { className: "h-12", children: /* @__PURE__ */ jsx("span", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
135
141
  Checkbox,
136
142
  {
137
143
  checked: isSelected,
138
- onCheckedChange: () => toggleOne(contact.id),
144
+ onCheckedChange: () => setSelectedIds(
145
+ (prev) => toggleInSet(prev, contact.id)
146
+ ),
139
147
  disabled: isSubmitting
140
148
  }
141
- ) }) }) }),
142
- /* @__PURE__ */ jsx("td", { className: tdCls, children: /* @__PURE__ */ jsx("div", { className: "flex h-12 items-center px-3 font-medium text-foreground", children: contact.name }) }),
143
- /* @__PURE__ */ jsx("td", { className: tdCls, children: /* @__PURE__ */ jsx("div", { className: "flex h-12 items-center px-3 text-muted-foreground", children: (_a = contact.email) != null ? _a : "\u2014" }) }),
144
- /* @__PURE__ */ jsx("td", { className: tdCls, children: /* @__PURE__ */ jsx("div", { className: "flex h-12 items-center px-3 text-muted-foreground", children: (_b = contact.phone) != null ? _b : "\u2014" }) })
149
+ ) }) }),
150
+ /* @__PURE__ */ jsx(TableCell, { className: "h-12 font-medium text-foreground", children: contact.name }),
151
+ /* @__PURE__ */ jsx(TableCell, { className: "h-12 text-muted-foreground", children: (_a = contact.email) != null ? _a : "\u2014" }),
152
+ /* @__PURE__ */ jsx(TableCell, { className: "h-12 text-muted-foreground", children: (_b = contact.phone) != null ? _b : "\u2014" })
145
153
  ]
146
154
  },
147
155
  contact.id
@@ -149,42 +157,30 @@ function AddLeadModal({
149
157
  }) })
150
158
  ] })
151
159
  ] }),
152
- totalPages > 1 && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-xs text-muted-foreground", children: [
153
- /* @__PURE__ */ jsxs("span", { children: [
154
- total,
155
- " contact",
156
- total !== 1 ? "s" : ""
157
- ] }),
158
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
159
- /* @__PURE__ */ jsx(
160
- Button,
161
- {
162
- variant: "outline",
163
- size: "sm",
164
- className: "h-7 text-xs",
165
- onClick: () => onPageChange == null ? void 0 : onPageChange(page - 1),
166
- disabled: !canPrev || isLoading || isSubmitting,
167
- children: "Prev"
168
- }
160
+ /* @__PURE__ */ jsx(
161
+ "div",
162
+ {
163
+ className: cn(
164
+ (isLoading || isSubmitting) && "pointer-events-none opacity-50"
169
165
  ),
170
- /* @__PURE__ */ jsxs("span", { children: [
171
- page + 1,
172
- " / ",
173
- totalPages
174
- ] }),
175
- /* @__PURE__ */ jsx(
176
- Button,
166
+ children: /* @__PURE__ */ jsx(
167
+ TablePagination,
177
168
  {
178
- variant: "outline",
179
- size: "sm",
180
- className: "h-7 text-xs",
181
- onClick: () => onPageChange == null ? void 0 : onPageChange(page + 1),
182
- disabled: !canNext || isLoading || isSubmitting,
183
- children: "Next"
169
+ page: page + 1,
170
+ pageCount: totalPages,
171
+ pageSize,
172
+ pageSizeOptions,
173
+ selectedCount: selectedIds.size || void 0,
174
+ totalCount: total,
175
+ onPageChange: (p) => onPageChange == null ? void 0 : onPageChange(p - 1),
176
+ onPageSizeChange: (size) => {
177
+ onPageSizeChange == null ? void 0 : onPageSizeChange(size);
178
+ onPageChange == null ? void 0 : onPageChange(0);
179
+ }
184
180
  }
185
181
  )
186
- ] })
187
- ] }),
182
+ }
183
+ ),
188
184
  /* @__PURE__ */ jsxs(DialogFooter, { children: [
189
185
  /* @__PURE__ */ jsx(
190
186
  Button,
@@ -3,12 +3,12 @@ import {
3
3
  } from "./chunk-FEZKMUCF.mjs";
4
4
  import {
5
5
  cn
6
- } from "./chunk-VLQZANBF.mjs";
6
+ } from "./chunk-AFML43VJ.mjs";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadProps,
10
10
  __spreadValues
11
- } from "./chunk-FWCSY2DS.mjs";
11
+ } from "./chunk-WNQUEZJF.mjs";
12
12
 
13
13
  // src/components/ui/tooltip.tsx
14
14
  import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
@@ -1,23 +1,24 @@
1
+ import {
2
+ formatCurrency
3
+ } from "./chunk-MN5NYQCL.mjs";
1
4
  import {
2
5
  Tooltip,
3
6
  TooltipContent,
4
7
  TooltipProvider,
5
8
  TooltipTrigger
6
- } from "./chunk-6JQFUE5I.mjs";
7
- import {
8
- formatCurrency
9
- } from "./chunk-MN5NYQCL.mjs";
9
+ } from "./chunk-UALR6JGV.mjs";
10
10
  import {
11
11
  Accordion,
12
12
  AccordionContent,
13
13
  AccordionItem
14
- } from "./chunk-MARPPFOJ.mjs";
14
+ } from "./chunk-UNACI2YK.mjs";
15
15
  import {
16
16
  Button
17
- } from "./chunk-XREGSKX3.mjs";
17
+ } from "./chunk-NOOEKOWY.mjs";
18
18
  import {
19
- cn
20
- } from "./chunk-VLQZANBF.mjs";
19
+ cn,
20
+ getInitials
21
+ } from "./chunk-AFML43VJ.mjs";
21
22
 
22
23
  // src/components/ui/sidebar-nav.tsx
23
24
  import * as React from "react";
@@ -31,9 +32,6 @@ import {
31
32
  } from "lucide-react";
32
33
  import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
33
34
  import { jsx, jsxs } from "react/jsx-runtime";
34
- function getInitials(name) {
35
- return name.split(" ").filter(Boolean).map((word) => word[0]).join("").toUpperCase().slice(0, 2);
36
- }
37
35
  function navIconCn(isActive) {
38
36
  return cn(
39
37
  "shrink-0 transition-colors",
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-VLQZANBF.mjs";
3
+ } from "./chunk-AFML43VJ.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadProps,
7
7
  __spreadValues
8
- } from "./chunk-FWCSY2DS.mjs";
8
+ } from "./chunk-WNQUEZJF.mjs";
9
9
 
10
10
  // src/components/ui/accordion.tsx
11
11
  import { ChevronDownIcon } from "lucide-react";
@@ -3,7 +3,7 @@ import {
3
3
  DebtCard,
4
4
  OtherLiabilityCard,
5
5
  PropertyCard
6
- } from "./chunk-IOJRDS6V.mjs";
6
+ } from "./chunk-L4NSRQ3T.mjs";
7
7
  import {
8
8
  FinancialCardHeader,
9
9
  FinancialDetailField,
@@ -11,23 +11,23 @@ import {
11
11
  FinancialSectionLabel,
12
12
  FinancialSubtotalBlock,
13
13
  FinancialSubtotalFrame
14
- } from "./chunk-OGOYQ7BG.mjs";
14
+ } from "./chunk-DQB4EPIS.mjs";
15
15
  import {
16
16
  Accordion,
17
17
  AccordionContent,
18
18
  AccordionItem,
19
19
  AccordionTrigger
20
- } from "./chunk-MARPPFOJ.mjs";
20
+ } from "./chunk-UNACI2YK.mjs";
21
21
  import {
22
22
  Separator
23
- } from "./chunk-FH6QVUVZ.mjs";
23
+ } from "./chunk-2GIYVERS.mjs";
24
24
  import {
25
25
  Button
26
- } from "./chunk-XREGSKX3.mjs";
26
+ } from "./chunk-NOOEKOWY.mjs";
27
27
  import {
28
28
  __spreadProps,
29
29
  __spreadValues
30
- } from "./chunk-FWCSY2DS.mjs";
30
+ } from "./chunk-WNQUEZJF.mjs";
31
31
 
32
32
  // src/components/ui/financial-sections.tsx
33
33
  import { useState } from "react";
@@ -43,7 +43,7 @@ function PropertyHoldingsSection({
43
43
  borderless ? /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2", children: items.map((item, i) => /* @__PURE__ */ jsx(
44
44
  "div",
45
45
  {
46
- className: i > 0 ? "border-l border-border pl-5" : "pr-5",
46
+ className: i % 2 !== 0 ? "border-l border-border pl-5" : "pr-5",
47
47
  children: /* @__PURE__ */ jsx(PropertyCard, __spreadProps(__spreadValues({}, item), { borderless: true }))
48
48
  },
49
49
  `${item.address}-${i}`
@@ -0,0 +1,57 @@
1
+ import {
2
+ Popover,
3
+ PopoverContent,
4
+ PopoverTrigger
5
+ } from "./chunk-DGNHGNYH.mjs";
6
+
7
+ // src/components/ui/password-strength-tooltip.tsx
8
+ import { Check, X } from "lucide-react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ var RULES = [
11
+ { label: "Minimum 8 characters", test: (p) => p.length >= 8 },
12
+ { label: "At least one uppercase letter", test: (p) => /[A-Z]/.test(p) },
13
+ { label: "At least one lowercase letter", test: (p) => /[a-z]/.test(p) },
14
+ { label: "At least one number", test: (p) => /\d/.test(p) },
15
+ {
16
+ label: "At least one special character",
17
+ test: (p) => /[^A-Za-z0-9]/.test(p)
18
+ }
19
+ ];
20
+ function PasswordStrengthTooltip({
21
+ open = false,
22
+ password,
23
+ children,
24
+ side = "right"
25
+ }) {
26
+ return /* @__PURE__ */ jsxs(Popover, { open, children: [
27
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { children }) }),
28
+ /* @__PURE__ */ jsx(
29
+ PopoverContent,
30
+ {
31
+ side,
32
+ align: "start",
33
+ sideOffset: 8,
34
+ onOpenAutoFocus: (e) => e.preventDefault(),
35
+ className: "w-auto max-w-[280px] font-sans",
36
+ children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1.5", children: RULES.map((rule) => {
37
+ const valid = password ? rule.test(password) : false;
38
+ return /* @__PURE__ */ jsxs(
39
+ "div",
40
+ {
41
+ className: `flex items-center gap-1.5 text-[13px] leading-[18px] ${valid ? "text-success" : "text-destructive"}`,
42
+ children: [
43
+ valid ? /* @__PURE__ */ jsx(Check, { size: 14, className: "shrink-0" }) : /* @__PURE__ */ jsx(X, { size: 14, className: "shrink-0" }),
44
+ /* @__PURE__ */ jsx("span", { children: rule.label })
45
+ ]
46
+ },
47
+ rule.label
48
+ );
49
+ }) })
50
+ }
51
+ )
52
+ ] });
53
+ }
54
+
55
+ export {
56
+ PasswordStrengthTooltip
57
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Skeleton
3
- } from "./chunk-D6ID6M4V.mjs";
3
+ } from "./chunk-GTAVSBDO.mjs";
4
4
  import {
5
5
  CHART_PERIODS,
6
6
  CHART_SLICE_COUNT,
@@ -11,28 +11,28 @@ import {
11
11
  FALLBACK_TICK,
12
12
  formatTooltipDate,
13
13
  hexToRgba
14
- } from "./chunk-M3FV7LOK.mjs";
14
+ } from "./chunk-YEWNFK5S.mjs";
15
15
  import {
16
16
  Empty,
17
17
  EmptyDescription
18
- } from "./chunk-NQPOYKAQ.mjs";
18
+ } from "./chunk-R2ON6CAN.mjs";
19
19
  import {
20
20
  Card,
21
21
  CardAction,
22
22
  CardContent,
23
23
  CardHeader,
24
24
  CardTitle
25
- } from "./chunk-C7CQJNMR.mjs";
25
+ } from "./chunk-3VDET466.mjs";
26
26
  import {
27
27
  useThemeVars
28
28
  } from "./chunk-FEZKMUCF.mjs";
29
29
  import {
30
30
  cn
31
- } from "./chunk-VLQZANBF.mjs";
31
+ } from "./chunk-AFML43VJ.mjs";
32
32
  import {
33
33
  __spreadProps,
34
34
  __spreadValues
35
- } from "./chunk-FWCSY2DS.mjs";
35
+ } from "./chunk-WNQUEZJF.mjs";
36
36
 
37
37
  // src/components/ui/expense-bar-chart.tsx
38
38
  import { useEffect, useMemo, useRef, useState } from "react";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-VLQZANBF.mjs";
3
+ } from "./chunk-AFML43VJ.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadValues
7
- } from "./chunk-FWCSY2DS.mjs";
7
+ } from "./chunk-WNQUEZJF.mjs";
8
8
 
9
9
  // src/components/ui/tabs.tsx
10
10
  import { cva } from "class-variance-authority";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Slot
3
- } from "./chunk-DBHJ5KC3.mjs";
3
+ } from "./chunk-R4HCRDU5.mjs";
4
4
  import {
5
5
  cn
6
- } from "./chunk-VLQZANBF.mjs";
6
+ } from "./chunk-AFML43VJ.mjs";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadValues
10
- } from "./chunk-FWCSY2DS.mjs";
10
+ } from "./chunk-WNQUEZJF.mjs";
11
11
 
12
12
  // src/components/ui/badge.tsx
13
13
  import { cva } from "class-variance-authority";
@@ -29,9 +29,30 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
+ var __async = (__this, __arguments, generator) => {
33
+ return new Promise((resolve, reject) => {
34
+ var fulfilled = (value) => {
35
+ try {
36
+ step(generator.next(value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ };
41
+ var rejected = (value) => {
42
+ try {
43
+ step(generator.throw(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ };
48
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
+ step((generator = generator.apply(__this, __arguments)).next());
50
+ });
51
+ };
32
52
 
33
53
  export {
34
54
  __spreadValues,
35
55
  __spreadProps,
36
- __objRest
56
+ __objRest,
57
+ __async
37
58
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __objRest,
3
3
  __spreadValues
4
- } from "./chunk-FWCSY2DS.mjs";
4
+ } from "./chunk-WNQUEZJF.mjs";
5
5
 
6
6
  // src/components/ui/sonner.tsx
7
7
  import {
@@ -1,22 +1,25 @@
1
+ import {
2
+ Avatar,
3
+ AvatarFallback
4
+ } from "./chunk-H6NQTIF4.mjs";
5
+ import {
6
+ Badge
7
+ } from "./chunk-WL6WVV47.mjs";
1
8
  import {
2
9
  Tabs,
3
10
  TabsContent,
4
11
  TabsList,
5
12
  TabsTrigger
6
- } from "./chunk-JHJHG4GO.mjs";
13
+ } from "./chunk-WE4YKBDE.mjs";
7
14
  import {
8
- Avatar,
9
- AvatarFallback
10
- } from "./chunk-24FUO7TD.mjs";
11
- import {
12
- Badge
13
- } from "./chunk-BKNFWEH2.mjs";
15
+ formatWeekdayShort
16
+ } from "./chunk-M4VYX2PV.mjs";
14
17
  import {
15
18
  Separator
16
- } from "./chunk-FH6QVUVZ.mjs";
19
+ } from "./chunk-2GIYVERS.mjs";
17
20
  import {
18
21
  Button
19
- } from "./chunk-XREGSKX3.mjs";
22
+ } from "./chunk-NOOEKOWY.mjs";
20
23
 
21
24
  // src/components/ui/appointment-calendar-view.tsx
22
25
  import {
@@ -75,7 +78,7 @@ function DayView({
75
78
  onSelectAppointment
76
79
  }) {
77
80
  const d = /* @__PURE__ */ new Date(date + "T00:00:00");
78
- const dayLabel = d.toLocaleDateString("en-AU", { weekday: "short" }).toUpperCase();
81
+ const dayLabel = formatWeekdayShort(d);
79
82
  const dayShort = d.getDate();
80
83
  const isToday = date === today;
81
84
  const dayApts = appointments.filter((a) => a.date === date);
@@ -0,0 +1,34 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-AFML43VJ.mjs";
4
+
5
+ // src/components/ui/auth-logo.tsx
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ function AuthLogo({
8
+ logoUrl,
9
+ wealthxLogoUrl,
10
+ className
11
+ }) {
12
+ const wealthxMark = wealthxLogoUrl ? /* @__PURE__ */ jsx("img", { src: wealthxLogoUrl, alt: "WealthX", className: "h-5 w-auto" }) : /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold tracking-tight text-foreground", children: "WealthX" });
13
+ if (!logoUrl) {
14
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center", className), children: wealthxLogoUrl ? /* @__PURE__ */ jsx("img", { src: wealthxLogoUrl, alt: "WealthX", className: "h-8 w-auto" }) : /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold tracking-tight text-foreground", children: "WealthX" }) });
15
+ }
16
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", className), children: [
17
+ /* @__PURE__ */ jsx(
18
+ "img",
19
+ {
20
+ src: logoUrl,
21
+ alt: "Partner logo",
22
+ className: "h-8 w-auto object-contain"
23
+ }
24
+ ),
25
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
26
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Powered by" }),
27
+ wealthxMark
28
+ ] })
29
+ ] });
30
+ }
31
+
32
+ export {
33
+ AuthLogo
34
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Skeleton
3
- } from "./chunk-D6ID6M4V.mjs";
3
+ } from "./chunk-GTAVSBDO.mjs";
4
4
  import {
5
5
  ChartLegendItem,
6
6
  ChartPeriodButton,
@@ -9,28 +9,28 @@ import {
9
9
  formatMonthLabel,
10
10
  formatTooltipDate,
11
11
  hexToRgba
12
- } from "./chunk-M3FV7LOK.mjs";
12
+ } from "./chunk-YEWNFK5S.mjs";
13
13
  import {
14
14
  Empty,
15
15
  EmptyDescription
16
- } from "./chunk-NQPOYKAQ.mjs";
16
+ } from "./chunk-R2ON6CAN.mjs";
17
17
  import {
18
18
  Card,
19
19
  CardAction,
20
20
  CardContent,
21
21
  CardHeader,
22
22
  CardTitle
23
- } from "./chunk-C7CQJNMR.mjs";
23
+ } from "./chunk-3VDET466.mjs";
24
24
  import {
25
25
  ToggleGroup,
26
26
  ToggleGroupItem
27
- } from "./chunk-EI5F6FMT.mjs";
27
+ } from "./chunk-OWFQSXVD.mjs";
28
28
  import {
29
29
  useThemeVars
30
30
  } from "./chunk-FEZKMUCF.mjs";
31
31
  import {
32
32
  cn
33
- } from "./chunk-VLQZANBF.mjs";
33
+ } from "./chunk-AFML43VJ.mjs";
34
34
 
35
35
  // src/components/ui/backoffice-connections-chart.tsx
36
36
  import { useMemo, useState } from "react";