@nextclaw/agent-chat-ui 0.4.11 → 0.5.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 +37 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +76 -58
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -186,6 +186,30 @@ type ChatFileOperationBlockViewModel = {
|
|
|
186
186
|
newStartLine?: number;
|
|
187
187
|
truncated?: boolean;
|
|
188
188
|
};
|
|
189
|
+
type ChatUiShowContentPurpose = "read" | "preview" | "edit" | "interact";
|
|
190
|
+
type ChatUiShowContentTarget = {
|
|
191
|
+
type: "file";
|
|
192
|
+
payload: {
|
|
193
|
+
path: string;
|
|
194
|
+
line?: number;
|
|
195
|
+
column?: number;
|
|
196
|
+
};
|
|
197
|
+
} | {
|
|
198
|
+
type: "url";
|
|
199
|
+
payload: {
|
|
200
|
+
url: string;
|
|
201
|
+
};
|
|
202
|
+
} | {
|
|
203
|
+
type: "panel_app";
|
|
204
|
+
payload: {
|
|
205
|
+
appId: string;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
type ChatUiShowContentRequest = {
|
|
209
|
+
target: ChatUiShowContentTarget;
|
|
210
|
+
title?: string;
|
|
211
|
+
purpose?: ChatUiShowContentPurpose;
|
|
212
|
+
};
|
|
189
213
|
type ChatToolActionViewModel = {
|
|
190
214
|
kind: "open-session";
|
|
191
215
|
sessionId: string;
|
|
@@ -193,6 +217,10 @@ type ChatToolActionViewModel = {
|
|
|
193
217
|
agentId?: string;
|
|
194
218
|
label?: string;
|
|
195
219
|
parentSessionId?: string;
|
|
220
|
+
} | {
|
|
221
|
+
kind: "show-content";
|
|
222
|
+
label: string;
|
|
223
|
+
request: ChatUiShowContentRequest;
|
|
196
224
|
};
|
|
197
225
|
type ChatFileOpenActionViewModel = {
|
|
198
226
|
path: string;
|
|
@@ -384,7 +412,14 @@ type UseStickyBottomScrollParams = {
|
|
|
384
412
|
type UseStickyBottomScrollResult = {
|
|
385
413
|
onScroll: () => void;
|
|
386
414
|
};
|
|
387
|
-
declare function useStickyBottomScroll(
|
|
415
|
+
declare function useStickyBottomScroll({
|
|
416
|
+
contentVersion,
|
|
417
|
+
hasContent,
|
|
418
|
+
isLoading,
|
|
419
|
+
resetKey,
|
|
420
|
+
scrollRef,
|
|
421
|
+
stickyThresholdPx
|
|
422
|
+
}: UseStickyBottomScrollParams): UseStickyBottomScrollResult;
|
|
388
423
|
//#endregion
|
|
389
424
|
//#region src/components/chat/utils/copy-text.d.ts
|
|
390
425
|
declare function copyText(text: string): Promise<boolean>;
|
|
@@ -410,5 +445,5 @@ declare function resolveChatComposerSlashTrigger(nodes: ChatComposerNode[], sele
|
|
|
410
445
|
end: number;
|
|
411
446
|
} | null;
|
|
412
447
|
//#endregion
|
|
413
|
-
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 };
|
|
448
|
+
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, type ChatUiShowContentPurpose, type ChatUiShowContentRequest, type ChatUiShowContentTarget, FileOperationCodeSurface, FileOperationLinesGrid, copyText, createChatComposerNodesFromText, createChatComposerTextNode, createChatComposerTokenNode, createEmptyChatComposerNodes, extractChatComposerTokenKeys, normalizeChatComposerNodes, removeChatComposerTokenNodes, replaceChatComposerRange, resolveChatComposerSlashTrigger, serializeChatComposerDocument, serializeChatComposerPlainText, useActiveItemScroll, useCopyFeedback, useElementWidth, useStickyBottomScroll };
|
|
414
449
|
//# 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";
|
|
@@ -2912,73 +2912,67 @@ function useReasoningBlockOpenState(params) {
|
|
|
2912
2912
|
//#endregion
|
|
2913
2913
|
//#region src/components/chat/hooks/use-sticky-bottom-scroll.ts
|
|
2914
2914
|
const DEFAULT_STICKY_THRESHOLD_PX = 10;
|
|
2915
|
-
function
|
|
2916
|
-
element.scrollTop = element.scrollHeight;
|
|
2917
|
-
}
|
|
2918
|
-
function queueScrollToBottom(params) {
|
|
2919
|
-
if (!params.scrollRef.current) return;
|
|
2920
|
-
if (params.scheduledScrollFrameRef.current !== null) cancelAnimationFrame(params.scheduledScrollFrameRef.current);
|
|
2921
|
-
params.scheduledScrollFrameRef.current = requestAnimationFrame(() => {
|
|
2922
|
-
params.scheduledScrollFrameRef.current = null;
|
|
2923
|
-
const currentElement = params.scrollRef.current;
|
|
2924
|
-
if (!currentElement) return;
|
|
2925
|
-
params.isProgrammaticScrollRef.current = true;
|
|
2926
|
-
scrollElementToBottom(currentElement);
|
|
2927
|
-
});
|
|
2928
|
-
}
|
|
2929
|
-
function useStickyBottomScroll(params) {
|
|
2915
|
+
function useStickyBottomScroll({ contentVersion, hasContent, isLoading, resetKey, scrollRef, stickyThresholdPx }) {
|
|
2930
2916
|
const isStickyRef = useRef(true);
|
|
2931
2917
|
const isProgrammaticScrollRef = useRef(false);
|
|
2932
2918
|
const previousResetKeyRef = useRef(null);
|
|
2933
2919
|
const pendingInitialScrollRef = useRef(false);
|
|
2934
2920
|
const scheduledScrollFrameRef = useRef(null);
|
|
2921
|
+
const queueScrollToBottom = useCallback(() => {
|
|
2922
|
+
if (!scrollRef.current) return;
|
|
2923
|
+
if (scheduledScrollFrameRef.current !== null) cancelAnimationFrame(scheduledScrollFrameRef.current);
|
|
2924
|
+
scheduledScrollFrameRef.current = requestAnimationFrame(() => {
|
|
2925
|
+
scheduledScrollFrameRef.current = null;
|
|
2926
|
+
const currentElement = scrollRef.current;
|
|
2927
|
+
if (!currentElement) return;
|
|
2928
|
+
isProgrammaticScrollRef.current = true;
|
|
2929
|
+
currentElement.scrollTop = currentElement.scrollHeight;
|
|
2930
|
+
});
|
|
2931
|
+
}, [scrollRef]);
|
|
2935
2932
|
const onScroll = () => {
|
|
2936
2933
|
if (isProgrammaticScrollRef.current) {
|
|
2937
2934
|
isProgrammaticScrollRef.current = false;
|
|
2938
2935
|
return;
|
|
2939
2936
|
}
|
|
2940
|
-
const element =
|
|
2937
|
+
const element = scrollRef.current;
|
|
2941
2938
|
if (!element) return;
|
|
2942
|
-
isStickyRef.current = element.scrollHeight - element.scrollTop - element.clientHeight <= (
|
|
2939
|
+
isStickyRef.current = element.scrollHeight - element.scrollTop - element.clientHeight <= (stickyThresholdPx ?? DEFAULT_STICKY_THRESHOLD_PX);
|
|
2943
2940
|
};
|
|
2944
2941
|
useEffect(() => {
|
|
2945
|
-
if (previousResetKeyRef.current ===
|
|
2946
|
-
previousResetKeyRef.current =
|
|
2942
|
+
if (previousResetKeyRef.current === resetKey) return;
|
|
2943
|
+
previousResetKeyRef.current = resetKey;
|
|
2947
2944
|
isStickyRef.current = true;
|
|
2948
2945
|
pendingInitialScrollRef.current = true;
|
|
2949
|
-
}, [
|
|
2946
|
+
}, [resetKey]);
|
|
2950
2947
|
useEffect(() => {
|
|
2951
|
-
const scheduledScrollFrame = scheduledScrollFrameRef.current;
|
|
2952
2948
|
return () => {
|
|
2953
|
-
|
|
2949
|
+
const scheduledScrollFrame = scheduledScrollFrameRef.current;
|
|
2950
|
+
if (scheduledScrollFrame !== null) {
|
|
2951
|
+
cancelAnimationFrame(scheduledScrollFrame);
|
|
2952
|
+
scheduledScrollFrameRef.current = null;
|
|
2953
|
+
}
|
|
2954
2954
|
};
|
|
2955
2955
|
}, []);
|
|
2956
2956
|
useLayoutEffect(() => {
|
|
2957
|
-
if (!pendingInitialScrollRef.current ||
|
|
2958
|
-
if (!
|
|
2957
|
+
if (!pendingInitialScrollRef.current || isLoading || !hasContent) return;
|
|
2958
|
+
if (!scrollRef.current) return;
|
|
2959
2959
|
pendingInitialScrollRef.current = false;
|
|
2960
|
-
queueScrollToBottom(
|
|
2961
|
-
scrollRef: params.scrollRef,
|
|
2962
|
-
scheduledScrollFrameRef,
|
|
2963
|
-
isProgrammaticScrollRef
|
|
2964
|
-
});
|
|
2960
|
+
queueScrollToBottom();
|
|
2965
2961
|
}, [
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2962
|
+
hasContent,
|
|
2963
|
+
isLoading,
|
|
2964
|
+
queueScrollToBottom,
|
|
2965
|
+
scrollRef
|
|
2969
2966
|
]);
|
|
2970
2967
|
useLayoutEffect(() => {
|
|
2971
|
-
if (!isStickyRef.current || !
|
|
2972
|
-
if (!
|
|
2973
|
-
queueScrollToBottom(
|
|
2974
|
-
scrollRef: params.scrollRef,
|
|
2975
|
-
scheduledScrollFrameRef,
|
|
2976
|
-
isProgrammaticScrollRef
|
|
2977
|
-
});
|
|
2968
|
+
if (!isStickyRef.current || !hasContent) return;
|
|
2969
|
+
if (!scrollRef.current) return;
|
|
2970
|
+
queueScrollToBottom();
|
|
2978
2971
|
}, [
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2972
|
+
contentVersion,
|
|
2973
|
+
hasContent,
|
|
2974
|
+
queueScrollToBottom,
|
|
2975
|
+
scrollRef
|
|
2982
2976
|
]);
|
|
2983
2977
|
return { onScroll };
|
|
2984
2978
|
}
|
|
@@ -3071,22 +3065,46 @@ function ToolStatusLabel({ card }) {
|
|
|
3071
3065
|
}
|
|
3072
3066
|
//#endregion
|
|
3073
3067
|
//#region src/components/chat/ui/chat-message-list/tool-card/tool-card-header.tsx
|
|
3074
|
-
function
|
|
3075
|
-
|
|
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;
|
|
3076
3084
|
const handleClick = (event) => {
|
|
3077
3085
|
event.stopPropagation();
|
|
3078
3086
|
onAction(action);
|
|
3079
3087
|
};
|
|
3080
|
-
return /* @__PURE__ */ jsx(
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
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
|
+
})] })
|
|
3090
3108
|
});
|
|
3091
3109
|
}
|
|
3092
3110
|
function ToolCardHeader({ card, icon: Icon, expanded, canExpand, hideSummary = false, actionSlot, onToggle }) {
|
|
@@ -3129,8 +3147,8 @@ function ToolCardHeader({ card, icon: Icon, expanded, canExpand, hideSummary = f
|
|
|
3129
3147
|
})]
|
|
3130
3148
|
});
|
|
3131
3149
|
}
|
|
3132
|
-
function
|
|
3133
|
-
return /* @__PURE__ */ jsx(
|
|
3150
|
+
function ToolCardHeaderAction({ action, onAction }) {
|
|
3151
|
+
return /* @__PURE__ */ jsx(ToolCardActionButton, {
|
|
3134
3152
|
action,
|
|
3135
3153
|
onAction
|
|
3136
3154
|
});
|
|
@@ -3672,7 +3690,7 @@ function GenericToolCard({ card, onToolAction, renderToolAgent }) {
|
|
|
3672
3690
|
icon: Globe,
|
|
3673
3691
|
expanded,
|
|
3674
3692
|
canExpand: hasContent || isRunning,
|
|
3675
|
-
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, {
|
|
3676
3694
|
action: card.action,
|
|
3677
3695
|
onAction: onToolAction
|
|
3678
3696
|
}) : null] }) : void 0,
|