@copilotkit/react-ui 1.8.0-next.3 → 1.8.0-next.5

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 (95) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{chunk-LXCH2BIB.mjs → chunk-6H7IQRIU.mjs} +2 -2
  3. package/dist/{chunk-KG6DW6R2.mjs → chunk-DFHFPZQD.mjs} +7 -7
  4. package/dist/{chunk-LKCAF2HG.mjs → chunk-FFNESJSG.mjs} +2 -2
  5. package/dist/{chunk-QGK5GOSC.mjs → chunk-GBXUOB6L.mjs} +8 -8
  6. package/dist/{chunk-2LRE4W6A.mjs → chunk-LYHZXHTJ.mjs} +3 -2
  7. package/dist/{chunk-2LRE4W6A.mjs.map → chunk-LYHZXHTJ.mjs.map} +1 -1
  8. package/dist/chunk-MMVDU6DF.mjs +1 -0
  9. package/dist/{chunk-GDJAAFIK.mjs → chunk-QS7UFQFD.mjs} +2 -2
  10. package/dist/{chunk-5GNYGURH.mjs → chunk-Z6YOBQUJ.mjs} +8 -8
  11. package/dist/components/chat/Chat.js +2 -1
  12. package/dist/components/chat/Chat.js.map +1 -1
  13. package/dist/components/chat/Chat.mjs +4 -4
  14. package/dist/components/chat/Header.mjs +4 -4
  15. package/dist/components/chat/Input.js +2 -1
  16. package/dist/components/chat/Input.js.map +1 -1
  17. package/dist/components/chat/Input.mjs +1 -1
  18. package/dist/components/chat/Modal.js +2 -1
  19. package/dist/components/chat/Modal.js.map +1 -1
  20. package/dist/components/chat/Modal.mjs +9 -9
  21. package/dist/components/chat/Popup.js +2 -1
  22. package/dist/components/chat/Popup.js.map +1 -1
  23. package/dist/components/chat/Popup.mjs +10 -10
  24. package/dist/components/chat/Sidebar.js +2 -1
  25. package/dist/components/chat/Sidebar.js.map +1 -1
  26. package/dist/components/chat/Sidebar.mjs +10 -10
  27. package/dist/components/chat/index.js +2 -1
  28. package/dist/components/chat/index.js.map +1 -1
  29. package/dist/components/chat/index.mjs +13 -13
  30. package/dist/components/dev-console/console.mjs +3 -3
  31. package/dist/components/dev-console/index.mjs +4 -4
  32. package/dist/components/index.d.ts +0 -3
  33. package/dist/components/index.js +2 -291
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/index.mjs +15 -27
  36. package/dist/index.css +64 -42
  37. package/dist/index.css.map +1 -1
  38. package/dist/index.d.ts +0 -3
  39. package/dist/index.js +4 -293
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +15 -27
  42. package/dist/types/css.d.ts +4 -9
  43. package/dist/types/css.js.map +1 -1
  44. package/package.json +4 -4
  45. package/src/components/chat/Input.tsx +6 -1
  46. package/src/components/index.ts +0 -1
  47. package/src/css/button.css +1 -1
  48. package/src/css/colors.css +79 -23
  49. package/src/css/console.css +1 -1
  50. package/src/css/header.css +2 -2
  51. package/src/css/input.css +19 -10
  52. package/src/css/messages.css +2 -2
  53. package/src/css/panel.css +1 -1
  54. package/src/css/suggestions.css +2 -2
  55. package/src/types/css.ts +4 -9
  56. package/dist/chunk-EJG6RRSX.mjs +0 -138
  57. package/dist/chunk-EJG6RRSX.mjs.map +0 -1
  58. package/dist/chunk-MCO235PS.mjs +0 -164
  59. package/dist/chunk-MCO235PS.mjs.map +0 -1
  60. package/dist/chunk-MWC5OV7Z.mjs +0 -1
  61. package/dist/chunk-N7LTE54T.mjs +0 -1
  62. package/dist/chunk-N7LTE54T.mjs.map +0 -1
  63. package/dist/chunk-UCVCAGU7.mjs +0 -1
  64. package/dist/chunk-UCVCAGU7.mjs.map +0 -1
  65. package/dist/components/crew/DefaultResponseRenderer.d.ts +0 -110
  66. package/dist/components/crew/DefaultResponseRenderer.js +0 -175
  67. package/dist/components/crew/DefaultResponseRenderer.js.map +0 -1
  68. package/dist/components/crew/DefaultResponseRenderer.mjs +0 -10
  69. package/dist/components/crew/DefaultResponseRenderer.mjs.map +0 -1
  70. package/dist/components/crew/DefaultStateRenderer.d.ts +0 -88
  71. package/dist/components/crew/DefaultStateRenderer.js +0 -198
  72. package/dist/components/crew/DefaultStateRenderer.js.map +0 -1
  73. package/dist/components/crew/DefaultStateRenderer.mjs +0 -8
  74. package/dist/components/crew/DefaultStateRenderer.mjs.map +0 -1
  75. package/dist/components/crew/index.d.ts +0 -4
  76. package/dist/components/crew/index.js +0 -335
  77. package/dist/components/crew/index.js.map +0 -1
  78. package/dist/components/crew/index.mjs +0 -16
  79. package/dist/components/crew/index.mjs.map +0 -1
  80. package/dist/components/crew/types.d.ts +0 -340
  81. package/dist/components/crew/types.js +0 -19
  82. package/dist/components/crew/types.js.map +0 -1
  83. package/dist/components/crew/types.mjs +0 -2
  84. package/dist/components/crew/types.mjs.map +0 -1
  85. package/src/components/crew/DefaultResponseRenderer.tsx +0 -298
  86. package/src/components/crew/DefaultStateRenderer.tsx +0 -326
  87. package/src/components/crew/index.ts +0 -3
  88. package/src/components/crew/types.ts +0 -398
  89. /package/dist/{chunk-LXCH2BIB.mjs.map → chunk-6H7IQRIU.mjs.map} +0 -0
  90. /package/dist/{chunk-KG6DW6R2.mjs.map → chunk-DFHFPZQD.mjs.map} +0 -0
  91. /package/dist/{chunk-LKCAF2HG.mjs.map → chunk-FFNESJSG.mjs.map} +0 -0
  92. /package/dist/{chunk-QGK5GOSC.mjs.map → chunk-GBXUOB6L.mjs.map} +0 -0
  93. /package/dist/{chunk-MWC5OV7Z.mjs.map → chunk-MMVDU6DF.mjs.map} +0 -0
  94. /package/dist/{chunk-GDJAAFIK.mjs.map → chunk-QS7UFQFD.mjs.map} +0 -0
  95. /package/dist/{chunk-5GNYGURH.mjs.map → chunk-Z6YOBQUJ.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -1,53 +1,44 @@
1
1
  "use client";
2
2
  import "./chunk-EFZPSZWO.mjs";
3
- import "./chunk-MWC5OV7Z.mjs";
4
- import "./chunk-UCVCAGU7.mjs";
5
- import "./chunk-N7LTE54T.mjs";
3
+ import "./chunk-MMVDU6DF.mjs";
6
4
  import "./chunk-SQMEPWVT.mjs";
7
5
  import {
8
6
  CopilotSidebar
9
- } from "./chunk-LKCAF2HG.mjs";
7
+ } from "./chunk-FFNESJSG.mjs";
10
8
  import "./chunk-WB3YULQ4.mjs";
