@copilotkit/react-ui 1.9.3 → 1.10.0-next.1

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 (198) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/{chunk-GVKA7RQQ.mjs → chunk-7CAK2CNK.mjs} +2 -2
  3. package/dist/{chunk-KN2GCKBE.mjs → chunk-7RNOT3GM.mjs} +9 -9
  4. package/dist/{chunk-KENCH7RN.mjs → chunk-B5IFB5YJ.mjs} +1 -1
  5. package/dist/chunk-B5IFB5YJ.mjs.map +1 -0
  6. package/dist/chunk-DBKRAOH7.mjs +34 -0
  7. package/dist/chunk-DBKRAOH7.mjs.map +1 -0
  8. package/dist/{chunk-4HUXYD3B.mjs → chunk-DTRPPNSA.mjs} +2 -2
  9. package/dist/{chunk-YTXEWDNC.mjs → chunk-E6MQUIZW.mjs} +15 -4
  10. package/dist/chunk-E6MQUIZW.mjs.map +1 -0
  11. package/dist/{chunk-Z4XPPVZT.mjs → chunk-EYRKZDP5.mjs} +1 -1
  12. package/dist/chunk-EYRKZDP5.mjs.map +1 -0
  13. package/dist/{chunk-SGFUVPDB.mjs → chunk-FOSKS7AI.mjs} +4 -4
  14. package/dist/{chunk-L3GZ7TXC.mjs → chunk-GCKKSSBU.mjs} +21 -24
  15. package/dist/chunk-GCKKSSBU.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-HKTWKCPS.mjs → chunk-O7PYQO73.mjs} +127 -92
  21. package/dist/chunk-O7PYQO73.mjs.map +1 -0
  22. package/dist/{chunk-32MUWKL3.mjs → chunk-OQM7D3Z3.mjs} +22 -18
  23. package/dist/chunk-OQM7D3Z3.mjs.map +1 -0
  24. package/dist/chunk-Q2467VHZ.mjs +30 -0
  25. package/dist/chunk-Q2467VHZ.mjs.map +1 -0
  26. package/dist/{chunk-ALIBUJML.mjs → chunk-QELAC6XJ.mjs} +2 -2
  27. package/dist/chunk-QELAC6XJ.mjs.map +1 -0
  28. package/dist/{chunk-H3EM63WS.mjs → chunk-TCIZDWPC.mjs} +2 -2
  29. package/dist/chunk-TCIZDWPC.mjs.map +1 -0
  30. package/dist/chunk-VVL6JFCJ.mjs +16 -0
  31. package/dist/chunk-VVL6JFCJ.mjs.map +1 -0
  32. package/dist/chunk-WHDNKXMP.mjs +135 -0
  33. package/dist/chunk-WHDNKXMP.mjs.map +1 -0
  34. package/dist/components/chat/Button.d.ts +1 -1
  35. package/dist/components/chat/Chat.d.ts +119 -28
  36. package/dist/components/chat/Chat.js +298 -658
  37. package/dist/components/chat/Chat.js.map +1 -1
  38. package/dist/components/chat/Chat.mjs +12 -15
  39. package/dist/components/chat/CodeBlock.js.map +1 -1
  40. package/dist/components/chat/CodeBlock.mjs +1 -1
  41. package/dist/components/chat/Header.d.ts +1 -1
  42. package/dist/components/chat/Header.mjs +4 -4
  43. package/dist/components/chat/Input.d.ts +1 -1
  44. package/dist/components/chat/Input.js +3 -3
  45. package/dist/components/chat/Input.js.map +1 -1
  46. package/dist/components/chat/Input.mjs +2 -2
  47. package/dist/components/chat/Markdown.js +13 -2
  48. package/dist/components/chat/Markdown.js.map +1 -1
  49. package/dist/components/chat/Markdown.mjs +2 -2
  50. package/dist/components/chat/Messages.d.ts +3 -3
  51. package/dist/components/chat/Messages.js +40 -116
  52. package/dist/components/chat/Messages.js.map +1 -1
  53. package/dist/components/chat/Messages.mjs +1 -1
  54. package/dist/components/chat/Modal.d.ts +7 -2
  55. package/dist/components/chat/Modal.js +308 -668
  56. package/dist/components/chat/Modal.js.map +1 -1
  57. package/dist/components/chat/Modal.mjs +17 -20
  58. package/dist/components/chat/Popup.d.ts +7 -2
  59. package/dist/components/chat/Popup.js +310 -670
  60. package/dist/components/chat/Popup.js.map +1 -1
  61. package/dist/components/chat/Popup.mjs +18 -21
  62. package/dist/components/chat/Sidebar.d.ts +7 -2
  63. package/dist/components/chat/Sidebar.js +312 -672
  64. package/dist/components/chat/Sidebar.js.map +1 -1
  65. package/dist/components/chat/Sidebar.mjs +18 -21
  66. package/dist/components/chat/Suggestion.d.ts +2 -9
  67. package/dist/components/chat/Suggestion.js +6 -96
  68. package/dist/components/chat/Suggestion.js.map +1 -1
  69. package/dist/components/chat/Suggestion.mjs +3 -5
  70. package/dist/components/chat/Suggestions.d.ts +1 -1
  71. package/dist/components/chat/Suggestions.js +4 -3
  72. package/dist/components/chat/Suggestions.js.map +1 -1
  73. package/dist/components/chat/Suggestions.mjs +2 -2
  74. package/dist/components/chat/Window.d.ts +1 -1
  75. package/dist/components/chat/index.d.ts +8 -3
  76. package/dist/components/chat/index.js +316 -676
  77. package/dist/components/chat/index.js.map +1 -1
  78. package/dist/components/chat/index.mjs +22 -25
  79. package/dist/components/chat/messages/AssistantMessage.d.ts +1 -1
  80. package/dist/components/chat/messages/AssistantMessage.js +32 -24
  81. package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
  82. package/dist/components/chat/messages/AssistantMessage.mjs +3 -3
  83. package/dist/components/chat/messages/ImageRenderer.d.ts +12 -0
  84. package/dist/components/chat/messages/ImageRenderer.js +58 -0
  85. package/dist/components/chat/messages/ImageRenderer.js.map +1 -0
  86. package/dist/components/chat/messages/ImageRenderer.mjs +8 -0
  87. package/dist/components/chat/messages/RenderMessage.d.ts +9 -0
  88. package/dist/components/chat/messages/{RenderTextMessage.js → RenderMessage.js} +92 -47
  89. package/dist/components/chat/messages/RenderMessage.js.map +1 -0
  90. package/dist/components/chat/messages/RenderMessage.mjs +16 -0
  91. package/dist/components/chat/messages/UserMessage.d.ts +1 -1
  92. package/dist/components/chat/messages/UserMessage.js +7 -1
  93. package/dist/components/chat/messages/UserMessage.js.map +1 -1
  94. package/dist/components/chat/messages/UserMessage.mjs +1 -1
  95. package/dist/components/chat/props.d.ts +32 -27
  96. package/dist/components/chat/props.js.map +1 -1
  97. package/dist/components/dev-console/console.mjs +3 -3
  98. package/dist/components/dev-console/index.mjs +4 -4
  99. package/dist/components/index.d.ts +8 -3
  100. package/dist/components/index.js +316 -676
  101. package/dist/components/index.js.map +1 -1
  102. package/dist/components/index.mjs +23 -26
  103. package/dist/hooks/index.js.map +1 -1
  104. package/dist/hooks/index.mjs +1 -1
  105. package/dist/hooks/use-copilot-chat-suggestions.d.ts +1 -1
  106. package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -1
  107. package/dist/hooks/use-copilot-chat-suggestions.mjs +1 -1
  108. package/dist/hooks/use-push-to-talk.d.ts +1 -1
  109. package/dist/hooks/use-push-to-talk.js +3 -3
  110. package/dist/hooks/use-push-to-talk.js.map +1 -1
  111. package/dist/hooks/use-push-to-talk.mjs +1 -1
  112. package/dist/index.css +59 -3
  113. package/dist/index.css.map +1 -1
  114. package/dist/index.d.ts +8 -3
  115. package/dist/index.js +322 -682
  116. package/dist/index.js.map +1 -1
  117. package/dist/index.mjs +24 -27
  118. package/dist/types/css.d.ts +3 -0
  119. package/dist/types/css.js.map +1 -1
  120. package/package.json +4 -4
  121. package/src/components/chat/Chat.tsx +194 -106
  122. package/src/components/chat/CodeBlock.tsx +1 -1
  123. package/src/components/chat/Markdown.tsx +12 -2
  124. package/src/components/chat/Messages.tsx +43 -122
  125. package/src/components/chat/Popup.tsx +1 -1
  126. package/src/components/chat/Sidebar.tsx +1 -1
  127. package/src/components/chat/Suggestion.tsx +5 -108
  128. package/src/components/chat/Suggestions.tsx +0 -1
  129. package/src/components/chat/index.tsx +1 -1
  130. package/src/components/chat/messages/AssistantMessage.tsx +15 -23
  131. package/src/components/chat/messages/ImageRenderer.tsx +37 -0
  132. package/src/components/chat/messages/{RenderTextMessage.tsx → RenderMessage.tsx} +10 -9
  133. package/src/components/chat/messages/UserMessage.tsx +16 -5
  134. package/src/components/chat/props.ts +36 -28
  135. package/src/css/colors.css +10 -0
  136. package/src/css/markdown.css +8 -0
  137. package/src/css/messages.css +54 -5
  138. package/src/css/suggestions.css +1 -1
  139. package/src/hooks/use-copilot-chat-suggestions.tsx +1 -1
  140. package/src/hooks/use-push-to-talk.tsx +6 -5
  141. package/src/styles.css +1 -1
  142. package/src/types/css.ts +3 -0
  143. package/dist/chunk-2II3Q27P.mjs +0 -112
  144. package/dist/chunk-2II3Q27P.mjs.map +0 -1
  145. package/dist/chunk-32MUWKL3.mjs.map +0 -1
  146. package/dist/chunk-53CVDVS5.mjs +0 -127
  147. package/dist/chunk-53CVDVS5.mjs.map +0 -1
  148. package/dist/chunk-ALIBUJML.mjs.map +0 -1
  149. package/dist/chunk-B3D7U7TJ.mjs +0 -211
  150. package/dist/chunk-B3D7U7TJ.mjs.map +0 -1
  151. package/dist/chunk-C7OB63U5.mjs +0 -36
  152. package/dist/chunk-C7OB63U5.mjs.map +0 -1
  153. package/dist/chunk-H3EM63WS.mjs.map +0 -1
  154. package/dist/chunk-HKTWKCPS.mjs.map +0 -1
  155. package/dist/chunk-HWMFMBJC.mjs +0 -10
  156. package/dist/chunk-HWMFMBJC.mjs.map +0 -1
  157. package/dist/chunk-IMBPSLL4.mjs +0 -104
  158. package/dist/chunk-IMBPSLL4.mjs.map +0 -1
  159. package/dist/chunk-KENCH7RN.mjs.map +0 -1
  160. package/dist/chunk-L3GZ7TXC.mjs.map +0 -1
  161. package/dist/chunk-QGSPTXOV.mjs.map +0 -1
  162. package/dist/chunk-S5MBUNGN.mjs.map +0 -1
  163. package/dist/chunk-ULDQXCED.mjs +0 -78
  164. package/dist/chunk-ULDQXCED.mjs.map +0 -1
  165. package/dist/chunk-YTXEWDNC.mjs.map +0 -1
  166. package/dist/chunk-Z4XPPVZT.mjs.map +0 -1
  167. package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +0 -9
  168. package/dist/components/chat/messages/RenderActionExecutionMessage.js +0 -869
  169. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +0 -1
  170. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +0 -14
  171. package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +0 -9
  172. package/dist/components/chat/messages/RenderAgentStateMessage.js +0 -854
  173. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +0 -1
  174. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +0 -14
  175. package/dist/components/chat/messages/RenderImageMessage.d.ts +0 -9
  176. package/dist/components/chat/messages/RenderImageMessage.js +0 -823
  177. package/dist/components/chat/messages/RenderImageMessage.js.map +0 -1
  178. package/dist/components/chat/messages/RenderImageMessage.mjs +0 -15
  179. package/dist/components/chat/messages/RenderImageMessage.mjs.map +0 -1
  180. package/dist/components/chat/messages/RenderResultMessage.d.ts +0 -9
  181. package/dist/components/chat/messages/RenderResultMessage.js +0 -778
  182. package/dist/components/chat/messages/RenderResultMessage.js.map +0 -1
  183. package/dist/components/chat/messages/RenderResultMessage.mjs +0 -14
  184. package/dist/components/chat/messages/RenderResultMessage.mjs.map +0 -1
  185. package/dist/components/chat/messages/RenderTextMessage.d.ts +0 -9
  186. package/dist/components/chat/messages/RenderTextMessage.js.map +0 -1
  187. package/dist/components/chat/messages/RenderTextMessage.mjs +0 -15
  188. package/dist/components/chat/messages/RenderTextMessage.mjs.map +0 -1
  189. package/src/components/chat/messages/RenderActionExecutionMessage.tsx +0 -127
  190. package/src/components/chat/messages/RenderAgentStateMessage.tsx +0 -116
  191. package/src/components/chat/messages/RenderImageMessage.tsx +0 -64
  192. package/src/components/chat/messages/RenderResultMessage.tsx +0 -26
  193. /package/dist/{chunk-GVKA7RQQ.mjs.map → chunk-7CAK2CNK.mjs.map} +0 -0
  194. /package/dist/{chunk-KN2GCKBE.mjs.map → chunk-7RNOT3GM.mjs.map} +0 -0
  195. /package/dist/{chunk-4HUXYD3B.mjs.map → chunk-DTRPPNSA.mjs.map} +0 -0
  196. /package/dist/{chunk-SGFUVPDB.mjs.map → chunk-FOSKS7AI.mjs.map} +0 -0
  197. /package/dist/components/chat/messages/{RenderActionExecutionMessage.mjs.map → ImageRenderer.mjs.map} +0 -0
  198. /package/dist/components/chat/messages/{RenderAgentStateMessage.mjs.map → RenderMessage.mjs.map} +0 -0
