@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.
- package/dist/{chunk-TSY72CQ6.cjs → chunk-2EFJ5EM3.cjs} +28 -28
- package/dist/{chunk-TSY72CQ6.cjs.map → chunk-2EFJ5EM3.cjs.map} +1 -1
- package/dist/{chunk-BE472J6X.js → chunk-4BKALSV6.js} +2 -2
- package/dist/{chunk-NP5U35FA.js → chunk-6NOYQDEO.js} +192 -177
- package/dist/chunk-6NOYQDEO.js.map +1 -0
- package/dist/{chunk-CAPVFI5A.js → chunk-6POUQWLW.js} +2 -2
- package/dist/{chunk-HYJ5IV4Z.cjs → chunk-7YCHLA5S.cjs} +11 -11
- package/dist/{chunk-HYJ5IV4Z.cjs.map → chunk-7YCHLA5S.cjs.map} +1 -1
- package/dist/{chunk-65JN25VM.cjs → chunk-FBTEFIJ2.cjs} +28 -28
- package/dist/{chunk-65JN25VM.cjs.map → chunk-FBTEFIJ2.cjs.map} +1 -1
- package/dist/{chunk-ELF4OOHC.cjs → chunk-GYKDSPC4.cjs} +3 -3
- package/dist/{chunk-ELF4OOHC.cjs.map → chunk-GYKDSPC4.cjs.map} +1 -1
- package/dist/{chunk-4RDJZIHW.js → chunk-HMFBMVJC.js} +2 -2
- package/dist/{chunk-QCRQNKRO.js → chunk-MTDSJABN.js} +3 -3
- package/dist/{chunk-CZR7ARBA.js → chunk-PHWQLKVE.js} +6 -2
- package/dist/chunk-PHWQLKVE.js.map +1 -0
- package/dist/{chunk-OZ3GH6OQ.cjs → chunk-PXXS27EE.cjs} +6 -2
- package/dist/chunk-PXXS27EE.cjs.map +1 -0
- package/dist/{chunk-ZITMX2IQ.cjs → chunk-YDXN25M7.cjs} +176 -161
- package/dist/chunk-YDXN25M7.cjs.map +1 -0
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +6 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +1 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +5 -3
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/index.cjs +54 -52
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +7 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/app-layout-drawer.d.ts +1 -1
- package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +5 -5
- package/dist/components/related-content/index.js +4 -4
- package/dist/components/tickets/index.cjs +59 -59
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/drawer.d.ts +6 -2
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +6 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +5 -3
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +6 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -3
- package/dist/nats/index.cjs +2 -2
- package/dist/nats/index.js +1 -1
- package/dist/nats/nats-provider.d.ts.map +1 -1
- package/dist/nats/nats.d.ts.map +1 -1
- package/dist/types/navigation.d.ts +1 -0
- package/dist/types/navigation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +6 -4
- package/src/components/chat/index.ts +1 -0
- package/src/components/features/notifications/notification-drawer.tsx +16 -13
- package/src/components/navigation/navigation-sidebar-item.tsx +14 -1
- package/src/components/ui/drawer.tsx +10 -3
- package/src/nats/nats-provider.tsx +1 -0
- package/src/nats/nats.ts +5 -1
- package/src/types/navigation.ts +1 -0
- package/dist/chunk-CZR7ARBA.js.map +0 -1
- package/dist/chunk-NP5U35FA.js.map +0 -1
- package/dist/chunk-OZ3GH6OQ.cjs.map +0 -1
- package/dist/chunk-ZITMX2IQ.cjs.map +0 -1
- /package/dist/{chunk-BE472J6X.js.map → chunk-4BKALSV6.js.map} +0 -0
- /package/dist/{chunk-CAPVFI5A.js.map → chunk-6POUQWLW.js.map} +0 -0
- /package/dist/{chunk-4RDJZIHW.js.map → chunk-HMFBMVJC.js.map} +0 -0
- /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-
|
|
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-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
3376
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3480
|
+
subtitle && /* @__PURE__ */ jsx26("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
|
|
3388
3481
|
] }),
|
|
3389
|
-
ticket.linkedTaskLabel && /* @__PURE__ */
|
|
3482
|
+
ticket.linkedTaskLabel && /* @__PURE__ */ jsx26(
|
|
3390
3483
|
Tag,
|
|
3391
3484
|
{
|
|
3392
3485
|
label: ticket.linkedTaskLabel,
|
|
3393
3486
|
variant: "outline",
|
|
3394
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
3399
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
3433
|
-
/* @__PURE__ */
|
|
3434
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
3485
|
-
/* @__PURE__ */
|
|
3486
|
-
/* @__PURE__ */
|
|
3487
|
-
/* @__PURE__ */
|
|
3488
|
-
/* @__PURE__ */
|
|
3489
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3492
|
-
/* @__PURE__ */
|
|
3493
|
-
descriptionLines === 2 ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3622
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3691
|
-
/* @__PURE__ */
|
|
3692
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3698
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3758
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
3771
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3879
|
+
hasMore ? /* @__PURE__ */ jsx29("div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
|
|
3787
3880
|
]
|
|
3788
3881
|
}
|
|
3789
3882
|
),
|
|
3790
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
20994
|
-
|
|
20995
|
-
|
|
20996
|
-
"
|
|
20997
|
-
|
|
20998
|
-
|
|
20999
|
-
|
|
21000
|
-
|
|
21001
|
-
|
|
21002
|
-
|
|
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__ */
|
|
23028
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
23931
|
-
var AppLayoutDrawerClose =
|
|
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(
|
|
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
|
-
|
|
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"
|
|
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
|
|
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(
|
|
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(
|
|
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-
|
|
39757
|
+
//# sourceMappingURL=chunk-6NOYQDEO.js.map
|