11
- import {
12
- DefaultResponseRenderer,
13
- createResponseCache
14
- } from "./chunk-EJG6RRSX.mjs";
15
- import {
16
- DefaultStateRenderer
17
- } from "./chunk-MCO235PS.mjs";
18
9
  import {
19
10
  CopilotPopup
20
- } from "./chunk-LXCH2BIB.mjs";
21
- import "./chunk-KG6DW6R2.mjs";
11
+ } from "./chunk-6H7IQRIU.mjs";
12
+ import "./chunk-DFHFPZQD.mjs";
22
13
  import "./chunk-CGVOCLHN.mjs";
23
- import "./chunk-GDJAAFIK.mjs";
14
+ import "./chunk-QS7UFQFD.mjs";
24
15
  import "./chunk-V7W6IM2V.mjs";
25
16
  import {
26
17
  CopilotDevConsole
27
- } from "./chunk-QGK5GOSC.mjs";
28
- import "./chunk-KXE2JCUH.mjs";
29
- import "./chunk-YC4NBUGE.mjs";
30
- import "./chunk-OTPAZXVR.mjs";
18
+ } from "./chunk-GBXUOB6L.mjs";
31
19
  import {
32
20
  shouldShowDevConsole
33
21
  } from "./chunk-6TCUJ3B7.mjs";
22
+ import "./chunk-KXE2JCUH.mjs";
23
+ import "./chunk-YC4NBUGE.mjs";
34
24
  import "./chunk-BH6PCAAL.mjs";
25
+ import "./chunk-OTPAZXVR.mjs";
35
26
  import "./chunk-VC4NO5QZ.mjs";
36
27
  import {
37
28
  CopilotChat
38
- } from "./chunk-5GNYGURH.mjs";
39
- import {
40
- AssistantMessage
41
- } from "./chunk-FBYETUFL.mjs";
42
- import "./chunk-XB6QCUPB.mjs";
29
+ } from "./chunk-Z6YOBQUJ.mjs";
43
30
  import "./chunk-UWWMAJ7R.mjs";
44
31
  import "./chunk-WEYDZBT7.mjs";
45
32
  import "./chunk-7RIBDD4K.mjs";
46
33
  import {
47
34
  UserMessage
48
35
  } from "./chunk-HEIDCT7I.mjs";
36
+ import {
37
+ AssistantMessage
38
+ } from "./chunk-FBYETUFL.mjs";
39
+ import "./chunk-XB6QCUPB.mjs";
49
40
  import "./chunk-TOQ7P4DO.mjs";
50
- import "./chunk-2LRE4W6A.mjs";
41
+ import "./chunk-LYHZXHTJ.mjs";
51
42
  import "./chunk-YQFVRDNC.mjs";
