@copilotkit/react-ui 1.51.5-next.0 → 1.51.5-next.2
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/.attw.json +3 -0
- package/CHANGELOG.md +17 -0
- package/dist/index.cjs +2737 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +258 -70
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +781 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +781 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2685 -81
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +2750 -25
- package/dist/index.umd.js.map +1 -1
- package/package.json +19 -18
- package/src/components/chat/Popup.tsx +1 -1
- package/src/components/chat/Sidebar.tsx +1 -1
- package/tsdown.config.ts +58 -0
- package/vitest.config.mjs +11 -0
- package/dist/chunk-2QEDCM6H.mjs +0 -150
- package/dist/chunk-2QEDCM6H.mjs.map +0 -1
- package/dist/chunk-6SMTHXVA.mjs +0 -28
- package/dist/chunk-6SMTHXVA.mjs.map +0 -1
- package/dist/chunk-6TLDRWAD.mjs +0 -95
- package/dist/chunk-6TLDRWAD.mjs.map +0 -1
- package/dist/chunk-72FQQMQ2.mjs +0 -25
- package/dist/chunk-72FQQMQ2.mjs.map +0 -1
- package/dist/chunk-AOUHT4JR.mjs +0 -34
- package/dist/chunk-AOUHT4JR.mjs.map +0 -1
- package/dist/chunk-BNJX66OH.mjs +0 -118
- package/dist/chunk-BNJX66OH.mjs.map +0 -1
- package/dist/chunk-C27LZFA5.mjs +0 -97
- package/dist/chunk-C27LZFA5.mjs.map +0 -1
- package/dist/chunk-C7WM7GM3.mjs +0 -235
- package/dist/chunk-C7WM7GM3.mjs.map +0 -1
- package/dist/chunk-CNIC5HO5.mjs +0 -36
- package/dist/chunk-CNIC5HO5.mjs.map +0 -1
- package/dist/chunk-CQCXH5LY.mjs +0 -143
- package/dist/chunk-CQCXH5LY.mjs.map +0 -1
- package/dist/chunk-DM2V5WTG.mjs +0 -34
- package/dist/chunk-DM2V5WTG.mjs.map +0 -1
- package/dist/chunk-DSHTRV2R.mjs +0 -140
- package/dist/chunk-DSHTRV2R.mjs.map +0 -1
- package/dist/chunk-EACIYBQH.mjs +0 -32
- package/dist/chunk-EACIYBQH.mjs.map +0 -1
- package/dist/chunk-EFZPSZWO.mjs +0 -1
- package/dist/chunk-EFZPSZWO.mjs.map +0 -1
- package/dist/chunk-GBAPANZE.mjs +0 -323
- package/dist/chunk-GBAPANZE.mjs.map +0 -1
- package/dist/chunk-GFE5ZSPV.mjs +0 -112
- package/dist/chunk-GFE5ZSPV.mjs.map +0 -1
- package/dist/chunk-HHLX4MQN.mjs +0 -31
- package/dist/chunk-HHLX4MQN.mjs.map +0 -1
- package/dist/chunk-ICA2EXIX.mjs +0 -187
- package/dist/chunk-ICA2EXIX.mjs.map +0 -1
- package/dist/chunk-IU3WTXLQ.mjs +0 -1
- package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
- package/dist/chunk-IWOCQACI.mjs +0 -73
- package/dist/chunk-IWOCQACI.mjs.map +0 -1
- package/dist/chunk-JGMFJZMG.mjs +0 -11
- package/dist/chunk-JGMFJZMG.mjs.map +0 -1
- package/dist/chunk-JYHRHKV5.mjs +0 -90
- package/dist/chunk-JYHRHKV5.mjs.map +0 -1
- package/dist/chunk-KXE2JCUH.mjs +0 -1
- package/dist/chunk-KXE2JCUH.mjs.map +0 -1
- package/dist/chunk-LIXN3OVQ.mjs +0 -405
- package/dist/chunk-LIXN3OVQ.mjs.map +0 -1
- package/dist/chunk-MC6PY7XH.mjs +0 -456
- package/dist/chunk-MC6PY7XH.mjs.map +0 -1
- package/dist/chunk-MMVDU6DF.mjs +0 -1
- package/dist/chunk-MMVDU6DF.mjs.map +0 -1
- package/dist/chunk-MRXNTQOX.mjs +0 -59
- package/dist/chunk-MRXNTQOX.mjs.map +0 -1
- package/dist/chunk-OQWEOBRX.mjs +0 -120
- package/dist/chunk-OQWEOBRX.mjs.map +0 -1
- package/dist/chunk-P34CL4LC.mjs +0 -82
- package/dist/chunk-P34CL4LC.mjs.map +0 -1
- package/dist/chunk-PF3QBO7V.mjs +0 -133
- package/dist/chunk-PF3QBO7V.mjs.map +0 -1
- package/dist/chunk-PLHTVHUW.mjs +0 -82
- package/dist/chunk-PLHTVHUW.mjs.map +0 -1
- package/dist/chunk-PP2A5RP6.mjs +0 -21
- package/dist/chunk-PP2A5RP6.mjs.map +0 -1
- package/dist/chunk-Q64GLWPQ.mjs +0 -30
- package/dist/chunk-Q64GLWPQ.mjs.map +0 -1
- package/dist/chunk-SC6JRFAJ.mjs +0 -1
- package/dist/chunk-SC6JRFAJ.mjs.map +0 -1
- package/dist/chunk-T26KLXLH.mjs +0 -1
- package/dist/chunk-T26KLXLH.mjs.map +0 -1
- package/dist/chunk-T4NNQG6T.mjs +0 -231
- package/dist/chunk-T4NNQG6T.mjs.map +0 -1
- package/dist/chunk-TGM5PKBF.mjs +0 -44
- package/dist/chunk-TGM5PKBF.mjs.map +0 -1
- package/dist/chunk-V7W6IM2V.mjs +0 -1
- package/dist/chunk-V7W6IM2V.mjs.map +0 -1
- package/dist/chunk-WB3YULQ4.mjs +0 -1
- package/dist/chunk-WB3YULQ4.mjs.map +0 -1
- package/dist/chunk-Y4FKRAKJ.mjs +0 -12
- package/dist/chunk-Y4FKRAKJ.mjs.map +0 -1
- package/dist/chunk-YDJ4YUUF.mjs +0 -141
- package/dist/chunk-YDJ4YUUF.mjs.map +0 -1
- package/dist/components/chat/Button.d.ts +0 -9
- package/dist/components/chat/Button.js +0 -73
- package/dist/components/chat/Button.js.map +0 -1
- package/dist/components/chat/Button.mjs +0 -10
- package/dist/components/chat/Button.mjs.map +0 -1
- package/dist/components/chat/Chat.d.ts +0 -204
- package/dist/components/chat/Chat.js +0 -2428
- package/dist/components/chat/Chat.js.map +0 -1
- package/dist/components/chat/Chat.mjs +0 -29
- package/dist/components/chat/Chat.mjs.map +0 -1
- package/dist/components/chat/ChatContext.d.ts +0 -145
- package/dist/components/chat/ChatContext.js +0 -383
- package/dist/components/chat/ChatContext.js.map +0 -1
- package/dist/components/chat/ChatContext.mjs +0 -13
- package/dist/components/chat/ChatContext.mjs.map +0 -1
- package/dist/components/chat/CodeBlock.d.ts +0 -14
- package/dist/components/chat/CodeBlock.js +0 -524
- package/dist/components/chat/CodeBlock.js.map +0 -1
- package/dist/components/chat/CodeBlock.mjs +0 -14
- package/dist/components/chat/CodeBlock.mjs.map +0 -1
- package/dist/components/chat/Header.d.ts +0 -9
- package/dist/components/chat/Header.js +0 -642
- package/dist/components/chat/Header.js.map +0 -1
- package/dist/components/chat/Header.mjs +0 -17
- package/dist/components/chat/Header.mjs.map +0 -1
- package/dist/components/chat/Icons.d.ts +0 -20
- package/dist/components/chat/Icons.js +0 -362
- package/dist/components/chat/Icons.js.map +0 -1
- package/dist/components/chat/Icons.mjs +0 -38
- package/dist/components/chat/Icons.mjs.map +0 -1
- package/dist/components/chat/ImageUploadQueue.d.ts +0 -13
- package/dist/components/chat/ImageUploadQueue.js +0 -106
- package/dist/components/chat/ImageUploadQueue.js.map +0 -1
- package/dist/components/chat/ImageUploadQueue.mjs +0 -8
- package/dist/components/chat/ImageUploadQueue.mjs.map +0 -1
- package/dist/components/chat/Input.d.ts +0 -9
- package/dist/components/chat/Input.js +0 -424
- package/dist/components/chat/Input.js.map +0 -1
- package/dist/components/chat/Input.mjs +0 -14
- package/dist/components/chat/Input.mjs.map +0 -1
- package/dist/components/chat/Markdown.d.ts +0 -10
- package/dist/components/chat/Markdown.js +0 -678
- package/dist/components/chat/Markdown.js.map +0 -1
- package/dist/components/chat/Markdown.mjs +0 -11
- package/dist/components/chat/Markdown.mjs.map +0 -1
- package/dist/components/chat/Messages.d.ts +0 -13
- package/dist/components/chat/Messages.js +0 -1242
- package/dist/components/chat/Messages.js.map +0 -1
- package/dist/components/chat/Messages.mjs +0 -20
- package/dist/components/chat/Messages.mjs.map +0 -1
- package/dist/components/chat/Modal.d.ts +0 -51
- package/dist/components/chat/Modal.js +0 -3294
- package/dist/components/chat/Modal.js.map +0 -1
- package/dist/components/chat/Modal.mjs +0 -38
- package/dist/components/chat/Modal.mjs.map +0 -1
- package/dist/components/chat/Popup.d.ts +0 -13
- package/dist/components/chat/Popup.js +0 -3305
- package/dist/components/chat/Popup.js.map +0 -1
- package/dist/components/chat/Popup.mjs +0 -39
- package/dist/components/chat/Popup.mjs.map +0 -1
- package/dist/components/chat/PoweredByTag.d.ts +0 -7
- package/dist/components/chat/PoweredByTag.js +0 -63
- package/dist/components/chat/PoweredByTag.js.map +0 -1
- package/dist/components/chat/PoweredByTag.mjs +0 -9
- package/dist/components/chat/PoweredByTag.mjs.map +0 -1
- package/dist/components/chat/Sidebar.d.ts +0 -13
- package/dist/components/chat/Sidebar.js +0 -3314
- package/dist/components/chat/Sidebar.js.map +0 -1
- package/dist/components/chat/Sidebar.mjs +0 -39
- package/dist/components/chat/Sidebar.mjs.map +0 -1
- package/dist/components/chat/Suggestion.d.ts +0 -12
- package/dist/components/chat/Suggestion.js +0 -68
- package/dist/components/chat/Suggestion.js.map +0 -1
- package/dist/components/chat/Suggestion.mjs +0 -9
- package/dist/components/chat/Suggestion.mjs.map +0 -1
- package/dist/components/chat/Suggestions.d.ts +0 -9
- package/dist/components/chat/Suggestions.js +0 -93
- package/dist/components/chat/Suggestions.js.map +0 -1
- package/dist/components/chat/Suggestions.mjs +0 -10
- package/dist/components/chat/Suggestions.mjs.map +0 -1
- package/dist/components/chat/Textarea.d.ts +0 -15
- package/dist/components/chat/Textarea.js +0 -87
- package/dist/components/chat/Textarea.js.map +0 -1
- package/dist/components/chat/Textarea.mjs +0 -8
- package/dist/components/chat/Textarea.mjs.map +0 -1
- package/dist/components/chat/Window.d.ts +0 -9
- package/dist/components/chat/Window.js +0 -166
- package/dist/components/chat/Window.js.map +0 -1
- package/dist/components/chat/Window.mjs +0 -10
- package/dist/components/chat/Window.mjs.map +0 -1
- package/dist/components/chat/index.d.ts +0 -18
- package/dist/components/chat/index.js +0 -3341
- package/dist/components/chat/index.js.map +0 -1
- package/dist/components/chat/index.mjs +0 -69
- package/dist/components/chat/index.mjs.map +0 -1
- package/dist/components/chat/messages/AssistantMessage.d.ts +0 -9
- package/dist/components/chat/messages/AssistantMessage.js +0 -807
- package/dist/components/chat/messages/AssistantMessage.js.map +0 -1
- package/dist/components/chat/messages/AssistantMessage.mjs +0 -13
- package/dist/components/chat/messages/AssistantMessage.mjs.map +0 -1
- package/dist/components/chat/messages/ErrorMessage.d.ts +0 -9
- package/dist/components/chat/messages/ErrorMessage.js +0 -756
- package/dist/components/chat/messages/ErrorMessage.js.map +0 -1
- package/dist/components/chat/messages/ErrorMessage.mjs +0 -72
- package/dist/components/chat/messages/ErrorMessage.mjs.map +0 -1
- package/dist/components/chat/messages/ImageRenderer.d.ts +0 -12
- package/dist/components/chat/messages/ImageRenderer.js +0 -68
- package/dist/components/chat/messages/ImageRenderer.js.map +0 -1
- package/dist/components/chat/messages/ImageRenderer.mjs +0 -8
- package/dist/components/chat/messages/ImageRenderer.mjs.map +0 -1
- package/dist/components/chat/messages/LegacyRenderMessage.d.ts +0 -28
- package/dist/components/chat/messages/LegacyRenderMessage.js +0 -1067
- package/dist/components/chat/messages/LegacyRenderMessage.js.map +0 -1
- package/dist/components/chat/messages/LegacyRenderMessage.mjs +0 -17
- package/dist/components/chat/messages/LegacyRenderMessage.mjs.map +0 -1
- package/dist/components/chat/messages/RenderMessage.d.ts +0 -9
- package/dist/components/chat/messages/RenderMessage.js +0 -942
- package/dist/components/chat/messages/RenderMessage.js.map +0 -1
- package/dist/components/chat/messages/RenderMessage.mjs +0 -16
- package/dist/components/chat/messages/RenderMessage.mjs.map +0 -1
- package/dist/components/chat/messages/UserMessage.d.ts +0 -9
- package/dist/components/chat/messages/UserMessage.js +0 -58
- package/dist/components/chat/messages/UserMessage.js.map +0 -1
- package/dist/components/chat/messages/UserMessage.mjs +0 -8
- package/dist/components/chat/messages/UserMessage.mjs.map +0 -1
- package/dist/components/chat/props.d.ts +0 -298
- package/dist/components/chat/props.js +0 -19
- package/dist/components/chat/props.js.map +0 -1
- package/dist/components/chat/props.mjs +0 -2
- package/dist/components/chat/props.mjs.map +0 -1
- package/dist/components/dev-console/console.d.ts +0 -11
- package/dist/components/dev-console/console.js +0 -595
- package/dist/components/dev-console/console.js.map +0 -1
- package/dist/components/dev-console/console.mjs +0 -17
- package/dist/components/dev-console/console.mjs.map +0 -1
- package/dist/components/dev-console/icons.d.ts +0 -9
- package/dist/components/dev-console/icons.js +0 -140
- package/dist/components/dev-console/icons.js.map +0 -1
- package/dist/components/dev-console/icons.mjs +0 -16
- package/dist/components/dev-console/icons.mjs.map +0 -1
- package/dist/components/dev-console/index.d.ts +0 -3
- package/dist/components/dev-console/index.js +0 -595
- package/dist/components/dev-console/index.js.map +0 -1
- package/dist/components/dev-console/index.mjs +0 -18
- package/dist/components/dev-console/index.mjs.map +0 -1
- package/dist/components/dev-console/types.d.ts +0 -9
- package/dist/components/dev-console/types.js +0 -19
- package/dist/components/dev-console/types.js.map +0 -1
- package/dist/components/dev-console/types.mjs +0 -1
- package/dist/components/dev-console/types.mjs.map +0 -1
- package/dist/components/dev-console/utils.d.ts +0 -10
- package/dist/components/dev-console/utils.js +0 -183
- package/dist/components/dev-console/utils.js.map +0 -1
- package/dist/components/dev-console/utils.mjs +0 -16
- package/dist/components/dev-console/utils.mjs.map +0 -1
- package/dist/components/help-modal/icons.d.ts +0 -9
- package/dist/components/help-modal/icons.js +0 -116
- package/dist/components/help-modal/icons.js.map +0 -1
- package/dist/components/help-modal/icons.mjs +0 -12
- package/dist/components/help-modal/icons.mjs.map +0 -1
- package/dist/components/help-modal/index.d.ts +0 -2
- package/dist/components/help-modal/index.js +0 -144
- package/dist/components/help-modal/index.js.map +0 -1
- package/dist/components/help-modal/index.mjs +0 -10
- package/dist/components/help-modal/index.mjs.map +0 -1
- package/dist/components/help-modal/modal.d.ts +0 -5
- package/dist/components/help-modal/modal.js +0 -142
- package/dist/components/help-modal/modal.js.map +0 -1
- package/dist/components/help-modal/modal.mjs +0 -9
- package/dist/components/help-modal/modal.mjs.map +0 -1
- package/dist/components/index.d.ts +0 -19
- package/dist/components/index.js +0 -3345
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.mjs +0 -76
- package/dist/components/index.mjs.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.js +0 -19
- package/dist/context/index.js.map +0 -1
- package/dist/context/index.mjs +0 -2
- package/dist/context/index.mjs.map +0 -1
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.js +0 -36
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -9
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/hooks/use-copilot-chat-suggestions.d.ts +0 -66
- package/dist/hooks/use-copilot-chat-suggestions.js +0 -34
- package/dist/hooks/use-copilot-chat-suggestions.js.map +0 -1
- package/dist/hooks/use-copilot-chat-suggestions.mjs +0 -8
- package/dist/hooks/use-copilot-chat-suggestions.mjs.map +0 -1
- package/dist/hooks/use-copy-to-clipboard.d.ts +0 -9
- package/dist/hooks/use-copy-to-clipboard.js +0 -62
- package/dist/hooks/use-copy-to-clipboard.js.map +0 -1
- package/dist/hooks/use-copy-to-clipboard.mjs +0 -8
- package/dist/hooks/use-copy-to-clipboard.mjs.map +0 -1
- package/dist/hooks/use-dark-mode.d.ts +0 -3
- package/dist/hooks/use-dark-mode.js +0 -35
- package/dist/hooks/use-dark-mode.js.map +0 -1
- package/dist/hooks/use-dark-mode.mjs +0 -8
- package/dist/hooks/use-dark-mode.mjs.map +0 -1
- package/dist/hooks/use-push-to-talk.d.ts +0 -19
- package/dist/hooks/use-push-to-talk.js +0 -202
- package/dist/hooks/use-push-to-talk.js.map +0 -1
- package/dist/hooks/use-push-to-talk.mjs +0 -12
- package/dist/hooks/use-push-to-talk.mjs.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.js +0 -3354
- package/dist/index.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -4
- package/dist/lib/utils.js +0 -76
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/utils.mjs +0 -34
- package/dist/lib/utils.mjs.map +0 -1
- package/dist/types/css.d.ts +0 -22
- package/dist/types/css.js +0 -19
- package/dist/types/css.js.map +0 -1
- package/dist/types/css.mjs +0 -1
- package/dist/types/css.mjs.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.js +0 -19
- package/dist/types/index.js.map +0 -1
- package/dist/types/index.mjs +0 -2
- package/dist/types/index.mjs.map +0 -1
- package/dist/types/suggestions.d.ts +0 -9
- package/dist/types/suggestions.js +0 -19
- package/dist/types/suggestions.js.map +0 -1
- package/dist/types/suggestions.mjs +0 -1
- package/dist/types/suggestions.mjs.map +0 -1
- package/dist/v2/index.css +0 -4
- package/dist/v2/index.css.map +0 -1
- package/dist/v2/index.d.ts +0 -2
- package/dist/v2/index.js +0 -2
- package/dist/v2/index.js.map +0 -1
- package/dist/v2/index.mjs +0 -2
- package/dist/v2/index.mjs.map +0 -1
- package/jest.config.js +0 -5
- package/rollup.config.mjs +0 -64
- package/tsup.config.ts +0 -15
package/package.json
CHANGED
|
@@ -9,39 +9,37 @@
|
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
12
|
+
"type": "module",
|
|
13
|
+
"version": "1.51.5-next.2",
|
|
13
14
|
"sideEffects": [
|
|
14
15
|
"**/*.css"
|
|
15
16
|
],
|
|
16
|
-
"main": "./dist/index.
|
|
17
|
+
"main": "./dist/index.cjs",
|
|
17
18
|
"module": "./dist/index.mjs",
|
|
18
19
|
"exports": {
|
|
19
20
|
".": {
|
|
20
21
|
"import": "./dist/index.mjs",
|
|
21
|
-
"require": "./dist/index.
|
|
22
|
-
"types": "./dist/index.d.ts"
|
|
22
|
+
"require": "./dist/index.cjs"
|
|
23
23
|
},
|
|
24
|
-
"./
|
|
25
|
-
"./
|
|
24
|
+
"./package.json": "./package.json",
|
|
25
|
+
"./styles.css": "./dist/index.css"
|
|
26
26
|
},
|
|
27
27
|
"unpkg": "./dist/index.umd.js",
|
|
28
28
|
"jsdelivr": "./dist/index.umd.js",
|
|
29
|
-
"types": "./dist/index.d.
|
|
29
|
+
"types": "./dist/index.d.cts",
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": "^18 || ^19 || ^19.0.0-rc"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/jest": "^29.5.4",
|
|
36
35
|
"@types/react": "^19.1.0",
|
|
37
36
|
"@types/react-syntax-highlighter": "^15.5.7",
|
|
38
37
|
"eslint": "^8.56.0",
|
|
39
|
-
"jest": "^29.6.4",
|
|
40
38
|
"postcss": "^8.4.20",
|
|
41
39
|
"react": "^18.2.0",
|
|
42
40
|
"tailwindcss": "^3.3.0",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
41
|
+
"vitest": "^3.2.4",
|
|
42
|
+
"tsdown": "^0.20.3",
|
|
45
43
|
"typescript": "^5.2.3",
|
|
46
44
|
"eslint-config-custom": "1.4.8",
|
|
47
45
|
"tailwind-config": "1.4.8",
|
|
@@ -54,9 +52,9 @@
|
|
|
54
52
|
"rehype-raw": "^7.0.0",
|
|
55
53
|
"remark-gfm": "^4.0.1",
|
|
56
54
|
"remark-math": "^6.0.0",
|
|
57
|
-
"@copilotkit/react-core": "1.51.5-next.
|
|
58
|
-
"@copilotkit/runtime-client-gql": "1.51.5-next.
|
|
59
|
-
"@copilotkit/shared": "1.51.5-next.
|
|
55
|
+
"@copilotkit/react-core": "1.51.5-next.2",
|
|
56
|
+
"@copilotkit/runtime-client-gql": "1.51.5-next.2",
|
|
57
|
+
"@copilotkit/shared": "1.51.5-next.2"
|
|
60
58
|
},
|
|
61
59
|
"keywords": [
|
|
62
60
|
"copilotkit",
|
|
@@ -71,11 +69,14 @@
|
|
|
71
69
|
"textarea"
|
|
72
70
|
],
|
|
73
71
|
"scripts": {
|
|
74
|
-
"build": "
|
|
75
|
-
"dev": "
|
|
76
|
-
"test": "
|
|
72
|
+
"build": "tsdown",
|
|
73
|
+
"dev": "tsdown --watch",
|
|
74
|
+
"test": "vitest run",
|
|
75
|
+
"test:watch": "vitest",
|
|
77
76
|
"check-types": "tsc --noEmit",
|
|
78
77
|
"link:global": "pnpm link --global",
|
|
79
|
-
"unlink:global": "pnpm unlink --global"
|
|
78
|
+
"unlink:global": "pnpm unlink --global",
|
|
79
|
+
"publint": "publint .",
|
|
80
|
+
"attw": "attw --pack . --profile node16"
|
|
80
81
|
}
|
|
81
82
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* A chatbot popup component for the CopilotKit framework. The component allows for a high degree
|
|
6
6
|
* of customization through various props and custom CSS.
|
|
7
7
|
*
|
|
8
|
-
* See [CopilotSidebar](/reference/components/chat/CopilotSidebar) for a sidebar version of this component.
|
|
8
|
+
* See [CopilotSidebar](/reference/v1/components/chat/CopilotSidebar) for a sidebar version of this component.
|
|
9
9
|
*
|
|
10
10
|
* ## Install Dependencies
|
|
11
11
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* A chatbot sidebar component for the CopilotKit framework. Highly customizable through various props and custom CSS.
|
|
6
6
|
*
|
|
7
|
-
* See [CopilotPopup](/reference/components/chat/CopilotPopup) for a popup version of this component.
|
|
7
|
+
* See [CopilotPopup](/reference/v1/components/chat/CopilotPopup) for a popup version of this component.
|
|
8
8
|
*
|
|
9
9
|
* ## Install Dependencies
|
|
10
10
|
*
|
package/tsdown.config.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { defineConfig } from "tsdown";
|
|
2
|
+
|
|
3
|
+
export default defineConfig([
|
|
4
|
+
{
|
|
5
|
+
entry: ["src/index.tsx"],
|
|
6
|
+
format: ["esm", "cjs"],
|
|
7
|
+
dts: true,
|
|
8
|
+
sourcemap: true,
|
|
9
|
+
target: "es2022",
|
|
10
|
+
outDir: "dist",
|
|
11
|
+
external: [
|
|
12
|
+
"react",
|
|
13
|
+
"react-dom",
|
|
14
|
+
"@copilotkitnext/core",
|
|
15
|
+
"@copilotkitnext/react",
|
|
16
|
+
],
|
|
17
|
+
exports: {
|
|
18
|
+
customExports: (exports) => ({
|
|
19
|
+
...exports,
|
|
20
|
+
"./styles.css": "./dist/index.css",
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
entry: ["src/index.tsx"],
|
|
26
|
+
format: ["umd"],
|
|
27
|
+
globalName: "CopilotKitReactUI",
|
|
28
|
+
sourcemap: true,
|
|
29
|
+
target: "es2018",
|
|
30
|
+
outDir: "dist",
|
|
31
|
+
external: [
|
|
32
|
+
"react",
|
|
33
|
+
"react-dom",
|
|
34
|
+
"@copilotkit/react-core",
|
|
35
|
+
"@copilotkit/shared",
|
|
36
|
+
"@copilotkit/runtime-client-gql",
|
|
37
|
+
],
|
|
38
|
+
codeSplitting: false,
|
|
39
|
+
outputOptions(options) {
|
|
40
|
+
options.entryFileNames = "[name].umd.js";
|
|
41
|
+
options.globals = {
|
|
42
|
+
react: "React",
|
|
43
|
+
"react-dom": "ReactDOM",
|
|
44
|
+
"react/jsx-runtime": "ReactJsxRuntime",
|
|
45
|
+
"@copilotkit/react-core": "CopilotKitReactCore",
|
|
46
|
+
"@copilotkit/shared": "CopilotKitShared",
|
|
47
|
+
"@copilotkit/runtime-client-gql": "CopilotKitRuntimeClientGQL",
|
|
48
|
+
"@headlessui/react": "HeadlessUIReact",
|
|
49
|
+
"react-markdown": "ReactMarkdown",
|
|
50
|
+
"react-syntax-highlighter": "ReactSyntaxHighlighter",
|
|
51
|
+
"remark-gfm": "remarkGfm",
|
|
52
|
+
"remark-math": "remarkMath",
|
|
53
|
+
"rehype-raw": "rehypeRaw",
|
|
54
|
+
};
|
|
55
|
+
return options;
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
]);
|
package/dist/chunk-2QEDCM6H.mjs
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__async,
|
|
3
|
-
__spreadValues
|
|
4
|
-
} from "./chunk-MRXNTQOX.mjs";
|
|
5
|
-
|
|
6
|
-
// src/hooks/use-push-to-talk.tsx
|
|
7
|
-
import {
|
|
8
|
-
useCopilotContext,
|
|
9
|
-
useCopilotMessagesContext
|
|
10
|
-
} from "@copilotkit/react-core";
|
|
11
|
-
import { gqlToAGUI } from "@copilotkit/runtime-client-gql";
|
|
12
|
-
import { useEffect, useRef, useState } from "react";
|
|
13
|
-
var checkMicrophonePermission = () => __async(void 0, null, function* () {
|
|
14
|
-
try {
|
|
15
|
-
const permissionStatus = yield navigator.permissions.query({
|
|
16
|
-
name: "microphone"
|
|
17
|
-
});
|
|
18
|
-
if (permissionStatus.state === "granted") {
|
|
19
|
-
return true;
|
|
20
|
-
} else {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
} catch (err) {
|
|
24
|
-
console.error("Error checking microphone permission", err);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
var requestMicAndPlaybackPermission = () => __async(void 0, null, function* () {
|
|
28
|
-
try {
|
|
29
|
-
const stream = yield navigator.mediaDevices.getUserMedia({ audio: true });
|
|
30
|
-
const audioContext = new window.AudioContext();
|
|
31
|
-
yield audioContext.resume();
|
|
32
|
-
return { stream, audioContext };
|
|
33
|
-
} catch (err) {
|
|
34
|
-
console.error("Error requesting microphone and playback permissions", err);
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
var startRecording = (mediaStreamRef, mediaRecorderRef, audioContextRef, recordedChunks, onStop) => __async(void 0, null, function* () {
|
|
39
|
-
if (!mediaStreamRef.current || !audioContextRef.current) {
|
|
40
|
-
mediaStreamRef.current = yield navigator.mediaDevices.getUserMedia({
|
|
41
|
-
audio: true
|
|
42
|
-
});
|
|
43
|
-
audioContextRef.current = new window.AudioContext();
|
|
44
|
-
yield audioContextRef.current.resume();
|
|
45
|
-
}
|
|
46
|
-
mediaRecorderRef.current = new MediaRecorder(mediaStreamRef.current);
|
|
47
|
-
mediaRecorderRef.current.start(1e3);
|
|
48
|
-
mediaRecorderRef.current.ondataavailable = (event) => {
|
|
49
|
-
recordedChunks.push(event.data);
|
|
50
|
-
};
|
|
51
|
-
mediaRecorderRef.current.onstop = onStop;
|
|
52
|
-
});
|
|
53
|
-
var stopRecording = (mediaRecorderRef) => {
|
|
54
|
-
if (mediaRecorderRef.current && mediaRecorderRef.current.state !== "inactive") {
|
|
55
|
-
mediaRecorderRef.current.stop();
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
var transcribeAudio = (recordedChunks, transcribeAudioUrl) => __async(void 0, null, function* () {
|
|
59
|
-
const completeBlob = new Blob(recordedChunks, { type: "audio/mp4" });
|
|
60
|
-
const formData = new FormData();
|
|
61
|
-
formData.append("file", completeBlob, "recording.mp4");
|
|
62
|
-
const response = yield fetch(transcribeAudioUrl, {
|
|
63
|
-
method: "POST",
|
|
64
|
-
body: formData
|
|
65
|
-
});
|
|
66
|
-
if (!response.ok) {
|
|
67
|
-
throw new Error(`Error: ${response.statusText}`);
|
|
68
|
-
}
|
|
69
|
-
const transcription = yield response.json();
|
|
70
|
-
return transcription.text;
|
|
71
|
-
});
|
|
72
|
-
var playAudioResponse = (text, textToSpeechUrl, audioContext) => {
|
|
73
|
-
const encodedText = encodeURIComponent(text);
|
|
74
|
-
const url = `${textToSpeechUrl}?text=${encodedText}`;
|
|
75
|
-
fetch(url).then((response) => response.arrayBuffer()).then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer)).then((audioBuffer) => {
|
|
76
|
-
const source = audioContext.createBufferSource();
|
|
77
|
-
source.buffer = audioBuffer;
|
|
78
|
-
source.connect(audioContext.destination);
|
|
79
|
-
source.start(0);
|
|
80
|
-
}).catch((error) => {
|
|
81
|
-
console.error("Error with decoding audio data", error);
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
var usePushToTalk = ({
|
|
85
|
-
sendFunction,
|
|
86
|
-
inProgress
|
|
87
|
-
}) => {
|
|
88
|
-
const [pushToTalkState, setPushToTalkState] = useState("idle");
|
|
89
|
-
const mediaStreamRef = useRef(null);
|
|
90
|
-
const audioContextRef = useRef(null);
|
|
91
|
-
const mediaRecorderRef = useRef(null);
|
|
92
|
-
const recordedChunks = useRef([]);
|
|
93
|
-
const generalContext = useCopilotContext();
|
|
94
|
-
const messagesContext = useCopilotMessagesContext();
|
|
95
|
-
const context = __spreadValues(__spreadValues({}, generalContext), messagesContext);
|
|
96
|
-
const [startReadingFromMessageId, setStartReadingFromMessageId] = useState(null);
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
if (pushToTalkState === "recording") {
|
|
99
|
-
startRecording(
|
|
100
|
-
mediaStreamRef,
|
|
101
|
-
mediaRecorderRef,
|
|
102
|
-
audioContextRef,
|
|
103
|
-
recordedChunks.current,
|
|
104
|
-
() => {
|
|
105
|
-
setPushToTalkState("transcribing");
|
|
106
|
-
}
|
|
107
|
-
);
|
|
108
|
-
} else {
|
|
109
|
-
stopRecording(mediaRecorderRef);
|
|
110
|
-
if (pushToTalkState === "transcribing") {
|
|
111
|
-
transcribeAudio(
|
|
112
|
-
recordedChunks.current,
|
|
113
|
-
context.copilotApiConfig.transcribeAudioUrl
|
|
114
|
-
).then((transcription) => __async(void 0, null, function* () {
|
|
115
|
-
recordedChunks.current = [];
|
|
116
|
-
setPushToTalkState("idle");
|
|
117
|
-
const message = yield sendFunction(transcription);
|
|
118
|
-
setStartReadingFromMessageId(message.id);
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return () => {
|
|
123
|
-
stopRecording(mediaRecorderRef);
|
|
124
|
-
};
|
|
125
|
-
}, [pushToTalkState]);
|
|
126
|
-
useEffect(() => {
|
|
127
|
-
if (inProgress === false && startReadingFromMessageId) {
|
|
128
|
-
const lastMessageIndex = context.messages.findIndex(
|
|
129
|
-
(message) => message.id === startReadingFromMessageId
|
|
130
|
-
);
|
|
131
|
-
const aguiMessages = gqlToAGUI(context.messages);
|
|
132
|
-
const messagesAfterLast = aguiMessages.slice(lastMessageIndex + 1).filter((message) => message.role === "assistant");
|
|
133
|
-
const text = messagesAfterLast.map((message) => message.content).join("\n");
|
|
134
|
-
playAudioResponse(
|
|
135
|
-
text,
|
|
136
|
-
context.copilotApiConfig.textToSpeechUrl,
|
|
137
|
-
audioContextRef.current
|
|
138
|
-
);
|
|
139
|
-
setStartReadingFromMessageId(null);
|
|
140
|
-
}
|
|
141
|
-
}, [startReadingFromMessageId, inProgress]);
|
|
142
|
-
return { pushToTalkState, setPushToTalkState };
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
export {
|
|
146
|
-
checkMicrophonePermission,
|
|
147
|
-
requestMicAndPlaybackPermission,
|
|
148
|
-
usePushToTalk
|
|
149
|
-
};
|
|
150
|
-
//# sourceMappingURL=chunk-2QEDCM6H.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-push-to-talk.tsx"],"sourcesContent":["import {\n useCopilotContext,\n useCopilotMessagesContext,\n} 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({\n audio: true,\n });\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 = (\n mediaRecorderRef: MutableRefObject<MediaRecorder | null>,\n) => {\n if (\n mediaRecorderRef.current &&\n mediaRecorderRef.current.state !== \"inactive\"\n ) {\n mediaRecorderRef.current.stop();\n }\n};\n\nconst transcribeAudio = async (\n recordedChunks: Blob[],\n transcribeAudioUrl: string,\n) => {\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 = (\n text: string,\n textToSpeechUrl: string,\n audioContext: AudioContext,\n) => {\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] =\n 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<\n string | null\n >(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(\n recordedChunks.current,\n context.copilotApiConfig.transcribeAudioUrl!,\n ).then(async (transcription) => {\n recordedChunks.current = [];\n setPushToTalkState(\"idle\");\n const message = await sendFunction(transcription);\n setStartReadingFromMessageId(message.id);\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\n .map((message) => message.content)\n .join(\"\\n\");\n playAudioResponse(\n text,\n context.copilotApiConfig.textToSpeechUrl!,\n audioContextRef.current!,\n );\n\n setStartReadingFromMessageId(null);\n }\n }, [startReadingFromMessageId, inProgress]);\n\n return { pushToTalkState, setPushToTalkState };\n};\n"],"mappings":"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","names":[]}
|
package/dist/chunk-6SMTHXVA.mjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// src/hooks/use-copy-to-clipboard.tsx
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
function useCopyToClipboard({
|
|
4
|
-
timeout = 2e3
|
|
5
|
-
}) {
|
|
6
|
-
const [isCopied, setIsCopied] = React.useState(false);
|
|
7
|
-
const copyToClipboard = (value) => {
|
|
8
|
-
var _a;
|
|
9
|
-
if (typeof window === "undefined" || !((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
if (!value) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
navigator.clipboard.writeText(value).then(() => {
|
|
16
|
-
setIsCopied(true);
|
|
17
|
-
setTimeout(() => {
|
|
18
|
-
setIsCopied(false);
|
|
19
|
-
}, timeout);
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
return { isCopied, copyToClipboard };
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export {
|
|
26
|
-
useCopyToClipboard
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=chunk-6SMTHXVA.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-copy-to-clipboard.tsx"],"sourcesContent":["import * as React from \"react\";\n\nexport interface useCopyToClipboardProps {\n timeout?: number;\n}\n\nexport function useCopyToClipboard({\n timeout = 2000,\n}: useCopyToClipboardProps) {\n const [isCopied, setIsCopied] = React.useState<Boolean>(false);\n\n const copyToClipboard = (value: string) => {\n if (typeof window === \"undefined\" || !navigator.clipboard?.writeText) {\n return;\n }\n\n if (!value) {\n return;\n }\n\n navigator.clipboard.writeText(value).then(() => {\n setIsCopied(true);\n\n setTimeout(() => {\n setIsCopied(false);\n }, timeout);\n });\n };\n\n return { isCopied, copyToClipboard };\n}\n"],"mappings":";AAAA,YAAY,WAAW;AAMhB,SAAS,mBAAmB;AAAA,EACjC,UAAU;AACZ,GAA4B;AAC1B,QAAM,CAAC,UAAU,WAAW,IAAU,eAAkB,KAAK;AAE7D,QAAM,kBAAkB,CAAC,UAAkB;AAX7C;AAYI,QAAI,OAAO,WAAW,eAAe,GAAC,eAAU,cAAV,mBAAqB,YAAW;AACpE;AAAA,IACF;AAEA,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AAEA,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC9C,kBAAY,IAAI;AAEhB,iBAAW,MAAM;AACf,oBAAY,KAAK;AAAA,MACnB,GAAG,OAAO;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACrC;","names":[]}
|
package/dist/chunk-6TLDRWAD.mjs
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ActivityIcon,
|
|
3
|
-
CloseIcon,
|
|
4
|
-
CopyIcon,
|
|
5
|
-
HeaderCloseIcon,
|
|
6
|
-
MicrophoneIcon,
|
|
7
|
-
OpenIcon,
|
|
8
|
-
RegenerateIcon,
|
|
9
|
-
SendIcon,
|
|
10
|
-
SpinnerIcon,
|
|
11
|
-
StopIcon,
|
|
12
|
-
ThumbsDownIcon,
|
|
13
|
-
ThumbsUpIcon,
|
|
14
|
-
UploadIcon
|
|
15
|
-
} from "./chunk-GBAPANZE.mjs";
|
|
16
|
-
import {
|
|
17
|
-
__spreadValues
|
|
18
|
-
} from "./chunk-MRXNTQOX.mjs";
|
|
19
|
-
|
|
20
|
-
// src/components/chat/ChatContext.tsx
|
|
21
|
-
import React, { useMemo } from "react";
|
|
22
|
-
import { jsx } from "react/jsx-runtime";
|
|
23
|
-
var ChatContext = React.createContext(
|
|
24
|
-
void 0
|
|
25
|
-
);
|
|
26
|
-
function useChatContext() {
|
|
27
|
-
const context = React.useContext(ChatContext);
|
|
28
|
-
if (context === void 0) {
|
|
29
|
-
throw new Error(
|
|
30
|
-
"Context not found. Did you forget to wrap your app in a <ChatContextProvider> component?"
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
return context;
|
|
34
|
-
}
|
|
35
|
-
var ChatContextProvider = ({
|
|
36
|
-
// temperature,
|
|
37
|
-
// instructions,
|
|
38
|
-
// maxFeedback,
|
|
39
|
-
labels,
|
|
40
|
-
icons,
|
|
41
|
-
children,
|
|
42
|
-
open,
|
|
43
|
-
setOpen
|
|
44
|
-
}) => {
|
|
45
|
-
const memoizedLabels = useMemo(
|
|
46
|
-
() => __spreadValues(__spreadValues({}, {
|
|
47
|
-
initial: "",
|
|
48
|
-
title: "CopilotKit",
|
|
49
|
-
placeholder: "Type a message...",
|
|
50
|
-
error: "\u274C An error occurred. Please try again.",
|
|
51
|
-
stopGenerating: "Stop generating",
|
|
52
|
-
regenerateResponse: "Regenerate response",
|
|
53
|
-
copyToClipboard: "Copy to clipboard",
|
|
54
|
-
thumbsUp: "Thumbs up",
|
|
55
|
-
thumbsDown: "Thumbs down",
|
|
56
|
-
copied: "Copied!"
|
|
57
|
-
}), labels),
|
|
58
|
-
[labels]
|
|
59
|
-
);
|
|
60
|
-
const memoizedIcons = useMemo(
|
|
61
|
-
() => __spreadValues(__spreadValues({}, {
|
|
62
|
-
openIcon: OpenIcon,
|
|
63
|
-
closeIcon: CloseIcon,
|
|
64
|
-
headerCloseIcon: HeaderCloseIcon,
|
|
65
|
-
sendIcon: SendIcon,
|
|
66
|
-
activityIcon: ActivityIcon,
|
|
67
|
-
spinnerIcon: SpinnerIcon,
|
|
68
|
-
stopIcon: StopIcon,
|
|
69
|
-
regenerateIcon: RegenerateIcon,
|
|
70
|
-
pushToTalkIcon: MicrophoneIcon,
|
|
71
|
-
copyIcon: CopyIcon,
|
|
72
|
-
thumbsUpIcon: ThumbsUpIcon,
|
|
73
|
-
thumbsDownIcon: ThumbsDownIcon,
|
|
74
|
-
uploadIcon: UploadIcon
|
|
75
|
-
}), icons),
|
|
76
|
-
[icons]
|
|
77
|
-
);
|
|
78
|
-
const context = useMemo(
|
|
79
|
-
() => ({
|
|
80
|
-
labels: memoizedLabels,
|
|
81
|
-
icons: memoizedIcons,
|
|
82
|
-
open,
|
|
83
|
-
setOpen
|
|
84
|
-
}),
|
|
85
|
-
[memoizedLabels, memoizedIcons, open, setOpen]
|
|
86
|
-
);
|
|
87
|
-
return /* @__PURE__ */ jsx(ChatContext.Provider, { value: context, children });
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
export {
|
|
91
|
-
ChatContext,
|
|
92
|
-
useChatContext,
|
|
93
|
-
ChatContextProvider
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=chunk-6TLDRWAD.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/chat/ChatContext.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\nimport * as DefaultIcons from \"./Icons\";\nimport { ThumbsDownIcon, ThumbsUpIcon } from \"./Icons\";\n\n/**\n * Icons for CopilotChat component.\n */\nexport interface CopilotChatIcons {\n /**\n * The icon to use for the open chat button.\n * @default <OpenIcon />\n */\n openIcon?: React.ReactNode;\n\n /**\n * The icon to use for the close chat button.\n * @default <CloseIcon />\n */\n closeIcon?: React.ReactNode;\n\n /**\n * The icon to use for the close chat button in the header.\n * @default <HeaderCloseIcon />\n */\n headerCloseIcon?: React.ReactNode;\n\n /**\n * The icon to use for the send button.\n * @default <SendIcon />\n */\n sendIcon?: React.ReactNode;\n\n /**\n * The icon to use for the activity indicator.\n * @default <ActivityIcon />\n */\n activityIcon?: React.ReactNode;\n\n /**\n * The icon to use for the spinner.\n * @default <SpinnerIcon />\n */\n spinnerIcon?: React.ReactNode;\n\n /**\n * The icon to use for the stop button.\n * @default <StopIcon />\n */\n stopIcon?: React.ReactNode;\n\n /**\n * The icon to use for the regenerate button.\n * @default <RegenerateIcon />\n */\n regenerateIcon?: React.ReactNode;\n\n /**\n * The icons to use for push to talk.\n * @default <PushToTalkIcon />\n */\n\n pushToTalkIcon?: React.ReactNode;\n\n /**\n * The icons to use for copy assistant response\n * @default <CopyIcon />\n */\n\n copyIcon?: React.ReactNode;\n\n /**\n * The icon to use for thumbs up/response approval.\n * @default <ThumbsUpIcon />\n */\n\n thumbsUpIcon?: React.ReactNode;\n\n /**\n * The icon to use for thumbs down/response rejection.\n * @default <ThumbsDownIcon />\n */\n\n thumbsDownIcon?: React.ReactNode;\n\n /**\n * The icon to use for the upload button.\n * @default <UploadIcon />\n */\n uploadIcon?: React.ReactNode;\n}\n\n/**\n * Labels for CopilotChat component.\n */\nexport interface CopilotChatLabels {\n /**\n * The initial message(s) to display in the chat window.\n */\n initial?: string | string[];\n\n /**\n * The title to display in the header.\n * @default \"CopilotKit\"\n */\n title?: string;\n\n /**\n * The placeholder to display in the input.\n * @default \"Type a message...\"\n */\n placeholder?: string;\n\n /**\n * The message to display when an error occurs.\n * @default \"❌ An error occurred. Please try again.\"\n */\n error?: string;\n\n /**\n * The label to display on the stop button.\n * @default \"Stop generating\"\n */\n stopGenerating?: string;\n\n /**\n * The label to display on the regenerate button.\n * @default \"Regenerate response\"\n */\n regenerateResponse?: string;\n\n /**\n * The label for the copy button.\n * @default \"Copy to clipboard\"\n */\n copyToClipboard?: string;\n\n /**\n * The label for the thumbs up button.\n * @default \"Thumbs up\"\n */\n thumbsUp?: string;\n\n /**\n * The label for the thumbs down button.\n * @default \"Thumbs down\"\n */\n thumbsDown?: string;\n\n /**\n * The text to display when content is copied.\n * @default \"Copied!\"\n */\n copied?: string;\n}\n\ninterface ChatContext {\n labels: Required<CopilotChatLabels>;\n icons: Required<CopilotChatIcons>;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nexport const ChatContext = React.createContext<ChatContext | undefined>(\n undefined,\n);\n\nexport function useChatContext(): ChatContext {\n const context = React.useContext(ChatContext);\n if (context === undefined) {\n throw new Error(\n \"Context not found. Did you forget to wrap your app in a <ChatContextProvider> component?\",\n );\n }\n return context;\n}\n\ninterface ChatContextProps {\n // temperature?: number;\n // instructions?: string;\n // maxFeedback?: number;\n labels?: CopilotChatLabels;\n icons?: CopilotChatIcons;\n children?: React.ReactNode;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nexport const ChatContextProvider = ({\n // temperature,\n // instructions,\n // maxFeedback,\n labels,\n icons,\n children,\n open,\n setOpen,\n}: ChatContextProps) => {\n const memoizedLabels = useMemo(\n () => ({\n ...{\n initial: \"\",\n title: \"CopilotKit\",\n placeholder: \"Type a message...\",\n error: \"❌ An error occurred. Please try again.\",\n stopGenerating: \"Stop generating\",\n regenerateResponse: \"Regenerate response\",\n copyToClipboard: \"Copy to clipboard\",\n thumbsUp: \"Thumbs up\",\n thumbsDown: \"Thumbs down\",\n copied: \"Copied!\",\n },\n ...labels,\n }),\n [labels],\n );\n\n const memoizedIcons = useMemo(\n () => ({\n ...{\n openIcon: DefaultIcons.OpenIcon,\n closeIcon: DefaultIcons.CloseIcon,\n headerCloseIcon: DefaultIcons.HeaderCloseIcon,\n sendIcon: DefaultIcons.SendIcon,\n activityIcon: DefaultIcons.ActivityIcon,\n spinnerIcon: DefaultIcons.SpinnerIcon,\n stopIcon: DefaultIcons.StopIcon,\n regenerateIcon: DefaultIcons.RegenerateIcon,\n pushToTalkIcon: DefaultIcons.MicrophoneIcon,\n copyIcon: DefaultIcons.CopyIcon,\n thumbsUpIcon: DefaultIcons.ThumbsUpIcon,\n thumbsDownIcon: DefaultIcons.ThumbsDownIcon,\n uploadIcon: DefaultIcons.UploadIcon,\n },\n ...icons,\n }),\n [icons],\n );\n\n const context = useMemo(\n () => ({\n labels: memoizedLabels,\n icons: memoizedIcons,\n open,\n setOpen,\n }),\n [memoizedLabels, memoizedIcons, open, setOpen],\n );\n\n return (\n <ChatContext.Provider value={context}>{children}</ChatContext.Provider>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,eAAyB;AAyPrC;AAvFG,IAAM,cAAc,MAAM;AAAA,EAC/B;AACF;AAEO,SAAS,iBAA8B;AAC5C,QAAM,UAAU,MAAM,WAAW,WAAW;AAC5C,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAaO,IAAM,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAAA,EAIlC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,QAAM,iBAAiB;AAAA,IACrB,MAAO,kCACF;AAAA,MACD,SAAS;AAAA,MACT,OAAO;AAAA,MACP,aAAa;AAAA,MACb,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,IACV,IACG;AAAA,IAEL,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,gBAAgB;AAAA,IACpB,MAAO,kCACF;AAAA,MACD,UAAuB;AAAA,MACvB,WAAwB;AAAA,MACxB,iBAA8B;AAAA,MAC9B,UAAuB;AAAA,MACvB,cAA2B;AAAA,MAC3B,aAA0B;AAAA,MAC1B,UAAuB;AAAA,MACvB,gBAA6B;AAAA,MAC7B,gBAA6B;AAAA,MAC7B,UAAuB;AAAA,MACvB,cAA2B;AAAA,MAC3B,gBAA6B;AAAA,MAC7B,YAAyB;AAAA,IAC3B,IACG;AAAA,IAEL,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,UAAU;AAAA,IACd,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,gBAAgB,eAAe,MAAM,OAAO;AAAA,EAC/C;AAEA,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,SAAU,UAAS;AAEpD;","names":[]}
|
package/dist/chunk-72FQQMQ2.mjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useChatContext
|
|
3
|
-
} from "./chunk-6TLDRWAD.mjs";
|
|
4
|
-
|
|
5
|
-
// src/components/chat/Button.tsx
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
var Button = ({}) => {
|
|
8
|
-
const { open, setOpen, icons } = useChatContext();
|
|
9
|
-
return /* @__PURE__ */ jsx("div", { onClick: () => setOpen(!open), children: /* @__PURE__ */ jsxs(
|
|
10
|
-
"button",
|
|
11
|
-
{
|
|
12
|
-
className: `copilotKitButton ${open ? "open" : ""}`,
|
|
13
|
-
"aria-label": open ? "Close Chat" : "Open Chat",
|
|
14
|
-
children: [
|
|
15
|
-
/* @__PURE__ */ jsx("div", { className: "copilotKitButtonIcon copilotKitButtonIconOpen", children: icons.openIcon }),
|
|
16
|
-
/* @__PURE__ */ jsx("div", { className: "copilotKitButtonIcon copilotKitButtonIconClose", children: icons.closeIcon })
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
) });
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
Button
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=chunk-72FQQMQ2.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/chat/Button.tsx"],"sourcesContent":["import { ButtonProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\n\nexport const Button = ({}: ButtonProps) => {\n const { open, setOpen, icons } = useChatContext();\n\n return (\n <div onClick={() => setOpen(!open)}>\n <button\n className={`copilotKitButton ${open ? \"open\" : \"\"}`}\n aria-label={open ? \"Close Chat\" : \"Open Chat\"}\n >\n <div className=\"copilotKitButtonIcon copilotKitButtonIconOpen\">\n {icons.openIcon}\n </div>\n <div className=\"copilotKitButtonIcon copilotKitButtonIconClose\">\n {icons.closeIcon}\n </div>\n </button>\n </div>\n );\n};\n"],"mappings":";;;;;AAQM,SAIE,KAJF;AALC,IAAM,SAAS,CAAC,CAAC,MAAmB;AACzC,QAAM,EAAE,MAAM,SAAS,MAAM,IAAI,eAAe;AAEhD,SACE,oBAAC,SAAI,SAAS,MAAM,QAAQ,CAAC,IAAI,GAC/B;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,oBAAoB,OAAO,SAAS;AAAA,MAC/C,cAAY,OAAO,eAAe;AAAA,MAElC;AAAA,4BAAC,SAAI,WAAU,iDACZ,gBAAM,UACT;AAAA,QACA,oBAAC,SAAI,WAAU,kDACZ,gBAAM,WACT;AAAA;AAAA;AAAA,EACF,GACF;AAEJ;","names":[]}
|
package/dist/chunk-AOUHT4JR.mjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useDarkMode
|
|
3
|
-
} from "./chunk-JGMFJZMG.mjs";
|
|
4
|
-
|
|
5
|
-
// src/components/chat/PoweredByTag.tsx
|
|
6
|
-
import { useState, useEffect } from "react";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
function PoweredByTag({
|
|
9
|
-
showPoweredBy = true
|
|
10
|
-
}) {
|
|
11
|
-
const [mounted, setMounted] = useState(false);
|
|
12
|
-
const isDark = useDarkMode();
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
setMounted(true);
|
|
15
|
-
}, []);
|
|
16
|
-
if (!showPoweredBy) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
const poweredByStyle = {
|
|
20
|
-
visibility: "visible",
|
|
21
|
-
display: "block",
|
|
22
|
-
position: "static",
|
|
23
|
-
textAlign: "center",
|
|
24
|
-
fontSize: "12px",
|
|
25
|
-
padding: "3px 0",
|
|
26
|
-
color: mounted && isDark ? "rgb(69, 69, 69)" : "rgb(214, 214, 214)"
|
|
27
|
-
};
|
|
28
|
-
return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "poweredBy", style: poweredByStyle, children: "Powered by CopilotKit" }) });
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
PoweredByTag
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=chunk-AOUHT4JR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/chat/PoweredByTag.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { useDarkMode } from \"../../hooks/use-dark-mode\";\n\nexport function PoweredByTag({\n showPoweredBy = true,\n}: {\n showPoweredBy?: boolean;\n}) {\n const [mounted, setMounted] = useState(false);\n const isDark = useDarkMode();\n\n /*\n note(tylerslaton):\n\n Ensure we only use the isDark computed value after client-side mount.\n This prevents hydration mismatches by using a default color on the\n server and initial client render, then updating to the correct\n dark mode color after hydration is complete.\n */\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!showPoweredBy) {\n return null;\n }\n\n const poweredByStyle = {\n visibility: \"visible\",\n display: \"block\",\n position: \"static\",\n textAlign: \"center\",\n fontSize: \"12px\",\n padding: \"3px 0\",\n color: mounted && isDark ? \"rgb(69, 69, 69)\" : \"rgb(214, 214, 214)\",\n };\n\n return (\n <div>\n {/*@ts-expect-error -- expecting position not to be a string, but it can be.*/}\n <p className=\"poweredBy\" style={poweredByStyle}>\n Powered by CopilotKit\n </p>\n </div>\n );\n}\n"],"mappings":";;;;;AAAA,SAAgB,UAAU,iBAAiB;AAwCrC;AArCC,SAAS,aAAa;AAAA,EAC3B,gBAAgB;AAClB,GAEG;AACD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,SAAS,YAAY;AAU3B,YAAU,MAAM;AACd,eAAW,IAAI;AAAA,EACjB,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,eAAe;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB;AAAA,IACrB,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO,WAAW,SAAS,oBAAoB;AAAA,EACjD;AAEA,SACE,oBAAC,SAEC,8BAAC,OAAE,WAAU,aAAY,OAAO,gBAAgB,mCAEhD,GACF;AAEJ;","names":[]}
|