@ai-group/chat-sdk 3.0.9 → 3.0.10
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/dist/cjs/components/FileGallery/index.js +7 -5
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +74 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/index.js +10 -7
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/types/FileGallery.d.ts +2 -0
- package/dist/cjs/types/FileGallery.js.map +1 -1
- package/dist/cjs/types/XAdkChatbot.d.ts +3 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/components/FileGallery/index.js +12 -5
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +81 -2
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +14 -8
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/types/FileGallery.d.ts +2 -0
- package/dist/esm/types/FileGallery.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +3 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +2 -3
- package/dist/cjs/components/FileGallery/FileGallery.stories.d.ts +0 -6
- package/dist/cjs/components/FileGallery/FileGallery.stories.js +0 -143
- package/dist/cjs/components/FileGallery/FileGallery.stories.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +0 -633
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +0 -394
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +0 -121
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +0 -7
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +0 -773
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +0 -7
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +0 -83
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +0 -7
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +0 -206
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +0 -6
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +0 -102
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +0 -7
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -180
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -7
- package/dist/esm/components/FileGallery/FileGallery.stories.d.ts +0 -6
- package/dist/esm/components/FileGallery/FileGallery.stories.js +0 -48
- package/dist/esm/components/FileGallery/FileGallery.stories.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +0 -510
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -1
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +0 -338
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +0 -1
- package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js +0 -128
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +0 -1
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +0 -636
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +0 -1
- package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js +0 -42
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +0 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +0 -208
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +0 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +0 -6
- package/dist/esm/components/XAiSender/XAiSender.stories.js +0 -87
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +0 -1
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -159
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -1
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
import { Button, Space } from "antd";
|
|
2
|
-
import XAdkProvider from "./index";
|
|
3
|
-
import { useChatState, useChatActions } from "./context";
|
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
6
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
var meta = {
|
|
8
|
-
title: "AI组件/XAdkProvider 对话容器",
|
|
9
|
-
component: XAdkProvider,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: "fullscreen",
|
|
12
|
-
docs: {
|
|
13
|
-
description: {
|
|
14
|
-
component: "\n# XAdkProvider - \u65B0\u4E00\u4EE3 Compound Components \u67B6\u6784\n\n\u57FA\u4E8E Compound Components \u6A21\u5F0F\u7684 AI \u804A\u5929 SDK,\u63D0\u4F9B\u5B8C\u5168\u53EF\u7EC4\u5408\u7684\u804A\u5929\u754C\u9762\u3002\n\n## \u6838\u5FC3\u7279\u6027\n\n- \uD83E\uDDE9 **\u5B8C\u5168\u53EF\u7EC4\u5408**: \u81EA\u7531\u7EC4\u5408\u5B50\u7EC4\u4EF6,\u6784\u5EFA\u4EFB\u610F\u5E03\u5C40\n- \uD83E\uDE9D **Hooks \u8BBF\u95EE**: \u901A\u8FC7 Hooks \u8F7B\u677E\u8BBF\u95EE\u72B6\u6001\u548C\u65B9\u6CD5\n- \u26A1 **\u6027\u80FD\u4F18\u5316**: Context \u4E09\u5C42\u5206\u79BB,\u907F\u514D\u4E0D\u5FC5\u8981\u7684 rerender\n- \uD83D\uDD19 **\u5411\u540E\u517C\u5BB9**: \u65E7 API \u5B8C\u5168\u4FDD\u7559,\u5E73\u6ED1\u5347\u7EA7\n- \uD83D\uDCD8 **TypeScript**: \u5B8C\u6574\u7684\u7C7B\u578B\u652F\u6301\n\n## \u53EF\u7528\u7EC4\u4EF6\n\n- `XAdkProvider.DefaultLayout` - \u9ED8\u8BA4\u5E03\u5C40 (\u7C7B\u4F3C ChatGPT/DeepSeek)\n- `XAdkProvider.Chatbot` - \u5B8C\u6574\u7684\u804A\u5929\u754C\u9762 (Messages + Sender)\n- `XAdkProvider.Messages` - \u6D88\u606F\u5217\u8868\n- `XAdkProvider.Sender` - \u8F93\u5165\u6846\n- `XAdkProvider.Sidebar` - \u4F1A\u8BDD\u5217\u8868\n- `XAdkProvider.Header` - \u53EF\u9009\u5934\u90E8\n\n## \u53EF\u7528 Hooks\n\n- `useChatState()` - \u8BBF\u95EE\u804A\u5929\u72B6\u6001\n- `useChatActions()` - \u8BBF\u95EE\u804A\u5929\u65B9\u6CD5\n- `useSession()` - \u8BBF\u95EE\u4F1A\u8BDD\u7BA1\u7406\n\n## \u914D\u7F6E\u8BF4\u660E\n\n\u8BF7\u5728\u4F7F\u7528\u524D\u914D\u7F6E:\n- `url`: AI \u670D\u52A1\u5730\u5740 (\u9ED8\u8BA4: window.location.origin)\n- `token`: \u8BA4\u8BC1\u4EE4\u724C (\u5FC5\u586B)\n- `config.appNo`: \u5E94\u7528\u7F16\u53F7 (\u5FC5\u586B)\n "
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
tags: ["autodocs"],
|
|
19
|
-
argTypes: {
|
|
20
|
-
url: {
|
|
21
|
-
description: "AI 服务地址",
|
|
22
|
-
control: "text"
|
|
23
|
-
},
|
|
24
|
-
token: {
|
|
25
|
-
description: "认证令牌",
|
|
26
|
-
control: "text"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
export default meta;
|
|
31
|
-
// ============================================
|
|
32
|
-
// 示例 1: 默认布局 (类似 ChatGPT)
|
|
33
|
-
// ============================================
|
|
34
|
-
export var 默认布局 = {
|
|
35
|
-
render: function render(args) {
|
|
36
|
-
return /*#__PURE__*/_jsx("div", {
|
|
37
|
-
style: {
|
|
38
|
-
height: "100vh"
|
|
39
|
-
},
|
|
40
|
-
children: /*#__PURE__*/_jsx(XAdkProvider, {
|
|
41
|
-
url: args.url,
|
|
42
|
-
token: args.token,
|
|
43
|
-
config: args.config,
|
|
44
|
-
children: /*#__PURE__*/_jsx(XAdkProvider.DefaultLayout, {
|
|
45
|
-
showSessionList: false,
|
|
46
|
-
allowUpload: true,
|
|
47
|
-
clearBtnShow: true
|
|
48
|
-
})
|
|
49
|
-
})
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
parameters: {
|
|
53
|
-
docs: {
|
|
54
|
-
description: {
|
|
55
|
-
story: "\n\u9ED8\u8BA4\u5E03\u5C40,\u7C7B\u4F3C ChatGPT \u7684\u754C\u9762\u98CE\u683C\u3002\n\n```tsx\n<XAdkProvider url=\"...\" token=\"...\" config={{ appNo: 'xxx' }}>\n <XAdkProvider.DefaultLayout\n showSessionList={false}\n allowUpload={true}\n clearBtnShow={true}\n />\n</XAdkProvider>\n```\n "
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
args: {
|
|
60
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
61
|
-
token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiLCJhdWQiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiLCJuYmYiOjE3NzI3ODU3OTMsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc5Mjk5MywiaWF0IjoxNzcyNzg1NzkzLCJqdGkiOiI4MmFjMGZmZS1lZDBlLTRiMjMtYWE3NS04NmUzZjA1OTQ2NmEiLCJjbGllbnRfaWQiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMifQ.bBipIkOwu4BQqtH_ijT1V12yw5SnDpu7HAZhWrzjRSF7NUlqXr3m25f1VU_jiE9wyHO0Pj0VMMox1xVrE90JT9zgFL2sa4IDLpoHl6B2sr-3pY8WsvTLnk9PBSyTfOjmuSRwNDZyQYx0p4xJKd0yhf5Acfh5vuvH8pW7ksGpEXKvCLqc9tpeLytE1qZm_eSWt_rjTxDzvwMv33RAWO_fEigezoXfOe8ALtWpIDXEoza6cI--2buVM6-ZAFJHwe0CA_rx5E5H7QpmonUlZZhu9JVEL7HCc76MWLnuRP9TlNuicsR3JrYvkZ8nkG4oiBSWaHAgOVizGXaf2Elr7edTNA",
|
|
62
|
-
config: {
|
|
63
|
-
appNo: "wTXH8NReD6NIhWKVfBQCxWvS"
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// ============================================
|
|
69
|
-
// 示例 2: 带会话列表 (类似 DeepSeek)
|
|
70
|
-
// ============================================
|
|
71
|
-
export var 带会话列表 = {
|
|
72
|
-
render: function render(args) {
|
|
73
|
-
return /*#__PURE__*/_jsx("div", {
|
|
74
|
-
style: {
|
|
75
|
-
height: "100vh"
|
|
76
|
-
},
|
|
77
|
-
children: /*#__PURE__*/_jsx(XAdkProvider, {
|
|
78
|
-
url: args.url,
|
|
79
|
-
token: args.token,
|
|
80
|
-
config: args.config,
|
|
81
|
-
children: /*#__PURE__*/_jsx(XAdkProvider.DefaultLayout, {
|
|
82
|
-
header: /*#__PURE__*/_jsx(_Fragment, {}),
|
|
83
|
-
showSessionList: true,
|
|
84
|
-
allowUpload: true,
|
|
85
|
-
clearBtnShow: false,
|
|
86
|
-
showFnCallDetail: true
|
|
87
|
-
})
|
|
88
|
-
})
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
parameters: {
|
|
92
|
-
docs: {
|
|
93
|
-
description: {
|
|
94
|
-
story: "\n\u5E26\u4F1A\u8BDD\u5217\u8868\u7684\u5E03\u5C40,\u7C7B\u4F3C DeepSeek/\u5143\u5B9D \u7684\u754C\u9762\u98CE\u683C\u3002\n\n\u5DE6\u4FA7\u663E\u793A\u5386\u53F2\u4F1A\u8BDD\u5217\u8868,\u53F3\u4FA7\u663E\u793A\u804A\u5929\u533A\u57DF\u3002\n\n\u7279\u70B9:\n- \u2705 \u5DE6\u53F3\u5E03\u5C40: \u5DE6\u4FA7 280px \u5BBD\u7684\u4F1A\u8BDD\u5217\u8868,\u53F3\u4FA7\u804A\u5929\u533A\u57DF\n- \u2705 \u4F1A\u8BDD\u7BA1\u7406: \u652F\u6301\u65B0\u5EFA\u3001\u5207\u6362\u3001\u91CD\u547D\u540D\u3001\u5220\u9664\u4F1A\u8BDD\n- \u2705 \u81EA\u52A8\u52A0\u8F7D: \u4F1A\u8BDD\u5217\u8868\u81EA\u52A8\u52A0\u8F7D\u5386\u53F2\u8BB0\u5F55\n- \u2705 \u54CD\u5E94\u5F0F: \u7A84\u5C4F\u81EA\u52A8\u5207\u6362\u5230\u4FA7\u8FB9\u680F\u6A21\u5F0F\n\n```tsx\n<XAdkProvider\n url=\"...\"\n token=\"...\"\n config={{\n appNo: 'xxx',\n session: {\n showSessionList: true,\n }\n }}\n>\n <XAdkProvider.DefaultLayout\n showSessionList={true}\n allowUpload={true}\n />\n</XAdkProvider>\n```\n "
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
args: {
|
|
99
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
100
|
-
token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiLCJhdWQiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiLCJuYmYiOjE3NzQyNDg2OTIsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3NDI1NTg5MiwiaWF0IjoxNzc0MjQ4NjkyLCJqdGkiOiJmNGJiZGQxOS03OWRjLTRjZGEtOGMwYy1jZTllNWVhOTJmYzMiLCJjbGllbnRfaWQiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkifQ.AqjF0Q5Gsu25xArL9L5YDwWbHO1ZHxmr86eZSTyM-jumtzc6oLWYBIYNkRX9iXkmRryM09a5Xyn2ZjYSSomu0mudHxAK6qNHCtsIsJctxUvWL5nb-9r2DdH1lsjaD6jLOlv4DePO-ww_QOlhElSPkTO4858VWXSQNqQgD2tFOw1bFlFZvqTWUZkdS-l17tHceupBlX_VR8qn5otJaZAYaQS58uUQ3ry5AGufIYqrKeAWctmwhIX5P1D0TbIjGw91SlYds7VZrkMgMOe4DJQVjwcVfg4OnFxDwXXYjIE8ikHczwt4xFRPnRIM4W3huGdejFS04QOn95a7vdwy_Dwqbw",
|
|
101
|
-
config: {
|
|
102
|
-
appNo: "D61c91a3XJdS8r7Dy4uqXnZi"
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
// ============================================
|
|
108
|
-
// 示例 3: 自定义布局
|
|
109
|
-
// ============================================
|
|
110
|
-
export var 自定义布局 = {
|
|
111
|
-
render: function render(args) {
|
|
112
|
-
return /*#__PURE__*/_jsx("div", {
|
|
113
|
-
style: {
|
|
114
|
-
height: "100vh"
|
|
115
|
-
},
|
|
116
|
-
children: /*#__PURE__*/_jsx(XAdkProvider, {
|
|
117
|
-
url: args.url,
|
|
118
|
-
token: args.token,
|
|
119
|
-
config: args.config,
|
|
120
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
121
|
-
style: {
|
|
122
|
-
display: "flex",
|
|
123
|
-
height: "100%"
|
|
124
|
-
},
|
|
125
|
-
children: /*#__PURE__*/_jsxs("div", {
|
|
126
|
-
style: {
|
|
127
|
-
flex: 1,
|
|
128
|
-
display: "flex",
|
|
129
|
-
flexDirection: "column"
|
|
130
|
-
},
|
|
131
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
132
|
-
style: {
|
|
133
|
-
padding: "16px 24px",
|
|
134
|
-
background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
|
|
135
|
-
color: "white",
|
|
136
|
-
borderBottom: "1px solid rgba(255,255,255,0.1)"
|
|
137
|
-
},
|
|
138
|
-
children: /*#__PURE__*/_jsx("h2", {
|
|
139
|
-
style: {
|
|
140
|
-
margin: 0,
|
|
141
|
-
fontSize: "18px"
|
|
142
|
-
},
|
|
143
|
-
children: "\uD83E\uDD16 AI \u667A\u80FD\u52A9\u624B"
|
|
144
|
-
})
|
|
145
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
146
|
-
style: {
|
|
147
|
-
flex: 1,
|
|
148
|
-
overflow: "hidden",
|
|
149
|
-
background: "#f9fafb"
|
|
150
|
-
},
|
|
151
|
-
children: /*#__PURE__*/_jsx(XAdkProvider.Messages, {})
|
|
152
|
-
}), /*#__PURE__*/_jsx(XAdkProvider.Sender, {
|
|
153
|
-
allowUpload: true,
|
|
154
|
-
clearBtnShow: true
|
|
155
|
-
})]
|
|
156
|
-
})
|
|
157
|
-
})
|
|
158
|
-
})
|
|
159
|
-
});
|
|
160
|
-
},
|
|
161
|
-
parameters: {
|
|
162
|
-
docs: {
|
|
163
|
-
description: {
|
|
164
|
-
story: "\n\u5B8C\u5168\u81EA\u5B9A\u4E49\u7684\u5E03\u5C40,\u5C55\u793A Compound Components \u7684\u7075\u6D3B\u6027\u3002\n\n\u53EF\u4EE5\u4EFB\u610F\u7EC4\u5408 Sidebar\u3001Messages\u3001Sender \u7B49\u7EC4\u4EF6\u3002\n "
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
args: {
|
|
169
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
170
|
-
token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzMwNjI5MjUsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MzA3MDEyNSwiaWF0IjoxNzczMDYyOTI1LCJqdGkiOiI0YmY3MjcxOS03NzNkLTRkZGYtOGYzNC01YjAwNjA5MWE3Y2IiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.AcWWnsWZVHvvpbT9IG64oo6mNNUFDKuaTMSCRMUvgiRyfn8f4Y64GBF_VR_XhgvNgNczXx5pXlU5AEXlvwA3RXv5Voy5Vl1dvyrLOtjZivnRJVeDVzn8Af57cXKE9QBZAS94bUMAtfmZmvqer4Lw6wuFNSg6G32BCpQH6ifR8zei3scf1Gcs0QXr00KcT3dFROmAzJscJC_KnXxGx_729BlQqupdJ05KEGHDIokqJNy5Ev_40IPmW-ZDJprXpEdReHfHnPuaUgGQRAJEW2yTf2OsyNenOwA9l0iKYK1ENDnBpsr08VUgMhJBKq-quzP5AE3eLIn-3KR0O-yT4lyBiQ",
|
|
171
|
-
config: {
|
|
172
|
-
appNo: "3jt2YbDjewVn2PHRKaDfJEgO"
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
// ============================================
|
|
178
|
-
// 示例 4: 使用 Hooks
|
|
179
|
-
// ============================================
|
|
180
|
-
var CustomStatsBar = function CustomStatsBar() {
|
|
181
|
-
var _useChatState = useChatState(),
|
|
182
|
-
messages = _useChatState.messages,
|
|
183
|
-
loading = _useChatState.loading,
|
|
184
|
-
appInfo = _useChatState.appInfo;
|
|
185
|
-
var _useChatActions = useChatActions(),
|
|
186
|
-
chat = _useChatActions.chat;
|
|
187
|
-
var quickQuestions = ["介绍一下你自己", "你能帮我做什么?", "如何开始使用?"];
|
|
188
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
189
|
-
style: {
|
|
190
|
-
padding: "16px 20px",
|
|
191
|
-
background: "white",
|
|
192
|
-
borderBottom: "1px solid #f0f0f0"
|
|
193
|
-
},
|
|
194
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
195
|
-
style: {
|
|
196
|
-
display: "flex",
|
|
197
|
-
justifyContent: "space-between",
|
|
198
|
-
alignItems: "center",
|
|
199
|
-
marginBottom: "12px"
|
|
200
|
-
},
|
|
201
|
-
children: [/*#__PURE__*/_jsxs(Space, {
|
|
202
|
-
children: [/*#__PURE__*/_jsxs("span", {
|
|
203
|
-
style: {
|
|
204
|
-
fontSize: "12px",
|
|
205
|
-
color: "#999"
|
|
206
|
-
},
|
|
207
|
-
children: ["\uD83D\uDCAC \u6D88\u606F\u6570: ", /*#__PURE__*/_jsx("strong", {
|
|
208
|
-
children: messages.length
|
|
209
|
-
})]
|
|
210
|
-
}), /*#__PURE__*/_jsxs("span", {
|
|
211
|
-
style: {
|
|
212
|
-
fontSize: "12px",
|
|
213
|
-
color: "#999"
|
|
214
|
-
},
|
|
215
|
-
children: ["\uD83E\uDD16 ", (appInfo === null || appInfo === void 0 ? void 0 : appInfo.appName) || "加载中..."]
|
|
216
|
-
})]
|
|
217
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
218
|
-
style: {
|
|
219
|
-
fontSize: "12px",
|
|
220
|
-
color: loading ? "#1890ff" : "#52c41a"
|
|
221
|
-
},
|
|
222
|
-
children: loading ? "● 生成中..." : "● 就绪"
|
|
223
|
-
})]
|
|
224
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
225
|
-
style: {
|
|
226
|
-
fontSize: "12px",
|
|
227
|
-
color: "#666",
|
|
228
|
-
marginBottom: "8px"
|
|
229
|
-
},
|
|
230
|
-
children: "\uD83D\uDCA1 \u5FEB\u6377\u95EE\u9898:"
|
|
231
|
-
}), /*#__PURE__*/_jsx(Space, {
|
|
232
|
-
wrap: true,
|
|
233
|
-
children: quickQuestions.map(function (q, i) {
|
|
234
|
-
return /*#__PURE__*/_jsx(Button, {
|
|
235
|
-
size: "small",
|
|
236
|
-
onClick: function onClick() {
|
|
237
|
-
return chat({
|
|
238
|
-
text: q
|
|
239
|
-
});
|
|
240
|
-
},
|
|
241
|
-
disabled: loading,
|
|
242
|
-
children: q
|
|
243
|
-
}, i);
|
|
244
|
-
})
|
|
245
|
-
})]
|
|
246
|
-
});
|
|
247
|
-
};
|
|
248
|
-
export var 使用Hooks = {
|
|
249
|
-
render: function render(args) {
|
|
250
|
-
return /*#__PURE__*/_jsx("div", {
|
|
251
|
-
style: {
|
|
252
|
-
height: "100vh"
|
|
253
|
-
},
|
|
254
|
-
children: /*#__PURE__*/_jsx(XAdkProvider, {
|
|
255
|
-
url: args.url,
|
|
256
|
-
token: args.token,
|
|
257
|
-
config: args.config,
|
|
258
|
-
children: /*#__PURE__*/_jsxs("div", {
|
|
259
|
-
style: {
|
|
260
|
-
display: "flex",
|
|
261
|
-
flexDirection: "column",
|
|
262
|
-
height: "100%"
|
|
263
|
-
},
|
|
264
|
-
children: [/*#__PURE__*/_jsx(CustomStatsBar, {}), /*#__PURE__*/_jsx("div", {
|
|
265
|
-
style: {
|
|
266
|
-
flex: 1
|
|
267
|
-
},
|
|
268
|
-
children: /*#__PURE__*/_jsx(XAdkProvider.Chatbot, {})
|
|
269
|
-
})]
|
|
270
|
-
})
|
|
271
|
-
})
|
|
272
|
-
});
|
|
273
|
-
},
|
|
274
|
-
parameters: {
|
|
275
|
-
docs: {
|
|
276
|
-
description: {
|
|
277
|
-
story: "\n\u4F7F\u7528 `useChatState` \u548C `useChatActions` Hooks \u8BBF\u95EE\u72B6\u6001\u548C\u65B9\u6CD5\u3002\n\n\u53EF\u4EE5\u5728\u4EFB\u610F\u5B50\u7EC4\u4EF6\u4E2D\u4F7F\u7528\u8FD9\u4E9B Hooks \u6765\u8BBF\u95EE\u804A\u5929\u6570\u636E\u548C\u64CD\u4F5C\u3002\n\n```tsx\nfunction CustomStatsBar() {\n const { messages, loading } = useChatState();\n const { chat } = useChatActions();\n\n return (\n <div>\n <p>\u6D88\u606F\u6570: {messages.length}</p>\n <button onClick={() => chat({ text: 'Hello' })}>\n \u53D1\u9001\n </button>\n </div>\n );\n}\n```\n "
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
},
|
|
281
|
-
args: {
|
|
282
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
283
|
-
token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3NjE1OTQsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc2ODc5NCwiaWF0IjoxNzcyNzYxNTk0LCJqdGkiOiI2M2IyMjRkNC1iODY3LTQzNjYtYTM5ZC1hZjNmOWQ0M2YyZmMiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.QNI4bD6MjIIvv-_SFxYEOiNv9304Ps5WF3b8_qmi3YIrqJQiaJ-iT1_fENpe9dD25RXcpgIv2Xnz9cI3Lz3gHfPKwoefijhrD7_Ye-9C5ztM2OI5pfoUurc1xPvjS7FGrTMZHNbpIFXyPoDAxtzGt-hLoQAEhBhLib8lLAbAQACmBOYy3KGwJg4sSFvbLkGWgqkH2aqC8MdH50ce35leybbEJu7ImithH3rj4E2oF6EqTb3vK181DFooEJ9E_LaC_hrw8zqGh9PSJah1rO3nxUDOPnz946RLKUi0xLOtz42l6qY2nUFsd9axYunGnk2ds5gg-PcBZN_X_aa-w7SLnw",
|
|
284
|
-
config: {
|
|
285
|
-
appNo: "3jt2YbDjewVn2PHRKaDfJEgO"
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// ============================================
|
|
291
|
-
// 示例 5: 简化的 Chatbot
|
|
292
|
-
// ============================================
|
|
293
|
-
export var 简化界面 = {
|
|
294
|
-
render: function render(args) {
|
|
295
|
-
return /*#__PURE__*/_jsx("div", {
|
|
296
|
-
style: {
|
|
297
|
-
height: "100vh",
|
|
298
|
-
display: "flex",
|
|
299
|
-
alignItems: "center",
|
|
300
|
-
justifyContent: "center",
|
|
301
|
-
background: "#f5f5f5",
|
|
302
|
-
padding: "40px"
|
|
303
|
-
},
|
|
304
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
305
|
-
style: {
|
|
306
|
-
width: "100%",
|
|
307
|
-
maxWidth: "900px",
|
|
308
|
-
height: "700px",
|
|
309
|
-
background: "white",
|
|
310
|
-
borderRadius: "12px",
|
|
311
|
-
overflow: "hidden",
|
|
312
|
-
boxShadow: "0 8px 24px rgba(0,0,0,0.12)"
|
|
313
|
-
},
|
|
314
|
-
children: /*#__PURE__*/_jsx(XAdkProvider, {
|
|
315
|
-
url: args.url,
|
|
316
|
-
token: args.token,
|
|
317
|
-
config: args.config,
|
|
318
|
-
children: /*#__PURE__*/_jsx(XAdkProvider.Chatbot, {})
|
|
319
|
-
})
|
|
320
|
-
})
|
|
321
|
-
});
|
|
322
|
-
},
|
|
323
|
-
parameters: {
|
|
324
|
-
docs: {
|
|
325
|
-
description: {
|
|
326
|
-
story: "\n\u6700\u7B80\u5316\u7684\u804A\u5929\u754C\u9762,\u53EA\u5305\u542B\u6D88\u606F\u5217\u8868\u548C\u8F93\u5165\u6846\u3002\n\n\u9002\u5408\u5D4C\u5165\u5230\u5176\u4ED6\u9875\u9762\u6216\u4F5C\u4E3A\u5BF9\u8BDD\u7A97\u53E3\u4F7F\u7528\u3002\n\n```tsx\n<XAdkProvider url=\"...\" token=\"...\" config={{ appNo: 'xxx' }}>\n <XAdkProvider.Chatbot />\n</XAdkProvider>\n```\n "
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
},
|
|
330
|
-
args: {
|
|
331
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
332
|
-
token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3NjE1OTQsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc2ODc5NCwiaWF0IjoxNzcyNzYxNTk0LCJqdGkiOiI2M2IyMjRkNC1iODY3LTQzNjYtYTM5ZC1hZjNmOWQ0M2YyZmMiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.QNI4bD6MjIIvv-_SFxYEOiNv9304Ps5WF3b8_qmi3YIrqJQiaJ-iT1_fENpe9dD25RXcpgIv2Xnz9cI3Lz3gHfPKwoefijhrD7_Ye-9C5ztM2OI5pfoUurc1xPvjS7FGrTMZHNbpIFXyPoDAxtzGt-hLoQAEhBhLib8lLAbAQACmBOYy3KGwJg4sSFvbLkGWgqkH2aqC8MdH50ce35leybbEJu7ImithH3rj4E2oF6EqTb3vK181DFooEJ9E_LaC_hrw8zqGh9PSJah1rO3nxUDOPnz946RLKUi0xLOtz42l6qY2nUFsd9axYunGnk2ds5gg-PcBZN_X_aa-w7SLnw",
|
|
333
|
-
config: {
|
|
334
|
-
appNo: "3jt2YbDjewVn2PHRKaDfJEgO"
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
//# sourceMappingURL=XAdkProvider.stories.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Button","Space","XAdkProvider","useChatState","useChatActions","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","url","control","token","默认布局","render","args","style","height","children","config","DefaultLayout","showSessionList","allowUpload","clearBtnShow","story","appNo","带会话列表","header","showFnCallDetail","自定义布局","display","flex","flexDirection","padding","background","color","borderBottom","margin","fontSize","overflow","Messages","Sender","CustomStatsBar","_useChatState","messages","loading","appInfo","_useChatActions","chat","quickQuestions","justifyContent","alignItems","marginBottom","length","appName","wrap","map","q","i","size","onClick","text","disabled","使用Hooks","Chatbot","简化界面","width","maxWidth","borderRadius","boxShadow"],"sources":["../../../../src/components/XAdkProvider/XAdkProvider.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Button, Space } from \"antd\";\nimport XAdkProvider from \"./index\";\nimport { useChatState, useChatActions } from \"./context\";\n\nconst meta: Meta<typeof XAdkProvider> = {\n title: \"AI组件/XAdkProvider 对话容器\",\n component: XAdkProvider,\n parameters: {\n layout: \"fullscreen\",\n docs: {\n description: {\n component: `\n# XAdkProvider - 新一代 Compound Components 架构\n\n基于 Compound Components 模式的 AI 聊天 SDK,提供完全可组合的聊天界面。\n\n## 核心特性\n\n- 🧩 **完全可组合**: 自由组合子组件,构建任意布局\n- 🪝 **Hooks 访问**: 通过 Hooks 轻松访问状态和方法\n- ⚡ **性能优化**: Context 三层分离,避免不必要的 rerender\n- 🔙 **向后兼容**: 旧 API 完全保留,平滑升级\n- 📘 **TypeScript**: 完整的类型支持\n\n## 可用组件\n\n- \\`XAdkProvider.DefaultLayout\\` - 默认布局 (类似 ChatGPT/DeepSeek)\n- \\`XAdkProvider.Chatbot\\` - 完整的聊天界面 (Messages + Sender)\n- \\`XAdkProvider.Messages\\` - 消息列表\n- \\`XAdkProvider.Sender\\` - 输入框\n- \\`XAdkProvider.Sidebar\\` - 会话列表\n- \\`XAdkProvider.Header\\` - 可选头部\n\n## 可用 Hooks\n\n- \\`useChatState()\\` - 访问聊天状态\n- \\`useChatActions()\\` - 访问聊天方法\n- \\`useSession()\\` - 访问会话管理\n\n## 配置说明\n\n请在使用前配置:\n- \\`url\\`: AI 服务地址 (默认: window.location.origin)\n- \\`token\\`: 认证令牌 (必填)\n- \\`config.appNo\\`: 应用编号 (必填)\n `,\n },\n },\n },\n tags: [\"autodocs\"],\n argTypes: {\n url: {\n description: \"AI 服务地址\",\n control: \"text\",\n },\n token: {\n description: \"认证令牌\",\n control: \"text\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// ============================================\n// 示例 1: 默认布局 (类似 ChatGPT)\n// ============================================\nexport const 默认布局: Story = {\n render: (args) => (\n <div style={{ height: \"100vh\" }}>\n <XAdkProvider url={args.url} token={args.token} config={args.config}>\n <XAdkProvider.DefaultLayout\n showSessionList={false}\n allowUpload={true}\n clearBtnShow={true}\n />\n </XAdkProvider>\n </div>\n ),\n parameters: {\n docs: {\n description: {\n story: `\n默认布局,类似 ChatGPT 的界面风格。\n\n\\`\\`\\`tsx\n<XAdkProvider url=\"...\" token=\"...\" config={{ appNo: 'xxx' }}>\n <XAdkProvider.DefaultLayout\n showSessionList={false}\n allowUpload={true}\n clearBtnShow={true}\n />\n</XAdkProvider>\n\\`\\`\\`\n `,\n },\n },\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiLCJhdWQiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiLCJuYmYiOjE3NzI3ODU3OTMsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc5Mjk5MywiaWF0IjoxNzcyNzg1NzkzLCJqdGkiOiI4MmFjMGZmZS1lZDBlLTRiMjMtYWE3NS04NmUzZjA1OTQ2NmEiLCJjbGllbnRfaWQiOiJ3VFhIOE5SZUQ2TkloV0tWZkJRQ3hXdlMifQ.bBipIkOwu4BQqtH_ijT1V12yw5SnDpu7HAZhWrzjRSF7NUlqXr3m25f1VU_jiE9wyHO0Pj0VMMox1xVrE90JT9zgFL2sa4IDLpoHl6B2sr-3pY8WsvTLnk9PBSyTfOjmuSRwNDZyQYx0p4xJKd0yhf5Acfh5vuvH8pW7ksGpEXKvCLqc9tpeLytE1qZm_eSWt_rjTxDzvwMv33RAWO_fEigezoXfOe8ALtWpIDXEoza6cI--2buVM6-ZAFJHwe0CA_rx5E5H7QpmonUlZZhu9JVEL7HCc76MWLnuRP9TlNuicsR3JrYvkZ8nkG4oiBSWaHAgOVizGXaf2Elr7edTNA\",\n config: {\n appNo: \"wTXH8NReD6NIhWKVfBQCxWvS\",\n },\n },\n};\n\n// ============================================\n// 示例 2: 带会话列表 (类似 DeepSeek)\n// ============================================\nexport const 带会话列表: Story = {\n render: (args) => (\n <div style={{ height: \"100vh\" }}>\n <XAdkProvider url={args.url} token={args.token} config={args.config}>\n <XAdkProvider.DefaultLayout\n header={<></>}\n showSessionList={true}\n allowUpload={true}\n clearBtnShow={false}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n </div>\n ),\n parameters: {\n docs: {\n description: {\n story: `\n带会话列表的布局,类似 DeepSeek/元宝 的界面风格。\n\n左侧显示历史会话列表,右侧显示聊天区域。\n\n特点:\n- ✅ 左右布局: 左侧 280px 宽的会话列表,右侧聊天区域\n- ✅ 会话管理: 支持新建、切换、重命名、删除会话\n- ✅ 自动加载: 会话列表自动加载历史记录\n- ✅ 响应式: 窄屏自动切换到侧边栏模式\n\n\\`\\`\\`tsx\n<XAdkProvider\n url=\"...\"\n token=\"...\"\n config={{\n appNo: 'xxx',\n session: {\n showSessionList: true,\n }\n }}\n>\n <XAdkProvider.DefaultLayout\n showSessionList={true}\n allowUpload={true}\n />\n</XAdkProvider>\n\\`\\`\\`\n `,\n },\n },\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiLCJhdWQiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiLCJuYmYiOjE3NzQyNDg2OTIsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3NDI1NTg5MiwiaWF0IjoxNzc0MjQ4NjkyLCJqdGkiOiJmNGJiZGQxOS03OWRjLTRjZGEtOGMwYy1jZTllNWVhOTJmYzMiLCJjbGllbnRfaWQiOiJENjFjOTFhM1hKZFM4cjdEeTR1cVhuWmkifQ.AqjF0Q5Gsu25xArL9L5YDwWbHO1ZHxmr86eZSTyM-jumtzc6oLWYBIYNkRX9iXkmRryM09a5Xyn2ZjYSSomu0mudHxAK6qNHCtsIsJctxUvWL5nb-9r2DdH1lsjaD6jLOlv4DePO-ww_QOlhElSPkTO4858VWXSQNqQgD2tFOw1bFlFZvqTWUZkdS-l17tHceupBlX_VR8qn5otJaZAYaQS58uUQ3ry5AGufIYqrKeAWctmwhIX5P1D0TbIjGw91SlYds7VZrkMgMOe4DJQVjwcVfg4OnFxDwXXYjIE8ikHczwt4xFRPnRIM4W3huGdejFS04QOn95a7vdwy_Dwqbw\",\n config: {\n appNo: \"D61c91a3XJdS8r7Dy4uqXnZi\",\n },\n },\n};\n\n// ============================================\n// 示例 3: 自定义布局\n// ============================================\nexport const 自定义布局: Story = {\n render: (args) => (\n <div style={{ height: \"100vh\" }}>\n <XAdkProvider url={args.url} token={args.token} config={args.config}>\n <div style={{ display: \"flex\", height: \"100%\" }}>\n {/* 左侧会话列表 */}\n {/* <div\n style={{\n width: 300,\n borderRight: \"1px solid #f0f0f0\",\n background: \"#fafafa\",\n }}\n >\n <XAdkProvider.Sidebar />\n </div> */}\n\n {/* 右侧聊天区 */}\n <div style={{ flex: 1, display: \"flex\", flexDirection: \"column\" }}>\n {/* 自定义头部 */}\n <div\n style={{\n padding: \"16px 24px\",\n background: \"linear-gradient(135deg, #667eea 0%, #764ba2 100%)\",\n color: \"white\",\n borderBottom: \"1px solid rgba(255,255,255,0.1)\",\n }}\n >\n <h2 style={{ margin: 0, fontSize: \"18px\" }}>🤖 AI 智能助手</h2>\n </div>\n\n {/* 消息区 */}\n <div style={{ flex: 1, overflow: \"hidden\", background: \"#f9fafb\" }}>\n <XAdkProvider.Messages />\n </div>\n\n {/* 输入区 */}\n <XAdkProvider.Sender allowUpload={true} clearBtnShow={true} />\n </div>\n </div>\n </XAdkProvider>\n </div>\n ),\n parameters: {\n docs: {\n description: {\n story: `\n完全自定义的布局,展示 Compound Components 的灵活性。\n\n可以任意组合 Sidebar、Messages、Sender 等组件。\n `,\n },\n },\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzMwNjI5MjUsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MzA3MDEyNSwiaWF0IjoxNzczMDYyOTI1LCJqdGkiOiI0YmY3MjcxOS03NzNkLTRkZGYtOGYzNC01YjAwNjA5MWE3Y2IiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.AcWWnsWZVHvvpbT9IG64oo6mNNUFDKuaTMSCRMUvgiRyfn8f4Y64GBF_VR_XhgvNgNczXx5pXlU5AEXlvwA3RXv5Voy5Vl1dvyrLOtjZivnRJVeDVzn8Af57cXKE9QBZAS94bUMAtfmZmvqer4Lw6wuFNSg6G32BCpQH6ifR8zei3scf1Gcs0QXr00KcT3dFROmAzJscJC_KnXxGx_729BlQqupdJ05KEGHDIokqJNy5Ev_40IPmW-ZDJprXpEdReHfHnPuaUgGQRAJEW2yTf2OsyNenOwA9l0iKYK1ENDnBpsr08VUgMhJBKq-quzP5AE3eLIn-3KR0O-yT4lyBiQ\",\n config: {\n appNo: \"3jt2YbDjewVn2PHRKaDfJEgO\",\n },\n },\n};\n\n// ============================================\n// 示例 4: 使用 Hooks\n// ============================================\nconst CustomStatsBar = () => {\n const { messages, loading, appInfo } = useChatState();\n const { chat } = useChatActions();\n\n const quickQuestions = [\"介绍一下你自己\", \"你能帮我做什么?\", \"如何开始使用?\"];\n\n return (\n <div\n style={{\n padding: \"16px 20px\",\n background: \"white\",\n borderBottom: \"1px solid #f0f0f0\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: \"12px\",\n }}\n >\n <Space>\n <span style={{ fontSize: \"12px\", color: \"#999\" }}>\n 💬 消息数: <strong>{messages.length}</strong>\n </span>\n <span style={{ fontSize: \"12px\", color: \"#999\" }}>\n 🤖 {appInfo?.appName || \"加载中...\"}\n </span>\n </Space>\n <span\n style={{ fontSize: \"12px\", color: loading ? \"#1890ff\" : \"#52c41a\" }}\n >\n {loading ? \"● 生成中...\" : \"● 就绪\"}\n </span>\n </div>\n <div style={{ fontSize: \"12px\", color: \"#666\", marginBottom: \"8px\" }}>\n 💡 快捷问题:\n </div>\n <Space wrap>\n {quickQuestions.map((q, i) => (\n <Button\n key={i}\n size=\"small\"\n onClick={() => chat({ text: q })}\n disabled={loading}\n >\n {q}\n </Button>\n ))}\n </Space>\n </div>\n );\n};\n\nexport const 使用Hooks: Story = {\n render: (args) => (\n <div style={{ height: \"100vh\" }}>\n <XAdkProvider url={args.url} token={args.token} config={args.config}>\n <div\n style={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}\n >\n <CustomStatsBar />\n <div style={{ flex: 1 }}>\n <XAdkProvider.Chatbot />\n </div>\n </div>\n </XAdkProvider>\n </div>\n ),\n parameters: {\n docs: {\n description: {\n story: `\n使用 \\`useChatState\\` 和 \\`useChatActions\\` Hooks 访问状态和方法。\n\n可以在任意子组件中使用这些 Hooks 来访问聊天数据和操作。\n\n\\`\\`\\`tsx\nfunction CustomStatsBar() {\n const { messages, loading } = useChatState();\n const { chat } = useChatActions();\n\n return (\n <div>\n <p>消息数: {messages.length}</p>\n <button onClick={() => chat({ text: 'Hello' })}>\n 发送\n </button>\n </div>\n );\n}\n\\`\\`\\`\n `,\n },\n },\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3NjE1OTQsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc2ODc5NCwiaWF0IjoxNzcyNzYxNTk0LCJqdGkiOiI2M2IyMjRkNC1iODY3LTQzNjYtYTM5ZC1hZjNmOWQ0M2YyZmMiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.QNI4bD6MjIIvv-_SFxYEOiNv9304Ps5WF3b8_qmi3YIrqJQiaJ-iT1_fENpe9dD25RXcpgIv2Xnz9cI3Lz3gHfPKwoefijhrD7_Ye-9C5ztM2OI5pfoUurc1xPvjS7FGrTMZHNbpIFXyPoDAxtzGt-hLoQAEhBhLib8lLAbAQACmBOYy3KGwJg4sSFvbLkGWgqkH2aqC8MdH50ce35leybbEJu7ImithH3rj4E2oF6EqTb3vK181DFooEJ9E_LaC_hrw8zqGh9PSJah1rO3nxUDOPnz946RLKUi0xLOtz42l6qY2nUFsd9axYunGnk2ds5gg-PcBZN_X_aa-w7SLnw\",\n config: {\n appNo: \"3jt2YbDjewVn2PHRKaDfJEgO\",\n },\n },\n};\n\n// ============================================\n// 示例 5: 简化的 Chatbot\n// ============================================\nexport const 简化界面: Story = {\n render: (args) => (\n <div\n style={{\n height: \"100vh\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: \"#f5f5f5\",\n padding: \"40px\",\n }}\n >\n <div\n style={{\n width: \"100%\",\n maxWidth: \"900px\",\n height: \"700px\",\n background: \"white\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n boxShadow: \"0 8px 24px rgba(0,0,0,0.12)\",\n }}\n >\n <XAdkProvider url={args.url} token={args.token} config={args.config}>\n <XAdkProvider.Chatbot />\n </XAdkProvider>\n </div>\n </div>\n ),\n parameters: {\n docs: {\n description: {\n story: `\n最简化的聊天界面,只包含消息列表和输入框。\n\n适合嵌入到其他页面或作为对话窗口使用。\n\n\\`\\`\\`tsx\n<XAdkProvider url=\"...\" token=\"...\" config={{ appNo: 'xxx' }}>\n <XAdkProvider.Chatbot />\n</XAdkProvider>\n\\`\\`\\`\n `,\n },\n },\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3NjE1OTQsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3Mjc2ODc5NCwiaWF0IjoxNzcyNzYxNTk0LCJqdGkiOiI2M2IyMjRkNC1iODY3LTQzNjYtYTM5ZC1hZjNmOWQ0M2YyZmMiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.QNI4bD6MjIIvv-_SFxYEOiNv9304Ps5WF3b8_qmi3YIrqJQiaJ-iT1_fENpe9dD25RXcpgIv2Xnz9cI3Lz3gHfPKwoefijhrD7_Ye-9C5ztM2OI5pfoUurc1xPvjS7FGrTMZHNbpIFXyPoDAxtzGt-hLoQAEhBhLib8lLAbAQACmBOYy3KGwJg4sSFvbLkGWgqkH2aqC8MdH50ce35leybbEJu7ImithH3rj4E2oF6EqTb3vK181DFooEJ9E_LaC_hrw8zqGh9PSJah1rO3nxUDOPnz946RLKUi0xLOtz42l6qY2nUFsd9axYunGnk2ds5gg-PcBZN_X_aa-w7SLnw\",\n config: {\n appNo: \"3jt2YbDjewVn2PHRKaDfJEgO\",\n },\n },\n};\n"],"mappings":"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"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
-
import { useState } from "react";
|
|
5
|
-
import XAdkSender from ".";
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
var meta = {
|
|
8
|
-
title: "AI组件/XAdkSender 输入框",
|
|
9
|
-
component: XAdkSender,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: "centered"
|
|
12
|
-
},
|
|
13
|
-
tags: ["autodocs"],
|
|
14
|
-
argTypes: {}
|
|
15
|
-
};
|
|
16
|
-
export default meta;
|
|
17
|
-
// 基础用法
|
|
18
|
-
var BasicUsageStory = function BasicUsageStory() {
|
|
19
|
-
var _useState = useState([]),
|
|
20
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
21
|
-
files = _useState2[0],
|
|
22
|
-
setFiles = _useState2[1];
|
|
23
|
-
var _useState3 = useState(""),
|
|
24
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
25
|
-
content = _useState4[0],
|
|
26
|
-
setContent = _useState4[1];
|
|
27
|
-
var _useState5 = useState(false),
|
|
28
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
29
|
-
loading = _useState6[0],
|
|
30
|
-
setLoading = _useState6[1];
|
|
31
|
-
|
|
32
|
-
// 模拟清空数据
|
|
33
|
-
var handleSubmit = function handleSubmit(data) {
|
|
34
|
-
console.info("submit", data);
|
|
35
|
-
};
|
|
36
|
-
var handleClear = function handleClear() {
|
|
37
|
-
console.info("clear");
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
// 模拟停止发送
|
|
41
|
-
var handleStop = function handleStop() {
|
|
42
|
-
console.info("stop");
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
// 模拟输入
|
|
46
|
-
var handleChange = function handleChange(text) {
|
|
47
|
-
setContent(text);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// 模拟快捷短语点击
|
|
51
|
-
var handleSendMessage = function handleSendMessage(obj) {
|
|
52
|
-
setLoading(true);
|
|
53
|
-
setTimeout(function () {
|
|
54
|
-
setContent("");
|
|
55
|
-
setFiles([]);
|
|
56
|
-
setLoading(false);
|
|
57
|
-
}, 2000);
|
|
58
|
-
};
|
|
59
|
-
return /*#__PURE__*/_jsx("div", {
|
|
60
|
-
style: {
|
|
61
|
-
width: 800,
|
|
62
|
-
border: "1px solid #eee",
|
|
63
|
-
padding: 20
|
|
64
|
-
},
|
|
65
|
-
children: /*#__PURE__*/_jsx(XAdkSender, {
|
|
66
|
-
loading: loading,
|
|
67
|
-
clearBtnShow: true,
|
|
68
|
-
allowUpload: true,
|
|
69
|
-
uploadRequest: ( /*#__PURE__*/function () {
|
|
70
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
71
|
-
var file, onProgress, onSuccess, onError, formData, progress, interval;
|
|
72
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
73
|
-
while (1) switch (_context.prev = _context.next) {
|
|
74
|
-
case 0:
|
|
75
|
-
file = _ref.file, onProgress = _ref.onProgress, onSuccess = _ref.onSuccess, onError = _ref.onError;
|
|
76
|
-
try {
|
|
77
|
-
// 创建 FormData
|
|
78
|
-
formData = new FormData();
|
|
79
|
-
formData.append("file", file);
|
|
80
|
-
|
|
81
|
-
// 模拟上传进度
|
|
82
|
-
progress = 0;
|
|
83
|
-
interval = setInterval(function () {
|
|
84
|
-
progress += 10;
|
|
85
|
-
onProgress === null || onProgress === void 0 || onProgress({
|
|
86
|
-
percent: progress
|
|
87
|
-
});
|
|
88
|
-
if (progress >= 100) {
|
|
89
|
-
clearInterval(interval);
|
|
90
|
-
// 模拟成功响应
|
|
91
|
-
var mockResponse = {
|
|
92
|
-
code: 200,
|
|
93
|
-
data: {
|
|
94
|
-
fileId: Math.floor(Math.random() * 1000) + 1,
|
|
95
|
-
tempUrl: "https://example.com/uploads/".concat(file.name),
|
|
96
|
-
fileName: file.name,
|
|
97
|
-
fileType: file.name.split(".").pop() || "",
|
|
98
|
-
fileSize: 11234,
|
|
99
|
-
fize: 22333
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
onSuccess === null || onSuccess === void 0 || onSuccess(mockResponse);
|
|
103
|
-
}
|
|
104
|
-
}, 100);
|
|
105
|
-
} catch (error) {
|
|
106
|
-
onError === null || onError === void 0 || onError(error);
|
|
107
|
-
}
|
|
108
|
-
case 2:
|
|
109
|
-
case "end":
|
|
110
|
-
return _context.stop();
|
|
111
|
-
}
|
|
112
|
-
}, _callee);
|
|
113
|
-
}));
|
|
114
|
-
return function (_x) {
|
|
115
|
-
return _ref2.apply(this, arguments);
|
|
116
|
-
};
|
|
117
|
-
}()),
|
|
118
|
-
onSubmit: handleSubmit,
|
|
119
|
-
onClear: handleClear,
|
|
120
|
-
onStop: handleStop
|
|
121
|
-
})
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
export var 基础用法 = {
|
|
125
|
-
render: BasicUsageStory,
|
|
126
|
-
args: {}
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=XAdkSender.stories.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useState","XAdkSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleSubmit","data","console","info","handleClear","handleStop","handleChange","text","handleSendMessage","obj","setTimeout","style","width","border","padding","children","clearBtnShow","allowUpload","uploadRequest","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","file","onProgress","onSuccess","onError","formData","progress","interval","wrap","_callee$","_context","prev","next","FormData","append","setInterval","percent","clearInterval","mockResponse","code","fileId","Math","floor","random","tempUrl","concat","name","fileName","fileType","split","pop","fileSize","fize","error","stop","_x","apply","arguments","onSubmit","onClear","onStop","基础用法","render","args"],"sources":["../../../../src/components/XAdkSender/XAdkSender.stories.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport type { Attachment } from \"@ant-design/x/es/attachments\";\nimport XAdkSender from \".\";\n\nconst meta: Meta<typeof XAdkSender> = {\n title: \"AI组件/XAdkSender 输入框\",\n component: XAdkSender,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleSubmit = (data: any) => {\n console.info(\"submit\", data);\n };\n\n const handleClear = () => {\n console.info(\"clear\");\n };\n\n // 模拟停止发送\n const handleStop = () => {\n console.info(\"stop\");\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n setLoading(true);\n setTimeout(() => {\n setContent(\"\");\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 800, border: \"1px solid #eee\", padding: 20 }}>\n <XAdkSender\n loading={loading}\n clearBtnShow={true}\n allowUpload={true}\n uploadRequest={async ({ file, onProgress, onSuccess, onError }) => {\n try {\n // 创建 FormData\n const formData = new FormData();\n formData.append(\"file\", file);\n\n // 模拟上传进度\n let progress = 0;\n const interval = setInterval(() => {\n progress += 10;\n onProgress?.({ percent: progress });\n\n if (progress >= 100) {\n clearInterval(interval);\n // 模拟成功响应\n const mockResponse = {\n code: 200,\n data: {\n fileId: Math.floor(Math.random() * 1000) + 1,\n tempUrl: `https://example.com/uploads/${file.name}`,\n fileName: file.name,\n fileType: file.name.split(\".\").pop() || \"\",\n fileSize: 11234,\n fize: 22333,\n },\n };\n onSuccess?.(mockResponse);\n }\n }, 100);\n } catch (error) {\n onError?.(error as Error);\n }\n }}\n onSubmit={handleSubmit}\n onClear={handleClear}\n onStop={handleStop}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
-
import XAiChatbot from ".";
|
|
3
|
-
declare const meta: Meta<typeof XAiChatbot>;
|
|
4
|
-
export default meta;
|
|
5
|
-
type Story = StoryObj<typeof meta>;
|
|
6
|
-
export declare const 基础用法: Story;
|
|
7
|
-
export declare const 在Provider中使用: Story;
|
|
8
|
-
export declare const 多个Provider实例: Story;
|
|
9
|
-
export declare const 新架构演示: Story;
|
|
10
|
-
export declare const 架构对比演示: Story;
|