@wealthx/shadcn 1.5.14 → 1.5.16

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  KanbanColumn
3
- } from "./chunk-AKWN5ZQG.mjs";
3
+ } from "./chunk-A43XIVO6.mjs";
4
4
  import {
5
5
  ToggleGroup,
6
6
  ToggleGroupItem
@@ -104,6 +104,37 @@ function PipelineBoard({
104
104
  className
105
105
  }) {
106
106
  const hasToolbar = onSearchChange || filterOptions.length > 0 && onFilterChange;
107
+ const pinnedCols = columns.filter((c) => c.isPinned);
108
+ const scrollableCols = columns.filter((c) => !c.isPinned);
109
+ const renderColumn = (col) => /* @__PURE__ */ jsx(
110
+ KanbanColumn,
111
+ {
112
+ stage: col.stage,
113
+ opportunities: col.opportunities,
114
+ isDragging: col.isDragging,
115
+ isDropTarget: col.isDropTarget,
116
+ isDefault: col.isDefault,
117
+ isLoading: col.isLoading,
118
+ isLoadingMore: col.isLoadingMore,
119
+ hasMore: col.hasMore,
120
+ loaderRef: col.loaderRef,
121
+ onEditColumn: !col.isPinned && onEditColumn ? () => onEditColumn(col.stage.id) : void 0,
122
+ onDeleteColumn: onDeleteColumn && !col.isDefault && !col.isPinned ? () => onDeleteColumn(col.stage.id) : void 0,
123
+ onCardDrop: onMoveCard ? (cardId) => onMoveCard(cardId, col.key) : void 0,
124
+ onCardClick,
125
+ onTaskToggle,
126
+ onMarkAsDone,
127
+ onMoveToNextStage,
128
+ onSendLoanApplication: col.onSendLoanApplication,
129
+ onViewDetails,
130
+ onChangePriority,
131
+ onPutOnHold,
132
+ onDeleteOpportunity,
133
+ onAddLead: col.onAddLead,
134
+ submittingOpportunityId
135
+ },
136
+ col.key
137
+ );
107
138
  return /* @__PURE__ */ jsxs(
108
139
  "div",
109
140
  {
@@ -123,36 +154,12 @@ function PipelineBoard({
123
154
  onRefresh
124
155
  }
125
156
  ),
126
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1 gap-3 overflow-x-auto p-4", children: [
127
- columns.map((col) => /* @__PURE__ */ jsx(
128
- KanbanColumn,
129
- {
130
- stage: col.stage,
131
- opportunities: col.opportunities,
132
- isDragging: col.isDragging,
133
- isDropTarget: col.isDropTarget,
134
- isDefault: col.isDefault,
135
- isLoading: col.isLoading,
136
- isLoadingMore: col.isLoadingMore,
137
- hasMore: col.hasMore,
138
- loaderRef: col.loaderRef,
139
- onEditColumn: onEditColumn ? () => onEditColumn(col.stage.id) : void 0,
140
- onDeleteColumn: onDeleteColumn && !col.isDefault ? () => onDeleteColumn(col.stage.id) : void 0,
141
- onCardDrop: onMoveCard ? (cardId) => onMoveCard(cardId, col.key) : void 0,
142
- onCardClick,
143
- onTaskToggle,
144
- onMarkAsDone,
145
- onMoveToNextStage,
146
- onSendLoanApplication: col.onSendLoanApplication,
147
- onViewDetails,
148
- onChangePriority,
149
- onPutOnHold,
150
- onDeleteOpportunity,
151
- submittingOpportunityId
152
- },
153
- col.key
154
- )),
155
- columns.length === 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "No columns to display." }) })
157
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 overflow-hidden", children: [
158
+ pinnedCols.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 gap-3 border-r border-border p-4", children: pinnedCols.map(renderColumn) }),
159
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 gap-3 overflow-x-auto p-4", children: [
160
+ scrollableCols.map(renderColumn),
161
+ columns.length === 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "No columns to display." }) })
162
+ ] })
156
163
  ] })
157
164
  ]
158
165
  }
