@flamingo-stack/openframe-frontend-core 0.0.669 → 0.0.670-2401.7221.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-QHL4GYYY.cjs → chunk-3BLN7YNM.cjs} +575 -452
- package/dist/chunk-3BLN7YNM.cjs.map +1 -0
- package/dist/{chunk-CFUUVLYQ.cjs → chunk-4TEV4KPV.cjs} +33 -33
- package/dist/{chunk-CFUUVLYQ.cjs.map → chunk-4TEV4KPV.cjs.map} +1 -1
- package/dist/{chunk-Z3HUP4G7.cjs → chunk-635CAJ36.cjs} +32 -32
- package/dist/{chunk-Z3HUP4G7.cjs.map → chunk-635CAJ36.cjs.map} +1 -1
- package/dist/{chunk-7UW2BBFI.cjs → chunk-7KZRU5Z2.cjs} +59 -59
- package/dist/{chunk-7UW2BBFI.cjs.map → chunk-7KZRU5Z2.cjs.map} +1 -1
- package/dist/{chunk-FJNX67W2.cjs → chunk-AGM3ZA43.cjs} +5 -5
- package/dist/{chunk-FJNX67W2.cjs.map → chunk-AGM3ZA43.cjs.map} +1 -1
- package/dist/{chunk-TFVUM6KK.cjs → chunk-ALKT3U5Y.cjs} +10 -10
- package/dist/{chunk-TFVUM6KK.cjs.map → chunk-ALKT3U5Y.cjs.map} +1 -1
- package/dist/{chunk-YH3BUB4W.js → chunk-B7EGFSTQ.js} +5 -5
- package/dist/{chunk-GF6WJ4MG.js → chunk-BP3OYBQV.js} +6 -6
- package/dist/{chunk-P6IJXAEE.js → chunk-DLJGCDHX.js} +2 -1
- package/dist/{chunk-P6IJXAEE.js.map → chunk-DLJGCDHX.js.map} +1 -1
- package/dist/{chunk-GO63IT6K.js → chunk-EJM2E6KF.js} +5 -5
- package/dist/{chunk-WVCDX7FE.cjs → chunk-GAQSQ7CH.cjs} +15 -15
- package/dist/{chunk-WVCDX7FE.cjs.map → chunk-GAQSQ7CH.cjs.map} +1 -1
- package/dist/{chunk-B5UP36KY.cjs → chunk-GN2TSC36.cjs} +12 -12
- package/dist/{chunk-B5UP36KY.cjs.map → chunk-GN2TSC36.cjs.map} +1 -1
- package/dist/{chunk-ZHRIFUN3.cjs → chunk-GP4SLGDO.cjs} +28 -28
- package/dist/{chunk-ZHRIFUN3.cjs.map → chunk-GP4SLGDO.cjs.map} +1 -1
- package/dist/{chunk-LJOELK7P.js → chunk-GUZG4MSV.js} +2 -2
- package/dist/{chunk-IBQT4RTS.js → chunk-HJXIIGLD.js} +3 -3
- package/dist/{chunk-E5HUHKHH.js → chunk-I3I3HPZA.js} +7 -7
- package/dist/{chunk-6KJV6GAJ.js → chunk-IA7AGOBD.js} +4 -4
- package/dist/{chunk-NNYND3I4.js → chunk-J4XQQ43Y.js} +3 -3
- package/dist/{chunk-IZ6F7LOE.js → chunk-JBH5YDPP.js} +3 -3
- package/dist/{chunk-Y7SFGCF4.cjs → chunk-LKRNXIUL.cjs} +20 -20
- package/dist/{chunk-Y7SFGCF4.cjs.map → chunk-LKRNXIUL.cjs.map} +1 -1
- package/dist/{chunk-EV2KJ4D2.cjs → chunk-MQCEDC6H.cjs} +7 -7
- package/dist/{chunk-EV2KJ4D2.cjs.map → chunk-MQCEDC6H.cjs.map} +1 -1
- package/dist/{chunk-PHLBRU5P.js → chunk-OCMJWI6L.js} +3 -3
- package/dist/{chunk-CWK4QHVF.js → chunk-PAJUQOWK.js} +3 -3
- package/dist/{chunk-IJPV7OMA.js → chunk-PEBQEALM.js} +589 -466
- package/dist/chunk-PEBQEALM.js.map +1 -0
- package/dist/{chunk-5CC33IJ7.js → chunk-PMCLM3KV.js} +6 -6
- package/dist/{chunk-6W4LUHMY.cjs → chunk-Q4SJJNP2.cjs} +206 -206
- package/dist/{chunk-6W4LUHMY.cjs.map → chunk-Q4SJJNP2.cjs.map} +1 -1
- package/dist/{chunk-37NYF4W2.cjs → chunk-QRUW4UXB.cjs} +2 -1
- package/dist/chunk-QRUW4UXB.cjs.map +1 -0
- package/dist/{chunk-Z3GN3MIW.cjs → chunk-QYUBHOIE.cjs} +81 -81
- package/dist/{chunk-Z3GN3MIW.cjs.map → chunk-QYUBHOIE.cjs.map} +1 -1
- package/dist/{chunk-VJ4XBTR5.cjs → chunk-S5UETFC4.cjs} +22 -22
- package/dist/{chunk-VJ4XBTR5.cjs.map → chunk-S5UETFC4.cjs.map} +1 -1
- package/dist/{chunk-5V3LERVC.js → chunk-SPYKIXKJ.js} +4 -4
- package/dist/{chunk-FOH4MNOZ.js → chunk-TQJN7EBG.js} +3 -3
- package/dist/{chunk-NZD2WTJ2.cjs → chunk-TYXXODCQ.cjs} +3 -3
- package/dist/{chunk-NZD2WTJ2.cjs.map → chunk-TYXXODCQ.cjs.map} +1 -1
- package/dist/{chunk-K4WYWTQV.cjs → chunk-UYZNNKPD.cjs} +6 -6
- package/dist/{chunk-K4WYWTQV.cjs.map → chunk-UYZNNKPD.cjs.map} +1 -1
- package/dist/{chunk-SHGMDYCR.js → chunk-VEAA5C5X.js} +2 -2
- package/dist/{chunk-VEQWH5KH.cjs → chunk-X4B3UY3L.cjs} +30 -30
- package/dist/{chunk-VEQWH5KH.cjs.map → chunk-X4B3UY3L.cjs.map} +1 -1
- package/dist/{chunk-DK3BHDUZ.js → chunk-Z72SBI2U.js} +3 -3
- package/dist/components/case-studies/index.cjs +16 -16
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/entity-cards/design-doc-card.d.ts +32 -0
- package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/index.d.ts +1 -0
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +15 -3
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +14 -2
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +91 -91
- package/dist/components/help-center-pages/index.js +15 -15
- package/dist/components/index.cjs +66 -54
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +27 -15
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +40 -40
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +8 -8
- package/dist/components/tickets/index.js +7 -7
- package/dist/components/ui/index.cjs +16 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +15 -3
- package/dist/index.cjs +21 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/utils/index.cjs +7 -3
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +7 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/list-url.d.ts.map +1 -1
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/design-doc-card.tsx +130 -0
- package/src/components/chat/entity-cards/dispatch.tsx +53 -1
- package/src/components/chat/entity-cards/index.ts +9 -0
- package/src/utils/list-url.ts +1 -0
- package/src/utils/source-icons.ts +3 -0
- package/dist/chunk-37NYF4W2.cjs.map +0 -1
- package/dist/chunk-IJPV7OMA.js.map +0 -1
- package/dist/chunk-QHL4GYYY.cjs.map +0 -1
- /package/dist/{chunk-YH3BUB4W.js.map → chunk-B7EGFSTQ.js.map} +0 -0
- /package/dist/{chunk-GF6WJ4MG.js.map → chunk-BP3OYBQV.js.map} +0 -0
- /package/dist/{chunk-GO63IT6K.js.map → chunk-EJM2E6KF.js.map} +0 -0
- /package/dist/{chunk-LJOELK7P.js.map → chunk-GUZG4MSV.js.map} +0 -0
- /package/dist/{chunk-IBQT4RTS.js.map → chunk-HJXIIGLD.js.map} +0 -0
- /package/dist/{chunk-E5HUHKHH.js.map → chunk-I3I3HPZA.js.map} +0 -0
- /package/dist/{chunk-6KJV6GAJ.js.map → chunk-IA7AGOBD.js.map} +0 -0
- /package/dist/{chunk-NNYND3I4.js.map → chunk-J4XQQ43Y.js.map} +0 -0
- /package/dist/{chunk-IZ6F7LOE.js.map → chunk-JBH5YDPP.js.map} +0 -0
- /package/dist/{chunk-PHLBRU5P.js.map → chunk-OCMJWI6L.js.map} +0 -0
- /package/dist/{chunk-CWK4QHVF.js.map → chunk-PAJUQOWK.js.map} +0 -0
- /package/dist/{chunk-5CC33IJ7.js.map → chunk-PMCLM3KV.js.map} +0 -0
- /package/dist/{chunk-5V3LERVC.js.map → chunk-SPYKIXKJ.js.map} +0 -0
- /package/dist/{chunk-FOH4MNOZ.js.map → chunk-TQJN7EBG.js.map} +0 -0
- /package/dist/{chunk-SHGMDYCR.js.map → chunk-VEAA5C5X.js.map} +0 -0
- /package/dist/{chunk-DK3BHDUZ.js.map → chunk-Z72SBI2U.js.map} +0 -0
|
@@ -80,6 +80,7 @@ import {
|
|
|
80
80
|
CodeSquareIcon,
|
|
81
81
|
CodingBranchIcon,
|
|
82
82
|
CodingCommitIcon,
|
|
83
|
+
CodingMergeIcon,
|
|
83
84
|
CodingPullRequestIcon,
|
|
84
85
|
CoinsExchangeCurrencyIcon,
|
|
85
86
|
CompassIcon,
|
|
@@ -134,6 +135,7 @@ import {
|
|
|
134
135
|
icons_v2_generated_exports
|
|
135
136
|
} from "./chunk-N6RDO3L5.js";
|
|
136
137
|
import {
|
|
138
|
+
AvatarStack,
|
|
137
139
|
BlogCardSkeleton,
|
|
138
140
|
COMPACT_CARD_ICON_SLOT,
|
|
139
141
|
COMPACT_CARD_META_ROW,
|
|
@@ -192,7 +194,7 @@ import {
|
|
|
192
194
|
trustFrameworkMonitoringEntry,
|
|
193
195
|
trustFrameworksSummary,
|
|
194
196
|
useCoverImageFallback
|
|
195
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-DLJGCDHX.js";
|
|
196
198
|
import {
|
|
197
199
|
next_image_default
|
|
198
200
|
} from "./chunk-MDKCTSDS.js";
|
|
@@ -14177,10 +14179,89 @@ function ChatVideoEntityCard({ chatRef }) {
|
|
|
14177
14179
|
);
|
|
14178
14180
|
}
|
|
14179
14181
|
|
|
14182
|
+
// src/components/chat/entity-cards/design-doc-card.tsx
|
|
14183
|
+
import { Fragment as Fragment25, jsx as jsx87, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
14184
|
+
function designDocSignOffStatus(completion) {
|
|
14185
|
+
if (completion.isComplete) return { label: "Ready", scheme: "success", tag: "success" };
|
|
14186
|
+
if (completion.openBlocking > 0 || completion.blocked > 0) return { label: "Blocked", scheme: "error", tag: "error" };
|
|
14187
|
+
return { label: "In review", scheme: "warning", tag: "warning" };
|
|
14188
|
+
}
|
|
14189
|
+
function designDocSignOffLabel(completion) {
|
|
14190
|
+
return `${completion.completed}/${completion.total} review${completion.total === 1 ? "" : "s"} signed off`;
|
|
14191
|
+
}
|
|
14192
|
+
function designDocPeople(doc) {
|
|
14193
|
+
const people = [];
|
|
14194
|
+
if (doc.author?.full_name)
|
|
14195
|
+
people.push({
|
|
14196
|
+
key: `dri-${doc.author.id ?? doc.author.full_name}`,
|
|
14197
|
+
name: doc.author.full_name,
|
|
14198
|
+
avatarUrl: doc.author.avatar_url
|
|
14199
|
+
});
|
|
14200
|
+
for (const p of doc.feature_leads ?? []) {
|
|
14201
|
+
if (!p.full_name) continue;
|
|
14202
|
+
people.push({ key: `lead-${p.id}`, name: p.full_name, avatarUrl: p.avatar_url });
|
|
14203
|
+
}
|
|
14204
|
+
return people;
|
|
14205
|
+
}
|
|
14206
|
+
function designDocMetaLine(doc) {
|
|
14207
|
+
return [doc.author?.full_name ? `DRI ${doc.author.full_name}` : null, `updated ${formatDateShort(doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
|
|
14208
|
+
}
|
|
14209
|
+
function DesignDocCardSkeleton() {
|
|
14210
|
+
return /* @__PURE__ */ jsxs65("div", { className: "flex h-full animate-pulse flex-col gap-[16px] rounded-[6px] border border-ods-border bg-ods-card p-[24px]", children: [
|
|
14211
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-[16px]", children: [
|
|
14212
|
+
/* @__PURE__ */ jsx87("div", { className: "h-16 w-16 rounded-lg bg-ods-bg" }),
|
|
14213
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex flex-1 flex-col gap-2", children: [
|
|
14214
|
+
/* @__PURE__ */ jsx87("div", { className: "h-5 w-3/4 rounded bg-ods-bg" }),
|
|
14215
|
+
/* @__PURE__ */ jsx87("div", { className: "h-4 w-1/3 rounded bg-ods-bg/70" })
|
|
14216
|
+
] })
|
|
14217
|
+
] }),
|
|
14218
|
+
/* @__PURE__ */ jsx87("div", { className: "h-4 w-full rounded bg-ods-bg/60" }),
|
|
14219
|
+
/* @__PURE__ */ jsx87("div", { className: "h-4 w-5/6 rounded bg-ods-bg/60" })
|
|
14220
|
+
] });
|
|
14221
|
+
}
|
|
14222
|
+
function DesignDocCard({ doc, href, target, rel, className }) {
|
|
14223
|
+
const status = designDocSignOffStatus(doc.completion);
|
|
14224
|
+
const people = designDocPeople(doc);
|
|
14225
|
+
const link = safeHref(href ?? null);
|
|
14226
|
+
const body = /* @__PURE__ */ jsxs65(Fragment25, { children: [
|
|
14227
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex w-full items-center gap-[16px]", children: [
|
|
14228
|
+
/* @__PURE__ */ jsx87("div", { className: "flex h-16 w-16 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg text-ods-accent", children: /* @__PURE__ */ jsx87(FileContentIcon, { size: 32 }) }),
|
|
14229
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
14230
|
+
/* @__PURE__ */ jsx87("div", { className: "flex min-h-[48px] items-center", children: /* @__PURE__ */ jsx87("h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: doc.title || "Untitled design doc" }) }),
|
|
14231
|
+
/* @__PURE__ */ jsx87("div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ jsx87("p", { className: "truncate text-ods-text-secondary text-h5", children: designDocMetaLine(doc) }) })
|
|
14232
|
+
] }),
|
|
14233
|
+
/* @__PURE__ */ jsx87(
|
|
14234
|
+
StatusBadge,
|
|
14235
|
+
{
|
|
14236
|
+
text: status.label.toUpperCase(),
|
|
14237
|
+
colorScheme: status.scheme,
|
|
14238
|
+
className: "hidden border border-ods-border md:inline-flex"
|
|
14239
|
+
}
|
|
14240
|
+
)
|
|
14241
|
+
] }),
|
|
14242
|
+
/* @__PURE__ */ jsx87("div", { className: "md:hidden", children: /* @__PURE__ */ jsx87(
|
|
14243
|
+
StatusBadge,
|
|
14244
|
+
{
|
|
14245
|
+
text: status.label.toUpperCase(),
|
|
14246
|
+
colorScheme: status.scheme,
|
|
14247
|
+
className: "border border-ods-border"
|
|
14248
|
+
}
|
|
14249
|
+
) }),
|
|
14250
|
+
/* @__PURE__ */ jsx87("div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ jsx87("p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: doc.summary || "" }) }),
|
|
14251
|
+
/* @__PURE__ */ jsx87("div", { className: "flex-1" }),
|
|
14252
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
14253
|
+
/* @__PURE__ */ jsx87("span", { className: "truncate text-ods-text-secondary text-h6", children: designDocSignOffLabel(doc.completion) }),
|
|
14254
|
+
people.length > 0 ? /* @__PURE__ */ jsx87(AvatarStack, { size: "xs", people, className: "shrink-0" }) : null
|
|
14255
|
+
] })
|
|
14256
|
+
] });
|
|
14257
|
+
const outer = `flex h-full flex-col gap-[16px] rounded-[6px] border border-ods-border bg-ods-card p-[24px] transition-all hover:border-ods-accent ${className ?? ""}`;
|
|
14258
|
+
return link ? /* @__PURE__ */ jsx87("a", { href: link, target, rel, className: outer, children: body }) : /* @__PURE__ */ jsx87("div", { className: outer, children: body });
|
|
14259
|
+
}
|
|
14260
|
+
|
|
14180
14261
|
// src/components/chat/entity-cards/github-activity-card.tsx
|
|
14181
14262
|
import { GitPullRequest, Eye, ExternalLink } from "lucide-react";
|
|
14182
14263
|
import React6 from "react";
|
|
14183
|
-
import { Fragment as
|
|
14264
|
+
import { Fragment as Fragment26, jsx as jsx88, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
14184
14265
|
function parseRepoFromUrl(url) {
|
|
14185
14266
|
if (!url) return null;
|
|
14186
14267
|
try {
|
|
@@ -14195,12 +14276,12 @@ function parseRepoFromUrl(url) {
|
|
|
14195
14276
|
function kindIcon(kind, className = "h-4 w-4") {
|
|
14196
14277
|
switch (kind) {
|
|
14197
14278
|
case "pull_request":
|
|
14198
|
-
return /* @__PURE__ */
|
|
14279
|
+
return /* @__PURE__ */ jsx88(GitPullRequest, { className: `${className} shrink-0` });
|
|
14199
14280
|
case "pr_review":
|
|
14200
|
-
return /* @__PURE__ */
|
|
14281
|
+
return /* @__PURE__ */ jsx88(Eye, { className: `${className} shrink-0` });
|
|
14201
14282
|
case "commit":
|
|
14202
14283
|
default:
|
|
14203
|
-
return /* @__PURE__ */
|
|
14284
|
+
return /* @__PURE__ */ jsx88(GitHubIcon, { className: `${className} shrink-0` });
|
|
14204
14285
|
}
|
|
14205
14286
|
}
|
|
14206
14287
|
function kindLabel(kind) {
|
|
@@ -14275,7 +14356,7 @@ function reviewStateLabel(state) {
|
|
|
14275
14356
|
}
|
|
14276
14357
|
function ReviewStateBadge({ state, className = "" }) {
|
|
14277
14358
|
const { label, className: paint } = REVIEW_STATE_STYLE[state] ?? REVIEW_STATE_STYLE.COMMENTED;
|
|
14278
|
-
return /* @__PURE__ */
|
|
14359
|
+
return /* @__PURE__ */ jsx88("span", { className: `inline-flex shrink-0 items-center rounded px-1.5 py-0.5 text-h5 ${paint} ${className}`, children: label });
|
|
14279
14360
|
}
|
|
14280
14361
|
function GitHubActivityCard({ item, variant = "compact", className, anchorProps }) {
|
|
14281
14362
|
const kind = item.kind ?? "commit";
|
|
@@ -14285,86 +14366,86 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
14285
14366
|
const { display: title, reviewState } = parseGithubTitle(item.title, kind);
|
|
14286
14367
|
const primaryText = kind === "pr_review" ? title.replace(/^by\s+/i, "").trim() || "Reviewer" : title;
|
|
14287
14368
|
if (variant === "row") {
|
|
14288
|
-
return /* @__PURE__ */
|
|
14289
|
-
/* @__PURE__ */
|
|
14369
|
+
return /* @__PURE__ */ jsxs66("div", { className: `flex min-w-0 items-center gap-3 ${className ?? ""}`, children: [
|
|
14370
|
+
/* @__PURE__ */ jsxs66("span", { className: "flex w-28 shrink-0 items-center gap-2", children: [
|
|
14290
14371
|
kindIcon(kind, "h-3.5 w-3.5"),
|
|
14291
|
-
/* @__PURE__ */
|
|
14372
|
+
/* @__PURE__ */ jsx88("code", { className: "truncate text-ods-text-secondary text-code", children: idLabel })
|
|
14292
14373
|
] }),
|
|
14293
|
-
/* @__PURE__ */
|
|
14294
|
-
reviewState ? /* @__PURE__ */
|
|
14295
|
-
/* @__PURE__ */
|
|
14374
|
+
/* @__PURE__ */ jsxs66("span", { className: "flex min-w-0 flex-1 items-center gap-2 text-ods-text-primary text-h6", children: [
|
|
14375
|
+
reviewState ? /* @__PURE__ */ jsx88(ReviewStateBadge, { state: reviewState }) : null,
|
|
14376
|
+
/* @__PURE__ */ jsx88("span", { className: "truncate", children: primaryText })
|
|
14296
14377
|
] }),
|
|
14297
|
-
repo ? /* @__PURE__ */
|
|
14298
|
-
dateText ? /* @__PURE__ */
|
|
14378
|
+
repo ? /* @__PURE__ */ jsx88("span", { className: "max-w-[240px] shrink-0 truncate text-ods-text-secondary text-code", children: repo }) : null,
|
|
14379
|
+
dateText ? /* @__PURE__ */ jsx88("span", { className: "w-24 shrink-0 text-right text-ods-text-secondary text-h6", children: dateText }) : null
|
|
14299
14380
|
] });
|
|
14300
14381
|
}
|
|
14301
14382
|
const metaParts = [];
|
|
14302
14383
|
metaParts.push(
|
|
14303
|
-
/* @__PURE__ */
|
|
14384
|
+
/* @__PURE__ */ jsx88("span", { className: "uppercase text-h6", children: kindLabel(kind) }, "kind")
|
|
14304
14385
|
);
|
|
14305
14386
|
if (idLabel)
|
|
14306
14387
|
metaParts.push(
|
|
14307
|
-
/* @__PURE__ */
|
|
14388
|
+
/* @__PURE__ */ jsx88("code", { className: "font-mono", children: idLabel }, "id")
|
|
14308
14389
|
);
|
|
14309
14390
|
if (repo)
|
|
14310
14391
|
metaParts.push(
|
|
14311
|
-
/* @__PURE__ */
|
|
14392
|
+
/* @__PURE__ */ jsx88("span", { className: "truncate font-mono", children: repo }, "repo")
|
|
14312
14393
|
);
|
|
14313
14394
|
if (dateText)
|
|
14314
14395
|
metaParts.push(
|
|
14315
|
-
/* @__PURE__ */
|
|
14396
|
+
/* @__PURE__ */ jsx88("span", { className: "whitespace-nowrap", children: dateText }, "date")
|
|
14316
14397
|
);
|
|
14317
14398
|
const href = safeHref(item.url);
|
|
14318
|
-
const body = /* @__PURE__ */
|
|
14319
|
-
/* @__PURE__ */
|
|
14320
|
-
/* @__PURE__ */
|
|
14321
|
-
/* @__PURE__ */
|
|
14322
|
-
reviewState ? /* @__PURE__ */
|
|
14323
|
-
/* @__PURE__ */
|
|
14399
|
+
const body = /* @__PURE__ */ jsxs66(Fragment26, { children: [
|
|
14400
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
14401
|
+
/* @__PURE__ */ jsxs66("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14402
|
+
/* @__PURE__ */ jsxs66("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
14403
|
+
reviewState ? /* @__PURE__ */ jsx88(ReviewStateBadge, { state: reviewState }) : null,
|
|
14404
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_TITLE, children: primaryText })
|
|
14324
14405
|
] }),
|
|
14325
|
-
/* @__PURE__ */
|
|
14326
|
-
i > 0 ? /* @__PURE__ */
|
|
14327
|
-
/* @__PURE__ */
|
|
14406
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs66(React6.Fragment, { children: [
|
|
14407
|
+
i > 0 ? /* @__PURE__ */ jsx88("span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
|
|
14408
|
+
/* @__PURE__ */ jsx88("span", { className: "min-w-0 truncate", children: part })
|
|
14328
14409
|
] }, i)) }) }),
|
|
14329
|
-
/* @__PURE__ */
|
|
14410
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) })
|
|
14330
14411
|
] }),
|
|
14331
|
-
href ? /* @__PURE__ */
|
|
14412
|
+
href ? /* @__PURE__ */ jsx88("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx88(ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
|
|
14332
14413
|
] });
|
|
14333
14414
|
if (anchorProps) {
|
|
14334
|
-
return /* @__PURE__ */
|
|
14415
|
+
return /* @__PURE__ */ jsx88("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
14335
14416
|
}
|
|
14336
|
-
return href ? /* @__PURE__ */
|
|
14417
|
+
return href ? /* @__PURE__ */ jsx88("a", { href, target: "_blank", rel: "noopener noreferrer", className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx88("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
14337
14418
|
}
|
|
14338
14419
|
function GitHubActivityCardSkeleton({
|
|
14339
14420
|
variant = "compact",
|
|
14340
14421
|
className
|
|
14341
14422
|
}) {
|
|
14342
14423
|
if (variant === "row") {
|
|
14343
|
-
return /* @__PURE__ */
|
|
14344
|
-
/* @__PURE__ */
|
|
14345
|
-
/* @__PURE__ */
|
|
14346
|
-
/* @__PURE__ */
|
|
14424
|
+
return /* @__PURE__ */ jsxs66("div", { className: `flex min-w-0 animate-pulse items-center gap-3 ${className ?? ""}`, children: [
|
|
14425
|
+
/* @__PURE__ */ jsxs66("div", { className: "flex w-28 shrink-0 items-center gap-2", children: [
|
|
14426
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }),
|
|
14427
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3 w-16 rounded bg-ods-bg" })
|
|
14347
14428
|
] }),
|
|
14348
|
-
/* @__PURE__ */
|
|
14349
|
-
/* @__PURE__ */
|
|
14350
|
-
/* @__PURE__ */
|
|
14429
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3 w-2/3 flex-1 rounded bg-ods-bg" }),
|
|
14430
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3 w-40 shrink-0 rounded bg-ods-bg/60" }),
|
|
14431
|
+
/* @__PURE__ */ jsx88("div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
|
|
14351
14432
|
] });
|
|
14352
14433
|
}
|
|
14353
|
-
return /* @__PURE__ */
|
|
14354
|
-
/* @__PURE__ */
|
|
14355
|
-
/* @__PURE__ */
|
|
14356
|
-
/* @__PURE__ */
|
|
14357
|
-
/* @__PURE__ */
|
|
14358
|
-
/* @__PURE__ */
|
|
14434
|
+
return /* @__PURE__ */ jsxs66("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14435
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
14436
|
+
/* @__PURE__ */ jsxs66("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14437
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx88("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
14438
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx88("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
14439
|
+
/* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx88("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) })
|
|
14359
14440
|
] }),
|
|
14360
|
-
/* @__PURE__ */
|
|
14441
|
+
/* @__PURE__ */ jsx88("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx88("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
14361
14442
|
] });
|
|
14362
14443
|
}
|
|
14363
14444
|
|
|
14364
14445
|
// src/components/chat/entity-cards/slack-message-card.tsx
|
|
14365
14446
|
import { ExternalLink as ExternalLink2, Hash } from "lucide-react";
|
|
14366
14447
|
import React7 from "react";
|
|
14367
|
-
import { Fragment as
|
|
14448
|
+
import { Fragment as Fragment27, jsx as jsx89, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
14368
14449
|
function parseChannelFromUrl(url) {
|
|
14369
14450
|
if (!url) return null;
|
|
14370
14451
|
try {
|
|
@@ -14381,76 +14462,76 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
14381
14462
|
const channel = item.channel ?? parseChannelFromUrl(item.url) ?? null;
|
|
14382
14463
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
14383
14464
|
if (variant === "row") {
|
|
14384
|
-
return /* @__PURE__ */
|
|
14385
|
-
/* @__PURE__ */
|
|
14386
|
-
/* @__PURE__ */
|
|
14387
|
-
item.preview ? /* @__PURE__ */
|
|
14388
|
-
channel ? /* @__PURE__ */
|
|
14389
|
-
/* @__PURE__ */
|
|
14465
|
+
return /* @__PURE__ */ jsxs67("div", { className: `flex min-w-0 items-center gap-3 ${className ?? ""}`, children: [
|
|
14466
|
+
/* @__PURE__ */ jsx89(SlackIcon, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
14467
|
+
/* @__PURE__ */ jsx89("span", { className: "max-w-[180px] shrink-0 truncate text-ods-text-primary text-h6", children: item.title }),
|
|
14468
|
+
item.preview ? /* @__PURE__ */ jsx89("span", { className: "min-w-0 flex-1 truncate text-ods-text-secondary text-h6", children: item.preview }) : null,
|
|
14469
|
+
channel ? /* @__PURE__ */ jsxs67("span", { className: "max-w-[140px] shrink-0 truncate text-ods-text-secondary text-code", children: [
|
|
14470
|
+
/* @__PURE__ */ jsx89(Hash, { className: "inline h-3 w-3" }),
|
|
14390
14471
|
channel
|
|
14391
14472
|
] }) : null,
|
|
14392
|
-
dateText ? /* @__PURE__ */
|
|
14473
|
+
dateText ? /* @__PURE__ */ jsx89("span", { className: "w-24 shrink-0 text-right text-ods-text-secondary text-h6", children: dateText }) : null
|
|
14393
14474
|
] });
|
|
14394
14475
|
}
|
|
14395
14476
|
const metaParts = [];
|
|
14396
14477
|
if (channel) {
|
|
14397
14478
|
metaParts.push(
|
|
14398
|
-
/* @__PURE__ */
|
|
14399
|
-
/* @__PURE__ */
|
|
14400
|
-
/* @__PURE__ */
|
|
14479
|
+
/* @__PURE__ */ jsxs67("span", { className: "flex min-w-0 items-center gap-0.5", children: [
|
|
14480
|
+
/* @__PURE__ */ jsx89(Hash, { className: "h-3 w-3 shrink-0" }),
|
|
14481
|
+
/* @__PURE__ */ jsx89("span", { className: "truncate font-mono", children: channel })
|
|
14401
14482
|
] }, "channel")
|
|
14402
14483
|
);
|
|
14403
14484
|
}
|
|
14404
14485
|
if (dateText)
|
|
14405
14486
|
metaParts.push(
|
|
14406
|
-
/* @__PURE__ */
|
|
14487
|
+
/* @__PURE__ */ jsx89("span", { className: "whitespace-nowrap", children: dateText }, "date")
|
|
14407
14488
|
);
|
|
14408
14489
|
const href = safeHref(item.url);
|
|
14409
|
-
const body = /* @__PURE__ */
|
|
14410
|
-
/* @__PURE__ */
|
|
14411
|
-
/* @__PURE__ */
|
|
14412
|
-
/* @__PURE__ */
|
|
14413
|
-
/* @__PURE__ */
|
|
14414
|
-
/* @__PURE__ */
|
|
14415
|
-
i > 0 ? /* @__PURE__ */
|
|
14416
|
-
/* @__PURE__ */
|
|
14417
|
-
] }, i)) : /* @__PURE__ */
|
|
14490
|
+
const body = /* @__PURE__ */ jsxs67(Fragment27, { children: [
|
|
14491
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx89(SlackIcon, { className: "h-5 w-5" }) }),
|
|
14492
|
+
/* @__PURE__ */ jsxs67("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14493
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
14494
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
|
|
14495
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ jsxs67(React7.Fragment, { children: [
|
|
14496
|
+
i > 0 ? /* @__PURE__ */ jsx89("span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
|
|
14497
|
+
/* @__PURE__ */ jsx89("span", { className: "min-w-0 truncate", children: part })
|
|
14498
|
+
] }, i)) : /* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
|
|
14418
14499
|
] }),
|
|
14419
|
-
href ? /* @__PURE__ */
|
|
14500
|
+
href ? /* @__PURE__ */ jsx89("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx89(ExternalLink2, { className: "h-3.5 w-3.5" }) }) : null
|
|
14420
14501
|
] });
|
|
14421
14502
|
if (anchorProps) {
|
|
14422
|
-
return /* @__PURE__ */
|
|
14503
|
+
return /* @__PURE__ */ jsx89("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
14423
14504
|
}
|
|
14424
|
-
return href ? /* @__PURE__ */
|
|
14505
|
+
return href ? /* @__PURE__ */ jsx89("a", { href, target: "_blank", rel: "noopener noreferrer", className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx89("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
14425
14506
|
}
|
|
14426
14507
|
function SlackMessageCardSkeleton({
|
|
14427
14508
|
variant = "compact",
|
|
14428
14509
|
className
|
|
14429
14510
|
}) {
|
|
14430
14511
|
if (variant === "row") {
|
|
14431
|
-
return /* @__PURE__ */
|
|
14432
|
-
/* @__PURE__ */
|
|
14433
|
-
/* @__PURE__ */
|
|
14434
|
-
/* @__PURE__ */
|
|
14435
|
-
/* @__PURE__ */
|
|
14436
|
-
/* @__PURE__ */
|
|
14512
|
+
return /* @__PURE__ */ jsxs67("div", { className: `flex min-w-0 animate-pulse items-center gap-3 ${className ?? ""}`, children: [
|
|
14513
|
+
/* @__PURE__ */ jsx89("div", { className: "h-3.5 w-3.5 shrink-0 rounded bg-ods-bg" }),
|
|
14514
|
+
/* @__PURE__ */ jsx89("div", { className: "h-3 w-32 shrink-0 rounded bg-ods-bg" }),
|
|
14515
|
+
/* @__PURE__ */ jsx89("div", { className: "h-3 w-2/3 flex-1 rounded bg-ods-bg/60" }),
|
|
14516
|
+
/* @__PURE__ */ jsx89("div", { className: "h-3 w-24 shrink-0 rounded bg-ods-bg/60" }),
|
|
14517
|
+
/* @__PURE__ */ jsx89("div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
|
|
14437
14518
|
] });
|
|
14438
14519
|
}
|
|
14439
|
-
return /* @__PURE__ */
|
|
14440
|
-
/* @__PURE__ */
|
|
14441
|
-
/* @__PURE__ */
|
|
14442
|
-
/* @__PURE__ */
|
|
14443
|
-
/* @__PURE__ */
|
|
14444
|
-
/* @__PURE__ */
|
|
14520
|
+
return /* @__PURE__ */ jsxs67("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14521
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
14522
|
+
/* @__PURE__ */ jsxs67("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14523
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx89("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
14524
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx89("span", { className: "h-3 w-5/6 rounded bg-ods-bg/60" }) }),
|
|
14525
|
+
/* @__PURE__ */ jsx89("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx89("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
|
|
14445
14526
|
] }),
|
|
14446
|
-
/* @__PURE__ */
|
|
14527
|
+
/* @__PURE__ */ jsx89("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx89("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
14447
14528
|
] });
|
|
14448
14529
|
}
|
|
14449
14530
|
|
|
14450
14531
|
// src/components/chat/entity-cards/hubspot-ticket-card.tsx
|
|
14451
14532
|
import { ExternalLink as ExternalLink3 } from "lucide-react";
|
|
14452
14533
|
import React8 from "react";
|
|
14453
|
-
import { Fragment as
|
|
14534
|
+
import { Fragment as Fragment28, jsx as jsx90, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
14454
14535
|
function formatToken(token) {
|
|
14455
14536
|
if (!token) return null;
|
|
14456
14537
|
const lower = token.toLowerCase().replace(/_/g, " ");
|
|
@@ -14474,29 +14555,29 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
14474
14555
|
const priorityText = formatToken(item.priority);
|
|
14475
14556
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
14476
14557
|
if (variant === "row") {
|
|
14477
|
-
return /* @__PURE__ */
|
|
14478
|
-
/* @__PURE__ */
|
|
14479
|
-
item.preview ? /* @__PURE__ */
|
|
14480
|
-
statusText ? /* @__PURE__ */
|
|
14481
|
-
dateText ? /* @__PURE__ */
|
|
14558
|
+
return /* @__PURE__ */ jsxs68("div", { className: `flex min-w-0 items-center gap-3 ${className ?? ""}`, children: [
|
|
14559
|
+
/* @__PURE__ */ jsx90("span", { className: "max-w-[260px] shrink-0 truncate text-ods-text-primary text-h6", children: item.title }),
|
|
14560
|
+
item.preview ? /* @__PURE__ */ jsx90("span", { className: "min-w-0 flex-1 truncate text-ods-text-secondary text-h6", children: item.preview }) : null,
|
|
14561
|
+
statusText ? /* @__PURE__ */ jsx90(StatusBadge, { text: statusText, variant: "button", colorScheme: statusScheme(item.status) }) : null,
|
|
14562
|
+
dateText ? /* @__PURE__ */ jsx90("span", { className: "w-24 shrink-0 text-right text-ods-text-secondary text-h6", children: dateText }) : null
|
|
14482
14563
|
] });
|
|
14483
14564
|
}
|
|
14484
14565
|
const metaParts = [];
|
|
14485
14566
|
if (item.customerCompany) {
|
|
14486
14567
|
metaParts.push(
|
|
14487
|
-
/* @__PURE__ */
|
|
14568
|
+
/* @__PURE__ */ jsx90("span", { className: "min-w-0 truncate", children: item.customerCompany }, "company")
|
|
14488
14569
|
);
|
|
14489
14570
|
}
|
|
14490
14571
|
if (dateText)
|
|
14491
14572
|
metaParts.push(
|
|
14492
|
-
/* @__PURE__ */
|
|
14573
|
+
/* @__PURE__ */ jsx90("span", { className: "whitespace-nowrap", children: dateText }, "date")
|
|
14493
14574
|
);
|
|
14494
14575
|
const href = safeHref(item.url);
|
|
14495
|
-
const body = /* @__PURE__ */
|
|
14496
|
-
/* @__PURE__ */
|
|
14497
|
-
/* @__PURE__ */
|
|
14498
|
-
/* @__PURE__ */
|
|
14499
|
-
priorityText ? /* @__PURE__ */
|
|
14576
|
+
const body = /* @__PURE__ */ jsxs68(Fragment28, { children: [
|
|
14577
|
+
/* @__PURE__ */ jsxs68("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14578
|
+
/* @__PURE__ */ jsxs68("span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
|
|
14579
|
+
/* @__PURE__ */ jsx90("span", { className: `${COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
|
|
14580
|
+
priorityText ? /* @__PURE__ */ jsx90(
|
|
14500
14581
|
StatusBadge,
|
|
14501
14582
|
{
|
|
14502
14583
|
text: priorityText,
|
|
@@ -14505,7 +14586,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
14505
14586
|
className: "shrink-0"
|
|
14506
14587
|
}
|
|
14507
14588
|
) : null,
|
|
14508
|
-
statusText ? /* @__PURE__ */
|
|
14589
|
+
statusText ? /* @__PURE__ */ jsx90(
|
|
14509
14590
|
StatusBadge,
|
|
14510
14591
|
{
|
|
14511
14592
|
text: statusText,
|
|
@@ -14515,139 +14596,139 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
14515
14596
|
}
|
|
14516
14597
|
) : null
|
|
14517
14598
|
] }),
|
|
14518
|
-
item.customerEmail ? /* @__PURE__ */
|
|
14519
|
-
/* @__PURE__ */
|
|
14520
|
-
/* @__PURE__ */
|
|
14599
|
+
item.customerEmail ? /* @__PURE__ */ jsxs68("span", { className: "flex min-w-0 items-center gap-1 text-ods-text-secondary text-h6", children: [
|
|
14600
|
+
/* @__PURE__ */ jsx90("span", { className: "shrink-0 text-ods-text-secondary/70", children: "From:" }),
|
|
14601
|
+
/* @__PURE__ */ jsx90("span", { className: "min-w-0 truncate", children: item.customerEmail })
|
|
14521
14602
|
] }) : null,
|
|
14522
|
-
/* @__PURE__ */
|
|
14523
|
-
metaParts.length > 0 ? /* @__PURE__ */
|
|
14524
|
-
i > 0 ? /* @__PURE__ */
|
|
14525
|
-
/* @__PURE__ */
|
|
14603
|
+
/* @__PURE__ */ jsx90("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx90("span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview || /* @__PURE__ */ jsx90("span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
|
|
14604
|
+
metaParts.length > 0 ? /* @__PURE__ */ jsx90("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx90("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs68(React8.Fragment, { children: [
|
|
14605
|
+
i > 0 ? /* @__PURE__ */ jsx90("span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
|
|
14606
|
+
/* @__PURE__ */ jsx90("span", { className: "min-w-0 truncate", children: part })
|
|
14526
14607
|
] }, i)) }) }) : null
|
|
14527
14608
|
] }),
|
|
14528
|
-
href ? /* @__PURE__ */
|
|
14609
|
+
href ? /* @__PURE__ */ jsx90("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx90(ExternalLink3, { className: "h-3.5 w-3.5" }) }) : null
|
|
14529
14610
|
] });
|
|
14530
14611
|
if (anchorProps) {
|
|
14531
|
-
return /* @__PURE__ */
|
|
14612
|
+
return /* @__PURE__ */ jsx90("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
14532
14613
|
}
|
|
14533
|
-
return href ? /* @__PURE__ */
|
|
14614
|
+
return href ? /* @__PURE__ */ jsx90("a", { href, target: "_blank", rel: "noopener noreferrer", className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx90("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
14534
14615
|
}
|
|
14535
14616
|
function HubspotTicketCardSkeleton({
|
|
14536
14617
|
variant = "compact",
|
|
14537
14618
|
className
|
|
14538
14619
|
}) {
|
|
14539
14620
|
if (variant === "row") {
|
|
14540
|
-
return /* @__PURE__ */
|
|
14541
|
-
/* @__PURE__ */
|
|
14542
|
-
/* @__PURE__ */
|
|
14543
|
-
/* @__PURE__ */
|
|
14544
|
-
/* @__PURE__ */
|
|
14621
|
+
return /* @__PURE__ */ jsxs68("div", { className: `flex min-w-0 animate-pulse items-center gap-3 ${className ?? ""}`, children: [
|
|
14622
|
+
/* @__PURE__ */ jsx90("div", { className: "h-3 w-40 shrink-0 rounded bg-ods-bg" }),
|
|
14623
|
+
/* @__PURE__ */ jsx90("div", { className: "h-3 w-2/3 flex-1 rounded bg-ods-bg/60" }),
|
|
14624
|
+
/* @__PURE__ */ jsx90("div", { className: "h-3 w-16 shrink-0 rounded bg-ods-bg/60" }),
|
|
14625
|
+
/* @__PURE__ */ jsx90("div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
|
|
14545
14626
|
] });
|
|
14546
14627
|
}
|
|
14547
|
-
return /* @__PURE__ */
|
|
14548
|
-
/* @__PURE__ */
|
|
14549
|
-
/* @__PURE__ */
|
|
14550
|
-
/* @__PURE__ */
|
|
14551
|
-
/* @__PURE__ */
|
|
14552
|
-
/* @__PURE__ */
|
|
14628
|
+
return /* @__PURE__ */ jsxs68("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14629
|
+
/* @__PURE__ */ jsxs68("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14630
|
+
/* @__PURE__ */ jsxs68("span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
|
|
14631
|
+
/* @__PURE__ */ jsx90("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
14632
|
+
/* @__PURE__ */ jsx90("span", { className: "h-4 w-12 rounded-full bg-ods-bg/60" }),
|
|
14633
|
+
/* @__PURE__ */ jsx90("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
14553
14634
|
] }),
|
|
14554
|
-
/* @__PURE__ */
|
|
14555
|
-
/* @__PURE__ */
|
|
14556
|
-
/* @__PURE__ */
|
|
14557
|
-
/* @__PURE__ */
|
|
14558
|
-
/* @__PURE__ */
|
|
14559
|
-
/* @__PURE__ */
|
|
14635
|
+
/* @__PURE__ */ jsx90("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
14636
|
+
/* @__PURE__ */ jsxs68("span", { className: "flex min-w-0 flex-col gap-0", children: [
|
|
14637
|
+
/* @__PURE__ */ jsx90("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
14638
|
+
/* @__PURE__ */ jsx90("span", { className: "h-5 w-4/6 rounded bg-ods-bg/60" }),
|
|
14639
|
+
/* @__PURE__ */ jsx90("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" }),
|
|
14640
|
+
/* @__PURE__ */ jsx90("span", { className: "h-5 w-2/5 rounded bg-ods-bg/60" })
|
|
14560
14641
|
] }),
|
|
14561
|
-
/* @__PURE__ */
|
|
14642
|
+
/* @__PURE__ */ jsx90("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx90("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
|
|
14562
14643
|
] }),
|
|
14563
|
-
/* @__PURE__ */
|
|
14644
|
+
/* @__PURE__ */ jsx90("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx90("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
14564
14645
|
] });
|
|
14565
14646
|
}
|
|
14566
14647
|
|
|
14567
14648
|
// src/components/chat/entity-cards/data-room-doc-card.tsx
|
|
14568
14649
|
import { ExternalLink as ExternalLink4 } from "lucide-react";
|
|
14569
|
-
import { Fragment as
|
|
14650
|
+
import { Fragment as Fragment29, jsx as jsx91, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
14570
14651
|
function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
14571
|
-
const body = /* @__PURE__ */
|
|
14572
|
-
/* @__PURE__ */
|
|
14573
|
-
/* @__PURE__ */
|
|
14574
|
-
/* @__PURE__ */
|
|
14575
|
-
/* @__PURE__ */
|
|
14652
|
+
const body = /* @__PURE__ */ jsxs69(Fragment29, { children: [
|
|
14653
|
+
/* @__PURE__ */ jsxs69("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14654
|
+
/* @__PURE__ */ jsxs69("span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
|
|
14655
|
+
/* @__PURE__ */ jsx91("span", { className: `${COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
|
|
14656
|
+
/* @__PURE__ */ jsx91(StatusBadge, { text: badgeText, variant: "button", colorScheme: "cyan", className: "shrink-0" })
|
|
14576
14657
|
] }),
|
|
14577
|
-
item.path ? /* @__PURE__ */
|
|
14578
|
-
/* @__PURE__ */
|
|
14579
|
-
/* @__PURE__ */
|
|
14658
|
+
item.path ? /* @__PURE__ */ jsxs69("span", { className: "flex min-w-0 items-center gap-1 text-ods-text-secondary text-h6", children: [
|
|
14659
|
+
/* @__PURE__ */ jsx91("span", { className: "shrink-0 text-ods-text-secondary/70", children: "Path:" }),
|
|
14660
|
+
/* @__PURE__ */ jsx91("span", { className: "min-w-0 truncate font-mono", children: item.path })
|
|
14580
14661
|
] }) : null,
|
|
14581
|
-
item.preview ? /* @__PURE__ */
|
|
14662
|
+
item.preview ? /* @__PURE__ */ jsx91("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx91("span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
|
|
14582
14663
|
] }),
|
|
14583
|
-
anchorProps?.href ? /* @__PURE__ */
|
|
14664
|
+
anchorProps?.href ? /* @__PURE__ */ jsx91("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx91(ExternalLink4, { className: "h-3.5 w-3.5" }) }) : null
|
|
14584
14665
|
] });
|
|
14585
14666
|
if (!anchorProps) {
|
|
14586
|
-
return /* @__PURE__ */
|
|
14667
|
+
return /* @__PURE__ */ jsx91("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
14587
14668
|
}
|
|
14588
|
-
return /* @__PURE__ */
|
|
14669
|
+
return /* @__PURE__ */ jsx91("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
14589
14670
|
}
|
|
14590
14671
|
function DataRoomDocCardSkeleton({ className }) {
|
|
14591
|
-
return /* @__PURE__ */
|
|
14592
|
-
/* @__PURE__ */
|
|
14593
|
-
/* @__PURE__ */
|
|
14594
|
-
/* @__PURE__ */
|
|
14595
|
-
/* @__PURE__ */
|
|
14672
|
+
return /* @__PURE__ */ jsxs69("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14673
|
+
/* @__PURE__ */ jsxs69("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14674
|
+
/* @__PURE__ */ jsxs69("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
14675
|
+
/* @__PURE__ */ jsx91("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
14676
|
+
/* @__PURE__ */ jsx91("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
14596
14677
|
] }),
|
|
14597
|
-
/* @__PURE__ */
|
|
14598
|
-
/* @__PURE__ */
|
|
14599
|
-
/* @__PURE__ */
|
|
14600
|
-
/* @__PURE__ */
|
|
14678
|
+
/* @__PURE__ */ jsx91("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
14679
|
+
/* @__PURE__ */ jsxs69("span", { className: "flex min-w-0 flex-col gap-0", children: [
|
|
14680
|
+
/* @__PURE__ */ jsx91("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
14681
|
+
/* @__PURE__ */ jsx91("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
14601
14682
|
] })
|
|
14602
14683
|
] }),
|
|
14603
|
-
/* @__PURE__ */
|
|
14684
|
+
/* @__PURE__ */ jsx91("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx91("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
14604
14685
|
] });
|
|
14605
14686
|
}
|
|
14606
14687
|
|
|
14607
14688
|
// src/components/chat/entity-cards/campaign-card-admin.tsx
|
|
14608
14689
|
import { Megaphone as Megaphone3 } from "lucide-react";
|
|
14609
|
-
import { Fragment as
|
|
14690
|
+
import { Fragment as Fragment30, jsx as jsx92, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
14610
14691
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
14611
14692
|
const goalsCount = campaign.goals?.length || 0;
|
|
14612
|
-
const innerChildren = /* @__PURE__ */
|
|
14613
|
-
/* @__PURE__ */
|
|
14614
|
-
/* @__PURE__ */
|
|
14615
|
-
/* @__PURE__ */
|
|
14616
|
-
/* @__PURE__ */
|
|
14693
|
+
const innerChildren = /* @__PURE__ */ jsxs70(Fragment30, { children: [
|
|
14694
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx92(Megaphone3, { className: "h-5 w-5" }) }),
|
|
14695
|
+
/* @__PURE__ */ jsxs70("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14696
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
14697
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_SUBTITLE, children: [
|
|
14617
14698
|
campaign.start_date ? formatDateShort(campaign.start_date) : null,
|
|
14618
14699
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
14619
14700
|
"Marketing campaign"
|
|
14620
14701
|
].filter(Boolean).join(" \xB7 ") }) }),
|
|
14621
|
-
/* @__PURE__ */
|
|
14702
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_SUMMARY, children: campaign.description || COMPACT_CARD_ROW_FILLER }) })
|
|
14622
14703
|
] })
|
|
14623
14704
|
] });
|
|
14624
14705
|
if (anchorProps) {
|
|
14625
|
-
return /* @__PURE__ */
|
|
14706
|
+
return /* @__PURE__ */ jsx92("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: innerChildren });
|
|
14626
14707
|
}
|
|
14627
|
-
return /* @__PURE__ */
|
|
14708
|
+
return /* @__PURE__ */ jsx92("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: innerChildren });
|
|
14628
14709
|
}
|
|
14629
14710
|
function CampaignCardAdminSkeleton({ className }) {
|
|
14630
|
-
return /* @__PURE__ */
|
|
14631
|
-
/* @__PURE__ */
|
|
14632
|
-
/* @__PURE__ */
|
|
14633
|
-
/* @__PURE__ */
|
|
14634
|
-
/* @__PURE__ */
|
|
14635
|
-
/* @__PURE__ */
|
|
14711
|
+
return /* @__PURE__ */ jsxs70("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14712
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
14713
|
+
/* @__PURE__ */ jsxs70("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14714
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx92("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
14715
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx92("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
14716
|
+
/* @__PURE__ */ jsx92("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx92("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
14636
14717
|
] })
|
|
14637
14718
|
] });
|
|
14638
14719
|
}
|
|
14639
14720
|
|
|
14640
14721
|
// src/components/chat/entity-cards/generic-entity-card.tsx
|
|
14641
14722
|
import { ExternalLink as ExternalLink5 } from "lucide-react";
|
|
14642
|
-
import { Fragment as
|
|
14723
|
+
import { Fragment as Fragment31, jsx as jsx93, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
14643
14724
|
function GenericEntityCard({ item, className, anchorProps }) {
|
|
14644
14725
|
const href = safeHref(item.url);
|
|
14645
14726
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
14646
|
-
const body = /* @__PURE__ */
|
|
14647
|
-
/* @__PURE__ */
|
|
14648
|
-
/* @__PURE__ */
|
|
14649
|
-
/* @__PURE__ */
|
|
14650
|
-
item.badge ? /* @__PURE__ */
|
|
14727
|
+
const body = /* @__PURE__ */ jsxs71(Fragment31, { children: [
|
|
14728
|
+
/* @__PURE__ */ jsxs71("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14729
|
+
/* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
|
|
14730
|
+
/* @__PURE__ */ jsx93("span", { className: `${COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
|
|
14731
|
+
item.badge ? /* @__PURE__ */ jsx93(
|
|
14651
14732
|
StatusBadge,
|
|
14652
14733
|
{
|
|
14653
14734
|
text: item.badge.text,
|
|
@@ -14657,39 +14738,39 @@ function GenericEntityCard({ item, className, anchorProps }) {
|
|
|
14657
14738
|
}
|
|
14658
14739
|
) : null
|
|
14659
14740
|
] }),
|
|
14660
|
-
item.subtitle ? /* @__PURE__ */
|
|
14661
|
-
item.preview ? /* @__PURE__ */
|
|
14662
|
-
item.facts && item.facts.length > 0 ? /* @__PURE__ */
|
|
14663
|
-
/* @__PURE__ */
|
|
14741
|
+
item.subtitle ? /* @__PURE__ */ jsx93("span", { className: "flex min-w-0 items-center gap-1 text-ods-text-secondary text-h6", children: /* @__PURE__ */ jsx93("span", { className: "min-w-0 truncate font-mono", children: item.subtitle }) }) : null,
|
|
14742
|
+
item.preview ? /* @__PURE__ */ jsx93("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx93("span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null,
|
|
14743
|
+
item.facts && item.facts.length > 0 ? /* @__PURE__ */ jsx93("span", { className: "flex min-w-0 flex-wrap items-center gap-x-3 gap-y-0.5 text-h6", children: item.facts.map((f, i) => /* @__PURE__ */ jsxs71("span", { className: "inline-flex min-w-0 items-center gap-1 truncate", children: [
|
|
14744
|
+
/* @__PURE__ */ jsxs71("span", { className: "shrink-0 text-ods-text-secondary/70", children: [
|
|
14664
14745
|
f.label,
|
|
14665
14746
|
":"
|
|
14666
14747
|
] }),
|
|
14667
|
-
/* @__PURE__ */
|
|
14748
|
+
/* @__PURE__ */ jsx93("span", { className: "truncate font-medium text-ods-text-primary", children: f.value })
|
|
14668
14749
|
] }, i)) }) : null,
|
|
14669
|
-
dateText ? /* @__PURE__ */
|
|
14750
|
+
dateText ? /* @__PURE__ */ jsx93("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx93("span", { className: COMPACT_CARD_META_ROW, children: /* @__PURE__ */ jsx93("span", { className: "whitespace-nowrap", children: dateText }) }) }) : null
|
|
14670
14751
|
] }),
|
|
14671
|
-
href ? /* @__PURE__ */
|
|
14752
|
+
href ? /* @__PURE__ */ jsx93("span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ jsx93(ExternalLink5, { className: "h-3.5 w-3.5" }) }) : null
|
|
14672
14753
|
] });
|
|
14673
14754
|
if (anchorProps) {
|
|
14674
|
-
return /* @__PURE__ */
|
|
14755
|
+
return /* @__PURE__ */ jsx93("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
14675
14756
|
}
|
|
14676
|
-
return href ? /* @__PURE__ */
|
|
14757
|
+
return href ? /* @__PURE__ */ jsx93("a", { href, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx93("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
14677
14758
|
}
|
|
14678
14759
|
function GenericEntityCardSkeleton({ className }) {
|
|
14679
|
-
return /* @__PURE__ */
|
|
14680
|
-
/* @__PURE__ */
|
|
14681
|
-
/* @__PURE__ */
|
|
14682
|
-
/* @__PURE__ */
|
|
14683
|
-
/* @__PURE__ */
|
|
14760
|
+
return /* @__PURE__ */ jsxs71("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
14761
|
+
/* @__PURE__ */ jsxs71("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
14762
|
+
/* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
14763
|
+
/* @__PURE__ */ jsx93("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
14764
|
+
/* @__PURE__ */ jsx93("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
14684
14765
|
] }),
|
|
14685
|
-
/* @__PURE__ */
|
|
14686
|
-
/* @__PURE__ */
|
|
14687
|
-
/* @__PURE__ */
|
|
14688
|
-
/* @__PURE__ */
|
|
14766
|
+
/* @__PURE__ */ jsx93("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
14767
|
+
/* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 flex-col gap-0", children: [
|
|
14768
|
+
/* @__PURE__ */ jsx93("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
14769
|
+
/* @__PURE__ */ jsx93("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
14689
14770
|
] }),
|
|
14690
|
-
/* @__PURE__ */
|
|
14771
|
+
/* @__PURE__ */ jsx93("span", { className: "h-3 w-1/4 rounded bg-ods-bg/70" })
|
|
14691
14772
|
] }),
|
|
14692
|
-
/* @__PURE__ */
|
|
14773
|
+
/* @__PURE__ */ jsx93("span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ jsx93("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
14693
14774
|
] });
|
|
14694
14775
|
}
|
|
14695
14776
|
|
|
@@ -14756,12 +14837,12 @@ function useChatCardItem(type, id) {
|
|
|
14756
14837
|
}
|
|
14757
14838
|
|
|
14758
14839
|
// src/components/chat/mingo-info-card.tsx
|
|
14759
|
-
import { Fragment as
|
|
14840
|
+
import { Fragment as Fragment32, jsx as jsx94, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
14760
14841
|
function CardMedia({ imageSrc, imageAlt, icon }) {
|
|
14761
14842
|
if (imageSrc) {
|
|
14762
|
-
return /* @__PURE__ */
|
|
14763
|
-
/* @__PURE__ */
|
|
14764
|
-
/* @__PURE__ */
|
|
14843
|
+
return /* @__PURE__ */ jsxs72("span", { className: "relative block size-10 shrink-0", children: [
|
|
14844
|
+
/* @__PURE__ */ jsx94("span", { className: "absolute inset-0 flex items-center justify-center rounded-sm border border-ods-border bg-ods-bg text-ods-text-primary text-h6", children: personInitials(imageAlt) || "?" }),
|
|
14845
|
+
/* @__PURE__ */ jsx94(
|
|
14765
14846
|
next_image_default,
|
|
14766
14847
|
{
|
|
14767
14848
|
src: imageSrc,
|
|
@@ -14779,12 +14860,12 @@ function CardMedia({ imageSrc, imageAlt, icon }) {
|
|
|
14779
14860
|
] });
|
|
14780
14861
|
}
|
|
14781
14862
|
if (icon) {
|
|
14782
|
-
return /* @__PURE__ */
|
|
14863
|
+
return /* @__PURE__ */ jsx94("span", { className: "flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-md border border-ods-border bg-ods-bg text-ods-text-secondary", children: /* @__PURE__ */ jsx94("span", { className: "flex size-6 items-center justify-center", children: icon }) });
|
|
14783
14864
|
}
|
|
14784
14865
|
return null;
|
|
14785
14866
|
}
|
|
14786
14867
|
function MingoInfoCardSkeleton({ className }) {
|
|
14787
|
-
return /* @__PURE__ */
|
|
14868
|
+
return /* @__PURE__ */ jsxs72(
|
|
14788
14869
|
"span",
|
|
14789
14870
|
{
|
|
14790
14871
|
className: cn(
|
|
@@ -14792,12 +14873,12 @@ function MingoInfoCardSkeleton({ className }) {
|
|
|
14792
14873
|
className
|
|
14793
14874
|
),
|
|
14794
14875
|
children: [
|
|
14795
|
-
/* @__PURE__ */
|
|
14796
|
-
/* @__PURE__ */
|
|
14797
|
-
/* @__PURE__ */
|
|
14798
|
-
/* @__PURE__ */
|
|
14876
|
+
/* @__PURE__ */ jsx94("span", { className: "block size-10 shrink-0 rounded-md border border-ods-border bg-ods-bg" }),
|
|
14877
|
+
/* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col justify-center gap-1.5", children: [
|
|
14878
|
+
/* @__PURE__ */ jsx94("span", { className: "block h-4 w-1/2 rounded bg-ods-bg" }),
|
|
14879
|
+
/* @__PURE__ */ jsx94("span", { className: "block h-3 w-3/4 rounded bg-ods-bg/60" })
|
|
14799
14880
|
] }),
|
|
14800
|
-
/* @__PURE__ */
|
|
14881
|
+
/* @__PURE__ */ jsx94("span", { className: "block h-5 w-16 shrink-0 rounded bg-ods-bg/60" })
|
|
14801
14882
|
]
|
|
14802
14883
|
}
|
|
14803
14884
|
);
|
|
@@ -14819,16 +14900,16 @@ function MingoInfoCard({
|
|
|
14819
14900
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
14820
14901
|
const isAnchor = !!anchorProps;
|
|
14821
14902
|
const isInteractive = isAnchor || !!onClick;
|
|
14822
|
-
const content = /* @__PURE__ */
|
|
14823
|
-
hasMedia && /* @__PURE__ */
|
|
14824
|
-
/* @__PURE__ */
|
|
14825
|
-
/* @__PURE__ */
|
|
14826
|
-
description ? /* @__PURE__ */
|
|
14903
|
+
const content = /* @__PURE__ */ jsxs72(Fragment32, { children: [
|
|
14904
|
+
hasMedia && /* @__PURE__ */ jsx94(CardMedia, { imageSrc, imageAlt, icon }),
|
|
14905
|
+
/* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
14906
|
+
/* @__PURE__ */ jsx94("span", { className: "truncate text-ods-text-primary text-h4", children: title }),
|
|
14907
|
+
description ? /* @__PURE__ */ jsx94("span", { className: "truncate text-ods-text-secondary text-h6", children: description }) : null
|
|
14827
14908
|
] }),
|
|
14828
14909
|
status ? (
|
|
14829
14910
|
// Reuse the shared Tag palette (single source of truth for colours)
|
|
14830
14911
|
// without rendering Tag's `<div>` — span-only for `<p>` validity.
|
|
14831
|
-
/* @__PURE__ */
|
|
14912
|
+
/* @__PURE__ */ jsx94("span", { className: cn(tagVariants({ variant: status.variant ?? "success" }), "shrink-0"), children: /* @__PURE__ */ jsx94("span", { className: "truncate uppercase tracking-[-0.28px]", children: status.label }) })
|
|
14832
14913
|
) : null
|
|
14833
14914
|
] });
|
|
14834
14915
|
const contentClass = cn(
|
|
@@ -14836,7 +14917,7 @@ function MingoInfoCard({
|
|
|
14836
14917
|
hasMenu && "border-r border-ods-border",
|
|
14837
14918
|
isInteractive && "cursor-pointer transition-colors hover:bg-ods-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent active:bg-ods-bg-active"
|
|
14838
14919
|
);
|
|
14839
|
-
return /* @__PURE__ */
|
|
14920
|
+
return /* @__PURE__ */ jsxs72(
|
|
14840
14921
|
"span",
|
|
14841
14922
|
{
|
|
14842
14923
|
className: cn(
|
|
@@ -14844,20 +14925,20 @@ function MingoInfoCard({
|
|
|
14844
14925
|
className
|
|
14845
14926
|
),
|
|
14846
14927
|
children: [
|
|
14847
|
-
isAnchor ? /* @__PURE__ */
|
|
14848
|
-
hasMenu && /* @__PURE__ */
|
|
14928
|
+
isAnchor ? /* @__PURE__ */ jsx94("a", { ...anchorProps, className: cn(contentClass, "no-underline"), children: content }) : onClick ? /* @__PURE__ */ jsx94("button", { type: "button", onClick, className: contentClass, children: content }) : /* @__PURE__ */ jsx94("span", { className: contentClass, children: content }),
|
|
14929
|
+
hasMenu && /* @__PURE__ */ jsx94(
|
|
14849
14930
|
ActionsMenuDropdown,
|
|
14850
14931
|
{
|
|
14851
14932
|
groups: menuGroups,
|
|
14852
14933
|
triggerAriaLabel: menuAriaLabel,
|
|
14853
14934
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
14854
|
-
customTrigger: /* @__PURE__ */
|
|
14935
|
+
customTrigger: /* @__PURE__ */ jsx94(
|
|
14855
14936
|
"button",
|
|
14856
14937
|
{
|
|
14857
14938
|
type: "button",
|
|
14858
14939
|
"aria-label": menuAriaLabel,
|
|
14859
14940
|
className: "flex w-[56px] shrink-0 items-center justify-center self-stretch text-ods-text-secondary transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent active:bg-ods-bg-active active:text-ods-text-primary md:w-[68px]",
|
|
14860
|
-
children: /* @__PURE__ */
|
|
14941
|
+
children: /* @__PURE__ */ jsx94(Ellipsis01Icon, { size: 24 })
|
|
14861
14942
|
}
|
|
14862
14943
|
)
|
|
14863
14944
|
}
|
|
@@ -14988,7 +15069,8 @@ var SOURCE_ICON_NAMES = {
|
|
|
14988
15069
|
"code-graph-files": "file-text",
|
|
14989
15070
|
"code-symbols": "box",
|
|
14990
15071
|
"code-duplicates": "search",
|
|
14991
|
-
"code-impact": "activity"
|
|
15072
|
+
"code-impact": "activity",
|
|
15073
|
+
"change-sets": "coding-branch"
|
|
14992
15074
|
};
|
|
14993
15075
|
function getSourceIconName(tableId) {
|
|
14994
15076
|
if (!tableId) return void 0;
|
|
@@ -15055,7 +15137,8 @@ var SOURCE_LABELS_BY_TABLE = {
|
|
|
15055
15137
|
"code-graph-files": "Code Files",
|
|
15056
15138
|
"code-symbols": "Code Symbols",
|
|
15057
15139
|
"code-duplicates": "Duplicates",
|
|
15058
|
-
"code-impact": "Change Impact"
|
|
15140
|
+
"code-impact": "Change Impact",
|
|
15141
|
+
"change-sets": "Change Sets"
|
|
15059
15142
|
};
|
|
15060
15143
|
function getSourceLabel(tableId) {
|
|
15061
15144
|
return SOURCE_LABELS_BY_TABLE[tableId] ?? tableId;
|
|
@@ -15115,7 +15198,8 @@ var DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = {
|
|
|
15115
15198
|
code_file: "code-graph-files",
|
|
15116
15199
|
code_symbol: "code-symbols",
|
|
15117
15200
|
code_duplicate: "code-duplicates",
|
|
15118
|
-
code_impact: "code-impact"
|
|
15201
|
+
code_impact: "code-impact",
|
|
15202
|
+
change_set: "change-sets"
|
|
15119
15203
|
};
|
|
15120
15204
|
function defaultTableIdForDocumentType(documentType) {
|
|
15121
15205
|
return DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID[documentType] ?? null;
|
|
@@ -15498,14 +15582,14 @@ function resolveSourceIcon(input, ctx = {}) {
|
|
|
15498
15582
|
|
|
15499
15583
|
// src/components/chat/entity-cards/deleted-data-card.tsx
|
|
15500
15584
|
import { Trash2 } from "lucide-react";
|
|
15501
|
-
import { jsx as
|
|
15585
|
+
import { jsx as jsx95, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
15502
15586
|
function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
15503
15587
|
const label = entityLabel || "Item";
|
|
15504
|
-
return /* @__PURE__ */
|
|
15505
|
-
/* @__PURE__ */
|
|
15506
|
-
/* @__PURE__ */
|
|
15507
|
-
/* @__PURE__ */
|
|
15508
|
-
/* @__PURE__ */
|
|
15588
|
+
return /* @__PURE__ */ jsxs73("div", { className: `${COMPACT_CARD_OUTER_STATIC} opacity-70 ${className ?? ""}`, children: [
|
|
15589
|
+
/* @__PURE__ */ jsx95("div", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx95(Trash2, { className: "h-4 w-4 text-ods-text-secondary" }) }),
|
|
15590
|
+
/* @__PURE__ */ jsxs73("div", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
15591
|
+
/* @__PURE__ */ jsx95("div", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx95("span", { className: `${COMPACT_CARD_TITLE} text-ods-text-secondary line-through`, children: title || `Deleted ${label.toLowerCase()}` }) }),
|
|
15592
|
+
/* @__PURE__ */ jsx95("div", { className: COMPACT_CARD_META_ROW, children: /* @__PURE__ */ jsxs73("span", { className: "text-ods-text-secondary", children: [
|
|
15509
15593
|
label,
|
|
15510
15594
|
" deleted",
|
|
15511
15595
|
recoveryNote ? ` \xB7 ${recoveryNote}` : ""
|
|
@@ -15515,16 +15599,16 @@ function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
|
15515
15599
|
}
|
|
15516
15600
|
|
|
15517
15601
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
15518
|
-
import { Fragment as
|
|
15602
|
+
import { Fragment as Fragment33, jsx as jsx96, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
15519
15603
|
function githubKindIcon(kind) {
|
|
15520
15604
|
switch (kind) {
|
|
15521
15605
|
case "pull_request":
|
|
15522
|
-
return /* @__PURE__ */
|
|
15606
|
+
return /* @__PURE__ */ jsx96(CodingPullRequestIcon, { size: 24 });
|
|
15523
15607
|
case "pr_review":
|
|
15524
|
-
return /* @__PURE__ */
|
|
15608
|
+
return /* @__PURE__ */ jsx96(CodeIcon, { size: 24 });
|
|
15525
15609
|
case "commit":
|
|
15526
15610
|
default:
|
|
15527
|
-
return /* @__PURE__ */
|
|
15611
|
+
return /* @__PURE__ */ jsx96(CodingCommitIcon, { size: 24 });
|
|
15528
15612
|
}
|
|
15529
15613
|
}
|
|
15530
15614
|
function reviewStateToVariant(state) {
|
|
@@ -15553,7 +15637,7 @@ function GitHubChatCard({
|
|
|
15553
15637
|
const idLabel = formatActivityId(chatRef.id, kind);
|
|
15554
15638
|
const dateText = formatDateUTC(chatRef.date ?? null, { fallback: "", timezone: "local" });
|
|
15555
15639
|
const description = [idLabel, dateText].filter(Boolean).join(" \xB7 ") || void 0;
|
|
15556
|
-
return /* @__PURE__ */
|
|
15640
|
+
return /* @__PURE__ */ jsx96(
|
|
15557
15641
|
MingoInfoCard,
|
|
15558
15642
|
{
|
|
15559
15643
|
title,
|
|
@@ -15580,12 +15664,12 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
|
|
|
15580
15664
|
items.push({
|
|
15581
15665
|
id: "open-details",
|
|
15582
15666
|
label: openDetails?.label ?? "Open Details",
|
|
15583
|
-
icon: openDetails?.icon ?? /* @__PURE__ */
|
|
15667
|
+
icon: openDetails?.icon ?? /* @__PURE__ */ jsx96(EyeIcon, { size: 20 }),
|
|
15584
15668
|
// Main row → open the entity (same tab, soft Link nav).
|
|
15585
15669
|
href,
|
|
15586
15670
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
15587
15671
|
iconAction: {
|
|
15588
|
-
icon: /* @__PURE__ */
|
|
15672
|
+
icon: /* @__PURE__ */ jsx96(ArrowRightUpIcon, { size: 20 }),
|
|
15589
15673
|
"aria-label": "Open in new tab",
|
|
15590
15674
|
href,
|
|
15591
15675
|
openInNewTab: true
|
|
@@ -15660,12 +15744,12 @@ function itemVideoMetadata(item) {
|
|
|
15660
15744
|
return out.videoUrl || out.youtubeUrl || out.highlightVideoUrl ? out : null;
|
|
15661
15745
|
}
|
|
15662
15746
|
function CardLoadFailure({ label, id, detail }) {
|
|
15663
|
-
return /* @__PURE__ */
|
|
15747
|
+
return /* @__PURE__ */ jsx96(
|
|
15664
15748
|
MingoInfoCard,
|
|
15665
15749
|
{
|
|
15666
15750
|
title: label,
|
|
15667
15751
|
description: `${detail} \xB7 id: ${id}`,
|
|
15668
|
-
icon: /* @__PURE__ */
|
|
15752
|
+
icon: /* @__PURE__ */ jsx96(AlertTriangleIcon, { size: 24 }),
|
|
15669
15753
|
status: { label: "FAILED", variant: "error" },
|
|
15670
15754
|
menuAriaLabel: "Card failed to load"
|
|
15671
15755
|
}
|
|
@@ -15700,17 +15784,17 @@ function HubspotTicketChatCard({
|
|
|
15700
15784
|
const status = typeof chatRef.metadata?.status === "string" ? chatRef.metadata.status : void 0;
|
|
15701
15785
|
const statusLabel = typeof chatRef.metadata?.statusLabel === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
15702
15786
|
const statusText = statusLabel ?? formatStatusToken(status);
|
|
15703
|
-
return /* @__PURE__ */
|
|
15787
|
+
return /* @__PURE__ */ jsx96(
|
|
15704
15788
|
MingoInfoCard,
|
|
15705
15789
|
{
|
|
15706
15790
|
title: chatRef.title,
|
|
15707
15791
|
description: chatRef.preview ?? void 0,
|
|
15708
|
-
icon: /* @__PURE__ */
|
|
15792
|
+
icon: /* @__PURE__ */ jsx96(TagIcon, { size: 24 }),
|
|
15709
15793
|
status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
|
|
15710
15794
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
15711
15795
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
15712
15796
|
label: "Open Ticket Details",
|
|
15713
|
-
icon: /* @__PURE__ */
|
|
15797
|
+
icon: /* @__PURE__ */ jsx96(TagIcon, { size: 20 })
|
|
15714
15798
|
}),
|
|
15715
15799
|
menuAriaLabel: "Ticket actions"
|
|
15716
15800
|
}
|
|
@@ -15723,12 +15807,12 @@ function FaqChatCard({
|
|
|
15723
15807
|
}) {
|
|
15724
15808
|
const section = typeof chatRef.metadata?.section === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
15725
15809
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
15726
|
-
return /* @__PURE__ */
|
|
15810
|
+
return /* @__PURE__ */ jsx96(
|
|
15727
15811
|
MingoInfoCard,
|
|
15728
15812
|
{
|
|
15729
15813
|
title: chatRef.title,
|
|
15730
15814
|
description: chatRef.preview ?? void 0,
|
|
15731
|
-
icon: /* @__PURE__ */
|
|
15815
|
+
icon: /* @__PURE__ */ jsx96(QuestionCircleIcon, { size: 24 }),
|
|
15732
15816
|
status: { label: statusLabel, variant: "grey" },
|
|
15733
15817
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
15734
15818
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -15744,12 +15828,12 @@ function SlackChatCard({
|
|
|
15744
15828
|
const channelName = typeof chatRef.metadata?.channelName === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
15745
15829
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
15746
15830
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
15747
|
-
return /* @__PURE__ */
|
|
15831
|
+
return /* @__PURE__ */ jsx96(
|
|
15748
15832
|
MingoInfoCard,
|
|
15749
15833
|
{
|
|
15750
15834
|
title,
|
|
15751
15835
|
description: chatRef.preview ?? void 0,
|
|
15752
|
-
icon: /* @__PURE__ */
|
|
15836
|
+
icon: /* @__PURE__ */ jsx96(SlackLogoGreyIcon, { size: 24 }),
|
|
15753
15837
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
15754
15838
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
15755
15839
|
menuAriaLabel: "Message actions"
|
|
@@ -15762,7 +15846,7 @@ function GlyphChatCard({
|
|
|
15762
15846
|
isNewTab,
|
|
15763
15847
|
discuss
|
|
15764
15848
|
}) {
|
|
15765
|
-
return /* @__PURE__ */
|
|
15849
|
+
return /* @__PURE__ */ jsx96(
|
|
15766
15850
|
MingoInfoCard,
|
|
15767
15851
|
{
|
|
15768
15852
|
title: chatRef.title,
|
|
@@ -15792,17 +15876,17 @@ function TrustCenterChatCard({
|
|
|
15792
15876
|
label: trustFrameworkBadge(leadFramework),
|
|
15793
15877
|
color: trustFrameworkMonitoringEntry(leadFramework.monitoring).color
|
|
15794
15878
|
} : void 0;
|
|
15795
|
-
return /* @__PURE__ */
|
|
15879
|
+
return /* @__PURE__ */ jsx96(
|
|
15796
15880
|
MingoInfoCard,
|
|
15797
15881
|
{
|
|
15798
15882
|
title: TRUST_CENTER_TITLE,
|
|
15799
15883
|
description: summary || TRUST_CENTER_TAGLINE,
|
|
15800
|
-
icon: /* @__PURE__ */
|
|
15884
|
+
icon: /* @__PURE__ */ jsx96(ShieldCheckIcon, { size: 24 }),
|
|
15801
15885
|
status: lead ? { label: lead.label, variant: TRUST_STATUS_TAG_VARIANT[lead.color] } : void 0,
|
|
15802
15886
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
15803
15887
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
15804
15888
|
label: "View trust center",
|
|
15805
|
-
icon: /* @__PURE__ */
|
|
15889
|
+
icon: /* @__PURE__ */ jsx96(ShieldCheckIcon, { size: 20 })
|
|
15806
15890
|
}),
|
|
15807
15891
|
menuAriaLabel: "Trust center actions"
|
|
15808
15892
|
}
|
|
@@ -15814,12 +15898,12 @@ function DataRoomDocChatCard({
|
|
|
15814
15898
|
discuss
|
|
15815
15899
|
}) {
|
|
15816
15900
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
15817
|
-
return /* @__PURE__ */
|
|
15901
|
+
return /* @__PURE__ */ jsx96(
|
|
15818
15902
|
MingoInfoCard,
|
|
15819
15903
|
{
|
|
15820
15904
|
title: chatRef.title,
|
|
15821
15905
|
description: chatRef.preview ?? void 0,
|
|
15822
|
-
icon: /* @__PURE__ */
|
|
15906
|
+
icon: /* @__PURE__ */ jsx96(FileContentIcon, { size: 24 }),
|
|
15823
15907
|
status: { label: badgeText, variant: "grey" },
|
|
15824
15908
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
15825
15909
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -15834,7 +15918,7 @@ function GenericFinancialChatCard({
|
|
|
15834
15918
|
discuss
|
|
15835
15919
|
}) {
|
|
15836
15920
|
const subtitle = typeof chatRef.metadata?.subtitle === "string" ? chatRef.metadata.subtitle : void 0;
|
|
15837
|
-
return /* @__PURE__ */
|
|
15921
|
+
return /* @__PURE__ */ jsx96(
|
|
15838
15922
|
MingoInfoCard,
|
|
15839
15923
|
{
|
|
15840
15924
|
title: chatRef.title,
|
|
@@ -15848,9 +15932,9 @@ function GenericFinancialChatCard({
|
|
|
15848
15932
|
}
|
|
15849
15933
|
function ChatInlineVideoPill({ chatRef }) {
|
|
15850
15934
|
const title = chatRef.title || "Video";
|
|
15851
|
-
return /* @__PURE__ */
|
|
15852
|
-
/* @__PURE__ */
|
|
15853
|
-
/* @__PURE__ */
|
|
15935
|
+
return /* @__PURE__ */ jsxs74("span", { className: "inline-flex items-center gap-1 rounded border border-ods-border bg-ods-card px-1.5 py-0.5 align-middle text-xs text-ods-text-primary", children: [
|
|
15936
|
+
/* @__PURE__ */ jsx96("span", { "aria-hidden": "true", className: "text-ods-text-secondary", children: "\u25B6" }),
|
|
15937
|
+
/* @__PURE__ */ jsx96("span", { className: "max-w-[220px] truncate", children: title })
|
|
15854
15938
|
] });
|
|
15855
15939
|
}
|
|
15856
15940
|
function ChatCardWithDiscuss({
|
|
@@ -15866,11 +15950,11 @@ function ChatCardWithDiscuss({
|
|
|
15866
15950
|
});
|
|
15867
15951
|
const idDisplay = chatRef.id && (chatRef.id.length > 24 ? `${chatRef.id.slice(0, 24)}\u2026` : chatRef.id);
|
|
15868
15952
|
const useDisplay = displayAction && !!onDisplay;
|
|
15869
|
-
const cardBody = /* @__PURE__ */
|
|
15870
|
-
return /* @__PURE__ */
|
|
15953
|
+
const cardBody = /* @__PURE__ */ jsx96("span", { className: "block [&>*]:!my-0", children });
|
|
15954
|
+
return /* @__PURE__ */ jsxs74("span", { className: "mb-2 mt-1.5 block w-full", children: [
|
|
15871
15955
|
cardBody,
|
|
15872
|
-
/* @__PURE__ */
|
|
15873
|
-
/* @__PURE__ */
|
|
15956
|
+
/* @__PURE__ */ jsxs74("span", { className: "mt-1 flex items-center justify-between gap-2 pl-0.5", children: [
|
|
15957
|
+
/* @__PURE__ */ jsx96(
|
|
15874
15958
|
SourceActionButton,
|
|
15875
15959
|
{
|
|
15876
15960
|
chatRef,
|
|
@@ -15879,15 +15963,15 @@ function ChatCardWithDiscuss({
|
|
|
15879
15963
|
density: "card"
|
|
15880
15964
|
}
|
|
15881
15965
|
),
|
|
15882
|
-
!onDiscuss && !useDisplay ? /* @__PURE__ */
|
|
15883
|
-
idDisplay ? /* @__PURE__ */
|
|
15966
|
+
!onDiscuss && !useDisplay ? /* @__PURE__ */ jsx96("span", {}) : null,
|
|
15967
|
+
idDisplay ? /* @__PURE__ */ jsxs74(
|
|
15884
15968
|
"span",
|
|
15885
15969
|
{
|
|
15886
15970
|
className: "inline-flex shrink-0 items-center gap-1 text-ods-text-secondary opacity-60 transition-opacity text-code hover:text-ods-text-primary hover:opacity-100",
|
|
15887
15971
|
title: `${sourceLabel} \xB7 ${chatRef.id}`,
|
|
15888
15972
|
children: [
|
|
15889
|
-
/* @__PURE__ */
|
|
15890
|
-
/* @__PURE__ */
|
|
15973
|
+
/* @__PURE__ */ jsx96(SourceIcon, { className: "h-3 w-3 shrink-0" }),
|
|
15974
|
+
/* @__PURE__ */ jsx96("span", { className: "max-w-[180px] truncate", children: idDisplay })
|
|
15891
15975
|
]
|
|
15892
15976
|
}
|
|
15893
15977
|
) : null
|
|
@@ -15903,13 +15987,13 @@ function ProductReleaseChatCard({
|
|
|
15903
15987
|
}) {
|
|
15904
15988
|
const releaseProps = buildProps(item);
|
|
15905
15989
|
const status = item?.version ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
15906
|
-
return /* @__PURE__ */
|
|
15990
|
+
return /* @__PURE__ */ jsx96(
|
|
15907
15991
|
EntityMingoCard,
|
|
15908
15992
|
{
|
|
15909
15993
|
title: item?.title ?? "",
|
|
15910
15994
|
description: item?.summary || releaseProps.formattedDate || void 0,
|
|
15911
15995
|
cover: releaseProps.coverImage || void 0,
|
|
15912
|
-
fallbackIcon: /* @__PURE__ */
|
|
15996
|
+
fallbackIcon: /* @__PURE__ */ jsx96(Rocket02Icon, { size: 24 }),
|
|
15913
15997
|
status,
|
|
15914
15998
|
chatRef,
|
|
15915
15999
|
isNewTab,
|
|
@@ -15930,12 +16014,12 @@ function CampaignChatCard({
|
|
|
15930
16014
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
15931
16015
|
"Marketing campaign"
|
|
15932
16016
|
].filter(Boolean).join(" \xB7 ");
|
|
15933
|
-
return /* @__PURE__ */
|
|
16017
|
+
return /* @__PURE__ */ jsx96(
|
|
15934
16018
|
EntityMingoCard,
|
|
15935
16019
|
{
|
|
15936
16020
|
title: item?.name ?? "",
|
|
15937
16021
|
description: meta || item?.description || void 0,
|
|
15938
|
-
fallbackIcon: /* @__PURE__ */
|
|
16022
|
+
fallbackIcon: /* @__PURE__ */ jsx96(Megaphone01Icon, { size: 24 }),
|
|
15939
16023
|
chatRef,
|
|
15940
16024
|
isNewTab,
|
|
15941
16025
|
discuss,
|
|
@@ -15956,7 +16040,7 @@ function EntityMingoCard({
|
|
|
15956
16040
|
openDetails,
|
|
15957
16041
|
externalLink
|
|
15958
16042
|
}) {
|
|
15959
|
-
return /* @__PURE__ */
|
|
16043
|
+
return /* @__PURE__ */ jsx96(
|
|
15960
16044
|
MingoInfoCard,
|
|
15961
16045
|
{
|
|
15962
16046
|
title,
|
|
@@ -15991,13 +16075,13 @@ function BlogChatCard({
|
|
|
15991
16075
|
}) {
|
|
15992
16076
|
const category = Array.isArray(item?.categories) ? item.categories.find((c) => c?.name)?.name ?? void 0 : void 0;
|
|
15993
16077
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
15994
|
-
return /* @__PURE__ */
|
|
16078
|
+
return /* @__PURE__ */ jsx96(
|
|
15995
16079
|
EntityMingoCard,
|
|
15996
16080
|
{
|
|
15997
16081
|
title: item?.title ?? "",
|
|
15998
16082
|
description: item?.summary ?? void 0,
|
|
15999
16083
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
16000
|
-
fallbackIcon: /* @__PURE__ */
|
|
16084
|
+
fallbackIcon: /* @__PURE__ */ jsx96(NewspaperIcon, { size: 24 }),
|
|
16001
16085
|
status,
|
|
16002
16086
|
chatRef,
|
|
16003
16087
|
isNewTab,
|
|
@@ -16014,13 +16098,13 @@ function CaseStudyChatCard({
|
|
|
16014
16098
|
discuss
|
|
16015
16099
|
}) {
|
|
16016
16100
|
const meta = [item?.msp?.name, item?.user?.full_name].filter(Boolean).join(" \xB7 ");
|
|
16017
|
-
return /* @__PURE__ */
|
|
16101
|
+
return /* @__PURE__ */ jsx96(
|
|
16018
16102
|
EntityMingoCard,
|
|
16019
16103
|
{
|
|
16020
16104
|
title: item?.title ?? "",
|
|
16021
16105
|
description: item?.summary || meta || void 0,
|
|
16022
16106
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
16023
|
-
fallbackIcon: /* @__PURE__ */
|
|
16107
|
+
fallbackIcon: /* @__PURE__ */ jsx96(TrophyIcon, { size: 24 }),
|
|
16024
16108
|
status: { label: "Case study", variant: "grey" },
|
|
16025
16109
|
chatRef,
|
|
16026
16110
|
isNewTab,
|
|
@@ -16037,13 +16121,13 @@ function CustomerInterviewChatCard({
|
|
|
16037
16121
|
discuss
|
|
16038
16122
|
}) {
|
|
16039
16123
|
const meta = [item?.user?.full_name, item?.msp?.name].filter(Boolean).join(" \xB7 ");
|
|
16040
|
-
return /* @__PURE__ */
|
|
16124
|
+
return /* @__PURE__ */ jsx96(
|
|
16041
16125
|
EntityMingoCard,
|
|
16042
16126
|
{
|
|
16043
16127
|
title: item?.title ?? "",
|
|
16044
16128
|
description: item?.video_summary || meta || void 0,
|
|
16045
16129
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
16046
|
-
fallbackIcon: /* @__PURE__ */
|
|
16130
|
+
fallbackIcon: /* @__PURE__ */ jsx96(MicrophoneIcon, { size: 24 }),
|
|
16047
16131
|
status: { label: "Interview", variant: "grey" },
|
|
16048
16132
|
chatRef,
|
|
16049
16133
|
isNewTab,
|
|
@@ -16052,6 +16136,28 @@ function CustomerInterviewChatCard({
|
|
|
16052
16136
|
}
|
|
16053
16137
|
);
|
|
16054
16138
|
}
|
|
16139
|
+
function DesignDocChatCard({
|
|
16140
|
+
item,
|
|
16141
|
+
chatRef,
|
|
16142
|
+
isNewTab,
|
|
16143
|
+
discuss
|
|
16144
|
+
}) {
|
|
16145
|
+
const displayRef = fetchedItemDisplayRef(item, chatRef);
|
|
16146
|
+
const doc = item?.doc;
|
|
16147
|
+
const status = doc ? designDocSignOffStatus(doc.completion) : null;
|
|
16148
|
+
return /* @__PURE__ */ jsx96(
|
|
16149
|
+
MingoInfoCard,
|
|
16150
|
+
{
|
|
16151
|
+
title: doc?.title ?? displayRef.title,
|
|
16152
|
+
description: doc ? [designDocMetaLine(doc), designDocSignOffLabel(doc.completion)].join(" \xB7 ") : displayRef.preview ?? void 0,
|
|
16153
|
+
icon: /* @__PURE__ */ jsx96(FileContentIcon, { size: 24 }),
|
|
16154
|
+
status: status ? { label: status.label, variant: status.tag } : { label: "Design doc", variant: "grey" },
|
|
16155
|
+
anchorProps: buildAnchorProps(displayRef.url, isNewTab),
|
|
16156
|
+
menuGroups: cardMenuGroups(displayRef.url, discuss),
|
|
16157
|
+
menuAriaLabel: "Design doc actions"
|
|
16158
|
+
}
|
|
16159
|
+
);
|
|
16160
|
+
}
|
|
16055
16161
|
function InvestorUpdateChatCard({
|
|
16056
16162
|
item,
|
|
16057
16163
|
chatRef,
|
|
@@ -16060,13 +16166,13 @@ function InvestorUpdateChatCard({
|
|
|
16060
16166
|
discuss
|
|
16061
16167
|
}) {
|
|
16062
16168
|
const title = item?.title || `Update #${item?.update_number ?? "?"}`;
|
|
16063
|
-
return /* @__PURE__ */
|
|
16169
|
+
return /* @__PURE__ */ jsx96(
|
|
16064
16170
|
EntityMingoCard,
|
|
16065
16171
|
{
|
|
16066
16172
|
title,
|
|
16067
16173
|
description: item?.strategic_update || item?.content || formatInvestorUpdatePeriod(item?.period_start ?? null, item?.period_end ?? null) || void 0,
|
|
16068
16174
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
16069
|
-
fallbackIcon: /* @__PURE__ */
|
|
16175
|
+
fallbackIcon: /* @__PURE__ */ jsx96(PresentationLineIcon, { size: 24 }),
|
|
16070
16176
|
status: { label: "Investor update", variant: "grey" },
|
|
16071
16177
|
chatRef,
|
|
16072
16178
|
isNewTab,
|
|
@@ -16083,13 +16189,13 @@ function OnboardingGuideChatCard({
|
|
|
16083
16189
|
discuss
|
|
16084
16190
|
}) {
|
|
16085
16191
|
const cover = entityCover(item?.featured_image) ?? entityCover(item?.main_video_thumbnail) ?? entityCover(item?.og_image_url, ogPlaceholder);
|
|
16086
|
-
return /* @__PURE__ */
|
|
16192
|
+
return /* @__PURE__ */ jsx96(
|
|
16087
16193
|
EntityMingoCard,
|
|
16088
16194
|
{
|
|
16089
16195
|
title: item?.title ?? "",
|
|
16090
16196
|
description: item?.summary ?? item?.description ?? void 0,
|
|
16091
16197
|
cover,
|
|
16092
|
-
fallbackIcon: /* @__PURE__ */
|
|
16198
|
+
fallbackIcon: /* @__PURE__ */ jsx96(CompassIcon, { size: 24 }),
|
|
16093
16199
|
status: { label: "Guide", variant: "grey" },
|
|
16094
16200
|
chatRef,
|
|
16095
16201
|
isNewTab,
|
|
@@ -16107,9 +16213,9 @@ function ProgramChatCard({
|
|
|
16107
16213
|
ogPlaceholder,
|
|
16108
16214
|
discuss
|
|
16109
16215
|
}) {
|
|
16110
|
-
const icon = configKey === "webinar" ? /* @__PURE__ */
|
|
16216
|
+
const icon = configKey === "webinar" ? /* @__PURE__ */ jsx96(PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ jsx96(CalendarIcon, { size: 24 }) : /* @__PURE__ */ jsx96(MicrophoneIcon, { size: 24 });
|
|
16111
16217
|
const { line: meta } = programMetaLine(item ?? {}, configKey, programMetaFormatters(PROGRAM_META_RENDERERS));
|
|
16112
|
-
return /* @__PURE__ */
|
|
16218
|
+
return /* @__PURE__ */ jsx96(
|
|
16113
16219
|
EntityMingoCard,
|
|
16114
16220
|
{
|
|
16115
16221
|
title: item?.title ?? "",
|
|
@@ -16133,16 +16239,16 @@ function RoadmapChatCard({
|
|
|
16133
16239
|
}) {
|
|
16134
16240
|
const logoUrl = typeof item?.icon === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
16135
16241
|
const useTypeIcon = cardType === "internal_task" || !logoUrl && item?.customItemId != null;
|
|
16136
|
-
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */
|
|
16137
|
-
const icon = useTypeIcon ? /* @__PURE__ */
|
|
16242
|
+
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ jsx96(TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ jsx96(CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ jsx96(MapIcon, { size: 24 });
|
|
16243
|
+
const icon = useTypeIcon ? /* @__PURE__ */ jsx96(TaskTypeIcon, { customItemId: item?.customItemId, className: "size-6" }) : logoUrl ? (
|
|
16138
16244
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
16139
16245
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
16140
|
-
/* @__PURE__ */
|
|
16246
|
+
/* @__PURE__ */ jsx96(next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
|
|
16141
16247
|
) : defaultIcon;
|
|
16142
16248
|
const clickupHref = clickupTaskUrl(chatRef.id);
|
|
16143
|
-
const clickupIcon = /* @__PURE__ */
|
|
16249
|
+
const clickupIcon = /* @__PURE__ */ jsx96(ClickupLogoIcon, { size: 20 });
|
|
16144
16250
|
const cardUrlIsClickup = cardType === "internal_task";
|
|
16145
|
-
return /* @__PURE__ */
|
|
16251
|
+
return /* @__PURE__ */ jsx96(
|
|
16146
16252
|
EntityMingoCard,
|
|
16147
16253
|
{
|
|
16148
16254
|
title: item?.title ?? "",
|
|
@@ -16165,16 +16271,16 @@ function refHydratedEntry(docType, label, renderRef) {
|
|
|
16165
16271
|
contentRefType: docType,
|
|
16166
16272
|
noComposedHref: true,
|
|
16167
16273
|
fallbackHref: (item) => item?.url ?? null,
|
|
16168
|
-
skeleton: () => /* @__PURE__ */
|
|
16274
|
+
skeleton: () => /* @__PURE__ */ jsx96(MingoInfoCardSkeleton, {}),
|
|
16169
16275
|
render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
|
|
16170
16276
|
};
|
|
16171
16277
|
}
|
|
16172
16278
|
var FINANCIAL_CARD_CONFIGS = {
|
|
16173
|
-
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */
|
|
16174
|
-
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */
|
|
16175
|
-
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */
|
|
16176
|
-
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */
|
|
16177
|
-
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */
|
|
16279
|
+
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */ jsx96(ChartBar01VerIcon, { size: 24 }) },
|
|
16280
|
+
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */ jsx96(ChartPieIcon, { size: 24 }) },
|
|
16281
|
+
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */ jsx96(MoneyBillDollarIcon, { size: 24 }) },
|
|
16282
|
+
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */ jsx96(BankIcon, { size: 24 }) },
|
|
16283
|
+
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */ jsx96(CoinsExchangeCurrencyIcon, { size: 24 }) }
|
|
16178
16284
|
};
|
|
16179
16285
|
function registryEntries(configs, build) {
|
|
16180
16286
|
const out = {};
|
|
@@ -16184,7 +16290,7 @@ function registryEntries(configs, build) {
|
|
|
16184
16290
|
function financialRegistryEntries() {
|
|
16185
16291
|
return registryEntries(
|
|
16186
16292
|
FINANCIAL_CARD_CONFIGS,
|
|
16187
|
-
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */
|
|
16293
|
+
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */ jsx96(
|
|
16188
16294
|
GenericFinancialChatCard,
|
|
16189
16295
|
{
|
|
16190
16296
|
chatRef: displayRef,
|
|
@@ -16205,24 +16311,26 @@ var GITHUB_CARD_CONFIGS = {
|
|
|
16205
16311
|
};
|
|
16206
16312
|
var OpenFrameGlyph = resolveIcon("openframe");
|
|
16207
16313
|
var REF_GLYPH_CARD_CONFIGS = {
|
|
16208
|
-
|
|
16209
|
-
|
|
16210
|
-
prospect_call: { label: "Prospect call", icon: () => /* @__PURE__ */ jsx95(CallIcon, { size: 24 }), media: true },
|
|
16314
|
+
openframe_tenant: { label: "OpenFrame tenant", icon: () => /* @__PURE__ */ jsx96(OpenFrameGlyph, { size: 24 }) },
|
|
16315
|
+
prospect_call: { label: "Prospect call", icon: () => /* @__PURE__ */ jsx96(CallIcon, { size: 24 }), media: true },
|
|
16211
16316
|
// Code intelligence (product-hub internal): the review rules a repository is
|
|
16212
16317
|
// held to, the repositories themselves, and one row per deployment
|
|
16213
16318
|
// environment. Glyph cards like their siblings — none of the three has a
|
|
16214
16319
|
// cover image, and a rule is read in the admin screen it links to.
|
|
16215
|
-
code_rule: { label: "Code rule", icon: () => /* @__PURE__ */
|
|
16216
|
-
code_repo: { label: "Repository", icon: () => /* @__PURE__ */
|
|
16217
|
-
code_deployment: { label: "Deployment", icon: () => /* @__PURE__ */
|
|
16320
|
+
code_rule: { label: "Code rule", icon: () => /* @__PURE__ */ jsx96(BracketCurlyCheckIcon, { size: 24 }) },
|
|
16321
|
+
code_repo: { label: "Repository", icon: () => /* @__PURE__ */ jsx96(CodingBranchIcon, { size: 24 }) },
|
|
16322
|
+
code_deployment: { label: "Deployment", icon: () => /* @__PURE__ */ jsx96(PackageIcon, { size: 24 }) },
|
|
16218
16323
|
// The graph's own objects: one source file's public surface, one public
|
|
16219
16324
|
// symbol, a near-duplicate cluster, and a pull request's blast radius.
|
|
16220
16325
|
// Glyph cards for the same reason as their three siblings — none carries a
|
|
16221
16326
|
// cover image, and each links to the admin screen that renders it in full.
|
|
16222
|
-
code_file: { label: "Code file", icon: () => /* @__PURE__ */
|
|
16223
|
-
code_symbol: { label: "Code symbol", icon: () => /* @__PURE__ */
|
|
16224
|
-
code_duplicate: { label: "Duplicate code", icon: () => /* @__PURE__ */
|
|
16225
|
-
code_impact: { label: "Change impact", icon: () => /* @__PURE__ */
|
|
16327
|
+
code_file: { label: "Code file", icon: () => /* @__PURE__ */ jsx96(FileCodeIcon, { size: 24 }) },
|
|
16328
|
+
code_symbol: { label: "Code symbol", icon: () => /* @__PURE__ */ jsx96(CodeSquareIcon, { size: 24 }) },
|
|
16329
|
+
code_duplicate: { label: "Duplicate code", icon: () => /* @__PURE__ */ jsx96(Copy01Icon, { size: 24 }) },
|
|
16330
|
+
code_impact: { label: "Change impact", icon: () => /* @__PURE__ */ jsx96(CodingPullRequestIcon, { size: 24 }) },
|
|
16331
|
+
// A change set: pull requests across repositories declared as one change, with the ClickUp tasks and design
|
|
16332
|
+
// docs its pull requests are attached to. ONE card for it wherever a set is shown (chat, a design doc's page).
|
|
16333
|
+
change_set: { label: "Change set", icon: () => /* @__PURE__ */ jsx96(CodingMergeIcon, { size: 24 }) }
|
|
16226
16334
|
};
|
|
16227
16335
|
function refGlyphRegistryEntries() {
|
|
16228
16336
|
return registryEntries(
|
|
@@ -16230,7 +16338,7 @@ function refGlyphRegistryEntries() {
|
|
|
16230
16338
|
(cfg, docType) => refHydratedEntry(
|
|
16231
16339
|
docType,
|
|
16232
16340
|
cfg.label,
|
|
16233
|
-
(displayRef, opts) => cfg.media ? /* @__PURE__ */
|
|
16341
|
+
(displayRef, opts) => cfg.media ? /* @__PURE__ */ jsx96(
|
|
16234
16342
|
EntityMingoCard,
|
|
16235
16343
|
{
|
|
16236
16344
|
title: displayRef.title,
|
|
@@ -16246,7 +16354,7 @@ function refGlyphRegistryEntries() {
|
|
|
16246
16354
|
discuss: opts.discuss,
|
|
16247
16355
|
menuAriaLabel: `${cfg.label} actions`
|
|
16248
16356
|
}
|
|
16249
|
-
) : /* @__PURE__ */
|
|
16357
|
+
) : /* @__PURE__ */ jsx96(GlyphChatCard, { chatRef: displayRef, icon: cfg.icon(), isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16250
16358
|
)
|
|
16251
16359
|
);
|
|
16252
16360
|
}
|
|
@@ -16259,17 +16367,17 @@ function fetchedEmployeeEntryDisplayRef(item, chatRef) {
|
|
|
16259
16367
|
return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
|
|
16260
16368
|
}
|
|
16261
16369
|
var EMPLOYEE_ENTRY_CARD_CONFIGS = {
|
|
16262
|
-
what_i_shipped: { label: "What I Shipped", icon: () => /* @__PURE__ */
|
|
16263
|
-
how_i_work: { label: "How I Work", icon: () => /* @__PURE__ */
|
|
16264
|
-
ai_prompt: { label: "Squawkbox", icon: () => /* @__PURE__ */
|
|
16370
|
+
what_i_shipped: { label: "What I Shipped", icon: () => /* @__PURE__ */ jsx96(Rocket02Icon, { size: 24 }) },
|
|
16371
|
+
how_i_work: { label: "How I Work", icon: () => /* @__PURE__ */ jsx96(ClipboardListIcon, { size: 24 }) },
|
|
16372
|
+
ai_prompt: { label: "Squawkbox", icon: () => /* @__PURE__ */ jsx96(ChatQuoteIcon, { size: 24 }) }
|
|
16265
16373
|
};
|
|
16266
16374
|
function employeeEntryRegistryEntries() {
|
|
16267
16375
|
return registryEntries(EMPLOYEE_ENTRY_CARD_CONFIGS, (cfg, docType) => ({
|
|
16268
16376
|
label: cfg.label,
|
|
16269
16377
|
bareInline: true,
|
|
16270
16378
|
contentRefType: docType,
|
|
16271
|
-
skeleton: () => /* @__PURE__ */
|
|
16272
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16379
|
+
skeleton: () => /* @__PURE__ */ jsx96(MingoInfoCardSkeleton, {}),
|
|
16380
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16273
16381
|
GlyphChatCard,
|
|
16274
16382
|
{
|
|
16275
16383
|
chatRef: fetchedEmployeeEntryDisplayRef(item, chatRef),
|
|
@@ -16283,7 +16391,7 @@ function employeeEntryRegistryEntries() {
|
|
|
16283
16391
|
function githubRegistryEntries() {
|
|
16284
16392
|
return registryEntries(
|
|
16285
16393
|
GITHUB_CARD_CONFIGS,
|
|
16286
|
-
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */
|
|
16394
|
+
(cfg, docType) => refHydratedEntry(docType, cfg.label, (displayRef, opts) => /* @__PURE__ */ jsx96(GitHubChatCard, { chatRef: displayRef, kind: cfg.kind, isNewTab: opts.isNewTab, discuss: opts.discuss }))
|
|
16287
16395
|
);
|
|
16288
16396
|
}
|
|
16289
16397
|
var PROGRAM_CARD_CONFIGS = {
|
|
@@ -16296,8 +16404,8 @@ function programRegistryEntries() {
|
|
|
16296
16404
|
label: cfg.label,
|
|
16297
16405
|
contentRefType: cfg.contentRefType,
|
|
16298
16406
|
bareInline: true,
|
|
16299
|
-
skeleton: () => /* @__PURE__ */
|
|
16300
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16407
|
+
skeleton: () => /* @__PURE__ */ jsx96(ProgramCardSkeleton, { size: "sm" }),
|
|
16408
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16301
16409
|
ProgramChatCard,
|
|
16302
16410
|
{
|
|
16303
16411
|
item,
|
|
@@ -16337,8 +16445,8 @@ function roadmapRegistryEntries() {
|
|
|
16337
16445
|
bareInline: true,
|
|
16338
16446
|
...cfg.noComposedHref ? { noComposedHref: true } : {},
|
|
16339
16447
|
...cfg.fallbackHref ? { fallbackHref: cfg.fallbackHref } : {},
|
|
16340
|
-
skeleton: () => /* @__PURE__ */
|
|
16341
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16448
|
+
skeleton: () => /* @__PURE__ */ jsx96(RoadmapCardSkeleton, { size: "sm" }),
|
|
16449
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16342
16450
|
RoadmapChatCard,
|
|
16343
16451
|
{
|
|
16344
16452
|
item,
|
|
@@ -16365,7 +16473,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16365
16473
|
// null and the card renders its generic "Deleted item" tombstone. The
|
|
16366
16474
|
// descriptor's `title` defaults to the raw cardId — suppress it so the
|
|
16367
16475
|
// strikethrough line never shows an opaque id.
|
|
16368
|
-
render: (_item, chatRef) => /* @__PURE__ */
|
|
16476
|
+
render: (_item, chatRef) => /* @__PURE__ */ jsx96(
|
|
16369
16477
|
DeletedDataCard,
|
|
16370
16478
|
{
|
|
16371
16479
|
title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
|
|
@@ -16377,7 +16485,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16377
16485
|
// ───────── ref-only types (no list endpoint; the ChatRef IS the card) ─────────
|
|
16378
16486
|
...refGlyphRegistryEntries(),
|
|
16379
16487
|
...employeeEntryRegistryEntries(),
|
|
16380
|
-
slack_message: refHydratedEntry("slack_message", "Slack message", (displayRef, opts) => /* @__PURE__ */
|
|
16488
|
+
slack_message: refHydratedEntry("slack_message", "Slack message", (displayRef, opts) => /* @__PURE__ */ jsx96(SlackChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16381
16489
|
// FAQ hydrates from its EXISTING public list API (`/api/faqs?ids=` —
|
|
16382
16490
|
// also feeding related-content rails, so its base path must not move).
|
|
16383
16491
|
// Rows are faq-shaped, not ChatRef-shaped, hence the bespoke row→display
|
|
@@ -16388,8 +16496,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16388
16496
|
contentRefType: "faq",
|
|
16389
16497
|
noComposedHref: true,
|
|
16390
16498
|
fallbackHref: (item) => item?.id != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
|
|
16391
|
-
skeleton: () => /* @__PURE__ */
|
|
16392
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16499
|
+
skeleton: () => /* @__PURE__ */ jsx96(MingoInfoCardSkeleton, {}),
|
|
16500
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16393
16501
|
},
|
|
16394
16502
|
// Trust center — ONE record (`[card://trust_center:main]`) from the public
|
|
16395
16503
|
// projection route; `extractCardItems` turns its object payload into the
|
|
@@ -16401,24 +16509,24 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16401
16509
|
contentRefType: TRUST_CENTER_DOCUMENT_TYPE,
|
|
16402
16510
|
noComposedHref: true,
|
|
16403
16511
|
fallbackHref: () => TRUST_CENTER_PAGE_PATH,
|
|
16404
|
-
skeleton: () => /* @__PURE__ */
|
|
16405
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16512
|
+
skeleton: () => /* @__PURE__ */ jsx96(MingoInfoCardSkeleton, {}),
|
|
16513
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(TrustCenterChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16406
16514
|
},
|
|
16407
|
-
hubspot_ticket: refHydratedEntry("hubspot_ticket", "HubSpot ticket", (displayRef, opts) => /* @__PURE__ */
|
|
16408
|
-
hubspot_ticket_anon: refHydratedEntry("hubspot_ticket_anon", "HubSpot ticket (anon)", (displayRef, opts) => /* @__PURE__ */
|
|
16515
|
+
hubspot_ticket: refHydratedEntry("hubspot_ticket", "HubSpot ticket", (displayRef, opts) => /* @__PURE__ */ jsx96(HubspotTicketChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16516
|
+
hubspot_ticket_anon: refHydratedEntry("hubspot_ticket_anon", "HubSpot ticket (anon)", (displayRef, opts) => /* @__PURE__ */ jsx96(HubspotTicketChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16409
16517
|
// Self tickets hydrate via the session-scoped `GET /api/tickets?ids=`
|
|
16410
16518
|
// (`selfScopeFilter` ACL) instead of the generic endpoint — the self
|
|
16411
16519
|
// config's searchFilter is deliberately fail-closed there. Same
|
|
16412
16520
|
// ChatRef item shape (`buildHubspotTicketSelfRef` SSOT), same preset.
|
|
16413
|
-
hubspot_ticket_self: refHydratedEntry("hubspot_ticket_self", "HubSpot ticket (self)", (displayRef, opts) => /* @__PURE__ */
|
|
16414
|
-
data_room_doc: refHydratedEntry("data_room_doc", "Data-room doc", (displayRef, opts) => /* @__PURE__ */
|
|
16415
|
-
markdown: refHydratedEntry("markdown", "Doc page (markdown)", (displayRef, opts) => /* @__PURE__ */
|
|
16521
|
+
hubspot_ticket_self: refHydratedEntry("hubspot_ticket_self", "HubSpot ticket (self)", (displayRef, opts) => /* @__PURE__ */ jsx96(HubspotTicketChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16522
|
+
data_room_doc: refHydratedEntry("data_room_doc", "Data-room doc", (displayRef, opts) => /* @__PURE__ */ jsx96(DataRoomDocChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16523
|
+
markdown: refHydratedEntry("markdown", "Doc page (markdown)", (displayRef, opts) => /* @__PURE__ */ jsx96(DataRoomDocChatCard, { chatRef: displayRef, isNewTab: opts.isNewTab, discuss: opts.discuss })),
|
|
16416
16524
|
// Body-synthesized video ids (`shortVideoId` content hashes / YouTube
|
|
16417
16525
|
// ids) have no backing table row to fetch — ref-only by nature.
|
|
16418
16526
|
video: {
|
|
16419
16527
|
label: "Video",
|
|
16420
16528
|
bareInline: true,
|
|
16421
|
-
render: (_item, chatRef) => /* @__PURE__ */
|
|
16529
|
+
render: (_item, chatRef) => /* @__PURE__ */ jsx96(ChatInlineVideoPill, { chatRef })
|
|
16422
16530
|
},
|
|
16423
16531
|
...financialRegistryEntries(),
|
|
16424
16532
|
// ───────── content types: full rows from their public list APIs ─────────
|
|
@@ -16426,8 +16534,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16426
16534
|
label: "Blog post",
|
|
16427
16535
|
contentRefType: "blog_post_existing",
|
|
16428
16536
|
bareInline: true,
|
|
16429
|
-
skeleton: () => /* @__PURE__ */
|
|
16430
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16537
|
+
skeleton: () => /* @__PURE__ */ jsx96(BlogCardSkeleton, { size: "sm" }),
|
|
16538
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16431
16539
|
BlogChatCard,
|
|
16432
16540
|
{
|
|
16433
16541
|
item,
|
|
@@ -16443,8 +16551,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16443
16551
|
label: "Case study",
|
|
16444
16552
|
contentRefType: "case_study",
|
|
16445
16553
|
bareInline: true,
|
|
16446
|
-
skeleton: () => /* @__PURE__ */
|
|
16447
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16554
|
+
skeleton: () => /* @__PURE__ */ jsx96(CaseStudyCardSkeleton, { size: "sm" }),
|
|
16555
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16448
16556
|
CaseStudyChatCard,
|
|
16449
16557
|
{
|
|
16450
16558
|
item,
|
|
@@ -16455,12 +16563,21 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16455
16563
|
}
|
|
16456
16564
|
)
|
|
16457
16565
|
},
|
|
16566
|
+
design_doc: {
|
|
16567
|
+
label: "Design doc",
|
|
16568
|
+
contentRefType: "design_doc",
|
|
16569
|
+
bareInline: true,
|
|
16570
|
+
noComposedHref: true,
|
|
16571
|
+
fallbackHref: (item) => item?.url ?? null,
|
|
16572
|
+
skeleton: () => /* @__PURE__ */ jsx96(MingoInfoCardSkeleton, {}),
|
|
16573
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16574
|
+
},
|
|
16458
16575
|
customer_interview: {
|
|
16459
16576
|
label: "Customer interview",
|
|
16460
16577
|
contentRefType: "customer_interview",
|
|
16461
16578
|
bareInline: true,
|
|
16462
|
-
skeleton: () => /* @__PURE__ */
|
|
16463
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16579
|
+
skeleton: () => /* @__PURE__ */ jsx96(CustomerInterviewCardSkeleton, { size: "sm" }),
|
|
16580
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16464
16581
|
CustomerInterviewChatCard,
|
|
16465
16582
|
{
|
|
16466
16583
|
item,
|
|
@@ -16475,10 +16592,10 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16475
16592
|
label: "Product release",
|
|
16476
16593
|
contentRefType: "product_release",
|
|
16477
16594
|
bareInline: true,
|
|
16478
|
-
skeleton: () => /* @__PURE__ */
|
|
16595
|
+
skeleton: () => /* @__PURE__ */ jsx96(ProductReleaseCardSkeleton, { size: "sm" }),
|
|
16479
16596
|
render: (item, chatRef, opts) => {
|
|
16480
16597
|
const builder = opts?.extras?.buildProductReleaseCardProps ?? defaultBuildProductReleaseCardProps;
|
|
16481
|
-
return /* @__PURE__ */
|
|
16598
|
+
return /* @__PURE__ */ jsx96(
|
|
16482
16599
|
ProductReleaseChatCard,
|
|
16483
16600
|
{
|
|
16484
16601
|
item,
|
|
@@ -16495,8 +16612,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16495
16612
|
label: "Investor update",
|
|
16496
16613
|
contentRefType: "investor_update",
|
|
16497
16614
|
bareInline: true,
|
|
16498
|
-
skeleton: () => /* @__PURE__ */
|
|
16499
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16615
|
+
skeleton: () => /* @__PURE__ */ jsx96(InvestorUpdateCardSkeleton, { size: "sm" }),
|
|
16616
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16500
16617
|
InvestorUpdateChatCard,
|
|
16501
16618
|
{
|
|
16502
16619
|
item,
|
|
@@ -16513,8 +16630,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16513
16630
|
bareInline: true,
|
|
16514
16631
|
// "Display" affordance (verbatim guide body) instead of "Ask".
|
|
16515
16632
|
displayAction: true,
|
|
16516
|
-
skeleton: () => /* @__PURE__ */
|
|
16517
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16633
|
+
skeleton: () => /* @__PURE__ */ jsx96(OnboardingGuideCardSkeleton, { size: "sm" }),
|
|
16634
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(
|
|
16518
16635
|
OnboardingGuideChatCard,
|
|
16519
16636
|
{
|
|
16520
16637
|
item,
|
|
@@ -16529,11 +16646,11 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16529
16646
|
label: "Marketing campaign",
|
|
16530
16647
|
contentRefType: "marketing_campaign",
|
|
16531
16648
|
bareInline: true,
|
|
16532
|
-
skeleton: () => /* @__PURE__ */
|
|
16649
|
+
skeleton: () => /* @__PURE__ */ jsx96(CampaignCardAdminSkeleton, {}),
|
|
16533
16650
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
16534
16651
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
16535
16652
|
fallbackHref: (item) => item?.id ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
|
|
16536
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
16653
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx96(CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16537
16654
|
},
|
|
16538
16655
|
...roadmapRegistryEntries()
|
|
16539
16656
|
};
|
|
@@ -16562,7 +16679,7 @@ function ChatCardNavWrap({
|
|
|
16562
16679
|
e.stopPropagation();
|
|
16563
16680
|
if (!isNewTab && panel?.closeChat) panel.closeChat();
|
|
16564
16681
|
};
|
|
16565
|
-
return /* @__PURE__ */
|
|
16682
|
+
return /* @__PURE__ */ jsx96("span", { className: "contents", onClickCapture, children });
|
|
16566
16683
|
}
|
|
16567
16684
|
function ChatCardLoader({
|
|
16568
16685
|
chatRef,
|
|
@@ -16624,7 +16741,7 @@ function ChatCardLoader({
|
|
|
16624
16741
|
const discussFn = useDisplay ? onDisplay : onDiscuss;
|
|
16625
16742
|
const discuss = discussFn ? {
|
|
16626
16743
|
label: useDisplay ? "Display" : "Ask Mingo",
|
|
16627
|
-
icon: useDisplay ? /* @__PURE__ */
|
|
16744
|
+
icon: useDisplay ? /* @__PURE__ */ jsx96(FileContentIcon, { size: 20 }) : /* @__PURE__ */ jsx96(
|
|
16628
16745
|
MingoIcon,
|
|
16629
16746
|
{
|
|
16630
16747
|
className: "size-5",
|
|
@@ -16643,7 +16760,7 @@ function ChatCardLoader({
|
|
|
16643
16760
|
discuss
|
|
16644
16761
|
};
|
|
16645
16762
|
const path = typeof finalChatRef.metadata?.path === "string" ? finalChatRef.metadata.path : null;
|
|
16646
|
-
const navWrap = (children) => /* @__PURE__ */
|
|
16763
|
+
const navWrap = (children) => /* @__PURE__ */ jsx96(
|
|
16647
16764
|
ChatCardNavWrap,
|
|
16648
16765
|
{
|
|
16649
16766
|
href: finalChatRef.url ?? null,
|
|
@@ -16653,7 +16770,7 @@ function ChatCardLoader({
|
|
|
16653
16770
|
children
|
|
16654
16771
|
}
|
|
16655
16772
|
);
|
|
16656
|
-
const finish = (node) => entry.bareInline ? /* @__PURE__ */
|
|
16773
|
+
const finish = (node) => entry.bareInline ? /* @__PURE__ */ jsx96(Fragment33, { children: navWrap(node) }) : /* @__PURE__ */ jsx96(
|
|
16657
16774
|
ChatCardWithDiscuss,
|
|
16658
16775
|
{
|
|
16659
16776
|
chatRef: finalChatRef,
|
|
@@ -16666,15 +16783,15 @@ function ChatCardLoader({
|
|
|
16666
16783
|
if (!fetchEntry) {
|
|
16667
16784
|
return finish(entry.render(void 0, finalChatRef, renderOpts));
|
|
16668
16785
|
}
|
|
16669
|
-
if (isLoading) return /* @__PURE__ */
|
|
16786
|
+
if (isLoading) return /* @__PURE__ */ jsx96(Fragment33, { children: fetchEntry.skeleton?.() ?? null });
|
|
16670
16787
|
if (!item) {
|
|
16671
16788
|
if (isError) {
|
|
16672
|
-
return /* @__PURE__ */
|
|
16789
|
+
return /* @__PURE__ */ jsx96(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
|
|
16673
16790
|
}
|
|
16674
16791
|
if (!isFetched) {
|
|
16675
|
-
return /* @__PURE__ */
|
|
16792
|
+
return /* @__PURE__ */ jsx96(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Not loadable" });
|
|
16676
16793
|
}
|
|
16677
|
-
return /* @__PURE__ */
|
|
16794
|
+
return /* @__PURE__ */ jsx96(CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Not found" });
|
|
16678
16795
|
}
|
|
16679
16796
|
const videoMeta = itemVideoMetadata(item);
|
|
16680
16797
|
if (videoMeta) {
|
|
@@ -16686,9 +16803,9 @@ function ChatCardLoader({
|
|
|
16686
16803
|
// Same 12px rhythm as the message renderer's block-sibling wrapper
|
|
16687
16804
|
// (`my-3` in chat-message-enhanced) so card→player spacing matches
|
|
16688
16805
|
// the spacing between any two hoisted blocks.
|
|
16689
|
-
/* @__PURE__ */
|
|
16806
|
+
/* @__PURE__ */ jsxs74("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
16690
16807
|
finish(entry.render(item, finalChatRef, renderOpts)),
|
|
16691
|
-
/* @__PURE__ */
|
|
16808
|
+
/* @__PURE__ */ jsx96(ChatVideoEntityCard, { chatRef: videoRef })
|
|
16692
16809
|
] })
|
|
16693
16810
|
);
|
|
16694
16811
|
}
|
|
@@ -16696,7 +16813,7 @@ function ChatCardLoader({
|
|
|
16696
16813
|
}
|
|
16697
16814
|
function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
16698
16815
|
const { onDiscuss, onDisplay, baseRoute, chipBasePlatform, extras } = options;
|
|
16699
|
-
const loader = /* @__PURE__ */
|
|
16816
|
+
const loader = /* @__PURE__ */ jsx96(
|
|
16700
16817
|
ChatCardLoader,
|
|
16701
16818
|
{
|
|
16702
16819
|
chatRef,
|
|
@@ -16716,7 +16833,7 @@ function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
|
16716
16833
|
url: chatRef.url ?? decoded.videoUrl ?? (decoded.youtubeUrl ? `https://www.youtube.com/watch?v=${decoded.youtubeUrl}` : null),
|
|
16717
16834
|
metadata: { ...chatRef.metadata ?? {}, ...decoded }
|
|
16718
16835
|
};
|
|
16719
|
-
return /* @__PURE__ */
|
|
16836
|
+
return /* @__PURE__ */ jsx96(BlockCard, { inline: /* @__PURE__ */ jsx96(ChatInlineVideoPill, { chatRef: displayRef }), children: /* @__PURE__ */ jsx96(ChatVideoEntityCard, { chatRef: displayRef }) });
|
|
16720
16837
|
}
|
|
16721
16838
|
return loader;
|
|
16722
16839
|
}
|
|
@@ -18076,7 +18193,7 @@ function useChatAttachments() {
|
|
|
18076
18193
|
|
|
18077
18194
|
// src/components/chat/hooks/use-chat-attachment-image-gallery.tsx
|
|
18078
18195
|
import { useCallback as useCallback17, useEffect as useEffect28, useRef as useRef24, useState as useState34 } from "react";
|
|
18079
|
-
import { jsx as
|
|
18196
|
+
import { jsx as jsx97 } from "react/jsx-runtime";
|
|
18080
18197
|
var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
|
|
18081
18198
|
function useChatAttachmentImageGallery() {
|
|
18082
18199
|
const runtime = useRequiredChatRuntime();
|
|
@@ -18112,7 +18229,7 @@ function useChatAttachmentImageGallery() {
|
|
|
18112
18229
|
root.addEventListener("click", onClick);
|
|
18113
18230
|
return () => root.removeEventListener("click", onClick);
|
|
18114
18231
|
}, [viewUrlPrefix]);
|
|
18115
|
-
const modal = state.isOpen ? /* @__PURE__ */
|
|
18232
|
+
const modal = state.isOpen ? /* @__PURE__ */ jsx97(
|
|
18116
18233
|
ImageGalleryModal,
|
|
18117
18234
|
{
|
|
18118
18235
|
images: state.images,
|
|
@@ -24121,13 +24238,13 @@ import {
|
|
|
24121
24238
|
useRef as useRef33,
|
|
24122
24239
|
useState as useState45
|
|
24123
24240
|
} from "react";
|
|
24124
|
-
import { jsx as
|
|
24241
|
+
import { jsx as jsx98, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
24125
24242
|
var OVERLAY_BACKDROP_CLASS = "bg-ods-overlay";
|
|
24126
24243
|
var Drawer = DialogPrimitive.Root;
|
|
24127
24244
|
var DrawerTrigger = DialogPrimitive.Trigger;
|
|
24128
24245
|
var DrawerClose = DialogPrimitive.Close;
|
|
24129
24246
|
var DrawerPortal = DialogPrimitive.Portal;
|
|
24130
|
-
var DrawerOverlay = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24247
|
+
var DrawerOverlay = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx98(
|
|
24131
24248
|
DialogPrimitive.Overlay,
|
|
24132
24249
|
{
|
|
24133
24250
|
ref,
|
|
@@ -24322,7 +24439,7 @@ function DrawerResizeHandle({ side, size: size2, minSize, maxSize, onSize, ariaL
|
|
|
24322
24439
|
const trackPosition = side === "right" ? "right-full top-4 bottom-4 w-3 items-center justify-end pr-1" : side === "left" ? "left-full top-4 bottom-4 w-3 items-center justify-start pl-1" : side === "bottom" ? "bottom-full left-4 right-4 h-3 justify-center items-end pb-1" : "top-full left-4 right-4 h-3 justify-center items-start pt-1";
|
|
24323
24440
|
const cursorClass = isHorizontal ? "cursor-col-resize" : "cursor-row-resize";
|
|
24324
24441
|
const gripClass = isHorizontal ? "h-10 w-1" : "w-10 h-1";
|
|
24325
|
-
return /* @__PURE__ */
|
|
24442
|
+
return /* @__PURE__ */ jsx98(
|
|
24326
24443
|
"div",
|
|
24327
24444
|
{
|
|
24328
24445
|
role: "separator",
|
|
@@ -24343,7 +24460,7 @@ function DrawerResizeHandle({ side, size: size2, minSize, maxSize, onSize, ariaL
|
|
|
24343
24460
|
trackPosition,
|
|
24344
24461
|
cursorClass
|
|
24345
24462
|
),
|
|
24346
|
-
children: /* @__PURE__ */
|
|
24463
|
+
children: /* @__PURE__ */ jsx98("div", { "aria-hidden": true, className: cn("rounded-full bg-ods-bg-surface", gripClass) })
|
|
24347
24464
|
}
|
|
24348
24465
|
);
|
|
24349
24466
|
}
|
|
@@ -24391,9 +24508,9 @@ var DrawerContent = forwardRef26(
|
|
|
24391
24508
|
});
|
|
24392
24509
|
const applyInlineSize = resizable && !isMobile;
|
|
24393
24510
|
const sizeStyle = applyInlineSize ? isHorizontal ? { width: resizedSize } : { height: resizedSize } : {};
|
|
24394
|
-
return /* @__PURE__ */
|
|
24395
|
-
/* @__PURE__ */
|
|
24396
|
-
/* @__PURE__ */
|
|
24511
|
+
return /* @__PURE__ */ jsxs75(DrawerPortal, { children: [
|
|
24512
|
+
/* @__PURE__ */ jsx98(DrawerOverlay, { className: overlayClassName }),
|
|
24513
|
+
/* @__PURE__ */ jsxs75(
|
|
24397
24514
|
DialogPrimitive.Content,
|
|
24398
24515
|
{
|
|
24399
24516
|
ref,
|
|
@@ -24401,7 +24518,7 @@ var DrawerContent = forwardRef26(
|
|
|
24401
24518
|
style: { ...offsetHeader ? { top: headerHeight } : {}, ...style },
|
|
24402
24519
|
...props,
|
|
24403
24520
|
children: [
|
|
24404
|
-
applyInlineSize ? /* @__PURE__ */
|
|
24521
|
+
applyInlineSize ? /* @__PURE__ */ jsx98(
|
|
24405
24522
|
DrawerResizeHandle,
|
|
24406
24523
|
{
|
|
24407
24524
|
side: resolvedSide,
|
|
@@ -24412,7 +24529,7 @@ var DrawerContent = forwardRef26(
|
|
|
24412
24529
|
ariaLabel: resizeAriaLabel
|
|
24413
24530
|
}
|
|
24414
24531
|
) : null,
|
|
24415
|
-
/* @__PURE__ */
|
|
24532
|
+
/* @__PURE__ */ jsx98(
|
|
24416
24533
|
"div",
|
|
24417
24534
|
{
|
|
24418
24535
|
className: cn(drawerPanelVariants({ side, flush, size: size2 }), className, panelClassName),
|
|
@@ -24427,11 +24544,11 @@ var DrawerContent = forwardRef26(
|
|
|
24427
24544
|
}
|
|
24428
24545
|
);
|
|
24429
24546
|
DrawerContent.displayName = "DrawerContent";
|
|
24430
|
-
var DrawerHeader = ({ className, children, ...props }) => /* @__PURE__ */
|
|
24547
|
+
var DrawerHeader = ({ className, children, ...props }) => /* @__PURE__ */ jsx98("div", { className: cn("flex flex-col gap-4", className), ...props, children });
|
|
24431
24548
|
DrawerHeader.displayName = "DrawerHeader";
|
|
24432
24549
|
var DrawerTitle = forwardRef26(
|
|
24433
|
-
({ className, children, actions, hideClose, ...props }, ref) => /* @__PURE__ */
|
|
24434
|
-
/* @__PURE__ */
|
|
24550
|
+
({ className, children, actions, hideClose, ...props }, ref) => /* @__PURE__ */ jsxs75("div", { className: "flex items-start gap-4", children: [
|
|
24551
|
+
/* @__PURE__ */ jsx98(
|
|
24435
24552
|
DialogPrimitive.Title,
|
|
24436
24553
|
{
|
|
24437
24554
|
ref,
|
|
@@ -24441,14 +24558,14 @@ var DrawerTitle = forwardRef26(
|
|
|
24441
24558
|
}
|
|
24442
24559
|
),
|
|
24443
24560
|
actions,
|
|
24444
|
-
!hideClose && /* @__PURE__ */
|
|
24445
|
-
/* @__PURE__ */
|
|
24446
|
-
/* @__PURE__ */
|
|
24561
|
+
!hideClose && /* @__PURE__ */ jsxs75(DialogPrimitive.Close, { className: "shrink-0 rounded-sm text-ods-text-secondary outline-none ring-0 transition-colors hover:text-ods-text-primary focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0", children: [
|
|
24562
|
+
/* @__PURE__ */ jsx98(X, { className: "size-6" }),
|
|
24563
|
+
/* @__PURE__ */ jsx98("span", { className: "sr-only", children: "Close" })
|
|
24447
24564
|
] })
|
|
24448
24565
|
] })
|
|
24449
24566
|
);
|
|
24450
24567
|
DrawerTitle.displayName = "DrawerTitle";
|
|
24451
|
-
var DrawerDescription = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24568
|
+
var DrawerDescription = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx98(
|
|
24452
24569
|
DialogPrimitive.Description,
|
|
24453
24570
|
{
|
|
24454
24571
|
ref,
|
|
@@ -24457,16 +24574,16 @@ var DrawerDescription = forwardRef26(({ className, ...props }, ref) => /* @__PUR
|
|
|
24457
24574
|
}
|
|
24458
24575
|
));
|
|
24459
24576
|
DrawerDescription.displayName = "DrawerDescription";
|
|
24460
|
-
var DrawerBody = ({ className, ...props }) => /* @__PURE__ */
|
|
24577
|
+
var DrawerBody = ({ className, ...props }) => /* @__PURE__ */ jsx98("div", { className: cn("flex flex-1 flex-col gap-4 overflow-y-auto", className), ...props });
|
|
24461
24578
|
DrawerBody.displayName = "DrawerBody";
|
|
24462
|
-
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
24579
|
+
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx98("div", { className: cn("mt-auto flex flex-col gap-2", className), ...props });
|
|
24463
24580
|
DrawerFooter.displayName = "DrawerFooter";
|
|
24464
24581
|
|
|
24465
24582
|
// src/components/ui/hover-dropdown.tsx
|
|
24466
24583
|
import { useState as useState46, useRef as useRef34, useCallback as useCallback26 } from "react";
|
|
24467
|
-
import { Fragment as
|
|
24584
|
+
import { Fragment as Fragment34, jsx as jsx99, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
24468
24585
|
function DefaultAnchor({ href, className, children }) {
|
|
24469
|
-
return /* @__PURE__ */
|
|
24586
|
+
return /* @__PURE__ */ jsx99("a", { href, className, children });
|
|
24470
24587
|
}
|
|
24471
24588
|
function HoverDropdown({
|
|
24472
24589
|
children,
|
|
@@ -24519,24 +24636,24 @@ function HoverDropdown({
|
|
|
24519
24636
|
clearTimeout(timeoutRef.current);
|
|
24520
24637
|
setOpen((prev) => !prev);
|
|
24521
24638
|
}, []);
|
|
24522
|
-
if (items.length === 0) return /* @__PURE__ */
|
|
24639
|
+
if (items.length === 0) return /* @__PURE__ */ jsx99(Fragment34, { children });
|
|
24523
24640
|
const renderAnchorFn = renderAnchor ?? DefaultAnchor;
|
|
24524
|
-
return /* @__PURE__ */
|
|
24641
|
+
return /* @__PURE__ */ jsxs76("div", { ref: containerRef, className: "relative inline-flex", onMouseEnter: show, onMouseLeave: hide, onClick: toggle, children: [
|
|
24525
24642
|
children,
|
|
24526
|
-
open && /* @__PURE__ */
|
|
24643
|
+
open && /* @__PURE__ */ jsx99(
|
|
24527
24644
|
"div",
|
|
24528
24645
|
{
|
|
24529
24646
|
className: `fixed z-[9999] max-h-[420px] min-w-[220px] max-w-[340px] overflow-y-auto rounded-lg border border-ods-border bg-ods-card p-1 shadow-xl ${className || ""}`,
|
|
24530
24647
|
ref: panelRef,
|
|
24531
24648
|
children: items.map((item, i) => {
|
|
24532
|
-
const content = /* @__PURE__ */
|
|
24533
|
-
item.icon && /* @__PURE__ */
|
|
24534
|
-
/* @__PURE__ */
|
|
24649
|
+
const content = /* @__PURE__ */ jsxs76(Fragment34, { children: [
|
|
24650
|
+
item.icon && /* @__PURE__ */ jsx99("span", { className: "flex-shrink-0 [&_svg]:size-3.5", children: item.icon }),
|
|
24651
|
+
/* @__PURE__ */ jsx99("span", { className: "min-w-0 flex-1 truncate", children: item.label })
|
|
24535
24652
|
] });
|
|
24536
24653
|
const rowClass = "group flex w-full items-center gap-1.5 pl-2 pr-1 py-1.5 rounded text-h6 text-ods-text-secondary hover:bg-ods-accent/10 transition-colors text-left";
|
|
24537
24654
|
const primaryClass = "flex flex-1 items-center gap-1.5 min-w-0 hover:text-ods-accent cursor-pointer no-underline";
|
|
24538
24655
|
const secondaryAction = item.secondaryAction;
|
|
24539
|
-
const secondary = secondaryAction ? /* @__PURE__ */
|
|
24656
|
+
const secondary = secondaryAction ? /* @__PURE__ */ jsx99(
|
|
24540
24657
|
"button",
|
|
24541
24658
|
{
|
|
24542
24659
|
onClick: (e) => {
|
|
@@ -24551,7 +24668,7 @@ function HoverDropdown({
|
|
|
24551
24668
|
}
|
|
24552
24669
|
) : null;
|
|
24553
24670
|
if (item.href) {
|
|
24554
|
-
return /* @__PURE__ */
|
|
24671
|
+
return /* @__PURE__ */ jsxs76("div", { className: rowClass, children: [
|
|
24555
24672
|
renderAnchorFn({
|
|
24556
24673
|
href: item.href,
|
|
24557
24674
|
targetPlatform: item.targetPlatform,
|
|
@@ -24564,13 +24681,13 @@ function HoverDropdown({
|
|
|
24564
24681
|
] }, i);
|
|
24565
24682
|
}
|
|
24566
24683
|
if (!item.onClick) {
|
|
24567
|
-
return /* @__PURE__ */
|
|
24568
|
-
/* @__PURE__ */
|
|
24684
|
+
return /* @__PURE__ */ jsxs76("div", { className: rowClass, children: [
|
|
24685
|
+
/* @__PURE__ */ jsx99("span", { className: `${primaryClass} cursor-default hover:!text-ods-text-secondary`, children: content }),
|
|
24569
24686
|
secondary
|
|
24570
24687
|
] }, i);
|
|
24571
24688
|
}
|
|
24572
|
-
return /* @__PURE__ */
|
|
24573
|
-
/* @__PURE__ */
|
|
24689
|
+
return /* @__PURE__ */ jsxs76("div", { className: rowClass, children: [
|
|
24690
|
+
/* @__PURE__ */ jsx99("button", { onClick: item.onClick, className: primaryClass, children: content }),
|
|
24574
24691
|
secondary
|
|
24575
24692
|
] }, i);
|
|
24576
24693
|
})
|
|
@@ -24813,7 +24930,7 @@ function pruneTimestampCache(timestampCache, liveIds) {
|
|
|
24813
24930
|
}
|
|
24814
24931
|
|
|
24815
24932
|
// src/components/chat/embeddable-chat.tsx
|
|
24816
|
-
import { Fragment as
|
|
24933
|
+
import { Fragment as Fragment35, jsx as jsx100, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
24817
24934
|
var HISTORY_RAIL_WIDTH = 320;
|
|
24818
24935
|
var CHAT_BLOCK_MIN_WIDTH = 400;
|
|
24819
24936
|
var SPLIT_MIN_WIDTH = HISTORY_RAIL_WIDTH + CHAT_BLOCK_MIN_WIDTH;
|
|
@@ -24864,7 +24981,7 @@ function RailSlot({
|
|
|
24864
24981
|
innerClassName,
|
|
24865
24982
|
children
|
|
24866
24983
|
}) {
|
|
24867
|
-
return /* @__PURE__ */
|
|
24984
|
+
return /* @__PURE__ */ jsx100(
|
|
24868
24985
|
"div",
|
|
24869
24986
|
{
|
|
24870
24987
|
className: cn(
|
|
@@ -24873,7 +24990,7 @@ function RailSlot({
|
|
|
24873
24990
|
"shrink-0 overflow-hidden border-r border-ods-border transition-[width,opacity] ease-out",
|
|
24874
24991
|
active ? "duration-[240ms] w-80 opacity-100" : "duration-[300ms] w-0 opacity-0"
|
|
24875
24992
|
),
|
|
24876
|
-
children: /* @__PURE__ */
|
|
24993
|
+
children: /* @__PURE__ */ jsx100("div", { className: cn("h-full w-80", innerClassName), children })
|
|
24877
24994
|
}
|
|
24878
24995
|
);
|
|
24879
24996
|
}
|
|
@@ -24930,7 +25047,7 @@ function SourceChip({
|
|
|
24930
25047
|
sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
|
|
24931
25048
|
);
|
|
24932
25049
|
const Icon = cta.icon;
|
|
24933
|
-
const icon = /* @__PURE__ */
|
|
25050
|
+
const icon = /* @__PURE__ */ jsx100(Icon, { className: "h-3.5 w-3.5" });
|
|
24934
25051
|
const chipClass = chatChipClass({ tone: "secondary" });
|
|
24935
25052
|
const decideTab = (href, targetPlatform) => computeIsNewTab(runtime, href, targetPlatform);
|
|
24936
25053
|
if (src.items && src.items.length > 0) {
|
|
@@ -24953,12 +25070,12 @@ function SourceChip({
|
|
|
24953
25070
|
// A client-built group keeps each row's own citation number, so the
|
|
24954
25071
|
// `[3]` in the answer is findable inside the dropdown.
|
|
24955
25072
|
label: item.index === void 0 ? item.name : `[${item.index}] ${item.name}`,
|
|
24956
|
-
icon: /* @__PURE__ */
|
|
25073
|
+
icon: /* @__PURE__ */ jsx100(ItemIcon, { className: "h-3.5 w-3.5" }),
|
|
24957
25074
|
href: itemCta.href ?? void 0,
|
|
24958
25075
|
targetPlatform: itemCta.targetPlatform,
|
|
24959
25076
|
path: item.path ?? null,
|
|
24960
25077
|
secondaryAction: onDiscuss && itemCta.askable && itemChatRef ? {
|
|
24961
|
-
icon: /* @__PURE__ */
|
|
25078
|
+
icon: /* @__PURE__ */ jsx100(MessageSquare3, {}),
|
|
24962
25079
|
label: `Ask about ${item.name}`,
|
|
24963
25080
|
onClick: () => onDiscuss(itemChatRef)
|
|
24964
25081
|
} : void 0
|
|
@@ -24966,11 +25083,11 @@ function SourceChip({
|
|
|
24966
25083
|
});
|
|
24967
25084
|
const itemIndices = src.items.flatMap((item) => item.index === void 0 ? [] : [item.index]);
|
|
24968
25085
|
const groupIndices = itemIndices.length > 0 ? formatCitationIndices(itemIndices) : `${src.index}`;
|
|
24969
|
-
return /* @__PURE__ */
|
|
25086
|
+
return /* @__PURE__ */ jsx100(
|
|
24970
25087
|
HoverDropdown,
|
|
24971
25088
|
{
|
|
24972
25089
|
items: dropdownItems,
|
|
24973
|
-
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */
|
|
25090
|
+
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */ jsx100(
|
|
24974
25091
|
NavLinkAnchorViaRuntime,
|
|
24975
25092
|
{
|
|
24976
25093
|
href,
|
|
@@ -24980,9 +25097,9 @@ function SourceChip({
|
|
|
24980
25097
|
children
|
|
24981
25098
|
}
|
|
24982
25099
|
),
|
|
24983
|
-
children: /* @__PURE__ */
|
|
25100
|
+
children: /* @__PURE__ */ jsxs77("span", { className: `${chipClass} cursor-pointer`, children: [
|
|
24984
25101
|
icon,
|
|
24985
|
-
/* @__PURE__ */
|
|
25102
|
+
/* @__PURE__ */ jsxs77("span", { className: "max-w-[160px] truncate", children: [
|
|
24986
25103
|
"[",
|
|
24987
25104
|
groupIndices,
|
|
24988
25105
|
"] ",
|
|
@@ -24993,18 +25110,18 @@ function SourceChip({
|
|
|
24993
25110
|
);
|
|
24994
25111
|
}
|
|
24995
25112
|
const displayName = src.name || formatRelativePath(src.path);
|
|
24996
|
-
const chipBody = (label) => /* @__PURE__ */
|
|
25113
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
24997
25114
|
icon,
|
|
24998
|
-
/* @__PURE__ */
|
|
25115
|
+
/* @__PURE__ */ jsxs77("span", { className: "max-w-[160px] truncate", children: [
|
|
24999
25116
|
"[",
|
|
25000
25117
|
src.index,
|
|
25001
25118
|
"] ",
|
|
25002
25119
|
label
|
|
25003
25120
|
] })
|
|
25004
25121
|
] });
|
|
25005
|
-
const wrapChip = (clickable) => /* @__PURE__ */
|
|
25122
|
+
const wrapChip = (clickable) => /* @__PURE__ */ jsxs77("span", { className: "inline-flex items-center", children: [
|
|
25006
25123
|
clickable,
|
|
25007
|
-
/* @__PURE__ */
|
|
25124
|
+
/* @__PURE__ */ jsx100(SourceActionButton, { chatRef: cta.chatRef, onDiscuss, density: "inline", className: "-mr-1 ml-1" })
|
|
25008
25125
|
] });
|
|
25009
25126
|
const buildClickHandler = (href, path, targetPlatform, isNewTab) => (e) => {
|
|
25010
25127
|
const handled = executeNavigation({
|
|
@@ -25021,7 +25138,7 @@ function SourceChip({
|
|
|
25021
25138
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
25022
25139
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
25023
25140
|
return wrapChip(
|
|
25024
|
-
/* @__PURE__ */
|
|
25141
|
+
/* @__PURE__ */ jsx100(
|
|
25025
25142
|
"a",
|
|
25026
25143
|
{
|
|
25027
25144
|
href: resolvedHref,
|
|
@@ -25037,7 +25154,7 @@ function SourceChip({
|
|
|
25037
25154
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
25038
25155
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
25039
25156
|
return wrapChip(
|
|
25040
|
-
/* @__PURE__ */
|
|
25157
|
+
/* @__PURE__ */ jsx100(
|
|
25041
25158
|
"a",
|
|
25042
25159
|
{
|
|
25043
25160
|
href: resolvedHref,
|
|
@@ -25051,7 +25168,7 @@ function SourceChip({
|
|
|
25051
25168
|
);
|
|
25052
25169
|
}
|
|
25053
25170
|
return wrapChip(
|
|
25054
|
-
/* @__PURE__ */
|
|
25171
|
+
/* @__PURE__ */ jsx100("span", { className: `${chipClass} cursor-default`, title: displayName, children: chipBody(displayName) })
|
|
25055
25172
|
);
|
|
25056
25173
|
}
|
|
25057
25174
|
function SourceChips({
|
|
@@ -25066,9 +25183,9 @@ function SourceChips({
|
|
|
25066
25183
|
if (cited.length === 0) {
|
|
25067
25184
|
const fallback = uncited.slice(0, FALLBACK_TOP_RETRIEVED);
|
|
25068
25185
|
if (fallback.length === 0) return null;
|
|
25069
|
-
return /* @__PURE__ */
|
|
25070
|
-
/* @__PURE__ */
|
|
25071
|
-
/* @__PURE__ */
|
|
25186
|
+
return /* @__PURE__ */ jsxs77("div", { className: "mt-2 flex flex-col gap-1.5 border-t border-ods-border pt-2", children: [
|
|
25187
|
+
/* @__PURE__ */ jsx100("span", { className: "uppercase text-ods-text-muted text-h6", children: "Top retrieved sources" }),
|
|
25188
|
+
/* @__PURE__ */ jsx100("div", { className: "flex flex-wrap gap-1.5", children: fallback.map((src) => /* @__PURE__ */ jsx100(
|
|
25072
25189
|
SourceChip,
|
|
25073
25190
|
{
|
|
25074
25191
|
src,
|
|
@@ -25083,10 +25200,10 @@ function SourceChips({
|
|
|
25083
25200
|
}
|
|
25084
25201
|
const hiddenCount = uncited.length;
|
|
25085
25202
|
const hasOverflow = hiddenCount > 0;
|
|
25086
|
-
return /* @__PURE__ */
|
|
25087
|
-
/* @__PURE__ */
|
|
25088
|
-
/* @__PURE__ */
|
|
25089
|
-
cited.map((src) => /* @__PURE__ */
|
|
25203
|
+
return /* @__PURE__ */ jsxs77("div", { className: "mt-2 flex flex-col gap-1.5 border-t border-ods-border pt-2", children: [
|
|
25204
|
+
/* @__PURE__ */ jsx100("span", { className: "uppercase text-ods-text-muted text-h6", children: "Sources" }),
|
|
25205
|
+
/* @__PURE__ */ jsxs77("div", { className: `flex flex-wrap gap-1.5 ${expanded ? "max-h-[200px] overflow-y-auto overscroll-contain" : ""}`, children: [
|
|
25206
|
+
cited.map((src) => /* @__PURE__ */ jsx100(
|
|
25090
25207
|
SourceChip,
|
|
25091
25208
|
{
|
|
25092
25209
|
src,
|
|
@@ -25097,7 +25214,7 @@ function SourceChips({
|
|
|
25097
25214
|
},
|
|
25098
25215
|
src.index
|
|
25099
25216
|
)),
|
|
25100
|
-
expanded && uncited.map((src) => /* @__PURE__ */
|
|
25217
|
+
expanded && uncited.map((src) => /* @__PURE__ */ jsx100(
|
|
25101
25218
|
SourceChip,
|
|
25102
25219
|
{
|
|
25103
25220
|
src,
|
|
@@ -25108,7 +25225,7 @@ function SourceChips({
|
|
|
25108
25225
|
},
|
|
25109
25226
|
src.index
|
|
25110
25227
|
)),
|
|
25111
|
-
hasOverflow && /* @__PURE__ */
|
|
25228
|
+
hasOverflow && /* @__PURE__ */ jsx100(
|
|
25112
25229
|
"button",
|
|
25113
25230
|
{
|
|
25114
25231
|
onClick: () => setExpanded(!expanded),
|
|
@@ -25123,7 +25240,7 @@ function SourceChips({
|
|
|
25123
25240
|
}
|
|
25124
25241
|
var EmbeddableChat = React10.forwardRef(
|
|
25125
25242
|
function EmbeddableChatImpl(props, ref) {
|
|
25126
|
-
return /* @__PURE__ */
|
|
25243
|
+
return /* @__PURE__ */ jsx100(EmbeddableChatInner, { ...props, handleRef: ref });
|
|
25127
25244
|
}
|
|
25128
25245
|
);
|
|
25129
25246
|
EmbeddableChat.displayName = "EmbeddableChat";
|
|
@@ -25459,7 +25576,7 @@ function EmbeddableChatInner({
|
|
|
25459
25576
|
[discussRef, displayRef, resolvedBaseRoute, chipBasePlatform, extras]
|
|
25460
25577
|
);
|
|
25461
25578
|
const mingoAssistantIcon = useMemo31(
|
|
25462
|
-
() => effectiveAssistantIcon ? /* @__PURE__ */
|
|
25579
|
+
() => effectiveAssistantIcon ? /* @__PURE__ */ jsx100(EntityIcon, { icon: effectiveAssistantIcon, size: 24 }) : /* @__PURE__ */ jsx100(MingoIcon, { className: "h-6 w-6", cornerColor: "var(--ods-flamingo-cyan-base)" }),
|
|
25463
25580
|
[effectiveAssistantIcon]
|
|
25464
25581
|
);
|
|
25465
25582
|
const [timestampCache] = useState48(() => /* @__PURE__ */ new Map());
|
|
@@ -25619,7 +25736,7 @@ function EmbeddableChatInner({
|
|
|
25619
25736
|
if (chatLoading && index === messages.length - 1) return null;
|
|
25620
25737
|
const { cited, uncited } = splitCitedSources(message.sources, flattenAssistantContent(message.content));
|
|
25621
25738
|
if (cited.length === 0 && uncited.length === 0) return null;
|
|
25622
|
-
return /* @__PURE__ */
|
|
25739
|
+
return /* @__PURE__ */ jsx100("div", { className: "pb-2", children: /* @__PURE__ */ jsx100(
|
|
25623
25740
|
SourceChips,
|
|
25624
25741
|
{
|
|
25625
25742
|
cited,
|
|
@@ -25779,13 +25896,13 @@ function EmbeddableChatInner({
|
|
|
25779
25896
|
onCopyLink: headerOnCopyLink,
|
|
25780
25897
|
onOpenArchive: headerOnOpenArchive
|
|
25781
25898
|
};
|
|
25782
|
-
const body = /* @__PURE__ */
|
|
25783
|
-
/* @__PURE__ */
|
|
25899
|
+
const body = /* @__PURE__ */ jsx100(PortalContainerContext.Provider, { value: portalHost, children: /* @__PURE__ */ jsxs77(CollisionBoundaryContext.Provider, { value: panelBoundary, children: [
|
|
25900
|
+
/* @__PURE__ */ jsx100(
|
|
25784
25901
|
"div",
|
|
25785
25902
|
{
|
|
25786
25903
|
ref: setPanelNode,
|
|
25787
25904
|
className: `flex h-full flex-col overflow-hidden transition-colors duration-200 ${archiveOpen && !splitActive || stackedListView ? "bg-ods-card" : "bg-ods-bg"} ${previewMode ? "pointer-events-none select-none" : ""}`,
|
|
25788
|
-
children: archiveOpen && !splitActive ? /* @__PURE__ */
|
|
25905
|
+
children: archiveOpen && !splitActive ? /* @__PURE__ */ jsx100("div", { className: "flex min-h-0 flex-1 flex-col duration-200 animate-in fade-in-0", children: /* @__PURE__ */ jsx100(
|
|
25789
25906
|
ChatArchivePage,
|
|
25790
25907
|
{
|
|
25791
25908
|
dialogs: archivedDialogs,
|
|
@@ -25799,7 +25916,7 @@ function EmbeddableChatInner({
|
|
|
25799
25916
|
void loadArchivedPage(archivedCursor ?? void 0);
|
|
25800
25917
|
}
|
|
25801
25918
|
}
|
|
25802
|
-
) }, "archive-view") : /* @__PURE__ */
|
|
25919
|
+
) }, "archive-view") : /* @__PURE__ */ jsxs77("div", { className: "flex min-h-0 flex-1 flex-col duration-200 animate-in fade-in-0", children: [
|
|
25803
25920
|
showWideHeader ? (
|
|
25804
25921
|
// Wide Mingo header (Figma 113:60931 / 113:63630). Split: a
|
|
25805
25922
|
// two-cell bar — the "Current Chats" rail header (search /
|
|
@@ -25813,47 +25930,47 @@ function EmbeddableChatInner({
|
|
|
25813
25930
|
// the viewport `md` breakpoint — otherwise a 720–799px panel on a
|
|
25814
25931
|
// sub-`md` viewport would split the body yet drop to the mobile
|
|
25815
25932
|
// single-bar header (no rail search / collapse controls).
|
|
25816
|
-
/* @__PURE__ */
|
|
25817
|
-
railPresence.mounted && /* @__PURE__ */
|
|
25933
|
+
/* @__PURE__ */ jsxs77("div", { className: "flex h-14 w-full flex-shrink-0 overflow-hidden border-b border-ods-border bg-ods-card", children: [
|
|
25934
|
+
railPresence.mounted && /* @__PURE__ */ jsx100(RailSlot, { active: railPresence.active, innerClassName: "flex overflow-hidden", children: archiveOpen ? (
|
|
25818
25935
|
// Archive open in the wide layout — the rail header
|
|
25819
25936
|
// turns into a "Chat Archive" back bar (the list itself
|
|
25820
25937
|
// renders in the rail below); the chat block is untouched.
|
|
25821
25938
|
// Back is a full-height leading cell, matching the other
|
|
25822
25939
|
// header cells (not a small inline chevron).
|
|
25823
|
-
/* @__PURE__ */
|
|
25824
|
-
/* @__PURE__ */
|
|
25825
|
-
/* @__PURE__ */
|
|
25940
|
+
/* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
25941
|
+
/* @__PURE__ */ jsx100(ChatHeaderIconButton, { divider: "right", onClick: closeArchive, "aria-label": "Back to chats", children: /* @__PURE__ */ jsx100(Chevron02LeftIcon, { size: 24 }) }),
|
|
25942
|
+
/* @__PURE__ */ jsx100("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx100("span", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h3", children: "Chat Archive" }) })
|
|
25826
25943
|
] })
|
|
25827
25944
|
) : (
|
|
25828
25945
|
// "Current Chats" rail header — title fills, then the
|
|
25829
25946
|
// search + archive controls. When search is open the
|
|
25830
25947
|
// inline field takes over the title area in place
|
|
25831
25948
|
// (Figma 116:51217) and the magnifier toggle is hidden.
|
|
25832
|
-
/* @__PURE__ */
|
|
25833
|
-
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */
|
|
25949
|
+
/* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
25950
|
+
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */ jsx100(
|
|
25834
25951
|
ChatHeaderSearchField,
|
|
25835
25952
|
{
|
|
25836
25953
|
initialValue: mingoCaps.searchQuery,
|
|
25837
25954
|
onSearchChange: mingoCaps.onSearchChange,
|
|
25838
25955
|
onCollapse: () => setRailSearchOpen(false)
|
|
25839
25956
|
}
|
|
25840
|
-
) : /* @__PURE__ */
|
|
25841
|
-
/* @__PURE__ */
|
|
25842
|
-
mingoCaps.onSearchChange && /* @__PURE__ */
|
|
25957
|
+
) : /* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
25958
|
+
/* @__PURE__ */ jsx100("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx100("span", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h3", children: "Current Chats" }) }),
|
|
25959
|
+
mingoCaps.onSearchChange && /* @__PURE__ */ jsx100(
|
|
25843
25960
|
ChatHeaderIconButton,
|
|
25844
25961
|
{
|
|
25845
25962
|
onClick: () => setRailSearchOpen((o) => !o),
|
|
25846
25963
|
"aria-label": "Search chats",
|
|
25847
25964
|
"aria-pressed": railSearchOpen,
|
|
25848
|
-
children: /* @__PURE__ */
|
|
25965
|
+
children: /* @__PURE__ */ jsx100(SearchIcon, { size: 24 })
|
|
25849
25966
|
}
|
|
25850
25967
|
)
|
|
25851
25968
|
] }),
|
|
25852
|
-
headerOnOpenArchive && /* @__PURE__ */
|
|
25969
|
+
headerOnOpenArchive && /* @__PURE__ */ jsx100(ChatHeaderIconButton, { onClick: headerOnOpenArchive, "aria-label": "Chat archive", children: /* @__PURE__ */ jsx100(ClockHistoryIcon, { size: 24 }) })
|
|
25853
25970
|
] })
|
|
25854
25971
|
) }),
|
|
25855
|
-
/* @__PURE__ */
|
|
25856
|
-
/* @__PURE__ */
|
|
25972
|
+
/* @__PURE__ */ jsxs77("div", { className: "flex min-w-0 flex-1", children: [
|
|
25973
|
+
/* @__PURE__ */ jsx100(
|
|
25857
25974
|
"button",
|
|
25858
25975
|
{
|
|
25859
25976
|
type: "button",
|
|
@@ -25861,17 +25978,17 @@ function EmbeddableChatInner({
|
|
|
25861
25978
|
"aria-label": splitActive ? "Collapse chat list" : "Show chat list",
|
|
25862
25979
|
"aria-pressed": !splitActive,
|
|
25863
25980
|
className: "flex size-14 shrink-0 items-center justify-center border-r border-ods-border text-ods-text-secondary transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
|
|
25864
|
-
children: splitActive ? /* @__PURE__ */
|
|
25981
|
+
children: splitActive ? /* @__PURE__ */ jsx100(Arrow02RightIcon, { size: 24 }) : /* @__PURE__ */ jsx100(Arrow02LeftIcon, { size: 24 })
|
|
25865
25982
|
}
|
|
25866
25983
|
),
|
|
25867
|
-
/* @__PURE__ */
|
|
25868
|
-
/* @__PURE__ */
|
|
25869
|
-
/* @__PURE__ */
|
|
25870
|
-
headerPersonName && /* @__PURE__ */
|
|
25984
|
+
/* @__PURE__ */ jsxs77("div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-m)] px-[var(--spacing-system-mf)] py-[var(--spacing-system-sf)]", children: [
|
|
25985
|
+
/* @__PURE__ */ jsxs77("div", { className: "flex min-w-0 flex-col", children: [
|
|
25986
|
+
/* @__PURE__ */ jsx100("p", { className: "truncate leading-tight text-ods-text-primary text-h3", children: headerShowBack || isGuideEmpty ? headerTitle : freshConversationTitle }),
|
|
25987
|
+
headerPersonName && /* @__PURE__ */ jsx100("p", { className: "truncate leading-tight text-ods-text-secondary text-h6", children: headerPersonName })
|
|
25871
25988
|
] }),
|
|
25872
25989
|
headerAvatar ? (
|
|
25873
25990
|
// Owner avatar at the title cell's right edge (Figma 113:63273).
|
|
25874
|
-
/* @__PURE__ */
|
|
25991
|
+
/* @__PURE__ */ jsx100(
|
|
25875
25992
|
SquareAvatar,
|
|
25876
25993
|
{
|
|
25877
25994
|
variant: "round",
|
|
@@ -25886,17 +26003,17 @@ function EmbeddableChatInner({
|
|
|
25886
26003
|
)
|
|
25887
26004
|
) : null
|
|
25888
26005
|
] }),
|
|
25889
|
-
isViewingArchived && headerOnRestore && /* @__PURE__ */
|
|
25890
|
-
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */
|
|
26006
|
+
isViewingArchived && headerOnRestore && /* @__PURE__ */ jsx100(ChatHeaderIconButton, { onClick: headerOnRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ jsx100(Refresh01LeftIcon, { size: 24 }) }),
|
|
26007
|
+
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */ jsx100(
|
|
25891
26008
|
ActionsMenuDropdown,
|
|
25892
26009
|
{
|
|
25893
26010
|
triggerAriaLabel: "Chat actions",
|
|
25894
26011
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
25895
26012
|
groups: [{ items: splitHeaderMenuItems }],
|
|
25896
|
-
customTrigger: /* @__PURE__ */
|
|
26013
|
+
customTrigger: /* @__PURE__ */ jsx100(ChatHeaderIconButton, { "aria-label": "Chat actions", children: /* @__PURE__ */ jsx100(Ellipsis01Icon, { size: 24 }) })
|
|
25897
26014
|
}
|
|
25898
26015
|
),
|
|
25899
|
-
/* @__PURE__ */
|
|
26016
|
+
/* @__PURE__ */ jsx100(ChatHeaderIconButton, { onClick: handleClose, "aria-label": "Close", children: /* @__PURE__ */ jsx100(XmarkIcon, { size: 24 }) })
|
|
25900
26017
|
] })
|
|
25901
26018
|
] })
|
|
25902
26019
|
) : (
|
|
@@ -25904,14 +26021,14 @@ function EmbeddableChatInner({
|
|
|
25904
26021
|
// guide, resolved into `narrowHeaderProps` above. (Wide layouts,
|
|
25905
26022
|
// including rail-collapsed, use the wide header above.) Embedded
|
|
25906
26023
|
// previews (hero demo tabs) force the compact bar via `compact`.
|
|
25907
|
-
/* @__PURE__ */
|
|
26024
|
+
/* @__PURE__ */ jsx100(ChatPanelHeader, { ...narrowHeaderProps, compact: previewMode })
|
|
25908
26025
|
),
|
|
25909
|
-
activeMode === "guide" && hasMingoMode && /* @__PURE__ */
|
|
25910
|
-
/* @__PURE__ */
|
|
25911
|
-
railPresence.mounted && /* @__PURE__ */
|
|
26026
|
+
activeMode === "guide" && hasMingoMode && /* @__PURE__ */ jsx100(GuideModeBanner, { className: "duration-200 animate-in fade-in-0" }),
|
|
26027
|
+
/* @__PURE__ */ jsxs77("div", { className: "flex min-h-0 flex-1 overflow-hidden", children: [
|
|
26028
|
+
railPresence.mounted && /* @__PURE__ */ jsx100(RailSlot, { active: railPresence.active, innerClassName: "flex flex-col min-h-0 bg-ods-card", children: archiveOpen ? (
|
|
25912
26029
|
// Archive list inside the rail (header lives in the split
|
|
25913
26030
|
// header's left cell above). Right chat block stays put.
|
|
25914
|
-
/* @__PURE__ */
|
|
26031
|
+
/* @__PURE__ */ jsx100(
|
|
25915
26032
|
ChatArchivePage,
|
|
25916
26033
|
{
|
|
25917
26034
|
embedded: true,
|
|
@@ -25925,7 +26042,7 @@ function EmbeddableChatInner({
|
|
|
25925
26042
|
}
|
|
25926
26043
|
}
|
|
25927
26044
|
)
|
|
25928
|
-
) : /* @__PURE__ */
|
|
26045
|
+
) : /* @__PURE__ */ jsx100(
|
|
25929
26046
|
MingoHistoryRail,
|
|
25930
26047
|
{
|
|
25931
26048
|
dialogs,
|
|
@@ -25949,11 +26066,11 @@ function EmbeddableChatInner({
|
|
|
25949
26066
|
onRetry: reloadDialogs
|
|
25950
26067
|
}
|
|
25951
26068
|
) }),
|
|
25952
|
-
/* @__PURE__ */
|
|
26069
|
+
/* @__PURE__ */ jsx100("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: stackedListView ? (
|
|
25953
26070
|
// Narrow "Current Chats" list (Figma 341:36190) — the default
|
|
25954
26071
|
// single-column view. No composer here; "Start New Chat" opens
|
|
25955
26072
|
// the compose view.
|
|
25956
|
-
/* @__PURE__ */
|
|
26073
|
+
/* @__PURE__ */ jsx100(
|
|
25957
26074
|
MingoHistoryRail,
|
|
25958
26075
|
{
|
|
25959
26076
|
className: "duration-200 animate-in fade-in-0",
|
|
@@ -25978,12 +26095,12 @@ function EmbeddableChatInner({
|
|
|
25978
26095
|
onRetry: reloadDialogs
|
|
25979
26096
|
}
|
|
25980
26097
|
)
|
|
25981
|
-
) : /* @__PURE__ */
|
|
25982
|
-
/* @__PURE__ */
|
|
26098
|
+
) : /* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
26099
|
+
/* @__PURE__ */ jsx100("div", { ref: galleryPanelRef, className: "flex min-h-0 flex-1 flex-col p-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx100(
|
|
25983
26100
|
"div",
|
|
25984
26101
|
{
|
|
25985
26102
|
className: "flex min-h-0 flex-1 flex-col duration-200 animate-in fade-in-0",
|
|
25986
|
-
children: hasConversation ? /* @__PURE__ */
|
|
26103
|
+
children: hasConversation ? /* @__PURE__ */ jsx100("div", { className: "flex min-h-0 flex-1 flex-col", children: messagesInitialLoading ? (
|
|
25987
26104
|
// Match the real list's `fullWidth` layout so swapping
|
|
25988
26105
|
// skeleton → bubbles doesn't shift the column. The panel
|
|
25989
26106
|
// wrapper above already pads (`p-[var(--spacing-system-m)]`),
|
|
@@ -25994,8 +26111,8 @@ function EmbeddableChatInner({
|
|
|
25994
26111
|
// skeleton overflows a short panel and grows its OWN
|
|
25995
26112
|
// scrollbar — ugly. `fill` top-anchors + clips overflow so
|
|
25996
26113
|
// it reads as "the whole panel is loading" and never scrolls.
|
|
25997
|
-
/* @__PURE__ */
|
|
25998
|
-
) : /* @__PURE__ */
|
|
26114
|
+
/* @__PURE__ */ jsx100(ChatMessageListSkeleton, { fullWidth: true, fill: previewMode, className: "flex-1" })
|
|
26115
|
+
) : /* @__PURE__ */ jsx100(
|
|
25999
26116
|
ChatMessageList,
|
|
26000
26117
|
{
|
|
26001
26118
|
messages,
|
|
@@ -26025,7 +26142,7 @@ function EmbeddableChatInner({
|
|
|
26025
26142
|
centred greeting + capability grid + Guide-chat promo +
|
|
26026
26143
|
quick-action chips. Guide mode keeps the slash-command
|
|
26027
26144
|
onboarding list below. */
|
|
26028
|
-
/* @__PURE__ */
|
|
26145
|
+
/* @__PURE__ */ jsx100(
|
|
26029
26146
|
MingoWelcome,
|
|
26030
26147
|
{
|
|
26031
26148
|
onStartGuideChat: effectiveModes.guide ? () => handleActiveModeChange("guide") : void 0,
|
|
@@ -26040,7 +26157,7 @@ function EmbeddableChatInner({
|
|
|
26040
26157
|
/* Figma node 7532:328214 — Guide-mode empty state: greeting
|
|
26041
26158
|
+ slash-command onboarding list share one scroll region,
|
|
26042
26159
|
with a pinned quick-action chip row above the composer. */
|
|
26043
|
-
/* @__PURE__ */
|
|
26160
|
+
/* @__PURE__ */ jsx100(
|
|
26044
26161
|
GuideWelcome,
|
|
26045
26162
|
{
|
|
26046
26163
|
subtitle: effectiveGreeting ?? void 0,
|
|
@@ -26056,8 +26173,8 @@ function EmbeddableChatInner({
|
|
|
26056
26173
|
onQuickActionHover: (action) => setQuickActionPreview(action.prompt ?? action.label),
|
|
26057
26174
|
onQuickActionHoverEnd: () => setQuickActionPreview(null),
|
|
26058
26175
|
agentSlug: activeAgentSlug,
|
|
26059
|
-
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */
|
|
26060
|
-
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */
|
|
26176
|
+
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ jsxs77("div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
|
|
26177
|
+
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ jsx100(
|
|
26061
26178
|
MingoOnboardingCardSkeleton,
|
|
26062
26179
|
{
|
|
26063
26180
|
titleWidth: variant.titleWidth,
|
|
@@ -26075,10 +26192,10 @@ function EmbeddableChatInner({
|
|
|
26075
26192
|
label: action.label,
|
|
26076
26193
|
onClick: () => dispatchSlashCommandAction(action.id, cmdId, chatInputRef)
|
|
26077
26194
|
}));
|
|
26078
|
-
return /* @__PURE__ */
|
|
26195
|
+
return /* @__PURE__ */ jsx100(
|
|
26079
26196
|
MingoOnboardingCard,
|
|
26080
26197
|
{
|
|
26081
|
-
icon: /* @__PURE__ */
|
|
26198
|
+
icon: /* @__PURE__ */ jsx100(Icon, { size: 16 }),
|
|
26082
26199
|
title: label,
|
|
26083
26200
|
slashCommand: `/${cmdId}`,
|
|
26084
26201
|
description: cmd.description,
|
|
@@ -26094,7 +26211,7 @@ function EmbeddableChatInner({
|
|
|
26094
26211
|
},
|
|
26095
26212
|
contentViewKey
|
|
26096
26213
|
) }),
|
|
26097
|
-
/* @__PURE__ */
|
|
26214
|
+
/* @__PURE__ */ jsx100(
|
|
26098
26215
|
ChatAttachmentChipStrip,
|
|
26099
26216
|
{
|
|
26100
26217
|
attachments: stagedAttachments,
|
|
@@ -26102,7 +26219,7 @@ function EmbeddableChatInner({
|
|
|
26102
26219
|
disabled: chatLoading
|
|
26103
26220
|
}
|
|
26104
26221
|
),
|
|
26105
|
-
/* @__PURE__ */
|
|
26222
|
+
/* @__PURE__ */ jsx100(
|
|
26106
26223
|
ChatComposer,
|
|
26107
26224
|
{
|
|
26108
26225
|
archived: isViewingArchived,
|
|
@@ -26149,7 +26266,7 @@ function EmbeddableChatInner({
|
|
|
26149
26266
|
}
|
|
26150
26267
|
),
|
|
26151
26268
|
galleryModal,
|
|
26152
|
-
/* @__PURE__ */
|
|
26269
|
+
/* @__PURE__ */ jsx100(
|
|
26153
26270
|
ChatDialogModals,
|
|
26154
26271
|
{
|
|
26155
26272
|
renameTarget,
|
|
@@ -26163,15 +26280,15 @@ function EmbeddableChatInner({
|
|
|
26163
26280
|
onConfirmRestore: handleConfirmRestore
|
|
26164
26281
|
}
|
|
26165
26282
|
),
|
|
26166
|
-
/* @__PURE__ */
|
|
26283
|
+
/* @__PURE__ */ jsx100("div", { ref: setPortalHost, style: { display: "contents" } })
|
|
26167
26284
|
] }) });
|
|
26168
|
-
const panel = shellLess ? /* @__PURE__ */
|
|
26169
|
-
/* @__PURE__ */
|
|
26285
|
+
const panel = shellLess ? /* @__PURE__ */ jsxs77(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
|
|
26286
|
+
/* @__PURE__ */ jsx100(VisuallyHidden, { children: /* @__PURE__ */ jsxs77(DialogPrimitive2.Title, { children: [
|
|
26170
26287
|
sourceLabel,
|
|
26171
26288
|
" AI Assistant"
|
|
26172
26289
|
] }) }),
|
|
26173
26290
|
body
|
|
26174
|
-
] }) : /* @__PURE__ */
|
|
26291
|
+
] }) : /* @__PURE__ */ jsx100(Drawer, { open: isOpen, onOpenChange: (o) => !o && handleClose(), children: /* @__PURE__ */ jsx100(ChatPanelContext.Provider, { value: chatPanelHandle, children: /* @__PURE__ */ jsxs77(
|
|
26175
26292
|
DrawerContent,
|
|
26176
26293
|
{
|
|
26177
26294
|
side: "right",
|
|
@@ -26186,7 +26303,7 @@ function EmbeddableChatInner({
|
|
|
26186
26303
|
"aria-describedby": void 0,
|
|
26187
26304
|
className: "mingo-chat-content w-screen !bg-ods-bg shadow-2xl focus:outline-none focus-visible:outline-none md:w-auto",
|
|
26188
26305
|
children: [
|
|
26189
|
-
/* @__PURE__ */
|
|
26306
|
+
/* @__PURE__ */ jsx100(VisuallyHidden, { children: /* @__PURE__ */ jsxs77(DialogPrimitive2.Title, { children: [
|
|
26190
26307
|
sourceLabel,
|
|
26191
26308
|
" AI Assistant"
|
|
26192
26309
|
] }) }),
|
|
@@ -26194,17 +26311,17 @@ function EmbeddableChatInner({
|
|
|
26194
26311
|
]
|
|
26195
26312
|
}
|
|
26196
26313
|
) }) });
|
|
26197
|
-
return /* @__PURE__ */
|
|
26198
|
-
showInternalTrigger && !shellLess && /* @__PURE__ */
|
|
26314
|
+
return /* @__PURE__ */ jsxs77(Fragment35, { children: [
|
|
26315
|
+
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx100(
|
|
26199
26316
|
"div",
|
|
26200
26317
|
{
|
|
26201
26318
|
"aria-hidden": isOpen,
|
|
26202
26319
|
className: `pointer-events-none sticky bottom-0 z-[9990] h-0 ${isOpen ? "opacity-0" : "opacity-100"}`,
|
|
26203
|
-
children: /* @__PURE__ */
|
|
26320
|
+
children: /* @__PURE__ */ jsx100("div", { className: "absolute bottom-4 right-4 md:bottom-6 md:right-6", children: /* @__PURE__ */ jsx100(
|
|
26204
26321
|
Button,
|
|
26205
26322
|
{
|
|
26206
26323
|
onClick: handleOpen,
|
|
26207
|
-
leftIcon: /* @__PURE__ */
|
|
26324
|
+
leftIcon: /* @__PURE__ */ jsx100(MingoIcon, { className: "h-5 w-5", color: "currentColor" }),
|
|
26208
26325
|
tabIndex: isOpen ? -1 : 0,
|
|
26209
26326
|
className: `pointer-events-auto !w-auto shadow-lg ${isOpen ? "!pointer-events-none" : ""}`,
|
|
26210
26327
|
children: "Ask AI"
|
|
@@ -26484,6 +26601,12 @@ export {
|
|
|
26484
26601
|
VideoBiteCard,
|
|
26485
26602
|
EntityVideoSection,
|
|
26486
26603
|
ChatVideoEntityCard,
|
|
26604
|
+
designDocSignOffStatus,
|
|
26605
|
+
designDocSignOffLabel,
|
|
26606
|
+
designDocPeople,
|
|
26607
|
+
designDocMetaLine,
|
|
26608
|
+
DesignDocCardSkeleton,
|
|
26609
|
+
DesignDocCard,
|
|
26487
26610
|
GitHubActivityCard,
|
|
26488
26611
|
GitHubActivityCardSkeleton,
|
|
26489
26612
|
SlackMessageCard,
|
|
@@ -26609,4 +26732,4 @@ export {
|
|
|
26609
26732
|
buildStreamFrames,
|
|
26610
26733
|
EmbeddableChat
|
|
26611
26734
|
};
|
|
26612
|
-
//# sourceMappingURL=chunk-
|
|
26735
|
+
//# sourceMappingURL=chunk-PEBQEALM.js.map
|