@wealthx/shadcn 1.4.1 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/.turbo/turbo-build.log +356 -176
  2. package/CHANGELOG.md +12 -0
  3. package/dist/chunk-2A53WPEC.mjs +182 -0
  4. package/dist/{chunk-SIVYAI3M.mjs → chunk-2LLFNGJZ.mjs} +15 -15
  5. package/dist/chunk-2QNOPXMQ.mjs +360 -0
  6. package/dist/{chunk-K5QV4TT6.mjs → chunk-2WCIORP7.mjs} +29 -4
  7. package/dist/{chunk-5NF6T2RS.mjs → chunk-3AREQTZU.mjs} +8 -8
  8. package/dist/{chunk-2EM2FRU6.mjs → chunk-3WGFIFP6.mjs} +5 -5
  9. package/dist/{chunk-K4KOD3KR.mjs → chunk-42NEC57Y.mjs} +44 -25
  10. package/dist/{chunk-FL6DZFJK.mjs → chunk-46Q4335I.mjs} +121 -39
  11. package/dist/chunk-4DO3WM7V.mjs +48 -0
  12. package/dist/chunk-5FHBC6DY.mjs +68 -0
  13. package/dist/chunk-5SAYZ4CI.mjs +40 -0
  14. package/dist/chunk-5WMFKQZ6.mjs +180 -0
  15. package/dist/chunk-623YVI5O.mjs +43 -0
  16. package/dist/{chunk-SFH2NJEJ.mjs → chunk-6OSULDEO.mjs} +3 -3
  17. package/dist/{chunk-UALR6JGV.mjs → chunk-6SR4K5T5.mjs} +1 -1
  18. package/dist/{chunk-D2NSIIXG.mjs → chunk-7KT5HPYM.mjs} +11 -11
  19. package/dist/chunk-A6ER36CW.mjs +456 -0
  20. package/dist/{chunk-QX7IFQSF.mjs → chunk-AHKHVBWR.mjs} +4 -4
  21. package/dist/chunk-AHSCWXYJ.mjs +113 -0
  22. package/dist/{chunk-7GWRPXHD.mjs → chunk-AL6GOL2Y.mjs} +1 -1
  23. package/dist/{chunk-OIKBW2QD.mjs → chunk-AUEUTZIC.mjs} +13 -13
  24. package/dist/{chunk-FYPSTTEJ.mjs → chunk-B7DD3ODQ.mjs} +1 -1
  25. package/dist/{chunk-TLAWKTSA.mjs → chunk-BD3DWDT4.mjs} +3 -3
  26. package/dist/{chunk-S2FKV4M5.mjs → chunk-BDESHD25.mjs} +4 -4
  27. package/dist/{chunk-OKTJFDPN.mjs → chunk-BFB3UH7V.mjs} +2 -2
  28. package/dist/{chunk-DGNHGNYH.mjs → chunk-C6SWS7OW.mjs} +1 -1
  29. package/dist/chunk-CDVG7SFT.mjs +271 -0
  30. package/dist/chunk-CUSHAIUL.mjs +109 -0
  31. package/dist/{chunk-QXKGOMUX.mjs → chunk-CW32WTZU.mjs} +4 -4
  32. package/dist/{chunk-SET2ANTY.mjs → chunk-D447W45Z.mjs} +3 -3
  33. package/dist/{chunk-RCAOCHWA.mjs → chunk-DFL5CV75.mjs} +18 -18
  34. package/dist/chunk-DYSVJ473.mjs +162 -0
  35. package/dist/chunk-E3PQDBYI.mjs +288 -0
  36. package/dist/chunk-EMYBNPIA.mjs +83 -0
  37. package/dist/chunk-EUYPMDQG.mjs +348 -0
  38. package/dist/{chunk-XYPW2XA5.mjs → chunk-EW72FINW.mjs} +11 -11
  39. package/dist/chunk-F24U4QQQ.mjs +234 -0
  40. package/dist/{chunk-VB5M6OZQ.mjs → chunk-F4O2YPXJ.mjs} +1 -1
  41. package/dist/chunk-FFXTQTB4.mjs +84 -0
  42. package/dist/{chunk-ZOWL2L5J.mjs → chunk-FYUSF5KO.mjs} +5 -1
  43. package/dist/{chunk-FTPBQVQ6.mjs → chunk-GNER6MCO.mjs} +1 -1
  44. package/dist/{chunk-2D3HQPFN.mjs → chunk-HF4FUBCY.mjs} +5 -5
  45. package/dist/{chunk-RSUIPKGX.mjs → chunk-HNDTLT5X.mjs} +1 -1
  46. package/dist/{chunk-N6Q5IPKT.mjs → chunk-HO6S3ECM.mjs} +46 -18
  47. package/dist/{chunk-L4NSRQ3T.mjs → chunk-HROG643K.mjs} +1 -1
  48. package/dist/chunk-I2EKKSEF.mjs +148 -0
  49. package/dist/{chunk-QTRSCVQ3.mjs → chunk-I3UDLWQ7.mjs} +1 -1
  50. package/dist/{chunk-AE7MASLF.mjs → chunk-IQGKOT7A.mjs} +9 -6
  51. package/dist/chunk-IXR4BQSQ.mjs +290 -0
  52. package/dist/{chunk-4MM7LHM5.mjs → chunk-J5NW5NCT.mjs} +1 -1
  53. package/dist/{chunk-OLKMCXAR.mjs → chunk-JTG5R5YV.mjs} +24 -24
  54. package/dist/chunk-JUBUN65Q.mjs +106 -0
  55. package/dist/chunk-K7TWMLLW.mjs +520 -0
  56. package/dist/{chunk-BOW7U26Y.mjs → chunk-K7WSRWOU.mjs} +4 -4
  57. package/dist/{chunk-NTYQWVLI.mjs → chunk-KAD26MCC.mjs} +1 -1
  58. package/dist/{chunk-KCWNDYPZ.mjs → chunk-KB7MZMED.mjs} +4 -4
  59. package/dist/chunk-KCKYGQVQ.mjs +61 -0
  60. package/dist/{chunk-VY5NEUP7.mjs → chunk-KLJLDNCA.mjs} +1 -1
  61. package/dist/chunk-LLAGF6BA.mjs +49 -0
  62. package/dist/{chunk-G27TSQLQ.mjs → chunk-M4LTX3MH.mjs} +1 -1
  63. package/dist/{chunk-YIZHS72Z.mjs → chunk-MHHA7QGO.mjs} +94 -54
  64. package/dist/{chunk-P2N2PEFY.mjs → chunk-NCUH54IZ.mjs} +4 -4
  65. package/dist/{chunk-PNRUH7JY.mjs → chunk-OECGKCVF.mjs} +5 -5
  66. package/dist/{chunk-YE67AALL.mjs → chunk-OL65UQHQ.mjs} +10 -10
  67. package/dist/{chunk-LQULK2E3.mjs → chunk-OYBIUEGE.mjs} +1 -1
  68. package/dist/{chunk-LR6LHDP3.mjs → chunk-PGR53HMH.mjs} +7 -7
  69. package/dist/chunk-PUJ42INK.mjs +141 -0
  70. package/dist/{chunk-M4VYX2PV.mjs → chunk-PV3Y7QGK.mjs} +2 -2
  71. package/dist/{chunk-UJZ4UHWI.mjs → chunk-PV7PNA6K.mjs} +4 -4
  72. package/dist/{chunk-6HIOM2HL.mjs → chunk-Q35PNFJ7.mjs} +1 -1
  73. package/dist/{chunk-JZY6TNIS.mjs → chunk-Q5SGEIJV.mjs} +27 -27
  74. package/dist/{chunk-ZFCDYW6N.mjs → chunk-QAX6HCUH.mjs} +1 -1
  75. package/dist/chunk-QHJDGB54.mjs +135 -0
  76. package/dist/chunk-QQSOZQOC.mjs +27 -0
  77. package/dist/chunk-RUX3OLVZ.mjs +59 -0
  78. package/dist/{chunk-QOJ2DQD6.mjs → chunk-S4CTM3UE.mjs} +5 -0
  79. package/dist/{chunk-ZEDMKQK2.mjs → chunk-TAX3KL66.mjs} +1 -1
  80. package/dist/chunk-TC43SMIN.mjs +133 -0
  81. package/dist/chunk-TGVXRD53.mjs +174 -0
  82. package/dist/{chunk-K5VHK7CM.mjs → chunk-TLYSVRSK.mjs} +12 -12
  83. package/dist/{chunk-YCWLFG27.mjs → chunk-TOIVHWNC.mjs} +1 -1
  84. package/dist/chunk-TXUBGKB7.mjs +160 -0
  85. package/dist/chunk-UEREFDAE.mjs +75 -0
  86. package/dist/chunk-UTCQN6XU.mjs +123 -0
  87. package/dist/{chunk-37AE3OM5.mjs → chunk-V4CUTCHS.mjs} +4 -4
  88. package/dist/{chunk-THVO2N47.mjs → chunk-VFH632TB.mjs} +9 -9
  89. package/dist/{chunk-3ERBUVHC.mjs → chunk-VJ3GC7W3.mjs} +95 -49
  90. package/dist/{chunk-V6XGXYCJ.mjs → chunk-VLELWBEW.mjs} +4 -4
  91. package/dist/{chunk-FEZKMUCF.mjs → chunk-WDTXHLYM.mjs} +1 -1
  92. package/dist/chunk-WUA546RX.mjs +129 -0
  93. package/dist/chunk-XHGISOX5.mjs +257 -0
  94. package/dist/chunk-XIY5DJXI.mjs +168 -0
  95. package/dist/{chunk-TOWTPLRC.mjs → chunk-XN37434W.mjs} +8 -8
  96. package/dist/{chunk-KLTACJ2G.mjs → chunk-XTWAJWCQ.mjs} +1 -1
  97. package/dist/chunk-Y24TXIFJ.mjs +518 -0
  98. package/dist/{chunk-DMXYRCHM.mjs → chunk-Y6UM3VTN.mjs} +4 -4
  99. package/dist/components/ui/about-you-form.js +1120 -0
  100. package/dist/components/ui/about-you-form.mjs +323 -0
  101. package/dist/components/ui/account-list-carousel.js +304 -0
  102. package/dist/components/ui/account-list-carousel.mjs +11 -0
  103. package/dist/components/ui/add-column-modal.js +1 -1
  104. package/dist/components/ui/add-column-modal.mjs +6 -6
  105. package/dist/components/ui/add-lead-modal.js +2 -2
  106. package/dist/components/ui/add-lead-modal.mjs +6 -6
  107. package/dist/components/ui/advisor-card.mjs +2 -2
  108. package/dist/components/ui/agent-evaluation-toast.js +299 -0
  109. package/dist/components/ui/agent-evaluation-toast.mjs +12 -0
  110. package/dist/components/ui/ai-assistant-drawer.mjs +5 -5
  111. package/dist/components/ui/ai-builder.js +3 -3
  112. package/dist/components/ui/ai-builder.mjs +5 -5
  113. package/dist/components/ui/ai-conversations.js +2 -2
  114. package/dist/components/ui/ai-conversations.mjs +11 -11
  115. package/dist/components/ui/alert-dialog.mjs +3 -3
  116. package/dist/components/ui/applicant-document-checklist.js +346 -0
  117. package/dist/components/ui/applicant-document-checklist.mjs +10 -0
  118. package/dist/components/ui/applicant-expenses-section.js +455 -0
  119. package/dist/components/ui/applicant-expenses-section.mjs +220 -0
  120. package/dist/components/ui/applicant-navigation-bar.js +309 -0
  121. package/dist/components/ui/applicant-navigation-bar.mjs +87 -0
  122. package/dist/components/ui/applicant-switcher.js +268 -0
  123. package/dist/components/ui/applicant-switcher.mjs +46 -0
  124. package/dist/components/ui/application-mobile-layout.js +88 -0
  125. package/dist/components/ui/application-mobile-layout.mjs +8 -0
  126. package/dist/components/ui/appointment-action-dialogs.js +1 -1
  127. package/dist/components/ui/appointment-action-dialogs.mjs +10 -10
  128. package/dist/components/ui/appointment-availability-settings.js +78 -31
  129. package/dist/components/ui/appointment-availability-settings.mjs +12 -10
  130. package/dist/components/ui/appointment-book-dialog.js +137 -58
  131. package/dist/components/ui/appointment-book-dialog.mjs +14 -14
  132. package/dist/components/ui/appointment-calendar-view.js +1 -1
  133. package/dist/components/ui/appointment-calendar-view.mjs +4 -4
  134. package/dist/components/ui/appointment-detail-sheet.js +38 -11
  135. package/dist/components/ui/appointment-detail-sheet.mjs +13 -13
  136. package/dist/components/ui/appointment-gmail-connect.mjs +2 -2
  137. package/dist/components/ui/appointment-time-slot-picker.mjs +2 -2
  138. package/dist/components/ui/appointment-upcoming-card.js +1 -1
  139. package/dist/components/ui/appointment-upcoming-card.mjs +10 -10
  140. package/dist/components/ui/asset-accordion.js +506 -0
  141. package/dist/components/ui/asset-accordion.mjs +202 -0
  142. package/dist/components/ui/assets-liabilities-side-card.js +328 -0
  143. package/dist/components/ui/assets-liabilities-side-card.mjs +127 -0
  144. package/dist/components/ui/auth-page-layout.js +3 -3
  145. package/dist/components/ui/auth-page-layout.mjs +1 -1
  146. package/dist/components/ui/backoffice-alert-history-chart.mjs +4 -4
  147. package/dist/components/ui/backoffice-alert-matching-chart.js +786 -0
  148. package/dist/components/ui/backoffice-alert-matching-chart.mjs +19 -0
  149. package/dist/components/ui/backoffice-alerts-chart.mjs +4 -4
  150. package/dist/components/ui/backoffice-connections-chart.mjs +4 -4
  151. package/dist/components/ui/backoffice-contact-history-chart.mjs +4 -4
  152. package/dist/components/ui/backoffice-contact-matching-chart.js +803 -0
  153. package/dist/components/ui/backoffice-contact-matching-chart.mjs +19 -0
  154. package/dist/components/ui/backoffice-signup-steps.js +1673 -0
  155. package/dist/components/ui/backoffice-signup-steps.mjs +36 -0
  156. package/dist/components/ui/bank-statement-document-table.js +467 -0
  157. package/dist/components/ui/bank-statement-document-table.mjs +12 -0
  158. package/dist/components/ui/bank-statement-generate-dialog.js +1517 -0
  159. package/dist/components/ui/bank-statement-generate-dialog.mjs +27 -0
  160. package/dist/components/ui/bank-statement-pdf-viewer.js +525 -0
  161. package/dist/components/ui/bank-statement-pdf-viewer.mjs +14 -0
  162. package/dist/components/ui/banking-accounts-connect.js +336 -0
  163. package/dist/components/ui/banking-accounts-connect.mjs +114 -0
  164. package/dist/components/ui/borrowing-capacity-atoms.js +382 -0
  165. package/dist/components/ui/borrowing-capacity-atoms.mjs +17 -0
  166. package/dist/components/ui/borrowing-capacity-card.js +835 -0
  167. package/dist/components/ui/borrowing-capacity-card.mjs +89 -0
  168. package/dist/components/ui/borrowing-capacity-line-chart.mjs +4 -4
  169. package/dist/components/ui/broker-info-panel.js +281 -0
  170. package/dist/components/ui/broker-info-panel.mjs +59 -0
  171. package/dist/components/ui/calculator-input-item.js +101 -0
  172. package/dist/components/ui/calculator-input-item.mjs +8 -0
  173. package/dist/components/ui/calculator-section.js +743 -0
  174. package/dist/components/ui/calculator-section.mjs +220 -0
  175. package/dist/components/ui/calendar.mjs +2 -2
  176. package/dist/components/ui/cash-balance-line-chart.mjs +5 -5
  177. package/dist/components/ui/cashflow-bar-chart.mjs +4 -4
  178. package/dist/components/ui/category-edit-dialog.js +737 -0
  179. package/dist/components/ui/category-edit-dialog.mjs +16 -0
  180. package/dist/components/ui/chat-widget.mjs +3 -3
  181. package/dist/components/ui/color-picker.mjs +4 -4
  182. package/dist/components/ui/connect-bank-step.js +511 -0
  183. package/dist/components/ui/connect-bank-step.mjs +287 -0
  184. package/dist/components/ui/contact-alert-dialog.js +1405 -0
  185. package/dist/components/ui/contact-alert-dialog.mjs +27 -0
  186. package/dist/components/ui/create-contact-modal.js +1028 -0
  187. package/dist/components/ui/create-contact-modal.mjs +21 -0
  188. package/dist/components/ui/csv-import-modal.js +583 -0
  189. package/dist/components/ui/csv-import-modal.mjs +14 -0
  190. package/dist/components/ui/currency-input.js +439 -0
  191. package/dist/components/ui/currency-input.mjs +13 -0
  192. package/dist/components/ui/dashboard-expense-categories.js +355 -0
  193. package/dist/components/ui/dashboard-expense-categories.mjs +186 -0
  194. package/dist/components/ui/dashboard-transactions-table.js +1083 -0
  195. package/dist/components/ui/dashboard-transactions-table.mjs +177 -0
  196. package/dist/components/ui/data-table.mjs +6 -6
  197. package/dist/components/ui/date-picker.mjs +6 -6
  198. package/dist/components/ui/debt-accordion.js +523 -0
  199. package/dist/components/ui/debt-accordion.mjs +219 -0
  200. package/dist/components/ui/delete-contact-component.js +479 -0
  201. package/dist/components/ui/delete-contact-component.mjs +14 -0
  202. package/dist/components/ui/dialog.js +1 -1
  203. package/dist/components/ui/dialog.mjs +3 -3
  204. package/dist/components/ui/document-checklist-template.mjs +4 -4
  205. package/dist/components/ui/drawer.mjs +3 -3
  206. package/dist/components/ui/dropdown-menu.mjs +3 -3
  207. package/dist/components/ui/dynamic-tabs.js +274 -0
  208. package/dist/components/ui/dynamic-tabs.mjs +116 -0
  209. package/dist/components/ui/editable-money-item.js +306 -0
  210. package/dist/components/ui/editable-money-item.mjs +12 -0
  211. package/dist/components/ui/expense-bar-chart.mjs +4 -4
  212. package/dist/components/ui/expense-detail-item.js +506 -0
  213. package/dist/components/ui/expense-detail-item.mjs +15 -0
  214. package/dist/components/ui/expense-work-details.js +1259 -0
  215. package/dist/components/ui/expense-work-details.mjs +175 -0
  216. package/dist/components/ui/field.mjs +2 -2
  217. package/dist/components/ui/file-preview-dialog.js +704 -0
  218. package/dist/components/ui/file-preview-dialog.mjs +17 -0
  219. package/dist/components/ui/financial-cards.mjs +2 -2
  220. package/dist/components/ui/financial-drawers.js +1 -1
  221. package/dist/components/ui/financial-drawers.mjs +5 -5
  222. package/dist/components/ui/financial-sections.mjs +4 -4
  223. package/dist/components/ui/form-primitives.mjs +2 -2
  224. package/dist/components/ui/frontend-signup-steps.js +1239 -0
  225. package/dist/components/ui/frontend-signup-steps.mjs +38 -0
  226. package/dist/components/ui/income-bar-chart.mjs +4 -4
  227. package/dist/components/ui/income-sources-card.js +269 -0
  228. package/dist/components/ui/income-sources-card.mjs +100 -0
  229. package/dist/components/ui/income-summary-component.js +361 -0
  230. package/dist/components/ui/income-summary-component.mjs +84 -0
  231. package/dist/components/ui/income-work-details.js +1663 -0
  232. package/dist/components/ui/income-work-details.mjs +28 -0
  233. package/dist/components/ui/incoming-outgoings-card.js +218 -0
  234. package/dist/components/ui/incoming-outgoings-card.mjs +82 -0
  235. package/dist/components/ui/interest-rate-input.js +442 -0
  236. package/dist/components/ui/interest-rate-input.mjs +90 -0
  237. package/dist/components/ui/interest-rate-section.js +337 -0
  238. package/dist/components/ui/interest-rate-section.mjs +84 -0
  239. package/dist/components/ui/interest-rate-used.js +202 -0
  240. package/dist/components/ui/interest-rate-used.mjs +62 -0
  241. package/dist/components/ui/kanban-column.js +338 -160
  242. package/dist/components/ui/kanban-column.mjs +13 -11
  243. package/dist/components/ui/loan-applicant-information.js +336 -0
  244. package/dist/components/ui/loan-applicant-information.mjs +59 -0
  245. package/dist/components/ui/loan-applicant-invite.js +319 -0
  246. package/dist/components/ui/loan-applicant-invite.mjs +68 -0
  247. package/dist/components/ui/loan-application-badge.js +236 -0
  248. package/dist/components/ui/loan-application-badge.mjs +10 -0
  249. package/dist/components/ui/loan-application-cards.js +356 -0
  250. package/dist/components/ui/loan-application-cards.mjs +110 -0
  251. package/dist/components/ui/loan-entry-shell.js +104 -0
  252. package/dist/components/ui/loan-entry-shell.mjs +8 -0
  253. package/dist/components/ui/loan-financials.js +410 -0
  254. package/dist/components/ui/loan-financials.mjs +76 -0
  255. package/dist/components/ui/loan-option-card.js +102 -0
  256. package/dist/components/ui/loan-option-card.mjs +41 -0
  257. package/dist/components/ui/loan-option-group.js +288 -0
  258. package/dist/components/ui/loan-option-group.mjs +10 -0
  259. package/dist/components/ui/loan-steps.js +1121 -0
  260. package/dist/components/ui/loan-steps.mjs +509 -0
  261. package/dist/components/ui/loan-wizard-shell.js +452 -0
  262. package/dist/components/ui/loan-wizard-shell.mjs +11 -0
  263. package/dist/components/ui/money-input-with-slider.js +210 -0
  264. package/dist/components/ui/money-input-with-slider.mjs +10 -0
  265. package/dist/components/ui/money-item-with-color-indicator.js +314 -0
  266. package/dist/components/ui/money-item-with-color-indicator.mjs +20 -0
  267. package/dist/components/ui/opportunity-card.js +235 -97
  268. package/dist/components/ui/opportunity-card.mjs +11 -9
  269. package/dist/components/ui/opportunity-edit-modals.js +1 -1
  270. package/dist/components/ui/opportunity-edit-modals.mjs +15 -15
  271. package/dist/components/ui/opportunity-summary-tab.js +1 -1
  272. package/dist/components/ui/opportunity-summary-tab.mjs +19 -19
  273. package/dist/components/ui/pagination.mjs +4 -4
  274. package/dist/components/ui/password-strength-tooltip.mjs +4 -4
  275. package/dist/components/ui/pipeline-board.js +358 -176
  276. package/dist/components/ui/pipeline-board.mjs +16 -14
  277. package/dist/components/ui/pipeline-chart.mjs +3 -3
  278. package/dist/components/ui/pipeline-dialogs.js +1 -1
  279. package/dist/components/ui/pipeline-dialogs.mjs +9 -9
  280. package/dist/components/ui/pipeline-primitives.js +75 -8
  281. package/dist/components/ui/pipeline-primitives.mjs +3 -2
  282. package/dist/components/ui/popover.mjs +3 -3
  283. package/dist/components/ui/property-asset-card.js +428 -0
  284. package/dist/components/ui/property-asset-card.mjs +156 -0
  285. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +4 -4
  286. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +4 -4
  287. package/dist/components/ui/property-list-carousel.js +295 -0
  288. package/dist/components/ui/property-list-carousel.mjs +11 -0
  289. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +4 -4
  290. package/dist/components/ui/property-report-dialog.js +1148 -0
  291. package/dist/components/ui/property-report-dialog.mjs +25 -0
  292. package/dist/components/ui/resource-center.js +748 -0
  293. package/dist/components/ui/resource-center.mjs +24 -0
  294. package/dist/components/ui/review-alerts-dialog.js +569 -0
  295. package/dist/components/ui/review-alerts-dialog.mjs +15 -0
  296. package/dist/components/ui/savings-goal-modal.js +1148 -0
  297. package/dist/components/ui/savings-goal-modal.mjs +160 -0
  298. package/dist/components/ui/scenario-drawer.js +791 -0
  299. package/dist/components/ui/scenario-drawer.mjs +294 -0
  300. package/dist/components/ui/scenario-item.js +256 -0
  301. package/dist/components/ui/scenario-item.mjs +11 -0
  302. package/dist/components/ui/scenario-list.js +507 -0
  303. package/dist/components/ui/scenario-list.mjs +100 -0
  304. package/dist/components/ui/select.mjs +3 -3
  305. package/dist/components/ui/share-details-dialog.js +636 -0
  306. package/dist/components/ui/share-details-dialog.mjs +19 -0
  307. package/dist/components/ui/sheet.mjs +3 -3
  308. package/dist/components/ui/sidebar-nav.mjs +5 -5
  309. package/dist/components/ui/signup-form-primitives.js +770 -0
  310. package/dist/components/ui/signup-form-primitives.mjs +25 -0
  311. package/dist/components/ui/signup-shell.js +338 -0
  312. package/dist/components/ui/signup-shell.mjs +13 -0
  313. package/dist/components/ui/stage-timeline.js +103 -33
  314. package/dist/components/ui/stage-timeline.mjs +5 -4
  315. package/dist/components/ui/submission-confirmation-card.js +284 -0
  316. package/dist/components/ui/submission-confirmation-card.mjs +62 -0
  317. package/dist/components/ui/tooltip.mjs +3 -3
  318. package/dist/components/ui/top-three-product.js +374 -0
  319. package/dist/components/ui/top-three-product.mjs +129 -0
  320. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +4 -4
  321. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -5
  322. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +4 -4
  323. package/dist/components/ui/transactions-summary-block.js +95 -0
  324. package/dist/components/ui/transactions-summary-block.mjs +34 -0
  325. package/dist/components/ui/two-fa-setup-form.mjs +3 -3
  326. package/dist/index.js +9430 -4573
  327. package/dist/index.mjs +404 -251
  328. package/dist/lib/colors.js +6 -0
  329. package/dist/lib/colors.mjs +3 -1
  330. package/dist/lib/theme-provider.mjs +2 -2
  331. package/dist/styles.css +1 -1
  332. package/package.json +367 -3
  333. package/src/components/index.tsx +223 -0
  334. package/src/components/ui/about-you-form.tsx +397 -0
  335. package/src/components/ui/account-list-carousel.tsx +87 -0
  336. package/src/components/ui/add-lead-modal.tsx +1 -1
  337. package/src/components/ui/agent-evaluation-toast.tsx +191 -0
  338. package/src/components/ui/ai-builder.tsx +3 -5
  339. package/src/components/ui/ai-conversations.tsx +1 -1
  340. package/src/components/ui/applicant-document-checklist.tsx +175 -0
  341. package/src/components/ui/applicant-expenses-section.tsx +260 -0
  342. package/src/components/ui/applicant-navigation-bar.tsx +104 -0
  343. package/src/components/ui/applicant-switcher.tsx +54 -0
  344. package/src/components/ui/application-mobile-layout.tsx +34 -0
  345. package/src/components/ui/appointment-availability-settings.tsx +115 -23
  346. package/src/components/ui/appointment-book-dialog.tsx +406 -259
  347. package/src/components/ui/appointment-calendar-view.tsx +4 -1
  348. package/src/components/ui/appointment-detail-sheet.tsx +59 -24
  349. package/src/components/ui/appointment-time-slot-picker.tsx +5 -1
  350. package/src/components/ui/asset-accordion.tsx +241 -0
  351. package/src/components/ui/assets-liabilities-side-card.tsx +157 -0
  352. package/src/components/ui/auth-page-layout.tsx +3 -3
  353. package/src/components/ui/backoffice-alert-matching-chart.tsx +320 -0
  354. package/src/components/ui/backoffice-contact-matching-chart.tsx +341 -0
  355. package/src/components/ui/backoffice-signup-steps.tsx +615 -0
  356. package/src/components/ui/bank-statement-document-table.tsx +222 -0
  357. package/src/components/ui/bank-statement-generate-dialog.tsx +435 -0
  358. package/src/components/ui/bank-statement-pdf-viewer.tsx +241 -0
  359. package/src/components/ui/banking-accounts-connect.tsx +187 -0
  360. package/src/components/ui/borrowing-capacity-atoms.tsx +228 -0
  361. package/src/components/ui/borrowing-capacity-card.tsx +155 -0
  362. package/src/components/ui/broker-info-panel.tsx +94 -0
  363. package/src/components/ui/calculator-input-item.tsx +49 -0
  364. package/src/components/ui/calculator-section.tsx +275 -0
  365. package/src/components/ui/category-edit-dialog.tsx +300 -0
  366. package/src/components/ui/connect-bank-step.tsx +379 -0
  367. package/src/components/ui/contact-alert-dialog.tsx +710 -0
  368. package/src/components/ui/create-contact-modal.tsx +237 -0
  369. package/src/components/ui/csv-import-modal.tsx +153 -0
  370. package/src/components/ui/currency-input.tsx +104 -0
  371. package/src/components/ui/dashboard-expense-categories.tsx +262 -0
  372. package/src/components/ui/dashboard-transactions-table.tsx +241 -0
  373. package/src/components/ui/debt-accordion.tsx +254 -0
  374. package/src/components/ui/delete-contact-component.tsx +87 -0
  375. package/src/components/ui/dialog.tsx +2 -2
  376. package/src/components/ui/dynamic-tabs.tsx +149 -0
  377. package/src/components/ui/editable-money-item.tsx +176 -0
  378. package/src/components/ui/expense-detail-item.tsx +216 -0
  379. package/src/components/ui/expense-work-details.tsx +229 -0
  380. package/src/components/ui/file-preview-dialog.tsx +292 -0
  381. package/src/components/ui/financial-drawers.tsx +1 -1
  382. package/src/components/ui/frontend-signup-steps.tsx +548 -0
  383. package/src/components/ui/income-sources-card.tsx +143 -0
  384. package/src/components/ui/income-summary-component.tsx +120 -0
  385. package/src/components/ui/income-work-details.tsx +429 -0
  386. package/src/components/ui/incoming-outgoings-card.tsx +111 -0
  387. package/src/components/ui/interest-rate-input.tsx +111 -0
  388. package/src/components/ui/interest-rate-section.tsx +158 -0
  389. package/src/components/ui/interest-rate-used.tsx +82 -0
  390. package/src/components/ui/kanban-column.tsx +53 -2
  391. package/src/components/ui/loan-applicant-information.tsx +64 -0
  392. package/src/components/ui/loan-applicant-invite.tsx +67 -0
  393. package/src/components/ui/loan-application-badge.tsx +70 -0
  394. package/src/components/ui/loan-application-cards.tsx +152 -0
  395. package/src/components/ui/loan-entry-shell.tsx +86 -0
  396. package/src/components/ui/loan-financials.tsx +77 -0
  397. package/src/components/ui/loan-option-card.tsx +62 -0
  398. package/src/components/ui/loan-option-group.tsx +106 -0
  399. package/src/components/ui/loan-steps.tsx +630 -0
  400. package/src/components/ui/loan-wizard-shell.tsx +235 -0
  401. package/src/components/ui/money-input-with-slider.tsx +77 -0
  402. package/src/components/ui/money-item-with-color-indicator.tsx +30 -0
  403. package/src/components/ui/opportunity-card.tsx +46 -18
  404. package/src/components/ui/pipeline-board.tsx +13 -0
  405. package/src/components/ui/pipeline-primitives.tsx +28 -0
  406. package/src/components/ui/property-asset-card.tsx +221 -0
  407. package/src/components/ui/property-list-carousel.tsx +73 -0
  408. package/src/components/ui/property-report-dialog.tsx +355 -0
  409. package/src/components/ui/resource-center.tsx +539 -0
  410. package/src/components/ui/review-alerts-dialog.tsx +163 -0
  411. package/src/components/ui/savings-goal-modal.tsx +169 -0
  412. package/src/components/ui/scenario-drawer.tsx +358 -0
  413. package/src/components/ui/scenario-item.tsx +141 -0
  414. package/src/components/ui/scenario-list.tsx +150 -0
  415. package/src/components/ui/share-details-dialog.tsx +238 -0
  416. package/src/components/ui/signup-form-primitives.tsx +212 -0
  417. package/src/components/ui/signup-shell.tsx +180 -0
  418. package/src/components/ui/stage-timeline.tsx +11 -0
  419. package/src/components/ui/submission-confirmation-card.tsx +68 -0
  420. package/src/components/ui/top-three-product.tsx +207 -0
  421. package/src/components/ui/transactions-summary-block.tsx +59 -0
  422. package/src/lib/colors.ts +12 -0
  423. package/src/lib/format-date.ts +2 -2
  424. package/src/styles/styles-css.ts +1 -1
  425. package/tsup.config.ts +77 -1
  426. package/dist/{chunk-5VOTTIXF.mjs → chunk-FRT3S72S.mjs} +3 -3
  427. package/dist/{chunk-7BTFGCFC.mjs → chunk-MUV4EGDW.mjs} +3 -3
  428. package/dist/{chunk-57ZXILTS.mjs → chunk-MXP2RX2V.mjs} +3 -3
  429. package/dist/{chunk-ZKWXDQDG.mjs → chunk-VCDGLN25.mjs} +3 -3
  430. package/dist/{chunk-FLL633WS.mjs → chunk-ZXEUBBHJ.mjs} +3 -3
