@copilotkit/react-ui 1.9.3 → 1.10.0-next.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.
Files changed (178) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{chunk-KENCH7RN.mjs → chunk-B5IFB5YJ.mjs} +1 -1
  3. package/dist/chunk-B5IFB5YJ.mjs.map +1 -0
  4. package/dist/chunk-DBKRAOH7.mjs +34 -0
  5. package/dist/chunk-DBKRAOH7.mjs.map +1 -0
  6. package/dist/{chunk-4HUXYD3B.mjs → chunk-DTRPPNSA.mjs} +2 -2
  7. package/dist/{chunk-YTXEWDNC.mjs → chunk-E6MQUIZW.mjs} +15 -4
  8. package/dist/chunk-E6MQUIZW.mjs.map +1 -0
  9. package/dist/{chunk-L3GZ7TXC.mjs → chunk-GCKKSSBU.mjs} +21 -24
  10. package/dist/chunk-GCKKSSBU.mjs.map +1 -0
  11. package/dist/{chunk-KN2GCKBE.mjs → chunk-GJ3MFNBX.mjs} +6 -6
  12. package/dist/{chunk-32MUWKL3.mjs → chunk-JHUTTP5C.mjs} +21 -17
  13. package/dist/chunk-JHUTTP5C.mjs.map +1 -0
  14. package/dist/{chunk-HKTWKCPS.mjs → chunk-LXCD3K7B.mjs} +127 -92
  15. package/dist/chunk-LXCD3K7B.mjs.map +1 -0
  16. package/dist/{chunk-S5MBUNGN.mjs → chunk-O72ZB5V3.mjs} +4 -4
  17. package/dist/chunk-O72ZB5V3.mjs.map +1 -0
  18. package/dist/{chunk-QGSPTXOV.mjs → chunk-O7KTFUAN.mjs} +2 -2
  19. package/dist/chunk-O7KTFUAN.mjs.map +1 -0
  20. package/dist/chunk-Q2467VHZ.mjs +30 -0
  21. package/dist/chunk-Q2467VHZ.mjs.map +1 -0
  22. package/dist/{chunk-H3EM63WS.mjs → chunk-VLNT34X3.mjs} +2 -2
  23. package/dist/chunk-VVL6JFCJ.mjs +16 -0
  24. package/dist/chunk-VVL6JFCJ.mjs.map +1 -0
  25. package/dist/chunk-WHDNKXMP.mjs +135 -0
  26. package/dist/chunk-WHDNKXMP.mjs.map +1 -0
  27. package/dist/{chunk-ALIBUJML.mjs → chunk-WPVTPQ7X.mjs} +2 -2
  28. package/dist/components/chat/Button.d.ts +1 -1
  29. package/dist/components/chat/Chat.d.ts +119 -28
  30. package/dist/components/chat/Chat.js +298 -658
  31. package/dist/components/chat/Chat.js.map +1 -1
  32. package/dist/components/chat/Chat.mjs +12 -15
  33. package/dist/components/chat/CodeBlock.js.map +1 -1
  34. package/dist/components/chat/CodeBlock.mjs +1 -1
  35. package/dist/components/chat/Header.d.ts +1 -1
  36. package/dist/components/chat/Input.d.ts +1 -1
  37. package/dist/components/chat/Input.js +3 -3
  38. package/dist/components/chat/Input.js.map +1 -1
  39. package/dist/components/chat/Input.mjs +2 -2
  40. package/dist/components/chat/Markdown.js +13 -2
  41. package/dist/components/chat/Markdown.js.map +1 -1
  42. package/dist/components/chat/Markdown.mjs +2 -2
  43. package/dist/components/chat/Messages.d.ts +3 -3
  44. package/dist/components/chat/Messages.js +40 -116
  45. package/dist/components/chat/Messages.js.map +1 -1
  46. package/dist/components/chat/Messages.mjs +1 -1
  47. package/dist/components/chat/Modal.d.ts +7 -2
  48. package/dist/components/chat/Modal.js +308 -668
  49. package/dist/components/chat/Modal.js.map +1 -1
  50. package/dist/components/chat/Modal.mjs +13 -16
  51. package/dist/components/chat/Popup.d.ts +7 -2
  52. package/dist/components/chat/Popup.js +310 -670
  53. package/dist/components/chat/Popup.js.map +1 -1
  54. package/dist/components/chat/Popup.mjs +14 -17
  55. package/dist/components/chat/Sidebar.d.ts +7 -2
  56. package/dist/components/chat/Sidebar.js +312 -672
  57. package/dist/components/chat/Sidebar.js.map +1 -1
  58. package/dist/components/chat/Sidebar.mjs +14 -17
  59. package/dist/components/chat/Suggestion.d.ts +2 -9
  60. package/dist/components/chat/Suggestion.js +6 -96
  61. package/dist/components/chat/Suggestion.js.map +1 -1
  62. package/dist/components/chat/Suggestion.mjs +3 -5
  63. package/dist/components/chat/Suggestions.d.ts +1 -1
  64. package/dist/components/chat/Suggestions.js +4 -3
  65. package/dist/components/chat/Suggestions.js.map +1 -1
  66. package/dist/components/chat/Suggestions.mjs +2 -2
  67. package/dist/components/chat/Window.d.ts +1 -1
  68. package/dist/components/chat/index.d.ts +8 -3
  69. package/dist/components/chat/index.js +316 -676
  70. package/dist/components/chat/index.js.map +1 -1
  71. package/dist/components/chat/index.mjs +18 -21
  72. package/dist/components/chat/messages/AssistantMessage.d.ts +1 -1
  73. package/dist/components/chat/messages/AssistantMessage.js +32 -24
  74. package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
  75. package/dist/components/chat/messages/AssistantMessage.mjs +3 -3
  76. package/dist/components/chat/messages/ImageRenderer.d.ts +12 -0
  77. package/dist/components/chat/messages/ImageRenderer.js +58 -0
  78. package/dist/components/chat/messages/ImageRenderer.js.map +1 -0
  79. package/dist/components/chat/messages/ImageRenderer.mjs +8 -0
  80. package/dist/components/chat/messages/RenderMessage.d.ts +9 -0
  81. package/dist/components/chat/messages/{RenderTextMessage.js → RenderMessage.js} +92 -47
  82. package/dist/components/chat/messages/RenderMessage.js.map +1 -0
  83. package/dist/components/chat/messages/RenderMessage.mjs +16 -0
  84. package/dist/components/chat/messages/UserMessage.d.ts +1 -1
  85. package/dist/components/chat/messages/UserMessage.js +7 -1
  86. package/dist/components/chat/messages/UserMessage.js.map +1 -1
  87. package/dist/components/chat/messages/UserMessage.mjs +1 -1
  88. package/dist/components/chat/props.d.ts +32 -27
  89. package/dist/components/chat/props.js.map +1 -1
  90. package/dist/components/index.d.ts +8 -3
  91. package/dist/components/index.js +316 -676
  92. package/dist/components/index.js.map +1 -1
  93. package/dist/components/index.mjs +18 -21
  94. package/dist/hooks/use-push-to-talk.d.ts +1 -1
  95. package/dist/hooks/use-push-to-talk.js +3 -3
  96. package/dist/hooks/use-push-to-talk.js.map +1 -1
  97. package/dist/hooks/use-push-to-talk.mjs +1 -1
  98. package/dist/index.css +59 -3
  99. package/dist/index.css.map +1 -1
  100. package/dist/index.d.ts +8 -3
  101. package/dist/index.js +322 -682
  102. package/dist/index.js.map +1 -1
  103. package/dist/index.mjs +18 -21
  104. package/dist/types/css.d.ts +3 -0
  105. package/dist/types/css.js.map +1 -1
  106. package/package.json +4 -4
  107. package/src/components/chat/Chat.tsx +193 -105
  108. package/src/components/chat/CodeBlock.tsx +1 -1
  109. package/src/components/chat/Markdown.tsx +12 -2
  110. package/src/components/chat/Messages.tsx +43 -122
  111. package/src/components/chat/Suggestion.tsx +5 -108
  112. package/src/components/chat/Suggestions.tsx +0 -1
  113. package/src/components/chat/index.tsx +1 -1
  114. package/src/components/chat/messages/AssistantMessage.tsx +15 -23
  115. package/src/components/chat/messages/ImageRenderer.tsx +37 -0
  116. package/src/components/chat/messages/{RenderTextMessage.tsx → RenderMessage.tsx} +10 -9
  117. package/src/components/chat/messages/UserMessage.tsx +16 -5
  118. package/src/components/chat/props.ts +36 -28
  119. package/src/css/colors.css +10 -0
  120. package/src/css/markdown.css +8 -0
  121. package/src/css/messages.css +54 -5
  122. package/src/css/suggestions.css +1 -1
  123. package/src/hooks/use-push-to-talk.tsx +6 -5
  124. package/src/styles.css +1 -1
  125. package/src/types/css.ts +3 -0
  126. package/dist/chunk-2II3Q27P.mjs +0 -112
  127. package/dist/chunk-2II3Q27P.mjs.map +0 -1
  128. package/dist/chunk-32MUWKL3.mjs.map +0 -1
  129. package/dist/chunk-53CVDVS5.mjs +0 -127
  130. package/dist/chunk-53CVDVS5.mjs.map +0 -1
  131. package/dist/chunk-B3D7U7TJ.mjs +0 -211
  132. package/dist/chunk-B3D7U7TJ.mjs.map +0 -1
  133. package/dist/chunk-C7OB63U5.mjs +0 -36
  134. package/dist/chunk-C7OB63U5.mjs.map +0 -1
  135. package/dist/chunk-HKTWKCPS.mjs.map +0 -1
  136. package/dist/chunk-HWMFMBJC.mjs +0 -10
  137. package/dist/chunk-HWMFMBJC.mjs.map +0 -1
  138. package/dist/chunk-IMBPSLL4.mjs +0 -104
  139. package/dist/chunk-IMBPSLL4.mjs.map +0 -1
  140. package/dist/chunk-KENCH7RN.mjs.map +0 -1
  141. package/dist/chunk-L3GZ7TXC.mjs.map +0 -1
  142. package/dist/chunk-QGSPTXOV.mjs.map +0 -1
  143. package/dist/chunk-S5MBUNGN.mjs.map +0 -1
  144. package/dist/chunk-ULDQXCED.mjs +0 -78
  145. package/dist/chunk-ULDQXCED.mjs.map +0 -1
  146. package/dist/chunk-YTXEWDNC.mjs.map +0 -1
  147. package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +0 -9
  148. package/dist/components/chat/messages/RenderActionExecutionMessage.js +0 -869
  149. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +0 -1
  150. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +0 -14
  151. package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +0 -9
  152. package/dist/components/chat/messages/RenderAgentStateMessage.js +0 -854
  153. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +0 -1
  154. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +0 -14
  155. package/dist/components/chat/messages/RenderImageMessage.d.ts +0 -9
  156. package/dist/components/chat/messages/RenderImageMessage.js +0 -823
  157. package/dist/components/chat/messages/RenderImageMessage.js.map +0 -1
  158. package/dist/components/chat/messages/RenderImageMessage.mjs +0 -15
  159. package/dist/components/chat/messages/RenderImageMessage.mjs.map +0 -1
  160. package/dist/components/chat/messages/RenderResultMessage.d.ts +0 -9
  161. package/dist/components/chat/messages/RenderResultMessage.js +0 -778
  162. package/dist/components/chat/messages/RenderResultMessage.js.map +0 -1
  163. package/dist/components/chat/messages/RenderResultMessage.mjs +0 -14
  164. package/dist/components/chat/messages/RenderResultMessage.mjs.map +0 -1
  165. package/dist/components/chat/messages/RenderTextMessage.d.ts +0 -9
  166. package/dist/components/chat/messages/RenderTextMessage.js.map +0 -1
  167. package/dist/components/chat/messages/RenderTextMessage.mjs +0 -15
  168. package/dist/components/chat/messages/RenderTextMessage.mjs.map +0 -1
  169. package/src/components/chat/messages/RenderActionExecutionMessage.tsx +0 -127
  170. package/src/components/chat/messages/RenderAgentStateMessage.tsx +0 -116
  171. package/src/components/chat/messages/RenderImageMessage.tsx +0 -64
  172. package/src/components/chat/messages/RenderResultMessage.tsx +0 -26
  173. /package/dist/{chunk-4HUXYD3B.mjs.map → chunk-DTRPPNSA.mjs.map} +0 -0
  174. /package/dist/{chunk-KN2GCKBE.mjs.map → chunk-GJ3MFNBX.mjs.map} +0 -0
  175. /package/dist/{chunk-H3EM63WS.mjs.map → chunk-VLNT34X3.mjs.map} +0 -0
  176. /package/dist/{chunk-ALIBUJML.mjs.map → chunk-WPVTPQ7X.mjs.map} +0 -0
  177. /package/dist/components/chat/messages/{RenderActionExecutionMessage.mjs.map → ImageRenderer.mjs.map} +0 -0
  178. /package/dist/components/chat/messages/{RenderAgentStateMessage.mjs.map → RenderMessage.mjs.map} +0 -0
