@wealthx/shadcn 1.3.0 → 1.3.1

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.
@@ -59,9 +59,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
59
59
  // src/components/ui/advisor-card.tsx
60
60
  var advisor_card_exports = {};
61
61
  __export(advisor_card_exports, {
62
- AdvisorCard: () => AdvisorCard
62
+ AdvisorCard: () => AdvisorCard,
63
+ AdvisorInviteCard: () => AdvisorInviteCard
63
64
  });
64
65
  module.exports = __toCommonJS(advisor_card_exports);
66
+ var import_react2 = __toESM(require("react"));
65
67
 
66
68
  // src/components/ui/badge.tsx
67
69
  var import_class_variance_authority = require("class-variance-authority");
@@ -374,31 +376,34 @@ function AdvisorCard({
374
376
  role,
375
377
  phone,
376
378
  email,
379
+ companyName,
377
380
  companyLogoUrl,
378
381
  avatarInitials,
379
382
  isPrimary = false,
380
- appointment,
383
+ appointments,
381
384
  onRefer,
382
385
  onMoreOptions,
383
386
  onBookAppointment,
384
387
  onViewAppointment
385
388
  }) {
389
+ const hasAppointments = appointments !== void 0;
390
+ const appointmentList = appointments === null || Array.isArray(appointments) && appointments.length === 0 ? null : appointments;
386
391
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col border border-border bg-card", children: [
387
392
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-start gap-4 p-4", children: [
388
393
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Avatar, { className: "h-10 w-10 shrink-0", children: [
389
394
  companyLogoUrl && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarImage, { src: companyLogoUrl, alt: `${name} company logo` }),
390
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { className: "text-sm", children: avatarInitials != null ? avatarInitials : name.slice(0, 2).toUpperCase() })
395
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { className: "text-sm", children: avatarInitials != null ? avatarInitials : companyName ? companyName.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() : name.slice(0, 2).toUpperCase() })
391
396
  ] }),
392
397
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
393
398
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm font-semibold leading-tight", children: name }),
394
399
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm text-muted-foreground", children: role }),
395
400
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "mt-2 flex flex-col gap-1", children: [
396
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
397
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Phone, { className: "h-3 w-3 shrink-0" }),
401
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5 text-sm text-muted-foreground", children: [
402
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Phone, { className: "h-4 w-4 shrink-0" }),
398
403
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: phone })
399
404
  ] }),
400
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
401
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Mail, { className: "h-3 w-3 shrink-0" }),
405
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-1.5 text-sm text-muted-foreground", children: [
406
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Mail, { className: "h-4 w-4 shrink-0" }),
402
407
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: email })
403
408
  ] })
404
409
  ] })
@@ -418,14 +423,14 @@ function AdvisorCard({
418
423
  )
419
424
  ] })
420
425
  ] }),
421
- appointment !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
426
+ hasAppointments && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
422
427
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Separator, {}),
423
- appointment ? (
424
- /* Has appointment */
428
+ appointmentList ? appointmentList.map((appt, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react2.default.Fragment, { children: [
429
+ i > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Separator, {}),
425
430
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
426
431
  "div",
427
432
  {
428
- className: `flex items-center gap-3 px-4 py-3 ${STRIP_BG[appointment.status]}`,
433
+ className: `flex items-center gap-3 px-4 py-3 ${STRIP_BG[appt.status]}`,
429
434
  children: [
430
435
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.CalendarCheck, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
431
436
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
@@ -433,19 +438,19 @@ function AdvisorCard({
433
438
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
434
439
  Badge,
435
440
  {
436
- variant: STATUS_VARIANT[appointment.status],
441
+ variant: STATUS_VARIANT[appt.status],
437
442
  className: "text-[10px]",
438
- children: STATUS_LABEL[appointment.status]
443
+ children: STATUS_LABEL[appt.status]
439
444
  }
440
445
  ),
441
- appointment.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: appointment.appointmentType })
446
+ appt.appointmentType && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "truncate text-sm font-semibold", children: appt.appointmentType })
442
447
  ] }),
