@wealthx/shadcn 1.5.0 → 1.5.2

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.
Files changed (36) hide show
  1. package/.turbo/turbo-build.log +119 -119
  2. package/CHANGELOG.md +12 -0
  3. package/dist/chunk-G2EWIP2N.mjs +960 -0
  4. package/dist/{chunk-MHHA7QGO.mjs → chunk-ODO6BUOF.mjs} +1 -1
  5. package/dist/chunk-PX4M67XQ.mjs +301 -0
  6. package/dist/{chunk-FYUSF5KO.mjs → chunk-QRVEI6J3.mjs} +1 -1
  7. package/dist/{chunk-42NEC57Y.mjs → chunk-RAKBWNQH.mjs} +272 -3
  8. package/dist/components/ui/{contact-alert-dialog.js → contact-alert-dialog/index.js} +1029 -593
  9. package/dist/components/ui/contact-alert-dialog/index.mjs +31 -0
  10. package/dist/components/ui/file-preview-dialog.js +407 -100
  11. package/dist/components/ui/file-preview-dialog.mjs +3 -1
  12. package/dist/components/ui/kanban-column.js +408 -113
  13. package/dist/components/ui/kanban-column.mjs +3 -2
  14. package/dist/components/ui/opportunity-card.js +383 -88
  15. package/dist/components/ui/opportunity-card.mjs +2 -1
  16. package/dist/components/ui/pipeline-board.js +424 -129
  17. package/dist/components/ui/pipeline-board.mjs +4 -3
  18. package/dist/index.js +3081 -2282
  19. package/dist/index.mjs +39 -35
  20. package/dist/styles.css +1 -1
  21. package/package.json +6 -5
  22. package/src/components/index.tsx +3 -2
  23. package/src/components/ui/contact-alert-dialog/builder-ui.tsx +556 -0
  24. package/src/components/ui/contact-alert-dialog/config.ts +262 -0
  25. package/src/components/ui/contact-alert-dialog/contact-alert-dialog.tsx +214 -0
  26. package/src/components/ui/contact-alert-dialog/index.tsx +15 -0
  27. package/src/components/ui/contact-alert-dialog/types.ts +61 -0
  28. package/src/components/ui/contact-alert-dialog/utils.ts +93 -0
  29. package/src/components/ui/file-preview-dialog.tsx +299 -99
  30. package/src/components/ui/opportunity-card.tsx +328 -1
  31. package/src/styles/styles-css.ts +1 -1
  32. package/tsup.config.ts +1 -1
  33. package/dist/chunk-5WMFKQZ6.mjs +0 -180
  34. package/dist/chunk-Y24TXIFJ.mjs +0 -518
  35. package/dist/components/ui/contact-alert-dialog.mjs +0 -27
  36. package/src/components/ui/contact-alert-dialog.tsx +0 -710
@@ -63,6 +63,7 @@ __export(opportunity_card_exports, {
63
63
  OpportunityCard: () => OpportunityCard
64
64
  });
65
65
  module.exports = __toCommonJS(opportunity_card_exports);
66
+ var import_react5 = require("react");
66
67
  var import_lucide_react5 = require("lucide-react");
67
68
 
68
69
  // src/lib/utils.ts
@@ -660,16 +661,48 @@ function TaskCheckItem({
660
661
  );
661
662
  }
662
663
 
664
+ // src/components/ui/progress.tsx
665
+ var import_progress = require("@base-ui/react/progress");
666
+ var import_jsx_runtime10 = require("react/jsx-runtime");
667
+ function Progress(_a) {
668
+ var _b = _a, {
669
+ className,
670
+ value
671
+ } = _b, props = __objRest(_b, [
672
+ "className",
673
+ "value"
674
+ ]);
675
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
676
+ import_progress.Progress.Root,
677
+ __spreadProps(__spreadValues({
678
+ className: cn(
679
+ "relative h-2 w-full overflow-hidden bg-muted",
680
+ className
681
+ ),
682
+ "data-slot": "progress",
683
+ value
684
+ }, props), {
685
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_progress.Progress.Track, { className: "h-full", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
686
+ import_progress.Progress.Indicator,
687
+ {
688
+ className: "h-full bg-primary transition-all",
689
+ "data-slot": "progress-indicator"
690
+ }
691
+ ) })
692
+ })
693
+ );
694
+ }
695
+
663
696
  // src/components/ui/tooltip.tsx