@@ -1,854 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __getProtoOf = Object.getPrototypeOf;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
- var __objRest = (source, exclude) => {
26
- var target = {};
27
- for (var prop in source)
28
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
- target[prop] = source[prop];
30
- if (source != null && __getOwnPropSymbols)
31
- for (var prop of __getOwnPropSymbols(source)) {
32
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
- target[prop] = source[prop];
34
- }
35
- return target;
36
- };
37
- var __export = (target, all) => {
38
- for (var name in all)
39
- __defProp(target, name, { get: all[name], enumerable: true });
40
- };
41
- var __copyProps = (to, from, except, desc) => {
42
- if (from && typeof from === "object" || typeof from === "function") {
43
- for (let key of __getOwnPropNames(from))
44
- if (!__hasOwnProp.call(to, key) && key !== except)
45
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
- }
47
- return to;
48
- };
49
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
50
- // If the importer is in node compatibility mode or this is not an ESM
51
- // file that has been converted to a CommonJS file using a Babel-
52
- // compatible transform (i.e. "__esModule" has not been set), then set
53
- // "default" to the CommonJS "module.exports" for node compatibility.
54
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
55
- mod
56
- ));
57
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
-
59
- // src/components/chat/messages/RenderAgentStateMessage.tsx
60
- var RenderAgentStateMessage_exports = {};
61
- __export(RenderAgentStateMessage_exports, {
62
- RenderAgentStateMessage: () => RenderAgentStateMessage
63
- });
64
- module.exports = __toCommonJS(RenderAgentStateMessage_exports);
65
- var import_react_core = require("@copilotkit/react-core");
66
-
67
- // src/components/chat/ChatContext.tsx
68
- var import_react = __toESM(require("react"));
69
-
70
- // src/components/chat/Icons.tsx
71
- var import_jsx_runtime = require("react/jsx-runtime");
72
- var CopyIcon = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
- "svg",
74
- {
75
- xmlns: "http://www.w3.org/2000/svg",
76
- fill: "none",
77
- viewBox: "0 0 24 24",
78
- strokeWidth: "2",
79
- stroke: "currentColor",
80
- width: "16",
81
- height: "16",
82
- style: { minWidth: "16px", minHeight: "16px" },
83
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
- "path",
85
- {
86
- strokeLinecap: "round",
87
- strokeLinejoin: "round",
88
- d: "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75"
89
- }
90
- )
91
- }
92
- );
93
- var DownloadIcon = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
94
- "svg",
95
- {
96
- xmlns: "http://www.w3.org/2000/svg",
97
- fill: "none",
98
- viewBox: "0 0 24 24",
99
- strokeWidth: "2",
100
- stroke: "currentColor",
101
- width: "16",
102
- height: "16",
103
- style: { minWidth: "16px", minHeight: "16px" },
104
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
105
- "path",
106
- {
107
- strokeLinecap: "round",
108
- strokeLinejoin: "round",
109
- d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"
110
- }
111
- )
112
- }
113
- );
114
- var CheckIcon = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
115
- "svg",
116
- {
117
- xmlns: "http://www.w3.org/2000/svg",
118
- fill: "none",
119
- viewBox: "0 0 24 24",
120
- strokeWidth: "2",
121
- stroke: "currentColor",
122
- width: "16",
123
- height: "16",
124
- style: { minWidth: "16px", minHeight: "16px" },
125
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4.5 12.75l6 6 9-13.5" })
126
- }
127
- );
128
-
129
- // src/components/chat/ChatContext.tsx
130
- var import_jsx_runtime2 = require("react/jsx-runtime");
131
- var ChatContext = import_react.default.createContext(void 0);
132
- function useChatContext() {
133
- const context = import_react.default.useContext(ChatContext);
134
- if (context === void 0) {
135
- throw new Error(
136
- "Context not found. Did you forget to wrap your app in a <ChatContextProvider> component?"
137
- );
138
- }
139
- return context;
140
- }
141
-
142
- // src/components/chat/Markdown.tsx
143
- var import_react3 = require("react");
144
- var import_react_markdown = __toESM(require("react-markdown"));
145
-
146
- // src/components/chat/CodeBlock.tsx
147
- var import_react2 = require("react");
148
- var import_react_syntax_highlighter = require("react-syntax-highlighter");
149
-
150
- // src/hooks/use-copy-to-clipboard.tsx
151
- var React2 = __toESM(require("react"));
152
- function useCopyToClipboard({ timeout = 2e3 }) {
153
- const [isCopied, setIsCopied] = React2.useState(false);
154
- const copyToClipboard = (value) => {
155
- var _a;
156
- if (typeof window === "undefined" || !((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
157
- return;
158
- }
159
- if (!value) {
160
- return;
161
- }
162
- navigator.clipboard.writeText(value).then(() => {
163
- setIsCopied(true);
164
- setTimeout(() => {
165
- setIsCopied(false);
166
- }, timeout);
167
- });
168
- };
169
- return { isCopied, copyToClipboard };
170
- }
171
-
172
- // src/components/chat/CodeBlock.tsx
173
- var import_jsx_runtime3 = require("react/jsx-runtime");
174
- var programmingLanguages = {
175
- javascript: ".js",
176
- python: ".py",
177
- java: ".java",
178
- c: ".c",
179
- cpp: ".cpp",
180
- "c++": ".cpp",
181
- "c#": ".cs",
182
- ruby: ".rb",
183
- php: ".php",
184
- swift: ".swift",
185
- "objective-c": ".m",
186
- kotlin: ".kt",
187
- typescript: ".ts",
188
- go: ".go",
189
- perl: ".pl",
190
- rust: ".rs",
191
- scala: ".scala",
192
- haskell: ".hs",
193
- lua: ".lua",
194
- shell: ".sh",
195
- sql: ".sql",
196
- html: ".html",
197
- css: ".css"
198
- // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component
199
- };
200
- var generateRandomString = (length, lowercase = false) => {
201
- const chars = "ABCDEFGHJKLMNPQRSTUVWXY3456789";
202
- let result = "";
203
- for (let i = 0; i < length; i++) {
204
- result += chars.charAt(Math.floor(Math.random() * chars.length));
205
- }
206
- return lowercase ? result.toLowerCase() : result;
207
- };
208
- var CodeBlock = (0, import_react2.memo)(({ language, value }) => {
209
- const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2e3 });
210
- const downloadAsFile = () => {
211
- if (typeof window === "undefined") {
212
- return;
213
- }
214
- const fileExtension = programmingLanguages[language] || ".file";
215
- const suggestedFileName = `file-${generateRandomString(3, true)}${fileExtension}`;
216
- const fileName = window.prompt("Enter file name", suggestedFileName);
217
- if (!fileName) {
218
- return;
219
- }
220
- const blob = new Blob([value], { type: "text/plain" });
221
- const url = URL.createObjectURL(blob);
222
- const link = document.createElement("a");
223
- link.download = fileName;
224
- link.href = url;
225
- link.style.display = "none";
226
- document.body.appendChild(link);
227
- link.click();
228
- document.body.removeChild(link);
229
- URL.revokeObjectURL(url);
230
- };
231
- const onCopy = () => {
232
- if (isCopied)
233
- return;
234
- copyToClipboard(value);
235
- };
236
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "copilotKitCodeBlock", children: [
237
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "copilotKitCodeBlockToolbar", children: [
238
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "copilotKitCodeBlockToolbarLanguage", children: language }),
239
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "copilotKitCodeBlockToolbarButtons", children: [
240
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: downloadAsFile, children: DownloadIcon }),
241
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: onCopy, children: isCopied ? CheckIcon : CopyIcon })
242
- ] })
243
- ] }),
244
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
245
- import_react_syntax_highlighter.Prism,
246
- {
247
- language,
248
- style: highlightStyle,
249
- PreTag: "div",
250
- customStyle: {
251
- margin: 0,
252
- borderBottomLeftRadius: "0.375rem",
253
- borderBottomRightRadius: "0.375rem"
254
- },
255
- children: value
256
- }
257
- )
258
- ] });
259
- });
260
- CodeBlock.displayName = "CodeBlock";
261
- var highlightStyle = {
262
- 'pre[class*="language-"]': {
263
- color: "#d4d4d4",
264
- fontSize: "13px",
265
- textShadow: "none",
266
- fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',
267
- direction: "ltr",
268
- textAlign: "left",
269
- whiteSpace: "pre",
270
- wordSpacing: "normal",
271
- wordBreak: "normal",
272
- lineHeight: "1.5",
273
- MozTabSize: "4",
274
- OTabSize: "4",
275
- tabSize: "4",
276
- WebkitHyphens: "none",
277
- MozHyphens: "none",
278
- msHyphens: "none",
279
- hyphens: "none",
280
- padding: "1em",
281
- margin: ".5em 0",
282
- overflow: "auto",
283
- background: "#1e1e1e"
284
- },
285
- 'code[class*="language-"]': {
286
- color: "#d4d4d4",
287
- fontSize: "13px",
288
- textShadow: "none",
289
- fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',
290
- direction: "ltr",
291
- textAlign: "left",
292
- whiteSpace: "pre",
293
- wordSpacing: "normal",
294
- wordBreak: "normal",
295
- lineHeight: "1.5",
296
- MozTabSize: "4",
297
- OTabSize: "4",
298
- tabSize: "4",
299
- WebkitHyphens: "none",
300
- MozHyphens: "none",
301
- msHyphens: "none",
302
- hyphens: "none"
303
- },
304
- 'pre[class*="language-"]::selection': {
305
- textShadow: "none",
306
- background: "#264F78"
307
- },
308
- 'code[class*="language-"]::selection': {
309
- textShadow: "none",
310
- background: "#264F78"
311
- },
312
- 'pre[class*="language-"] *::selection': {
313
- textShadow: "none",
314
- background: "#264F78"
315
- },
316
- 'code[class*="language-"] *::selection': {
317
- textShadow: "none",
318
- background: "#264F78"
319
- },
320
- ':not(pre) > code[class*="language-"]': {
321
- padding: ".1em .3em",
322
- borderRadius: ".3em",
323
- color: "#db4c69",
324
- background: "#1e1e1e"
325
- },
326
- ".namespace": {
327
- Opacity: ".7"
328
- },
329
- "doctype.doctype-tag": {
330
- color: "#569CD6"
331
- },
332
- "doctype.name": {
333
- color: "#9cdcfe"
334
- },
335
- comment: {
336
- color: "#6a9955"
337
- },
338
- prolog: {
339
- color: "#6a9955"
340
- },
341
- punctuation: {
342
- color: "#d4d4d4"
343
- },
344
- ".language-html .language-css .token.punctuation": {
345
- color: "#d4d4d4"
346
- },
347
- ".language-html .language-javascript .token.punctuation": {
348
- color: "#d4d4d4"
349
- },
350
- property: {
351
- color: "#9cdcfe"
352
- },
353
- tag: {
354
- color: "#569cd6"
355
- },
356
- boolean: {
357
- color: "#569cd6"
358
- },
359
- number: {
360
- color: "#b5cea8"
361
- },
362
- constant: {
363
- color: "#9cdcfe"
364
- },
365
- symbol: {
366
- color: "#b5cea8"
367
- },
368
- inserted: {
369
- color: "#b5cea8"
370
- },
371
- unit: {
372
- color: "#b5cea8"
373
- },
374
- selector: {
375
- color: "#d7ba7d"
376
- },
377
- "attr-name": {
378
- color: "#9cdcfe"
379
- },
380
- string: {
381
- color: "#ce9178"
382
- },
383
- char: {
384
- color: "#ce9178"
385
- },
386
- builtin: {
387
- color: "#ce9178"
388
- },
389
- deleted: {
390
- color: "#ce9178"
391
- },
392
- ".language-css .token.string.url": {
393
- textDecoration: "underline"
394
- },
395
- operator: {
396
- color: "#d4d4d4"
397
- },
398
- entity: {
399
- color: "#569cd6"
400
- },
401
- "operator.arrow": {
402
- color: "#569CD6"
403
- },
404
- atrule: {
405
- color: "#ce9178"
406
- },
407
- "atrule.rule": {
408
- color: "#c586c0"
409
- },
410
- "atrule.url": {
411
- color: "#9cdcfe"
412
- },
413
- "atrule.url.function": {
414
- color: "#dcdcaa"
415
- },
416
- "atrule.url.punctuation": {
417
- color: "#d4d4d4"
418
- },
419
- keyword: {
420
- color: "#569CD6"
421
- },
422
- "keyword.module": {
423
- color: "#c586c0"
424
- },
425
- "keyword.control-flow": {
426
- color: "#c586c0"
427
- },
428
- function: {
429
- color: "#dcdcaa"
430
- },
431
- "function.maybe-class-name": {
432
- color: "#dcdcaa"
433
- },
434
- regex: {
435
- color: "#d16969"
436
- },
437
- important: {
438
- color: "#569cd6"
439
- },
440
- italic: {
441
- fontStyle: "italic"
442
- },
443
- "class-name": {
444
- color: "#4ec9b0"
445
- },
446
- "maybe-class-name": {
447
- color: "#4ec9b0"
448
- },
449
- console: {
450
- color: "#9cdcfe"
451
- },
452
- parameter: {
453
- color: "#9cdcfe"
454
- },
455
- interpolation: {
456
- color: "#9cdcfe"
457
- },
458
- "punctuation.interpolation-punctuation": {
459
- color: "#569cd6"
460
- },
461
- variable: {
462
- color: "#9cdcfe"
463
- },
464
- "imports.maybe-class-name": {
465
- color: "#9cdcfe"
466
- },
467
- "exports.maybe-class-name": {
468
- color: "#9cdcfe"
469
- },
470
- escape: {
471
- color: "#d7ba7d"
472
- },
473
- "tag.punctuation": {
474
- color: "#808080"
475
- },
476
- cdata: {
477
- color: "#808080"
478
- },
479
- "attr-value": {
480
- color: "#ce9178"
481
- },
482
- "attr-value.punctuation": {
483
- color: "#ce9178"
484
- },
485
- "attr-value.punctuation.attr-equals": {
486
- color: "#d4d4d4"
487
- },
488
- namespace: {
489
- color: "#4ec9b0"
490
- },
491
- 'pre[class*="language-javascript"]': {
492
- color: "#9cdcfe"
493
- },
494
- 'code[class*="language-javascript"]': {
495
- color: "#9cdcfe"
496
- },
497
- 'pre[class*="language-jsx"]': {
498
- color: "#9cdcfe"
499
- },
500
- 'code[class*="language-jsx"]': {
501
- color: "#9cdcfe"
502
- },
503
- 'pre[class*="language-typescript"]': {
504
- color: "#9cdcfe"
505
- },
506
- 'code[class*="language-typescript"]': {
507
- color: "#9cdcfe"
508
- },
509
- 'pre[class*="language-tsx"]': {
510
- color: "#9cdcfe"
511
- },
512
- 'code[class*="language-tsx"]': {
513
- color: "#9cdcfe"
514
- },
515
- 'pre[class*="language-css"]': {
516
- color: "#ce9178"
517
- },
518
- 'code[class*="language-css"]': {
519
- color: "#ce9178"
520
- },
521
- 'pre[class*="language-html"]': {
522
- color: "#d4d4d4"
523
- },
524
- 'code[class*="language-html"]': {
525
- color: "#d4d4d4"
526
- },
527
- ".language-regex .token.anchor": {
528
- color: "#dcdcaa"
529
- },
530
- ".language-html .token.punctuation": {
531
- color: "#808080"
532
- },
533
- 'pre[class*="language-"] > code[class*="language-"]': {
534
- position: "relative",
535
- zIndex: "1"
536
- },
537
- ".line-highlight.line-highlight": {
538
- background: "#f7ebc6",
539
- boxShadow: "inset 5px 0 0 #f7d87c",
540
- zIndex: "0"
541
- }
542
- };
543
-
544
- // src/components/chat/Markdown.tsx
545
- var import_remark_gfm = __toESM(require("remark-gfm"));
546
- var import_remark_math = __toESM(require("remark-math"));
547
- var import_rehype_raw = __toESM(require("rehype-raw"));
548
- var import_jsx_runtime4 = require("react/jsx-runtime");
549
- var defaultComponents = {
550
- a(_a) {
551
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
552
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("a", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { target: "_blank", rel: "noopener noreferrer", children }));
553
- },
554
- // @ts-expect-error -- inline
555
- code(_c) {
556
- var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
557
- if (Array.isArray(children) && children.length) {
558
- if (children[0] == "\u258D") {
559
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
560
- "span",
561
- {
562
- style: {
563
- animation: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",
564
- marginTop: "0.25rem"
565
- },
566
- children: "\u258D"
567
- }
568
- );
569
- }
570
- children[0] = (children == null ? void 0 : children[0]).replace("`\u258D`", "\u258D");
571
- }
572
- const match = /language-(\w+)/.exec(className || "");
573
- if (inline) {
574
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", __spreadProps(__spreadValues({ className }, props), { children }));
575
- }
576
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
577
- CodeBlock,
578
- __spreadValues({
579
- language: match && match[1] || "",
580
- value: String(children).replace(/\n$/, "")
581
- }, props),
582
- Math.random()
583
- );
584
- },
585
- h1: (_e) => {
586
- var _f = _e, { children } = _f, props = __objRest(_f, ["children"]);
587
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
588
- },
589
- h2: (_g) => {
590
- var _h = _g, { children } = _h, props = __objRest(_h, ["children"]);
591
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
592
- },
593
- h3: (_i) => {
594
- var _j = _i, { children } = _j, props = __objRest(_j, ["children"]);
595
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
596
- },
597
- h4: (_k) => {
598
- var _l = _k, { children } = _l, props = __objRest(_l, ["children"]);
599
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
600
- },
601
- h5: (_m) => {
602
- var _n = _m, { children } = _n, props = __objRest(_n, ["children"]);
603
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h5", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
604
- },
605
- h6: (_o) => {
606
- var _p = _o, { children } = _p, props = __objRest(_p, ["children"]);
607
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h6", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
608
- },
609
- p: (_q) => {
610
- var _r = _q, { children } = _r, props = __objRest(_r, ["children"]);
611
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
612
- },
613
- pre: (_s) => {
614
- var _t = _s, { children } = _t, props = __objRest(_t, ["children"]);
615
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("pre", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
616
- },
617
- blockquote: (_u) => {
618
- var _v = _u, { children } = _v, props = __objRest(_v, ["children"]);
619
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("blockquote", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
620
- },
621
- ul: (_w) => {
622
- var _x = _w, { children } = _x, props = __objRest(_x, ["children"]);
623
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
624
- },
625
- li: (_y) => {
626
- var _z = _y, { children } = _z, props = __objRest(_z, ["children"]);
627
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("li", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
628
- }
629
- };
630
- var MemoizedReactMarkdown = (0, import_react3.memo)(
631
- import_react_markdown.default,
632
- (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.components === nextProps.components
633
- );
634
- var Markdown = ({ content, components }) => {
635
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
636
- MemoizedReactMarkdown,
637
- {
638
- components: __spreadValues(__spreadValues({}, defaultComponents), components),
639
- remarkPlugins: [import_remark_gfm.default, import_remark_math.default],
640
- rehypePlugins: [import_rehype_raw.default],
641
- children: content
642
- }
643
- ) });
644
- };
645
-
646
- // src/components/chat/messages/AssistantMessage.tsx
647
- var import_react4 = require("react");
648
- var import_jsx_runtime5 = require("react/jsx-runtime");
649
- var AssistantMessage = (props) => {
650
- const { icons, labels } = useChatContext();
651
- const {
652
- message,
653
- isLoading,
654
- subComponent,
655
- onRegenerate,
656
- onCopy,
657
- onThumbsUp,
658
- onThumbsDown,
659
- isCurrentMessage,
660
- rawData,
661
- markdownTagRenderers
662
- } = props;
663
- const [copied, setCopied] = (0, import_react4.useState)(false);
664
- const handleCopy = () => {
665
- if (message && onCopy) {
666
- navigator.clipboard.writeText(message);
667
- setCopied(true);
668
- onCopy(message);
669
- setTimeout(() => setCopied(false), 2e3);
670
- } else if (message) {
671
- navigator.clipboard.writeText(message);
672
- setCopied(true);
673
- setTimeout(() => setCopied(false), 2e3);
674
- }
675
- };
676
- const handleRegenerate = () => {
677
- if (onRegenerate) {
678
- onRegenerate();
679
- }
680
- };
681
- const handleThumbsUp = () => {
682
- const fullMessage = rawData;
683
- if (onThumbsUp && fullMessage) {
684
- onThumbsUp(fullMessage);
685
- }
686
- };
687
- const handleThumbsDown = () => {
688
- const fullMessage = rawData;
689
- if (onThumbsDown && fullMessage) {
690
- onThumbsDown(fullMessage);
691
- }
692
- };
693
- const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: icons.activityIcon });
694
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
695
- (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
696
- message && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Markdown, { content: message || "", components: markdownTagRenderers }),
697
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(LoadingIcon, {}),
698
- message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
699
- "div",
700
- {
701
- className: `copilotKitMessageControls ${isCurrentMessage ? "currentMessage" : ""}`,
702
- children: [
703
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
704
- "button",
705
- {
706
- className: "copilotKitMessageControlButton",
707
- onClick: handleRegenerate,
708
- "aria-label": labels.regenerateResponse,
709
- title: labels.regenerateResponse,
710
- children: icons.regenerateIcon
711
- }
712
- ),
713
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
714
- "button",
715
- {
716
- className: "copilotKitMessageControlButton",
717
- onClick: handleCopy,
718
- "aria-label": labels.copyToClipboard,
719
- title: labels.copyToClipboard,
720
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { fontSize: "10px", fontWeight: "bold" }, children: "\u2713" }) : icons.copyIcon
721
- }
722
- ),
723
- onThumbsUp && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
724
- "button",
725
- {
726
- className: "copilotKitMessageControlButton",
727
- onClick: handleThumbsUp,
728
- "aria-label": labels.thumbsUp,
729
- title: labels.thumbsUp,
730
- children: icons.thumbsUpIcon
731
- }
732
- ),
733
- onThumbsDown && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
734
- "button",
735
- {
736
- className: "copilotKitMessageControlButton",
737
- onClick: handleThumbsDown,
738
- "aria-label": labels.thumbsDown,
739
- title: labels.thumbsDown,
740
- children: icons.thumbsDownIcon
741
- }
742
- )
743
- ]
744
- }
745
- )
746
- ] }),
747
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { marginBottom: "0.5rem" }, children: subComponent })
748
- ] });
749
- };
750
-
751
- // src/components/chat/messages/RenderAgentStateMessage.tsx
752
- var import_jsx_runtime6 = require("react/jsx-runtime");
753
- function RenderAgentStateMessage(_a) {
754
- var _b = _a, {
755
- AssistantMessage: AssistantMessage2 = AssistantMessage
756
- } = _b, props = __objRest(_b, [
757
- "AssistantMessage"
758
- ]);
759
- const { chatComponentsCache } = (0, import_react_core.useCopilotContext)();
760
- const { message, inProgress, index, isCurrentMessage } = props;
761
- if (message.isAgentStateMessage()) {
762
- let render;
763
- if (chatComponentsCache.current !== null) {
764
- render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
765
- }
766
- if (render) {
767
- if (typeof render === "string") {
768
- if (isCurrentMessage && inProgress) {
769
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
770
- AssistantMessage2,
771
- {
772
- rawData: message,
773
- message: render,
774
- "data-message-role": "assistant",
775
- isLoading: true,
776
- isGenerating: true
777
- },
778
- index
779
- );
780
- } else {
781
- return null;
782
- }
783
- } else {
784
- const state = message.state;
785
- let status = message.active ? "inProgress" : "complete";
786
- const toRender = render({
787
- status,
788
- state,
789
- nodeName: message.nodeName
790
- });
791
- if (!toRender && status === "complete") {
792
- return null;
793
- }
794
- if (!toRender && isCurrentMessage && inProgress) {
795
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
796
- AssistantMessage2,
797
- {
798
- "data-message-role": "assistant",
799
- rawData: message,
800
- isLoading: true,
801
- isGenerating: true
802
- },
803
- index
804
- );
805
- } else if (!toRender) {
806
- return null;
807
- }
808
- if (typeof toRender === "string") {
809
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
810
- AssistantMessage2,
811
- {
812
- rawData: message,
813
- message: toRender,
814
- isLoading: true,
815
- isGenerating: true,
816
- "data-message-role": "assistant"
817
- },
818
- index
819
- );
820
- } else {
821
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
822
- AssistantMessage2,
823
- {
824
- rawData: message,
825
- "data-message-role": "agent-state-render",
826
- isLoading: false,
827
- isGenerating: false,
828
- subComponent: toRender
829
- },
830
- index
831
- );
832
- }
833
- }
834
- } else if (!inProgress || !isCurrentMessage) {
835
- return null;
836
- } else {
837
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
838
- AssistantMessage2,
839
- {
840
- rawData: message,
841
- isLoading: true,
842
- isGenerating: true,
843
- "data-message-role": "assistant"
844
- },
845
- index
846
- );
847
- }
848
- }
849
- }
850
- // Annotate the CommonJS export names for ESM import in node:
851
- 0 && (module.exports = {
852
- RenderAgentStateMessage
853
- });
854
- //# sourceMappingURL=RenderAgentStateMessage.js.map