@flamingo-stack/openframe-frontend-core 0.0.350 → 0.0.351-snapshot.20260701140524
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-EET6FJB4.js → chunk-3QWEET5C.js} +2 -2
- package/dist/{chunk-T265FMHX.cjs → chunk-3SYTPXCP.cjs} +37 -37
- package/dist/{chunk-T265FMHX.cjs.map → chunk-3SYTPXCP.cjs.map} +1 -1
- package/dist/{chunk-4TWVKDZ3.cjs → chunk-42PSJKMY.cjs} +25 -25
- package/dist/{chunk-4TWVKDZ3.cjs.map → chunk-42PSJKMY.cjs.map} +1 -1
- package/dist/{chunk-OSILW6QN.js → chunk-66D3JL6J.js} +4 -4
- package/dist/{chunk-Y4JKCD7B.js → chunk-7CTSKYAV.js} +2 -2
- package/dist/{chunk-NLOK2CZ2.cjs → chunk-DY4Y7QQB.cjs} +31 -31
- package/dist/{chunk-NLOK2CZ2.cjs.map → chunk-DY4Y7QQB.cjs.map} +1 -1
- package/dist/{chunk-HEBUZLJ2.cjs → chunk-ED72ZQV7.cjs} +5 -5
- package/dist/{chunk-HEBUZLJ2.cjs.map → chunk-ED72ZQV7.cjs.map} +1 -1
- package/dist/{chunk-K5R7QYZJ.js → chunk-FQ4VGHPO.js} +2 -2
- package/dist/{chunk-ICKM2U5N.cjs → chunk-FU5KF6MA.cjs} +7 -7
- package/dist/{chunk-ICKM2U5N.cjs.map → chunk-FU5KF6MA.cjs.map} +1 -1
- package/dist/{chunk-MIYA5JM5.js → chunk-GGCOLMNS.js} +2 -2
- package/dist/{chunk-2VJOIQWC.cjs → chunk-HPVOWKIO.cjs} +15 -15
- package/dist/{chunk-2VJOIQWC.cjs.map → chunk-HPVOWKIO.cjs.map} +1 -1
- package/dist/{chunk-5O4OTDH3.js → chunk-HSZJGPVA.js} +210 -124
- package/dist/chunk-HSZJGPVA.js.map +1 -0
- package/dist/{chunk-5DLWZXWX.cjs → chunk-IHXJKIFM.cjs} +12 -12
- package/dist/{chunk-5DLWZXWX.cjs.map → chunk-IHXJKIFM.cjs.map} +1 -1
- package/dist/{chunk-SHCBCWUN.js → chunk-IM5HXLFT.js} +2 -2
- package/dist/{chunk-DIWT3MLF.js → chunk-JQGLBAGS.js} +2 -2
- package/dist/{chunk-2UFPHLQW.cjs → chunk-K2NJ5VHQ.cjs} +62 -62
- package/dist/{chunk-2UFPHLQW.cjs.map → chunk-K2NJ5VHQ.cjs.map} +1 -1
- package/dist/{chunk-5EVW3XJK.js → chunk-M247JWGY.js} +4 -4
- package/dist/{chunk-4LIII4VU.js → chunk-N7BREY67.js} +4 -4
- package/dist/{chunk-DGUTSVZ2.js → chunk-ONMA32BY.js} +2 -2
- package/dist/{chunk-VLBYQVU6.cjs → chunk-QP7TLRLH.cjs} +309 -223
- package/dist/chunk-QP7TLRLH.cjs.map +1 -0
- package/dist/{chunk-6EBR75I2.cjs → chunk-RTKRXPPG.cjs} +26 -26
- package/dist/{chunk-6EBR75I2.cjs.map → chunk-RTKRXPPG.cjs.map} +1 -1
- package/dist/{chunk-QM4W5LAZ.cjs → chunk-T2ARJIH6.cjs} +56 -56
- package/dist/{chunk-QM4W5LAZ.cjs.map → chunk-T2ARJIH6.cjs.map} +1 -1
- package/dist/{chunk-22YDMHQ6.js → chunk-TM455OW5.js} +4 -4
- package/dist/{chunk-B6MWUSP2.cjs → chunk-ZRLPXSZC.cjs} +9 -9
- package/dist/{chunk-B6MWUSP2.cjs.map → chunk-ZRLPXSZC.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/approval-batch-message.d.ts +7 -1
- package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/guide-welcome.d.ts +9 -1
- package/dist/components/chat/guide-welcome.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-empty-state-config.d.ts +36 -3
- package/dist/components/chat/hooks/use-empty-state-config.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
- package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +6 -0
- package/dist/components/chat/types/component.types.d.ts.map +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 +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +120 -120
- package/dist/components/index.js +9 -9
- 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 +5 -5
- package/dist/components/tickets/index.js +4 -4
- 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/approval-batch-message.tsx +82 -27
- package/src/components/chat/approval-request-message.tsx +27 -19
- package/src/components/chat/chat-message-enhanced.tsx +3 -0
- package/src/components/chat/embeddable-chat.tsx +45 -5
- package/src/components/chat/guide-welcome.tsx +17 -6
- package/src/components/chat/hooks/use-empty-state-config.ts +44 -3
- package/src/components/chat/tool-call-blocks.tsx +17 -6
- package/src/components/chat/tool-execution-display.tsx +23 -8
- package/src/components/chat/types/component.types.ts +6 -0
- package/src/stories/ApprovalBatchMessage.stories.tsx +169 -0
- package/src/stories/ApprovalBatchMessageClient.stories.tsx +172 -0
- package/src/stories/ApprovalRequestMessage.stories.tsx +95 -0
- package/src/stories/ToolExecutionDisplay.stories.tsx +1 -1
- package/src/stories/ToolExecutionDisplayClient.stories.tsx +64 -0
- package/dist/chunk-5O4OTDH3.js.map +0 -1
- package/dist/chunk-VLBYQVU6.cjs.map +0 -1
- /package/dist/{chunk-EET6FJB4.js.map → chunk-3QWEET5C.js.map} +0 -0
- /package/dist/{chunk-OSILW6QN.js.map → chunk-66D3JL6J.js.map} +0 -0
- /package/dist/{chunk-Y4JKCD7B.js.map → chunk-7CTSKYAV.js.map} +0 -0
- /package/dist/{chunk-K5R7QYZJ.js.map → chunk-FQ4VGHPO.js.map} +0 -0
- /package/dist/{chunk-MIYA5JM5.js.map → chunk-GGCOLMNS.js.map} +0 -0
- /package/dist/{chunk-SHCBCWUN.js.map → chunk-IM5HXLFT.js.map} +0 -0
- /package/dist/{chunk-DIWT3MLF.js.map → chunk-JQGLBAGS.js.map} +0 -0
- /package/dist/{chunk-5EVW3XJK.js.map → chunk-M247JWGY.js.map} +0 -0
- /package/dist/{chunk-4LIII4VU.js.map → chunk-N7BREY67.js.map} +0 -0
- /package/dist/{chunk-DGUTSVZ2.js.map → chunk-ONMA32BY.js.map} +0 -0
- /package/dist/{chunk-22YDMHQ6.js.map → chunk-TM455OW5.js.map} +0 -0
|
@@ -515,27 +515,30 @@ function Tag({
|
|
|
515
515
|
}
|
|
516
516
|
|
|
517
517
|
// src/components/chat/approval-request-message.tsx
|
|
518
|
-
import { CheckCircle, XCircle } from "lucide-react";
|
|
518
|
+
import { Ban, CheckCircle, XCircle } from "lucide-react";
|
|
519
519
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
520
520
|
function ApprovalFieldList({ fields }) {
|
|
521
|
-
return /* @__PURE__ */ jsx2("dl", { className: "flex flex-col gap-2.5 mt-
|
|
521
|
+
return /* @__PURE__ */ jsx2("dl", { className: "flex flex-col gap-2.5 mt-[var(--spacing-system-xxs)]", children: fields.map((f, i) => /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-0.5", children: [
|
|
522
522
|
/* @__PURE__ */ jsx2("dt", { className: "font-['DM_Sans'] font-semibold text-[11px] uppercase tracking-wide text-ods-text-tertiary leading-4", children: f.label }),
|
|
523
|
-
/* @__PURE__ */ jsx2("dd", { className: "
|
|
523
|
+
/* @__PURE__ */ jsx2("dd", { className: "text-h6 text-ods-text-primary whitespace-pre-wrap break-words", children: f.value })
|
|
524
524
|
] }, i)) });
|
|
525
525
|
}
|
|
526
526
|
function ApprovalCardBody({
|
|
527
527
|
data
|
|
528
528
|
}) {
|
|
529
|
-
return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-
|
|
530
|
-
/* @__PURE__ */ jsxs2("div", { className: "bg-ods-bg border border-ods-border rounded-md p-
|
|
531
|
-
/* @__PURE__ */ jsx2("code", { className: "
|
|
529
|
+
return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
530
|
+
/* @__PURE__ */ jsxs2("div", { className: "bg-ods-bg border border-ods-border rounded-md p-[var(--spacing-system-sf)] flex gap-[var(--spacing-system-xsf)] items-start max-h-32 overflow-y-auto", children: [
|
|
531
|
+
/* @__PURE__ */ jsx2("code", { className: "text-h6 text-ods-text-primary flex-1 whitespace-pre-wrap break-words", children: data.command }),
|
|
532
532
|
data.icon && /* @__PURE__ */ jsx2("div", { className: "w-4 h-4 shrink-0 text-ods-text-tertiary", children: data.icon })
|
|
533
533
|
] }),
|
|
534
|
-
data.fields && data.fields.length > 0 ? /* @__PURE__ */ jsx2(ApprovalFieldList, { fields: data.fields }) : data.explanation && /* @__PURE__ */ jsx2("p", { className: "
|
|
534
|
+
data.fields && data.fields.length > 0 ? /* @__PURE__ */ jsx2(ApprovalFieldList, { fields: data.fields }) : data.explanation && /* @__PURE__ */ jsx2("p", { className: "text-h6 text-ods-text-secondary whitespace-pre-line break-words", children: data.explanation })
|
|
535
535
|
] });
|
|
536
536
|
}
|
|
537
537
|
var ApprovalRequestMessage = forwardRef(
|
|
538
|
-
|
|
538
|
+
// `assistantType` is accepted for prop-parity with the batch card (so hosts
|
|
539
|
+
// can forward it uniformly); the legacy single-command card has no
|
|
540
|
+
// icon/divider to vary, so it renders identically for admin and client today.
|
|
541
|
+
({ className, data, onApprove, onReject, status = "pending", assistantType: _assistantType, ...props }, ref) => {
|
|
539
542
|
const [isProcessing, setIsProcessing] = useState(false);
|
|
540
543
|
const handleApprove = async () => {
|
|
541
544
|
setIsProcessing(true);
|
|
@@ -558,13 +561,13 @@ var ApprovalRequestMessage = forwardRef(
|
|
|
558
561
|
{
|
|
559
562
|
ref,
|
|
560
563
|
className: cn(
|
|
561
|
-
"bg-ods-card border border-ods-border rounded-md p-
|
|
564
|
+
"bg-ods-card border border-ods-border rounded-md p-[var(--spacing-system-mf)] mb-[var(--spacing-system-xsf)] flex flex-col gap-[var(--spacing-system-mf)]",
|
|
562
565
|
className
|
|
563
566
|
),
|
|
564
567
|
...props,
|
|
565
568
|
children: [
|
|
566
569
|
/* @__PURE__ */ jsx2(ApprovalCardBody, { data }),
|
|
567
|
-
status === "pending" ? /* @__PURE__ */ jsxs2("div", { className: "flex gap-
|
|
570
|
+
status === "pending" ? /* @__PURE__ */ jsxs2("div", { className: "flex gap-[var(--spacing-system-mf)] items-center", children: [
|
|
568
571
|
/* @__PURE__ */ jsx2(
|
|
569
572
|
Button,
|
|
570
573
|
{
|
|
@@ -574,8 +577,8 @@ var ApprovalRequestMessage = forwardRef(
|
|
|
574
577
|
disabled: isProcessing,
|
|
575
578
|
className: cn(
|
|
576
579
|
"bg-ods-accent hover:bg-ods-accent/90",
|
|
577
|
-
"
|
|
578
|
-
"px-
|
|
580
|
+
"text-h5 text-ods-bg",
|
|
581
|
+
"px-[var(--spacing-system-xsf)] h-8"
|
|
579
582
|
),
|
|
580
583
|
children: "Approve"
|
|
581
584
|
}
|
|
@@ -589,20 +592,13 @@ var ApprovalRequestMessage = forwardRef(
|
|
|
589
592
|
disabled: isProcessing,
|
|
590
593
|
className: cn(
|
|
591
594
|
"bg-ods-card border-ods-border",
|
|
592
|
-
"
|
|
593
|
-
"hover:bg-ods-bg px-
|
|
595
|
+
"text-h5 text-ods-text-primary",
|
|
596
|
+
"hover:bg-ods-bg px-[var(--spacing-system-xsf)] h-8"
|
|
594
597
|
),
|
|
595
598
|
children: "Reject"
|
|
596
599
|
}
|
|
597
600
|
)
|
|
598
|
-
] }) : /* @__PURE__ */ jsx2("div", { className: "flex", children: /* @__PURE__ */ jsx2(
|
|
599
|
-
Tag,
|
|
600
|
-
{
|
|
601
|
-
label: status === "approved" ? "Approved" : "Rejected",
|
|
602
|
-
variant: status === "approved" ? "success" : "error",
|
|
603
|
-
icon: status === "approved" ? /* @__PURE__ */ jsx2(CheckCircle, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx2(XCircle, { className: "w-4 h-4" })
|
|
604
|
-
}
|
|
605
|
-
) })
|
|
601
|
+
] }) : /* @__PURE__ */ jsx2("div", { className: "flex", children: status === "approved" ? /* @__PURE__ */ jsx2(Tag, { label: "Approved", variant: "success", icon: /* @__PURE__ */ jsx2(CheckCircle, { className: "w-4 h-4" }) }) : status === "cancelled" ? /* @__PURE__ */ jsx2(Tag, { label: "Canceled", variant: "grey", icon: /* @__PURE__ */ jsx2(Ban, { className: "w-4 h-4" }) }) : /* @__PURE__ */ jsx2(Tag, { label: "Rejected", variant: "error", icon: /* @__PURE__ */ jsx2(XCircle, { className: "w-4 h-4" }) }) })
|
|
606
602
|
]
|
|
607
603
|
}
|
|
608
604
|
);
|
|
@@ -771,10 +767,11 @@ function formatToolResult(value) {
|
|
|
771
767
|
|
|
772
768
|
// src/components/chat/tool-call-blocks.tsx
|
|
773
769
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
770
|
+
var CODE_PRE_CLASS = "bg-ods-bg border border-ods-border rounded-md p-[var(--spacing-system-sf)] w-full max-h-64 overflow-auto text-xs leading-5 text-ods-text-primary font-mono whitespace-pre";
|
|
774
771
|
function ArgRow({ argKey, value }) {
|
|
775
772
|
const formatted = formatToolArgValue(value);
|
|
776
773
|
if (formatted.kind === "inline") {
|
|
777
|
-
return /* @__PURE__ */ jsxs3("div", { className: "flex gap-
|
|
774
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex gap-[var(--spacing-system-xxs)] items-start w-full", children: [
|
|
778
775
|
/* @__PURE__ */ jsxs3("span", { className: "shrink-0 text-ods-text-secondary", children: [
|
|
779
776
|
argKey,
|
|
780
777
|
":"
|
|
@@ -782,40 +779,41 @@ function ArgRow({ argKey, value }) {
|
|
|
782
779
|
/* @__PURE__ */ jsx4("span", { className: "flex-1 min-w-0 text-ods-text-primary break-all", children: formatted.text })
|
|
783
780
|
] });
|
|
784
781
|
}
|
|
785
|
-
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-
|
|
782
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] items-start w-full", children: [
|
|
786
783
|
/* @__PURE__ */ jsxs3("span", { className: "text-ods-text-secondary", children: [
|
|
787
784
|
argKey,
|
|
788
785
|
":"
|
|
789
786
|
] }),
|
|
790
|
-
/* @__PURE__ */ jsx4("pre", { className:
|
|
787
|
+
/* @__PURE__ */ jsx4("pre", { className: CODE_PRE_CLASS, children: /* @__PURE__ */ jsx4("code", { children: formatted.text }) })
|
|
791
788
|
] });
|
|
792
789
|
}
|
|
793
790
|
function ResultBlock({ result, className }) {
|
|
794
791
|
const formatted = formatToolResult(result);
|
|
795
792
|
if (!formatted.text) return null;
|
|
796
793
|
if (formatted.kind === "inline") {
|
|
797
|
-
return /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-
|
|
794
|
+
return /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-[var(--spacing-system-xxs)] items-start w-full", className), children: [
|
|
798
795
|
/* @__PURE__ */ jsx4("span", { className: "text-ods-text-secondary", children: "Result:" }),
|
|
799
796
|
/* @__PURE__ */ jsx4("span", { className: "text-ods-text-primary break-all", children: formatted.text })
|
|
800
797
|
] });
|
|
801
798
|
}
|
|
802
|
-
return /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-
|
|
799
|
+
return /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-[var(--spacing-system-xxs)] items-start w-full", className), children: [
|
|
803
800
|
/* @__PURE__ */ jsx4("span", { className: "text-ods-text-secondary", children: "Result:" }),
|
|
804
|
-
/* @__PURE__ */ jsx4("pre", { className:
|
|
801
|
+
/* @__PURE__ */ jsx4("pre", { className: CODE_PRE_CLASS, children: /* @__PURE__ */ jsx4("code", { children: formatted.text }) })
|
|
805
802
|
] });
|
|
806
803
|
}
|
|
807
804
|
|
|
808
805
|
// src/components/chat/approval-batch-message.tsx
|
|
809
806
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
810
807
|
var COMMAND_BODY_KEYS = new Set(COMMAND_BODY_ARG_KEYS);
|
|
811
|
-
function renderStatusTag(status) {
|
|
808
|
+
function renderStatusTag(status, isClient, resolvedByName) {
|
|
809
|
+
const suffix = isClient && resolvedByName ? ` by ${resolvedByName}` : "";
|
|
812
810
|
if (status === "approved") {
|
|
813
|
-
return /* @__PURE__ */ jsx5(Tag, { label:
|
|
811
|
+
return /* @__PURE__ */ jsx5(Tag, { label: `Approved${suffix}`, variant: "success", icon: /* @__PURE__ */ jsx5(CheckCircleIcon, { className: "w-4 h-4" }) });
|
|
814
812
|
}
|
|
815
813
|
if (status === "cancelled") {
|
|
816
|
-
return /* @__PURE__ */ jsx5(Tag, { label:
|
|
814
|
+
return /* @__PURE__ */ jsx5(Tag, { label: `Canceled${suffix}`, variant: "grey", icon: /* @__PURE__ */ jsx5(XmarkIcon, { className: "w-4 h-4" }) });
|
|
817
815
|
}
|
|
818
|
-
return /* @__PURE__ */ jsx5(Tag, { label:
|
|
816
|
+
return /* @__PURE__ */ jsx5(Tag, { label: `Rejected${suffix}`, variant: "error", icon: /* @__PURE__ */ jsx5(XmarkCircleIcon, { className: "w-4 h-4" }) });
|
|
819
817
|
}
|
|
820
818
|
function getArgEntries(call) {
|
|
821
819
|
const args = call.toolCallArguments;
|
|
@@ -831,47 +829,66 @@ function ExecutionStatusIcon({
|
|
|
831
829
|
if (execution.success === false) return /* @__PURE__ */ jsx5(XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
|
|
832
830
|
return /* @__PURE__ */ jsx5(CheckCircleIcon, { className: "w-4 h-4 text-ods-success" });
|
|
833
831
|
}
|
|
834
|
-
function ToolCallRow({ call, expanded, onToggle, batchStatus, execution, showExecutionStatus }) {
|
|
832
|
+
function ToolCallRow({ call, expanded, onToggle, batchStatus, execution, showExecutionStatus, isClient }) {
|
|
835
833
|
const command = getCommandText(call);
|
|
836
834
|
const args = getArgEntries(call);
|
|
837
835
|
const toolType = call.toolType || "OPENFRAME";
|
|
838
836
|
const { innerRef, containerStyle } = useCollapsible({ expanded });
|
|
839
837
|
const result = execution?.status === "done" ? execution.result : void 0;
|
|
840
838
|
const hasExpandableBody = args.length > 0 || typeof result === "string" && result.length > 0;
|
|
841
|
-
return /* @__PURE__ */ jsxs4(
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
839
|
+
return /* @__PURE__ */ jsxs4(
|
|
840
|
+
"div",
|
|
841
|
+
{
|
|
842
|
+
className: cn(
|
|
843
|
+
"bg-ods-card flex flex-col items-start w-full",
|
|
844
|
+
// ADMIN: rows share one outer card, separated by a bottom border.
|
|
845
|
+
// CLIENT (Fae): each command is its own self-contained bordered box
|
|
846
|
+
// (Figma 1092-2804 / 1972-7925) — the outer component is frameless.
|
|
847
|
+
isClient ? "border border-ods-border rounded-[6px] overflow-hidden" : "border-b border-ods-border last:border-b-0"
|
|
848
|
+
),
|
|
849
|
+
children: [
|
|
850
|
+
/* @__PURE__ */ jsxs4(
|
|
851
|
+
"button",
|
|
852
|
+
{
|
|
853
|
+
type: "button",
|
|
854
|
+
onClick: onToggle,
|
|
855
|
+
className: "flex gap-[var(--spacing-system-xsf)] items-start w-full p-[var(--spacing-system-sf)] cursor-pointer text-left",
|
|
856
|
+
children: [
|
|
857
|
+
!isClient && /* @__PURE__ */ jsx5("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx5(ToolIcon, { toolType, size: 16 }) }),
|
|
858
|
+
/* @__PURE__ */ jsx5(
|
|
859
|
+
"div",
|
|
860
|
+
{
|
|
861
|
+
className: cn(
|
|
862
|
+
"flex-1 min-w-0 text-h6",
|
|
863
|
+
expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
|
|
864
|
+
),
|
|
865
|
+
children: command
|
|
866
|
+
}
|
|
856
867
|
),
|
|
857
|
-
children:
|
|
868
|
+
showExecutionStatus && /* @__PURE__ */ jsx5("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx5(ExecutionStatusIcon, { batchStatus, execution }) }),
|
|
869
|
+
/* @__PURE__ */ jsx5("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx5(ExpandChevron, { expanded }) })
|
|
870
|
+
]
|
|
871
|
+
}
|
|
872
|
+
),
|
|
873
|
+
/* @__PURE__ */ jsx5("div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ jsx5("div", { ref: innerRef, children: hasExpandableBody && /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-0 items-start w-full text-h6 px-[var(--spacing-system-sf)] pb-[var(--spacing-system-sf)] bg-ods-card", children: [
|
|
874
|
+
args.map(([key, value]) => /* @__PURE__ */ jsx5(ArgRow, { argKey: key, value }, key)),
|
|
875
|
+
result && /* @__PURE__ */ jsx5(
|
|
876
|
+
ResultBlock,
|
|
877
|
+
{
|
|
878
|
+
result,
|
|
879
|
+
className: args.length > 0 ? "mt-[var(--spacing-system-xsf)]" : void 0
|
|
858
880
|
}
|
|
859
|
-
)
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
),
|
|
865
|
-
/* @__PURE__ */ jsx5("div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ jsx5("div", { ref: innerRef, children: hasExpandableBody && /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2 items-start w-full text-sm font-medium leading-5 p-3 bg-ods-card", children: [
|
|
866
|
-
args.map(([key, value]) => /* @__PURE__ */ jsx5(ArgRow, { argKey: key, value }, key)),
|
|
867
|
-
result && /* @__PURE__ */ jsx5(ResultBlock, { result })
|
|
868
|
-
] }) }) })
|
|
869
|
-
] });
|
|
881
|
+
)
|
|
882
|
+
] }) }) })
|
|
883
|
+
]
|
|
884
|
+
}
|
|
885
|
+
);
|
|
870
886
|
}
|
|
871
887
|
var ApprovalBatchMessage = forwardRef2(
|
|
872
|
-
({ className, data, onApprove, onReject, status = "pending", maxBodyHeight, resolvedByName, showExecutionStatus = true, ...props }, ref) => {
|
|
888
|
+
({ className, data, onApprove, onReject, status = "pending", maxBodyHeight, resolvedByName, showExecutionStatus = true, assistantType, ...props }, ref) => {
|
|
873
889
|
const [expandedId, setExpandedId] = useState3(null);
|
|
874
890
|
const [isProcessing, setIsProcessing] = useState3(false);
|
|
891
|
+
const isClient = assistantType === "fae";
|
|
875
892
|
const explanations = data.toolCalls.map((c) => c.toolExplanation?.trim()).filter((s) => !!s);
|
|
876
893
|
const handleApprove = async () => {
|
|
877
894
|
setIsProcessing(true);
|
|
@@ -895,7 +912,10 @@ var ApprovalBatchMessage = forwardRef2(
|
|
|
895
912
|
{
|
|
896
913
|
ref,
|
|
897
914
|
className: cn(
|
|
898
|
-
"
|
|
915
|
+
"flex flex-col mb-[var(--spacing-system-xsf)]",
|
|
916
|
+
// ADMIN: one framed card. CLIENT (Fae): frameless container — the
|
|
917
|
+
// bordered command box(es) + button/status row stacked 16px apart.
|
|
918
|
+
isClient ? "gap-[var(--spacing-system-mf)]" : "bg-ods-card border border-ods-border rounded-md overflow-hidden",
|
|
899
919
|
className
|
|
900
920
|
),
|
|
901
921
|
...props,
|
|
@@ -903,7 +923,11 @@ var ApprovalBatchMessage = forwardRef2(
|
|
|
903
923
|
/* @__PURE__ */ jsx5(
|
|
904
924
|
"div",
|
|
905
925
|
{
|
|
906
|
-
className: cn(
|
|
926
|
+
className: cn(
|
|
927
|
+
"flex flex-col",
|
|
928
|
+
isClient && "gap-[var(--spacing-system-mf)]",
|
|
929
|
+
maxBodyHeight != null && "overflow-y-auto overscroll-contain"
|
|
930
|
+
),
|
|
907
931
|
style: maxBodyHeight != null ? { maxHeight: maxBodyHeight } : void 0,
|
|
908
932
|
children: data.toolCalls.map((call) => /* @__PURE__ */ jsx5(
|
|
909
933
|
ToolCallRow,
|
|
@@ -915,53 +939,65 @@ var ApprovalBatchMessage = forwardRef2(
|
|
|
915
939
|
),
|
|
916
940
|
batchStatus: status,
|
|
917
941
|
execution: data.executions?.[call.toolExecutionRequestId],
|
|
918
|
-
showExecutionStatus
|
|
942
|
+
showExecutionStatus,
|
|
943
|
+
isClient
|
|
919
944
|
},
|
|
920
945
|
call.toolExecutionRequestId
|
|
921
946
|
))
|
|
922
947
|
}
|
|
923
948
|
),
|
|
924
|
-
showFooterBlock && /* @__PURE__ */ jsxs4(
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
onClick: handleApprove,
|
|
933
|
-
disabled: isProcessing,
|
|
934
|
-
className: cn(
|
|
935
|
-
"bg-ods-accent hover:bg-ods-accent/90",
|
|
936
|
-
"font-mono font-medium md:!text-sm text-ods-bg uppercase tracking-[-0.28px]",
|
|
937
|
-
"px-2 py-1 h-auto"
|
|
938
|
-
),
|
|
939
|
-
children: "Approve"
|
|
940
|
-
}
|
|
949
|
+
showFooterBlock && /* @__PURE__ */ jsxs4(
|
|
950
|
+
"div",
|
|
951
|
+
{
|
|
952
|
+
className: cn(
|
|
953
|
+
"flex flex-col gap-[var(--spacing-system-xsf)] items-start justify-center",
|
|
954
|
+
// ADMIN: padded footer inside the card, divided from the list.
|
|
955
|
+
// CLIENT (Fae): buttons/status sit flush outside the box.
|
|
956
|
+
!isClient && "bg-ods-card border-t border-ods-border p-[var(--spacing-system-sf)]"
|
|
941
957
|
),
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
{
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
958
|
+
children: [
|
|
959
|
+
explanations.length > 0 && /* @__PURE__ */ jsx5("ul", { className: "list-disc pl-5 text-h6 text-ods-text-primary w-full", children: explanations.map((expl, i) => /* @__PURE__ */ jsx5("li", { children: expl }, i)) }),
|
|
960
|
+
status === "pending" ? /* @__PURE__ */ jsxs4("div", { className: "flex gap-[var(--spacing-system-xsf)] items-center", children: [
|
|
961
|
+
/* @__PURE__ */ jsx5(
|
|
962
|
+
Button,
|
|
963
|
+
{
|
|
964
|
+
size: "small-legacy",
|
|
965
|
+
variant: "accent",
|
|
966
|
+
onClick: handleApprove,
|
|
967
|
+
disabled: isProcessing,
|
|
968
|
+
className: cn(
|
|
969
|
+
"bg-ods-accent hover:bg-ods-accent/90",
|
|
970
|
+
"text-h5 text-ods-bg",
|
|
971
|
+
"px-[var(--spacing-system-xsf)] h-8"
|
|
972
|
+
),
|
|
973
|
+
children: "Approve"
|
|
974
|
+
}
|
|
953
975
|
),
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
976
|
+
/* @__PURE__ */ jsx5(
|
|
977
|
+
Button,
|
|
978
|
+
{
|
|
979
|
+
size: "small-legacy",
|
|
980
|
+
variant: "outline",
|
|
981
|
+
onClick: handleReject,
|
|
982
|
+
disabled: isProcessing,
|
|
983
|
+
className: cn(
|
|
984
|
+
"bg-ods-card border-ods-border",
|
|
985
|
+
"text-h5 text-ods-text-primary",
|
|
986
|
+
"hover:bg-ods-bg px-[var(--spacing-system-xsf)] h-8"
|
|
987
|
+
),
|
|
988
|
+
children: "Reject"
|
|
989
|
+
}
|
|
990
|
+
)
|
|
991
|
+
] }) : /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
992
|
+
renderStatusTag(status, isClient, resolvedByName),
|
|
993
|
+
!isClient && resolvedByName && /* @__PURE__ */ jsxs4("span", { className: "text-h6 text-ods-text-secondary", children: [
|
|
994
|
+
"by ",
|
|
995
|
+
resolvedByName
|
|
996
|
+
] })
|
|
997
|
+
] })
|
|
998
|
+
]
|
|
999
|
+
}
|
|
1000
|
+
)
|
|
965
1001
|
]
|
|
966
1002
|
}
|
|
967
1003
|
);
|
|
@@ -4336,9 +4372,10 @@ import { forwardRef as forwardRef10, useMemo as useMemo4, useState as useState9
|
|
|
4336
4372
|
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4337
4373
|
var COMMAND_BODY_KEYS2 = new Set(COMMAND_BODY_ARG_KEYS);
|
|
4338
4374
|
var ToolExecutionDisplay = forwardRef10(
|
|
4339
|
-
({ className, message: message2, ...props }, ref) => {
|
|
4375
|
+
({ className, message: message2, assistantType, ...props }, ref) => {
|
|
4340
4376
|
const [expanded, setExpanded] = useState9(false);
|
|
4341
4377
|
const { innerRef, containerStyle } = useCollapsible({ expanded });
|
|
4378
|
+
const isClient = assistantType === "fae";
|
|
4342
4379
|
const isExecuting = message2.type === "EXECUTING_TOOL";
|
|
4343
4380
|
const isExecuted = message2.type === "EXECUTED_TOOL";
|
|
4344
4381
|
const integratedToolType = message2.integratedToolType || "OPENFRAME";
|
|
@@ -4369,6 +4406,8 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4369
4406
|
{
|
|
4370
4407
|
ref,
|
|
4371
4408
|
className: cn(
|
|
4409
|
+
// The command running block keeps its bordered box in both chats
|
|
4410
|
+
// (Figma 1972-6109). CLIENT (Fae) only drops the tool icon below.
|
|
4372
4411
|
"bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full flex flex-col",
|
|
4373
4412
|
className
|
|
4374
4413
|
),
|
|
@@ -4381,12 +4420,12 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4381
4420
|
className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
|
|
4382
4421
|
onClick: () => setExpanded((prev) => !prev),
|
|
4383
4422
|
children: [
|
|
4384
|
-
/* @__PURE__ */ jsx21("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx21(ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4423
|
+
!isClient && /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx21(ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4385
4424
|
/* @__PURE__ */ jsx21(
|
|
4386
4425
|
"div",
|
|
4387
4426
|
{
|
|
4388
4427
|
className: cn(
|
|
4389
|
-
"flex-1 min-w-0 text-
|
|
4428
|
+
"flex-1 min-w-0 text-h6",
|
|
4390
4429
|
expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
|
|
4391
4430
|
),
|
|
4392
4431
|
children: previewText
|
|
@@ -4397,13 +4436,28 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4397
4436
|
]
|
|
4398
4437
|
}
|
|
4399
4438
|
),
|
|
4400
|
-
/* @__PURE__ */ jsx21("div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ jsx21("div", { ref: innerRef, children: hasBody && /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-
|
|
4439
|
+
/* @__PURE__ */ jsx21("div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ jsx21("div", { ref: innerRef, children: hasBody && /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-0 items-start w-full text-h6 p-[var(--spacing-system-sf)] bg-ods-card", children: [
|
|
4401
4440
|
argEntries.map(([key, value]) => /* @__PURE__ */ jsx21(ArgRow, { argKey: key, value }, key)),
|
|
4402
|
-
hasResult && /* @__PURE__ */ jsx21(
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4441
|
+
hasResult && /* @__PURE__ */ jsx21(
|
|
4442
|
+
ResultBlock,
|
|
4443
|
+
{
|
|
4444
|
+
result: message2.result,
|
|
4445
|
+
className: argEntries.length > 0 ? "mt-[var(--spacing-system-xsf)]" : void 0
|
|
4446
|
+
}
|
|
4447
|
+
),
|
|
4448
|
+
isExecuting && /* @__PURE__ */ jsxs17(
|
|
4449
|
+
"div",
|
|
4450
|
+
{
|
|
4451
|
+
className: cn(
|
|
4452
|
+
"flex flex-col gap-[var(--spacing-system-xxs)] items-start w-full",
|
|
4453
|
+
argEntries.length > 0 && "mt-[var(--spacing-system-xsf)]"
|
|
4454
|
+
),
|
|
4455
|
+
children: [
|
|
4456
|
+
/* @__PURE__ */ jsx21("span", { className: "text-ods-text-secondary", children: "Result:" }),
|
|
4457
|
+
/* @__PURE__ */ jsx21(DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" })
|
|
4458
|
+
]
|
|
4459
|
+
}
|
|
4460
|
+
)
|
|
4407
4461
|
] }) }) })
|
|
4408
4462
|
]
|
|
4409
4463
|
}
|
|
@@ -5159,7 +5213,8 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5159
5213
|
return /* @__PURE__ */ jsx24(
|
|
5160
5214
|
ToolExecutionDisplay,
|
|
5161
5215
|
{
|
|
5162
|
-
message: segment.data
|
|
5216
|
+
message: segment.data,
|
|
5217
|
+
assistantType
|
|
5163
5218
|
},
|
|
5164
5219
|
index
|
|
5165
5220
|
);
|
|
@@ -5170,7 +5225,8 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5170
5225
|
data: segment.data,
|
|
5171
5226
|
status: segment.status,
|
|
5172
5227
|
onApprove: segment.onApprove,
|
|
5173
|
-
onReject: segment.onReject
|
|
5228
|
+
onReject: segment.onReject,
|
|
5229
|
+
assistantType
|
|
5174
5230
|
},
|
|
5175
5231
|
index
|
|
5176
5232
|
);
|
|
@@ -5182,7 +5238,8 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5182
5238
|
status: segment.status,
|
|
5183
5239
|
resolvedByName: segment.resolvedByName,
|
|
5184
5240
|
onApprove: segment.onApprove,
|
|
5185
|
-
onReject: segment.onReject
|
|
5241
|
+
onReject: segment.onReject,
|
|
5242
|
+
assistantType
|
|
5186
5243
|
},
|
|
5187
5244
|
index
|
|
5188
5245
|
);
|
|
@@ -6866,6 +6923,7 @@ function renderQuickActionIcon(a) {
|
|
|
6866
6923
|
var DEFAULT_TITLE = "Guide Mode Chat";
|
|
6867
6924
|
function GuideWelcome({
|
|
6868
6925
|
title = DEFAULT_TITLE,
|
|
6926
|
+
icon,
|
|
6869
6927
|
subtitle,
|
|
6870
6928
|
subtitleLoading = false,
|
|
6871
6929
|
quickActions = [],
|
|
@@ -6922,7 +6980,11 @@ function GuideWelcome({
|
|
|
6922
6980
|
className: "flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto",
|
|
6923
6981
|
children: [
|
|
6924
6982
|
/* @__PURE__ */ jsxs32("div", { className: "flex flex-1 flex-col items-center gap-[var(--spacing-system-l)] px-[var(--spacing-system-l)] py-[var(--spacing-system-xxl)] text-center", children: [
|
|
6925
|
-
|
|
6983
|
+
icon && (icon.name || icon.url) ? (
|
|
6984
|
+
// Agent-mode identity glyph (chat-config Identity tab). Sized to
|
|
6985
|
+
// match the default Mingo mark (48px).
|
|
6986
|
+
/* @__PURE__ */ jsx38(EntityIcon, { icon: { name: icon.name, url: icon.url, props: icon.props }, size: 48 })
|
|
6987
|
+
) : /* @__PURE__ */ jsx38(
|
|
6926
6988
|
MingoIcon,
|
|
6927
6989
|
{
|
|
6928
6990
|
className: "h-12 w-12",
|
|
@@ -45464,8 +45526,11 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
45464
45526
|
// src/components/chat/hooks/use-empty-state-config.ts
|
|
45465
45527
|
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
45466
45528
|
var EMPTY_STATE_FALLBACK = {
|
|
45529
|
+
name: null,
|
|
45530
|
+
icon: null,
|
|
45467
45531
|
greeting: null,
|
|
45468
45532
|
enabledRagTableIds: [],
|
|
45533
|
+
quickActions: [],
|
|
45469
45534
|
suggestedQueries: []
|
|
45470
45535
|
};
|
|
45471
45536
|
async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
@@ -45480,8 +45545,11 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
45480
45545
|
}
|
|
45481
45546
|
const data = await res.json();
|
|
45482
45547
|
return {
|
|
45548
|
+
name: data?.name ?? null,
|
|
45549
|
+
icon: data?.icon ?? null,
|
|
45483
45550
|
greeting: data?.greeting ?? null,
|
|
45484
45551
|
enabledRagTableIds: data?.enabledRagTableIds ?? [],
|
|
45552
|
+
quickActions: data?.quickActions ?? [],
|
|
45485
45553
|
suggestedQueries: data?.suggestedQueries ?? []
|
|
45486
45554
|
};
|
|
45487
45555
|
} catch (err) {
|
|
@@ -48803,6 +48871,10 @@ function EmbeddableChatInner({
|
|
|
48803
48871
|
const effectiveGreeting = emptyStateConfig.greeting ?? emptyStateGreeting;
|
|
48804
48872
|
const effectiveEnabledRagTableIds = emptyStateUrl ? emptyStateConfig.enabledRagTableIds : enabledRagTableIds;
|
|
48805
48873
|
const effectiveSuggestedQueries = emptyStateUrl ? emptyStateConfig.suggestedQueries : suggestedQueries;
|
|
48874
|
+
const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
|
|
48875
|
+
const effectiveAssistantName = emptyStateConfig.name;
|
|
48876
|
+
const effectiveAssistantIcon = emptyStateConfig.icon;
|
|
48877
|
+
const headerAssistantName = effectiveAssistantName ?? (typeof guideWelcome?.title === "string" ? guideWelcome.title : null);
|
|
48806
48878
|
const {
|
|
48807
48879
|
messages: rawMessages,
|
|
48808
48880
|
isLoading: chatLoading,
|
|
@@ -49023,12 +49095,24 @@ function EmbeddableChatInner({
|
|
|
49023
49095
|
[sendMessage, readyAttachments, viewUrlPrefix, clearAttachments, contextItems]
|
|
49024
49096
|
);
|
|
49025
49097
|
const guideSuggestedActions = useMemo43(
|
|
49026
|
-
() =>
|
|
49027
|
-
|
|
49028
|
-
|
|
49029
|
-
|
|
49030
|
-
|
|
49031
|
-
|
|
49098
|
+
() => {
|
|
49099
|
+
if (effectiveQuickActions.length > 0) {
|
|
49100
|
+
return effectiveQuickActions.map((qa) => ({
|
|
49101
|
+
id: qa.id,
|
|
49102
|
+
label: qa.label,
|
|
49103
|
+
prompt: qa.prompt,
|
|
49104
|
+
iconName: qa.iconName,
|
|
49105
|
+
iconUrl: qa.iconUrl,
|
|
49106
|
+
iconProps: qa.iconProps
|
|
49107
|
+
}));
|
|
49108
|
+
}
|
|
49109
|
+
return (effectiveSuggestedQueries ?? []).map((q, i) => ({
|
|
49110
|
+
id: `suggested-${i}`,
|
|
49111
|
+
label: q,
|
|
49112
|
+
prompt: q
|
|
49113
|
+
}));
|
|
49114
|
+
},
|
|
49115
|
+
[effectiveQuickActions, effectiveSuggestedQueries]
|
|
49032
49116
|
);
|
|
49033
49117
|
const {
|
|
49034
49118
|
fetchArchivedDialogs,
|
|
@@ -49161,7 +49245,7 @@ function EmbeddableChatInner({
|
|
|
49161
49245
|
ChatPanelHeader,
|
|
49162
49246
|
{
|
|
49163
49247
|
showBack: hasConversation || guideCanReturnToMingo,
|
|
49164
|
-
title: hasConversation ? activeDialog?.title || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
|
|
49248
|
+
title: hasConversation ? activeDialog?.title || "New Chat" : isGuideEmpty ? headerAssistantName ?? "Mingo Guide" : "Current Chats",
|
|
49165
49249
|
backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
|
|
49166
49250
|
isArchivedView: isViewingArchived,
|
|
49167
49251
|
onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
|
|
@@ -49280,6 +49364,8 @@ function EmbeddableChatInner({
|
|
|
49280
49364
|
subtitle: effectiveGreeting ?? void 0,
|
|
49281
49365
|
subtitleLoading: emptyStateLoading,
|
|
49282
49366
|
...guideWelcome,
|
|
49367
|
+
title: effectiveAssistantName ?? guideWelcome?.title,
|
|
49368
|
+
icon: effectiveAssistantIcon ?? guideWelcome?.icon,
|
|
49283
49369
|
quickActions: guideWelcome?.quickActions ?? guideSuggestedActions,
|
|
49284
49370
|
onQuickAction: (action) => {
|
|
49285
49371
|
setQuickActionPreview(null);
|
|
@@ -50363,4 +50449,4 @@ export {
|
|
|
50363
50449
|
LogsList,
|
|
50364
50450
|
assets
|
|
50365
50451
|
};
|
|
50366
|
-
//# sourceMappingURL=chunk-
|
|
50452
|
+
//# sourceMappingURL=chunk-HSZJGPVA.js.map
|