@flamingo-stack/openframe-frontend-core 0.0.254 → 0.0.255-snapshot.20260611213621
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-ELF4OOHC.cjs → chunk-3DC6MHW6.cjs} +33 -33
- package/dist/{chunk-ELF4OOHC.cjs.map → chunk-3DC6MHW6.cjs.map} +1 -1
- package/dist/{chunk-QCRQNKRO.js → chunk-46DHPQY6.js} +4 -4
- package/dist/{chunk-ZITMX2IQ.cjs → chunk-6F5CGBVT.cjs} +745 -767
- package/dist/chunk-6F5CGBVT.cjs.map +1 -0
- package/dist/{chunk-4RDJZIHW.js → chunk-6GBA6YJN.js} +3 -3
- package/dist/{chunk-4HHYUEMD.js → chunk-7RLV3U5C.js} +2 -2
- package/dist/{chunk-SGJBUL2Y.cjs → chunk-7VMEOFEA.cjs} +45 -2
- package/dist/chunk-7VMEOFEA.cjs.map +1 -0
- package/dist/{chunk-TSY72CQ6.cjs → chunk-CMWRZECW.cjs} +77 -42
- package/dist/chunk-CMWRZECW.cjs.map +1 -0
- package/dist/{chunk-CAPVFI5A.js → chunk-HCMVLEC3.js} +4 -4
- package/dist/{chunk-LZL6P7SN.cjs → chunk-IG4QRNYZ.cjs} +10 -10
- package/dist/{chunk-LZL6P7SN.cjs.map → chunk-IG4QRNYZ.cjs.map} +1 -1
- package/dist/{chunk-HYJ5IV4Z.cjs → chunk-ISALYOFX.cjs} +19 -19
- package/dist/{chunk-HYJ5IV4Z.cjs.map → chunk-ISALYOFX.cjs.map} +1 -1
- package/dist/{chunk-MKVKVJQQ.js → chunk-J3QMPOS6.js} +5 -4
- package/dist/chunk-J3QMPOS6.js.map +1 -0
- package/dist/{chunk-BE472J6X.js → chunk-JK25REDL.js} +48 -13
- package/dist/chunk-JK25REDL.js.map +1 -0
- package/dist/{chunk-Z4IBEIWD.cjs → chunk-LGLPNWS6.cjs} +3 -3
- package/dist/{chunk-Z4IBEIWD.cjs.map → chunk-LGLPNWS6.cjs.map} +1 -1
- package/dist/{chunk-VAUI3CND.js → chunk-NR535XIY.js} +44 -1
- package/dist/chunk-NR535XIY.js.map +1 -0
- 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-2FCXJTOV.js → chunk-QXSRQVRO.js} +3 -1
- package/dist/chunk-QXSRQVRO.js.map +1 -0
- package/dist/{chunk-NP5U35FA.js → chunk-S7IX7YU4.js} +198 -220
- package/dist/chunk-S7IX7YU4.js.map +1 -0
- package/dist/{chunk-6LK4VEXE.cjs → chunk-TSZBJVYK.cjs} +35 -31
- package/dist/chunk-TSZBJVYK.cjs.map +1 -0
- package/dist/{chunk-TU26IZPO.cjs → chunk-U6UNAC32.cjs} +3 -1
- package/dist/chunk-U6UNAC32.cjs.map +1 -0
- package/dist/{chunk-265KKBV2.js → chunk-V4IIBNTA.js} +3 -3
- package/dist/chunk-V4IIBNTA.js.map +1 -0
- package/dist/{chunk-65JN25VM.cjs → chunk-V4Q5PIBV.cjs} +30 -30
- package/dist/{chunk-65JN25VM.cjs.map → chunk-V4Q5PIBV.cjs.map} +1 -1
- package/dist/{chunk-LKI3YCAX.js → chunk-V5L4D454.js} +10 -6
- package/dist/chunk-V5L4D454.js.map +1 -0
- package/dist/{chunk-3TDLFCCS.cjs → chunk-ZJP2BB3E.cjs} +6 -5
- package/dist/chunk-ZJP2BB3E.cjs.map +1 -0
- package/dist/components/chat/entity-cards/entity-author-card.d.ts +13 -9
- package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +10 -8
- 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 +9 -7
- package/dist/components/chat/types/entities/onboarding-guide.d.ts +2 -7
- package/dist/components/chat/types/entities/onboarding-guide.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +9 -9
- package/dist/components/contact/index.js +8 -8
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +8 -8
- package/dist/components/features/index.js +7 -7
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/icons/index.cjs +2 -2
- package/dist/components/icons/index.js +1 -1
- package/dist/components/index.cjs +167 -157
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +55 -45
- 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 +8 -8
- package/dist/components/navigation/index.js +7 -7
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +25 -23
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +6 -4
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +4 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +11 -9
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.d.ts +1 -1
- package/dist/components/related-content/index.d.ts.map +1 -1
- package/dist/components/related-content/index.js +10 -8
- package/dist/components/related-content/related-content-section.d.ts +16 -1
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +4 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/social-icon-row.d.ts +17 -4
- package/dist/components/social-icon-row.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +81 -81
- package/dist/components/tickets/index.js +9 -9
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +6 -2
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +20 -20
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +10 -8
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +9 -7
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/index.js +3 -3
- package/dist/index.cjs +13 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -13
- 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/blog.d.ts +7 -0
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/entity-author.d.ts +18 -0
- package/dist/types/entity-author.d.ts.map +1 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/navigation.d.ts +1 -0
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/types/product-release.d.ts +2 -7
- package/dist/types/product-release.d.ts.map +1 -1
- package/dist/utils/common.d.ts +9 -0
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/index.cjs +6 -2
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -3
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +30 -11
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +6 -4
- package/src/components/chat/index.ts +1 -0
- package/src/components/chat/types/entities/onboarding-guide.ts +3 -7
- package/src/components/faq/faq-section.tsx +4 -1
- package/src/components/features/notifications/notification-drawer.tsx +16 -13
- package/src/components/icons/x-logo.tsx +2 -2
- package/src/components/navigation/navigation-sidebar-item.tsx +14 -1
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +5 -0
- package/src/components/related-content/index.ts +1 -0
- package/src/components/related-content/related-content-section.tsx +84 -8
- package/src/components/shared/product-release/release-detail-page.tsx +18 -21
- package/src/components/social-icon-row.tsx +51 -22
- package/src/components/ui/button/button.tsx +7 -0
- 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/blog.ts +9 -1
- package/src/types/entity-author.ts +17 -0
- package/src/types/index.ts +1 -0
- package/src/types/navigation.ts +1 -0
- package/src/types/product-release.ts +2 -7
- package/src/utils/common.ts +12 -0
- package/src/utils/index.ts +1 -1
- package/dist/chunk-265KKBV2.js.map +0 -1
- package/dist/chunk-2FCXJTOV.js.map +0 -1
- package/dist/chunk-3TDLFCCS.cjs.map +0 -1
- package/dist/chunk-6LK4VEXE.cjs.map +0 -1
- package/dist/chunk-BE472J6X.js.map +0 -1
- package/dist/chunk-CZR7ARBA.js.map +0 -1
- package/dist/chunk-LKI3YCAX.js.map +0 -1
- package/dist/chunk-MKVKVJQQ.js.map +0 -1
- package/dist/chunk-NP5U35FA.js.map +0 -1
- package/dist/chunk-OZ3GH6OQ.cjs.map +0 -1
- package/dist/chunk-SGJBUL2Y.cjs.map +0 -1
- package/dist/chunk-TSY72CQ6.cjs.map +0 -1
- package/dist/chunk-TU26IZPO.cjs.map +0 -1
- package/dist/chunk-VAUI3CND.js.map +0 -1
- package/dist/chunk-ZITMX2IQ.cjs.map +0 -1
- /package/dist/{chunk-QCRQNKRO.js.map → chunk-46DHPQY6.js.map} +0 -0
- /package/dist/{chunk-4RDJZIHW.js.map → chunk-6GBA6YJN.js.map} +0 -0
- /package/dist/{chunk-4HHYUEMD.js.map → chunk-7RLV3U5C.js.map} +0 -0
- /package/dist/{chunk-CAPVFI5A.js.map → chunk-HCMVLEC3.js.map} +0 -0
|
@@ -14,7 +14,10 @@ import {
|
|
|
14
14
|
useMdUp,
|
|
15
15
|
useOnboardingState,
|
|
16
16
|
useToast
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-6GBA6YJN.js";
|
|
18
|
+
import {
|
|
19
|
+
cn as cn2
|
|
20
|
+
} from "./chunk-NR535XIY.js";
|
|
18
21
|
import {
|
|
19
22
|
Checkbox,
|
|
20
23
|
FieldWrapper,
|
|
@@ -25,7 +28,7 @@ import {
|
|
|
25
28
|
acquireClient,
|
|
26
29
|
releaseClient,
|
|
27
30
|
startConnectionLifecycle
|
|
28
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-PHWQLKVE.js";
|
|
29
32
|
import {
|
|
30
33
|
ActionsMenuDropdown,
|
|
31
34
|
BackButton,
|
|
@@ -78,7 +81,7 @@ import {
|
|
|
78
81
|
useControllableState,
|
|
79
82
|
useEntityCardLink,
|
|
80
83
|
useEntityCardPlaceholder
|
|
81
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-V5L4D454.js";
|
|
82
85
|
import {
|
|
83
86
|
useAutoLimitTags,
|
|
84
87
|
useDebounce
|
|
@@ -109,7 +112,7 @@ import {
|
|
|
109
112
|
init_button,
|
|
110
113
|
init_button2,
|
|
111
114
|
usePortalContainer
|
|
112
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-QXSRQVRO.js";
|
|
113
116
|
import {
|
|
114
117
|
init_next_link,
|
|
115
118
|
next_link_default
|
|
@@ -149,7 +152,7 @@ import {
|
|
|
149
152
|
WindowsIcon,
|
|
150
153
|
XLogo,
|
|
151
154
|
YouTubeIcon
|
|
152
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-V4IIBNTA.js";
|
|
153
156
|
import {
|
|
154
157
|
cn,
|
|
155
158
|
init_cn,
|
|
@@ -3332,6 +3335,99 @@ var ChatQuickAction = React5.forwardRef(
|
|
|
3332
3335
|
);
|
|
3333
3336
|
ChatQuickAction.displayName = "ChatQuickAction";
|
|
3334
3337
|
|
|
3338
|
+
// src/components/chat/chat-quick-action-row.tsx
|
|
3339
|
+
init_cn();
|
|
3340
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3341
|
+
function ChipButton({ chip }) {
|
|
3342
|
+
return /* @__PURE__ */ jsx25(
|
|
3343
|
+
"button",
|
|
3344
|
+
{
|
|
3345
|
+
type: "button",
|
|
3346
|
+
onClick: chip.onSelect,
|
|
3347
|
+
className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
3348
|
+
children: /* @__PURE__ */ jsx25(Tag, { variant: chip.variant ?? "outline", icon: chip.icon, label: chip.label })
|
|
3349
|
+
}
|
|
3350
|
+
);
|
|
3351
|
+
}
|
|
3352
|
+
function ChatQuickActionRow({
|
|
3353
|
+
leading,
|
|
3354
|
+
chips,
|
|
3355
|
+
className
|
|
3356
|
+
}) {
|
|
3357
|
+
const auto = useAutoLimitTags({
|
|
3358
|
+
count: chips.length,
|
|
3359
|
+
reserveInputWidth: false
|
|
3360
|
+
});
|
|
3361
|
+
const visibleChips = chips.slice(0, auto.visibleCount);
|
|
3362
|
+
const hiddenChips = chips.slice(auto.visibleCount);
|
|
3363
|
+
if (!leading && chips.length === 0) return null;
|
|
3364
|
+
return /* @__PURE__ */ jsxs21(
|
|
3365
|
+
"div",
|
|
3366
|
+
{
|
|
3367
|
+
className: cn("relative flex shrink-0 items-center gap-1", className),
|
|
3368
|
+
children: [
|
|
3369
|
+
leading,
|
|
3370
|
+
chips.length > 0 && // Measured zone: `flex-1 min-w-0 overflow-hidden` so it claims the width
|
|
3371
|
+
// left by the pinned `leading` slot and clips anything past the fit.
|
|
3372
|
+
/* @__PURE__ */ jsxs21(
|
|
3373
|
+
"div",
|
|
3374
|
+
{
|
|
3375
|
+
ref: auto.middleRef,
|
|
3376
|
+
className: "flex flex-1 min-w-0 items-center gap-1 overflow-hidden",
|
|
3377
|
+
children: [
|
|
3378
|
+
visibleChips.map((chip) => /* @__PURE__ */ jsx25(ChipButton, { chip }, chip.id)),
|
|
3379
|
+
hiddenChips.length > 0 && /* @__PURE__ */ jsx25(
|
|
3380
|
+
ActionsMenuDropdown,
|
|
3381
|
+
{
|
|
3382
|
+
triggerAriaLabel: "More quick actions",
|
|
3383
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
3384
|
+
groups: [
|
|
3385
|
+
{
|
|
3386
|
+
items: hiddenChips.map((chip) => ({
|
|
3387
|
+
id: chip.id,
|
|
3388
|
+
label: chip.label,
|
|
3389
|
+
icon: chip.icon,
|
|
3390
|
+
onClick: chip.onSelect
|
|
3391
|
+
}))
|
|
3392
|
+
}
|
|
3393
|
+
],
|
|
3394
|
+
customTrigger: /* @__PURE__ */ jsx25(
|
|
3395
|
+
"button",
|
|
3396
|
+
{
|
|
3397
|
+
ref: auto.badgeRef,
|
|
3398
|
+
type: "button",
|
|
3399
|
+
"aria-label": "More quick actions",
|
|
3400
|
+
className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
3401
|
+
children: /* @__PURE__ */ jsx25(Tag, { variant: "outline", label: /* @__PURE__ */ jsx25(Ellipsis01Icon, { size: 16 }) })
|
|
3402
|
+
}
|
|
3403
|
+
)
|
|
3404
|
+
}
|
|
3405
|
+
)
|
|
3406
|
+
]
|
|
3407
|
+
}
|
|
3408
|
+
),
|
|
3409
|
+
/* @__PURE__ */ jsx25(
|
|
3410
|
+
"div",
|
|
3411
|
+
{
|
|
3412
|
+
ref: auto.measureRef,
|
|
3413
|
+
"aria-hidden": true,
|
|
3414
|
+
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-1",
|
|
3415
|
+
children: chips.map((chip) => /* @__PURE__ */ jsx25(
|
|
3416
|
+
Tag,
|
|
3417
|
+
{
|
|
3418
|
+
variant: chip.variant ?? "outline",
|
|
3419
|
+
icon: chip.icon,
|
|
3420
|
+
label: chip.label
|
|
3421
|
+
},
|
|
3422
|
+
`measure-${chip.id}`
|
|
3423
|
+
))
|
|
3424
|
+
}
|
|
3425
|
+
)
|
|
3426
|
+
]
|
|
3427
|
+
}
|
|
3428
|
+
);
|
|
3429
|
+
}
|
|
3430
|
+
|
|
3335
3431
|
// src/components/chat/chat-ticket-list.tsx
|
|
3336
3432
|
init_cn();
|
|
3337
3433
|
import * as React7 from "react";
|
|
@@ -3340,7 +3436,7 @@ import * as React7 from "react";
|
|
|
3340
3436
|
init_cn();
|
|
3341
3437
|
import * as React6 from "react";
|
|
3342
3438
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
3343
|
-
import { jsx as
|
|
3439
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3344
3440
|
var ChatTicketItem = React6.forwardRef(
|
|
3345
3441
|
({ className, ticket, onClick, ...props }, ref) => {
|
|
3346
3442
|
const statusTagProps = resolveStatusTagProps({
|
|
@@ -3351,7 +3447,7 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3351
3447
|
});
|
|
3352
3448
|
const isResolved = ticket.statusKind === "RESOLVED" || resolveTicketStatus(ticket.status) === "RESOLVED";
|
|
3353
3449
|
const subtitle = [ticket.ticketNumber, ticket.category, ticket.timeAgo].filter(Boolean).join(" \u2022 ");
|
|
3354
|
-
return /* @__PURE__ */
|
|
3450
|
+
return /* @__PURE__ */ jsxs22(
|
|
3355
3451
|
"button",
|
|
3356
3452
|
{
|
|
3357
3453
|
ref,
|
|
@@ -3372,8 +3468,8 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3372
3468
|
),
|
|
3373
3469
|
...props,
|
|
3374
3470
|
children: [
|
|
3375
|
-
/* @__PURE__ */
|
|
3376
|
-
/* @__PURE__ */
|
|
3471
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex flex-col justify-center flex-1 min-w-0 text-left", children: [
|
|
3472
|
+
/* @__PURE__ */ jsx26(
|
|
3377
3473
|
"p",
|
|
3378
3474
|
{
|
|
3379
3475
|
className: cn(
|
|
@@ -3384,19 +3480,19 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3384
3480
|
children: ticket.title
|
|
3385
3481
|
}
|
|
3386
3482
|
),
|
|
3387
|
-
subtitle && /* @__PURE__ */
|
|
3483
|
+
subtitle && /* @__PURE__ */ jsx26("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
|
|
3388
3484
|
] }),
|
|
3389
|
-
ticket.linkedTaskLabel && /* @__PURE__ */
|
|
3485
|
+
ticket.linkedTaskLabel && /* @__PURE__ */ jsx26(
|
|
3390
3486
|
Tag,
|
|
3391
3487
|
{
|
|
3392
3488
|
label: ticket.linkedTaskLabel,
|
|
3393
3489
|
variant: "outline",
|
|
3394
|
-
icon: /* @__PURE__ */
|
|
3490
|
+
icon: /* @__PURE__ */ jsx26(WrenchIcon, { size: 14, color: "var(--ods-text-secondary)" }),
|
|
3395
3491
|
className: "shrink-0 hidden sm:inline-flex"
|
|
3396
3492
|
}
|
|
3397
3493
|
),
|
|
3398
|
-
(statusTagProps.status || statusTagProps.label) && /* @__PURE__ */
|
|
3399
|
-
/* @__PURE__ */
|
|
3494
|
+
(statusTagProps.status || statusTagProps.label) && /* @__PURE__ */ jsx26(TicketStatusTag, { ...statusTagProps }),
|
|
3495
|
+
/* @__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
3496
|
]
|
|
3401
3497
|
}
|
|
3402
3498
|
);
|
|
@@ -3405,7 +3501,7 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3405
3501
|
ChatTicketItem.displayName = "ChatTicketItem";
|
|
3406
3502
|
|
|
3407
3503
|
// src/components/chat/chat-ticket-list.tsx
|
|
3408
|
-
import { jsx as
|
|
3504
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3409
3505
|
function getMask(top, bottom) {
|
|
3410
3506
|
if (top && bottom) return "linear-gradient(to bottom, transparent, black 64px, black calc(100% - 64px), transparent)";
|
|
3411
3507
|
if (top) return "linear-gradient(to bottom, transparent, black 64px)";
|
|
@@ -3429,9 +3525,9 @@ var ChatTicketList = React7.forwardRef(
|
|
|
3429
3525
|
}, [ticketCount, updateFade]);
|
|
3430
3526
|
if (tickets.length === 0) return null;
|
|
3431
3527
|
const mask = getMask(fadeTop, fadeBottom);
|
|
3432
|
-
return /* @__PURE__ */
|
|
3433
|
-
/* @__PURE__ */
|
|
3434
|
-
/* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ jsxs23("div", { ref, className: cn("flex flex-col gap-2 min-h-0", className), ...props, children: [
|
|
3529
|
+
/* @__PURE__ */ jsx27("p", { className: "text-h5 text-ods-text-secondary shrink-0", children: "Your Chats:" }),
|
|
3530
|
+
/* @__PURE__ */ jsx27(
|
|
3435
3531
|
"div",
|
|
3436
3532
|
{
|
|
3437
3533
|
className: cn(
|
|
@@ -3439,14 +3535,14 @@ var ChatTicketList = React7.forwardRef(
|
|
|
3439
3535
|
!fadeTop && "border-t rounded-t-md",
|
|
3440
3536
|
!fadeBottom && "border-b rounded-b-md"
|
|
3441
3537
|
),
|
|
3442
|
-
children: /* @__PURE__ */
|
|
3538
|
+
children: /* @__PURE__ */ jsx27(
|
|
3443
3539
|
"div",
|
|
3444
3540
|
{
|
|
3445
3541
|
ref: scrollRef,
|
|
3446
3542
|
className: "overflow-y-auto h-full",
|
|
3447
3543
|
onScroll: updateFade,
|
|
3448
3544
|
style: mask !== "none" ? { maskImage: mask, WebkitMaskImage: mask } : void 0,
|
|
3449
|
-
children: tickets.map((ticket) => /* @__PURE__ */
|
|
3545
|
+
children: tickets.map((ticket) => /* @__PURE__ */ jsx27(
|
|
3450
3546
|
ChatTicketItem,
|
|
3451
3547
|
{
|
|
3452
3548
|
ticket,
|
|
@@ -3465,7 +3561,7 @@ ChatTicketList.displayName = "ChatTicketList";
|
|
|
3465
3561
|
|
|
3466
3562
|
// src/components/chat/mingo-onboarding-card-skeleton.tsx
|
|
3467
3563
|
init_cn();
|
|
3468
|
-
import { jsx as
|
|
3564
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3469
3565
|
function MingoOnboardingCardSkeleton({
|
|
3470
3566
|
titleWidth = "w-32",
|
|
3471
3567
|
slashWidth = "w-20",
|
|
@@ -3474,25 +3570,25 @@ function MingoOnboardingCardSkeleton({
|
|
|
3474
3570
|
className
|
|
3475
3571
|
}) {
|
|
3476
3572
|
const hasChips = chipWidths.length > 0;
|
|
3477
|
-
return /* @__PURE__ */
|
|
3573
|
+
return /* @__PURE__ */ jsx28(
|
|
3478
3574
|
"div",
|
|
3479
3575
|
{
|
|
3480
3576
|
className: cn(
|
|
3481
3577
|
"flex w-full items-start p-[var(--spacing-system-s)] bg-ods-card border-b border-ods-border last:border-b-0",
|
|
3482
3578
|
className
|
|
3483
3579
|
),
|
|
3484
|
-
children: /* @__PURE__ */
|
|
3485
|
-
/* @__PURE__ */
|
|
3486
|
-
/* @__PURE__ */
|
|
3487
|
-
/* @__PURE__ */
|
|
3488
|
-
/* @__PURE__ */
|
|
3489
|
-
/* @__PURE__ */
|
|
3580
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] w-full", children: [
|
|
3581
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full", children: [
|
|
3582
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
|
|
3583
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm", titleWidth) }),
|
|
3584
|
+
/* @__PURE__ */ jsx28("span", { className: "flex-1" }),
|
|
3585
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm shrink-0", slashWidth) })
|
|
3490
3586
|
] }),
|
|
3491
|
-
/* @__PURE__ */
|
|
3492
|
-
/* @__PURE__ */
|
|
3493
|
-
descriptionLines === 2 ? /* @__PURE__ */
|
|
3587
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
3588
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-full rounded-sm" }),
|
|
3589
|
+
descriptionLines === 2 ? /* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-[70%] rounded-sm" }) : null
|
|
3494
3590
|
] }),
|
|
3495
|
-
hasChips ? /* @__PURE__ */
|
|
3591
|
+
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
3592
|
] })
|
|
3497
3593
|
}
|
|
3498
3594
|
);
|
|
@@ -3501,7 +3597,7 @@ function MingoOnboardingListSkeleton({
|
|
|
3501
3597
|
rows = 6,
|
|
3502
3598
|
className
|
|
3503
3599
|
}) {
|
|
3504
|
-
return /* @__PURE__ */
|
|
3600
|
+
return /* @__PURE__ */ jsx28(
|
|
3505
3601
|
"div",
|
|
3506
3602
|
{
|
|
3507
3603
|
role: "status",
|
|
@@ -3513,7 +3609,7 @@ function MingoOnboardingListSkeleton({
|
|
|
3513
3609
|
),
|
|
3514
3610
|
children: Array.from({ length: rows }).map((_, i) => {
|
|
3515
3611
|
const variant = ROW_VARIANTS[i % ROW_VARIANTS.length];
|
|
3516
|
-
return /* @__PURE__ */
|
|
3612
|
+
return /* @__PURE__ */ jsx28(
|
|
3517
3613
|
MingoOnboardingCardSkeleton,
|
|
3518
3614
|
{
|
|
3519
3615
|
titleWidth: variant.titleWidth,
|
|
@@ -3543,7 +3639,7 @@ import * as React9 from "react";
|
|
|
3543
3639
|
init_cn();
|
|
3544
3640
|
import * as React8 from "react";
|
|
3545
3641
|
init_button2();
|
|
3546
|
-
import { jsx as
|
|
3642
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3547
3643
|
function dialogTime(d) {
|
|
3548
3644
|
if (!d.timestamp) return null;
|
|
3549
3645
|
const t = typeof d.timestamp === "string" ? Date.parse(d.timestamp) : d.timestamp.getTime();
|
|
@@ -3595,7 +3691,7 @@ function MingoChatHistoryRow({
|
|
|
3595
3691
|
onClick: () => onRequestArchive(dialog)
|
|
3596
3692
|
}
|
|
3597
3693
|
].filter(Boolean);
|
|
3598
|
-
return /* @__PURE__ */
|
|
3694
|
+
return /* @__PURE__ */ jsxs25(
|
|
3599
3695
|
"div",
|
|
3600
3696
|
{
|
|
3601
3697
|
className: cn(
|
|
@@ -3604,7 +3700,7 @@ function MingoChatHistoryRow({
|
|
|
3604
3700
|
isActive && "bg-ods-bg-hover"
|
|
3605
3701
|
),
|
|
3606
3702
|
children: [
|
|
3607
|
-
/* @__PURE__ */
|
|
3703
|
+
/* @__PURE__ */ jsxs25(
|
|
3608
3704
|
"div",
|
|
3609
3705
|
{
|
|
3610
3706
|
role: "button",
|
|
@@ -3618,8 +3714,8 @@ function MingoChatHistoryRow({
|
|
|
3618
3714
|
},
|
|
3619
3715
|
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
3716
|
children: [
|
|
3621
|
-
unread > 0 ? /* @__PURE__ */
|
|
3622
|
-
/* @__PURE__ */
|
|
3717
|
+
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,
|
|
3718
|
+
/* @__PURE__ */ jsx29(
|
|
3623
3719
|
"span",
|
|
3624
3720
|
{
|
|
3625
3721
|
className: "min-w-0 flex-1 truncate text-h4 text-ods-text-primary",
|
|
@@ -3635,7 +3731,7 @@ function MingoChatHistoryRow({
|
|
|
3635
3731
|
// right edge, free of the content's left padding. Revealed on row
|
|
3636
3732
|
// hover/focus; kept visible while its menu is open. Hidden on mobile —
|
|
3637
3733
|
// it's a hover affordance (no hover on touch).
|
|
3638
|
-
/* @__PURE__ */
|
|
3734
|
+
/* @__PURE__ */ jsx29(
|
|
3639
3735
|
"span",
|
|
3640
3736
|
{
|
|
3641
3737
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -3647,7 +3743,7 @@ function MingoChatHistoryRow({
|
|
|
3647
3743
|
"self-stretch shrink-0 transition-opacity max-md:hidden",
|
|
3648
3744
|
menuOpen ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 focus-within:opacity-100"
|
|
3649
3745
|
),
|
|
3650
|
-
children: /* @__PURE__ */
|
|
3746
|
+
children: /* @__PURE__ */ jsx29(
|
|
3651
3747
|
ActionsMenuDropdown,
|
|
3652
3748
|
{
|
|
3653
3749
|
triggerAriaLabel: "Chat actions",
|
|
@@ -3655,14 +3751,14 @@ function MingoChatHistoryRow({
|
|
|
3655
3751
|
open: menuOpen,
|
|
3656
3752
|
onOpenChange: setMenuOpen,
|
|
3657
3753
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
3658
|
-
customTrigger: /* @__PURE__ */
|
|
3754
|
+
customTrigger: /* @__PURE__ */ jsx29(
|
|
3659
3755
|
Button,
|
|
3660
3756
|
{
|
|
3661
3757
|
variant: "transparent",
|
|
3662
3758
|
size: "icon",
|
|
3663
3759
|
"aria-label": "Chat actions",
|
|
3664
3760
|
className: "h-full md:h-full rounded-none p-0 text-ods-text-secondary hover:text-ods-text-primary",
|
|
3665
|
-
children: /* @__PURE__ */
|
|
3761
|
+
children: /* @__PURE__ */ jsx29(Ellipsis01Icon, {})
|
|
3666
3762
|
}
|
|
3667
3763
|
)
|
|
3668
3764
|
}
|
|
@@ -3679,7 +3775,7 @@ function MingoChatHistorySkeleton({ className }) {
|
|
|
3679
3775
|
{ withBadge: 2, widths: ["w-3/5", "w-4/5", "w-2/5", "w-3/4"] },
|
|
3680
3776
|
{ withBadge: 0, widths: ["w-1/2", "w-3/5", "w-2/3"] }
|
|
3681
3777
|
];
|
|
3682
|
-
return /* @__PURE__ */
|
|
3778
|
+
return /* @__PURE__ */ jsx29(
|
|
3683
3779
|
"div",
|
|
3684
3780
|
{
|
|
3685
3781
|
"aria-hidden": true,
|
|
@@ -3687,15 +3783,15 @@ function MingoChatHistorySkeleton({ className }) {
|
|
|
3687
3783
|
"flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-hidden",
|
|
3688
3784
|
className
|
|
3689
3785
|
),
|
|
3690
|
-
children: groups.map((group, g) => /* @__PURE__ */
|
|
3691
|
-
/* @__PURE__ */
|
|
3692
|
-
/* @__PURE__ */
|
|
3786
|
+
children: groups.map((group, g) => /* @__PURE__ */ jsxs25("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
3787
|
+
/* @__PURE__ */ jsx29("div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
|
|
3788
|
+
/* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ jsxs25(
|
|
3693
3789
|
"div",
|
|
3694
3790
|
{
|
|
3695
3791
|
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
3792
|
children: [
|
|
3697
|
-
i < group.withBadge && /* @__PURE__ */
|
|
3698
|
-
/* @__PURE__ */
|
|
3793
|
+
i < group.withBadge && /* @__PURE__ */ jsx29("div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
|
|
3794
|
+
/* @__PURE__ */ jsx29("div", { className: cn("h-4 animate-pulse rounded bg-ods-border", w) })
|
|
3699
3795
|
]
|
|
3700
3796
|
},
|
|
3701
3797
|
i
|
|
@@ -3754,21 +3850,21 @@ function MingoChatHistory({
|
|
|
3754
3850
|
io.observe(sentinel);
|
|
3755
3851
|
return () => io.disconnect();
|
|
3756
3852
|
}, [hasMore]);
|
|
3757
|
-
return /* @__PURE__ */
|
|
3758
|
-
/* @__PURE__ */
|
|
3853
|
+
return /* @__PURE__ */ jsxs25("div", { className: cn("relative flex flex-1 min-h-0 flex-col", className), children: [
|
|
3854
|
+
/* @__PURE__ */ jsxs25(
|
|
3759
3855
|
"div",
|
|
3760
3856
|
{
|
|
3761
3857
|
ref: scrollRef,
|
|
3762
3858
|
onScroll: updateFade,
|
|
3763
3859
|
className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
|
|
3764
3860
|
children: [
|
|
3765
|
-
groups.map((group) => /* @__PURE__ */
|
|
3861
|
+
groups.map((group) => /* @__PURE__ */ jsxs25(
|
|
3766
3862
|
"div",
|
|
3767
3863
|
{
|
|
3768
3864
|
className: "flex flex-col gap-[var(--spacing-system-xxs)]",
|
|
3769
3865
|
children: [
|
|
3770
|
-
/* @__PURE__ */
|
|
3771
|
-
/* @__PURE__ */
|
|
3866
|
+
/* @__PURE__ */ jsx29("p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
|
|
3867
|
+
/* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ jsx29(
|
|
3772
3868
|
MingoChatHistoryRow,
|
|
3773
3869
|
{
|
|
3774
3870
|
dialog,
|
|
@@ -3783,11 +3879,11 @@ function MingoChatHistory({
|
|
|
3783
3879
|
},
|
|
3784
3880
|
group.key
|
|
3785
3881
|
)),
|
|
3786
|
-
hasMore ? /* @__PURE__ */
|
|
3882
|
+
hasMore ? /* @__PURE__ */ jsx29("div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
|
|
3787
3883
|
]
|
|
3788
3884
|
}
|
|
3789
3885
|
),
|
|
3790
|
-
/* @__PURE__ */
|
|
3886
|
+
/* @__PURE__ */ jsx29(
|
|
3791
3887
|
"div",
|
|
3792
3888
|
{
|
|
3793
3889
|
"aria-hidden": true,
|
|
@@ -3800,7 +3896,7 @@ function MingoChatHistory({
|
|
|
3800
3896
|
}
|
|
3801
3897
|
}
|
|
3802
3898
|
),
|
|
3803
|
-
/* @__PURE__ */
|
|
3899
|
+
/* @__PURE__ */ jsx29(
|
|
3804
3900
|
"div",
|
|
3805
3901
|
{
|
|
3806
3902
|
"aria-hidden": true,
|
|
@@ -3816,99 +3912,6 @@ function MingoChatHistory({
|
|
|
3816
3912
|
] });
|
|
3817
3913
|
}
|
|
3818
3914
|
|
|
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
3915
|
// src/components/chat/mingo-welcome.tsx
|
|
3913
3916
|
init_button2();
|
|
3914
3917
|
import { Fragment as Fragment2, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
@@ -10520,7 +10523,7 @@ var DrawerHeader = ({
|
|
|
10520
10523
|
}
|
|
10521
10524
|
);
|
|
10522
10525
|
DrawerHeader.displayName = "DrawerHeader";
|
|
10523
|
-
var DrawerTitle = React40.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs66("div", { className: "flex items-start gap-4", children: [
|
|
10526
|
+
var DrawerTitle = React40.forwardRef(({ className, children, actions, ...props }, ref) => /* @__PURE__ */ jsxs66("div", { className: "flex items-start gap-4", children: [
|
|
10524
10527
|
/* @__PURE__ */ jsx85(
|
|
10525
10528
|
DialogPrimitive2.Title,
|
|
10526
10529
|
{
|
|
@@ -10533,6 +10536,7 @@ var DrawerTitle = React40.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
10533
10536
|
children
|
|
10534
10537
|
}
|
|
10535
10538
|
),
|
|
10539
|
+
actions,
|
|
10536
10540
|
/* @__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
10541
|
/* @__PURE__ */ jsx85(X5, { className: "size-6" }),
|
|
10538
10542
|
/* @__PURE__ */ jsx85("span", { className: "sr-only", children: "Close" })
|
|
@@ -12152,41 +12156,6 @@ import React54 from "react";
|
|
|
12152
12156
|
// src/utils/index.ts
|
|
12153
12157
|
init_cn();
|
|
12154
12158
|
init_platform_domains();
|
|
12155
|
-
|
|
12156
|
-
// src/utils/common.ts
|
|
12157
|
-
import { clsx } from "clsx";
|
|
12158
|
-
import { twMerge } from "tailwind-merge";
|
|
12159
|
-
function cn2(...inputs) {
|
|
12160
|
-
return twMerge(clsx(inputs));
|
|
12161
|
-
}
|
|
12162
|
-
function delay(ms) {
|
|
12163
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
12164
|
-
}
|
|
12165
|
-
function generateRandomString(length = 8) {
|
|
12166
|
-
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
12167
|
-
let result = "";
|
|
12168
|
-
for (let i = 0; i < length; i++) {
|
|
12169
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
12170
|
-
}
|
|
12171
|
-
return result;
|
|
12172
|
-
}
|
|
12173
|
-
function truncateString(str, maxLength, suffix = "...") {
|
|
12174
|
-
if (str.length <= maxLength) return str;
|
|
12175
|
-
return str.substring(0, maxLength - suffix.length) + suffix;
|
|
12176
|
-
}
|
|
12177
|
-
function deepClone(obj) {
|
|
12178
|
-
return JSON.parse(JSON.stringify(obj));
|
|
12179
|
-
}
|
|
12180
|
-
function getSlackCommunityJoinUrl() {
|
|
12181
|
-
const url = process.env.NEXT_PUBLIC_SLACK_COMMUNITY_JOIN_URL;
|
|
12182
|
-
if (!url) {
|
|
12183
|
-
console.warn("NEXT_PUBLIC_SLACK_COMMUNITY_JOIN_URL is not defined in environment variables");
|
|
12184
|
-
return "https://join.slack.com/t/openmsp/shared_invite/zt-36bl7mx0h-3~U2nFH6nqHqoTPXMaHEHA";
|
|
12185
|
-
}
|
|
12186
|
-
return url;
|
|
12187
|
-
}
|
|
12188
|
-
|
|
12189
|
-
// src/utils/index.ts
|
|
12190
12159
|
init_cn();
|
|
12191
12160
|
|
|
12192
12161
|
// src/utils/os-platforms.ts
|
|
@@ -20847,7 +20816,6 @@ function useOptionalNotifications() {
|
|
|
20847
20816
|
}
|
|
20848
20817
|
|
|
20849
20818
|
// src/components/features/notifications/notification-drawer.tsx
|
|
20850
|
-
import * as DialogPrimitive3 from "@radix-ui/react-dialog";
|
|
20851
20819
|
import { useEffect as useEffect36, useRef as useRef28 } from "react";
|
|
20852
20820
|
init_button();
|
|
20853
20821
|
init_cn();
|
|
@@ -20990,19 +20958,23 @@ function NotificationDrawer({
|
|
|
20990
20958
|
className
|
|
20991
20959
|
),
|
|
20992
20960
|
children: [
|
|
20993
|
-
/* @__PURE__ */
|
|
20994
|
-
|
|
20995
|
-
|
|
20996
|
-
"
|
|
20997
|
-
|
|
20998
|
-
|
|
20999
|
-
|
|
21000
|
-
|
|
21001
|
-
|
|
21002
|
-
|
|
21003
|
-
|
|
21004
|
-
|
|
21005
|
-
|
|
20961
|
+
/* @__PURE__ */ jsx180("div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx180(
|
|
20962
|
+
DrawerTitle,
|
|
20963
|
+
{
|
|
20964
|
+
className: "truncate",
|
|
20965
|
+
actions: /* @__PURE__ */ jsx180(
|
|
20966
|
+
"button",
|
|
20967
|
+
{
|
|
20968
|
+
type: "button",
|
|
20969
|
+
disabled: unreadCount === 0,
|
|
20970
|
+
onClick: markAllRead,
|
|
20971
|
+
className: "self-center text-h6 text-ods-text-secondary underline transition-colors hover:text-ods-text-primary disabled:opacity-40",
|
|
20972
|
+
children: "Complete All"
|
|
20973
|
+
}
|
|
20974
|
+
),
|
|
20975
|
+
children: "New Notifications"
|
|
20976
|
+
}
|
|
20977
|
+
) }),
|
|
21006
20978
|
/* @__PURE__ */ jsx180(
|
|
21007
20979
|
DrawerScrollList,
|
|
21008
20980
|
{
|
|
@@ -22998,6 +22970,8 @@ function NavigationSidebarItemButton({
|
|
|
22998
22970
|
onClick
|
|
22999
22971
|
}) {
|
|
23000
22972
|
const isActive = item.isActive ?? false;
|
|
22973
|
+
const unreadCount = item.unreadCount ?? 0;
|
|
22974
|
+
const hasUnread = unreadCount > 0;
|
|
23001
22975
|
return /* @__PURE__ */ jsxs153(
|
|
23002
22976
|
"button",
|
|
23003
22977
|
{
|
|
@@ -23024,9 +22998,12 @@ function NavigationSidebarItemButton({
|
|
|
23024
22998
|
"aria-label": item.label,
|
|
23025
22999
|
"aria-current": isActive ? "page" : void 0,
|
|
23026
23000
|
children: [
|
|
23027
|
-
/* @__PURE__ */
|
|
23028
|
-
|
|
23029
|
-
|
|
23001
|
+
/* @__PURE__ */ jsxs153("div", { className: "relative flex items-center justify-center flex-shrink-0", children: [
|
|
23002
|
+
cloneElement(item.icon, {
|
|
23003
|
+
color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
|
|
23004
|
+
}),
|
|
23005
|
+
hasUnread && !showLabel && /* @__PURE__ */ jsx196("span", { className: "absolute top-0 right-0 bg-ods-warning rounded-full w-2 h-2" })
|
|
23006
|
+
] }),
|
|
23030
23007
|
/* @__PURE__ */ jsx196(
|
|
23031
23008
|
"span",
|
|
23032
23009
|
{
|
|
@@ -23038,6 +23015,7 @@ function NavigationSidebarItemButton({
|
|
|
23038
23015
|
children: item.label
|
|
23039
23016
|
}
|
|
23040
23017
|
),
|
|
23018
|
+
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
23019
|
item.badge && showLabel && /* @__PURE__ */ jsx196(
|
|
23042
23020
|
"span",
|
|
23043
23021
|
{
|
|
@@ -23893,7 +23871,7 @@ function AppLayout({
|
|
|
23893
23871
|
// src/components/navigation/app-layout-drawer.tsx
|
|
23894
23872
|
init_cn();
|
|
23895
23873
|
import * as React82 from "react";
|
|
23896
|
-
import * as
|
|
23874
|
+
import * as DialogPrimitive3 from "@radix-ui/react-dialog";
|
|
23897
23875
|
import { cva as cva8 } from "class-variance-authority";
|
|
23898
23876
|
import { jsx as jsx206, jsxs as jsxs162 } from "react/jsx-runtime";
|
|
23899
23877
|
var DrawerOpenContext = React82.createContext(false);
|
|
@@ -23916,7 +23894,7 @@ var AppLayoutDrawerRoot = ({
|
|
|
23916
23894
|
[isControlled, onOpenChange]
|
|
23917
23895
|
);
|
|
23918
23896
|
return /* @__PURE__ */ jsx206(DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ jsx206(
|
|
23919
|
-
|
|
23897
|
+
DialogPrimitive3.Root,
|
|
23920
23898
|
{
|
|
23921
23899
|
...rest,
|
|
23922
23900
|
open,
|
|
@@ -23927,8 +23905,8 @@ var AppLayoutDrawerRoot = ({
|
|
|
23927
23905
|
) });
|
|
23928
23906
|
};
|
|
23929
23907
|
AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
|
|
23930
|
-
var AppLayoutDrawerTrigger =
|
|
23931
|
-
var AppLayoutDrawerClose =
|
|
23908
|
+
var AppLayoutDrawerTrigger = DialogPrimitive3.Trigger;
|
|
23909
|
+
var AppLayoutDrawerClose = DialogPrimitive3.Close;
|
|
23932
23910
|
var appLayoutDrawerVariants = cva8(
|
|
23933
23911
|
"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
23912
|
{
|
|
@@ -24257,7 +24235,7 @@ var AppLayoutDrawerContent = React82.forwardRef(
|
|
|
24257
24235
|
const applyInlineSize = resizable && !isMobile;
|
|
24258
24236
|
const sizeStyle = applyInlineSize ? isHorizontal ? { width: size } : { height: size } : {};
|
|
24259
24237
|
if (keepMounted && !hasOpened) return null;
|
|
24260
|
-
return /* @__PURE__ */ jsxs162(
|
|
24238
|
+
return /* @__PURE__ */ jsxs162(DialogPrimitive3.Portal, { container: portalContainer, forceMount: persist || void 0, children: [
|
|
24261
24239
|
/* @__PURE__ */ jsx206(
|
|
24262
24240
|
"div",
|
|
24263
24241
|
{
|
|
@@ -24274,7 +24252,7 @@ var AppLayoutDrawerContent = React82.forwardRef(
|
|
|
24274
24252
|
}
|
|
24275
24253
|
),
|
|
24276
24254
|
/* @__PURE__ */ jsxs162(
|
|
24277
|
-
|
|
24255
|
+
DialogPrimitive3.Content,
|
|
24278
24256
|
{
|
|
24279
24257
|
ref,
|
|
24280
24258
|
forceMount: persist || void 0,
|
|
@@ -34168,7 +34146,7 @@ function useNatsDialogSubscription({
|
|
|
34168
34146
|
abortControllerRef.current?.abort();
|
|
34169
34147
|
abortControllerRef.current = null;
|
|
34170
34148
|
};
|
|
34171
|
-
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected"
|
|
34149
|
+
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
34172
34150
|
const lifecycle = startConnectionLifecycle({
|
|
34173
34151
|
conn: sharedConn,
|
|
34174
34152
|
wsUrl,
|
|
@@ -34176,7 +34154,7 @@ function useNatsDialogSubscription({
|
|
|
34176
34154
|
backoff: reconnectionBackoffRef.current,
|
|
34177
34155
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
34178
34156
|
shouldRetryOn: isDisconnectStatus,
|
|
34179
|
-
onStatusChange: (status) => {
|
|
34157
|
+
onStatusChange: (status, evt) => {
|
|
34180
34158
|
if (status === "connected") {
|
|
34181
34159
|
setIsConnected(true);
|
|
34182
34160
|
if (hadConnectionBeforeRef.current) {
|
|
@@ -34185,6 +34163,10 @@ function useNatsDialogSubscription({
|
|
|
34185
34163
|
hadConnectionBeforeRef.current = true;
|
|
34186
34164
|
onConnectRef.current?.();
|
|
34187
34165
|
}
|
|
34166
|
+
if (status === "error") {
|
|
34167
|
+
console.warn("[NATS] protocol error:", evt.data);
|
|
34168
|
+
return;
|
|
34169
|
+
}
|
|
34188
34170
|
if (isDisconnectStatus(status)) {
|
|
34189
34171
|
setIsConnected(false);
|
|
34190
34172
|
setIsSubscribed(false);
|
|
@@ -37946,7 +37928,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
|
|
|
37946
37928
|
|
|
37947
37929
|
// src/components/chat/embeddable-chat.tsx
|
|
37948
37930
|
import { useCallback as useCallback43, useEffect as useEffect65, useMemo as useMemo30, useRef as useRef59, useState as useState89 } from "react";
|
|
37949
|
-
import * as
|
|
37931
|
+
import * as DialogPrimitive4 from "@radix-ui/react-dialog";
|
|
37950
37932
|
import { usePreventScroll } from "@react-aria/overlays";
|
|
37951
37933
|
import { isIOS } from "@react-aria/utils";
|
|
37952
37934
|
|
|
@@ -39016,7 +38998,7 @@ function EmbeddableChatInner({
|
|
|
39016
38998
|
/* @__PURE__ */ jsx276("div", { ref: setPortalHost, style: { display: "contents" } })
|
|
39017
38999
|
] });
|
|
39018
39000
|
const panel = shellLess ? /* @__PURE__ */ jsxs222(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
|
|
39019
|
-
/* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(
|
|
39001
|
+
/* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive4.Title, { children: [
|
|
39020
39002
|
sourceLabel,
|
|
39021
39003
|
" AI Assistant"
|
|
39022
39004
|
] }) }),
|
|
@@ -39036,7 +39018,7 @@ function EmbeddableChatInner({
|
|
|
39036
39018
|
"aria-describedby": void 0,
|
|
39037
39019
|
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
39020
|
children: [
|
|
39039
|
-
/* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(
|
|
39021
|
+
/* @__PURE__ */ jsx276(VisuallyHidden, { children: /* @__PURE__ */ jsxs222(DialogPrimitive4.Title, { children: [
|
|
39040
39022
|
sourceLabel,
|
|
39041
39023
|
" AI Assistant"
|
|
39042
39024
|
] }) }),
|
|
@@ -39251,6 +39233,7 @@ export {
|
|
|
39251
39233
|
ChatMessageRow,
|
|
39252
39234
|
ChatMessageRowSkeleton,
|
|
39253
39235
|
ChatQuickAction,
|
|
39236
|
+
ChatQuickActionRow,
|
|
39254
39237
|
ChatTicketItem,
|
|
39255
39238
|
ChatTicketList,
|
|
39256
39239
|
MingoOnboardingCardSkeleton,
|
|
@@ -39429,11 +39412,6 @@ export {
|
|
|
39429
39412
|
Toggle,
|
|
39430
39413
|
ToggleGroup,
|
|
39431
39414
|
ToggleGroupItem,
|
|
39432
|
-
delay,
|
|
39433
|
-
generateRandomString,
|
|
39434
|
-
truncateString,
|
|
39435
|
-
deepClone,
|
|
39436
|
-
getSlackCommunityJoinUrl,
|
|
39437
39415
|
OS_PLATFORMS,
|
|
39438
39416
|
DEFAULT_OS_PLATFORM,
|
|
39439
39417
|
isValidEmailDomain,
|
|
@@ -39739,4 +39717,4 @@ export {
|
|
|
39739
39717
|
LogsList,
|
|
39740
39718
|
assets
|
|
39741
39719
|
};
|
|
39742
|
-
//# sourceMappingURL=chunk-
|
|
39720
|
+
//# sourceMappingURL=chunk-S7IX7YU4.js.map
|