@flamingo-stack/openframe-frontend-core 0.0.254 → 0.0.255-snapshot.20260611200421

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/{chunk-TSY72CQ6.cjs → chunk-2EFJ5EM3.cjs} +28 -28
  2. package/dist/{chunk-TSY72CQ6.cjs.map → chunk-2EFJ5EM3.cjs.map} +1 -1
  3. package/dist/{chunk-BE472J6X.js → chunk-4BKALSV6.js} +2 -2
  4. package/dist/{chunk-NP5U35FA.js → chunk-6NOYQDEO.js} +192 -177
  5. package/dist/chunk-6NOYQDEO.js.map +1 -0
  6. package/dist/{chunk-CAPVFI5A.js → chunk-6POUQWLW.js} +2 -2
  7. package/dist/{chunk-HYJ5IV4Z.cjs → chunk-7YCHLA5S.cjs} +11 -11
  8. package/dist/{chunk-HYJ5IV4Z.cjs.map → chunk-7YCHLA5S.cjs.map} +1 -1
  9. package/dist/{chunk-65JN25VM.cjs → chunk-FBTEFIJ2.cjs} +28 -28
  10. package/dist/{chunk-65JN25VM.cjs.map → chunk-FBTEFIJ2.cjs.map} +1 -1
  11. package/dist/{chunk-ELF4OOHC.cjs → chunk-GYKDSPC4.cjs} +3 -3
  12. package/dist/{chunk-ELF4OOHC.cjs.map → chunk-GYKDSPC4.cjs.map} +1 -1
  13. package/dist/{chunk-4RDJZIHW.js → chunk-HMFBMVJC.js} +2 -2
  14. package/dist/{chunk-QCRQNKRO.js → chunk-MTDSJABN.js} +3 -3
  15. package/dist/{chunk-CZR7ARBA.js → chunk-PHWQLKVE.js} +6 -2
  16. package/dist/chunk-PHWQLKVE.js.map +1 -0
  17. package/dist/{chunk-OZ3GH6OQ.cjs → chunk-PXXS27EE.cjs} +6 -2
  18. package/dist/chunk-PXXS27EE.cjs.map +1 -0
  19. package/dist/{chunk-ZITMX2IQ.cjs → chunk-YDXN25M7.cjs} +176 -161
  20. package/dist/chunk-YDXN25M7.cjs.map +1 -0
  21. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +6 -4
  23. package/dist/components/chat/index.cjs.map +1 -1
  24. package/dist/components/chat/index.d.ts +1 -0
  25. package/dist/components/chat/index.d.ts.map +1 -1
  26. package/dist/components/chat/index.js +5 -3
  27. package/dist/components/contact/index.cjs +5 -5
  28. package/dist/components/contact/index.js +4 -4
  29. package/dist/components/features/index.cjs +4 -4
  30. package/dist/components/features/index.js +3 -3
  31. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  32. package/dist/components/index.cjs +54 -52
  33. package/dist/components/index.cjs.map +1 -1
  34. package/dist/components/index.js +7 -5
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/components/navigation/app-layout-drawer.d.ts +1 -1
  37. package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
  38. package/dist/components/navigation/index.cjs +4 -4
  39. package/dist/components/navigation/index.js +3 -3
  40. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  41. package/dist/components/related-content/index.cjs +5 -5
  42. package/dist/components/related-content/index.js +4 -4
  43. package/dist/components/tickets/index.cjs +59 -59
  44. package/dist/components/tickets/index.js +5 -5
  45. package/dist/components/ui/drawer.d.ts +6 -2
  46. package/dist/components/ui/drawer.d.ts.map +1 -1
  47. package/dist/components/ui/index.cjs +6 -4
  48. package/dist/components/ui/index.cjs.map +1 -1
  49. package/dist/components/ui/index.js +5 -3
  50. package/dist/hooks/index.cjs +3 -3
  51. package/dist/hooks/index.js +2 -2
  52. package/dist/index.cjs +6 -4
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.js +5 -3
  55. package/dist/nats/index.cjs +2 -2
  56. package/dist/nats/index.js +1 -1
  57. package/dist/nats/nats-provider.d.ts.map +1 -1
  58. package/dist/nats/nats.d.ts.map +1 -1
  59. package/dist/types/navigation.d.ts +1 -0
  60. package/dist/types/navigation.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +6 -4
  63. package/src/components/chat/index.ts +1 -0
  64. package/src/components/features/notifications/notification-drawer.tsx +16 -13
  65. package/src/components/navigation/navigation-sidebar-item.tsx +14 -1
  66. package/src/components/ui/drawer.tsx +10 -3
  67. package/src/nats/nats-provider.tsx +1 -0
  68. package/src/nats/nats.ts +5 -1
  69. package/src/types/navigation.ts +1 -0
  70. package/dist/chunk-CZR7ARBA.js.map +0 -1
  71. package/dist/chunk-NP5U35FA.js.map +0 -1
  72. package/dist/chunk-OZ3GH6OQ.cjs.map +0 -1
  73. package/dist/chunk-ZITMX2IQ.cjs.map +0 -1
  74. /package/dist/{chunk-BE472J6X.js.map → chunk-4BKALSV6.js.map} +0 -0
  75. /package/dist/{chunk-CAPVFI5A.js.map → chunk-6POUQWLW.js.map} +0 -0
  76. /package/dist/{chunk-4RDJZIHW.js.map → chunk-HMFBMVJC.js.map} +0 -0
  77. /package/dist/{chunk-QCRQNKRO.js.map → chunk-MTDSJABN.js.map} +0 -0
