@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.
- package/CHANGELOG.md +38 -0
- package/dist/{chunk-GVKA7RQQ.mjs → chunk-7CAK2CNK.mjs} +2 -2
- package/dist/{chunk-KN2GCKBE.mjs → chunk-7RNOT3GM.mjs} +9 -9
- package/dist/{chunk-KENCH7RN.mjs → chunk-B5IFB5YJ.mjs} +1 -1
- package/dist/chunk-B5IFB5YJ.mjs.map +1 -0
- package/dist/chunk-DBKRAOH7.mjs +34 -0
- package/dist/chunk-DBKRAOH7.mjs.map +1 -0
- package/dist/{chunk-4HUXYD3B.mjs → chunk-DTRPPNSA.mjs} +2 -2
- package/dist/{chunk-YTXEWDNC.mjs → chunk-E6MQUIZW.mjs} +15 -4
- package/dist/chunk-E6MQUIZW.mjs.map +1 -0
- package/dist/{chunk-Z4XPPVZT.mjs → chunk-EYRKZDP5.mjs} +1 -1
- package/dist/chunk-EYRKZDP5.mjs.map +1 -0
- package/dist/{chunk-SGFUVPDB.mjs → chunk-FOSKS7AI.mjs} +4 -4
- package/dist/{chunk-L3GZ7TXC.mjs → chunk-GCKKSSBU.mjs} +21 -24
- package/dist/chunk-GCKKSSBU.mjs.map +1 -0
- package/dist/{chunk-S5MBUNGN.mjs → chunk-O72ZB5V3.mjs} +4 -4
- package/dist/chunk-O72ZB5V3.mjs.map +1 -0
- package/dist/{chunk-QGSPTXOV.mjs → chunk-O7KTFUAN.mjs} +2 -2
- package/dist/chunk-O7KTFUAN.mjs.map +1 -0
- package/dist/{chunk-HKTWKCPS.mjs → chunk-O7PYQO73.mjs} +127 -92
- package/dist/chunk-O7PYQO73.mjs.map +1 -0
- package/dist/{chunk-32MUWKL3.mjs → chunk-OQM7D3Z3.mjs} +22 -18
- package/dist/chunk-OQM7D3Z3.mjs.map +1 -0
- package/dist/chunk-Q2467VHZ.mjs +30 -0
- package/dist/chunk-Q2467VHZ.mjs.map +1 -0
- package/dist/{chunk-ALIBUJML.mjs → chunk-QELAC6XJ.mjs} +2 -2
- package/dist/chunk-QELAC6XJ.mjs.map +1 -0
- package/dist/{chunk-H3EM63WS.mjs → chunk-TCIZDWPC.mjs} +2 -2
- package/dist/chunk-TCIZDWPC.mjs.map +1 -0
- package/dist/chunk-VVL6JFCJ.mjs +16 -0
- package/dist/chunk-VVL6JFCJ.mjs.map +1 -0
- package/dist/chunk-WHDNKXMP.mjs +135 -0
- package/dist/chunk-WHDNKXMP.mjs.map +1 -0
- package/dist/components/chat/Button.d.ts +1 -1
- package/dist/components/chat/Chat.d.ts +119 -28
- package/dist/components/chat/Chat.js +298 -658
- package/dist/components/chat/Chat.js.map +1 -1
- package/dist/components/chat/Chat.mjs +12 -15
- package/dist/components/chat/CodeBlock.js.map +1 -1
- package/dist/components/chat/CodeBlock.mjs +1 -1
- package/dist/components/chat/Header.d.ts +1 -1
- package/dist/components/chat/Header.mjs +4 -4
- package/dist/components/chat/Input.d.ts +1 -1
- package/dist/components/chat/Input.js +3 -3
- package/dist/components/chat/Input.js.map +1 -1
- package/dist/components/chat/Input.mjs +2 -2
- package/dist/components/chat/Markdown.js +13 -2
- package/dist/components/chat/Markdown.js.map +1 -1
- package/dist/components/chat/Markdown.mjs +2 -2
- package/dist/components/chat/Messages.d.ts +3 -3
- package/dist/components/chat/Messages.js +40 -116
- package/dist/components/chat/Messages.js.map +1 -1
- package/dist/components/chat/Messages.mjs +1 -1
- package/dist/components/chat/Modal.d.ts +7 -2
- package/dist/components/chat/Modal.js +308 -668
- package/dist/components/chat/Modal.js.map +1 -1
- package/dist/components/chat/Modal.mjs +17 -20
- package/dist/components/chat/Popup.d.ts +7 -2
- package/dist/components/chat/Popup.js +310 -670
- package/dist/components/chat/Popup.js.map +1 -1
- package/dist/components/chat/Popup.mjs +18 -21
- package/dist/components/chat/Sidebar.d.ts +7 -2
- package/dist/components/chat/Sidebar.js +312 -672
- package/dist/components/chat/Sidebar.js.map +1 -1
- package/dist/components/chat/Sidebar.mjs +18 -21
- package/dist/components/chat/Suggestion.d.ts +2 -9
- package/dist/components/chat/Suggestion.js +6 -96
- package/dist/components/chat/Suggestion.js.map +1 -1
- package/dist/components/chat/Suggestion.mjs +3 -5
- package/dist/components/chat/Suggestions.d.ts +1 -1
- package/dist/components/chat/Suggestions.js +4 -3
- package/dist/components/chat/Suggestions.js.map +1 -1
- package/dist/components/chat/Suggestions.mjs +2 -2
- package/dist/components/chat/Window.d.ts +1 -1
- package/dist/components/chat/index.d.ts +8 -3
- package/dist/components/chat/index.js +316 -676
- package/dist/components/chat/index.js.map +1 -1
- package/dist/components/chat/index.mjs +22 -25
- package/dist/components/chat/messages/AssistantMessage.d.ts +1 -1
- package/dist/components/chat/messages/AssistantMessage.js +32 -24
- package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
- package/dist/components/chat/messages/AssistantMessage.mjs +3 -3
- package/dist/components/chat/messages/ImageRenderer.d.ts +12 -0
- package/dist/components/chat/messages/ImageRenderer.js +58 -0
- package/dist/components/chat/messages/ImageRenderer.js.map +1 -0
- package/dist/components/chat/messages/ImageRenderer.mjs +8 -0
- package/dist/components/chat/messages/RenderMessage.d.ts +9 -0
- package/dist/components/chat/messages/{RenderTextMessage.js → RenderMessage.js} +92 -47
- package/dist/components/chat/messages/RenderMessage.js.map +1 -0
- package/dist/components/chat/messages/RenderMessage.mjs +16 -0
- package/dist/components/chat/messages/UserMessage.d.ts +1 -1
- package/dist/components/chat/messages/UserMessage.js +7 -1
- package/dist/components/chat/messages/UserMessage.js.map +1 -1
- package/dist/components/chat/messages/UserMessage.mjs +1 -1
- package/dist/components/chat/props.d.ts +32 -27
- package/dist/components/chat/props.js.map +1 -1
- package/dist/components/dev-console/console.mjs +3 -3
- package/dist/components/dev-console/index.mjs +4 -4
- package/dist/components/index.d.ts +8 -3
- package/dist/components/index.js +316 -676
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +23 -26
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/hooks/use-copilot-chat-suggestions.d.ts +1 -1
- package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -1
- package/dist/hooks/use-copilot-chat-suggestions.mjs +1 -1
- package/dist/hooks/use-push-to-talk.d.ts +1 -1
- package/dist/hooks/use-push-to-talk.js +3 -3
- package/dist/hooks/use-push-to-talk.js.map +1 -1
- package/dist/hooks/use-push-to-talk.mjs +1 -1
- package/dist/index.css +59 -3
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.js +322 -682
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -27
- package/dist/types/css.d.ts +3 -0
- package/dist/types/css.js.map +1 -1
- package/package.json +4 -4
- package/src/components/chat/Chat.tsx +194 -106
- package/src/components/chat/CodeBlock.tsx +1 -1
- package/src/components/chat/Markdown.tsx +12 -2
- package/src/components/chat/Messages.tsx +43 -122
- package/src/components/chat/Popup.tsx +1 -1
- package/src/components/chat/Sidebar.tsx +1 -1
- package/src/components/chat/Suggestion.tsx +5 -108
- package/src/components/chat/Suggestions.tsx +0 -1
- package/src/components/chat/index.tsx +1 -1
- package/src/components/chat/messages/AssistantMessage.tsx +15 -23
- package/src/components/chat/messages/ImageRenderer.tsx +37 -0
- package/src/components/chat/messages/{RenderTextMessage.tsx → RenderMessage.tsx} +10 -9
- package/src/components/chat/messages/UserMessage.tsx +16 -5
- package/src/components/chat/props.ts +36 -28
- package/src/css/colors.css +10 -0
- package/src/css/markdown.css +8 -0
- package/src/css/messages.css +54 -5
- package/src/css/suggestions.css +1 -1
- package/src/hooks/use-copilot-chat-suggestions.tsx +1 -1
- package/src/hooks/use-push-to-talk.tsx +6 -5
- package/src/styles.css +1 -1
- package/src/types/css.ts +3 -0
- package/dist/chunk-2II3Q27P.mjs +0 -112
- package/dist/chunk-2II3Q27P.mjs.map +0 -1
- package/dist/chunk-32MUWKL3.mjs.map +0 -1
- package/dist/chunk-53CVDVS5.mjs +0 -127
- package/dist/chunk-53CVDVS5.mjs.map +0 -1
- package/dist/chunk-ALIBUJML.mjs.map +0 -1
- package/dist/chunk-B3D7U7TJ.mjs +0 -211
- package/dist/chunk-B3D7U7TJ.mjs.map +0 -1
- package/dist/chunk-C7OB63U5.mjs +0 -36
- package/dist/chunk-C7OB63U5.mjs.map +0 -1
- package/dist/chunk-H3EM63WS.mjs.map +0 -1
- package/dist/chunk-HKTWKCPS.mjs.map +0 -1
- package/dist/chunk-HWMFMBJC.mjs +0 -10
- package/dist/chunk-HWMFMBJC.mjs.map +0 -1
- package/dist/chunk-IMBPSLL4.mjs +0 -104
- package/dist/chunk-IMBPSLL4.mjs.map +0 -1
- package/dist/chunk-KENCH7RN.mjs.map +0 -1
- package/dist/chunk-L3GZ7TXC.mjs.map +0 -1
- package/dist/chunk-QGSPTXOV.mjs.map +0 -1
- package/dist/chunk-S5MBUNGN.mjs.map +0 -1
- package/dist/chunk-ULDQXCED.mjs +0 -78
- package/dist/chunk-ULDQXCED.mjs.map +0 -1
- package/dist/chunk-YTXEWDNC.mjs.map +0 -1
- package/dist/chunk-Z4XPPVZT.mjs.map +0 -1
- package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderActionExecutionMessage.js +0 -869
- package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +0 -14
- package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderAgentStateMessage.js +0 -854
- package/dist/components/chat/messages/RenderAgentStateMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderAgentStateMessage.mjs +0 -14
- package/dist/components/chat/messages/RenderImageMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderImageMessage.js +0 -823
- package/dist/components/chat/messages/RenderImageMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderImageMessage.mjs +0 -15
- package/dist/components/chat/messages/RenderImageMessage.mjs.map +0 -1
- package/dist/components/chat/messages/RenderResultMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderResultMessage.js +0 -778
- package/dist/components/chat/messages/RenderResultMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderResultMessage.mjs +0 -14
- package/dist/components/chat/messages/RenderResultMessage.mjs.map +0 -1
- package/dist/components/chat/messages/RenderTextMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderTextMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderTextMessage.mjs +0 -15
- package/dist/components/chat/messages/RenderTextMessage.mjs.map +0 -1
- package/src/components/chat/messages/RenderActionExecutionMessage.tsx +0 -127
- package/src/components/chat/messages/RenderAgentStateMessage.tsx +0 -116
- package/src/components/chat/messages/RenderImageMessage.tsx +0 -64
- package/src/components/chat/messages/RenderResultMessage.tsx +0 -26
- /package/dist/{chunk-GVKA7RQQ.mjs.map → chunk-7CAK2CNK.mjs.map} +0 -0
- /package/dist/{chunk-KN2GCKBE.mjs.map → chunk-7RNOT3GM.mjs.map} +0 -0
- /package/dist/{chunk-4HUXYD3B.mjs.map → chunk-DTRPPNSA.mjs.map} +0 -0
- /package/dist/{chunk-SGFUVPDB.mjs.map → chunk-FOSKS7AI.mjs.map} +0 -0
- /package/dist/components/chat/messages/{RenderActionExecutionMessage.mjs.map → ImageRenderer.mjs.map} +0 -0
- /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-
|
|
5
|
+
} from "../chunk-QELAC6XJ.mjs";
|
|
6
6
|
import "../chunk-WB3YULQ4.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CopilotPopup
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-TCIZDWPC.mjs";
|
|
10
|
+
import "../chunk-7RNOT3GM.mjs";
|
|
11
11
|
import "../chunk-C3GSYRC3.mjs";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-7CAK2CNK.mjs";
|
|
13
13
|
import "../chunk-V7W6IM2V.mjs";
|
|
14
14
|
import {
|
|
15
15
|
CopilotDevConsole
|
|
16
|
-
} from "../chunk-
|
|
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-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-2II3Q27P.mjs";
|
|
27
|
+
} from "../chunk-O7PYQO73.mjs";
|
|
28
|
+
import "../chunk-OQM7D3Z3.mjs";
|
|
30
29
|
import {
|
|
31
|
-
|
|
32
|
-
} from "../chunk-
|
|
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-
|
|
34
|
+
} from "../chunk-GCKKSSBU.mjs";
|
|
38
35
|
import {
|
|
39
|
-
|
|
40
|
-
} from "../chunk-
|
|
36
|
+
ImageRenderer
|
|
37
|
+
} from "../chunk-DBKRAOH7.mjs";
|
|
41
38
|
import {
|
|
42
39
|
Suggestions
|
|
43
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-O7KTFUAN.mjs";
|
|
44
41
|
import {
|
|
45
42
|
Suggestion
|
|
46
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-Q2467VHZ.mjs";
|
|
47
44
|
import "../chunk-PLHTVHUW.mjs";
|
|
48
|
-
import "../chunk-
|
|
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-
|
|
54
|
-
import "../chunk-
|
|
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-
|
|
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-
|
|
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,
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -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":[]}
|
package/dist/hooks/index.mjs
CHANGED
|
@@ -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,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Message } from '@copilotkit/
|
|
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
|
|
180
|
-
|
|
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 {
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA6D;AAC7D,gCAA0B;AAE1B,mBAA8D;AAEvD,IAAM,4BAA4B,MAAY;AACnD,MAAI;AACF,UAAM,mBAAmB,MAAM,UAAU,YAAY,MAAM;AAAA,MACzD,MAAM;AAAA,IACR,CAAC;AACD,QAAI,iBAAiB,UAAU,WAAW;AACxC,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF,SAAS,KAAP;AACA,YAAQ,MAAM,wCAAwC,GAAG;AAAA,EAC3D;AACF;AAEO,IAAM,kCAAkC,MAAY;AACzD,MAAI;AACF,UAAM,SAAS,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;AACxE,UAAM,eAAe,IAAI,OAAO,aAAa;AAC7C,UAAM,aAAa,OAAO;AAC1B,WAAO,EAAE,QAAQ,aAAa;AAAA,EAChC,SAAS,KAAP;AACA,YAAQ,MAAM,wDAAwD,GAAG;AACzE,WAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAAiB,CACrB,gBACA,kBACA,iBACA,gBACA,WACG;AACH,MAAI,CAAC,eAAe,WAAW,CAAC,gBAAgB,SAAS;AACvD,mBAAe,UAAU,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;AAClF,oBAAgB,UAAU,IAAI,OAAO,aAAa;AAClD,UAAM,gBAAgB,QAAQ,OAAO;AAAA,EACvC;AAEA,mBAAiB,UAAU,IAAI,cAAc,eAAe,OAAQ;AACpE,mBAAiB,QAAQ,MAAM,GAAI;AACnC,mBAAiB,QAAQ,kBAAkB,CAAC,UAAU;AACpD,mBAAe,KAAK,MAAM,IAAI;AAAA,EAChC;AACA,mBAAiB,QAAQ,SAAS;AACpC;AAEA,IAAM,gBAAgB,CAAC,qBAA6D;AAClF,MAAI,iBAAiB,WAAW,iBAAiB,QAAQ,UAAU,YAAY;AAC7E,qBAAiB,QAAQ,KAAK;AAAA,EAChC;AACF;AAEA,IAAM,kBAAkB,CAAO,gBAAwB,uBAA+B;AACpF,QAAM,eAAe,IAAI,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,QAAM,WAAW,IAAI,SAAS;AAC9B,WAAS,OAAO,QAAQ,cAAc,eAAe;AAErD,QAAM,WAAW,MAAM,MAAM,oBAAoB;AAAA,IAC/C,QAAQ;AAAA,IACR,MAAM;AAAA,EACR,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,UAAU,SAAS,YAAY;AAAA,EACjD;AAEA,QAAM,gBAAgB,MAAM,SAAS,KAAK;AAC1C,SAAO,cAAc;AACvB;AAEA,IAAM,oBAAoB,CAAC,MAAc,iBAAyB,iBAA+B;AAC/F,QAAM,cAAc,mBAAmB,IAAI;AAC3C,QAAM,MAAM,GAAG,wBAAwB;AAEvC,QAAM,GAAG,EACN,KAAK,CAAC,aAAa,SAAS,YAAY,CAAC,EACzC,KAAK,CAAC,gBAAgB,aAAa,gBAAgB,WAAW,CAAC,EAC/D,KAAK,CAAC,gBAAgB;AACrB,UAAM,SAAS,aAAa,mBAAmB;AAC/C,WAAO,SAAS;AAChB,WAAO,QAAQ,aAAa,WAAW;AACvC,WAAO,MAAM,CAAC;AAAA,EAChB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,YAAQ,MAAM,kCAAkC,KAAK;AAAA,EACvD,CAAC;AACL;AAMO,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AACF,MAGM;AACJ,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,uBAA0B,MAAM;AAC9E,QAAM,qBAAiB,qBAA2B,IAAI;AACtD,QAAM,sBAAkB,qBAA4B,IAAI;AACxD,QAAM,uBAAmB,qBAA6B,IAAI;AAC1D,QAAM,qBAAiB,qBAAe,CAAC,CAAC;AACxC,QAAM,qBAAiB,qCAAkB;AACzC,QAAM,sBAAkB,6CAA0B;AAClD,QAAM,UAAU,kCAAK,iBAAmB;AACxC,QAAM,CAAC,2BAA2B,4BAA4B,QAAI,uBAAwB,IAAI;AAE9F,8BAAU,MAAM;AACd,QAAI,oBAAoB,aAAa;AACnC;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,MAAM;AACJ,6BAAmB,cAAc;AAAA,QACnC;AAAA,MACF;AAAA,IACF,OAAO;AACL,oBAAc,gBAAgB;AAC9B,UAAI,oBAAoB,gBAAgB;AACtC,wBAAgB,eAAe,SAAS,QAAQ,iBAAiB,kBAAmB,EAAE;AAAA,UACpF,CAAO,kBAAkB;AACvB,2BAAe,UAAU,CAAC;AAC1B,+BAAmB,MAAM;AACzB,kBAAM,UAAU,MAAM,aAAa,aAAa;AAChD,yCAA6B,QAAQ,EAAE;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM;AACX,oBAAc,gBAAgB;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,8BAAU,MAAM;AACd,QAAI,eAAe,SAAS,2BAA2B;AACrD,YAAM,mBAAmB,QAAQ,SAAS;AAAA,QACxC,CAAC,YAAY,QAAQ,OAAO;AAAA,MAC9B;AAEA,YAAM,mBAAe,qCAAU,QAAQ,QAAQ;AAE/C,YAAM,oBAAoB,aACvB,MAAM,mBAAmB,CAAC,EAC1B,OAAO,CAAC,YAAY,QAAQ,SAAS,WAAW;AAEnD,YAAM,OAAO,kBAAkB,IAAI,CAAC,YAAY,QAAQ,OAAO,EAAE,KAAK,IAAI;AAC1E,wBAAkB,MAAM,QAAQ,iBAAiB,iBAAkB,gBAAgB,OAAQ;AAE3F,mCAA6B,IAAI;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,2BAA2B,UAAU,CAAC;AAE1C,SAAO,EAAE,iBAAiB,mBAAmB;AAC/C;","names":[]}
|
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:
|
|
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:
|
|
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 {
|
package/dist/index.css.map
CHANGED
|
@@ -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/
|
|
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';
|