@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
@@ -2,12 +2,12 @@ import "../chunk-MMVDU6DF.mjs";
2
2
  import "../chunk-SC6JRFAJ.mjs";
3
3
  import {
4
4
  CopilotSidebar
5
- } from "../chunk-ALIBUJML.mjs";
5
+ } from "../chunk-WPVTPQ7X.mjs";
6
6
  import "../chunk-WB3YULQ4.mjs";
7
7
  import {
8
8
  CopilotPopup
9
- } from "../chunk-H3EM63WS.mjs";
10
- import "../chunk-KN2GCKBE.mjs";
9
+ } from "../chunk-VLNT34X3.mjs";
10
+ import "../chunk-GJ3MFNBX.mjs";
11
11
  import "../chunk-C3GSYRC3.mjs";
12
12
  import "../chunk-GVKA7RQQ.mjs";
13
13
  import "../chunk-V7W6IM2V.mjs";
@@ -24,42 +24,39 @@ import "../chunk-BH6PCAAL.mjs";
24
24
  import "../chunk-UFN2VWSR.mjs";
25
25
  import {
26
26
  CopilotChat
27
- } from "../chunk-HKTWKCPS.mjs";
28
- import "../chunk-53CVDVS5.mjs";
29
- import "../chunk-2II3Q27P.mjs";
30
- import {
31
- RenderImageMessage
32
- } from "../chunk-ULDQXCED.mjs";
33
- import "../chunk-C7OB63U5.mjs";
34
- import "../chunk-32MUWKL3.mjs";
27
+ } from "../chunk-LXCD3K7B.mjs";
28
+ import "../chunk-JHUTTP5C.mjs";
35
29
  import {
36
30
  AssistantMessage
37
- } from "../chunk-L3GZ7TXC.mjs";
31
+ } from "../chunk-GCKKSSBU.mjs";
32
+ import {
33
+ ImageRenderer
34
+ } from "../chunk-DBKRAOH7.mjs";
38
35
  import {
39
36
  UserMessage
40
- } from "../chunk-HWMFMBJC.mjs";
37
+ } from "../chunk-VVL6JFCJ.mjs";
41
38
  import {
42
39
  Suggestions
43
- } from "../chunk-QGSPTXOV.mjs";
40
+ } from "../chunk-O7KTFUAN.mjs";
44
41
  import {
45
42
  Suggestion
46
- } from "../chunk-IMBPSLL4.mjs";
43
+ } from "../chunk-Q2467VHZ.mjs";
47
44
  import "../chunk-PLHTVHUW.mjs";
48
- import "../chunk-4HUXYD3B.mjs";
45
+ import "../chunk-DTRPPNSA.mjs";
49
46
  import "../chunk-CGEAG65D.mjs";
50
47
  import "../chunk-QIOJXTIQ.mjs";
51
48
  import {
52
49
  Markdown
53
- } from "../chunk-YTXEWDNC.mjs";
54
- import "../chunk-B3D7U7TJ.mjs";
50
+ } from "../chunk-E6MQUIZW.mjs";
51
+ import "../chunk-WHDNKXMP.mjs";
55
52
  import {
56
53
  useChatContext
57
54
  } from "../chunk-IEMQ2SQW.mjs";
58
- import "../chunk-KENCH7RN.mjs";
55
+ import "../chunk-B5IFB5YJ.mjs";
59
56
  import "../chunk-XWG3L6QC.mjs";
60
57
  import "../chunk-54JAUBUJ.mjs";
61
58
  import "../chunk-JGMFJZMG.mjs";
62
- import "../chunk-S5MBUNGN.mjs";
59
+ import "../chunk-O72ZB5V3.mjs";
63
60
  import "../chunk-MRXNTQOX.mjs";
