@copilotkit/react-ui 1.50.0-beta.0 → 1.50.0-beta.2

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.
Files changed (66) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{chunk-SOB5EIL7.mjs → chunk-24MMWKMP.mjs} +2 -2
  3. package/dist/{chunk-G35HUUDA.mjs → chunk-37P64FUX.mjs} +7 -7
  4. package/dist/{chunk-HBZW7E5Z.mjs → chunk-3W6J75HS.mjs} +3 -3
  5. package/dist/chunk-3W6J75HS.mjs.map +1 -0
  6. package/dist/{chunk-MPF6BJUF.mjs → chunk-3XBVD2CB.mjs} +4 -4
  7. package/dist/{chunk-E6WVAOQA.mjs → chunk-5AHRKF3X.mjs} +2 -2
  8. package/dist/{chunk-ODEHR7KI.mjs → chunk-CCFOWF6X.mjs} +2 -2
  9. package/dist/{chunk-CQ2WALZ7.mjs → chunk-L55Z6ZQS.mjs} +2 -2
  10. package/dist/{chunk-3JYVJHL5.mjs → chunk-MGSZR7SA.mjs} +8 -8
  11. package/dist/{chunk-3YWFGNSM.mjs → chunk-RYUCX3ZK.mjs} +1 -1
  12. package/dist/chunk-RYUCX3ZK.mjs.map +1 -0
  13. package/dist/{chunk-GDSZGYCE.mjs → chunk-V6DDX4LH.mjs} +2 -2
  14. package/dist/{chunk-FFJHOZX6.mjs → chunk-WBPBTTQD.mjs} +4 -4
  15. package/dist/components/chat/Chat.js +2 -2
  16. package/dist/components/chat/Chat.js.map +1 -1
  17. package/dist/components/chat/Chat.mjs +6 -6
  18. package/dist/components/chat/Header.mjs +4 -4
  19. package/dist/components/chat/Input.js +2 -2
  20. package/dist/components/chat/Input.js.map +1 -1
  21. package/dist/components/chat/Input.mjs +1 -1
  22. package/dist/components/chat/Messages.js.map +1 -1
  23. package/dist/components/chat/Messages.mjs +4 -4
  24. package/dist/components/chat/Modal.js +2 -2
  25. package/dist/components/chat/Modal.js.map +1 -1
  26. package/dist/components/chat/Modal.mjs +11 -11
  27. package/dist/components/chat/Popup.js +2 -2
  28. package/dist/components/chat/Popup.js.map +1 -1
  29. package/dist/components/chat/Popup.mjs +12 -12
  30. package/dist/components/chat/Sidebar.js +2 -2
  31. package/dist/components/chat/Sidebar.js.map +1 -1
  32. package/dist/components/chat/Sidebar.mjs +12 -12
  33. package/dist/components/chat/index.js +2 -2
  34. package/dist/components/chat/index.js.map +1 -1
  35. package/dist/components/chat/index.mjs +15 -15
  36. package/dist/components/chat/messages/LegacyRenderMessage.js.map +1 -1
  37. package/dist/components/chat/messages/LegacyRenderMessage.mjs +3 -3
  38. package/dist/components/chat/messages/RenderMessage.js.map +1 -1
  39. package/dist/components/chat/messages/RenderMessage.mjs +2 -2
  40. package/dist/components/chat/messages/UserMessage.js.map +1 -1
  41. package/dist/components/chat/messages/UserMessage.mjs +1 -1
  42. package/dist/components/dev-console/console.mjs +3 -3
  43. package/dist/components/dev-console/index.mjs +4 -4
  44. package/dist/components/index.js +2 -2
  45. package/dist/components/index.js.map +1 -1
  46. package/dist/components/index.mjs +16 -16
  47. package/dist/index.css +1 -0
  48. package/dist/index.css.map +1 -1
  49. package/dist/index.js +2 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +17 -17
  52. package/package.json +21 -21
  53. package/src/components/chat/Input.tsx +2 -2
  54. package/src/components/chat/messages/UserMessage.tsx +12 -10
  55. package/src/css/messages.css +1 -0
  56. package/dist/chunk-3YWFGNSM.mjs.map +0 -1
  57. package/dist/chunk-HBZW7E5Z.mjs.map +0 -1
  58. /package/dist/{chunk-SOB5EIL7.mjs.map → chunk-24MMWKMP.mjs.map} +0 -0
  59. /package/dist/{chunk-G35HUUDA.mjs.map → chunk-37P64FUX.mjs.map} +0 -0
  60. /package/dist/{chunk-MPF6BJUF.mjs.map → chunk-3XBVD2CB.mjs.map} +0 -0
  61. /package/dist/{chunk-E6WVAOQA.mjs.map → chunk-5AHRKF3X.mjs.map} +0 -0
  62. /package/dist/{chunk-ODEHR7KI.mjs.map → chunk-CCFOWF6X.mjs.map} +0 -0
  63. /package/dist/{chunk-CQ2WALZ7.mjs.map → chunk-L55Z6ZQS.mjs.map} +0 -0
  64. /package/dist/{chunk-3JYVJHL5.mjs.map → chunk-MGSZR7SA.mjs.map} +0 -0
  65. /package/dist/{chunk-GDSZGYCE.mjs.map → chunk-V6DDX4LH.mjs.map} +0 -0
  66. /package/dist/{chunk-FFJHOZX6.mjs.map → chunk-WBPBTTQD.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -4,29 +4,29 @@ import "./chunk-MMVDU6DF.mjs";
4
4
  import "./chunk-SC6JRFAJ.mjs";
5
5
  import {
6
6
  CopilotSidebar
7
- } from "./chunk-SOB5EIL7.mjs";
7
+ } from "./chunk-24MMWKMP.mjs";
8
8
  import "./chunk-WB3YULQ4.mjs";