@@ -0,0 +1,456 @@
1
+ import {
2
+ InputOTP,
3
+ InputOTPGroup,
4
+ InputOTPSeparator,
5
+ InputOTPSlot
6
+ } from "./chunk-HK4HUQTV.mjs";
7
+ import {
8
+ FormField
9
+ } from "./chunk-TXUBGKB7.mjs";
10
+ import {
11
+ AddressAutocomplete
12
+ } from "./chunk-MXP2RX2V.mjs";
13
+ import {
14
+ Slider
15
+ } from "./chunk-ISUA7DSB.mjs";
16
+ import {
17
+ Spinner
18
+ } from "./chunk-JVMXMFBB.mjs";
19
+ import {
20
+ ToggleGroup,
21
+ ToggleGroupItem
22
+ } from "./chunk-OWFQSXVD.mjs";
23
+ import {
24
+ Input
25
+ } from "./chunk-LBTHZSBT.mjs";
26
+ import {
27
+ Button
28
+ } from "./chunk-NOOEKOWY.mjs";
29
+ import {
30
+ __spreadProps,
31
+ __spreadValues
32
+ } from "./chunk-WNQUEZJF.mjs";
33
+
34
+ // src/components/ui/frontend-signup-steps.tsx
35
+ import { useState, useEffect } from "react";
36
+ import { CheckIcon, HomeIcon, PlusIcon } from "lucide-react";
37
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
38
+ var fmt = (v) => new Intl.NumberFormat("en-AU", {
39
+ style: "currency",
40
+ currency: "AUD",
41
+ maximumFractionDigits: 0
42
+ }).format(v);
43
+ var GOAL_MIN = 5e4;
44
+ var GOAL_MAX = 4e6;
45
+ var GOAL_STEP = 1e4;
46
+ function PhoneVerifyStep({
47
+ phone = "+61 412 345 789",
48
+ countdown = 45,
49
+ error = "",
50
+ isLoading = false,
51
+ onVerify,
52
+ onResend
53
+ }) {
54
+ const [otp, setOtp] = useState("");
55
+ const [timer, setTimer] = useState(countdown);
56
+ useEffect(() => {
57
+ if (timer <= 0) return;
58
+ const id = setInterval(() => setTimer((t) => t - 1), 1e3);
59
+ return () => clearInterval(id);
60
+ }, [timer]);
61
+ const handleChange = (value) => {
62
+ setOtp(value);
63
+ if (value.length === 6) onVerify == null ? void 0 : onVerify(value);
64
+ };
65
+ const lastFour = phone.slice(-4);
66
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
67
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
68
+ /* @__PURE__ */ jsx("p", { className: "text-2xl font-bold text-foreground", children: "We sent you a text." }),
69
+ /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
70
+ "Number we have ends in \u2022\u2022\u2022\u2022 ",
71
+ lastFour,
72
+ "."
73
+ ] })
74
+ ] }),
75
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
76
+ /* @__PURE__ */ jsxs(
77
+ InputOTP,
78
+ {
79
+ maxLength: 6,
80
+ value: otp,
81
+ onChange: handleChange,
82
+ disabled: isLoading,
83
+ "aria-label": "6-digit verification code",
84
+ children: [
85
+ /* @__PURE__ */ jsxs(InputOTPGroup, { children: [
86
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 0, "aria-invalid": !!error || void 0 }),
87
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 1, "aria-invalid": !!error || void 0 }),
88
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 2, "aria-invalid": !!error || void 0 })
89
+ ] }),
90
+ /* @__PURE__ */ jsx(InputOTPSeparator, {}),
91
+ /* @__PURE__ */ jsxs(InputOTPGroup, { children: [
92
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 3, "aria-invalid": !!error || void 0 }),
93
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 4, "aria-invalid": !!error || void 0 }),
94
+ /* @__PURE__ */ jsx(InputOTPSlot, { index: 5, "aria-invalid": !!error || void 0 })
95
+ ] })
96
+ ]
97
+ }
98
+ ),
99
+ error && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: error })
100
+ ] }),
101
+ isLoading ? /* @__PURE__ */ jsxs(
102
+ "div",
103
+ {
104
+ role: "status",
105
+ "aria-label": "Verifying code",
106
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
107
+ children: [
108
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx(Spinner, { className: "size-4" }) }),
109
+ "Verifying\u2026"
110
+ ]
111
+ }
112
+ ) : /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", "aria-live": "polite", children: [
113
+ "Didn't receive a code?",
114
+ " ",
115
+ timer > 0 ? /* @__PURE__ */ jsxs("span", { children: [
116
+ "Resend it in ",
117
+ timer,
118
+ "s"
119
+ ] }) : /* @__PURE__ */ jsx(
120
+ Button,
121
+ {
122
+ variant: "link",
123
+ size: "sm",
124
+ className: "h-auto p-0 text-sm",
125
+ onClick: () => {
126
+ setTimer(60);
127
+ onResend == null ? void 0 : onResend();
128
+ },
129
+ children: "Resend it"
130
+ }
131
+ )
132
+ ] })
133
+ ] });
134
+ }
135
+ function BrokerRequestStep({ onValuesChange }) {
136
+ const [values, setValues] = useState({
137
+ firstName: "",
138
+ lastName: "",
139
+ email: "",
140
+ phone: ""
141
+ });
142
+ const update = (field, value) => {
143
+ setValues((prev) => {
144
+ const next = __spreadProps(__spreadValues({}, prev), { [field]: value });
145
+ onValuesChange == null ? void 0 : onValuesChange(next);
146
+ return next;
147
+ });
148
+ };
149
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
150
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "You have access for the first 3 months covered by us. After this date you will need to be connected with a mortgage broker or financial planner to maintain access." }),
151
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
152
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
153
+ /* @__PURE__ */ jsx(FormField, { label: "First Name", children: /* @__PURE__ */ jsx(
154
+ Input,
155
+ {
156
+ id: "broker-first-name",
157
+ autoComplete: "given-name",
158
+ placeholder: "First Name",
159
+ value: values.firstName,
160
+ onChange: (e) => update("firstName", e.target.value)
161
+ }
162
+ ) }),
163
+ /* @__PURE__ */ jsx(FormField, { label: "Last Name", children: /* @__PURE__ */ jsx(
164
+ Input,
165
+ {
166
+ id: "broker-last-name",
167
+ autoComplete: "family-name",
168
+ placeholder: "Last Name",
169
+ value: values.lastName,
170
+ onChange: (e) => update("lastName", e.target.value)
171
+ }
172
+ ) })
173
+ ] }),
174
+ /* @__PURE__ */ jsx(FormField, { label: "Email Address", children: /* @__PURE__ */ jsx(
175
+ Input,
176
+ {
177
+ id: "broker-email",
178
+ type: "email",
179
+ autoComplete: "email",
180
+ placeholder: "Email Address",
181
+ value: values.email,
182
+ onChange: (e) => update("email", e.target.value)
183
+ }
184
+ ) }),
185
+ /* @__PURE__ */ jsx(FormField, { label: "Phone Number", children: /* @__PURE__ */ jsx(
186
+ Input,
187
+ {
188
+ id: "broker-phone",
189
+ type: "tel",
190
+ autoComplete: "tel",
191
+ placeholder: "Phone Number",
192
+ value: values.phone,
193
+ onChange: (e) => update("phone", e.target.value)
194
+ }
195
+ ) })
196
+ ] })
197
+ ] });
198
+ }
199
+ var BANKS = ["CBA", "ANZ", "NAB", "WBC", "MAC", "BOQ"];
200
+ function ConnectBankStep({ onConnect }) {
201
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ jsxs(
202
+ "button",
203
+ {
204
+ type: "button",
205
+ "aria-label": "Connect your bank account",
206
+ onClick: onConnect,
207
+ className: "flex flex-col gap-4 border border-border p-6 text-left transition-colors hover:border-primary/60",
208
+ children: [
209
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-3", "aria-hidden": "true", children: BANKS.map((abbr) => /* @__PURE__ */ jsx(
210
+ "div",
211
+ {
212
+ className: "flex h-14 items-center justify-center border border-border bg-muted/30",
213
+ children: /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-foreground", children: abbr })
214
+ },
215
+ abbr
216
+ )) }),
217
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
218
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-foreground", children: "Connect Bank" }),
219
+ /* @__PURE__ */ jsx(
220
+ "div",
221
+ {
222
+ "aria-hidden": "true",
223
+ className: "flex h-7 w-7 items-center justify-center bg-primary text-primary-foreground",
224
+ children: /* @__PURE__ */ jsx(PlusIcon, { className: "size-4" })
225
+ }
226
+ )
227
+ ] })
228
+ ]
229
+ }
230
+ ) });
231
+ }
232
+ function RetrieveBankDataStep() {
233
+ return /* @__PURE__ */ jsxs(
234
+ "div",
235
+ {
236
+ role: "status",
237
+ "aria-label": "Retrieving bank data",
238
+ className: "flex flex-col items-center justify-center gap-4 py-16 text-center",
239
+ children: [
240
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx(Spinner, { className: "size-10 text-primary" }) }),
241
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
242
+ /* @__PURE__ */ jsx("p", { className: "text-base font-semibold text-foreground", children: "Retrieving your bank data\u2026" }),
243
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "This may take a few seconds. Please don't close this window." })
244
+ ] })
245
+ ]
246
+ }
247
+ );
248
+ }
249
+ function ConnectPropertyStep({
250
+ properties = [],
251
+ onAddProperty,
252
+ onCanProceedChange,
253
+ onGoalChange
254
+ }) {
255
+ const [hasProperty, setHasProperty] = useState(null);
256
+ const [addressValue, setAddressValue] = useState("");
257
+ const [goalValue, setGoalValue] = useState(2e6);
258
+ const canProceed = hasProperty === false || hasProperty === true && properties.length > 0;
259
+ useEffect(() => {
260
+ onCanProceedChange == null ? void 0 : onCanProceedChange(canProceed);
261
+ }, [canProceed]);
262
+ const handleGoalChange = (v) => {
263
+ setGoalValue(v);
264
+ onGoalChange == null ? void 0 : onGoalChange(v);
265
+ };
266
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
267
+ /* @__PURE__ */ jsxs(
268
+ ToggleGroup,
269
+ {
270
+ type: "single",
271
+ variant: "outline",
272
+ "aria-label": "Do you own a property?",
273
+ value: hasProperty === true ? ["yes"] : hasProperty === false ? ["no"] : [],
274
+ onValueChange: (vals) => {
275
+ const val = vals[0];
276
+ setHasProperty(val === "yes" ? true : val === "no" ? false : null);
277
+ },
278
+ className: "w-full",
279
+ children: [
280
+ /* @__PURE__ */ jsx(ToggleGroupItem, { value: "yes", className: "flex-1", children: "Yes, I have a property" }),
281
+ /* @__PURE__ */ jsx(ToggleGroupItem, { value: "no", className: "flex-1", children: "No, I don't" })
282
+ ]
283
+ }
284
+ ),
285
+ hasProperty === true && /* @__PURE__ */ jsxs(Fragment, { children: [
286
+ /* @__PURE__ */ jsx(
287
+ AddressAutocomplete,
288
+ {
289
+ value: addressValue,
290
+ onValueChange: setAddressValue,
291
+ onSelect: (opt) => {
292
+ onAddProperty == null ? void 0 : onAddProperty(opt.label);
293
+ setAddressValue("");
294
+ }
295
+ }
296
+ ),
297
+ properties.length > 0 && /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-2", children: properties.map((p) => /* @__PURE__ */ jsxs(
298
+ "li",
299
+ {
300
+ className: "flex items-center justify-between border border-border px-4 py-3",
301
+ children: [
302
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
303
+ /* @__PURE__ */ jsx(
304
+ HomeIcon,
305
+ {
306
+ "aria-hidden": "true",
307
+ className: "size-4 shrink-0 text-muted-foreground"
308
+ }
309
+ ),
310
+ /* @__PURE__ */ jsxs("div", { children: [
311
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground", children: p.address }),
312
+ /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
313
+ p.suburb,
314
+ ", ",
315
+ p.state
316
+ ] })
317
+ ] })
318
+ ] }),
319
+ /* @__PURE__ */ jsx(
320
+ CheckIcon,
321
+ {
322
+ "aria-hidden": "true",
323
+ className: "size-4 text-success"
324
+ }
325
+ )
326
+ ]
327
+ },
328
+ p.id
329
+ )) })
330
+ ] }),
331
+ hasProperty === false && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 border border-border p-6", children: [
332
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
333
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground", children: "What's your property budget?" }),
334
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Set your estimated buying goal to help us tailor your experience." })
335
+ ] }),
336
+ /* @__PURE__ */ jsx(
337
+ "p",
338
+ {
339
+ "aria-live": "polite",
340
+ className: "tabular-nums text-3xl font-bold text-foreground",
341
+ children: fmt(goalValue)
342
+ }
343
+ ),
344
+ /* @__PURE__ */ jsx(
345
+ Slider,
346
+ {
347
+ min: GOAL_MIN,
348
+ max: GOAL_MAX,
349
+ step: GOAL_STEP,
350
+ value: goalValue,
351
+ onValueChange: handleGoalChange,
352
+ "aria-label": "Property buying goal"
353
+ }
354
+ ),
355
+ /* @__PURE__ */ jsxs(
356
+ "div",
357
+ {
358
+ "aria-hidden": "true",
359
+ className: "flex justify-between text-xs text-muted-foreground",
360
+ children: [
361
+ /* @__PURE__ */ jsx("span", { children: fmt(GOAL_MIN) }),
362
+ /* @__PURE__ */ jsx("span", { children: fmt(GOAL_MAX) })
363
+ ]
364
+ }
365
+ )
366
+ ] })
367
+ ] });
368
+ }
369
+ function BuyingGoalStep({
370
+ initialValue = 2e6,
371
+ isLoading = false,
372
+ onConfirm
373
+ }) {
374
+ const [value, setValue] = useState(initialValue);
375
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-8", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 border border-border p-6", children: [
376
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
377
+ /* @__PURE__ */ jsx(
378
+ "p",
379
+ {
380
+ "aria-live": "polite",
381
+ className: "tabular-nums text-3xl font-bold text-foreground",
382
+ children: fmt(value)
383
+ }
384
+ ),
385
+ /* @__PURE__ */ jsx(
386
+ Button,
387
+ {
388
+ variant: "default",
389
+ onClick: () => onConfirm == null ? void 0 : onConfirm(value),
390
+ disabled: isLoading,
391
+ children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
392
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx(Spinner, { className: "size-4" }) }),
393
+ "Adding\u2026"
394
+ ] }) : "Confirm"
395
+ }
396
+ )
397
+ ] }),
398
+ /* @__PURE__ */ jsx(
399
+ Slider,
400
+ {
401
+ min: GOAL_MIN,
402
+ max: GOAL_MAX,
403
+ step: GOAL_STEP,
404
+ value,
405
+ onValueChange: (v) => setValue(v),
406
+ disabled: isLoading,
407
+ "aria-label": "Buying goal"
408
+ }
409
+ ),
410
+ /* @__PURE__ */ jsxs(
411
+ "div",
412
+ {
413
+ "aria-hidden": "true",
414
+ className: "flex justify-between text-xs text-muted-foreground",
415
+ children: [
416
+ /* @__PURE__ */ jsx("span", { children: fmt(GOAL_MIN) }),
417
+ /* @__PURE__ */ jsx("span", { children: fmt(GOAL_MAX) })
418
+ ]
419
+ }
420
+ )
421
+ ] }) });
422
+ }
423
+ function FrontendSuccessStep({
424
+ firstName = "Alex",
425
+ onGoToDashboard
426
+ }) {
427
+ return /* @__PURE__ */ jsxs("div", { className: "flex min-h-full flex-col items-center justify-center gap-6 px-4 py-16 text-center", children: [
428
+ /* @__PURE__ */ jsx(
429
+ "div",
430
+ {
431
+ "aria-hidden": "true",
432
+ className: "flex size-16 items-center justify-center bg-success/10",
433
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-8 text-success", strokeWidth: 2 })
434
+ }
435
+ ),
436
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
437
+ /* @__PURE__ */ jsxs("h2", { className: "text-2xl font-bold text-foreground", children: [
438
+ "You're all set, ",
439
+ firstName,
440
+ "!"
441
+ ] }),
442
+ /* @__PURE__ */ jsx("p", { className: "max-w-[360px] text-sm text-muted-foreground", children: "Your account is ready. Head to your dashboard to explore your financial overview and next steps." })
443
+ ] }),
444
+ /* @__PURE__ */ jsx(Button, { variant: "default", size: "lg", onClick: onGoToDashboard, children: "Go to Dashboard" })
445
+ ] });
446
+ }
447
+
448
+ export {
449
+ PhoneVerifyStep,
450
+ BrokerRequestStep,
451
+ ConnectBankStep,
452
+ RetrieveBankDataStep,
453
+ ConnectPropertyStep,
454
+ BuyingGoalStep,
455
+ FrontendSuccessStep
456
+ };
@@ -6,9 +6,6 @@ import {
6
6
  FALLBACK_PRIMARY,
7
7
  FALLBACK_SECONDARY
8
8
  } from "./chunk-YEWNFK5S.mjs";
