@copilotkit/react-ui 1.51.3-next.6 → 1.51.3-next.8

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 (56) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{chunk-VVCCMYGT.mjs → chunk-7CMZ7YPQ.mjs} +2 -2
  3. package/dist/{chunk-7OURDQZJ.mjs → chunk-F2CDEOFX.mjs} +2 -2
  4. package/dist/{chunk-NCIAFFQ2.mjs → chunk-LBR23XXF.mjs} +2 -2
  5. package/dist/{chunk-IHFR6PYG.mjs → chunk-LYYDXL2G.mjs} +8 -4
  6. package/dist/chunk-LYYDXL2G.mjs.map +1 -0
  7. package/dist/{chunk-BVKKSSB2.mjs → chunk-OHGUQZJT.mjs} +4 -4
  8. package/dist/{chunk-NSJWSIPR.mjs → chunk-PD36EMOZ.mjs} +4 -4
  9. package/dist/{chunk-DI7DDMRS.mjs → chunk-RKQM2AE5.mjs} +2 -2
  10. package/dist/{chunk-HIW7RXCD.mjs → chunk-WNX755OE.mjs} +2 -2
  11. package/dist/components/chat/Chat.js +7 -3
  12. package/dist/components/chat/Chat.js.map +1 -1
  13. package/dist/components/chat/Chat.mjs +5 -5
  14. package/dist/components/chat/Messages.js +7 -3
  15. package/dist/components/chat/Messages.js.map +1 -1
  16. package/dist/components/chat/Messages.mjs +4 -4
  17. package/dist/components/chat/Modal.js +7 -3
  18. package/dist/components/chat/Modal.js.map +1 -1
  19. package/dist/components/chat/Modal.mjs +6 -6
  20. package/dist/components/chat/Popup.js +7 -3
  21. package/dist/components/chat/Popup.js.map +1 -1
  22. package/dist/components/chat/Popup.mjs +7 -7
  23. package/dist/components/chat/Sidebar.js +7 -3
  24. package/dist/components/chat/Sidebar.js.map +1 -1
  25. package/dist/components/chat/Sidebar.mjs +7 -7
  26. package/dist/components/chat/index.js +7 -3
  27. package/dist/components/chat/index.js.map +1 -1
  28. package/dist/components/chat/index.mjs +8 -8
  29. package/dist/components/chat/messages/AssistantMessage.js +7 -3
  30. package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
  31. package/dist/components/chat/messages/AssistantMessage.mjs +1 -1
  32. package/dist/components/chat/messages/LegacyRenderMessage.js +7 -3
  33. package/dist/components/chat/messages/LegacyRenderMessage.js.map +1 -1
  34. package/dist/components/chat/messages/LegacyRenderMessage.mjs +3 -3
  35. package/dist/components/chat/messages/RenderMessage.js +7 -3
  36. package/dist/components/chat/messages/RenderMessage.js.map +1 -1
  37. package/dist/components/chat/messages/RenderMessage.mjs +2 -2
  38. package/dist/components/index.js +7 -3
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/components/index.mjs +8 -8
  41. package/dist/index.js +7 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +8 -8
  44. package/dist/index.umd.js +28 -0
  45. package/dist/index.umd.js.map +1 -0
  46. package/package.json +7 -5
  47. package/rollup.config.mjs +64 -0
  48. package/src/components/chat/messages/AssistantMessage.tsx +6 -2
  49. package/dist/chunk-IHFR6PYG.mjs.map +0 -1
  50. /package/dist/{chunk-VVCCMYGT.mjs.map → chunk-7CMZ7YPQ.mjs.map} +0 -0
  51. /package/dist/{chunk-7OURDQZJ.mjs.map → chunk-F2CDEOFX.mjs.map} +0 -0
  52. /package/dist/{chunk-NCIAFFQ2.mjs.map → chunk-LBR23XXF.mjs.map} +0 -0
  53. /package/dist/{chunk-BVKKSSB2.mjs.map → chunk-OHGUQZJT.mjs.map} +0 -0
  54. /package/dist/{chunk-NSJWSIPR.mjs.map → chunk-PD36EMOZ.mjs.map} +0 -0
  55. /package/dist/{chunk-DI7DDMRS.mjs.map → chunk-RKQM2AE5.mjs.map} +0 -0
  56. /package/dist/{chunk-HIW7RXCD.mjs.map → chunk-WNX755OE.mjs.map} +0 -0
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.51.3-next.6",
12
+ "version": "1.51.3-next.8",
13
13
  "sideEffects": [
14
14
  "**/*.css"
15
15
  ],