9
9
  import {
10
10
  CopilotPopup
11
- } from "./chunk-CQ2WALZ7.mjs";
12
- import "./chunk-3JYVJHL5.mjs";
11
+ } from "./chunk-L55Z6ZQS.mjs";
12
+ import "./chunk-MGSZR7SA.mjs";
13
13
  import "./chunk-C3GSYRC3.mjs";
14
- import "./chunk-GDSZGYCE.mjs";
14
+ import "./chunk-V6DDX4LH.mjs";
15
15
  import "./chunk-V7W6IM2V.mjs";
16
16
  import {
17
17
  CopilotDevConsole
18
- } from "./chunk-FFJHOZX6.mjs";
18
+ } from "./chunk-WBPBTTQD.mjs";
19
+ import "./chunk-KXE2JCUH.mjs";
20
+ import "./chunk-NRA3CFEE.mjs";
21
+ import "./chunk-BH6PCAAL.mjs";
19
22
  import "./chunk-Q5V6S67N.mjs";
20
23
  import {
21
24
  shouldShowDevConsole
22
25
  } from "./chunk-JY2CSDKN.mjs";
23
- import "./chunk-KXE2JCUH.mjs";
24
- import "./chunk-NRA3CFEE.mjs";
25
- import "./chunk-BH6PCAAL.mjs";
26
26
  import "./chunk-UFN2VWSR.mjs";
27
27
  import {
28
28
  CopilotChat
29
- } from "./chunk-G35HUUDA.mjs";
29
+ } from "./chunk-37P64FUX.mjs";
30
30
  import {
31
31
  Suggestions
32
32
  } from "./chunk-QB3GUN2N.mjs";
@@ -34,21 +34,21 @@ import {
34
34
  Suggestion
35
35
  } from "./chunk-NGJ32FAP.mjs";
36
36
  import "./chunk-PLHTVHUW.mjs";
37
- import "./chunk-HBZW7E5Z.mjs";
37
+ import "./chunk-3W6J75HS.mjs";
38
38
  import "./chunk-ELGRNEAO.mjs";
