@wealthx/shadcn 1.3.1 → 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.
- package/.turbo/turbo-build.log +259 -223
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-2UM72RJ7.mjs → chunk-2D3HQPFN.mjs} +12 -10
- package/dist/chunk-2EM2FRU6.mjs +613 -0
- package/dist/{chunk-FH6QVUVZ.mjs → chunk-2GIYVERS.mjs} +2 -2
- package/dist/chunk-2P7HP7LR.mjs +68 -0
- package/dist/{chunk-HISNT2MG.mjs → chunk-37AE3OM5.mjs} +5 -5
- package/dist/{chunk-HBZLGDIN.mjs → chunk-3ERBUVHC.mjs} +169 -110
- package/dist/{chunk-C7CQJNMR.mjs → chunk-3VDET466.mjs} +2 -2
- package/dist/{chunk-462HMNO4.mjs → chunk-4MM7LHM5.mjs} +2 -2
- package/dist/{chunk-QMY3AZJH.mjs → chunk-4Z66LMIQ.mjs} +2 -2
- package/dist/{chunk-U5X52X37.mjs → chunk-57ZXILTS.mjs} +6 -6
- package/dist/{chunk-3OYFOX3X.mjs → chunk-5VOTTIXF.mjs} +2 -2
- package/dist/{chunk-LBMRIB3G.mjs → chunk-6AJUS7VX.mjs} +1 -1
- package/dist/{chunk-OODBHKG7.mjs → chunk-6HIOM2HL.mjs} +7 -4
- package/dist/{chunk-BDYZCBRT.mjs → chunk-6QAFGZC2.mjs} +2 -2
- package/dist/{chunk-U4NDAF2P.mjs → chunk-6TX73WG7.mjs} +1 -1
- package/dist/{chunk-GD4BJDJR.mjs → chunk-7BTFGCFC.mjs} +4 -4
- package/dist/{chunk-FAKPBKLT.mjs → chunk-7GWRPXHD.mjs} +4 -4
- package/dist/{chunk-NMOI6CQD.mjs → chunk-7YI3HEBH.mjs} +5 -5
- package/dist/{chunk-T4BJLT57.mjs → chunk-AE7MASLF.mjs} +5 -5
- package/dist/{chunk-VLQZANBF.mjs → chunk-AFML43VJ.mjs} +6 -1
- package/dist/chunk-BBXSNDS3.mjs +260 -0
- package/dist/chunk-BOW7U26Y.mjs +203 -0
- package/dist/{chunk-34NWQURD.mjs → chunk-BS75ICOO.mjs} +2 -2
- package/dist/chunk-D2NSIIXG.mjs +394 -0
- package/dist/{chunk-3GF7OVTP.mjs → chunk-DGNHGNYH.mjs} +2 -2
- package/dist/{chunk-VLARHE5V.mjs → chunk-DMXYRCHM.mjs} +6 -6
- package/dist/{chunk-OGOYQ7BG.mjs → chunk-DQB4EPIS.mjs} +1 -1
- package/dist/{chunk-MIZQHHUO.mjs → chunk-FL6DZFJK.mjs} +106 -38
- package/dist/{chunk-I3RZS7V2.mjs → chunk-FLL633WS.mjs} +19 -33
- package/dist/{chunk-PBL4OQV2.mjs → chunk-FTPBQVQ6.mjs} +4 -4
- package/dist/chunk-FYPSTTEJ.mjs +169 -0
- package/dist/{chunk-6O6KD7CE.mjs → chunk-G27TSQLQ.mjs} +6 -6
- package/dist/{chunk-66MI7Q4B.mjs → chunk-GT3RU6GA.mjs} +2 -2
- package/dist/{chunk-D6ID6M4V.mjs → chunk-GTAVSBDO.mjs} +2 -2
- package/dist/{chunk-24FUO7TD.mjs → chunk-H6NQTIF4.mjs} +2 -2
- package/dist/{chunk-7DHU4VGG.mjs → chunk-HK4HUQTV.mjs} +2 -2
- package/dist/chunk-I4KVSZCH.mjs +101 -0
- package/dist/{chunk-RGVKLTLH.mjs → chunk-IKXYTCSB.mjs} +2 -2
- package/dist/{chunk-Y6DWJSKZ.mjs → chunk-ISUA7DSB.mjs} +1 -1
- package/dist/{chunk-2A5RRQGG.mjs → chunk-JD3YWRNP.mjs} +10 -14
- package/dist/{chunk-J5UICVJS.mjs → chunk-JPGL36WQ.mjs} +2 -2
- package/dist/{chunk-7XJHLGUV.mjs → chunk-JTK6VJXY.mjs} +2 -2
- package/dist/{chunk-7YAU5CY6.mjs → chunk-JVMXMFBB.mjs} +2 -2
- package/dist/{chunk-IAE3F7DR.mjs → chunk-JZY6TNIS.mjs} +21 -21
- package/dist/{chunk-K5A5L6T2.mjs → chunk-K4KOD3KR.mjs} +12 -12
- package/dist/{chunk-MBON7YRJ.mjs → chunk-K5QV4TT6.mjs} +3 -3
- package/dist/{chunk-IHMFS7NZ.mjs → chunk-K5VHK7CM.mjs} +21 -21
- package/dist/{chunk-RJI6GKVF.mjs → chunk-KCWNDYPZ.mjs} +5 -5
- package/dist/{chunk-UFYSFDER.mjs → chunk-KFH36NKF.mjs} +1 -1
- package/dist/{chunk-EBXQWIYG.mjs → chunk-KLTACJ2G.mjs} +5 -5
- package/dist/{chunk-3TTACBDP.mjs → chunk-KWD6GANL.mjs} +4 -4
- package/dist/{chunk-IOJRDS6V.mjs → chunk-L4NSRQ3T.mjs} +218 -147
- package/dist/{chunk-GYMYRIZP.mjs → chunk-LBTHZSBT.mjs} +2 -2
- package/dist/{chunk-AMQZRHEZ.mjs → chunk-LQULK2E3.mjs} +5 -5
- package/dist/{chunk-YJG55G2H.mjs → chunk-LR6LHDP3.mjs} +5 -5
- package/dist/{chunk-7PV3IWCN.mjs → chunk-M4VYX2PV.mjs} +19 -1
- package/dist/{chunk-P76HMUI6.mjs → chunk-MDUKXXIL.mjs} +2 -2
- package/dist/{chunk-LV35NGVG.mjs → chunk-N6Q5IPKT.mjs} +9 -9
- package/dist/{chunk-DOEO3CDL.mjs → chunk-NB3ZL36B.mjs} +1 -1
- package/dist/{chunk-XREGSKX3.mjs → chunk-NOOEKOWY.mjs} +5 -5
- package/dist/{chunk-NL3ZO62D.mjs → chunk-NT4FX27K.mjs} +1 -1
- package/dist/{chunk-QZ4RE6NA.mjs → chunk-NTYQWVLI.mjs} +6 -6
- package/dist/{chunk-ERGGHC2V.mjs → chunk-OEOOYMC2.mjs} +2 -2
- package/dist/{chunk-4GAWMKMI.mjs → chunk-OIKBW2QD.mjs} +291 -54
- package/dist/{chunk-DUJTAXMH.mjs → chunk-OKTJFDPN.mjs} +6 -6
- package/dist/chunk-OLKMCXAR.mjs +1219 -0
- package/dist/{chunk-EI5F6FMT.mjs → chunk-OWFQSXVD.mjs} +3 -3
- package/dist/{chunk-6DZEXFNB.mjs → chunk-P2N2PEFY.mjs} +3 -3
- package/dist/{chunk-NSLMILBT.mjs → chunk-P7CEBZM6.mjs} +2 -2
- package/dist/{chunk-7S5AESZO.mjs → chunk-PNRUH7JY.mjs} +6 -6
- package/dist/{chunk-ZU4NV6RG.mjs → chunk-PNSYFE3K.mjs} +2 -2
- package/dist/{chunk-JKGDCQTZ.mjs → chunk-QTRSCVQ3.mjs} +5 -5
- package/dist/{chunk-ABFDMHOR.mjs → chunk-QX7IFQSF.mjs} +5 -5
- package/dist/{chunk-CFMQP5QS.mjs → chunk-QXKGOMUX.mjs} +6 -6
- package/dist/{chunk-NQPOYKAQ.mjs → chunk-R2ON6CAN.mjs} +2 -2
- package/dist/{chunk-DBHJ5KC3.mjs → chunk-R4HCRDU5.mjs} +1 -1
- package/dist/{chunk-EWRB4PAD.mjs → chunk-RCAOCHWA.mjs} +14 -14
- package/dist/{chunk-EFRENWEJ.mjs → chunk-RSUIPKGX.mjs} +2 -2
- package/dist/{chunk-DGHAXJBN.mjs → chunk-S2FKV4M5.mjs} +5 -5
- package/dist/{chunk-RGU7HOEC.mjs → chunk-SET2ANTY.mjs} +5 -7
- package/dist/chunk-SFH2NJEJ.mjs +47 -0
- package/dist/{chunk-6AW4KJHE.mjs → chunk-SIVYAI3M.mjs} +12 -12
- package/dist/{chunk-5FQIKDKP.mjs → chunk-THVO2N47.mjs} +8 -8
- package/dist/{chunk-JMHR3YGZ.mjs → chunk-TLAWKTSA.mjs} +3 -3
- package/dist/{chunk-HVY6KCCF.mjs → chunk-TOWTPLRC.mjs} +68 -72
- package/dist/{chunk-6JQFUE5I.mjs → chunk-UALR6JGV.mjs} +2 -2
- package/dist/{chunk-MLNEWRWV.mjs → chunk-UJZ4UHWI.mjs} +10 -15
- package/dist/{chunk-MARPPFOJ.mjs → chunk-UNACI2YK.mjs} +2 -2
- package/dist/{chunk-3NCUZIFP.mjs → chunk-V6XGXYCJ.mjs} +7 -7
- package/dist/chunk-VB5M6OZQ.mjs +57 -0
- package/dist/{chunk-5IS7G74I.mjs → chunk-VY5NEUP7.mjs} +6 -6
- package/dist/{chunk-JHJHG4GO.mjs → chunk-WE4YKBDE.mjs} +2 -2
- package/dist/{chunk-BKNFWEH2.mjs → chunk-WL6WVV47.mjs} +3 -3
- package/dist/{chunk-FWCSY2DS.mjs → chunk-WNQUEZJF.mjs} +22 -1
- package/dist/{chunk-2Y7YJKPE.mjs → chunk-WZ6UJCBL.mjs} +1 -1
- package/dist/{chunk-UMTOX62O.mjs → chunk-XYPW2XA5.mjs} +13 -10
- package/dist/chunk-Y2MTAVAK.mjs +34 -0
- package/dist/{chunk-6CR5N2JW.mjs → chunk-YCWLFG27.mjs} +6 -6
- package/dist/{chunk-PU4YZQXV.mjs → chunk-YE67AALL.mjs} +12 -12
- package/dist/{chunk-M3FV7LOK.mjs → chunk-YEWNFK5S.mjs} +6 -1
- package/dist/{chunk-R3VSPKNP.mjs → chunk-YIZHS72Z.mjs} +11 -12
- package/dist/{chunk-7PYJD5JI.mjs → chunk-ZEDMKQK2.mjs} +2 -2
- package/dist/{chunk-N2PT566P.mjs → chunk-ZFCDYW6N.mjs} +4 -4
- package/dist/chunk-ZGQIVGIN.mjs +57 -0
- package/dist/{chunk-Q2BGOAMG.mjs → chunk-ZKWXDQDG.mjs} +4 -4
- package/dist/{chunk-GHC7LLUX.mjs → chunk-ZOWL2L5J.mjs} +5 -5
- package/dist/components/ui/accordion.mjs +3 -3
- package/dist/components/ui/add-column-modal.js +2 -2
- package/dist/components/ui/add-column-modal.mjs +10 -10
- package/dist/components/ui/add-lead-modal.js +424 -82
- package/dist/components/ui/add-lead-modal.mjs +12 -9
- package/dist/components/ui/advisor-card.js +2 -2
- package/dist/components/ui/advisor-card.mjs +8 -8
- package/dist/components/ui/ai-assistant-drawer.js +2 -2
- package/dist/components/ui/ai-assistant-drawer.mjs +9 -9
- package/dist/components/ui/ai-builder.js +958 -0
- package/dist/components/ui/ai-builder.mjs +25 -0
- package/dist/components/ui/ai-conversations.js +2045 -0
- package/dist/components/ui/ai-conversations.mjs +41 -0
- package/dist/components/ui/alert-dialog.js +2 -2
- package/dist/components/ui/alert-dialog.mjs +5 -5
- package/dist/components/ui/alert.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.js +19 -3
- package/dist/components/ui/appointment-action-dialogs.mjs +15 -14
- package/dist/components/ui/appointment-availability-settings.js +181 -111
- package/dist/components/ui/appointment-availability-settings.mjs +20 -18
- package/dist/components/ui/appointment-book-dialog.js +113 -24
- package/dist/components/ui/appointment-book-dialog.mjs +21 -20
- package/dist/components/ui/appointment-calendar-view.js +19 -3
- package/dist/components/ui/appointment-calendar-view.mjs +10 -9
- package/dist/components/ui/appointment-detail-sheet.js +19 -3
- package/dist/components/ui/appointment-detail-sheet.mjs +18 -17
- package/dist/components/ui/appointment-gmail-connect.js +49 -89
- package/dist/components/ui/appointment-gmail-connect.mjs +8 -9
- package/dist/components/ui/appointment-mini-card.js +2 -2
- package/dist/components/ui/appointment-mini-card.mjs +6 -6
- package/dist/components/ui/appointment-time-slot-picker.mjs +6 -6
- package/dist/components/ui/appointment-upcoming-card.js +19 -3
- package/dist/components/ui/appointment-upcoming-card.mjs +15 -14
- package/dist/components/ui/auth-logo.js +95 -0
- package/dist/components/ui/auth-logo.mjs +8 -0
- package/dist/components/ui/auth-page-layout.js +108 -0
- package/dist/components/ui/auth-page-layout.mjs +8 -0
- package/dist/components/ui/avatar.mjs +3 -3
- package/dist/components/ui/backoffice-alert-history-chart.js +2 -2
- package/dist/components/ui/backoffice-alert-history-chart.mjs +9 -9
- package/dist/components/ui/backoffice-alerts-chart.js +2 -2
- package/dist/components/ui/backoffice-alerts-chart.mjs +11 -11
- package/dist/components/ui/backoffice-connections-chart.js +2 -2
- package/dist/components/ui/backoffice-connections-chart.mjs +11 -11
- package/dist/components/ui/backoffice-contact-history-chart.js +2 -2
- package/dist/components/ui/backoffice-contact-history-chart.mjs +9 -9
- package/dist/components/ui/badge.mjs +4 -4
- package/dist/components/ui/borrowing-capacity-line-chart.js +145 -132
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +9 -9
- package/dist/components/ui/button.js +2 -2
- package/dist/components/ui/button.mjs +4 -4
- package/dist/components/ui/calendar.js +17 -3
- package/dist/components/ui/calendar.mjs +6 -5
- package/dist/components/ui/card.mjs +3 -3
- package/dist/components/ui/cash-balance-line-chart.js +157 -152
- package/dist/components/ui/cash-balance-line-chart.mjs +9 -9
- package/dist/components/ui/cashflow-bar-chart.js +2 -2
- package/dist/components/ui/cashflow-bar-chart.mjs +9 -9
- package/dist/components/ui/chat-widget-primitives.js +573 -0
- package/dist/components/ui/chat-widget-primitives.mjs +21 -0
- package/dist/components/ui/chat-widget.js +1268 -0
- package/dist/components/ui/chat-widget.mjs +29 -0
- package/dist/components/ui/checkbox.mjs +3 -3
- package/dist/components/ui/chip.js +2 -2
- package/dist/components/ui/chip.mjs +6 -6
- package/dist/components/ui/color-picker.js +2 -2
- package/dist/components/ui/color-picker.mjs +7 -7
- package/dist/components/ui/combobox.mjs +3 -3
- package/dist/components/ui/data-table.js +2 -2
- package/dist/components/ui/data-table.mjs +12 -12
- package/dist/components/ui/date-picker.js +22 -6
- package/dist/components/ui/date-picker.mjs +9 -8
- package/dist/components/ui/dialog.js +2 -2
- package/dist/components/ui/dialog.mjs +5 -5
- package/dist/components/ui/document-checklist-template.js +630 -0
- package/dist/components/ui/document-checklist-template.mjs +15 -0
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/drawer.mjs +3 -3
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/empty.mjs +3 -3
- package/dist/components/ui/expense-bar-chart.js +2 -2
- package/dist/components/ui/expense-bar-chart.mjs +9 -9
- package/dist/components/ui/field.mjs +5 -5
- package/dist/components/ui/financial-cards.js +431 -291
- package/dist/components/ui/financial-cards.mjs +10 -9
- package/dist/components/ui/financial-drawers.js +4 -4
- package/dist/components/ui/financial-drawers.mjs +8 -8
- package/dist/components/ui/financial-primitives.mjs +3 -3
- package/dist/components/ui/financial-sections.js +8 -9
- package/dist/components/ui/financial-sections.mjs +12 -12
- package/dist/components/ui/form-primitives.mjs +8 -8
- package/dist/components/ui/income-bar-chart.js +2 -2
- package/dist/components/ui/income-bar-chart.mjs +9 -9
- package/dist/components/ui/input-group.js +2 -2
- package/dist/components/ui/input-group.mjs +7 -7
- package/dist/components/ui/input-otp.mjs +3 -3
- package/dist/components/ui/input.mjs +3 -3
- package/dist/components/ui/kanban-column.js +19 -23
- package/dist/components/ui/kanban-column.mjs +14 -14
- package/dist/components/ui/label.mjs +3 -3
- package/dist/components/ui/onboarding-layout.js +476 -0
- package/dist/components/ui/onboarding-layout.mjs +11 -0
- package/dist/components/ui/opportunity-card.js +2 -2
- package/dist/components/ui/opportunity-card.mjs +12 -12
- package/dist/components/ui/opportunity-edit-modals.js +22 -6
- package/dist/components/ui/opportunity-edit-modals.mjs +21 -20
- package/dist/components/ui/opportunity-summary-tab.js +991 -674
- package/dist/components/ui/opportunity-summary-tab.mjs +26 -26
- package/dist/components/ui/page-header.mjs +3 -3
- package/dist/components/ui/page-top-bar.mjs +3 -3
- package/dist/components/ui/pagination.js +2 -2
- package/dist/components/ui/pagination.mjs +6 -6
- package/dist/components/ui/password-strength-tooltip.js +197 -0
- package/dist/components/ui/password-strength-tooltip.mjs +11 -0
- package/dist/components/ui/pipeline-alerts.mjs +3 -3
- package/dist/components/ui/pipeline-board.js +19 -23
- package/dist/components/ui/pipeline-board.mjs +18 -18
- package/dist/components/ui/pipeline-chart.js +12 -6
- package/dist/components/ui/pipeline-chart.mjs +4 -3
- package/dist/components/ui/pipeline-dialogs.js +28 -12
- package/dist/components/ui/pipeline-dialogs.mjs +14 -13
- package/dist/components/ui/pipeline-primitives.mjs +6 -6
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/progress.mjs +3 -3
- package/dist/components/ui/property-cashflow-doughnut-chart.js +2 -2
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +9 -9
- package/dist/components/ui/property-debt-equity-doughnut-chart.js +2 -2
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +9 -9
- package/dist/components/ui/property-mobile-estimate-line-chart.js +2 -2
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +9 -9
- package/dist/components/ui/radio-group.mjs +3 -3
- package/dist/components/ui/select.mjs +3 -3
- package/dist/components/ui/separator.mjs +3 -3
- package/dist/components/ui/sheet.mjs +3 -3
- package/dist/components/ui/sidebar-nav.js +7 -9
- package/dist/components/ui/sidebar-nav.mjs +7 -7
- package/dist/components/ui/skeleton.mjs +3 -3
- package/dist/components/ui/slider.mjs +3 -3
- package/dist/components/ui/sonner.mjs +2 -2
- package/dist/components/ui/spinner.mjs +3 -3
- package/dist/components/ui/stage-timeline.mjs +10 -10
- package/dist/components/ui/stepper.mjs +3 -3
- package/dist/components/ui/switch.mjs +3 -3
- package/dist/components/ui/table.mjs +3 -3
- package/dist/components/ui/tabs.mjs +3 -3
- package/dist/components/ui/textarea.mjs +3 -3
- package/dist/components/ui/toggle-group.mjs +4 -4
- package/dist/components/ui/toggle.mjs +3 -3
- package/dist/components/ui/tooltip.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +2 -2
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +9 -9
- package/dist/components/ui/transactions-income-expense-bar-chart.js +2 -2
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +9 -9
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +2 -2
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +9 -9
- package/dist/components/ui/two-fa-setup-form.js +612 -0
- package/dist/components/ui/two-fa-setup-form.mjs +16 -0
- package/dist/components/ui/upload-card.js +187 -0
- package/dist/components/ui/upload-card.mjs +10 -0
- package/dist/components/ui/video-background.js +118 -0
- package/dist/components/ui/video-background.mjs +8 -0
- package/dist/index.js +12765 -9400
- package/dist/index.mjs +341 -245
- package/dist/lib/colors.mjs +1 -1
- package/dist/lib/theme-provider.mjs +1 -1
- package/dist/lib/typography.mjs +2 -2
- package/dist/lib/utils.js +8 -2
- package/dist/lib/utils.mjs +6 -4
- package/dist/styles.css +1 -1
- package/package.json +61 -1
- package/src/components/index.tsx +126 -1
- package/src/components/ui/add-lead-modal.tsx +101 -142
- package/src/components/ui/ai-builder.tsx +560 -0
- package/src/components/ui/ai-conversations.tsx +1690 -0
- package/src/components/ui/appointment-availability-settings.tsx +152 -101
- package/src/components/ui/appointment-book-dialog.tsx +138 -24
- package/src/components/ui/appointment-calendar-view.tsx +2 -3
- package/src/components/ui/appointment-gmail-connect.tsx +23 -42
- package/src/components/ui/auth-logo.tsx +50 -0
- package/src/components/ui/auth-page-layout.tsx +59 -0
- package/src/components/ui/borrowing-capacity-line-chart.tsx +10 -8
- package/src/components/ui/button.tsx +2 -2
- package/src/components/ui/calendar.tsx +2 -1
- package/src/components/ui/cash-balance-line-chart.tsx +10 -14
- package/src/components/ui/chart-shared.tsx +10 -0
- package/src/components/ui/chat-widget-primitives.tsx +336 -0
- package/src/components/ui/chat-widget.tsx +822 -0
- package/src/components/ui/document-checklist-template.tsx +264 -0
- package/src/components/ui/drawer.tsx +2 -2
- package/src/components/ui/financial-cards.tsx +176 -78
- package/src/components/ui/financial-drawers.tsx +2 -2
- package/src/components/ui/financial-sections.tsx +1 -1
- package/src/components/ui/kanban-column.tsx +2 -5
- package/src/components/ui/onboarding-layout.tsx +109 -0
- package/src/components/ui/opportunity-summary-tab.tsx +469 -142
- package/src/components/ui/password-strength-tooltip.tsx +70 -0
- package/src/components/ui/pipeline-chart.tsx +2 -6
- package/src/components/ui/sidebar-nav.tsx +2 -15
- package/src/components/ui/two-fa-setup-form.tsx +229 -0
- package/src/components/ui/upload-card.tsx +98 -0
- package/src/components/ui/video-background.tsx +55 -0
- package/src/lib/format-date.ts +26 -0
- package/src/lib/utils.ts +11 -0
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +13 -0
|
@@ -69,7 +69,7 @@ __export(financial_cards_exports, {
|
|
|
69
69
|
});
|
|
70
70
|
module.exports = __toCommonJS(financial_cards_exports);
|
|
71
71
|
var React2 = __toESM(require("react"));
|
|
72
|
-
var
|
|
72
|
+
var import_lucide_react4 = require("lucide-react");
|
|
73
73
|
|
|
74
74
|
// src/lib/utils.ts
|
|
75
75
|
var import_clsx = require("clsx");
|
|
@@ -218,11 +218,86 @@ function Badge(_a) {
|
|
|
218
218
|
);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
// src/components/ui/
|
|
221
|
+
// src/components/ui/accordion.tsx
|
|
222
222
|
var import_lucide_react = require("lucide-react");
|
|
223
|
+
var import_accordion = require("@base-ui/react/accordion");
|
|
224
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
225
|
+
function Accordion(props) {
|
|
226
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_accordion.Accordion.Root, __spreadValues({ "data-slot": "accordion" }, props));
|
|
227
|
+
}
|
|
228
|
+
function AccordionItem(_a) {
|
|
229
|
+
var _b = _a, {
|
|
230
|
+
className
|
|
231
|
+
} = _b, props = __objRest(_b, [
|
|
232
|
+
"className"
|
|
233
|
+
]);
|
|
234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
235
|
+
import_accordion.Accordion.Item,
|
|
236
|
+
__spreadValues({
|
|
237
|
+
className: cn("border-b", className),
|
|
238
|
+
"data-slot": "accordion-item"
|
|
239
|
+
}, props)
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
function AccordionTrigger(_a) {
|
|
243
|
+
var _b = _a, {
|
|
244
|
+
className,
|
|
245
|
+
children
|
|
246
|
+
} = _b, props = __objRest(_b, [
|
|
247
|
+
"className",
|
|
248
|
+
"children"
|
|
249
|
+
]);
|
|
250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_accordion.Accordion.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
251
|
+
import_accordion.Accordion.Trigger,
|
|
252
|
+
__spreadProps(__spreadValues({
|
|
253
|
+
className: cn(
|
|
254
|
+
// layout
|
|
255
|
+
"flex flex-1 items-center justify-between gap-4 py-4 text-left",
|
|
256
|
+
// typography
|
|
257
|
+
"text-label-medium",
|
|
258
|
+
// base
|
|
259
|
+
"rounded-none outline-none transition-[color,opacity]",
|
|
260
|
+
// interactive states
|
|
261
|
+
"hover:underline",
|
|
262
|
+
"focus-visible:ring-2 focus-visible:ring-foreground/30",
|
|
263
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
264
|
+
// chevron rotation when open
|
|
265
|
+
"[&[data-panel-open]>svg]:rotate-180",
|
|
266
|
+
className
|
|
267
|
+
),
|
|
268
|
+
"data-slot": "accordion-trigger"
|
|
269
|
+
}, props), {
|
|
270
|
+
children: [
|
|
271
|
+
children,
|
|
272
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
|
|
273
|
+
]
|
|
274
|
+
})
|
|
275
|
+
) });
|
|
276
|
+
}
|
|
277
|
+
function AccordionContent(_a) {
|
|
278
|
+
var _b = _a, {
|
|
279
|
+
className,
|
|
280
|
+
children
|
|
281
|
+
} = _b, props = __objRest(_b, [
|
|
282
|
+
"className",
|
|
283
|
+
"children"
|
|
284
|
+
]);
|
|
285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
286
|
+
import_accordion.Accordion.Panel,
|
|
287
|
+
__spreadProps(__spreadValues({
|
|
288
|
+
className: "overflow-hidden text-body-small h-(--accordion-panel-height) transition-[height] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0",
|
|
289
|
+
"data-slot": "accordion-content"
|
|
290
|
+
}, props), {
|
|
291
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn("pb-4 text-muted-foreground", className), children })
|
|
292
|
+
})
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// src/components/ui/radio-group.tsx
|
|
297
|
+
var import_lucide_react2 = require("lucide-react");
|
|
223
298
|
var import_radio_group = require("@base-ui/react/radio-group");
|
|
224
299
|
var import_radio = require("@base-ui/react/radio");
|
|
225
|
-
var
|
|
300
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
226
301
|
var CIRCLE_BASE = "inline-flex items-center justify-center aspect-square size-4 shrink-0 rounded-full border border-primary bg-background";
|
|
227
302
|
var INDICATOR_DOT = "size-2 fill-background text-background";
|
|
228
303
|
function RadioGroup(_a) {
|
|
@@ -231,7 +306,7 @@ function RadioGroup(_a) {
|
|
|
231
306
|
} = _b, props = __objRest(_b, [
|
|
232
307
|
"className"
|
|
233
308
|
]);
|
|
234
|
-
return /* @__PURE__ */ (0,
|
|
309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
235
310
|
import_radio_group.RadioGroup,
|
|
236
311
|
__spreadValues({
|
|
237
312
|
className: cn("grid gap-3", className),
|
|
@@ -245,7 +320,7 @@ function RadioGroupItem(_a) {
|
|
|
245
320
|
} = _b, props = __objRest(_b, [
|
|
246
321
|
"className"
|
|
247
322
|
]);
|
|
248
|
-
return /* @__PURE__ */ (0,
|
|
323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
249
324
|
import_radio.Radio.Root,
|
|
250
325
|
__spreadProps(__spreadValues({
|
|
251
326
|
className: cn(
|
|
@@ -261,11 +336,11 @@ function RadioGroupItem(_a) {
|
|
|
261
336
|
),
|
|
262
337
|
"data-slot": "radio-group-item"
|
|
263
338
|
}, props), {
|
|
264
|
-
children: /* @__PURE__ */ (0,
|
|
339
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
265
340
|
import_radio.Radio.Indicator,
|
|
266
341
|
{
|
|
267
342
|
"data-slot": "radio-group-indicator",
|
|
268
|
-
children: /* @__PURE__ */ (0,
|
|
343
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.CircleIcon, { className: INDICATOR_DOT })
|
|
269
344
|
}
|
|
270
345
|
)
|
|
271
346
|
})
|
|
@@ -273,12 +348,12 @@ function RadioGroupItem(_a) {
|
|
|
273
348
|
}
|
|
274
349
|
|
|
275
350
|
// src/components/ui/financial-primitives.tsx
|
|
276
|
-
var
|
|
351
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
277
352
|
var NO_DATA = "\u2014";
|
|
278
353
|
function FinancialSubsectionTitle({
|
|
279
354
|
children
|
|
280
355
|
}) {
|
|
281
|
-
return /* @__PURE__ */ (0,
|
|
356
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-label-medium uppercase text-foreground", children });
|
|
282
357
|
}
|
|
283
358
|
function FinancialDetailField({
|
|
284
359
|
label,
|
|
@@ -286,13 +361,13 @@ function FinancialDetailField({
|
|
|
286
361
|
variant = "caption"
|
|
287
362
|
}) {
|
|
288
363
|
if (variant === "footer") {
|
|
289
|
-
return /* @__PURE__ */ (0,
|
|
290
|
-
/* @__PURE__ */ (0,
|
|
291
|
-
/* @__PURE__ */ (0,
|
|
364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-col justify-between min-w-0", children: [
|
|
365
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-overline text-muted-foreground", children: label }),
|
|
366
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-label-medium text-foreground mt-1 break-words", children: value != null ? value : NO_DATA })
|
|
292
367
|
] });
|
|
293
368
|
}
|
|
294
369
|
const labelClass = variant === "caption" ? "block min-h-[2rem] text-caption text-muted-foreground" : "min-h-[1.75rem] text-overline text-muted-foreground";
|
|
295
|
-
return /* @__PURE__ */ (0,
|
|
370
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
296
371
|
"div",
|
|
297
372
|
{
|
|
298
373
|
className: cn(
|
|
@@ -300,8 +375,8 @@ function FinancialDetailField({
|
|
|
300
375
|
variant === "overline" && "flex flex-col gap-0.5"
|
|
301
376
|
),
|
|
302
377
|
children: [
|
|
303
|
-
/* @__PURE__ */ (0,
|
|
304
|
-
/* @__PURE__ */ (0,
|
|
378
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: labelClass, children: label }),
|
|
379
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-label-medium text-foreground break-words", children: value != null ? value : NO_DATA })
|
|
305
380
|
]
|
|
306
381
|
}
|
|
307
382
|
);
|
|
@@ -326,12 +401,12 @@ function FinancialLvrBar({
|
|
|
326
401
|
warning: "bg-warning",
|
|
327
402
|
destructive: "bg-destructive"
|
|
328
403
|
}[color];
|
|
329
|
-
return /* @__PURE__ */ (0,
|
|
330
|
-
/* @__PURE__ */ (0,
|
|
331
|
-
/* @__PURE__ */ (0,
|
|
332
|
-
/* @__PURE__ */ (0,
|
|
404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
405
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
406
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-body-small text-muted-foreground", children: "LVR" }),
|
|
407
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: cn("text-label-medium", textClass), children: label })
|
|
333
408
|
] }),
|
|
334
|
-
/* @__PURE__ */ (0,
|
|
409
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn("h-2.5 w-full overflow-hidden", trackClass), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
335
410
|
"div",
|
|
336
411
|
{
|
|
337
412
|
className: cn("h-full", fillClass),
|
|
@@ -343,7 +418,7 @@ function FinancialLvrBar({
|
|
|
343
418
|
function FinancialSubtotalFrame({
|
|
344
419
|
children
|
|
345
420
|
}) {
|
|
346
|
-
return /* @__PURE__ */ (0,
|
|
421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "mt-auto border-t border-primary/20 bg-primary/10 px-4 py-3", children });
|
|
347
422
|
}
|
|
348
423
|
function FinancialSubtotalBlock({
|
|
349
424
|
monthlyAverage,
|
|
@@ -351,7 +426,7 @@ function FinancialSubtotalBlock({
|
|
|
351
426
|
label
|
|
352
427
|
}) {
|
|
353
428
|
const isSingle = monthlyAverage && !totalLast12Months;
|
|
354
|
-
return /* @__PURE__ */ (0,
|
|
429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
355
430
|
"div",
|
|
356
431
|
{
|
|
357
432
|
className: cn(
|
|
@@ -359,7 +434,7 @@ function FinancialSubtotalBlock({
|
|
|
359
434
|
isSingle ? "justify-end" : "justify-between"
|
|
360
435
|
),
|
|
361
436
|
children: [
|
|
362
|
-
/* @__PURE__ */ (0,
|
|
437
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
363
438
|
"div",
|
|
364
439
|
{
|
|
365
440
|
className: cn(
|
|
@@ -367,14 +442,14 @@ function FinancialSubtotalBlock({
|
|
|
367
442
|
isSingle ? "text-right" : "text-left"
|
|
368
443
|
),
|
|
369
444
|
children: [
|
|
370
|
-
/* @__PURE__ */ (0,
|
|
371
|
-
/* @__PURE__ */ (0,
|
|
445
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "min-h-[1.75rem] text-overline text-muted-foreground", children: label != null ? label : "Monthly Average" }),
|
|
446
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-label-medium text-foreground", children: monthlyAverage != null ? monthlyAverage : NO_DATA })
|
|
372
447
|
]
|
|
373
448
|
}
|
|
374
449
|
),
|
|
375
|
-
!isSingle && /* @__PURE__ */ (0,
|
|
376
|
-
/* @__PURE__ */ (0,
|
|
377
|
-
/* @__PURE__ */ (0,
|
|
450
|
+
!isSingle && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-col gap-0.5 text-right", children: [
|
|
451
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "min-h-[1.75rem] text-overline text-muted-foreground", children: "Total Last 12 Months" }),
|
|
452
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-label-medium text-foreground", children: totalLast12Months != null ? totalLast12Months : NO_DATA })
|
|
378
453
|
] })
|
|
379
454
|
]
|
|
380
455
|
}
|
|
@@ -384,8 +459,8 @@ function FinancialSubtotalBlock({
|
|
|
384
459
|
// src/components/ui/button.tsx
|
|
385
460
|
var import_react = require("react");
|
|
386
461
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
387
|
-
var
|
|
388
|
-
var
|
|
462
|
+
var import_lucide_react3 = require("lucide-react");
|
|
463
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
389
464
|
var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
390
465
|
"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",
|
|
391
466
|
{
|
|
@@ -394,9 +469,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
394
469
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
395
470
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
396
471
|
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",
|
|
397
|
-
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",
|
|
472
|
+
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",
|
|
398
473
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
399
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
474
|
+
"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",
|
|
400
475
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
401
476
|
link: "text-primary underline-offset-4 hover:underline"
|
|
402
477
|
},
|
|
@@ -439,7 +514,7 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
|
439
514
|
]);
|
|
440
515
|
const Comp = asChild ? Slot : "button";
|
|
441
516
|
const isIconOnly = size === "icon" || size === "icon-xs" || size === "icon-sm" || size === "icon-lg";
|
|
442
|
-
return /* @__PURE__ */ (0,
|
|
517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
443
518
|
Comp,
|
|
444
519
|
__spreadProps(__spreadValues({
|
|
445
520
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -450,8 +525,8 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
|
450
525
|
ref,
|
|
451
526
|
type
|
|
452
527
|
}, props), {
|
|
453
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
454
|
-
/* @__PURE__ */ (0,
|
|
528
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
529
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react3.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
|
|
455
530
|
!isIconOnly && children
|
|
456
531
|
] }) : children
|
|
457
532
|
})
|
|
@@ -459,7 +534,7 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
|
459
534
|
});
|
|
460
535
|
|
|
461
536
|
// src/components/ui/financial-cards.tsx
|
|
462
|
-
var
|
|
537
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
463
538
|
function PropertyCard({
|
|
464
539
|
address,
|
|
465
540
|
type,
|
|
@@ -483,7 +558,7 @@ function PropertyCard({
|
|
|
483
558
|
principlePaidOff
|
|
484
559
|
}) {
|
|
485
560
|
const [expanded, setExpanded] = React2.useState(false);
|
|
486
|
-
return /* @__PURE__ */ (0,
|
|
561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
487
562
|
"div",
|
|
488
563
|
{
|
|
489
564
|
className: cn(
|
|
@@ -491,20 +566,19 @@ function PropertyCard({
|
|
|
491
566
|
!borderless && "border border-border"
|
|
492
567
|
),
|
|
493
568
|
children: [
|
|
494
|
-
isLinkedToBank ? /* @__PURE__ */ (0,
|
|
569
|
+
isLinkedToBank ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
495
570
|
Button,
|
|
496
571
|
{
|
|
497
572
|
type: "button",
|
|
498
573
|
variant: "ghost",
|
|
499
574
|
"aria-expanded": expanded,
|
|
500
575
|
onClick: () => setExpanded((prev) => !prev),
|
|
501
|
-
className: "h-auto w-full justify-start gap-1.5 px-5 py-3 text-left",
|
|
576
|
+
className: "h-auto w-full justify-start gap-1.5 px-5 py-3 text-left has-[>svg]:px-5",
|
|
502
577
|
children: [
|
|
503
|
-
/* @__PURE__ */ (0,
|
|
504
|
-
type && /* @__PURE__ */ (0,
|
|
505
|
-
/* @__PURE__ */ (0,
|
|
506
|
-
|
|
507
|
-
import_lucide_react3.ChevronDown,
|
|
578
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "flex-1 min-w-0 truncate text-label-medium text-foreground", children: address }),
|
|
579
|
+
type && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Badge, { className: "shrink-0", variant: "outline", children: type }),
|
|
580
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
581
|
+
import_lucide_react4.ChevronDown,
|
|
508
582
|
{
|
|
509
583
|
className: cn(
|
|
510
584
|
"h-5 w-5 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
@@ -514,67 +588,67 @@ function PropertyCard({
|
|
|
514
588
|
)
|
|
515
589
|
]
|
|
516
590
|
}
|
|
517
|
-
) : /* @__PURE__ */ (0,
|
|
518
|
-
/* @__PURE__ */ (0,
|
|
519
|
-
type && /* @__PURE__ */ (0,
|
|
591
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-1.5 px-5 py-3", children: [
|
|
592
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-label-medium text-foreground", children: address }),
|
|
593
|
+
type && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Badge, { variant: "outline", children: type })
|
|
520
594
|
] }),
|
|
521
|
-
!isLinkedToBank && /* @__PURE__ */ (0,
|
|
522
|
-
/* @__PURE__ */ (0,
|
|
595
|
+
!isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "px-5 pb-2 text-xs italic text-muted-foreground", children: "No mortgage account linked to this property" }),
|
|
596
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
523
597
|
"div",
|
|
524
598
|
{
|
|
525
599
|
className: cn(
|
|
526
600
|
"grid gap-5 px-5 py-[15px]",
|
|
527
|
-
isLinkedToBank ? "grid-cols-
|
|
601
|
+
isLinkedToBank ? "grid-cols-2" : "grid-cols-1"
|
|
528
602
|
),
|
|
529
603
|
children: [
|
|
530
|
-
/* @__PURE__ */ (0,
|
|
531
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
532
|
-
/* @__PURE__ */ (0,
|
|
533
|
-
/* @__PURE__ */ (0,
|
|
604
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Estimated Value", value: estimated }),
|
|
605
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
606
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Loan Amount", value: loanAmount }),
|
|
607
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Equity", value: equity }) })
|
|
534
608
|
] })
|
|
535
609
|
]
|
|
536
610
|
}
|
|
537
611
|
),
|
|
538
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
612
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "px-5 pb-[15px]", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
539
613
|
FinancialLvrBar,
|
|
540
614
|
{
|
|
541
615
|
percent: lvrPercent,
|
|
542
616
|
label: lvr != null ? lvr : `${lvrPercent}%`
|
|
543
617
|
}
|
|
544
618
|
) }),
|
|
545
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
619
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
546
620
|
"div",
|
|
547
621
|
{
|
|
548
622
|
className: cn(
|
|
549
623
|
"grid transition-[grid-template-rows] duration-200 ease-in-out",
|
|
550
624
|
expanded ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
551
625
|
),
|
|
552
|
-
children: /* @__PURE__ */ (0,
|
|
553
|
-
/* @__PURE__ */ (0,
|
|
554
|
-
/* @__PURE__ */ (0,
|
|
555
|
-
/* @__PURE__ */ (0,
|
|
556
|
-
/* @__PURE__ */ (0,
|
|
626
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "overflow-hidden", children: [
|
|
627
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col gap-5 border-t border-border px-5 py-[15px]", children: [
|
|
628
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubsectionTitle, { children: "Loan" }),
|
|
629
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-4", children: [
|
|
630
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
557
631
|
FinancialDetailField,
|
|
558
632
|
{
|
|
559
633
|
label: "Name of Lender",
|
|
560
634
|
value: lenderName
|
|
561
635
|
}
|
|
562
636
|
),
|
|
563
|
-
/* @__PURE__ */ (0,
|
|
637
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
564
638
|
FinancialDetailField,
|
|
565
639
|
{
|
|
566
640
|
label: "Current Loan Amount",
|
|
567
641
|
value: loanAmount
|
|
568
642
|
}
|
|
569
643
|
),
|
|
570
|
-
/* @__PURE__ */ (0,
|
|
644
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
571
645
|
FinancialDetailField,
|
|
572
646
|
{
|
|
573
647
|
label: "Interest Rate",
|
|
574
648
|
value: interestRate
|
|
575
649
|
}
|
|
576
650
|
),
|
|
577
|
-
/* @__PURE__ */ (0,
|
|
651
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
578
652
|
FinancialDetailField,
|
|
579
653
|
{
|
|
580
654
|
label: "Years Remaining",
|
|
@@ -582,29 +656,29 @@ function PropertyCard({
|
|
|
582
656
|
}
|
|
583
657
|
)
|
|
584
658
|
] }),
|
|
585
|
-
/* @__PURE__ */ (0,
|
|
586
|
-
/* @__PURE__ */ (0,
|
|
659
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-4", children: [
|
|
660
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
587
661
|
FinancialDetailField,
|
|
588
662
|
{
|
|
589
663
|
label: "Min Repayments",
|
|
590
664
|
value: minRepayments
|
|
591
665
|
}
|
|
592
666
|
),
|
|
593
|
-
/* @__PURE__ */ (0,
|
|
667
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
594
668
|
FinancialDetailField,
|
|
595
669
|
{
|
|
596
670
|
label: "Average Repayments",
|
|
597
671
|
value: averageRepayments
|
|
598
672
|
}
|
|
599
673
|
),
|
|
600
|
-
/* @__PURE__ */ (0,
|
|
674
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
601
675
|
FinancialDetailField,
|
|
602
676
|
{
|
|
603
677
|
label: "Redraw Amount",
|
|
604
678
|
value: redrawAmount
|
|
605
679
|
}
|
|
606
680
|
),
|
|
607
|
-
/* @__PURE__ */ (0,
|
|
681
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
608
682
|
FinancialDetailField,
|
|
609
683
|
{
|
|
610
684
|
label: "Offset Account",
|
|
@@ -613,8 +687,8 @@ function PropertyCard({
|
|
|
613
687
|
)
|
|
614
688
|
] })
|
|
615
689
|
] }),
|
|
616
|
-
/* @__PURE__ */ (0,
|
|
617
|
-
/* @__PURE__ */ (0,
|
|
690
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-1", children: [
|
|
691
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
618
692
|
FinancialDetailField,
|
|
619
693
|
{
|
|
620
694
|
variant: "footer",
|
|
@@ -622,7 +696,7 @@ function PropertyCard({
|
|
|
622
696
|
value: totalMinRepayments
|
|
623
697
|
}
|
|
624
698
|
),
|
|
625
|
-
/* @__PURE__ */ (0,
|
|
699
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
626
700
|
FinancialDetailField,
|
|
627
701
|
{
|
|
628
702
|
variant: "footer",
|
|
@@ -630,7 +704,7 @@ function PropertyCard({
|
|
|
630
704
|
value: totalExtraRepayments
|
|
631
705
|
}
|
|
632
706
|
),
|
|
633
|
-
/* @__PURE__ */ (0,
|
|
707
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
634
708
|
FinancialDetailField,
|
|
635
709
|
{
|
|
636
710
|
variant: "footer",
|
|
@@ -638,7 +712,7 @@ function PropertyCard({
|
|
|
638
712
|
value: interestCharged
|
|
639
713
|
}
|
|
640
714
|
),
|
|
641
|
-
/* @__PURE__ */ (0,
|
|
715
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
642
716
|
FinancialDetailField,
|
|
643
717
|
{
|
|
644
718
|
variant: "footer",
|
|
@@ -668,17 +742,17 @@ function DebtCard({
|
|
|
668
742
|
totalInterestPaid,
|
|
669
743
|
yearsRemaining
|
|
670
744
|
}) {
|
|
671
|
-
return /* @__PURE__ */ (0,
|
|
672
|
-
/* @__PURE__ */ (0,
|
|
673
|
-
/* @__PURE__ */ (0,
|
|
674
|
-
/* @__PURE__ */ (0,
|
|
745
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col h-full", children: [
|
|
746
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5 px-5 py-[15px] border-b border-border min-h-[7rem] items-start", children: [
|
|
747
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Name of Lender", value: lenderName }),
|
|
748
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
675
749
|
FinancialDetailField,
|
|
676
750
|
{
|
|
677
751
|
label: "Current Loan Amount",
|
|
678
752
|
value: currentLoanAmount
|
|
679
753
|
}
|
|
680
754
|
),
|
|
681
|
-
/* @__PURE__ */ (0,
|
|
755
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
682
756
|
FinancialDetailField,
|
|
683
757
|
{
|
|
684
758
|
label: "Current Interest Rate",
|
|
@@ -686,24 +760,24 @@ function DebtCard({
|
|
|
686
760
|
}
|
|
687
761
|
)
|
|
688
762
|
] }),
|
|
689
|
-
/* @__PURE__ */ (0,
|
|
690
|
-
/* @__PURE__ */ (0,
|
|
691
|
-
/* @__PURE__ */ (0,
|
|
692
|
-
/* @__PURE__ */ (0,
|
|
763
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "px-5 py-[15px] flex flex-col gap-5 flex-1", children: [
|
|
764
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubsectionTitle, { children: "Loan Stats" }),
|
|
765
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
766
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
693
767
|
FinancialDetailField,
|
|
694
768
|
{
|
|
695
769
|
label: "Original Loan Amount",
|
|
696
770
|
value: originalLoanAmount
|
|
697
771
|
}
|
|
698
772
|
),
|
|
699
|
-
/* @__PURE__ */ (0,
|
|
773
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
700
774
|
FinancialDetailField,
|
|
701
775
|
{
|
|
702
776
|
label: "Original Loan Term",
|
|
703
777
|
value: originalLoanTerm
|
|
704
778
|
}
|
|
705
779
|
),
|
|
706
|
-
/* @__PURE__ */ (0,
|
|
780
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
707
781
|
FinancialDetailField,
|
|
708
782
|
{
|
|
709
783
|
label: "Monthly Repayments",
|
|
@@ -711,10 +785,10 @@ function DebtCard({
|
|
|
711
785
|
}
|
|
712
786
|
)
|
|
713
787
|
] }),
|
|
714
|
-
/* @__PURE__ */ (0,
|
|
715
|
-
/* @__PURE__ */ (0,
|
|
716
|
-
/* @__PURE__ */ (0,
|
|
717
|
-
/* @__PURE__ */ (0,
|
|
788
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
789
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Redraw Amount", value: redrawAmount }),
|
|
790
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Offset Account", value: offsetAmount }),
|
|
791
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
718
792
|
FinancialDetailField,
|
|
719
793
|
{
|
|
720
794
|
label: "Extra Loan Repayments",
|
|
@@ -723,8 +797,8 @@ function DebtCard({
|
|
|
723
797
|
)
|
|
724
798
|
] })
|
|
725
799
|
] }),
|
|
726
|
-
/* @__PURE__ */ (0,
|
|
727
|
-
/* @__PURE__ */ (0,
|
|
800
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-x-4 gap-y-1", children: [
|
|
801
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
728
802
|
FinancialDetailField,
|
|
729
803
|
{
|
|
730
804
|
variant: "footer",
|
|
@@ -732,7 +806,7 @@ function DebtCard({
|
|
|
732
806
|
value: totalRepaymentsMade
|
|
733
807
|
}
|
|
734
808
|
),
|
|
735
|
-
/* @__PURE__ */ (0,
|
|
809
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
736
810
|
FinancialDetailField,
|
|
737
811
|
{
|
|
738
812
|
variant: "footer",
|
|
@@ -740,7 +814,7 @@ function DebtCard({
|
|
|
740
814
|
value: totalInterestPaid
|
|
741
815
|
}
|
|
742
816
|
),
|
|
743
|
-
/* @__PURE__ */ (0,
|
|
817
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
744
818
|
FinancialDetailField,
|
|
745
819
|
{
|
|
746
820
|
variant: "footer",
|
|
@@ -769,52 +843,52 @@ function OtherLiabilityCard({
|
|
|
769
843
|
totalInterestPaid
|
|
770
844
|
}) {
|
|
771
845
|
const isCreditCard = type === "credit_card";
|
|
772
|
-
return /* @__PURE__ */ (0,
|
|
773
|
-
/* @__PURE__ */ (0,
|
|
774
|
-
/* @__PURE__ */ (0,
|
|
775
|
-
isCreditCard ? /* @__PURE__ */ (0,
|
|
846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col h-full", children: [
|
|
847
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5 px-4 pt-5 pb-4 min-h-[7rem] items-start", children: [
|
|
848
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Lender", value: lenderName }),
|
|
849
|
+
isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
776
850
|
FinancialDetailField,
|
|
777
851
|
{
|
|
778
852
|
label: "Current Balance",
|
|
779
853
|
value: currentBalance
|
|
780
854
|
}
|
|
781
|
-
) : /* @__PURE__ */ (0,
|
|
855
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
782
856
|
FinancialDetailField,
|
|
783
857
|
{
|
|
784
858
|
label: "Current Loan Amount",
|
|
785
859
|
value: currentLoanAmount
|
|
786
860
|
}
|
|
787
861
|
),
|
|
788
|
-
/* @__PURE__ */ (0,
|
|
862
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Interest Rate", value: interestRate })
|
|
789
863
|
] }),
|
|
790
|
-
/* @__PURE__ */ (0,
|
|
791
|
-
/* @__PURE__ */ (0,
|
|
792
|
-
isCreditCard ? /* @__PURE__ */ (0,
|
|
793
|
-
/* @__PURE__ */ (0,
|
|
794
|
-
/* @__PURE__ */ (0,
|
|
864
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "px-4 pt-4 pb-5 flex flex-col gap-5 border-t border-border flex-1", children: [
|
|
865
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubsectionTitle, { children: isCreditCard ? "Card Stats" : "Loan Stats" }),
|
|
866
|
+
isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
867
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Credit Limit", value: creditLimit }),
|
|
868
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
795
869
|
FinancialDetailField,
|
|
796
870
|
{
|
|
797
871
|
label: "Min Monthly Payment",
|
|
798
872
|
value: minMonthlyPayment
|
|
799
873
|
}
|
|
800
874
|
),
|
|
801
|
-
/* @__PURE__ */ (0,
|
|
802
|
-
] }) : /* @__PURE__ */ (0,
|
|
803
|
-
/* @__PURE__ */ (0,
|
|
875
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Annual Fee", value: annualFee })
|
|
876
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
877
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
804
878
|
FinancialDetailField,
|
|
805
879
|
{
|
|
806
880
|
label: "Original Loan Amount",
|
|
807
881
|
value: originalLoanAmount
|
|
808
882
|
}
|
|
809
883
|
),
|
|
810
|
-
/* @__PURE__ */ (0,
|
|
884
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
811
885
|
FinancialDetailField,
|
|
812
886
|
{
|
|
813
887
|
label: "Original Loan Term",
|
|
814
888
|
value: originalLoanTerm
|
|
815
889
|
}
|
|
816
890
|
),
|
|
817
|
-
/* @__PURE__ */ (0,
|
|
891
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
818
892
|
FinancialDetailField,
|
|
819
893
|
{
|
|
820
894
|
label: "Monthly Repayments",
|
|
@@ -823,8 +897,8 @@ function OtherLiabilityCard({
|
|
|
823
897
|
)
|
|
824
898
|
] })
|
|
825
899
|
] }),
|
|
826
|
-
/* @__PURE__ */ (0,
|
|
827
|
-
/* @__PURE__ */ (0,
|
|
900
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubtotalFrame, { children: isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-2 gap-x-4 gap-y-1", children: [
|
|
901
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
828
902
|
FinancialDetailField,
|
|
829
903
|
{
|
|
830
904
|
variant: "footer",
|
|
@@ -832,7 +906,7 @@ function OtherLiabilityCard({
|
|
|
832
906
|
value: totalInterestPaid
|
|
833
907
|
}
|
|
834
908
|
),
|
|
835
|
-
/* @__PURE__ */ (0,
|
|
909
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
836
910
|
FinancialDetailField,
|
|
837
911
|
{
|
|
838
912
|
variant: "footer",
|
|
@@ -840,8 +914,8 @@ function OtherLiabilityCard({
|
|
|
840
914
|
value: availableCredit
|
|
841
915
|
}
|
|
842
916
|
)
|
|
843
|
-
] }) : /* @__PURE__ */ (0,
|
|
844
|
-
/* @__PURE__ */ (0,
|
|
917
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-x-4 gap-y-1", children: [
|
|
918
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
845
919
|
FinancialDetailField,
|
|
846
920
|
{
|
|
847
921
|
variant: "footer",
|
|
@@ -849,7 +923,7 @@ function OtherLiabilityCard({
|
|
|
849
923
|
value: totalRepaymentsMade
|
|
850
924
|
}
|
|
851
925
|
),
|
|
852
|
-
/* @__PURE__ */ (0,
|
|
926
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
853
927
|
FinancialDetailField,
|
|
854
928
|
{
|
|
855
929
|
variant: "footer",
|
|
@@ -857,7 +931,7 @@ function OtherLiabilityCard({
|
|
|
857
931
|
value: totalInterestPaid
|
|
858
932
|
}
|
|
859
933
|
),
|
|
860
|
-
/* @__PURE__ */ (0,
|
|
934
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
861
935
|
FinancialDetailField,
|
|
862
936
|
{
|
|
863
937
|
variant: "footer",
|
|
@@ -883,10 +957,10 @@ function AlertCard({
|
|
|
883
957
|
onActionChange
|
|
884
958
|
}) {
|
|
885
959
|
const { dot, border } = SEVERITY_CLASSES[severityCode];
|
|
886
|
-
return /* @__PURE__ */ (0,
|
|
887
|
-
/* @__PURE__ */ (0,
|
|
888
|
-
/* @__PURE__ */ (0,
|
|
889
|
-
/* @__PURE__ */ (0,
|
|
960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn("flex flex-col gap-1.5 border p-2.5 px-3", border), children: [
|
|
961
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
962
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: cn("h-[9px] w-[9px] shrink-0 rounded-full", dot) }),
|
|
963
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
890
964
|
"span",
|
|
891
965
|
{
|
|
892
966
|
className: cn(
|
|
@@ -897,19 +971,19 @@ function AlertCard({
|
|
|
897
971
|
}
|
|
898
972
|
)
|
|
899
973
|
] }),
|
|
900
|
-
ignored ? /* @__PURE__ */ (0,
|
|
974
|
+
ignored ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "ml-[15px] text-xs italic text-muted-foreground/60", children: [
|
|
901
975
|
"Ignored until ",
|
|
902
976
|
ignoredUntil
|
|
903
|
-
] }) : /* @__PURE__ */ (0,
|
|
977
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
904
978
|
RadioGroup,
|
|
905
979
|
{
|
|
906
980
|
value: selectedAction != null ? selectedAction : "",
|
|
907
981
|
onValueChange: (val) => onActionChange == null ? void 0 : onActionChange(val),
|
|
908
982
|
className: "ml-[15px] flex flex-col gap-1",
|
|
909
983
|
children: [
|
|
910
|
-
/* @__PURE__ */ (0,
|
|
911
|
-
/* @__PURE__ */ (0,
|
|
912
|
-
/* @__PURE__ */ (0,
|
|
984
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
985
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioGroupItem, { value: "DISMISS", id: `dismiss-${id}` }),
|
|
986
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
913
987
|
"label",
|
|
914
988
|
{
|
|
915
989
|
htmlFor: `dismiss-${id}`,
|
|
@@ -918,9 +992,9 @@ function AlertCard({
|
|
|
918
992
|
}
|
|
919
993
|
)
|
|
920
994
|
] }),
|
|
921
|
-
/* @__PURE__ */ (0,
|
|
922
|
-
/* @__PURE__ */ (0,
|
|
923
|
-
/* @__PURE__ */ (0,
|
|
995
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
996
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioGroupItem, { value: "SNOOZE", id: `snooze-${id}` }),
|
|
997
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
924
998
|
"label",
|
|
925
999
|
{
|
|
926
1000
|
htmlFor: `snooze-${id}`,
|
|
@@ -934,6 +1008,16 @@ function AlertCard({
|
|
|
934
1008
|
)
|
|
935
1009
|
] });
|
|
936
1010
|
}
|
|
1011
|
+
function ageFromDob(dobStr) {
|
|
1012
|
+
if (!dobStr) return null;
|
|
1013
|
+
const dob = new Date(dobStr);
|
|
1014
|
+
if (isNaN(dob.getTime())) return null;
|
|
1015
|
+
const today = /* @__PURE__ */ new Date();
|
|
1016
|
+
let age = today.getFullYear() - dob.getFullYear();
|
|
1017
|
+
const m = today.getMonth() - dob.getMonth();
|
|
1018
|
+
if (m < 0 || m === 0 && today.getDate() < dob.getDate()) age--;
|
|
1019
|
+
return age >= 0 ? age : null;
|
|
1020
|
+
}
|
|
937
1021
|
function AboutCard({
|
|
938
1022
|
title,
|
|
939
1023
|
firstName,
|
|
@@ -944,6 +1028,7 @@ function AboutCard({
|
|
|
944
1028
|
gender,
|
|
945
1029
|
maritalStatus,
|
|
946
1030
|
numDependants,
|
|
1031
|
+
dependants,
|
|
947
1032
|
citizenStatus,
|
|
948
1033
|
residentialAddress,
|
|
949
1034
|
residentialStatus,
|
|
@@ -952,210 +1037,265 @@ function AboutCard({
|
|
|
952
1037
|
driversLicence,
|
|
953
1038
|
passport,
|
|
954
1039
|
propertyInTrust,
|
|
955
|
-
companyOwnership
|
|
1040
|
+
companyOwnership,
|
|
1041
|
+
borderless = false
|
|
956
1042
|
}) {
|
|
957
1043
|
const fullName = [title, firstName, lastName].filter(Boolean).join(" ") || "\u2014";
|
|
958
1044
|
const timeAtAddress = timeAtAddressYears || timeAtAddressMonths ? [
|
|
959
1045
|
timeAtAddressYears && `${timeAtAddressYears}yr`,
|
|
960
1046
|
timeAtAddressMonths && `${timeAtAddressMonths}mo`
|
|
961
1047
|
].filter(Boolean).join(" ") : void 0;
|
|
962
|
-
return /* @__PURE__ */ (0,
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1049
|
+
"div",
|
|
1050
|
+
{
|
|
1051
|
+
className: cn(
|
|
1052
|
+
"overflow-hidden divide-y divide-border",
|
|
1053
|
+
!borderless && "border border-border"
|
|
1054
|
+
),
|
|
1055
|
+
children: [
|
|
1056
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-6 gap-y-4 px-5 py-4", children: [
|
|
1057
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Full Name", value: fullName }),
|
|
1058
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Date of Birth", value: dob || "\u2014" }),
|
|
1059
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Gender", value: gender || "\u2014" }),
|
|
1060
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1061
|
+
FinancialDetailField,
|
|
1062
|
+
{
|
|
1063
|
+
label: "Citizenship",
|
|
1064
|
+
value: citizenStatus || "\u2014"
|
|
1065
|
+
}
|
|
1066
|
+
),
|
|
1067
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1068
|
+
FinancialDetailField,
|
|
1069
|
+
{
|
|
1070
|
+
label: "Driver's Licence",
|
|
1071
|
+
value: driversLicence || "\u2014"
|
|
1072
|
+
}
|
|
1073
|
+
),
|
|
1074
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Passport", value: passport || "\u2014" })
|
|
1075
|
+
] }),
|
|
1076
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-6 gap-y-4 px-5 py-4", children: [
|
|
1077
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Phone", value: phone || "\u2014" }),
|
|
1078
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Email", value: email || "\u2014" })
|
|
1079
|
+
] }),
|
|
1080
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-6 gap-y-4 px-5 py-4", children: [
|
|
1081
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1082
|
+
FinancialDetailField,
|
|
1083
|
+
{
|
|
1084
|
+
label: "Marital Status",
|
|
1085
|
+
value: maritalStatus || "\u2014"
|
|
1086
|
+
}
|
|
1087
|
+
),
|
|
1088
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1089
|
+
FinancialDetailField,
|
|
1090
|
+
{
|
|
1091
|
+
label: "No. of Dependants",
|
|
1092
|
+
value: numDependants != null ? numDependants : "\u2014"
|
|
1093
|
+
}
|
|
1094
|
+
),
|
|
1095
|
+
dependants && dependants.map((dep, i) => {
|
|
1096
|
+
const age = ageFromDob(dep.dob);
|
|
1097
|
+
const dobFormatted = formatDateShort(dep.dob) || "\u2014";
|
|
1098
|
+
const value = age !== null ? `${dobFormatted} \xB7 age ${age}` : dobFormatted;
|
|
1099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1100
|
+
FinancialDetailField,
|
|
1101
|
+
{
|
|
1102
|
+
label: `Dependant ${i + 1}`,
|
|
1103
|
+
value
|
|
1104
|
+
},
|
|
1105
|
+
i
|
|
1106
|
+
);
|
|
1107
|
+
})
|
|
1108
|
+
] }),
|
|
1109
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-6 gap-y-4 px-5 py-4", children: [
|
|
1110
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1111
|
+
FinancialDetailField,
|
|
1112
|
+
{
|
|
1113
|
+
label: "Residential Address",
|
|
1114
|
+
value: residentialAddress || "\u2014"
|
|
1115
|
+
}
|
|
1116
|
+
) }),
|
|
1117
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1118
|
+
FinancialDetailField,
|
|
1119
|
+
{
|
|
1120
|
+
label: "Residential Status",
|
|
1121
|
+
value: residentialStatus || "\u2014"
|
|
1122
|
+
}
|
|
1123
|
+
),
|
|
1124
|
+
timeAtAddress && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialDetailField, { label: "Time at Address", value: timeAtAddress })
|
|
1125
|
+
] }),
|
|
1126
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-4 gap-x-6 gap-y-4 px-5 py-4", children: [
|
|
1127
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1128
|
+
FinancialDetailField,
|
|
1129
|
+
{
|
|
1130
|
+
label: "Property in Trust",
|
|
1131
|
+
value: propertyInTrust || "\u2014"
|
|
1132
|
+
}
|
|
1133
|
+
),
|
|
1134
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1135
|
+
FinancialDetailField,
|
|
1136
|
+
{
|
|
1137
|
+
label: "Company Ownership",
|
|
1138
|
+
value: companyOwnership || "\u2014"
|
|
1139
|
+
}
|
|
1140
|
+
)
|
|
1141
|
+
] })
|
|
1142
|
+
]
|
|
1143
|
+
}
|
|
1144
|
+
);
|
|
1027
1145
|
}
|
|
1028
|
-
function IncomeCard({
|
|
1146
|
+
function IncomeCard({
|
|
1147
|
+
items,
|
|
1148
|
+
totalMonthly,
|
|
1149
|
+
borderless = false
|
|
1150
|
+
}) {
|
|
1029
1151
|
if (items.length === 0) {
|
|
1030
|
-
return /* @__PURE__ */ (0,
|
|
1152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: cn("px-5 py-4", !borderless && "border border-border"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm text-muted-foreground", children: "No income recorded." }) });
|
|
1031
1153
|
}
|
|
1032
|
-
return /* @__PURE__ */ (0,
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
children: [
|
|
1041
|
-
/* @__PURE__ */ (0,
|
|
1042
|
-
/* @__PURE__ */ (0,
|
|
1043
|
-
|
|
1154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1155
|
+
"div",
|
|
1156
|
+
{
|
|
1157
|
+
className: cn(
|
|
1158
|
+
"overflow-hidden flex flex-col",
|
|
1159
|
+
!borderless && "border border-border"
|
|
1160
|
+
),
|
|
1161
|
+
children: [
|
|
1162
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Accordion, { openMultiple: true, children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(AccordionItem, { value: String(i), children: [
|
|
1163
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AccordionTrigger, { className: "px-5", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-1 items-center justify-between pr-2", children: [
|
|
1164
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
1165
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-label-medium text-foreground", children: item.incomeType }),
|
|
1166
|
+
item.jobTitle && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "text-body-small text-muted-foreground", children: [
|
|
1167
|
+
"\xB7 ",
|
|
1168
|
+
item.jobTitle
|
|
1169
|
+
] })
|
|
1170
|
+
] }),
|
|
1171
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-label-medium text-foreground", children: item.amountLabel })
|
|
1172
|
+
] }) }),
|
|
1173
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AccordionContent, { className: "px-5", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-cols-3 gap-x-6 gap-y-4 pb-2 pt-1", children: [
|
|
1174
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1044
1175
|
FinancialDetailField,
|
|
1045
1176
|
{
|
|
1046
1177
|
label: "Job Title",
|
|
1047
1178
|
value: item.jobTitle || "\u2014"
|
|
1048
1179
|
}
|
|
1049
1180
|
),
|
|
1050
|
-
/* @__PURE__ */ (0,
|
|
1051
|
-
] }),
|
|
1052
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-x-6", children: [
|
|
1053
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1181
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1054
1182
|
FinancialDetailField,
|
|
1055
1183
|
{
|
|
1056
1184
|
label: "Company",
|
|
1057
1185
|
value: item.companyName || "\u2014"
|
|
1058
1186
|
}
|
|
1059
1187
|
),
|
|
1060
|
-
/* @__PURE__ */ (0,
|
|
1188
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1061
1189
|
FinancialDetailField,
|
|
1062
1190
|
{
|
|
1063
1191
|
label: "Start Date",
|
|
1064
1192
|
value: formatDateShort(item.startDate)
|
|
1065
1193
|
}
|
|
1066
1194
|
),
|
|
1067
|
-
/* @__PURE__ */ (0,
|
|
1195
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1068
1196
|
FinancialDetailField,
|
|
1069
1197
|
{
|
|
1070
1198
|
label: "Status",
|
|
1071
1199
|
value: item.stillInPosition === void 0 ? "\u2014" : item.stillInPosition ? "Still in position" : item.endDate ? `Ended ${formatDateShort(item.endDate)}` : "No longer in position"
|
|
1072
1200
|
}
|
|
1201
|
+
),
|
|
1202
|
+
item.companyAddress && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1203
|
+
FinancialDetailField,
|
|
1204
|
+
{
|
|
1205
|
+
label: "Company Address",
|
|
1206
|
+
value: item.companyAddress
|
|
1207
|
+
}
|
|
1073
1208
|
)
|
|
1074
|
-
] })
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
totalMonthly && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1087
|
-
FinancialSubtotalBlock,
|
|
1088
|
-
{
|
|
1089
|
-
monthlyAverage: totalMonthly,
|
|
1090
|
-
label: "Total Monthly Income"
|
|
1091
|
-
}
|
|
1092
|
-
) })
|
|
1093
|
-
] });
|
|
1209
|
+
] }) })
|
|
1210
|
+
] }, i)) }),
|
|
1211
|
+
totalMonthly && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1212
|
+
FinancialSubtotalBlock,
|
|
1213
|
+
{
|
|
1214
|
+
monthlyAverage: totalMonthly,
|
|
1215
|
+
label: "Total Monthly Income"
|
|
1216
|
+
}
|
|
1217
|
+
) })
|
|
1218
|
+
]
|
|
1219
|
+
}
|
|
1220
|
+
);
|
|
1094
1221
|
}
|
|
1095
1222
|
var EXPENSE_ICON_MAP = {
|
|
1096
|
-
groceries:
|
|
1097
|
-
"dining out":
|
|
1098
|
-
dining:
|
|
1099
|
-
restaurants:
|
|
1100
|
-
transport:
|
|
1101
|
-
transportation:
|
|
1102
|
-
vehicle:
|
|
1103
|
-
utilities:
|
|
1104
|
-
electricity:
|
|
1105
|
-
insurance:
|
|
1106
|
-
"council rates":
|
|
1107
|
-
council:
|
|
1108
|
-
rates:
|
|
1109
|
-
medical:
|
|
1110
|
-
health:
|
|
1111
|
-
subscriptions:
|
|
1112
|
-
subscription:
|
|
1113
|
-
"credit card":
|
|
1114
|
-
education:
|
|
1115
|
-
childcare:
|
|
1116
|
-
entertainment:
|
|
1117
|
-
gym:
|
|
1118
|
-
fitness:
|
|
1119
|
-
clothing:
|
|
1120
|
-
rent:
|
|
1223
|
+
groceries: import_lucide_react4.ShoppingCart,
|
|
1224
|
+
"dining out": import_lucide_react4.UtensilsCrossed,
|
|
1225
|
+
dining: import_lucide_react4.UtensilsCrossed,
|
|
1226
|
+
restaurants: import_lucide_react4.UtensilsCrossed,
|
|
1227
|
+
transport: import_lucide_react4.Car,
|
|
1228
|
+
transportation: import_lucide_react4.Car,
|
|
1229
|
+
vehicle: import_lucide_react4.Car,
|
|
1230
|
+
utilities: import_lucide_react4.Zap,
|
|
1231
|
+
electricity: import_lucide_react4.Zap,
|
|
1232
|
+
insurance: import_lucide_react4.Shield,
|
|
1233
|
+
"council rates": import_lucide_react4.Landmark,
|
|
1234
|
+
council: import_lucide_react4.Landmark,
|
|
1235
|
+
rates: import_lucide_react4.Landmark,
|
|
1236
|
+
medical: import_lucide_react4.HeartPulse,
|
|
1237
|
+
health: import_lucide_react4.HeartPulse,
|
|
1238
|
+
subscriptions: import_lucide_react4.RefreshCw,
|
|
1239
|
+
subscription: import_lucide_react4.RefreshCw,
|
|
1240
|
+
"credit card": import_lucide_react4.CreditCard,
|
|
1241
|
+
education: import_lucide_react4.GraduationCap,
|
|
1242
|
+
childcare: import_lucide_react4.Baby,
|
|
1243
|
+
entertainment: import_lucide_react4.Tv,
|
|
1244
|
+
gym: import_lucide_react4.Dumbbell,
|
|
1245
|
+
fitness: import_lucide_react4.Dumbbell,
|
|
1246
|
+
clothing: import_lucide_react4.Shirt,
|
|
1247
|
+
rent: import_lucide_react4.Building2
|
|
1121
1248
|
};
|
|
1122
1249
|
function getExpenseIcon(expenseType) {
|
|
1123
1250
|
var _a;
|
|
1124
|
-
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a :
|
|
1251
|
+
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a : import_lucide_react4.Receipt;
|
|
1125
1252
|
}
|
|
1126
|
-
function ExpensesCard({
|
|
1253
|
+
function ExpensesCard({
|
|
1254
|
+
items,
|
|
1255
|
+
totalMonthly,
|
|
1256
|
+
borderless = false
|
|
1257
|
+
}) {
|
|
1127
1258
|
if (items.length === 0) {
|
|
1128
|
-
return /* @__PURE__ */ (0,
|
|
1259
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: cn("px-5 py-4", !borderless && "border border-border"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm text-muted-foreground", children: "No expenses recorded." }) });
|
|
1129
1260
|
}
|
|
1130
|
-
return /* @__PURE__ */ (0,
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
"
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
)
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1262
|
+
"div",
|
|
1263
|
+
{
|
|
1264
|
+
className: cn(
|
|
1265
|
+
"overflow-hidden flex flex-col",
|
|
1266
|
+
!borderless && "border border-border"
|
|
1267
|
+
),
|
|
1268
|
+
children: [
|
|
1269
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex flex-col", children: items.map((item, i) => {
|
|
1270
|
+
const Icon = getExpenseIcon(item.expenseType);
|
|
1271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1272
|
+
"div",
|
|
1273
|
+
{
|
|
1274
|
+
className: cn(
|
|
1275
|
+
"flex items-center justify-between gap-4 px-5 py-2.5",
|
|
1276
|
+
i < items.length - 1 && "border-b border-border"
|
|
1277
|
+
),
|
|
1278
|
+
children: [
|
|
1279
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
1280
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
1281
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-body-small text-foreground", children: item.expenseType })
|
|
1282
|
+
] }),
|
|
1283
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-label-medium whitespace-nowrap text-destructive", children: item.amountLabel })
|
|
1284
|
+
]
|
|
1285
|
+
},
|
|
1286
|
+
item.expenseType
|
|
1287
|
+
);
|
|
1288
|
+
}) }),
|
|
1289
|
+
totalMonthly && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1290
|
+
FinancialSubtotalBlock,
|
|
1291
|
+
{
|
|
1292
|
+
monthlyAverage: totalMonthly,
|
|
1293
|
+
label: "Total Monthly Expenses"
|
|
1294
|
+
}
|
|
1295
|
+
) })
|
|
1296
|
+
]
|
|
1297
|
+
}
|
|
1298
|
+
);
|
|
1159
1299
|
}
|
|
1160
1300
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1161
1301
|
0 && (module.exports = {
|