@@ -75,6 +75,7 @@ import {
75
75
  MapPin,
76
76
  MessageSquare,
77
77
  MoreHorizontal,
78
+ Navigation,
78
79
  Paperclip,
79
80
  Phone,
80
81
  PhoneCall,
@@ -913,6 +914,31 @@ var MEETING_LABEL = {
913
914
  phone: "Phone Call",
914
915
  "in-person": "In Person"
915
916
  };
917
+ var MEETING_DETAIL_ICON = {
918
+ video: Link2,
919
+ phone: PhoneCall,
920
+ "in-person": Navigation
921
+ };
922
+ function MeetingDetailRow({
923
+ meetingType,
924
+ detail
925
+ }) {
926
+ const DetailIcon = MEETING_DETAIL_ICON[meetingType];
927
+ const isLink = detail.startsWith("http");
928
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
929
+ /* @__PURE__ */ jsx(DetailIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
930
+ isLink ? /* @__PURE__ */ jsx(
931
+ "a",
932
+ {
933
+ href: detail,
934
+ target: "_blank",
935
+ rel: "noopener noreferrer",
936
+ className: "text-sm text-primary underline underline-offset-2 break-all hover:text-primary/80",
937
+ children: detail
938
+ }
939
+ ) : /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground break-all", children: detail })
940
+ ] });
941
+ }
916
942
  function AppointmentSection({
917
943
  appointment,
918
944
  contactId,
@@ -932,6 +958,13 @@ function AppointmentSection({
932
958
  /* @__PURE__ */ jsx(AppointmentIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
933
959
  /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: MEETING_LABEL[appointment.meetingType] })
934
960
  ] }),
961
+ appointment.meetingDetail && /* @__PURE__ */ jsx(
962
+ MeetingDetailRow,
963
+ {
964
+ meetingType: appointment.meetingType,
965
+ detail: appointment.meetingDetail
966
+ }
967
+ ),
935
968
  /* @__PURE__ */ jsx(
936
969
  "span",
937
970
  {
@@ -367,7 +367,7 @@ function AppointmentBookDialog({
367
367
  ] })
368
368
  ] }),
369
369
  /* @__PURE__ */ jsx(Separator, {}),
370
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
370
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 overflow-y-auto max-h-[calc(90vh-200px)]", children: [
371
371
  !isClientMode && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
372
372
  /* @__PURE__ */ jsx(Label, { children: "Client" }),
373
373
  /* @__PURE__ */ jsx(
@@ -1733,6 +1733,31 @@ var MEETING_LABEL = {
1733
1733
  phone: "Phone Call",
1734
1734
  "in-person": "In Person"
1735
1735
  };
1736
+ var MEETING_DETAIL_ICON = {
1737
+ video: import_lucide_react4.Link2,
1738
+ phone: import_lucide_react4.PhoneCall,
1739
+ "in-person": import_lucide_react4.Navigation
1740
+ };
1741
+ function MeetingDetailRow({
1742
+ meetingType,
1743
+ detail
1744
+ }) {
1745
+ const DetailIcon = MEETING_DETAIL_ICON[meetingType];
1746
+ const isLink = detail.startsWith("http");
1747
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center gap-2", children: [
1748
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DetailIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
1749
+ isLink ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1750
+ "a",
1751
+ {
1752
+ href: detail,
1753
+ target: "_blank",
1754
+ rel: "noopener noreferrer",
1755
+ className: "text-sm text-primary underline underline-offset-2 break-all hover:text-primary/80",
1756
+ children: detail
1757
+ }
1758
+ ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-sm text-muted-foreground break-all", children: detail })
1759
+ ] });
1760
+ }
1736
1761
  function AppointmentSection({
1737
1762
  appointment,
1738
1763
  contactId,
@@ -1752,6 +1777,13 @@ function AppointmentSection({
1752
1777
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AppointmentIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
1753
1778
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-sm text-muted-foreground", children: MEETING_LABEL[appointment.meetingType] })
1754
1779
  ] }),
1780
+ appointment.meetingDetail && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1781
+ MeetingDetailRow,
1782
+ {
1783
+ meetingType: appointment.meetingType,
1784
+ detail: appointment.meetingDetail
1785
+ }
1786
+ ),
1755
1787
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1756
1788
  "span",