64
61
  export {
65
62
  AssistantMessage,
@@ -67,8 +64,8 @@ export {
67
64
  CopilotDevConsole,
68
65
  CopilotPopup,
69
66
  CopilotSidebar,
67
+ ImageRenderer,
70
68
  Markdown,
71
- RenderImageMessage,
72
69
  Suggestion as RenderSuggestion,
73
70
  Suggestions as RenderSuggestionsList,
74
71
  UserMessage,
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { Message } from '@copilotkit/runtime-client-gql';
2
+ import { Message } from '@copilotkit/shared';
3
3
 
4
4
  declare const checkMicrophonePermission: () => Promise<boolean | undefined>;
5
5
  declare const requestMicAndPlaybackPermission: () => Promise<{
@@ -60,6 +60,7 @@ __export(use_push_to_talk_exports, {
60
60
  });
61
61
  module.exports = __toCommonJS(use_push_to_talk_exports);
62
62
  var import_react_core = require("@copilotkit/react-core");
63
+ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
63
64
  var import_react = require("react");
64
65
  var checkMicrophonePermission = () => __async(void 0, null, function* () {
65
66
  try {
@@ -176,9 +177,8 @@ var usePushToTalk = ({
176
177
  const lastMessageIndex = context.messages.findIndex(
177
178
  (message) => message.id === startReadingFromMessageId
178
179
  );
179
- const messagesAfterLast = context.messages.slice(lastMessageIndex + 1).filter(
180
- (message) => message.isTextMessage() && message.role === "assistant"
181
- );
180
+ const aguiMessages = (0, import_runtime_client_gql.gqlToAGUI)(context.messages);
181
+ const messagesAfterLast = aguiMessages.slice(lastMessageIndex + 1).filter((message) => message.role === "assistant");
182
182
  const text = messagesAfterLast.map((message) => message.content).join("\n");
183
183
  playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl, audioContextRef.current);
184
184
  setStartReadingFromMessageId(null);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-push-to-talk.tsx"],"sourcesContent":["import { useCopilotContext, useCopilotMessagesContext } from \"@copilotkit/react-core\";\nimport { Message, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nexport const checkMicrophonePermission = async () => {\n try {\n const permissionStatus = await navigator.permissions.query({\n name: \"microphone\" as PermissionName,\n });\n if (permissionStatus.state === \"granted\") {\n return true;\n } else {\n return false;\n }\n } catch (err) {\n console.error(\"Error checking microphone permission\", err);\n }\n};\n\nexport const requestMicAndPlaybackPermission = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const audioContext = new window.AudioContext();\n await audioContext.resume();\n return { stream, audioContext };\n } catch (err) {\n console.error(\"Error requesting microphone and playback permissions\", err);\n return null;\n }\n};\n\nconst startRecording = async (\n mediaStreamRef: MutableRefObject<MediaStream | null>,\n mediaRecorderRef: MutableRefObject<MediaRecorder | null>,\n audioContextRef: MutableRefObject<AudioContext | null>,\n recordedChunks: Blob[],\n onStop: () => void,\n) => {\n if (!mediaStreamRef.current || !audioContextRef.current) {\n mediaStreamRef.current = await navigator.mediaDevices.getUserMedia({ audio: true });\n audioContextRef.current = new window.AudioContext();\n await audioContextRef.current.resume();\n }\n\n mediaRecorderRef.current = new MediaRecorder(mediaStreamRef.current!);\n mediaRecorderRef.current.start(1000);\n mediaRecorderRef.current.ondataavailable = (event) => {\n recordedChunks.push(event.data);\n };\n mediaRecorderRef.current.onstop = onStop;\n};\n\nconst stopRecording = (mediaRecorderRef: MutableRefObject<MediaRecorder | null>) => {\n if (mediaRecorderRef.current && mediaRecorderRef.current.state !== \"inactive\") {\n mediaRecorderRef.current.stop();\n }\n};\n\nconst transcribeAudio = async (recordedChunks: Blob[], transcribeAudioUrl: string) => {\n const completeBlob = new Blob(recordedChunks, { type: \"audio/mp4\" });\n const formData = new FormData();\n formData.append(\"file\", completeBlob, \"recording.mp4\");\n\n const response = await fetch(transcribeAudioUrl, {\n method: \"POST\",\n body: formData,\n });\n\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n\n const transcription = await response.json();\n return transcription.text;\n};\n\nconst playAudioResponse = (text: string, textToSpeechUrl: string, audioContext: AudioContext) => {\n const encodedText = encodeURIComponent(text);\n const url = `${textToSpeechUrl}?text=${encodedText}`;\n\n fetch(url)\n .then((response) => response.arrayBuffer())\n .then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer))\n .then((audioBuffer) => {\n const source = audioContext.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(audioContext.destination);\n source.start(0);\n })\n .catch((error) => {\n console.error(\"Error with decoding audio data\", error);\n });\n};\n\nexport type PushToTalkState = \"idle\" | \"recording\" | \"transcribing\";\n\nexport type SendFunction = (text: string) => Promise<Message>;\n\nexport const usePushToTalk = ({\n sendFunction,\n inProgress,\n}: {\n sendFunction: SendFunction;\n inProgress: boolean;\n}) => {\n const [pushToTalkState, setPushToTalkState] = useState<PushToTalkState>(\"idle\");\n const mediaStreamRef = useRef<MediaStream | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const recordedChunks = useRef<Blob[]>([]);\n const generalContext = useCopilotContext();\n const messagesContext = useCopilotMessagesContext();\n const context = { ...generalContext, ...messagesContext };\n const [startReadingFromMessageId, setStartReadingFromMessageId] = useState<string | null>(null);\n\n useEffect(() => {\n if (pushToTalkState === \"recording\") {\n startRecording(\n mediaStreamRef,\n mediaRecorderRef,\n audioContextRef,\n recordedChunks.current,\n () => {\n setPushToTalkState(\"transcribing\");\n },\n );\n } else {\n stopRecording(mediaRecorderRef);\n if (pushToTalkState === \"transcribing\") {\n transcribeAudio(recordedChunks.current, context.copilotApiConfig.transcribeAudioUrl!).then(\n async (transcription) => {\n recordedChunks.current = [];\n setPushToTalkState(\"idle\");\n const message = await sendFunction(transcription);\n setStartReadingFromMessageId(message.id);\n },\n );\n }\n }\n\n return () => {\n stopRecording(mediaRecorderRef);\n };\n }, [pushToTalkState]);\n\n useEffect(() => {\n if (inProgress === false && startReadingFromMessageId) {\n const lastMessageIndex = context.messages.findIndex(\n (message) => message.id === startReadingFromMessageId,\n );\n\n const messagesAfterLast = context.messages\n .slice(lastMessageIndex + 1)\n .filter(\n (message) => message.isTextMessage() && message.role === \"assistant\",\n ) as TextMessage[];\n\n const text = messagesAfterLast.map((message) => message.content).join(\"\\n\");\n playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl!, audioContextRef.current!);\n\n setStartReadingFromMessageId(null);\n }\n }, [startReadingFromMessageId, inProgress]);\n\n return { pushToTalkState, setPushToTalkState };\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/hooks/use-push-to-talk.tsx"],"sourcesContent":["import { useCopilotContext, useCopilotMessagesContext } from \"@copilotkit/react-core\";\nimport { gqlToAGUI } from \"@copilotkit/runtime-client-gql\";\nimport { Message } from \"@copilotkit/shared\";\nimport { MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nexport const checkMicrophonePermission = async () => {\n try {\n const permissionStatus = await navigator.permissions.query({\n name: \"microphone\" as PermissionName,\n });\n if (permissionStatus.state === \"granted\") {\n return true;\n } else {\n return false;\n }\n } catch (err) {\n console.error(\"Error checking microphone permission\", err);\n }\n};\n\nexport const requestMicAndPlaybackPermission = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const audioContext = new window.AudioContext();\n await audioContext.resume();\n return { stream, audioContext };\n } catch (err) {\n console.error(\"Error requesting microphone and playback permissions\", err);\n return null;\n }\n};\n\nconst startRecording = async (\n mediaStreamRef: MutableRefObject<MediaStream | null>,\n mediaRecorderRef: MutableRefObject<MediaRecorder | null>,\n audioContextRef: MutableRefObject<AudioContext | null>,\n recordedChunks: Blob[],\n onStop: () => void,\n) => {\n if (!mediaStreamRef.current || !audioContextRef.current) {\n mediaStreamRef.current = await navigator.mediaDevices.getUserMedia({ audio: true });\n audioContextRef.current = new window.AudioContext();\n await audioContextRef.current.resume();\n }\n\n mediaRecorderRef.current = new MediaRecorder(mediaStreamRef.current!);\n mediaRecorderRef.current.start(1000);\n mediaRecorderRef.current.ondataavailable = (event) => {\n recordedChunks.push(event.data);\n };\n mediaRecorderRef.current.onstop = onStop;\n};\n\nconst stopRecording = (mediaRecorderRef: MutableRefObject<MediaRecorder | null>) => {\n if (mediaRecorderRef.current && mediaRecorderRef.current.state !== \"inactive\") {\n mediaRecorderRef.current.stop();\n }\n};\n\nconst transcribeAudio = async (recordedChunks: Blob[], transcribeAudioUrl: string) => {\n const completeBlob = new Blob(recordedChunks, { type: \"audio/mp4\" });\n const formData = new FormData();\n formData.append(\"file\", completeBlob, \"recording.mp4\");\n\n const response = await fetch(transcribeAudioUrl, {\n method: \"POST\",\n body: formData,\n });\n\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n\n const transcription = await response.json();\n return transcription.text;\n};\n\nconst playAudioResponse = (text: string, textToSpeechUrl: string, audioContext: AudioContext) => {\n const encodedText = encodeURIComponent(text);\n const url = `${textToSpeechUrl}?text=${encodedText}`;\n\n fetch(url)\n .then((response) => response.arrayBuffer())\n .then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer))\n .then((audioBuffer) => {\n const source = audioContext.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(audioContext.destination);\n source.start(0);\n })\n .catch((error) => {\n console.error(\"Error with decoding audio data\", error);\n });\n};\n\nexport type PushToTalkState = \"idle\" | \"recording\" | \"transcribing\";\n\nexport type SendFunction = (text: string) => Promise<Message>;\n\nexport const usePushToTalk = ({\n sendFunction,\n inProgress,\n}: {\n sendFunction: SendFunction;\n inProgress: boolean;\n}) => {\n const [pushToTalkState, setPushToTalkState] = useState<PushToTalkState>(\"idle\");\n const mediaStreamRef = useRef<MediaStream | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const recordedChunks = useRef<Blob[]>([]);\n const generalContext = useCopilotContext();\n const messagesContext = useCopilotMessagesContext();\n const context = { ...generalContext, ...messagesContext };\n const [startReadingFromMessageId, setStartReadingFromMessageId] = useState<string | null>(null);\n\n useEffect(() => {\n if (pushToTalkState === \"recording\") {\n startRecording(\n mediaStreamRef,\n mediaRecorderRef,\n audioContextRef,\n recordedChunks.current,\n () => {\n setPushToTalkState(\"transcribing\");\n },\n );\n } else {\n stopRecording(mediaRecorderRef);\n if (pushToTalkState === \"transcribing\") {\n transcribeAudio(recordedChunks.current, context.copilotApiConfig.transcribeAudioUrl!).then(\n async (transcription) => {\n recordedChunks.current = [];\n setPushToTalkState(\"idle\");\n const message = await sendFunction(transcription);\n setStartReadingFromMessageId(message.id);\n },\n );\n }\n }\n\n return () => {\n stopRecording(mediaRecorderRef);\n };\n }, [pushToTalkState]);\n\n useEffect(() => {\n if (inProgress === false && startReadingFromMessageId) {\n const lastMessageIndex = context.messages.findIndex(\n (message) => message.id === startReadingFromMessageId,\n );\n\n const aguiMessages = gqlToAGUI(context.messages);\n\n const messagesAfterLast = aguiMessages\n .slice(lastMessageIndex + 1)\n .filter((message) => message.role === \"assistant\");\n\n const text = messagesAfterLast.map((message) => message.content).join(\"\\n\");\n playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl!, audioContextRef.current!);\n\n setStartReadingFromMessageId(null);\n }\n }, [startReadingFromMessageId, inProgress]);\n\n return { pushToTalkState, setPushToTalkState };\n};\n"],"mappings":"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","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  checkMicrophonePermission,
3
3
  requestMicAndPlaybackPermission,
4
4
  usePushToTalk
5
- } from "../chunk-S5MBUNGN.mjs";
5
+ } from "../chunk-O72ZB5V3.mjs";
6
6
  import "../chunk-MRXNTQOX.mjs";
7
7
  export {
8
8
  checkMicrophonePermission,
package/dist/index.css CHANGED
@@ -8,6 +8,9 @@
8
8
  --copilot-kit-secondary-contrast-color: rgb(28, 28, 28);
9
9
  --copilot-kit-separator-color: rgb(200 200 200);
10
10
  --copilot-kit-muted-color: rgb(200 200 200);
11
+ --copilot-kit-error-background: #fef2f2;
12
+ --copilot-kit-error-border: #fecaca;
13
+ --copilot-kit-error-text: #dc2626;
11
14
  --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
12
15
  --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
13
16
  --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,6 +31,9 @@ body[style*="color-scheme: dark"] :root {
28
31
  --copilot-kit-secondary-contrast-color: rgb(255, 255, 255);
29
32
  --copilot-kit-separator-color: rgb(45, 45, 45);
30
33
  --copilot-kit-muted-color: rgb(45, 45, 45);
34
+ --copilot-kit-error-background: #7f1d1d;
35
+ --copilot-kit-error-border: #dc2626;
36
+ --copilot-kit-error-text: #fca5a5;
31
37
  --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
32
38
  --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
33
39
  --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
@@ -382,11 +388,11 @@ body[style*="color-scheme: dark"] .poweredBy {
382
388
  }
383
389
  .copilotKitMessagesFooter {
384
390
  display: flex;
385
- padding: 0;
386
- margin: 0 auto 8px auto;
391
+ padding: 0.5rem 0.75rem;
392
+ margin: 8px auto 0 auto;
387
393
  justify-content: flex-start;
388
394
  flex-direction: column;
389
- width: 90%;
395
+ width: 97%;
390
396
  }
391
397
  .copilotKitMessages::-webkit-scrollbar {
392
398
  width: 6px;
@@ -524,6 +530,49 @@ body[style*="color-scheme: dark"] .poweredBy {
524
530
  background-color: var(--copilot-kit-primary-color);
525
531
  animation: copilotKitActivityDotAnimation 1.4s infinite ease-in-out both;
526
532
  }
533
+ .copilotKitImageRendering {
534
+ display: flex;
535
+ flex-direction: column;
536
+ gap: 8px;
537
+ }
538
+ .copilotKitImageRenderingImage {
539
+ max-width: 100%;
540
+ height: auto;
541
+ border-radius: 8px;
542
+ box-shadow: var(--copilot-kit-shadow-sm);
543
+ }
544
+ .copilotKitImageRenderingContent {
545
+ margin-top: 8px;
546
+ padding: 0 16px;
547
+ font-size: 0.875rem;
548
+ line-height: 1.5;
549
+ color: var(--copilot-kit-secondary-contrast-color);
550
+ }
551
+ .copilotKitImageRenderingError {
552
+ display: flex;
553
+ flex-direction: column;
554
+ gap: 8px;
555
+ padding: 12px;
556
+ border: 1px solid var(--copilot-kit-separator-color);
557
+ border-radius: 8px;
558
+ background-color: var(--copilot-kit-input-background-color);
559
+ }
560
+ .copilotKitImageRenderingErrorMessage {
561
+ display: flex;
562
+ align-items: center;
563
+ gap: 8px;
564
+ padding: 8px 12px;
565
+ background-color: var(--copilot-kit-error-background);
566
+ border: 1px solid var(--copilot-kit-error-border);
567
+ border-radius: 6px;
568
+ color: var(--copilot-kit-error-text);
569
+ font-size: 0.875rem;
570
+ font-weight: 500;
571
+ }
572
+ .copilotKitImageRenderingErrorMessage::before {
573
+ content: "\26a0\fe0f";
574
+ font-size: 1rem;
575
+ }
527
576
 
528
577
  /* src/css/window.css */
529
578
  .copilotKitWindow {
@@ -737,6 +786,13 @@ li.copilotKitMarkdownElement {
737
786
  .copilotKitCodeBlockToolbarButton:hover {
738
787
  background-color: rgb(55, 55, 58);
739
788
  }
789
+ .copilotKitInlineCode {
790
+ background-color: var(--copilot-kit-input-background-color);
791
+ border: 1px solid var(--copilot-kit-separator-color);
792
+ border-radius: 0.375rem;
793
+ padding: 0.05rem 0.4rem;
794
+ font-size: 15px;
795
+ }
740
796
 
741
797
  /* src/css/suggestions.css */
742
798
  .copilotKitMessages footer .suggestions {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/css/colors.css","../src/css/popup.css","../src/css/sidebar.css","../src/css/button.css","../src/css/header.css","../src/css/input.css","../src/css/messages.css","../src/css/window.css","../src/css/animations.css","../src/css/markdown.css","../src/css/suggestions.css","../src/css/panel.css","../src/css/console.css","../src/css/crew.css"],"sourcesContent":["/* IMPORTANT NOTE:\nTHE DARK AND LIGHT COLORS HERE ARE DUPLICATED BECAUSE NO REUSE METHOD POSSIBLE.\nWHEN MAKING ANY CHANGE, MAKE SURE TO INCLUDE IT IN ALL DUPLICATIONS.\n*/\n\n/* BASE LIGHT THEME */\n:root {\n /* Semantic color tokens */\n /* Main brand/action color - used for buttons, interactive elements */\n --copilot-kit-primary-color: rgb(28, 28, 28);\n /* Color that contrasts with primary - used for text on primary elements */\n --copilot-kit-contrast-color: rgb(255, 255, 255);\n /* Main page/container background color */\n --copilot-kit-background-color: rgb(255 255 255);\n /* Input box background color */\n --copilot-kit-input-background-color: #fbfbfb;\n /* Secondary background - used for cards, panels, elevated surfaces */\n --copilot-kit-secondary-color: rgb(255 255 255);\n /* Primary text color for main content */\n --copilot-kit-secondary-contrast-color: rgb(28, 28, 28);\n /* Border color for dividers and containers */\n --copilot-kit-separator-color: rgb(200 200 200);\n /* Muted color for disabled/inactive states */\n --copilot-kit-muted-color: rgb(200 200 200);\n\n /* Shadow tokens */\n /* Small shadow for subtle elevation */\n --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n /* Medium shadow for cards */\n --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n /* Large shadow for modals */\n --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n\n --copilot-kit-dev-console-bg: #f8f8fa;\n --copilot-kit-dev-console-text: black;\n}\n\n/* BASE DARK THEME */\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] :root {\n /* Main brand/action color - used for buttons, interactive elements */\n --copilot-kit-primary-color: rgb(255, 255, 255);\n /* Color that contrasts with primary - used for text on primary elements */\n --copilot-kit-contrast-color: rgb(28, 28, 28);\n /* Main page/container background color */\n --copilot-kit-background-color: rgb(17, 17, 17);\n /* Input box background color */\n --copilot-kit-input-background-color: #2c2c2c;\n /* Secondary background - used for cards, panels, elevated surfaces */\n --copilot-kit-secondary-color: rgb(28, 28, 28);\n /* Primary text color for main content */\n --copilot-kit-secondary-contrast-color: rgb(255, 255, 255);\n /* Border color for dividers and containers */\n --copilot-kit-separator-color: rgb(45, 45, 45);\n /* Muted color for disabled/inactive states */\n --copilot-kit-muted-color: rgb(45, 45, 45);\n\n /* Small shadow for subtle elevation */\n --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);\n /* Medium shadow for cards */\n --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n /* Large shadow for modals */\n --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);\n}\n",".copilotKitPopup {\n position: fixed;\n bottom: 1rem;\n right: 1rem;\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n}\n\n.copilotKitPopup svg {\n display: inline-block;\n vertical-align: middle;\n}\n",".copilotKitSidebar {\n position: fixed;\n bottom: 1rem;\n right: 1rem;\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n}\n\n.copilotKitSidebar svg {\n display: inline-block;\n vertical-align: middle;\n}\n\n.copilotKitSidebarContentWrapper {\n overflow: visible;\n margin-right: 0px;\n transition: margin-right 0.3s ease;\n}\n\n@media (min-width: 640px) {\n .copilotKitSidebarContentWrapper.sidebarExpanded {\n margin-right: 28rem;\n }\n}\n",".copilotKitButton {\n width: 3.5rem;\n height: 3.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n border: 1px solid var(--copilot-kit-primary-color);\n outline: none;\n position: relative;\n transform: scale(1);\n transition: all 0.2s ease;\n background-color: var(--copilot-kit-primary-color);\n color: var(--copilot-kit-contrast-color);\n cursor: pointer;\n box-shadow: var(--copilot-kit-shadow-sm);\n}\n\n.copilotKitButton:hover {\n transform: scale(1.05);\n box-shadow: var(--copilot-kit-shadow-md);\n}\n\n.copilotKitButton:active {\n transform: scale(0.95);\n box-shadow: var(--copilot-kit-shadow-sm);\n}\n\n.copilotKitButtonIcon {\n transition:\n opacity 100ms,\n transform 300ms;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copilotKitButtonIcon svg {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n/* State when the chat is open */\n.copilotKitButton.open .copilotKitButtonIconOpen {\n transform: translate(-50%, -50%) scale(0) rotate(90deg);\n opacity: 0;\n}\n\n.copilotKitButton.open .copilotKitButtonIconClose {\n transform: translate(-50%, -50%) scale(1) rotate(0deg);\n opacity: 1;\n}\n\n/* State when the chat is closed */\n.copilotKitButton:not(.open) .copilotKitButtonIconOpen {\n transform: translate(-50%, -50%) scale(1) rotate(0deg);\n opacity: 1;\n}\n\n.copilotKitButton:not(.open) .copilotKitButtonIconClose {\n transform: translate(-50%, -50%) scale(0) rotate(-90deg);\n opacity: 0;\n}\n",".copilotKitHeader {\n height: 56px;\n font-weight: 500;\n display: flex;\n align-items: center;\n position: relative;\n color: var(--copilot-kit-primary-color);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom: 1px solid var(--copilot-kit-separator-color);\n padding-left: 1.5rem;\n background-color: var(--copilot-kit-contrast-color);\n justify-content: space-between;\n z-index: 2;\n}\n\n.copilotKitSidebar .copilotKitHeader {\n border-radius: 0;\n}\n\n.copilotKitHeaderControls {\n display: flex;\n}\n\n.copilotKitHeaderCloseButton {\n background: none;\n border: none;\n}\n\n@media (min-width: 640px) {\n .copilotKitHeader {\n padding-left: 1.5rem;\n padding-right: 24px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n}\n\n.copilotKitHeader > button {\n border: 0;\n padding: 8px;\n position: absolute;\n top: 50%;\n right: 16px;\n transform: translateY(-50%);\n outline: none;\n color: var(--copilot-kit-muted-color);\n background-color: transparent;\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n width: 35px;\n height: 35px;\n}\n\n.copilotKitHeader > button:hover {\n color: color-mix(in srgb, var(--copilot-kit-muted-color) 80%, black);\n}\n\n.copilotKitHeader > button:focus {\n outline: none;\n}\n",".copilotKitInput {\n cursor: text;\n position: relative;\n background-color: var(--copilot-kit-input-background-color);\n border-radius: 20px;\n border: 1px solid var(--copilot-kit-separator-color);\n padding: 12px 14px;\n min-height: 75px;\n margin: 0 auto;\n width: 95%;\n}\n\n.copilotKitInputContainer {\n width: 100%;\n padding: 0;\n padding-bottom: 15px;\n background: var(--copilot-kit-background-color);\n border-bottom-left-radius: 0.75rem;\n border-bottom-right-radius: 0.75rem;\n}\n\n.copilotKitSidebar .copilotKitInputContainer {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.copilotKitInputControlButton {\n padding: 0;\n cursor: pointer;\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n transform: scale(1);\n color: rgba(0, 0, 0, 0.25);\n -webkit-appearance: button;\n appearance: button;\n background-color: transparent;\n background-image: none;\n text-transform: none;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n border: 0;\n margin: 0;\n text-indent: 0px;\n text-shadow: none;\n display: inline-block;\n text-align: center;\n width: 24px;\n height: 24px;\n}\n\n.copilotKitInputControlButton:not([disabled]) {\n color: var(--copilot-kit-primary-color);\n}\n\n.copilotKitInputControlButton:not([disabled]):hover {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitInputControlButton[disabled] {\n color: var(--copilot-kit-muted-color);\n cursor: default;\n}\n\n.copilotKitInputControls {\n display: flex;\n gap: 3px;\n}\n\n.copilotKitInput > textarea {\n flex: 1; /* Allow textarea to take up remaining space */\n outline: 2px solid transparent;\n outline-offset: 2px;\n resize: none;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n cursor: text;\n font-size: 0.875rem;\n line-height: 1.5rem;\n margin: 0;\n padding: 0;\n font-family: inherit;\n font-weight: inherit;\n color: var(--copilot-kit-secondary-contrast-color);\n border: 0px;\n background-color: transparent;\n width: 100%;\n}\n\n.copilotKitInput > textarea::placeholder {\n color: #808080;\n opacity: 1;\n}\n\n.copilotKitInputControlButton.copilotKitPushToTalkRecording {\n background-color: #ec0000;\n color: white;\n border-radius: 50%;\n animation: copilotKitPulseAnimation 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n/* Scrollbar styles */\n.copilotKitInput textarea::-webkit-scrollbar {\n width: 9px; /* Width of the entire scrollbar */\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-track {\n background: transparent; /* Color of the tracking area */\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-thumb {\n background-color: rgb(200 200 200); /* Color of the scroll thumb */\n border-radius: 10px; /* Roundness of the scroll thumb */\n border: 2px solid transparent; /* Creates padding around scroll thumb */\n background-clip: content-box;\n cursor: pointer;\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-thumb:hover {\n background-color: color-mix(in srgb, rgb(200 200 200) 80%, black); /* Darker color on hover */\n}\n\n.poweredByContainer {\n padding: 0;\n}\n\n.poweredBy {\n background: var(--copilot-kit-background-color) !important;\n visibility: visible !important;\n display: block !important;\n position: static !important;\n text-align: center !important;\n font-size: 12px !important;\n padding: 3px 0 !important;\n color: rgb(214, 214, 214) !important;\n margin: 0 !important;\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .poweredBy {\n color: rgb(69, 69, 69) !important;\n}\n\n",".copilotKitMessages {\n overflow-y: scroll;\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: var(--copilot-kit-background-color);\n justify-content: space-between;\n z-index: 1;\n}\n\n.copilotKitMessagesContainer {\n /*overflow-y: scroll;*/\n /*flex: 1;*/\n padding: 1rem 24px;\n display: flex;\n flex-direction: column;\n}\n\n.copilotKitMessagesFooter {\n display: flex;\n padding: 0;\n margin: 0 auto 8px auto;\n justify-content: flex-start;\n flex-direction: column;\n width: 90%;\n}\n\n.copilotKitMessages::-webkit-scrollbar {\n width: 6px;\n}\n\n.copilotKitMessages::-webkit-scrollbar-thumb {\n background-color: var(--copilot-kit-separator-color);\n border-radius: 10rem;\n border: 2px solid var(--copilot-kit-background-color);\n}\n\n.copilotKitMessages::-webkit-scrollbar-track-piece:start {\n background: transparent;\n}\n\n.copilotKitMessages::-webkit-scrollbar-track-piece:end {\n background: transparent;\n}\n\n.copilotKitMessage {\n border-radius: 15px;\n padding: 8px 12px;\n font-size: 1rem;\n line-height: 1.5;\n overflow-wrap: break-word;\n max-width: 80%;\n margin-bottom: 0.5rem;\n}\n\n.copilotKitMessage.copilotKitUserMessage {\n background: var(--copilot-kit-primary-color);\n color: var(--copilot-kit-contrast-color);\n margin-left: auto;\n white-space: pre-wrap;\n line-height: 1.75;\n font-size: 1rem;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage {\n background: transparent;\n margin-right: auto;\n padding-left: 0;\n position: relative;\n max-width: 100%;\n color: var(--copilot-kit-secondary-contrast-color);\n}\n\n.copilotKitMessage.copilotKitAssistantMessage .copilotKitMessageControls {\n position: absolute;\n left: 0;\n display: flex;\n gap: 1rem;\n opacity: 0;\n transition: opacity 0.2s ease;\n padding: 5px 0 0 0;\n}\n\n.copilotKitMessageControls.currentMessage {\n opacity: 1 !important;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage:hover .copilotKitMessageControls {\n opacity: 1;\n}\n\n/* Always show controls on mobile */\n@media (max-width: 768px) {\n .copilotKitMessage.copilotKitAssistantMessage .copilotKitMessageControls {\n opacity: 1;\n }\n}\n\n.copilotKitMessageControlButton {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n border-radius: 0.5rem;\n justify-content: center;\n color: var(--copilot-kit-primary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n padding: 0;\n z-index: 10;\n margin: 0;\n background: transparent;\n border: none;\n}\n\n.copilotKitMessageControlButton:hover {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitMessageControlButton:active {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitMessageControlButton svg {\n width: 1rem;\n height: 1rem;\n display: block;\n pointer-events: none;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage + .copilotKitMessage.copilotKitUserMessage {\n margin-top: 1.5rem;\n}\n\n.copilotKitCustomAssistantMessage {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n.copilotKitMessage .inProgressLabel {\n margin-left: 10px;\n opacity: 0.7;\n}\n\n@keyframes copilotKitSpinAnimation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.copilotKitSpinner {\n display: inline-block;\n width: 16px;\n height: 16px;\n border: 2px solid var(--copilot-kit-contrast-color);\n border-radius: 50%;\n border-top-color: var(--copilot-kit-primary-color);\n animation: copilotKitSpinAnimation 1s linear infinite;\n margin-left: 8px;\n}\n\n@keyframes copilotKitActivityDotAnimation {\n 0%, 80%, 100% {\n transform: scale(0.5);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.copilotKitActivityDot {\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--copilot-kit-primary-color);\n animation: copilotKitActivityDotAnimation 1.4s infinite ease-in-out both;\n}\n",".copilotKitWindow {\n position: fixed;\n inset: 0px;\n transform-origin: bottom;\n border-color: rgb(229 231 235);\n background-color: var(--copilot-kit-background-color);\n border-radius: 0.75rem;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\n flex-direction: column;\n transition:\n opacity 100ms ease-out,\n transform 200ms ease-out;\n opacity: 0;\n transform: scale(0.95) translateY(20px);\n display: flex;\n pointer-events: none;\n}\n\n.copilotKitSidebar .copilotKitWindow {\n border-radius: 0;\n opacity: 1;\n transform: translateX(100%);\n}\n\n.copilotKitWindow.open {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n}\n\n.copilotKitSidebar .copilotKitWindow.open {\n transform: translateX(0);\n}\n\n@media (min-width: 640px) {\n .copilotKitWindow {\n transform-origin: bottom right;\n bottom: 5rem;\n right: 1rem;\n top: auto;\n left: auto;\n border-width: 0px;\n margin-bottom: 1rem;\n width: 24rem;\n height: 600px;\n min-height: 200px;\n max-height: calc(100% - 6rem);\n }\n\n .copilotKitSidebar .copilotKitWindow {\n bottom: 0;\n right: 0;\n top: auto;\n left: auto;\n width: 28rem;\n min-height: 100%;\n margin-bottom: 0;\n max-height: none;\n }\n}\n",".copilotKitActivityDot1 {\n animation: copilotKitActivityDotsAnimation 1.05s infinite;\n}\n.copilotKitActivityDot2 {\n animation-delay: 0.1s;\n}\n.copilotKitActivityDot3 {\n animation-delay: 0.2s;\n}\n@keyframes copilotKitActivityDotsAnimation {\n 0%,\n 57.14% {\n animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\n transform: translate(0);\n }\n 28.57% {\n animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\n transform: translateY(-6px);\n }\n 100% {\n transform: translate(0);\n }\n}\n\n@keyframes copilotKitSpinAnimation {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes copilotKitPulseAnimation {\n 50% {\n opacity: 0.5;\n }\n}\n","h1.copilotKitMarkdownElement,\nh2.copilotKitMarkdownElement,\nh3.copilotKitMarkdownElement,\nh4.copilotKitMarkdownElement,\nh5.copilotKitMarkdownElement,\nh6.copilotKitMarkdownElement {\n font-weight: bold;\n line-height: 1.2;\n}\n\nh1.copilotKitMarkdownElement:not(:last-child),\nh2.copilotKitMarkdownElement:not(:last-child),\nh3.copilotKitMarkdownElement:not(:last-child),\nh4.copilotKitMarkdownElement:not(:last-child),\nh5.copilotKitMarkdownElement:not(:last-child),\nh6.copilotKitMarkdownElement:not(:last-child) {\n margin-bottom: 1rem;\n}\n\nh1.copilotKitMarkdownElement {\n font-size: 1.5em;\n}\n\nh2.copilotKitMarkdownElement {\n font-size: 1.25em;\n font-weight: 600;\n}\n\nh3.copilotKitMarkdownElement {\n font-size: 1.1em;\n}\n\nh4.copilotKitMarkdownElement {\n font-size: 1em;\n}\n\nh5.copilotKitMarkdownElement {\n font-size: 0.9em;\n}\n\nh6.copilotKitMarkdownElement {\n font-size: 0.8em;\n}\n\na.copilotKitMarkdownElement {\n color: blue;\n text-decoration: underline;\n}\n\np.copilotKitMarkdownElement {\n padding: 0px;\n margin: 0px;\n line-height: 1.75;\n font-size: 1rem;\n}\n\np.copilotKitMarkdownElement:not(:last-child),\npre.copilotKitMarkdownElement:not(:last-child),\nol.copilotKitMarkdownElement:not(:last-child),\nul.copilotKitMarkdownElement:not(:last-child),\nblockquote.copilotKitMarkdownElement:not(:last-child) {\n margin-bottom: 1.25em;\n}\n\nblockquote.copilotKitMarkdownElement {\n border-color: rgb(142, 142, 160);\n border-left-width: 2px;\n border-left-style: solid;\n line-height: 1.2;\n padding-left: 10px;\n}\n\nblockquote.copilotKitMarkdownElement p {\n padding: 0.7em 0;\n}\n\nul.copilotKitMarkdownElement {\n list-style-type: disc;\n padding-left: 20px;\n overflow: visible;\n}\n\nli.copilotKitMarkdownElement {\n list-style-type: inherit;\n list-style-position: outside;\n margin-left: 0;\n padding-left: 0;\n position: relative;\n overflow: visible;\n}\n\n.copilotKitCodeBlock {\n position: relative;\n width: 100%;\n background-color: rgb(9 9 11);\n border-radius: 0.375rem;\n}\n\n.copilotKitCodeBlockToolbar {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n background-color: rgb(39 39 42);\n padding-left: 1rem;\n padding-top: 0.09rem;\n padding-bottom: 0.09rem;\n color: rgb(228, 228, 228);\n border-top-left-radius: 0.375rem;\n border-top-right-radius: 0.375rem;\n font-family: sans-serif;\n}\n\n.copilotKitCodeBlockToolbarLanguage {\n font-size: 0.75rem;\n line-height: 1rem;\n text-transform: lowercase;\n}\n\n.copilotKitCodeBlockToolbarButtons {\n display: flex;\n align-items: center;\n margin-right: 0.25rem;\n margin-left: 0.25rem;\n}\n\n.copilotKitCodeBlockToolbarButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n height: 2.5rem;\n padding: 3px;\n margin: 2px;\n}\n\n.copilotKitCodeBlockToolbarButton:hover {\n background-color: rgb(55, 55, 58);\n}\n",".copilotKitMessages footer .suggestions {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.copilotKitMessages footer h6 {\n font-weight: 500;\n font-size: 0.7rem;\n margin-bottom: 8px;\n}\n\n.copilotKitMessages footer .suggestions .suggestion {\n padding: 6px 10px;\n font-size: 0.7rem;\n border-radius: 15px;\n border: 1px solid var(--copilot-kit-muted-color);\n color: var(--copilot-kit-secondary-contrast-color);\n box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);\n}\n\n.copilotKitMessages footer .suggestions .suggestion.loading {\n padding: 0;\n font-size: 0.7rem;\n border: none;\n color: var(--copilot-kit-secondary-contrast-color);\n}\n\n.copilotKitMessages footer .suggestions button {\n transition: transform 0.3s ease;\n}\n\n.copilotKitMessages footer .suggestions button:not(:disabled):hover {\n transform: scale(1.03);\n}\n\n.copilotKitMessages footer .suggestions button:disabled {\n cursor: wait;\n}\n\n.copilotKitMessages footer .suggestions button svg {\n margin-right: 6px;\n}\n",".copilotKitChat {\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n background: var(--copilot-kit-background-color);\n font-family:\n ui-sans-serif,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n \"Segoe UI\",\n Roboto,\n \"Helvetica Neue\",\n Arial,\n \"Noto Sans\",\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n display: flex;\n flex-direction: column;\n /* height: 100%; */\n}\n\n.copilotKitChat svg {\n display: inline-block;\n vertical-align: middle;\n}\n\n.copilotKitChat .copilotKitMessages {\n flex-grow: 1;\n}\n",".copilotKitDevConsole {\n display: flex;\n align-items: center;\n gap: 5px;\n margin: 0 15px;\n}\n\n.copilotKitDevConsole.copilotKitDevConsoleWarnOutdated {\n background-color: var(--copilot-kit-dev-console-bg);\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo {\n display: flex;\n position: absolute;\n bottom: -25px;\n padding: 3px 5px;\n left: 0;\n width: 100%;\n justify-content: center;\n gap: 10px;\n font-size: 0.8rem;\n align-items: center;\n background: #ebb305;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo button {\n font-size: 11px;\n font-weight: normal;\n font-family: monospace;\n background-color: var(--copilot-kit-dev-console-bg);\n border: 1px solid #979797;\n padding: 1px 12px;\n padding-left: 5px;\n border-radius: 4px;\n display: inline-block;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n width: 260px;\n text-overflow: ellipsis;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo aside {\n display: inline;\n font-weight: normal;\n color: #7f7a7a;\n margin-left: 5px;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo svg {\n margin-left: 3px;\n margin-top: -3px;\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton {\n font-size: 11px;\n font-weight: bold;\n display: flex;\n padding: 0 10px;\n height: 30px;\n background-color: transparent;\n border: 1px solid var(--copilot-kit-muted-color);\n border-radius: 20px;\n align-items: center;\n justify-content: center;\n outline: none;\n}\n\n.copilotKitDebugMenuTriggerButton.compact {\n width: 35px;\n color: var(--copilot-kit-dev-console-bg);\n justify-content: center;\n outline: none;\n font-size: 8px;\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 85%, black);\n color: var(--copilot-kit-dev-console-text);\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .copilotKitDevConsole .copilotKitDebugMenuTriggerButton {\n color: white;\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .copilotKitDevConsole .copilotKitDebugMenuTriggerButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 20%, black);\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton > svg {\n margin-left: 10px;\n}\n\n.copilotKitDebugMenu {\n --copilot-kit-dev-console-border: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 80%, black);\n margin-top: 2px;\n border-radius: 6px;\n background-color: var(--copilot-kit-dev-console-bg);\n border: 1px solid var(--copilot-kit-dev-console-border);\n padding: 0.25rem;\n outline: none;\n font-size: 13px;\n}\n\n.copilotKitDebugMenuItem {\n padding-top: 3px;\n padding-bottom: 3px;\n padding-left: 10px;\n padding-right: 10px;\n display: block;\n width: 100%;\n text-align: left;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--copilot-kit-dev-console-text);\n}\n\n.copilotKitDebugMenuItem:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 95%, black);\n border-radius: 4px;\n}\n\n.copilotKitDebugMenu[data-closed] {\n transform: scale(0.95); /* data-[closed]:scale-95 */\n opacity: 0; /* data-[closed]:opacity-0 */\n}\n\n.copilotKitDebugMenu hr {\n height: 1px;\n border: none; /* Remove 3D look */\n background-color: var(--copilot-kit-dev-console-border);\n margin: 0.25rem;\n}\n\n.copilotKitHelpModal {\n background-color: var(--copilot-kit-dev-console-bg);\n color: var(--copilot-kit-dev-console-text);\n}\n\n.copilotKitHelpItemButton {\n display: block;\n text-align: center;\n width: 100%;\n padding: 4px 6px;\n border-radius: 15px;\n font-size: 0.8rem;\n border: 1px solid var(--copilot-kit-muted-color);\n color: var(--copilot-kit-dev-console-text);\n box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);\n background-color: var(--copilot-kit-dev-console-bg);\n}\n.copilotKitHelpItemButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 95%, black);\n}\n\n","/* Default styles for the ResponseRenderer component */\n\n.copilotkit-response {\n text-align: right;\n}\n\n.copilotkit-response-content {\n margin-bottom: 0.5rem;\n font-size: 0.875rem;\n color: #4b5563;\n background-color: #f9fafb;\n padding: 0.5rem;\n border-radius: 0.25rem;\n text-align: left;\n}\n\n.copilotkit-response-actions {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.copilotkit-response-label {\n font-size: 0.75rem;\n color: #6b7280;\n margin-bottom: 0.25rem;\n display: flex;\n align-items: center;\n}\n\n.copilotkit-toggle-button {\n margin-right: 0.25rem;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copilotkit-icon {\n height: 0.75rem;\n width: 0.75rem;\n color: #6b7280;\n}\n\n.copilotkit-response-buttons {\n display: flex;\n gap: 0.5rem;\n}\n\n.copilotkit-response-button {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n background-color: #f3f4f6;\n color: #4b5563;\n border-radius: 0.25rem;\n border: none;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.copilotkit-response-button:hover {\n background-color: #e5e7eb;\n}\n\n.copilotkit-response-button:focus {\n outline: none;\n}\n\n.copilotkit-response-completed-feedback {\n background-color: #f9fafb;\n padding: 0.5rem;\n border-radius: 0.375rem;\n display: inline-flex;\n align-items: center;\n}\n\n.copilotkit-response-completed-feedback span {\n color: #4b5563;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n/* DefaultStateRenderer styles */\n\n.copilotkit-state {\n font-size: 0.875rem;\n margin-bottom: 1rem;\n}\n\n.copilotkit-state-header {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n user-select: none;\n margin-bottom: 0.25rem;\n}\n\n.copilotkit-state-label {\n color: #4b5563;\n font-size: 0.875rem;\n}\n\n.copilotkit-state-label-loading {\n display: inline-flex;\n align-items: center;\n animation: pulse 1.5s infinite;\n}\n\n.copilotkit-state-content {\n padding-left: 1rem;\n max-height: 250px;\n overflow: auto;\n padding-top: 0.375rem;\n border-left: 1px solid #e5e7eb;\n margin-left: 0.375rem;\n}\n\n.copilotkit-state-item {\n padding: 0.25rem 0;\n margin-bottom: 0.25rem;\n transition: all 0.3s ease;\n}\n\n.copilotkit-state-item-newest {\n animation: appear 0.5s ease-out;\n}\n\n.copilotkit-state-item-header {\n font-size: 0.75rem;\n opacity: 0.7;\n}\n\n.copilotkit-state-item-thought {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n opacity: 0.8;\n}\n\n.copilotkit-state-item-result {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n}\n\n.copilotkit-state-item-description {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n opacity: 0.8;\n}\n\n.copilotkit-state-empty {\n padding: 0.25rem 0;\n font-size: 0.75rem;\n opacity: 0.7;\n}\n\n.copilotkit-skeleton {\n padding: 0.125rem 0;\n animation: pulse 1.5s infinite;\n}\n\n.copilotkit-skeleton-header {\n display: flex;\n justify-content: space-between;\n}\n\n.copilotkit-skeleton-title {\n height: 0.625rem;\n width: 4rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-skeleton-subtitle {\n height: 0.5rem;\n width: 2rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-skeleton-content {\n margin-top: 0.125rem;\n height: 1.5rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-loader {\n animation: spin 1.5s linear infinite;\n}\n\n.copilotkit-spinner {\n animation: spin 1.5s linear infinite;\n}\n\n/* Animations */\n@keyframes appear {\n 0% {\n opacity: 0;\n transform: translateY(8px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 0.4;\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n /* DefaultResponseRenderer dark styles */\n .copilotkit-response-content {\n color: #9ca3af;\n background-color: #1f2937;\n }\n\n .copilotkit-response-label {\n color: #9ca3af;\n }\n\n .copilotkit-icon {\n color: #9ca3af;\n }\n\n .copilotkit-response-button {\n background-color: #1f2937;\n color: #d1d5db;\n }\n\n .copilotkit-response-button:hover {\n background-color: #374151;\n }\n\n .copilotkit-response-completed-feedback {\n background-color: #1f2937;\n }\n\n .copilotkit-response-completed-feedback span {\n color: #e5e7eb;\n }\n\n /* DefaultStateRenderer dark styles */\n .copilotkit-state-label {\n color: #d1d5db;\n }\n\n .copilotkit-state-content {\n border-left-color: #374151;\n }\n\n .copilotkit-skeleton-title,\n .copilotkit-skeleton-subtitle,\n .copilotkit-skeleton-content {\n background-color: #374151;\n }\n}\n"],"mappings":";AAMA;AAGE;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAIA;AAEA;AAEA;AAEA;AACA;AAAA;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOE;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AAEA;AAEA;AAAA;;;AClEF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACpBF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACE;AAAA;AAAA;;;AC/BJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACjEF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACE;AACA;AACA;AACA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;;;AC/DF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;;;ACrJF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAGE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AACE;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AAAA;AAEI;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;;;ACvLF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACzDJ;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AAAA;AAGI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;;;AChCJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAKE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;;;AC5IF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;;;ACzCF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AACA;AACA;AACA;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AAAA;;;ACrCF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AAAA;;;ACjKF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAKF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AAAA;AAEI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAIJ;AAAA;AAGI;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;AAGA;AAAA;AAAA;AAKJ;AAEE;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAGE;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../src/css/colors.css","../src/css/popup.css","../src/css/sidebar.css","../src/css/button.css","../src/css/header.css","../src/css/input.css","../src/css/messages.css","../src/css/window.css","../src/css/animations.css","../src/css/markdown.css","../src/css/suggestions.css","../src/css/panel.css","../src/css/console.css","../src/css/crew.css"],"sourcesContent":["/* IMPORTANT NOTE:\nTHE DARK AND LIGHT COLORS HERE ARE DUPLICATED BECAUSE NO REUSE METHOD POSSIBLE.\nWHEN MAKING ANY CHANGE, MAKE SURE TO INCLUDE IT IN ALL DUPLICATIONS.\n*/\n\n/* BASE LIGHT THEME */\n:root {\n /* Semantic color tokens */\n /* Main brand/action color - used for buttons, interactive elements */\n --copilot-kit-primary-color: rgb(28, 28, 28);\n /* Color that contrasts with primary - used for text on primary elements */\n --copilot-kit-contrast-color: rgb(255, 255, 255);\n /* Main page/container background color */\n --copilot-kit-background-color: rgb(255 255 255);\n /* Input box background color */\n --copilot-kit-input-background-color: #fbfbfb;\n /* Secondary background - used for cards, panels, elevated surfaces */\n --copilot-kit-secondary-color: rgb(255 255 255);\n /* Primary text color for main content */\n --copilot-kit-secondary-contrast-color: rgb(28, 28, 28);\n /* Border color for dividers and containers */\n --copilot-kit-separator-color: rgb(200 200 200);\n /* Muted color for disabled/inactive states */\n --copilot-kit-muted-color: rgb(200 200 200);\n\n /* Error colors */\n --copilot-kit-error-background: #fef2f2;\n --copilot-kit-error-border: #fecaca;\n --copilot-kit-error-text: #dc2626;\n\n /* Shadow tokens */\n /* Small shadow for subtle elevation */\n --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n /* Medium shadow for cards */\n --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n /* Large shadow for modals */\n --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n\n --copilot-kit-dev-console-bg: #f8f8fa;\n --copilot-kit-dev-console-text: black;\n}\n\n/* BASE DARK THEME */\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] :root {\n /* Main brand/action color - used for buttons, interactive elements */\n --copilot-kit-primary-color: rgb(255, 255, 255);\n /* Color that contrasts with primary - used for text on primary elements */\n --copilot-kit-contrast-color: rgb(28, 28, 28);\n /* Main page/container background color */\n --copilot-kit-background-color: rgb(17, 17, 17);\n /* Input box background color */\n --copilot-kit-input-background-color: #2c2c2c;\n /* Secondary background - used for cards, panels, elevated surfaces */\n --copilot-kit-secondary-color: rgb(28, 28, 28);\n /* Primary text color for main content */\n --copilot-kit-secondary-contrast-color: rgb(255, 255, 255);\n /* Border color for dividers and containers */\n --copilot-kit-separator-color: rgb(45, 45, 45);\n /* Muted color for disabled/inactive states */\n --copilot-kit-muted-color: rgb(45, 45, 45);\n\n /* Error colors */\n --copilot-kit-error-background: #7f1d1d;\n --copilot-kit-error-border: #dc2626;\n --copilot-kit-error-text: #fca5a5;\n\n /* Small shadow for subtle elevation */\n --copilot-kit-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);\n /* Medium shadow for cards */\n --copilot-kit-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n /* Large shadow for modals */\n --copilot-kit-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);\n}\n",".copilotKitPopup {\n position: fixed;\n bottom: 1rem;\n right: 1rem;\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n}\n\n.copilotKitPopup svg {\n display: inline-block;\n vertical-align: middle;\n}\n",".copilotKitSidebar {\n position: fixed;\n bottom: 1rem;\n right: 1rem;\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n}\n\n.copilotKitSidebar svg {\n display: inline-block;\n vertical-align: middle;\n}\n\n.copilotKitSidebarContentWrapper {\n overflow: visible;\n margin-right: 0px;\n transition: margin-right 0.3s ease;\n}\n\n@media (min-width: 640px) {\n .copilotKitSidebarContentWrapper.sidebarExpanded {\n margin-right: 28rem;\n }\n}\n",".copilotKitButton {\n width: 3.5rem;\n height: 3.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n border: 1px solid var(--copilot-kit-primary-color);\n outline: none;\n position: relative;\n transform: scale(1);\n transition: all 0.2s ease;\n background-color: var(--copilot-kit-primary-color);\n color: var(--copilot-kit-contrast-color);\n cursor: pointer;\n box-shadow: var(--copilot-kit-shadow-sm);\n}\n\n.copilotKitButton:hover {\n transform: scale(1.05);\n box-shadow: var(--copilot-kit-shadow-md);\n}\n\n.copilotKitButton:active {\n transform: scale(0.95);\n box-shadow: var(--copilot-kit-shadow-sm);\n}\n\n.copilotKitButtonIcon {\n transition:\n opacity 100ms,\n transform 300ms;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copilotKitButtonIcon svg {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n/* State when the chat is open */\n.copilotKitButton.open .copilotKitButtonIconOpen {\n transform: translate(-50%, -50%) scale(0) rotate(90deg);\n opacity: 0;\n}\n\n.copilotKitButton.open .copilotKitButtonIconClose {\n transform: translate(-50%, -50%) scale(1) rotate(0deg);\n opacity: 1;\n}\n\n/* State when the chat is closed */\n.copilotKitButton:not(.open) .copilotKitButtonIconOpen {\n transform: translate(-50%, -50%) scale(1) rotate(0deg);\n opacity: 1;\n}\n\n.copilotKitButton:not(.open) .copilotKitButtonIconClose {\n transform: translate(-50%, -50%) scale(0) rotate(-90deg);\n opacity: 0;\n}\n",".copilotKitHeader {\n height: 56px;\n font-weight: 500;\n display: flex;\n align-items: center;\n position: relative;\n color: var(--copilot-kit-primary-color);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom: 1px solid var(--copilot-kit-separator-color);\n padding-left: 1.5rem;\n background-color: var(--copilot-kit-contrast-color);\n justify-content: space-between;\n z-index: 2;\n}\n\n.copilotKitSidebar .copilotKitHeader {\n border-radius: 0;\n}\n\n.copilotKitHeaderControls {\n display: flex;\n}\n\n.copilotKitHeaderCloseButton {\n background: none;\n border: none;\n}\n\n@media (min-width: 640px) {\n .copilotKitHeader {\n padding-left: 1.5rem;\n padding-right: 24px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n}\n\n.copilotKitHeader > button {\n border: 0;\n padding: 8px;\n position: absolute;\n top: 50%;\n right: 16px;\n transform: translateY(-50%);\n outline: none;\n color: var(--copilot-kit-muted-color);\n background-color: transparent;\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n width: 35px;\n height: 35px;\n}\n\n.copilotKitHeader > button:hover {\n color: color-mix(in srgb, var(--copilot-kit-muted-color) 80%, black);\n}\n\n.copilotKitHeader > button:focus {\n outline: none;\n}\n",".copilotKitInput {\n cursor: text;\n position: relative;\n background-color: var(--copilot-kit-input-background-color);\n border-radius: 20px;\n border: 1px solid var(--copilot-kit-separator-color);\n padding: 12px 14px;\n min-height: 75px;\n margin: 0 auto;\n width: 95%;\n}\n\n.copilotKitInputContainer {\n width: 100%;\n padding: 0;\n padding-bottom: 15px;\n background: var(--copilot-kit-background-color);\n border-bottom-left-radius: 0.75rem;\n border-bottom-right-radius: 0.75rem;\n}\n\n.copilotKitSidebar .copilotKitInputContainer {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.copilotKitInputControlButton {\n padding: 0;\n cursor: pointer;\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n transform: scale(1);\n color: rgba(0, 0, 0, 0.25);\n -webkit-appearance: button;\n appearance: button;\n background-color: transparent;\n background-image: none;\n text-transform: none;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n border: 0;\n margin: 0;\n text-indent: 0px;\n text-shadow: none;\n display: inline-block;\n text-align: center;\n width: 24px;\n height: 24px;\n}\n\n.copilotKitInputControlButton:not([disabled]) {\n color: var(--copilot-kit-primary-color);\n}\n\n.copilotKitInputControlButton:not([disabled]):hover {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitInputControlButton[disabled] {\n color: var(--copilot-kit-muted-color);\n cursor: default;\n}\n\n.copilotKitInputControls {\n display: flex;\n gap: 3px;\n}\n\n.copilotKitInput > textarea {\n flex: 1; /* Allow textarea to take up remaining space */\n outline: 2px solid transparent;\n outline-offset: 2px;\n resize: none;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n cursor: text;\n font-size: 0.875rem;\n line-height: 1.5rem;\n margin: 0;\n padding: 0;\n font-family: inherit;\n font-weight: inherit;\n color: var(--copilot-kit-secondary-contrast-color);\n border: 0px;\n background-color: transparent;\n width: 100%;\n}\n\n.copilotKitInput > textarea::placeholder {\n color: #808080;\n opacity: 1;\n}\n\n.copilotKitInputControlButton.copilotKitPushToTalkRecording {\n background-color: #ec0000;\n color: white;\n border-radius: 50%;\n animation: copilotKitPulseAnimation 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n/* Scrollbar styles */\n.copilotKitInput textarea::-webkit-scrollbar {\n width: 9px; /* Width of the entire scrollbar */\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-track {\n background: transparent; /* Color of the tracking area */\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-thumb {\n background-color: rgb(200 200 200); /* Color of the scroll thumb */\n border-radius: 10px; /* Roundness of the scroll thumb */\n border: 2px solid transparent; /* Creates padding around scroll thumb */\n background-clip: content-box;\n cursor: pointer;\n}\n\n.copilotKitInput textarea::-webkit-scrollbar-thumb:hover {\n background-color: color-mix(in srgb, rgb(200 200 200) 80%, black); /* Darker color on hover */\n}\n\n.poweredByContainer {\n padding: 0;\n}\n\n.poweredBy {\n background: var(--copilot-kit-background-color) !important;\n visibility: visible !important;\n display: block !important;\n position: static !important;\n text-align: center !important;\n font-size: 12px !important;\n padding: 3px 0 !important;\n color: rgb(214, 214, 214) !important;\n margin: 0 !important;\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .poweredBy {\n color: rgb(69, 69, 69) !important;\n}\n\n",".copilotKitMessages {\n overflow-y: scroll;\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: var(--copilot-kit-background-color);\n justify-content: space-between;\n z-index: 1;\n}\n\n.copilotKitMessagesContainer {\n padding: 1rem 24px;\n display: flex;\n flex-direction: column;\n}\n\n.copilotKitMessagesFooter {\n display: flex;\n padding: 0.5rem 0.75rem;\n margin: 8px auto 0 auto;\n justify-content: flex-start;\n flex-direction: column;\n width: 97%;\n}\n\n.copilotKitMessages::-webkit-scrollbar {\n width: 6px;\n}\n\n.copilotKitMessages::-webkit-scrollbar-thumb {\n background-color: var(--copilot-kit-separator-color);\n border-radius: 10rem;\n border: 2px solid var(--copilot-kit-background-color);\n}\n\n.copilotKitMessages::-webkit-scrollbar-track-piece:start {\n background: transparent;\n}\n\n.copilotKitMessages::-webkit-scrollbar-track-piece:end {\n background: transparent;\n}\n\n.copilotKitMessage {\n border-radius: 15px;\n padding: 8px 12px;\n font-size: 1rem;\n line-height: 1.5;\n overflow-wrap: break-word;\n max-width: 80%;\n margin-bottom: 0.5rem;\n}\n\n.copilotKitMessage.copilotKitUserMessage {\n background: var(--copilot-kit-primary-color);\n color: var(--copilot-kit-contrast-color);\n margin-left: auto;\n white-space: pre-wrap;\n line-height: 1.75;\n font-size: 1rem;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage {\n background: transparent;\n margin-right: auto;\n padding-left: 0;\n position: relative;\n max-width: 100%;\n color: var(--copilot-kit-secondary-contrast-color);\n}\n\n.copilotKitMessage.copilotKitAssistantMessage .copilotKitMessageControls {\n position: absolute;\n left: 0;\n display: flex;\n gap: 1rem;\n opacity: 0;\n transition: opacity 0.2s ease;\n padding: 5px 0 0 0;\n}\n\n.copilotKitMessageControls.currentMessage {\n opacity: 1 !important;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage:hover .copilotKitMessageControls {\n opacity: 1;\n}\n\n/* Always show controls on mobile */\n@media (max-width: 768px) {\n .copilotKitMessage.copilotKitAssistantMessage .copilotKitMessageControls {\n opacity: 1;\n }\n}\n\n.copilotKitMessageControlButton {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n border-radius: 0.5rem;\n justify-content: center;\n color: var(--copilot-kit-primary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n padding: 0;\n z-index: 10;\n margin: 0;\n background: transparent;\n border: none;\n}\n\n.copilotKitMessageControlButton:hover {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitMessageControlButton:active {\n color: color-mix(in srgb, var(--copilot-kit-primary-color) 80%, black);\n transform: scale(1.05);\n}\n\n.copilotKitMessageControlButton svg {\n width: 1rem;\n height: 1rem;\n display: block;\n pointer-events: none;\n}\n\n.copilotKitMessage.copilotKitAssistantMessage + .copilotKitMessage.copilotKitUserMessage {\n margin-top: 1.5rem;\n}\n\n.copilotKitCustomAssistantMessage {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n.copilotKitMessage .inProgressLabel {\n margin-left: 10px;\n opacity: 0.7;\n}\n\n@keyframes copilotKitSpinAnimation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.copilotKitSpinner {\n display: inline-block;\n width: 16px;\n height: 16px;\n border: 2px solid var(--copilot-kit-contrast-color);\n border-radius: 50%;\n border-top-color: var(--copilot-kit-primary-color);\n animation: copilotKitSpinAnimation 1s linear infinite;\n margin-left: 8px;\n}\n\n@keyframes copilotKitActivityDotAnimation {\n 0%, 80%, 100% {\n transform: scale(0.5);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.copilotKitActivityDot {\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--copilot-kit-primary-color);\n animation: copilotKitActivityDotAnimation 1.4s infinite ease-in-out both;\n}\n\n/* Image Rendering Styles */\n.copilotKitImageRendering {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.copilotKitImageRenderingImage {\n max-width: 100%;\n height: auto;\n border-radius: 8px;\n box-shadow: var(--copilot-kit-shadow-sm);\n}\n\n.copilotKitImageRenderingContent {\n margin-top: 8px;\n padding: 0 16px;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--copilot-kit-secondary-contrast-color);\n}\n\n/* Image Error State Styles */\n.copilotKitImageRenderingError {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n border: 1px solid var(--copilot-kit-separator-color);\n border-radius: 8px;\n background-color: var(--copilot-kit-input-background-color);\n}\n\n.copilotKitImageRenderingErrorMessage {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background-color: var(--copilot-kit-error-background);\n border: 1px solid var(--copilot-kit-error-border);\n border-radius: 6px;\n color: var(--copilot-kit-error-text);\n font-size: 0.875rem;\n font-weight: 500;\n}\n\n.copilotKitImageRenderingErrorMessage::before {\n content: \"⚠️\";\n font-size: 1rem;\n}",".copilotKitWindow {\n position: fixed;\n inset: 0px;\n transform-origin: bottom;\n border-color: rgb(229 231 235);\n background-color: var(--copilot-kit-background-color);\n border-radius: 0.75rem;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\n flex-direction: column;\n transition:\n opacity 100ms ease-out,\n transform 200ms ease-out;\n opacity: 0;\n transform: scale(0.95) translateY(20px);\n display: flex;\n pointer-events: none;\n}\n\n.copilotKitSidebar .copilotKitWindow {\n border-radius: 0;\n opacity: 1;\n transform: translateX(100%);\n}\n\n.copilotKitWindow.open {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n}\n\n.copilotKitSidebar .copilotKitWindow.open {\n transform: translateX(0);\n}\n\n@media (min-width: 640px) {\n .copilotKitWindow {\n transform-origin: bottom right;\n bottom: 5rem;\n right: 1rem;\n top: auto;\n left: auto;\n border-width: 0px;\n margin-bottom: 1rem;\n width: 24rem;\n height: 600px;\n min-height: 200px;\n max-height: calc(100% - 6rem);\n }\n\n .copilotKitSidebar .copilotKitWindow {\n bottom: 0;\n right: 0;\n top: auto;\n left: auto;\n width: 28rem;\n min-height: 100%;\n margin-bottom: 0;\n max-height: none;\n }\n}\n",".copilotKitActivityDot1 {\n animation: copilotKitActivityDotsAnimation 1.05s infinite;\n}\n.copilotKitActivityDot2 {\n animation-delay: 0.1s;\n}\n.copilotKitActivityDot3 {\n animation-delay: 0.2s;\n}\n@keyframes copilotKitActivityDotsAnimation {\n 0%,\n 57.14% {\n animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\n transform: translate(0);\n }\n 28.57% {\n animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\n transform: translateY(-6px);\n }\n 100% {\n transform: translate(0);\n }\n}\n\n@keyframes copilotKitSpinAnimation {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes copilotKitPulseAnimation {\n 50% {\n opacity: 0.5;\n }\n}\n","h1.copilotKitMarkdownElement,\nh2.copilotKitMarkdownElement,\nh3.copilotKitMarkdownElement,\nh4.copilotKitMarkdownElement,\nh5.copilotKitMarkdownElement,\nh6.copilotKitMarkdownElement {\n font-weight: bold;\n line-height: 1.2;\n}\n\nh1.copilotKitMarkdownElement:not(:last-child),\nh2.copilotKitMarkdownElement:not(:last-child),\nh3.copilotKitMarkdownElement:not(:last-child),\nh4.copilotKitMarkdownElement:not(:last-child),\nh5.copilotKitMarkdownElement:not(:last-child),\nh6.copilotKitMarkdownElement:not(:last-child) {\n margin-bottom: 1rem;\n}\n\nh1.copilotKitMarkdownElement {\n font-size: 1.5em;\n}\n\nh2.copilotKitMarkdownElement {\n font-size: 1.25em;\n font-weight: 600;\n}\n\nh3.copilotKitMarkdownElement {\n font-size: 1.1em;\n}\n\nh4.copilotKitMarkdownElement {\n font-size: 1em;\n}\n\nh5.copilotKitMarkdownElement {\n font-size: 0.9em;\n}\n\nh6.copilotKitMarkdownElement {\n font-size: 0.8em;\n}\n\na.copilotKitMarkdownElement {\n color: blue;\n text-decoration: underline;\n}\n\np.copilotKitMarkdownElement {\n padding: 0px;\n margin: 0px;\n line-height: 1.75;\n font-size: 1rem;\n}\n\np.copilotKitMarkdownElement:not(:last-child),\npre.copilotKitMarkdownElement:not(:last-child),\nol.copilotKitMarkdownElement:not(:last-child),\nul.copilotKitMarkdownElement:not(:last-child),\nblockquote.copilotKitMarkdownElement:not(:last-child) {\n margin-bottom: 1.25em;\n}\n\nblockquote.copilotKitMarkdownElement {\n border-color: rgb(142, 142, 160);\n border-left-width: 2px;\n border-left-style: solid;\n line-height: 1.2;\n padding-left: 10px;\n}\n\nblockquote.copilotKitMarkdownElement p {\n padding: 0.7em 0;\n}\n\nul.copilotKitMarkdownElement {\n list-style-type: disc;\n padding-left: 20px;\n overflow: visible;\n}\n\nli.copilotKitMarkdownElement {\n list-style-type: inherit;\n list-style-position: outside;\n margin-left: 0;\n padding-left: 0;\n position: relative;\n overflow: visible;\n}\n\n.copilotKitCodeBlock {\n position: relative;\n width: 100%;\n background-color: rgb(9 9 11);\n border-radius: 0.375rem;\n}\n\n.copilotKitCodeBlockToolbar {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n background-color: rgb(39 39 42);\n padding-left: 1rem;\n padding-top: 0.09rem;\n padding-bottom: 0.09rem;\n color: rgb(228, 228, 228);\n border-top-left-radius: 0.375rem;\n border-top-right-radius: 0.375rem;\n font-family: sans-serif;\n}\n\n.copilotKitCodeBlockToolbarLanguage {\n font-size: 0.75rem;\n line-height: 1rem;\n text-transform: lowercase;\n}\n\n.copilotKitCodeBlockToolbarButtons {\n display: flex;\n align-items: center;\n margin-right: 0.25rem;\n margin-left: 0.25rem;\n}\n\n.copilotKitCodeBlockToolbarButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n height: 2.5rem;\n padding: 3px;\n margin: 2px;\n}\n\n.copilotKitCodeBlockToolbarButton:hover {\n background-color: rgb(55, 55, 58);\n}\n\n.copilotKitInlineCode {\n background-color: var(--copilot-kit-input-background-color);\n border: 1px solid var(--copilot-kit-separator-color);\n border-radius: 0.375rem;\n padding: 0.05rem 0.4rem;\n font-size: 15px;\n}",".copilotKitMessages footer .suggestions {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.copilotKitMessages footer h6 {\n font-weight: 500;\n font-size: 0.7rem;\n margin-bottom: 8px;\n}\n\n.copilotKitMessages footer .suggestions .suggestion {\n padding: 6px 10px;\n font-size: 0.7rem;\n border-radius: 15px;\n border: 1px solid var(--copilot-kit-muted-color);\n color: var(--copilot-kit-secondary-contrast-color);\n box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);\n}\n\n.copilotKitMessages footer .suggestions .suggestion.loading {\n padding: 0;\n font-size: 0.7rem;\n border: none;\n color: var(--copilot-kit-secondary-contrast-color);\n}\n\n.copilotKitMessages footer .suggestions button {\n transition: transform 0.3s ease;\n}\n\n.copilotKitMessages footer .suggestions button:not(:disabled):hover {\n transform: scale(1.03);\n}\n\n.copilotKitMessages footer .suggestions button:disabled {\n cursor: wait;\n}\n\n.copilotKitMessages footer .suggestions button svg {\n margin-right: 6px;\n}",".copilotKitChat {\n z-index: 30;\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n background: var(--copilot-kit-background-color);\n font-family:\n ui-sans-serif,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n \"Segoe UI\",\n Roboto,\n \"Helvetica Neue\",\n Arial,\n \"Noto Sans\",\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\";\n font-feature-settings: normal;\n font-variation-settings: normal;\n touch-action: manipulation;\n display: flex;\n flex-direction: column;\n /* height: 100%; */\n}\n\n.copilotKitChat svg {\n display: inline-block;\n vertical-align: middle;\n}\n\n.copilotKitChat .copilotKitMessages {\n flex-grow: 1;\n}\n",".copilotKitDevConsole {\n display: flex;\n align-items: center;\n gap: 5px;\n margin: 0 15px;\n}\n\n.copilotKitDevConsole.copilotKitDevConsoleWarnOutdated {\n background-color: var(--copilot-kit-dev-console-bg);\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo {\n display: flex;\n position: absolute;\n bottom: -25px;\n padding: 3px 5px;\n left: 0;\n width: 100%;\n justify-content: center;\n gap: 10px;\n font-size: 0.8rem;\n align-items: center;\n background: #ebb305;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo button {\n font-size: 11px;\n font-weight: normal;\n font-family: monospace;\n background-color: var(--copilot-kit-dev-console-bg);\n border: 1px solid #979797;\n padding: 1px 12px;\n padding-left: 5px;\n border-radius: 4px;\n display: inline-block;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n width: 260px;\n text-overflow: ellipsis;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo aside {\n display: inline;\n font-weight: normal;\n color: #7f7a7a;\n margin-left: 5px;\n}\n\n.copilotKitDevConsole .copilotKitVersionInfo svg {\n margin-left: 3px;\n margin-top: -3px;\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton {\n font-size: 11px;\n font-weight: bold;\n display: flex;\n padding: 0 10px;\n height: 30px;\n background-color: transparent;\n border: 1px solid var(--copilot-kit-muted-color);\n border-radius: 20px;\n align-items: center;\n justify-content: center;\n outline: none;\n}\n\n.copilotKitDebugMenuTriggerButton.compact {\n width: 35px;\n color: var(--copilot-kit-dev-console-bg);\n justify-content: center;\n outline: none;\n font-size: 8px;\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 85%, black);\n color: var(--copilot-kit-dev-console-text);\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .copilotKitDevConsole .copilotKitDebugMenuTriggerButton {\n color: white;\n}\n\n.dark,\nhtml.dark,\nbody.dark,\n[data-theme=\"dark\"],\nhtml[style*=\"color-scheme: dark\"],\nbody[style*=\"color-scheme: dark\"] .copilotKitDevConsole .copilotKitDebugMenuTriggerButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 20%, black);\n}\n\n.copilotKitDevConsole .copilotKitDebugMenuTriggerButton > svg {\n margin-left: 10px;\n}\n\n.copilotKitDebugMenu {\n --copilot-kit-dev-console-border: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 80%, black);\n margin-top: 2px;\n border-radius: 6px;\n background-color: var(--copilot-kit-dev-console-bg);\n border: 1px solid var(--copilot-kit-dev-console-border);\n padding: 0.25rem;\n outline: none;\n font-size: 13px;\n}\n\n.copilotKitDebugMenuItem {\n padding-top: 3px;\n padding-bottom: 3px;\n padding-left: 10px;\n padding-right: 10px;\n display: block;\n width: 100%;\n text-align: left;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--copilot-kit-dev-console-text);\n}\n\n.copilotKitDebugMenuItem:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 95%, black);\n border-radius: 4px;\n}\n\n.copilotKitDebugMenu[data-closed] {\n transform: scale(0.95); /* data-[closed]:scale-95 */\n opacity: 0; /* data-[closed]:opacity-0 */\n}\n\n.copilotKitDebugMenu hr {\n height: 1px;\n border: none; /* Remove 3D look */\n background-color: var(--copilot-kit-dev-console-border);\n margin: 0.25rem;\n}\n\n.copilotKitHelpModal {\n background-color: var(--copilot-kit-dev-console-bg);\n color: var(--copilot-kit-dev-console-text);\n}\n\n.copilotKitHelpItemButton {\n display: block;\n text-align: center;\n width: 100%;\n padding: 4px 6px;\n border-radius: 15px;\n font-size: 0.8rem;\n border: 1px solid var(--copilot-kit-muted-color);\n color: var(--copilot-kit-dev-console-text);\n box-shadow: 0 5px 5px 0px rgba(0,0,0,.01),0 2px 3px 0px rgba(0,0,0,.02);\n background-color: var(--copilot-kit-dev-console-bg);\n}\n.copilotKitHelpItemButton:hover {\n background-color: color-mix(in srgb, var(--copilot-kit-dev-console-bg) 95%, black);\n}\n\n","/* Default styles for the ResponseRenderer component */\n\n.copilotkit-response {\n text-align: right;\n}\n\n.copilotkit-response-content {\n margin-bottom: 0.5rem;\n font-size: 0.875rem;\n color: #4b5563;\n background-color: #f9fafb;\n padding: 0.5rem;\n border-radius: 0.25rem;\n text-align: left;\n}\n\n.copilotkit-response-actions {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.copilotkit-response-label {\n font-size: 0.75rem;\n color: #6b7280;\n margin-bottom: 0.25rem;\n display: flex;\n align-items: center;\n}\n\n.copilotkit-toggle-button {\n margin-right: 0.25rem;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copilotkit-icon {\n height: 0.75rem;\n width: 0.75rem;\n color: #6b7280;\n}\n\n.copilotkit-response-buttons {\n display: flex;\n gap: 0.5rem;\n}\n\n.copilotkit-response-button {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n background-color: #f3f4f6;\n color: #4b5563;\n border-radius: 0.25rem;\n border: none;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.copilotkit-response-button:hover {\n background-color: #e5e7eb;\n}\n\n.copilotkit-response-button:focus {\n outline: none;\n}\n\n.copilotkit-response-completed-feedback {\n background-color: #f9fafb;\n padding: 0.5rem;\n border-radius: 0.375rem;\n display: inline-flex;\n align-items: center;\n}\n\n.copilotkit-response-completed-feedback span {\n color: #4b5563;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n/* DefaultStateRenderer styles */\n\n.copilotkit-state {\n font-size: 0.875rem;\n margin-bottom: 1rem;\n}\n\n.copilotkit-state-header {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n user-select: none;\n margin-bottom: 0.25rem;\n}\n\n.copilotkit-state-label {\n color: #4b5563;\n font-size: 0.875rem;\n}\n\n.copilotkit-state-label-loading {\n display: inline-flex;\n align-items: center;\n animation: pulse 1.5s infinite;\n}\n\n.copilotkit-state-content {\n padding-left: 1rem;\n max-height: 250px;\n overflow: auto;\n padding-top: 0.375rem;\n border-left: 1px solid #e5e7eb;\n margin-left: 0.375rem;\n}\n\n.copilotkit-state-item {\n padding: 0.25rem 0;\n margin-bottom: 0.25rem;\n transition: all 0.3s ease;\n}\n\n.copilotkit-state-item-newest {\n animation: appear 0.5s ease-out;\n}\n\n.copilotkit-state-item-header {\n font-size: 0.75rem;\n opacity: 0.7;\n}\n\n.copilotkit-state-item-thought {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n opacity: 0.8;\n}\n\n.copilotkit-state-item-result {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n}\n\n.copilotkit-state-item-description {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n opacity: 0.8;\n}\n\n.copilotkit-state-empty {\n padding: 0.25rem 0;\n font-size: 0.75rem;\n opacity: 0.7;\n}\n\n.copilotkit-skeleton {\n padding: 0.125rem 0;\n animation: pulse 1.5s infinite;\n}\n\n.copilotkit-skeleton-header {\n display: flex;\n justify-content: space-between;\n}\n\n.copilotkit-skeleton-title {\n height: 0.625rem;\n width: 4rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-skeleton-subtitle {\n height: 0.5rem;\n width: 2rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-skeleton-content {\n margin-top: 0.125rem;\n height: 1.5rem;\n background-color: #e5e7eb;\n border-radius: 0.25rem;\n}\n\n.copilotkit-loader {\n animation: spin 1.5s linear infinite;\n}\n\n.copilotkit-spinner {\n animation: spin 1.5s linear infinite;\n}\n\n/* Animations */\n@keyframes appear {\n 0% {\n opacity: 0;\n transform: translateY(8px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 0.4;\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n /* DefaultResponseRenderer dark styles */\n .copilotkit-response-content {\n color: #9ca3af;\n background-color: #1f2937;\n }\n\n .copilotkit-response-label {\n color: #9ca3af;\n }\n\n .copilotkit-icon {\n color: #9ca3af;\n }\n\n .copilotkit-response-button {\n background-color: #1f2937;\n color: #d1d5db;\n }\n\n .copilotkit-response-button:hover {\n background-color: #374151;\n }\n\n .copilotkit-response-completed-feedback {\n background-color: #1f2937;\n }\n\n .copilotkit-response-completed-feedback span {\n color: #e5e7eb;\n }\n\n /* DefaultStateRenderer dark styles */\n .copilotkit-state-label {\n color: #d1d5db;\n }\n\n .copilotkit-state-content {\n border-left-color: #374151;\n }\n\n .copilotkit-skeleton-title,\n .copilotkit-skeleton-subtitle,\n .copilotkit-skeleton-content {\n background-color: #374151;\n }\n}\n"],"mappings":";AAMA;AAGE;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AACA;AACA;AAIA;AAEA;AAEA;AAEA;AACA;AAAA;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOE;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AACA;AACA;AAGA;AAEA;AAEA;AAAA;;;AC5EF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACpBF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACE;AAAA;AAAA;;;AC/BJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACjEF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACE;AACA;AACA;AACA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;;;AC/DF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;;;ACrJF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AACE;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AAAA;AAEI;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAIF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAIF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACxOF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACzDJ;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AAAA;AAGI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;;;AChCJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAKE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;;;ACpJF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;;;ACzCF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AACA;AACA;AACA;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAGF;AACE;AAAA;;;ACrCF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AAAA;;;ACjKF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAKF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AAAA;AAEI;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAIJ;AAAA;AAGI;AAAA;AAAA;AAGA;AAAA;AAAA;AAIJ;AAAA;AAEI;AAAA;AAAA;AAGA;AAAA;AAAA;AAKJ;AAEE;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAGE;AAAA;AAAA;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- export { AssistantMessageProps, ButtonProps, ComponentsMap, HeaderProps, InputProps, MessagesProps, RenderMessageProps, RenderSuggestionsListProps, Renderer, SuggestionsProps, UserMessageProps, WindowProps } from './components/chat/props.js';
1
+ export { AssistantMessageProps, ButtonProps, ComponentsMap, HeaderProps, ImageRendererProps, InputProps, MessagesProps, RenderMessageProps, RenderSuggestionsListProps, Renderer, SuggestionsProps, UserMessageProps, WindowProps } from './components/chat/props.js';
2
2
  export { CopilotPopup } from './components/chat/Popup.js';
3
3
  export { CopilotSidebar } from './components/chat/Sidebar.js';
4
4
  export { CopilotChat } from './components/chat/Chat.js';
5
5
  export { Markdown } from './components/chat/Markdown.js';
6
6
  export { AssistantMessage } from './components/chat/messages/AssistantMessage.js';
7
7
  export { UserMessage } from './components/chat/messages/UserMessage.js';
8
+ export { ImageRenderer } from './components/chat/messages/ImageRenderer.js';
8
9
  export { useChatContext } from './components/chat/ChatContext.js';
9
- export { RenderImageMessage } from './components/chat/messages/RenderImageMessage.js';
10
10
  export { Suggestions as RenderSuggestionsList } from './components/chat/Suggestions.js';
11
11
  export { Suggestion as RenderSuggestion } from './components/chat/Suggestion.js';
12
12
  export { shouldShowDevConsole } from './components/dev-console/utils.js';
@@ -14,10 +14,15 @@ export { CopilotDevConsole } from './components/dev-console/console.js';
14
14
  export { useCopilotChatSuggestions } from './hooks/use-copilot-chat-suggestions.js';
15
15
  export { CopilotKitCSSProperties } from './types/css.js';
16
16
  export { CopilotChatSuggestion } from './types/suggestions.js';
17
- import '@copilotkit/runtime-client-gql';
17
+ import '@copilotkit/shared';
18
18
  import 'react';
19
19
  import 'react/jsx-runtime';
20
20
  import './components/chat/Modal.js';
21
+ import '@copilotkit/react-core/dist/types/coagent-state';
22
+ import '@copilotkit/react-core/dist/hooks/use-tree';
23
+ import '@copilotkit/react-core/dist/copilot-context-bd88d30d';
24
+ import '@copilotkit/react-core/dist/types/coagent-action';
21
25
  import '@copilotkit/react-core';
26
+ import '@copilotkit/runtime-client-gql';
22
27
  import 'react-markdown';
23
28
  import './components/dev-console/types.js';