@copilotkit/react-ui 0.0.0-test-custom-tag-prerelease-1-20250108200215

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 (352) hide show
  1. package/CHANGELOG.md +2134 -0
  2. package/README.md +46 -0
  3. package/dist/chunk-375NVWZM.mjs +21 -0
  4. package/dist/chunk-375NVWZM.mjs.map +1 -0
  5. package/dist/chunk-3E7HY2UN.mjs +85 -0
  6. package/dist/chunk-3E7HY2UN.mjs.map +1 -0
  7. package/dist/chunk-3XAXY2Z3.mjs +18 -0
  8. package/dist/chunk-3XAXY2Z3.mjs.map +1 -0
  9. package/dist/chunk-54JAUBUJ.mjs +26 -0
  10. package/dist/chunk-54JAUBUJ.mjs.map +1 -0
  11. package/dist/chunk-6INMITFA.mjs +18 -0
  12. package/dist/chunk-6INMITFA.mjs.map +1 -0
  13. package/dist/chunk-7II4YL7R.mjs +170 -0
  14. package/dist/chunk-7II4YL7R.mjs.map +1 -0
  15. package/dist/chunk-BH6PCAAL.mjs +81 -0
  16. package/dist/chunk-BH6PCAAL.mjs.map +1 -0
  17. package/dist/chunk-CBBFRI3Q.mjs +81 -0
  18. package/dist/chunk-CBBFRI3Q.mjs.map +1 -0
  19. package/dist/chunk-DCNCY2PL.mjs +304 -0
  20. package/dist/chunk-DCNCY2PL.mjs.map +1 -0
  21. package/dist/chunk-EFZPSZWO.mjs +1 -0
  22. package/dist/chunk-EFZPSZWO.mjs.map +1 -0
  23. package/dist/chunk-EMQEEXUB.mjs +97 -0
  24. package/dist/chunk-EMQEEXUB.mjs.map +1 -0
  25. package/dist/chunk-F2W5FD7L.mjs +232 -0
  26. package/dist/chunk-F2W5FD7L.mjs.map +1 -0
  27. package/dist/chunk-FZC7X5PK.mjs +262 -0
  28. package/dist/chunk-FZC7X5PK.mjs.map +1 -0
  29. package/dist/chunk-IU3WTXLQ.mjs +1 -0
  30. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  31. package/dist/chunk-KXE2JCUH.mjs +1 -0
  32. package/dist/chunk-KXE2JCUH.mjs.map +1 -0
  33. package/dist/chunk-MMVDU6DF.mjs +1 -0
  34. package/dist/chunk-MMVDU6DF.mjs.map +1 -0
  35. package/dist/chunk-MRFF7GSQ.mjs +1 -0
  36. package/dist/chunk-MRFF7GSQ.mjs.map +1 -0
  37. package/dist/chunk-MRXNTQOX.mjs +59 -0
  38. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  39. package/dist/chunk-OTPAZXVR.mjs +92 -0
  40. package/dist/chunk-OTPAZXVR.mjs.map +1 -0
  41. package/dist/chunk-PNQVKBPN.mjs +146 -0
  42. package/dist/chunk-PNQVKBPN.mjs.map +1 -0
  43. package/dist/chunk-RJCZRKTV.mjs +106 -0
  44. package/dist/chunk-RJCZRKTV.mjs.map +1 -0
  45. package/dist/chunk-RQNJNK2W.mjs +25 -0
  46. package/dist/chunk-RQNJNK2W.mjs.map +1 -0
  47. package/dist/chunk-RU73BEZM.mjs +41 -0
  48. package/dist/chunk-RU73BEZM.mjs.map +1 -0
  49. package/dist/chunk-S5MBUNGN.mjs +140 -0
  50. package/dist/chunk-S5MBUNGN.mjs.map +1 -0
  51. package/dist/chunk-T26KLXLH.mjs +1 -0
  52. package/dist/chunk-T26KLXLH.mjs.map +1 -0
  53. package/dist/chunk-TI7SY2RI.mjs +164 -0
  54. package/dist/chunk-TI7SY2RI.mjs.map +1 -0
  55. package/dist/chunk-UPTB2MVO.mjs +395 -0
  56. package/dist/chunk-UPTB2MVO.mjs.map +1 -0
  57. package/dist/chunk-UWVGLGFQ.mjs +95 -0
  58. package/dist/chunk-UWVGLGFQ.mjs.map +1 -0
  59. package/dist/chunk-V7W6IM2V.mjs +1 -0
  60. package/dist/chunk-V7W6IM2V.mjs.map +1 -0
  61. package/dist/chunk-VEC45H6Q.mjs +18 -0
  62. package/dist/chunk-VEC45H6Q.mjs.map +1 -0
  63. package/dist/chunk-WB3YULQ4.mjs +1 -0
  64. package/dist/chunk-WB3YULQ4.mjs.map +1 -0
  65. package/dist/chunk-WSMMTZCM.mjs +30 -0
  66. package/dist/chunk-WSMMTZCM.mjs.map +1 -0
  67. package/dist/chunk-YAGE7RCE.mjs +118 -0
  68. package/dist/chunk-YAGE7RCE.mjs.map +1 -0
  69. package/dist/chunk-YQ3D5IQV.mjs +75 -0
  70. package/dist/chunk-YQ3D5IQV.mjs.map +1 -0
  71. package/dist/chunk-YQFVRDNC.mjs +53 -0
  72. package/dist/chunk-YQFVRDNC.mjs.map +1 -0
  73. package/dist/chunk-Z2UZSN3K.mjs +29 -0
  74. package/dist/chunk-Z2UZSN3K.mjs.map +1 -0
  75. package/dist/chunk-ZABXREBH.mjs +65 -0
  76. package/dist/chunk-ZABXREBH.mjs.map +1 -0
  77. package/dist/components/chat/Button.d.ts +7 -0
  78. package/dist/components/chat/Button.js +71 -0
  79. package/dist/components/chat/Button.js.map +1 -0
  80. package/dist/components/chat/Button.mjs +10 -0
  81. package/dist/components/chat/Button.mjs.map +1 -0
  82. package/dist/components/chat/Chat.d.ts +148 -0
  83. package/dist/components/chat/Chat.js +2427 -0
  84. package/dist/components/chat/Chat.js.map +1 -0
  85. package/dist/components/chat/Chat.mjs +34 -0
  86. package/dist/components/chat/Chat.mjs.map +1 -0
  87. package/dist/components/chat/ChatContext.d.ts +105 -0
  88. package/dist/components/chat/ChatContext.js +279 -0
  89. package/dist/components/chat/ChatContext.js.map +1 -0
  90. package/dist/components/chat/ChatContext.mjs +13 -0
  91. package/dist/components/chat/ChatContext.mjs.map +1 -0
  92. package/dist/components/chat/CodeBlock.d.ts +14 -0
  93. package/dist/components/chat/CodeBlock.js +523 -0
  94. package/dist/components/chat/CodeBlock.js.map +1 -0
  95. package/dist/components/chat/CodeBlock.mjs +14 -0
  96. package/dist/components/chat/CodeBlock.mjs.map +1 -0
  97. package/dist/components/chat/Header.d.ts +7 -0
  98. package/dist/components/chat/Header.js +64 -0
  99. package/dist/components/chat/Header.js.map +1 -0
  100. package/dist/components/chat/Header.mjs +10 -0
  101. package/dist/components/chat/Header.mjs.map +1 -0
  102. package/dist/components/chat/Icons.d.ts +18 -0
  103. package/dist/components/chat/Icons.js +321 -0
  104. package/dist/components/chat/Icons.js.map +1 -0
  105. package/dist/components/chat/Icons.mjs +32 -0
  106. package/dist/components/chat/Icons.mjs.map +1 -0
  107. package/dist/components/chat/Input.d.ts +7 -0
  108. package/dist/components/chat/Input.js +324 -0
  109. package/dist/components/chat/Input.js.map +1 -0
  110. package/dist/components/chat/Input.mjs +12 -0
  111. package/dist/components/chat/Input.mjs.map +1 -0
  112. package/dist/components/chat/Markdown.d.ts +8 -0
  113. package/dist/components/chat/Markdown.js +583 -0
  114. package/dist/components/chat/Markdown.js.map +1 -0
  115. package/dist/components/chat/Markdown.mjs +11 -0
  116. package/dist/components/chat/Markdown.mjs.map +1 -0
  117. package/dist/components/chat/Messages.d.ts +12 -0
  118. package/dist/components/chat/Messages.js +217 -0
  119. package/dist/components/chat/Messages.js.map +1 -0
  120. package/dist/components/chat/Messages.mjs +12 -0
  121. package/dist/components/chat/Messages.mjs.map +1 -0
  122. package/dist/components/chat/Modal.d.ts +51 -0
  123. package/dist/components/chat/Modal.js +2626 -0
  124. package/dist/components/chat/Modal.js.map +1 -0
  125. package/dist/components/chat/Modal.mjs +34 -0
  126. package/dist/components/chat/Modal.mjs.map +1 -0
  127. package/dist/components/chat/Popup.d.ts +13 -0
  128. package/dist/components/chat/Popup.js +2637 -0
  129. package/dist/components/chat/Popup.js.map +1 -0
  130. package/dist/components/chat/Popup.mjs +35 -0
  131. package/dist/components/chat/Popup.mjs.map +1 -0
  132. package/dist/components/chat/Response.d.ts +7 -0
  133. package/dist/components/chat/Response.js +64 -0
  134. package/dist/components/chat/Response.js.map +1 -0
  135. package/dist/components/chat/Response.mjs +10 -0
  136. package/dist/components/chat/Response.mjs.map +1 -0
  137. package/dist/components/chat/Sidebar.d.ts +13 -0
  138. package/dist/components/chat/Sidebar.js +2646 -0
  139. package/dist/components/chat/Sidebar.js.map +1 -0
  140. package/dist/components/chat/Sidebar.mjs +35 -0
  141. package/dist/components/chat/Sidebar.mjs.map +1 -0
  142. package/dist/components/chat/Suggestion.d.ts +14 -0
  143. package/dist/components/chat/Suggestion.js +181 -0
  144. package/dist/components/chat/Suggestion.js.map +1 -0
  145. package/dist/components/chat/Suggestion.mjs +11 -0
  146. package/dist/components/chat/Suggestion.mjs.map +1 -0
  147. package/dist/components/chat/Textarea.d.ts +13 -0
  148. package/dist/components/chat/Textarea.js +73 -0
  149. package/dist/components/chat/Textarea.js.map +1 -0
  150. package/dist/components/chat/Textarea.mjs +8 -0
  151. package/dist/components/chat/Textarea.mjs.map +1 -0
  152. package/dist/components/chat/Window.d.ts +7 -0
  153. package/dist/components/chat/Window.js +164 -0
  154. package/dist/components/chat/Window.js.map +1 -0
  155. package/dist/components/chat/Window.mjs +10 -0
  156. package/dist/components/chat/Window.mjs.map +1 -0
  157. package/dist/components/chat/index.d.ts +11 -0
  158. package/dist/components/chat/index.js +2661 -0
  159. package/dist/components/chat/index.js.map +1 -0
  160. package/dist/components/chat/index.mjs +47 -0
  161. package/dist/components/chat/index.mjs.map +1 -0
  162. package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +7 -0
  163. package/dist/components/chat/messages/RenderActionExecutionMessage.js +131 -0
  164. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +1 -0
  165. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +10 -0
  166. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs.map +1 -0
  167. package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +7 -0
  168. package/dist/components/chat/messages/RenderAgentStateMessage.js +111 -0
  169. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +1 -0
  170. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +10 -0
  171. package/dist/components/chat/messages/RenderAgentStateMessage.mjs.map +1 -0
  172. package/dist/components/chat/messages/RenderResultMessage.d.ts +7 -0
  173. package/dist/components/chat/messages/RenderResultMessage.js +64 -0
  174. package/dist/components/chat/messages/RenderResultMessage.js.map +1 -0
  175. package/dist/components/chat/messages/RenderResultMessage.mjs +10 -0
  176. package/dist/components/chat/messages/RenderResultMessage.mjs.map +1 -0
  177. package/dist/components/chat/messages/RenderTextMessage.d.ts +7 -0
  178. package/dist/components/chat/messages/RenderTextMessage.js +629 -0
  179. package/dist/components/chat/messages/RenderTextMessage.js.map +1 -0
  180. package/dist/components/chat/messages/RenderTextMessage.mjs +13 -0
  181. package/dist/components/chat/messages/RenderTextMessage.mjs.map +1 -0
  182. package/dist/components/chat/props.d.ts +46 -0
  183. package/dist/components/chat/props.js +19 -0
  184. package/dist/components/chat/props.js.map +1 -0
  185. package/dist/components/chat/props.mjs +2 -0
  186. package/dist/components/chat/props.mjs.map +1 -0
  187. package/dist/components/dev-console/console.d.ts +10 -0
  188. package/dist/components/dev-console/console.js +720 -0
  189. package/dist/components/dev-console/console.js.map +1 -0
  190. package/dist/components/dev-console/console.mjs +17 -0
  191. package/dist/components/dev-console/console.mjs.map +1 -0
  192. package/dist/components/dev-console/icons.d.ts +9 -0
  193. package/dist/components/dev-console/icons.js +120 -0
  194. package/dist/components/dev-console/icons.js.map +1 -0
  195. package/dist/components/dev-console/icons.mjs +16 -0
  196. package/dist/components/dev-console/icons.mjs.map +1 -0
  197. package/dist/components/dev-console/index.d.ts +5 -0
  198. package/dist/components/dev-console/index.js +720 -0
  199. package/dist/components/dev-console/index.js.map +1 -0
  200. package/dist/components/dev-console/index.mjs +18 -0
  201. package/dist/components/dev-console/index.mjs.map +1 -0
  202. package/dist/components/dev-console/types.d.ts +9 -0
  203. package/dist/components/dev-console/types.js +19 -0
  204. package/dist/components/dev-console/types.js.map +1 -0
  205. package/dist/components/dev-console/types.mjs +1 -0
  206. package/dist/components/dev-console/types.mjs.map +1 -0
  207. package/dist/components/dev-console/utils.d.ts +10 -0
  208. package/dist/components/dev-console/utils.js +188 -0
  209. package/dist/components/dev-console/utils.js.map +1 -0
  210. package/dist/components/dev-console/utils.mjs +16 -0
  211. package/dist/components/dev-console/utils.mjs.map +1 -0
  212. package/dist/components/help-modal/icons.d.ts +9 -0
  213. package/dist/components/help-modal/icons.js +107 -0
  214. package/dist/components/help-modal/icons.js.map +1 -0
  215. package/dist/components/help-modal/icons.mjs +12 -0
  216. package/dist/components/help-modal/icons.mjs.map +1 -0
  217. package/dist/components/help-modal/index.d.ts +2 -0
  218. package/dist/components/help-modal/index.js +255 -0
  219. package/dist/components/help-modal/index.js.map +1 -0
  220. package/dist/components/help-modal/index.mjs +10 -0
  221. package/dist/components/help-modal/index.mjs.map +1 -0
  222. package/dist/components/help-modal/modal.d.ts +5 -0
  223. package/dist/components/help-modal/modal.js +253 -0
  224. package/dist/components/help-modal/modal.js.map +1 -0
  225. package/dist/components/help-modal/modal.mjs +9 -0
  226. package/dist/components/help-modal/modal.mjs.map +1 -0
  227. package/dist/components/index.d.ts +14 -0
  228. package/dist/components/index.js +2665 -0
  229. package/dist/components/index.js.map +1 -0
  230. package/dist/components/index.mjs +54 -0
  231. package/dist/components/index.mjs.map +1 -0
  232. package/dist/context/index.d.ts +2 -0
  233. package/dist/context/index.js +19 -0
  234. package/dist/context/index.js.map +1 -0
  235. package/dist/context/index.mjs +2 -0
  236. package/dist/context/index.mjs.map +1 -0
  237. package/dist/hooks/index.d.ts +1 -0
  238. package/dist/hooks/index.js +55 -0
  239. package/dist/hooks/index.js.map +1 -0
  240. package/dist/hooks/index.mjs +9 -0
  241. package/dist/hooks/index.mjs.map +1 -0
  242. package/dist/hooks/use-copilot-chat-suggestions.d.ts +83 -0
  243. package/dist/hooks/use-copilot-chat-suggestions.js +53 -0
  244. package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -0
  245. package/dist/hooks/use-copilot-chat-suggestions.mjs +8 -0
  246. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +1 -0
  247. package/dist/hooks/use-copy-to-clipboard.d.ts +9 -0
  248. package/dist/hooks/use-copy-to-clipboard.js +60 -0
  249. package/dist/hooks/use-copy-to-clipboard.js.map +1 -0
  250. package/dist/hooks/use-copy-to-clipboard.mjs +8 -0
  251. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -0
  252. package/dist/hooks/use-push-to-talk.d.ts +19 -0
  253. package/dist/hooks/use-push-to-talk.js +195 -0
  254. package/dist/hooks/use-push-to-talk.js.map +1 -0
  255. package/dist/hooks/use-push-to-talk.mjs +12 -0
  256. package/dist/hooks/use-push-to-talk.mjs.map +1 -0
  257. package/dist/index.css +751 -0
  258. package/dist/index.css.map +1 -0
  259. package/dist/index.d.ts +16 -0
  260. package/dist/index.js +2693 -0
  261. package/dist/index.js.map +1 -0
  262. package/dist/index.mjs +62 -0
  263. package/dist/index.mjs.map +1 -0
  264. package/dist/lib/utils.d.ts +4 -0
  265. package/dist/lib/utils.js +76 -0
  266. package/dist/lib/utils.js.map +1 -0
  267. package/dist/lib/utils.mjs +34 -0
  268. package/dist/lib/utils.mjs.map +1 -0
  269. package/dist/lib/utils.test.d.ts +2 -0
  270. package/dist/lib/utils.test.js +9 -0
  271. package/dist/lib/utils.test.js.map +1 -0
  272. package/dist/lib/utils.test.mjs +7 -0
  273. package/dist/lib/utils.test.mjs.map +1 -0
  274. package/dist/types/css.d.ts +16 -0
  275. package/dist/types/css.js +19 -0
  276. package/dist/types/css.js.map +1 -0
  277. package/dist/types/css.mjs +1 -0
  278. package/dist/types/css.mjs.map +1 -0
  279. package/dist/types/index.d.ts +2 -0
  280. package/dist/types/index.js +19 -0
  281. package/dist/types/index.js.map +1 -0
  282. package/dist/types/index.mjs +2 -0
  283. package/dist/types/index.mjs.map +1 -0
  284. package/dist/types/suggestions.d.ts +8 -0
  285. package/dist/types/suggestions.js +19 -0
  286. package/dist/types/suggestions.js.map +1 -0
  287. package/dist/types/suggestions.mjs +1 -0
  288. package/dist/types/suggestions.mjs.map +1 -0
  289. package/jest.config.js +5 -0
  290. package/package.json +78 -0
  291. package/postcss.config.js +60 -0
  292. package/src/components/chat/Button.tsx +18 -0
  293. package/src/components/chat/Chat.tsx +517 -0
  294. package/src/components/chat/ChatContext.tsx +188 -0
  295. package/src/components/chat/CodeBlock.tsx +408 -0
  296. package/src/components/chat/Header.tsx +15 -0
  297. package/src/components/chat/Icons.tsx +223 -0
  298. package/src/components/chat/Input.tsx +100 -0
  299. package/src/components/chat/Markdown.tsx +80 -0
  300. package/src/components/chat/Messages.tsx +178 -0
  301. package/src/components/chat/Modal.tsx +117 -0
  302. package/src/components/chat/Popup.tsx +57 -0
  303. package/src/components/chat/Response.tsx +12 -0
  304. package/src/components/chat/Sidebar.tsx +74 -0
  305. package/src/components/chat/Suggestion.tsx +125 -0
  306. package/src/components/chat/Textarea.tsx +61 -0
  307. package/src/components/chat/Window.tsx +153 -0
  308. package/src/components/chat/index.tsx +5 -0
  309. package/src/components/chat/messages/RenderActionExecutionMessage.tsx +101 -0
  310. package/src/components/chat/messages/RenderAgentStateMessage.tsx +92 -0
  311. package/src/components/chat/messages/RenderResultMessage.tsx +15 -0
  312. package/src/components/chat/messages/RenderTextMessage.tsx +36 -0
  313. package/src/components/chat/props.ts +49 -0
  314. package/src/components/dev-console/console.tsx +281 -0
  315. package/src/components/dev-console/icons.tsx +92 -0
  316. package/src/components/dev-console/index.tsx +2 -0
  317. package/src/components/dev-console/types.ts +7 -0
  318. package/src/components/dev-console/utils.ts +162 -0
  319. package/src/components/help-modal/icons.tsx +68 -0
  320. package/src/components/help-modal/index.tsx +1 -0
  321. package/src/components/help-modal/modal.tsx +164 -0
  322. package/src/components/index.ts +2 -0
  323. package/src/context/index.ts +1 -0
  324. package/src/css/animations.css +35 -0
  325. package/src/css/button.css +56 -0
  326. package/src/css/colors.css +12 -0
  327. package/src/css/console.css +134 -0
  328. package/src/css/header.css +43 -0
  329. package/src/css/input.css +89 -0
  330. package/src/css/markdown.css +136 -0
  331. package/src/css/messages.css +73 -0
  332. package/src/css/panel.css +38 -0
  333. package/src/css/popup.css +22 -0
  334. package/src/css/response.css +26 -0
  335. package/src/css/sidebar.css +34 -0
  336. package/src/css/suggestions.css +35 -0
  337. package/src/css/window.css +60 -0
  338. package/src/hooks/index.ts +1 -0
  339. package/src/hooks/use-copilot-chat-suggestions.tsx +112 -0
  340. package/src/hooks/use-copy-to-clipboard.tsx +29 -0
  341. package/src/hooks/use-push-to-talk.tsx +166 -0
  342. package/src/index.tsx +7 -0
  343. package/src/lib/utils.test.ts +7 -0
  344. package/src/lib/utils.ts +27 -0
  345. package/src/styles.css +14 -0
  346. package/src/types/css.ts +15 -0
  347. package/src/types/index.ts +1 -0
  348. package/src/types/suggestions.ts +6 -0
  349. package/tailwind.config.js +7 -0
  350. package/tsconfig.json +12 -0
  351. package/tsup.config.ts +16 -0
  352. package/typedoc.json +4 -0
