@wealthx/shadcn 1.5.10 → 1.5.12
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 +114 -114
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-AANINK2B.mjs → chunk-2KNQZG5S.mjs} +1 -1
- package/dist/chunk-3KLJ4XRE.mjs +375 -0
- package/dist/{chunk-6U4NQGVM.mjs → chunk-4X4MGYHE.mjs} +2 -2
- package/dist/{chunk-CEEVYRQA.mjs → chunk-67DGIPQ4.mjs} +1 -1
- package/dist/{chunk-7UIL5UN3.mjs → chunk-7II6QRCZ.mjs} +1 -1
- package/dist/{chunk-W5QJ57PU.mjs → chunk-7LN5OGC2.mjs} +1 -1
- package/dist/{chunk-ZXEUBBHJ.mjs → chunk-7TMPOZDE.mjs} +1 -1
- package/dist/{chunk-AHSCWXYJ.mjs → chunk-AJUAJC5O.mjs} +1 -1
- package/dist/{chunk-3CGM3QXQ.mjs → chunk-AKWN5ZQG.mjs} +2 -2
- package/dist/{chunk-O5CP6VP6.mjs → chunk-CPM6P63C.mjs} +56 -44
- package/dist/{chunk-FRT3S72S.mjs → chunk-CQ7HKBEX.mjs} +1 -1
- package/dist/{chunk-54TRNCID.mjs → chunk-EB626HVW.mjs} +78 -11
- 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/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 +71 -4
- 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/bank-statement-generate-dialog.js +61 -46
- package/dist/components/ui/bank-statement-generate-dialog.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 +583 -232
- package/dist/index.mjs +45 -43
- 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/ai-conversations.tsx +157 -23
- 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/bank-statement-generate-dialog.tsx +84 -61
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TaskCheckItem
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EXI64H46.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Progress
|
|
6
6
|
} from "./chunk-JPGL36WQ.mjs";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-2GIYVERS.mjs";
|
|
17
17
|
import {
|
|
18
18
|
Badge
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-X6RC5UWB.mjs";
|
|
20
20
|
import {
|
|
21
21
|
formatDateDayMonth,
|
|
22
22
|
formatDateShort
|
|
@@ -47,6 +47,8 @@ import {
|
|
|
47
47
|
Users,
|
|
48
48
|
Calendar,
|
|
49
49
|
Check,
|
|
50
|
+
Copy,
|
|
51
|
+
Link2,
|
|
50
52
|
MoreVertical,
|
|
51
53
|
Clock,
|
|
52
54
|
ArrowRight,
|
|
@@ -574,6 +576,45 @@ function OpportunityCard({
|
|
|
574
576
|
}
|
|
575
577
|
);
|
|
576
578
|
}
|
|
579
|
+
function normalizeUrl(url) {
|
|
580
|
+
return `https://${url.replace(/^https?:\/\//, "")}`;
|
|
581
|
+
}
|
|
582
|
+
function LoanApplicationLink({ url }) {
|
|
583
|
+
const [copied, setCopied] = useState(false);
|
|
584
|
+
const href = normalizeUrl(url);
|
|
585
|
+
function handleCopy() {
|
|
586
|
+
navigator.clipboard.writeText(href).then(() => {
|
|
587
|
+
setCopied(true);
|
|
588
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
592
|
+
/* @__PURE__ */ jsx("p", { className: "text-caption text-muted-foreground", children: "Or the link below to fill out the loan application directly." }),
|
|
593
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
594
|
+
/* @__PURE__ */ jsx(Link2, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
595
|
+
/* @__PURE__ */ jsx(
|
|
596
|
+
"a",
|
|
597
|
+
{
|
|
598
|
+
href,
|
|
599
|
+
target: "_blank",
|
|
600
|
+
rel: "noreferrer",
|
|
601
|
+
className: "min-w-0 flex-1 truncate text-body-small text-primary underline-offset-2 hover:underline",
|
|
602
|
+
children: url
|
|
603
|
+
}
|
|
604
|
+
),
|
|
605
|
+
/* @__PURE__ */ jsx(
|
|
606
|
+
"button",
|
|
607
|
+
{
|
|
608
|
+
type: "button",
|
|
609
|
+
onClick: handleCopy,
|
|
610
|
+
className: "shrink-0 rounded p-1 text-muted-foreground transition-colors hover:text-foreground",
|
|
611
|
+
"aria-label": "Copy link",
|
|
612
|
+
children: copied ? /* @__PURE__ */ jsx(Check, { className: "size-4 text-success-text" }) : /* @__PURE__ */ jsx(Copy, { className: "size-4" })
|
|
613
|
+
}
|
|
614
|
+
)
|
|
615
|
+
] })
|
|
616
|
+
] });
|
|
617
|
+
}
|
|
577
618
|
function LeadCard({
|
|
578
619
|
customerName,
|
|
579
620
|
customerPhone,
|
|
@@ -596,13 +637,13 @@ function LeadCard({
|
|
|
596
637
|
children: [
|
|
597
638
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
|
|
598
639
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
599
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
600
|
-
customerPhone && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-
|
|
601
|
-
/* @__PURE__ */ jsx(Phone, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
640
|
+
/* @__PURE__ */ jsx("span", { className: "text-label-medium text-foreground", children: customerName }),
|
|
641
|
+
customerPhone && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
642
|
+
/* @__PURE__ */ jsx(Phone, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
602
643
|
customerPhone
|
|
603
644
|
] }),
|
|
604
|
-
customerEmail && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-
|
|
605
|
-
/* @__PURE__ */ jsx(Mail, { className: "size-3 shrink-0", "aria-hidden": "true" }),
|
|
645
|
+
customerEmail && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-caption text-muted-foreground", children: [
|
|
646
|
+
/* @__PURE__ */ jsx(Mail, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
606
647
|
/* @__PURE__ */ jsx("span", { className: "truncate", children: customerEmail })
|
|
607
648
|
] })
|
|
608
649
|
] }),
|
|
@@ -641,23 +682,7 @@ function LeadCard({
|
|
|
641
682
|
children: "Send Loan Application Request"
|
|
642
683
|
}
|
|
643
684
|
),
|
|
644
|
-
loanApplicationUrl && /* @__PURE__ */
|
|
645
|
-
"Or the link below to fill out the loan application directly.",
|
|
646
|
-
/* @__PURE__ */ jsx("br", {}),
|
|
647
|
-
/* @__PURE__ */ jsx(
|
|
648
|
-
"a",
|
|
649
|
-
{
|
|
650
|
-
href: `https://${loanApplicationUrl.replace(
|
|
651
|
-
/^https?:\/\//,
|
|
652
|
-
""
|
|
653
|
-
)}`,
|
|
654
|
-
target: "_blank",
|
|
655
|
-
rel: "noreferrer",
|
|
656
|
-
className: "text-primary underline-offset-2 hover:underline",
|
|
657
|
-
children: loanApplicationUrl
|
|
658
|
-
}
|
|
659
|
-
)
|
|
660
|
-
] })
|
|
685
|
+
loanApplicationUrl && /* @__PURE__ */ jsx(LoanApplicationLink, { url: loanApplicationUrl })
|
|
661
686
|
] })
|
|
662
687
|
]
|
|
663
688
|
}
|
|
@@ -63,7 +63,7 @@ __export(advisor_card_exports, {
|
|
|
63
63
|
AdvisorInviteCard: () => AdvisorInviteCard
|
|
64
64
|
});
|
|
65
65
|
module.exports = __toCommonJS(advisor_card_exports);
|
|
66
|
-
var
|
|
66
|
+
var import_react3 = __toESM(require("react"));
|
|
67
67
|
|
|
68
68
|
// src/components/ui/badge.tsx
|
|
69
69
|
var import_class_variance_authority = require("class-variance-authority");
|
|
@@ -157,7 +157,7 @@ Slot.displayName = "Slot";
|
|
|
157
157
|
// src/components/ui/badge.tsx
|
|
158
158
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
159
159
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
160
|
-
"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-
|
|
160
|
+
"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",
|
|
161
161
|
{
|
|
162
162
|
variants: {
|
|
163
163
|
variant: {
|
|
@@ -350,9 +350,78 @@ function Separator(_a) {
|
|
|
350
350
|
);
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
-
// src/components/ui/
|
|
353
|
+
// src/components/ui/dropdown-menu.tsx
|
|
354
354
|
var import_lucide_react2 = require("lucide-react");
|
|
355
|
+
var import_menu = require("@base-ui/react/menu");
|
|
356
|
+
|
|
357
|
+
// src/lib/theme-provider.tsx
|
|
358
|
+
var import_react2 = require("react");
|
|
355
359
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
360
|
+
var ThemeVarsContext = (0, import_react2.createContext)({});
|
|
361
|
+
function useThemeVars() {
|
|
362
|
+
return (0, import_react2.useContext)(ThemeVarsContext);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// src/components/ui/dropdown-menu.tsx
|
|
366
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
367
|
+
function DropdownMenu(_a) {
|
|
368
|
+
var props = __objRest(_a, []);
|
|
369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_menu.Menu.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
370
|
+
}
|
|
371
|
+
function DropdownMenuTrigger(_a) {
|
|
372
|
+
var props = __objRest(_a, []);
|
|
373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_menu.Menu.Trigger, __spreadValues({ "data-slot": "dropdown-menu-trigger" }, props));
|
|
374
|
+
}
|
|
375
|
+
function DropdownMenuContent(_a) {
|
|
376
|
+
var _b = _a, {
|
|
377
|
+
className,
|
|
378
|
+
sideOffset = 4,
|
|
379
|
+
style
|
|
380
|
+
} = _b, props = __objRest(_b, [
|
|
381
|
+
"className",
|
|
382
|
+
"sideOffset",
|
|
383
|
+
"style"
|
|
384
|
+
]);
|
|
385
|
+
const themeVars = useThemeVars();
|
|
386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_menu.Menu.Positioner, { sideOffset, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
387
|
+
import_menu.Menu.Popup,
|
|
388
|
+
__spreadValues({
|
|
389
|
+
className: cn(
|
|
390
|
+
"z-50 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-none border bg-popover p-1 text-popover-foreground shadow-md 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
|
|
391
|
+
className
|
|
392
|
+
),
|
|
393
|
+
"data-slot": "dropdown-menu-content",
|
|
394
|
+
style: __spreadValues(__spreadValues({}, themeVars), style)
|
|
395
|
+
}, props)
|
|
396
|
+
) }) });
|
|
397
|
+
}
|
|
398
|
+
function DropdownMenuItem(_a) {
|
|
399
|
+
var _b = _a, {
|
|
400
|
+
className,
|
|
401
|
+
inset,
|
|
402
|
+
variant = "default"
|
|
403
|
+
} = _b, props = __objRest(_b, [
|
|
404
|
+
"className",
|
|
405
|
+
"inset",
|
|
406
|
+
"variant"
|
|
407
|
+
]);
|
|
408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
409
|
+
import_menu.Menu.Item,
|
|
410
|
+
__spreadValues({
|
|
411
|
+
className: cn(
|
|
412
|
+
"relative flex cursor-default items-center gap-2 rounded-none px-2 py-1.5 text-body-small outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
413
|
+
className
|
|
414
|
+
),
|
|
415
|
+
"data-inset": inset,
|
|
416
|
+
"data-slot": "dropdown-menu-item",
|
|
417
|
+
"data-variant": variant
|
|
418
|
+
}, props)
|
|
419
|
+
);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
// src/components/ui/advisor-card.tsx
|
|
423
|
+
var import_lucide_react3 = require("lucide-react");
|
|
424
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
356
425
|
var STATUS_VARIANT = {
|
|
357
426
|
pending: "warning",
|
|
358
427
|
confirmed: "success",
|
|
@@ -382,35 +451,62 @@ function AdvisorCard({
|
|
|
382
451
|
isPrimary = false,
|
|
383
452
|
appointments,
|
|
384
453
|
onRefer,
|
|
454
|
+
menuItems,
|
|
385
455
|
onMoreOptions,
|
|
386
456
|
onBookAppointment,
|
|
387
457
|
onViewAppointment
|
|
388
458
|
}) {
|
|
389
459
|
const hasAppointments = appointments !== void 0;
|
|
390
460
|
const appointmentList = appointments === null || Array.isArray(appointments) && appointments.length === 0 ? null : appointments;
|
|
391
|
-
return /* @__PURE__ */ (0,
|
|
392
|
-
/* @__PURE__ */ (0,
|
|
393
|
-
/* @__PURE__ */ (0,
|
|
394
|
-
companyLogoUrl && /* @__PURE__ */ (0,
|
|
395
|
-
/* @__PURE__ */ (0,
|
|
461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col border border-border bg-card", children: [
|
|
462
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-start gap-4 p-4", children: [
|
|
463
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Avatar, { className: "h-10 w-10 shrink-0", children: [
|
|
464
|
+
companyLogoUrl && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(AvatarImage, { src: companyLogoUrl, alt: `${name} company logo` }),
|
|
465
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(AvatarFallback, { className: "text-caption", children: avatarInitials != null ? avatarInitials : companyName ? companyName.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() : name.slice(0, 2).toUpperCase() })
|
|
396
466
|
] }),
|
|
397
|
-
/* @__PURE__ */ (0,
|
|
398
|
-
/* @__PURE__ */ (0,
|
|
399
|
-
/* @__PURE__ */ (0,
|
|
400
|
-
/* @__PURE__ */ (0,
|
|
401
|
-
/* @__PURE__ */ (0,
|
|
402
|
-
/* @__PURE__ */ (0,
|
|
403
|
-
/* @__PURE__ */ (0,
|
|
467
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
468
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-label-large leading-tight", children: name }),
|
|
469
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-body-small text-muted-foreground", children: role }),
|
|
470
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "mt-2 flex flex-col gap-1", children: [
|
|
471
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-1.5 text-body-small text-muted-foreground", children: [
|
|
472
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Phone, { className: "h-4 w-4 shrink-0" }),
|
|
473
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: phone })
|
|
404
474
|
] }),
|
|
405
|
-
/* @__PURE__ */ (0,
|
|
406
|
-
/* @__PURE__ */ (0,
|
|
407
|
-
/* @__PURE__ */ (0,
|
|
475
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-1.5 text-body-small text-muted-foreground", children: [
|
|
476
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Mail, { className: "h-4 w-4 shrink-0" }),
|
|
477
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: email })
|
|
408
478
|
] })
|
|
409
479
|
] })
|
|
410
480
|
] }),
|
|
411
|
-
/* @__PURE__ */ (0,
|
|
412
|
-
isPrimary && /* @__PURE__ */ (0,
|
|
413
|
-
/* @__PURE__ */ (0,
|
|
481
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
482
|
+
isPrimary && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Badge, { variant: "success", children: "Primary" }),
|
|
483
|
+
menuItems && menuItems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(DropdownMenu, { children: [
|
|
484
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
485
|
+
DropdownMenuTrigger,
|
|
486
|
+
{
|
|
487
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
488
|
+
Button,
|
|
489
|
+
{
|
|
490
|
+
variant: "ghost",
|
|
491
|
+
size: "icon",
|
|
492
|
+
className: "h-7 w-7",
|
|
493
|
+
"aria-label": "More options"
|
|
494
|
+
}
|
|
495
|
+
),
|
|
496
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.MoreVertical, { className: "h-4 w-4" })
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropdownMenuContent, { align: "end", children: menuItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
500
|
+
DropdownMenuItem,
|
|
501
|
+
{
|
|
502
|
+
variant: item.variant,
|
|
503
|
+
disabled: item.disabled,
|
|
504
|
+
onClick: item.onClick,
|
|
505
|
+
children: item.label
|
|
506
|
+
},
|
|
507
|
+
i
|
|
508
|
+
)) })
|
|
509
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
414
510
|
Button,
|
|
415
511
|
{
|
|
416
512
|
variant: "ghost",
|
|
@@ -418,34 +514,27 @@ function AdvisorCard({
|
|
|
418
514
|
className: "h-7 w-7",
|
|
419
515
|
onClick: onMoreOptions,
|
|
420
516
|
"aria-label": "More options",
|
|
421
|
-
children: /* @__PURE__ */ (0,
|
|
517
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.MoreVertical, { className: "h-4 w-4" })
|
|
422
518
|
}
|
|
423
519
|
)
|
|
424
520
|
] })
|
|
425
521
|
] }),
|
|
426
|
-
hasAppointments && /* @__PURE__ */ (0,
|
|
427
|
-
/* @__PURE__ */ (0,
|
|
428
|
-
appointmentList ? appointmentList.map((appt, i) => /* @__PURE__ */ (0,
|
|
429
|
-
i > 0 && /* @__PURE__ */ (0,
|
|
430
|
-
/* @__PURE__ */ (0,
|
|
522
|
+
hasAppointments && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
523
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Separator, {}),
|
|
524
|
+
appointmentList ? appointmentList.map((appt, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react3.default.Fragment, { children: [
|
|
525
|
+
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Separator, {}),
|
|
526
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
431
527
|
"div",
|
|
432
528
|
{
|
|
433
529
|
className: `flex items-center gap-3 px-4 py-3 ${STRIP_BG[appt.status]}`,
|
|
434
530
|
children: [
|
|
435
|
-
/* @__PURE__ */ (0,
|
|
436
|
-
/* @__PURE__ */ (0,
|
|
437
|
-
/* @__PURE__ */ (0,
|
|
438
|
-
/* @__PURE__ */ (0,
|
|
439
|
-
|
|
440
|
-
{
|
|
441
|
-
variant: STATUS_VARIANT[appt.status],
|
|
442
|
-
className: "text-[10px]",
|
|
443
|
-
children: STATUS_LABEL[appt.status]
|
|
444
|
-
}
|
|
445
|
-
),
|
|
446
|
-
appt.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "truncate text-sm font-semibold", children: appt.appointmentType })
|
|
531
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.CalendarCheck, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
532
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
533
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
534
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Badge, { variant: STATUS_VARIANT[appt.status], children: STATUS_LABEL[appt.status] }),
|
|
535
|
+
appt.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "truncate text-h6", children: appt.appointmentType })
|
|
447
536
|
] }),
|
|
448
|
-
/* @__PURE__ */ (0,
|
|
537
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("p", { className: "whitespace-nowrap text-body-small text-muted-foreground", children: [
|
|
449
538
|
appt.date,
|
|
450
539
|
" \xB7 ",
|
|
451
540
|
appt.timeStart,
|
|
@@ -453,7 +542,7 @@ function AdvisorCard({
|
|
|
453
542
|
appt.timeEnd
|
|
454
543
|
] })
|
|
455
544
|
] }),
|
|
456
|
-
onViewAppointment && /* @__PURE__ */ (0,
|
|
545
|
+
onViewAppointment && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
457
546
|
Button,
|
|
458
547
|
{
|
|
459
548
|
variant: "ghost",
|
|
@@ -462,7 +551,7 @@ function AdvisorCard({
|
|
|
462
551
|
onClick: () => onViewAppointment(i),
|
|
463
552
|
children: [
|
|
464
553
|
"View",
|
|
465
|
-
/* @__PURE__ */ (0,
|
|
554
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.ChevronRight, { className: "h-3 w-3" })
|
|
466
555
|
]
|
|
467
556
|
}
|
|
468
557
|
)
|
|
@@ -471,15 +560,15 @@ function AdvisorCard({
|
|
|
471
560
|
)
|
|
472
561
|
] }, i)) : (
|
|
473
562
|
/* Empty state */
|
|
474
|
-
/* @__PURE__ */ (0,
|
|
475
|
-
/* @__PURE__ */ (0,
|
|
476
|
-
/* @__PURE__ */ (0,
|
|
563
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-3 px-4 py-3", children: [
|
|
564
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Calendar, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
565
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "flex-1 text-caption text-muted-foreground", children: "No upcoming appointments" })
|
|
477
566
|
] })
|
|
478
567
|
)
|
|
479
568
|
] }),
|
|
480
|
-
/* @__PURE__ */ (0,
|
|
481
|
-
/* @__PURE__ */ (0,
|
|
482
|
-
onBookAppointment && /* @__PURE__ */ (0,
|
|
569
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Separator, {}),
|
|
570
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-2 px-4 py-3", children: [
|
|
571
|
+
onBookAppointment && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
483
572
|
Button,
|
|
484
573
|
{
|
|
485
574
|
variant: "outline-primary",
|
|
@@ -489,10 +578,10 @@ function AdvisorCard({
|
|
|
489
578
|
children: "Book Appointment"
|
|
490
579
|
}
|
|
491
580
|
),
|
|
492
|
-
onRefer && /* @__PURE__ */ (0,
|
|
581
|
+
onRefer && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
493
582
|
Button,
|
|
494
583
|
{
|
|
495
|
-
variant: "
|
|
584
|
+
variant: "default",
|
|
496
585
|
size: "sm",
|
|
497
586
|
className: "w-full",
|
|
498
587
|
onClick: onRefer,
|
|
@@ -507,17 +596,17 @@ function AdvisorCard({
|
|
|
507
596
|
] });
|
|
508
597
|
}
|
|
509
598
|
function AdvisorInviteCard({ onInvite }) {
|
|
510
|
-
return /* @__PURE__ */ (0,
|
|
599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
511
600
|
Button,
|
|
512
601
|
{
|
|
513
602
|
variant: "ghost",
|
|
514
603
|
onClick: onInvite,
|
|
515
604
|
className: "flex h-auto w-full flex-col items-center justify-center gap-3 border border-dashed border-border bg-card p-8 text-center transition-colors hover:bg-muted/40",
|
|
516
605
|
children: [
|
|
517
|
-
/* @__PURE__ */ (0,
|
|
518
|
-
/* @__PURE__ */ (0,
|
|
519
|
-
/* @__PURE__ */ (0,
|
|
520
|
-
/* @__PURE__ */ (0,
|
|
606
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex h-10 w-10 items-center justify-center border border-dashed border-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Plus, { className: "h-5 w-5 text-muted-foreground" }) }),
|
|
607
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
608
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-label-large", children: "Add Another Advisor" }),
|
|
609
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-caption text-muted-foreground", children: "Connect more advisors to your account" })
|
|
521
610
|
] })
|
|
522
611
|
]
|
|
523
612
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AdvisorCard,
|
|
3
3
|
AdvisorInviteCard
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-S6AYZJYO.mjs";
|
|
5
|
+
import "../../chunk-H5DTKPJ2.mjs";
|
|
5
6
|
import "../../chunk-2GIYVERS.mjs";
|
|
6
7
|
import "../../chunk-H6NQTIF4.mjs";
|
|
7
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
9
|
+
import "../../chunk-XYSRRDBH.mjs";
|
|
10
|
+
import "../../chunk-FRCTOAKZ.mjs";
|
|
8
11
|
import "../../chunk-NOOEKOWY.mjs";
|
|
9
12
|
import "../../chunk-R4HCRDU5.mjs";
|
|
10
13
|
import "../../chunk-AFML43VJ.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,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentEvaluationCard,
|
|
3
3
|
showAgentEvaluationToast
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-AJUAJC5O.mjs";
|
|
5
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
6
6
|
import "../../chunk-R4HCRDU5.mjs";
|
|
7
7
|
import "../../chunk-AFML43VJ.mjs";
|
|
8
8
|
import "../../chunk-WNQUEZJF.mjs";
|
|
@@ -326,7 +326,7 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
|
|
|
326
326
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
327
327
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
328
328
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
329
|
-
"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-
|
|
329
|
+
"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",
|
|
330
330
|
{
|
|
331
331
|
variants: {
|
|
332
332
|
variant: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AiAssistantDrawer
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-7II6QRCZ.mjs";
|
|
4
4
|
import "../../chunk-NCMV3LTP.mjs";
|
|
5
5
|
import "../../chunk-JVMXMFBB.mjs";
|
|
6
6
|
import "../../chunk-BS75ICOO.mjs";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
8
8
|
import "../../chunk-XYSRRDBH.mjs";
|
|
9
9
|
import "../../chunk-FRCTOAKZ.mjs";
|
|
10
10
|
import "../../chunk-NOOEKOWY.mjs";
|
|
@@ -234,7 +234,7 @@ Slot.displayName = "Slot";
|
|
|
234
234
|
// src/components/ui/badge.tsx
|
|
235
235
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
236
236
|
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
237
|
-
"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-
|
|
237
|
+
"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",
|
|
238
238
|
{
|
|
239
239
|
variants: {
|
|
240
240
|
variant: {
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
IntegrationInstructionCard,
|
|
5
5
|
IntegrationServiceCard,
|
|
6
6
|
ServiceConfigurationModal
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-GAXNO4JB.mjs";
|
|
8
8
|
import "../../chunk-3VDET466.mjs";
|
|
9
9
|
import "../../chunk-PNSYFE3K.mjs";
|
|
10
10
|
import "../../chunk-LI2CTS5O.mjs";
|
|
11
11
|
import "../../chunk-H6NQTIF4.mjs";
|
|
12
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-X6RC5UWB.mjs";
|
|
13
13
|
import "../../chunk-XYSRRDBH.mjs";
|
|
14
14
|
import "../../chunk-FRCTOAKZ.mjs";
|
|
15
15
|
import "../../chunk-NOOEKOWY.mjs";
|