39
39
  import "./chunk-QIOJXTIQ.mjs";
40
- import "./chunk-E6WVAOQA.mjs";
41
- import "./chunk-ODEHR7KI.mjs";
42
- import "./chunk-MPF6BJUF.mjs";
40
+ import "./chunk-5AHRKF3X.mjs";
41
+ import "./chunk-CCFOWF6X.mjs";
42
+ import "./chunk-3XBVD2CB.mjs";
43
+ import {
44
+ UserMessage
45
+ } from "./chunk-RYUCX3ZK.mjs";
43
46
  import {
44
47
  AssistantMessage
45
48
  } from "./chunk-IHFR6PYG.mjs";
46
49
  import {
47
50
  ImageRenderer
48
51
  } from "./chunk-DBKRAOH7.mjs";
49
- import {
50
- UserMessage
51
- } from "./chunk-3YWFGNSM.mjs";
52
52
  import {
53
53
  Markdown
54
54
  } from "./chunk-JZ3RFQQ6.mjs";
@@ -57,7 +57,6 @@ import {
57
57
  } from "./chunk-IEMQ2SQW.mjs";
58
58
  import "./chunk-IK2BPURM.mjs";
59
59
  import "./chunk-XWG3L6QC.mjs";
60
- import "./chunk-IU3WTXLQ.mjs";
61
60
  import "./chunk-T26KLXLH.mjs";
