@wealthx/shadcn 1.5.10 → 1.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +126 -126
- package/CHANGELOG.md +6 -0
- package/dist/{chunk-AANINK2B.mjs → chunk-2KNQZG5S.mjs} +1 -1
- package/dist/chunk-3KLJ4XRE.mjs +375 -0
- package/dist/{chunk-6U4NQGVM.mjs → chunk-4X4MGYHE.mjs} +2 -2
- package/dist/{chunk-CEEVYRQA.mjs → chunk-67DGIPQ4.mjs} +1 -1
- package/dist/{chunk-7UIL5UN3.mjs → chunk-7II6QRCZ.mjs} +1 -1
- package/dist/{chunk-W5QJ57PU.mjs → chunk-7LN5OGC2.mjs} +1 -1
- package/dist/{chunk-ZXEUBBHJ.mjs → chunk-7TMPOZDE.mjs} +1 -1
- package/dist/{chunk-AHSCWXYJ.mjs → chunk-AJUAJC5O.mjs} +1 -1
- package/dist/{chunk-3CGM3QXQ.mjs → chunk-AKWN5ZQG.mjs} +2 -2
- package/dist/{chunk-FRT3S72S.mjs → chunk-CQ7HKBEX.mjs} +1 -1
- package/dist/{chunk-E2BNCA6L.mjs → chunk-EHQL64B7.mjs} +1 -1
- package/dist/{chunk-2WCIORP7.mjs → chunk-EXI64H46.mjs} +1 -1
- package/dist/{chunk-BBXSNDS3.mjs → chunk-FQYFPHDO.mjs} +1 -1
- package/dist/{chunk-3VZ6CYY2.mjs → chunk-GAXNO4JB.mjs} +1 -1
- package/dist/{chunk-3WGFIFP6.mjs → chunk-I4P7RXAE.mjs} +1 -1
- package/dist/{chunk-Z2BW5T7P.mjs → chunk-IODGRCQG.mjs} +1 -1
- package/dist/{chunk-GS47ZSSA.mjs → chunk-J7KQON2N.mjs} +20 -5
- package/dist/{chunk-IQGKOT7A.mjs → chunk-K35TFQUB.mjs} +1 -1
- package/dist/{chunk-4DO3WM7V.mjs → chunk-K4VWSDJJ.mjs} +1 -1
- package/dist/{chunk-KWD6GANL.mjs → chunk-MPA2HV5U.mjs} +1 -1
- package/dist/{chunk-5LZZYODG.mjs → chunk-QHAMVWDG.mjs} +19 -1
- package/dist/{chunk-XUCDPAVI.mjs → chunk-R6U246E4.mjs} +2 -2
- package/dist/{chunk-VCDGLN25.mjs → chunk-S6AYZJYO.mjs} +47 -21
- package/dist/{chunk-WL6WVV47.mjs → chunk-X6RC5UWB.mjs} +1 -1
- package/dist/{chunk-4BHDDLWK.mjs → chunk-XAS6KBIG.mjs} +2 -2
- package/dist/{chunk-VWZS32ZQ.mjs → chunk-XYWEGBAA.mjs} +1 -1
- package/dist/{chunk-54MTIKNC.mjs → chunk-YV7XF32X.mjs} +49 -24
- package/dist/{chunk-E5EDZQ5J.mjs → chunk-ZA44WICP.mjs} +1 -1
- package/dist/{chunk-54TRNCID.mjs → chunk-ZMTCMP2G.mjs} +8 -8
- package/dist/components/ui/advisor-card.js +144 -55
- package/dist/components/ui/advisor-card.mjs +5 -2
- package/dist/components/ui/agent-evaluation-toast.js +1 -1
- package/dist/components/ui/agent-evaluation-toast.mjs +2 -2
- package/dist/components/ui/ai-assistant-drawer.js +1 -1
- package/dist/components/ui/ai-assistant-drawer.mjs +2 -2
- package/dist/components/ui/ai-builder.js +1 -1
- package/dist/components/ui/ai-builder.mjs +2 -2
- package/dist/components/ui/ai-conversations.js +1 -1
- package/dist/components/ui/ai-conversations.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.js +1 -1
- package/dist/components/ui/appointment-action-dialogs.mjs +3 -3
- package/dist/components/ui/appointment-book-dialog.js +19 -4
- package/dist/components/ui/appointment-book-dialog.mjs +3 -3
- package/dist/components/ui/appointment-calendar-view.js +1 -1
- package/dist/components/ui/appointment-calendar-view.mjs +2 -2
- package/dist/components/ui/appointment-detail-sheet.js +1 -1
- package/dist/components/ui/appointment-detail-sheet.mjs +4 -4
- package/dist/components/ui/appointment-gmail-connect.js +1 -1
- package/dist/components/ui/appointment-gmail-connect.mjs +2 -2
- package/dist/components/ui/appointment-time-slot-picker.js +1 -1
- package/dist/components/ui/appointment-time-slot-picker.mjs +2 -2
- package/dist/components/ui/appointment-upcoming-card.js +1 -1
- package/dist/components/ui/appointment-upcoming-card.mjs +3 -3
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/badge.mjs +1 -1
- package/dist/components/ui/chat-widget-primitives.js +1 -1
- package/dist/components/ui/chat-widget-primitives.mjs +2 -2
- package/dist/components/ui/chat-widget.js +1 -1
- package/dist/components/ui/chat-widget.mjs +3 -3
- package/dist/components/ui/chip.js +1 -1
- package/dist/components/ui/chip.mjs +2 -2
- package/dist/components/ui/contact-alert-dialog/index.js +19 -1
- package/dist/components/ui/contact-alert-dialog/index.mjs +1 -1
- package/dist/components/ui/dashboard-transactions-table.js +1 -1
- package/dist/components/ui/dashboard-transactions-table.mjs +2 -2
- package/dist/components/ui/financial-cards.js +1 -1
- package/dist/components/ui/financial-cards.mjs +2 -2
- package/dist/components/ui/financial-sections.js +1 -1
- package/dist/components/ui/financial-sections.mjs +3 -3
- package/dist/components/ui/income-summary-component.js +1 -1
- package/dist/components/ui/income-summary-component.mjs +1 -1
- package/dist/components/ui/integration-card.js +1 -1
- package/dist/components/ui/integration-card.mjs +2 -2
- package/dist/components/ui/kanban-column.js +46 -23
- package/dist/components/ui/kanban-column.mjs +4 -4
- package/dist/components/ui/loan-applicant-information.js +1 -1
- package/dist/components/ui/loan-applicant-information.mjs +1 -1
- package/dist/components/ui/loan-application-badge.js +1 -1
- package/dist/components/ui/loan-application-badge.mjs +2 -2
- package/dist/components/ui/opportunity-card.js +46 -23
- package/dist/components/ui/opportunity-card.mjs +3 -3
- package/dist/components/ui/opportunity-summary-tab.js +1 -1
- package/dist/components/ui/opportunity-summary-tab.mjs +3 -3
- package/dist/components/ui/pipeline-board.js +46 -23
- package/dist/components/ui/pipeline-board.mjs +5 -5
- package/dist/components/ui/pipeline-primitives.js +1 -1
- package/dist/components/ui/pipeline-primitives.mjs +2 -2
- package/dist/components/ui/property-asset-card.js +1 -1
- package/dist/components/ui/property-asset-card.mjs +1 -1
- package/dist/components/ui/resource-center.js +1 -1
- package/dist/components/ui/resource-center.mjs +2 -2
- package/dist/components/ui/share-details-dialog.js +326 -30
- package/dist/components/ui/share-details-dialog.mjs +4 -1
- package/dist/components/ui/stage-timeline.js +1 -1
- package/dist/components/ui/stage-timeline.mjs +3 -3
- package/dist/index.js +457 -188
- package/dist/index.mjs +44 -42
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/index.tsx +4 -0
- package/src/components/ui/advisor-card.tsx +75 -25
- package/src/components/ui/appointment-book-dialog.tsx +26 -3
- package/src/components/ui/appointment-time-slot-picker.tsx +1 -0
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/contact-alert-dialog/contact-alert-dialog.tsx +19 -1
- package/src/components/ui/opportunity-card.tsx +56 -20
- package/src/components/ui/share-details-dialog.tsx +251 -0
- package/src/styles/styles-css.ts +1 -1
- package/dist/chunk-OZ2R6ERP.mjs +0 -174
|
@@ -156,7 +156,7 @@ Slot.displayName = "Slot";
|
|
|
156
156
|
// src/components/ui/badge.tsx
|
|
157
157
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
158
158
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
159
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
159
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
160
160
|
{
|
|
161
161
|
variants: {
|
|
162
162
|
variant: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IntegrationCard
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-67DGIPQ4.mjs";
|
|
4
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
5
5
|
import "../../chunk-NOOEKOWY.mjs";
|
|
6
6
|
import "../../chunk-R4HCRDU5.mjs";
|
|
7
7
|
import "../../chunk-AFML43VJ.mjs";
|
|
@@ -181,7 +181,7 @@ Slot.displayName = "Slot";
|
|
|
181
181
|
// src/components/ui/badge.tsx
|
|
182
182
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
183
183
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
184
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
184
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
185
185
|
{
|
|
186
186
|
variants: {
|
|
187
187
|
variant: {
|
|
@@ -1245,6 +1245,45 @@ function OpportunityCard({
|
|
|
1245
1245
|
}
|
|
1246
1246
|
);
|
|
1247
1247
|
}
|
|
1248
|
+
function normalizeUrl(url) {
|
|
1249
|
+
return `https://${url.replace(/^https?:\/\//, "")}`;
|
|
1250
|
+
}
|
|
1251
|
+
function LoanApplicationLink({ url }) {
|
|
1252
|
+
const [copied, setCopied] = (0, import_react5.useState)(false);
|
|
1253
|
+
const href = normalizeUrl(url);
|
|
1254
|
+
function handleCopy() {
|
|
1255
|
+
navigator.clipboard.writeText(href).then(() => {
|
|
1256
|
+
setCopied(true);
|
|
1257
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
1258
|
+
});
|
|
1259
|
+
}
|
|
1260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1261
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-caption text-muted-foreground", children: "Or the link below to fill out the loan application directly." }),
|
|
1262
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
1263
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Link2, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
1264
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1265
|
+
"a",
|
|
1266
|
+
{
|
|
1267
|
+
href,
|
|
1268
|
+
target: "_blank",
|
|
1269
|
+
rel: "noreferrer",
|
|
1270
|
+
className: "min-w-0 flex-1 truncate text-body-small text-primary underline-offset-2 hover:underline",
|
|
1271
|
+
children: url
|
|
1272
|
+
}
|
|
1273
|
+
),
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1275
|
+
"button",
|
|
1276
|
+
{
|
|
1277
|
+
type: "button",
|
|
1278
|
+
onClick: handleCopy,
|
|
1279
|
+
className: "shrink-0 rounded p-1 text-muted-foreground transition-colors hover:text-foreground",
|
|
1280
|
+
"aria-label": "Copy link",
|
|
1281
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Check, { className: "size-4 text-success-text" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Copy, { className: "size-4" })
|
|
1282
|
+
}
|
|
1283
|
+
)
|
|
1284
|
+
] })
|
|
1285
|
+
] });
|
|
1286
|
+
}
|
|
1248
1287
|
function LeadCard({
|
|
1249
1288
|
customerName,
|
|
1250
1289
|
customerPhone,
|
|
@@ -1267,13 +1306,13 @@ function LeadCard({
|
|
|
1267
1306
|
children: [
|
|
1268
1307
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
1269
1308
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
1270
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-
|
|
1271
|
-
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1272
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1309
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-label-medium text-foreground", children: customerName }),
|
|
1310
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1311
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Phone, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1273
1312
|
customerPhone
|
|
1274
1313
|
] }),
|
|
1275
|
-
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1276
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1314
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1315
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Mail, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1277
1316
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: customerEmail })
|
|
1278
1317
|
] })
|
|
1279
1318
|
] }),
|
|
@@ -1312,23 +1351,7 @@ function LeadCard({
|
|
|
1312
1351
|
children: "Send Loan Application Request"
|
|
1313
1352
|
}
|
|
1314
1353
|
),
|
|
1315
|
-
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime12.
|
|
1316
|
-
"Or the link below to fill out the loan application directly.",
|
|
1317
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("br", {}),
|
|
1318
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1319
|
-
"a",
|
|
1320
|
-
{
|
|
1321
|
-
href: `https://${loanApplicationUrl.replace(
|
|
1322
|
-
/^https?:\/\//,
|
|
1323
|
-
""
|
|
1324
|
-
)}`,
|
|
1325
|
-
target: "_blank",
|
|
1326
|
-
rel: "noreferrer",
|
|
1327
|
-
className: "text-primary underline-offset-2 hover:underline",
|
|
1328
|
-
children: loanApplicationUrl
|
|
1329
|
-
}
|
|
1330
|
-
)
|
|
1331
|
-
] })
|
|
1354
|
+
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LoanApplicationLink, { url: loanApplicationUrl })
|
|
1332
1355
|
] })
|
|
1333
1356
|
]
|
|
1334
1357
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KanbanColumn
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-AKWN5ZQG.mjs";
|
|
4
|
+
import "../../chunk-YV7XF32X.mjs";
|
|
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
10
|
import "../../chunk-H5DTKPJ2.mjs";
|
|
11
11
|
import "../../chunk-2GIYVERS.mjs";
|
|
12
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
13
13
|
import "../../chunk-LHWJQNLG.mjs";
|
|
14
14
|
import "../../chunk-XYSRRDBH.mjs";
|
|
15
15
|
import "../../chunk-FRCTOAKZ.mjs";
|
|
@@ -155,7 +155,7 @@ Slot.displayName = "Slot";
|
|
|
155
155
|
// src/components/ui/badge.tsx
|
|
156
156
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
157
157
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
158
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
158
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
159
159
|
{
|
|
160
160
|
variants: {
|
|
161
161
|
variant: {
|
|
@@ -153,7 +153,7 @@ Slot.displayName = "Slot";
|
|
|
153
153
|
// src/components/ui/badge.tsx
|
|
154
154
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
155
155
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
156
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
156
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
157
157
|
{
|
|
158
158
|
variants: {
|
|
159
159
|
variant: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LoanApplicationBadge
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-K4VWSDJJ.mjs";
|
|
4
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
5
5
|
import "../../chunk-R4HCRDU5.mjs";
|
|
6
6
|
import "../../chunk-AFML43VJ.mjs";
|
|
7
7
|
import "../../chunk-WNQUEZJF.mjs";
|
|
@@ -195,7 +195,7 @@ Slot.displayName = "Slot";
|
|
|
195
195
|
// src/components/ui/badge.tsx
|
|
196
196
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
197
197
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
198
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
198
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
199
199
|
{
|
|
200
200
|
variants: {
|
|
201
201
|
variant: {
|
|
@@ -1215,6 +1215,45 @@ function OpportunityCard({
|
|
|
1215
1215
|
}
|
|
1216
1216
|
);
|
|
1217
1217
|
}
|
|
1218
|
+
function normalizeUrl(url) {
|
|
1219
|
+
return `https://${url.replace(/^https?:\/\//, "")}`;
|
|
1220
|
+
}
|
|
1221
|
+
function LoanApplicationLink({ url }) {
|
|
1222
|
+
const [copied, setCopied] = (0, import_react5.useState)(false);
|
|
1223
|
+
const href = normalizeUrl(url);
|
|
1224
|
+
function handleCopy() {
|
|
1225
|
+
navigator.clipboard.writeText(href).then(() => {
|
|
1226
|
+
setCopied(true);
|
|
1227
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1231
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "text-caption text-muted-foreground", children: "Or the link below to fill out the loan application directly." }),
|
|
1232
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
1233
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Link2, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
1234
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1235
|
+
"a",
|
|
1236
|
+
{
|
|
1237
|
+
href,
|
|
1238
|
+
target: "_blank",
|
|
1239
|
+
rel: "noreferrer",
|
|
1240
|
+
className: "min-w-0 flex-1 truncate text-body-small text-primary underline-offset-2 hover:underline",
|
|
1241
|
+
children: url
|
|
1242
|
+
}
|
|
1243
|
+
),
|
|
1244
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1245
|
+
"button",
|
|
1246
|
+
{
|
|
1247
|
+
type: "button",
|
|
1248
|
+
onClick: handleCopy,
|
|
1249
|
+
className: "shrink-0 rounded p-1 text-muted-foreground transition-colors hover:text-foreground",
|
|
1250
|
+
"aria-label": "Copy link",
|
|
1251
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Check, { className: "size-4 text-success-text" }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Copy, { className: "size-4" })
|
|
1252
|
+
}
|
|
1253
|
+
)
|
|
1254
|
+
] })
|
|
1255
|
+
] });
|
|
1256
|
+
}
|
|
1218
1257
|
function LeadCard({
|
|
1219
1258
|
customerName,
|
|
1220
1259
|
customerPhone,
|
|
@@ -1237,13 +1276,13 @@ function LeadCard({
|
|
|
1237
1276
|
children: [
|
|
1238
1277
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
1239
1278
|
/* @__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-
|
|
1241
|
-
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1242
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1279
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-label-medium text-foreground", children: customerName }),
|
|
1280
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1281
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Phone, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1243
1282
|
customerPhone
|
|
1244
1283
|
] }),
|
|
1245
|
-
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1246
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1284
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1285
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Mail, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1247
1286
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: customerEmail })
|
|
1248
1287
|
] })
|
|
1249
1288
|
] }),
|
|
@@ -1282,23 +1321,7 @@ function LeadCard({
|
|
|
1282
1321
|
children: "Send Loan Application Request"
|
|
1283
1322
|
}
|
|
1284
1323
|
),
|
|
1285
|
-
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime11.
|
|
1286
|
-
"Or the link below to fill out the loan application directly.",
|
|
1287
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}),
|
|
1288
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1289
|
-
"a",
|
|
1290
|
-
{
|
|
1291
|
-
href: `https://${loanApplicationUrl.replace(
|
|
1292
|
-
/^https?:\/\//,
|
|
1293
|
-
""
|
|
1294
|
-
)}`,
|
|
1295
|
-
target: "_blank",
|
|
1296
|
-
rel: "noreferrer",
|
|
1297
|
-
className: "text-primary underline-offset-2 hover:underline",
|
|
1298
|
-
children: loanApplicationUrl
|
|
1299
|
-
}
|
|
1300
|
-
)
|
|
1301
|
-
] })
|
|
1324
|
+
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LoanApplicationLink, { url: loanApplicationUrl })
|
|
1302
1325
|
] })
|
|
1303
1326
|
]
|
|
1304
1327
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LeadCard,
|
|
3
3
|
OpportunityCard
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-YV7XF32X.mjs";
|
|
5
|
+
import "../../chunk-EXI64H46.mjs";
|
|
6
6
|
import "../../chunk-JPGL36WQ.mjs";
|
|
7
7
|
import "../../chunk-IKXYTCSB.mjs";
|
|
8
8
|
import "../../chunk-PNSYFE3K.mjs";
|
|
9
9
|
import "../../chunk-H5DTKPJ2.mjs";
|
|
10
10
|
import "../../chunk-2GIYVERS.mjs";
|
|
11
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
12
12
|
import "../../chunk-LHWJQNLG.mjs";
|
|
13
13
|
import "../../chunk-XYSRRDBH.mjs";
|
|
14
14
|
import "../../chunk-FRCTOAKZ.mjs";
|
|
@@ -158,7 +158,7 @@ Slot.displayName = "Slot";
|
|
|
158
158
|
// src/components/ui/badge.tsx
|
|
159
159
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
160
160
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
161
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
161
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
162
162
|
{
|
|
163
163
|
variants: {
|
|
164
164
|
variant: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OpportunitySummaryTab
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-4X4MGYHE.mjs";
|
|
4
4
|
import "../../chunk-6MDNL5I2.mjs";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-7LN5OGC2.mjs";
|
|
6
6
|
import "../../chunk-DQB4EPIS.mjs";
|
|
7
7
|
import "../../chunk-JTK6VJXY.mjs";
|
|
8
8
|
import "../../chunk-MXP2RX2V.mjs";
|
|
@@ -12,7 +12,7 @@ import "../../chunk-USOVLDGS.mjs";
|
|
|
12
12
|
import "../../chunk-WE4YKBDE.mjs";
|
|
13
13
|
import "../../chunk-BS75ICOO.mjs";
|
|
14
14
|
import "../../chunk-LI2CTS5O.mjs";
|
|
15
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
16
16
|
import "../../chunk-TRM3KIHT.mjs";
|
|
17
17
|
import "../../chunk-HB5BKRMH.mjs";
|
|
18
18
|
import "../../chunk-FBNEIYSE.mjs";
|
|
@@ -388,7 +388,7 @@ function formatCurrency(value, options) {
|
|
|
388
388
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
389
389
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
390
390
|
var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
391
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
391
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
392
392
|
{
|
|
393
393
|
variants: {
|
|
394
394
|
variant: {
|
|
@@ -1375,6 +1375,45 @@ function OpportunityCard({
|
|
|
1375
1375
|
}
|
|
1376
1376
|
);
|
|
1377
1377
|
}
|
|
1378
|
+
function normalizeUrl(url) {
|
|
1379
|
+
return `https://${url.replace(/^https?:\/\//, "")}`;
|
|
1380
|
+
}
|
|
1381
|
+
function LoanApplicationLink({ url }) {
|
|
1382
|
+
const [copied, setCopied] = (0, import_react5.useState)(false);
|
|
1383
|
+
const href = normalizeUrl(url);
|
|
1384
|
+
function handleCopy() {
|
|
1385
|
+
navigator.clipboard.writeText(href).then(() => {
|
|
1386
|
+
setCopied(true);
|
|
1387
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
1388
|
+
});
|
|
1389
|
+
}
|
|
1390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1391
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-caption text-muted-foreground", children: "Or the link below to fill out the loan application directly." }),
|
|
1392
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
1393
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Link2, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
1394
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1395
|
+
"a",
|
|
1396
|
+
{
|
|
1397
|
+
href,
|
|
1398
|
+
target: "_blank",
|
|
1399
|
+
rel: "noreferrer",
|
|
1400
|
+
className: "min-w-0 flex-1 truncate text-body-small text-primary underline-offset-2 hover:underline",
|
|
1401
|
+
children: url
|
|
1402
|
+
}
|
|
1403
|
+
),
|
|
1404
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1405
|
+
"button",
|
|
1406
|
+
{
|
|
1407
|
+
type: "button",
|
|
1408
|
+
onClick: handleCopy,
|
|
1409
|
+
className: "shrink-0 rounded p-1 text-muted-foreground transition-colors hover:text-foreground",
|
|
1410
|
+
"aria-label": "Copy link",
|
|
1411
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Check, { className: "size-4 text-success-text" }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Copy, { className: "size-4" })
|
|
1412
|
+
}
|
|
1413
|
+
)
|
|
1414
|
+
] })
|
|
1415
|
+
] });
|
|
1416
|
+
}
|
|
1378
1417
|
function LeadCard({
|
|
1379
1418
|
customerName,
|
|
1380
1419
|
customerPhone,
|
|
@@ -1397,13 +1436,13 @@ function LeadCard({
|
|
|
1397
1436
|
children: [
|
|
1398
1437
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
1399
1438
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
1400
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-
|
|
1401
|
-
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1402
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1439
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-label-medium text-foreground", children: customerName }),
|
|
1440
|
+
customerPhone && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1441
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Phone, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1403
1442
|
customerPhone
|
|
1404
1443
|
] }),
|
|
1405
|
-
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "flex items-center gap-1.5 text-
|
|
1406
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
1444
|
+
customerEmail && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
1445
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.Mail, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
1407
1446
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "truncate", children: customerEmail })
|
|
1408
1447
|
] })
|
|
1409
1448
|
] }),
|
|
@@ -1442,23 +1481,7 @@ function LeadCard({
|
|
|
1442
1481
|
children: "Send Loan Application Request"
|
|
1443
1482
|
}
|
|
1444
1483
|
),
|
|
1445
|
-
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime15.
|
|
1446
|
-
"Or the link below to fill out the loan application directly.",
|
|
1447
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("br", {}),
|
|
1448
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1449
|
-
"a",
|
|
1450
|
-
{
|
|
1451
|
-
href: `https://${loanApplicationUrl.replace(
|
|
1452
|
-
/^https?:\/\//,
|
|
1453
|
-
""
|
|
1454
|
-
)}`,
|
|
1455
|
-
target: "_blank",
|
|
1456
|
-
rel: "noreferrer",
|
|
1457
|
-
className: "text-primary underline-offset-2 hover:underline",
|
|
1458
|
-
children: loanApplicationUrl
|
|
1459
|
-
}
|
|
1460
|
-
)
|
|
1461
|
-
] })
|
|
1484
|
+
loanApplicationUrl && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LoanApplicationLink, { url: loanApplicationUrl })
|
|
1462
1485
|
] })
|
|
1463
1486
|
]
|
|
1464
1487
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PipelineBoard
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-ZA44WICP.mjs";
|
|
4
|
+
import "../../chunk-AKWN5ZQG.mjs";
|
|
5
|
+
import "../../chunk-YV7XF32X.mjs";
|
|
6
|
+
import "../../chunk-EXI64H46.mjs";
|
|
7
7
|
import "../../chunk-JPGL36WQ.mjs";
|
|
8
8
|
import "../../chunk-IKXYTCSB.mjs";
|
|
9
9
|
import "../../chunk-JVMXMFBB.mjs";
|
|
10
10
|
import "../../chunk-PNSYFE3K.mjs";
|
|
11
11
|
import "../../chunk-H5DTKPJ2.mjs";
|
|
12
12
|
import "../../chunk-2GIYVERS.mjs";
|
|
13
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
14
14
|
import "../../chunk-LHWJQNLG.mjs";
|
|
15
15
|
import "../../chunk-OWFQSXVD.mjs";
|
|
16
16
|
import "../../chunk-6QAFGZC2.mjs";
|
|
@@ -155,7 +155,7 @@ Slot.displayName = "Slot";
|
|
|
155
155
|
// src/components/ui/badge.tsx
|
|
156
156
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
157
157
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
158
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
158
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
159
159
|
{
|
|
160
160
|
variants: {
|
|
161
161
|
variant: {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TaskCheckItem
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-EXI64H46.mjs";
|
|
4
4
|
import "../../chunk-IKXYTCSB.mjs";
|
|
5
5
|
import "../../chunk-PNSYFE3K.mjs";
|
|
6
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
7
7
|
import "../../chunk-R4HCRDU5.mjs";
|
|
8
8
|
import "../../chunk-AFML43VJ.mjs";
|
|
9
9
|
import "../../chunk-WNQUEZJF.mjs";
|
|
@@ -156,7 +156,7 @@ Slot.displayName = "Slot";
|
|
|
156
156
|
// src/components/ui/badge.tsx
|
|
157
157
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
158
158
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
159
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
159
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
160
160
|
{
|
|
161
161
|
variants: {
|
|
162
162
|
variant: {
|
|
@@ -162,7 +162,7 @@ Slot.displayName = "Slot";
|
|
|
162
162
|
// src/components/ui/badge.tsx
|
|
163
163
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
164
164
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
165
|
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-
|
|
165
|
+
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-caption whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
166
166
|
{
|
|
167
167
|
variants: {
|
|
168
168
|
variant: {
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
ResourceEmailTemplateCard,
|
|
6
6
|
ResourceModal,
|
|
7
7
|
ResourceVideoCard
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-XYWEGBAA.mjs";
|
|
9
9
|
import "../../chunk-LI2CTS5O.mjs";
|
|
10
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
11
11
|
import "../../chunk-XYSRRDBH.mjs";
|
|
12
12
|
import "../../chunk-FRCTOAKZ.mjs";
|
|
13
13
|
import "../../chunk-NOOEKOWY.mjs";
|