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