@@ -2,64 +2,61 @@ import "../chunk-MMVDU6DF.mjs";
2
2
  import "../chunk-SC6JRFAJ.mjs";
3
3
  import {
4
4
  CopilotSidebar
5
- } from "../chunk-ALIBUJML.mjs";
5
+ } from "../chunk-QELAC6XJ.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-TCIZDWPC.mjs";
10
+ import "../chunk-7RNOT3GM.mjs";
11
11
  import "../chunk-C3GSYRC3.mjs";
12
- import "../chunk-GVKA7RQQ.mjs";
12
+ import "../chunk-7CAK2CNK.mjs";
13
13
  import "../chunk-V7W6IM2V.mjs";
14
14
  import {
15
15
  CopilotDevConsole
16
- } from "../chunk-SGFUVPDB.mjs";
16
+ } from "../chunk-FOSKS7AI.mjs";
17
+ import "../chunk-KXE2JCUH.mjs";
18
+ import "../chunk-NRA3CFEE.mjs";
19
+ import "../chunk-BH6PCAAL.mjs";
17
20
  import "../chunk-Q5V6S67N.mjs";
18
21
  import {
19
22
  shouldShowDevConsole
20
23
  } from "../chunk-QN7T3GWI.mjs";
21
- import "../chunk-KXE2JCUH.mjs";
22
- import "../chunk-NRA3CFEE.mjs";
23
- 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";
27
+ } from "../chunk-O7PYQO73.mjs";
28
+ import "../chunk-OQM7D3Z3.mjs";
30
29
  import {
31
- RenderImageMessage
32
- } from "../chunk-ULDQXCED.mjs";
33
- import "../chunk-C7OB63U5.mjs";
34
- import "../chunk-32MUWKL3.mjs";
30
+ UserMessage
31
+ } from "../chunk-VVL6JFCJ.mjs";
35
32
  import {
36
33
  AssistantMessage
37
- } from "../chunk-L3GZ7TXC.mjs";
34
+ } from "../chunk-GCKKSSBU.mjs";
38
35
  import {
39
- UserMessage
40
- } from "../chunk-HWMFMBJC.mjs";
36
+ ImageRenderer
37
+ } from "../chunk-DBKRAOH7.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 +1 @@
1
- {"version":3,"sources":["../../src/hooks/index.ts","../../src/hooks/use-copilot-chat-suggestions.tsx"],"sourcesContent":["export * from \"./use-copilot-chat-suggestions\";\n","/**\n * <Callout type=\"warning\">\n * useCopilotChatSuggestions is experimental. The interface is not final and\n * can change without notice.\n * </Callout>\n *\n * `useCopilotReadable` is a React hook that provides app-state and other information\n * to the Copilot. Optionally, the hook can also handle hierarchical state within your\n * application, passing these parent-child relationships to the Copilot.\n *\n * <br/>\n * <img src=\"/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif\" width=\"500\" />\n *\n * ## Usage\n *\n * ### Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ### Simple Usage\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * const [employees, setEmployees] = useState([]);\n *\n * useCopilotChatSuggestions({\n * instructions: `The following employees are on duty: ${JSON.stringify(employees)}`,\n * });\n * }\n * ```\n *\n * ### Dependency Management\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * useCopilotChatSuggestions(\n * {\n * instructions: \"Suggest the most relevant next actions.\",\n * },\n * [appState],\n * );\n * }\n * ```\n *\n * In the example above, the suggestions are generated based on the given instructions.\n * The hook monitors `appState`, and updates suggestions accordingly whenever it changes.\n *\n * ### Behavior and Lifecycle\n *\n * The hook registers the configuration with the chat context upon component mount and\n * removes it on unmount, ensuring a clean and efficient lifecycle management.\n */\n\nimport { useEffect } from \"react\";\nimport { useCopilotContext } from \"@copilotkit/react-core\";\nimport { randomId } from \"@copilotkit/shared\";\n\ninterface UseCopilotChatSuggestionsConfiguration {\n /**\n * A prompt or instructions for the GPT to generate suggestions.\n */\n instructions: string;\n /**\n * The minimum number of suggestions to generate. Defaults to `1`.\n * @default 1\n */\n minSuggestions?: number;\n /**\n * The maximum number of suggestions to generate. Defaults to `3`.\n * @default 1\n */\n maxSuggestions?: number;\n\n /**\n * Whether the suggestions are available. Defaults to `enabled`.\n * @default enabled\n */\n available?: \"enabled\" | \"disabled\";\n\n /**\n * An optional class name to apply to the suggestions.\n */\n className?: string;\n}\n\nexport function useCopilotChatSuggestions(\n {\n available = \"enabled\",\n instructions,\n className,\n minSuggestions = 1,\n maxSuggestions = 3,\n }: UseCopilotChatSuggestionsConfiguration,\n dependencies: any[] = [],\n) {\n const context = useCopilotContext();\n\n useEffect(() => {\n if (available === \"disabled\") return;\n\n const id = randomId();\n\n context.addChatSuggestionConfiguration(id, {\n instructions,\n minSuggestions,\n maxSuggestions,\n className,\n });\n\n return () => {\n context.removeChatSuggestionConfiguration(id);\n };\n }, [...dependencies, instructions, minSuggestions, maxSuggestions, className, available]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6DA,mBAA0B;AAC1B,wBAAkC;AAClC,oBAAyB;AA8BlB,SAAS,0BACd;AAAA,EACE,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GACA,eAAsB,CAAC,GACvB;AACA,QAAM,cAAU,qCAAkB;AAElC,8BAAU,MAAM;AACd,QAAI,cAAc;AAAY;AAE9B,UAAM,SAAK,wBAAS;AAEpB,YAAQ,+BAA+B,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,cAAQ,kCAAkC,EAAE;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,GAAG,cAAc,cAAc,gBAAgB,gBAAgB,WAAW,SAAS,CAAC;AAC1F;","names":[]}
1
+ {"version":3,"sources":["../../src/hooks/index.ts","../../src/hooks/use-copilot-chat-suggestions.tsx"],"sourcesContent":["export * from \"./use-copilot-chat-suggestions\";\n","/**\n * <Callout type=\"warning\">\n * useCopilotChatSuggestions is experimental. The interface is not final and\n * can change without notice.\n * </Callout>\n *\n * `useCopilotReadable` is a React hook that provides app-state and other information\n * to the Copilot. Optionally, the hook can also handle hierarchical state within your\n * application, passing these parent-child relationships to the Copilot.\n *\n * <br/>\n * <img src=\"https://cdn.copilotkit.ai/docs/copilotkit/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif\" width=\"500\" />\n *\n * ## Usage\n *\n * ### Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ### Simple Usage\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * const [employees, setEmployees] = useState([]);\n *\n * useCopilotChatSuggestions({\n * instructions: `The following employees are on duty: ${JSON.stringify(employees)}`,\n * });\n * }\n * ```\n *\n * ### Dependency Management\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * useCopilotChatSuggestions(\n * {\n * instructions: \"Suggest the most relevant next actions.\",\n * },\n * [appState],\n * );\n * }\n * ```\n *\n * In the example above, the suggestions are generated based on the given instructions.\n * The hook monitors `appState`, and updates suggestions accordingly whenever it changes.\n *\n * ### Behavior and Lifecycle\n *\n * The hook registers the configuration with the chat context upon component mount and\n * removes it on unmount, ensuring a clean and efficient lifecycle management.\n */\n\nimport { useEffect } from \"react\";\nimport { useCopilotContext } from \"@copilotkit/react-core\";\nimport { randomId } from \"@copilotkit/shared\";\n\ninterface UseCopilotChatSuggestionsConfiguration {\n /**\n * A prompt or instructions for the GPT to generate suggestions.\n */\n instructions: string;\n /**\n * The minimum number of suggestions to generate. Defaults to `1`.\n * @default 1\n */\n minSuggestions?: number;\n /**\n * The maximum number of suggestions to generate. Defaults to `3`.\n * @default 1\n */\n maxSuggestions?: number;\n\n /**\n * Whether the suggestions are available. Defaults to `enabled`.\n * @default enabled\n */\n available?: \"enabled\" | \"disabled\";\n\n /**\n * An optional class name to apply to the suggestions.\n */\n className?: string;\n}\n\nexport function useCopilotChatSuggestions(\n {\n available = \"enabled\",\n instructions,\n className,\n minSuggestions = 1,\n maxSuggestions = 3,\n }: UseCopilotChatSuggestionsConfiguration,\n dependencies: any[] = [],\n) {\n const context = useCopilotContext();\n\n useEffect(() => {\n if (available === \"disabled\") return;\n\n const id = randomId();\n\n context.addChatSuggestionConfiguration(id, {\n instructions,\n minSuggestions,\n maxSuggestions,\n className,\n });\n\n return () => {\n context.removeChatSuggestionConfiguration(id);\n };\n }, [...dependencies, instructions, minSuggestions, maxSuggestions, className, available]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6DA,mBAA0B;AAC1B,wBAAkC;AAClC,oBAAyB;AA8BlB,SAAS,0BACd;AAAA,EACE,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GACA,eAAsB,CAAC,GACvB;AACA,QAAM,cAAU,qCAAkB;AAElC,8BAAU,MAAM;AACd,QAAI,cAAc;AAAY;AAE9B,UAAM,SAAK,wBAAS;AAEpB,YAAQ,+BAA+B,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,cAAQ,kCAAkC,EAAE;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,GAAG,cAAc,cAAc,gBAAgB,gBAAgB,WAAW,SAAS,CAAC;AAC1F;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import "../chunk-T26KLXLH.mjs";
2
2
  import {
3
3
  useCopilotChatSuggestions
4
- } from "../chunk-Z4XPPVZT.mjs";
4
+ } from "../chunk-EYRKZDP5.mjs";
5
5
  import "../chunk-MRXNTQOX.mjs";
6
6
  export {
7
7
  useCopilotChatSuggestions
@@ -9,7 +9,7 @@
9
9
  * application, passing these parent-child relationships to the Copilot.
10
10
  *
11
11
  * <br/>
12
- * <img src="/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif" width="500" />
12
+ * <img src="https://cdn.copilotkit.ai/docs/copilotkit/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif" width="500" />
13
13
  *
14
14
  * ## Usage
15
15
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-copilot-chat-suggestions.tsx"],"sourcesContent":["/**\n * <Callout type=\"warning\">\n * useCopilotChatSuggestions is experimental. The interface is not final and\n * can change without notice.\n * </Callout>\n *\n * `useCopilotReadable` is a React hook that provides app-state and other information\n * to the Copilot. Optionally, the hook can also handle hierarchical state within your\n * application, passing these parent-child relationships to the Copilot.\n *\n * <br/>\n * <img src=\"/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif\" width=\"500\" />\n *\n * ## Usage\n *\n * ### Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ### Simple Usage\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * const [employees, setEmployees] = useState([]);\n *\n * useCopilotChatSuggestions({\n * instructions: `The following employees are on duty: ${JSON.stringify(employees)}`,\n * });\n * }\n * ```\n *\n * ### Dependency Management\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * useCopilotChatSuggestions(\n * {\n * instructions: \"Suggest the most relevant next actions.\",\n * },\n * [appState],\n * );\n * }\n * ```\n *\n * In the example above, the suggestions are generated based on the given instructions.\n * The hook monitors `appState`, and updates suggestions accordingly whenever it changes.\n *\n * ### Behavior and Lifecycle\n *\n * The hook registers the configuration with the chat context upon component mount and\n * removes it on unmount, ensuring a clean and efficient lifecycle management.\n */\n\nimport { useEffect } from \"react\";\nimport { useCopilotContext } from \"@copilotkit/react-core\";\nimport { randomId } from \"@copilotkit/shared\";\n\ninterface UseCopilotChatSuggestionsConfiguration {\n /**\n * A prompt or instructions for the GPT to generate suggestions.\n */\n instructions: string;\n /**\n * The minimum number of suggestions to generate. Defaults to `1`.\n * @default 1\n */\n minSuggestions?: number;\n /**\n * The maximum number of suggestions to generate. Defaults to `3`.\n * @default 1\n */\n maxSuggestions?: number;\n\n /**\n * Whether the suggestions are available. Defaults to `enabled`.\n * @default enabled\n */\n available?: \"enabled\" | \"disabled\";\n\n /**\n * An optional class name to apply to the suggestions.\n */\n className?: string;\n}\n\nexport function useCopilotChatSuggestions(\n {\n available = \"enabled\",\n instructions,\n className,\n minSuggestions = 1,\n maxSuggestions = 3,\n }: UseCopilotChatSuggestionsConfiguration,\n dependencies: any[] = [],\n) {\n const context = useCopilotContext();\n\n useEffect(() => {\n if (available === \"disabled\") return;\n\n const id = randomId();\n\n context.addChatSuggestionConfiguration(id, {\n instructions,\n minSuggestions,\n maxSuggestions,\n className,\n });\n\n return () => {\n context.removeChatSuggestionConfiguration(id);\n };\n }, [...dependencies, instructions, minSuggestions, maxSuggestions, className, available]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6DA,mBAA0B;AAC1B,wBAAkC;AAClC,oBAAyB;AA8BlB,SAAS,0BACd;AAAA,EACE,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GACA,eAAsB,CAAC,GACvB;AACA,QAAM,cAAU,qCAAkB;AAElC,8BAAU,MAAM;AACd,QAAI,cAAc;AAAY;AAE9B,UAAM,SAAK,wBAAS;AAEpB,YAAQ,+BAA+B,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,cAAQ,kCAAkC,EAAE;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,GAAG,cAAc,cAAc,gBAAgB,gBAAgB,WAAW,SAAS,CAAC;AAC1F;","names":[]}
1
+ {"version":3,"sources":["../../src/hooks/use-copilot-chat-suggestions.tsx"],"sourcesContent":["/**\n * <Callout type=\"warning\">\n * useCopilotChatSuggestions is experimental. The interface is not final and\n * can change without notice.\n * </Callout>\n *\n * `useCopilotReadable` is a React hook that provides app-state and other information\n * to the Copilot. Optionally, the hook can also handle hierarchical state within your\n * application, passing these parent-child relationships to the Copilot.\n *\n * <br/>\n * <img src=\"https://cdn.copilotkit.ai/docs/copilotkit/images/use-copilot-chat-suggestions/use-copilot-chat-suggestions.gif\" width=\"500\" />\n *\n * ## Usage\n *\n * ### Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ### Simple Usage\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * const [employees, setEmployees] = useState([]);\n *\n * useCopilotChatSuggestions({\n * instructions: `The following employees are on duty: ${JSON.stringify(employees)}`,\n * });\n * }\n * ```\n *\n * ### Dependency Management\n *\n * ```tsx\n * import { useCopilotChatSuggestions } from \"@copilotkit/react-ui\";\n *\n * export function MyComponent() {\n * useCopilotChatSuggestions(\n * {\n * instructions: \"Suggest the most relevant next actions.\",\n * },\n * [appState],\n * );\n * }\n * ```\n *\n * In the example above, the suggestions are generated based on the given instructions.\n * The hook monitors `appState`, and updates suggestions accordingly whenever it changes.\n *\n * ### Behavior and Lifecycle\n *\n * The hook registers the configuration with the chat context upon component mount and\n * removes it on unmount, ensuring a clean and efficient lifecycle management.\n */\n\nimport { useEffect } from \"react\";\nimport { useCopilotContext } from \"@copilotkit/react-core\";\nimport { randomId } from \"@copilotkit/shared\";\n\ninterface UseCopilotChatSuggestionsConfiguration {\n /**\n * A prompt or instructions for the GPT to generate suggestions.\n */\n instructions: string;\n /**\n * The minimum number of suggestions to generate. Defaults to `1`.\n * @default 1\n */\n minSuggestions?: number;\n /**\n * The maximum number of suggestions to generate. Defaults to `3`.\n * @default 1\n */\n maxSuggestions?: number;\n\n /**\n * Whether the suggestions are available. Defaults to `enabled`.\n * @default enabled\n */\n available?: \"enabled\" | \"disabled\";\n\n /**\n * An optional class name to apply to the suggestions.\n */\n className?: string;\n}\n\nexport function useCopilotChatSuggestions(\n {\n available = \"enabled\",\n instructions,\n className,\n minSuggestions = 1,\n maxSuggestions = 3,\n }: UseCopilotChatSuggestionsConfiguration,\n dependencies: any[] = [],\n) {\n const context = useCopilotContext();\n\n useEffect(() => {\n if (available === \"disabled\") return;\n\n const id = randomId();\n\n context.addChatSuggestionConfiguration(id, {\n instructions,\n minSuggestions,\n maxSuggestions,\n className,\n });\n\n return () => {\n context.removeChatSuggestionConfiguration(id);\n };\n }, [...dependencies, instructions, minSuggestions, maxSuggestions, className, available]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6DA,mBAA0B;AAC1B,wBAAkC;AAClC,oBAAyB;AA8BlB,SAAS,0BACd;AAAA,EACE,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GACA,eAAsB,CAAC,GACvB;AACA,QAAM,cAAU,qCAAkB;AAElC,8BAAU,MAAM;AACd,QAAI,cAAc;AAAY;AAE9B,UAAM,SAAK,wBAAS;AAEpB,YAAQ,+BAA+B,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,cAAQ,kCAAkC,EAAE;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,GAAG,cAAc,cAAc,gBAAgB,gBAAgB,WAAW,SAAS,CAAC;AAC1F;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCopilotChatSuggestions
3
- } from "../chunk-Z4XPPVZT.mjs";
3
+ } from "../chunk-EYRKZDP5.mjs";
4
4
  import "../chunk-MRXNTQOX.mjs";
5
5
  export {
6
6
  useCopilotChatSuggestions
@@ -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';