@copilotkit/react-core 1.56.3 → 1.56.4-canary.1777529757
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/{copilotkit-By2G6-Zx.cjs → copilotkit-BAkj3zUc.cjs} +119 -104
- package/dist/copilotkit-BAkj3zUc.cjs.map +1 -0
- package/dist/{copilotkit-PzJlPKcU.mjs → copilotkit-DAatqMh2.mjs} +119 -104
- package/dist/copilotkit-DAatqMh2.mjs.map +1 -0
- package/dist/copilotkit-DFaI4j2r.d.mts.map +1 -1
- package/dist/copilotkit-Dg4r4Gi_.d.cts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/v2/index.cjs +1 -1
- package/dist/v2/index.css +1 -1
- package/dist/v2/index.mjs +1 -1
- package/dist/v2/index.umd.js +121 -106
- package/dist/v2/index.umd.js.map +1 -1
- package/package.json +8 -8
- package/src/v2/components/chat/CopilotChatAttachmentQueue.tsx +7 -114
- package/src/v2/components/chat/CopilotChatAttachmentRenderer.tsx +26 -6
- package/src/v2/components/chat/CopilotChatUserMessage.tsx +2 -2
- package/src/v2/components/chat/CopilotChatView.tsx +68 -85
- package/src/v2/components/chat/Lightbox.tsx +103 -0
- package/src/v2/components/chat/__tests__/CopilotChat.suggestionsAlways.test.tsx +189 -0
- package/src/v2/components/chat/__tests__/CopilotChatActivityRendering.e2e.test.tsx +193 -57
- package/src/v2/components/chat/__tests__/CopilotChatView.inputOverlay.test.tsx +264 -0
- package/dist/copilotkit-By2G6-Zx.cjs.map +0 -1
- package/dist/copilotkit-PzJlPKcU.mjs.map +0 -1
|
@@ -16,8 +16,8 @@ import { z } from "zod";
|
|
|
16
16
|
import { createComponent } from "@lit-labs/react";
|
|
17
17
|
import { A2UIProvider, A2UIRenderer, A2UI_SCHEMA_CONTEXT_DESCRIPTION, DEFAULT_SURFACE_ID, buildCatalogContextValue, extractCatalogComponentSchemas, initializeDefaultCatalog, injectStyles, useA2UIActions, useA2UIError, viewerTheme } from "@copilotkit/a2ui-renderer";
|
|
18
18
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
19
|
-
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
20
19
|
import { createPortal, flushSync } from "react-dom";
|
|
20
|
+
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
21
21
|
import { StickToBottom, useStickToBottomContext } from "use-stick-to-bottom";
|
|
22
22
|
import ReactMarkdown from "react-markdown";
|
|
23
23
|
|
|
@@ -5006,20 +5006,101 @@ CopilotChatAssistantMessage.ReadAloudButton.displayName = "CopilotChatAssistantM
|
|
|
5006
5006
|
CopilotChatAssistantMessage.RegenerateButton.displayName = "CopilotChatAssistantMessage.RegenerateButton";
|
|
5007
5007
|
var CopilotChatAssistantMessage_default = CopilotChatAssistantMessage;
|
|
5008
5008
|
|
|
5009
|
+
//#endregion
|
|
5010
|
+
//#region src/v2/components/chat/Lightbox.tsx
|
|
5011
|
+
function Lightbox({ onClose, children }) {
|
|
5012
|
+
useEffect(() => {
|
|
5013
|
+
const handleKey = (e) => {
|
|
5014
|
+
if (e.key === "Escape") onClose();
|
|
5015
|
+
};
|
|
5016
|
+
document.addEventListener("keydown", handleKey);
|
|
5017
|
+
return () => document.removeEventListener("keydown", handleKey);
|
|
5018
|
+
}, [onClose]);
|
|
5019
|
+
if (typeof document === "undefined") return null;
|
|
5020
|
+
return createPortal(/* @__PURE__ */ jsxs("div", {
|
|
5021
|
+
className: "cpk:fixed cpk:inset-0 cpk:z-[9999] cpk:flex cpk:items-center cpk:justify-center cpk:bg-black/80 cpk:animate-fade-in",
|
|
5022
|
+
onClick: onClose,
|
|
5023
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
5024
|
+
onClick: onClose,
|
|
5025
|
+
className: "cpk:absolute cpk:top-4 cpk:right-4 cpk:text-white cpk:bg-white/10 cpk:hover:bg-white/20 cpk:rounded-full cpk:w-10 cpk:h-10 cpk:flex cpk:items-center cpk:justify-center cpk:cursor-pointer cpk:border-none cpk:z-10",
|
|
5026
|
+
"aria-label": "Close preview",
|
|
5027
|
+
children: /* @__PURE__ */ jsx(X, { className: "cpk:w-5 cpk:h-5" })
|
|
5028
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
5029
|
+
onClick: (e) => e.stopPropagation(),
|
|
5030
|
+
children
|
|
5031
|
+
})]
|
|
5032
|
+
}), document.body);
|
|
5033
|
+
}
|
|
5034
|
+
/**
|
|
5035
|
+
* Hook that manages lightbox open/close and uses the View Transition API to
|
|
5036
|
+
* morph the thumbnail into fullscreen content.
|
|
5037
|
+
*
|
|
5038
|
+
* The trick: `view-transition-name` must live on exactly ONE element at a time.
|
|
5039
|
+
* - Old state (thumbnail visible): name is on the thumbnail.
|
|
5040
|
+
* - New state (lightbox visible): name moves to the lightbox content.
|
|
5041
|
+
* `flushSync` ensures React commits the DOM change synchronously inside the
|
|
5042
|
+
* `startViewTransition` callback so the API can snapshot old → new correctly.
|
|
5043
|
+
*/
|
|
5044
|
+
function useLightbox() {
|
|
5045
|
+
const thumbnailRef = useRef(null);
|
|
5046
|
+
const [open, setOpen] = useState(false);
|
|
5047
|
+
const vtName = useId();
|
|
5048
|
+
return {
|
|
5049
|
+
thumbnailRef,
|
|
5050
|
+
vtName,
|
|
5051
|
+
open,
|
|
5052
|
+
openLightbox: useCallback(() => {
|
|
5053
|
+
const thumb = thumbnailRef.current;
|
|
5054
|
+
const doc = document;
|
|
5055
|
+
if (doc.startViewTransition && thumb) {
|
|
5056
|
+
thumb.style.viewTransitionName = vtName;
|
|
5057
|
+
doc.startViewTransition(() => {
|
|
5058
|
+
thumb.style.viewTransitionName = "";
|
|
5059
|
+
flushSync(() => setOpen(true));
|
|
5060
|
+
});
|
|
5061
|
+
} else setOpen(true);
|
|
5062
|
+
}, [vtName]),
|
|
5063
|
+
closeLightbox: useCallback(() => {
|
|
5064
|
+
const thumb = thumbnailRef.current;
|
|
5065
|
+
const doc = document;
|
|
5066
|
+
if (doc.startViewTransition && thumb) doc.startViewTransition(() => {
|
|
5067
|
+
flushSync(() => setOpen(false));
|
|
5068
|
+
thumb.style.viewTransitionName = vtName;
|
|
5069
|
+
}).finished.then(() => {
|
|
5070
|
+
thumb.style.viewTransitionName = "";
|
|
5071
|
+
}).catch(() => {
|
|
5072
|
+
thumb.style.viewTransitionName = "";
|
|
5073
|
+
});
|
|
5074
|
+
else setOpen(false);
|
|
5075
|
+
}, [vtName])
|
|
5076
|
+
};
|
|
5077
|
+
}
|
|
5078
|
+
|
|
5009
5079
|
//#endregion
|
|
5010
5080
|
//#region src/v2/components/chat/CopilotChatAttachmentRenderer.tsx
|
|
5011
5081
|
const ImageAttachment = memo(function ImageAttachment({ src, className }) {
|
|
5012
5082
|
const [error, setError] = useState(false);
|
|
5083
|
+
const { thumbnailRef, vtName, open, openLightbox, closeLightbox } = useLightbox();
|
|
5013
5084
|
if (error) return /* @__PURE__ */ jsx("div", {
|
|
5014
5085
|
className: cn("cpk:flex cpk:flex-col cpk:items-center cpk:justify-center cpk:rounded-lg cpk:bg-muted cpk:p-4 cpk:text-sm cpk:text-muted-foreground", className),
|
|
5015
5086
|
children: /* @__PURE__ */ jsx("span", { children: "Failed to load image" })
|
|
5016
5087
|
});
|
|
5017
|
-
return /* @__PURE__ */ jsx("img", {
|
|
5088
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("img", {
|
|
5089
|
+
ref: thumbnailRef,
|
|
5018
5090
|
src,
|
|
5019
5091
|
alt: "Image attachment",
|
|
5020
|
-
className: cn("cpk:max-w-
|
|
5092
|
+
className: cn("cpk:max-w-[80px] cpk:max-h-[80px] cpk:w-auto cpk:h-auto cpk:rounded-xl cpk:object-cover cpk:cursor-pointer cpk:bg-muted", className),
|
|
5093
|
+
onClick: openLightbox,
|
|
5021
5094
|
onError: () => setError(true)
|
|
5022
|
-
})
|
|
5095
|
+
}), open && /* @__PURE__ */ jsx(Lightbox, {
|
|
5096
|
+
onClose: closeLightbox,
|
|
5097
|
+
children: /* @__PURE__ */ jsx("img", {
|
|
5098
|
+
style: { viewTransitionName: vtName },
|
|
5099
|
+
src,
|
|
5100
|
+
alt: "Image attachment",
|
|
5101
|
+
className: "cpk:max-w-[90vw] cpk:max-h-[90vh] cpk:object-contain cpk:rounded-lg"
|
|
5102
|
+
})
|
|
5103
|
+
})] });
|
|
5023
5104
|
});
|
|
5024
5105
|
const AudioAttachment = memo(function AudioAttachment({ src, filename, className }) {
|
|
5025
5106
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -5144,15 +5225,15 @@ function CopilotChatUserMessage({ message, onEditMessage, branchIndex, numberOfB
|
|
|
5144
5225
|
"data-message-id": message.id,
|
|
5145
5226
|
...props,
|
|
5146
5227
|
children: [
|
|
5147
|
-
BoundMessageRenderer,
|
|
5148
5228
|
mediaParts.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
5149
|
-
className: "cpk:flex cpk:flex-
|
|
5229
|
+
className: "cpk:flex cpk:flex-row cpk:flex-wrap cpk:justify-end cpk:gap-2 cpk:mb-2",
|
|
5150
5230
|
children: mediaParts.map((part, index) => /* @__PURE__ */ jsx(CopilotChatAttachmentRenderer, {
|
|
5151
5231
|
type: part.type,
|
|
5152
5232
|
source: part.source,
|
|
5153
5233
|
filename: getFilename(part)
|
|
5154
5234
|
}, index))
|
|
5155
5235
|
}),
|
|
5236
|
+
BoundMessageRenderer,
|
|
5156
5237
|
BoundToolbar
|
|
5157
5238
|
]
|
|
5158
5239
|
});
|
|
@@ -5821,6 +5902,7 @@ CopilotChatMessageView.Cursor = function Cursor({ className, ...props }) {
|
|
|
5821
5902
|
const CopilotChatAttachmentQueue = ({ attachments, onRemoveAttachment, className }) => {
|
|
5822
5903
|
if (attachments.length === 0) return null;
|
|
5823
5904
|
return /* @__PURE__ */ jsx("div", {
|
|
5905
|
+
"data-testid": "copilot-attachment-queue",
|
|
5824
5906
|
className: cn("cpk:flex cpk:flex-wrap cpk:gap-2 cpk:p-2", className),
|
|
5825
5907
|
children: attachments.map((attachment) => {
|
|
5826
5908
|
const isMedia = attachment.type === "image" || attachment.type === "video";
|
|
@@ -5855,73 +5937,6 @@ function AttachmentPreview({ attachment }) {
|
|
|
5855
5937
|
case "document": return /* @__PURE__ */ jsx(DocumentPreview, { attachment });
|
|
5856
5938
|
}
|
|
5857
5939
|
}
|
|
5858
|
-
function Lightbox({ onClose, children }) {
|
|
5859
|
-
useEffect(() => {
|
|
5860
|
-
const handleKey = (e) => {
|
|
5861
|
-
if (e.key === "Escape") onClose();
|
|
5862
|
-
};
|
|
5863
|
-
document.addEventListener("keydown", handleKey);
|
|
5864
|
-
return () => document.removeEventListener("keydown", handleKey);
|
|
5865
|
-
}, [onClose]);
|
|
5866
|
-
if (typeof document === "undefined") return null;
|
|
5867
|
-
return createPortal(/* @__PURE__ */ jsxs("div", {
|
|
5868
|
-
className: "cpk:fixed cpk:inset-0 cpk:z-[9999] cpk:flex cpk:items-center cpk:justify-center cpk:bg-black/80 cpk:animate-fade-in",
|
|
5869
|
-
onClick: onClose,
|
|
5870
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
5871
|
-
onClick: onClose,
|
|
5872
|
-
className: "cpk:absolute cpk:top-4 cpk:right-4 cpk:text-white cpk:bg-white/10 cpk:hover:bg-white/20 cpk:rounded-full cpk:w-10 cpk:h-10 cpk:flex cpk:items-center cpk:justify-center cpk:cursor-pointer cpk:border-none cpk:z-10",
|
|
5873
|
-
"aria-label": "Close preview",
|
|
5874
|
-
children: /* @__PURE__ */ jsx(X, { className: "cpk:w-5 cpk:h-5" })
|
|
5875
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
5876
|
-
onClick: (e) => e.stopPropagation(),
|
|
5877
|
-
children
|
|
5878
|
-
})]
|
|
5879
|
-
}), document.body);
|
|
5880
|
-
}
|
|
5881
|
-
/**
|
|
5882
|
-
* Hook that manages lightbox open/close and uses the View Transition API to
|
|
5883
|
-
* morph the thumbnail into fullscreen content.
|
|
5884
|
-
*
|
|
5885
|
-
* The trick: `view-transition-name` must live on exactly ONE element at a time.
|
|
5886
|
-
* - Old state (thumbnail visible): name is on the thumbnail.
|
|
5887
|
-
* - New state (lightbox visible): name moves to the lightbox content.
|
|
5888
|
-
* `flushSync` ensures React commits the DOM change synchronously inside the
|
|
5889
|
-
* `startViewTransition` callback so the API can snapshot old → new correctly.
|
|
5890
|
-
*/
|
|
5891
|
-
function useLightbox() {
|
|
5892
|
-
const thumbnailRef = useRef(null);
|
|
5893
|
-
const [open, setOpen] = useState(false);
|
|
5894
|
-
const vtName = useId();
|
|
5895
|
-
return {
|
|
5896
|
-
thumbnailRef,
|
|
5897
|
-
vtName,
|
|
5898
|
-
open,
|
|
5899
|
-
openLightbox: useCallback(() => {
|
|
5900
|
-
const thumb = thumbnailRef.current;
|
|
5901
|
-
const doc = document;
|
|
5902
|
-
if (doc.startViewTransition && thumb) {
|
|
5903
|
-
thumb.style.viewTransitionName = vtName;
|
|
5904
|
-
doc.startViewTransition(() => {
|
|
5905
|
-
thumb.style.viewTransitionName = "";
|
|
5906
|
-
flushSync(() => setOpen(true));
|
|
5907
|
-
});
|
|
5908
|
-
} else setOpen(true);
|
|
5909
|
-
}, []),
|
|
5910
|
-
closeLightbox: useCallback(() => {
|
|
5911
|
-
const thumb = thumbnailRef.current;
|
|
5912
|
-
const doc = document;
|
|
5913
|
-
if (doc.startViewTransition && thumb) doc.startViewTransition(() => {
|
|
5914
|
-
flushSync(() => setOpen(false));
|
|
5915
|
-
thumb.style.viewTransitionName = vtName;
|
|
5916
|
-
}).finished.then(() => {
|
|
5917
|
-
thumb.style.viewTransitionName = "";
|
|
5918
|
-
}).catch(() => {
|
|
5919
|
-
thumb.style.viewTransitionName = "";
|
|
5920
|
-
});
|
|
5921
|
-
else setOpen(false);
|
|
5922
|
-
}, [])
|
|
5923
|
-
};
|
|
5924
|
-
}
|
|
5925
5940
|
function ImagePreview({ attachment }) {
|
|
5926
5941
|
const src = getSourceUrl(attachment.source);
|
|
5927
5942
|
const { thumbnailRef, vtName, open, openLightbox, closeLightbox } = useLightbox();
|
|
@@ -6247,13 +6262,7 @@ function computeOffsetTop(el, stopAt) {
|
|
|
6247
6262
|
|
|
6248
6263
|
//#endregion
|
|
6249
6264
|
//#region src/v2/components/chat/CopilotChatView.tsx
|
|
6250
|
-
const
|
|
6251
|
-
const PIN_TO_SEND_FEATHER_HEIGHT = 48;
|
|
6252
|
-
const PinToSendSoftFeather = ({ className, style, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
6253
|
-
className: cn("cpk:absolute cpk:bottom-0 cpk:left-0 cpk:right-4 cpk:h-12 cpk:pointer-events-none cpk:z-10 cpk:bg-gradient-to-t", "cpk:from-white cpk:to-transparent", "cpk:dark:from-[rgb(33,33,33)]", className),
|
|
6254
|
-
style,
|
|
6255
|
-
...props
|
|
6256
|
-
});
|
|
6265
|
+
const SCROLL_BUTTON_OFFSET = 16;
|
|
6257
6266
|
function DropOverlay() {
|
|
6258
6267
|
return /* @__PURE__ */ jsx("div", {
|
|
6259
6268
|
className: cn("cpk:absolute cpk:inset-0 cpk:z-50 cpk:pointer-events-none", "cpk:flex cpk:items-center cpk:justify-center", "cpk:bg-primary/5 cpk:backdrop-blur-[2px]", "cpk:border-2 cpk:border-dashed cpk:border-primary/40 cpk:rounded-lg cpk:m-2"),
|
|
@@ -6267,14 +6276,17 @@ function DropOverlay() {
|
|
|
6267
6276
|
});
|
|
6268
6277
|
}
|
|
6269
6278
|
function CopilotChatView({ messageView, input, scrollView, suggestionView, welcomeScreen, messages = [], autoScroll = true, isRunning = false, suggestions, suggestionLoadingIndexes, onSelectSuggestion, onSubmitMessage, onStop, inputMode, inputValue, onInputChange, onStartTranscribe, onCancelTranscribe, onFinishTranscribe, onFinishTranscribeWithAudio, attachments, onRemoveAttachment, onAddFile, dragOver, onDragOver, onDragLeave, onDrop, isConnecting = false, hasExplicitThreadId = false, disclaimer, children, className, ...props }) {
|
|
6270
|
-
const
|
|
6279
|
+
const [inputContainerEl, setInputContainerEl] = useState(null);
|
|
6271
6280
|
const [inputContainerHeight, setInputContainerHeight] = useState(0);
|
|
6272
6281
|
const [isResizing, setIsResizing] = useState(false);
|
|
6273
6282
|
const resizeTimeoutRef = useRef(null);
|
|
6274
6283
|
const { isKeyboardOpen, keyboardHeight, availableHeight } = useKeyboardHeight();
|
|
6275
6284
|
useEffect(() => {
|
|
6276
|
-
const element =
|
|
6277
|
-
if (!element)
|
|
6285
|
+
const element = inputContainerEl;
|
|
6286
|
+
if (!element) {
|
|
6287
|
+
setInputContainerHeight(0);
|
|
6288
|
+
return;
|
|
6289
|
+
}
|
|
6278
6290
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
6279
6291
|
for (const entry of entries) {
|
|
6280
6292
|
const newHeight = entry.contentRect.height;
|
|
@@ -6297,7 +6309,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6297
6309
|
resizeObserver.disconnect();
|
|
6298
6310
|
if (resizeTimeoutRef.current) clearTimeout(resizeTimeoutRef.current);
|
|
6299
6311
|
};
|
|
6300
|
-
}, []);
|
|
6312
|
+
}, [inputContainerEl]);
|
|
6301
6313
|
const BoundMessageView = renderSlot(messageView, CopilotChatMessageView, {
|
|
6302
6314
|
messages,
|
|
6303
6315
|
isRunning
|
|
@@ -6316,12 +6328,11 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6316
6328
|
onAddFile,
|
|
6317
6329
|
positioning: "static",
|
|
6318
6330
|
keyboardHeight: isKeyboardOpen ? keyboardHeight : 0,
|
|
6319
|
-
containerRef: inputContainerRef,
|
|
6320
6331
|
showDisclaimer: true,
|
|
6321
6332
|
bottomAnchored: true,
|
|
6322
6333
|
...disclaimer !== void 0 ? { disclaimer } : {}
|
|
6323
6334
|
});
|
|
6324
|
-
const hasSuggestions = !isConnecting &&
|
|
6335
|
+
const hasSuggestions = !isConnecting && Array.isArray(suggestions) && suggestions.length > 0;
|
|
6325
6336
|
const BoundSuggestionView = hasSuggestions ? renderSlot(suggestionView, CopilotChatSuggestionView, {
|
|
6326
6337
|
suggestions,
|
|
6327
6338
|
loadingIndexes: suggestionLoadingIndexes,
|
|
@@ -6333,7 +6344,8 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6333
6344
|
inputContainerHeight,
|
|
6334
6345
|
isResizing,
|
|
6335
6346
|
children: /* @__PURE__ */ jsx("div", {
|
|
6336
|
-
|
|
6347
|
+
"data-testid": "copilot-scroll-content",
|
|
6348
|
+
style: { paddingBottom: `${inputContainerHeight + (hasSuggestions ? 4 : 32)}px` },
|
|
6337
6349
|
children: /* @__PURE__ */ jsxs("div", {
|
|
6338
6350
|
className: "cpk:max-w-3xl cpk:mx-auto",
|
|
6339
6351
|
children: [BoundMessageView, hasSuggestions ? /* @__PURE__ */ jsx("div", {
|
|
@@ -6407,15 +6419,19 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6407
6419
|
children: [
|
|
6408
6420
|
dragOver && /* @__PURE__ */ jsx(DropOverlay, {}),
|
|
6409
6421
|
BoundScrollView,
|
|
6410
|
-
/* @__PURE__ */
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
className: "cpk:
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6422
|
+
/* @__PURE__ */ jsxs("div", {
|
|
6423
|
+
ref: setInputContainerEl,
|
|
6424
|
+
"data-testid": "copilot-input-overlay",
|
|
6425
|
+
className: "cpk:absolute cpk:bottom-0 cpk:left-0 cpk:right-0 cpk:z-20 cpk:pointer-events-none",
|
|
6426
|
+
children: [attachments && attachments.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
6427
|
+
className: "cpk:max-w-3xl cpk:mx-auto cpk:w-full cpk:pointer-events-auto",
|
|
6428
|
+
children: /* @__PURE__ */ jsx(CopilotChatAttachmentQueue, {
|
|
6429
|
+
attachments,
|
|
6430
|
+
onRemoveAttachment: (id) => onRemoveAttachment?.(id),
|
|
6431
|
+
className: "cpk:px-4"
|
|
6432
|
+
})
|
|
6433
|
+
}), BoundInput]
|
|
6434
|
+
})
|
|
6419
6435
|
]
|
|
6420
6436
|
});
|
|
6421
6437
|
}
|
|
@@ -6444,7 +6460,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6444
6460
|
BoundFeather,
|
|
6445
6461
|
!isAtBottom && !isResizing && /* @__PURE__ */ jsx("div", {
|
|
6446
6462
|
className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
|
|
6447
|
-
style: { bottom: `${inputContainerHeight +
|
|
6463
|
+
style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
|
|
6448
6464
|
children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
|
|
6449
6465
|
})
|
|
6450
6466
|
] })
|
|
@@ -6458,7 +6474,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6458
6474
|
spacerRef,
|
|
6459
6475
|
topOffset: 16
|
|
6460
6476
|
});
|
|
6461
|
-
const BoundFeather = renderSlot(feather,
|
|
6477
|
+
const BoundFeather = renderSlot(feather, CopilotChatView.Feather, {});
|
|
6462
6478
|
return /* @__PURE__ */ jsx(ScrollElementContext.Provider, {
|
|
6463
6479
|
value: nonAutoScrollEl,
|
|
6464
6480
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -6485,7 +6501,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6485
6501
|
BoundFeather,
|
|
6486
6502
|
showScrollButton && !isResizing && /* @__PURE__ */ jsx("div", {
|
|
6487
6503
|
className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
|
|
6488
|
-
style: { bottom: `${inputContainerHeight +
|
|
6504
|
+
style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
|
|
6489
6505
|
children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
|
|
6490
6506
|
})
|
|
6491
6507
|
]
|
|
@@ -6553,7 +6569,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6553
6569
|
BoundFeather,
|
|
6554
6570
|
showScrollButton && !isResizing && /* @__PURE__ */ jsx("div", {
|
|
6555
6571
|
className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
|
|
6556
|
-
style: { bottom: `${inputContainerHeight +
|
|
6572
|
+
style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
|
|
6557
6573
|
children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
|
|
6558
6574
|
})
|
|
6559
6575
|
]
|
|
@@ -6597,9 +6613,8 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
|
|
|
6597
6613
|
...props,
|
|
6598
6614
|
children: /* @__PURE__ */ jsx(ChevronDown, { className: "cpk:w-4 cpk:h-4 cpk:text-gray-600 cpk:dark:text-white" })
|
|
6599
6615
|
});
|
|
6600
|
-
_CopilotChatView.Feather = ({ className,
|
|
6601
|
-
className
|
|
6602
|
-
style,
|
|
6616
|
+
_CopilotChatView.Feather = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
6617
|
+
className,
|
|
6603
6618
|
...props
|
|
6604
6619
|
});
|
|
6605
6620
|
_CopilotChatView.WelcomeMessage = ({ className, ...props }) => {
|
|
@@ -9755,4 +9770,4 @@ function validateProps(props) {
|
|
|
9755
9770
|
|
|
9756
9771
|
//#endregion
|
|
9757
9772
|
export { CopilotKitProvider as $, CopilotChatSuggestionView as A, useConfigureSuggestions as B, CopilotChatToggleButton as C, CopilotChatView_default as D, CopilotChat as E, CopilotChatAssistantMessage_default as F, useRenderTool as G, useCapabilities as H, CopilotChatToolCallsView as I, useRenderActivityMessage as J, useComponent as K, useAttachments as L, CopilotChatReasoningMessage_default as M, CopilotChatUserMessage_default as N, CopilotChatAttachmentQueue as O, CopilotChatAttachmentRenderer as P, useRenderToolCall as Q, useThreads$1 as R, CopilotModalHeader as S, DefaultOpenIcon as T, useHumanInTheLoop as U, useSuggestions as V, useDefaultRenderTool as W, UseAgentUpdate as X, useRenderCustomMessages as Y, useAgent as Z, WildcardToolCallRender as _, ThreadsProvider as a, SandboxFunctionsContext as at, CopilotPopupView as b, CoAgentStateRendersProvider as c, MCPAppsActivityRenderer as ct, shouldShowDevConsole as d, CopilotChatInput_default as dt, useCopilotKit as et, useToast as f, AudioRecorderError as ft, useCopilotContext as g, CopilotContext as h, useCopilotChatConfiguration as ht, ThreadsContext as i, createA2UIMessageRenderer as it, CopilotChatSuggestionPill as j, CopilotChatMessageView as k, useCoAgentStateRenders as l, MCPAppsActivityType as lt, useCopilotMessagesContext as m, CopilotChatConfigurationProvider as mt, defaultCopilotContextCategories as n, useAgentContext as nt, useThreads as o, useSandboxFunctions as ot, CopilotMessagesContext as p, CopilotChatAudioRecorder as pt, useFrontendTool as q, CoAgentStateRenderBridge as r, defineToolCallRenderer as rt, CoAgentStateRendersContext as s, MCPAppsActivityContentSchema as st, CopilotKit as t, CopilotKitCoreReact as tt, useAsyncCallback as u, CopilotKitInspector as ut, CopilotPopup as v, DefaultCloseIcon as w, CopilotSidebarView as x, CopilotSidebar as y, useInterrupt as z };
|
|
9758
|
-
//# sourceMappingURL=copilotkit-
|
|
9773
|
+
//# sourceMappingURL=copilotkit-DAatqMh2.mjs.map
|