443
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
444
- appointment.date,
448
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: "whitespace-nowrap text-sm text-muted-foreground", children: [
449
+ appt.date,
445
450
  " \xB7 ",
446
- appointment.timeStart,
451
+ appt.timeStart,
447
452
  "\u2013",
448
- appointment.timeEnd
453
+ appt.timeEnd
449
454
  ] })
450
455
  ] }),
451
456
  onViewAppointment && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
@@ -454,7 +459,7 @@ function AdvisorCard({
454
459
  variant: "ghost",
455
460
  size: "sm",
456
461
  className: "h-7 shrink-0 gap-1 px-2 text-xs",
457
- onClick: onViewAppointment,
462
+ onClick: () => onViewAppointment(i),
458
463
  children: [
459
464
  "View",
460
465
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.ChevronRight, { className: "h-3 w-3" })
@@ -464,8 +469,8 @@ function AdvisorCard({
464
469
  ]
465
470
  }
466
471
  )
467
- ) : (
468
- /* No appointment */
472
+ ] }, i)) : (
473
+ /* Empty state */
469
474
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-3 px-4 py-3", children: [
470
475
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Calendar, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
471
476
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "flex-1 text-xs text-muted-foreground", children: "No upcoming appointments" })
@@ -473,25 +478,53 @@ function AdvisorCard({
473
478
  )
474
479
  ] }),
475
480
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Separator, {}),
476
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2 px-4 py-3", children: [
481
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-2 px-4 py-3", children: [
477
482
  onBookAppointment && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
478
483
  Button,
479
484
  {
480
485
  variant: "outline-primary",
481
486
  size: "sm",
487
+ className: "w-full",
482
488
  onClick: onBookAppointment,
483
489
  children: "Book Appointment"
484
490
  }
485
491
  ),
486
- onRefer && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Button, { variant: "outline", size: "sm", onClick: onRefer, children: [
487
- "Refer ",
488
- name,
489
- " to Others"
490
- ] })
492
+ onRefer && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
493
+ Button,
494
+ {
495
+ variant: "outline",
496
+ size: "sm",
497
+ className: "w-full",
498
+ onClick: onRefer,
499
+ children: [
500
+ "Refer ",
501
+ name,
502
+ " to Others"
503
+ ]
504
+ }
505
+ )
491
506
  ] })
492
507
  ] });
493
508
  }
509
+ function AdvisorInviteCard({ onInvite }) {
510
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
511
+ Button,
512
+ {
513
+ variant: "ghost",
514
+ onClick: onInvite,
515
+ 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
+ children: [
517
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex h-10 w-10 items-center justify-center border border-dashed border-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Plus, { className: "h-5 w-5 text-muted-foreground" }) }),
518
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-1", children: [
519
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm font-medium", children: "Add Another Advisor" }),
520
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-xs text-muted-foreground", children: "Connect more advisors to your account" })
521
+ ] })
522
+ ]
523
+ }
524
+ );
525
+ }
494
526
  // Annotate the CommonJS export names for ESM import in node:
495
527
  0 && (module.exports = {
496
- AdvisorCard
528
+ AdvisorCard,
529
+ AdvisorInviteCard
497
530
  });
@@ -1,6 +1,7 @@
1
1
  import {
2
- AdvisorCard
3
- } from "../../chunk-FNQXOAYJ.mjs";
2
+ AdvisorCard,
3
+ AdvisorInviteCard
4
+ } from "../../chunk-Q2BGOAMG.mjs";
4
5
  import "../../chunk-24FUO7TD.mjs";
5
6
  import "../../chunk-BKNFWEH2.mjs";
6
7
  import "../../chunk-FH6QVUVZ.mjs";
@@ -9,5 +10,6 @@ import "../../chunk-DBHJ5KC3.mjs";
9
10
  import "../../chunk-VLQZANBF.mjs";
10
11
  import "../../chunk-FWCSY2DS.mjs";
11
12
  export {
12
- AdvisorCard
13
+ AdvisorCard,
14
+ AdvisorInviteCard
13
15
  };