1757
1789
  {
@@ -9,7 +9,7 @@ import {
9
9
  ConversationStatusChip,
10
10
  ConversationsPage,
11
11
  LeadInfoPanel
12
- } from "../../chunk-EB626HVW.mjs";
12
+ } from "../../chunk-LRQSY3TP.mjs";
13
13
  import "../../chunk-3S6KVFF5.mjs";
14
14
  import "../../chunk-WE4YKBDE.mjs";
15
15
  import "../../chunk-H5DTKPJ2.mjs";
@@ -1688,7 +1688,7 @@ function AppointmentBookDialog({
1688
1688
  ] })
1689
1689
  ] }),
1690
1690
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Separator, {}),
1691
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex flex-col gap-4", children: [
1691
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex flex-col gap-4 overflow-y-auto max-h-[calc(90vh-200px)]", children: [
1692
1692
  !isClientMode && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
1693
1693
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Label, { children: "Client" }),
1694
1694
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AppointmentBookDialog
3
- } from "../../chunk-J7KQON2N.mjs";
3
+ } from "../../chunk-RKHKBEE6.mjs";
4
4
  import "../../chunk-JTK6VJXY.mjs";
5
5
  import "../../chunk-MXP2RX2V.mjs";
6
6
  import "../../chunk-ISUA7DSB.mjs";
@@ -1358,11 +1358,66 @@ function LeadCard({
1358
1358
  );
1359
1359
  }
1360
1360
 
1361
- // src/components/ui/kanban-column.tsx
1361
+ // src/components/ui/tooltip.tsx
1362
+ var import_tooltip = require("@base-ui/react/tooltip");
1362
1363
  var import_jsx_runtime13 = require("react/jsx-runtime");
1363
- function formatTotalValue(value) {
1364
- return formatCurrency(value);
1364
+ function TooltipProvider(_a) {
1365
+ var _b = _a, {
1366
+ delay = 0
1367
+ } = _b, props = __objRest(_b, [
1368
+ "delay"
1369
+ ]);
1370
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1371
+ import_tooltip.Tooltip.Provider,
1372
+ __spreadValues({
1373
+ "data-slot": "tooltip-provider",
1374
+ delay
1375
+ }, props)
1376
+ );
1365
1377
  }
1378
+ function Tooltip(_a) {
1379
+ var props = __objRest(_a, []);
1380
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_tooltip.Tooltip.Root, __spreadValues({ "data-slot": "tooltip" }, props));
1381
+ }
1382
+ function TooltipTrigger(_a) {
1383
+ var props = __objRest(_a, []);
1384
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_tooltip.Tooltip.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
1385
+ }
1386
+ function TooltipContent(_a) {
1387
+ var _b = _a, {
1388
+ className,
1389
+ sideOffset = 8,
1390
+ side,
1391
+ children,
1392
+ style
1393
+ } = _b, props = __objRest(_b, [
1394
+ "className",
1395
+ "sideOffset",
1396
+ "side",
1397
+ "children",
1398
+ "style"
1399
+ ]);
1400
+ const themeVars = useThemeVars();
1401
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_tooltip.Tooltip.Positioner, { sideOffset, side, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1402
+ import_tooltip.Tooltip.Popup,
1403
+ __spreadProps(__spreadValues({
1404
+ className: cn(
1405
+ "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",
1406
+ className
1407
+ ),
1408
+ "data-slot": "tooltip-content",
1409
+ style: __spreadValues(__spreadValues({}, themeVars), style)
1410
+ }, props), {
1411
+ children: [
1412
+ children,
1413
+ /* @__PURE__ */ (0, import_jsx_runtime13.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" })
1414
+ ]
1415
+ })
1416
+ ) }) });
1417
+ }
1418
+
1419
+ // src/components/ui/kanban-column.tsx
1420
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1366
1421
  function growthColor(growth) {
1367
1422
  return growth > 0 ? "var(--color-success-text)" : "var(--color-destructive-text)";
1368
1423
  }