664
697
  var import_tooltip = require("@base-ui/react/tooltip");
665
- var import_jsx_runtime10 = require("react/jsx-runtime");
698
+ var import_jsx_runtime11 = require("react/jsx-runtime");
666
699
  function TooltipProvider(_a) {
667
700
  var _b = _a, {
668
701
  delay = 0
669
702
  } = _b, props = __objRest(_b, [
670
703
  "delay"
671
704
  ]);
672
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
705
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
673
706
  import_tooltip.Tooltip.Provider,
674
707
  __spreadValues({
675
708
  "data-slot": "tooltip-provider",
@@ -679,11 +712,11 @@ function TooltipProvider(_a) {
679
712
  }
680
713
  function Tooltip(_a) {
681
714
  var props = __objRest(_a, []);
682
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_tooltip.Tooltip.Root, __spreadValues({ "data-slot": "tooltip" }, props));
715
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Root, __spreadValues({ "data-slot": "tooltip" }, props));
683
716
  }
684
717
  function TooltipTrigger(_a) {
685
718
  var props = __objRest(_a, []);
686
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_tooltip.Tooltip.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
719
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_tooltip.Tooltip.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
687
720
  }
688
721
  function TooltipContent(_a) {
689
722
  var _b = _a, {
@@ -700,7 +733,7 @@ function TooltipContent(_a) {
700
733
  "style"
701
734
  ]);
702
735
  const themeVars = useThemeVars();
703
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_tooltip.Tooltip.Positioner, { sideOffset, side, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
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)(
704
737
  import_tooltip.Tooltip.Popup,
705
738
  __spreadProps(__spreadValues({
706
739
  className: cn(
@@ -712,14 +745,14 @@ function TooltipContent(_a) {
712
745
  }, props), {
713
746
  children: [
714
747
  children,
715
- /* @__PURE__ */ (0, import_jsx_runtime10.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" })
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" })
716
749
  ]
717
750
  })
718
751
  ) }) });
719
752
  }
720
753
 
721
754
  // src/components/ui/opportunity-card.tsx
