@wealthx/shadcn 1.5.6 → 1.5.8
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 +177 -171
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-XHGISOX5.mjs → chunk-33VT74R4.mjs} +1 -1
- package/dist/{chunk-M4LTX3MH.mjs → chunk-3C4DZTGA.mjs} +1 -1
- package/dist/{chunk-ODO6BUOF.mjs → chunk-3CGM3QXQ.mjs} +3 -5
- package/dist/{chunk-QBPNYXTI.mjs → chunk-3NJPNSJG.mjs} +1 -1
- package/dist/{chunk-6SR4K5T5.mjs → chunk-3S6KVFF5.mjs} +1 -1
- package/dist/{chunk-7KT5HPYM.mjs → chunk-3VZ6CYY2.mjs} +1 -1
- package/dist/chunk-3Z75IKFO.mjs +34 -0
- package/dist/{chunk-DFL5CV75.mjs → chunk-4BHDDLWK.mjs} +2 -2
- package/dist/{chunk-KLJLDNCA.mjs → chunk-4LLTZ45R.mjs} +1 -1
- package/dist/{chunk-RAKBWNQH.mjs → chunk-54MTIKNC.mjs} +27 -66
- package/dist/{chunk-JTG5R5YV.mjs → chunk-54TRNCID.mjs} +287 -61
- package/dist/{chunk-KCKYGQVQ.mjs → chunk-5DAQU3B6.mjs} +1 -1
- package/dist/{chunk-CKPEFZNH.mjs → chunk-5LZZYODG.mjs} +2 -2
- package/dist/{chunk-2A53WPEC.mjs → chunk-5YVJSKFH.mjs} +2 -2
- package/dist/{chunk-JUBUN65Q.mjs → chunk-5YWUGE6F.mjs} +1 -1
- package/dist/chunk-65PZNG4Y.mjs +129 -0
- package/dist/{chunk-K7WSRWOU.mjs → chunk-6LWCFAB4.mjs} +1 -1
- package/dist/{chunk-Q5SGEIJV.mjs → chunk-6MDNL5I2.mjs} +3 -3
- package/dist/{chunk-AUEUTZIC.mjs → chunk-6U4NQGVM.mjs} +3 -3
- package/dist/{chunk-V4CUTCHS.mjs → chunk-77L3UPBW.mjs} +1 -1
- package/dist/{chunk-CW32WTZU.mjs → chunk-7UIL5UN3.mjs} +1 -1
- package/dist/{chunk-2LLFNGJZ.mjs → chunk-AANINK2B.mjs} +3 -3
- package/dist/{chunk-UEREFDAE.mjs → chunk-AZGLSIHF.mjs} +1 -1
- package/dist/{chunk-XN37434W.mjs → chunk-B3CTBLIY.mjs} +2 -2
- package/dist/{chunk-XTWAJWCQ.mjs → chunk-BAONSY54.mjs} +1 -1
- package/dist/{chunk-XIY5DJXI.mjs → chunk-BXL74CM2.mjs} +1 -1
- package/dist/{chunk-OYBIUEGE.mjs → chunk-BZGFW6L7.mjs} +1 -1
- package/dist/chunk-CEEVYRQA.mjs +61 -0
- package/dist/{chunk-BD3DWDT4.mjs → chunk-CEYEK3TI.mjs} +1 -1
- package/dist/{chunk-I3UDLWQ7.mjs → chunk-D3HKFRQO.mjs} +1 -1
- package/dist/{chunk-3AREQTZU.mjs → chunk-DCKT635J.mjs} +1 -1
- package/dist/{chunk-VLELWBEW.mjs → chunk-E2BNCA6L.mjs} +1 -1
- package/dist/{chunk-QRVEI6J3.mjs → chunk-E5EDZQ5J.mjs} +1 -3
- package/dist/{chunk-QHJDGB54.mjs → chunk-EAKRTKHJ.mjs} +2 -2
- package/dist/{chunk-Q35PNFJ7.mjs → chunk-FBNEIYSE.mjs} +1 -1
- package/dist/{chunk-KB7MZMED.mjs → chunk-FGMDBJCF.mjs} +1 -1
- package/dist/{chunk-S4CTM3UE.mjs → chunk-FRCTOAKZ.mjs} +35 -4
- package/dist/{chunk-K7TWMLLW.mjs → chunk-FW4U543X.mjs} +4 -4
- package/dist/{chunk-PGR53HMH.mjs → chunk-G2W754UJ.mjs} +1 -1
- package/dist/{chunk-46Q4335I.mjs → chunk-GS47ZSSA.mjs} +12 -22
- package/dist/{chunk-AHKHVBWR.mjs → chunk-GYWOD2YI.mjs} +1 -1
- package/dist/{chunk-HNDTLT5X.mjs → chunk-H5DTKPJ2.mjs} +1 -1
- package/dist/{chunk-C6SWS7OW.mjs → chunk-HB5BKRMH.mjs} +1 -1
- package/dist/{chunk-WUA546RX.mjs → chunk-IFSQWDRN.mjs} +1 -1
- package/dist/{chunk-KAD26MCC.mjs → chunk-IRZWYTGV.mjs} +1 -1
- package/dist/{chunk-AL6GOL2Y.mjs → chunk-IW33VLL5.mjs} +1 -1
- package/dist/{chunk-A6ER36CW.mjs → chunk-JGBV3XMQ.mjs} +1 -1
- package/dist/{chunk-Y6UM3VTN.mjs → chunk-JUMEIPII.mjs} +1 -1
- package/dist/{chunk-VFH632TB.mjs → chunk-K4WDPVFY.mjs} +3 -3
- package/dist/{chunk-PV3Y7QGK.mjs → chunk-LHWJQNLG.mjs} +3 -3
- package/dist/{chunk-NCUH54IZ.mjs → chunk-LI2CTS5O.mjs} +1 -1
- package/dist/{chunk-F24U4QQQ.mjs → chunk-LPVXO3TD.mjs} +1 -1
- package/dist/{chunk-VJ3GC7W3.mjs → chunk-MNMSHB2J.mjs} +5 -5
- package/dist/{chunk-J5NW5NCT.mjs → chunk-NCMV3LTP.mjs} +1 -1
- package/dist/{chunk-IXR4BQSQ.mjs → chunk-O5CP6VP6.mjs} +3 -3
- package/dist/{chunk-TGVXRD53.mjs → chunk-OZ2R6ERP.mjs} +1 -1
- package/dist/{chunk-D447W45Z.mjs → chunk-PCULNQWA.mjs} +42 -50
- package/dist/{chunk-CDVG7SFT.mjs → chunk-PGJRZHN7.mjs} +1 -1
- package/dist/{chunk-IKDTOCSY.mjs → chunk-RSEVIQEO.mjs} +1 -1
- package/dist/{chunk-GNER6MCO.mjs → chunk-SSUK6C2K.mjs} +1 -1
- package/dist/{chunk-6TX73WG7.mjs → chunk-TCE5L44O.mjs} +3 -2
- package/dist/{chunk-OECGKCVF.mjs → chunk-TLLD5IU6.mjs} +1 -1
- package/dist/{chunk-BFB3UH7V.mjs → chunk-TRM3KIHT.mjs} +2 -2
- package/dist/{chunk-TLYSVRSK.mjs → chunk-TUC2BNUR.mjs} +3 -3
- package/dist/{chunk-HXU5JGLQ.mjs → chunk-UBHBIWIA.mjs} +3 -3
- package/dist/{chunk-TXUBGKB7.mjs → chunk-UJMVXREM.mjs} +2 -2
- package/dist/{chunk-TAX3KL66.mjs → chunk-USOVLDGS.mjs} +1 -1
- package/dist/{chunk-HF4FUBCY.mjs → chunk-UTCW5YUX.mjs} +1 -1
- package/dist/{chunk-OL65UQHQ.mjs → chunk-UYRHYJPX.mjs} +27 -61
- package/dist/{chunk-BDESHD25.mjs → chunk-VLVEZHFE.mjs} +1 -1
- package/dist/{chunk-EUYPMDQG.mjs → chunk-VWZS32ZQ.mjs} +1 -1
- package/dist/{chunk-HROG643K.mjs → chunk-W5QJ57PU.mjs} +1 -1
- package/dist/{chunk-F4O2YPXJ.mjs → chunk-WHIW6KOB.mjs} +1 -1
- package/dist/{chunk-TOIVHWNC.mjs → chunk-WWIWRNBK.mjs} +1 -1
- package/dist/{chunk-2QNOPXMQ.mjs → chunk-XMP24PWA.mjs} +1 -1
- package/dist/{chunk-HO6S3ECM.mjs → chunk-XUCDPAVI.mjs} +2 -2
- package/dist/{chunk-EW72FINW.mjs → chunk-XVZGXPIX.mjs} +1 -1
- package/dist/{chunk-WDTXHLYM.mjs → chunk-XYSRRDBH.mjs} +17 -11
- package/dist/{chunk-QAX6HCUH.mjs → chunk-ZAXZBOWI.mjs} +1 -1
- package/dist/{chunk-E3PQDBYI.mjs → chunk-ZFKAYRFQ.mjs} +1 -1
- package/dist/components/ui/about-you-form.mjs +6 -6
- package/dist/components/ui/add-column-modal.js +56 -227
- package/dist/components/ui/add-column-modal.mjs +4 -5
- package/dist/components/ui/add-lead-modal.mjs +6 -6
- package/dist/components/ui/ai-assistant-drawer.mjs +4 -4
- package/dist/components/ui/ai-builder.mjs +4 -4
- package/dist/components/ui/ai-conversations.js +278 -58
- package/dist/components/ui/ai-conversations.mjs +6 -6
- package/dist/components/ui/alert-dialog.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.mjs +7 -7
- package/dist/components/ui/appointment-availability-settings.js +1 -1
- package/dist/components/ui/appointment-availability-settings.mjs +9 -9
- package/dist/components/ui/appointment-book-dialog.js +11 -21
- package/dist/components/ui/appointment-book-dialog.mjs +7 -7
- package/dist/components/ui/appointment-calendar-view.mjs +2 -2
- package/dist/components/ui/appointment-detail-sheet.mjs +9 -9
- package/dist/components/ui/appointment-upcoming-card.mjs +6 -6
- package/dist/components/ui/assets-liabilities-side-card.mjs +3 -3
- package/dist/components/ui/backoffice-alert-history-chart.mjs +3 -3
- package/dist/components/ui/backoffice-alert-matching-chart.mjs +3 -3
- package/dist/components/ui/backoffice-alerts-chart.mjs +3 -3
- package/dist/components/ui/backoffice-connections-chart.mjs +3 -3
- package/dist/components/ui/backoffice-contact-history-chart.mjs +3 -3
- package/dist/components/ui/backoffice-contact-matching-chart.mjs +3 -3
- package/dist/components/ui/backoffice-signup-steps.mjs +9 -9
- package/dist/components/ui/bank-statement-generate-dialog.mjs +9 -9
- package/dist/components/ui/bank-statement-pdf-viewer.mjs +4 -4
- package/dist/components/ui/borrowing-capacity-card.mjs +3 -3
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +3 -3
- package/dist/components/ui/calculator-section.mjs +4 -4
- package/dist/components/ui/calendar.mjs +2 -2
- package/dist/components/ui/cash-balance-line-chart.mjs +3 -3
- package/dist/components/ui/cashflow-bar-chart.mjs +3 -3
- package/dist/components/ui/category-edit-dialog.mjs +4 -4
- package/dist/components/ui/color-picker.mjs +4 -4
- package/dist/components/ui/contact-alert-dialog/index.mjs +5 -5
- package/dist/components/ui/create-contact-modal.mjs +5 -5
- package/dist/components/ui/csv-import-modal.mjs +4 -4
- package/dist/components/ui/dashboard-transactions-table.mjs +5 -5
- package/dist/components/ui/data-table.mjs +6 -6
- package/dist/components/ui/date-picker.mjs +6 -6
- package/dist/components/ui/delete-contact-component.mjs +4 -4
- package/dist/components/ui/dialog.mjs +3 -3
- package/dist/components/ui/document-checklist-template.mjs +4 -4
- package/dist/components/ui/drawer.mjs +3 -3
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/dynamic-tabs.mjs +3 -3
- package/dist/components/ui/editable-money-item.mjs +4 -4
- package/dist/components/ui/expense-bar-chart.mjs +3 -3
- package/dist/components/ui/expense-work-details.mjs +4 -4
- package/dist/components/ui/file-preview-dialog.mjs +6 -6
- package/dist/components/ui/financial-cards.mjs +2 -2
- package/dist/components/ui/financial-drawers.mjs +4 -4
- package/dist/components/ui/financial-sections.mjs +3 -3
- package/dist/components/ui/frontend-signup-steps.mjs +7 -7
- package/dist/components/ui/income-bar-chart.mjs +3 -3
- package/dist/components/ui/income-work-details.mjs +4 -4
- package/dist/components/ui/integration-card.js +326 -0
- package/dist/components/ui/integration-card.mjs +11 -0
- package/dist/components/ui/kanban-column.js +151 -243
- package/dist/components/ui/kanban-column.mjs +6 -7
- package/dist/components/ui/loan-application-cards.mjs +1 -1
- package/dist/components/ui/money-item-with-color-indicator.mjs +4 -4
- package/dist/components/ui/onboarding-layout.js +65 -4
- package/dist/components/ui/onboarding-layout.mjs +6 -4
- package/dist/components/ui/opportunity-card.js +126 -216
- package/dist/components/ui/opportunity-card.mjs +5 -6
- package/dist/components/ui/opportunity-edit-modals.mjs +9 -9
- package/dist/components/ui/opportunity-summary-tab.mjs +11 -11
- package/dist/components/ui/pagination.mjs +4 -4
- package/dist/components/ui/password-strength-tooltip.mjs +4 -4
- package/dist/components/ui/pipeline-board.js +167 -261
- package/dist/components/ui/pipeline-board.mjs +7 -8
- package/dist/components/ui/pipeline-chart.js +128 -55
- package/dist/components/ui/pipeline-chart.mjs +4 -3
- package/dist/components/ui/pipeline-dialogs.mjs +9 -9
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +3 -3
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +3 -3
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +3 -3
- package/dist/components/ui/property-report-dialog.mjs +4 -4
- package/dist/components/ui/resource-center.mjs +4 -4
- package/dist/components/ui/review-alerts-dialog.mjs +4 -4
- package/dist/components/ui/savings-goal-modal.mjs +7 -7
- package/dist/components/ui/scenario-drawer.mjs +3 -3
- package/dist/components/ui/scenario-item.mjs +4 -4
- package/dist/components/ui/scenario-list.mjs +4 -4
- package/dist/components/ui/select.mjs +3 -3
- package/dist/components/ui/selectable-card.js +163 -0
- package/dist/components/ui/selectable-card.mjs +9 -0
- package/dist/components/ui/share-details-dialog.mjs +4 -4
- package/dist/components/ui/sheet.mjs +3 -3
- package/dist/components/ui/sidebar-nav.mjs +4 -4
- package/dist/components/ui/signup-form-primitives.mjs +6 -6
- package/dist/components/ui/signup-shell.js +3 -2
- package/dist/components/ui/signup-shell.mjs +2 -2
- package/dist/components/ui/stepper.js +3 -2
- package/dist/components/ui/stepper.mjs +1 -1
- package/dist/components/ui/tooltip.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +3 -3
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +3 -3
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +3 -3
- package/dist/index.js +2144 -1875
- package/dist/index.mjs +105 -95
- package/dist/lib/colors.js +36 -3
- package/dist/lib/colors.mjs +5 -1
- package/dist/lib/theme-provider.js +60 -13
- package/dist/lib/theme-provider.mjs +2 -2
- package/dist/styles.css +1 -1
- package/package.json +11 -1
- package/src/components/index.tsx +13 -1
- package/src/components/ui/add-column-modal.tsx +9 -58
- package/src/components/ui/ai-conversations.tsx +308 -42
- package/src/components/ui/appointment-availability-settings.tsx +1 -1
- package/src/components/ui/appointment-book-dialog.tsx +25 -48
- package/src/components/ui/integration-card.tsx +88 -0
- package/src/components/ui/kanban-column.tsx +0 -7
- package/src/components/ui/onboarding-layout.tsx +102 -1
- package/src/components/ui/opportunity-card.tsx +5 -53
- package/src/components/ui/pipeline-board.tsx +0 -3
- package/src/components/ui/pipeline-chart.tsx +47 -53
- package/src/components/ui/selectable-card.tsx +37 -0
- package/src/components/ui/stepper.tsx +3 -2
- package/src/lib/colors.ts +73 -5
- package/src/lib/format-date.ts +6 -6
- package/src/lib/theme-provider.tsx +13 -8
- package/src/styles/globals.css +37 -9
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +2 -0
- package/dist/chunk-2P7HP7LR.mjs +0 -68
|
@@ -693,66 +693,8 @@ function Progress(_a) {
|
|
|
693
693
|
);
|
|
694
694
|
}
|
|
695
695
|
|
|
696
|
-
// src/components/ui/tooltip.tsx
|
|
697
|
-
var import_tooltip = require("@base-ui/react/tooltip");
|
|
698
|
-
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
699
|
-
function TooltipProvider(_a) {
|
|
700
|
-
var _b = _a, {
|
|
701
|
-
delay = 0
|
|
702
|
-
} = _b, props = __objRest(_b, [
|
|
703
|
-
"delay"
|
|
704
|
-
]);
|
|
705
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
706
|
-
import_tooltip.Tooltip.Provider,
|
|
707
|
-
__spreadValues({
|
|
708
|
-
"data-slot": "tooltip-provider",
|
|
709
|
-
delay
|
|
710
|
-
}, props)
|
|
711
|
-
);
|
|
712
|
-
}
|
|
713
|
-
function Tooltip(_a) {
|
|
714
|
-
var props = __objRest(_a, []);
|
|
715
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Root, __spreadValues({ "data-slot": "tooltip" }, props));
|
|
716
|
-
}
|
|
717
|
-
function TooltipTrigger(_a) {
|
|
718
|
-
var props = __objRest(_a, []);
|
|
719
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
|
|
720
|
-
}
|
|
721
|
-
function TooltipContent(_a) {
|
|
722
|
-
var _b = _a, {
|
|
723
|
-
className,
|
|
724
|
-
sideOffset = 8,
|
|
725
|
-
side,
|
|
726
|
-
children,
|
|
727
|
-
style
|
|
728
|
-
} = _b, props = __objRest(_b, [
|
|
729
|
-
"className",
|
|
730
|
-
"sideOffset",
|
|
731
|
-
"side",
|
|
732
|
-
"children",
|
|
733
|
-
"style"
|
|
734
|
-
]);
|
|
735
|
-
const themeVars = useThemeVars();
|
|
736
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Positioner, { sideOffset, side, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
737
|
-
import_tooltip.Tooltip.Popup,
|
|
738
|
-
__spreadProps(__spreadValues({
|
|
739
|
-
className: cn(
|
|
740
|
-
"relative z-50 w-fit animate-in overflow-visible bg-brand-secondary px-3 py-1.5 text-caption text-balance text-brand-secondary-foreground fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards",
|
|
741
|
-
className
|
|
742
|
-
),
|
|
743
|
-
"data-slot": "tooltip-content",
|
|
744
|
-
style: __spreadValues(__spreadValues({}, themeVars), style)
|
|
745
|
-
}, props), {
|
|
746
|
-
children: [
|
|
747
|
-
children,
|
|
748
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 bg-brand-secondary data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1 data-[side=top]:-bottom-1" })
|
|
749
|
-
]
|
|
750
|
-
})
|
|
751
|
-
) }) });
|
|
752
|
-
}
|
|
753
|
-
|
|
754
696
|
// src/components/ui/opportunity-card.tsx
|
|
755
|
-
var
|
|
697
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
756
698
|
var PRIORITY_COLORS = {
|
|
757
699
|
HIGH: "var(--color-destructive)",
|
|
758
700
|
MEDIUM: "var(--color-warning)",
|
|
@@ -799,7 +741,6 @@ function TaskViewCard({
|
|
|
799
741
|
onDragStart,
|
|
800
742
|
className
|
|
801
743
|
}) {
|
|
802
|
-
var _a;
|
|
803
744
|
const resolvedPriority = resolvePriority(
|
|
804
745
|
daysSinceColumnChanged,
|
|
805
746
|
warningDays,
|
|
@@ -811,8 +752,6 @@ function TaskViewCard({
|
|
|
811
752
|
const totalCount = tasks.length;
|
|
812
753
|
const hasTasks = totalCount > 0;
|
|
813
754
|
const allDone = hasTasks && completedCount === totalCount;
|
|
814
|
-
const nextPendingTask = tasks.find((t) => !t.completed);
|
|
815
|
-
const agentName = (_a = nextPendingTask == null ? void 0 : nextPendingTask.aiAgentName) != null ? _a : null;
|
|
816
755
|
const [subtasksExpanded, setSubtasksExpanded] = (0, import_react5.useState)(false);
|
|
817
756
|
const hasMenu = onViewDetails || onChangePriority || onPutOnHold || onDelete;
|
|
818
757
|
const stopProp = (e) => {
|
|
@@ -826,35 +765,23 @@ function TaskViewCard({
|
|
|
826
765
|
].filter(Boolean).join(" \xB7 ");
|
|
827
766
|
let taskHeader;
|
|
828
767
|
if (allDone) {
|
|
829
|
-
taskHeader = /* @__PURE__ */ (0,
|
|
768
|
+
taskHeader = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
830
769
|
"p",
|
|
831
770
|
{
|
|
832
771
|
className: "flex items-center gap-1.5 text-sm font-semibold",
|
|
833
772
|
style: { color: "var(--color-success-text)" },
|
|
834
773
|
children: [
|
|
835
|
-
/* @__PURE__ */ (0,
|
|
774
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Check, { className: "size-3.5 shrink-0" }),
|
|
836
775
|
"All tasks complete"
|
|
837
776
|
]
|
|
838
777
|
}
|
|
839
778
|
);
|
|
840
779
|
} else if (nextTask) {
|
|
841
|
-
taskHeader = /* @__PURE__ */ (0,
|
|
842
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
843
|
-
agentName && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
844
|
-
import_lucide_react5.Bot,
|
|
845
|
-
{
|
|
846
|
-
className: "size-3.5 shrink-0 text-primary",
|
|
847
|
-
"aria-hidden": "true"
|
|
848
|
-
}
|
|
849
|
-
),
|
|
850
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "truncate text-sm font-semibold leading-snug", children: nextTask })
|
|
851
|
-
] }),
|
|
852
|
-
agentName && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 text-xs text-muted-foreground", children: agentName })
|
|
853
|
-
] });
|
|
780
|
+
taskHeader = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "truncate text-sm font-semibold leading-snug", children: nextTask });
|
|
854
781
|
} else {
|
|
855
|
-
taskHeader = /* @__PURE__ */ (0,
|
|
782
|
+
taskHeader = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "text-xs text-muted-foreground", children: "No tasks defined for this stage" });
|
|
856
783
|
}
|
|
857
|
-
return /* @__PURE__ */ (0,
|
|
784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
858
785
|
"div",
|
|
859
786
|
{
|
|
860
787
|
className: cn(
|
|
@@ -869,9 +796,9 @@ function TaskViewCard({
|
|
|
869
796
|
onDragStart,
|
|
870
797
|
onClick: onCardClick,
|
|
871
798
|
children: [
|
|
872
|
-
/* @__PURE__ */ (0,
|
|
873
|
-
/* @__PURE__ */ (0,
|
|
874
|
-
/* @__PURE__ */ (0,
|
|
799
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start gap-2", children: [
|
|
800
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "min-w-0 flex-1", children: taskHeader }),
|
|
801
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
875
802
|
"span",
|
|
876
803
|
{
|
|
877
804
|
role: "img",
|
|
@@ -881,13 +808,13 @@ function TaskViewCard({
|
|
|
881
808
|
}
|
|
882
809
|
)
|
|
883
810
|
] }),
|
|
884
|
-
hasTasks && /* @__PURE__ */ (0,
|
|
885
|
-
/* @__PURE__ */ (0,
|
|
811
|
+
hasTasks && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
812
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "shrink-0 tabular-nums text-xs text-muted-foreground", children: [
|
|
886
813
|
completedCount,
|
|
887
814
|
"/",
|
|
888
815
|
totalCount
|
|
889
816
|
] }),
|
|
890
|
-
/* @__PURE__ */ (0,
|
|
817
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
891
818
|
Progress,
|
|
892
819
|
{
|
|
893
820
|
value: completedCount / totalCount * 100,
|
|
@@ -898,7 +825,7 @@ function TaskViewCard({
|
|
|
898
825
|
}
|
|
899
826
|
)
|
|
900
827
|
] }),
|
|
901
|
-
hasTasks && /* @__PURE__ */ (0,
|
|
828
|
+
hasTasks && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
902
829
|
"div",
|
|
903
830
|
{
|
|
904
831
|
className: "space-y-1 border-t border-border pt-2",
|
|
@@ -906,18 +833,18 @@ function TaskViewCard({
|
|
|
906
833
|
role: "presentation",
|
|
907
834
|
onKeyDown: (e) => e.stopPropagation(),
|
|
908
835
|
children: [
|
|
909
|
-
/* @__PURE__ */ (0,
|
|
836
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
910
837
|
"button",
|
|
911
838
|
{
|
|
912
839
|
type: "button",
|
|
913
840
|
onClick: () => setSubtasksExpanded((v) => !v),
|
|
914
841
|
className: "flex w-full items-center justify-between text-xs text-muted-foreground hover:text-foreground",
|
|
915
842
|
children: [
|
|
916
|
-
/* @__PURE__ */ (0,
|
|
917
|
-
subtasksExpanded ? /* @__PURE__ */ (0,
|
|
843
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
844
|
+
subtasksExpanded ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.ChevronDown, { className: "size-3" }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.ChevronRight, { className: "size-3" }),
|
|
918
845
|
"Subtasks"
|
|
919
846
|
] }),
|
|
920
|
-
/* @__PURE__ */ (0,
|
|
847
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { children: [
|
|
921
848
|
completedCount,
|
|
922
849
|
" / ",
|
|
923
850
|
totalCount
|
|
@@ -925,12 +852,11 @@ function TaskViewCard({
|
|
|
925
852
|
]
|
|
926
853
|
}
|
|
927
854
|
),
|
|
928
|
-
subtasksExpanded && /* @__PURE__ */ (0,
|
|
855
|
+
subtasksExpanded && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("ul", { className: "space-y-1.5 pt-1", children: tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
929
856
|
TaskCheckItem,
|
|
930
857
|
{
|
|
931
858
|
title: task.title,
|
|
932
859
|
completed: task.completed,
|
|
933
|
-
aiAgentName: task.aiAgentName,
|
|
934
860
|
onToggle: () => onTaskToggle == null ? void 0 : onTaskToggle(task.id),
|
|
935
861
|
size: "xs"
|
|
936
862
|
},
|
|
@@ -939,14 +865,14 @@ function TaskViewCard({
|
|
|
939
865
|
]
|
|
940
866
|
}
|
|
941
867
|
),
|
|
942
|
-
/* @__PURE__ */ (0,
|
|
943
|
-
/* @__PURE__ */ (0,
|
|
944
|
-
daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0,
|
|
868
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "truncate text-xs text-muted-foreground", children: dealRef }),
|
|
869
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-1.5", onClick: stopProp, children: [
|
|
870
|
+
daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Badge, { variant: "secondary", className: "px-1.5 text-[10px] font-normal", children: [
|
|
945
871
|
daysSinceColumnChanged,
|
|
946
872
|
"d"
|
|
947
873
|
] }),
|
|
948
|
-
hasMenu && /* @__PURE__ */ (0,
|
|
949
|
-
/* @__PURE__ */ (0,
|
|
874
|
+
hasMenu && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "ml-auto", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
|
|
875
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
950
876
|
DropdownMenuTrigger,
|
|
951
877
|
{
|
|
952
878
|
className: cn(
|
|
@@ -954,23 +880,23 @@ function TaskViewCard({
|
|
|
954
880
|
"size-7 shrink-0"
|
|
955
881
|
),
|
|
956
882
|
"aria-label": "Opportunity actions",
|
|
957
|
-
children: /* @__PURE__ */ (0,
|
|
883
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
|
|
958
884
|
}
|
|
959
885
|
),
|
|
960
|
-
/* @__PURE__ */ (0,
|
|
961
|
-
onViewDetails && /* @__PURE__ */ (0,
|
|
962
|
-
onChangePriority && /* @__PURE__ */ (0,
|
|
963
|
-
onPutOnHold && /* @__PURE__ */ (0,
|
|
964
|
-
onDelete && /* @__PURE__ */ (0,
|
|
965
|
-
/* @__PURE__ */ (0,
|
|
966
|
-
/* @__PURE__ */ (0,
|
|
886
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
887
|
+
onViewDetails && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onViewDetails, children: "View details" }),
|
|
888
|
+
onChangePriority && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onChangePriority, children: "Change priority" }),
|
|
889
|
+
onPutOnHold && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onPutOnHold, children: "Put on hold" }),
|
|
890
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
891
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuSeparator, {}),
|
|
892
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onDelete, variant: "destructive", children: "Delete" })
|
|
967
893
|
] })
|
|
968
894
|
] })
|
|
969
895
|
] }) })
|
|
970
896
|
] }),
|
|
971
|
-
allDone && onMoveToNextStage && /* @__PURE__ */ (0,
|
|
972
|
-
/* @__PURE__ */ (0,
|
|
973
|
-
/* @__PURE__ */ (0,
|
|
897
|
+
allDone && onMoveToNextStage && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
|
|
898
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
899
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
974
900
|
Button,
|
|
975
901
|
{
|
|
976
902
|
variant: "outline",
|
|
@@ -982,9 +908,9 @@ function TaskViewCard({
|
|
|
982
908
|
}
|
|
983
909
|
) })
|
|
984
910
|
] }),
|
|
985
|
-
!allDone && nextTask && onMarkAsDone && /* @__PURE__ */ (0,
|
|
986
|
-
/* @__PURE__ */ (0,
|
|
987
|
-
/* @__PURE__ */ (0,
|
|
911
|
+
!allDone && nextTask && onMarkAsDone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
|
|
912
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
913
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
988
914
|
Button,
|
|
989
915
|
{
|
|
990
916
|
variant: "default",
|
|
@@ -1023,7 +949,6 @@ function OpportunityCard({
|
|
|
1023
949
|
onTaskToggle,
|
|
1024
950
|
onMarkAsDone,
|
|
1025
951
|
onMoveToNextStage,
|
|
1026
|
-
onLaunchAssistant,
|
|
1027
952
|
onChangePriority,
|
|
1028
953
|
onDelete,
|
|
1029
954
|
onPutOnHold,
|
|
@@ -1034,7 +959,7 @@ function OpportunityCard({
|
|
|
1034
959
|
viewMode = "deal"
|
|
1035
960
|
}) {
|
|
1036
961
|
if (viewMode === "task") {
|
|
1037
|
-
return /* @__PURE__ */ (0,
|
|
962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1038
963
|
TaskViewCard,
|
|
1039
964
|
{
|
|
1040
965
|
customerName,
|
|
@@ -1081,7 +1006,7 @@ function OpportunityCard({
|
|
|
1081
1006
|
const stopProp = (e) => {
|
|
1082
1007
|
e.stopPropagation();
|
|
1083
1008
|
};
|
|
1084
|
-
return /* @__PURE__ */ (0,
|
|
1009
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1085
1010
|
"div",
|
|
1086
1011
|
{
|
|
1087
1012
|
className: cn(
|
|
@@ -1096,19 +1021,19 @@ function OpportunityCard({
|
|
|
1096
1021
|
onDragStart,
|
|
1097
1022
|
onClick: onCardClick,
|
|
1098
1023
|
children: [
|
|
1099
|
-
onHoldTo && /* @__PURE__ */ (0,
|
|
1024
|
+
onHoldTo && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1100
1025
|
"div",
|
|
1101
1026
|
{
|
|
1102
1027
|
className: "flex items-center gap-1.5 rounded border border-warning/30 bg-warning/10 px-2 py-1 text-xs font-medium",
|
|
1103
1028
|
style: { color: "var(--color-warning-text)" },
|
|
1104
1029
|
children: [
|
|
1105
|
-
/* @__PURE__ */ (0,
|
|
1030
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Clock, { className: "size-3 shrink-0" }),
|
|
1106
1031
|
"On hold until ",
|
|
1107
1032
|
formatDateDayMonth(onHoldTo)
|
|
1108
1033
|
]
|
|
1109
1034
|
}
|
|
1110
1035
|
),
|
|
1111
|
-
isModifyCompletedLoan && /* @__PURE__ */ (0,
|
|
1036
|
+
isModifyCompletedLoan && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1112
1037
|
"div",
|
|
1113
1038
|
{
|
|
1114
1039
|
className: "flex items-center gap-1.5 rounded border border-info/30 bg-info/10 px-2 py-1 text-xs font-medium",
|
|
@@ -1116,81 +1041,64 @@ function OpportunityCard({
|
|
|
1116
1041
|
children: "Modify completed loan"
|
|
1117
1042
|
}
|
|
1118
1043
|
),
|
|
1119
|
-
/* @__PURE__ */ (0,
|
|
1120
|
-
/* @__PURE__ */ (0,
|
|
1121
|
-
(loanPurposeLabel || loanType) && /* @__PURE__ */ (0,
|
|
1122
|
-
/* @__PURE__ */ (0,
|
|
1044
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
1045
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
1046
|
+
(loanPurposeLabel || loanType) && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Badge, { variant: "outline", className: "self-start", children: loanPurposeLabel != null ? loanPurposeLabel : formatLoanType(loanType) }),
|
|
1047
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-base font-bold tabular-nums text-foreground", children: formatCurrency(amount) })
|
|
1123
1048
|
] }),
|
|
1124
|
-
/* @__PURE__ */ (0,
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
) }),
|
|
1138
|
-
/* @__PURE__ */ (0,
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
{
|
|
1144
|
-
className: cn(
|
|
1145
|
-
buttonVariants({ variant: "ghost", size: "icon" }),
|
|
1146
|
-
"size-7 shrink-0"
|
|
1147
|
-
),
|
|
1148
|
-
"aria-label": "Opportunity actions",
|
|
1149
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
|
|
1150
|
-
}
|
|
1151
|
-
),
|
|
1152
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
1153
|
-
onViewDetails && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onViewDetails, children: "View details" }),
|
|
1154
|
-
onChangePriority && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onChangePriority, children: "Change priority" }),
|
|
1155
|
-
onPutOnHold && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onPutOnHold, children: "Put on hold" }),
|
|
1156
|
-
onDelete && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
1157
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuSeparator, {}),
|
|
1158
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onDelete, variant: "destructive", children: "Delete" })
|
|
1159
|
-
] })
|
|
1049
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex items-center gap-1 -mr-1 -mt-1", onClick: stopProp, children: hasMenu && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1051
|
+
DropdownMenuTrigger,
|
|
1052
|
+
{
|
|
1053
|
+
className: cn(
|
|
1054
|
+
buttonVariants({ variant: "ghost", size: "icon" }),
|
|
1055
|
+
"size-7 shrink-0"
|
|
1056
|
+
),
|
|
1057
|
+
"aria-label": "Opportunity actions",
|
|
1058
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
|
|
1059
|
+
}
|
|
1060
|
+
),
|
|
1061
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenuContent, { align: "end", children: [
|
|
1062
|
+
onViewDetails && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onViewDetails, children: "View details" }),
|
|
1063
|
+
onChangePriority && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onChangePriority, children: "Change priority" }),
|
|
1064
|
+
onPutOnHold && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onPutOnHold, children: "Put on hold" }),
|
|
1065
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
1066
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuSeparator, {}),
|
|
1067
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onDelete, variant: "destructive", children: "Delete" })
|
|
1160
1068
|
] })
|
|
1161
1069
|
] })
|
|
1162
|
-
] })
|
|
1070
|
+
] }) })
|
|
1163
1071
|
] }),
|
|
1164
|
-
/* @__PURE__ */ (0,
|
|
1165
|
-
/* @__PURE__ */ (0,
|
|
1166
|
-
/* @__PURE__ */ (0,
|
|
1167
|
-
/* @__PURE__ */ (0,
|
|
1168
|
-
additionalContacts && additionalContacts > 0 ? /* @__PURE__ */ (0,
|
|
1169
|
-
/* @__PURE__ */ (0,
|
|
1072
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
1073
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1074
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
1075
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: customerName }),
|
|
1076
|
+
additionalContacts && additionalContacts > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
|
|
1077
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Users, { className: "size-3", "aria-hidden": "true" }),
|
|
1170
1078
|
"Joint"
|
|
1171
|
-
] }) : /* @__PURE__ */ (0,
|
|
1172
|
-
/* @__PURE__ */ (0,
|
|
1079
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
|
|
1080
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.User, { className: "size-3", "aria-hidden": "true" }),
|
|
1173
1081
|
"Individual"
|
|
1174
1082
|
] })
|
|
1175
1083
|
] }),
|
|
1176
|
-
customerPhone && /* @__PURE__ */ (0,
|
|
1177
|
-
/* @__PURE__ */ (0,
|
|
1084
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1085
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1178
1086
|
customerPhone
|
|
1179
1087
|
] }),
|
|
1180
|
-
customerEmail && /* @__PURE__ */ (0,
|
|
1181
|
-
/* @__PURE__ */ (0,
|
|
1182
|
-
/* @__PURE__ */ (0,
|
|
1088
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1089
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1090
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: customerEmail })
|
|
1183
1091
|
] })
|
|
1184
1092
|
] }),
|
|
1185
|
-
/* @__PURE__ */ (0,
|
|
1186
|
-
/* @__PURE__ */ (0,
|
|
1187
|
-
/* @__PURE__ */ (0,
|
|
1188
|
-
/* @__PURE__ */ (0,
|
|
1093
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
1094
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1095
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1096
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Calendar, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1189
1097
|
formatDateShort(date)
|
|
1190
1098
|
] }),
|
|
1191
|
-
/* @__PURE__ */ (0,
|
|
1192
|
-
daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0,
|
|
1193
|
-
/* @__PURE__ */ (0,
|
|
1099
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5", children: [
|
|
1100
|
+
daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
1101
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1194
1102
|
import_lucide_react5.Clock,
|
|
1195
1103
|
{
|
|
1196
1104
|
className: "size-3 shrink-0",
|
|
@@ -1198,7 +1106,7 @@ function OpportunityCard({
|
|
|
1198
1106
|
"aria-hidden": "true"
|
|
1199
1107
|
}
|
|
1200
1108
|
),
|
|
1201
|
-
/* @__PURE__ */ (0,
|
|
1109
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1202
1110
|
"span",
|
|
1203
1111
|
{
|
|
1204
1112
|
className: "text-xs font-medium tabular-nums",
|
|
@@ -1210,7 +1118,7 @@ function OpportunityCard({
|
|
|
1210
1118
|
}
|
|
1211
1119
|
)
|
|
1212
1120
|
] }),
|
|
1213
|
-
/* @__PURE__ */ (0,
|
|
1121
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1214
1122
|
"span",
|
|
1215
1123
|
{
|
|
1216
1124
|
role: "img",
|
|
@@ -1222,8 +1130,8 @@ function OpportunityCard({
|
|
|
1222
1130
|
] })
|
|
1223
1131
|
] }),
|
|
1224
1132
|
hasTasks && // stopPropagation: accordion expand/collapse + task checkboxes must not bubble to onCardClick
|
|
1225
|
-
/* @__PURE__ */ (0,
|
|
1226
|
-
/* @__PURE__ */ (0,
|
|
1133
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
|
|
1134
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1227
1135
|
"div",
|
|
1228
1136
|
{
|
|
1229
1137
|
className: "flex gap-0.5",
|
|
@@ -1232,7 +1140,7 @@ function OpportunityCard({
|
|
|
1232
1140
|
"aria-valuemin": 0,
|
|
1233
1141
|
"aria-valuemax": tasks.length,
|
|
1234
1142
|
"aria-label": `${completedCount} of ${tasks.length} tasks complete`,
|
|
1235
|
-
children: tasks.map((t, i) => /* @__PURE__ */ (0,
|
|
1143
|
+
children: tasks.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1236
1144
|
"div",
|
|
1237
1145
|
{
|
|
1238
1146
|
className: cn(
|
|
@@ -1244,43 +1152,42 @@ function OpportunityCard({
|
|
|
1244
1152
|
))
|
|
1245
1153
|
}
|
|
1246
1154
|
),
|
|
1247
|
-
/* @__PURE__ */ (0,
|
|
1248
|
-
/* @__PURE__ */ (0,
|
|
1155
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Accordion, { type: "single", collapsible: true, className: "-mx-4", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(AccordionItem, { value: "tasks", className: "border-0", children: [
|
|
1156
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(AccordionTrigger, { className: "px-4 py-1.5 text-xs font-normal text-muted-foreground hover:no-underline hover:text-foreground [&>svg]:size-3.5", children: [
|
|
1249
1157
|
"Tasks (",
|
|
1250
1158
|
completedCount,
|
|
1251
1159
|
"/",
|
|
1252
1160
|
tasks.length,
|
|
1253
1161
|
")"
|
|
1254
1162
|
] }),
|
|
1255
|
-
/* @__PURE__ */ (0,
|
|
1163
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AccordionContent, { className: "px-4", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex flex-col", children: tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1256
1164
|
TaskCheckItem,
|
|
1257
1165
|
{
|
|
1258
1166
|
title: task.title,
|
|
1259
1167
|
completed: task.completed,
|
|
1260
|
-
aiAgentName: task.aiAgentName,
|
|
1261
1168
|
onToggle: onTaskToggle ? () => onTaskToggle(task.id) : void 0,
|
|
1262
1169
|
disabled: isSubmitting
|
|
1263
1170
|
},
|
|
1264
1171
|
task.id
|
|
1265
1172
|
)) }) })
|
|
1266
1173
|
] }) }),
|
|
1267
|
-
nextTask && /* @__PURE__ */ (0,
|
|
1268
|
-
/* @__PURE__ */ (0,
|
|
1174
|
+
nextTask && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start gap-1.5 border border-primary/30 bg-primary/5 px-2 py-1.5 text-xs", children: [
|
|
1175
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1269
1176
|
import_lucide_react5.ArrowRight,
|
|
1270
1177
|
{
|
|
1271
1178
|
className: "mt-0.5 size-3 shrink-0 text-primary",
|
|
1272
1179
|
"aria-hidden": "true"
|
|
1273
1180
|
}
|
|
1274
1181
|
),
|
|
1275
|
-
/* @__PURE__ */ (0,
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1182
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "font-medium", children: "Next:" }),
|
|
1183
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-muted-foreground", children: nextTask })
|
|
1277
1184
|
] })
|
|
1278
1185
|
] }),
|
|
1279
1186
|
hasActions && // stopPropagation: button clicks must not bubble to onCardClick
|
|
1280
|
-
/* @__PURE__ */ (0,
|
|
1281
|
-
/* @__PURE__ */ (0,
|
|
1282
|
-
(onMoveToNextStage || onMarkAsDone) && /* @__PURE__ */ (0,
|
|
1283
|
-
onMoveToNextStage && /* @__PURE__ */ (0,
|
|
1187
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
|
|
1188
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
1189
|
+
(onMoveToNextStage || onMarkAsDone) && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex gap-2 pt-2", children: [
|
|
1190
|
+
onMoveToNextStage && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1284
1191
|
Button,
|
|
1285
1192
|
{
|
|
1286
1193
|
variant: "outline",
|
|
@@ -1291,7 +1198,7 @@ function OpportunityCard({
|
|
|
1291
1198
|
children: "Move to next stage"
|
|
1292
1199
|
}
|
|
1293
1200
|
),
|
|
1294
|
-
onMarkAsDone && /* @__PURE__ */ (0,
|
|
1201
|
+
onMarkAsDone && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1295
1202
|
Button,
|
|
1296
1203
|
{
|
|
1297
1204
|
variant: "default",
|
|
@@ -1318,7 +1225,7 @@ function LeadCard({
|
|
|
1318
1225
|
isSubmitting = false,
|
|
1319
1226
|
className
|
|
1320
1227
|
}) {
|
|
1321
|
-
return /* @__PURE__ */ (0,
|
|
1228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1322
1229
|
"div",
|
|
1323
1230
|
{
|
|
1324
1231
|
className: cn(
|
|
@@ -1328,20 +1235,20 @@ function LeadCard({
|
|
|
1328
1235
|
),
|
|
1329
1236
|
"data-slot": "lead-card",
|
|
1330
1237
|
children: [
|
|
1331
|
-
/* @__PURE__ */ (0,
|
|
1332
|
-
/* @__PURE__ */ (0,
|
|
1333
|
-
/* @__PURE__ */ (0,
|
|
1334
|
-
customerPhone && /* @__PURE__ */ (0,
|
|
1335
|
-
/* @__PURE__ */ (0,
|
|
1238
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
1239
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
1240
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-sm font-semibold text-foreground", children: customerName }),
|
|
1241
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1242
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1336
1243
|
customerPhone
|
|
1337
1244
|
] }),
|
|
1338
|
-
customerEmail && /* @__PURE__ */ (0,
|
|
1339
|
-
/* @__PURE__ */ (0,
|
|
1340
|
-
/* @__PURE__ */ (0,
|
|
1245
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1246
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1247
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: customerEmail })
|
|
1341
1248
|
] })
|
|
1342
1249
|
] }),
|
|
1343
|
-
onDelete && /* @__PURE__ */ (0,
|
|
1344
|
-
/* @__PURE__ */ (0,
|
|
1250
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
|
|
1251
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1345
1252
|
DropdownMenuTrigger,
|
|
1346
1253
|
{
|
|
1347
1254
|
className: cn(
|
|
@@ -1349,10 +1256,10 @@ function LeadCard({
|
|
|
1349
1256
|
"-mr-1 -mt-1 size-7 shrink-0"
|
|
1350
1257
|
),
|
|
1351
1258
|
"aria-label": "Lead actions",
|
|
1352
|
-
children: /* @__PURE__ */ (0,
|
|
1259
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
|
|
1353
1260
|
}
|
|
1354
1261
|
),
|
|
1355
|
-
/* @__PURE__ */ (0,
|
|
1262
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1356
1263
|
DropdownMenuItem,
|
|
1357
1264
|
{
|
|
1358
1265
|
onClick: onDelete,
|
|
@@ -1362,9 +1269,9 @@ function LeadCard({
|
|
|
1362
1269
|
) })
|
|
1363
1270
|
] })
|
|
1364
1271
|
] }),
|
|
1365
|
-
/* @__PURE__ */ (0,
|
|
1366
|
-
onSendLoanApplication && /* @__PURE__ */ (0,
|
|
1367
|
-
/* @__PURE__ */ (0,
|
|
1272
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
|
|
1273
|
+
onSendLoanApplication && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1368
1275
|
Button,
|
|
1369
1276
|
{
|
|
1370
1277
|
variant: "outline",
|
|
@@ -1375,13 +1282,16 @@ function LeadCard({
|
|
|
1375
1282
|
children: "Send Loan Application Request"
|
|
1376
1283
|
}
|
|
1377
1284
|
),
|
|
1378
|
-
loanApplicationUrl && /* @__PURE__ */ (0,
|
|
1285
|
+
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
|
|
1379
1286
|
"Or the link below to fill out the loan application directly.",
|
|
1380
|
-
/* @__PURE__ */ (0,
|
|
1381
|
-
/* @__PURE__ */ (0,
|
|
1287
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}),
|
|
1288
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1382
1289
|
"a",
|
|
1383
1290
|
{
|
|
1384
|
-
href: `https://${loanApplicationUrl.replace(
|
|
1291
|
+
href: `https://${loanApplicationUrl.replace(
|
|
1292
|
+
/^https?:\/\//,
|
|
1293
|
+
""
|
|
1294
|
+
)}`,
|
|
1385
1295
|
target: "_blank",
|
|
1386
1296
|
rel: "noreferrer",
|
|
1387
1297
|
className: "text-primary underline-offset-2 hover:underline",
|