@ai-group/chat-sdk 3.0.8 → 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.
Files changed (86) hide show
  1. package/dist/cjs/components/FileGallery/index.js +7 -5
  2. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  3. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +34 -26
  4. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
  5. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
  6. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  7. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  8. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +74 -2
  9. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +3 -3
  10. package/dist/cjs/components/XAdkChatbot/index.js +10 -7
  11. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  12. package/dist/cjs/types/FileGallery.d.ts +2 -0
  13. package/dist/cjs/types/FileGallery.js.map +1 -1
  14. package/dist/cjs/types/XAdkChatbot.d.ts +3 -0
  15. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  16. package/dist/esm/components/FileGallery/index.js +12 -5
  17. package/dist/esm/components/FileGallery/index.js.map +1 -1
  18. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -0
  19. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
  20. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
  21. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  22. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  23. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +81 -2
  24. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
  25. package/dist/esm/components/XAdkChatbot/index.js +14 -8
  26. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  27. package/dist/esm/types/FileGallery.d.ts +2 -0
  28. package/dist/esm/types/FileGallery.js.map +1 -1
  29. package/dist/esm/types/XAdkChatbot.d.ts +3 -0
  30. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  31. package/dist/umd/chat-sdk.min.js +1 -1
  32. package/package.json +2 -3
  33. package/dist/cjs/components/FileGallery/FileGallery.stories.d.ts +0 -6
  34. package/dist/cjs/components/FileGallery/FileGallery.stories.js +0 -143
  35. package/dist/cjs/components/FileGallery/FileGallery.stories.js.map +0 -7
  36. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  37. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +0 -633
  38. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -7
  39. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  40. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +0 -394
  41. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +0 -7
  42. package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  43. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +0 -121
  44. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +0 -7
  45. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  46. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +0 -773
  47. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +0 -7
  48. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  49. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +0 -83
  50. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +0 -7
  51. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  52. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +0 -206
  53. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +0 -7
  54. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +0 -6
  55. package/dist/cjs/components/XAiSender/XAiSender.stories.js +0 -102
  56. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +0 -7
  57. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  58. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -180
  59. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -7
  60. package/dist/esm/components/FileGallery/FileGallery.stories.d.ts +0 -6
  61. package/dist/esm/components/FileGallery/FileGallery.stories.js +0 -48
  62. package/dist/esm/components/FileGallery/FileGallery.stories.js.map +0 -1
  63. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  64. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +0 -510
  65. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -1
  66. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  67. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +0 -338
  68. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +0 -1
  69. package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  70. package/dist/esm/components/XAdkSender/XAdkSender.stories.js +0 -128
  71. package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +0 -1
  72. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  73. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +0 -636
  74. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +0 -1
  75. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  76. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +0 -42
  77. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +0 -1
  78. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  79. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +0 -208
  80. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +0 -1
  81. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +0 -6
  82. package/dist/esm/components/XAiSender/XAiSender.stories.js +0 -87
  83. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +0 -1
  84. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  85. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -159
  86. 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,6 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react-vite";
2
- import XAdkSender from ".";
3
- declare const meta: Meta<typeof XAdkSender>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const 基础用法: Story;
@@ -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;