722
- var import_jsx_runtime11 = require("react/jsx-runtime");
755
+ var import_jsx_runtime12 = require("react/jsx-runtime");
723
756
  var PRIORITY_COLORS = {
724
757
  HIGH: "var(--color-destructive)",
725
758
  MEDIUM: "var(--color-warning)",
@@ -742,7 +775,233 @@ function resolvePriority(days, warningDays, priorityDays, priority) {
742
775
  function formatLoanType(type) {
743
776
  return type.split("-").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
744
777
  }
778
+ function TaskViewCard({
779
+ customerName,
780
+ loanType,
781
+ loanPurposeLabel,
782
+ amount,
783
+ priority,
784
+ daysSinceColumnChanged,
785
+ warningDays,
786
+ priorityDays,
787
+ tasks = [],
788
+ nextTask,
789
+ onCardClick,
790
+ onViewDetails,
791
+ onTaskToggle,
792
+ onMarkAsDone,
793
+ onMoveToNextStage,
794
+ onChangePriority,
795
+ onDelete,
796
+ onPutOnHold,
797
+ isSubmitting = false,
798
+ draggable = false,
799
+ onDragStart,
800
+ className
801
+ }) {
802
+ var _a;
803
+ const resolvedPriority = resolvePriority(
804
+ daysSinceColumnChanged,
805
+ warningDays,
806
+ priorityDays,
807
+ priority
808
+ );
809
+ const priorityColor = PRIORITY_COLORS[resolvedPriority];
810
+ const completedCount = tasks.filter((t) => t.completed).length;
811
+ const totalCount = tasks.length;
812
+ const hasTasks = totalCount > 0;
813
+ 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
+ const [subtasksExpanded, setSubtasksExpanded] = (0, import_react5.useState)(false);
817
+ const hasMenu = onViewDetails || onChangePriority || onPutOnHold || onDelete;
818
+ const stopProp = (e) => {
819
+ e.stopPropagation();
820
+ };
821
+ const purposeLabel = loanPurposeLabel != null ? loanPurposeLabel : loanType ? formatLoanType(loanType) : null;
822
+ const dealRef = [
823
+ customerName,
824
+ purposeLabel,
825
+ amount > 0 ? formatCurrency(amount) : null
826
+ ].filter(Boolean).join(" \xB7 ");
827
+ let taskHeader;
828
+ if (allDone) {
829
+ taskHeader = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
830
+ "p",
831
+ {
832
+ className: "flex items-center gap-1.5 text-sm font-semibold",
833
+ style: { color: "var(--color-success-text)" },
834
+ children: [
835
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Check, { className: "size-3.5 shrink-0" }),
836
+ "All tasks complete"
837
+ ]
838
+ }
839
+ );
840
+ } else if (nextTask) {
841
+ taskHeader = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
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
+ ] });
854
+ } else {
855
+ taskHeader = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-xs text-muted-foreground", children: "No tasks defined for this stage" });
856
+ }
857
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
858
+ "div",
859
+ {
860
+ className: cn(
861
+ "flex flex-col gap-2.5 border border-border bg-background p-3 text-foreground shadow-sm",
862
+ onCardClick && "cursor-pointer",
863
+ draggable && "cursor-grab active:cursor-grabbing",
864
+ isSubmitting && "opacity-60",
865
+ className
866
+ ),
867
+ "data-slot": "opportunity-card",
868
+ draggable,
869
+ onDragStart,
870
+ onClick: onCardClick,
871
+ children: [
872
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start gap-2", children: [
873
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "min-w-0 flex-1", children: taskHeader }),
874
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
875
+ "span",
876
+ {
877
+ role: "img",
878
+ className: "mt-0.5 inline-block size-2.5 shrink-0 rounded-full",
879
+ style: { backgroundColor: priorityColor },
880
+ "aria-label": `Priority: ${resolvedPriority}`
881
+ }
882
+ )
883
+ ] }),
884
+ hasTasks && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-2", children: [
885
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "shrink-0 tabular-nums text-xs text-muted-foreground", children: [
886
+ completedCount,
887
+ "/",
888
+ totalCount
889
+ ] }),
890
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
891
+ Progress,
892
+ {
893
+ value: completedCount / totalCount * 100,
894
+ className: cn(
895
+ "h-1.5 flex-1",
896
+ allDone && "[&_[data-slot=progress-indicator]]:bg-success"
897
+ )
898
+ }
899
+ )
900
+ ] }),
901
+ hasTasks && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
902
+ "div",
903
+ {
904
+ className: "space-y-1 border-t border-border pt-2",
905
+ onClick: stopProp,
906
+ role: "presentation",
907
+ onKeyDown: (e) => e.stopPropagation(),
908
+ children: [
909
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
910
+ "button",
911
+ {
912
+ type: "button",
913
+ onClick: () => setSubtasksExpanded((v) => !v),
914
+ className: "flex w-full items-center justify-between text-xs text-muted-foreground hover:text-foreground",
915
+ children: [
916
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1", children: [
917
+ subtasksExpanded ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ChevronDown, { className: "size-3" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ChevronRight, { className: "size-3" }),
918
+ "Subtasks"
919
+ ] }),
920
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { children: [
921
+ completedCount,
922
+ " / ",
923
+ totalCount
924
+ ] })
925
+ ]
926
+ }
927
+ ),
928
+ subtasksExpanded && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "space-y-1.5 pt-1", children: tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
929
+ TaskCheckItem,
930
+ {
931
+ title: task.title,
932
+ completed: task.completed,
933
+ aiAgentName: task.aiAgentName,
934
+ onToggle: () => onTaskToggle == null ? void 0 : onTaskToggle(task.id),
935
+ size: "xs"
936
+ },
937
+ task.id
938
+ )) })
939
+ ]
940
+ }
941
+ ),
942
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "truncate text-xs text-muted-foreground", children: dealRef }),
943
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-1.5", onClick: stopProp, children: [
944
+ daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Badge, { variant: "secondary", className: "px-1.5 text-[10px] font-normal", children: [
945
+ daysSinceColumnChanged,
946
+ "d"
947
+ ] }),
948
+ hasMenu && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ml-auto", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenu, { children: [
949
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
950
+ DropdownMenuTrigger,
951
+ {
952
+ className: cn(
953
+ buttonVariants({ variant: "ghost", size: "icon" }),
954
+ "size-7 shrink-0"
955
+ ),
956
+ "aria-label": "Opportunity actions",
957
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
958
+ }
959
+ ),
960
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenuContent, { align: "end", children: [
961
+ onViewDetails && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onViewDetails, children: "View details" }),
962
+ onChangePriority && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onChangePriority, children: "Change priority" }),
963
+ onPutOnHold && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onPutOnHold, children: "Put on hold" }),
964
+ onDelete && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
965
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuSeparator, {}),
966
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuItem, { onClick: onDelete, variant: "destructive", children: "Delete" })
967
+ ] })
968
+ ] })
969
+ ] }) })
970
+ ] }),
971
+ allDone && onMoveToNextStage && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { onClick: stopProp, children: [
972
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
973
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
974
+ Button,
975
+ {
976
+ variant: "outline",
977
+ size: "sm",
978
+ className: "w-full text-caption",
979
+ onClick: onMoveToNextStage,
980
+ disabled: isSubmitting,
981
+ children: "Move to next stage"
982
+ }
983
+ ) })
984
+ ] }),
985
+ !allDone && nextTask && onMarkAsDone && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { onClick: stopProp, children: [
986
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
987
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
988
+ Button,
989
+ {
990
+ variant: "default",
991
+ size: "sm",
992
+ className: "w-full text-caption",
993
+ onClick: onMarkAsDone,
994
+ disabled: isSubmitting,
995
+ children: "Mark as done"
996
+ }
997
+ ) })
998
+ ] })
999
+ ]
1000
+ }
1001
+ );
1002
+ }
745
1003
  function OpportunityCard({
1004
+ id,
746
1005
  customerName,
747
1006
  customerPhone,
748
1007
  customerEmail,
@@ -771,8 +1030,42 @@ function OpportunityCard({
771
1030
  isSubmitting = false,
772
1031
  draggable = false,
773
1032
  onDragStart,
774
- className
1033
+ className,
1034
+ viewMode = "deal"
775
1035
  }) {
1036
+ if (viewMode === "task") {
1037
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1038
+ TaskViewCard,
1039
+ {
1040
+ customerName,
1041
+ customerPhone,
1042
+ customerEmail,
1043
+ additionalContacts,
1044
+ loanType,
1045
+ loanPurposeLabel,
1046
+ amount,
1047
+ date,
1048
+ priority,
1049
+ daysSinceColumnChanged,
1050
+ warningDays,
1051
+ priorityDays,
1052
+ tasks,
1053
+ nextTask,
1054
+ onCardClick,
1055
+ onViewDetails,
1056
+ onTaskToggle,
1057
+ onMarkAsDone,
1058
+ onMoveToNextStage,
1059
+ onChangePriority,
1060
+ onDelete,
1061
+ onPutOnHold,
1062
+ isSubmitting,
1063
+ draggable,
1064
+ onDragStart,
1065
+ className
1066
+ }
1067
+ );
1068
+ }
776
1069
  const resolvedPriority = resolvePriority(
777
1070
  daysSinceColumnChanged,
778
1071
  warningDays,
@@ -785,8 +1078,10 @@ function OpportunityCard({
785
1078
  const hasTasks = tasks.length > 0;
786
1079
  const hasActions = onMarkAsDone || onMoveToNextStage;
787
1080
  const hasMenu = onViewDetails || onChangePriority || onPutOnHold || onDelete;
788
- const stopProp = (e) => e.stopPropagation();
789
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1081
+ const stopProp = (e) => {
1082
+ e.stopPropagation();
1083
+ };
1084
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
790
1085
  "div",
791
1086
  {
792
1087
  className: cn(
@@ -801,19 +1096,19 @@ function OpportunityCard({
801
1096
  onDragStart,
802
1097
  onClick: onCardClick,
803
1098
  children: [
804
- onHoldTo && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1099
+ onHoldTo && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
805
1100
  "div",
806
1101
  {
807
1102
  className: "flex items-center gap-1.5 rounded border border-warning/30 bg-warning/10 px-2 py-1 text-xs font-medium",
808
1103
  style: { color: "var(--color-warning-text)" },
809
1104
  children: [
810
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Clock, { className: "size-3 shrink-0" }),
1105
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Clock, { className: "size-3 shrink-0" }),
811
1106
  "On hold until ",
812
1107
  formatDateDayMonth(onHoldTo)
813
1108
  ]
814
1109
  }
815
1110
  ),
816
- isModifyCompletedLoan && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1111
+ isModifyCompletedLoan && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
817
1112
  "div",
818
1113
  {
819
1114
  className: "flex items-center gap-1.5 rounded border border-info/30 bg-info/10 px-2 py-1 text-xs font-medium",
@@ -821,14 +1116,14 @@ function OpportunityCard({
821
1116
  children: "Modify completed loan"
822
1117
  }
823
1118
  ),
824
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
825
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
826
- (loanPurposeLabel || loanType) && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Badge, { variant: "outline", className: "self-start", children: loanPurposeLabel != null ? loanPurposeLabel : formatLoanType(loanType) }),
827
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-base font-bold tabular-nums text-foreground", children: formatCurrency(amount) })
1119
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
1120
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
1121
+ (loanPurposeLabel || loanType) && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Badge, { variant: "outline", className: "self-start", children: loanPurposeLabel != null ? loanPurposeLabel : formatLoanType(loanType) }),
1122
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-base font-bold tabular-nums text-foreground", children: formatCurrency(amount) })
828
1123
  ] }),
829
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-1 -mr-1 -mt-1", onClick: stopProp, children: [
830
- onLaunchAssistant && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Tooltip, { children: [
831
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1124
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-1 -mr-1 -mt-1", onClick: stopProp, children: [
1125
+ onLaunchAssistant && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Tooltip, { children: [
1126
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
832
1127
  Button,
833
1128
  {
834
1129
  type: "button",
@@ -837,13 +1132,13 @@ function OpportunityCard({
837
1132
  className: "size-7 shrink-0",
838
1133
  onClick: onLaunchAssistant,
839
1134
  "aria-label": "Launch AI",
840
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Bot, { className: "size-4" })
1135
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Bot, { className: "size-4" })
841
1136
  }
842
1137
  ) }),
843
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipContent, { children: "Launch AI" })
1138
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipContent, { children: "Launch AI" })
844
1139
  ] }) }),