9
- import {
10
- formatCurrencyAbbrev
11
- } from "./chunk-MN5NYQCL.mjs";
12
9
  import {
13
10
  Empty,
14
11
  EmptyDescription
@@ -21,7 +18,10 @@ import {
21
18
  } from "./chunk-3VDET466.mjs";
22
19
  import {
23
20
  useThemeVars
24
- } from "./chunk-FEZKMUCF.mjs";
21
+ } from "./chunk-WDTXHLYM.mjs";
22
+ import {
23
+ formatCurrencyAbbrev
24
+ } from "./chunk-MN5NYQCL.mjs";
25
25
  import {
26
26
  cn
27
27
  } from "./chunk-AFML43VJ.mjs";
@@ -0,0 +1,113 @@
1
+ import {
2
+ Badge
3
+ } from "./chunk-WL6WVV47.mjs";
4
+ import {
5
+ cn
6
+ } from "./chunk-AFML43VJ.mjs";
7
+ import {
8
+ __spreadValues
9
+ } from "./chunk-WNQUEZJF.mjs";
10
+
11
+ // src/components/ui/agent-evaluation-toast.tsx
12
+ import { Bot, CheckCircle2, AlertTriangle, XCircle } from "lucide-react";
13
+ import { toast } from "sonner";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ var RESULT_CONFIG = {
16
+ accepted: {
17
+ label: "Accepted",
18
+ icon: CheckCircle2,
19
+ badgeClass: "border-success/40 bg-success/10 text-success-text gap-1",
20
+ borderClass: "border-success/30"
21
+ },
22
+ partial: {
23
+ label: "Partial match",
24
+ icon: AlertTriangle,
25
+ badgeClass: "border-warning/40 bg-warning/10 text-warning-text gap-1",
26
+ borderClass: "border-warning/30"
27
+ },
28
+ declined: {
29
+ label: "Declined",
30
+ icon: XCircle,
31
+ badgeClass: "border-destructive/40 bg-destructive/10 text-destructive-text gap-1",
32
+ borderClass: "border-destructive/30"
33
+ }
34
+ };
35
+ function AgentEvaluationCard({
36
+ agentName,
37
+ taskName,
38
+ confidence,
39
+ result,
40
+ reasoning,
41
+ className
42
+ }) {
43
+ const cfg = RESULT_CONFIG[result];
44
+ const Icon = cfg.icon;
45
+ return /* @__PURE__ */ jsxs(
46
+ "div",
47
+ {
48
+ className: cn(
49
+ "flex flex-col gap-2 rounded border bg-card p-3 text-sm shadow-sm",
50
+ cfg.borderClass,
51
+ className
52
+ ),
53
+ children: [
54
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
55
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [
56
+ /* @__PURE__ */ jsx("span", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded border bg-muted", children: /* @__PURE__ */ jsx(Bot, { className: "size-3.5 text-muted-foreground" }) }),
57
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
58
+ /* @__PURE__ */ jsx("p", { className: "truncate font-medium text-foreground leading-tight", children: agentName }),
59
+ /* @__PURE__ */ jsxs("p", { className: "truncate text-xs text-muted-foreground", children: [
60
+ "evaluated \u201C",
61
+ taskName,
62
+ "\u201D"
63
+ ] })
64
+ ] })
65
+ ] }),
66
+ /* @__PURE__ */ jsxs(
67
+ Badge,
68
+ {
69
+ variant: "outline",
70
+ className: cn("shrink-0 text-[11px]", cfg.badgeClass),
71
+ children: [
72
+ /* @__PURE__ */ jsx(Icon, { className: "size-3" }),
73
+ cfg.label
74
+ ]
75
+ }
76
+ )
77
+ ] }),
78
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
79
+ /* @__PURE__ */ jsx("div", { className: "h-1.5 flex-1 overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ className: cn(
83
+ "h-full rounded-full transition-all",
84
+ result === "accepted" ? "bg-success" : result === "partial" ? "bg-warning" : "bg-destructive"
85
+ ),
86
+ style: { width: `${confidence}%` }
87
+ }
88
+ ) }),
89
+ /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-xs font-medium text-foreground tabular-nums", children: [
90
+ confidence,
91
+ "%"
92
+ ] })
93
+ ] }),
94
+ /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground leading-relaxed", children: [
95
+ "\u201C",
96
+ reasoning,
97
+ "\u201D"
98
+ ] })
99
+ ]
100
+ }
101
+ );
102
+ }
103
+ function showAgentEvaluationToast(data) {
104
+ toast.custom(
105
+ () => /* @__PURE__ */ jsx("div", { className: "w-[360px]", children: /* @__PURE__ */ jsx(AgentEvaluationCard, __spreadValues({}, data)) }),
106
+ { duration: 6e3 }
107
+ );
108
+ }
109
+
110
+ export {
111
+ AgentEvaluationCard,
112
+ showAgentEvaluationToast
113
+ };
@@ -2,7 +2,7 @@ import {
2
2
  Popover,
3
3
  PopoverContent,
4
4
  PopoverTrigger
5
- } from "./chunk-DGNHGNYH.mjs";
5
+ } from "./chunk-C6SWS7OW.mjs";
6
6
  import {
7
7
  Input
8
8
  } from "./chunk-LBTHZSBT.mjs";
