@wealthx/shadcn 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +200 -156
- package/CHANGELOG.md +22 -0
- package/dist/{chunk-4Y6R4WEC.mjs → chunk-2A5RRQGG.mjs} +9 -22
- package/dist/{chunk-TS2ZX2VS.mjs → chunk-2UM72RJ7.mjs} +11 -15
- package/dist/{chunk-A56YQQHG.mjs → chunk-3NCUZIFP.mjs} +2 -2
- package/dist/chunk-3OYFOX3X.mjs +79 -0
- package/dist/{chunk-RP3SQYA3.mjs → chunk-3TTACBDP.mjs} +9 -4
- package/dist/chunk-4GAWMKMI.mjs +710 -0
- package/dist/{chunk-VGSESELX.mjs → chunk-5FQIKDKP.mjs} +5 -5
- package/dist/{chunk-K3JYD4IU.mjs → chunk-5IS7G74I.mjs} +11 -4
- package/dist/chunk-6AW4KJHE.mjs +235 -0
- package/dist/chunk-6CR5N2JW.mjs +302 -0
- package/dist/{chunk-XIRTEFKH.mjs → chunk-6DZEXFNB.mjs} +36 -8
- package/dist/chunk-6O6KD7CE.mjs +271 -0
- package/dist/chunk-7PV3IWCN.mjs +33 -0
- package/dist/{chunk-SPJ5KXW7.mjs → chunk-7S5AESZO.mjs} +5 -5
- package/dist/{chunk-RYCLWMZ7.mjs → chunk-ABFDMHOR.mjs} +9 -7
- package/dist/{chunk-SWGT756Z.mjs → chunk-AMQZRHEZ.mjs} +10 -4
- package/dist/{chunk-WAZD7NFU.mjs → chunk-BKNFWEH2.mjs} +6 -6
- package/dist/{chunk-CLIN5525.mjs → chunk-C7CQJNMR.mjs} +1 -1
- package/dist/{chunk-D4ILTPOG.mjs → chunk-CFMQP5QS.mjs} +5 -4
- package/dist/{chunk-VPBN3WOO.mjs → chunk-DGHAXJBN.mjs} +9 -7
- package/dist/chunk-DOEO3CDL.mjs +27 -0
- package/dist/{chunk-5MEWU56Z.mjs → chunk-DUJTAXMH.mjs} +11 -6
- package/dist/{chunk-GGM2UYGG.mjs → chunk-EBXQWIYG.mjs} +10 -4
- package/dist/chunk-EWRB4PAD.mjs +468 -0
- package/dist/{chunk-ZSHYDDRB.mjs → chunk-FAKPBKLT.mjs} +6 -2
- package/dist/chunk-FNQXOAYJ.mjs +169 -0
- package/dist/{chunk-A6AAWBPF.mjs → chunk-GHC7LLUX.mjs} +13 -4
- package/dist/chunk-HBZLGDIN.mjs +507 -0
- package/dist/{chunk-SIZMLSRU.mjs → chunk-HISNT2MG.mjs} +8 -6
- package/dist/{chunk-CGH4DRNG.mjs → chunk-HVY6KCCF.mjs} +10 -7
- package/dist/chunk-I3RZS7V2.mjs +136 -0
- package/dist/chunk-IAE3F7DR.mjs +1962 -0
- package/dist/{chunk-UT4KJR7V.mjs → chunk-IHMFS7NZ.mjs} +35 -74
- package/dist/{chunk-PCPLO5HT.mjs → chunk-IOJRDS6V.mjs} +96 -14
- package/dist/{chunk-LHYCMLVA.mjs → chunk-JKGDCQTZ.mjs} +11 -4
- package/dist/{chunk-H45TKD34.mjs → chunk-JMHR3YGZ.mjs} +1 -1
- package/dist/{chunk-4MN6UQHG.mjs → chunk-K5A5L6T2.mjs} +17 -39
- package/dist/chunk-LV35NGVG.mjs +272 -0
- package/dist/{chunk-FZIXGLMV.mjs → chunk-M3FV7LOK.mjs} +5 -12
- package/dist/{chunk-FMAXJ2SI.mjs → chunk-MBON7YRJ.mjs} +1 -1
- package/dist/chunk-MIZQHHUO.mjs +441 -0
- package/dist/chunk-MN5NYQCL.mjs +29 -0
- package/dist/chunk-NL3ZO62D.mjs +31 -0
- package/dist/{chunk-Q76O3RIQ.mjs → chunk-NMOI6CQD.mjs} +1 -1
- package/dist/{chunk-P6AM5V7O.mjs → chunk-OODBHKG7.mjs} +1 -1
- package/dist/chunk-PBL4OQV2.mjs +283 -0
- package/dist/{chunk-Y4QFWRNR.mjs → chunk-PU4YZQXV.mjs} +17 -18
- package/dist/chunk-QMY3AZJH.mjs +80 -0
- package/dist/{chunk-BL3DXM2X.mjs → chunk-QZ4RE6NA.mjs} +11 -4
- package/dist/{chunk-VACKZOMY.mjs → chunk-R3VSPKNP.mjs} +3 -3
- package/dist/{chunk-OPNQAVVH.mjs → chunk-RJI6GKVF.mjs} +8 -6
- package/dist/{chunk-WG6JGJXB.mjs → chunk-T4BJLT57.mjs} +1 -1
- package/dist/chunk-UMTOX62O.mjs +415 -0
- package/dist/{chunk-7MMXNK3C.mjs → chunk-VLARHE5V.mjs} +8 -6
- package/dist/{chunk-2I5S2AMY.mjs → chunk-XREGSKX3.mjs} +2 -2
- package/dist/{chunk-JNQORUPP.mjs → chunk-YJG55G2H.mjs} +14 -11
- package/dist/{chunk-ZRSDX6OW.mjs → chunk-ZC45IGZO.mjs} +33 -30
- package/dist/components/ui/add-column-modal.js +42 -14
- package/dist/components/ui/add-column-modal.mjs +5 -5
- package/dist/components/ui/add-lead-modal.js +42 -11
- package/dist/components/ui/add-lead-modal.mjs +3 -3
- package/dist/components/ui/advisor-card.js +497 -0
- package/dist/components/ui/advisor-card.mjs +13 -0
- package/dist/components/ui/ai-assistant-drawer.js +11 -10
- package/dist/components/ui/ai-assistant-drawer.mjs +3 -3
- package/dist/components/ui/alert-dialog.js +2 -2
- package/dist/components/ui/alert-dialog.mjs +2 -2
- package/dist/components/ui/appointment-action-dialogs.js +1160 -0
- package/dist/components/ui/appointment-action-dialogs.mjs +23 -0
- package/dist/components/ui/appointment-availability-settings.js +1590 -0
- package/dist/components/ui/appointment-availability-settings.mjs +23 -0
- package/dist/components/ui/appointment-book-dialog.js +1744 -0
- package/dist/components/ui/appointment-book-dialog.mjs +27 -0
- package/dist/components/ui/appointment-calendar-view.js +833 -0
- package/dist/components/ui/appointment-calendar-view.mjs +14 -0
- package/dist/components/ui/appointment-detail-sheet.js +1517 -0
- package/dist/components/ui/appointment-detail-sheet.mjs +24 -0
- package/dist/components/ui/appointment-gmail-connect.js +467 -0
- package/dist/components/ui/appointment-gmail-connect.mjs +14 -0
- package/dist/components/ui/appointment-mini-card.js +345 -0
- package/dist/components/ui/appointment-mini-card.mjs +11 -0
- package/dist/components/ui/appointment-time-slot-picker.js +311 -0
- package/dist/components/ui/appointment-time-slot-picker.mjs +13 -0
- package/dist/components/ui/appointment-upcoming-card.js +1268 -0
- package/dist/components/ui/appointment-upcoming-card.mjs +21 -0
- package/dist/components/ui/backoffice-alert-history-chart.js +11 -5
- package/dist/components/ui/backoffice-alert-history-chart.mjs +5 -4
- package/dist/components/ui/backoffice-alerts-chart.js +786 -0
- package/dist/components/ui/backoffice-alerts-chart.mjs +19 -0
- package/dist/components/ui/backoffice-connections-chart.js +817 -0
- package/dist/components/ui/backoffice-connections-chart.mjs +19 -0
- package/dist/components/ui/backoffice-contact-history-chart.js +11 -5
- package/dist/components/ui/backoffice-contact-history-chart.mjs +5 -4
- package/dist/components/ui/badge.js +6 -6
- package/dist/components/ui/badge.mjs +1 -1
- package/dist/components/ui/borrowing-capacity-line-chart.js +30 -21
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +5 -4
- package/dist/components/ui/button.js +2 -2
- package/dist/components/ui/button.mjs +1 -1
- package/dist/components/ui/calendar.js +2 -2
- package/dist/components/ui/calendar.mjs +2 -2
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/card.mjs +1 -1
- package/dist/components/ui/cash-balance-line-chart.js +31 -23
- package/dist/components/ui/cash-balance-line-chart.mjs +5 -4
- package/dist/components/ui/cashflow-bar-chart.js +12 -5
- package/dist/components/ui/cashflow-bar-chart.mjs +5 -4
- package/dist/components/ui/chip.js +97 -18
- package/dist/components/ui/chip.mjs +3 -2
- package/dist/components/ui/color-picker.js +158 -28
- package/dist/components/ui/color-picker.mjs +3 -1
- package/dist/components/ui/data-table.js +140 -119
- package/dist/components/ui/data-table.mjs +3 -2
- package/dist/components/ui/date-picker.js +48 -27
- package/dist/components/ui/date-picker.mjs +4 -3
- package/dist/components/ui/dialog.js +37 -9
- package/dist/components/ui/dialog.mjs +2 -2
- package/dist/components/ui/expense-bar-chart.js +12 -5
- package/dist/components/ui/expense-bar-chart.mjs +5 -4
- package/dist/components/ui/field.mjs +2 -2
- package/dist/components/ui/financial-cards.js +322 -155
- package/dist/components/ui/financial-cards.mjs +5 -3
- package/dist/components/ui/financial-drawers.js +2 -2
- package/dist/components/ui/financial-drawers.mjs +3 -3
- package/dist/components/ui/financial-sections.js +14 -10
- package/dist/components/ui/financial-sections.mjs +6 -5
- package/dist/components/ui/income-bar-chart.js +12 -5
- package/dist/components/ui/income-bar-chart.mjs +5 -4
- package/dist/components/ui/input-group.js +2 -2
- package/dist/components/ui/input-group.mjs +2 -2
- package/dist/components/ui/kanban-column.js +52 -44
- package/dist/components/ui/kanban-column.mjs +7 -5
- package/dist/components/ui/opportunity-card.js +52 -44
- package/dist/components/ui/opportunity-card.mjs +6 -4
- package/dist/components/ui/opportunity-edit-modals.js +1367 -1263
- package/dist/components/ui/opportunity-edit-modals.mjs +8 -8
- package/dist/components/ui/opportunity-summary-tab.js +2744 -2157
- package/dist/components/ui/opportunity-summary-tab.mjs +14 -14
- package/dist/components/ui/page-header.js +92 -0
- package/dist/components/ui/page-header.mjs +8 -0
- package/dist/components/ui/page-top-bar.js +88 -0
- package/dist/components/ui/page-top-bar.mjs +8 -0
- package/dist/components/ui/pagination.js +303 -19
- package/dist/components/ui/pagination.mjs +11 -4
- package/dist/components/ui/pipeline-board.js +205 -191
- package/dist/components/ui/pipeline-board.mjs +9 -7
- package/dist/components/ui/pipeline-dialogs.js +114 -65
- package/dist/components/ui/pipeline-dialogs.mjs +7 -6
- package/dist/components/ui/pipeline-primitives.js +6 -6
- package/dist/components/ui/pipeline-primitives.mjs +2 -2
- package/dist/components/ui/property-cashflow-doughnut-chart.js +14 -12
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +5 -4
- package/dist/components/ui/property-debt-equity-doughnut-chart.js +14 -12
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +5 -4
- package/dist/components/ui/property-mobile-estimate-line-chart.js +16 -14
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +5 -4
- package/dist/components/ui/sidebar-nav.js +234 -95
- package/dist/components/ui/sidebar-nav.mjs +4 -1
- package/dist/components/ui/stage-timeline.js +6 -6
- package/dist/components/ui/stage-timeline.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +18 -16
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +5 -4
- package/dist/components/ui/transactions-income-expense-bar-chart.js +28 -12
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -4
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +18 -16
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +5 -4
- package/dist/index.js +12899 -9343
- package/dist/index.mjs +256 -190
- package/dist/styles.css +1 -1
- package/package.json +71 -1
- package/src/components/index.tsx +114 -9
- package/src/components/ui/add-column-modal.tsx +7 -7
- package/src/components/ui/add-lead-modal.tsx +6 -3
- package/src/components/ui/advisor-card.tsx +227 -0
- package/src/components/ui/ai-assistant-drawer.tsx +4 -3
- package/src/components/ui/appointment-action-dialogs.tsx +297 -0
- package/src/components/ui/appointment-availability-settings.tsx +645 -0
- package/src/components/ui/appointment-book-dialog.tsx +618 -0
- package/src/components/ui/appointment-calendar-view.tsx +510 -0
- package/src/components/ui/appointment-detail-sheet.tsx +415 -0
- package/src/components/ui/appointment-gmail-connect.tsx +188 -0
- package/src/components/ui/appointment-mini-card.tsx +104 -0
- package/src/components/ui/appointment-time-slot-picker.tsx +123 -0
- package/src/components/ui/appointment-upcoming-card.tsx +635 -0
- package/src/components/ui/backoffice-alert-history-chart.tsx +10 -2
- package/src/components/ui/backoffice-alerts-chart.tsx +312 -0
- package/src/components/ui/backoffice-connections-chart.tsx +339 -0
- package/src/components/ui/backoffice-contact-history-chart.tsx +10 -2
- package/src/components/ui/badge.tsx +12 -6
- package/src/components/ui/borrowing-capacity-line-chart.tsx +4 -11
- package/src/components/ui/button.tsx +2 -2
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/cash-balance-line-chart.tsx +4 -23
- package/src/components/ui/cashflow-bar-chart.tsx +9 -2
- package/src/components/ui/chart-shared.tsx +4 -11
- package/src/components/ui/chip.tsx +23 -19
- package/src/components/ui/color-picker.tsx +4 -2
- package/src/components/ui/data-table.tsx +28 -74
- package/src/components/ui/date-picker.tsx +42 -37
- package/src/components/ui/dialog.tsx +72 -6
- package/src/components/ui/expense-bar-chart.tsx +11 -2
- package/src/components/ui/financial-cards.tsx +99 -10
- package/src/components/ui/income-bar-chart.tsx +11 -2
- package/src/components/ui/opportunity-card.tsx +10 -39
- package/src/components/ui/opportunity-edit-modals.tsx +98 -36
- package/src/components/ui/opportunity-summary-tab.tsx +548 -232
- package/src/components/ui/page-header.tsx +57 -0
- package/src/components/ui/page-top-bar.tsx +48 -0
- package/src/components/ui/pagination.tsx +171 -22
- package/src/components/ui/pipeline-board.tsx +12 -5
- package/src/components/ui/property-cashflow-doughnut-chart.tsx +3 -1
- package/src/components/ui/property-debt-equity-doughnut-chart.tsx +3 -1
- package/src/components/ui/property-mobile-estimate-line-chart.tsx +3 -1
- package/src/components/ui/sidebar-nav.tsx +36 -37
- package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +3 -1
- package/src/components/ui/transactions-income-expense-bar-chart.tsx +12 -9
- package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +3 -1
- package/src/lib/format-currency.ts +44 -0
- package/src/lib/format-date.ts +50 -0
- package/src/lib/opportunity-constants.ts +12 -0
- package/src/styles/globals.css +17 -15
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +14 -0
- package/dist/chunk-S4QRUQNW.mjs +0 -475
- package/dist/chunk-URGMJAE3.mjs +0 -1885
- package/dist/chunk-WNGWBVLV.mjs +0 -148
- package/dist/{chunk-LLVQKSU3.mjs → chunk-GD4BJDJR.mjs} +3 -3
|
@@ -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_react3 = require("lucide-react");
|
|
73
73
|
|
|
74
74
|
// src/lib/utils.ts
|
|
75
75
|
var import_clsx = require("clsx");
|
|
@@ -110,6 +110,20 @@ function cn(...inputs) {
|
|
|
110
110
|
return twMerge((0, import_clsx.clsx)(inputs));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
// src/lib/format-date.ts
|
|
114
|
+
var import_date_fns = require("date-fns");
|
|
115
|
+
function safeParse(iso) {
|
|
116
|
+
return (0, import_date_fns.parseISO)(iso);
|
|
117
|
+
}
|
|
118
|
+
function formatDateShort(iso) {
|
|
119
|
+
if (!iso) return "\u2014";
|
|
120
|
+
try {
|
|
121
|
+
return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
|
|
122
|
+
} catch (e) {
|
|
123
|
+
return iso;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
113
127
|
// src/components/ui/badge.tsx
|
|
114
128
|
var import_class_variance_authority = require("class-variance-authority");
|
|
115
129
|
|
|
@@ -167,12 +181,12 @@ var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
|
167
181
|
{
|
|
168
182
|
variants: {
|
|
169
183
|
variant: {
|
|
170
|
-
default: "bg-primary text-
|
|
171
|
-
secondary: "bg-muted text-muted-foreground [a&]:hover:bg-muted/80",
|
|
172
|
-
destructive: "bg-destructive text-destructive-
|
|
173
|
-
success: "bg-success text-success-
|
|
174
|
-
warning: "bg-warning text-warning-
|
|
175
|
-
info: "bg-info text-info-
|
|
184
|
+
default: "border-primary/40 bg-primary/10 text-foreground [a&]:hover:bg-primary/15",
|
|
185
|
+
secondary: "border-border bg-muted text-muted-foreground [a&]:hover:bg-muted/80",
|
|
186
|
+
destructive: "border-destructive/40 bg-destructive/10 text-destructive-text focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/15",
|
|
187
|
+
success: "border-success/40 bg-success/10 text-success-text [a&]:hover:bg-success/15",
|
|
188
|
+
warning: "border-warning/40 bg-warning/10 text-warning-text [a&]:hover:bg-warning/15",
|
|
189
|
+
info: "border-info/40 bg-info/10 text-info-text [a&]:hover:bg-info/15",
|
|
176
190
|
outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
|
177
191
|
ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
|
178
192
|
link: "text-primary underline-offset-4 [a&]:hover:underline"
|
|
@@ -367,8 +381,85 @@ function FinancialSubtotalBlock({
|
|
|
367
381
|
);
|
|
368
382
|
}
|
|
369
383
|
|
|
370
|
-
// src/components/ui/
|
|
384
|
+
// src/components/ui/button.tsx
|
|
385
|
+
var import_react = require("react");
|
|
386
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
387
|
+
var import_lucide_react2 = require("lucide-react");
|
|
371
388
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
389
|
+
var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
390
|
+
"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
|
+
{
|
|
392
|
+
variants: {
|
|
393
|
+
variant: {
|
|
394
|
+
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
395
|
+
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
396
|
+
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",
|
|
398
|
+
"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",
|
|
400
|
+
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
401
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
402
|
+
},
|
|
403
|
+
size: {
|
|
404
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
405
|
+
xs: "h-6 gap-1 px-2 text-button-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
406
|
+
sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
407
|
+
lg: "h-10 px-6 has-[>svg]:px-4",
|
|
408
|
+
icon: "size-9",
|
|
409
|
+
"icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3",
|
|
410
|
+
"icon-sm": "size-8",
|
|
411
|
+
"icon-lg": "size-10"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
defaultVariants: {
|
|
415
|
+
variant: "default",
|
|
416
|
+
size: "default"
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
);
|
|
420
|
+
var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
421
|
+
var _b = _a, {
|
|
422
|
+
className,
|
|
423
|
+
variant,
|
|
424
|
+
size,
|
|
425
|
+
asChild = false,
|
|
426
|
+
loading = false,
|
|
427
|
+
disabled,
|
|
428
|
+
type = "button",
|
|
429
|
+
children
|
|
430
|
+
} = _b, props = __objRest(_b, [
|
|
431
|
+
"className",
|
|
432
|
+
"variant",
|
|
433
|
+
"size",
|
|
434
|
+
"asChild",
|
|
435
|
+
"loading",
|
|
436
|
+
"disabled",
|
|
437
|
+
"type",
|
|
438
|
+
"children"
|
|
439
|
+
]);
|
|
440
|
+
const Comp = asChild ? Slot : "button";
|
|
441
|
+
const isIconOnly = size === "icon" || size === "icon-xs" || size === "icon-sm" || size === "icon-lg";
|
|
442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
443
|
+
Comp,
|
|
444
|
+
__spreadProps(__spreadValues({
|
|
445
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
446
|
+
"data-size": size,
|
|
447
|
+
"data-slot": "button",
|
|
448
|
+
"data-variant": variant,
|
|
449
|
+
disabled: loading || disabled,
|
|
450
|
+
ref,
|
|
451
|
+
type
|
|
452
|
+
}, props), {
|
|
453
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
454
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
|
|
455
|
+
!isIconOnly && children
|
|
456
|
+
] }) : children
|
|
457
|
+
})
|
|
458
|
+
);
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
// src/components/ui/financial-cards.tsx
|
|
462
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
372
463
|
function PropertyCard({
|
|
373
464
|
address,
|
|
374
465
|
type,
|
|
@@ -392,7 +483,7 @@ function PropertyCard({
|
|
|
392
483
|
principlePaidOff
|
|
393
484
|
}) {
|
|
394
485
|
const [expanded, setExpanded] = React2.useState(false);
|
|
395
|
-
return /* @__PURE__ */ (0,
|
|
486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
396
487
|
"div",
|
|
397
488
|
{
|
|
398
489
|
className: cn(
|
|
@@ -400,19 +491,20 @@ function PropertyCard({
|
|
|
400
491
|
!borderless && "border border-border"
|
|
401
492
|
),
|
|
402
493
|
children: [
|
|
403
|
-
isLinkedToBank ? /* @__PURE__ */ (0,
|
|
404
|
-
|
|
494
|
+
isLinkedToBank ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
495
|
+
Button,
|
|
405
496
|
{
|
|
406
497
|
type: "button",
|
|
498
|
+
variant: "ghost",
|
|
407
499
|
"aria-expanded": expanded,
|
|
408
500
|
onClick: () => setExpanded((prev) => !prev),
|
|
409
|
-
className: "
|
|
501
|
+
className: "h-auto w-full justify-start gap-1.5 px-5 py-3 text-left",
|
|
410
502
|
children: [
|
|
411
|
-
/* @__PURE__ */ (0,
|
|
412
|
-
type && /* @__PURE__ */ (0,
|
|
413
|
-
/* @__PURE__ */ (0,
|
|
414
|
-
/* @__PURE__ */ (0,
|
|
415
|
-
|
|
503
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-label-medium text-foreground", children: address }),
|
|
504
|
+
type && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Badge, { variant: "outline", children: type }),
|
|
505
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "flex-1" }),
|
|
506
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
507
|
+
import_lucide_react3.ChevronDown,
|
|
416
508
|
{
|
|
417
509
|
className: cn(
|
|
418
510
|
"h-5 w-5 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
@@ -422,12 +514,12 @@ function PropertyCard({
|
|
|
422
514
|
)
|
|
423
515
|
]
|
|
424
516
|
}
|
|
425
|
-
) : /* @__PURE__ */ (0,
|
|
426
|
-
/* @__PURE__ */ (0,
|
|
427
|
-
type && /* @__PURE__ */ (0,
|
|
517
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5 px-5 py-3", children: [
|
|
518
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-label-medium text-foreground", children: address }),
|
|
519
|
+
type && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Badge, { variant: "outline", children: type })
|
|
428
520
|
] }),
|
|
429
|
-
!isLinkedToBank && /* @__PURE__ */ (0,
|
|
430
|
-
/* @__PURE__ */ (0,
|
|
521
|
+
!isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "px-5 pb-2 text-xs italic text-muted-foreground", children: "No mortgage account linked to this property" }),
|
|
522
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
431
523
|
"div",
|
|
432
524
|
{
|
|
433
525
|
className: cn(
|
|
@@ -435,54 +527,54 @@ function PropertyCard({
|
|
|
435
527
|
isLinkedToBank ? "grid-cols-3" : "grid-cols-1"
|
|
436
528
|
),
|
|
437
529
|
children: [
|
|
438
|
-
/* @__PURE__ */ (0,
|
|
439
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
440
|
-
/* @__PURE__ */ (0,
|
|
441
|
-
/* @__PURE__ */ (0,
|
|
530
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Estimated Value", value: estimated }),
|
|
531
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
532
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Loan Amount", value: loanAmount }),
|
|
533
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Equity", value: equity })
|
|
442
534
|
] })
|
|
443
535
|
]
|
|
444
536
|
}
|
|
445
537
|
),
|
|
446
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
538
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "px-5 pb-[15px]", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
447
539
|
FinancialLvrBar,
|
|
448
540
|
{
|
|
449
541
|
percent: lvrPercent,
|
|
450
542
|
label: lvr != null ? lvr : `${lvrPercent}%`
|
|
451
543
|
}
|
|
452
544
|
) }),
|
|
453
|
-
isLinkedToBank && /* @__PURE__ */ (0,
|
|
545
|
+
isLinkedToBank && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
454
546
|
"div",
|
|
455
547
|
{
|
|
456
548
|
className: cn(
|
|
457
549
|
"grid transition-[grid-template-rows] duration-200 ease-in-out",
|
|
458
550
|
expanded ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
459
551
|
),
|
|
460
|
-
children: /* @__PURE__ */ (0,
|
|
461
|
-
/* @__PURE__ */ (0,
|
|
462
|
-
/* @__PURE__ */ (0,
|
|
463
|
-
/* @__PURE__ */ (0,
|
|
464
|
-
/* @__PURE__ */ (0,
|
|
552
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "overflow-hidden", children: [
|
|
553
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-5 border-t border-border px-5 py-[15px]", children: [
|
|
554
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubsectionTitle, { children: "Loan" }),
|
|
555
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-4", children: [
|
|
556
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
465
557
|
FinancialDetailField,
|
|
466
558
|
{
|
|
467
559
|
label: "Name of Lender",
|
|
468
560
|
value: lenderName
|
|
469
561
|
}
|
|
470
562
|
),
|
|
471
|
-
/* @__PURE__ */ (0,
|
|
563
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
472
564
|
FinancialDetailField,
|
|
473
565
|
{
|
|
474
566
|
label: "Current Loan Amount",
|
|
475
567
|
value: loanAmount
|
|
476
568
|
}
|
|
477
569
|
),
|
|
478
|
-
/* @__PURE__ */ (0,
|
|
570
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
479
571
|
FinancialDetailField,
|
|
480
572
|
{
|
|
481
573
|
label: "Interest Rate",
|
|
482
574
|
value: interestRate
|
|
483
575
|
}
|
|
484
576
|
),
|
|
485
|
-
/* @__PURE__ */ (0,
|
|
577
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
486
578
|
FinancialDetailField,
|
|
487
579
|
{
|
|
488
580
|
label: "Years Remaining",
|
|
@@ -490,29 +582,29 @@ function PropertyCard({
|
|
|
490
582
|
}
|
|
491
583
|
)
|
|
492
584
|
] }),
|
|
493
|
-
/* @__PURE__ */ (0,
|
|
494
|
-
/* @__PURE__ */ (0,
|
|
585
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-4", children: [
|
|
586
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
495
587
|
FinancialDetailField,
|
|
496
588
|
{
|
|
497
589
|
label: "Min Repayments",
|
|
498
590
|
value: minRepayments
|
|
499
591
|
}
|
|
500
592
|
),
|
|
501
|
-
/* @__PURE__ */ (0,
|
|
593
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
502
594
|
FinancialDetailField,
|
|
503
595
|
{
|
|
504
596
|
label: "Average Repayments",
|
|
505
597
|
value: averageRepayments
|
|
506
598
|
}
|
|
507
599
|
),
|
|
508
|
-
/* @__PURE__ */ (0,
|
|
600
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
509
601
|
FinancialDetailField,
|
|
510
602
|
{
|
|
511
603
|
label: "Redraw Amount",
|
|
512
604
|
value: redrawAmount
|
|
513
605
|
}
|
|
514
606
|
),
|
|
515
|
-
/* @__PURE__ */ (0,
|
|
607
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
516
608
|
FinancialDetailField,
|
|
517
609
|
{
|
|
518
610
|
label: "Offset Account",
|
|
@@ -521,8 +613,8 @@ function PropertyCard({
|
|
|
521
613
|
)
|
|
522
614
|
] })
|
|
523
615
|
] }),
|
|
524
|
-
/* @__PURE__ */ (0,
|
|
525
|
-
/* @__PURE__ */ (0,
|
|
616
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-4 gap-x-4 gap-y-1", children: [
|
|
617
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
526
618
|
FinancialDetailField,
|
|
527
619
|
{
|
|
528
620
|
variant: "footer",
|
|
@@ -530,7 +622,7 @@ function PropertyCard({
|
|
|
530
622
|
value: totalMinRepayments
|
|
531
623
|
}
|
|
532
624
|
),
|
|
533
|
-
/* @__PURE__ */ (0,
|
|
625
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
534
626
|
FinancialDetailField,
|
|
535
627
|
{
|
|
536
628
|
variant: "footer",
|
|
@@ -538,7 +630,7 @@ function PropertyCard({
|
|
|
538
630
|
value: totalExtraRepayments
|
|
539
631
|
}
|
|
540
632
|
),
|
|
541
|
-
/* @__PURE__ */ (0,
|
|
633
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
542
634
|
FinancialDetailField,
|
|
543
635
|
{
|
|
544
636
|
variant: "footer",
|
|
@@ -546,7 +638,7 @@ function PropertyCard({
|
|
|
546
638
|
value: interestCharged
|
|
547
639
|
}
|
|
548
640
|
),
|
|
549
|
-
/* @__PURE__ */ (0,
|
|
641
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
550
642
|
FinancialDetailField,
|
|
551
643
|
{
|
|
552
644
|
variant: "footer",
|
|
@@ -576,17 +668,17 @@ function DebtCard({
|
|
|
576
668
|
totalInterestPaid,
|
|
577
669
|
yearsRemaining
|
|
578
670
|
}) {
|
|
579
|
-
return /* @__PURE__ */ (0,
|
|
580
|
-
/* @__PURE__ */ (0,
|
|
581
|
-
/* @__PURE__ */ (0,
|
|
582
|
-
/* @__PURE__ */ (0,
|
|
671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col h-full", children: [
|
|
672
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5 px-5 py-[15px] border-b border-border min-h-[7rem] items-start", children: [
|
|
673
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Name of Lender", value: lenderName }),
|
|
674
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
583
675
|
FinancialDetailField,
|
|
584
676
|
{
|
|
585
677
|
label: "Current Loan Amount",
|
|
586
678
|
value: currentLoanAmount
|
|
587
679
|
}
|
|
588
680
|
),
|
|
589
|
-
/* @__PURE__ */ (0,
|
|
681
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
590
682
|
FinancialDetailField,
|
|
591
683
|
{
|
|
592
684
|
label: "Current Interest Rate",
|
|
@@ -594,24 +686,24 @@ function DebtCard({
|
|
|
594
686
|
}
|
|
595
687
|
)
|
|
596
688
|
] }),
|
|
597
|
-
/* @__PURE__ */ (0,
|
|
598
|
-
/* @__PURE__ */ (0,
|
|
599
|
-
/* @__PURE__ */ (0,
|
|
600
|
-
/* @__PURE__ */ (0,
|
|
689
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "px-5 py-[15px] flex flex-col gap-5 flex-1", children: [
|
|
690
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubsectionTitle, { children: "Loan Stats" }),
|
|
691
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
692
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
601
693
|
FinancialDetailField,
|
|
602
694
|
{
|
|
603
695
|
label: "Original Loan Amount",
|
|
604
696
|
value: originalLoanAmount
|
|
605
697
|
}
|
|
606
698
|
),
|
|
607
|
-
/* @__PURE__ */ (0,
|
|
699
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
608
700
|
FinancialDetailField,
|
|
609
701
|
{
|
|
610
702
|
label: "Original Loan Term",
|
|
611
703
|
value: originalLoanTerm
|
|
612
704
|
}
|
|
613
705
|
),
|
|
614
|
-
/* @__PURE__ */ (0,
|
|
706
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
615
707
|
FinancialDetailField,
|
|
616
708
|
{
|
|
617
709
|
label: "Monthly Repayments",
|
|
@@ -619,10 +711,10 @@ function DebtCard({
|
|
|
619
711
|
}
|
|
620
712
|
)
|
|
621
713
|
] }),
|
|
622
|
-
/* @__PURE__ */ (0,
|
|
623
|
-
/* @__PURE__ */ (0,
|
|
624
|
-
/* @__PURE__ */ (0,
|
|
625
|
-
/* @__PURE__ */ (0,
|
|
714
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
715
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Redraw Amount", value: redrawAmount }),
|
|
716
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Offset Account", value: offsetAmount }),
|
|
717
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
626
718
|
FinancialDetailField,
|
|
627
719
|
{
|
|
628
720
|
label: "Extra Loan Repayments",
|
|
@@ -631,8 +723,8 @@ function DebtCard({
|
|
|
631
723
|
)
|
|
632
724
|
] })
|
|
633
725
|
] }),
|
|
634
|
-
/* @__PURE__ */ (0,
|
|
635
|
-
/* @__PURE__ */ (0,
|
|
726
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-x-4 gap-y-1", children: [
|
|
727
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
636
728
|
FinancialDetailField,
|
|
637
729
|
{
|
|
638
730
|
variant: "footer",
|
|
@@ -640,7 +732,7 @@ function DebtCard({
|
|
|
640
732
|
value: totalRepaymentsMade
|
|
641
733
|
}
|
|
642
734
|
),
|
|
643
|
-
/* @__PURE__ */ (0,
|
|
735
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
644
736
|
FinancialDetailField,
|
|
645
737
|
{
|
|
646
738
|
variant: "footer",
|
|
@@ -648,7 +740,7 @@ function DebtCard({
|
|
|
648
740
|
value: totalInterestPaid
|
|
649
741
|
}
|
|
650
742
|
),
|
|
651
|
-
/* @__PURE__ */ (0,
|
|
743
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
652
744
|
FinancialDetailField,
|
|
653
745
|
{
|
|
654
746
|
variant: "footer",
|
|
@@ -677,52 +769,52 @@ function OtherLiabilityCard({
|
|
|
677
769
|
totalInterestPaid
|
|
678
770
|
}) {
|
|
679
771
|
const isCreditCard = type === "credit_card";
|
|
680
|
-
return /* @__PURE__ */ (0,
|
|
681
|
-
/* @__PURE__ */ (0,
|
|
682
|
-
/* @__PURE__ */ (0,
|
|
683
|
-
isCreditCard ? /* @__PURE__ */ (0,
|
|
772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col h-full", children: [
|
|
773
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5 px-4 pt-5 pb-4 min-h-[7rem] items-start", children: [
|
|
774
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Lender", value: lenderName }),
|
|
775
|
+
isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
684
776
|
FinancialDetailField,
|
|
685
777
|
{
|
|
686
778
|
label: "Current Balance",
|
|
687
779
|
value: currentBalance
|
|
688
780
|
}
|
|
689
|
-
) : /* @__PURE__ */ (0,
|
|
781
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
690
782
|
FinancialDetailField,
|
|
691
783
|
{
|
|
692
784
|
label: "Current Loan Amount",
|
|
693
785
|
value: currentLoanAmount
|
|
694
786
|
}
|
|
695
787
|
),
|
|
696
|
-
/* @__PURE__ */ (0,
|
|
788
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Interest Rate", value: interestRate })
|
|
697
789
|
] }),
|
|
698
|
-
/* @__PURE__ */ (0,
|
|
699
|
-
/* @__PURE__ */ (0,
|
|
700
|
-
isCreditCard ? /* @__PURE__ */ (0,
|
|
701
|
-
/* @__PURE__ */ (0,
|
|
702
|
-
/* @__PURE__ */ (0,
|
|
790
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "px-4 pt-4 pb-5 flex flex-col gap-5 border-t border-border flex-1", children: [
|
|
791
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubsectionTitle, { children: isCreditCard ? "Card Stats" : "Loan Stats" }),
|
|
792
|
+
isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
793
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Credit Limit", value: creditLimit }),
|
|
794
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
703
795
|
FinancialDetailField,
|
|
704
796
|
{
|
|
705
797
|
label: "Min Monthly Payment",
|
|
706
798
|
value: minMonthlyPayment
|
|
707
799
|
}
|
|
708
800
|
),
|
|
709
|
-
/* @__PURE__ */ (0,
|
|
710
|
-
] }) : /* @__PURE__ */ (0,
|
|
711
|
-
/* @__PURE__ */ (0,
|
|
801
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Annual Fee", value: annualFee })
|
|
802
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-5", children: [
|
|
803
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
712
804
|
FinancialDetailField,
|
|
713
805
|
{
|
|
714
806
|
label: "Original Loan Amount",
|
|
715
807
|
value: originalLoanAmount
|
|
716
808
|
}
|
|
717
809
|
),
|
|
718
|
-
/* @__PURE__ */ (0,
|
|
810
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
719
811
|
FinancialDetailField,
|
|
720
812
|
{
|
|
721
813
|
label: "Original Loan Term",
|
|
722
814
|
value: originalLoanTerm
|
|
723
815
|
}
|
|
724
816
|
),
|
|
725
|
-
/* @__PURE__ */ (0,
|
|
817
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
726
818
|
FinancialDetailField,
|
|
727
819
|
{
|
|
728
820
|
label: "Monthly Repayments",
|
|
@@ -731,8 +823,8 @@ function OtherLiabilityCard({
|
|
|
731
823
|
)
|
|
732
824
|
] })
|
|
733
825
|
] }),
|
|
734
|
-
/* @__PURE__ */ (0,
|
|
735
|
-
/* @__PURE__ */ (0,
|
|
826
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: isCreditCard ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-2 gap-x-4 gap-y-1", children: [
|
|
827
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
736
828
|
FinancialDetailField,
|
|
737
829
|
{
|
|
738
830
|
variant: "footer",
|
|
@@ -740,7 +832,7 @@ function OtherLiabilityCard({
|
|
|
740
832
|
value: totalInterestPaid
|
|
741
833
|
}
|
|
742
834
|
),
|
|
743
|
-
/* @__PURE__ */ (0,
|
|
835
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
744
836
|
FinancialDetailField,
|
|
745
837
|
{
|
|
746
838
|
variant: "footer",
|
|
@@ -748,8 +840,8 @@ function OtherLiabilityCard({
|
|
|
748
840
|
value: availableCredit
|
|
749
841
|
}
|
|
750
842
|
)
|
|
751
|
-
] }) : /* @__PURE__ */ (0,
|
|
752
|
-
/* @__PURE__ */ (0,
|
|
843
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-x-4 gap-y-1", children: [
|
|
844
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
753
845
|
FinancialDetailField,
|
|
754
846
|
{
|
|
755
847
|
variant: "footer",
|
|
@@ -757,7 +849,7 @@ function OtherLiabilityCard({
|
|
|
757
849
|
value: totalRepaymentsMade
|
|
758
850
|
}
|
|
759
851
|
),
|
|
760
|
-
/* @__PURE__ */ (0,
|
|
852
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
761
853
|
FinancialDetailField,
|
|
762
854
|
{
|
|
763
855
|
variant: "footer",
|
|
@@ -765,7 +857,7 @@ function OtherLiabilityCard({
|
|
|
765
857
|
value: totalInterestPaid
|
|
766
858
|
}
|
|
767
859
|
),
|
|
768
|
-
/* @__PURE__ */ (0,
|
|
860
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
769
861
|
FinancialDetailField,
|
|
770
862
|
{
|
|
771
863
|
variant: "footer",
|
|
@@ -791,10 +883,10 @@ function AlertCard({
|
|
|
791
883
|
onActionChange
|
|
792
884
|
}) {
|
|
793
885
|
const { dot, border } = SEVERITY_CLASSES[severityCode];
|
|
794
|
-
return /* @__PURE__ */ (0,
|
|
795
|
-
/* @__PURE__ */ (0,
|
|
796
|
-
/* @__PURE__ */ (0,
|
|
797
|
-
/* @__PURE__ */ (0,
|
|
886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: cn("flex flex-col gap-1.5 border p-2.5 px-3", border), children: [
|
|
887
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
888
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: cn("h-[9px] w-[9px] shrink-0 rounded-full", dot) }),
|
|
889
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
798
890
|
"span",
|
|
799
891
|
{
|
|
800
892
|
className: cn(
|
|
@@ -805,19 +897,19 @@ function AlertCard({
|
|
|
805
897
|
}
|
|
806
898
|
)
|
|
807
899
|
] }),
|
|
808
|
-
ignored ? /* @__PURE__ */ (0,
|
|
900
|
+
ignored ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "ml-[15px] text-xs italic text-muted-foreground/60", children: [
|
|
809
901
|
"Ignored until ",
|
|
810
902
|
ignoredUntil
|
|
811
|
-
] }) : /* @__PURE__ */ (0,
|
|
903
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
812
904
|
RadioGroup,
|
|
813
905
|
{
|
|
814
906
|
value: selectedAction != null ? selectedAction : "",
|
|
815
907
|
onValueChange: (val) => onActionChange == null ? void 0 : onActionChange(val),
|
|
816
908
|
className: "ml-[15px] flex flex-col gap-1",
|
|
817
909
|
children: [
|
|
818
|
-
/* @__PURE__ */ (0,
|
|
819
|
-
/* @__PURE__ */ (0,
|
|
820
|
-
/* @__PURE__ */ (0,
|
|
910
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
911
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadioGroupItem, { value: "DISMISS", id: `dismiss-${id}` }),
|
|
912
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
821
913
|
"label",
|
|
822
914
|
{
|
|
823
915
|
htmlFor: `dismiss-${id}`,
|
|
@@ -826,9 +918,9 @@ function AlertCard({
|
|
|
826
918
|
}
|
|
827
919
|
)
|
|
828
920
|
] }),
|
|
829
|
-
/* @__PURE__ */ (0,
|
|
830
|
-
/* @__PURE__ */ (0,
|
|
831
|
-
/* @__PURE__ */ (0,
|
|
921
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
922
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadioGroupItem, { value: "SNOOZE", id: `snooze-${id}` }),
|
|
923
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
832
924
|
"label",
|
|
833
925
|
{
|
|
834
926
|
htmlFor: `snooze-${id}`,
|
|
@@ -848,40 +940,83 @@ function AboutCard({
|
|
|
848
940
|
lastName,
|
|
849
941
|
phone,
|
|
850
942
|
email,
|
|
943
|
+
dob,
|
|
851
944
|
gender,
|
|
852
945
|
maritalStatus,
|
|
946
|
+
numDependants,
|
|
853
947
|
citizenStatus,
|
|
948
|
+
residentialAddress,
|
|
949
|
+
residentialStatus,
|
|
950
|
+
timeAtAddressYears,
|
|
951
|
+
timeAtAddressMonths,
|
|
952
|
+
driversLicence,
|
|
953
|
+
passport,
|
|
854
954
|
propertyInTrust,
|
|
855
955
|
companyOwnership
|
|
856
956
|
}) {
|
|
857
957
|
const fullName = [title, firstName, lastName].filter(Boolean).join(" ") || "\u2014";
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
/* @__PURE__ */ (0,
|
|
958
|
+
const timeAtAddress = timeAtAddressYears || timeAtAddressMonths ? [
|
|
959
|
+
timeAtAddressYears && `${timeAtAddressYears}yr`,
|
|
960
|
+
timeAtAddressMonths && `${timeAtAddressMonths}mo`
|
|
961
|
+
].filter(Boolean).join(" ") : void 0;
|
|
962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "border border-border overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-2 gap-x-8 gap-y-4 px-5 py-4", children: [
|
|
963
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Full Name", value: fullName }),
|
|
964
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Date of Birth", value: dob || "\u2014" }),
|
|
965
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Gender", value: gender || "\u2014" }),
|
|
966
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Phone", value: phone || "\u2014" }),
|
|
967
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Email", value: email || "\u2014" }),
|
|
968
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
864
969
|
FinancialDetailField,
|
|
865
970
|
{
|
|
866
971
|
label: "Marital Status",
|
|
867
972
|
value: maritalStatus || "\u2014"
|
|
868
973
|
}
|
|
869
974
|
),
|
|
870
|
-
/* @__PURE__ */ (0,
|
|
975
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
976
|
+
FinancialDetailField,
|
|
977
|
+
{
|
|
978
|
+
label: "No. of Dependants",
|
|
979
|
+
value: numDependants != null ? numDependants : "\u2014"
|
|
980
|
+
}
|
|
981
|
+
),
|
|
982
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
871
983
|
FinancialDetailField,
|
|
872
984
|
{
|
|
873
985
|
label: "Citizenship",
|
|
874
986
|
value: citizenStatus || "\u2014"
|
|
875
987
|
}
|
|
876
988
|
),
|
|
877
|
-
/* @__PURE__ */ (0,
|
|
989
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
990
|
+
FinancialDetailField,
|
|
991
|
+
{
|
|
992
|
+
label: "Residential Address",
|
|
993
|
+
value: residentialAddress || "\u2014"
|
|
994
|
+
}
|
|
995
|
+
),
|
|
996
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
997
|
+
FinancialDetailField,
|
|
998
|
+
{
|
|
999
|
+
label: "Residential Status",
|
|
1000
|
+
value: residentialStatus || "\u2014"
|
|
1001
|
+
}
|
|
1002
|
+
),
|
|
1003
|
+
timeAtAddress && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Time at Address", value: timeAtAddress }),
|
|
1004
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1005
|
+
FinancialDetailField,
|
|
1006
|
+
{
|
|
1007
|
+
label: "Driver's Licence",
|
|
1008
|
+
value: driversLicence || "\u2014"
|
|
1009
|
+
}
|
|
1010
|
+
),
|
|
1011
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Passport", value: passport || "\u2014" }),
|
|
1012
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
878
1013
|
FinancialDetailField,
|
|
879
1014
|
{
|
|
880
1015
|
label: "Property in Trust",
|
|
881
1016
|
value: propertyInTrust || "\u2014"
|
|
882
1017
|
}
|
|
883
1018
|
),
|
|
884
|
-
/* @__PURE__ */ (0,
|
|
1019
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
885
1020
|
FinancialDetailField,
|
|
886
1021
|
{
|
|
887
1022
|
label: "Company Ownership",
|
|
@@ -892,31 +1027,63 @@ function AboutCard({
|
|
|
892
1027
|
}
|
|
893
1028
|
function IncomeCard({ items, totalMonthly }) {
|
|
894
1029
|
if (items.length === 0) {
|
|
895
|
-
return /* @__PURE__ */ (0,
|
|
1030
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "border border-border px-5 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm text-muted-foreground", children: "No income recorded." }) });
|
|
896
1031
|
}
|
|
897
|
-
return /* @__PURE__ */ (0,
|
|
898
|
-
items.map((item, i) => /* @__PURE__ */ (0,
|
|
1032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col", children: [
|
|
1033
|
+
items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
899
1034
|
"div",
|
|
900
1035
|
{
|
|
901
1036
|
className: cn(
|
|
902
|
-
"
|
|
1037
|
+
"flex flex-col gap-3 px-5 py-[15px]",
|
|
903
1038
|
i < items.length - 1 && "border-b border-border"
|
|
904
1039
|
),
|
|
905
1040
|
children: [
|
|
906
|
-
/* @__PURE__ */ (0,
|
|
907
|
-
|
|
1041
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "grid grid-cols-3 gap-x-6", children: [
|
|
1042
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Type", value: item.incomeType || "\u2014" }),
|
|
1043
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1044
|
+
FinancialDetailField,
|
|
1045
|
+
{
|
|
1046
|
+
label: "Job Title",
|
|
1047
|
+
value: item.jobTitle || "\u2014"
|
|
1048
|
+
}
|
|
1049
|
+
),
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialDetailField, { label: "Amount", value: item.amountLabel })
|
|
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)(
|
|
1054
|
+
FinancialDetailField,
|
|
1055
|
+
{
|
|
1056
|
+
label: "Company",
|
|
1057
|
+
value: item.companyName || "\u2014"
|
|
1058
|
+
}
|
|
1059
|
+
),
|
|
1060
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1061
|
+
FinancialDetailField,
|
|
1062
|
+
{
|
|
1063
|
+
label: "Start Date",
|
|
1064
|
+
value: formatDateShort(item.startDate)
|
|
1065
|
+
}
|
|
1066
|
+
),
|
|
1067
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1068
|
+
FinancialDetailField,
|
|
1069
|
+
{
|
|
1070
|
+
label: "Status",
|
|
1071
|
+
value: item.stillInPosition === void 0 ? "\u2014" : item.stillInPosition ? "Still in position" : item.endDate ? `Ended ${formatDateShort(item.endDate)}` : "No longer in position"
|
|
1072
|
+
}
|
|
1073
|
+
)
|
|
1074
|
+
] }),
|
|
1075
|
+
item.companyAddress && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
908
1076
|
FinancialDetailField,
|
|
909
1077
|
{
|
|
910
|
-
label: "
|
|
911
|
-
value: item.
|
|
1078
|
+
label: "Company Address",
|
|
1079
|
+
value: item.companyAddress
|
|
912
1080
|
}
|
|
913
|
-
)
|
|
914
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FinancialDetailField, { label: "Amount", value: item.amountLabel })
|
|
1081
|
+
)
|
|
915
1082
|
]
|
|
916
1083
|
},
|
|
917
1084
|
i
|
|
918
1085
|
)),
|
|
919
|
-
totalMonthly && /* @__PURE__ */ (0,
|
|
1086
|
+
totalMonthly && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
920
1087
|
FinancialSubtotalBlock,
|
|
921
1088
|
{
|
|
922
1089
|
monthlyAverage: totalMonthly,
|
|
@@ -926,44 +1093,44 @@ function IncomeCard({ items, totalMonthly }) {
|
|
|
926
1093
|
] });
|
|
927
1094
|
}
|
|
928
1095
|
var EXPENSE_ICON_MAP = {
|
|
929
|
-
groceries:
|
|
930
|
-
"dining out":
|
|
931
|
-
dining:
|
|
932
|
-
restaurants:
|
|
933
|
-
transport:
|
|
934
|
-
transportation:
|
|
935
|
-
vehicle:
|
|
936
|
-
utilities:
|
|
937
|
-
electricity:
|
|
938
|
-
insurance:
|
|
939
|
-
"council rates":
|
|
940
|
-
council:
|
|
941
|
-
rates:
|
|
942
|
-
medical:
|
|
943
|
-
health:
|
|
944
|
-
subscriptions:
|
|
945
|
-
subscription:
|
|
946
|
-
"credit card":
|
|
947
|
-
education:
|
|
948
|
-
childcare:
|
|
949
|
-
entertainment:
|
|
950
|
-
gym:
|
|
951
|
-
fitness:
|
|
952
|
-
clothing:
|
|
953
|
-
rent:
|
|
1096
|
+
groceries: import_lucide_react3.ShoppingCart,
|
|
1097
|
+
"dining out": import_lucide_react3.UtensilsCrossed,
|
|
1098
|
+
dining: import_lucide_react3.UtensilsCrossed,
|
|
1099
|
+
restaurants: import_lucide_react3.UtensilsCrossed,
|
|
1100
|
+
transport: import_lucide_react3.Car,
|
|
1101
|
+
transportation: import_lucide_react3.Car,
|
|
1102
|
+
vehicle: import_lucide_react3.Car,
|
|
1103
|
+
utilities: import_lucide_react3.Zap,
|
|
1104
|
+
electricity: import_lucide_react3.Zap,
|
|
1105
|
+
insurance: import_lucide_react3.Shield,
|
|
1106
|
+
"council rates": import_lucide_react3.Landmark,
|
|
1107
|
+
council: import_lucide_react3.Landmark,
|
|
1108
|
+
rates: import_lucide_react3.Landmark,
|
|
1109
|
+
medical: import_lucide_react3.HeartPulse,
|
|
1110
|
+
health: import_lucide_react3.HeartPulse,
|
|
1111
|
+
subscriptions: import_lucide_react3.RefreshCw,
|
|
1112
|
+
subscription: import_lucide_react3.RefreshCw,
|
|
1113
|
+
"credit card": import_lucide_react3.CreditCard,
|
|
1114
|
+
education: import_lucide_react3.GraduationCap,
|
|
1115
|
+
childcare: import_lucide_react3.Baby,
|
|
1116
|
+
entertainment: import_lucide_react3.Tv,
|
|
1117
|
+
gym: import_lucide_react3.Dumbbell,
|
|
1118
|
+
fitness: import_lucide_react3.Dumbbell,
|
|
1119
|
+
clothing: import_lucide_react3.Shirt,
|
|
1120
|
+
rent: import_lucide_react3.Building2
|
|
954
1121
|
};
|
|
955
1122
|
function getExpenseIcon(expenseType) {
|
|
956
1123
|
var _a;
|
|
957
|
-
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a :
|
|
1124
|
+
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a : import_lucide_react3.Receipt;
|
|
958
1125
|
}
|
|
959
1126
|
function ExpensesCard({ items, totalMonthly }) {
|
|
960
1127
|
if (items.length === 0) {
|
|
961
|
-
return /* @__PURE__ */ (0,
|
|
1128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "border border-border px-5 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm text-muted-foreground", children: "No expenses recorded." }) });
|
|
962
1129
|
}
|
|
963
|
-
return /* @__PURE__ */ (0,
|
|
964
|
-
/* @__PURE__ */ (0,
|
|
1130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "border border-border overflow-hidden flex flex-col", children: [
|
|
1131
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex flex-col", children: items.map((item, i) => {
|
|
965
1132
|
const Icon = getExpenseIcon(item.expenseType);
|
|
966
|
-
return /* @__PURE__ */ (0,
|
|
1133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
967
1134
|
"div",
|
|
968
1135
|
{
|
|
969
1136
|
className: cn(
|
|
@@ -971,17 +1138,17 @@ function ExpensesCard({ items, totalMonthly }) {
|
|
|
971
1138
|
i < items.length - 1 && "border-b border-border"
|
|
972
1139
|
),
|
|
973
1140
|
children: [
|
|
974
|
-
/* @__PURE__ */ (0,
|
|
975
|
-
/* @__PURE__ */ (0,
|
|
976
|
-
/* @__PURE__ */ (0,
|
|
1141
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
1142
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
1143
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-body-small text-foreground", children: item.expenseType })
|
|
977
1144
|
] }),
|
|
978
|
-
/* @__PURE__ */ (0,
|
|
1145
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-label-medium whitespace-nowrap text-destructive", children: item.amountLabel })
|
|
979
1146
|
]
|
|
980
1147
|
},
|
|
981
1148
|
item.expenseType
|
|
982
1149
|
);
|
|
983
1150
|
}) }),
|
|
984
|
-
totalMonthly && /* @__PURE__ */ (0,
|
|
1151
|
+
totalMonthly && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FinancialSubtotalFrame, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
985
1152
|
FinancialSubtotalBlock,
|
|
986
1153
|
{
|
|
987
1154
|
monthlyAverage: totalMonthly,
|