@flamingo-stack/openframe-frontend-core 0.0.255 → 0.0.256-snapshot.20260612014656
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-LHR7MBUY.js → chunk-2VZQJIVA.js} +48 -13
- package/dist/chunk-2VZQJIVA.js.map +1 -0
- package/dist/{chunk-GYKDSPC4.cjs → chunk-3DC6MHW6.cjs} +31 -31
- package/dist/{chunk-GYKDSPC4.cjs.map → chunk-3DC6MHW6.cjs.map} +1 -1
- package/dist/{chunk-LZL6P7SN.cjs → chunk-4MXBBBHB.cjs} +108 -11
- package/dist/chunk-4MXBBBHB.cjs.map +1 -0
- package/dist/{chunk-HMFBMVJC.js → chunk-6GBA6YJN.js} +2 -2
- package/dist/{chunk-SGJBUL2Y.cjs → chunk-7VMEOFEA.cjs} +45 -2
- package/dist/chunk-7VMEOFEA.cjs.map +1 -0
- package/dist/{chunk-UGFSMA7K.cjs → chunk-AIQ4DGO7.cjs} +77 -42
- package/dist/chunk-AIQ4DGO7.cjs.map +1 -0
- package/dist/{chunk-6TB24AUH.js → chunk-CBIQDPHK.js} +155 -236
- package/dist/chunk-CBIQDPHK.js.map +1 -0
- package/dist/{chunk-6LK4VEXE.cjs → chunk-EB76VWM4.cjs} +118 -63
- package/dist/chunk-EB76VWM4.cjs.map +1 -0
- package/dist/{chunk-RCW2IL4K.cjs → chunk-FBH73RRM.cjs} +1254 -1335
- package/dist/chunk-FBH73RRM.cjs.map +1 -0
- package/dist/{chunk-4HHYUEMD.js → chunk-IJHORDN5.js} +100 -3
- package/dist/chunk-IJHORDN5.js.map +1 -0
- package/dist/{chunk-MKVKVJQQ.js → chunk-J3QMPOS6.js} +5 -4
- package/dist/chunk-J3QMPOS6.js.map +1 -0
- package/dist/{chunk-CVGZJBHT.cjs → chunk-LCYDTEEK.cjs} +19 -19
- package/dist/{chunk-CVGZJBHT.cjs.map → chunk-LCYDTEEK.cjs.map} +1 -1
- package/dist/{chunk-2FCXJTOV.js → chunk-LDEXTWMK.js} +10 -2
- package/dist/chunk-LDEXTWMK.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-TU26IZPO.cjs → chunk-N5UOJC3V.cjs} +10 -2
- package/dist/chunk-N5UOJC3V.cjs.map +1 -0
- package/dist/{chunk-LKI3YCAX.js → chunk-NAOTZAKM.js} +62 -7
- package/dist/chunk-NAOTZAKM.js.map +1 -0
- package/dist/{chunk-2FAX6LZB.cjs → chunk-NNDLCSGR.cjs} +30 -30
- package/dist/{chunk-2FAX6LZB.cjs.map → chunk-NNDLCSGR.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-D524LJYO.js → chunk-RUMSS73U.js} +4 -4
- package/dist/{chunk-265KKBV2.js → chunk-V4IIBNTA.js} +3 -3
- package/dist/chunk-V4IIBNTA.js.map +1 -0
- package/dist/{chunk-EFIEQ4XD.js → chunk-YMZZ5THD.js} +4 -4
- 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/index.cjs +9 -7
- 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 +8 -6
- 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 +8 -8
- package/dist/components/contact/index.js +7 -7
- 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 +7 -7
- package/dist/components/features/index.js +6 -6
- package/dist/components/icons/index.cjs +2 -2
- package/dist/components/icons/index.js +1 -1
- package/dist/components/index.cjs +168 -155
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +58 -45
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +43 -27
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +20 -4
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +11 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +10 -8
- 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 +9 -7
- 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/article-author-byline.d.ts +58 -0
- package/dist/components/shared/article-author-byline.d.ts.map +1 -0
- 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 +19 -4
- package/dist/components/social-icon-row.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +80 -80
- package/dist/components/tickets/index.js +8 -8
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/button/button.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 +9 -7
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +8 -6
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +14 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -16
- package/dist/types/blog.d.ts +7 -0
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/entity-author.d.ts +21 -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/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/content-href.d.ts.map +1 -1
- package/dist/utils/index.cjs +12 -3
- 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 +12 -4
- 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/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/icons/x-logo.tsx +2 -2
- package/src/components/index.ts +5 -0
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +27 -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/article-author-byline.tsx +187 -0
- package/src/components/shared/product-release/release-detail-page.tsx +18 -21
- package/src/components/social-icon-row.tsx +68 -22
- package/src/components/ui/button/button.tsx +13 -0
- package/src/types/blog.ts +9 -1
- package/src/types/entity-author.ts +20 -0
- package/src/types/index.ts +1 -0
- package/src/types/product-release.ts +2 -7
- package/src/utils/__tests__/content-href.test.ts +3 -0
- package/src/utils/common.ts +12 -0
- package/src/utils/content-href.ts +5 -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-4HHYUEMD.js.map +0 -1
- package/dist/chunk-6LK4VEXE.cjs.map +0 -1
- package/dist/chunk-6TB24AUH.js.map +0 -1
- package/dist/chunk-LHR7MBUY.js.map +0 -1
- package/dist/chunk-LKI3YCAX.js.map +0 -1
- package/dist/chunk-LZL6P7SN.cjs.map +0 -1
- package/dist/chunk-MKVKVJQQ.js.map +0 -1
- package/dist/chunk-RCW2IL4K.cjs.map +0 -1
- package/dist/chunk-SGJBUL2Y.cjs.map +0 -1
- package/dist/chunk-TU26IZPO.cjs.map +0 -1
- package/dist/chunk-UGFSMA7K.cjs.map +0 -1
- package/dist/chunk-VAUI3CND.js.map +0 -1
- /package/dist/{chunk-HMFBMVJC.js.map → chunk-6GBA6YJN.js.map} +0 -0
- /package/dist/{chunk-D524LJYO.js.map → chunk-RUMSS73U.js.map} +0 -0
- /package/dist/{chunk-EFIEQ4XD.js.map → chunk-YMZZ5THD.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,
|
|
@@ -65,6 +68,7 @@ import {
|
|
|
65
68
|
formatTimeWithTimezone,
|
|
66
69
|
getFirstLastInitials,
|
|
67
70
|
getIconComponent,
|
|
71
|
+
getProxiedImageUrl,
|
|
68
72
|
getSourceIconName,
|
|
69
73
|
getSourceLabel,
|
|
70
74
|
newTabAnchorAttrs,
|
|
@@ -78,7 +82,7 @@ import {
|
|
|
78
82
|
useControllableState,
|
|
79
83
|
useEntityCardLink,
|
|
80
84
|
useEntityCardPlaceholder
|
|
81
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-NAOTZAKM.js";
|
|
82
86
|
import {
|
|
83
87
|
useAutoLimitTags,
|
|
84
88
|
useDebounce
|
|
@@ -109,7 +113,7 @@ import {
|
|
|
109
113
|
init_button,
|
|
110
114
|
init_button2,
|
|
111
115
|
usePortalContainer
|
|
112
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-LDEXTWMK.js";
|
|
113
117
|
import {
|
|
114
118
|
init_next_link,
|
|
115
119
|
next_link_default
|
|
@@ -149,7 +153,7 @@ import {
|
|
|
149
153
|
WindowsIcon,
|
|
150
154
|
XLogo,
|
|
151
155
|
YouTubeIcon
|
|
152
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-V4IIBNTA.js";
|
|
153
157
|
import {
|
|
154
158
|
cn,
|
|
155
159
|
init_cn,
|
|
@@ -3185,48 +3189,6 @@ var ChatMessageList = forwardRef12(
|
|
|
3185
3189
|
);
|
|
3186
3190
|
ChatMessageList.displayName = "ChatMessageList";
|
|
3187
3191
|
|
|
3188
|
-
// src/utils/image-proxy.ts
|
|
3189
|
-
function getProxiedImageUrl(imageUrl, options) {
|
|
3190
|
-
if (!imageUrl) return null;
|
|
3191
|
-
const proxyPrefix = options?.proxyPrefix;
|
|
3192
|
-
const skipDomains = options?.skipDomains ?? [];
|
|
3193
|
-
const directHttps = options?.directHttps ?? false;
|
|
3194
|
-
if (proxyPrefix && imageUrl.includes(proxyPrefix)) {
|
|
3195
|
-
return imageUrl;
|
|
3196
|
-
}
|
|
3197
|
-
if (!imageUrl.startsWith("http://") && !imageUrl.startsWith("https://")) {
|
|
3198
|
-
return imageUrl;
|
|
3199
|
-
}
|
|
3200
|
-
if (directHttps && imageUrl.startsWith("https://")) {
|
|
3201
|
-
return imageUrl;
|
|
3202
|
-
}
|
|
3203
|
-
if (!proxyPrefix) {
|
|
3204
|
-
return imageUrl;
|
|
3205
|
-
}
|
|
3206
|
-
for (const domain of skipDomains) {
|
|
3207
|
-
if (imageUrl.includes(domain)) {
|
|
3208
|
-
return imageUrl;
|
|
3209
|
-
}
|
|
3210
|
-
}
|
|
3211
|
-
return `${proxyPrefix}?url=${encodeURIComponent(imageUrl)}`;
|
|
3212
|
-
}
|
|
3213
|
-
function urlPathLooksLikeSvg(imageUrl) {
|
|
3214
|
-
try {
|
|
3215
|
-
return /\.svg$/i.test(new URL(imageUrl).pathname);
|
|
3216
|
-
} catch {
|
|
3217
|
-
return /\.svg(\?|#|$)/i.test(imageUrl);
|
|
3218
|
-
}
|
|
3219
|
-
}
|
|
3220
|
-
function shouldProxyImage(imageUrl, proxyPrefix) {
|
|
3221
|
-
if (!imageUrl) return false;
|
|
3222
|
-
if (!imageUrl.startsWith("http://") && !imageUrl.startsWith("https://")) return false;
|
|
3223
|
-
if (proxyPrefix && imageUrl.includes(proxyPrefix)) return false;
|
|
3224
|
-
return true;
|
|
3225
|
-
}
|
|
3226
|
-
function generateImageSizes(_url) {
|
|
3227
|
-
return `(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw`;
|
|
3228
|
-
}
|
|
3229
|
-
|
|
3230
3192
|
// src/components/chat/hooks/use-proxied-image-url.ts
|
|
3231
3193
|
function useProxiedImageUrl(url) {
|
|
3232
3194
|
const r = useRequiredChatRuntime();
|
|
@@ -3332,6 +3294,99 @@ var ChatQuickAction = React5.forwardRef(
|
|
|
3332
3294
|
);
|
|
3333
3295
|
ChatQuickAction.displayName = "ChatQuickAction";
|
|
3334
3296
|
|
|
3297
|
+
// src/components/chat/chat-quick-action-row.tsx
|
|
3298
|
+
init_cn();
|
|
3299
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3300
|
+
function ChipButton({ chip }) {
|
|
3301
|
+
return /* @__PURE__ */ jsx25(
|
|
3302
|
+
"button",
|
|
3303
|
+
{
|
|
3304
|
+
type: "button",
|
|
3305
|
+
onClick: chip.onSelect,
|
|
3306
|
+
className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
3307
|
+
children: /* @__PURE__ */ jsx25(Tag, { variant: chip.variant ?? "outline", icon: chip.icon, label: chip.label })
|
|
3308
|
+
}
|
|
3309
|
+
);
|
|
3310
|
+
}
|
|
3311
|
+
function ChatQuickActionRow({
|
|
3312
|
+
leading,
|
|
3313
|
+
chips,
|
|
3314
|
+
className
|
|
3315
|
+
}) {
|
|
3316
|
+
const auto = useAutoLimitTags({
|
|
3317
|
+
count: chips.length,
|
|
3318
|
+
reserveInputWidth: false
|
|
3319
|
+
});
|
|
3320
|
+
const visibleChips = chips.slice(0, auto.visibleCount);
|
|
3321
|
+
const hiddenChips = chips.slice(auto.visibleCount);
|
|
3322
|
+
if (!leading && chips.length === 0) return null;
|
|
3323
|
+
return /* @__PURE__ */ jsxs21(
|
|
3324
|
+
"div",
|
|
3325
|
+
{
|
|
3326
|
+
className: cn("relative flex shrink-0 items-center gap-1", className),
|
|
3327
|
+
children: [
|
|
3328
|
+
leading,
|
|
3329
|
+
chips.length > 0 && // Measured zone: `flex-1 min-w-0 overflow-hidden` so it claims the width
|
|
3330
|
+
// left by the pinned `leading` slot and clips anything past the fit.
|
|
3331
|
+
/* @__PURE__ */ jsxs21(
|
|
3332
|
+
"div",
|
|
3333
|
+
{
|
|
3334
|
+
ref: auto.middleRef,
|
|
3335
|
+
className: "flex flex-1 min-w-0 items-center gap-1 overflow-hidden",
|
|
3336
|
+
children: [
|
|
3337
|
+
visibleChips.map((chip) => /* @__PURE__ */ jsx25(ChipButton, { chip }, chip.id)),
|
|
3338
|
+
hiddenChips.length > 0 && /* @__PURE__ */ jsx25(
|
|
3339
|
+
ActionsMenuDropdown,
|
|
3340
|
+
{
|
|
3341
|
+
triggerAriaLabel: "More quick actions",
|
|
3342
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
3343
|
+
groups: [
|
|
3344
|
+
{
|
|
3345
|
+
items: hiddenChips.map((chip) => ({
|
|
3346
|
+
id: chip.id,
|
|
3347
|
+
label: chip.label,
|
|
3348
|
+
icon: chip.icon,
|
|
3349
|
+
onClick: chip.onSelect
|
|
3350
|
+
}))
|
|
3351
|
+
}
|
|
3352
|
+
],
|
|
3353
|
+
customTrigger: /* @__PURE__ */ jsx25(
|
|
3354
|
+
"button",
|
|
3355
|
+
{
|
|
3356
|
+
ref: auto.badgeRef,
|
|
3357
|
+
type: "button",
|
|
3358
|
+
"aria-label": "More quick actions",
|
|
3359
|
+
className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
3360
|
+
children: /* @__PURE__ */ jsx25(Tag, { variant: "outline", label: /* @__PURE__ */ jsx25(Ellipsis01Icon, { size: 16 }) })
|
|
3361
|
+
}
|
|
3362
|
+
)
|
|
3363
|
+
}
|
|
3364
|
+
)
|
|
3365
|
+
]
|
|
3366
|
+
}
|
|
3367
|
+
),
|
|
3368
|
+
/* @__PURE__ */ jsx25(
|
|
3369
|
+
"div",
|
|
3370
|
+
{
|
|
3371
|
+
ref: auto.measureRef,
|
|
3372
|
+
"aria-hidden": true,
|
|
3373
|
+
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-1",
|
|
3374
|
+
children: chips.map((chip) => /* @__PURE__ */ jsx25(
|
|
3375
|
+
Tag,
|
|
3376
|
+
{
|
|
3377
|
+
variant: chip.variant ?? "outline",
|
|
3378
|
+
icon: chip.icon,
|
|
3379
|
+
label: chip.label
|
|
3380
|
+
},
|
|
3381
|
+
`measure-${chip.id}`
|
|
3382
|
+
))
|
|
3383
|
+
}
|
|
3384
|
+
)
|
|
3385
|
+
]
|
|
3386
|
+
}
|
|
3387
|
+
);
|
|
3388
|
+
}
|
|
3389
|
+
|
|
3335
3390
|
// src/components/chat/chat-ticket-list.tsx
|
|
3336
3391
|
init_cn();
|
|
3337
3392
|
import * as React7 from "react";
|
|
@@ -3340,7 +3395,7 @@ import * as React7 from "react";
|
|
|
3340
3395
|
init_cn();
|
|
3341
3396
|
import * as React6 from "react";
|
|
3342
3397
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
3343
|
-
import { jsx as
|
|
3398
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3344
3399
|
var ChatTicketItem = React6.forwardRef(
|
|
3345
3400
|
({ className, ticket, onClick, ...props }, ref) => {
|
|
3346
3401
|
const statusTagProps = resolveStatusTagProps({
|
|
@@ -3351,7 +3406,7 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3351
3406
|
});
|
|
3352
3407
|
const isResolved = ticket.statusKind === "RESOLVED" || resolveTicketStatus(ticket.status) === "RESOLVED";
|
|
3353
3408
|
const subtitle = [ticket.ticketNumber, ticket.category, ticket.timeAgo].filter(Boolean).join(" \u2022 ");
|
|
3354
|
-
return /* @__PURE__ */
|
|
3409
|
+
return /* @__PURE__ */ jsxs22(
|
|
3355
3410
|
"button",
|
|
3356
3411
|
{
|
|
3357
3412
|
ref,
|
|
@@ -3372,8 +3427,8 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3372
3427
|
),
|
|
3373
3428
|
...props,
|
|
3374
3429
|
children: [
|
|
3375
|
-
/* @__PURE__ */
|
|
3376
|
-
/* @__PURE__ */
|
|
3430
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex flex-col justify-center flex-1 min-w-0 text-left", children: [
|
|
3431
|
+
/* @__PURE__ */ jsx26(
|
|
3377
3432
|
"p",
|
|
3378
3433
|
{
|
|
3379
3434
|
className: cn(
|
|
@@ -3384,19 +3439,19 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3384
3439
|
children: ticket.title
|
|
3385
3440
|
}
|
|
3386
3441
|
),
|
|
3387
|
-
subtitle && /* @__PURE__ */
|
|
3442
|
+
subtitle && /* @__PURE__ */ jsx26("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
|
|
3388
3443
|
] }),
|
|
3389
|
-
ticket.linkedTaskLabel && /* @__PURE__ */
|
|
3444
|
+
ticket.linkedTaskLabel && /* @__PURE__ */ jsx26(
|
|
3390
3445
|
Tag,
|
|
3391
3446
|
{
|
|
3392
3447
|
label: ticket.linkedTaskLabel,
|
|
3393
3448
|
variant: "outline",
|
|
3394
|
-
icon: /* @__PURE__ */
|
|
3449
|
+
icon: /* @__PURE__ */ jsx26(WrenchIcon, { size: 14, color: "var(--ods-text-secondary)" }),
|
|
3395
3450
|
className: "shrink-0 hidden sm:inline-flex"
|
|
3396
3451
|
}
|
|
3397
3452
|
),
|
|
3398
|
-
(statusTagProps.status || statusTagProps.label) && /* @__PURE__ */
|
|
3399
|
-
/* @__PURE__ */
|
|
3453
|
+
(statusTagProps.status || statusTagProps.label) && /* @__PURE__ */ jsx26(TicketStatusTag, { ...statusTagProps }),
|
|
3454
|
+
/* @__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
3455
|
]
|
|
3401
3456
|
}
|
|
3402
3457
|
);
|
|
@@ -3405,7 +3460,7 @@ var ChatTicketItem = React6.forwardRef(
|
|
|
3405
3460
|
ChatTicketItem.displayName = "ChatTicketItem";
|
|
3406
3461
|
|
|
3407
3462
|
// src/components/chat/chat-ticket-list.tsx
|
|
3408
|
-
import { jsx as
|
|
3463
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3409
3464
|
function getMask(top, bottom) {
|
|
3410
3465
|
if (top && bottom) return "linear-gradient(to bottom, transparent, black 64px, black calc(100% - 64px), transparent)";
|
|
3411
3466
|
if (top) return "linear-gradient(to bottom, transparent, black 64px)";
|
|
@@ -3429,9 +3484,9 @@ var ChatTicketList = React7.forwardRef(
|
|
|
3429
3484
|
}, [ticketCount, updateFade]);
|
|
3430
3485
|
if (tickets.length === 0) return null;
|
|
3431
3486
|
const mask = getMask(fadeTop, fadeBottom);
|
|
3432
|
-
return /* @__PURE__ */
|
|
3433
|
-
/* @__PURE__ */
|
|
3434
|
-
/* @__PURE__ */
|
|
3487
|
+
return /* @__PURE__ */ jsxs23("div", { ref, className: cn("flex flex-col gap-2 min-h-0", className), ...props, children: [
|
|
3488
|
+
/* @__PURE__ */ jsx27("p", { className: "text-h5 text-ods-text-secondary shrink-0", children: "Your Chats:" }),
|
|
3489
|
+
/* @__PURE__ */ jsx27(
|
|
3435
3490
|
"div",
|
|
3436
3491
|
{
|
|
3437
3492
|
className: cn(
|
|
@@ -3439,14 +3494,14 @@ var ChatTicketList = React7.forwardRef(
|
|
|
3439
3494
|
!fadeTop && "border-t rounded-t-md",
|
|
3440
3495
|
!fadeBottom && "border-b rounded-b-md"
|
|
3441
3496
|
),
|
|
3442
|
-
children: /* @__PURE__ */
|
|
3497
|
+
children: /* @__PURE__ */ jsx27(
|
|
3443
3498
|
"div",
|
|
3444
3499
|
{
|
|
3445
3500
|
ref: scrollRef,
|
|
3446
3501
|
className: "overflow-y-auto h-full",
|
|
3447
3502
|
onScroll: updateFade,
|
|
3448
3503
|
style: mask !== "none" ? { maskImage: mask, WebkitMaskImage: mask } : void 0,
|
|
3449
|
-
children: tickets.map((ticket) => /* @__PURE__ */
|
|
3504
|
+
children: tickets.map((ticket) => /* @__PURE__ */ jsx27(
|
|
3450
3505
|
ChatTicketItem,
|
|
3451
3506
|
{
|
|
3452
3507
|
ticket,
|
|
@@ -3465,7 +3520,7 @@ ChatTicketList.displayName = "ChatTicketList";
|
|
|
3465
3520
|
|
|
3466
3521
|
// src/components/chat/mingo-onboarding-card-skeleton.tsx
|
|
3467
3522
|
init_cn();
|
|
3468
|
-
import { jsx as
|
|
3523
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3469
3524
|
function MingoOnboardingCardSkeleton({
|
|
3470
3525
|
titleWidth = "w-32",
|
|
3471
3526
|
slashWidth = "w-20",
|
|
@@ -3474,25 +3529,25 @@ function MingoOnboardingCardSkeleton({
|
|
|
3474
3529
|
className
|
|
3475
3530
|
}) {
|
|
3476
3531
|
const hasChips = chipWidths.length > 0;
|
|
3477
|
-
return /* @__PURE__ */
|
|
3532
|
+
return /* @__PURE__ */ jsx28(
|
|
3478
3533
|
"div",
|
|
3479
3534
|
{
|
|
3480
3535
|
className: cn(
|
|
3481
3536
|
"flex w-full items-start p-[var(--spacing-system-s)] bg-ods-card border-b border-ods-border last:border-b-0",
|
|
3482
3537
|
className
|
|
3483
3538
|
),
|
|
3484
|
-
children: /* @__PURE__ */
|
|
3485
|
-
/* @__PURE__ */
|
|
3486
|
-
/* @__PURE__ */
|
|
3487
|
-
/* @__PURE__ */
|
|
3488
|
-
/* @__PURE__ */
|
|
3489
|
-
/* @__PURE__ */
|
|
3539
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] w-full", children: [
|
|
3540
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full", children: [
|
|
3541
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
|
|
3542
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm", titleWidth) }),
|
|
3543
|
+
/* @__PURE__ */ jsx28("span", { className: "flex-1" }),
|
|
3544
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: cn("h-3.5 rounded-sm shrink-0", slashWidth) })
|
|
3490
3545
|
] }),
|
|
3491
|
-
/* @__PURE__ */
|
|
3492
|
-
/* @__PURE__ */
|
|
3493
|
-
descriptionLines === 2 ? /* @__PURE__ */
|
|
3546
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
3547
|
+
/* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-full rounded-sm" }),
|
|
3548
|
+
descriptionLines === 2 ? /* @__PURE__ */ jsx28(Skeleton, { className: "h-3.5 w-[70%] rounded-sm" }) : null
|
|
3494
3549
|
] }),
|
|
3495
|
-
hasChips ? /* @__PURE__ */
|
|
3550
|
+
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
3551
|
] })
|
|
3497
3552
|
}
|
|
3498
3553
|
);
|
|
@@ -3501,7 +3556,7 @@ function MingoOnboardingListSkeleton({
|
|
|
3501
3556
|
rows = 6,
|
|
3502
3557
|
className
|
|
3503
3558
|
}) {
|
|
3504
|
-
return /* @__PURE__ */
|
|
3559
|
+
return /* @__PURE__ */ jsx28(
|
|
3505
3560
|
"div",
|
|
3506
3561
|
{
|
|
3507
3562
|
role: "status",
|
|
@@ -3513,7 +3568,7 @@ function MingoOnboardingListSkeleton({
|
|
|
3513
3568
|
),
|
|
3514
3569
|
children: Array.from({ length: rows }).map((_, i) => {
|
|
3515
3570
|
const variant = ROW_VARIANTS[i % ROW_VARIANTS.length];
|
|
3516
|
-
return /* @__PURE__ */
|
|
3571
|
+
return /* @__PURE__ */ jsx28(
|
|
3517
3572
|
MingoOnboardingCardSkeleton,
|
|
3518
3573
|
{
|
|
3519
3574
|
titleWidth: variant.titleWidth,
|
|
@@ -3543,7 +3598,7 @@ import * as React9 from "react";
|
|
|
3543
3598
|
init_cn();
|
|
3544
3599
|
import * as React8 from "react";
|
|
3545
3600
|
init_button2();
|
|
3546
|
-
import { jsx as
|
|
3601
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3547
3602
|
function dialogTime(d) {
|
|
3548
3603
|
if (!d.timestamp) return null;
|
|
3549
3604
|
const t = typeof d.timestamp === "string" ? Date.parse(d.timestamp) : d.timestamp.getTime();
|
|
@@ -3595,7 +3650,7 @@ function MingoChatHistoryRow({
|
|
|
3595
3650
|
onClick: () => onRequestArchive(dialog)
|
|
3596
3651
|
}
|
|
3597
3652
|
].filter(Boolean);
|
|
3598
|
-
return /* @__PURE__ */
|
|
3653
|
+
return /* @__PURE__ */ jsxs25(
|
|
3599
3654
|
"div",
|
|
3600
3655
|
{
|
|
3601
3656
|
className: cn(
|
|
@@ -3604,7 +3659,7 @@ function MingoChatHistoryRow({
|
|
|
3604
3659
|
isActive && "bg-ods-bg-hover"
|
|
3605
3660
|
),
|
|
3606
3661
|
children: [
|
|
3607
|
-
/* @__PURE__ */
|
|
3662
|
+
/* @__PURE__ */ jsxs25(
|
|
3608
3663
|
"div",
|
|
3609
3664
|
{
|
|
3610
3665
|
role: "button",
|
|
@@ -3618,8 +3673,8 @@ function MingoChatHistoryRow({
|
|
|
3618
3673
|
},
|
|
3619
3674
|
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
3675
|
children: [
|
|
3621
|
-
unread > 0 ? /* @__PURE__ */
|
|
3622
|
-
/* @__PURE__ */
|
|
3676
|
+
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,
|
|
3677
|
+
/* @__PURE__ */ jsx29(
|
|
3623
3678
|
"span",
|
|
3624
3679
|
{
|
|
3625
3680
|
className: "min-w-0 flex-1 truncate text-h4 text-ods-text-primary",
|
|
@@ -3635,7 +3690,7 @@ function MingoChatHistoryRow({
|
|
|
3635
3690
|
// right edge, free of the content's left padding. Revealed on row
|
|
3636
3691
|
// hover/focus; kept visible while its menu is open. Hidden on mobile —
|
|
3637
3692
|
// it's a hover affordance (no hover on touch).
|
|
3638
|
-
/* @__PURE__ */
|
|
3693
|
+
/* @__PURE__ */ jsx29(
|
|
3639
3694
|
"span",
|
|
3640
3695
|
{
|
|
3641
3696
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -3647,7 +3702,7 @@ function MingoChatHistoryRow({
|
|
|
3647
3702
|
"self-stretch shrink-0 transition-opacity max-md:hidden",
|
|
3648
3703
|
menuOpen ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 focus-within:opacity-100"
|
|
3649
3704
|
),
|
|
3650
|
-
children: /* @__PURE__ */
|
|
3705
|
+
children: /* @__PURE__ */ jsx29(
|
|
3651
3706
|
ActionsMenuDropdown,
|
|
3652
3707
|
{
|
|
3653
3708
|
triggerAriaLabel: "Chat actions",
|
|
@@ -3655,14 +3710,14 @@ function MingoChatHistoryRow({
|
|
|
3655
3710
|
open: menuOpen,
|
|
3656
3711
|
onOpenChange: setMenuOpen,
|
|
3657
3712
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
3658
|
-
customTrigger: /* @__PURE__ */
|
|
3713
|
+
customTrigger: /* @__PURE__ */ jsx29(
|
|
3659
3714
|
Button,
|
|
3660
3715
|
{
|
|
3661
3716
|
variant: "transparent",
|
|
3662
3717
|
size: "icon",
|
|
3663
3718
|
"aria-label": "Chat actions",
|
|
3664
3719
|
className: "h-full md:h-full rounded-none p-0 text-ods-text-secondary hover:text-ods-text-primary",
|
|
3665
|
-
children: /* @__PURE__ */
|
|
3720
|
+
children: /* @__PURE__ */ jsx29(Ellipsis01Icon, {})
|
|
3666
3721
|
}
|
|
3667
3722
|
)
|
|
3668
3723
|
}
|
|
@@ -3679,7 +3734,7 @@ function MingoChatHistorySkeleton({ className }) {
|
|
|
3679
3734
|
{ withBadge: 2, widths: ["w-3/5", "w-4/5", "w-2/5", "w-3/4"] },
|
|
3680
3735
|
{ withBadge: 0, widths: ["w-1/2", "w-3/5", "w-2/3"] }
|
|
3681
3736
|
];
|
|
3682
|
-
return /* @__PURE__ */
|
|
3737
|
+
return /* @__PURE__ */ jsx29(
|
|
3683
3738
|
"div",
|
|
3684
3739
|
{
|
|
3685
3740
|
"aria-hidden": true,
|
|
@@ -3687,15 +3742,15 @@ function MingoChatHistorySkeleton({ className }) {
|
|
|
3687
3742
|
"flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-hidden",
|
|
3688
3743
|
className
|
|
3689
3744
|
),
|
|
3690
|
-
children: groups.map((group, g) => /* @__PURE__ */
|
|
3691
|
-
/* @__PURE__ */
|
|
3692
|
-
/* @__PURE__ */
|
|
3745
|
+
children: groups.map((group, g) => /* @__PURE__ */ jsxs25("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
3746
|
+
/* @__PURE__ */ jsx29("div", { className: "h-3 w-16 animate-pulse rounded bg-ods-border" }),
|
|
3747
|
+
/* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.widths.map((w, i) => /* @__PURE__ */ jsxs25(
|
|
3693
3748
|
"div",
|
|
3694
3749
|
{
|
|
3695
3750
|
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
3751
|
children: [
|
|
3697
|
-
i < group.withBadge && /* @__PURE__ */
|
|
3698
|
-
/* @__PURE__ */
|
|
3752
|
+
i < group.withBadge && /* @__PURE__ */ jsx29("div", { className: "h-8 w-8 shrink-0 animate-pulse rounded-md bg-ods-border" }),
|
|
3753
|
+
/* @__PURE__ */ jsx29("div", { className: cn("h-4 animate-pulse rounded bg-ods-border", w) })
|
|
3699
3754
|
]
|
|
3700
3755
|
},
|
|
3701
3756
|
i
|
|
@@ -3754,21 +3809,21 @@ function MingoChatHistory({
|
|
|
3754
3809
|
io.observe(sentinel);
|
|
3755
3810
|
return () => io.disconnect();
|
|
3756
3811
|
}, [hasMore]);
|
|
3757
|
-
return /* @__PURE__ */
|
|
3758
|
-
/* @__PURE__ */
|
|
3812
|
+
return /* @__PURE__ */ jsxs25("div", { className: cn("relative flex flex-1 min-h-0 flex-col", className), children: [
|
|
3813
|
+
/* @__PURE__ */ jsxs25(
|
|
3759
3814
|
"div",
|
|
3760
3815
|
{
|
|
3761
3816
|
ref: scrollRef,
|
|
3762
3817
|
onScroll: updateFade,
|
|
3763
3818
|
className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
|
|
3764
3819
|
children: [
|
|
3765
|
-
groups.map((group) => /* @__PURE__ */
|
|
3820
|
+
groups.map((group) => /* @__PURE__ */ jsxs25(
|
|
3766
3821
|
"div",
|
|
3767
3822
|
{
|
|
3768
3823
|
className: "flex flex-col gap-[var(--spacing-system-xxs)]",
|
|
3769
3824
|
children: [
|
|
3770
|
-
/* @__PURE__ */
|
|
3771
|
-
/* @__PURE__ */
|
|
3825
|
+
/* @__PURE__ */ jsx29("p", { className: "text-h5 text-ods-text-secondary", children: group.label }),
|
|
3826
|
+
/* @__PURE__ */ jsx29("div", { className: "overflow-hidden rounded-md border border-ods-border", children: group.items.map((dialog) => /* @__PURE__ */ jsx29(
|
|
3772
3827
|
MingoChatHistoryRow,
|
|
3773
3828
|
{
|
|
3774
3829
|
dialog,
|
|
@@ -3783,11 +3838,11 @@ function MingoChatHistory({
|
|
|
3783
3838
|
},
|
|
3784
3839
|
group.key
|
|
3785
3840
|
)),
|
|
3786
|
-
hasMore ? /* @__PURE__ */
|
|
3841
|
+
hasMore ? /* @__PURE__ */ jsx29("div", { ref: sentinelRef, className: "h-px shrink-0" }) : null
|
|
3787
3842
|
]
|
|
3788
3843
|
}
|
|
3789
3844
|
),
|
|
3790
|
-
/* @__PURE__ */
|
|
3845
|
+
/* @__PURE__ */ jsx29(
|
|
3791
3846
|
"div",
|
|
3792
3847
|
{
|
|
3793
3848
|
"aria-hidden": true,
|
|
@@ -3800,7 +3855,7 @@ function MingoChatHistory({
|
|
|
3800
3855
|
}
|
|
3801
3856
|
}
|
|
3802
3857
|
),
|
|
3803
|
-
/* @__PURE__ */
|
|
3858
|
+
/* @__PURE__ */ jsx29(
|
|
3804
3859
|
"div",
|
|
3805
3860
|
{
|
|
3806
3861
|
"aria-hidden": true,
|
|
@@ -3816,99 +3871,6 @@ function MingoChatHistory({
|
|
|
3816
3871
|
] });
|
|
3817
3872
|
}
|
|
3818
3873
|
|
|
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
3874
|
// src/components/chat/mingo-welcome.tsx
|
|
3913
3875
|
init_button2();
|
|
3914
3876
|
import { Fragment as Fragment2, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
@@ -12153,41 +12115,6 @@ import React54 from "react";
|
|
|
12153
12115
|
// src/utils/index.ts
|
|
12154
12116
|
init_cn();
|
|
12155
12117
|
init_platform_domains();
|
|
12156
|
-
|
|
12157
|
-
// src/utils/common.ts
|
|
12158
|
-
import { clsx } from "clsx";
|
|
12159
|
-
import { twMerge } from "tailwind-merge";
|
|
12160
|
-
function cn2(...inputs) {
|
|
12161
|
-
return twMerge(clsx(inputs));
|
|
12162
|
-
}
|
|
12163
|
-
function delay(ms) {
|
|
12164
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
12165
|
-
}
|
|
12166
|
-
function generateRandomString(length = 8) {
|
|
12167
|
-
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
12168
|
-
let result = "";
|
|
12169
|
-
for (let i = 0; i < length; i++) {
|
|
12170
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
12171
|
-
}
|
|
12172
|
-
return result;
|
|
12173
|
-
}
|
|
12174
|
-
function truncateString(str, maxLength, suffix = "...") {
|
|
12175
|
-
if (str.length <= maxLength) return str;
|
|
12176
|
-
return str.substring(0, maxLength - suffix.length) + suffix;
|
|
12177
|
-
}
|
|
12178
|
-
function deepClone(obj) {
|
|
12179
|
-
return JSON.parse(JSON.stringify(obj));
|
|
12180
|
-
}
|
|
12181
|
-
function getSlackCommunityJoinUrl() {
|
|
12182
|
-
const url = process.env.NEXT_PUBLIC_SLACK_COMMUNITY_JOIN_URL;
|
|
12183
|
-
if (!url) {
|
|
12184
|
-
console.warn("NEXT_PUBLIC_SLACK_COMMUNITY_JOIN_URL is not defined in environment variables");
|
|
12185
|
-
return "https://join.slack.com/t/openmsp/shared_invite/zt-36bl7mx0h-3~U2nFH6nqHqoTPXMaHEHA";
|
|
12186
|
-
}
|
|
12187
|
-
return url;
|
|
12188
|
-
}
|
|
12189
|
-
|
|
12190
|
-
// src/utils/index.ts
|
|
12191
12118
|
init_cn();
|
|
12192
12119
|
|
|
12193
12120
|
// src/utils/os-platforms.ts
|
|
@@ -39257,14 +39184,11 @@ export {
|
|
|
39257
39184
|
MESSAGE_TYPE,
|
|
39258
39185
|
SCROLL_ANCHOR,
|
|
39259
39186
|
ChatMessageList,
|
|
39260
|
-
getProxiedImageUrl,
|
|
39261
|
-
urlPathLooksLikeSvg,
|
|
39262
|
-
shouldProxyImage,
|
|
39263
|
-
generateImageSizes,
|
|
39264
39187
|
useProxiedImageUrl,
|
|
39265
39188
|
ChatMessageRow,
|
|
39266
39189
|
ChatMessageRowSkeleton,
|
|
39267
39190
|
ChatQuickAction,
|
|
39191
|
+
ChatQuickActionRow,
|
|
39268
39192
|
ChatTicketItem,
|
|
39269
39193
|
ChatTicketList,
|
|
39270
39194
|
MingoOnboardingCardSkeleton,
|
|
@@ -39443,11 +39367,6 @@ export {
|
|
|
39443
39367
|
Toggle,
|
|
39444
39368
|
ToggleGroup,
|
|
39445
39369
|
ToggleGroupItem,
|
|
39446
|
-
delay,
|
|
39447
|
-
generateRandomString,
|
|
39448
|
-
truncateString,
|
|
39449
|
-
deepClone,
|
|
39450
|
-
getSlackCommunityJoinUrl,
|
|
39451
39370
|
OS_PLATFORMS,
|
|
39452
39371
|
DEFAULT_OS_PLATFORM,
|
|
39453
39372
|
isValidEmailDomain,
|
|
@@ -39753,4 +39672,4 @@ export {
|
|
|
39753
39672
|
LogsList,
|
|
39754
39673
|
assets
|
|
39755
39674
|
};
|
|
39756
|
-
//# sourceMappingURL=chunk-
|
|
39675
|
+
//# sourceMappingURL=chunk-CBIQDPHK.js.map
|