@agentscope-ai/chat 1.1.4
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/README.md +88 -0
- package/dist/_util/hooks/use-proxy-imperative-handle.d.ts +4 -0
- package/dist/_util/hooks/use-proxy-imperative-handle.js +18 -0
- package/dist/_util/type.d.ts +1 -0
- package/dist/_util/type.js +1 -0
- package/dist/_util/warning.d.ts +30 -0
- package/dist/_util/warning.js +63 -0
- package/dist/accordion/Accordion.d.ts +22 -0
- package/dist/accordion/Accordion.js +93 -0
- package/dist/accordion/BodyContent.d.ts +8 -0
- package/dist/accordion/BodyContent.js +18 -0
- package/dist/accordion/DeepThink.d.ts +7 -0
- package/dist/accordion/DeepThink.js +35 -0
- package/dist/accordion/index.d.ts +2 -0
- package/dist/accordion/index.js +1 -0
- package/dist/accordion/index.less +170 -0
- package/dist/attachments/DropArea.d.ts +8 -0
- package/dist/attachments/DropArea.js +87 -0
- package/dist/attachments/FileList/AudioIcon.d.ts +2 -0
- package/dist/attachments/FileList/AudioIcon.js +19 -0
- package/dist/attachments/FileList/FileListCard.d.ts +12 -0
- package/dist/attachments/FileList/FileListCard.js +229 -0
- package/dist/attachments/FileList/Progress.d.ts +6 -0
- package/dist/attachments/FileList/Progress.js +21 -0
- package/dist/attachments/FileList/VideoIcon.d.ts +2 -0
- package/dist/attachments/FileList/VideoIcon.js +19 -0
- package/dist/attachments/FileList/index.d.ts +16 -0
- package/dist/attachments/FileList/index.js +132 -0
- package/dist/attachments/PlaceholderUploader.d.ts +17 -0
- package/dist/attachments/PlaceholderUploader.js +79 -0
- package/dist/attachments/SilentUploader.d.ts +9 -0
- package/dist/attachments/SilentUploader.js +23 -0
- package/dist/attachments/context.d.ts +5 -0
- package/dist/attachments/context.js +2 -0
- package/dist/attachments/index.d.ts +33 -0
- package/dist/attachments/index.js +166 -0
- package/dist/attachments/style/fileCard.d.ts +4 -0
- package/dist/attachments/style/fileCard.js +124 -0
- package/dist/attachments/style/index.d.ts +10 -0
- package/dist/attachments/style/index.js +211 -0
- package/dist/attachments/util.d.ts +2 -0
- package/dist/attachments/util.js +53 -0
- package/dist/bubble/Avatar.d.ts +10 -0
- package/dist/bubble/Avatar.js +22 -0
- package/dist/bubble/Bubble.d.ts +11 -0
- package/dist/bubble/Bubble.js +102 -0
- package/dist/bubble/BubbleList.d.ts +15 -0
- package/dist/bubble/BubbleList.js +44 -0
- package/dist/bubble/Cards.d.ts +21 -0
- package/dist/bubble/Cards.js +47 -0
- package/dist/bubble/ScrollToBottom.d.ts +7 -0
- package/dist/bubble/ScrollToBottom.js +45 -0
- package/dist/bubble/Spin.d.ts +2 -0
- package/dist/bubble/Spin.js +18 -0
- package/dist/bubble/hooks/useDisplayData.d.ts +0 -0
- package/dist/bubble/hooks/useDisplayData.js +0 -0
- package/dist/bubble/hooks/useListData.d.ts +0 -0
- package/dist/bubble/hooks/useListData.js +0 -0
- package/dist/bubble/index.d.ts +8 -0
- package/dist/bubble/index.js +4 -0
- package/dist/bubble/interface.d.ts +26 -0
- package/dist/bubble/interface.js +1 -0
- package/dist/bubble/loading.d.ts +6 -0
- package/dist/bubble/loading.js +17 -0
- package/dist/bubble/style/avatar.less +40 -0
- package/dist/bubble/style/content.d.ts +4 -0
- package/dist/bubble/style/content.js +43 -0
- package/dist/bubble/style/index.d.ts +9 -0
- package/dist/bubble/style/index.js +53 -0
- package/dist/bubble/style/list.less +15 -0
- package/dist/bubble/style/scrollToBottom.less +174 -0
- package/dist/chat-anywhere/Chat/Ref.d.ts +3 -0
- package/dist/chat-anywhere/Chat/Ref.js +19 -0
- package/dist/chat-anywhere/Chat/index.d.ts +4 -0
- package/dist/chat-anywhere/Chat/index.js +65 -0
- package/dist/chat-anywhere/Chat/index.less +54 -0
- package/dist/chat-anywhere/Header/index.d.ts +3 -0
- package/dist/chat-anywhere/Header/index.js +32 -0
- package/dist/chat-anywhere/Header/index.less +24 -0
- package/dist/chat-anywhere/Input/index.d.ts +3 -0
- package/dist/chat-anywhere/Input/index.js +170 -0
- package/dist/chat-anywhere/Input/index.less +12 -0
- package/dist/chat-anywhere/Layout/index.d.ts +10 -0
- package/dist/chat-anywhere/Layout/index.js +73 -0
- package/dist/chat-anywhere/Layout/index.less +61 -0
- package/dist/chat-anywhere/SessionList/index.d.ts +5 -0
- package/dist/chat-anywhere/SessionList/index.js +115 -0
- package/dist/chat-anywhere/SessionList/index.less +52 -0
- package/dist/chat-anywhere/hooks/ChatAnywhereProvider.d.ts +43 -0
- package/dist/chat-anywhere/hooks/ChatAnywhereProvider.js +90 -0
- package/dist/chat-anywhere/hooks/types.d.ts +57 -0
- package/dist/chat-anywhere/hooks/types.js +1 -0
- package/dist/chat-anywhere/hooks/useInput.d.ts +7 -0
- package/dist/chat-anywhere/hooks/useInput.js +21 -0
- package/dist/chat-anywhere/hooks/useMessages.d.ts +11 -0
- package/dist/chat-anywhere/hooks/useMessages.js +56 -0
- package/dist/chat-anywhere/hooks/useSessionList.d.ts +24 -0
- package/dist/chat-anywhere/hooks/useSessionList.js +120 -0
- package/dist/chat-anywhere/index.d.ts +9 -0
- package/dist/chat-anywhere/index.js +58 -0
- package/dist/conversations/GroupTitle.d.ts +10 -0
- package/dist/conversations/GroupTitle.js +15 -0
- package/dist/conversations/Item.d.ts +14 -0
- package/dist/conversations/Item.js +96 -0
- package/dist/conversations/hooks/useGroupable.d.ts +9 -0
- package/dist/conversations/hooks/useGroupable.js +72 -0
- package/dist/conversations/index.d.ts +62 -0
- package/dist/conversations/index.js +124 -0
- package/dist/conversations/interface.d.ts +60 -0
- package/dist/conversations/interface.js +1 -0
- package/dist/conversations/style/index.d.ts +9 -0
- package/dist/conversations/style/index.js +80 -0
- package/dist/default-cards/Count/index.d.ts +3 -0
- package/dist/default-cards/Count/index.js +16 -0
- package/dist/default-cards/Count/index.less +19 -0
- package/dist/default-cards/DeepThink/index.d.ts +11 -0
- package/dist/default-cards/DeepThink/index.js +11 -0
- package/dist/default-cards/DeepThink/index.less +0 -0
- package/dist/default-cards/Files/index.d.ts +2 -0
- package/dist/default-cards/Files/index.js +18 -0
- package/dist/default-cards/Footer/index.d.ts +19 -0
- package/dist/default-cards/Footer/index.js +50 -0
- package/dist/default-cards/Footer/index.less +41 -0
- package/dist/default-cards/Images/index.d.ts +3 -0
- package/dist/default-cards/Images/index.js +33 -0
- package/dist/default-cards/Images/index.less +17 -0
- package/dist/default-cards/Interrupted/index.d.ts +11 -0
- package/dist/default-cards/Interrupted/index.js +40 -0
- package/dist/default-cards/Interrupted/index.less +57 -0
- package/dist/default-cards/Text/index.d.ts +2 -0
- package/dist/default-cards/Text/index.js +12 -0
- package/dist/default-cards/index.d.ts +6 -0
- package/dist/default-cards/index.js +6 -0
- package/dist/disclaimer/index.d.ts +11 -0
- package/dist/disclaimer/index.js +26 -0
- package/dist/docs/1896.async.js +457 -0
- package/dist/docs/2710.async.js +62 -0
- package/dist/docs/2863.async.js +400 -0
- package/dist/docs/3057.async.js +46 -0
- package/dist/docs/3364.async.js +25 -0
- package/dist/docs/404.html +15 -0
- package/dist/docs/4820.async.js +1381 -0
- package/dist/docs/5623.async.js +60 -0
- package/dist/docs/5757.async.js +1 -0
- package/dist/docs/5804.async.js +271 -0
- package/dist/docs/6198.async.js +18 -0
- package/dist/docs/6671.async.js +137 -0
- package/dist/docs/7195.async.js +1 -0
- package/dist/docs/7485.async.js +29 -0
- package/dist/docs/7931.async.js +19 -0
- package/dist/docs/7997.async.js +5 -0
- package/dist/docs/8156.async.js +110 -0
- package/dist/docs/8368.async.js +2 -0
- package/dist/docs/8480.async.js +1449 -0
- package/dist/docs/8618.async.js +246 -0
- package/dist/docs/9016.async.js +32 -0
- package/dist/docs/9016.chunk.css +1 -0
- package/dist/docs/9335.async.js +11 -0
- package/dist/docs/accordion__demos.async.js +9 -0
- package/dist/docs/attachments__demos.async.js +1 -0
- package/dist/docs/bubble__demos.async.js +50 -0
- package/dist/docs/components/accordion/index.html +15 -0
- package/dist/docs/components/accordion-cn/index.html +15 -0
- package/dist/docs/components/attachments/index.html +15 -0
- package/dist/docs/components/attachments-cn/index.html +15 -0
- package/dist/docs/components/bubble/index.html +15 -0
- package/dist/docs/components/bubble-cn/index.html +15 -0
- package/dist/docs/components/bubble-list/index.html +15 -0
- package/dist/docs/components/bubble-list-cn/index.html +15 -0
- package/dist/docs/components/conversations/index.html +15 -0
- package/dist/docs/components/conversations-cn/index.html +15 -0
- package/dist/docs/components/disclaimer/index.html +15 -0
- package/dist/docs/components/disclaimer-cn/index.html +15 -0
- package/dist/docs/components/footer/index.html +15 -0
- package/dist/docs/components/footer-cn/index.html +15 -0
- package/dist/docs/components/markdown/index.html +15 -0
- package/dist/docs/components/markdown-cn/index.html +15 -0
- package/dist/docs/components/sender/index.html +15 -0
- package/dist/docs/components/sender-cn/index.html +15 -0
- package/dist/docs/components/status/index.html +15 -0
- package/dist/docs/components/status-cn/index.html +15 -0
- package/dist/docs/components/welcome/index.html +15 -0
- package/dist/docs/components/welcome-cn/index.html +15 -0
- package/dist/docs/components__accordion__index.en-US.md.async.js +6 -0
- package/dist/docs/components__accordion__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__accordion__index.zh-CN.md.async.js +6 -0
- package/dist/docs/components__accordion__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__attachments__index.en-US.md.async.js +1 -0
- package/dist/docs/components__attachments__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__attachments__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__attachments__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__bubble-list__index.en-US.md.async.js +2 -0
- package/dist/docs/components__bubble-list__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__bubble-list__index.zh-CN.md.async.js +2 -0
- package/dist/docs/components__bubble-list__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__bubble__index.en-US.md.async.js +1 -0
- package/dist/docs/components__bubble__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__bubble__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__bubble__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__conversations__index.en-US.md.async.js +2 -0
- package/dist/docs/components__conversations__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__conversations__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__conversations__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__disclaimer__index.en-US.md.async.js +1 -0
- package/dist/docs/components__disclaimer__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__disclaimer__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__disclaimer__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__footer__index.en-US.md.async.js +1 -0
- package/dist/docs/components__footer__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__footer__index.zh-CN.md.async.js +2 -0
- package/dist/docs/components__footer__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__markdown__index.en-US.md.async.js +1 -0
- package/dist/docs/components__markdown__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__markdown__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__markdown__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__sender__index.en-US.md.async.js +1 -0
- package/dist/docs/components__sender__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__sender__index.zh-CN.md.async.js +1 -0
- package/dist/docs/components__sender__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__status__index.en-US.md.async.js +1 -0
- package/dist/docs/components__status__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__status__index.zh-CN.md.async.js +2 -0
- package/dist/docs/components__status__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/components__welcome__index.en-US.md.async.js +2 -0
- package/dist/docs/components__welcome__index.en-US.md.chunk.css +1 -0
- package/dist/docs/components__welcome__index.zh-CN.md.async.js +2 -0
- package/dist/docs/components__welcome__index.zh-CN.md.chunk.css +1 -0
- package/dist/docs/conversations__demos.async.js +1 -0
- package/dist/docs/demos.async.js +47 -0
- package/dist/docs/demos.chunk.css +1 -0
- package/dist/docs/disclaimer__demos.async.js +1 -0
- package/dist/docs/docs/development/ag-ui/index.html +15 -0
- package/dist/docs/docs/development/ag-ui-cn/index.html +15 -0
- package/dist/docs/docs/development/backend/index.html +15 -0
- package/dist/docs/docs/development/backend-cn/index.html +15 -0
- package/dist/docs/docs/development/cards/index.html +15 -0
- package/dist/docs/docs/development/cards-cn/index.html +15 -0
- package/dist/docs/docs/development/chatanywhere/index.html +15 -0
- package/dist/docs/docs/development/chatanywhere-api/index.html +15 -0
- package/dist/docs/docs/development/chatanywhere-api-cn/index.html +15 -0
- package/dist/docs/docs/development/chatanywhere-cn/index.html +15 -0
- package/dist/docs/docs/development/custom/index.html +15 -0
- package/dist/docs/docs/development/custom-cn/index.html +15 -0
- package/dist/docs/docs/development/overview/index.html +15 -0
- package/dist/docs/docs/development/overview-cn/index.html +15 -0
- package/dist/docs/docs/development/qwen/index.html +15 -0
- package/dist/docs/docs/development/qwen-cn/index.html +15 -0
- package/dist/docs/docs/templates/copilot/index.html +15 -0
- package/dist/docs/docs/templates/copilot-cn/index.html +15 -0
- package/dist/docs/docs/templates/native/index.html +15 -0
- package/dist/docs/docs/templates/native-cn/index.html +15 -0
- package/dist/docs/docs/templates/voice/index.html +15 -0
- package/dist/docs/docs/templates/voice-cn/index.html +15 -0
- package/dist/docs/docs__development__ag-ui.en-US.md.async.js +210 -0
- package/dist/docs/docs__development__ag-ui.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__ag-ui.zh-CN.md.async.js +210 -0
- package/dist/docs/docs__development__ag-ui.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__backend.en-US.md.async.js +12 -0
- package/dist/docs/docs__development__backend.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__backend.zh-CN.md.async.js +12 -0
- package/dist/docs/docs__development__backend.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__cards.en-US.md.async.js +27 -0
- package/dist/docs/docs__development__cards.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__cards.zh-CN.md.async.js +27 -0
- package/dist/docs/docs__development__cards.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__chatanywhere-api.en-US.md.async.js +69 -0
- package/dist/docs/docs__development__chatanywhere-api.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__chatanywhere-api.zh-CN.md.async.js +69 -0
- package/dist/docs/docs__development__chatanywhere-api.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__chatanywhere.en-US.md.async.js +77 -0
- package/dist/docs/docs__development__chatanywhere.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__chatanywhere.zh-CN.md.async.js +77 -0
- package/dist/docs/docs__development__chatanywhere.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__custom.en-US.md.async.js +22 -0
- package/dist/docs/docs__development__custom.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__custom.zh-CN.md.async.js +22 -0
- package/dist/docs/docs__development__custom.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__overview.en-US.md.async.js +21 -0
- package/dist/docs/docs__development__overview.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__overview.zh-CN.md.async.js +21 -0
- package/dist/docs/docs__development__overview.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__development__qwen.en-US.md.async.js +25 -0
- package/dist/docs/docs__development__qwen.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__development__qwen.zh-CN.md.async.js +25 -0
- package/dist/docs/docs__development__qwen.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__templates__copilot.en-US.md.async.js +1 -0
- package/dist/docs/docs__templates__copilot.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__templates__copilot.zh-CN.md.async.js +1 -0
- package/dist/docs/docs__templates__copilot.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__templates__native.en-US.md.async.js +1 -0
- package/dist/docs/docs__templates__native.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__templates__native.zh-CN.md.async.js +1 -0
- package/dist/docs/docs__templates__native.zh-CN.md.chunk.css +1 -0
- package/dist/docs/docs__templates__voice.en-US.md.async.js +20 -0
- package/dist/docs/docs__templates__voice.en-US.md.chunk.css +1 -0
- package/dist/docs/docs__templates__voice.zh-CN.md.async.js +1 -0
- package/dist/docs/docs__templates__voice.zh-CN.md.chunk.css +1 -0
- package/dist/docs/dumi__pages__index__index.en-US.async.js +1 -0
- package/dist/docs/dumi__pages__index__index.en-US.chunk.css +1 -0
- package/dist/docs/dumi__pages__index__index.zh-CN.async.js +1 -0
- package/dist/docs/dumi__pages__index__index.zh-CN.chunk.css +1 -0
- package/dist/docs/dumi__theme__layouts__DocLayout__index.async.js +1 -0
- package/dist/docs/dumi__theme__layouts__DocLayout__index.chunk.css +1 -0
- package/dist/docs/dumi__theme__layouts__GlobalLayout__index.async.js +18 -0
- package/dist/docs/dumi__theme__layouts__GlobalLayout__index.chunk.css +1 -0
- package/dist/docs/dumi__tmp-production__dumi__theme__ContextWrapper.async.js +1 -0
- package/dist/docs/index/index.html +15 -0
- package/dist/docs/index-cn/index.html +15 -0
- package/dist/docs/markdown__demos.async.js +164 -0
- package/dist/docs/meta__components__en-US.async.js +9 -0
- package/dist/docs/meta__components__zh-CN.async.js +10 -0
- package/dist/docs/meta__docs__en-US.async.js +475 -0
- package/dist/docs/meta__docs__en-US.chunk.css +1 -0
- package/dist/docs/meta__docs__zh-CN.async.js +456 -0
- package/dist/docs/meta__docs__zh-CN.chunk.css +1 -0
- package/dist/docs/nm__dumi__dist__client__pages__404.async.js +1 -0
- package/dist/docs/nm__dumi__dist__client__pages__Demo__index.async.js +1 -0
- package/dist/docs/nm__dumi__dist__client__pages__Demo__index.chunk.css +1 -0
- package/dist/docs/preload_helper.js +1 -0
- package/dist/docs/sender__demos.async.js +1 -0
- package/dist/docs/umi.css +1 -0
- package/dist/docs/umi.js +107 -0
- package/dist/docs/welcome__demos.async.js +1 -0
- package/dist/docs/~demos/:id/index.html +15 -0
- package/dist/docs/~demos/accordion-demo-inline/index.html +15 -0
- package/dist/docs/~demos/accordion-demo-mutisteps/index.html +15 -0
- package/dist/docs/~demos/accordion-demo-thinking/index.html +15 -0
- package/dist/docs/~demos/attachments-demo-files/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-basic/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-havestopped/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-userwithfile/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-userwithimage/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-userwithnormal/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-withavatar/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-withcode/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-witherror/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-witherrordetail/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-withimage/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-withusage/index.html +15 -0
- package/dist/docs/~demos/bubble-demo-withwaitingmessage/index.html +15 -0
- package/dist/docs/~demos/components-bubble-list-demo-basic/index.html +15 -0
- package/dist/docs/~demos/components-footer-demo-basic/index.html +15 -0
- package/dist/docs/~demos/components-footer-demo-withusage/index.html +15 -0
- package/dist/docs/~demos/components-status-demo-basic/index.html +15 -0
- package/dist/docs/~demos/conversations-demo-basic/index.html +15 -0
- package/dist/docs/~demos/disclaimer-demo-demo/index.html +15 -0
- package/dist/docs/~demos/disclaimer-demo-withlink/index.html +15 -0
- package/dist/docs/~demos/docs-development-ag-ui-demo-with-copilotkit/index.html +15 -0
- package/dist/docs/~demos/docs-development-cards-demo-file/index.html +15 -0
- package/dist/docs/~demos/docs-development-cards-demo-footer/index.html +15 -0
- package/dist/docs/~demos/docs-development-cards-demo-image/index.html +15 -0
- package/dist/docs/~demos/docs-development-cards-demo-text/index.html +15 -0
- package/dist/docs/~demos/docs-development-custom-demo-custom/index.html +15 -0
- package/dist/docs/~demos/docs-templates-copilot-demo-copilot/index.html +15 -0
- package/dist/docs/~demos/docs-templates-native-demo-basic/index.html +15 -0
- package/dist/docs/~demos/docs-templates-voice-demo-demo/index.html +15 -0
- package/dist/docs/~demos/markdown-demo-citations/index.html +15 -0
- package/dist/docs/~demos/markdown-demo-cursor/index.html +15 -0
- package/dist/docs/~demos/markdown-demo-mathjax/index.html +15 -0
- package/dist/docs/~demos/markdown-demo-md/index.html +15 -0
- package/dist/docs/~demos/sender-demo-basic/index.html +15 -0
- package/dist/docs/~demos/sender-demo-disabled/index.html +15 -0
- package/dist/docs/~demos/sender-demo-loading/index.html +15 -0
- package/dist/docs/~demos/sender-demo-moreprefixaction/index.html +15 -0
- package/dist/docs/~demos/sender-demo-withfile/index.html +15 -0
- package/dist/docs/~demos/welcome-demo-demo0/index.html +15 -0
- package/dist/docs/~demos/welcome-demo-demo1/index.html +15 -0
- package/dist/docs/~demos/welcome-demo-demo2/index.html +15 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +20 -0
- package/dist/index.less +1 -0
- package/dist/markdown/Citation.d.ts +16 -0
- package/dist/markdown/Citation.js +55 -0
- package/dist/markdown/CodeBlock.d.ts +6 -0
- package/dist/markdown/CodeBlock.js +88 -0
- package/dist/markdown/ImageOrVideo.d.ts +2 -0
- package/dist/markdown/ImageOrVideo.js +81 -0
- package/dist/markdown/Link.d.ts +3 -0
- package/dist/markdown/Link.js +28 -0
- package/dist/markdown/Markdown.d.ts +4 -0
- package/dist/markdown/Markdown.js +121 -0
- package/dist/markdown/cursor/Blur.d.ts +3 -0
- package/dist/markdown/cursor/Blur.js +7 -0
- package/dist/markdown/cursor/Dot.d.ts +3 -0
- package/dist/markdown/cursor/Dot.js +16 -0
- package/dist/markdown/cursor/Underline.d.ts +3 -0
- package/dist/markdown/cursor/Underline.js +7 -0
- package/dist/markdown/cursor/index.less +124 -0
- package/dist/markdown/hooks/index.d.ts +1 -0
- package/dist/markdown/hooks/index.js +49 -0
- package/dist/markdown/hooks/useTypedEffect.d.ts +6 -0
- package/dist/markdown/hooks/useTypedEffect.js +56 -0
- package/dist/markdown/index.d.ts +16 -0
- package/dist/markdown/index.js +37 -0
- package/dist/markdown/index.less +204 -0
- package/dist/markdown/plugins/footnote.d.ts +2 -0
- package/dist/markdown/plugins/footnote.js +89 -0
- package/dist/markdown/plugins/katexDir.d.ts +1 -0
- package/dist/markdown/plugins/katexDir.js +15 -0
- package/dist/markdown/rehype/fadeIn.d.ts +2 -0
- package/dist/markdown/rehype/fadeIn.js +43 -0
- package/dist/markdown/type.d.ts +46 -0
- package/dist/markdown/type.js +1 -0
- package/dist/markdown/utils.d.ts +22 -0
- package/dist/markdown/utils.js +125 -0
- package/dist/provider/CustomCardsProvider.d.ts +15 -0
- package/dist/provider/CustomCardsProvider.js +18 -0
- package/dist/provider/GlobalProvider.d.ts +5 -0
- package/dist/provider/GlobalProvider.js +11 -0
- package/dist/provider/index.d.ts +8 -0
- package/dist/provider/index.js +20 -0
- package/dist/provider/types.d.ts +8 -0
- package/dist/provider/types.js +1 -0
- package/dist/sender/SenderHeader.d.ts +19 -0
- package/dist/sender/SenderHeader.js +79 -0
- package/dist/sender/StopLoading.d.ts +5 -0
- package/dist/sender/StopLoading.js +20 -0
- package/dist/sender/components/ActionButton.d.ts +22 -0
- package/dist/sender/components/ActionButton.js +39 -0
- package/dist/sender/components/ClearButton.d.ts +4 -0
- package/dist/sender/components/ClearButton.js +13 -0
- package/dist/sender/components/LoadingButton.d.ts +4 -0
- package/dist/sender/components/LoadingButton.js +22 -0
- package/dist/sender/components/SendButton.d.ts +4 -0
- package/dist/sender/components/SendButton.js +14 -0
- package/dist/sender/components/SpeechButton/RecordingIcon.d.ts +5 -0
- package/dist/sender/components/SpeechButton/RecordingIcon.js +49 -0
- package/dist/sender/components/SpeechButton/index.d.ts +4 -0
- package/dist/sender/components/SpeechButton/index.js +30 -0
- package/dist/sender/index.d.ts +61 -0
- package/dist/sender/index.js +307 -0
- package/dist/sender/style/header.d.ts +4 -0
- package/dist/sender/style/header.js +46 -0
- package/dist/sender/style/index.d.ts +10 -0
- package/dist/sender/style/index.js +123 -0
- package/dist/sender/useSpeech.d.ts +6 -0
- package/dist/sender/useSpeech.js +114 -0
- package/dist/stream/index.d.ts +34 -0
- package/dist/stream/index.en-US.md.bk +50 -0
- package/dist/stream/index.js +197 -0
- package/dist/stream/index.zh-CN.md.bk +51 -0
- package/dist/theme/components.d.ts +10 -0
- package/dist/theme/components.js +1 -0
- package/dist/theme/cssinjs-utils.d.ts +14 -0
- package/dist/theme/cssinjs-utils.js +1 -0
- package/dist/theme/genStyleUtils.d.ts +28 -0
- package/dist/theme/genStyleUtils.js +49 -0
- package/dist/theme/useToken.d.ts +18 -0
- package/dist/theme/useToken.js +110 -0
- package/dist/version/index.d.ts +2 -0
- package/dist/version/index.js +2 -0
- package/dist/voice-chat/Recorder/index.d.ts +26 -0
- package/dist/voice-chat/Recorder/index.js +168 -0
- package/dist/voice-chat/VoiceChatProvider/context.d.ts +22 -0
- package/dist/voice-chat/VoiceChatProvider/context.js +3 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useChatState.d.ts +1 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useChatState.js +5 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useMessages.d.ts +8 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useMessages.js +31 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useRecorder.d.ts +5 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useRecorder.js +48 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useVoiceChat.d.ts +4 -0
- package/dist/voice-chat/VoiceChatProvider/hooks/useVoiceChat.js +10 -0
- package/dist/voice-chat/VoiceChatProvider/index.d.ts +9 -0
- package/dist/voice-chat/VoiceChatProvider/index.js +55 -0
- package/dist/voice-chat/VoiceChatService/index.d.ts +34 -0
- package/dist/voice-chat/VoiceChatService/index.js +209 -0
- package/dist/voice-chat/index.d.ts +2 -0
- package/dist/voice-chat/index.js +2 -0
- package/dist/voice-chat/types/index.d.ts +12 -0
- package/dist/voice-chat/types/index.js +4 -0
- package/dist/welcome/icon.d.ts +2 -0
- package/dist/welcome/icon.js +38 -0
- package/dist/welcome/index.d.ts +9 -0
- package/dist/welcome/index.js +57 -0
- package/package.json +117 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@import '../../index.less';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
.@{ant-prefix}-interrupted {
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
font-size: 12px;
|
|
8
|
+
font-weight: 500;
|
|
9
|
+
line-height: 18px;
|
|
10
|
+
letter-spacing: 0px;
|
|
11
|
+
background-color: e('var(--@{ant-prefix}-color-fill-secondary)');
|
|
12
|
+
padding: 10px 12px;
|
|
13
|
+
line-height: 1;
|
|
14
|
+
border-radius: 8px;
|
|
15
|
+
gap: 8px;
|
|
16
|
+
}
|
|
17
|
+
.@{ant-prefix}-interrupted-desc {
|
|
18
|
+
font-weight: normal;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.@{ant-prefix}-interrupted-header {
|
|
22
|
+
display: inline-flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 4px;
|
|
25
|
+
color: e('var(--@{ant-prefix}-color-text)');
|
|
26
|
+
|
|
27
|
+
&-icon-wrapper {
|
|
28
|
+
width: 16px;
|
|
29
|
+
height: 16px;
|
|
30
|
+
flex: 0 0 16px;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&-error {
|
|
37
|
+
color: e('var(--@{ant-prefix}-color-error)');
|
|
38
|
+
}
|
|
39
|
+
&-interrupted {
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
width: 12px;
|
|
44
|
+
height: 12px;
|
|
45
|
+
border: 1px solid currentColor;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
|
|
48
|
+
&::after {
|
|
49
|
+
display: block;
|
|
50
|
+
content: '';
|
|
51
|
+
width: 4px;
|
|
52
|
+
height: 4px;
|
|
53
|
+
border-radius: 1px;
|
|
54
|
+
background-color: currentColor;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Markdown } from "../..";
|
|
3
|
+
export default function (props) {
|
|
4
|
+
return /*#__PURE__*/React.createElement(Markdown, {
|
|
5
|
+
raw: props.data.raw,
|
|
6
|
+
content: props.data.content,
|
|
7
|
+
cursor: props.data.msgStatus === 'generating',
|
|
8
|
+
typing: props.data.typing,
|
|
9
|
+
citations: props.data.citations,
|
|
10
|
+
citationsMap: props.data.citationsMap
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as DeepThink } from './DeepThink';
|
|
2
|
+
export { default as Files } from './Files';
|
|
3
|
+
export { default as Images } from './Images';
|
|
4
|
+
export { default as Text } from './Text';
|
|
5
|
+
export { default as Footer, FooterActions, FooterCount } from './Footer';
|
|
6
|
+
export { default as Interrupted } from './Interrupted';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as DeepThink } from "./DeepThink";
|
|
2
|
+
export { default as Files } from "./Files";
|
|
3
|
+
export { default as Images } from "./Images";
|
|
4
|
+
export { default as Text } from "./Text";
|
|
5
|
+
export { default as Footer, FooterActions, FooterCount } from "./Footer";
|
|
6
|
+
export { default as Interrupted } from "./Interrupted";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var _templateObject, _templateObject2;
|
|
2
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { createStyles } from 'antd-style';
|
|
5
|
+
var useStyles = createStyles(function (_ref) {
|
|
6
|
+
var css = _ref.css,
|
|
7
|
+
token = _ref.token;
|
|
8
|
+
return {
|
|
9
|
+
disclaimer: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n line-height: 1.5;\n color: ", ";\n padding: 8px 12px;\n\n "])), token.colorTextTertiary),
|
|
10
|
+
afterLink: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding-left: 8px;\n "])))
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
export default function (props) {
|
|
14
|
+
var _useStyles = useStyles(),
|
|
15
|
+
styles = _useStyles.styles;
|
|
16
|
+
var _props$desc = props.desc,
|
|
17
|
+
desc = _props$desc === void 0 ? 'AI can also make mistakes, so please check carefully and use it with caution' : _props$desc;
|
|
18
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
19
|
+
className: styles.disclaimer,
|
|
20
|
+
style: props.style
|
|
21
|
+
}, desc, props.afterLink && /*#__PURE__*/React.createElement("a", {
|
|
22
|
+
className: styles.afterLink,
|
|
23
|
+
href: props.afterLink.href,
|
|
24
|
+
target: "_blank"
|
|
25
|
+
}, props.afterLink.text));
|
|
26
|
+
}
|
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_agentscope_ai_chat=self.webpackChunk_agentscope_ai_chat||[]).push([[1896],{53530:function(h,F,n){n.d(F,{Z:function(){return c}});var s=n(46530);function c(){var e=(0,s.useLocale)();return e}},1896:function(h,F,n){n.d(F,{Z:function(){return w}});var s=n(21739),c=n(53530),e={container:"gjQ9Bxkcf5ASRKzfwwWR",top:"KASn7X6HQ0oycb2VgjNP",toAgentscope:"WG18MPSlcspl47slSk8U",desc:"nTu2DH52hnwviPPu0aHg",t1:"ZBjmsxAv7wFcRWvcAPE5",t2Block:"V6aQWoPg6kYIpZXYuUvh",t2:"hkIpzwPZdc4EeHk483yl",mainContent:"uwvdzfjo6IPc89yyaUV4",img:"wWquPA3QTP8r3qzXLTD6"},B=n(76857),D=n(5465),E=n(41478),l=n(68768),x=n(79800),N=n.n(x),d=n(87457),u=n(27174);function f(){var t=(0,s.useState)(0),i=N()(t,2),a=i[0],g=i[1],p=["amazing","new","wonderful","beautiful","smart"];return(0,s.useEffect)(function(){var o=setTimeout(function(){a===p.length-1?g(0):g(a+1)},2e3);return function(){return clearTimeout(o)}},[a,p]),(0,u.jsxs)("div",{children:[(0,u.jsx)("div",{className:e.t1,children:"Spark Chat is"}),(0,u.jsx)("div",{className:e.t2Block,children:p.map(function(o,A){return(0,u.jsx)(d.E.span,{className:e.t2,initial:{opacity:0,y:"-100"},transition:{type:"spring",stiffness:50},animate:a===A?{y:0,opacity:1}:{y:a>A?-150:150,opacity:0},children:o},o)})})]})}var C={line:"Wolu_C2Chkk39_oIJB6X"},v=n(92310),m=n.n(v);function O(){var t={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6,ease:"easeOut"}}};return(0,u.jsx)(d.E.footer,{className:"mt-12 py-12 text-center text-sm",initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px 0px"},variants:t,children:(0,u.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,u.jsxs)("div",{className:"flex items-center mb-8 w-[100%]",children:[(0,u.jsx)("div",{className:m()(C.line,"h-px","flex-grow")}),(0,u.jsx)("div",{className:"mx-4",children:(0,u.jsx)("img",{src:"https://img.alicdn.com/imgextra/i1/O1CN01wor5IO1TVIRQ4iKbv_!!6000000002387-2-tps-112-112.png",alt:"Spark Logo",className:"w-6 h-6"})}),(0,u.jsx)("div",{className:m()(C.line,"h-px","flex-grow")})]}),(0,u.jsx)("div",{className:"text-l mb-2 uppercase tracking-wider font-semibold",children:"SPARK DESIGN LLM EXPERIENCE DESIGN SYSTEM"}),(0,u.jsx)("div",{style:{color:"var(--spc-color-text-secondary)"},children:"Copyright \xA9 2025 Alibaba. All rights reserved."})]})})}function b(t){var i=t.className,a=i===void 0?"w-4 h-4":i;return(0,u.jsx)("svg",{className:a,viewBox:"0 0 1024 1024",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M853.376 128a42.666667 42.666667 0 0 1 42.666667 42.666667v682.666666a42.666667 42.666667 0 0 1-42.666667 42.666667h-682.666667a42.666667 42.666667 0 0 1-42.666666-42.666667V170.666667a42.666667 42.666667 0 0 1 42.666666-42.666667h682.666667z m-128 170.666667h-426.666667v426.666666h213.333334V405.333333h106.666666V725.333333h106.666667V298.666667z"})})}function w(){var t=(0,c.Z)();return(0,u.jsx)(u.Fragment,{children:(0,u.jsxs)("div",{className:e.container,children:[(0,u.jsxs)("div",{className:e.top,children:[(0,u.jsx)(E.Z,{justify:"center",children:(0,u.jsxs)("div",{className:e.toAgentscope,onClick:function(){return window.open("https://bailian.agentscope.io")},children:[r[t.id].jump2agentscope,(0,u.jsx)(D.SwapRightOutlined,{})]})}),(0,u.jsx)(f,{}),(0,u.jsx)("div",{className:e.desc,children:r[t.id].desc}),(0,u.jsxs)(E.Z,{justify:"center",gap:16,children:[(0,u.jsx)(l.ZP,{size:"large",onClick:function(){return window.open("#/~demos/docs-templates-native-demo-basic")},children:r[t.id].chatexp}),(0,u.jsxs)(l.ZP,{style:{boxShadow:"rgba(131, 88, 246, 0.4) 15px 0px 30px -10px, rgba(255, 142, 168, 0.4) 0px 0px 30px -10px, rgba(225, 163, 37, 0.4) -15px 0px 30px -10px"},size:"large",onClick:function(){return window.open("https://www.npmjs.com/package/@spark-ai/chat")},type:"primary",children:[(0,u.jsx)(b,{})," npm install @spark-ai/chat"]})]})]}),(0,u.jsx)("div",{id:e.mainContent,children:(0,u.jsx)(B.Z,{content:r[t.id].md,components:{img:function(a){return(0,u.jsx)("img",{src:a.src,className:e.img})}}})}),(0,u.jsx)(O,{})]})})}var r={"zh-CN":{jump2agentscope:"\u8DF3\u8F6C\u5230 AgentScope",chatexp:"\u5BF9\u8BDD\u4F53\u9A8C",desc:"\u4E00\u4E2A\u514D\u8D39\u3001\u5F00\u6E90\u7684\u5BF9\u8BDD\u6846\u67B6\uFF0C\u7528\u4E8E\u6784\u5EFA\u4F18\u79C0\u7684 LLM \u5BF9\u8BDD\u4F53\u9A8C",md:`
|
|
2
|
+
# SPARK CHAT \u662F\u4E00\u4E2A\u514D\u8D39\u3001\u5F00\u6E90\u7684\u5BF9\u8BDD\u6846\u67B6\uFF0C\u7528\u4E8E\u6784\u5EFA\u4F18\u79C0\u7684 LLM \u5BF9\u8BDD\u4F53\u9A8C
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
\u5BF9\u8BDD\u5F0F\u4EA4\u4E92\u4EE5\u5176\u81EA\u7136\u3001\u7B80\u5355\u7684\u5F62\u5F0F\u6210\u4E3A\u5982\u4ECA LLM \u4F53\u9A8C\u7684\u4E3B\u8981\u5F62\u5F0F\uFF0C\u5E76\u9010\u6E10\u56F4\u7ED5\u6A21\u578B\u7684\u591A\u6A21\u6001\u80FD\u529B\u9010\u6E10\u6F14\u53D8\u51FA\u5404\u79CD\u884D\u751F\u7684\u4EA4\u4E92\u8303\u5F0F\u3002\u57FA\u4E8E\u6211\u4EEC\u5728\u5177\u4F53\u4E1A\u52A1\u5B9E\u8DF5\u4E2D\u7684\u63A2\u7D22\u603B\u7ED3\uFF0C\u6211\u4EEC\u63A8\u51FA Spark Chat \u7684\u5BF9\u8BDD\u6846\u67B6\uFF0C\u5B83\u5305\u542B\u4E86\u4F17\u591A\u6211\u4EEC\u7684\u60F3\u6CD5\u4E0E\u771F\u5B9E\u4E1A\u52A1\u5B9E\u8DF5\uFF0C\u5E2E\u52A9\u4E1A\u52A1\u5FEB\u901F\u6784\u5EFA\u5BF9\u8BDD\u5F0F\u4EBA\u5DE5\u667A\u80FD\u5E94\u7528\u3002
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## \u57FA\u672C\u5F62\u6001
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
SPARK CHAT \u5305\u542B\u6700\u57FA\u672C\u3001\u901A\u7528\u7684\u5BF9\u8BDD\u7EC4\u4EF6\uFF0C\u4F60\u53EF\u4EE5\u4F7F\u7528\u5B83\u5FEB\u901F\u6784\u5EFA\u51FA\u7C7B\u4F3C ChatGPT \u8FD9\u6837\u7684\u539F\u751F LLM \u5BF9\u8BDD\u5E94\u7528\uFF0C\u5305\u542B\u5BF9\u8BDD\u5386\u53F2\u7BA1\u7406\u3001\u5BF9\u8BDD\u6D41\u3001\u8F93\u5165\u6846\u548C\u7B80\u6D01\u7684\u6B22\u8FCE\u9875\u9762\u3002
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## \u591A\u6A21\u6001\u8F93\u5165\u5F62\u6001
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
\u56F4\u7ED5\u7740\u8BED\u97F3\u3001\u56FE\u7247\u548C\u89C6\u9891\u7B49\u573A\u666F\uFF0CSPARK CHAT \u4E5F\u63D0\u4F9B\u4E86\u57FA\u4E8E\u573A\u666F\u7684\u201C\u8F93\u5165\u4EA4\u4E92\u201D\uFF0C\u4EE5\u6EE1\u8DB3\u7279\u5B9A\u573A\u666F\u4E0B\u7684\u6700\u4F73\u7528\u6237\u4F53\u9A8C
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### \u57FA\u672C\u8F93\u5165
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
\u5305\u542B\u4E3B\u6D41 LLM Chat \u57FA\u672C\u80FD\u529B\u7684\u8F93\u5165
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### \u9009\u7528\u4E0D\u540C\u7684\u5BF9\u8BDD\u6A21\u5F0F
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
\u6211\u4EEC\u4E3A\u8F93\u5165\u6846\u63D0\u4F9B\u4E86\u4E0D\u540C\u7684\u8F93\u5165\u6A21\u5F0F\u5207\u6362\uFF0C\u4F60\u53EF\u4EE5\u901A\u8FC7\u5207\u6362\u4E0D\u540C\u6A21\u5F0F\u4E0B\uFF0C\u5B9E\u73B0\u4E0D\u540C\u7684\u6A21\u578B\u5BF9\u8BDD\u6548\u679C\uFF0C\u4EE5\u4E0B\u662F\u793A\u4F8B\uFF1A
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### \u8BED\u97F3/\u89C6\u9891\u901A\u8BDD \uFF08ONGOING\uFF09
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
\u5F53\u4F60\u9700\u8981\u4F7F\u7528\u4E00\u4E9B\u8BF8\u5982 Qwen3 \u8FD9\u6837\u652F\u6301\u591A\u6A21\u6001\u4F53\u9A8C\u7684\u6A21\u578B\u65F6\uFF0C\u4F60\u53EF\u4EE5\u901A\u8FC7 SPARK CHAT \u6765\u6784\u5EFA \u8BED\u97F3/\u89C6\u9891\u901A\u8BDD \u7684\u4F53\u9A8C\uFF1A
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+

|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## \u591A\u5F62\u5F0F\u5185\u5BB9\u5C55\u793A
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
Spark Chat \u6240\u6709\u5BF9\u8BDD\u90FD\u57FA\u4E8E\u4E00\u4E2A\u7EDF\u4E00\u6A21\u578B\uFF1A
|
|
57
|
+
|
|
58
|
+
- \u6BCF\u6761\u6D88\u606F = \u4E00\u4E2A \`Bubble\`
|
|
59
|
+
- \u6BCF\u4E2A \`Bubble\`\xA0\u5305\u542B\u591A\u4E2A\xA0\`cards [ ]\`
|
|
60
|
+
- \u6BCF\u5F20\u5361\u7247\u7531 \`{ code, data }\`\xA0\u6784\u6210
|
|
61
|
+
|
|
62
|
+
\u8FD9\u610F\u5473\u7740\uFF1A\u4E00\u5207\u6D88\u606F\u3001\u5185\u5BB9\u3001\u4EA4\u4E92\u884C\u4E3A\uFF0C\u90FD\u662F\u4E00\u5F20\u201C\u5361\u7247\u201D\uFF0C\u662F\u7ED3\u6784\u5316\u7684\uFF0C\u4F60\u53EF\u4EE5\u5C06\u6587\u672C\u3001\u56FE\u8868\u3001\u63A8\u8350\u3001\u6D41\u7A0B\u3001\u8F6E\u64AD\u3001\u7EDF\u8BA1\u6570\u636E\u4EE5\u5361\u7247\u7684\u5F62\u5F0F\u7EC4\u7EC7\uFF0C\u4F60\u4E5F\u53EF\u4EE5\u8BA9\u6BCF\u6B21\u6A21\u578B\u56DE\u7B54\u90FD\u53D8\u6210\u4E00\u7EC4\u201C\u53EF\u88AB\u7406\u89E3\u4E0E\u64CD\u4F5C\u7684\u5757\uFF0C\u8FD9\u79CD\u7ED3\u6784\u5177\u6709\u4E24\u4E2A\u91CD\u8981\u6280\u672F\u4EF7\u503C\uFF1A
|
|
63
|
+
|
|
64
|
+
- **\u7EDF\u4E00\u6E32\u67D3\u5F15\u64CE**\uFF1A\u6240\u6709\u5BF9\u8BDD\u5185\u5BB9\u90FD\u8D70\u7EDF\u4E00\u7684\xA0card\xA0\u6E32\u67D3\u7BA1\u7EBF\uFF0C\u907F\u514D\xA0UI\xA0\u7279\u4F8B\u548C\u5D4C\u5957\u5206\u652F\u903B\u8F91
|
|
65
|
+
- **\u8BED\u4E49\u9694\u79BB**\uFF1A\u6BCF\u79CD\u5361\u7247\u5C01\u88C5\u81EA\u5DF1\u7684\u6837\u5F0F\u3001\u903B\u8F91\u3001\u72B6\u6001\uFF0C\u65E0\u526F\u4F5C\u7528\uFF0C\u5229\u4E8E\u6D4B\u8BD5\u548C\u534F\u540C
|
|
66
|
+
|
|
67
|
+
\u5728\u6570\u636E\u5C42\u9762\uFF0C\u5B83\u5B9E\u73B0\u4E86\u4ECE\u201C\u8BED\u8A00-\u754C\u9762\u201D\u4E4B\u95F4\u7684\u89E3\u8026\uFF1A\u5F00\u53D1\u8005\u53EF\u4EE5\u4EC5\u901A\u8FC7\u7ED3\u6784\u6570\u636E\u6765\u64CD\u63A7 UI \u5448\u73B0\uFF0C\u8BA9\u4EBA\u673A\u4EA4\u4E92\u4ECE\u201C\u6D41\u5F0F\u5BF9\u8BDD\u201D\u8D70\u5411\u201C\u7ED3\u6784\u5BF9\u8BDD\u201D\u3002
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Spark Chat \u4E0D\u518D\u8981\u6C42\u6A21\u578B\u5410\u51FA\u81EA\u7136\u8BED\u8A00\uFF0C\u518D\u7531 UI \u201C\u5305\u88F9\u201D\u8FD9\u4E9B\u6587\u5B57\u3002\u6211\u4EEC\u62D2\u7EDD\u201C\u9489\u6B7B\u201D\u7684\u8F93\u5165\u8F93\u51FA\u7EC4\u4EF6\uFF0C\u800C\u662F\u9009\u62E9\u7528\u201C\u4E50\u9AD8\u5F0F\u201D\u8BED\u6CD5\u63CF\u8FF0\u6574\u4E2A\u754C\u9762\u72B6\u6001\uFF0C\u4E8E\u662F\u6211\u4EEC\u8BBE\u8BA1\u4E86\u4E00\u79CD\u5BF9\u5927\u6A21\u578B\u53CB\u597D\u7684 UI \u534F\u8BAE\uFF1A
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
\`\`\`javascript
|
|
74
|
+
<Bubble
|
|
75
|
+
cards={[
|
|
76
|
+
{
|
|
77
|
+
code: 'Text',
|
|
78
|
+
data: {
|
|
79
|
+
content: 'Hello World',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
]}
|
|
83
|
+
/>
|
|
84
|
+
\`\`\`
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
\u4F60\u53EF\u4EE5\u521B\u5EFA\u81EA\u5B9A\u4E49\u5361\u7247\u5E76\u6CE8\u518C\uFF1A
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
\`\`\`javascript
|
|
91
|
+
function MyCard(props) {
|
|
92
|
+
return <div>MyCard</div>;
|
|
93
|
+
}
|
|
94
|
+
\`\`\`
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
\`\`\`javascript
|
|
98
|
+
<CustomCardsProvider cardConfig={{ MyCard }}>...</CustomCardsProvider>
|
|
99
|
+
\`\`\`
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
\u7136\u540E\u6784\u9020\u6570\u636E\u5E76\u6E32\u67D3\u5B83\uFF1A
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
\`\`\`javascript
|
|
106
|
+
<Bubble
|
|
107
|
+
cards={[
|
|
108
|
+
{
|
|
109
|
+
code: 'Text',
|
|
110
|
+
data: {
|
|
111
|
+
content: 'Hello World',
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
code: 'MyCard',
|
|
116
|
+
data: [
|
|
117
|
+
['Active Users', 112893],
|
|
118
|
+
['Account Balance (CNY)', 112893],
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
]}
|
|
122
|
+
/>
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
\u636E\u6B64\u4F60\u53EF\u5B9E\u73B0\u4EE5\u4E0B\u7684 Case:
|
|
127
|
+
|
|
128
|
+
- \u84B8\u4E00\u53EA\u8783\u87F9\u9700\u8981\u591A\u4E45
|
|
129
|
+
|
|
130
|
+

|
|
131
|
+
|
|
132
|
+
- \u6839\u636E\u7528\u6237\u9700\u6C42\u8C03\u7528 AI \u5B9E\u65F6\u8BB0\u5F55
|
|
133
|
+
|
|
134
|
+

|
|
135
|
+
|
|
136
|
+
- \u81EA\u5B9A\u4E49\u7684\u6587\u6863\u89E3\u8BFB
|
|
137
|
+
|
|
138
|
+

|
|
139
|
+
|
|
140
|
+
- \u590D\u6742\u7684\u5361\u7247\u5D4C\u5957
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
## \u591A\u5E94\u7528\u573A\u666F
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
\u9664\u4E86\u539F\u751F\u7684 Native Chat \u4EA7\u54C1\u5916\uFF0C\u4F60\u8FD8\u53EF\u4EE5\u5C06 SPARK CHAT \u7528\u5728\u4E0D\u540C\u7684\u4E1A\u52A1\u573A\u666F\uFF0C\u9009\u7528\u4E0D\u540C\u7684\u7EC4\u4EF6\u642D\u914D\u5F62\u5F0F\uFF0C\u5B9E\u73B0 Copilot \u3001Embedding \u5F0F\u4EA4\u4E92\u3002
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Native Chat
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
\u7EAF\u7CB9\u7684\u72EC\u5360\u5F0F\u81EA\u7136\u8BED\u8A00\u5BF9\u8BDD\u754C\u9762\uFF0C\u9002\u5408\u6C89\u6D78\u5F0F\u7684\u95EE\u7B54\u548C\u64CD\u4F5C:
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+

|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
### Copilot
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
\u7ED3\u5408\u5176\u4ED6\u4EA7\u54C1\u754C\u9762\uFF0C\u4F5C\u4E3A\u8F85\u52A9\u4F5C\u7528\uFF0C\u5E38\u89C1\u4E8E\u4EE3\u7801\u8F85\u52A9\u3001\u6D4F\u89C8 Web \u9875\u9762\u5185\u7684\u4FA7\u8FB9\u63D0\u95EE\u3001\u64B0\u5199\u6587\u6863\u65F6\u7684\u52A9\u624B:
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+

|
|
167
|
+
|
|
168
|
+
|
|
169
|
+

|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Embedding
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
\u4EC5\u4F7F\u7528 SPARK CHAT \u7684\u90E8\u5206\u7EC4\u4EF6\uFF0C\u5982\u8F93\u5165\u6846\uFF08ChatIput\uFF09\uFF0C\u96C6\u6210\u8FDB\u4F60\u7684\u4EA7\u54C1\u5185\uFF0C\u4F5C\u4E3A\u5D4C\u5165\u5F0F AI \u6765\u4F7F\u7528\uFF1A
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+

|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
## \u591A\u4E3B\u9898\u652F\u6301
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
SPARK\xA0CHAT\xA0\u5185\u7F6E\u7684\u4EAE\u6697\u8272\u5404\u4E00\u5957\xA0Color\xA0CSS\xA0Token\uFF1A
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+

|
|
188
|
+
|
|
189
|
+
|
|
190
|
+

|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
## \u589E\u5F3A\u4F53\u9A8C\u7684\u52A8\u6548\u8868\u8FBE
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
### \u601D\u8003
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
\u6211\u4EEC\u63D0\u4F9B\u4E86\u52A8\u6001icon\u548C\u8F83\u4E3A\u514B\u5236\u7684\u6587\u5B57\u6D41\u5149\u6548\u679C\uFF0C\u7528\u4E8E\u52A0\u5F3AAI\u601D\u8003\u8FC7\u7A0B\u4E2D\u7684\u4F53\u611F\uFF1A
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+

|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
### \u7B49\u5F85
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
\u6211\u4EEC\u63D0\u4F9B\u751F\u56FE\u7C7B\u7B49\u5F85\u573A\u666F\u7684\u52A8\u6001\u6548\u679C\uFF0C\u8BA9\u7B49\u5F85\u8FC7\u7A0B\u53D8\u5F97\u53EF\u89C1\u4E14\u53EF\u89C2\uFF1A
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+

|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
### \u52A0\u8F7D\u4E0E\u5410\u51FA
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
\u6211\u4EEC\u5728\u6587\u5B57\u5448\u73B0\u7684\u7EC6\u8282\u5904\uFF0C\u63D0\u4F9B\u4E86\u5177\u6709\u547C\u5438\u611F\u7684\u52A0\u8F7D/\u5410\u51FA\u7684\u52A8\u6548\uFF1A
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+

|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
## \u5173\u4E8E Spark Design \xAE
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
Spark Chat \u662F Spark Design \u4E2D\u7684\u4E00\u4E2A\u9879\u76EE\uFF0C\u6211\u4EEC\u671F\u671B\u53EF\u4EE5\u4E3A AI \u5E94\u7528\u5F00\u53D1\u8005\u4EEC\u63D0\u4F9B\u4F53\u9A8C\u4F18\u5F02\u3001\u7075\u6D3B\u7B80\u5355\u7684\u7EC4\u4EF6\u6846\u67B6\u3002
|
|
227
|
+
|
|
228
|
+
`},"en-US":{jump2agentscope:"Jump to AgentScope",chatexp:"Chat Experience",desc:"A free, open-source framework for building great LLM chat experiences",md:`
|
|
229
|
+
# SPARK CHAT is a free and open-source chat framework for building excellent LLM-powered chat experiences
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
Conversational interaction has become the dominant form of LLM user experience due to its natural and simple format. As models gain multimodal capabilities, new interaction paradigms are emerging. Based on our real-world business practice and insights, we created the Spark Chat framework \u2014 a collection of ideas and battle-tested solutions to help teams quickly build AI-powered chat applications.
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
## Basic Structure
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
Spark Chat provides essential and universal chat components, allowing you to quickly build native LLM chat applications like ChatGPT. It includes chat history management, message flow, input box, and a clean welcome screen.
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+

|
|
242
|
+
|
|
243
|
+
|
|
244
|
+

|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
## Multimodal Input Modes
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
Spark Chat also supports scenario-based **input interactions** for use cases involving voice, images, and video, ensuring optimal user experience in each context.
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
### Basic Input
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
Covers the core input capabilities needed for mainstream LLM chat experiences.
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+

|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
### Switching Input Modes
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
The input box supports multiple modes, allowing you to toggle between different input types and model behaviors. Here are some examples:
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+

|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
### Voice / Video Calling (ONGOING)
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
When using models like Qwen3 that support multimodal interaction, Spark Chat enables the creation of voice/video call experiences:
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+

|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
## Multi-format Content Display
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
All Spark Chat messages follow a unified model:
|
|
284
|
+
|
|
285
|
+
- Each message = a \`Bubble\`
|
|
286
|
+
- Each \`Bubble\` contains multiple \`cards[]\`
|
|
287
|
+
- Each card is structured as \`{ code, data }\`
|
|
288
|
+
|
|
289
|
+
This means all messages, content, and interactive behaviors are cards \u2014 **structured blocks**. Text, charts, recommendations, workflows, carousels, and stats can all be modularized into cards. This allows model responses to be organized into actionable, understandable units.
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
Key technical benefits:
|
|
293
|
+
|
|
294
|
+
- **Unified Rendering Engine**: All chat content runs through a single card rendering pipeline, avoiding special UI cases and branching logic.
|
|
295
|
+
- **Semantic Isolation**: Each card encapsulates its own style, logic, and state \u2014 side-effect-free, testable, and collaboration-friendly.
|
|
296
|
+
|
|
297
|
+
At the data level, it decouples language from UI, enabling developers to control UI rendering through structured data alone. This shifts human-AI interaction from _streamed chat_ to _structured chat_.
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
Spark Chat no longer requires the model to output natural language for the UI to "wrap" \u2014 we reject rigid input/output components and instead use a Lego-like syntax to define UI state. We've designed a UI protocol that is model-friendly:
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
\`\`\`javascript
|
|
304
|
+
<Bubble
|
|
305
|
+
cards={[
|
|
306
|
+
{
|
|
307
|
+
code: 'Text',
|
|
308
|
+
data: {
|
|
309
|
+
content: 'Hello World',
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
]}
|
|
313
|
+
/>
|
|
314
|
+
\`\`\`
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
You can define and register custom cards:
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
\`\`\`javascript
|
|
321
|
+
function MyCard(props) {
|
|
322
|
+
return <div>MyCard</div>;
|
|
323
|
+
}
|
|
324
|
+
\`\`\`
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
\`\`\`javascript
|
|
328
|
+
<CustomCardsProvider cardConfig={{ MyCard }}>...</CustomCardsProvider>
|
|
329
|
+
\`\`\`
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
Then structure and render them:
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
\`\`\`javascript
|
|
336
|
+
<Bubble
|
|
337
|
+
cards={[
|
|
338
|
+
{
|
|
339
|
+
code: 'Text',
|
|
340
|
+
data: {
|
|
341
|
+
content: 'Hello World',
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
code: 'MyCard',
|
|
346
|
+
data: [
|
|
347
|
+
['Active Users', 112893],
|
|
348
|
+
['Account Balance (CNY)', 112893],
|
|
349
|
+
],
|
|
350
|
+
},
|
|
351
|
+
]}
|
|
352
|
+
/>
|
|
353
|
+
\`\`\`
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
### Use Cases Enabled:
|
|
357
|
+
|
|
358
|
+
- "How long does it take to steam a crab?" \u2192 interactive answer via cards
|
|
359
|
+
|
|
360
|
+

|
|
361
|
+
|
|
362
|
+
- Real-time AI note-taking based on user needs
|
|
363
|
+
|
|
364
|
+

|
|
365
|
+
|
|
366
|
+
- Custom document interpretation
|
|
367
|
+
|
|
368
|
+

|
|
369
|
+
|
|
370
|
+
- Complex card nesting for layered information display
|
|
371
|
+
|
|
372
|
+

|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
## Multi-scenario Applications
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
Beyond native chat apps, Spark Chat can be adapted to different business needs, supporting various integration patterns such as Copilot and embedded chat widgets.
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
### Native Chat
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
A full-screen, immersive natural language chat interface for Q&A and execution:
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+

|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
### Copilot
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
Integrates alongside existing product interfaces, commonly used for code assistance, side-panel queries, or in-document writing help:
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+

|
|
397
|
+
|
|
398
|
+
|
|
399
|
+

|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
### Embedding
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
Use Spark Chat as a lightweight embedded AI assistant \u2014 for example, just embedding the ChatInput component into your product UI:
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+

|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
## Theme Customization
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
Spark Chat includes built-in light and dark theme CSS tokens:
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+

|
|
418
|
+
|
|
419
|
+
|
|
420
|
+

|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
## Enhanced Experience via Motion Effects
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
### Thinking
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
We provide animated icons and subtle shimmer effects to convey the AI's thinking process:
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+

|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
### Waiting
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
In image generation or long responses, we provide animations to make the wait time more visible and engaging:
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+

|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
### Loading / Emitting
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
Our text rendering includes subtle breathing animations for smooth loading and message delivery:
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+

|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
## About Spark Design \xAE
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
Spark Chat is part of the Spark Design ecosystem. Our mission is to provide developers with highly usable and flexible UI components for AI applications.
|
|
457
|
+
`}}}}]);
|