@@ -1378,6 +1433,7 @@ function KanbanColumn({
1378
1433
  loaderRef,
1379
1434
  onEditColumn,
1380
1435
  onDeleteColumn,
1436
+ onAddLead,
1381
1437
  onTaskToggle,
1382
1438
  onMarkAsDone,
1383
1439
  onMoveToNextStage,
@@ -1414,7 +1470,7 @@ function KanbanColumn({
1414
1470
  const cardId = e.dataTransfer.getData("text/plain");
1415
1471
  if (cardId) onCardDrop(cardId);
1416
1472
  }
1417
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1473
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1418
1474
  "div",
1419
1475
  {
1420
1476
  className: cn(
@@ -1428,43 +1484,67 @@ function KanbanColumn({
1428
1484
  }),
1429
1485
  "data-slot": "kanban-column",
1430
1486
  children: [
1431
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col gap-2 border-b border-border bg-background px-3 py-3", children: [
1432
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
1433
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("h2", { className: "text-sm font-semibold text-foreground", children: [
1434
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "text-muted-foreground", children: stage.count }),
1435
- " ",
1436
- stage.name
1437
- ] }),
1438
- hasMenu && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(DropdownMenu, { children: [
1439
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1440
- DropdownMenuTrigger,
1487
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex flex-col gap-2 border-b border-border bg-background px-3 py-3", children: [
1488
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
1489
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("h2", { className: "text-sm font-semibold text-foreground", children: [
1490
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1491
+ "span",
1441
1492
  {
1442
- className: cn(
1443
- buttonVariants({ variant: "ghost", size: "icon" }),
1444
- "-mr-1 size-7 shrink-0"
1445
- ),
1446
- "aria-label": "Column actions",
1447
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react7.MoreVertical, { className: "size-4" })
1493
+ className: cn(!stage.countColor && "text-muted-foreground"),
1494
+ style: stage.countColor ? { color: stage.countColor } : void 0,
1495
+ children: stage.count
1448
1496
  }
1449
1497
  ),
1450
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(DropdownMenuContent, { align: "end", children: [
1451
- onEditColumn && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DropdownMenuItem, { onClick: onEditColumn, children: "Edit column settings" }),
1452
- !isDefault && onDeleteColumn && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1453
- onEditColumn && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DropdownMenuSeparator, {}),
1454
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1455
- DropdownMenuItem,
1456
- {
1457
- onClick: onDeleteColumn,
1458
- className: "text-destructive focus:text-destructive",
1459
- children: "Delete column"
1460
- }
1461
- )
1498
+ " ",
1499
+ stage.name
1500
+ ] }),
1501
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center gap-0.5", children: [
1502
+ onAddLead && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Tooltip, { children: [
1503
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1504
+ "button",
1505
+ {
1506
+ className: cn(
1507
+ buttonVariants({ variant: "ghost", size: "icon" }),
1508
+ "size-7 shrink-0"
1509
+ ),
1510
+ onClick: onAddLead,
1511
+ "aria-label": "Add lead",
1512
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react7.Plus, { className: "size-4" })
1513
+ }
1514
+ ) }),
1515
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TooltipContent, { children: "Add lead" })
1516
+ ] }) }),
1517
+ hasMenu && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(DropdownMenu, { children: [
1518
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1519
+ DropdownMenuTrigger,
1520
+ {
1521
+ className: cn(
1522
+ buttonVariants({ variant: "ghost", size: "icon" }),
1523
+ "-mr-1 size-7 shrink-0"
1524
+ ),
1525
+ "aria-label": "Column actions",
1526
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react7.MoreVertical, { className: "size-4" })
1527
+ }
1528
+ ),
1529
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(DropdownMenuContent, { align: "end", children: [
1530
+ onEditColumn && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownMenuItem, { onClick: onEditColumn, children: "Edit column settings" }),
1531
+ !isDefault && onDeleteColumn && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1532
+ onEditColumn && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownMenuSeparator, {}),
1533
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1534
+ DropdownMenuItem,
1535
+ {
1536
+ onClick: onDeleteColumn,
1537
+ className: "text-destructive focus:text-destructive",
1538
+ children: "Delete column"
1539
+ }
1540
+ )
1541
+ ] })
1462
1542
  ] })