@@ -24,6 +24,8 @@
24
24
  "./styles.css": "./dist/index.css",
25
25
  "./v2/styles.css": "./dist/v2/index.css"
26
26
  },
27
+ "unpkg": "./dist/index.umd.js",
28
+ "jsdelivr": "./dist/index.umd.js",
27
29
  "types": "./dist/index.d.ts",
28
30
  "license": "MIT",
29
31
  "peerDependencies": {
@@ -52,9 +54,9 @@
52
54
  "rehype-raw": "^7.0.0",
53
55
  "remark-gfm": "^4.0.1",
54
56
  "remark-math": "^6.0.0",
55
- "@copilotkit/react-core": "1.51.3-next.6",
56
- "@copilotkit/runtime-client-gql": "1.51.3-next.6",
57
- "@copilotkit/shared": "1.51.3-next.6"
57
+ "@copilotkit/react-core": "1.51.3-next.8",
58
+ "@copilotkit/runtime-client-gql": "1.51.3-next.8",
59
+ "@copilotkit/shared": "1.51.3-next.8"
58
60
  },
59
61
  "keywords": [
60
62
  "copilotkit",
@@ -69,7 +71,7 @@
69
71
  "textarea"
70
72
  ],
71
73
  "scripts": {
72
- "build": "tsup --clean",
74
+ "build": "tsup --clean && rollup -c rollup.config.mjs",
73
75
  "dev": "tsup --watch --no-splitting",
74
76
  "test": "jest",
75
77
  "check-types": "tsc --noEmit",
@@ -0,0 +1,64 @@
1
+ import resolve from '@rollup/plugin-node-resolve';
2
+ import commonjs from '@rollup/plugin-commonjs';
3
+ import typescript from '@rollup/plugin-typescript';
4
+ import terser from '@rollup/plugin-terser';
5
+ import json from '@rollup/plugin-json';
6
+ import postcss from 'rollup-plugin-postcss';
7
+
8
+ function onwarn(warning, warn) {
9
+ // Ignore circular dependency warnings from node_modules
10
+ if (warning.code === 'CIRCULAR_DEPENDENCY' && warning.ids?.some(id => id.includes('node_modules'))) return;
11
+ // Ignore "this" rewritten to "undefined" warnings from node_modules
12
+ if (warning.code === 'THIS_IS_UNDEFINED' && warning.id?.includes('node_modules')) return;
13
+ // Ignore TypeScript plugin warnings (module mismatch, tslib, type errors during UMD build)
14
+ if (warning.code === 'PLUGIN_WARNING' && warning.plugin === 'typescript') return;
15
+ // Ignore "use client" directive warnings (expected for React Server Components)
16
+ if (warning.code === 'MODULE_LEVEL_DIRECTIVE' && warning.message?.includes('"use client"')) return;
17
+ warn(warning);
18
+ }
19
+
20
+ export default {
21
+ input: 'src/index.tsx',
22
+ output: {
23
+ file: 'dist/index.umd.js',
24
+ format: 'umd',
25
+ name: 'CopilotKitReactUI',
26
+ sourcemap: true,
27
+ inlineDynamicImports: true,
28
+ globals: {
29
+ 'react': 'React',
30
+ 'react-dom': 'ReactDOM',
31
+ '@copilotkit/react-core': 'CopilotKitReactCore',
32
+ '@copilotkit/shared': 'CopilotKitShared',
33
+ '@copilotkit/runtime-client-gql': 'CopilotKitRuntimeClientGQL',
34
+ },
35
+ },
36
+ external: [
37
+ 'react',
38
+ 'react-dom',
39
+ '@copilotkit/react-core',
40
+ '@copilotkit/shared',
41
+ '@copilotkit/runtime-client-gql',
42
+ ],
43
+ onwarn,
44
+ plugins: [
45
+ postcss({ inject: true, minimize: true }),
46
+ resolve({ browser: true }),
47
+ commonjs(),
48
+ json(),
49
+ typescript({
50
+ tsconfig: './tsconfig.json',
51
+ declaration: false,
52
+ declarationMap: false,
53
+ declarationDir: undefined,
54
+ compilerOptions: {
55
+ declaration: false,
56
+ declarationMap: false,
57
+ declarationDir: undefined,
58
+ target: 'ES2017',
59
+ module: 'ESNext',
60
+ },
61
+ }),
62
+ terser(),
63
+ ],
64
+ };
@@ -51,10 +51,14 @@ export const AssistantMessage = (props: AssistantMessageProps) => {
51
51
 
52
52
  const LoadingIcon = () => <span>{icons.activityIcon}</span>;
53
53
  const content = message?.content || "";
54
- const subComponent = message?.generativeUI?.();
54
+ const subComponent = message?.generativeUI?.() ?? props.subComponent;
55
+ const subComponentPosition = message?.generativeUIPosition ?? "after";
56
+ const renderBefore = subComponent && subComponentPosition === "before";
57
+ const renderAfter = subComponent && subComponentPosition !== "before";
55
58
 
56
59
  return (
57
60
  <>
61
+ {renderBefore ? <div style={{ marginBottom: "0.5rem" }}>{subComponent}</div> : null}
58
62
  {content && (
59
63
  <div className="copilotKitMessage copilotKitAssistantMessage">
60
64
  {content && <Markdown content={content} components={markdownTagRenderers} />}
@@ -111,7 +115,7 @@ export const AssistantMessage = (props: AssistantMessageProps) => {
111
115
  )}
112
116
  </div>
113
117
  )}
114
- <div style={{ marginBottom: "0.5rem" }}>{subComponent}</div>
118
+ {renderAfter ? <div style={{ marginBottom: "0.5rem" }}>{subComponent}</div> : null}
115
119
  {isLoading && <LoadingIcon />}
116
120
  </>
117
121
  );
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/messages/AssistantMessage.tsx"],"sourcesContent":["import { AssistantMessageProps } from \"../props\";\nimport { useChatContext } from \"../ChatContext\";\nimport { Markdown } from \"../Markdown\";\nimport { useState } from \"react\";\nimport React from \"react\";\n\nexport const AssistantMessage = (props: AssistantMessageProps) => {\n const { icons, labels } = useChatContext();\n const {\n message,\n isLoading,\n onRegenerate,\n onCopy,\n onThumbsUp,\n onThumbsDown,\n isCurrentMessage,\n feedback,\n markdownTagRenderers,\n } = props;\n const [copied, setCopied] = useState(false);\n\n const handleCopy = () => {\n const content = message?.content || \"\";\n if (content && onCopy) {\n navigator.clipboard.writeText(content);\n setCopied(true);\n onCopy(content);\n setTimeout(() => setCopied(false), 2000);\n } else if (content) {\n navigator.clipboard.writeText(content);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n const handleRegenerate = () => {\n if (onRegenerate) onRegenerate();\n };\n\n const handleThumbsUp = () => {\n if (onThumbsUp && message) {\n onThumbsUp(message);\n }\n };\n\n const handleThumbsDown = () => {\n if (onThumbsDown && message) {\n onThumbsDown(message);\n }\n };\n\n const LoadingIcon = () => <span>{icons.activityIcon}</span>;\n const content = message?.content || \"\";\n const subComponent = message?.generativeUI?.();\n\n return (\n <>\n {content && (\n <div className=\"copilotKitMessage copilotKitAssistantMessage\">\n {content && <Markdown content={content} components={markdownTagRenderers} />}\n\n {content && !isLoading && (\n <div\n className={`copilotKitMessageControls ${isCurrentMessage ? \"currentMessage\" : \"\"}`}\n >\n <button\n className=\"copilotKitMessageControlButton\"\n onClick={handleRegenerate}\n aria-label={labels.regenerateResponse}\n title={labels.regenerateResponse}\n >\n {icons.regenerateIcon}\n </button>\n <button\n className=\"copilotKitMessageControlButton\"\n onClick={handleCopy}\n aria-label={labels.copyToClipboard}\n title={labels.copyToClipboard}\n >\n {copied ? (\n <span style={{ fontSize: \"10px\", fontWeight: \"bold\" }}>✓</span>\n ) : (\n icons.copyIcon\n )}\n </button>\n {onThumbsUp && (\n <button\n className={`copilotKitMessageControlButton ${\n feedback === \"thumbsUp\" ? \"active\" : \"\"\n }`}\n onClick={handleThumbsUp}\n aria-label={labels.thumbsUp}\n title={labels.thumbsUp}\n >\n {icons.thumbsUpIcon}\n </button>\n )}\n {onThumbsDown && (\n <button\n className={`copilotKitMessageControlButton ${\n feedback === \"thumbsDown\" ? \"active\" : \"\"\n }`}\n onClick={handleThumbsDown}\n aria-label={labels.thumbsDown}\n title={labels.thumbsDown}\n >\n {icons.thumbsDownIcon}\n </button>\n )}\n </div>\n )}\n </div>\n )}\n <div style={{ marginBottom: \"0.5rem\" }}>{subComponent}</div>\n {isLoading && <LoadingIcon />}\n </>\n );\n};\n"],"mappings":";;;;;;;;AAGA,SAAS,gBAAgB;AAgDG,SAKxB,UALwB,KAWhB,YAXgB;AA7CrB,IAAM,mBAAmB,CAAC,UAAiC;AANlE;AAOE,QAAM,EAAE,OAAO,OAAO,IAAI,eAAe;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,QAAM,aAAa,MAAM;AACvB,UAAMA,YAAU,mCAAS,YAAW;AACpC,QAAIA,YAAW,QAAQ;AACrB,gBAAU,UAAU,UAAUA,QAAO;AACrC,gBAAU,IAAI;AACd,aAAOA,QAAO;AACd,iBAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AAAA,IACzC,WAAWA,UAAS;AAClB,gBAAU,UAAU,UAAUA,QAAO;AACrC,gBAAU,IAAI;AACd,iBAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAM;AAC7B,QAAI;AAAc,mBAAa;AAAA,EACjC;AAEA,QAAM,iBAAiB,MAAM;AAC3B,QAAI,cAAc,SAAS;AACzB,iBAAW,OAAO;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAM;AAC7B,QAAI,gBAAgB,SAAS;AAC3B,mBAAa,OAAO;AAAA,IACtB;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,oBAAC,UAAM,gBAAM,cAAa;AACpD,QAAM,WAAU,mCAAS,YAAW;AACpC,QAAM,gBAAe,wCAAS,iBAAT;AAErB,SACE,iCACG;AAAA,eACC,qBAAC,SAAI,WAAU,gDACZ;AAAA,iBAAW,oBAAC,YAAS,SAAkB,YAAY,sBAAsB;AAAA,MAEzE,WAAW,CAAC,aACX;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,6BAA6B,mBAAmB,mBAAmB;AAAA,UAE9E;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAY,OAAO;AAAA,gBACnB,OAAO,OAAO;AAAA,gBAEb,gBAAM;AAAA;AAAA,YACT;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAY,OAAO;AAAA,gBACnB,OAAO,OAAO;AAAA,gBAEb,mBACC,oBAAC,UAAK,OAAO,EAAE,UAAU,QAAQ,YAAY,OAAO,GAAG,oBAAC,IAExD,MAAM;AAAA;AAAA,YAEV;AAAA,YACC,cACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,kCACT,aAAa,aAAa,WAAW;AAAA,gBAEvC,SAAS;AAAA,gBACT,cAAY,OAAO;AAAA,gBACnB,OAAO,OAAO;AAAA,gBAEb,gBAAM;AAAA;AAAA,YACT;AAAA,YAED,gBACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,kCACT,aAAa,eAAe,WAAW;AAAA,gBAEzC,SAAS;AAAA,gBACT,cAAY,OAAO;AAAA,gBACnB,OAAO,OAAO;AAAA,gBAEb,gBAAM;AAAA;AAAA,YACT;AAAA;AAAA;AAAA,MAEJ;AAAA,OAEJ;AAAA,IAEF,oBAAC,SAAI,OAAO,EAAE,cAAc,SAAS,GAAI,wBAAa;AAAA,IACrD,aAAa,oBAAC,eAAY;AAAA,KAC7B;AAEJ;","names":["content"]}