845
- hasMenu && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1140
+ hasMenu && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenu, { children: [
1141
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
847
1142
  DropdownMenuTrigger,
848
1143
  {
849
1144
  className: cn(
@@ -851,51 +1146,51 @@ function OpportunityCard({
851
1146
  "size-7 shrink-0"
852
1147
  ),
853
1148
  "aria-label": "Opportunity actions",
854
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
1149
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
855
1150
  }
856
1151
  ),
857
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenuContent, { align: "end", children: [
858
- onViewDetails && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onViewDetails, children: "View details" }),
859
- onChangePriority && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onChangePriority, children: "Change priority" }),
860
- onPutOnHold && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onPutOnHold, children: "Put on hold" }),
861
- onDelete && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
862
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuSeparator, {}),
863
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { onClick: onDelete, variant: "destructive", children: "Delete" })
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" })
864
1159
  ] })
865
1160
  ] })
866
1161
  ] })
867
1162
  ] })
868
1163
  ] }),
869
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
870
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col gap-1", children: [
871
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
872
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: customerName }),
873
- additionalContacts && additionalContacts > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
874
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Users, { className: "size-3", "aria-hidden": "true" }),
1164
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
1165
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col gap-1", children: [
1166
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
1167
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: customerName }),
1168
+ additionalContacts && additionalContacts > 0 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
1169
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Users, { className: "size-3", "aria-hidden": "true" }),
875
1170
  "Joint"
