@nextclaw/agent-chat-ui 0.4.12 → 0.5.1-beta.0
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/index.d.ts +50 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -29
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -186,6 +186,32 @@ type ChatFileOperationBlockViewModel = {
|
|
|
186
186
|
newStartLine?: number;
|
|
187
187
|
truncated?: boolean;
|
|
188
188
|
};
|
|
189
|
+
type ChatUiShowContentPurpose = "read" | "preview" | "edit" | "interact";
|
|
190
|
+
type ChatUiShowContentPlacement = "inline" | "side_panel";
|
|
191
|
+
type ChatUiShowContentTarget = {
|
|
192
|
+
type: "file";
|
|
193
|
+
payload: {
|
|
194
|
+
path: string;
|
|
195
|
+
line?: number;
|
|
196
|
+
column?: number;
|
|
197
|
+
};
|
|
198
|
+
} | {
|
|
199
|
+
type: "url";
|
|
200
|
+
payload: {
|
|
201
|
+
url: string;
|
|
202
|
+
};
|
|
203
|
+
} | {
|
|
204
|
+
type: "panel_app";
|
|
205
|
+
payload: {
|
|
206
|
+
appId: string;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
type ChatUiShowContentRequest = {
|
|
210
|
+
target: ChatUiShowContentTarget;
|
|
211
|
+
title?: string;
|
|
212
|
+
purpose?: ChatUiShowContentPurpose;
|
|
213
|
+
placement?: ChatUiShowContentPlacement;
|
|
214
|
+
};
|
|
189
215
|
type ChatToolActionViewModel = {
|
|
190
216
|
kind: "open-session";
|
|
191
217
|
sessionId: string;
|
|
@@ -193,6 +219,10 @@ type ChatToolActionViewModel = {
|
|
|
193
219
|
agentId?: string;
|
|
194
220
|
label?: string;
|
|
195
221
|
parentSessionId?: string;
|
|
222
|
+
} | {
|
|
223
|
+
kind: "show-content";
|
|
224
|
+
label: string;
|
|
225
|
+
request: ChatUiShowContentRequest;
|
|
196
226
|
};
|
|
197
227
|
type ChatFileOpenActionViewModel = {
|
|
198
228
|
path: string;
|
|
@@ -208,6 +238,13 @@ type ChatFileOpenActionViewModel = {
|
|
|
208
238
|
newStartLine?: number;
|
|
209
239
|
fullLines?: ChatFileOperationLineViewModel[];
|
|
210
240
|
};
|
|
241
|
+
type ChatPanelAppCardViewModel = {
|
|
242
|
+
appId: string;
|
|
243
|
+
title?: string;
|
|
244
|
+
action: Extract<ChatToolActionViewModel, {
|
|
245
|
+
kind: "show-content";
|
|
246
|
+
}>;
|
|
247
|
+
};
|
|
211
248
|
type ChatToolPartViewModel = {
|
|
212
249
|
kind: "call" | "result";
|
|
213
250
|
toolName: string;
|
|
@@ -224,6 +261,7 @@ type ChatToolPartViewModel = {
|
|
|
224
261
|
outputLabel: string;
|
|
225
262
|
emptyLabel: string;
|
|
226
263
|
action?: ChatToolActionViewModel;
|
|
264
|
+
panelApp?: ChatPanelAppCardViewModel;
|
|
227
265
|
fileOperation?: {
|
|
228
266
|
blocks: ChatFileOperationBlockViewModel[];
|
|
229
267
|
};
|
|
@@ -297,6 +335,7 @@ type ChatMessageListProps = {
|
|
|
297
335
|
onToolAction?: (action: ChatToolActionViewModel) => void;
|
|
298
336
|
onFileOpen?: (action: ChatFileOpenActionViewModel) => void;
|
|
299
337
|
renderToolAgent?: (agentId: string) => ReactNode;
|
|
338
|
+
renderPanelAppCard?: (panelApp: ChatPanelAppCardViewModel) => ReactNode;
|
|
300
339
|
};
|
|
301
340
|
//#endregion
|
|
302
341
|
//#region src/components/chat/ui/chat-input-bar/chat-input-bar.d.ts
|
|
@@ -312,7 +351,16 @@ type ChatInputBarHandle = {
|
|
|
312
351
|
declare const ChatInputBar: _$react.ForwardRefExoticComponent<ChatInputBarProps & _$react.RefAttributes<ChatInputBarHandle>>;
|
|
313
352
|
//#endregion
|
|
314
353
|
//#region src/components/chat/ui/chat-message-list/chat-message-list.d.ts
|
|
315
|
-
declare function ChatMessageList(
|
|
354
|
+
declare function ChatMessageList({
|
|
355
|
+
className,
|
|
356
|
+
isSending,
|
|
357
|
+
messages,
|
|
358
|
+
onFileOpen,
|
|
359
|
+
onToolAction,
|
|
360
|
+
renderPanelAppCard,
|
|
361
|
+
renderToolAgent,
|
|
362
|
+
texts
|
|
363
|
+
}: ChatMessageListProps): _$react_jsx_runtime0.JSX.Element;
|
|
316
364
|
//#endregion
|
|
317
365
|
//#region src/components/chat/ui/chat-message-list/chat-message-markdown.d.ts
|
|
318
366
|
type ChatMessageMarkdownProps = {
|
|
@@ -417,5 +465,5 @@ declare function resolveChatComposerSlashTrigger(nodes: ChatComposerNode[], sele
|
|
|
417
465
|
end: number;
|
|
418
466
|
} | null;
|
|
419
467
|
//#endregion
|
|
420
|
-
export { type ChatComposerNode, type ChatComposerSelection, type ChatComposerTextNode, type ChatComposerTokenKind, type ChatComposerTokenNode, type ChatContextWindowIndicator, type ChatFileOpenActionViewModel, type ChatFileOperationBlockViewModel, type ChatFileOperationLineViewModel, type ChatInlineContentSegmentViewModel, type ChatInlineHint, type ChatInlineTokenViewModel, ChatInputBar, type ChatInputBarActionsProps, type ChatInputBarHandle, type ChatInputBarProps, type ChatInputBarToolbarProps, ChatMessageList, type ChatMessageListProps, ChatMessageMarkdown, type ChatMessagePartViewModel, type ChatMessageRole, type ChatMessageTexts, type ChatMessageViewModel, type ChatSelectedItem, type ChatSkillPickerOption, type ChatSkillPickerProps, type ChatSlashItem, type ChatSlashMenuProps, type ChatTexts, type ChatToolActionViewModel, type ChatToolPartViewModel, type ChatToolbarAccessory, type ChatToolbarAccessoryIcon, type ChatToolbarIcon, type ChatToolbarSelect, type ChatToolbarSelectGroup, type ChatToolbarSelectOption, FileOperationCodeSurface, FileOperationLinesGrid, copyText, createChatComposerNodesFromText, createChatComposerTextNode, createChatComposerTokenNode, createEmptyChatComposerNodes, extractChatComposerTokenKeys, normalizeChatComposerNodes, removeChatComposerTokenNodes, replaceChatComposerRange, resolveChatComposerSlashTrigger, serializeChatComposerDocument, serializeChatComposerPlainText, useActiveItemScroll, useCopyFeedback, useElementWidth, useStickyBottomScroll };
|
|
468
|
+
export { type ChatComposerNode, type ChatComposerSelection, type ChatComposerTextNode, type ChatComposerTokenKind, type ChatComposerTokenNode, type ChatContextWindowIndicator, type ChatFileOpenActionViewModel, type ChatFileOperationBlockViewModel, type ChatFileOperationLineViewModel, type ChatInlineContentSegmentViewModel, type ChatInlineHint, type ChatInlineTokenViewModel, ChatInputBar, type ChatInputBarActionsProps, type ChatInputBarHandle, type ChatInputBarProps, type ChatInputBarToolbarProps, ChatMessageList, type ChatMessageListProps, ChatMessageMarkdown, type ChatMessagePartViewModel, type ChatMessageRole, type ChatMessageTexts, type ChatMessageViewModel, type ChatPanelAppCardViewModel, type ChatSelectedItem, type ChatSkillPickerOption, type ChatSkillPickerProps, type ChatSlashItem, type ChatSlashMenuProps, type ChatTexts, type ChatToolActionViewModel, type ChatToolPartViewModel, type ChatToolbarAccessory, type ChatToolbarAccessoryIcon, type ChatToolbarIcon, type ChatToolbarSelect, type ChatToolbarSelectGroup, type ChatToolbarSelectOption, type ChatUiShowContentPlacement, type ChatUiShowContentPurpose, type ChatUiShowContentRequest, type ChatUiShowContentTarget, FileOperationCodeSurface, FileOperationLinesGrid, copyText, createChatComposerNodesFromText, createChatComposerTextNode, createChatComposerTokenNode, createEmptyChatComposerNodes, extractChatComposerTokenKeys, normalizeChatComposerNodes, removeChatComposerTokenNodes, replaceChatComposerRange, resolveChatComposerSlashTrigger, serializeChatComposerDocument, serializeChatComposerPlainText, useActiveItemScroll, useCopyFeedback, useElementWidth, useStickyBottomScroll };
|
|
421
469
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/components/chat/view-models/chat-ui.types.ts","../src/components/chat/ui/chat-input-bar/chat-input-bar.tsx","../src/components/chat/ui/chat-message-list/chat-message-list.tsx","../src/components/chat/ui/chat-message-list/chat-message-markdown.tsx","../src/components/chat/ui/chat-message-list/tool-card/tool-card-file-operation-lines.tsx","../src/components/chat/hooks/use-active-item-scroll.ts","../src/components/chat/hooks/use-copy-feedback.ts","../src/components/chat/hooks/use-element-width.ts","../src/components/chat/hooks/use-sticky-bottom-scroll.ts","../src/components/chat/utils/copy-text.ts","../src/components/chat/ui/chat-input-bar/chat-composer.utils.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/components/chat/view-models/chat-ui.types.ts","../src/components/chat/ui/chat-input-bar/chat-input-bar.tsx","../src/components/chat/ui/chat-message-list/chat-message-list.tsx","../src/components/chat/ui/chat-message-list/chat-message-markdown.tsx","../src/components/chat/ui/chat-message-list/tool-card/tool-card-file-operation-lines.tsx","../src/components/chat/hooks/use-active-item-scroll.ts","../src/components/chat/hooks/use-copy-feedback.ts","../src/components/chat/hooks/use-element-width.ts","../src/components/chat/hooks/use-sticky-bottom-scroll.ts","../src/components/chat/utils/copy-text.ts","../src/components/chat/ui/chat-input-bar/chat-composer.utils.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { twMerge } from "tailwind-merge";
|
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
7
7
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
8
|
-
import { AlertTriangle, ArrowUp, ArrowUpRight, Bot, Brain, BrainCircuit, Check, ChevronDown, ChevronRight, ChevronUp, Code2, Copy, ExternalLink, File, FileArchive, FileAudio2, FileCode2, FileImage, FileJson2, FileSpreadsheet, FileText, FileVideo2, Globe, Loader2, Minus, Paperclip, Puzzle, Search, Sparkles, Terminal, User, Wrench } from "lucide-react";
|
|
8
|
+
import { AlertTriangle, ArrowUp, ArrowUpRight, Bot, Brain, BrainCircuit, Check, ChevronDown, ChevronRight, ChevronUp, Code2, Copy, ExternalLink, Eye, File, FileArchive, FileAudio2, FileCode2, FileImage, FileJson2, FileSpreadsheet, FileText, FileVideo2, Globe, Loader2, Minus, Paperclip, Puzzle, Search, Sparkles, Terminal, User, Wrench } from "lucide-react";
|
|
9
9
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
10
10
|
import { cva } from "class-variance-authority";
|
|
11
11
|
import { ContentEditable } from "@lexical/react/LexicalContentEditable";
|
|
@@ -3065,22 +3065,46 @@ function ToolStatusLabel({ card }) {
|
|
|
3065
3065
|
}
|
|
3066
3066
|
//#endregion
|
|
3067
3067
|
//#region src/components/chat/ui/chat-message-list/tool-card/tool-card-header.tsx
|
|
3068
|
-
function
|
|
3069
|
-
|
|
3068
|
+
function resolveToolCardActionView(action) {
|
|
3069
|
+
if (action.kind === "show-content") return {
|
|
3070
|
+
icon: Eye,
|
|
3071
|
+
label: action.label,
|
|
3072
|
+
toneClassName: "border-sky-200/80 bg-white/85 text-sky-800 hover:bg-sky-50 focus-visible:ring-sky-300"
|
|
3073
|
+
};
|
|
3074
|
+
return {
|
|
3075
|
+
icon: ArrowUpRight,
|
|
3076
|
+
label: action.label ?? (action.sessionKind === "child" ? "Open child session" : "Open session"),
|
|
3077
|
+
toneClassName: "border-amber-200/80 bg-white/80 text-amber-800 hover:bg-amber-50 focus-visible:ring-amber-300"
|
|
3078
|
+
};
|
|
3079
|
+
}
|
|
3080
|
+
function ToolCardActionButton({ action, onAction }) {
|
|
3081
|
+
const { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } = ChatUiPrimitives;
|
|
3082
|
+
const view = resolveToolCardActionView(action);
|
|
3083
|
+
const Icon = view.icon;
|
|
3070
3084
|
const handleClick = (event) => {
|
|
3071
3085
|
event.stopPropagation();
|
|
3072
3086
|
onAction(action);
|
|
3073
3087
|
};
|
|
3074
|
-
return /* @__PURE__ */ jsx(
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3088
|
+
return /* @__PURE__ */ jsx(TooltipProvider, {
|
|
3089
|
+
delayDuration: 250,
|
|
3090
|
+
children: /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
3091
|
+
asChild: true,
|
|
3092
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
3093
|
+
type: "button",
|
|
3094
|
+
onClick: handleClick,
|
|
3095
|
+
className: cn("inline-flex h-7 w-7 items-center justify-center rounded-full border transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-1", view.toneClassName),
|
|
3096
|
+
"aria-label": view.label,
|
|
3097
|
+
title: view.label,
|
|
3098
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
3099
|
+
className: "h-3.5 w-3.5",
|
|
3100
|
+
strokeWidth: 2.5
|
|
3101
|
+
})
|
|
3102
|
+
})
|
|
3103
|
+
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
3104
|
+
side: "top",
|
|
3105
|
+
className: "text-xs",
|
|
3106
|
+
children: view.label
|
|
3107
|
+
})] })
|
|
3084
3108
|
});
|
|
3085
3109
|
}
|
|
3086
3110
|
function ToolCardHeader({ card, icon: Icon, expanded, canExpand, hideSummary = false, actionSlot, onToggle }) {
|
|
@@ -3123,8 +3147,8 @@ function ToolCardHeader({ card, icon: Icon, expanded, canExpand, hideSummary = f
|
|
|
3123
3147
|
})]
|
|
3124
3148
|
});
|
|
3125
3149
|
}
|
|
3126
|
-
function
|
|
3127
|
-
return /* @__PURE__ */ jsx(
|
|
3150
|
+
function ToolCardHeaderAction({ action, onAction }) {
|
|
3151
|
+
return /* @__PURE__ */ jsx(ToolCardActionButton, {
|
|
3128
3152
|
action,
|
|
3129
3153
|
onAction
|
|
3130
3154
|
});
|
|
@@ -3666,7 +3690,7 @@ function GenericToolCard({ card, onToolAction, renderToolAgent }) {
|
|
|
3666
3690
|
icon: Globe,
|
|
3667
3691
|
expanded,
|
|
3668
3692
|
canExpand: hasContent || isRunning,
|
|
3669
|
-
actionSlot: card.agentId || card.action && onToolAction ? /* @__PURE__ */ jsxs(Fragment$1, { children: [card.agentId && renderToolAgent ? renderToolAgent(card.agentId) : null, card.action && onToolAction ? /* @__PURE__ */ jsx(
|
|
3693
|
+
actionSlot: card.agentId || card.action && onToolAction ? /* @__PURE__ */ jsxs(Fragment$1, { children: [card.agentId && renderToolAgent ? renderToolAgent(card.agentId) : null, card.action && onToolAction ? /* @__PURE__ */ jsx(ToolCardHeaderAction, {
|
|
3670
3694
|
action: card.action,
|
|
3671
3695
|
onAction: onToolAction
|
|
3672
3696
|
}) : null] }) : void 0,
|
|
@@ -3689,6 +3713,20 @@ function GenericToolCard({ card, onToolAction, renderToolAgent }) {
|
|
|
3689
3713
|
})] });
|
|
3690
3714
|
}
|
|
3691
3715
|
//#endregion
|
|
3716
|
+
//#region src/components/chat/ui/chat-message-list/tool-card/tool-card-panel-app.tsx
|
|
3717
|
+
function PanelAppInlineToolCard({ card, onToolAction, renderPanelAppCard }) {
|
|
3718
|
+
const { panelApp } = card;
|
|
3719
|
+
if (!panelApp) return /* @__PURE__ */ jsx(GenericToolCard, {
|
|
3720
|
+
card,
|
|
3721
|
+
onToolAction
|
|
3722
|
+
});
|
|
3723
|
+
if (renderPanelAppCard) return renderPanelAppCard(panelApp);
|
|
3724
|
+
return /* @__PURE__ */ jsx(GenericToolCard, {
|
|
3725
|
+
card,
|
|
3726
|
+
onToolAction
|
|
3727
|
+
});
|
|
3728
|
+
}
|
|
3729
|
+
//#endregion
|
|
3692
3730
|
//#region src/components/chat/ui/chat-message-list/chat-tool-card.tsx
|
|
3693
3731
|
function isTerminalTool(name) {
|
|
3694
3732
|
const lowered = name.toLowerCase();
|
|
@@ -3702,7 +3740,12 @@ function isSearchTool(name) {
|
|
|
3702
3740
|
const lowered = name.toLowerCase();
|
|
3703
3741
|
return lowered === "grep_search" || lowered === "find_files" || lowered.includes("search");
|
|
3704
3742
|
}
|
|
3705
|
-
function ChatToolCard({ card, onToolAction, onFileOpen, renderToolAgent }) {
|
|
3743
|
+
function ChatToolCard({ card, onToolAction, onFileOpen, renderToolAgent, renderPanelAppCard }) {
|
|
3744
|
+
if (card.panelApp) return /* @__PURE__ */ jsx(PanelAppInlineToolCard, {
|
|
3745
|
+
card,
|
|
3746
|
+
onToolAction,
|
|
3747
|
+
renderPanelAppCard
|
|
3748
|
+
});
|
|
3706
3749
|
if (isTerminalTool(card.toolName)) return /* @__PURE__ */ jsx(TerminalExecutionView, { card });
|
|
3707
3750
|
if (isFileEditTool(card.toolName)) return /* @__PURE__ */ jsx(FileOperationView, {
|
|
3708
3751
|
card,
|
|
@@ -3736,7 +3779,7 @@ function ChatUnknownPart(props) {
|
|
|
3736
3779
|
//#endregion
|
|
3737
3780
|
//#region src/components/chat/ui/chat-message-list/chat-message.tsx
|
|
3738
3781
|
const ChatMessage = memo(function ChatMessage(props) {
|
|
3739
|
-
const { message, texts, onToolAction, onFileOpen, renderToolAgent } = props;
|
|
3782
|
+
const { message, texts, onToolAction, onFileOpen, renderToolAgent, renderPanelAppCard } = props;
|
|
3740
3783
|
const { role } = message;
|
|
3741
3784
|
const isUser = role === "user";
|
|
3742
3785
|
const isMessageInProgress = message.status === "pending" || message.status === "streaming";
|
|
@@ -3770,7 +3813,8 @@ const ChatMessage = memo(function ChatMessage(props) {
|
|
|
3770
3813
|
card: part.card,
|
|
3771
3814
|
onToolAction,
|
|
3772
3815
|
onFileOpen,
|
|
3773
|
-
renderToolAgent
|
|
3816
|
+
renderToolAgent,
|
|
3817
|
+
renderPanelAppCard
|
|
3774
3818
|
})
|
|
3775
3819
|
}, `tool-${index}`);
|
|
3776
3820
|
if (type === "file") return /* @__PURE__ */ jsx(ChatMessageFile, {
|
|
@@ -3896,11 +3940,11 @@ function ChatTypingIndicator({ label }) {
|
|
|
3896
3940
|
})]
|
|
3897
3941
|
});
|
|
3898
3942
|
}
|
|
3899
|
-
function ChatMessageList(
|
|
3900
|
-
const visibleMessages =
|
|
3943
|
+
function ChatMessageList({ className, isSending, messages, onFileOpen, onToolAction, renderPanelAppCard, renderToolAgent, texts }) {
|
|
3944
|
+
const visibleMessages = messages.filter(hasRenderableMessageContent);
|
|
3901
3945
|
const hasRenderableAssistantDraft = visibleMessages.some((message) => message.role === "assistant" && (message.status === "streaming" || message.status === "pending"));
|
|
3902
3946
|
return /* @__PURE__ */ jsxs("div", {
|
|
3903
|
-
className: cn("space-y-5",
|
|
3947
|
+
className: cn("space-y-5", className),
|
|
3904
3948
|
children: [visibleMessages.map((message) => {
|
|
3905
3949
|
const isUser = message.role === "user";
|
|
3906
3950
|
const isGenerating = !isUser && (message.status === "streaming" || message.status === "pending");
|
|
@@ -3912,10 +3956,11 @@ function ChatMessageList(props) {
|
|
|
3912
3956
|
className: cn("w-fit max-w-[92%] space-y-2", isUser && "flex flex-col items-end"),
|
|
3913
3957
|
children: [/* @__PURE__ */ jsx(ChatMessage, {
|
|
3914
3958
|
message,
|
|
3915
|
-
texts
|
|
3916
|
-
onToolAction
|
|
3917
|
-
onFileOpen
|
|
3918
|
-
renderToolAgent
|
|
3959
|
+
texts,
|
|
3960
|
+
onToolAction,
|
|
3961
|
+
onFileOpen,
|
|
3962
|
+
renderToolAgent,
|
|
3963
|
+
renderPanelAppCard
|
|
3919
3964
|
}), /* @__PURE__ */ jsx("div", {
|
|
3920
3965
|
className: cn("flex items-center gap-2", isUser && "justify-end"),
|
|
3921
3966
|
children: isGenerating ? /* @__PURE__ */ jsx(ChatMessageTypingFooter, {}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChatMessageMeta, {
|
|
@@ -3924,16 +3969,16 @@ function ChatMessageList(props) {
|
|
|
3924
3969
|
isUser
|
|
3925
3970
|
}), !isUser ? /* @__PURE__ */ jsx(ChatMessageActionCopy, {
|
|
3926
3971
|
message,
|
|
3927
|
-
texts
|
|
3972
|
+
texts
|
|
3928
3973
|
}) : null] })
|
|
3929
3974
|
})]
|
|
3930
3975
|
}),
|
|
3931
3976
|
isUser ? /* @__PURE__ */ jsx(ChatMessageAvatar, { role: message.role }) : null
|
|
3932
3977
|
]
|
|
3933
3978
|
}, message.id);
|
|
3934
|
-
}),
|
|
3979
|
+
}), isSending && !hasRenderableAssistantDraft ? /* @__PURE__ */ jsxs("div", {
|
|
3935
3980
|
className: "flex justify-start gap-3",
|
|
3936
|
-
children: [/* @__PURE__ */ jsx(ChatMessageAvatar, { role: "assistant" }), /* @__PURE__ */ jsx(ChatTypingIndicator, { label:
|
|
3981
|
+
children: [/* @__PURE__ */ jsx(ChatMessageAvatar, { role: "assistant" }), /* @__PURE__ */ jsx(ChatTypingIndicator, { label: texts.typingLabel })]
|
|
3937
3982
|
}) : null]
|
|
3938
3983
|
});
|
|
3939
3984
|
}
|