@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
|
@@ -134,7 +134,7 @@ function CardHeader(_a) {
|
|
|
134
134
|
"div",
|
|
135
135
|
__spreadValues({
|
|
136
136
|
className: cn(
|
|
137
|
-
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-
|
|
137
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-center gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
138
138
|
className
|
|
139
139
|
),
|
|
140
140
|
"data-slot": "card-header"
|
|
@@ -285,10 +285,10 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
285
285
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
286
286
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
287
287
|
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",
|
|
288
|
-
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
288
|
+
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",
|
|
289
289
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
290
290
|
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
291
|
-
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
|
|
291
|
+
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
292
292
|
link: "text-primary underline-offset-4 hover:underline"
|
|
293
293
|
},
|
|
294
294
|
size: {
|
|
@@ -349,11 +349,8 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
|
|
|
349
349
|
);
|
|
350
350
|
});
|
|
351
351
|
|
|
352
|
-
// src/
|
|
353
|
-
|
|
354
|
-
var FALLBACK_PRIMARY = "#33FF99";
|
|
355
|
-
var FALLBACK_SECONDARY = "#162029";
|
|
356
|
-
function formatAbbrev(value) {
|
|
352
|
+
// src/lib/format-currency.ts
|
|
353
|
+
function formatCurrencyAbbrev(value) {
|
|
357
354
|
const abs = Math.abs(value);
|
|
358
355
|
const sign = value < 0 ? "-" : "";
|
|
359
356
|
if (abs >= 1e9)
|
|
@@ -362,6 +359,11 @@ function formatAbbrev(value) {
|
|
|
362
359
|
if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(0)}K`;
|
|
363
360
|
return `${sign}$${abs.toFixed(0)}`;
|
|
364
361
|
}
|
|
362
|
+
|
|
363
|
+
// src/components/ui/chart-shared.tsx
|
|
364
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
365
|
+
var FALLBACK_PRIMARY = "#33FF99";
|
|
366
|
+
var FALLBACK_SECONDARY = "#162029";
|
|
365
367
|
function DoughnutLegendRow({
|
|
366
368
|
label,
|
|
367
369
|
color,
|
|
@@ -385,7 +387,7 @@ function DoughnutLegendRow({
|
|
|
385
387
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none truncate", children: label })
|
|
386
388
|
] }),
|
|
387
389
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2 shrink-0", children: [
|
|
388
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] font-medium leading-none", children:
|
|
390
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] font-medium leading-none", children: formatCurrencyAbbrev(value) }),
|
|
389
391
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none w-10 text-right", children: percent })
|
|
390
392
|
] })
|
|
391
393
|
] });
|
|
@@ -443,7 +445,7 @@ function PropertyDebtEquityDoughnutChart({
|
|
|
443
445
|
label: (ctx) => {
|
|
444
446
|
const val = ctx.raw;
|
|
445
447
|
const pct = estimate > 0 ? `${(val / estimate * 100).toFixed(1)}%` : "0%";
|
|
446
|
-
return ` ${ctx.label}: ${
|
|
448
|
+
return ` ${ctx.label}: ${formatCurrencyAbbrev(val)} (${pct})`;
|
|
447
449
|
}
|
|
448
450
|
}
|
|
449
451
|
}
|
|
@@ -459,7 +461,7 @@ function PropertyDebtEquityDoughnutChart({
|
|
|
459
461
|
className: cn("w-full py-4 sm:py-6 gap-2", className),
|
|
460
462
|
style: { maxWidth: width, fontFamily },
|
|
461
463
|
children: [
|
|
462
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { className: "px-3 sm:px-6", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-
|
|
464
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { className: "px-3 sm:px-6", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }) }),
|
|
463
465
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardContent, { className: "px-3 sm:px-6", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Skeleton, { style: { height, width: "100%" } }) : !hasData ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Empty, { className: "flex-none p-4", style: { height }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EmptyDescription, { children: "No data available" }) }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
464
466
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { height, width: "100%", position: "relative" }, children: [
|
|
465
467
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
@@ -484,7 +486,7 @@ function PropertyDebtEquityDoughnutChart({
|
|
|
484
486
|
pointerEvents: "none"
|
|
485
487
|
},
|
|
486
488
|
children: [
|
|
487
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "text-base font-semibold leading-tight", children:
|
|
489
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "text-base font-semibold leading-tight", children: formatCurrencyAbbrev(equity) }),
|
|
488
490
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "text-[11px] text-muted-foreground leading-none mt-1", children: "Equity" })
|
|
489
491
|
]
|
|
490
492
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PropertyDebtEquityDoughnutChart
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-ABFDMHOR.mjs";
|
|
4
4
|
import "../../chunk-D6ID6M4V.mjs";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-M3FV7LOK.mjs";
|
|
6
|
+
import "../../chunk-MN5NYQCL.mjs";
|
|
6
7
|
import "../../chunk-NQPOYKAQ.mjs";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-C7CQJNMR.mjs";
|
|
9
|
+
import "../../chunk-XREGSKX3.mjs";
|
|
9
10
|
import "../../chunk-DBHJ5KC3.mjs";
|
|
10
11
|
import "../../chunk-FEZKMUCF.mjs";
|
|
11
12
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
@@ -134,7 +134,7 @@ function CardHeader(_a) {
|
|
|
134
134
|
"div",
|
|
135
135
|
__spreadValues({
|
|
136
136
|
className: cn(
|
|
137
|
-
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-
|
|
137
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-center gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
138
138
|
className
|
|
139
139
|
),
|
|
140
140
|
"data-slot": "card-header"
|
|
@@ -298,10 +298,10 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
298
298
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
299
299
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
300
300
|
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",
|
|
301
|
-
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
301
|
+
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",
|
|
302
302
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
303
303
|
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
304
|
-
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
|
|
304
|
+
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
305
305
|
link: "text-primary underline-offset-4 hover:underline"
|
|
306
306
|
},
|
|
307
307
|
size: {
|
|
@@ -362,14 +362,8 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
|
|
|
362
362
|
);
|
|
363
363
|
});
|
|
364
364
|
|
|
365
|
-
// src/
|
|
366
|
-
|
|
367
|
-
var FALLBACK_PRIMARY = "#33FF99";
|
|
368
|
-
var FALLBACK_SECONDARY = "#162029";
|
|
369
|
-
var FALLBACK_BG = "#ffffff";
|
|
370
|
-
var FALLBACK_TICK = "#9EAAB5";
|
|
371
|
-
var FALLBACK_NEUTRAL = "#B9BCBF";
|
|
372
|
-
function formatAbbrev(value) {
|
|
365
|
+
// src/lib/format-currency.ts
|
|
366
|
+
function formatCurrencyAbbrev(value) {
|
|
373
367
|
const abs = Math.abs(value);
|
|
374
368
|
const sign = value < 0 ? "-" : "";
|
|
375
369
|
if (abs >= 1e9)
|
|
@@ -378,6 +372,14 @@ function formatAbbrev(value) {
|
|
|
378
372
|
if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(0)}K`;
|
|
379
373
|
return `${sign}$${abs.toFixed(0)}`;
|
|
380
374
|
}
|
|
375
|
+
|
|
376
|
+
// src/components/ui/chart-shared.tsx
|
|
377
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
378
|
+
var FALLBACK_PRIMARY = "#33FF99";
|
|
379
|
+
var FALLBACK_SECONDARY = "#162029";
|
|
380
|
+
var FALLBACK_BG = "#ffffff";
|
|
381
|
+
var FALLBACK_TICK = "#9EAAB5";
|
|
382
|
+
var FALLBACK_NEUTRAL = "#B9BCBF";
|
|
381
383
|
function formatTooltipDate(iso, granularity) {
|
|
382
384
|
const d = new Date(iso);
|
|
383
385
|
return d.toLocaleDateString(
|
|
@@ -591,7 +593,7 @@ function PropertyMobileEstimateLineChart({
|
|
|
591
593
|
label: (ctx) => {
|
|
592
594
|
const val = ctx.raw;
|
|
593
595
|
if (val === 0) return;
|
|
594
|
-
return ` ${ctx.dataset.label}: ${
|
|
596
|
+
return ` ${ctx.dataset.label}: ${formatCurrencyAbbrev(val)}`;
|
|
595
597
|
}
|
|
596
598
|
}
|
|
597
599
|
}
|
|
@@ -619,7 +621,7 @@ function PropertyMobileEstimateLineChart({
|
|
|
619
621
|
maxTicksLimit: 5,
|
|
620
622
|
color: FALLBACK_TICK,
|
|
621
623
|
font: { size: 10 },
|
|
622
|
-
callback: (v) =>
|
|
624
|
+
callback: (v) => formatCurrencyAbbrev(Number(v))
|
|
623
625
|
}
|
|
624
626
|
}
|
|
625
627
|
}
|
|
@@ -633,7 +635,7 @@ function PropertyMobileEstimateLineChart({
|
|
|
633
635
|
style: { maxWidth: width, fontFamily },
|
|
634
636
|
children: [
|
|
635
637
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
|
|
636
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-
|
|
638
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
|
|
637
639
|
showPeriodSelector && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardAction, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex gap-0.5 sm:gap-1", children: PROPERTY_PERIODS.map((p) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
638
640
|
ChartPeriodButton,
|
|
639
641
|
{
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PropertyMobileEstimateLineChart
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-VLARHE5V.mjs";
|
|
4
4
|
import "../../chunk-D6ID6M4V.mjs";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-M3FV7LOK.mjs";
|
|
6
|
+
import "../../chunk-MN5NYQCL.mjs";
|
|
6
7
|
import "../../chunk-NQPOYKAQ.mjs";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-C7CQJNMR.mjs";
|
|
9
|
+
import "../../chunk-XREGSKX3.mjs";
|
|
9
10
|
import "../../chunk-DBHJ5KC3.mjs";
|
|
10
11
|
import "../../chunk-FEZKMUCF.mjs";
|
|
11
12
|
import "../../chunk-QOJ2DQD6.mjs";
|