876
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
877
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.User, { className: "size-3", "aria-hidden": "true" }),
1171
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Badge, { variant: "secondary", className: "shrink-0 gap-1", children: [
1172
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.User, { className: "size-3", "aria-hidden": "true" }),
878
1173
  "Individual"
879
1174
  ] })
880
1175
  ] }),
881
- customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
882
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1176
+ customerPhone && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1177
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
883
1178
  customerPhone
884
1179
  ] }),
885
- customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
886
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
887
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: customerEmail })
1180
+ customerEmail && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1181
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1182
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: customerEmail })
888
1183
  ] })
889
1184
  ] }),
890
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
891
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between", children: [
892
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
893
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Calendar, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1185
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
1186
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between", children: [
1187
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1188
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Calendar, { className: "size-3 shrink-0", "aria-hidden": "true" }),
894
1189
  formatDateShort(date)
895
1190
  ] }),
896
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5", children: [
897
- daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
898
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1191
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5", children: [
1192
+ daysSinceColumnChanged !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1193
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
899
1194
  import_lucide_react5.Clock,
900
1195
  {
901
1196
  className: "size-3 shrink-0",
@@ -903,7 +1198,7 @@ function OpportunityCard({
903
1198
  "aria-hidden": "true"
904
1199
  }
905
1200
  ),
906
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1201
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
907
1202
  "span",
908
1203
  {
909
1204
  className: "text-xs font-medium tabular-nums",
@@ -915,7 +1210,7 @@ function OpportunityCard({
915
1210
  }
916
1211
  )
917
1212
  ] }),
