@wealthx/shadcn 1.5.9 → 1.5.11
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 +157 -157
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-AANINK2B.mjs → chunk-2KNQZG5S.mjs} +1 -1
- package/dist/chunk-3KLJ4XRE.mjs +375 -0
- package/dist/{chunk-6U4NQGVM.mjs → chunk-4X4MGYHE.mjs} +2 -2
- package/dist/{chunk-CEEVYRQA.mjs → chunk-67DGIPQ4.mjs} +1 -1
- package/dist/{chunk-7UIL5UN3.mjs → chunk-7II6QRCZ.mjs} +1 -1
- package/dist/{chunk-W5QJ57PU.mjs → chunk-7LN5OGC2.mjs} +1 -1
- package/dist/{chunk-ZXEUBBHJ.mjs → chunk-7TMPOZDE.mjs} +1 -1
- package/dist/{chunk-AHSCWXYJ.mjs → chunk-AJUAJC5O.mjs} +1 -1
- package/dist/{chunk-3CGM3QXQ.mjs → chunk-AKWN5ZQG.mjs} +2 -2
- package/dist/{chunk-FRT3S72S.mjs → chunk-CQ7HKBEX.mjs} +1 -1
- package/dist/{chunk-E2BNCA6L.mjs → chunk-EHQL64B7.mjs} +1 -1
- package/dist/{chunk-2WCIORP7.mjs → chunk-EXI64H46.mjs} +1 -1
- package/dist/{chunk-BBXSNDS3.mjs → chunk-FQYFPHDO.mjs} +1 -1
- package/dist/{chunk-3VZ6CYY2.mjs → chunk-GAXNO4JB.mjs} +1 -1
- package/dist/{chunk-3WGFIFP6.mjs → chunk-I4P7RXAE.mjs} +1 -1
- package/dist/{chunk-TAFL4WDY.mjs → chunk-IODGRCQG.mjs} +17 -10
- package/dist/{chunk-GS47ZSSA.mjs → chunk-J7KQON2N.mjs} +20 -5
- package/dist/{chunk-IQGKOT7A.mjs → chunk-K35TFQUB.mjs} +1 -1
- package/dist/{chunk-4DO3WM7V.mjs → chunk-K4VWSDJJ.mjs} +1 -1
- package/dist/{chunk-KWD6GANL.mjs → chunk-MPA2HV5U.mjs} +1 -1
- package/dist/{chunk-5LZZYODG.mjs → chunk-QHAMVWDG.mjs} +19 -1
- package/dist/{chunk-XUCDPAVI.mjs → chunk-R6U246E4.mjs} +2 -2
- package/dist/{chunk-VCDGLN25.mjs → chunk-S6AYZJYO.mjs} +47 -21
- package/dist/{chunk-WL6WVV47.mjs → chunk-X6RC5UWB.mjs} +1 -1
- package/dist/{chunk-4BHDDLWK.mjs → chunk-XAS6KBIG.mjs} +2 -2
- package/dist/{chunk-VWZS32ZQ.mjs → chunk-XYWEGBAA.mjs} +1 -1
- package/dist/{chunk-54MTIKNC.mjs → chunk-YV7XF32X.mjs} +49 -24
- package/dist/{chunk-E5EDZQ5J.mjs → chunk-ZA44WICP.mjs} +1 -1
- package/dist/{chunk-54TRNCID.mjs → chunk-ZMTCMP2G.mjs} +8 -8
- package/dist/components/ui/advisor-card.js +144 -55
- package/dist/components/ui/advisor-card.mjs +5 -2
- package/dist/components/ui/agent-evaluation-toast.js +1 -1
- package/dist/components/ui/agent-evaluation-toast.mjs +2 -2
- package/dist/components/ui/ai-assistant-drawer.js +1 -1
- package/dist/components/ui/ai-assistant-drawer.mjs +2 -2
- package/dist/components/ui/ai-builder.js +1 -1
- package/dist/components/ui/ai-builder.mjs +2 -2
- package/dist/components/ui/ai-conversations.js +1 -1
- package/dist/components/ui/ai-conversations.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.js +1 -1
- package/dist/components/ui/appointment-action-dialogs.mjs +3 -3
- package/dist/components/ui/appointment-book-dialog.js +19 -4
- package/dist/components/ui/appointment-book-dialog.mjs +3 -3
- package/dist/components/ui/appointment-calendar-view.js +17 -10
- package/dist/components/ui/appointment-calendar-view.mjs +2 -2
- package/dist/components/ui/appointment-detail-sheet.js +1 -1
- package/dist/components/ui/appointment-detail-sheet.mjs +4 -4
- package/dist/components/ui/appointment-gmail-connect.js +1 -1
- package/dist/components/ui/appointment-gmail-connect.mjs +2 -2
- package/dist/components/ui/appointment-time-slot-picker.js +1 -1
- package/dist/components/ui/appointment-time-slot-picker.mjs +2 -2
- package/dist/components/ui/appointment-upcoming-card.js +1 -1
- package/dist/components/ui/appointment-upcoming-card.mjs +3 -3
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/badge.mjs +1 -1
- package/dist/components/ui/chat-widget-primitives.js +1 -1
- package/dist/components/ui/chat-widget-primitives.mjs +2 -2
- package/dist/components/ui/chat-widget.js +1 -1
- package/dist/components/ui/chat-widget.mjs +3 -3
- package/dist/components/ui/chip.js +1 -1
- package/dist/components/ui/chip.mjs +2 -2
- package/dist/components/ui/contact-alert-dialog/index.js +19 -1
- package/dist/components/ui/contact-alert-dialog/index.mjs +1 -1
- package/dist/components/ui/dashboard-transactions-table.js +1 -1
- package/dist/components/ui/dashboard-transactions-table.mjs +2 -2
- package/dist/components/ui/financial-cards.js +1 -1
- package/dist/components/ui/financial-cards.mjs +2 -2
- package/dist/components/ui/financial-sections.js +1 -1
- package/dist/components/ui/financial-sections.mjs +3 -3
- package/dist/components/ui/income-summary-component.js +1 -1
- package/dist/components/ui/income-summary-component.mjs +1 -1
- package/dist/components/ui/integration-card.js +1 -1
- package/dist/components/ui/integration-card.mjs +2 -2
- package/dist/components/ui/kanban-column.js +46 -23
- package/dist/components/ui/kanban-column.mjs +4 -4
- package/dist/components/ui/loan-applicant-information.js +1 -1
- package/dist/components/ui/loan-applicant-information.mjs +1 -1
- package/dist/components/ui/loan-application-badge.js +1 -1
- package/dist/components/ui/loan-application-badge.mjs +2 -2
- package/dist/components/ui/opportunity-card.js +46 -23
- package/dist/components/ui/opportunity-card.mjs +3 -3
- package/dist/components/ui/opportunity-summary-tab.js +1 -1
- package/dist/components/ui/opportunity-summary-tab.mjs +3 -3
- package/dist/components/ui/pipeline-board.js +46 -23
- package/dist/components/ui/pipeline-board.mjs +5 -5
- package/dist/components/ui/pipeline-primitives.js +1 -1
- package/dist/components/ui/pipeline-primitives.mjs +2 -2
- package/dist/components/ui/property-asset-card.js +1 -1
- package/dist/components/ui/property-asset-card.mjs +1 -1
- package/dist/components/ui/resource-center.js +1 -1
- package/dist/components/ui/resource-center.mjs +2 -2
- package/dist/components/ui/share-details-dialog.js +326 -30
- package/dist/components/ui/share-details-dialog.mjs +4 -1
- package/dist/components/ui/stage-timeline.js +1 -1
- package/dist/components/ui/stage-timeline.mjs +3 -3
- package/dist/index.js +473 -197
- package/dist/index.mjs +44 -42
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/index.tsx +4 -0
- package/src/components/ui/advisor-card.tsx +75 -25
- package/src/components/ui/appointment-book-dialog.tsx +26 -3
- package/src/components/ui/appointment-calendar-view.tsx +7 -6
- package/src/components/ui/appointment-time-slot-picker.tsx +1 -0
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/contact-alert-dialog/contact-alert-dialog.tsx +19 -1
- package/src/components/ui/opportunity-card.tsx +56 -20
- package/src/components/ui/share-details-dialog.tsx +251 -0
- package/src/styles/styles-css.ts +1 -1
- package/dist/chunk-OZ2R6ERP.mjs +0 -174
package/dist/index.js
CHANGED
|
@@ -388,6 +388,7 @@ __export(index_exports, {
|
|
|
388
388
|
SelectableCard: () => SelectableCard,
|
|
389
389
|
Separator: () => Separator,
|
|
390
390
|
ServiceConfigurationModal: () => ServiceConfigurationModal,
|
|
391
|
+
ShareContactDialog: () => ShareContactDialog,
|
|
391
392
|
ShareDetailsDialog: () => ShareDetailsDialog,
|
|
392
393
|
Sheet: () => Sheet,
|
|
393
394
|
SheetClose: () => SheetClose,
|
|
@@ -845,7 +846,7 @@ Slot.displayName = "Slot";
|
|
|
845
846
|
// src/components/ui/badge.tsx
|
|
846
847
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
847
848
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
848
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
849
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
849
850
|
{
|
|
850
851
|
variants: {
|
|
851
852
|
variant: {
|
|
@@ -3654,6 +3655,7 @@ function AdvisorCard({
|
|
|
3654
3655
|
isPrimary = false,
|
|
3655
3656
|
appointments,
|
|
3656
3657
|
onRefer,
|
|
3658
|
+
menuItems,
|
|
3657
3659
|
onMoreOptions,
|
|
3658
3660
|
onBookAppointment,
|
|
3659
3661
|
onViewAppointment
|
|
@@ -3664,17 +3666,17 @@ function AdvisorCard({
|
|
|
3664
3666
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-start gap-4 p-4", children: [
|
|
3665
3667
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Avatar, { className: "h-10 w-10 shrink-0", children: [
|
|
3666
3668
|
companyLogoUrl && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AvatarImage, { src: companyLogoUrl, alt: `${name} company logo` }),
|
|
3667
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AvatarFallback, { className: "text-
|
|
3669
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AvatarFallback, { className: "text-caption", children: avatarInitials != null ? avatarInitials : companyName ? companyName.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() : name.slice(0, 2).toUpperCase() })
|
|
3668
3670
|
] }),
|
|
3669
3671
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
3670
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-
|
|
3671
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-
|
|
3672
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-label-large leading-tight", children: name }),
|
|
3673
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-body-small text-muted-foreground", children: role }),
|
|
3672
3674
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "mt-2 flex flex-col gap-1", children: [
|
|
3673
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1.5 text-
|
|
3675
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1.5 text-body-small text-muted-foreground", children: [
|
|
3674
3676
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.Phone, { className: "h-4 w-4 shrink-0" }),
|
|
3675
3677
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: phone })
|
|
3676
3678
|
] }),
|
|
3677
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1.5 text-
|
|
3679
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1.5 text-body-small text-muted-foreground", children: [
|
|
3678
3680
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.Mail, { className: "h-4 w-4 shrink-0" }),
|
|
3679
3681
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: email })
|
|
3680
3682
|
] })
|
|
@@ -3682,7 +3684,33 @@ function AdvisorCard({
|
|
|
3682
3684
|
] }),
|
|
3683
3685
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
3684
3686
|
isPrimary && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Badge, { variant: "success", children: "Primary" }),
|
|
3685
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.
|
|
3687
|
+
menuItems && menuItems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DropdownMenu, { children: [
|
|
3688
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3689
|
+
DropdownMenuTrigger,
|
|
3690
|
+
{
|
|
3691
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3692
|
+
Button,
|
|
3693
|
+
{
|
|
3694
|
+
variant: "ghost",
|
|
3695
|
+
size: "icon",
|
|
3696
|
+
className: "h-7 w-7",
|
|
3697
|
+
"aria-label": "More options"
|
|
3698
|
+
}
|
|
3699
|
+
),
|
|
3700
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.MoreVertical, { className: "h-4 w-4" })
|
|
3701
|
+
}
|
|
3702
|
+
),
|
|
3703
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DropdownMenuContent, { align: "end", children: menuItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3704
|
+
DropdownMenuItem,
|
|
3705
|
+
{
|
|
3706
|
+
variant: item.variant,
|
|
3707
|
+
disabled: item.disabled,
|
|
3708
|
+
onClick: item.onClick,
|
|
3709
|
+
children: item.label
|
|
3710
|
+
},
|
|
3711
|
+
i
|
|
3712
|
+
)) })
|
|
3713
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3686
3714
|
Button,
|
|
3687
3715
|
{
|
|
3688
3716
|
variant: "ghost",
|
|
@@ -3707,17 +3735,10 @@ function AdvisorCard({
|
|
|
3707
3735
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.CalendarCheck, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
3708
3736
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
3709
3737
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3710
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3711
|
-
|
|
3712
|
-
{
|
|
3713
|
-
variant: STATUS_VARIANT[appt.status],
|
|
3714
|
-
className: "text-[10px]",
|
|
3715
|
-
children: STATUS_LABEL[appt.status]
|
|
3716
|
-
}
|
|
3717
|
-
),
|
|
3718
|
-
appt.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "truncate text-sm font-semibold", children: appt.appointmentType })
|
|
3738
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Badge, { variant: STATUS_VARIANT[appt.status], children: STATUS_LABEL[appt.status] }),
|
|
3739
|
+
appt.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "truncate text-h6", children: appt.appointmentType })
|
|
3719
3740
|
] }),
|
|
3720
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { className: "whitespace-nowrap text-
|
|
3741
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { className: "whitespace-nowrap text-body-small text-muted-foreground", children: [
|
|
3721
3742
|
appt.date,
|
|
3722
3743
|
" \xB7 ",
|
|
3723
3744
|
appt.timeStart,
|
|
@@ -3745,7 +3766,7 @@ function AdvisorCard({
|
|
|
3745
3766
|
/* Empty state */
|
|
3746
3767
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-3 px-4 py-3", children: [
|
|
3747
3768
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.Calendar, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
3748
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "flex-1 text-
|
|
3769
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "flex-1 text-caption text-muted-foreground", children: "No upcoming appointments" })
|
|
3749
3770
|
] })
|
|
3750
3771
|
)
|
|
3751
3772
|
] }),
|
|
@@ -3764,7 +3785,7 @@ function AdvisorCard({
|
|
|
3764
3785
|
onRefer && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3765
3786
|
Button,
|
|
3766
3787
|
{
|
|
3767
|
-
variant: "
|
|
3788
|
+
variant: "default",
|
|
3768
3789
|
size: "sm",
|
|
3769
3790
|
className: "w-full",
|
|
3770
3791
|
onClick: onRefer,
|
|
@@ -3788,8 +3809,8 @@ function AdvisorInviteCard({ onInvite }) {
|
|
|
3788
3809
|
children: [
|
|
3789
3810
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex h-10 w-10 items-center justify-center border border-dashed border-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.Plus, { className: "h-5 w-5 text-muted-foreground" }) }),
|
|
3790
3811
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
3791
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-
|
|
3792
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-
|
|
3812
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-label-large", children: "Add Another Advisor" }),
|
|
3813
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-caption text-muted-foreground", children: "Connect more advisors to your account" })
|
|
3793
3814
|
] })
|
|
3794
3815
|
]
|
|
3795
3816
|
}
|
|
@@ -8904,6 +8925,19 @@ var FORMAT_OPTIONS = [
|
|
|
8904
8925
|
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.MapPin, { className: "h-4 w-4" })
|
|
8905
8926
|
}
|
|
8906
8927
|
];
|
|
8928
|
+
var CLIENT_FORMAT_OPTIONS = [
|
|
8929
|
+
{ value: "call", label: "Call", icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.Phone, { className: "h-4 w-4" }) },
|
|
8930
|
+
{
|
|
8931
|
+
value: "online",
|
|
8932
|
+
label: "Online Meeting",
|
|
8933
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.Video, { className: "h-4 w-4" })
|
|
8934
|
+
},
|
|
8935
|
+
{
|
|
8936
|
+
value: "offline",
|
|
8937
|
+
label: "Offline Meeting",
|
|
8938
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.MapPin, { className: "h-4 w-4" })
|
|
8939
|
+
}
|
|
8940
|
+
];
|
|
8907
8941
|
function MeetingFormatSection({
|
|
8908
8942
|
format: format5,
|
|
8909
8943
|
onFormatChange,
|
|
@@ -8913,10 +8947,11 @@ function MeetingFormatSection({
|
|
|
8913
8947
|
onCustomAddressChange,
|
|
8914
8948
|
advisorOfficeAddress,
|
|
8915
8949
|
clientHomeAddress,
|
|
8916
|
-
isClientMode
|
|
8950
|
+
isClientMode,
|
|
8951
|
+
formatOptions
|
|
8917
8952
|
}) {
|
|
8918
8953
|
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
8919
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex gap-2", children:
|
|
8954
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex gap-2", children: formatOptions.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
8920
8955
|
Toggle,
|
|
8921
8956
|
{
|
|
8922
8957
|
variant: "outline",
|
|
@@ -9209,7 +9244,8 @@ function AppointmentBookDialog({
|
|
|
9209
9244
|
onCustomAddressChange: setCustomAddress,
|
|
9210
9245
|
advisorOfficeAddress,
|
|
9211
9246
|
clientHomeAddress,
|
|
9212
|
-
isClientMode
|
|
9247
|
+
isClientMode,
|
|
9248
|
+
formatOptions: isClientMode ? CLIENT_FORMAT_OPTIONS : FORMAT_OPTIONS
|
|
9213
9249
|
}
|
|
9214
9250
|
)
|
|
9215
9251
|
] }),
|
|
@@ -9716,7 +9752,7 @@ function AppointmentCalendarView({
|
|
|
9716
9752
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsTrigger, { value: "week", children: "Week" }),
|
|
9717
9753
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsTrigger, { value: "month", children: "Month" })
|
|
9718
9754
|
] }) }),
|
|
9719
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsContent, { value: "day", className: "mt-0", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9755
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsContent, { value: "day", className: "mt-0 max-h-[75vh] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9720
9756
|
DayView,
|
|
9721
9757
|
{
|
|
9722
9758
|
appointments,
|
|
@@ -9726,7 +9762,7 @@ function AppointmentCalendarView({
|
|
|
9726
9762
|
onSelectAppointment
|
|
9727
9763
|
}
|
|
9728
9764
|
) }),
|
|
9729
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsContent, { value: "week", className: "mt-0", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9765
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabsContent, { value: "week", className: "mt-0 max-h-[75vh] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9730
9766
|
WeekView,
|
|
9731
9767
|
{
|
|
9732
9768
|
appointments,
|
|
@@ -9736,15 +9772,22 @@ function AppointmentCalendarView({
|
|
|
9736
9772
|
onSelectAppointment
|
|
9737
9773
|
}
|
|
9738
9774
|
) }),
|
|
9739
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9740
|
-
|
|
9775
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9776
|
+
TabsContent,
|
|
9741
9777
|
{
|
|
9742
|
-
|
|
9743
|
-
|
|
9744
|
-
|
|
9745
|
-
|
|
9778
|
+
value: "month",
|
|
9779
|
+
className: "mt-0 max-h-[75vh] overflow-y-auto",
|
|
9780
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9781
|
+
MonthView,
|
|
9782
|
+
{
|
|
9783
|
+
appointments,
|
|
9784
|
+
viewDate: effectiveViewDate,
|
|
9785
|
+
today,
|
|
9786
|
+
onSelectAppointment
|
|
9787
|
+
}
|
|
9788
|
+
)
|
|
9746
9789
|
}
|
|
9747
|
-
)
|
|
9790
|
+
)
|
|
9748
9791
|
]
|
|
9749
9792
|
}
|
|
9750
9793
|
)
|
|
@@ -14110,6 +14153,7 @@ function ReviewAlertsDialog({
|
|
|
14110
14153
|
|
|
14111
14154
|
// src/components/ui/contact-alert-dialog/contact-alert-dialog.tsx
|
|
14112
14155
|
var React33 = __toESM(require("react"));
|
|
14156
|
+
var import_lucide_react42 = require("lucide-react");
|
|
14113
14157
|
var import_ui4 = require("@react-awesome-query-builder/ui");
|
|
14114
14158
|
|
|
14115
14159
|
// src/components/ui/contact-alert-dialog/types.ts
|
|
@@ -15057,7 +15101,24 @@ function ContactAlertDialog({
|
|
|
15057
15101
|
size: "sm",
|
|
15058
15102
|
value: severity,
|
|
15059
15103
|
onValueChange: (v) => v && setSeverity(v),
|
|
15060
|
-
children: ["NEED_ACTION", "WATCH", "HEALTHY"].map((s) => /* @__PURE__ */ (0, import_jsx_runtime77.
|
|
15104
|
+
children: ["NEED_ACTION", "WATCH", "HEALTHY"].map((s) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
15105
|
+
ToggleGroupItem,
|
|
15106
|
+
{
|
|
15107
|
+
value: s,
|
|
15108
|
+
className: cn(
|
|
15109
|
+
s === "NEED_ACTION" && "data-pressed:bg-destructive/10 data-pressed:inset-ring-destructive data-pressed:text-destructive-text data-pressed:hover:bg-destructive/10",
|
|
15110
|
+
s === "WATCH" && "data-pressed:bg-warning/10 data-pressed:inset-ring-warning data-pressed:text-warning-text data-pressed:hover:bg-warning/10",
|
|
15111
|
+
s === "HEALTHY" && "data-pressed:bg-info/10 data-pressed:inset-ring-info data-pressed:text-info-text data-pressed:hover:bg-info/10"
|
|
15112
|
+
),
|
|
15113
|
+
children: [
|
|
15114
|
+
s === "NEED_ACTION" && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react42.AlertCircleIcon, { className: "size-3.5" }),
|
|
15115
|
+
s === "WATCH" && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react42.EyeIcon, { className: "size-3.5" }),
|
|
15116
|
+
s === "HEALTHY" && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react42.InfoIcon, { className: "size-3.5" }),
|
|
15117
|
+
SEVERITY_LABELS[s]
|
|
15118
|
+
]
|
|
15119
|
+
},
|
|
15120
|
+
s
|
|
15121
|
+
))
|
|
15061
15122
|
}
|
|
15062
15123
|
)
|
|
15063
15124
|
] }),
|
|
@@ -15111,7 +15172,7 @@ function ContactAlertDialog({
|
|
|
15111
15172
|
|
|
15112
15173
|
// src/components/ui/share-details-dialog.tsx
|
|
15113
15174
|
var React34 = __toESM(require("react"));
|
|
15114
|
-
var
|
|
15175
|
+
var import_lucide_react43 = require("lucide-react");
|
|
15115
15176
|
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
15116
15177
|
function Field3({
|
|
15117
15178
|
id,
|
|
@@ -15170,7 +15231,7 @@ function ShareDetailsDialog({
|
|
|
15170
15231
|
onClick: handleCopy,
|
|
15171
15232
|
"aria-label": copied ? "Copied" : "Copy link",
|
|
15172
15233
|
className: "shrink-0",
|
|
15173
|
-
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15234
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react43.CheckIcon, { className: "size-4 text-success" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react43.CopyIcon, { className: "size-4" })
|
|
15174
15235
|
}
|
|
15175
15236
|
)
|
|
15176
15237
|
] }),
|
|
@@ -15255,10 +15316,201 @@ function EmailTemplateDialog({
|
|
|
15255
15316
|
] })
|
|
15256
15317
|
] }) });
|
|
15257
15318
|
}
|
|
15319
|
+
function ShareContactDialog({
|
|
15320
|
+
open,
|
|
15321
|
+
onOpenChange,
|
|
15322
|
+
contactName,
|
|
15323
|
+
internalAdvisors,
|
|
15324
|
+
onShareInternal,
|
|
15325
|
+
onShareExternal,
|
|
15326
|
+
isSending = false,
|
|
15327
|
+
className
|
|
15328
|
+
}) {
|
|
15329
|
+
const [tab, setTab] = React34.useState("internal");
|
|
15330
|
+
const [search, setSearch] = React34.useState("");
|
|
15331
|
+
const [selectedId, setSelectedId] = React34.useState(null);
|
|
15332
|
+
const [internalNotes, setInternalNotes] = React34.useState("");
|
|
15333
|
+
const [firstName, setFirstName] = React34.useState("");
|
|
15334
|
+
const [lastName, setLastName] = React34.useState("");
|
|
15335
|
+
const [email, setEmail] = React34.useState("");
|
|
15336
|
+
const [externalNotes, setExternalNotes] = React34.useState("");
|
|
15337
|
+
function reset() {
|
|
15338
|
+
setTab("internal");
|
|
15339
|
+
setSearch("");
|
|
15340
|
+
setSelectedId(null);
|
|
15341
|
+
setInternalNotes("");
|
|
15342
|
+
setFirstName("");
|
|
15343
|
+
setLastName("");
|
|
15344
|
+
setEmail("");
|
|
15345
|
+
setExternalNotes("");
|
|
15346
|
+
}
|
|
15347
|
+
function handleOpenChange(v) {
|
|
15348
|
+
if (!v) reset();
|
|
15349
|
+
onOpenChange(v);
|
|
15350
|
+
}
|
|
15351
|
+
const filtered = internalAdvisors.filter((a) => {
|
|
15352
|
+
const q = search.toLowerCase();
|
|
15353
|
+
return a.name.toLowerCase().includes(q) || a.role.toLowerCase().includes(q);
|
|
15354
|
+
});
|
|
15355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Dialog, { open, onOpenChange: isSending ? void 0 : handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(DialogContent, { size: "md", className, children: [
|
|
15356
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DialogHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DialogTitle, { children: "Share Contact's Information" }) }),
|
|
15357
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
|
|
15358
|
+
"Share",
|
|
15359
|
+
" ",
|
|
15360
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-medium text-foreground", children: contactName }),
|
|
15361
|
+
"'s information with an advisor."
|
|
15362
|
+
] }),
|
|
15363
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(Tabs, { value: tab, onValueChange: setTab, children: [
|
|
15364
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(TabsList, { className: "w-full", children: [
|
|
15365
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TabsTrigger, { value: "internal", className: "flex-1", children: "Internal Advisor" }),
|
|
15366
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TabsTrigger, { value: "external", className: "flex-1", children: "External / Referral" })
|
|
15367
|
+
] }),
|
|
15368
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(TabsContent, { value: "internal", className: "mt-4 flex flex-col gap-4", children: [
|
|
15369
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { label: "Search Advisor", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15370
|
+
Input,
|
|
15371
|
+
{
|
|
15372
|
+
placeholder: "Search by name or role\u2026",
|
|
15373
|
+
value: search,
|
|
15374
|
+
onChange: (e) => setSearch(e.target.value)
|
|
15375
|
+
}
|
|
15376
|
+
) }),
|
|
15377
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "max-h-[200px] overflow-y-auto border border-border divide-y divide-border", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: "No advisors found." }) : filtered.map((a) => {
|
|
15378
|
+
const isSelected = selectedId === a.id;
|
|
15379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
15380
|
+
"button",
|
|
15381
|
+
{
|
|
15382
|
+
type: "button",
|
|
15383
|
+
onClick: () => setSelectedId(a.id),
|
|
15384
|
+
className: cn(
|
|
15385
|
+
"flex w-full items-center gap-3 px-3 py-2.5 text-left transition-colors hover:bg-muted/40",
|
|
15386
|
+
isSelected && "bg-primary/5"
|
|
15387
|
+
),
|
|
15388
|
+
children: [
|
|
15389
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15390
|
+
"div",
|
|
15391
|
+
{
|
|
15392
|
+
className: cn(
|
|
15393
|
+
"flex size-4 shrink-0 items-center justify-center rounded-full border-2",
|
|
15394
|
+
isSelected ? "border-primary" : "border-border bg-background"
|
|
15395
|
+
),
|
|
15396
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "size-2 rounded-full bg-primary" })
|
|
15397
|
+
}
|
|
15398
|
+
),
|
|
15399
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
|
|
15400
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-sm font-medium", children: a.name }),
|
|
15401
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
|
|
15402
|
+
a.role,
|
|
15403
|
+
" \xB7 ",
|
|
15404
|
+
a.practice
|
|
15405
|
+
] })
|
|
15406
|
+
] })
|
|
15407
|
+
]
|
|
15408
|
+
},
|
|
15409
|
+
a.id
|
|
15410
|
+
);
|
|
15411
|
+
}) }),
|
|
15412
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { id: "sc-int-notes", label: "Notes", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15413
|
+
Textarea,
|
|
15414
|
+
{
|
|
15415
|
+
id: "sc-int-notes",
|
|
15416
|
+
placeholder: "Optional message for the advisor\u2026",
|
|
15417
|
+
rows: 3,
|
|
15418
|
+
value: internalNotes,
|
|
15419
|
+
onChange: (e) => setInternalNotes(e.target.value),
|
|
15420
|
+
disabled: isSending
|
|
15421
|
+
}
|
|
15422
|
+
) })
|
|
15423
|
+
] }),
|
|
15424
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(TabsContent, { value: "external", className: "mt-4 flex flex-col gap-4", children: [
|
|
15425
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
15426
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { id: "sc-first", label: "First Name", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15427
|
+
Input,
|
|
15428
|
+
{
|
|
15429
|
+
id: "sc-first",
|
|
15430
|
+
placeholder: "First name",
|
|
15431
|
+
value: firstName,
|
|
15432
|
+
onChange: (e) => setFirstName(e.target.value),
|
|
15433
|
+
disabled: isSending
|
|
15434
|
+
}
|
|
15435
|
+
) }),
|
|
15436
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { id: "sc-last", label: "Last Name", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15437
|
+
Input,
|
|
15438
|
+
{
|
|
15439
|
+
id: "sc-last",
|
|
15440
|
+
placeholder: "Last name",
|
|
15441
|
+
value: lastName,
|
|
15442
|
+
onChange: (e) => setLastName(e.target.value),
|
|
15443
|
+
disabled: isSending
|
|
15444
|
+
}
|
|
15445
|
+
) })
|
|
15446
|
+
] }),
|
|
15447
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { id: "sc-email", label: "Email", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15448
|
+
Input,
|
|
15449
|
+
{
|
|
15450
|
+
id: "sc-email",
|
|
15451
|
+
type: "email",
|
|
15452
|
+
placeholder: "advisor@company.com.au",
|
|
15453
|
+
value: email,
|
|
15454
|
+
onChange: (e) => setEmail(e.target.value),
|
|
15455
|
+
disabled: isSending
|
|
15456
|
+
}
|
|
15457
|
+
) }),
|
|
15458
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field3, { id: "sc-ext-notes", label: "Notes", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15459
|
+
Textarea,
|
|
15460
|
+
{
|
|
15461
|
+
id: "sc-ext-notes",
|
|
15462
|
+
placeholder: "Optional message\u2026",
|
|
15463
|
+
rows: 3,
|
|
15464
|
+
value: externalNotes,
|
|
15465
|
+
onChange: (e) => setExternalNotes(e.target.value),
|
|
15466
|
+
disabled: isSending
|
|
15467
|
+
}
|
|
15468
|
+
) })
|
|
15469
|
+
] })
|
|
15470
|
+
] }),
|
|
15471
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(DialogFooter, { children: [
|
|
15472
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15473
|
+
Button,
|
|
15474
|
+
{
|
|
15475
|
+
variant: "outline",
|
|
15476
|
+
onClick: () => handleOpenChange(false),
|
|
15477
|
+
disabled: isSending,
|
|
15478
|
+
children: "Cancel"
|
|
15479
|
+
}
|
|
15480
|
+
),
|
|
15481
|
+
tab === "internal" ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15482
|
+
Button,
|
|
15483
|
+
{
|
|
15484
|
+
onClick: () => onShareInternal(selectedId, internalNotes),
|
|
15485
|
+
disabled: !selectedId || isSending,
|
|
15486
|
+
children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
15487
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Spinner, { className: "size-3.5" }),
|
|
15488
|
+
"Sharing\u2026"
|
|
15489
|
+
] }) : "Share Contact"
|
|
15490
|
+
}
|
|
15491
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
15492
|
+
Button,
|
|
15493
|
+
{
|
|
15494
|
+
onClick: () => onShareExternal({
|
|
15495
|
+
firstName,
|
|
15496
|
+
lastName,
|
|
15497
|
+
email,
|
|
15498
|
+
notes: externalNotes
|
|
15499
|
+
}),
|
|
15500
|
+
disabled: !email || isSending,
|
|
15501
|
+
children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
15502
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Spinner, { className: "size-3.5" }),
|
|
15503
|
+
"Sending\u2026"
|
|
15504
|
+
] }) : "Send Invite"
|
|
15505
|
+
}
|
|
15506
|
+
)
|
|
15507
|
+
] })
|
|
15508
|
+
] }) });
|
|
15509
|
+
}
|
|
15258
15510
|
|
|
15259
15511
|
// src/components/ui/file-preview-dialog.tsx
|
|
15260
15512
|
var React35 = __toESM(require("react"));
|
|
15261
|
-
var
|
|
15513
|
+
var import_lucide_react44 = require("lucide-react");
|
|
15262
15514
|
|
|
15263
15515
|
// src/components/ui/progress.tsx
|
|
15264
15516
|
var import_progress = require("@base-ui/react/progress");
|
|
@@ -15303,14 +15555,14 @@ function LoadingState({ columnCount }) {
|
|
|
15303
15555
|
}
|
|
15304
15556
|
function EmptyState() {
|
|
15305
15557
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-3 py-12 text-center", children: [
|
|
15306
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15558
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react44.FileTextIcon, { className: "size-10 text-muted-foreground/40" }),
|
|
15307
15559
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-medium text-foreground", children: "No data found" }),
|
|
15308
15560
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xs text-muted-foreground", children: "The CSV file appears to be empty or contains only headers." })
|
|
15309
15561
|
] });
|
|
15310
15562
|
}
|
|
15311
15563
|
function ErrorState({ message }) {
|
|
15312
15564
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-3 py-12 text-center", children: [
|
|
15313
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15565
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react44.AlertCircleIcon, { className: "size-10 text-destructive/60" }),
|
|
15314
15566
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-medium text-foreground", children: "Unable to parse file" }),
|
|
15315
15567
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xs text-muted-foreground", children: message != null ? message : "The file could not be read. Please check the format and try again." })
|
|
15316
15568
|
] });
|
|
@@ -15343,11 +15595,11 @@ function ImportingState({
|
|
|
15343
15595
|
function RowStatusCell({ row }) {
|
|
15344
15596
|
const { _status, _statusMessage } = row;
|
|
15345
15597
|
if (_status === "success") {
|
|
15346
|
-
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-center h-full px-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-center h-full px-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react44.CheckCircle2Icon, { className: "size-4 text-success" }) });
|
|
15347
15599
|
}
|
|
15348
15600
|
if (_status === "failed") {
|
|
15349
15601
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(Tooltip, { children: [
|
|
15350
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-center h-full px-2 cursor-default", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15602
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-center h-full px-2 cursor-default", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react44.CircleAlertIcon, { className: "size-4 text-destructive" }) }) }),
|
|
15351
15603
|
_statusMessage && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TooltipContent, { side: "top", children: _statusMessage })
|
|
15352
15604
|
] }) });
|
|
15353
15605
|
}
|
|
@@ -15486,7 +15738,7 @@ function FilePreviewDialog({
|
|
|
15486
15738
|
"aria-label": `Delete row ${absoluteIdx + 1}`,
|
|
15487
15739
|
onClick: () => onRowDelete(absoluteIdx),
|
|
15488
15740
|
className: "text-muted-foreground hover:text-destructive",
|
|
15489
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15741
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react44.Trash2Icon, { className: "size-3.5" })
|
|
15490
15742
|
}
|
|
15491
15743
|
) })
|
|
15492
15744
|
]
|
|
@@ -15543,7 +15795,7 @@ function FilePreviewDialog({
|
|
|
15543
15795
|
// src/components/ui/data-table.tsx
|
|
15544
15796
|
var React36 = __toESM(require("react"));
|
|
15545
15797
|
var import_react_table = require("@tanstack/react-table");
|
|
15546
|
-
var
|
|
15798
|
+
var import_lucide_react45 = require("lucide-react");
|
|
15547
15799
|
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
15548
15800
|
function DataTableColumnHeader({
|
|
15549
15801
|
column,
|
|
@@ -15556,11 +15808,11 @@ function DataTableColumnHeader({
|
|
|
15556
15808
|
const sorted = column.getIsSorted();
|
|
15557
15809
|
let sortIcon;
|
|
15558
15810
|
if (sorted === "asc") {
|
|
15559
|
-
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
15811
|
+
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react45.ArrowUp, { className: "ml-1 size-3.5" });
|
|
15560
15812
|
} else if (sorted === "desc") {
|
|
15561
|
-
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
15813
|
+
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react45.ArrowDown, { className: "ml-1 size-3.5" });
|
|
15562
15814
|
} else {
|
|
15563
|
-
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
15815
|
+
sortIcon = /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react45.ArrowUpDown, { className: "ml-1 size-3.5" });
|
|
15564
15816
|
}
|
|
15565
15817
|
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
15566
15818
|
Button,
|
|
@@ -15647,7 +15899,7 @@ function DataTableToolbar({
|
|
|
15647
15899
|
}
|
|
15648
15900
|
),
|
|
15649
15901
|
children: [
|
|
15650
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
15902
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react45.SlidersHorizontal, { className: "size-3.5" }),
|
|
15651
15903
|
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "hidden sm:inline", children: "Columns" })
|
|
15652
15904
|
]
|
|
15653
15905
|
}
|
|
@@ -15884,13 +16136,13 @@ function DataTable({
|
|
|
15884
16136
|
|
|
15885
16137
|
// src/components/ui/applicant-document-checklist.tsx
|
|
15886
16138
|
var React37 = __toESM(require("react"));
|
|
15887
|
-
var
|
|
16139
|
+
var import_lucide_react46 = require("lucide-react");
|
|
15888
16140
|
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
15889
16141
|
function StatusIcon({ status }) {
|
|
15890
16142
|
if (status === "uploaded") {
|
|
15891
|
-
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
16143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react46.CheckCircle2, { className: "size-5 shrink-0 text-primary" });
|
|
15892
16144
|
}
|
|
15893
|
-
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
16145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react46.Circle, { className: "size-5 shrink-0 text-muted-foreground" });
|
|
15894
16146
|
}
|
|
15895
16147
|
function ApplicantDocumentChecklist({
|
|
15896
16148
|
applicantName,
|
|
@@ -15972,7 +16224,7 @@ function ApplicantDocumentChecklist({
|
|
|
15972
16224
|
return (_a = inputRefs.current[item.id]) == null ? void 0 : _a.click();
|
|
15973
16225
|
},
|
|
15974
16226
|
children: [
|
|
15975
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
16227
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react46.Upload, { className: "size-3.5" }),
|
|
15976
16228
|
"Upload"
|
|
15977
16229
|
]
|
|
15978
16230
|
}
|
|
@@ -15997,7 +16249,7 @@ function ApplicantDocumentChecklist({
|
|
|
15997
16249
|
|
|
15998
16250
|
// src/components/ui/document-checklist-template.tsx
|
|
15999
16251
|
var import_react27 = require("react");
|
|
16000
|
-
var
|
|
16252
|
+
var import_lucide_react47 = require("lucide-react");
|
|
16001
16253
|
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
16002
16254
|
var DOCUMENT_TYPES = [
|
|
16003
16255
|
"Income Verification",
|
|
@@ -16096,7 +16348,7 @@ function DocumentChecklistTemplate({
|
|
|
16096
16348
|
{
|
|
16097
16349
|
className: cn("grid items-center gap-3 px-6 py-3", COLS),
|
|
16098
16350
|
children: [
|
|
16099
|
-
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
16351
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react47.GripVertical, { className: "size-4 shrink-0 text-muted-foreground/30" }),
|
|
16100
16352
|
cat.custom ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
16101
16353
|
Input,
|
|
16102
16354
|
{
|
|
@@ -16143,7 +16395,7 @@ function DocumentChecklistTemplate({
|
|
|
16143
16395
|
size: "icon",
|
|
16144
16396
|
className: "size-8 text-muted-foreground hover:text-destructive",
|
|
16145
16397
|
onClick: () => handleDelete(cat.id),
|
|
16146
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
16398
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react47.Trash2, { className: "size-4" })
|
|
16147
16399
|
}
|
|
16148
16400
|
)
|
|
16149
16401
|
]
|
|
@@ -16158,7 +16410,7 @@ function DocumentChecklistTemplate({
|
|
|
16158
16410
|
className: "gap-1.5",
|
|
16159
16411
|
onClick: handleAdd,
|
|
16160
16412
|
children: [
|
|
16161
|
-
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
16413
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react47.Plus, { className: "size-4" }),
|
|
16162
16414
|
"Add Category"
|
|
16163
16415
|
]
|
|
16164
16416
|
}
|
|
@@ -16494,7 +16746,7 @@ function ExpenseBarChart({
|
|
|
16494
16746
|
|
|
16495
16747
|
// src/components/ui/financial-cards.tsx
|
|
16496
16748
|
var React39 = __toESM(require("react"));
|
|
16497
|
-
var
|
|
16749
|
+
var import_lucide_react48 = require("lucide-react");
|
|
16498
16750
|
|
|
16499
16751
|
// src/components/ui/financial-primitives.tsx
|
|
16500
16752
|
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
@@ -16677,7 +16929,7 @@ function PropertyCard({
|
|
|
16677
16929
|
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "flex-1 min-w-0 truncate text-label-medium text-foreground", children: address }),
|
|
16678
16930
|
type && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Badge, { className: "shrink-0", variant: "outline", children: type }),
|
|
16679
16931
|
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
16680
|
-
|
|
16932
|
+
import_lucide_react48.ChevronDown,
|
|
16681
16933
|
{
|
|
16682
16934
|
className: cn(
|
|
16683
16935
|
"h-5 w-5 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
@@ -17319,35 +17571,35 @@ function IncomeCard({
|
|
|
17319
17571
|
);
|
|
17320
17572
|
}
|
|
17321
17573
|
var EXPENSE_ICON_MAP = {
|
|
17322
|
-
groceries:
|
|
17323
|
-
"dining out":
|
|
17324
|
-
dining:
|
|
17325
|
-
restaurants:
|
|
17326
|
-
transport:
|
|
17327
|
-
transportation:
|
|
17328
|
-
vehicle:
|
|
17329
|
-
utilities:
|
|
17330
|
-
electricity:
|
|
17331
|
-
insurance:
|
|
17332
|
-
"council rates":
|
|
17333
|
-
council:
|
|
17334
|
-
rates:
|
|
17335
|
-
medical:
|
|
17336
|
-
health:
|
|
17337
|
-
subscriptions:
|
|
17338
|
-
subscription:
|
|
17339
|
-
"credit card":
|
|
17340
|
-
education:
|
|
17341
|
-
childcare:
|
|
17342
|
-
entertainment:
|
|
17343
|
-
gym:
|
|
17344
|
-
fitness:
|
|
17345
|
-
clothing:
|
|
17346
|
-
rent:
|
|
17574
|
+
groceries: import_lucide_react48.ShoppingCart,
|
|
17575
|
+
"dining out": import_lucide_react48.UtensilsCrossed,
|
|
17576
|
+
dining: import_lucide_react48.UtensilsCrossed,
|
|
17577
|
+
restaurants: import_lucide_react48.UtensilsCrossed,
|
|
17578
|
+
transport: import_lucide_react48.Car,
|
|
17579
|
+
transportation: import_lucide_react48.Car,
|
|
17580
|
+
vehicle: import_lucide_react48.Car,
|
|
17581
|
+
utilities: import_lucide_react48.Zap,
|
|
17582
|
+
electricity: import_lucide_react48.Zap,
|
|
17583
|
+
insurance: import_lucide_react48.Shield,
|
|
17584
|
+
"council rates": import_lucide_react48.Landmark,
|
|
17585
|
+
council: import_lucide_react48.Landmark,
|
|
17586
|
+
rates: import_lucide_react48.Landmark,
|
|
17587
|
+
medical: import_lucide_react48.HeartPulse,
|
|
17588
|
+
health: import_lucide_react48.HeartPulse,
|
|
17589
|
+
subscriptions: import_lucide_react48.RefreshCw,
|
|
17590
|
+
subscription: import_lucide_react48.RefreshCw,
|
|
17591
|
+
"credit card": import_lucide_react48.CreditCard,
|
|
17592
|
+
education: import_lucide_react48.GraduationCap,
|
|
17593
|
+
childcare: import_lucide_react48.Baby,
|
|
17594
|
+
entertainment: import_lucide_react48.Tv,
|
|
17595
|
+
gym: import_lucide_react48.Dumbbell,
|
|
17596
|
+
fitness: import_lucide_react48.Dumbbell,
|
|
17597
|
+
clothing: import_lucide_react48.Shirt,
|
|
17598
|
+
rent: import_lucide_react48.Building2
|
|
17347
17599
|
};
|
|
17348
17600
|
function getExpenseIcon(expenseType) {
|
|
17349
17601
|
var _a;
|
|
17350
|
-
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a :
|
|
17602
|
+
return (_a = EXPENSE_ICON_MAP[expenseType.toLowerCase()]) != null ? _a : import_lucide_react48.Receipt;
|
|
17351
17603
|
}
|
|
17352
17604
|
function ExpensesCard({
|
|
17353
17605
|
items,
|
|
@@ -17398,7 +17650,7 @@ function ExpensesCard({
|
|
|
17398
17650
|
}
|
|
17399
17651
|
|
|
17400
17652
|
// src/components/ui/financial-drawers.tsx
|
|
17401
|
-
var
|
|
17653
|
+
var import_lucide_react49 = require("lucide-react");
|
|
17402
17654
|
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
17403
17655
|
function SummaryReportDrawer({
|
|
17404
17656
|
open,
|
|
@@ -17480,7 +17732,7 @@ function SummaryReportDrawer({
|
|
|
17480
17732
|
size: "icon-sm",
|
|
17481
17733
|
onClick: () => onOpenChange(false),
|
|
17482
17734
|
"aria-label": "Close drawer",
|
|
17483
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
|
|
17735
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_lucide_react49.X, { className: "h-4 w-4" })
|
|
17484
17736
|
}
|
|
17485
17737
|
)
|
|
17486
17738
|
] }),
|
|
@@ -17557,7 +17809,7 @@ function OpportunityDetailsDrawer({
|
|
|
17557
17809
|
size: "icon-sm",
|
|
17558
17810
|
onClick: () => onOpenChange(false),
|
|
17559
17811
|
"aria-label": "Close drawer",
|
|
17560
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
|
|
17812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_lucide_react49.X, { className: "h-4 w-4" })
|
|
17561
17813
|
}
|
|
17562
17814
|
) })
|
|
17563
17815
|
] }),
|
|
@@ -18133,7 +18385,7 @@ function IncomeBarChart({
|
|
|
18133
18385
|
// src/components/ui/input-otp.tsx
|
|
18134
18386
|
var React42 = __toESM(require("react"));
|
|
18135
18387
|
var import_input_otp = require("input-otp");
|
|
18136
|
-
var
|
|
18388
|
+
var import_lucide_react50 = require("lucide-react");
|
|
18137
18389
|
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
18138
18390
|
function InputOTP(_a) {
|
|
18139
18391
|
var _b = _a, {
|
|
@@ -18199,11 +18451,11 @@ function InputOTPSlot(_a) {
|
|
|
18199
18451
|
}
|
|
18200
18452
|
function InputOTPSeparator(_a) {
|
|
18201
18453
|
var props = __objRest(_a, []);
|
|
18202
|
-
return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
18454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_lucide_react50.MinusIcon, {}) }));
|
|
18203
18455
|
}
|
|
18204
18456
|
|
|
18205
18457
|
// src/components/ui/integration-card.tsx
|
|
18206
|
-
var
|
|
18458
|
+
var import_lucide_react51 = require("lucide-react");
|
|
18207
18459
|
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
18208
18460
|
function IntegrationCard({
|
|
18209
18461
|
name,
|
|
@@ -18237,7 +18489,7 @@ function IntegrationCard({
|
|
|
18237
18489
|
) : /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: "flex h-9 w-9 items-center justify-center", children: logoFallback }) }),
|
|
18238
18490
|
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-label-medium", children: name }),
|
|
18239
18491
|
connected && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Badge, { variant: "success", className: "gap-1", children: [
|
|
18240
|
-
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
18492
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.Check, { className: "h-3 w-3" }),
|
|
18241
18493
|
"Connected"
|
|
18242
18494
|
] })
|
|
18243
18495
|
] }),
|
|
@@ -18276,11 +18528,11 @@ function SelectableCard({
|
|
|
18276
18528
|
|
|
18277
18529
|
// src/components/ui/kanban-column.tsx
|
|
18278
18530
|
var React43 = __toESM(require("react"));
|
|
18279
|
-
var
|
|
18531
|
+
var import_lucide_react53 = require("lucide-react");
|
|
18280
18532
|
|
|
18281
18533
|
// src/components/ui/opportunity-card.tsx
|
|
18282
18534
|
var import_react31 = require("react");
|
|
18283
|
-
var
|
|
18535
|
+
var import_lucide_react52 = require("lucide-react");
|
|
18284
18536
|
|
|
18285
18537
|
// src/components/ui/pipeline-primitives.tsx
|
|
18286
18538
|
var import_jsx_runtime94 = require("react/jsx-runtime");
|
|
@@ -18440,7 +18692,7 @@ function TaskViewCard({
|
|
|
18440
18692
|
className: "flex items-center gap-1.5 text-sm font-semibold",
|
|
18441
18693
|
style: { color: "var(--color-success-text)" },
|
|
18442
18694
|
children: [
|
|
18443
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18695
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Check, { className: "size-3.5 shrink-0" }),
|
|
18444
18696
|
"All tasks complete"
|
|
18445
18697
|
]
|
|
18446
18698
|
}
|
|
@@ -18510,7 +18762,7 @@ function TaskViewCard({
|
|
|
18510
18762
|
className: "flex w-full items-center justify-between text-xs text-muted-foreground hover:text-foreground",
|
|
18511
18763
|
children: [
|
|
18512
18764
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
18513
|
-
subtasksExpanded ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18765
|
+
subtasksExpanded ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.ChevronDown, { className: "size-3" }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.ChevronRight, { className: "size-3" }),
|
|
18514
18766
|
"Subtasks"
|
|
18515
18767
|
] }),
|
|
18516
18768
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { children: [
|
|
@@ -18549,7 +18801,7 @@ function TaskViewCard({
|
|
|
18549
18801
|
"size-7 shrink-0"
|
|
18550
18802
|
),
|
|
18551
18803
|
"aria-label": "Opportunity actions",
|
|
18552
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18804
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.MoreVertical, { className: "size-4" })
|
|
18553
18805
|
}
|
|
18554
18806
|
),
|
|
18555
18807
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
@@ -18696,7 +18948,7 @@ function OpportunityCard({
|
|
|
18696
18948
|
className: "flex items-center gap-1.5 rounded border border-warning/30 bg-warning/10 px-2 py-1 text-xs font-medium",
|
|
18697
18949
|
style: { color: "var(--color-warning-text)" },
|
|
18698
18950
|
children: [
|
|
18699
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18951
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Clock, { className: "size-3 shrink-0" }),
|
|
18700
18952
|
"On hold until ",
|
|
18701
18953
|
formatDateDayMonth(onHoldTo)
|
|
18702
18954
|
]
|
|
@@ -18724,7 +18976,7 @@ function OpportunityCard({
|
|
|
18724
18976
|
"size-7 shrink-0"
|
|
18725
18977
|
),
|
|
18726
18978
|
"aria-label": "Opportunity actions",
|
|
18727
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18979
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.MoreVertical, { className: "size-4" })
|
|
18728
18980
|
}
|
|
18729
18981
|
),
|
|
18730
18982
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
@@ -18743,32 +18995,32 @@ function OpportunityCard({
|
|
|
18743
18995
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
18744
18996
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: customerName }),
|
|
18745
18997
|
additionalContacts && additionalContacts > 0 ? /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
|
|
18746
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18998
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Users, { className: "size-3", "aria-hidden": "true" }),
|
|
18747
18999
|
"Joint"
|
|
18748
19000
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
|
|
18749
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19001
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.User, { className: "size-3", "aria-hidden": "true" }),
|
|
18750
19002
|
"Individual"
|
|
18751
19003
|
] })
|
|
18752
19004
|
] }),
|
|
18753
19005
|
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
18754
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19006
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
18755
19007
|
customerPhone
|
|
18756
19008
|
] }),
|
|
18757
19009
|
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
18758
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19010
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
18759
19011
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "truncate", children: customerEmail })
|
|
18760
19012
|
] })
|
|
18761
19013
|
] }),
|
|
18762
19014
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Separator, {}),
|
|
18763
19015
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
18764
19016
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
18765
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19017
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Calendar, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
18766
19018
|
formatDateShort(date)
|
|
18767
19019
|
] }),
|
|
18768
19020
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5", children: [
|
|
18769
19021
|
daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_jsx_runtime95.Fragment, { children: [
|
|
18770
19022
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18771
|
-
|
|
19023
|
+
import_lucide_react52.Clock,
|
|
18772
19024
|
{
|
|
18773
19025
|
className: "size-3 shrink-0",
|
|
18774
19026
|
style: { color: priorityTextColor },
|
|
@@ -18842,7 +19094,7 @@ function OpportunityCard({
|
|
|
18842
19094
|
] }) }),
|
|
18843
19095
|
nextTask && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-start gap-1.5 border border-primary/30 bg-primary/5 px-2 py-1.5 text-xs", children: [
|
|
18844
19096
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18845
|
-
|
|
19097
|
+
import_lucide_react52.ArrowRight,
|
|
18846
19098
|
{
|
|
18847
19099
|
className: "mt-0.5 size-3 shrink-0 text-primary",
|
|
18848
19100
|
"aria-hidden": "true"
|
|
@@ -18884,6 +19136,45 @@ function OpportunityCard({
|
|
|
18884
19136
|
}
|
|
18885
19137
|
);
|
|
18886
19138
|
}
|
|
19139
|
+
function normalizeUrl(url) {
|
|
19140
|
+
return `https://${url.replace(/^https?:\/\//, "")}`;
|
|
19141
|
+
}
|
|
19142
|
+
function LoanApplicationLink({ url }) {
|
|
19143
|
+
const [copied, setCopied] = (0, import_react31.useState)(false);
|
|
19144
|
+
const href = normalizeUrl(url);
|
|
19145
|
+
function handleCopy() {
|
|
19146
|
+
navigator.clipboard.writeText(href).then(() => {
|
|
19147
|
+
setCopied(true);
|
|
19148
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
19149
|
+
});
|
|
19150
|
+
}
|
|
19151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
19152
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("p", { className: "text-caption text-muted-foreground", children: "Or the link below to fill out the loan application directly." }),
|
|
19153
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
19154
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Link2, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
19155
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19156
|
+
"a",
|
|
19157
|
+
{
|
|
19158
|
+
href,
|
|
19159
|
+
target: "_blank",
|
|
19160
|
+
rel: "noreferrer",
|
|
19161
|
+
className: "min-w-0 flex-1 truncate text-body-small text-primary underline-offset-2 hover:underline",
|
|
19162
|
+
children: url
|
|
19163
|
+
}
|
|
19164
|
+
),
|
|
19165
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19166
|
+
"button",
|
|
19167
|
+
{
|
|
19168
|
+
type: "button",
|
|
19169
|
+
onClick: handleCopy,
|
|
19170
|
+
className: "shrink-0 rounded p-1 text-muted-foreground transition-colors hover:text-foreground",
|
|
19171
|
+
"aria-label": "Copy link",
|
|
19172
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Check, { className: "size-4 text-success-text" }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Copy, { className: "size-4" })
|
|
19173
|
+
}
|
|
19174
|
+
)
|
|
19175
|
+
] })
|
|
19176
|
+
] });
|
|
19177
|
+
}
|
|
18887
19178
|
function LeadCard({
|
|
18888
19179
|
customerName,
|
|
18889
19180
|
customerPhone,
|
|
@@ -18906,13 +19197,13 @@ function LeadCard({
|
|
|
18906
19197
|
children: [
|
|
18907
19198
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
18908
19199
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
18909
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "text-
|
|
18910
|
-
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
18911
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19200
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "text-label-medium text-foreground", children: customerName }),
|
|
19201
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
19202
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Phone, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
18912
19203
|
customerPhone
|
|
18913
19204
|
] }),
|
|
18914
|
-
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
18915
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19205
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
19206
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.Mail, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
18916
19207
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "truncate", children: customerEmail })
|
|
18917
19208
|
] })
|
|
18918
19209
|
] }),
|
|
@@ -18925,7 +19216,7 @@ function LeadCard({
|
|
|
18925
19216
|
"-mr-1 -mt-1 size-7 shrink-0"
|
|
18926
19217
|
),
|
|
18927
19218
|
"aria-label": "Lead actions",
|
|
18928
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
19219
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react52.MoreVertical, { className: "size-4" })
|
|
18929
19220
|
}
|
|
18930
19221
|
),
|
|
18931
19222
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
@@ -18951,23 +19242,7 @@ function LeadCard({
|
|
|
18951
19242
|
children: "Send Loan Application Request"
|
|
18952
19243
|
}
|
|
18953
19244
|
),
|
|
18954
|
-
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime95.
|
|
18955
|
-
"Or the link below to fill out the loan application directly.",
|
|
18956
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)("br", {}),
|
|
18957
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
18958
|
-
"a",
|
|
18959
|
-
{
|
|
18960
|
-
href: `https://${loanApplicationUrl.replace(
|
|
18961
|
-
/^https?:\/\//,
|
|
18962
|
-
""
|
|
18963
|
-
)}`,
|
|
18964
|
-
target: "_blank",
|
|
18965
|
-
rel: "noreferrer",
|
|
18966
|
-
className: "text-primary underline-offset-2 hover:underline",
|
|
18967
|
-
children: loanApplicationUrl
|
|
18968
|
-
}
|
|
18969
|
-
)
|
|
18970
|
-
] })
|
|
19245
|
+
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(LoanApplicationLink, { url: loanApplicationUrl })
|
|
18971
19246
|
] })
|
|
18972
19247
|
]
|
|
18973
19248
|
}
|
|
@@ -19060,7 +19335,7 @@ function KanbanColumn({
|
|
|
19060
19335
|
"-mr-1 size-7 shrink-0"
|
|
19061
19336
|
),
|
|
19062
19337
|
"aria-label": "Column actions",
|
|
19063
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
19338
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react53.MoreVertical, { className: "size-4" })
|
|
19064
19339
|
}
|
|
19065
19340
|
),
|
|
19066
19341
|
/* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
@@ -19164,7 +19439,7 @@ function KanbanColumn({
|
|
|
19164
19439
|
|
|
19165
19440
|
// src/components/ui/stepper.tsx
|
|
19166
19441
|
var React44 = __toESM(require("react"));
|
|
19167
|
-
var
|
|
19442
|
+
var import_lucide_react54 = require("lucide-react");
|
|
19168
19443
|
var import_jsx_runtime97 = require("react/jsx-runtime");
|
|
19169
19444
|
var StepperContext = React44.createContext({
|
|
19170
19445
|
activeStep: 0,
|
|
@@ -19246,7 +19521,7 @@ function StepIndicator({ error, className }) {
|
|
|
19246
19521
|
isCompleted && !error && "bg-primary text-primary-foreground",
|
|
19247
19522
|
error && "border-2 border-destructive bg-destructive text-destructive-foreground"
|
|
19248
19523
|
),
|
|
19249
|
-
children: isCompleted && !error ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
19524
|
+
children: isCompleted && !error ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react54.Check, { className: "size-4", strokeWidth: 2.5 }) : /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { children: index + 1 })
|
|
19250
19525
|
}
|
|
19251
19526
|
);
|
|
19252
19527
|
if (orientation === "horizontal") {
|
|
@@ -19471,7 +19746,7 @@ function OnboardingLayout({
|
|
|
19471
19746
|
|
|
19472
19747
|
// src/components/ui/opportunity-edit-modals.tsx
|
|
19473
19748
|
var React45 = __toESM(require("react"));
|
|
19474
|
-
var
|
|
19749
|
+
var import_lucide_react55 = require("lucide-react");
|
|
19475
19750
|
|
|
19476
19751
|
// src/lib/opportunity-constants.ts
|
|
19477
19752
|
var PROPERTY_ASSET_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -19717,7 +19992,7 @@ function AccordionItemHeader({
|
|
|
19717
19992
|
),
|
|
19718
19993
|
children: [
|
|
19719
19994
|
label,
|
|
19720
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
19995
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
|
|
19721
19996
|
]
|
|
19722
19997
|
}
|
|
19723
19998
|
),
|
|
@@ -19730,7 +20005,7 @@ function AccordionItemHeader({
|
|
|
19730
20005
|
onClick: onRemove,
|
|
19731
20006
|
className: "size-8 shrink-0",
|
|
19732
20007
|
"aria-label": removeLabel,
|
|
19733
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
20008
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.Trash2, { className: "size-3.5 text-destructive" })
|
|
19734
20009
|
}
|
|
19735
20010
|
)
|
|
19736
20011
|
] });
|
|
@@ -20358,7 +20633,7 @@ function EditAssetsModal({
|
|
|
20358
20633
|
onClick: addItem,
|
|
20359
20634
|
className: "w-full gap-1.5",
|
|
20360
20635
|
children: [
|
|
20361
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
20636
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.Plus, { className: "h-4 w-4" }),
|
|
20362
20637
|
"Add More"
|
|
20363
20638
|
]
|
|
20364
20639
|
}
|
|
@@ -20685,7 +20960,7 @@ function EditDebtsModal({
|
|
|
20685
20960
|
onClick: addItem,
|
|
20686
20961
|
className: "w-full gap-1.5",
|
|
20687
20962
|
children: [
|
|
20688
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
20963
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.Plus, { className: "h-4 w-4" }),
|
|
20689
20964
|
"Add More"
|
|
20690
20965
|
]
|
|
20691
20966
|
}
|
|
@@ -21186,7 +21461,7 @@ function EditIncomeModal({
|
|
|
21186
21461
|
onClick: addItem,
|
|
21187
21462
|
className: "w-full gap-1.5",
|
|
21188
21463
|
children: [
|
|
21189
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
21464
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.Plus, { className: "h-4 w-4" }),
|
|
21190
21465
|
"Add More"
|
|
21191
21466
|
]
|
|
21192
21467
|
}
|
|
@@ -21336,7 +21611,7 @@ function EditExpensesModal({
|
|
|
21336
21611
|
onClick: addItem,
|
|
21337
21612
|
className: "w-full gap-1.5",
|
|
21338
21613
|
children: [
|
|
21339
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
21614
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react55.Plus, { className: "h-4 w-4" }),
|
|
21340
21615
|
"Add More"
|
|
21341
21616
|
]
|
|
21342
21617
|
}
|
|
@@ -21364,7 +21639,7 @@ function EditExpensesModal({
|
|
|
21364
21639
|
// src/components/ui/opportunity-summary-tab.tsx
|
|
21365
21640
|
var React46 = __toESM(require("react"));
|
|
21366
21641
|
var import_react32 = require("react");
|
|
21367
|
-
var
|
|
21642
|
+
var import_lucide_react56 = require("lucide-react");
|
|
21368
21643
|
var import_jsx_runtime100 = require("react/jsx-runtime");
|
|
21369
21644
|
function toMonthly(amount, freq) {
|
|
21370
21645
|
return freq === "Monthly" ? amount : amount * 52 / 12;
|
|
@@ -21415,7 +21690,7 @@ function SectionEditButton({
|
|
|
21415
21690
|
},
|
|
21416
21691
|
"aria-label": title,
|
|
21417
21692
|
title,
|
|
21418
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21693
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.Pencil, { className: "size-3.5" })
|
|
21419
21694
|
}
|
|
21420
21695
|
);
|
|
21421
21696
|
}
|
|
@@ -21451,7 +21726,7 @@ function HeroBand({
|
|
|
21451
21726
|
href: `tel:${mainAbout.phone}`,
|
|
21452
21727
|
className: "inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground",
|
|
21453
21728
|
title: `Call: ${mainAbout.phone}`,
|
|
21454
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21729
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.Phone, { className: "size-3.5" })
|
|
21455
21730
|
}
|
|
21456
21731
|
),
|
|
21457
21732
|
mainAbout.email && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
@@ -21460,7 +21735,7 @@ function HeroBand({
|
|
|
21460
21735
|
href: `mailto:${mainAbout.email}`,
|
|
21461
21736
|
className: "inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground",
|
|
21462
21737
|
title: `Email: ${mainAbout.email}`,
|
|
21463
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21738
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.Mail, { className: "size-3.5" })
|
|
21464
21739
|
}
|
|
21465
21740
|
)
|
|
21466
21741
|
] })
|
|
@@ -21599,19 +21874,19 @@ function ApplicantCardTab({
|
|
|
21599
21874
|
var STATUS_OPTIONS = ["verified", "pending", "rejected"];
|
|
21600
21875
|
var STATUS_CONFIG4 = {
|
|
21601
21876
|
verified: {
|
|
21602
|
-
Icon:
|
|
21877
|
+
Icon: import_lucide_react56.CheckCircle2,
|
|
21603
21878
|
label: "Verified",
|
|
21604
21879
|
iconCls: "text-success",
|
|
21605
21880
|
triggerCls: "border-success text-success"
|
|
21606
21881
|
},
|
|
21607
21882
|
pending: {
|
|
21608
|
-
Icon:
|
|
21883
|
+
Icon: import_lucide_react56.AlertCircle,
|
|
21609
21884
|
label: "Pending",
|
|
21610
21885
|
iconCls: "text-warning",
|
|
21611
21886
|
triggerCls: "border-warning text-warning"
|
|
21612
21887
|
},
|
|
21613
21888
|
rejected: {
|
|
21614
|
-
Icon:
|
|
21889
|
+
Icon: import_lucide_react56.AlertCircle,
|
|
21615
21890
|
label: "Rejected",
|
|
21616
21891
|
iconCls: "text-destructive",
|
|
21617
21892
|
triggerCls: "border-destructive text-destructive"
|
|
@@ -21641,7 +21916,7 @@ function DocRow({
|
|
|
21641
21916
|
),
|
|
21642
21917
|
children: [
|
|
21643
21918
|
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)("span", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(Checkbox, { checked: isSelected, onCheckedChange: () => onRowClick() }) }),
|
|
21644
|
-
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21919
|
+
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.FileText, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
21645
21920
|
/* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
21646
21921
|
doc.url ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21647
21922
|
"a",
|
|
@@ -21695,7 +21970,7 @@ function DocRow({
|
|
|
21695
21970
|
download: true,
|
|
21696
21971
|
onClick: (e) => e.stopPropagation(),
|
|
21697
21972
|
className: "shrink-0 text-muted-foreground transition-colors hover:text-foreground",
|
|
21698
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
21973
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.Download, { className: "size-4" })
|
|
21699
21974
|
}
|
|
21700
21975
|
)
|
|
21701
21976
|
]
|
|
@@ -21981,7 +22256,7 @@ function OpportunitySummaryTab({
|
|
|
21981
22256
|
onDocumentsDownload == null ? void 0 : onDocumentsDownload(selected);
|
|
21982
22257
|
},
|
|
21983
22258
|
children: [
|
|
21984
|
-
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
22259
|
+
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.Download, { className: "size-3.5" }),
|
|
21985
22260
|
"Download (",
|
|
21986
22261
|
selectedDocIds.size,
|
|
21987
22262
|
")"
|
|
@@ -22003,7 +22278,7 @@ function OpportunitySummaryTab({
|
|
|
22003
22278
|
cat.hasVerified ? "text-success" : "text-warning"
|
|
22004
22279
|
),
|
|
22005
22280
|
children: [
|
|
22006
|
-
cat.hasVerified ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
22281
|
+
cat.hasVerified ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.CheckCircle2, { className: "size-3.5 shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react56.AlertCircle, { className: "size-3.5 shrink-0" }),
|
|
22007
22282
|
cat.name,
|
|
22008
22283
|
/* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("span", { className: "text-muted-foreground", children: [
|
|
22009
22284
|
"(",
|
|
@@ -22244,7 +22519,7 @@ function OpportunitySummaryTab({
|
|
|
22244
22519
|
|
|
22245
22520
|
// src/components/ui/sidebar-nav.tsx
|
|
22246
22521
|
var React47 = __toESM(require("react"));
|
|
22247
|
-
var
|
|
22522
|
+
var import_lucide_react57 = require("lucide-react");
|
|
22248
22523
|
var import_accordion8 = require("@base-ui/react/accordion");
|
|
22249
22524
|
var import_jsx_runtime101 = require("react/jsx-runtime");
|
|
22250
22525
|
function navIconCn(isActive) {
|
|
@@ -22278,7 +22553,7 @@ function MetricsGroup({ group }) {
|
|
|
22278
22553
|
}
|
|
22279
22554
|
),
|
|
22280
22555
|
item.info && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22281
|
-
|
|
22556
|
+
import_lucide_react57.Info,
|
|
22282
22557
|
{
|
|
22283
22558
|
size: 11,
|
|
22284
22559
|
strokeWidth: 2,
|
|
@@ -22397,7 +22672,7 @@ function CollapsibleNavItem({
|
|
|
22397
22672
|
),
|
|
22398
22673
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "flex-1 truncate text-left", children: item.title }),
|
|
22399
22674
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22400
|
-
|
|
22675
|
+
import_lucide_react57.ChevronDown,
|
|
22401
22676
|
{
|
|
22402
22677
|
className: cn(
|
|
22403
22678
|
"ml-auto shrink-0 text-brand-secondary-foreground/40 transition-transform duration-200",
|
|
@@ -22423,7 +22698,7 @@ function CollapsibleNavItem({
|
|
|
22423
22698
|
),
|
|
22424
22699
|
children: [
|
|
22425
22700
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22426
|
-
|
|
22701
|
+
import_lucide_react57.ChevronRight,
|
|
22427
22702
|
{
|
|
22428
22703
|
size: 11,
|
|
22429
22704
|
strokeWidth: 2,
|
|
@@ -22532,7 +22807,7 @@ function SidebarNav({
|
|
|
22532
22807
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center font-semibold text-xs bg-primary text-primary-foreground", children: getInitials(userName) }),
|
|
22533
22808
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "flex-1 truncate text-left font-medium text-brand-secondary-foreground", children: userName }),
|
|
22534
22809
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22535
|
-
|
|
22810
|
+
import_lucide_react57.ChevronDown,
|
|
22536
22811
|
{
|
|
22537
22812
|
className: "ml-auto shrink-0 text-brand-secondary-foreground/50 transition-transform duration-200 group-data-[panel-open]:rotate-180",
|
|
22538
22813
|
size: 16,
|
|
@@ -22554,7 +22829,7 @@ function SidebarNav({
|
|
|
22554
22829
|
),
|
|
22555
22830
|
children: [
|
|
22556
22831
|
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22557
|
-
|
|
22832
|
+
import_lucide_react57.LogOut,
|
|
22558
22833
|
{
|
|
22559
22834
|
size: 16,
|
|
22560
22835
|
strokeWidth: 1.75,
|
|
@@ -22627,14 +22902,14 @@ function SidebarNav({
|
|
|
22627
22902
|
),
|
|
22628
22903
|
children: [
|
|
22629
22904
|
collapsed ? /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22630
|
-
|
|
22905
|
+
import_lucide_react57.PanelLeftOpen,
|
|
22631
22906
|
{
|
|
22632
22907
|
size: 24,
|
|
22633
22908
|
strokeWidth: 1.75,
|
|
22634
22909
|
className: "shrink-0"
|
|
22635
22910
|
}
|
|
22636
22911
|
) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
22637
|
-
|
|
22912
|
+
import_lucide_react57.PanelLeftClose,
|
|
22638
22913
|
{
|
|
22639
22914
|
size: 24,
|
|
22640
22915
|
strokeWidth: 1.75,
|
|
@@ -22688,7 +22963,7 @@ function PipelineAlerts({ counts, className }) {
|
|
|
22688
22963
|
}
|
|
22689
22964
|
|
|
22690
22965
|
// src/components/ui/pipeline-board.tsx
|
|
22691
|
-
var
|
|
22966
|
+
var import_lucide_react58 = require("lucide-react");
|
|
22692
22967
|
var import_jsx_runtime103 = require("react/jsx-runtime");
|
|
22693
22968
|
function Toolbar({
|
|
22694
22969
|
searchValue,
|
|
@@ -22700,7 +22975,7 @@ function Toolbar({
|
|
|
22700
22975
|
}) {
|
|
22701
22976
|
return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: "flex flex-wrap items-center gap-3 border-b border-border bg-background px-4 py-3", children: [
|
|
22702
22977
|
/* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: "relative w-56 shrink-0", children: [
|
|
22703
|
-
/* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
22978
|
+
/* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react58.Search, { className: "absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground" }),
|
|
22704
22979
|
/* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
22705
22980
|
Input,
|
|
22706
22981
|
{
|
|
@@ -22719,7 +22994,7 @@ function Toolbar({
|
|
|
22719
22994
|
onClick: () => onSearchChange(""),
|
|
22720
22995
|
className: "absolute right-2 top-1/2 size-6 -translate-y-1/2 text-muted-foreground hover:text-foreground",
|
|
22721
22996
|
"aria-label": "Clear search",
|
|
22722
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
22997
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react58.X, { className: "size-3.5" })
|
|
22723
22998
|
}
|
|
22724
22999
|
)
|
|
22725
23000
|
] }),
|
|
@@ -22748,7 +23023,7 @@ function Toolbar({
|
|
|
22748
23023
|
onClick: onRefresh,
|
|
22749
23024
|
className: "ml-auto text-muted-foreground hover:text-foreground",
|
|
22750
23025
|
"aria-label": "Refresh board",
|
|
22751
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
23026
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react58.RefreshCw, { className: "size-4" })
|
|
22752
23027
|
}
|
|
22753
23028
|
)
|
|
22754
23029
|
] });
|
|
@@ -23707,7 +23982,7 @@ function PropertyMobileEstimateLineChart({
|
|
|
23707
23982
|
}
|
|
23708
23983
|
|
|
23709
23984
|
// src/components/ui/sonner.tsx
|
|
23710
|
-
var
|
|
23985
|
+
var import_lucide_react59 = require("lucide-react");
|
|
23711
23986
|
var import_sonner2 = require("sonner");
|
|
23712
23987
|
var import_jsx_runtime111 = require("react/jsx-runtime");
|
|
23713
23988
|
function Toaster(_a) {
|
|
@@ -23717,11 +23992,11 @@ function Toaster(_a) {
|
|
|
23717
23992
|
__spreadValues({
|
|
23718
23993
|
className: "toaster group",
|
|
23719
23994
|
icons: {
|
|
23720
|
-
success: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
23721
|
-
info: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
23722
|
-
warning: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
23723
|
-
error: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
23724
|
-
loading: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
23995
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react59.CircleCheckIcon, { className: "size-4" }),
|
|
23996
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react59.InfoIcon, { className: "size-4" }),
|
|
23997
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react59.TriangleAlertIcon, { className: "size-4" }),
|
|
23998
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react59.OctagonXIcon, { className: "size-4" }),
|
|
23999
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react59.Loader2Icon, { className: "size-4 animate-spin" })
|
|
23725
24000
|
},
|
|
23726
24001
|
style: {
|
|
23727
24002
|
"--normal-bg": "var(--popover)",
|
|
@@ -23740,7 +24015,7 @@ function Toaster(_a) {
|
|
|
23740
24015
|
}
|
|
23741
24016
|
|
|
23742
24017
|
// src/components/ui/stage-timeline.tsx
|
|
23743
|
-
var
|
|
24018
|
+
var import_lucide_react60 = require("lucide-react");
|
|
23744
24019
|
var import_jsx_runtime112 = require("react/jsx-runtime");
|
|
23745
24020
|
function StageTimeline({
|
|
23746
24021
|
stages,
|
|
@@ -23831,7 +24106,7 @@ function StageTimeline({
|
|
|
23831
24106
|
className: "flex size-5 shrink-0 items-center justify-center rounded-full bg-primary",
|
|
23832
24107
|
"aria-hidden": "true",
|
|
23833
24108
|
children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
23834
|
-
|
|
24109
|
+
import_lucide_react60.Check,
|
|
23835
24110
|
{
|
|
23836
24111
|
className: "size-3 text-primary-foreground",
|
|
23837
24112
|
strokeWidth: 2.5
|
|
@@ -24018,10 +24293,10 @@ function FrontendShell({
|
|
|
24018
24293
|
|
|
24019
24294
|
// src/components/ui/signup-form-primitives.tsx
|
|
24020
24295
|
var import_react36 = require("react");
|
|
24021
|
-
var
|
|
24296
|
+
var import_lucide_react62 = require("lucide-react");
|
|
24022
24297
|
|
|
24023
24298
|
// src/components/ui/password-strength-tooltip.tsx
|
|
24024
|
-
var
|
|
24299
|
+
var import_lucide_react61 = require("lucide-react");
|
|
24025
24300
|
var import_jsx_runtime116 = require("react/jsx-runtime");
|
|
24026
24301
|
var RULES = [
|
|
24027
24302
|
{ label: "Minimum 8 characters", test: (p) => p.length >= 8 },
|
|
@@ -24056,7 +24331,7 @@ function PasswordStrengthTooltip({
|
|
|
24056
24331
|
{
|
|
24057
24332
|
className: `flex items-center gap-1.5 text-[13px] leading-[18px] ${valid ? "text-success" : "text-destructive"}`,
|
|
24058
24333
|
children: [
|
|
24059
|
-
valid ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
24334
|
+
valid ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.Check, { size: 14, className: "shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react61.X, { size: 14, className: "shrink-0" }),
|
|
24060
24335
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)("span", { children: rule.label })
|
|
24061
24336
|
]
|
|
24062
24337
|
},
|
|
@@ -24135,7 +24410,7 @@ function PasswordField({
|
|
|
24135
24410
|
"aria-label": show ? "Hide password" : "Show password",
|
|
24136
24411
|
className: "absolute right-3 top-2.5 text-muted-foreground hover:text-foreground",
|
|
24137
24412
|
onClick: () => setShow((s) => !s),
|
|
24138
|
-
children: show ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
24413
|
+
children: show ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.EyeOffIcon, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.EyeIcon, { className: "size-4" })
|
|
24139
24414
|
}
|
|
24140
24415
|
)
|
|
24141
24416
|
] });
|
|
@@ -24192,7 +24467,7 @@ function StaffRowItem({
|
|
|
24192
24467
|
size: "icon-sm",
|
|
24193
24468
|
onClick: () => onRemove(member.id),
|
|
24194
24469
|
"aria-label": "Remove staff member",
|
|
24195
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
24470
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react62.Trash2Icon, { className: "size-4" })
|
|
24196
24471
|
}
|
|
24197
24472
|
)
|
|
24198
24473
|
] });
|
|
@@ -24200,7 +24475,7 @@ function StaffRowItem({
|
|
|
24200
24475
|
|
|
24201
24476
|
// src/components/ui/backoffice-signup-steps.tsx
|
|
24202
24477
|
var import_react37 = __toESM(require("react"));
|
|
24203
|
-
var
|
|
24478
|
+
var import_lucide_react63 = require("lucide-react");
|
|
24204
24479
|
var import_jsx_runtime118 = require("react/jsx-runtime");
|
|
24205
24480
|
var BASE_PLAN_PRICE = 299;
|
|
24206
24481
|
var ROLE_INFO = {
|
|
@@ -24507,7 +24782,7 @@ function InviteStaffView({
|
|
|
24507
24782
|
m.id
|
|
24508
24783
|
)),
|
|
24509
24784
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Button, { variant: "outline", onClick: addStaff, className: "w-full", children: [
|
|
24510
|
-
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
24785
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react63.PlusIcon, { className: "size-4" }),
|
|
24511
24786
|
"Add Staff"
|
|
24512
24787
|
] })
|
|
24513
24788
|
] })
|
|
@@ -24565,7 +24840,7 @@ function PaymentView({
|
|
|
24565
24840
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
24566
24841
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: "text-base w-[60px]", children: role }),
|
|
24567
24842
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Tooltip, { children: [
|
|
24568
|
-
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TooltipTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Info", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
24843
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TooltipTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Info", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react63.InfoIcon, { className: "size-4" }) }) }),
|
|
24569
24844
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TooltipContent, { side: "top", children: ROLE_INFO[role] })
|
|
24570
24845
|
] })
|
|
24571
24846
|
] }),
|
|
@@ -24641,15 +24916,15 @@ function BackofficeSuccessStep() {
|
|
|
24641
24916
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "border border-border p-6 flex flex-col gap-4 text-left w-full max-w-[400px]", children: [
|
|
24642
24917
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "font-semibold text-base text-foreground", children: "Contact us anytime if you have any concerns." }),
|
|
24643
24918
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
24644
|
-
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
24919
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react63.PhoneIcon, { className: "size-5 text-success shrink-0" }),
|
|
24645
24920
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: "text-base text-foreground", children: "0416 338 438" })
|
|
24646
24921
|
] }),
|
|
24647
24922
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
24648
|
-
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
24923
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react63.CalendarIcon, { className: "size-5 text-success shrink-0" }),
|
|
24649
24924
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: "text-base text-foreground", children: "Book call back" })
|
|
24650
24925
|
] }),
|
|
24651
24926
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
24652
|
-
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
24927
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react63.MailIcon, { className: "size-5 text-success shrink-0" }),
|
|
24653
24928
|
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: "text-base text-foreground", children: "clint@wealthx.au" })
|
|
24654
24929
|
] })
|
|
24655
24930
|
] })
|
|
@@ -24658,7 +24933,7 @@ function BackofficeSuccessStep() {
|
|
|
24658
24933
|
|
|
24659
24934
|
// src/components/ui/frontend-signup-steps.tsx
|
|
24660
24935
|
var import_react38 = require("react");
|
|
24661
|
-
var
|
|
24936
|
+
var import_lucide_react64 = require("lucide-react");
|
|
24662
24937
|
var import_jsx_runtime119 = require("react/jsx-runtime");
|
|
24663
24938
|
var fmt = (v) => new Intl.NumberFormat("en-AU", {
|
|
24664
24939
|
style: "currency",
|
|
@@ -24846,7 +25121,7 @@ function ConnectBankStep({ onConnect }) {
|
|
|
24846
25121
|
{
|
|
24847
25122
|
"aria-hidden": "true",
|
|
24848
25123
|
className: "flex h-7 w-7 items-center justify-center bg-primary text-primary-foreground",
|
|
24849
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
25124
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_lucide_react64.PlusIcon, { className: "size-4" })
|
|
24850
25125
|
}
|
|
24851
25126
|
)
|
|
24852
25127
|
] })
|
|
@@ -24926,7 +25201,7 @@ function ConnectPropertyStep({
|
|
|
24926
25201
|
children: [
|
|
24927
25202
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
24928
25203
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
24929
|
-
|
|
25204
|
+
import_lucide_react64.HomeIcon,
|
|
24930
25205
|
{
|
|
24931
25206
|
"aria-hidden": "true",
|
|
24932
25207
|
className: "size-4 shrink-0 text-muted-foreground"
|
|
@@ -24942,7 +25217,7 @@ function ConnectPropertyStep({
|
|
|
24942
25217
|
] })
|
|
24943
25218
|
] }),
|
|
24944
25219
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
24945
|
-
|
|
25220
|
+
import_lucide_react64.CheckIcon,
|
|
24946
25221
|
{
|
|
24947
25222
|
"aria-hidden": "true",
|
|
24948
25223
|
className: "size-4 text-success"
|
|
@@ -25055,7 +25330,7 @@ function FrontendSuccessStep({
|
|
|
25055
25330
|
{
|
|
25056
25331
|
"aria-hidden": "true",
|
|
25057
25332
|
className: "flex size-16 items-center justify-center bg-success/10",
|
|
25058
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
25333
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_lucide_react64.CheckIcon, { className: "size-8 text-success", strokeWidth: 2 })
|
|
25059
25334
|
}
|
|
25060
25335
|
),
|
|
25061
25336
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
@@ -25072,7 +25347,7 @@ function FrontendSuccessStep({
|
|
|
25072
25347
|
|
|
25073
25348
|
// src/components/ui/two-fa-setup-form.tsx
|
|
25074
25349
|
var import_react39 = require("react");
|
|
25075
|
-
var
|
|
25350
|
+
var import_lucide_react65 = require("lucide-react");
|
|
25076
25351
|
var import_jsx_runtime120 = require("react/jsx-runtime");
|
|
25077
25352
|
var DEFAULT_APPS = [
|
|
25078
25353
|
{ name: "Google Authenticator" },
|
|
@@ -25093,7 +25368,7 @@ function AppDownloadStep({
|
|
|
25093
25368
|
className: "flex flex-1 flex-col items-center gap-3 border border-border bg-muted/30 p-4 text-center",
|
|
25094
25369
|
children: [
|
|
25095
25370
|
/* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [
|
|
25096
|
-
(_a = app.icon) != null ? _a : /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
25371
|
+
(_a = app.icon) != null ? _a : /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react65.Smartphone, { size: 18, className: "text-muted-foreground" }),
|
|
25097
25372
|
app.name
|
|
25098
25373
|
] }),
|
|
25099
25374
|
app.qrNode ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { className: "flex items-center justify-center", children: app.qrNode }) : /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { className: "flex h-[100px] w-[100px] items-center justify-center border border-dashed border-border bg-muted/50 text-[11px] text-muted-foreground", children: "Scan to download" })
|
|
@@ -26075,7 +26350,7 @@ function IncomeWorkDetails({
|
|
|
26075
26350
|
}
|
|
26076
26351
|
|
|
26077
26352
|
// src/components/ui/loan-application-badge.tsx
|
|
26078
|
-
var
|
|
26353
|
+
var import_lucide_react66 = require("lucide-react");
|
|
26079
26354
|
var import_jsx_runtime128 = require("react/jsx-runtime");
|
|
26080
26355
|
var STATUS_CONFIG5 = {
|
|
26081
26356
|
SENT: {
|
|
@@ -26105,7 +26380,7 @@ function LoanApplicationBadge({
|
|
|
26105
26380
|
variant: "outline",
|
|
26106
26381
|
className: cn("w-fit text-xs gap-1", statusClassName, className),
|
|
26107
26382
|
children: [
|
|
26108
|
-
showCheck && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
26383
|
+
showCheck && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_lucide_react66.CheckIcon, { "aria-hidden": "true", className: "size-3" }),
|
|
26109
26384
|
label
|
|
26110
26385
|
]
|
|
26111
26386
|
}
|
|
@@ -26276,7 +26551,7 @@ function ChevronRightIcon4({ className }) {
|
|
|
26276
26551
|
|
|
26277
26552
|
// src/components/ui/resource-center.tsx
|
|
26278
26553
|
var import_react43 = require("react");
|
|
26279
|
-
var
|
|
26554
|
+
var import_lucide_react67 = require("lucide-react");
|
|
26280
26555
|
var import_jsx_runtime131 = require("react/jsx-runtime");
|
|
26281
26556
|
function ResourceModal({
|
|
26282
26557
|
open,
|
|
@@ -26315,7 +26590,7 @@ function ResourceModal({
|
|
|
26315
26590
|
download: true,
|
|
26316
26591
|
className: "flex items-center gap-2 text-sm text-primary hover:underline",
|
|
26317
26592
|
children: [
|
|
26318
|
-
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26593
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Download, { className: "size-3.5 shrink-0" }),
|
|
26319
26594
|
attachment.name
|
|
26320
26595
|
]
|
|
26321
26596
|
},
|
|
@@ -26345,8 +26620,8 @@ function ResourceVideoCard({ video }) {
|
|
|
26345
26620
|
alt: video.title,
|
|
26346
26621
|
className: "h-full w-full object-cover transition-transform duration-200 group-hover:scale-105"
|
|
26347
26622
|
}
|
|
26348
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26349
|
-
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 opacity-0 transition-opacity duration-200 group-hover:opacity-100", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex size-12 items-center justify-center bg-background/90", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26623
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Play, { className: "size-10 text-muted-foreground opacity-40" }) }),
|
|
26624
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 opacity-0 transition-opacity duration-200 group-hover:opacity-100", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex size-12 items-center justify-center bg-background/90", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Play, { className: "size-5 text-foreground" }) }) }),
|
|
26350
26625
|
video.duration && /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("span", { className: "absolute bottom-2 right-2 bg-black/70 px-1.5 py-0.5 text-xs font-medium text-white", children: video.duration })
|
|
26351
26626
|
] }),
|
|
26352
26627
|
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("p", { className: "text-sm font-medium text-foreground leading-snug line-clamp-2 group-hover:text-primary", children: video.title })
|
|
@@ -26449,7 +26724,7 @@ function ResourceDocumentCard({
|
|
|
26449
26724
|
className: "h-full w-full object-cover"
|
|
26450
26725
|
}
|
|
26451
26726
|
) : /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)("div", { className: "flex h-full w-full flex-col items-center justify-center gap-2", children: [
|
|
26452
|
-
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex items-center justify-center bg-muted-foreground/10 p-4", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26727
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "flex items-center justify-center bg-muted-foreground/10 p-4", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Download, { className: "size-8 text-muted-foreground opacity-50" }) }),
|
|
26453
26728
|
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("span", { className: "text-xs text-muted-foreground", children: document2.title })
|
|
26454
26729
|
] }),
|
|
26455
26730
|
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { className: "absolute inset-0 bg-foreground/40 opacity-0 transition-opacity duration-200 group-hover:opacity-100" })
|
|
@@ -26469,7 +26744,7 @@ function ResourceDocumentCard({
|
|
|
26469
26744
|
onClick: (e) => e.stopPropagation(),
|
|
26470
26745
|
className: "shrink-0",
|
|
26471
26746
|
"aria-label": `Download ${document2.title}`,
|
|
26472
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Button, { variant: "outline", size: "icon", className: "size-8", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26747
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Button, { variant: "outline", size: "icon", className: "size-8", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Download, { className: "size-4" }) })
|
|
26473
26748
|
}
|
|
26474
26749
|
)
|
|
26475
26750
|
] })
|
|
@@ -26509,7 +26784,7 @@ function ResourceCarousel({
|
|
|
26509
26784
|
"opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
|
26510
26785
|
"hover:bg-muted focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
26511
26786
|
),
|
|
26512
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26787
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.ChevronLeft, { className: "size-4 text-foreground" })
|
|
26513
26788
|
}
|
|
26514
26789
|
),
|
|
26515
26790
|
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
@@ -26534,7 +26809,7 @@ function ResourceCarousel({
|
|
|
26534
26809
|
"opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
|
26535
26810
|
"hover:bg-muted focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
26536
26811
|
),
|
|
26537
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.ChevronRight, { className: "size-4 text-foreground" })
|
|
26538
26813
|
}
|
|
26539
26814
|
)
|
|
26540
26815
|
] })
|
|
@@ -26577,7 +26852,7 @@ function ResourceCenterHeader({
|
|
|
26577
26852
|
className: "border-background text-background bg-transparent hover:bg-background/10 hover:text-background",
|
|
26578
26853
|
onClick: () => setWatchModalOpen(true),
|
|
26579
26854
|
children: [
|
|
26580
|
-
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
26855
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_lucide_react67.Play, { className: "mr-2 size-4" }),
|
|
26581
26856
|
"Watch Now"
|
|
26582
26857
|
]
|
|
26583
26858
|
}
|
|
@@ -26908,6 +27183,7 @@ function ResourceCenterHeader({
|
|
|
26908
27183
|
SelectableCard,
|
|
26909
27184
|
Separator,
|
|
26910
27185
|
ServiceConfigurationModal,
|
|
27186
|
+
ShareContactDialog,
|
|
26911
27187
|
ShareDetailsDialog,
|
|
26912
27188
|
Sheet,
|
|
26913
27189
|
SheetClose,
|