@flamingo-stack/openframe-frontend-core 0.0.511 → 0.0.512-1640.4209.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-IXCBVJRU.cjs → chunk-4GAVZKHG.cjs} +9 -9
- package/dist/{chunk-IXCBVJRU.cjs.map → chunk-4GAVZKHG.cjs.map} +1 -1
- package/dist/{chunk-RXFBW2EJ.cjs → chunk-534P3NJ3.cjs} +7 -7
- package/dist/{chunk-RXFBW2EJ.cjs.map → chunk-534P3NJ3.cjs.map} +1 -1
- package/dist/{chunk-X7AJ3J42.js → chunk-6ETOEANJ.js} +362 -215
- package/dist/chunk-6ETOEANJ.js.map +1 -0
- package/dist/{chunk-TNZOUHHN.js → chunk-6QPWXKUM.js} +4 -4
- package/dist/{chunk-ZSIEM7CL.js → chunk-76ZIKD4J.js} +2 -2
- package/dist/{chunk-NNWSGOUP.js → chunk-A7MD5U35.js} +2 -2
- package/dist/{chunk-LEWQRAZ4.cjs → chunk-CY7M2OSZ.cjs} +31 -31
- package/dist/{chunk-LEWQRAZ4.cjs.map → chunk-CY7M2OSZ.cjs.map} +1 -1
- package/dist/{chunk-OMN7A6RP.cjs → chunk-EEGK4TEH.cjs} +26 -26
- package/dist/{chunk-OMN7A6RP.cjs.map → chunk-EEGK4TEH.cjs.map} +1 -1
- package/dist/{chunk-IUZMWMVX.cjs → chunk-EJIOXYJ2.cjs} +61 -61
- package/dist/{chunk-IUZMWMVX.cjs.map → chunk-EJIOXYJ2.cjs.map} +1 -1
- package/dist/{chunk-PRMR6WKC.js → chunk-EQRNQWXA.js} +2 -2
- package/dist/{chunk-RU3SCECX.js → chunk-FBW47BZ7.js} +2 -2
- package/dist/{chunk-PXQQFRUD.cjs → chunk-FOTOJSBJ.cjs} +5 -5
- package/dist/{chunk-PXQQFRUD.cjs.map → chunk-FOTOJSBJ.cjs.map} +1 -1
- package/dist/{chunk-C4EUXZSA.cjs → chunk-GCPMAP2K.cjs} +3 -3
- package/dist/{chunk-C4EUXZSA.cjs.map → chunk-GCPMAP2K.cjs.map} +1 -1
- package/dist/{chunk-YGS7BLSN.js → chunk-HJSWBSMO.js} +2 -2
- package/dist/{chunk-LVAJK2U2.js → chunk-JIRDHSAM.js} +2 -2
- package/dist/{chunk-7YV67K3I.cjs → chunk-LJXROUP3.cjs} +87 -87
- package/dist/{chunk-7YV67K3I.cjs.map → chunk-LJXROUP3.cjs.map} +1 -1
- package/dist/{chunk-TYVHM67X.js → chunk-LTABGSW6.js} +5 -5
- package/dist/{chunk-NKA3O4L6.js → chunk-MO647IKL.js} +2 -2
- package/dist/{chunk-ZBQV7WH7.js → chunk-MPAISYAF.js} +2 -2
- package/dist/{chunk-U4WPFX5K.cjs → chunk-ONAGMSOD.cjs} +26 -26
- package/dist/{chunk-U4WPFX5K.cjs.map → chunk-ONAGMSOD.cjs.map} +1 -1
- package/dist/{chunk-TR7AMHGB.js → chunk-PE4CBJUE.js} +6 -6
- package/dist/{chunk-A5YZUV6B.cjs → chunk-PSYNV2VB.cjs} +11 -11
- package/dist/{chunk-A5YZUV6B.cjs.map → chunk-PSYNV2VB.cjs.map} +1 -1
- package/dist/{chunk-J4VB4EHW.js → chunk-U5F5PAWV.js} +4 -4
- package/dist/{chunk-GHXTF35X.cjs → chunk-VFFEZ66K.cjs} +353 -206
- package/dist/chunk-VFFEZ66K.cjs.map +1 -0
- package/dist/{chunk-JXMNLH7F.js → chunk-VQQBYAKR.js} +2 -2
- package/dist/{chunk-DPLXHG7H.cjs → chunk-XEBFFFDB.cjs} +37 -37
- package/dist/{chunk-DPLXHG7H.cjs.map → chunk-XEBFFFDB.cjs.map} +1 -1
- package/dist/{chunk-2CE725NN.cjs → chunk-Y3VWQEFO.cjs} +13 -13
- package/dist/{chunk-2CE725NN.cjs.map → chunk-Y3VWQEFO.cjs.map} +1 -1
- package/dist/{chunk-4SG55XVA.cjs → chunk-ZMC4WIBZ.cjs} +4 -4
- package/dist/{chunk-4SG55XVA.cjs.map → chunk-ZMC4WIBZ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/entity-cards/deleted-data-card.d.ts +27 -0
- package/dist/components/chat/entity-cards/deleted-data-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +132 -132
- package/dist/components/index.js +11 -11
- package/dist/components/meeting-scheduler/index.cjs +34 -34
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/deleted-data-card.tsx +61 -0
- package/src/components/chat/entity-cards/dispatch.tsx +17 -0
- package/src/components/chat/hooks/use-chat.ts +174 -15
- package/dist/chunk-GHXTF35X.cjs.map +0 -1
- package/dist/chunk-X7AJ3J42.js.map +0 -1
- /package/dist/{chunk-TNZOUHHN.js.map → chunk-6QPWXKUM.js.map} +0 -0
- /package/dist/{chunk-ZSIEM7CL.js.map → chunk-76ZIKD4J.js.map} +0 -0
- /package/dist/{chunk-NNWSGOUP.js.map → chunk-A7MD5U35.js.map} +0 -0
- /package/dist/{chunk-PRMR6WKC.js.map → chunk-EQRNQWXA.js.map} +0 -0
- /package/dist/{chunk-RU3SCECX.js.map → chunk-FBW47BZ7.js.map} +0 -0
- /package/dist/{chunk-YGS7BLSN.js.map → chunk-HJSWBSMO.js.map} +0 -0
- /package/dist/{chunk-LVAJK2U2.js.map → chunk-JIRDHSAM.js.map} +0 -0
- /package/dist/{chunk-TYVHM67X.js.map → chunk-LTABGSW6.js.map} +0 -0
- /package/dist/{chunk-NKA3O4L6.js.map → chunk-MO647IKL.js.map} +0 -0
- /package/dist/{chunk-ZBQV7WH7.js.map → chunk-MPAISYAF.js.map} +0 -0
- /package/dist/{chunk-TR7AMHGB.js.map → chunk-PE4CBJUE.js.map} +0 -0
- /package/dist/{chunk-J4VB4EHW.js.map → chunk-U5F5PAWV.js.map} +0 -0
- /package/dist/{chunk-JXMNLH7F.js.map → chunk-VQQBYAKR.js.map} +0 -0
|
@@ -50899,18 +50899,36 @@ function resolveFetchedCardHref({
|
|
|
50899
50899
|
});
|
|
50900
50900
|
}
|
|
50901
50901
|
|
|
50902
|
+
// src/components/chat/entity-cards/deleted-data-card.tsx
|
|
50903
|
+
import { Trash2 as Trash27 } from "lucide-react";
|
|
50904
|
+
import { jsx as jsx375, jsxs as jsxs300 } from "react/jsx-runtime";
|
|
50905
|
+
function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
50906
|
+
const label = entityLabel || "Item";
|
|
50907
|
+
return /* @__PURE__ */ jsxs300("div", { className: `${COMPACT_CARD_OUTER_STATIC} opacity-70 ${className ?? ""}`, children: [
|
|
50908
|
+
/* @__PURE__ */ jsx375("div", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx375(Trash27, { className: "h-4 w-4 text-ods-text-secondary" }) }),
|
|
50909
|
+
/* @__PURE__ */ jsxs300("div", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
50910
|
+
/* @__PURE__ */ jsx375("div", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx375("span", { className: `${COMPACT_CARD_TITLE} line-through text-ods-text-secondary`, children: title || `Deleted ${label.toLowerCase()}` }) }),
|
|
50911
|
+
/* @__PURE__ */ jsx375("div", { className: COMPACT_CARD_META_ROW, children: /* @__PURE__ */ jsxs300("span", { className: "text-ods-text-secondary", children: [
|
|
50912
|
+
label,
|
|
50913
|
+
" deleted",
|
|
50914
|
+
recoveryNote ? ` \xB7 ${recoveryNote}` : ""
|
|
50915
|
+
] }) })
|
|
50916
|
+
] })
|
|
50917
|
+
] });
|
|
50918
|
+
}
|
|
50919
|
+
|
|
50902
50920
|
// src/components/chat/mingo-info-card.tsx
|
|
50903
50921
|
init_cn();
|
|
50904
|
-
import { Fragment as Fragment86, jsx as
|
|
50922
|
+
import { Fragment as Fragment86, jsx as jsx376, jsxs as jsxs301 } from "react/jsx-runtime";
|
|
50905
50923
|
function CardMedia({
|
|
50906
50924
|
imageSrc,
|
|
50907
50925
|
imageAlt,
|
|
50908
50926
|
icon
|
|
50909
50927
|
}) {
|
|
50910
50928
|
if (imageSrc) {
|
|
50911
|
-
return /* @__PURE__ */
|
|
50912
|
-
/* @__PURE__ */
|
|
50913
|
-
/* @__PURE__ */
|
|
50929
|
+
return /* @__PURE__ */ jsxs301("span", { className: "relative block size-10 shrink-0", children: [
|
|
50930
|
+
/* @__PURE__ */ jsx376("span", { className: "absolute inset-0 flex items-center justify-center rounded-sm border border-ods-border bg-ods-bg text-h6 text-ods-text-primary", children: getFirstLastInitials(imageAlt) || "?" }),
|
|
50931
|
+
/* @__PURE__ */ jsx376(
|
|
50914
50932
|
"img",
|
|
50915
50933
|
{
|
|
50916
50934
|
src: imageSrc,
|
|
@@ -50924,7 +50942,7 @@ function CardMedia({
|
|
|
50924
50942
|
] });
|
|
50925
50943
|
}
|
|
50926
50944
|
if (icon) {
|
|
50927
|
-
return /* @__PURE__ */
|
|
50945
|
+
return /* @__PURE__ */ jsx376("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__ */ jsx376("span", { className: "flex size-6 items-center justify-center", children: icon }) });
|
|
50928
50946
|
}
|
|
50929
50947
|
return null;
|
|
50930
50948
|
}
|
|
@@ -50945,16 +50963,16 @@ function MingoInfoCard({
|
|
|
50945
50963
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
50946
50964
|
const isAnchor = !!anchorProps;
|
|
50947
50965
|
const isInteractive = isAnchor || !!onClick;
|
|
50948
|
-
const content = /* @__PURE__ */
|
|
50949
|
-
hasMedia && /* @__PURE__ */
|
|
50950
|
-
/* @__PURE__ */
|
|
50951
|
-
/* @__PURE__ */
|
|
50952
|
-
description ? /* @__PURE__ */
|
|
50966
|
+
const content = /* @__PURE__ */ jsxs301(Fragment86, { children: [
|
|
50967
|
+
hasMedia && /* @__PURE__ */ jsx376(CardMedia, { imageSrc, imageAlt, icon }),
|
|
50968
|
+
/* @__PURE__ */ jsxs301("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
50969
|
+
/* @__PURE__ */ jsx376("span", { className: "truncate text-h4 text-ods-text-primary", children: title }),
|
|
50970
|
+
description ? /* @__PURE__ */ jsx376("span", { className: "truncate text-h6 text-ods-text-secondary", children: description }) : null
|
|
50953
50971
|
] }),
|
|
50954
50972
|
status ? (
|
|
50955
50973
|
// Reuse the shared Tag palette (single source of truth for colours)
|
|
50956
50974
|
// without rendering Tag's `<div>` — span-only for `<p>` validity.
|
|
50957
|
-
/* @__PURE__ */
|
|
50975
|
+
/* @__PURE__ */ jsx376("span", { className: cn(tagVariants({ variant: status.variant ?? "success" }), "shrink-0"), children: /* @__PURE__ */ jsx376("span", { className: "truncate uppercase tracking-[-0.28px]", children: status.label }) })
|
|
50958
50976
|
) : null
|
|
50959
50977
|
] });
|
|
50960
50978
|
const contentClass = cn(
|
|
@@ -50962,7 +50980,7 @@ function MingoInfoCard({
|
|
|
50962
50980
|
hasMenu && "border-r border-ods-border",
|
|
50963
50981
|
isInteractive && "transition-colors hover:bg-ods-bg-hover active:bg-ods-bg-active focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent cursor-pointer"
|
|
50964
50982
|
);
|
|
50965
|
-
return /* @__PURE__ */
|
|
50983
|
+
return /* @__PURE__ */ jsxs301(
|
|
50966
50984
|
"span",
|
|
50967
50985
|
{
|
|
50968
50986
|
className: cn(
|
|
@@ -50970,20 +50988,20 @@ function MingoInfoCard({
|
|
|
50970
50988
|
className
|
|
50971
50989
|
),
|
|
50972
50990
|
children: [
|
|
50973
|
-
isAnchor ? /* @__PURE__ */
|
|
50974
|
-
hasMenu && /* @__PURE__ */
|
|
50991
|
+
isAnchor ? /* @__PURE__ */ jsx376("a", { ...anchorProps, className: cn(contentClass, "no-underline"), children: content }) : onClick ? /* @__PURE__ */ jsx376("button", { type: "button", onClick, className: contentClass, children: content }) : /* @__PURE__ */ jsx376("span", { className: contentClass, children: content }),
|
|
50992
|
+
hasMenu && /* @__PURE__ */ jsx376(
|
|
50975
50993
|
ActionsMenuDropdown,
|
|
50976
50994
|
{
|
|
50977
50995
|
groups: menuGroups,
|
|
50978
50996
|
triggerAriaLabel: menuAriaLabel,
|
|
50979
50997
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
50980
|
-
customTrigger: /* @__PURE__ */
|
|
50998
|
+
customTrigger: /* @__PURE__ */ jsx376(
|
|
50981
50999
|
"button",
|
|
50982
51000
|
{
|
|
50983
51001
|
type: "button",
|
|
50984
51002
|
"aria-label": menuAriaLabel,
|
|
50985
51003
|
className: "flex w-[56px] md:w-[68px] shrink-0 items-center justify-center self-stretch text-ods-text-secondary transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary active:bg-ods-bg-active active:text-ods-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
|
|
50986
|
-
children: /* @__PURE__ */
|
|
51004
|
+
children: /* @__PURE__ */ jsx376(Ellipsis01Icon, { size: 24 })
|
|
50987
51005
|
}
|
|
50988
51006
|
)
|
|
50989
51007
|
}
|
|
@@ -50994,16 +51012,16 @@ function MingoInfoCard({
|
|
|
50994
51012
|
}
|
|
50995
51013
|
|
|
50996
51014
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
50997
|
-
import { Fragment as Fragment87, jsx as
|
|
51015
|
+
import { Fragment as Fragment87, jsx as jsx377, jsxs as jsxs302 } from "react/jsx-runtime";
|
|
50998
51016
|
function githubKindIcon(kind) {
|
|
50999
51017
|
switch (kind) {
|
|
51000
51018
|
case "pull_request":
|
|
51001
|
-
return /* @__PURE__ */
|
|
51019
|
+
return /* @__PURE__ */ jsx377(CodingPullRequestIcon, { size: 24 });
|
|
51002
51020
|
case "pr_review":
|
|
51003
|
-
return /* @__PURE__ */
|
|
51021
|
+
return /* @__PURE__ */ jsx377(CodeIcon, { size: 24 });
|
|
51004
51022
|
case "commit":
|
|
51005
51023
|
default:
|
|
51006
|
-
return /* @__PURE__ */
|
|
51024
|
+
return /* @__PURE__ */ jsx377(CodingCommitIcon, { size: 24 });
|
|
51007
51025
|
}
|
|
51008
51026
|
}
|
|
51009
51027
|
function reviewStateToVariant(state) {
|
|
@@ -51032,7 +51050,7 @@ function GitHubChatCard({
|
|
|
51032
51050
|
const idLabel = formatActivityId(chatRef.id, kind);
|
|
51033
51051
|
const dateText = formatDateUTC(chatRef.date ?? null, { fallback: "", timezone: "local" });
|
|
51034
51052
|
const description = [idLabel, dateText].filter(Boolean).join(" \xB7 ") || void 0;
|
|
51035
|
-
return /* @__PURE__ */
|
|
51053
|
+
return /* @__PURE__ */ jsx377(
|
|
51036
51054
|
MingoInfoCard,
|
|
51037
51055
|
{
|
|
51038
51056
|
title,
|
|
@@ -51059,12 +51077,12 @@ function cardMenuGroups(href, discuss, openDetails) {
|
|
|
51059
51077
|
items.push({
|
|
51060
51078
|
id: "open-details",
|
|
51061
51079
|
label: openDetails?.label ?? "Open Details",
|
|
51062
|
-
icon: openDetails?.icon ?? /* @__PURE__ */
|
|
51080
|
+
icon: openDetails?.icon ?? /* @__PURE__ */ jsx377(EyeIcon2, { size: 20 }),
|
|
51063
51081
|
// Main row → open the entity (same tab, soft Link nav).
|
|
51064
51082
|
href,
|
|
51065
51083
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
51066
51084
|
iconAction: {
|
|
51067
|
-
icon: /* @__PURE__ */
|
|
51085
|
+
icon: /* @__PURE__ */ jsx377(ArrowRightUpIcon, { size: 20 }),
|
|
51068
51086
|
"aria-label": "Open in new tab",
|
|
51069
51087
|
href,
|
|
51070
51088
|
openInNewTab: true
|
|
@@ -51092,17 +51110,17 @@ function HubspotTicketChatCard({
|
|
|
51092
51110
|
const status = typeof chatRef.metadata?.status === "string" ? chatRef.metadata.status : void 0;
|
|
51093
51111
|
const statusLabel = typeof chatRef.metadata?.statusLabel === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
51094
51112
|
const statusText = statusLabel ?? formatStatusToken(status);
|
|
51095
|
-
return /* @__PURE__ */
|
|
51113
|
+
return /* @__PURE__ */ jsx377(
|
|
51096
51114
|
MingoInfoCard,
|
|
51097
51115
|
{
|
|
51098
51116
|
title: chatRef.title,
|
|
51099
51117
|
description: chatRef.preview ?? void 0,
|
|
51100
|
-
icon: /* @__PURE__ */
|
|
51118
|
+
icon: /* @__PURE__ */ jsx377(TagIcon, { size: 24 }),
|
|
51101
51119
|
status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
|
|
51102
51120
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
51103
51121
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
51104
51122
|
label: "Open Ticket Details",
|
|
51105
|
-
icon: /* @__PURE__ */
|
|
51123
|
+
icon: /* @__PURE__ */ jsx377(TagIcon, { size: 20 })
|
|
51106
51124
|
}),
|
|
51107
51125
|
menuAriaLabel: "Ticket actions"
|
|
51108
51126
|
}
|
|
@@ -51115,12 +51133,12 @@ function FaqChatCard({
|
|
|
51115
51133
|
}) {
|
|
51116
51134
|
const section = typeof chatRef.metadata?.section === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
51117
51135
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
51118
|
-
return /* @__PURE__ */
|
|
51136
|
+
return /* @__PURE__ */ jsx377(
|
|
51119
51137
|
MingoInfoCard,
|
|
51120
51138
|
{
|
|
51121
51139
|
title: chatRef.title,
|
|
51122
51140
|
description: chatRef.preview ?? void 0,
|
|
51123
|
-
icon: /* @__PURE__ */
|
|
51141
|
+
icon: /* @__PURE__ */ jsx377(QuestionCircleIcon, { size: 24 }),
|
|
51124
51142
|
status: { label: statusLabel, variant: "grey" },
|
|
51125
51143
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
51126
51144
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -51136,12 +51154,12 @@ function SlackChatCard({
|
|
|
51136
51154
|
const channelName = typeof chatRef.metadata?.channelName === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
51137
51155
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
51138
51156
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
51139
|
-
return /* @__PURE__ */
|
|
51157
|
+
return /* @__PURE__ */ jsx377(
|
|
51140
51158
|
MingoInfoCard,
|
|
51141
51159
|
{
|
|
51142
51160
|
title,
|
|
51143
51161
|
description: chatRef.preview ?? void 0,
|
|
51144
|
-
icon: /* @__PURE__ */
|
|
51162
|
+
icon: /* @__PURE__ */ jsx377(SlackLogoGreyIcon, { size: 24 }),
|
|
51145
51163
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
51146
51164
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
51147
51165
|
menuAriaLabel: "Message actions"
|
|
@@ -51154,12 +51172,12 @@ function DataRoomDocChatCard({
|
|
|
51154
51172
|
discuss
|
|
51155
51173
|
}) {
|
|
51156
51174
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
51157
|
-
return /* @__PURE__ */
|
|
51175
|
+
return /* @__PURE__ */ jsx377(
|
|
51158
51176
|
MingoInfoCard,
|
|
51159
51177
|
{
|
|
51160
51178
|
title: chatRef.title,
|
|
51161
51179
|
description: chatRef.preview ?? void 0,
|
|
51162
|
-
icon: /* @__PURE__ */
|
|
51180
|
+
icon: /* @__PURE__ */ jsx377(FileContentIcon, { size: 24 }),
|
|
51163
51181
|
status: { label: badgeText, variant: "grey" },
|
|
51164
51182
|
anchorProps: buildAnchorProps(chatRef.url, isNewTab),
|
|
51165
51183
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
@@ -51174,7 +51192,7 @@ function GenericFinancialChatCard({
|
|
|
51174
51192
|
discuss
|
|
51175
51193
|
}) {
|
|
51176
51194
|
const subtitle = typeof chatRef.metadata?.subtitle === "string" ? chatRef.metadata.subtitle : void 0;
|
|
51177
|
-
return /* @__PURE__ */
|
|
51195
|
+
return /* @__PURE__ */ jsx377(
|
|
51178
51196
|
MingoInfoCard,
|
|
51179
51197
|
{
|
|
51180
51198
|
title: chatRef.title,
|
|
@@ -51188,9 +51206,9 @@ function GenericFinancialChatCard({
|
|
|
51188
51206
|
}
|
|
51189
51207
|
function ChatInlineVideoPill({ chatRef }) {
|
|
51190
51208
|
const title = chatRef.title || "Video";
|
|
51191
|
-
return /* @__PURE__ */
|
|
51192
|
-
/* @__PURE__ */
|
|
51193
|
-
/* @__PURE__ */
|
|
51209
|
+
return /* @__PURE__ */ jsxs302("span", { className: "inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs align-middle bg-ods-card border border-ods-border text-ods-text-primary", children: [
|
|
51210
|
+
/* @__PURE__ */ jsx377("span", { "aria-hidden": "true", className: "text-ods-text-secondary", children: "\u25B6" }),
|
|
51211
|
+
/* @__PURE__ */ jsx377("span", { className: "truncate max-w-[220px]", children: title })
|
|
51194
51212
|
] });
|
|
51195
51213
|
}
|
|
51196
51214
|
function ChatCardWithDiscuss({
|
|
@@ -51206,11 +51224,11 @@ function ChatCardWithDiscuss({
|
|
|
51206
51224
|
});
|
|
51207
51225
|
const idDisplay = chatRef.id && (chatRef.id.length > 24 ? `${chatRef.id.slice(0, 24)}\u2026` : chatRef.id);
|
|
51208
51226
|
const useDisplay = displayAction && !!onDisplay;
|
|
51209
|
-
const cardBody = /* @__PURE__ */
|
|
51210
|
-
return /* @__PURE__ */
|
|
51227
|
+
const cardBody = /* @__PURE__ */ jsx377("span", { className: "block [&>*]:!my-0", children });
|
|
51228
|
+
return /* @__PURE__ */ jsxs302("span", { className: "mt-1.5 mb-2 block w-full", children: [
|
|
51211
51229
|
cardBody,
|
|
51212
|
-
/* @__PURE__ */
|
|
51213
|
-
/* @__PURE__ */
|
|
51230
|
+
/* @__PURE__ */ jsxs302("span", { className: "mt-1 flex items-center justify-between gap-2 pl-0.5", children: [
|
|
51231
|
+
/* @__PURE__ */ jsx377(
|
|
51214
51232
|
SourceActionButton,
|
|
51215
51233
|
{
|
|
51216
51234
|
chatRef,
|
|
@@ -51219,15 +51237,15 @@ function ChatCardWithDiscuss({
|
|
|
51219
51237
|
density: "card"
|
|
51220
51238
|
}
|
|
51221
51239
|
),
|
|
51222
|
-
!onDiscuss && !useDisplay ? /* @__PURE__ */
|
|
51223
|
-
idDisplay ? /* @__PURE__ */
|
|
51240
|
+
!onDiscuss && !useDisplay ? /* @__PURE__ */ jsx377("span", {}) : null,
|
|
51241
|
+
idDisplay ? /* @__PURE__ */ jsxs302(
|
|
51224
51242
|
"span",
|
|
51225
51243
|
{
|
|
51226
51244
|
className: "inline-flex items-center gap-1 text-code shrink-0 text-ods-text-secondary opacity-60 hover:opacity-100 hover:text-ods-text-primary transition-opacity",
|
|
51227
51245
|
title: `${sourceLabel} \xB7 ${chatRef.id}`,
|
|
51228
51246
|
children: [
|
|
51229
|
-
/* @__PURE__ */
|
|
51230
|
-
/* @__PURE__ */
|
|
51247
|
+
/* @__PURE__ */ jsx377(SourceIcon, { className: "h-3 w-3 shrink-0" }),
|
|
51248
|
+
/* @__PURE__ */ jsx377("span", { className: "truncate max-w-[180px]", children: idDisplay })
|
|
51231
51249
|
]
|
|
51232
51250
|
}
|
|
51233
51251
|
) : null
|
|
@@ -51243,13 +51261,13 @@ function ProductReleaseChatCard({
|
|
|
51243
51261
|
}) {
|
|
51244
51262
|
const releaseProps = buildProps(item);
|
|
51245
51263
|
const status = item?.version ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
51246
|
-
return /* @__PURE__ */
|
|
51264
|
+
return /* @__PURE__ */ jsx377(
|
|
51247
51265
|
EntityMingoCard,
|
|
51248
51266
|
{
|
|
51249
51267
|
title: item?.title ?? "",
|
|
51250
51268
|
description: item?.summary || releaseProps.formattedDate || void 0,
|
|
51251
51269
|
cover: releaseProps.coverImage || void 0,
|
|
51252
|
-
fallbackIcon: /* @__PURE__ */
|
|
51270
|
+
fallbackIcon: /* @__PURE__ */ jsx377(Rocket02Icon, { size: 24 }),
|
|
51253
51271
|
status,
|
|
51254
51272
|
chatRef,
|
|
51255
51273
|
isNewTab,
|
|
@@ -51270,12 +51288,12 @@ function CampaignChatCard({
|
|
|
51270
51288
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
51271
51289
|
"Marketing campaign"
|
|
51272
51290
|
].filter(Boolean).join(" \xB7 ");
|
|
51273
|
-
return /* @__PURE__ */
|
|
51291
|
+
return /* @__PURE__ */ jsx377(
|
|
51274
51292
|
EntityMingoCard,
|
|
51275
51293
|
{
|
|
51276
51294
|
title: item?.name ?? "",
|
|
51277
51295
|
description: meta || item?.description || void 0,
|
|
51278
|
-
fallbackIcon: /* @__PURE__ */
|
|
51296
|
+
fallbackIcon: /* @__PURE__ */ jsx377(Megaphone01Icon, { size: 24 }),
|
|
51279
51297
|
chatRef,
|
|
51280
51298
|
isNewTab,
|
|
51281
51299
|
discuss,
|
|
@@ -51294,7 +51312,7 @@ function EntityMingoCard({
|
|
|
51294
51312
|
menuAriaLabel,
|
|
51295
51313
|
discuss
|
|
51296
51314
|
}) {
|
|
51297
|
-
return /* @__PURE__ */
|
|
51315
|
+
return /* @__PURE__ */ jsx377(
|
|
51298
51316
|
MingoInfoCard,
|
|
51299
51317
|
{
|
|
51300
51318
|
title,
|
|
@@ -51329,13 +51347,13 @@ function BlogChatCard({
|
|
|
51329
51347
|
}) {
|
|
51330
51348
|
const category = Array.isArray(item?.categories) ? item.categories.find((c) => c && c.name)?.name : void 0;
|
|
51331
51349
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
51332
|
-
return /* @__PURE__ */
|
|
51350
|
+
return /* @__PURE__ */ jsx377(
|
|
51333
51351
|
EntityMingoCard,
|
|
51334
51352
|
{
|
|
51335
51353
|
title: item?.title ?? "",
|
|
51336
51354
|
description: item?.summary ?? void 0,
|
|
51337
51355
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
51338
|
-
fallbackIcon: /* @__PURE__ */
|
|
51356
|
+
fallbackIcon: /* @__PURE__ */ jsx377(NewspaperIcon, { size: 24 }),
|
|
51339
51357
|
status,
|
|
51340
51358
|
chatRef,
|
|
51341
51359
|
isNewTab,
|
|
@@ -51352,13 +51370,13 @@ function CaseStudyChatCard({
|
|
|
51352
51370
|
discuss
|
|
51353
51371
|
}) {
|
|
51354
51372
|
const meta = [item?.msp?.name, item?.user?.full_name].filter(Boolean).join(" \xB7 ");
|
|
51355
|
-
return /* @__PURE__ */
|
|
51373
|
+
return /* @__PURE__ */ jsx377(
|
|
51356
51374
|
EntityMingoCard,
|
|
51357
51375
|
{
|
|
51358
51376
|
title: item?.title ?? "",
|
|
51359
51377
|
description: item?.summary || meta || void 0,
|
|
51360
51378
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
51361
|
-
fallbackIcon: /* @__PURE__ */
|
|
51379
|
+
fallbackIcon: /* @__PURE__ */ jsx377(TrophyIcon, { size: 24 }),
|
|
51362
51380
|
status: { label: "Case study", variant: "grey" },
|
|
51363
51381
|
chatRef,
|
|
51364
51382
|
isNewTab,
|
|
@@ -51375,13 +51393,13 @@ function CustomerInterviewChatCard({
|
|
|
51375
51393
|
discuss
|
|
51376
51394
|
}) {
|
|
51377
51395
|
const meta = [item?.user?.full_name, item?.msp?.name].filter(Boolean).join(" \xB7 ");
|
|
51378
|
-
return /* @__PURE__ */
|
|
51396
|
+
return /* @__PURE__ */ jsx377(
|
|
51379
51397
|
EntityMingoCard,
|
|
51380
51398
|
{
|
|
51381
51399
|
title: item?.title ?? "",
|
|
51382
51400
|
description: item?.video_summary || meta || void 0,
|
|
51383
51401
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
51384
|
-
fallbackIcon: /* @__PURE__ */
|
|
51402
|
+
fallbackIcon: /* @__PURE__ */ jsx377(MicrophoneIcon, { size: 24 }),
|
|
51385
51403
|
status: { label: "Interview", variant: "grey" },
|
|
51386
51404
|
chatRef,
|
|
51387
51405
|
isNewTab,
|
|
@@ -51398,13 +51416,13 @@ function InvestorUpdateChatCard({
|
|
|
51398
51416
|
discuss
|
|
51399
51417
|
}) {
|
|
51400
51418
|
const title = item?.title || `Update #${item?.update_number ?? "?"}`;
|
|
51401
|
-
return /* @__PURE__ */
|
|
51419
|
+
return /* @__PURE__ */ jsx377(
|
|
51402
51420
|
EntityMingoCard,
|
|
51403
51421
|
{
|
|
51404
51422
|
title,
|
|
51405
51423
|
description: item?.strategic_update || item?.content || formatInvestorUpdatePeriod(item?.period_start, item?.period_end) || void 0,
|
|
51406
51424
|
cover: entityCover(item?.featured_image, ogPlaceholder),
|
|
51407
|
-
fallbackIcon: /* @__PURE__ */
|
|
51425
|
+
fallbackIcon: /* @__PURE__ */ jsx377(PresentationLineIcon, { size: 24 }),
|
|
51408
51426
|
status: { label: "Investor update", variant: "grey" },
|
|
51409
51427
|
chatRef,
|
|
51410
51428
|
isNewTab,
|
|
@@ -51421,13 +51439,13 @@ function OnboardingGuideChatCard({
|
|
|
51421
51439
|
discuss
|
|
51422
51440
|
}) {
|
|
51423
51441
|
const cover = entityCover(item?.featured_image) ?? entityCover(item?.main_video_thumbnail) ?? entityCover(item?.og_image_url, ogPlaceholder);
|
|
51424
|
-
return /* @__PURE__ */
|
|
51442
|
+
return /* @__PURE__ */ jsx377(
|
|
51425
51443
|
EntityMingoCard,
|
|
51426
51444
|
{
|
|
51427
51445
|
title: item?.title ?? "",
|
|
51428
51446
|
description: item?.summary ?? item?.description ?? void 0,
|
|
51429
51447
|
cover,
|
|
51430
|
-
fallbackIcon: /* @__PURE__ */
|
|
51448
|
+
fallbackIcon: /* @__PURE__ */ jsx377(CompassIcon, { size: 24 }),
|
|
51431
51449
|
status: { label: "Guide", variant: "grey" },
|
|
51432
51450
|
chatRef,
|
|
51433
51451
|
isNewTab,
|
|
@@ -51445,7 +51463,7 @@ function ProgramChatCard({
|
|
|
51445
51463
|
ogPlaceholder,
|
|
51446
51464
|
discuss
|
|
51447
51465
|
}) {
|
|
51448
|
-
const icon = configKey === "webinar" ? /* @__PURE__ */
|
|
51466
|
+
const icon = configKey === "webinar" ? /* @__PURE__ */ jsx377(PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ jsx377(CalendarIcon, { size: 24 }) : /* @__PURE__ */ jsx377(MicrophoneIcon, { size: 24 });
|
|
51449
51467
|
const isScheduled = item?.status === "scheduled";
|
|
51450
51468
|
let typeMeta;
|
|
51451
51469
|
if (configKey === "podcast" && typeof item?.duration_seconds === "number" && item.duration_seconds > 0 && !isScheduled) {
|
|
@@ -51459,7 +51477,7 @@ function ProgramChatCard({
|
|
|
51459
51477
|
}
|
|
51460
51478
|
const itemDate = formatDateUTC(item?.date ?? null, { fallback: "", timezone: "local" });
|
|
51461
51479
|
const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
|
|
51462
|
-
return /* @__PURE__ */
|
|
51480
|
+
return /* @__PURE__ */ jsx377(
|
|
51463
51481
|
EntityMingoCard,
|
|
51464
51482
|
{
|
|
51465
51483
|
title: item?.title ?? "",
|
|
@@ -51483,13 +51501,13 @@ function RoadmapChatCard({
|
|
|
51483
51501
|
}) {
|
|
51484
51502
|
const logoUrl = typeof item?.icon === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
51485
51503
|
const useTypeIcon = cardType === "internal_task" || !logoUrl && item?.customItemId != null;
|
|
51486
|
-
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */
|
|
51487
|
-
const icon = useTypeIcon ? /* @__PURE__ */
|
|
51504
|
+
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ jsx377(TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ jsx377(CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ jsx377(MapIcon, { size: 24 });
|
|
51505
|
+
const icon = useTypeIcon ? /* @__PURE__ */ jsx377(TaskTypeIcon, { customItemId: item?.customItemId, className: "size-6" }) : logoUrl ? (
|
|
51488
51506
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
51489
51507
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
51490
|
-
/* @__PURE__ */
|
|
51508
|
+
/* @__PURE__ */ jsx377("img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
|
|
51491
51509
|
) : defaultIcon;
|
|
51492
|
-
return /* @__PURE__ */
|
|
51510
|
+
return /* @__PURE__ */ jsx377(
|
|
51493
51511
|
EntityMingoCard,
|
|
51494
51512
|
{
|
|
51495
51513
|
title: item?.title ?? "",
|
|
@@ -51504,11 +51522,11 @@ function RoadmapChatCard({
|
|
|
51504
51522
|
);
|
|
51505
51523
|
}
|
|
51506
51524
|
var FINANCIAL_CARD_CONFIGS = {
|
|
51507
|
-
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */
|
|
51508
|
-
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */
|
|
51509
|
-
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */
|
|
51510
|
-
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */
|
|
51511
|
-
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */
|
|
51525
|
+
financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */ jsx377(ChartBar01VerIcon, { size: 24 }) },
|
|
51526
|
+
cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */ jsx377(ChartPieIcon, { size: 24 }) },
|
|
51527
|
+
profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */ jsx377(MoneyBillDollarIcon, { size: 24 }) },
|
|
51528
|
+
balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */ jsx377(BankIcon, { size: 24 }) },
|
|
51529
|
+
cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */ jsx377(CoinsExchangeCurrencyIcon, { size: 24 }) }
|
|
51512
51530
|
};
|
|
51513
51531
|
function financialRegistryEntries() {
|
|
51514
51532
|
const out = {};
|
|
@@ -51517,7 +51535,7 @@ function financialRegistryEntries() {
|
|
|
51517
51535
|
mode: "no-fetch",
|
|
51518
51536
|
label: cfg.label,
|
|
51519
51537
|
bareInline: true,
|
|
51520
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51538
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51521
51539
|
GenericFinancialChatCard,
|
|
51522
51540
|
{
|
|
51523
51541
|
chatRef,
|
|
@@ -51545,7 +51563,7 @@ function githubRegistryEntries() {
|
|
|
51545
51563
|
mode: "no-fetch",
|
|
51546
51564
|
label: cfg.label,
|
|
51547
51565
|
bareInline: true,
|
|
51548
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51566
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51549
51567
|
GitHubChatCard,
|
|
51550
51568
|
{
|
|
51551
51569
|
chatRef,
|
|
@@ -51571,8 +51589,8 @@ function programRegistryEntries() {
|
|
|
51571
51589
|
label: cfg.label,
|
|
51572
51590
|
contentRefType: cfg.contentRefType,
|
|
51573
51591
|
bareInline: true,
|
|
51574
|
-
skeleton: () => /* @__PURE__ */
|
|
51575
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51592
|
+
skeleton: () => /* @__PURE__ */ jsx377(ProgramCardSkeleton, { size: "sm" }),
|
|
51593
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51576
51594
|
ProgramChatCard,
|
|
51577
51595
|
{
|
|
51578
51596
|
item,
|
|
@@ -51613,8 +51631,8 @@ function roadmapRegistryEntries() {
|
|
|
51613
51631
|
contentRefType: cfg.contentRefType,
|
|
51614
51632
|
bareInline: true,
|
|
51615
51633
|
...cfg.noComposedHref ? { noComposedHref: true } : {},
|
|
51616
|
-
skeleton: () => /* @__PURE__ */
|
|
51617
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51634
|
+
skeleton: () => /* @__PURE__ */ jsx377(RoadmapCardSkeleton, { size: "sm" }),
|
|
51635
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51618
51636
|
RoadmapChatCard,
|
|
51619
51637
|
{
|
|
51620
51638
|
item,
|
|
@@ -51631,11 +51649,28 @@ function roadmapRegistryEntries() {
|
|
|
51631
51649
|
var CHAT_CARD_REGISTRY = {
|
|
51632
51650
|
// ───────── no-fetch: ChatRef carries everything ─────────
|
|
51633
51651
|
...githubRegistryEntries(),
|
|
51652
|
+
// Generic TOMBSTONE for entities a chat action deleted (ClickUp task
|
|
51653
|
+
// today; any deletable entity tomorrow). No fetch, no navigation —
|
|
51654
|
+
// the entity no longer resolves anywhere; the placeholder keeps the
|
|
51655
|
+
// thread's integrity (Teams/Slack "This message was deleted" pattern).
|
|
51656
|
+
deleted_data: {
|
|
51657
|
+
mode: "no-fetch",
|
|
51658
|
+
label: "Deleted",
|
|
51659
|
+
bareInline: true,
|
|
51660
|
+
render: (chatRef) => /* @__PURE__ */ jsx377(
|
|
51661
|
+
DeletedDataCard,
|
|
51662
|
+
{
|
|
51663
|
+
title: chatRef.title ?? null,
|
|
51664
|
+
entityLabel: chatRef.metadata?.entity_label ?? null,
|
|
51665
|
+
recoveryNote: chatRef.metadata?.recovery_note ?? null
|
|
51666
|
+
}
|
|
51667
|
+
)
|
|
51668
|
+
},
|
|
51634
51669
|
slack_message: {
|
|
51635
51670
|
mode: "no-fetch",
|
|
51636
51671
|
label: "Slack message",
|
|
51637
51672
|
bareInline: true,
|
|
51638
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51673
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51639
51674
|
SlackChatCard,
|
|
51640
51675
|
{
|
|
51641
51676
|
chatRef,
|
|
@@ -51648,14 +51683,14 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51648
51683
|
mode: "no-fetch",
|
|
51649
51684
|
label: "FAQ",
|
|
51650
51685
|
bareInline: true,
|
|
51651
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51686
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(FaqChatCard, { chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
51652
51687
|
},
|
|
51653
51688
|
hubspot_ticket: {
|
|
51654
51689
|
mode: "no-fetch",
|
|
51655
51690
|
label: "HubSpot ticket",
|
|
51656
51691
|
// `MingoInfoCard` is the whole card — no "Ask"/provenance source row.
|
|
51657
51692
|
bareInline: true,
|
|
51658
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51693
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51659
51694
|
HubspotTicketChatCard,
|
|
51660
51695
|
{
|
|
51661
51696
|
chatRef,
|
|
@@ -51668,7 +51703,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51668
51703
|
mode: "no-fetch",
|
|
51669
51704
|
label: "HubSpot ticket (anon)",
|
|
51670
51705
|
bareInline: true,
|
|
51671
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51706
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51672
51707
|
HubspotTicketChatCard,
|
|
51673
51708
|
{
|
|
51674
51709
|
chatRef,
|
|
@@ -51681,7 +51716,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51681
51716
|
mode: "no-fetch",
|
|
51682
51717
|
label: "HubSpot ticket (self)",
|
|
51683
51718
|
bareInline: true,
|
|
51684
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51719
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51685
51720
|
HubspotTicketChatCard,
|
|
51686
51721
|
{
|
|
51687
51722
|
chatRef,
|
|
@@ -51694,7 +51729,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51694
51729
|
mode: "no-fetch",
|
|
51695
51730
|
label: "Data-room doc",
|
|
51696
51731
|
bareInline: true,
|
|
51697
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51732
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51698
51733
|
DataRoomDocChatCard,
|
|
51699
51734
|
{
|
|
51700
51735
|
chatRef,
|
|
@@ -51707,7 +51742,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51707
51742
|
mode: "no-fetch",
|
|
51708
51743
|
label: "Doc page (markdown)",
|
|
51709
51744
|
bareInline: true,
|
|
51710
|
-
render: (chatRef, opts) => /* @__PURE__ */
|
|
51745
|
+
render: (chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51711
51746
|
DataRoomDocChatCard,
|
|
51712
51747
|
{
|
|
51713
51748
|
chatRef,
|
|
@@ -51720,7 +51755,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51720
51755
|
mode: "no-fetch",
|
|
51721
51756
|
label: "Video",
|
|
51722
51757
|
bareInline: true,
|
|
51723
|
-
render: (chatRef) => /* @__PURE__ */
|
|
51758
|
+
render: (chatRef) => /* @__PURE__ */ jsx377(ChatInlineVideoPill, { chatRef })
|
|
51724
51759
|
},
|
|
51725
51760
|
...financialRegistryEntries(),
|
|
51726
51761
|
// ───────── fetch: needs full row from list API ─────────
|
|
@@ -51729,8 +51764,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51729
51764
|
label: "Blog post",
|
|
51730
51765
|
contentRefType: "blog_post_existing",
|
|
51731
51766
|
bareInline: true,
|
|
51732
|
-
skeleton: () => /* @__PURE__ */
|
|
51733
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51767
|
+
skeleton: () => /* @__PURE__ */ jsx377(BlogCardSkeleton, { size: "sm" }),
|
|
51768
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51734
51769
|
BlogChatCard,
|
|
51735
51770
|
{
|
|
51736
51771
|
item,
|
|
@@ -51747,8 +51782,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51747
51782
|
label: "Case study",
|
|
51748
51783
|
contentRefType: "case_study",
|
|
51749
51784
|
bareInline: true,
|
|
51750
|
-
skeleton: () => /* @__PURE__ */
|
|
51751
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51785
|
+
skeleton: () => /* @__PURE__ */ jsx377(CaseStudyCardSkeleton, { size: "sm" }),
|
|
51786
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51752
51787
|
CaseStudyChatCard,
|
|
51753
51788
|
{
|
|
51754
51789
|
item,
|
|
@@ -51764,8 +51799,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51764
51799
|
label: "Customer interview",
|
|
51765
51800
|
contentRefType: "customer_interview",
|
|
51766
51801
|
bareInline: true,
|
|
51767
|
-
skeleton: () => /* @__PURE__ */
|
|
51768
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51802
|
+
skeleton: () => /* @__PURE__ */ jsx377(CustomerInterviewCardSkeleton, { size: "sm" }),
|
|
51803
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51769
51804
|
CustomerInterviewChatCard,
|
|
51770
51805
|
{
|
|
51771
51806
|
item,
|
|
@@ -51781,10 +51816,10 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51781
51816
|
label: "Product release",
|
|
51782
51817
|
contentRefType: "product_release",
|
|
51783
51818
|
bareInline: true,
|
|
51784
|
-
skeleton: () => /* @__PURE__ */
|
|
51819
|
+
skeleton: () => /* @__PURE__ */ jsx377(ProductReleaseCardSkeleton, { size: "sm" }),
|
|
51785
51820
|
render: (item, chatRef, opts) => {
|
|
51786
51821
|
const builder = opts?.extras?.buildProductReleaseCardProps ?? defaultBuildProductReleaseCardProps;
|
|
51787
|
-
return /* @__PURE__ */
|
|
51822
|
+
return /* @__PURE__ */ jsx377(
|
|
51788
51823
|
ProductReleaseChatCard,
|
|
51789
51824
|
{
|
|
51790
51825
|
item,
|
|
@@ -51802,8 +51837,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51802
51837
|
label: "Investor update",
|
|
51803
51838
|
contentRefType: "investor_update",
|
|
51804
51839
|
bareInline: true,
|
|
51805
|
-
skeleton: () => /* @__PURE__ */
|
|
51806
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51840
|
+
skeleton: () => /* @__PURE__ */ jsx377(InvestorUpdateCardSkeleton, { size: "sm" }),
|
|
51841
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51807
51842
|
InvestorUpdateChatCard,
|
|
51808
51843
|
{
|
|
51809
51844
|
item,
|
|
@@ -51821,8 +51856,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51821
51856
|
bareInline: true,
|
|
51822
51857
|
// "Display" affordance (verbatim guide body) instead of "Ask".
|
|
51823
51858
|
displayAction: true,
|
|
51824
|
-
skeleton: () => /* @__PURE__ */
|
|
51825
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51859
|
+
skeleton: () => /* @__PURE__ */ jsx377(OnboardingGuideCardSkeleton, { size: "sm" }),
|
|
51860
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51826
51861
|
OnboardingGuideChatCard,
|
|
51827
51862
|
{
|
|
51828
51863
|
item,
|
|
@@ -51838,11 +51873,11 @@ var CHAT_CARD_REGISTRY = {
|
|
|
51838
51873
|
label: "Marketing campaign",
|
|
51839
51874
|
contentRefType: "marketing_campaign",
|
|
51840
51875
|
bareInline: true,
|
|
51841
|
-
skeleton: () => /* @__PURE__ */
|
|
51876
|
+
skeleton: () => /* @__PURE__ */ jsx377(CampaignCardAdminSkeleton, {}),
|
|
51842
51877
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
51843
51878
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
51844
51879
|
fallbackHref: (item) => item?.id ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
51845
|
-
render: (item, chatRef, opts) => /* @__PURE__ */
|
|
51880
|
+
render: (item, chatRef, opts) => /* @__PURE__ */ jsx377(
|
|
51846
51881
|
CampaignChatCard,
|
|
51847
51882
|
{
|
|
51848
51883
|
item,
|
|
@@ -51876,7 +51911,7 @@ function ChatCardNavWrap({
|
|
|
51876
51911
|
e.stopPropagation();
|
|
51877
51912
|
if (!isNewTab && panel?.closeChat) panel.closeChat();
|
|
51878
51913
|
};
|
|
51879
|
-
return /* @__PURE__ */
|
|
51914
|
+
return /* @__PURE__ */ jsx377("span", { className: "contents", onClickCapture, children });
|
|
51880
51915
|
}
|
|
51881
51916
|
function ChatCardLoader({
|
|
51882
51917
|
chatRef,
|
|
@@ -51935,7 +51970,7 @@ function ChatCardLoader({
|
|
|
51935
51970
|
const discussFn = useDisplay ? onDisplay : onDiscuss;
|
|
51936
51971
|
const discuss = discussFn ? {
|
|
51937
51972
|
label: useDisplay ? "Display" : "Ask Mingo",
|
|
51938
|
-
icon: useDisplay ? /* @__PURE__ */
|
|
51973
|
+
icon: useDisplay ? /* @__PURE__ */ jsx377(FileContentIcon, { size: 20 }) : /* @__PURE__ */ jsx377(
|
|
51939
51974
|
MingoIcon,
|
|
51940
51975
|
{
|
|
51941
51976
|
className: "size-5",
|
|
@@ -51954,7 +51989,7 @@ function ChatCardLoader({
|
|
|
51954
51989
|
discuss
|
|
51955
51990
|
};
|
|
51956
51991
|
const path = typeof finalChatRef.metadata?.path === "string" ? finalChatRef.metadata.path : null;
|
|
51957
|
-
const navWrap = (children) => /* @__PURE__ */
|
|
51992
|
+
const navWrap = (children) => /* @__PURE__ */ jsx377(
|
|
51958
51993
|
ChatCardNavWrap,
|
|
51959
51994
|
{
|
|
51960
51995
|
href: finalChatRef.url ?? null,
|
|
@@ -51969,7 +52004,7 @@ function ChatCardLoader({
|
|
|
51969
52004
|
if (entry.bareInline) {
|
|
51970
52005
|
return navWrap(entry.render(finalChatRef, renderOpts));
|
|
51971
52006
|
}
|
|
51972
|
-
return /* @__PURE__ */
|
|
52007
|
+
return /* @__PURE__ */ jsx377(
|
|
51973
52008
|
ChatCardWithDiscuss,
|
|
51974
52009
|
{
|
|
51975
52010
|
chatRef: finalChatRef,
|
|
@@ -51980,12 +52015,12 @@ function ChatCardLoader({
|
|
|
51980
52015
|
}
|
|
51981
52016
|
);
|
|
51982
52017
|
}
|
|
51983
|
-
if (isLoading) return /* @__PURE__ */
|
|
52018
|
+
if (isLoading) return /* @__PURE__ */ jsx377(Fragment87, { children: entry.skeleton() });
|
|
51984
52019
|
if (!item) return null;
|
|
51985
52020
|
if (entry.bareInline) {
|
|
51986
|
-
return /* @__PURE__ */
|
|
52021
|
+
return /* @__PURE__ */ jsx377(Fragment87, { children: navWrap(entry.render(item, finalChatRef, renderOpts)) });
|
|
51987
52022
|
}
|
|
51988
|
-
return /* @__PURE__ */
|
|
52023
|
+
return /* @__PURE__ */ jsx377(
|
|
51989
52024
|
ChatCardWithDiscuss,
|
|
51990
52025
|
{
|
|
51991
52026
|
chatRef: finalChatRef,
|
|
@@ -52000,7 +52035,7 @@ function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
|
52000
52035
|
const { onDiscuss, onDisplay, baseRoute, chipBasePlatform, extras } = options;
|
|
52001
52036
|
const m = chatRef.metadata ?? {};
|
|
52002
52037
|
const hasVideo = typeof m.videoUrl === "string" && m.videoUrl.length > 0 || typeof m.youtubeUrl === "string" && m.youtubeUrl.length > 0 || typeof m.highlightVideoUrl === "string" && m.highlightVideoUrl.length > 0;
|
|
52003
|
-
const loader = /* @__PURE__ */
|
|
52038
|
+
const loader = /* @__PURE__ */ jsx377(
|
|
52004
52039
|
ChatCardLoader,
|
|
52005
52040
|
{
|
|
52006
52041
|
chatRef,
|
|
@@ -52012,7 +52047,7 @@ function renderChatInlineEntityCard(chatRef, options = {}) {
|
|
|
52012
52047
|
}
|
|
52013
52048
|
);
|
|
52014
52049
|
if (hasVideo) {
|
|
52015
|
-
return /* @__PURE__ */
|
|
52050
|
+
return /* @__PURE__ */ jsx377(BlockCard, { inline: loader, children: /* @__PURE__ */ jsx377(ChatVideoEntityCard, { chatRef }) });
|
|
52016
52051
|
}
|
|
52017
52052
|
return loader;
|
|
52018
52053
|
}
|
|
@@ -53252,7 +53287,7 @@ function useChatAttachments() {
|
|
|
53252
53287
|
|
|
53253
53288
|
// src/components/chat/hooks/use-chat-attachment-image-gallery.tsx
|
|
53254
53289
|
import { useCallback as useCallback50, useEffect as useEffect87, useRef as useRef71, useState as useState118 } from "react";
|
|
53255
|
-
import { jsx as
|
|
53290
|
+
import { jsx as jsx378 } from "react/jsx-runtime";
|
|
53256
53291
|
var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
|
|
53257
53292
|
function useChatAttachmentImageGallery() {
|
|
53258
53293
|
const runtime = useRequiredChatRuntime();
|
|
@@ -53288,7 +53323,7 @@ function useChatAttachmentImageGallery() {
|
|
|
53288
53323
|
root.addEventListener("click", onClick);
|
|
53289
53324
|
return () => root.removeEventListener("click", onClick);
|
|
53290
53325
|
}, [viewUrlPrefix]);
|
|
53291
|
-
const modal = state.isOpen ? /* @__PURE__ */
|
|
53326
|
+
const modal = state.isOpen ? /* @__PURE__ */ jsx378(
|
|
53292
53327
|
ImageGalleryModal,
|
|
53293
53328
|
{
|
|
53294
53329
|
images: state.images,
|
|
@@ -53537,12 +53572,101 @@ function useChat({
|
|
|
53537
53572
|
{ hidden: true }
|
|
53538
53573
|
);
|
|
53539
53574
|
};
|
|
53540
|
-
|
|
53541
|
-
|
|
53542
|
-
|
|
53543
|
-
|
|
53544
|
-
|
|
53545
|
-
|
|
53575
|
+
const toToolCall = (d) => {
|
|
53576
|
+
const fields = Array.isArray(d?.fields) ? d.fields : [];
|
|
53577
|
+
const detailField = fields.find((f) => /^(title|subject|task|name)$/i.test(f.label)) ?? fields[0];
|
|
53578
|
+
const base = typeof d?.command === "string" && d.command ? d.command : "Tool call";
|
|
53579
|
+
return {
|
|
53580
|
+
toolExecutionRequestId: String(d?.requestId ?? ""),
|
|
53581
|
+
toolName: String(d?.approvalType ?? "tool"),
|
|
53582
|
+
toolTitle: detailField ? `${base} \u2014 ${detailField.value}` : base,
|
|
53583
|
+
requiresApproval: true,
|
|
53584
|
+
// Field rows become the expandable args block so the
|
|
53585
|
+
// per-proposal detail from the single-card view stays
|
|
53586
|
+
// reachable inside the batch.
|
|
53587
|
+
toolCallArguments: fields.length > 0 ? Object.fromEntries(fields.map((f) => [f.label, f.value])) : null
|
|
53588
|
+
};
|
|
53589
|
+
};
|
|
53590
|
+
const makeBatchHandlers = (anchorId) => {
|
|
53591
|
+
const findBatch = (segments) => segments.find(
|
|
53592
|
+
(s) => s.type === "approval_batch" && s.data.approvalRequestId === anchorId
|
|
53593
|
+
);
|
|
53594
|
+
const setBatchStatus = (status) => {
|
|
53595
|
+
setMessages((prev) => {
|
|
53596
|
+
for (let i = prev.length - 1; i >= 0; i--) {
|
|
53597
|
+
const m = prev[i];
|
|
53598
|
+
if (m.role !== "assistant" || !Array.isArray(m.content)) continue;
|
|
53599
|
+
const segments = m.content;
|
|
53600
|
+
if (!findBatch(segments)) continue;
|
|
53601
|
+
const next = [...prev];
|
|
53602
|
+
next[i] = {
|
|
53603
|
+
...m,
|
|
53604
|
+
content: segments.map(
|
|
53605
|
+
(s) => s.type === "approval_batch" && s.data.approvalRequestId === anchorId ? { ...s, status } : s
|
|
53606
|
+
)
|
|
53607
|
+
};
|
|
53608
|
+
return next;
|
|
53609
|
+
}
|
|
53610
|
+
return prev;
|
|
53611
|
+
});
|
|
53612
|
+
};
|
|
53613
|
+
const act = (action) => async () => {
|
|
53614
|
+
let ids = [];
|
|
53615
|
+
setMessages((prev) => {
|
|
53616
|
+
for (let i = prev.length - 1; i >= 0; i--) {
|
|
53617
|
+
const m = prev[i];
|
|
53618
|
+
if (m.role !== "assistant" || !Array.isArray(m.content)) continue;
|
|
53619
|
+
const batch = findBatch(m.content);
|
|
53620
|
+
if (batch) {
|
|
53621
|
+
ids = batch.data.toolCalls.map((c) => c.toolExecutionRequestId);
|
|
53622
|
+
break;
|
|
53623
|
+
}
|
|
53624
|
+
}
|
|
53625
|
+
return prev;
|
|
53626
|
+
});
|
|
53627
|
+
setBatchStatus(action === "approve" ? "approved" : "rejected");
|
|
53628
|
+
for (const id of ids) {
|
|
53629
|
+
await sendMessage(
|
|
53630
|
+
"",
|
|
53631
|
+
{ approvalAction: { proposalId: id, action } },
|
|
53632
|
+
{ hidden: true }
|
|
53633
|
+
);
|
|
53634
|
+
}
|
|
53635
|
+
};
|
|
53636
|
+
return { onApprove: act("approve"), onReject: act("reject") };
|
|
53637
|
+
};
|
|
53638
|
+
const liveSegments = [...currentAssistantSegmentsRef.current];
|
|
53639
|
+
const lastSeg = liveSegments[liveSegments.length - 1];
|
|
53640
|
+
if (lastSeg && lastSeg.type === "approval_batch" && (lastSeg.status ?? "pending") === "pending") {
|
|
53641
|
+
liveSegments[liveSegments.length - 1] = {
|
|
53642
|
+
...lastSeg,
|
|
53643
|
+
data: {
|
|
53644
|
+
...lastSeg.data,
|
|
53645
|
+
toolCalls: [...lastSeg.data.toolCalls, toToolCall(seg.data)]
|
|
53646
|
+
}
|
|
53647
|
+
};
|
|
53648
|
+
} else if (lastSeg && lastSeg.type === "approval_request" && (lastSeg.status ?? "pending") === "pending") {
|
|
53649
|
+
const anchorId = String(lastSeg.data?.requestId ?? proposalId);
|
|
53650
|
+
liveSegments[liveSegments.length - 1] = {
|
|
53651
|
+
type: "approval_batch",
|
|
53652
|
+
status: "pending",
|
|
53653
|
+
data: {
|
|
53654
|
+
approvalRequestId: anchorId,
|
|
53655
|
+
approvalType: "chat",
|
|
53656
|
+
toolCalls: [toToolCall(lastSeg.data), toToolCall(seg.data)],
|
|
53657
|
+
executions: {}
|
|
53658
|
+
},
|
|
53659
|
+
...makeBatchHandlers(anchorId)
|
|
53660
|
+
};
|
|
53661
|
+
} else {
|
|
53662
|
+
liveSegments.push({
|
|
53663
|
+
...seg,
|
|
53664
|
+
onApprove: wrappedApprove,
|
|
53665
|
+
onReject: wrappedReject
|
|
53666
|
+
});
|
|
53667
|
+
}
|
|
53668
|
+
currentAssistantSegmentsRef.current = liveSegments;
|
|
53669
|
+
updateLastAssistantMessage([...liveSegments]);
|
|
53546
53670
|
} else if (segment.type === "decision_resolved") {
|
|
53547
53671
|
const decision = segment;
|
|
53548
53672
|
if (!decision.proposalId) continue;
|
|
@@ -53553,12 +53677,35 @@ function useChat({
|
|
|
53553
53677
|
if (!Array.isArray(m.content)) continue;
|
|
53554
53678
|
const segments = m.content;
|
|
53555
53679
|
const hasMatch = segments.some(
|
|
53556
|
-
(s) => s.type === "approval_request" && s.data?.requestId === decision.proposalId
|
|
53680
|
+
(s) => s.type === "approval_request" && s.data?.requestId === decision.proposalId || s.type === "approval_batch" && s.data?.toolCalls?.some(
|
|
53681
|
+
(c) => c?.toolExecutionRequestId === decision.proposalId
|
|
53682
|
+
)
|
|
53557
53683
|
);
|
|
53558
53684
|
if (!hasMatch) continue;
|
|
53559
|
-
const flipped = segments.map(
|
|
53560
|
-
(s
|
|
53561
|
-
|
|
53685
|
+
const flipped = segments.map((s) => {
|
|
53686
|
+
if (s.type === "approval_request" && s.data?.requestId === decision.proposalId) {
|
|
53687
|
+
return { ...s, status: decision.action };
|
|
53688
|
+
}
|
|
53689
|
+
if (s.type === "approval_batch" && s.data?.toolCalls?.some(
|
|
53690
|
+
(c) => c?.toolExecutionRequestId === decision.proposalId
|
|
53691
|
+
)) {
|
|
53692
|
+
const batch = s;
|
|
53693
|
+
return {
|
|
53694
|
+
...batch,
|
|
53695
|
+
data: {
|
|
53696
|
+
...batch.data,
|
|
53697
|
+
executions: {
|
|
53698
|
+
...batch.data.executions ?? {},
|
|
53699
|
+
[decision.proposalId]: {
|
|
53700
|
+
status: "done",
|
|
53701
|
+
success: decision.action === "approved" ? decision.ok : false
|
|
53702
|
+
}
|
|
53703
|
+
}
|
|
53704
|
+
}
|
|
53705
|
+
};
|
|
53706
|
+
}
|
|
53707
|
+
return s;
|
|
53708
|
+
});
|
|
53562
53709
|
const next = [...prev];
|
|
53563
53710
|
next[i] = { ...m, content: flipped };
|
|
53564
53711
|
return next;
|
|
@@ -58014,7 +58161,7 @@ import * as React147 from "react";
|
|
|
58014
58161
|
import * as React146 from "react";
|
|
58015
58162
|
import * as ReactDOM2 from "react-dom";
|
|
58016
58163
|
import { createSlot } from "@radix-ui/react-slot";
|
|
58017
|
-
import { jsx as
|
|
58164
|
+
import { jsx as jsx379 } from "react/jsx-runtime";
|
|
58018
58165
|
var __defProp3 = Object.defineProperty;
|
|
58019
58166
|
var __name3 = (target, value) => __defProp3(target, "name", { value, configurable: true });
|
|
58020
58167
|
var NODES = [
|
|
@@ -58044,7 +58191,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
58044
58191
|
if (typeof window !== "undefined") {
|
|
58045
58192
|
window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
|
|
58046
58193
|
}
|
|
58047
|
-
return /* @__PURE__ */
|
|
58194
|
+
return /* @__PURE__ */ jsx379(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
58048
58195
|
});
|
|
58049
58196
|
Node2.displayName = `Primitive.${node}`;
|
|
58050
58197
|
return { ...primitive, [node]: Node2 };
|
|
@@ -58055,7 +58202,7 @@ function dispatchDiscreteCustomEvent(target, event) {
|
|
|
58055
58202
|
__name3(dispatchDiscreteCustomEvent, "dispatchDiscreteCustomEvent");
|
|
58056
58203
|
|
|
58057
58204
|
// node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
|
|
58058
|
-
import { jsx as
|
|
58205
|
+
import { jsx as jsx380 } from "react/jsx-runtime";
|
|
58059
58206
|
var __defProp4 = Object.defineProperty;
|
|
58060
58207
|
var __name4 = (target, value) => __defProp4(target, "name", { value, configurable: true });
|
|
58061
58208
|
var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
@@ -58073,7 +58220,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
|
58073
58220
|
});
|
|
58074
58221
|
var VisuallyHidden = /* @__PURE__ */ React147.forwardRef(
|
|
58075
58222
|
/* @__PURE__ */ __name4(function VisuallyHidden2(props, forwardedRef) {
|
|
58076
|
-
return /* @__PURE__ */
|
|
58223
|
+
return /* @__PURE__ */ jsx380(
|
|
58077
58224
|
Primitive.span,
|
|
58078
58225
|
{
|
|
58079
58226
|
...props,
|
|
@@ -58263,7 +58410,7 @@ function useChatDialogManager({
|
|
|
58263
58410
|
|
|
58264
58411
|
// src/components/chat/embeddable-chat.tsx
|
|
58265
58412
|
init_next_navigation();
|
|
58266
|
-
import { Fragment as Fragment88, jsx as
|
|
58413
|
+
import { Fragment as Fragment88, jsx as jsx381, jsxs as jsxs303 } from "react/jsx-runtime";
|
|
58267
58414
|
var DRAWER_DEFAULT_WIDTH_RATIO = 0.5;
|
|
58268
58415
|
var DRAWER_WIDTH_KEY = "mingo-chat-width-v3";
|
|
58269
58416
|
var DRAWER_DEFAULT_WIDTH_PX = 750;
|
|
@@ -58311,7 +58458,7 @@ function RailSlot({
|
|
|
58311
58458
|
innerClassName,
|
|
58312
58459
|
children
|
|
58313
58460
|
}) {
|
|
58314
|
-
return /* @__PURE__ */
|
|
58461
|
+
return /* @__PURE__ */ jsx381(
|
|
58315
58462
|
"div",
|
|
58316
58463
|
{
|
|
58317
58464
|
className: cn(
|
|
@@ -58320,7 +58467,7 @@ function RailSlot({
|
|
|
58320
58467
|
"shrink-0 overflow-hidden border-r border-ods-border transition-[width,opacity] ease-out",
|
|
58321
58468
|
active ? "w-80 opacity-100 duration-[240ms]" : "w-0 opacity-0 duration-[300ms]"
|
|
58322
58469
|
),
|
|
58323
|
-
children: /* @__PURE__ */
|
|
58470
|
+
children: /* @__PURE__ */ jsx381("div", { className: cn("h-full w-80", innerClassName), children })
|
|
58324
58471
|
}
|
|
58325
58472
|
);
|
|
58326
58473
|
}
|
|
@@ -58377,7 +58524,7 @@ function SourceChip({
|
|
|
58377
58524
|
sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
|
|
58378
58525
|
);
|
|
58379
58526
|
const Icon2 = cta.icon;
|
|
58380
|
-
const icon = /* @__PURE__ */
|
|
58527
|
+
const icon = /* @__PURE__ */ jsx381(Icon2, { className: "h-3.5 w-3.5" });
|
|
58381
58528
|
const chipClass = chatChipClass({ tone: "secondary" });
|
|
58382
58529
|
const decideTab = (href, targetPlatform) => computeIsNewTab(runtime, href, targetPlatform);
|
|
58383
58530
|
if (src.items && src.items.length > 0) {
|
|
@@ -58397,22 +58544,22 @@ function SourceChip({
|
|
|
58397
58544
|
const ItemIcon = itemCta.icon;
|
|
58398
58545
|
return {
|
|
58399
58546
|
label: item.name,
|
|
58400
|
-
icon: /* @__PURE__ */
|
|
58547
|
+
icon: /* @__PURE__ */ jsx381(ItemIcon, { className: "h-3.5 w-3.5" }),
|
|
58401
58548
|
href: itemCta.href ?? void 0,
|
|
58402
58549
|
targetPlatform: itemCta.targetPlatform,
|
|
58403
58550
|
path: item.path ?? null,
|
|
58404
58551
|
secondaryAction: onDiscuss && itemCta.askable && itemCta.chatRef ? {
|
|
58405
|
-
icon: /* @__PURE__ */
|
|
58552
|
+
icon: /* @__PURE__ */ jsx381(MessageSquare3, {}),
|
|
58406
58553
|
label: `Ask about ${item.name}`,
|
|
58407
58554
|
onClick: () => onDiscuss(itemCta.chatRef)
|
|
58408
58555
|
} : void 0
|
|
58409
58556
|
};
|
|
58410
58557
|
});
|
|
58411
|
-
return /* @__PURE__ */
|
|
58558
|
+
return /* @__PURE__ */ jsx381(
|
|
58412
58559
|
HoverDropdown,
|
|
58413
58560
|
{
|
|
58414
58561
|
items: dropdownItems,
|
|
58415
|
-
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */
|
|
58562
|
+
renderAnchor: ({ href, targetPlatform, path, className, children }) => /* @__PURE__ */ jsx381(
|
|
58416
58563
|
NavLinkAnchorViaRuntime,
|
|
58417
58564
|
{
|
|
58418
58565
|
href,
|
|
@@ -58422,9 +58569,9 @@ function SourceChip({
|
|
|
58422
58569
|
children
|
|
58423
58570
|
}
|
|
58424
58571
|
),
|
|
58425
|
-
children: /* @__PURE__ */
|
|
58572
|
+
children: /* @__PURE__ */ jsxs303("span", { className: `${chipClass} cursor-pointer`, children: [
|
|
58426
58573
|
icon,
|
|
58427
|
-
/* @__PURE__ */
|
|
58574
|
+
/* @__PURE__ */ jsxs303("span", { className: "truncate max-w-[160px]", children: [
|
|
58428
58575
|
"[",
|
|
58429
58576
|
src.index,
|
|
58430
58577
|
"] ",
|
|
@@ -58435,18 +58582,18 @@ function SourceChip({
|
|
|
58435
58582
|
);
|
|
58436
58583
|
}
|
|
58437
58584
|
const displayName = src.name || formatRelativePath(src.path);
|
|
58438
|
-
const chipBody = (label) => /* @__PURE__ */
|
|
58585
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
58439
58586
|
icon,
|
|
58440
|
-
/* @__PURE__ */
|
|
58587
|
+
/* @__PURE__ */ jsxs303("span", { className: "truncate max-w-[160px]", children: [
|
|
58441
58588
|
"[",
|
|
58442
58589
|
src.index,
|
|
58443
58590
|
"] ",
|
|
58444
58591
|
label
|
|
58445
58592
|
] })
|
|
58446
58593
|
] });
|
|
58447
|
-
const wrapChip = (clickable) => /* @__PURE__ */
|
|
58594
|
+
const wrapChip = (clickable) => /* @__PURE__ */ jsxs303("span", { className: "inline-flex items-center", children: [
|
|
58448
58595
|
clickable,
|
|
58449
|
-
/* @__PURE__ */
|
|
58596
|
+
/* @__PURE__ */ jsx381(
|
|
58450
58597
|
SourceActionButton,
|
|
58451
58598
|
{
|
|
58452
58599
|
chatRef: cta.chatRef,
|
|
@@ -58464,7 +58611,7 @@ function SourceChip({
|
|
|
58464
58611
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
58465
58612
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
58466
58613
|
return wrapChip(
|
|
58467
|
-
/* @__PURE__ */
|
|
58614
|
+
/* @__PURE__ */ jsx381(
|
|
58468
58615
|
"a",
|
|
58469
58616
|
{
|
|
58470
58617
|
href: resolvedHref,
|
|
@@ -58480,7 +58627,7 @@ function SourceChip({
|
|
|
58480
58627
|
const resolvedHref = resolveHrefForRuntime(cta.href, runtime);
|
|
58481
58628
|
const isNewTab = decideTab(resolvedHref, cta.targetPlatform ?? null);
|
|
58482
58629
|
return wrapChip(
|
|
58483
|
-
/* @__PURE__ */
|
|
58630
|
+
/* @__PURE__ */ jsx381(
|
|
58484
58631
|
"a",
|
|
58485
58632
|
{
|
|
58486
58633
|
href: resolvedHref,
|
|
@@ -58494,7 +58641,7 @@ function SourceChip({
|
|
|
58494
58641
|
);
|
|
58495
58642
|
}
|
|
58496
58643
|
return wrapChip(
|
|
58497
|
-
/* @__PURE__ */
|
|
58644
|
+
/* @__PURE__ */ jsx381("span", { className: `${chipClass} cursor-default`, title: displayName, children: chipBody(displayName) })
|
|
58498
58645
|
);
|
|
58499
58646
|
}
|
|
58500
58647
|
function SourceChips({
|
|
@@ -58509,9 +58656,9 @@ function SourceChips({
|
|
|
58509
58656
|
if (cited.length === 0) {
|
|
58510
58657
|
const fallback = uncited.slice(0, FALLBACK_TOP_RETRIEVED);
|
|
58511
58658
|
if (fallback.length === 0) return null;
|
|
58512
|
-
return /* @__PURE__ */
|
|
58513
|
-
/* @__PURE__ */
|
|
58514
|
-
/* @__PURE__ */
|
|
58659
|
+
return /* @__PURE__ */ jsxs303("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
58660
|
+
/* @__PURE__ */ jsx381("span", { className: "text-h6 text-ods-text-muted uppercase", children: "Top retrieved sources" }),
|
|
58661
|
+
/* @__PURE__ */ jsx381("div", { className: "flex flex-wrap gap-1.5", children: fallback.map((src) => /* @__PURE__ */ jsx381(
|
|
58515
58662
|
SourceChip,
|
|
58516
58663
|
{
|
|
58517
58664
|
src,
|
|
@@ -58526,14 +58673,14 @@ function SourceChips({
|
|
|
58526
58673
|
}
|
|
58527
58674
|
const hiddenCount = uncited.length;
|
|
58528
58675
|
const hasOverflow = hiddenCount > 0;
|
|
58529
|
-
return /* @__PURE__ */
|
|
58530
|
-
/* @__PURE__ */
|
|
58531
|
-
/* @__PURE__ */
|
|
58676
|
+
return /* @__PURE__ */ jsxs303("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
58677
|
+
/* @__PURE__ */ jsx381("span", { className: "text-h6 text-ods-text-muted uppercase", children: "Sources" }),
|
|
58678
|
+
/* @__PURE__ */ jsxs303(
|
|
58532
58679
|
"div",
|
|
58533
58680
|
{
|
|
58534
58681
|
className: `flex flex-wrap gap-1.5 ${expanded ? "max-h-[200px] overflow-y-auto overscroll-contain" : ""}`,
|
|
58535
58682
|
children: [
|
|
58536
|
-
cited.map((src) => /* @__PURE__ */
|
|
58683
|
+
cited.map((src) => /* @__PURE__ */ jsx381(
|
|
58537
58684
|
SourceChip,
|
|
58538
58685
|
{
|
|
58539
58686
|
src,
|
|
@@ -58544,7 +58691,7 @@ function SourceChips({
|
|
|
58544
58691
|
},
|
|
58545
58692
|
src.index
|
|
58546
58693
|
)),
|
|
58547
|
-
expanded && uncited.map((src) => /* @__PURE__ */
|
|
58694
|
+
expanded && uncited.map((src) => /* @__PURE__ */ jsx381(
|
|
58548
58695
|
SourceChip,
|
|
58549
58696
|
{
|
|
58550
58697
|
src,
|
|
@@ -58555,7 +58702,7 @@ function SourceChips({
|
|
|
58555
58702
|
},
|
|
58556
58703
|
src.index
|
|
58557
58704
|
)),
|
|
58558
|
-
hasOverflow && /* @__PURE__ */
|
|
58705
|
+
hasOverflow && /* @__PURE__ */ jsx381(
|
|
58559
58706
|
"button",
|
|
58560
58707
|
{
|
|
58561
58708
|
onClick: () => setExpanded(!expanded),
|
|
@@ -58571,7 +58718,7 @@ function SourceChips({
|
|
|
58571
58718
|
] });
|
|
58572
58719
|
}
|
|
58573
58720
|
function EmbeddableChat(props) {
|
|
58574
|
-
return /* @__PURE__ */
|
|
58721
|
+
return /* @__PURE__ */ jsx381(EmbeddableChatInner, { ...props });
|
|
58575
58722
|
}
|
|
58576
58723
|
function EmbeddableChatInner({
|
|
58577
58724
|
baseRoute,
|
|
@@ -58890,7 +59037,7 @@ function EmbeddableChatInner({
|
|
|
58890
59037
|
[discussRef, displayRef, resolvedBaseRoute, chipBasePlatform, extras]
|
|
58891
59038
|
);
|
|
58892
59039
|
const mingoAssistantIcon = useMemo55(
|
|
58893
|
-
() => effectiveAssistantIcon ? /* @__PURE__ */
|
|
59040
|
+
() => effectiveAssistantIcon ? /* @__PURE__ */ jsx381(EntityIcon, { icon: effectiveAssistantIcon, size: 24 }) : /* @__PURE__ */ jsx381(MingoIcon, { className: "h-6 w-6", cornerColor: "var(--ods-flamingo-cyan-base)" }),
|
|
58894
59041
|
[effectiveAssistantIcon]
|
|
58895
59042
|
);
|
|
58896
59043
|
const timestampCacheRef = useRef81(/* @__PURE__ */ new Map());
|
|
@@ -59196,17 +59343,17 @@ function EmbeddableChatInner({
|
|
|
59196
59343
|
onArchive: headerOnArchive,
|
|
59197
59344
|
onOpenArchive: headerOnOpenArchive
|
|
59198
59345
|
};
|
|
59199
|
-
const body = /* @__PURE__ */
|
|
59200
|
-
/* @__PURE__ */
|
|
59346
|
+
const body = /* @__PURE__ */ jsx381(PortalContainerContext.Provider, { value: portalHost, children: /* @__PURE__ */ jsxs303(CollisionBoundaryContext.Provider, { value: panelBoundary, children: [
|
|
59347
|
+
/* @__PURE__ */ jsx381(
|
|
59201
59348
|
"div",
|
|
59202
59349
|
{
|
|
59203
59350
|
ref: setPanelNode,
|
|
59204
59351
|
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" : ""}`,
|
|
59205
|
-
children: archiveOpen && !splitActive ? /* @__PURE__ */
|
|
59352
|
+
children: archiveOpen && !splitActive ? /* @__PURE__ */ jsx381(
|
|
59206
59353
|
"div",
|
|
59207
59354
|
{
|
|
59208
59355
|
className: "flex flex-1 min-h-0 flex-col animate-in fade-in-0 duration-200",
|
|
59209
|
-
children: /* @__PURE__ */
|
|
59356
|
+
children: /* @__PURE__ */ jsx381(
|
|
59210
59357
|
ChatArchivePage,
|
|
59211
59358
|
{
|
|
59212
59359
|
dialogs: archivedDialogs,
|
|
@@ -59223,7 +59370,7 @@ function EmbeddableChatInner({
|
|
|
59223
59370
|
)
|
|
59224
59371
|
},
|
|
59225
59372
|
"archive-view"
|
|
59226
|
-
) : /* @__PURE__ */
|
|
59373
|
+
) : /* @__PURE__ */ jsxs303(
|
|
59227
59374
|
"div",
|
|
59228
59375
|
{
|
|
59229
59376
|
className: "flex flex-1 min-h-0 flex-col animate-in fade-in-0 duration-200",
|
|
@@ -59241,8 +59388,8 @@ function EmbeddableChatInner({
|
|
|
59241
59388
|
// the viewport `md` breakpoint — otherwise a 720–799px panel on a
|
|
59242
59389
|
// sub-`md` viewport would split the body yet drop to the mobile
|
|
59243
59390
|
// single-bar header (no rail search / collapse controls).
|
|
59244
|
-
/* @__PURE__ */
|
|
59245
|
-
railPresence.mounted && /* @__PURE__ */
|
|
59391
|
+
/* @__PURE__ */ jsxs303("div", { className: "flex h-14 w-full flex-shrink-0 overflow-hidden border-b border-ods-border bg-ods-card", children: [
|
|
59392
|
+
railPresence.mounted && /* @__PURE__ */ jsx381(
|
|
59246
59393
|
RailSlot,
|
|
59247
59394
|
{
|
|
59248
59395
|
active: railPresence.active,
|
|
@@ -59253,50 +59400,50 @@ function EmbeddableChatInner({
|
|
|
59253
59400
|
// renders in the rail below); the chat block is untouched.
|
|
59254
59401
|
// Back is a full-height leading cell, matching the other
|
|
59255
59402
|
// header cells (not a small inline chevron).
|
|
59256
|
-
/* @__PURE__ */
|
|
59257
|
-
/* @__PURE__ */
|
|
59403
|
+
/* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
59404
|
+
/* @__PURE__ */ jsx381(
|
|
59258
59405
|
ChatHeaderIconButton,
|
|
59259
59406
|
{
|
|
59260
59407
|
divider: "right",
|
|
59261
59408
|
onClick: closeArchive,
|
|
59262
59409
|
"aria-label": "Back to chats",
|
|
59263
|
-
children: /* @__PURE__ */
|
|
59410
|
+
children: /* @__PURE__ */ jsx381(Chevron02LeftIcon, { size: 24 })
|
|
59264
59411
|
}
|
|
59265
59412
|
),
|
|
59266
|
-
/* @__PURE__ */
|
|
59413
|
+
/* @__PURE__ */ jsx381("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx381("span", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "Chat Archive" }) })
|
|
59267
59414
|
] })
|
|
59268
59415
|
) : (
|
|
59269
59416
|
// "Current Chats" rail header — title fills, then the
|
|
59270
59417
|
// search + archive controls. When search is open the
|
|
59271
59418
|
// inline field takes over the title area in place
|
|
59272
59419
|
// (Figma 116:51217) and the magnifier toggle is hidden.
|
|
59273
|
-
/* @__PURE__ */
|
|
59274
|
-
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */
|
|
59420
|
+
/* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
59421
|
+
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */ jsx381(
|
|
59275
59422
|
ChatHeaderSearchField,
|
|
59276
59423
|
{
|
|
59277
59424
|
initialValue: mingoCaps.searchQuery,
|
|
59278
59425
|
onSearchChange: mingoCaps.onSearchChange,
|
|
59279
59426
|
onCollapse: () => setRailSearchOpen(false)
|
|
59280
59427
|
}
|
|
59281
|
-
) : /* @__PURE__ */
|
|
59282
|
-
/* @__PURE__ */
|
|
59283
|
-
mingoCaps.onSearchChange && /* @__PURE__ */
|
|
59428
|
+
) : /* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
59429
|
+
/* @__PURE__ */ jsx381("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx381("span", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "Current Chats" }) }),
|
|
59430
|
+
mingoCaps.onSearchChange && /* @__PURE__ */ jsx381(
|
|
59284
59431
|
ChatHeaderIconButton,
|
|
59285
59432
|
{
|
|
59286
59433
|
onClick: () => setRailSearchOpen((o) => !o),
|
|
59287
59434
|
"aria-label": "Search chats",
|
|
59288
59435
|
"aria-pressed": railSearchOpen,
|
|
59289
|
-
children: /* @__PURE__ */
|
|
59436
|
+
children: /* @__PURE__ */ jsx381(SearchIcon, { size: 24 })
|
|
59290
59437
|
}
|
|
59291
59438
|
)
|
|
59292
59439
|
] }),
|
|
59293
|
-
headerOnOpenArchive && /* @__PURE__ */
|
|
59440
|
+
headerOnOpenArchive && /* @__PURE__ */ jsx381(ChatHeaderIconButton, { onClick: headerOnOpenArchive, "aria-label": "Chat archive", children: /* @__PURE__ */ jsx381(ClockHistoryIcon, { size: 24 }) })
|
|
59294
59441
|
] })
|
|
59295
59442
|
)
|
|
59296
59443
|
}
|
|
59297
59444
|
),
|
|
59298
|
-
/* @__PURE__ */
|
|
59299
|
-
/* @__PURE__ */
|
|
59445
|
+
/* @__PURE__ */ jsxs303("div", { className: "flex flex-1 min-w-0", children: [
|
|
59446
|
+
/* @__PURE__ */ jsx381(
|
|
59300
59447
|
"button",
|
|
59301
59448
|
{
|
|
59302
59449
|
type: "button",
|
|
@@ -59304,17 +59451,17 @@ function EmbeddableChatInner({
|
|
|
59304
59451
|
"aria-label": splitActive ? "Collapse chat list" : "Show chat list",
|
|
59305
59452
|
"aria-pressed": !splitActive,
|
|
59306
59453
|
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",
|
|
59307
|
-
children: splitActive ? /* @__PURE__ */
|
|
59454
|
+
children: splitActive ? /* @__PURE__ */ jsx381(Arrow02RightIcon, { size: 24 }) : /* @__PURE__ */ jsx381(Arrow02LeftIcon, { size: 24 })
|
|
59308
59455
|
}
|
|
59309
59456
|
),
|
|
59310
|
-
/* @__PURE__ */
|
|
59311
|
-
/* @__PURE__ */
|
|
59312
|
-
/* @__PURE__ */
|
|
59313
|
-
headerPersonName && /* @__PURE__ */
|
|
59457
|
+
/* @__PURE__ */ jsxs303("div", { className: "flex flex-1 min-w-0 items-center gap-[var(--spacing-system-m)] px-[var(--spacing-system-mf)] py-[var(--spacing-system-sf)]", children: [
|
|
59458
|
+
/* @__PURE__ */ jsxs303("div", { className: "flex min-w-0 flex-col", children: [
|
|
59459
|
+
/* @__PURE__ */ jsx381("p", { className: "truncate text-h3 leading-tight text-ods-text-primary", children: headerShowBack ? headerTitle : "New Chat" }),
|
|
59460
|
+
headerPersonName && /* @__PURE__ */ jsx381("p", { className: "truncate text-h6 leading-tight text-ods-text-secondary", children: headerPersonName })
|
|
59314
59461
|
] }),
|
|
59315
59462
|
headerAvatar ? (
|
|
59316
59463
|
// Owner avatar at the title cell's right edge (Figma 113:63273).
|
|
59317
|
-
/* @__PURE__ */
|
|
59464
|
+
/* @__PURE__ */ jsx381(
|
|
59318
59465
|
SquareAvatar,
|
|
59319
59466
|
{
|
|
59320
59467
|
variant: "round",
|
|
@@ -59329,17 +59476,17 @@ function EmbeddableChatInner({
|
|
|
59329
59476
|
)
|
|
59330
59477
|
) : null
|
|
59331
59478
|
] }),
|
|
59332
|
-
isViewingArchived && headerOnRestore && /* @__PURE__ */
|
|
59333
|
-
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */
|
|
59479
|
+
isViewingArchived && headerOnRestore && /* @__PURE__ */ jsx381(ChatHeaderIconButton, { onClick: headerOnRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ jsx381(Refresh01LeftIcon, { size: 24 }) }),
|
|
59480
|
+
headerShowBack && !isViewingArchived && splitHeaderMenuItems.length > 0 && /* @__PURE__ */ jsx381(
|
|
59334
59481
|
ActionsMenuDropdown,
|
|
59335
59482
|
{
|
|
59336
59483
|
triggerAriaLabel: "Chat actions",
|
|
59337
59484
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
59338
59485
|
groups: [{ items: splitHeaderMenuItems }],
|
|
59339
|
-
customTrigger: /* @__PURE__ */
|
|
59486
|
+
customTrigger: /* @__PURE__ */ jsx381(ChatHeaderIconButton, { "aria-label": "Chat actions", children: /* @__PURE__ */ jsx381(Ellipsis01Icon, { size: 24 }) })
|
|
59340
59487
|
}
|
|
59341
59488
|
),
|
|
59342
|
-
/* @__PURE__ */
|
|
59489
|
+
/* @__PURE__ */ jsx381(ChatHeaderIconButton, { onClick: handleClose, "aria-label": "Close", children: /* @__PURE__ */ jsx381(XmarkIcon, { size: 24 }) })
|
|
59343
59490
|
] })
|
|
59344
59491
|
] })
|
|
59345
59492
|
) : (
|
|
@@ -59347,11 +59494,11 @@ function EmbeddableChatInner({
|
|
|
59347
59494
|
// guide, resolved into `narrowHeaderProps` above. (Wide layouts,
|
|
59348
59495
|
// including rail-collapsed, use the wide header above.) Embedded
|
|
59349
59496
|
// previews (hero demo tabs) force the compact bar via `compact`.
|
|
59350
|
-
/* @__PURE__ */
|
|
59497
|
+
/* @__PURE__ */ jsx381(ChatPanelHeader, { ...narrowHeaderProps, compact: previewMode })
|
|
59351
59498
|
),
|
|
59352
|
-
activeMode === "guide" && hasMingoMode && /* @__PURE__ */
|
|
59353
|
-
/* @__PURE__ */
|
|
59354
|
-
railPresence.mounted && /* @__PURE__ */
|
|
59499
|
+
activeMode === "guide" && hasMingoMode && /* @__PURE__ */ jsx381(GuideModeBanner, { className: "animate-in fade-in-0 duration-200" }),
|
|
59500
|
+
/* @__PURE__ */ jsxs303("div", { className: "flex flex-1 min-h-0 overflow-hidden", children: [
|
|
59501
|
+
railPresence.mounted && /* @__PURE__ */ jsx381(
|
|
59355
59502
|
RailSlot,
|
|
59356
59503
|
{
|
|
59357
59504
|
active: railPresence.active,
|
|
@@ -59359,7 +59506,7 @@ function EmbeddableChatInner({
|
|
|
59359
59506
|
children: archiveOpen ? (
|
|
59360
59507
|
// Archive list inside the rail (header lives in the split
|
|
59361
59508
|
// header's left cell above). Right chat block stays put.
|
|
59362
|
-
/* @__PURE__ */
|
|
59509
|
+
/* @__PURE__ */ jsx381(
|
|
59363
59510
|
ChatArchivePage,
|
|
59364
59511
|
{
|
|
59365
59512
|
embedded: true,
|
|
@@ -59373,7 +59520,7 @@ function EmbeddableChatInner({
|
|
|
59373
59520
|
}
|
|
59374
59521
|
}
|
|
59375
59522
|
)
|
|
59376
|
-
) : /* @__PURE__ */
|
|
59523
|
+
) : /* @__PURE__ */ jsx381(
|
|
59377
59524
|
MingoHistoryRail,
|
|
59378
59525
|
{
|
|
59379
59526
|
dialogs,
|
|
@@ -59397,11 +59544,11 @@ function EmbeddableChatInner({
|
|
|
59397
59544
|
)
|
|
59398
59545
|
}
|
|
59399
59546
|
),
|
|
59400
|
-
/* @__PURE__ */
|
|
59547
|
+
/* @__PURE__ */ jsx381("div", { className: "flex flex-1 flex-col min-h-0 min-w-0", children: stackedListView ? (
|
|
59401
59548
|
// Narrow "Current Chats" list (Figma 341:36190) — the default
|
|
59402
59549
|
// single-column view. No composer here; "Start New Chat" opens
|
|
59403
59550
|
// the compose view.
|
|
59404
|
-
/* @__PURE__ */
|
|
59551
|
+
/* @__PURE__ */ jsx381(
|
|
59405
59552
|
MingoHistoryRail,
|
|
59406
59553
|
{
|
|
59407
59554
|
className: "animate-in fade-in-0 duration-200",
|
|
@@ -59424,17 +59571,17 @@ function EmbeddableChatInner({
|
|
|
59424
59571
|
onRetry: reloadDialogs
|
|
59425
59572
|
}
|
|
59426
59573
|
)
|
|
59427
|
-
) : /* @__PURE__ */
|
|
59428
|
-
/* @__PURE__ */
|
|
59574
|
+
) : /* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
59575
|
+
/* @__PURE__ */ jsx381(
|
|
59429
59576
|
"div",
|
|
59430
59577
|
{
|
|
59431
59578
|
ref: galleryPanelRef,
|
|
59432
59579
|
className: "flex-1 flex flex-col min-h-0 p-[var(--spacing-system-m)]",
|
|
59433
|
-
children: /* @__PURE__ */
|
|
59580
|
+
children: /* @__PURE__ */ jsx381(
|
|
59434
59581
|
"div",
|
|
59435
59582
|
{
|
|
59436
59583
|
className: "flex-1 flex flex-col min-h-0 animate-in fade-in-0 duration-200",
|
|
59437
|
-
children: hasConversation ? /* @__PURE__ */
|
|
59584
|
+
children: hasConversation ? /* @__PURE__ */ jsxs303("div", { className: "flex-1 flex flex-col min-h-0", children: [
|
|
59438
59585
|
messagesInitialLoading ? (
|
|
59439
59586
|
// Match the real list's `fullWidth` layout so swapping
|
|
59440
59587
|
// skeleton → bubbles doesn't shift the column. The panel
|
|
@@ -59446,7 +59593,7 @@ function EmbeddableChatInner({
|
|
|
59446
59593
|
// skeleton overflows a short panel and grows its OWN
|
|
59447
59594
|
// scrollbar — ugly. `fill` top-anchors + clips overflow so
|
|
59448
59595
|
// it reads as "the whole panel is loading" and never scrolls.
|
|
59449
|
-
/* @__PURE__ */
|
|
59596
|
+
/* @__PURE__ */ jsx381(
|
|
59450
59597
|
ChatMessageListSkeleton,
|
|
59451
59598
|
{
|
|
59452
59599
|
fullWidth: true,
|
|
@@ -59454,7 +59601,7 @@ function EmbeddableChatInner({
|
|
|
59454
59601
|
className: "flex-1"
|
|
59455
59602
|
}
|
|
59456
59603
|
)
|
|
59457
|
-
) : /* @__PURE__ */
|
|
59604
|
+
) : /* @__PURE__ */ jsx381(
|
|
59458
59605
|
ChatMessageList,
|
|
59459
59606
|
{
|
|
59460
59607
|
messages,
|
|
@@ -59477,7 +59624,7 @@ function EmbeddableChatInner({
|
|
|
59477
59624
|
onLoadMore: loadMoreMessages
|
|
59478
59625
|
}
|
|
59479
59626
|
),
|
|
59480
|
-
lastSources && (lastSources.cited.length > 0 || lastSources.uncited.length > 0) && !chatLoading && /* @__PURE__ */
|
|
59627
|
+
lastSources && (lastSources.cited.length > 0 || lastSources.uncited.length > 0) && !chatLoading && /* @__PURE__ */ jsx381("div", { className: "flex-shrink-0 pb-2", children: /* @__PURE__ */ jsx381(
|
|
59481
59628
|
SourceChips,
|
|
59482
59629
|
{
|
|
59483
59630
|
cited: lastSources.cited,
|
|
@@ -59493,7 +59640,7 @@ function EmbeddableChatInner({
|
|
|
59493
59640
|
centred greeting + capability grid + Guide-chat promo +
|
|
59494
59641
|
quick-action chips. Guide mode keeps the slash-command
|
|
59495
59642
|
onboarding list below. */
|
|
59496
|
-
/* @__PURE__ */
|
|
59643
|
+
/* @__PURE__ */ jsx381(
|
|
59497
59644
|
MingoWelcome,
|
|
59498
59645
|
{
|
|
59499
59646
|
onStartGuideChat: effectiveModes.guide ? () => handleActiveModeChange("guide") : void 0,
|
|
@@ -59508,7 +59655,7 @@ function EmbeddableChatInner({
|
|
|
59508
59655
|
/* Figma node 7532:328214 — Guide-mode empty state: greeting
|
|
59509
59656
|
+ slash-command onboarding list share one scroll region,
|
|
59510
59657
|
with a pinned quick-action chip row above the composer. */
|
|
59511
|
-
/* @__PURE__ */
|
|
59658
|
+
/* @__PURE__ */ jsx381(
|
|
59512
59659
|
GuideWelcome,
|
|
59513
59660
|
{
|
|
59514
59661
|
subtitle: effectiveGreeting ?? void 0,
|
|
@@ -59524,8 +59671,8 @@ function EmbeddableChatInner({
|
|
|
59524
59671
|
onQuickActionHover: (action) => setQuickActionPreview(action.prompt ?? action.label),
|
|
59525
59672
|
onQuickActionHoverEnd: () => setQuickActionPreview(null),
|
|
59526
59673
|
agentSlug: activeAgentSlug,
|
|
59527
|
-
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */
|
|
59528
|
-
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */
|
|
59674
|
+
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ jsxs303("div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
|
|
59675
|
+
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ jsx381(
|
|
59529
59676
|
MingoOnboardingCardSkeleton,
|
|
59530
59677
|
{
|
|
59531
59678
|
titleWidth: variant.titleWidth,
|
|
@@ -59547,10 +59694,10 @@ function EmbeddableChatInner({
|
|
|
59547
59694
|
chatInputRef
|
|
59548
59695
|
)
|
|
59549
59696
|
}));
|
|
59550
|
-
return /* @__PURE__ */
|
|
59697
|
+
return /* @__PURE__ */ jsx381(
|
|
59551
59698
|
MingoOnboardingCard,
|
|
59552
59699
|
{
|
|
59553
|
-
icon: /* @__PURE__ */
|
|
59700
|
+
icon: /* @__PURE__ */ jsx381(Icon2, { size: 16 }),
|
|
59554
59701
|
title: label,
|
|
59555
59702
|
slashCommand: `/${cmdId}`,
|
|
59556
59703
|
description: cmd.description,
|
|
@@ -59568,7 +59715,7 @@ function EmbeddableChatInner({
|
|
|
59568
59715
|
)
|
|
59569
59716
|
}
|
|
59570
59717
|
),
|
|
59571
|
-
/* @__PURE__ */
|
|
59718
|
+
/* @__PURE__ */ jsx381(
|
|
59572
59719
|
ChatAttachmentChipStrip,
|
|
59573
59720
|
{
|
|
59574
59721
|
attachments: stagedAttachments,
|
|
@@ -59576,7 +59723,7 @@ function EmbeddableChatInner({
|
|
|
59576
59723
|
disabled: chatLoading
|
|
59577
59724
|
}
|
|
59578
59725
|
),
|
|
59579
|
-
/* @__PURE__ */
|
|
59726
|
+
/* @__PURE__ */ jsx381(
|
|
59580
59727
|
ChatComposer,
|
|
59581
59728
|
{
|
|
59582
59729
|
archived: isViewingArchived,
|
|
@@ -59625,7 +59772,7 @@ function EmbeddableChatInner({
|
|
|
59625
59772
|
}
|
|
59626
59773
|
),
|
|
59627
59774
|
galleryModal,
|
|
59628
|
-
/* @__PURE__ */
|
|
59775
|
+
/* @__PURE__ */ jsx381(
|
|
59629
59776
|
ChatDialogModals,
|
|
59630
59777
|
{
|
|
59631
59778
|
renameTarget,
|
|
@@ -59639,15 +59786,15 @@ function EmbeddableChatInner({
|
|
|
59639
59786
|
onConfirmRestore: handleConfirmRestore
|
|
59640
59787
|
}
|
|
59641
59788
|
),
|
|
59642
|
-
/* @__PURE__ */
|
|
59789
|
+
/* @__PURE__ */ jsx381("div", { ref: setPortalHost, style: { display: "contents" } })
|
|
59643
59790
|
] }) });
|
|
59644
|
-
const panel = shellLess ? /* @__PURE__ */
|
|
59645
|
-
/* @__PURE__ */
|
|
59791
|
+
const panel = shellLess ? /* @__PURE__ */ jsxs303(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
|
|
59792
|
+
/* @__PURE__ */ jsx381(VisuallyHidden, { children: /* @__PURE__ */ jsxs303(DialogPrimitive5.Title, { children: [
|
|
59646
59793
|
sourceLabel,
|
|
59647
59794
|
" AI Assistant"
|
|
59648
59795
|
] }) }),
|
|
59649
59796
|
body
|
|
59650
|
-
] }) : /* @__PURE__ */
|
|
59797
|
+
] }) : /* @__PURE__ */ jsx381(Drawer, { open: isOpen, onOpenChange: (o) => !o && handleClose(), children: /* @__PURE__ */ jsx381(ChatPanelContext.Provider, { value: chatPanelHandle, children: /* @__PURE__ */ jsxs303(
|
|
59651
59798
|
DrawerContent,
|
|
59652
59799
|
{
|
|
59653
59800
|
side: "right",
|
|
@@ -59662,7 +59809,7 @@ function EmbeddableChatInner({
|
|
|
59662
59809
|
"aria-describedby": void 0,
|
|
59663
59810
|
className: "\n mingo-chat-content !bg-ods-bg shadow-2xl\n focus:outline-none focus-visible:outline-none\n w-screen md:w-auto\n ",
|
|
59664
59811
|
children: [
|
|
59665
|
-
/* @__PURE__ */
|
|
59812
|
+
/* @__PURE__ */ jsx381(VisuallyHidden, { children: /* @__PURE__ */ jsxs303(DialogPrimitive5.Title, { children: [
|
|
59666
59813
|
sourceLabel,
|
|
59667
59814
|
" AI Assistant"
|
|
59668
59815
|
] }) }),
|
|
@@ -59670,17 +59817,17 @@ function EmbeddableChatInner({
|
|
|
59670
59817
|
]
|
|
59671
59818
|
}
|
|
59672
59819
|
) }) });
|
|
59673
|
-
return /* @__PURE__ */
|
|
59674
|
-
showInternalTrigger && !shellLess && /* @__PURE__ */
|
|
59820
|
+
return /* @__PURE__ */ jsxs303(Fragment88, { children: [
|
|
59821
|
+
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx381(
|
|
59675
59822
|
"div",
|
|
59676
59823
|
{
|
|
59677
59824
|
"aria-hidden": isOpen,
|
|
59678
59825
|
className: `sticky bottom-0 h-0 z-[9990] pointer-events-none ${isOpen ? "opacity-0" : "opacity-100"}`,
|
|
59679
|
-
children: /* @__PURE__ */
|
|
59826
|
+
children: /* @__PURE__ */ jsx381("div", { className: "absolute bottom-4 md:bottom-6 right-4 md:right-6", children: /* @__PURE__ */ jsx381(
|
|
59680
59827
|
Button,
|
|
59681
59828
|
{
|
|
59682
59829
|
onClick: handleOpen,
|
|
59683
|
-
leftIcon: /* @__PURE__ */
|
|
59830
|
+
leftIcon: /* @__PURE__ */ jsx381(MingoIcon, { className: "h-5 w-5", color: "currentColor" }),
|
|
59684
59831
|
tabIndex: isOpen ? -1 : 0,
|
|
59685
59832
|
className: `shadow-lg !w-auto pointer-events-auto ${isOpen ? "!pointer-events-none" : ""}`,
|
|
59686
59833
|
children: "Ask AI"
|
|
@@ -60770,4 +60917,4 @@ export {
|
|
|
60770
60917
|
LogsList,
|
|
60771
60918
|
assets
|
|
60772
60919
|
};
|
|
60773
|
-
//# sourceMappingURL=chunk-
|
|
60920
|
+
//# sourceMappingURL=chunk-6ETOEANJ.js.map
|