@@ -0,0 +1,164 @@
1
+ import React, { useMemo, useState } from "react";
2
+ import { CloseIcon, LifeBuoyIcon, LoadingSpinnerIcon } from "./icons";
3
+
4
+ export function CopilotKitHelpModal() {
5
+ const [showHelpModal, setShowHelpModal] = useState(false);
6
+ const [issueDescription, setIssueDescription] = useState("");
7
+ const [email, setEmail] = useState("");
8
+ const [emailError, setEmailError] = useState("");
9
+ const [submitting, setSubmitting] = useState(false);
10
+
11
+ const validateEmail = (email: string) => {
12
+ const re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
13
+ return re.test(email);
14
+ };
15
+
16
+ const handleSubmit = async (e: React.FormEvent) => {
17
+ e.preventDefault();
18
+
19
+ if (email?.length > 0 && !validateEmail(email)) {
20
+ setEmailError("Please enter a valid email address");
21
+ return;
22
+ }
23
+ setSubmitting(true);
24
+
25
+ await fetch("https://api.segment.io/v1/track", {
26
+ method: "POST",
27
+ headers: {
28
+ "Content-Type": "application/json",
29
+ },
30
+ body: JSON.stringify({
31
+ event: "oss.dev-console.help",
32
+ anonymousId: window.crypto.randomUUID(),
33
+ properties: { email, text: issueDescription },
34
+ writeKey: "q0gQqvGYyw9pNyhIocNzefSYKGO1aiwW",
35
+ }),
36
+ });
37
+
38
+ // Reset
39
+ setEmailError("");
40
+ setEmail("");
41
+ setIssueDescription("");
42
+ setSubmitting(false);
43
+ setShowHelpModal(false);
44
+ };
45
+
46
+ const HelpButton = () => (
47
+ <button
48
+ onClick={() => setShowHelpModal(true)}
49
+ style={{ width: "50px", height: "30px", marginRight: "0.25rem" }}
50
+ className="text-sm p-0 bg-transparent rounded border border-blue-500"
51
+ aria-label="Open Help"
52
+ >
53
+ Help
54
+ </button>
55
+ );
56
+
57
+ const submitButtonDisabled = useMemo(
58
+ () => submitting || !!emailError || issueDescription == null || issueDescription?.length == 0,
59
+ [submitting, emailError, issueDescription],
60
+ );
61
+
62
+ return (
63
+ <>
64
+ <HelpButton />
65
+ {showHelpModal && (
66
+ <div
67
+ className="fixed inset-0 flex items-center justify-center p-4"
68
+ style={{ backgroundColor: "rgba(11, 15, 26, 0.5)", zIndex: 99 }}
69
+ >
70
+ <div className="bg-white rounded-lg shadow-xl max-w-md w-full p-4 flex-col relative">
71
+ <button
72
+ className="absolute text-gray-400 hover:text-gray-600 focus:outline-none"
73
+ style={{ top: "10px", right: "10px" }}
74
+ onClick={() => setShowHelpModal(false)}
75
+ aria-label="Close"
76
+ >
77
+ <CloseIcon />
78
+ </button>
79
+ <div className="w-full flex mb-6 justify-center">
80
+ <h2 className="text-2xl font-bold">Help Options</h2>
81
+ </div>
82
+ <div className="space-y-4 mb-4">
83
+ <div className="block w-full text-center py-2 px-4 bg-blue-500 text-white rounded hover:bg-blue-600 transition duration-150 text-sm">
84
+ <a
85
+ href="https://docs.copilotkit.ai/coagents/troubleshooting/common-issues"
86
+ target="_blank"
87
+ rel="noopener noreferrer"
88
+ >
89
+ Visit the Troubleshooting and FAQ section in the docs
90
+ </a>
91
+ </div>
92
+ <div className="block w-full text-center py-2 px-4 bg-blue-500 text-white rounded hover:bg-blue-600 transition duration-150 text-sm">
93
+ <a
94
+ href="https://go.copilotkit.ai/dev-console-support-discord"
95
+ target="_blank"
96
+ rel="noopener noreferrer"
97
+ >
98
+ Go to Discord Support Channel (Community Support)
99
+ </a>
100
+ </div>
101
+ <div className="block w-full text-center py-2 px-4 bg-blue-500 text-white rounded hover:bg-blue-600 transition duration-150 text-sm">
102
+ <a
103
+ href="https://go.copilotkit.ai/dev-console-support-slack"
104
+ target="_blank"
105
+ rel="noopener noreferrer"
106
+ >
107
+ Apply for Priority Direct Slack Support
108
+ </a>
109
+ </div>
110
+ </div>
111
+ <form onSubmit={handleSubmit} className="flex flex-col space-y-2">
112
+ <div>
113
+ <label htmlFor="feedback" className="block text-sm font-medium text-gray-700 mb-1">
114
+ Let us know what your issue is:
115
+ </label>
116
+ <textarea
117
+ id="feedback"
118
+ rows={4}
119
+ className="w-full px-3 py-2 text-gray-700 border rounded-lg focus:outline-none focus:border-blue-500"
120
+ placeholder="A Loom link / screen recording is always great!"
121
+ onChange={(e) => setIssueDescription(e.target.value)}
122
+ value={issueDescription}
123
+ required
124
+ ></textarea>
125
+ </div>
126
+ <div>
127
+ <label htmlFor="email" className="block text-sm font-medium text-gray-700 mb-1">
128
+ Email (optional):
129
+ </label>
130
+ <input
131
+ type="email"
132
+ id="email"
133
+ className={`w-full px-3 py-2 text-gray-700 border rounded-lg focus:outline-none focus:border-blue-500 ${emailError ? "border-red-500" : ""}`}
134
+ placeholder="Enter your email for follow-up"
135
+ onChange={(e) => {
136
+ setEmail(e.target.value);
137
+ setEmailError("");
138
+ }}
139
+ value={email}
140
+ />
141
+ {emailError && <p className="text-red-500 text-sm mt-1">{emailError}</p>}
142
+ </div>
143
+ <div className="bg-gray-50 px-4 py-4 sm:px-6 sm:flex sm:flex-row-reverse rounded-b-lg">
144
+ <button
145
+ type="submit"
146
+ onClick={handleSubmit}
147
+ disabled={submitButtonDisabled}
148
+ style={
149
+ submitButtonDisabled
150
+ ? { backgroundColor: "rgb(216, 216, 216)", color: "rgb(129, 129, 129)" }
151
+ : undefined
152
+ }
153
+ className="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-500 text-base font-medium text-white hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm disabled:shadow-none"
154
+ >
155
+ {submitting ? <LoadingSpinnerIcon color="white" /> : "Submit"}
156
+ </button>
157
+ </div>
158
+ </form>
159
+ </div>
160
+ </div>
161
+ )}
162
+ </>
163
+ );
164
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./chat";
2
+ export * from "./dev-console";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ .copilotKitActivityDot1 {
2
+ animation: copilotKitActivityDotsAnimation 1.05s infinite;
3
+ }
4
+ .copilotKitActivityDot2 {
5
+ animation-delay: 0.1s;
6
+ }
7
+ .copilotKitActivityDot3 {
8
+ animation-delay: 0.2s;
9
+ }
10
+ @keyframes copilotKitActivityDotsAnimation {
11
+ 0%,
12
+ 57.14% {
13
+ animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);
14
+ transform: translate(0);
15
+ }
16
+ 28.57% {
17
+ animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);
18
+ transform: translateY(-6px);
19
+ }
20
+ 100% {
21
+ transform: translate(0);
22
+ }
23
+ }
24
+
25
+ @keyframes copilotKitSpinAnimation {
26
+ to {
27
+ transform: rotate(360deg);
28
+ }
29
+ }
30
+
31
+ @keyframes copilotKitPulseAnimation {
32
+ 50% {
33
+ opacity: 0.5;
34
+ }
35
+ }
@@ -0,0 +1,56 @@
1
+ .copilotKitButton {
2
+ width: 3.5rem;
3
+ height: 3.5rem;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ border-radius: 50%;
8
+ border: 1px solid rgba(255, 255, 255, 0.2);
9
+ outline: none;
10
+ position: relative;
11
+ transform: scale(1);
12
+ transition: transform 200ms;
13
+ background-color: var(--copilot-kit-primary-color);
14
+ color: var(--copilot-kit-contrast-color);
15
+ cursor: pointer;
16
+ }
17
+
18
+ .copilotKitButton:hover {
19
+ transform: scale(1.1);
20
+ }
21
+
22
+ .copilotKitButton:active {
23
+ transform: scale(0.75);
24
+ }
25
+
26
+ .copilotKitButtonIcon {
27
+ transition:
28
+ opacity 100ms,
29
+ transform 300ms;
30
+ position: absolute;
31
+ top: 50%;
32
+ left: 50%;
33
+ transform: translate(-50%, -50%);
34
+ }
35
+
36
+ /* State when the chat is open */
37
+ .copilotKitButton.open .copilotKitButtonIconOpen {
38
+ transform: translate(-50%, -50%) scale(0) rotate(90deg);
39
+ opacity: 0;
40
+ }
41
+
42
+ .copilotKitButton.open .copilotKitButtonIconClose {
43
+ transform: translate(-50%, -50%) scale(1) rotate(0deg);
44
+ opacity: 1;
45
+ }
46
+
47
+ /* State when the chat is closed */
48
+ .copilotKitButton:not(.open) .copilotKitButtonIconOpen {
49
+ transform: translate(-50%, -50%) scale(1) rotate(0deg);
50
+ opacity: 1;
51
+ }
52
+
53
+ .copilotKitButton:not(.open) .copilotKitButtonIconClose {
54
+ transform: translate(-50%, -50%) scale(0) rotate(-90deg);
55
+ opacity: 0;
56
+ }
@@ -0,0 +1,12 @@
1
+ html {
2
+ --copilot-kit-primary-color: rgb(59 130 246);
3
+ --copilot-kit-contrast-color: rgb(255 255 255);
4
+ --copilot-kit-secondary-color: rgb(243 244 246);
5
+ --copilot-kit-secondary-contrast-color: rgb(0 0 0);
6
+ --copilot-kit-background-color: rgb(255 255 255);
7
+ --copilot-kit-muted-color: rgb(106 106 106);
8
+ --copilot-kit-separator-color: rgba(0, 0, 0, 0.08);
9
+ --copilot-kit-scrollbar-color: rgba(0, 0, 0, 0.2);
10
+ --copilot-kit-response-button-color: #333;
11
+ --copilot-kit-response-button-background-color: #fff;
12
+ }
@@ -0,0 +1,134 @@
1
+ .copilotKitDevConsole {
2
+ background-color: #f3f4f6;
3
+ padding-left: 10px;
4
+ padding-right: 10px;
5
+ display: flex;
6
+ align-items: center;
7
+ border-bottom: 1px solid #cecece;
8
+ padding-top: 10px;
9
+ padding-bottom: 10px;
10
+ }
11
+
12
+ .copilotKitDevConsole.copilotKitDevConsoleWarnOutdated {
13
+ background-color: #f9caca;
14
+ }
15
+
16
+ .copilotKitDevConsole .copilotKitVersionInfo {
17
+ flex: 1;
18
+ margin-left: 18px;
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 2px;
22
+ }
23
+
24
+ .copilotKitDevConsole .copilotKitVersionInfo header {
25
+ font-size: 11px;
26
+ font-weight: bold;
27
+ }
28
+
29
+ .copilotKitDevConsole .copilotKitVersionInfo footer {
30
+ margin-top: 10px;
31
+ }
32
+
33
+ .copilotKitDevConsole .copilotKitVersionInfo footer button {
34
+ font-size: 11px;
35
+ font-weight: normal;
36
+ font-family: monospace;
37
+ background-color: white;
38
+ border: 1px solid #979797;
39
+ padding: 1px 12px;
40
+ padding-left: 5px;
41
+ border-radius: 4px;
42
+ display: inline-block;
43
+ text-align: left;
44
+ overflow: hidden;
45
+ white-space: nowrap;
46
+ width: 260px;
47
+ text-overflow: ellipsis;
48
+ }
49
+
50
+ .copilotKitDevConsole .copilotKitVersionInfo header aside {
51
+ display: inline;
52
+ font-weight: normal;
53
+ color: #7f7a7a;
54
+ margin-left: 5px;
55
+ }
56
+
57
+ .copilotKitDevConsole .copilotKitVersionInfo section {
58
+ font-size: 11px;
59
+ }
60
+
61
+ .copilotKitDevConsole .copilotKitVersionInfo section svg {
62
+ margin-left: 3px;
63
+ margin-top: -3px;
64
+ }
65
+
66
+ .copilotKitDevConsole .copilotKitDebugMenuButton {
67
+ font-size: 11px;
68
+ font-weight: bold;
69
+ display: flex;
70
+ width: 90px;
71
+ height: 30px;
72
+ background-color: #d8d8d8;
73
+ border: 1px solid #979797;
74
+ border-radius: 6px;
75
+ align-items: center;
76
+ justify-content: center;
77
+ outline: none;
78
+ }
79
+
80
+ .copilotKitDebugMenuButton.compact {
81
+ width: 35px;
82
+ color: black;
83
+ justify-content: center;
84
+ outline: none;
85
+ font-size: 8px;
86
+ }
87
+
88
+ .copilotKitDevConsole .copilotKitDebugMenuButton:hover {
89
+ background-color: #c7c7c7;
90
+ }
91
+
92
+ .copilotKitDevConsole .copilotKitDebugMenuButton > svg {
93
+ margin-left: 10px;
94
+ }
95
+
96
+ .copilotKitDebugMenu {
97
+ background-color: #d8d8d8;
98
+ margin-top: 2px;
99
+ border-radius: 6px;
100
+ border: 1px solid #979797;
101
+ padding: 0.25rem;
102
+ outline: none;
103
+ font-size: 13px;
104
+ }
105
+
106
+ .copilotKitDebugMenuItem {
107
+ padding-top: 3px;
108
+ padding-bottom: 3px;
109
+ padding-left: 10px;
110
+ padding-right: 10px;
111
+ display: block;
112
+ width: 100%;
113
+ text-align: left;
114
+ background: none;
115
+ border: none;
116
+ cursor: pointer;
117
+ }
118
+
119
+ .copilotKitDebugMenuItem:hover {
120
+ background-color: #c7c7c7;
121
+ border-radius: 4px;
122
+ }
123
+
124
+ .copilotKitDebugMenu[data-closed] {
125
+ transform: scale(0.95); /* data-[closed]:scale-95 */
126
+ opacity: 0; /* data-[closed]:opacity-0 */
127
+ }
128
+
129
+ .copilotKitDebugMenu hr {
130
+ height: 1px;
131
+ border: none; /* Remove 3D look */
132
+ background-color: #979797; /* Set color */
133
+ margin: 0.25rem;
134
+ }
@@ -0,0 +1,43 @@
1
+ .copilotKitHeader {
2
+ height: 56px;
3
+ font-weight: 500;
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ position: relative;
8
+ background-color: var(--copilot-kit-primary-color);
9
+ color: var(--copilot-kit-contrast-color);
10
+ border-top-left-radius: 0;
11
+ border-top-right-radius: 0;
12
+ border-bottom: 1px solid var(--copilot-kit-separator-color);
13
+ }
14
+
15
+ .copilotKitSidebar .copilotKitHeader {
16
+ border-radius: 0;
17
+ }
18
+
19
+ @media (min-width: 640px) {
20
+ .copilotKitHeader {
21
+ padding-left: 24px;
22
+ padding-right: 24px;
23
+ border-top-left-radius: 8px;
24
+ border-top-right-radius: 8px;
25
+ }
26
+ }
27
+
28
+ .copilotKitHeader > button {
29
+ border: 0;
30
+ padding: 0px;
31
+ position: absolute;
32
+ top: 50%;
33
+ right: 16px;
34
+ transform: translateY(-50%);
35
+ outline: none;
36
+ color: var(--copilot-kit-contrast-color);
37
+ background-color: transparent;
38
+ cursor: pointer;
39
+ }
40
+
41
+ .copilotKitHeader > button:focus {
42
+ outline: none;
43
+ }
@@ -0,0 +1,89 @@
1
+ .copilotKitInput {
2
+ border-top: 1px solid var(--copilot-kit-separator-color);
3
+ padding-left: 2rem;
4
+ padding-right: 1rem;
5
+ padding-top: 1rem;
6
+ padding-bottom: 1rem;
7
+ display: flex;
8
+ align-items: center;
9
+ cursor: text;
10
+ position: relative;
11
+ border-bottom-left-radius: 0.75rem;
12
+ border-bottom-right-radius: 0.75rem;
13
+ background-color: var(--copilot-kit-background-color);
14
+ }
15
+
16
+ .copilotKitInput > .copilotKitInputControls > button {
17
+ padding: 0.25rem;
18
+ cursor: pointer;
19
+ transition-property: transform;
20
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
21
+ transition-duration: 200ms;
22
+ transform: scale(1);
23
+ color: rgba(0, 0, 0, 0.25);
24
+ -webkit-appearance: button;
25
+ appearance: button;
26
+ background-color: transparent;
27
+ background-image: none;
28
+ text-transform: none;
29
+ font-family: inherit;
30
+ font-size: 100%;
31
+ font-weight: inherit;
32
+ line-height: inherit;
33
+ border: 0;
34
+ margin: 0;
35
+ text-indent: 0px;
36
+ text-shadow: none;
37
+ display: inline-block;
38
+ text-align: center;
39
+ margin-left: 0.5rem; /* Add margin to separate button from textarea */
40
+ }
41
+
42
+ .copilotKitInput > .copilotKitInputControls > button:not([disabled]) {
43
+ color: var(--copilot-kit-primary-color);
44
+ }
45
+
46
+ .copilotKitInput > .copilotKitInputControls > button:not([disabled]):hover {
47
+ transform: scale(1.1);
48
+ }
49
+
50
+ .copilotKitInput > .copilotKitInputControls > button[disabled] {
51
+ color: var(--copilot-kit-muted-color);
52
+ }
53
+
54
+ .copilotKitInputControls {
55
+ display: flex;
56
+ }
57
+
58
+ .copilotKitInput > textarea {
59
+ flex: 1; /* Allow textarea to take up remaining space */
60
+ outline: 2px solid transparent;
61
+ outline-offset: 2px;
62
+ resize: none;
63
+ white-space: pre-wrap;
64
+ overflow-wrap: break-word;
65
+ -webkit-font-smoothing: antialiased;
66
+ -moz-osx-font-smoothing: grayscale;
67
+ cursor: text;
68
+ font-size: 0.875rem;
69
+ line-height: 1.25rem;
70
+ margin: 0;
71
+ padding: 0;
72
+ font-family: inherit;
73
+ font-weight: inherit;
74
+ color: var(--copilot-kit-secondary-contrast-color);
75
+ border: 0px;
76
+ background-color: var(--copilot-kit-background-color);
77
+ }
78
+
79
+ .copilotKitInput > textarea::placeholder {
80
+ color: var(--copilot-kit-muted-color);
81
+ opacity: 1;
82
+ }
83
+
84
+ .copilotKitInput > .copilotKitInputControls > button.copilotKitPushToTalkRecording {
85
+ background-color: red;
86
+ color: white;
87
+ border-radius: 50%;
88
+ animation: copilotKitPulseAnimation 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
89
+ }
@@ -0,0 +1,136 @@
1
+ .copilotKitMarkdown h1,
2
+ .copilotKitMarkdown h2,
3
+ .copilotKitMarkdown h3,
4
+ .copilotKitMarkdown h4,
5
+ .copilotKitMarkdown h5,
6
+ .copilotKitMarkdown h6 {
7
+ font-weight: bold;
8
+ line-height: 1.2;
9
+ }
10
+
11
+ .copilotKitMarkdown h1:not(:last-child),
12
+ .copilotKitMarkdown h2:not(:last-child),
13
+ .copilotKitMarkdown h3:not(:last-child),
14
+ .copilotKitMarkdown h4:not(:last-child),
15
+ .copilotKitMarkdown h5:not(:last-child),
16
+ .copilotKitMarkdown h6:not(:last-child) {
17
+ margin-bottom: 1rem;
18
+ }
19
+
20
+ .copilotKitMarkdown h1 {
21
+ font-size: 1.5em;
22
+ }
23
+
24
+ .copilotKitMarkdown h2 {
25
+ font-size: 1.25em;
26
+ font-weight: 600;
27
+ }
28
+
29
+ .copilotKitMarkdown h3 {
30
+ font-size: 1.1em;
31
+ }
32
+
33
+ .copilotKitMarkdown h4 {
34
+ font-size: 1em;
35
+ }
36
+
37
+ .copilotKitMarkdown h5 {
38
+ font-size: 0.9em;
39
+ }
40
+
41
+ .copilotKitMarkdown h6 {
42
+ font-size: 0.8em;
43
+ }
44
+
45
+ .copilotKitMarkdown p {
46
+ padding: 0px;
47
+ margin: 0px;
48
+ }
49
+
50
+ .copilotKitMarkdown p:not(:last-child),
51
+ .copilotKitMarkdown pre:not(:last-child),
52
+ .copilotKitMarkdown ol:not(:last-child),
53
+ .copilotKitMarkdown ul:not(:last-child),
54
+ .copilotKitMarkdown blockquote:not(:last-child) {
55
+ margin-bottom: 1.25em;
56
+ }
57
+
58
+ .copilotKitMarkdown blockquote {
59
+ border-color: rgb(142, 142, 160);
60
+ border-left-width: 2px;
61
+ border-left-style: solid;
62
+ line-height: 1.2;
63
+ padding-left: 10px;
64
+ }
65
+
66
+ .copilotKitMarkdown blockquote p {
67
+ padding: 0.7em 0;
68
+ }
69
+
70
+ .copilotKitMarkdown ul {
71
+ list-style-type: disc;
72
+ padding-left: 20px;
73
+ overflow: visible;
74
+ }
75
+
76
+ .copilotKitMarkdown li {
77
+ list-style-type: inherit;
78
+ list-style-position: outside;
79
+ margin-left: 0;
80
+ padding-left: 0;
81
+ position: relative;
82
+ overflow: visible;
83
+ }
84
+
85
+ .copilotKitCodeBlock {
86
+ position: relative;
87
+ width: 100%;
88
+ background-color: rgb(9 9 11);
89
+ border-radius: 0.375rem;
90
+ }
91
+
92
+ .copilotKitCodeBlockToolbar {
93
+ display: flex;
94
+ width: 100%;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ background-color: rgb(39 39 42);
98
+ padding-left: 1rem;
99
+ padding-top: 0.09rem;
100
+ padding-bottom: 0.09rem;
101
+ color: rgb(228, 228, 228);
102
+ border-top-left-radius: 0.375rem;
103
+ border-top-right-radius: 0.375rem;
104
+ font-family: sans-serif;
105
+ }
106
+
107
+ .copilotKitCodeBlockToolbarLanguage {
108
+ font-size: 0.75rem;
109
+ line-height: 1rem;
110
+ text-transform: lowercase;
111
+ }
112
+
113
+ .copilotKitCodeBlockToolbarButtons {
114
+ display: flex;
115
+ align-items: center;
116
+ margin-right: 0.25rem;
117
+ margin-left: 0.25rem;
118
+ }
119
+
120
+ .copilotKitCodeBlockToolbarButton {
121
+ display: inline-flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ border-radius: 0.375rem;
125
+ font-size: 0.875rem;
126
+ line-height: 1.25rem;
127
+ font-weight: 500;
128
+ height: 2.5rem;
129
+ width: 2.5rem;
130
+ padding: 3px;
131
+ margin: 2px;
132
+ }
133
+
134
+ .copilotKitCodeBlockToolbarButton:hover {
135
+ background-color: rgb(55, 55, 58);
136
+ }