@@ -14,7 +14,7 @@ import {
14
14
  useMdUp,
15
15
  useOnboardingState,
16
16
  useToast
17
- } from "./chunk-4RDJZIHW.js";
17
+ } from "./chunk-HMFBMVJC.js";
18
18
  import {
19
19
  Checkbox,
20
20
  FieldWrapper,
@@ -25,7 +25,7 @@ import {
25
25
  acquireClient,
26
26
  releaseClient,
27
27
  startConnectionLifecycle
28
- } from "./chunk-CZR7ARBA.js";
28
+ } from "./chunk-PHWQLKVE.js";
29
29
  import {
30
30
  ActionsMenuDropdown,
31
31
  BackButton,
@@ -3332,6 +3332,99 @@ var ChatQuickAction = React5.forwardRef(
3332
3332
  );
3333
3333
  ChatQuickAction.displayName = "ChatQuickAction";
3334
3334
 
3335
+ // src/components/chat/chat-quick-action-row.tsx
3336
+ init_cn();
3337
+ import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
3338
+ function ChipButton({ chip }) {
3339
+ return /* @__PURE__ */ jsx25(
3340
+ "button",
3341
+ {
3342
+ type: "button",
3343
+ onClick: chip.onSelect,
3344
+ className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
3345
+ children: /* @__PURE__ */ jsx25(Tag, { variant: chip.variant ?? "outline", icon: chip.icon, label: chip.label })
3346
+ }
3347
+ );
3348
+ }
3349
+ function ChatQuickActionRow({
3350
+ leading,
3351
+ chips,
3352
+ className
3353
+ }) {
3354
+ const auto = useAutoLimitTags({
3355
+ count: chips.length,
3356
+ reserveInputWidth: false
3357
+ });
3358
+ const visibleChips = chips.slice(0, auto.visibleCount);
3359
+ const hiddenChips = chips.slice(auto.visibleCount);
3360
+ if (!leading && chips.length === 0) return null;
3361
+ return /* @__PURE__ */ jsxs21(
3362
+ "div",
3363
+ {
3364
+ className: cn("relative flex shrink-0 items-center gap-1", className),
3365
+ children: [
3366
+ leading,
3367
+ chips.length > 0 && // Measured zone: `flex-1 min-w-0 overflow-hidden` so it claims the width
3368
+ // left by the pinned `leading` slot and clips anything past the fit.
3369
+ /* @__PURE__ */ jsxs21(
3370
+ "div",
3371
+ {
3372
+ ref: auto.middleRef,
3373
+ className: "flex flex-1 min-w-0 items-center gap-1 overflow-hidden",
3374
+ children: [
3375
+ visibleChips.map((chip) => /* @__PURE__ */ jsx25(ChipButton, { chip }, chip.id)),
3376
+ hiddenChips.length > 0 && /* @__PURE__ */ jsx25(
3377
+ ActionsMenuDropdown,
3378
+ {
3379
+ triggerAriaLabel: "More quick actions",
3380
+ onCloseAutoFocus: (e) => e.preventDefault(),
3381
+ groups: [
3382
+ {
3383
+ items: hiddenChips.map((chip) => ({
3384
+ id: chip.id,
3385
+ label: chip.label,
3386
+ icon: chip.icon,
3387
+ onClick: chip.onSelect
3388
+ }))
3389
+ }
3390
+ ],
3391
+ customTrigger: /* @__PURE__ */ jsx25(
3392
+ "button",
3393
+ {
3394
+ ref: auto.badgeRef,
3395
+ type: "button",
3396
+ "aria-label": "More quick actions",
3397
+ className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
3398
+ children: /* @__PURE__ */ jsx25(Tag, { variant: "outline", label: /* @__PURE__ */ jsx25(Ellipsis01Icon, { size: 16 }) })
3399
+ }
3400
+ )
3401
+ }
3402
+ )
3403
+ ]
3404
+ }
3405
+ ),
3406
+ /* @__PURE__ */ jsx25(
3407
+ "div",
3408
+ {
3409
+ ref: auto.measureRef,
3410
+ "aria-hidden": true,
3411
+ className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-1",
3412
+ children: chips.map((chip) => /* @__PURE__ */ jsx25(
3413
+ Tag,
3414
+ {
3415
+ variant: chip.variant ?? "outline",
3416
+ icon: chip.icon,
3417
+ label: chip.label
3418
+ },
3419
+ `measure-${chip.id}`
3420
+ ))
3421
+ }
3422
+ )
3423
+ ]
3424
+ }
3425
+ );
3426
+ }
3427
+
3335
3428
  // src/components/chat/chat-ticket-list.tsx
3336
3429
  init_cn();
3337
3430
  import * as React7 from "react";
@@ -3340,7 +3433,7 @@ import * as React7 from "react";
3340
3433
  init_cn();
3341
3434
  import * as React6 from "react";
3342
3435
  import { ChevronRight as ChevronRight2 } from "lucide-react";
3343
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
3436
+ import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
3344
3437
  var ChatTicketItem = React6.forwardRef(
3345
3438
  ({ className, ticket, onClick, ...props }, ref) => {
3346
3439
  const statusTagProps = resolveStatusTagProps({
@@ -3351,7 +3444,7 @@ var ChatTicketItem = React6.forwardRef(
3351
3444
  });
3352
3445
  const isResolved = ticket.statusKind === "RESOLVED" || resolveTicketStatus(ticket.status) === "RESOLVED";
3353
3446
  const subtitle = [ticket.ticketNumber, ticket.category, ticket.timeAgo].filter(Boolean).join(" \u2022 ");
3354
- return /* @__PURE__ */ jsxs21(
3447
+ return /* @__PURE__ */ jsxs22(
3355
3448
  "button",
3356
3449
  {
3357
3450
  ref,
@@ -3372,8 +3465,8 @@ var ChatTicketItem = React6.forwardRef(
3372
3465
  ),
3373
3466
  ...props,
3374
3467
  children: [
3375
- /* @__PURE__ */ jsxs21("div", { className: "flex flex-col justify-center flex-1 min-w-0 text-left", children: [
3376
- /* @__PURE__ */ jsx25(
3468
+ /* @__PURE__ */ jsxs22("div", { className: "flex flex-col justify-center flex-1 min-w-0 text-left", children: [
3469
+ /* @__PURE__ */ jsx26(
3377
3470
  "p",
3378
3471
  {
3379
3472
  className: cn(
@@ -3384,19 +3477,19 @@ var ChatTicketItem = React6.forwardRef(
3384
3477
  children: ticket.title
3385
3478
  }
3386
3479
  ),
3387
- subtitle && /* @__PURE__ */ jsx25("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
3480
+ subtitle && /* @__PURE__ */ jsx26("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
3388
3481
  ] }),
3389
- ticket.linkedTaskLabel && /* @__PURE__ */ jsx25(
3482
+ ticket.linkedTaskLabel && /* @__PURE__ */ jsx26(
3390
3483
  Tag,
3391
3484
  {
3392
3485
  label: ticket.linkedTaskLabel,
3393
3486
  variant: "outline",
3394
- icon: /* @__PURE__ */ jsx25(WrenchIcon, { size: 14, color: "var(--ods-text-secondary)" }),
3487
+ icon: /* @__PURE__ */ jsx26(WrenchIcon, { size: 14, color: "var(--ods-text-secondary)" }),
3395
3488
  className: "shrink-0 hidden sm:inline-flex"
3396
3489
  }
3397
3490
  ),
3398
- (statusTagProps.status || statusTagProps.label) && /* @__PURE__ */ jsx25(TicketStatusTag, { ...statusTagProps }),
3399
- /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center shrink-0 size-12 rounded-md bg-ods-card border border-ods-border", children: /* @__PURE__ */ jsx25(ChevronRight2, { className: "size-6 text-ods-text-secondary" }) })
3491
+ (statusTagProps.status || statusTagProps.label) && /* @__PURE__ */ jsx26(TicketStatusTag, { ...statusTagProps }),
3492
+ /* @__PURE__ */ jsx26("div", { className: "flex items-center justify-center shrink-0 size-12 rounded-md bg-ods-card border border-ods-border", children: /* @__PURE__ */ jsx26(ChevronRight2, { className: "size-6 text-ods-text-secondary" }) })
3400
3493
  ]
3401
3494
  }
3402
3495
  );
@@ -3405,7 +3498,7 @@ var ChatTicketItem = React6.forwardRef(
3405
3498
  ChatTicketItem.displayName = "ChatTicketItem";
3406
3499
 
3407
3500
  // src/components/chat/chat-ticket-list.tsx
3408
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
3501
+ import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
3409
3502
  function getMask(top, bottom) {
3410
3503
  if (top && bottom) return "linear-gradient(to bottom, transparent, black 64px, black calc(100% - 64px), transparent)";
3411
3504
  if (top) return "linear-gradient(to bottom, transparent, black 64px)";
@@ -3429,9 +3522,9 @@ var ChatTicketList = React7.forwardRef(
3429
3522
  }, [ticketCount, updateFade]);
3430
3523
  if (tickets.length === 0) return null;
3431
3524
  const mask = getMask(fadeTop, fadeBottom);
3432
- return /* @__PURE__ */ jsxs22("div", { ref, className: cn("flex flex-col gap-2 min-h-0", className), ...props, children: [
3433
- /* @__PURE__ */ jsx26("p", { className: "text-h5 text-ods-text-secondary shrink-0", children: "Your Chats:" }),
3434
- /* @__PURE__ */ jsx26(
3525
+ return /* @__PURE__ */ jsxs23("div", { ref, className: cn("flex flex-col gap-2 min-h-0", className), ...props, children: [
3526
+ /* @__PURE__ */ jsx27("p", { className: "text-h5 text-ods-text-secondary shrink-0", children: "Your Chats:" }),
3527
+ /* @__PURE__ */ jsx27(
3435
3528
  "div",
3436
3529
  {
3437
3530
  className: cn(
@@ -3439,14 +3532,14 @@ var ChatTicketList = React7.forwardRef(
3439
3532
  !fadeTop && "border-t rounded-t-md",
3440
3533
  !fadeBottom && "border-b rounded-b-md"
3441
3534
  ),
3442
- children: /* @__PURE__ */ jsx26(
3535
+ children: /* @__PURE__ */ jsx27(
3443
3536
  "div",
3444
3537
  {
3445
3538
  ref: scrollRef,
3446
3539
  className: "overflow-y-auto h-full",
3447
3540
  onScroll: updateFade,
3448
3541
  style: mask !== "none" ? { maskImage: mask, WebkitMaskImage: mask } : void 0,
3449
- children: tickets.map((ticket) => /* @__PURE__ */ jsx26(
3542
+ children: tickets.map((ticket) => /* @__PURE__ */ jsx27(
3450
3543
  ChatTicketItem,
3451
3544
  {
3452
3545
  ticket,
@@ -3465,7 +3558,7 @@ ChatTicketList.displayName = "ChatTicketList";
3465
3558
 
3466
3559
  // src/components/chat/mingo-onboarding-card-skeleton.tsx
3467
3560
  init_cn();
3468
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
3561
+ import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
3469
3562
  function MingoOnboardingCardSkeleton({
3470
3563
  titleWidth = "w-32",
3471
3564
  slashWidth = "w-20",
@@ -3474,25 +3567,25 @@ function MingoOnboardingCardSkeleton({
3474
3567
  className
3475
3568
  }) {
3476
3569
  const hasChips = chipWidths.length > 0;
3477
- return /* @__PURE__ */ jsx27(
3570
+ return /* @__PURE__ */ jsx28(
3478
3571
  "div",
3479
3572
  {
3480
3573
  className: cn(
3481
3574
  "flex w-full items-start p-[var(--spacing-system-s)] bg-ods-card border-b border-ods-border last:border-b-0",
3482
3575
  className
3483
3576
  ),
3484
- children: /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] w-full", children: [
3485
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full", children: [
3486
- /* @__PURE__ */ jsx27(Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
3487
- /* @__PURE__ */ jsx27(Skeleton, { className: cn("h-3.5 rounded-sm", titleWidth) }),
3488
- /* @__PURE__ */ jsx27("span", { className: "flex-1" }),
3489
- /* @__PURE__ */ jsx27(Skeleton, { className: cn("h-3.5 rounded-sm shrink-0", slashWidth) })
3577
+ children: /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] w-full", children: [
3578
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full", children: [
3579
+ /* @__PURE__ */ jsx28(Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
3580
+ /* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm", titleWidth) }),
3581
+ /* @__PURE__ */ jsx28("span", { className: "flex-1" }),
3582
+ /* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm shrink-0", slashWidth) })
3490
3583
  ] }),
3491
- /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
3492
- /* @__PURE__ */ jsx27(Skeleton, { className: "h-3.5 w-full rounded-sm" }),
3493
- descriptionLines === 2 ? /* @__PURE__ */ jsx27(Skeleton, { className: "h-3.5 w-[70%] rounded-sm" }) : null
3584
+ /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
3585
+ /* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-full rounded-sm" }),
3586
+ descriptionLines === 2 ? /* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-[70%] rounded-sm" }) : null
3494
3587
  ] }),
3495
- hasChips ? /* @__PURE__ */ jsx27("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xxs)] mt-[var(--spacing-system-xs)]", children: chipWidths.map((w, i) => /* @__PURE__ */ jsx27(Skeleton, { className: cn("h-7 rounded-md", w) }, i)) }) : null
3588
+ hasChips ? /* @__PURE__ */ jsx28("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xxs)] mt-[var(--spacing-system-xs)]", children: chipWidths.map((w, i) => /* @__PURE__ */ jsx28(Skeleton, { className: cn("h-7 rounded-md", w) }, i)) }) : null
3496
3589
  ] })
3497
3590
  }
3498
3591
  );
@@ -3501,7 +3594,7 @@ function MingoOnboardingListSkeleton({
3501
3594
  rows = 6,
3502
3595
  className
3503
3596
  }) {
3504
- return /* @__PURE__ */ jsx27(
3597
+ return /* @__PURE__ */ jsx28(
3505
3598
  "div",
3506
3599
  {
3507
3600
  role: "status",
@@ -3513,7 +3606,7 @@ function MingoOnboardingListSkeleton({
3513
3606
  ),
3514
3607
  children: Array.from({ length: rows }).map((_, i) => {
3515
3608
  const variant = ROW_VARIANTS[i % ROW_VARIANTS.length];
3516
- return /* @__PURE__ */ jsx27(
3609
+ return /* @__PURE__ */ jsx28(
3517
3610
  MingoOnboardingCardSkeleton,
3518
3611
  {
3519
3612
  titleWidth: variant.titleWidth,
@@ -3543,7 +3636,7 @@ import * as React9 from "react";
3543
3636
  init_cn();
3544
3637
  import * as React8 from "react";
3545
3638
  init_button2();
3546
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
3639
+ import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
3547
3640
  function dialogTime(d) {
3548
3641
  if (!d.timestamp) return null;
3549
3642
  const t = typeof d.timestamp === "string" ? Date.parse(d.timestamp) : d.timestamp.getTime();
@@ -3595,7 +3688,7 @@ function MingoChatHistoryRow({
3595
3688
  onClick: () => onRequestArchive(dialog)
3596
3689
  }
3597
3690
  ].filter(Boolean);
3598
- return /* @__PURE__ */ jsxs24(
3691
+ return /* @__PURE__ */ jsxs25(
3599
3692
  "div",
3600
3693
  {
3601
3694
  className: cn(
@@ -3604,7 +3697,7 @@ function MingoChatHistoryRow({
3604
3697
  isActive && "bg-ods-bg-hover"
3605
3698
  ),
3606
3699
  children: [
3607
- /* @__PURE__ */ jsxs24(
3700
+ /* @__PURE__ */ jsxs25(
3608
3701
  "div",
3609
3702
  {
3610
3703
  role: "button",
@@ -3618,8 +3711,8 @@ function MingoChatHistoryRow({
3618
3711
  },
3619
3712
  className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] cursor-pointer focus:outline-none focus-visible:bg-ods-bg-hover",
3620
3713
  children: [
3621
- unread > 0 ? /* @__PURE__ */ jsx28("span", { className: "flex h-8 min-w-8 shrink-0 items-center justify-center rounded-md bg-ods-accent px-[var(--spacing-system-xsf)] text-h5 text-ods-text-on-accent", children: unread > 99 ? "99+" : unread }) : null,
3622
- /* @__PURE__ */ jsx28(
3714
+ unread > 0 ? /* @__PURE__ */ jsx29("span", { className: "flex h-8 min-w-8 shrink-0 items-center justify-center rounded-md bg-ods-accent px-[var(--spacing-system-xsf)] text-h5 text-ods-text-on-accent", children: unread > 99 ? "99+" : unread }) : null,
3715
+ /* @__PURE__ */ jsx29(
3623
3716
  "span",
3624
3717
  {
3625
3718
  className: "min-w-0 flex-1 truncate text-h4 text-ods-text-primary",
@@ -3635,7 +3728,7 @@ function MingoChatHistoryRow({
3635
3728
  // right edge, free of the content's left padding. Revealed on row
3636
3729
  // hover/focus; kept visible while its menu is open. Hidden on mobile —
3637
3730
  // it's a hover affordance (no hover on touch).
3638
- /* @__PURE__ */ jsx28(
3731
+ /* @__PURE__ */ jsx29(
3639
3732
  "span",
3640
3733
  {
3641
3734
  onClick: (e) => e.stopPropagation(),
@@ -3647,7 +3740,7 @@ function MingoChatHistoryRow({
3647
3740
  "self-stretch shrink-0 transition-opacity max-md:hidden",
3648
3741
  menuOpen ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 focus-within:opacity-100"
3649
3742
  ),
3650
- children: /* @__PURE__ */ jsx28(
3743
+ children: /* @__PURE__ */ jsx29(
3651
3744
  ActionsMenuDropdown,
3652
3745
  {
3653
3746
  triggerAriaLabel: "Chat actions",
@@ -3655,14 +3748,14 @@ function MingoChatHistoryRow({
3655
3748
  open: menuOpen,
3656
3749
  onOpenChange: setMenuOpen,
3657
3750
  onCloseAutoFocus: (e) => e.preventDefault(),
3658
- customTrigger: /* @__PURE__ */ jsx28(
3751
+ customTrigger: /* @__PURE__ */ jsx29(
3659
3752
  Button,
3660
3753
  {
3661
3754
  variant: "transparent",
3662
3755
  size: "icon",
3663
3756
  "aria-label": "Chat actions",
3664
3757
  className: "h-full md:h-full rounded-none p-0 text-ods-text-secondary hover:text-ods-text-primary",
3665
- children: /* @__PURE__ */ jsx28(Ellipsis01Icon, {})
3758
+ children: /* @__PURE__ */ jsx29(Ellipsis01Icon, {})
3666
3759
  }
3667
3760
  )
3668
3761
  }
@@ -3679,7 +3772,7 @@ function MingoChatHistorySkeleton({ className }) {
3679
3772
  { withBadge: 2, widths: ["w-3/5", "w-4/5", "w-2/5", "w-3/4"] },
3680
3773
  { withBadge: 0, widths: ["w-1/2", "w-3/5", "w-2/3"] }
3681
3774
  ];
3682
- return /* @__PURE__ */ jsx28(
3775
+ return /* @__PURE__ */ jsx29(
3683
3776
  "div",
3684
3777
  {
3685
3778
  "aria-hidden": true,
@@ -3687,15 +3780,15 @@ function MingoChatHistorySkeleton({ className }) {
3687
3780
  "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-hidden",
3688
3781
  className
3689
3782
  ),
3690
- children: groups.map((group, g) => /* @__PURE__ */ jsxs24("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
3691
- /* @__PURE__ */ jsx28("div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
3692
- /* @__PURE__ */ jsx28("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ jsxs24(
3783
+ children: groups.map((group, g) => /* @__PURE__ */ jsxs25("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
3784
+ /* @__PURE__ */ jsx29("div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
3785
+ /* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ jsxs25(
3693
3786
  "div",
3694
3787
  {
3695
3788
  className: "flex h-12 items-center gap-[var(--spacing-system-xsf)] bg-ods-bg border-b border-ods-border px-[var(--spacing-system-s)] last:border-b-0",
3696
3789
  children: [
3697
- i < group.withBadge && /* @__PURE__ */ jsx28("div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
3698
- /* @__PURE__ */ jsx28("div", { className: cn("h-4 animate-pulse rounded bg-ods-border", w) })
3790
+ i < group.withBadge && /* @__PURE__ */ jsx29("div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
3791
+ /* @__PURE__ */ jsx29("div", { className: cn("h-4 animate-pulse rounded bg-ods-border", w) })
3699
3792
  ]
3700
3793
  },
3701
3794
  i
@@ -3754,21 +3847,21 @@ function MingoChatHistory({
3754
3847
  io.observe(sentinel);
3755
3848
  return () => io.disconnect();
3756
3849
  }, [hasMore]);
3757
- return /* @__PURE__ */ jsxs24("div", { className: cn("relative flex flex-1 min-h-0 flex-col", className), children: [
3758
- /* @__PURE__ */ jsxs24(
3850
+ return /* @__PURE__ */ jsxs25("div", { className: cn("relative flex flex-1 min-h-0 flex-col", className), children: [
3851
+ /* @__PURE__ */ jsxs25(
3759
3852
  "div",
3760
3853
  {
3761
3854
  ref: scrollRef,
3762
3855
  onScroll: updateFade,
3763
3856
  className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
3764
3857
  children: [
3765
- groups.map((group) => /* @__PURE__ */ jsxs24(
3858
+ groups.map((group) => /* @__PURE__ */ jsxs25(
3766
3859
  "div",
3767
3860
  {
3768
3861
  className: "flex flex-col gap-[var(--spacing-system-xxs)]",
3769
3862
  children: [
3770
- /* @__PURE__ */ jsx28("p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
3771
- /* @__PURE__ */ jsx28("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ jsx28(
3863
+ /* @__PURE__ */ jsx29("p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
3864
+ /* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ jsx29(
3772
3865
  MingoChatHistoryRow,
3773
3866
  {
3774
3867
  dialog,
@@ -3783,11 +3876,11 @@ function MingoChatHistory({
3783
3876
  },
3784
3877
  group.key
3785
3878
  )),
3786
- hasMore ? /* @__PURE__ */ jsx28("div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
3879
+ hasMore ? /* @__PURE__ */ jsx29("div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
3787
3880
  ]
3788
3881
  }
3789
3882
  ),
3790
- /* @__PURE__ */ jsx28(
3883
+ /* @__PURE__ */ jsx29(
3791
3884
  "div",
3792
3885
  {
3793
3886
  "aria-hidden": true,
@@ -3800,7 +3893,7 @@ function MingoChatHistory({
3800
3893
  }
3801
3894
  }
3802
3895
  ),
3803
- /* @__PURE__ */ jsx28(
3896
+ /* @__PURE__ */ jsx29(
3804
3897
  "div",
3805
3898
  {
3806
3899
  "aria-hidden": true,
@@ -3816,99 +3909,6 @@ function MingoChatHistory({
3816
3909
  ] });
3817
3910
  }
3818
3911
 
3819
- // src/components/chat/chat-quick-action-row.tsx
3820
- init_cn();
3821
- import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
3822
- function ChipButton({ chip }) {
3823
- return /* @__PURE__ */ jsx29(
3824
- "button",
3825
- {
3826
- type: "button",
3827
- onClick: chip.onSelect,
3828
- className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
3829
- children: /* @__PURE__ */ jsx29(Tag, { variant: chip.variant ?? "outline", icon: chip.icon, label: chip.label })
3830
- }
3831
- );
3832
- }
3833
- function ChatQuickActionRow({
3834
- leading,
3835
- chips,
3836
- className
3837
- }) {
3838
- const auto = useAutoLimitTags({
3839
- count: chips.length,
3840
- reserveInputWidth: false
3841
- });
3842
- const visibleChips = chips.slice(0, auto.visibleCount);
3843
- const hiddenChips = chips.slice(auto.visibleCount);
3844
- if (!leading && chips.length === 0) return null;
3845
- return /* @__PURE__ */ jsxs25(
3846
- "div",
3847
- {
3848
- className: cn("relative flex shrink-0 items-center gap-1", className),
3849
- children: [
3850
- leading,
3851
- chips.length > 0 && // Measured zone: `flex-1 min-w-0 overflow-hidden` so it claims the width
3852
- // left by the pinned `leading` slot and clips anything past the fit.
3853
- /* @__PURE__ */ jsxs25(
3854
- "div",
3855
- {
3856
- ref: auto.middleRef,
3857
- className: "flex flex-1 min-w-0 items-center gap-1 overflow-hidden",
3858
- children: [
3859
- visibleChips.map((chip) => /* @__PURE__ */ jsx29(ChipButton, { chip }, chip.id)),
3860
- hiddenChips.length > 0 && /* @__PURE__ */ jsx29(
3861
- ActionsMenuDropdown,
3862
- {
3863
- triggerAriaLabel: "More quick actions",
3864
- onCloseAutoFocus: (e) => e.preventDefault(),
3865
- groups: [
3866
- {
3867
- items: hiddenChips.map((chip) => ({
3868
- id: chip.id,
3869
- label: chip.label,
3870
- icon: chip.icon,
3871
- onClick: chip.onSelect
3872
- }))
3873
- }
3874
- ],
3875
- customTrigger: /* @__PURE__ */ jsx29(
3876
- "button",
3877
- {
3878
- ref: auto.badgeRef,
3879
- type: "button",
3880
- "aria-label": "More quick actions",
3881
- className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
3882
- children: /* @__PURE__ */ jsx29(Tag, { variant: "outline", label: /* @__PURE__ */ jsx29(Ellipsis01Icon, { size: 16 }) })
3883
- }
3884
- )
3885
- }
3886
- )
3887
- ]
3888
- }
3889
- ),
3890
- /* @__PURE__ */ jsx29(
3891
- "div",
3892
- {
3893
- ref: auto.measureRef,
3894
- "aria-hidden": true,
3895
- className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-1",
3896
- children: chips.map((chip) => /* @__PURE__ */ jsx29(
3897
- Tag,
3898
- {
3899
- variant: chip.variant ?? "outline",
3900
- icon: chip.icon,
3901
- label: chip.label
3902
- },
3903
- `measure-${chip.id}`
3904
- ))
3905
- }
3906
- )
3907
- ]
3908
- }
3909
- );
3910
- }
3911
-
3912
3912
  // src/components/chat/mingo-welcome.tsx
3913
3913
  init_button2();
3914
3914
  import { Fragment as Fragment2, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
@@ -10520,7 +10520,7 @@ var DrawerHeader = ({
10520
10520
  }
10521
10521
  );
10522
10522
  DrawerHeader.displayName = "DrawerHeader";
10523
- var DrawerTitle = React40.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs66("div", { className: "flex items-start gap-4", children: [
10523
+ var DrawerTitle = React40.forwardRef(({ className, children, actions, ...props }, ref) => /* @__PURE__ */ jsxs66("div", { className: "flex items-start gap-4", children: [
10524
10524
  /* @__PURE__ */ jsx85(
10525
10525
  DialogPrimitive2.Title,
10526
10526
  {
@@ -10533,6 +10533,7 @@ var DrawerTitle = React40.forwardRef(({ className, children, ...props }, ref) =>
10533
10533
  children
10534
10534
  }
10535
10535
  ),
10536
+ actions,
10536
10537
  /* @__PURE__ */ jsxs66(DialogPrimitive2.Close, { className: "shrink-0 rounded-sm text-ods-text-secondary transition-colors hover:text-ods-text-primary outline-none ring-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0", children: [
10537
10538
  /* @__PURE__ */ jsx85(X5, { className: "size-6" }),
10538
10539
  /* @__PURE__ */ jsx85("span", { className: "sr-only", children: "Close" })
@@ -20847,7 +20848,6 @@ function useOptionalNotifications() {
20847
20848
  }
20848
20849
 
20849
20850
  // src/components/features/notifications/notification-drawer.tsx
20850
- import * as DialogPrimitive3 from "@radix-ui/react-dialog";
20851
20851
  import { useEffect as useEffect36, useRef as useRef28 } from "react";
20852
20852
  init_button();
20853
20853
  init_cn();
@@ -20990,19 +20990,23 @@ function NotificationDrawer({
20990
20990
  className
20991
20991
  ),
20992
20992
  children: [
20993
- /* @__PURE__ */ jsxs140("div", { className: "flex items-baseline justify-between gap-[var(--spacing-system-m)] px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: [
20994
- /* @__PURE__ */ jsx180(DialogPrimitive3.Title, { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "New Notifications" }),
20995
- /* @__PURE__ */ jsx180(
20996
- "button",
20997
- {
20998
- type: "button",
20999
- disabled: unreadCount === 0,
21000
- onClick: markAllRead,
21001
- className: "text-h6 text-ods-text-secondary underline transition-colors hover:text-ods-text-primary disabled:opacity-40",
21002
- children: "Complete All"
21003
- }
21004
- )
21005
- ] }),
20993
+ /* @__PURE__ */ jsx180("div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx180(
20994
+ DrawerTitle,
20995
+ {
20996
+ className: "truncate",
20997
+ actions: /* @__PURE__ */ jsx180(
20998
+ "button",
20999
+ {
21000
+ type: "button",
21001
+ disabled: unreadCount === 0,
21002
+ onClick: markAllRead,
21003
+ className: "self-center text-h6 text-ods-text-secondary underline transition-colors hover:text-ods-text-primary disabled:opacity-40",
21004
+ children: "Complete All"
21005
+ }
21006
+ ),
21007
+ children: "New Notifications"
21008
+ }
21009
+ ) }),
21006
21010
  /* @__PURE__ */ jsx180(
21007
21011
  DrawerScrollList,
21008
21012
  {
@@ -22998,6 +23002,8 @@ function NavigationSidebarItemButton({
22998
23002
  onClick
22999
23003
  }) {
23000
23004
  const isActive = item.isActive ?? false;
23005
+ const unreadCount = item.unreadCount ?? 0;
23006
+ const hasUnread = unreadCount > 0;
23001
23007
  return /* @__PURE__ */ jsxs153(
23002
23008
  "button",
23003
23009
  {
@@ -23024,9 +23030,12 @@ function NavigationSidebarItemButton({
23024
23030
  "aria-label": item.label,
23025
23031
  "aria-current": isActive ? "page" : void 0,
23026
23032
  children: [
23027
- /* @__PURE__ */ jsx196("div", { className: "flex items-center justify-center flex-shrink-0", children: cloneElement(item.icon, {
23028
- color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
23029
- }) }),
23033
+ /* @__PURE__ */ jsxs153("div", { className: "relative flex items-center justify-center flex-shrink-0", children: [
23034
+ cloneElement(item.icon, {
23035
+ color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
23036
+ }),
23037
+ hasUnread && !showLabel && /* @__PURE__ */ jsx196("span", { className: "absolute top-0 right-0 bg-ods-warning rounded-full w-2 h-2" })
23038
+ ] }),
23030
23039
  /* @__PURE__ */ jsx196(
23031
23040
  "span",
23032
23041
  {
@@ -23038,6 +23047,7 @@ function NavigationSidebarItemButton({
23038
23047
  children: item.label
23039
23048
  }
23040
23049
  ),
23050
+ hasUnread && showLabel && /* @__PURE__ */ jsx196("span", { className: "bg-ods-accent flex items-center justify-center flex-shrink-0 p-2 rounded-md size-6", children: /* @__PURE__ */ jsx196("span", { className: "text-xs font-medium text-ods-text-on-accent", children: unreadCount > 99 ? "99+" : unreadCount }) }),
23041
23051
  item.badge && showLabel && /* @__PURE__ */ jsx196(
23042
23052
  "span",
23043
23053
  {
@@ -23893,7 +23903,7 @@ function AppLayout({
23893
23903
  // src/components/navigation/app-layout-drawer.tsx
23894
23904
  init_cn();
23895
23905
  import * as React82 from "react";
23896
- import * as DialogPrimitive4 from "@radix-ui/react-dialog";
23906
+ import * as DialogPrimitive3 from "@radix-ui/react-dialog";
23897
23907
  import { cva as cva8 } from "class-variance-authority";
23898
23908
  import { jsx as jsx206, jsxs as jsxs162 } from "react/jsx-runtime";
23899
23909
  var DrawerOpenContext = React82.createContext(false);
@@ -23916,7 +23926,7 @@ var AppLayoutDrawerRoot = ({
23916
23926
  [isControlled, onOpenChange]
23917
23927
  );
23918
23928
  return /* @__PURE__ */ jsx206(DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ jsx206(
23919
- DialogPrimitive4.Root,
23929
+ DialogPrimitive3.Root,
23920
23930
  {
23921
23931
  ...rest,
23922
23932
  open,
@@ -23927,8 +23937,8 @@ var AppLayoutDrawerRoot = ({
23927
23937
  ) });
23928
23938
  };
23929
23939
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
23930
- var AppLayoutDrawerTrigger = DialogPrimitive4.Trigger;
23931
- var AppLayoutDrawerClose = DialogPrimitive4.Close;
23940
+ var AppLayoutDrawerTrigger = DialogPrimitive3.Trigger;
23941
+ var AppLayoutDrawerClose = DialogPrimitive3.Close;
23932
23942
  var appLayoutDrawerVariants = cva8(
23933
23943
  "absolute z-[45] flex outline-none focus:outline-none focus-visible:outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-300",
23934
23944
  {
@@ -24257,7 +24267,7 @@ var AppLayoutDrawerContent = React82.forwardRef(
24257
24267
  const applyInlineSize = resizable && !isMobile;
24258
24268
  const sizeStyle = applyInlineSize ? isHorizontal ? { width: size } : { height: size } : {};
24259
24269
  if (keepMounted && !hasOpened) return null;
24260
- return /* @__PURE__ */ jsxs162(DialogPrimitive4.Portal, { container: portalContainer, forceMount: persist || void 0, children: [
24270
+ return /* @__PURE__ */ jsxs162(DialogPrimitive3.Portal, { container: portalContainer, forceMount: persist || void 0, children: [
24261
24271
  /* @__PURE__ */ jsx206(
24262
24272
  "div",
24263
24273
  {
@@ -24274,7 +24284,7 @@ var AppLayoutDrawerContent = React82.forwardRef(
24274
24284
  }
24275
24285
  ),
24276
24286
  /* @__PURE__ */ jsxs162(
24277
- DialogPrimitive4.Content,
24287
+ DialogPrimitive3.Content,
24278
24288
  {
24279
24289
  ref,
24280
24290
  forceMount: persist || void 0,
@@ -34168,7 +34178,7 @@ function useNatsDialogSubscription({
34168
34178
  abortControllerRef.current?.abort();
34169
34179
  abortControllerRef.current = null;
34170
34180
  };
34171
- const isDisconnectStatus = (status) => status === "closed" || status === "disconnected" || status === "error";
34181
+ const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
34172
34182
  const lifecycle = startConnectionLifecycle({
34173
34183
  conn: sharedConn,
34174
34184
  wsUrl,
@@ -34176,7 +34186,7 @@ function useNatsDialogSubscription({
34176
34186
  backoff: reconnectionBackoffRef.current,
34177
34187
  getFreshUrl: () => getNatsWsUrlRef.current(),
34178
34188
  shouldRetryOn: isDisconnectStatus,
34179
- onStatusChange: (status) => {
34189
+ onStatusChange: (status, evt) => {
34180
34190
  if (status === "connected") {
34181
34191
  setIsConnected(true);
34182
34192
  if (hadConnectionBeforeRef.current) {
@@ -34185,6 +34195,10 @@ function useNatsDialogSubscription({
34185
34195
  hadConnectionBeforeRef.current = true;
34186
34196
  onConnectRef.current?.();
34187
34197
  }
34198
+ if (status === "error") {
34199
+ console.warn("[NATS] protocol error:", evt.data);
34200
+ return;
34201
+ }
34188
34202
  if (isDisconnectStatus(status)) {
34189
34203
  setIsConnected(false);
34190
34204
  setIsSubscribed(false);
@@ -37946,7 +37960,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
37946
37960
 
37947
37961
  // src/components/chat/embeddable-chat.tsx
37948
37962
  import { useCallback as useCallback43, useEffect as useEffect65, useMemo as useMemo30, useRef as useRef59, useState as useState89 } from "react";
37949
- import * as DialogPrimitive5 from "@radix-ui/react-dialog";
37963
+ import * as DialogPrimitive4 from "@radix-ui/react-dialog";
37950
37964
  import { usePreventScroll } from "@react-aria/overlays";
37951
37965
  import { isIOS } from "@react-aria/utils";
37952
37966
 
@@ -39016,7 +39030,7 @@ function EmbeddableChatInner({
39016
39030
  /* @__PURE__ */ jsx276("div", { ref: setPortalHost, style: { display: "contents" } })
39017
39031
  ] });
39018
39032
  const panel = shellLess ? /* @__PURE__ */ jsxs222(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
39019
- /* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive5.Title, { children: [
39033
+ /* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive4.Title, { children: [
39020
39034
  sourceLabel,
39021
39035
  " AI Assistant"
39022
39036
  ] }) }),
@@ -39036,7 +39050,7 @@ function EmbeddableChatInner({
39036
39050
  "aria-describedby": void 0,
39037
39051
  className: "\n mingo-chat-content !bg-ods-bg shadow-2xl\n focus:outline-none focus-visible:outline-none\n w-screen md:w-auto\n ",
39038
39052
  children: [
39039
- /* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive5.Title, { children: [
39053
+ /* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive4.Title, { children: [
39040
39054
  sourceLabel,
39041
39055
  " AI Assistant"
39042
39056
  ] }) }),
@@ -39251,6 +39265,7 @@ export {
39251
39265
  ChatMessageRow,
39252
39266
  ChatMessageRowSkeleton,
39253
39267
  ChatQuickAction,
39268
+ ChatQuickActionRow,
39254
39269
  ChatTicketItem,
39255
39270
  ChatTicketList,
39256
39271
  MingoOnboardingCardSkeleton,
@@ -39739,4 +39754,4 @@ export {
39739
39754
  LogsList,
39740
39755
  assets
39741
39756
  };
39742
- //# sourceMappingURL=chunk-NP5U35FA.js.map
39757
+ //# sourceMappingURL=chunk-6NOYQDEO.js.map