52
43
  import {
53
44
  Markdown
@@ -73,11 +64,8 @@ export {
73
64
  CopilotDevConsole,
74
65
  CopilotPopup,
75
66
  CopilotSidebar,
76
- DefaultResponseRenderer,
77
- DefaultStateRenderer,
78
67
  Markdown,
79
68
  UserMessage,
80
- createResponseCache,
81
69
  shouldShowDevConsole,
82
70
  useChatContext,
83
71
  useCopilotChatSuggestions
@@ -3,20 +3,15 @@ import { CSSProperties } from 'react';
3
3
  interface CopilotKitCSSProperties extends CSSProperties {
4
4
  "--copilot-kit-primary-color"?: string;
5
5
  "--copilot-kit-contrast-color"?: string;
6
- "--copilot-kit-secondary-color"?: string;
7
6
  "--copilot-kit-background-color"?: string;
8
- "--copilot-kit-muted-color"?: string;
9
- "--copilot-kit-text-light-color"?: string;
10
- "--copilot-kit-text-dark-color"?: string;
7
+ "--copilot-kit-input-background-color"?: string;
8
+ "--copilot-kit-secondary-color"?: string;
9
+ "--copilot-kit-secondary-contrast-color"?: string;
11
10
  "--copilot-kit-separator-color"?: string;
12
- "--copilot-kit-scrollbar-color"?: string;
13
- "--copilot-kit-header-color"?: string;
14
- "--copilot-kit-response-button-color"?: string;
15
- "--copilot-kit-response-button-background-color"?: string;
11
+ "--copilot-kit-muted-color"?: string;
16
12
  "--copilot-kit-shadow-sm"?: string;
17
13
  "--copilot-kit-shadow-md"?: string;
18
14
  "--copilot-kit-shadow-lg"?: string;
19
- "--copilot-kit-text-color"?: string;
20
15
  }
21
16
 
22
17
  export { CopilotKitCSSProperties };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/css.ts"],"sourcesContent":["// autogenerated (see postcss.config.js) - do not edit\nimport { CSSProperties } from \"react\";\n\nexport interface CopilotKitCSSProperties extends CSSProperties {\n \"--copilot-kit-primary-color\"?: string;\n \"--copilot-kit-contrast-color\"?: string;\n \"--copilot-kit-secondary-color\"?: string;\n \"--copilot-kit-background-color\"?: string;\n \"--copilot-kit-muted-color\"?: string;\n \"--copilot-kit-text-color\"?: string;\n \"--copilot-kit-separator-color\"?: string;\n \"--copilot-kit-scrollbar-color\"?: string;\n \"--copilot-kit-response-button-color\"?: string;\n \"--copilot-kit-response-button-background-color\"?: string;\n \"--copilot-kit-shadow-sm\"?: string;\n \"--copilot-kit-shadow-md\"?: string;\n \"--copilot-kit-shadow-lg\"?: string;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/css.ts"],"sourcesContent":["// autogenerated (see postcss.config.js) - do not edit\nimport { CSSProperties } from \"react\";\n\nexport interface CopilotKitCSSProperties extends CSSProperties {\n \"--copilot-kit-primary-color\"?: string;\n \"--copilot-kit-contrast-color\"?: string;\n \"--copilot-kit-background-color\"?: string;\n \"--copilot-kit-input-background-color\"?: string;\n \"--copilot-kit-secondary-color\"?: string;\n \"--copilot-kit-secondary-contrast-color\"?: string;\n \"--copilot-kit-separator-color\"?: string;\n \"--copilot-kit-muted-color\"?: string;\n \"--copilot-kit-shadow-sm\"?: string;\n \"--copilot-kit-shadow-md\"?: string;\n \"--copilot-kit-shadow-lg\"?: string;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.8.0-next.3",
12
+ "version": "1.8.0-next.5",
13
13
  "sideEffects": [
14
14
  "**/*.css"
15
15
  ],
@@ -50,9 +50,9 @@
50
50
  "react-syntax-highlighter": "^15.5.0",
51
51
  "remark-gfm": "^3.0.1",
52
52
  "remark-math": "^5.1.1",
53
- "@copilotkit/react-core": "1.8.0-next.3",
54
- "@copilotkit/runtime-client-gql": "1.8.0-next.3",
55
- "@copilotkit/shared": "1.8.0-next.3"
53
+ "@copilotkit/react-core": "1.8.0-next.5",
54
+ "@copilotkit/runtime-client-gql": "1.8.0-next.5",
55
+ "@copilotkit/shared": "1.8.0-next.5"
56
56
  },
57
57
  "keywords": [
58
58
  "copilotkit",
@@ -89,7 +89,11 @@ export const Input = ({ inProgress, onSend, isVisible = false, onStop }: InputPr
89
89
  onClick={() =>
90
90
  setPushToTalkState(pushToTalkState === "idle" ? "recording" : "transcribing")
91
91
  }
92
- className={pushToTalkState === "recording" ? "copilotKitPushToTalkRecording" : ""}
92
+ className={
93
+ pushToTalkState === "recording"
94
+ ? "copilotKitInputControlButton copilotKitPushToTalkRecording"
95
+ : "copilotKitInputControlButton"
96
+ }
93
97
  >
94
98
  {context.icons.pushToTalkIcon}
95
99
  </button>
@@ -99,6 +103,7 @@ export const Input = ({ inProgress, onSend, isVisible = false, onStop }: InputPr
99
103
  onClick={isInProgress ? onStop : send}
100
104
  data-copilotkit-in-progress={inProgress}
101
105
  data-test-id={inProgress ? "copilot-chat-request-in-progress" : "copilot-chat-ready"}
106
+ className="copilotKitInputControlButton"
102
107
  >
103
108
  {buttonIcon}
104
109
  </button>
@@ -1,3 +1,2 @@
1
1
  export * from "./chat";
2
2
  export * from "./dev-console";
3
- export * from "./crew";
@@ -5,7 +5,7 @@
5
5
  align-items: center;
6
6
  justify-content: center;
7
7
  border-radius: 50%;
8
- border: 1px solid var(--copilot-kit-contrast-color);
8
+ border: 1px solid var(--copilot-kit-primary-color);
9
9
  outline: none;
10
10
  position: relative;
11
11
  transform: scale(1);
@@ -1,33 +1,89 @@
1
- html {
1
+ /* Base theme variables (light mode) */
2
+ :root {
3
+ /* Semantic color tokens */
4
+ /* Main brand/action color - used for buttons, interactive elements */
2
5
  --copilot-kit-primary-color: rgb(28, 28, 28);
6
+ /* Color that contrasts with primary - used for text on primary elements */
3
7
  --copilot-kit-contrast-color: rgb(255, 255, 255);
4
- --copilot-kit-secondary-color: rgb(83, 83, 83);
8
+ /* Main page/container background color */
5
9
  --copilot-kit-background-color: rgb(255 255 255);
6
- --copilot-kit-muted-color: rgb(200 200 200);
7
- --copilot-kit-text-light-color: rgb(255 255 255);
8
- --copilot-kit-text-dark-color: rgb(28, 28, 28);
10
+ /* Input box background color */
11
+ --copilot-kit-input-background-color: #fbfbfb;
12
+ /* Secondary background - used for cards, panels, elevated surfaces */
13
+ --copilot-kit-secondary-color: rgb(255 255 255);
14
+ /* Primary text color for main content */
15
+ --copilot-kit-secondary-contrast-color: rgb(28, 28, 28);
16
+ /* Border color for dividers and containers */
9
17
  --copilot-kit-separator-color: rgb(200 200 200);
10
- --copilot-kit-scrollbar-color: rgba(0, 0, 0, 0.2);
11
- --copilot-kit-header-color: rgb(255 255 255);
12
- --copilot-kit-response-button-color: #333;
13
- --copilot-kit-response-button-background-color: #fff;
18
+ /* Muted color for disabled/inactive states */
19
+ --copilot-kit-muted-color: rgb(200 200 200);
20
+
21
+ /* Shadow tokens */
22
+ /* Small shadow for subtle elevation */
14
23
  --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
24
+ /* Medium shadow for cards */
15
25
  --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
26
+ /* Large shadow for modals */
16
27
  --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
28
+ }
29
+
30
+ /* Dark theme - based on system preference */
31
+ @media (prefers-color-scheme: dark) {
32
+ :root {
33
+ /* Main brand/action color - used for buttons, interactive elements */
34
+ --copilot-kit-primary-color: rgb(255, 255, 255);
35
+ /* Color that contrasts with primary - used for text on primary elements */
36
+ --copilot-kit-contrast-color: rgb(28, 28, 28);
37
+ /* Main page/container background color */
38
+ --copilot-kit-background-color: rgb(17, 17, 17);
39
+ /* Input box background color */
40
+ --copilot-kit-input-background-color: #2c2c2c;
41
+ /* Secondary background - used for cards, panels, elevated surfaces */
42
+ --copilot-kit-secondary-color: rgb(28, 28, 28);
43
+ /* Primary text color for main content */
44
+ --copilot-kit-secondary-contrast-color: rgb(255, 255, 255);
45
+ /* Border color for dividers and containers */
46
+ --copilot-kit-separator-color: rgb(45, 45, 45);
47
+ /* Muted color for disabled/inactive states */
48
+ --copilot-kit-muted-color: rgb(45, 45, 45);
17
49
 
18
- .variant-blue {
19
- --copilot-kit-primary-color: rgb(59 130 246);
20
- --copilot-kit-contrast-color: rgb(255 255 255);
21
- --copilot-kit-secondary-color: rgb(243 244 246);
22
- --copilot-kit-background-color: rgb(255 255 255);
23
- --copilot-kit-muted-color: rgb(200 200 200);
24
- --copilot-kit-text-color: rgb(106 106 106);
25
- --copilot-kit-separator-color: rgb(200 200 200);
26
- --copilot-kit-scrollbar-color: rgba(0, 0, 0, 0.2);
27
- --copilot-kit-response-button-color: #333;
28
- --copilot-kit-response-button-background-color: #fff;
29
- --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
30
- --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
31
- --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
50
+ /* Small shadow for subtle elevation */
51
+ --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
52
+ /* Medium shadow for cards */
53
+ --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
54
+ /* Large shadow for modals */
55
+ --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
32
56
  }
33
57
  }
58
+
59
+ .dark,
60
+ html.dark,
61
+ body.dark,
62
+ [data-theme="dark"],
63
+ html[style*="color-scheme: dark"],
64
+ body[style*="color-scheme: dark"] :root {
65
+ /* Main brand/action color - used for buttons, interactive elements */
66
+ --copilot-kit-primary-color: rgb(255, 255, 255);
67
+ /* Color that contrasts with primary - used for text on primary elements */
68
+ --copilot-kit-contrast-color: rgb(28, 28, 28);
69
+ /* Main page/container background color */
70
+ --copilot-kit-background-color: rgb(17, 17, 17);
71
+ /* Input box background color */
72
+ --copilot-kit-input-background-color: #2c2c2c;
73
+ /* Secondary background - used for cards, panels, elevated surfaces */
74
+ --copilot-kit-secondary-color: rgb(28, 28, 28);
75
+ /* Primary text color for main content */
76
+ --copilot-kit-secondary-contrast-color: rgb(255, 255, 255);
77
+ /* Border color for dividers and containers */
78
+ --copilot-kit-separator-color: rgb(45, 45, 45);
79
+ /* Muted color for disabled/inactive states */
80
+ --copilot-kit-muted-color: rgb(45, 45, 45);
81
+
82
+ /* Small shadow for subtle elevation */
83
+ --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
84
+ /* Medium shadow for cards */
85
+ --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
86
+ /* Large shadow for modals */
87
+ --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
88
+ }
89
+
@@ -132,7 +132,7 @@
132
132
  border-radius: 15px;
133
133
  font-size: 0.8rem;
134
134
  border: 1px solid var(--copilot-kit-muted-color);
135
- color: var(--copilot-kit-text-color);
135
+ color: var(--copilot-kit-secondary-contrast-color);
136
136
  box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);
137
137
  background-color: var(--copilot-kit-dev-console-bg);
138
138
  }
@@ -4,12 +4,12 @@
4
4
  display: flex;
5
5
  align-items: center;
6
6
  position: relative;
7
- color: var(--copilot-kit-contrast-color);
7
+ color: var(--copilot-kit-primary-color);
8
8
  border-top-left-radius: 0;
9
9
  border-top-right-radius: 0;
10
10
  border-bottom: 1px solid var(--copilot-kit-separator-color);
11
11
  padding-left: 1.5rem;
12
- background-color: var(--copilot-kit-header-color); /* Adjust opacity to your preference */
12
+ background-color: var(--copilot-kit-contrast-color);
13
13
  justify-content: space-between;
14
14
  z-index: 2;
15
15
  }
package/src/css/input.css CHANGED
@@ -3,20 +3,29 @@
3
3
  flex-direction: column;
4
4
  cursor: text;
5
5
  position: relative;
6
- background-color: #fbfbfb;
6
+ background-color: var(--copilot-kit-input-background-color);
7
7
  border-radius: 20px;
8
8
  border: 1px solid var(--copilot-kit-separator-color);
9
9
  padding: 12px 14px;
10
10
  height: 75px;
11
+ margin: 0 auto;
12
+ width: 95%;
11
13
  }
12
14
 
13
15
  .copilotKitInputContainer {
14
- width: 95%;
15
- margin: 0 auto;
16
+ width: 100%;
16
17
  padding: 0 0 15px 0;
18
+ background: var(--copilot-kit-background-color);
19
+ border-bottom-left-radius: 0.75rem;
20
+ border-bottom-right-radius: 0.75rem;
21
+ }
22
+
23
+ .copilotKitSidebar .copilotKitInputContainer {
24
+ border-bottom-left-radius: 0;
25
+ border-bottom-right-radius: 0;
17
26
  }
18
27
 
19
- .copilotKitInput > .copilotKitInputControls > button {
28
+ .copilotKitInputControlButton {
20
29
  padding: 0;
21
30
  cursor: pointer;
22
31
  transition-property: transform;
@@ -43,16 +52,16 @@
43
52
  height: 24px;
44
53
  }
45
54
 
46
- .copilotKitInput > .copilotKitInputControls > button:not([disabled]) {
55
+ .copilotKitInputControlButton:not([disabled]) {
47
56
  color: var(--copilot-kit-primary-color);
48
57
  }
49
58
 
50
- .copilotKitInput > .copilotKitInputControls > button:not([disabled]):hover {
59
+ .copilotKitInputControlButton:not([disabled]):hover {
51
60
  color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);
52
61
  transform: scale(1.05);
53
62
  }
54
63
 
55
- .copilotKitInput > .copilotKitInputControls > button[disabled] {
64
+ .copilotKitInputControlButton[disabled] {
56
65
  color: var(--copilot-kit-muted-color);
57
66
  cursor: default;
58
67
  }
@@ -78,9 +87,9 @@
78
87
  padding: 0;
79
88
  font-family: inherit;
80
89
  font-weight: inherit;
81
- color: var(--copilot-kit-text-color);
90
+ color: var(--copilot-kit-secondary-contrast-color);
82
91
  border: 0px;
83
- background-color: #fbfbfb;
92
+ background-color: var(--copilot-kit-input-background-color);
84
93
  }
85
94
 
86
95
  .copilotKitInput > textarea::placeholder {
@@ -88,7 +97,7 @@
88
97
  opacity: 1;
89
98
  }
90
99
 
91
- .copilotKitInput > .copilotKitInputControls > button.copilotKitPushToTalkRecording {
100
+ .copilotKitInputControlButton.copilotKitPushToTalkRecording {
92
101
  background-color: #ec0000;
93
102
  color: white;
94
103
  border-radius: 50%;
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  .copilotKitMessages::-webkit-scrollbar-thumb {
33
- background-color: var(--copilot-kit-scrollbar-color);
33
+ background-color: var(--copilot-kit-separator-color);
34
34
  border-radius: 10rem;
35
35
  border: 2px solid var(--copilot-kit-background-color);
36
36
  }
@@ -51,7 +51,6 @@
51
51
  overflow-wrap: break-word;
52
52
  max-width: 80%;
53
53
  margin-bottom: 0.5rem;
54
- color: var(--copilot-kit-text-color);
55
54
  }
56
55
 
57
56
  .copilotKitMessage.copilotKitUserMessage {
@@ -69,6 +68,7 @@
69
68
  padding-left: 0;
70
69
  position: relative;
71
70
  max-width: 100%;
71
+ color: var(--copilot-kit-secondary-contrast-color);
72
72
  }
73
73
 
74
74
  .copilotKitMessage.copilotKitAssistantMessage .copilotKitMessageControls {
package/src/css/panel.css CHANGED
@@ -5,7 +5,7 @@
5
5
  -moz-tab-size: 4;
6
6
  -o-tab-size: 4;
7
7
  tab-size: 4;
8
- background: white;
8
+ background: var(--copilot-kit-background-color);
9
9
  font-family:
10
10
  ui-sans-serif,
11
11
  system-ui,
@@ -15,7 +15,7 @@
15
15
  font-size: 0.7rem;
16
16
  border-radius: 15px;
17
17
  border: 1px solid var(--copilot-kit-muted-color);
18
- color: var(--copilot-kit-text-color);
18
+ color: var(--copilot-kit-secondary-contrast-color);
19
19
  box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);
20
20
  }
21
21
 
@@ -23,7 +23,7 @@
23
23
  padding: 0;
24
24
  font-size: 0.7rem;
25
25
  border: none;
26
- color: var(--copilot-kit-text-color);
26
+ color: var(--copilot-kit-secondary-contrast-color);
27
27
  }
28
28
 
29
29
  .copilotKitMessages footer .suggestions button {
package/src/types/css.ts CHANGED
@@ -4,18 +4,13 @@ import { CSSProperties } from "react";
4
4
  export interface CopilotKitCSSProperties extends CSSProperties {
5
5
  "--copilot-kit-primary-color"?: string;
6
6
  "--copilot-kit-contrast-color"?: string;
7
- "--copilot-kit-secondary-color"?: string;
8
7
  "--copilot-kit-background-color"?: string;
9
- "--copilot-kit-muted-color"?: string;
10
- "--copilot-kit-text-light-color"?: string;
11
- "--copilot-kit-text-dark-color"?: string;
8
+ "--copilot-kit-input-background-color"?: string;
9
+ "--copilot-kit-secondary-color"?: string;
10
+ "--copilot-kit-secondary-contrast-color"?: string;
12
11
  "--copilot-kit-separator-color"?: string;
13
- "--copilot-kit-scrollbar-color"?: string;
14
- "--copilot-kit-header-color"?: string;
15
- "--copilot-kit-response-button-color"?: string;
16
- "--copilot-kit-response-button-background-color"?: string;
12
+ "--copilot-kit-muted-color"?: string;
17
13
  "--copilot-kit-shadow-sm"?: string;
18
14
  "--copilot-kit-shadow-md"?: string;
19
15
  "--copilot-kit-shadow-lg"?: string;
20
- "--copilot-kit-text-color"?: string;
21
16
  }
@@ -1,138 +0,0 @@
1
- import {
2
- __spreadProps,
3
- __spreadValues
4
- } from "./chunk-MRXNTQOX.mjs";
5
-
6
- // src/components/crew/DefaultResponseRenderer.tsx
7
- import { useState } from "react";
8
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
- var createResponseCache = () => {
10
- const responseCache = /* @__PURE__ */ new Map();
11
- return {
12
- getResponse: (id) => responseCache.get(id),
13
- setResponse: (id, response) => responseCache.set(id, response)
14
- };
15
- };
16
- var useResponseCache = createResponseCache();
17
- var DefaultExpandIcon = ({ className }) => /* @__PURE__ */ jsx(
18
- "svg",
19
- {
20
- className,
21
- width: "12",
22
- height: "12",
23
- viewBox: "0 0 24 24",
24
- fill: "none",
25
- stroke: "currentColor",
26
- strokeWidth: "2",
27
- strokeLinecap: "round",
28
- strokeLinejoin: "round",
29
- children: /* @__PURE__ */ jsx("polyline", { points: "6 9 12 15 18 9" })
30
- }
31
- );
32
- var DefaultCollapseIcon = ({ className }) => /* @__PURE__ */ jsx(
33
- "svg",
34
- {
35
- className,
36
- width: "12",
37
- height: "12",
38
- viewBox: "0 0 24 24",
39
- fill: "none",
40
- stroke: "currentColor",
41
- strokeWidth: "2",
42
- strokeLinecap: "round",
43
- strokeLinejoin: "round",
44
- children: /* @__PURE__ */ jsx("polyline", { points: "18 15 12 9 6 15" })
45
- }
46
- );
47
- var DefaultContentRenderer = ({ content, className }) => /* @__PURE__ */ jsx("div", { className, children: content });
48
- var DefaultFeedbackButton = ({ label, onClick, className }) => /* @__PURE__ */ jsx("button", { onClick, className, children: label });
49
- var DefaultCompletedFeedback = ({ message, className }) => /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx("span", { children: message }) });
50
- var DefaultResponseRenderer = ({
51
- response,
52
- status,
53
- onRespond,
54
- icons,
55
- labels,
56
- ContentRenderer = DefaultContentRenderer,
57
- FeedbackButton = DefaultFeedbackButton,
58
- CompletedFeedback = DefaultCompletedFeedback,
59
- className = "copilotkit-response",
60
- contentClassName = "copilotkit-response-content",
61
- actionsClassName = "copilotkit-response-actions",
62
- buttonClassName = "copilotkit-response-button",
63
- completedFeedbackClassName = "copilotkit-response-completed-feedback"
64
- }) => {
65
- const [isExpanded, setIsExpanded] = useState(true);
66
- const defaultLabels = {
67
- responseLabel: "Response",
68
- approveLabel: "Approve",
69
- rejectLabel: "Reject",
70
- approvedMessage: "Approved",
71
- rejectedMessage: "Rejected",
72
- feedbackSubmittedMessage: "Feedback submitted"
73
- };
74
- const mergedLabels = __spreadValues(__spreadValues({}, defaultLabels), labels);
75
- const renderFeedback = () => {
76
- if (status === "complete") {
77
- const cachedResponse = useResponseCache.getResponse(response.id);
78
- return /* @__PURE__ */ jsx(
79
- CompletedFeedback,
80
- {
81
- message: (cachedResponse == null ? void 0 : cachedResponse.__feedback__) ? cachedResponse.__feedback__ === mergedLabels.approvedMessage ? mergedLabels.approvedMessage : mergedLabels.rejectedMessage : mergedLabels.feedbackSubmittedMessage,
82
- className: completedFeedbackClassName
83
- }
84
- );
85
- }
86
- if (status === "inProgress" || status === "executing") {
87
- return /* @__PURE__ */ jsxs(Fragment, { children: [
88
- /* @__PURE__ */ jsx(
89
- FeedbackButton,
90
- {
91
- label: mergedLabels.approveLabel,
92
- onClick: () => {
93
- setIsExpanded(false);
94
- onRespond == null ? void 0 : onRespond(mergedLabels.approveLabel);
95
- useResponseCache.setResponse(response.id, __spreadProps(__spreadValues({}, response), {
96
- __feedback__: mergedLabels.approvedMessage
97
- }));
98
- },
99
- className: buttonClassName
100
- }
101
- ),
102
- /* @__PURE__ */ jsx(
103
- FeedbackButton,
104
- {
105
- label: mergedLabels.rejectLabel,
106
- onClick: () => {
107
- setIsExpanded(false);
108
- useResponseCache.setResponse(response.id, __spreadProps(__spreadValues({}, response), {
109
- __feedback__: mergedLabels.rejectedMessage
110
- }));
111
- onRespond == null ? void 0 : onRespond(mergedLabels.rejectLabel);
112
- },
113
- className: buttonClassName
114
- }
115
- )
116
- ] });
117
- }
118
- return null;
119
- };
120
- const ExpandIcon = (icons == null ? void 0 : icons.expand) || DefaultExpandIcon;
121
- const CollapseIcon = (icons == null ? void 0 : icons.collapse) || DefaultCollapseIcon;
122
- return /* @__PURE__ */ jsxs("div", { className, children: [
123
- isExpanded && /* @__PURE__ */ jsx(ContentRenderer, { content: response.content, className: contentClassName }),
124
- /* @__PURE__ */ jsxs("div", { className: actionsClassName, children: [
125
- /* @__PURE__ */ jsxs("div", { className: "copilotkit-response-label", children: [
126
- /* @__PURE__ */ jsx("button", { onClick: () => setIsExpanded(!isExpanded), className: "copilotkit-toggle-button", children: isExpanded ? /* @__PURE__ */ jsx(CollapseIcon, { className: "copilotkit-icon" }) : /* @__PURE__ */ jsx(ExpandIcon, { className: "copilotkit-icon" }) }),
127
- /* @__PURE__ */ jsx("span", { children: mergedLabels.responseLabel })
128
- ] }),
129
- /* @__PURE__ */ jsx("div", { className: "copilotkit-response-buttons", children: renderFeedback() })
130
- ] })
131
- ] });
132
- };
133
-
134
- export {
135
- createResponseCache,
136
- DefaultResponseRenderer
137
- };
138
- //# sourceMappingURL=chunk-EJG6RRSX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/crew/DefaultResponseRenderer.tsx"],"sourcesContent":["/**\n * <br/>\n * A response renderer component for the CopilotKit framework. This component displays\n * a response that may require user feedback, such as approving or rejecting a suggestion.\n * It provides a flexible, customizable interface for rendering responses with user interaction.\n *\n * ## Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ## Usage\n *\n * ```tsx\n * import { DefaultResponseRenderer } from \"@copilotkit/react-ui\";\n * import \"@copilotkit/react-ui/styles.css\";\n *\n * // Basic usage\n * <DefaultResponseRenderer\n * response={{\n * id: \"response-1\",\n * content: \"I've analyzed your data and found these insights...\"\n * }}\n * status=\"inProgress\"\n * onRespond={(input) => console.log(`User responded: ${input}`)}\n * />\n * ```\n *\n * ## Customization\n *\n * You can customize the appearance and behavior of the component:\n *\n * ```tsx\n * // Custom labels and styling\n * <DefaultResponseRenderer\n * response={{\n * id: \"task-123\",\n * content: \"Would you like to proceed with this recommendation?\"\n * }}\n * status=\"inProgress\"\n * onRespond={handleResponse}\n * labels={{\n * responseLabel: \"AI Recommendation\",\n * approveLabel: \"Yes, proceed\",\n * rejectLabel: \"No, cancel\",\n * approvedMessage: \"Proceeding with recommendation\",\n * rejectedMessage: \"Recommendation cancelled\"\n * }}\n * className=\"my-custom-response\"\n * contentClassName=\"my-custom-content\"\n * buttonClassName=\"my-custom-button\"\n * />\n *\n * // Custom components\n * <DefaultResponseRenderer\n * response={{\n * id: \"task-456\",\n * content: \"# Important Decision\\nThis requires your approval\"\n * }}\n * status=\"inProgress\"\n * onRespond={handleResponse}\n * ContentRenderer={({ content, className }) => (\n * <MyMarkdownRenderer content={content} className={className} />\n * )}\n * FeedbackButton={({ label, onClick, className }) => (\n * <MyCustomButton label={label} onClick={onClick} className={className} />\n * )}\n * />\n * ```\n *\n * ### Look & Feel\n *\n * By default, CopilotKit components do not have any styles. You can import CopilotKit's stylesheet at the root of your project:\n * ```tsx title=\"YourRootComponent.tsx\"\n * ...\n * import \"@copilotkit/react-ui/styles.css\"; // [!code highlight]\n *\n * export function YourRootComponent() {\n * return (\n * <CopilotKit>\n * ...\n * </CopilotKit>\n * );\n * }\n * ```\n * For more information about how to customize the styles, check out the [Customize Look & Feel](/guides/custom-look-and-feel/customize-built-in-ui-components) guide.\n */\n\nimport React, { useState } from \"react\";\nimport {\n Response,\n ResponseRendererProps,\n ContentRendererProps,\n FeedbackButtonProps,\n CompletedFeedbackProps,\n ResponseRendererIconProps,\n} from \"./types\";\n\n/**\n * Creates a cache for storing response feedback\n */\nconst createResponseCache = <T extends { id: string }>() => {\n const responseCache = new Map<string, T>();\n\n return {\n getResponse: (id: string) => responseCache.get(id),\n setResponse: (id: string, response: T) => responseCache.set(id, response),\n };\n};\n\n/**\n * Default global response cache instance\n */\nconst useResponseCache = createResponseCache<Response & { __feedback__?: string }>();\n\n/**\n * Default expand icon component\n */\nconst DefaultExpandIcon: React.FC<ResponseRendererIconProps> = ({ className }) => (\n <svg\n className={className}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n);\n\n/**\n * Default collapse icon component\n */\nconst DefaultCollapseIcon: React.FC<ResponseRendererIconProps> = ({ className }) => (\n <svg\n className={className}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"18 15 12 9 6 15\"></polyline>\n </svg>\n);\n\n/**\n * Default content renderer that simply displays text\n */\nconst DefaultContentRenderer: React.FC<ContentRendererProps> = ({ content, className }) => (\n <div className={className}>{content}</div>\n);\n\n/**\n * Default feedback button component\n */\nconst DefaultFeedbackButton: React.FC<FeedbackButtonProps> = ({ label, onClick, className }) => (\n <button onClick={onClick} className={className}>\n {label}\n </button>\n);\n\n/**\n * Default completed feedback component\n */\nconst DefaultCompletedFeedback: React.FC<CompletedFeedbackProps> = ({ message, className }) => (\n <div className={className}>\n <span>{message}</span>\n </div>\n);\n\n/**\n * Default response renderer component that handles rendering responses\n * and collecting user feedback\n */\nexport const DefaultResponseRenderer: React.FC<ResponseRendererProps> = ({\n response,\n status,\n onRespond,\n icons,\n labels,\n ContentRenderer = DefaultContentRenderer,\n FeedbackButton = DefaultFeedbackButton,\n CompletedFeedback = DefaultCompletedFeedback,\n className = \"copilotkit-response\",\n contentClassName = \"copilotkit-response-content\",\n actionsClassName = \"copilotkit-response-actions\",\n buttonClassName = \"copilotkit-response-button\",\n completedFeedbackClassName = \"copilotkit-response-completed-feedback\",\n}) => {\n const [isExpanded, setIsExpanded] = useState(true);\n\n // Default label values\n const defaultLabels = {\n responseLabel: \"Response\",\n approveLabel: \"Approve\",\n rejectLabel: \"Reject\",\n approvedMessage: \"Approved\",\n rejectedMessage: \"Rejected\",\n feedbackSubmittedMessage: \"Feedback submitted\",\n };\n\n // Merge provided labels with defaults\n const mergedLabels = { ...defaultLabels, ...labels };\n\n // Function to render feedback UI based on status\n const renderFeedback = () => {\n if (status === \"complete\") {\n const cachedResponse = useResponseCache.getResponse(response.id);\n return (\n <CompletedFeedback\n message={\n cachedResponse?.__feedback__\n ? cachedResponse.__feedback__ === mergedLabels.approvedMessage\n ? mergedLabels.approvedMessage\n : mergedLabels.rejectedMessage\n : mergedLabels.feedbackSubmittedMessage\n }\n className={completedFeedbackClassName}\n />\n );\n }\n\n if (status === \"inProgress\" || status === \"executing\") {\n return (\n <>\n <FeedbackButton\n label={mergedLabels.approveLabel}\n onClick={() => {\n setIsExpanded(false);\n onRespond?.(mergedLabels.approveLabel);\n useResponseCache.setResponse(response.id, {\n ...response,\n __feedback__: mergedLabels.approvedMessage,\n });\n }}\n className={buttonClassName}\n />\n <FeedbackButton\n label={mergedLabels.rejectLabel}\n onClick={() => {\n setIsExpanded(false);\n useResponseCache.setResponse(response.id, {\n ...response,\n __feedback__: mergedLabels.rejectedMessage,\n });\n onRespond?.(mergedLabels.rejectLabel);\n }}\n className={buttonClassName}\n />\n </>\n );\n }\n\n return null;\n };\n\n // Decide which icon to display\n const ExpandIcon = icons?.expand || DefaultExpandIcon;\n const CollapseIcon = icons?.collapse || DefaultCollapseIcon;\n\n return (\n <div className={className}>\n {/* Response content - conditionally expanded */}\n {isExpanded && <ContentRenderer content={response.content} className={contentClassName} />}\n\n <div className={actionsClassName}>\n <div className=\"copilotkit-response-label\">\n <button onClick={() => setIsExpanded(!isExpanded)} className=\"copilotkit-toggle-button\">\n {isExpanded ? (\n <CollapseIcon className=\"copilotkit-icon\" />\n ) : (\n <ExpandIcon className=\"copilotkit-icon\" />\n )}\n </button>\n <span>{mergedLabels.responseLabel}</span>\n </div>\n\n <div className=\"copilotkit-response-buttons\">{renderFeedback()}</div>\n </div>\n </div>\n );\n};\n\n/**\n * Export the response cache for reuse\n */\nexport { createResponseCache };\n"],"mappings":"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","names":[]}