918
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1213
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
919
1214
  "span",
920
1215
  {
921
1216
  role: "img",
@@ -927,8 +1222,8 @@ function OpportunityCard({
927
1222
  ] })
928
1223
  ] }),
929
1224
  hasTasks && // stopPropagation: accordion expand/collapse + task checkboxes must not bubble to onCardClick
930
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
931
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1225
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { onClick: stopProp, children: [
1226
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
932
1227
  "div",
933
1228
  {
934
1229
  className: "flex gap-0.5",
@@ -937,7 +1232,7 @@ function OpportunityCard({
937
1232
  "aria-valuemin": 0,
938
1233
  "aria-valuemax": tasks.length,
939
1234
  "aria-label": `${completedCount} of ${tasks.length} tasks complete`,
940
- children: tasks.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1235
+ children: tasks.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
941
1236
  "div",
942
1237
  {
943
1238
  className: cn(
@@ -949,15 +1244,15 @@ function OpportunityCard({
949
1244
  ))
950
1245
  }
951
1246
  ),
952
- /* @__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: [
953
- /* @__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: [
1247
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Accordion, { type: "single", collapsible: true, className: "-mx-4", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(AccordionItem, { value: "tasks", className: "border-0", children: [
1248
+ /* @__PURE__ */ (0, import_jsx_runtime12.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: [
954
1249
  "Tasks (",
955
1250
  completedCount,
956
1251
  "/",
957
1252
  tasks.length,
958
1253
  ")"
959
1254
  ] }),
960
- /* @__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)(
1255
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AccordionContent, { className: "px-4", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-col", children: tasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
961
1256
  TaskCheckItem,
962
1257
  {
963
1258
  title: task.title,
@@ -969,23 +1264,23 @@ function OpportunityCard({
969
1264
  task.id
970
1265
  )) }) })
971
1266
  ] }) }),
972
- 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: [
973
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1267
+ nextTask && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start gap-1.5 border border-primary/30 bg-primary/5 px-2 py-1.5 text-xs", children: [
1268
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
974
1269
  import_lucide_react5.ArrowRight,
975
1270
  {
976
1271
  className: "mt-0.5 size-3 shrink-0 text-primary",
977
1272
  "aria-hidden": "true"
978
1273
  }
979
1274
  ),
980
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "font-medium", children: "Next:" }),
981
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-muted-foreground", children: nextTask })
1275
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "font-medium", children: "Next:" }),
1276
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-muted-foreground", children: nextTask })
982
1277
  ] })
983
1278
  ] }),
984
1279
  hasActions && // stopPropagation: button clicks must not bubble to onCardClick
985
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { onClick: stopProp, children: [
986
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
987
- (onMoveToNextStage || onMarkAsDone) && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex gap-2 pt-2", children: [
988
- onMoveToNextStage && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1280
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { onClick: stopProp, children: [
1281
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
1282
+ (onMoveToNextStage || onMarkAsDone) && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex gap-2 pt-2", children: [
1283
+ onMoveToNextStage && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
989
1284
  Button,
990
1285
  {
991
1286
  variant: "outline",
@@ -996,7 +1291,7 @@ function OpportunityCard({
996
1291
  children: "Move to next stage"
997
1292
  }
998
1293
  ),
999
- onMarkAsDone && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1294
+ onMarkAsDone && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1000
1295
  Button,
1001
1296
  {
1002
1297
  variant: "default",
@@ -1023,7 +1318,7 @@ function LeadCard({
1023
1318
  isSubmitting = false,
1024
1319
  className
1025
1320
  }) {
1026
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1321
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1027
1322
  "div",
1028
1323
  {
1029
1324
  className: cn(
@@ -1033,20 +1328,20 @@ function LeadCard({
1033
1328
  ),
1034
1329
  "data-slot": "lead-card",
1035
1330
  children: [
1036
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
1037
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
1038
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-sm font-semibold text-foreground", children: customerName }),
1039
- customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1040
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1331
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
1332
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
1333
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-sm font-semibold text-foreground", children: customerName }),
1334
+ customerPhone && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1335
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1041
1336
  customerPhone
1042
1337
  ] }),
1043
- customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1044
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1045
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: customerEmail })
1338
+ customerEmail && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1339
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
1340
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: customerEmail })
1046
1341
  ] })
1047
1342
  ] }),
1048
- onDelete && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
1049
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1343
+ onDelete && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenu, { children: [
1344
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1050
1345
  DropdownMenuTrigger,
1051
1346
  {
1052
1347
  className: cn(
@@ -1054,10 +1349,10 @@ function LeadCard({
1054
1349
  "-mr-1 -mt-1 size-7 shrink-0"
1055
1350
  ),
1056
1351
  "aria-label": "Lead actions",
1057
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
1352
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.MoreVertical, { className: "size-4" })
1058
1353
  }
1059
1354
  ),
1060
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1355
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1061
1356
  DropdownMenuItem,
1062
1357
  {
1063
1358
  onClick: onDelete,
@@ -1067,9 +1362,9 @@ function LeadCard({
1067
1362
  ) })
1068
1363
  ] })
1069
1364
  ] }),
1070
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
1071
- onSendLoanApplication && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col gap-2", children: [
1072
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1365
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Separator, {}),
1366
+ onSendLoanApplication && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col gap-2", children: [
1367
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1073
1368
  Button,
1074
1369
  {
1075
1370
  variant: "outline",
@@ -1080,10 +1375,10 @@ function LeadCard({
1080
1375
  children: "Send Loan Application Request"
1081
1376
  }
1082
1377
  ),
1083
- loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
1378
+ loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
1084
1379
  "Or the link below to fill out the loan application directly.",
1085
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}),
1086
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1380
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("br", {}),
1381
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1087
1382
  "a",
1088
1383
  {
1089
1384
  href: `https://${loanApplicationUrl.replace(/^https?:\/\//, "")}`,