@@ -6,14 +6,14 @@ import {
6
6
  EditIncomeModal,
7
7
  EditLoanScenarioModal,
8
8
  PROPERTY_ASSET_TYPES
9
- } from "./chunk-JZY6TNIS.mjs";
9
+ } from "./chunk-Q5SGEIJV.mjs";
10
10
  import {
11
11
  AboutCard,
12
12
  DebtCard,
13
13
  ExpensesCard,
14
14
  IncomeCard,
15
15
  PropertyCard
16
- } from "./chunk-L4NSRQ3T.mjs";
16
+ } from "./chunk-HROG643K.mjs";
17
17
  import {
18
18
  FinancialDetailField,
19
19
  FinancialLineItem,
@@ -22,11 +22,14 @@ import {
22
22
  FinancialSubtotalFrame
23
23
  } from "./chunk-DQB4EPIS.mjs";
24
24
  import {
25
- formatCurrency
26
- } from "./chunk-MN5NYQCL.mjs";
25
+ Checkbox
26
+ } from "./chunk-IKXYTCSB.mjs";
27
27
  import {
28
- Badge
29
- } from "./chunk-WL6WVV47.mjs";
28
+ Select,
29
+ SelectContent,
30
+ SelectItem,
31
+ SelectTrigger
32
+ } from "./chunk-TAX3KL66.mjs";
30
33
  import {
31
34
  Tabs,
32
35
  TabsContent,
@@ -34,14 +37,11 @@ import {
34
37
  TabsTrigger
35
38
  } from "./chunk-WE4YKBDE.mjs";
36
39
  import {
37
- Checkbox
38
- } from "./chunk-IKXYTCSB.mjs";
40
+ Badge
41
+ } from "./chunk-WL6WVV47.mjs";
39
42
  import {
40
- Select,
41
- SelectContent,
42
- SelectItem,
43
- SelectTrigger
44
- } from "./chunk-ZEDMKQK2.mjs";
43
+ formatCurrency
44
+ } from "./chunk-MN5NYQCL.mjs";
45
45
  import {
46
46
  Button
47
47
  } from "./chunk-NOOEKOWY.mjs";
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  Field,
7
7
  FieldError
8
- } from "./chunk-7BTFGCFC.mjs";
8
+ } from "./chunk-MUV4EGDW.mjs";
9
9
  import {
10
10
  Label
11
11
  } from "./chunk-P7CEBZM6.mjs";
@@ -1,9 +1,9 @@
1
+ import {
2
+ useThemeVars
3
+ } from "./chunk-WDTXHLYM.mjs";
1
4
  import {
2
5
  buttonVariants
3
6
  } from "./chunk-NOOEKOWY.mjs";
4
- import {
5
- useThemeVars
6
- } from "./chunk-FEZKMUCF.mjs";
7
7
  import {
8
8
  cn
9
9
  } from "./chunk-AFML43VJ.mjs";