62
61
  import {
63
62
  useCopilotChatSuggestions
@@ -66,6 +65,7 @@ import "./chunk-54JAUBUJ.mjs";
66
65
  import "./chunk-JGMFJZMG.mjs";
67
66
  import "./chunk-O72ZB5V3.mjs";
68
67
  import "./chunk-MRXNTQOX.mjs";
68
+ import "./chunk-IU3WTXLQ.mjs";
69
69
  export {
70
70
  AssistantMessage,
71
71
  CopilotChat,
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.50.0-beta.0",
12
+ "version": "1.50.0-beta.2",
13
13
  "sideEffects": [
14
14
  "**/*.css"
15
15
  ],
@@ -25,17 +25,8 @@
25
25
  },
26
26
  "types": "./dist/index.d.ts",
27
27
  "license": "MIT",
28
- "scripts": {
29
- "build": "tsup --clean",
30
- "dev": "tsup --watch --no-splitting",
31
- "test": "jest",
32
- "check-types": "tsc --noEmit",
33
- "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next",
34
- "link:global": "pnpm link --global",
35
- "unlink:global": "pnpm unlink --global"
36
- },
37
28
  "peerDependencies": {
38
- "@copilotkitnext/core": "0.0.22",
29
+ "@copilotkitnext/core": "0.0.23",
39
30
  "react": "^18 || ^19 || ^19.0.0-rc"
40
31
  },
41
32
  "devDependencies": {
@@ -43,27 +34,27 @@
43
34
  "@types/react": "^19.1.0",
44
35
  "@types/react-syntax-highlighter": "^15.5.7",
45
36
  "eslint": "^8.56.0",
46
- "eslint-config-custom": "workspace:*",
47
37
  "jest": "^29.6.4",
48
38
  "postcss": "^8.4.20",
49
39
  "react": "^18.2.0",
50
- "tailwind-config": "workspace:*",
51
40
  "tailwindcss": "^3.3.0",
52
41
  "ts-jest": "^29.1.1",
53
- "tsconfig": "workspace:*",
54
42
  "tsup": "^6.7.0",
55
- "typescript": "^5.2.3"
43
+ "typescript": "^5.2.3",
44
+ "eslint-config-custom": "1.4.6",
45
+ "tailwind-config": "1.4.6",
46
+ "tsconfig": "1.4.6"
56
47
  },
57
48
  "dependencies": {
58
- "@copilotkit/react-core": "workspace:*",
59
- "@copilotkit/runtime-client-gql": "workspace:*",
60
- "@copilotkit/shared": "workspace:*",
61
49
  "@headlessui/react": "^2.2.9",
62
50
  "react-markdown": "^10.1.0",
63
51
  "react-syntax-highlighter": "^15.6.1",
64
52
  "rehype-raw": "^7.0.0",
65
53
  "remark-gfm": "^4.0.1",
66
- "remark-math": "^6.0.0"
54
+ "remark-math": "^6.0.0",
55
+ "@copilotkit/react-core": "1.50.0-beta.2",
56
+ "@copilotkit/runtime-client-gql": "1.50.0-beta.2",
57
+ "@copilotkit/shared": "1.50.0-beta.2"
67
58
  },
68
59
  "keywords": [
69
60
  "copilotkit",
@@ -76,5 +67,14 @@
76
67
  "javascript",
77
68
  "automation",
78
69
  "textarea"
79
- ]
80
- }
70
+ ],
71
+ "scripts": {
72
+ "build": "tsup --clean",
73
+ "dev": "tsup --watch --no-splitting",
74
+ "test": "jest",
75
+ "check-types": "tsc --noEmit",
76
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next",
77
+ "link:global": "pnpm link --global",
78
+ "unlink:global": "pnpm unlink --global"
79
+ }
80
+ }
@@ -11,7 +11,7 @@ const MAX_NEWLINES = 6;
11
11
  export const Input = ({
12
12
  inProgress,
13
13
  onSend,
14
- chatReady = true,
14
+ chatReady = false,
15
15
  onStop,
16
16
  onUpload,
17
17
  hideStopButton = false,
@@ -73,7 +73,7 @@ export const Input = ({
73
73
  const isInProgress = inProgress || pushToTalkState === "transcribing";
74
74
  const { buttonIcon, buttonAlt } = useMemo(() => {
75
75
  if (!chatReady) return { buttonIcon: context.icons.spinnerIcon, buttonAlt: "Loading" };
76
- return isInProgress && !hideStopButton
76
+ return isInProgress && !hideStopButton && chatReady
77
77
  ? { buttonIcon: context.icons.stopIcon, buttonAlt: "Stop" }
78
78
  : { buttonIcon: context.icons.sendIcon, buttonAlt: "Send" };
79
79
  }, [isInProgress, chatReady, hideStopButton, context.icons.stopIcon, context.icons.sendIcon]);
@@ -11,16 +11,18 @@ const getTextContent = (content: UserMessageContent | undefined): string | undef
11
11
  return content;
12
12
  }
13
13
 
14
- return content
15
- .map((part) => {
16
- if (part.type === "text") {
17
- return part.text;
18
- }
19
- return undefined;
20
- })
21
- .filter((value): value is string => typeof value === "string" && value.length > 0)
22
- .join(" ")
23
- .trim() || undefined;
14
+ return (
15
+ content
16
+ .map((part) => {
17
+ if (part.type === "text") {
18
+ return part.text;
19
+ }
20
+ return undefined;
21
+ })
22
+ .filter((value): value is string => typeof value === "string" && value.length > 0)
23
+ .join(" ")
24
+ .trim() || undefined
25
+ );
24
26
  };
25
27
 
26
28
  export const UserMessage = (props: UserMessageProps) => {
@@ -4,6 +4,7 @@
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  background-color: var(--copilot-kit-background-color);
7
+ color: var(--copilot-kit-secondary-contrast-color);
7
8
  justify-content: space-between;
8
9
  z-index: 1;
9
10
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/messages/UserMessage.tsx"],"sourcesContent":["import { UserMessageProps } from \"../props\";\n\ntype UserMessageContent = NonNullable<UserMessageProps[\"message\"]>[\"content\"];\n\nconst getTextContent = (content: UserMessageContent | undefined): string | undefined => {\n if (typeof content === \"undefined\") {\n return undefined;\n }\n\n if (typeof content === \"string\") {\n return content;\n }\n\n return content\n .map((part) => {\n if (part.type === \"text\") {\n return part.text;\n }\n return undefined;\n })\n .filter((value): value is string => typeof value === \"string\" && value.length > 0)\n .join(\" \")\n .trim() || undefined;\n};\n\nexport const UserMessage = (props: UserMessageProps) => {\n const { message, ImageRenderer } = props;\n const isImageMessage = message && \"image\" in message && Boolean(message.image);\n\n if (isImageMessage) {\n const imageMessage = message!;\n const content = getTextContent(imageMessage?.content);\n\n return (\n <div className=\"copilotKitMessage copilotKitUserMessage\">\n <ImageRenderer image={imageMessage.image!} content={content} />\n </div>\n );\n }\n\n const content = getTextContent(message?.content);\n\n return <div className=\"copilotKitMessage copilotKitUserMessage\">{content}</div>;\n};\n"],"mappings":";AAmCQ;AA/BR,IAAM,iBAAiB,CAAC,YAAgE;AACtF,MAAI,OAAO,YAAY,aAAa;AAClC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;AAAA,EACT;AAEA,SAAO,QACJ,IAAI,CAAC,SAAS;AACb,QAAI,KAAK,SAAS,QAAQ;AACxB,aAAO,KAAK;AAAA,IACd;AACA,WAAO;AAAA,EACT,CAAC,EACA,OAAO,CAAC,UAA2B,OAAO,UAAU,YAAY,MAAM,SAAS,CAAC,EAChF,KAAK,GAAG,EACR,KAAK,KAAK;AACf;AAEO,IAAM,cAAc,CAAC,UAA4B;AACtD,QAAM,EAAE,SAAS,cAAc,IAAI;AACnC,QAAM,iBAAiB,WAAW,WAAW,WAAW,QAAQ,QAAQ,KAAK;AAE7E,MAAI,gBAAgB;AAClB,UAAM,eAAe;AACrB,UAAMA,WAAU,eAAe,6CAAc,OAAO;AAEpD,WACE,oBAAC,SAAI,WAAU,2CACb,8BAAC,iBAAc,OAAO,aAAa,OAAQ,SAASA,UAAS,GAC/D;AAAA,EAEJ;AAEA,QAAM,UAAU,eAAe,mCAAS,OAAO;AAE/C,SAAO,oBAAC,SAAI,WAAU,2CAA2C,mBAAQ;AAC3E;","names":["content"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/Input.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from \"react\";\nimport { InputProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\nimport AutoResizingTextarea from \"./Textarea\";\nimport { usePushToTalk } from \"../../hooks/use-push-to-talk\";\nimport { useCopilotContext, useCopilotChatInternal } from \"@copilotkit/react-core\";\nimport { PoweredByTag } from \"./PoweredByTag\";\n\nconst MAX_NEWLINES = 6;\n\nexport const Input = ({\n inProgress,\n onSend,\n chatReady = true,\n onStop,\n onUpload,\n hideStopButton = false,\n}: InputProps) => {\n const context = useChatContext();\n const copilotContext = useCopilotContext();\n\n const showPoweredBy = !copilotContext.copilotApiConfig?.publicApiKey;\n\n const pushToTalkConfigured =\n copilotContext.copilotApiConfig.textToSpeechUrl !== undefined &&\n copilotContext.copilotApiConfig.transcribeAudioUrl !== undefined;\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [isComposing, setIsComposing] = useState(false);\n\n const handleDivClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n\n // If the user clicked a button or inside a button, don't focus the textarea\n if (target.closest(\"button\")) return;\n\n // If the user clicked the textarea, do nothing (it's already focused)\n if (target.tagName === \"TEXTAREA\") return;\n\n // Otherwise, focus the textarea\n textareaRef.current?.focus();\n };\n\n const [text, setText] = useState(\"\");\n const send = () => {\n if (inProgress) return;\n onSend(text);\n setText(\"\");\n\n textareaRef.current?.focus();\n };\n\n // tylerslaton:\n //\n // This scrolls CopilotKit into view always. Reading the commit history, it was likely\n // added to fix a bug but it is causing issues now.\n //\n // For the future, if we want this behavior again, we will need to find a way to do it without\n // forcing CopilotKit to always be in view. This code causes this because focusing an element\n // in most browsers will scroll that element into view.\n //\n // useEffect(() => {\n // if (isVisible) {\n // textareaRef.current?.focus();\n // }\n // }, [isVisible]);\n\n const { pushToTalkState, setPushToTalkState } = usePushToTalk({\n sendFunction: onSend,\n inProgress,\n });\n\n const isInProgress = inProgress || pushToTalkState === \"transcribing\";\n const { buttonIcon, buttonAlt } = useMemo(() => {\n if (!chatReady) return { buttonIcon: context.icons.spinnerIcon, buttonAlt: \"Loading\" };\n return isInProgress && !hideStopButton\n ? { buttonIcon: context.icons.stopIcon, buttonAlt: \"Stop\" }\n : { buttonIcon: context.icons.sendIcon, buttonAlt: \"Send\" };\n }, [isInProgress, chatReady, hideStopButton, context.icons.stopIcon, context.icons.sendIcon]);\n const showPushToTalk =\n pushToTalkConfigured &&\n (pushToTalkState === \"idle\" || pushToTalkState === \"recording\") &&\n !inProgress;\n\n const { interrupt } = useCopilotChatInternal();\n\n const canSend = useMemo(() => {\n return !isInProgress && text.trim().length > 0 && pushToTalkState === \"idle\" && !interrupt;\n }, [interrupt, isInProgress, text, pushToTalkState]);\n\n const canStop = useMemo(() => {\n return isInProgress && !hideStopButton;\n }, [isInProgress, hideStopButton]);\n\n const sendDisabled = !canSend && !canStop;\n\n return (\n <div className={`copilotKitInputContainer ${showPoweredBy ? \"poweredByContainer\" : \"\"}`}>\n <div className=\"copilotKitInput\" onClick={handleDivClick}>\n <AutoResizingTextarea\n ref={textareaRef}\n placeholder={context.labels.placeholder}\n autoFocus={false}\n maxRows={MAX_NEWLINES}\n value={text}\n onChange={(event) => setText(event.target.value)}\n onCompositionStart={() => setIsComposing(true)}\n onCompositionEnd={() => setIsComposing(false)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" && !event.shiftKey && !isComposing) {\n event.preventDefault();\n if (canSend) {\n send();\n }\n }\n }}\n />\n <div className=\"copilotKitInputControls\">\n {onUpload && (\n <button onClick={onUpload} className=\"copilotKitInputControlButton\">\n {context.icons.uploadIcon}\n </button>\n )}\n\n <div style={{ flexGrow: 1 }} />\n\n {showPushToTalk && (\n <button\n onClick={() =>\n setPushToTalkState(pushToTalkState === \"idle\" ? \"recording\" : \"transcribing\")\n }\n className={\n pushToTalkState === \"recording\"\n ? \"copilotKitInputControlButton copilotKitPushToTalkRecording\"\n : \"copilotKitInputControlButton\"\n }\n >\n {context.icons.pushToTalkIcon}\n </button>\n )}\n <button\n disabled={sendDisabled}\n onClick={isInProgress && !hideStopButton ? onStop : send}\n data-copilotkit-in-progress={inProgress}\n data-test-id={inProgress ? \"copilot-chat-request-in-progress\" : \"copilot-chat-ready\"}\n className=\"copilotKitInputControlButton\"\n aria-label={buttonAlt}\n >\n {buttonIcon}\n </button>\n </div>\n </div>\n <PoweredByTag showPoweredBy={showPoweredBy} />\n </div>\n );\n};\n"],"mappings":"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","names":["_a"]}