1463
1543
  ] })
1464
1544
  ] })
1465
1545
  ] }),
1466
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
1467
- stage.growth != null ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1546
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
1547
+ stage.growth != null ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1468
1548
  Badge,
1469
1549
  {
1470
1550
  variant: "outline",
@@ -1474,11 +1554,11 @@ function KanbanColumn({
1474
1554
  stage.growth
1475
1555
  ]
1476
1556
  }
1477
- ) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", {}),
1478
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "text-xs font-medium tabular-nums text-muted-foreground", children: formatTotalValue(stage.totalValue) })
1557
+ ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", {}),
1558
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-sm font-bold tabular-nums text-foreground", children: formatCurrency(stage.totalValue) })
1479
1559
  ] })
1480
1560
  ] }),
1481
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1561
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1482
1562
  "div",
1483
1563
  {
1484
1564
  className: cn(
@@ -1489,13 +1569,13 @@ function KanbanColumn({
1489
1569
  onDragLeave: handleDragLeave,
1490
1570
  onDrop: handleDrop,
1491
1571
  children: [
1492
- (isDropTarget || isDragOver) && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "border border-dashed border-primary/40 bg-primary/5 px-3 py-2 text-center text-xs text-primary", children: [
1572
+ (isDropTarget || isDragOver) && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "border border-dashed border-primary/40 bg-primary/5 px-3 py-2 text-center text-xs text-primary", children: [
1493
1573
  "Drop here \u2192 ",
1494
1574
  stage.name
1495
1575
  ] }),
1496
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Spinner, { className: "size-5 text-muted-foreground" }) }) : opportunities.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "text-xs text-muted-foreground", children: "No opportunities in this stage" }) }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1576
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Spinner, { className: "size-5 text-muted-foreground" }) }) : opportunities.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "text-xs text-muted-foreground", children: "No opportunities in this stage" }) }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1497
1577
  opportunities.map(
1498
- (opp) => onSendLoanApplication ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1578
+ (opp) => onSendLoanApplication ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1499
1579
  LeadCard,
1500
1580
  {
1501
1581
  id: opp.id,
@@ -1508,7 +1588,7 @@ function KanbanColumn({
1508
1588
  isSubmitting: submittingOpportunityId === opp.id
1509
1589
  },
1510
1590
  opp.id
1511
- ) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1591
+ ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1512
1592
  OpportunityCard,
1513
1593
  __spreadProps(__spreadValues({}, opp), {
1514
1594
  draggable: !!onCardDrop,
@@ -1529,12 +1609,12 @@ function KanbanColumn({
1529
1609
  opp.id
1530
1610
  )
1531
1611
  ),
1532
- hasMore && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1612
+ hasMore && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1533
1613
  "div",
1534
1614
  {
1535
1615
  ref: loaderRef,
1536
1616
  className: "flex min-h-[50px] items-center justify-center",
1537
- children: isLoadingMore && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Spinner, { className: "size-5 text-muted-foreground" })
1617
+ children: isLoadingMore && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Spinner, { className: "size-5 text-muted-foreground" })
1538
1618
  }
1539
1619
  )
1540
1620
  ] })
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  KanbanColumn
3
- } from "../../chunk-AKWN5ZQG.mjs";
3
+ } from "../../chunk-A43XIVO6.mjs";
4
4
  import "../../chunk-YV7XF32X.mjs";
5
5
  import "../../chunk-EXI64H46.mjs";
6
6
  import "../../chunk-JPGL36WQ.mjs";
7
7
  import "../../chunk-IKXYTCSB.mjs";
8
8
  import "../../chunk-JVMXMFBB.mjs";
9
9
  import "../../chunk-PNSYFE3K.mjs";
10
+ import "../../chunk-3S6KVFF5.mjs";
10
11
  import "../../chunk-H5DTKPJ2.mjs";
11
12
  import "../../chunk-2GIYVERS.mjs";
12
13
  import "../../chunk-X6RC5UWB.mjs";