@ai-group/chat-sdk 2.1.14 → 3.0.1-alpha.3

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 (257) hide show
  1. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  2. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +564 -10
  3. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +2 -2
  4. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  5. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js +92 -0
  6. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js.map +7 -0
  7. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  8. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js +137 -0
  9. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js.map +7 -0
  10. package/dist/cjs/components/XAdkChatbot/index.d.ts +10 -0
  11. package/dist/cjs/components/XAdkChatbot/index.js +292 -123
  12. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  13. package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
  14. package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
  15. package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
  16. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  17. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
  18. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
  19. package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  20. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
  21. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
  22. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  23. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
  24. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
  25. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  26. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
  27. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
  28. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  29. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
  30. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
  31. package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
  32. package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
  33. package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
  34. package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
  35. package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
  36. package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
  37. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
  38. package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
  39. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
  40. package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  41. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
  42. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
  43. package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  44. package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
  45. package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
  46. package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
  47. package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
  48. package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
  49. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
  50. package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
  51. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
  52. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  53. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
  54. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
  55. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  56. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
  57. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
  58. package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  59. package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
  60. package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
  61. package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
  62. package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
  63. package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
  64. package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
  65. package/dist/cjs/components/XAdkProvider/index.js +221 -0
  66. package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
  67. package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
  68. package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
  69. package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
  70. package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
  71. package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
  72. package/dist/cjs/components/XAdkSender/index.js +95 -81
  73. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  74. package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
  75. package/dist/cjs/components/XAdkSender/styles.js +21 -150
  76. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  77. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +2 -2
  78. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +277 -131
  79. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
  80. package/dist/cjs/components/XAiConversations/index.js +1 -1
  81. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  82. package/dist/cjs/components/XAiConversations/styles.js +5 -0
  83. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  84. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  85. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +14 -2
  86. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  87. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +2 -2
  88. package/dist/cjs/components/XAiSender/XAiSender.stories.js +1 -1
  89. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +1 -1
  90. package/dist/cjs/hooks/useADKChat.d.ts +7 -1
  91. package/dist/cjs/hooks/useADKChat.js +24 -8
  92. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  93. package/dist/cjs/index.d.ts +25 -9
  94. package/dist/cjs/index.js +37 -0
  95. package/dist/cjs/index.js.map +3 -3
  96. package/dist/cjs/styles/common.js +1 -1
  97. package/dist/cjs/styles/common.js.map +2 -2
  98. package/dist/cjs/types/ChatHook.d.ts +81 -0
  99. package/dist/cjs/types/ChatHook.js +18 -0
  100. package/dist/cjs/types/ChatHook.js.map +7 -0
  101. package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
  102. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  103. package/dist/cjs/types/XAdkProvider.d.ts +10 -27
  104. package/dist/cjs/types/XAdkProvider.js.map +2 -2
  105. package/dist/cjs/types/XAdkSender.d.ts +18 -0
  106. package/dist/cjs/types/XAdkSender.js.map +1 -1
  107. package/dist/cjs/types/XAiConversations.d.ts +4 -2
  108. package/dist/cjs/types/XAiConversations.js.map +1 -1
  109. package/dist/cjs/types/XAiThoughtChain.d.ts +1 -1
  110. package/dist/cjs/types/XAiThoughtChain.js.map +1 -1
  111. package/dist/cjs/utils/index.d.ts +1 -0
  112. package/dist/cjs/utils/index.js +4 -1
  113. package/dist/cjs/utils/index.js.map +2 -2
  114. package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
  115. package/dist/cjs/utils/parseAgentMessage.js +180 -0
  116. package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
  117. package/dist/cjs/utils/umdEntry.d.ts +91 -0
  118. package/dist/cjs/utils/umdEntry.js +108 -6
  119. package/dist/cjs/utils/umdEntry.js.map +3 -3
  120. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  121. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
  122. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
  123. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  124. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
  125. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
  126. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  127. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
  128. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
  129. package/dist/esm/components/XAdkChatbot/index.d.ts +10 -0
  130. package/dist/esm/components/XAdkChatbot/index.js +388 -172
  131. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  132. package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
  133. package/dist/esm/components/XAdkChatbot/styles.js +23 -12
  134. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  135. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  136. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
  137. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
  138. package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  139. package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
  140. package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
  141. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  142. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +140 -0
  143. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
  144. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  145. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
  146. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
  147. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  148. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
  149. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
  150. package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
  151. package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
  152. package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
  153. package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
  154. package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
  155. package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
  156. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
  157. package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
  158. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
  159. package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  160. package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
  161. package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
  162. package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  163. package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
  164. package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
  165. package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
  166. package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
  167. package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
  168. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
  169. package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
  170. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
  171. package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  172. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
  173. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
  174. package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  175. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
  176. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
  177. package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  178. package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
  179. package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
  180. package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
  181. package/dist/esm/components/XAdkProvider/context/index.js +9 -0
  182. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
  183. package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
  184. package/dist/esm/components/XAdkProvider/index.js +220 -0
  185. package/dist/esm/components/XAdkProvider/index.js.map +1 -0
  186. package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
  187. package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
  188. package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
  189. package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
  190. package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
  191. package/dist/esm/components/XAdkSender/index.js +92 -109
  192. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  193. package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
  194. package/dist/esm/components/XAdkSender/styles.js +14 -31
  195. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  196. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +2 -2
  197. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +123 -123
  198. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
  199. package/dist/esm/components/XAiConversations/index.js +1 -1
  200. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  201. package/dist/esm/components/XAiConversations/styles.js +2 -2
  202. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  203. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  204. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +53 -53
  205. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  206. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +2 -2
  207. package/dist/esm/components/XAiSender/XAiSender.stories.js +9 -9
  208. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
  209. package/dist/esm/hooks/useADKChat.d.ts +7 -1
  210. package/dist/esm/hooks/useADKChat.js +35 -16
  211. package/dist/esm/hooks/useADKChat.js.map +1 -1
  212. package/dist/esm/index.d.ts +25 -9
  213. package/dist/esm/index.js +28 -2
  214. package/dist/esm/index.js.map +1 -1
  215. package/dist/esm/styles/common.js +11 -11
  216. package/dist/esm/styles/common.js.map +1 -1
  217. package/dist/esm/types/ChatHook.d.ts +81 -0
  218. package/dist/esm/types/ChatHook.js +2 -0
  219. package/dist/esm/types/ChatHook.js.map +1 -0
  220. package/dist/esm/types/XAdkChatbot.d.ts +80 -15
  221. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  222. package/dist/esm/types/XAdkProvider.d.ts +10 -27
  223. package/dist/esm/types/XAdkProvider.js.map +1 -1
  224. package/dist/esm/types/XAdkSender.d.ts +18 -0
  225. package/dist/esm/types/XAdkSender.js.map +1 -1
  226. package/dist/esm/types/XAiConversations.d.ts +4 -2
  227. package/dist/esm/types/XAiConversations.js.map +1 -1
  228. package/dist/esm/types/XAiThoughtChain.d.ts +1 -1
  229. package/dist/esm/types/XAiThoughtChain.js.map +1 -1
  230. package/dist/esm/utils/index.d.ts +1 -0
  231. package/dist/esm/utils/index.js +3 -0
  232. package/dist/esm/utils/index.js.map +1 -1
  233. package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
  234. package/dist/esm/utils/parseAgentMessage.js +286 -0
  235. package/dist/esm/utils/parseAgentMessage.js.map +1 -0
  236. package/dist/esm/utils/umdEntry.d.ts +91 -0
  237. package/dist/esm/utils/umdEntry.js +154 -16
  238. package/dist/esm/utils/umdEntry.js.map +1 -1
  239. package/dist/umd/chat-sdk.min.css +1 -1
  240. package/dist/umd/chat-sdk.min.js +1 -1
  241. package/package.json +20 -11
  242. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  243. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -177
  244. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
  245. package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
  246. package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
  247. package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
  248. package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
  249. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  250. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -163
  251. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
  252. package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
  253. package/dist/esm/components/XAdkWebProvider/index.js +0 -480
  254. package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
  255. package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
  256. /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
  257. /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","Divider","MessageRole","MessageStatus","documentIcon","XAiProvider","XAiChatbot","useProviderContext","useProviderMethods","jsxs","_jsxs","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","navbar","description","messages","mockMessages","id","type","createdAt","Date","status","done","role","assistant","content","text","user","files","parentMessageId","thinks","extra","noFooter","suggestion","key","BasicUsageStory","args","_useState","_useState2","_slicedToArray","setMessages","_useState3","_useState4","loading","setLoading","handleSendMessage","stream","forEach","chunk","idx","setTimeout","prev","updated","_toConsumableArray","targetIndex","targetMsg","_objectSpread","Math","random","toString","slice","pending","length","_updated$targetIndex$","execute","push","icon","name","handleClear","handleActions","index","data","console","log","handleSuggestMessageClick","_item","filter","m","ToolTip","_ref","cost","token","style","display","alignItems","fontSize","color","flex","paddingRight","children","height","width","border","borderRadius","messageTooltip","onClear","onSuggestMessageClick","onSend","onMessagesActionsCallback","enableUpload","uploadRequest","_ref2","file","onProgress","onSuccess","percent","基础用法","render","emptyStateText","在Provider中使用","decorators","Story","url","多个Provider实例","gap","providerId","marginRight","ArchitectureDemoComponent","_ref3","_getProviderValue","_useProviderContext","props","mergeLogic","context","_context$messages","isInProvider","customData","mergedProps","getProviderValue","providerMethods","padding","marginBottom","backgroundColor","margin","onClick","_providerMethods$send","sendMessage","call","disabled","cursor","新架构演示","navbarShow","subtitle","_ref4","info","架构对比演示","_ref5","_ref6"],"sources":["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Divider } from 'antd';\nimport { MessageRole, MessageStatus } from '@/types/XAiMessage';\nimport type { Messages } from '@/types/XAiMessage';\nimport documentIcon from '@/assets/document.svg';\nimport XAiProvider from '../XAiProvider';\nimport XAiChatbot from '.';\nimport { useProviderContext, useProviderMethods } from '@/hooks/useProviderContext';\n\nconst meta: Meta<typeof XAiChatbot> = {\n title: 'AI组件/XAiChatbot 聊天框',\n component: XAiChatbot,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n navbar: {\n description: '导航栏配置',\n },\n messages: {\n description: '消息列表',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// mock 消息数据,严格符合 Messages 类型\nconst mockMessages: Messages[] = [\n {\n id: '1',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: '你好,有什么我能帮助你的吗?',\n },\n },\n {\n id: '2',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: '检索从北京到上海的车票数据给我',\n files: [{\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"image\",\n \"fileSize\": 28118,\n }, {\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.pdf\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"pdf\",\n \"fileSize\": 28118,\n }]\n },\n parentMessageId: '1',\n },\n {\n id: '22',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: '',\n },\n thinks: '',\n // execute: [\n // // 工具库调用(MCP_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-1',\n // name: '已调用MCP智能工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(PLUGIN_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-2',\n // name: '已调用插件工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(SKILL)\n // // {\n // // action: 'INVOKE_AGENT_TOOL_START',\n // // id: 'tool-3',\n // // toolType: 'SKILL',\n // // agentToolName: '技能工具',\n // // args: { param3: 'baz' },\n\n // // },\n // // // 知识库调用(FAQ)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-1',\n // // processStatus: 'START',\n // // args: { question: '什么是FAQ?' },\n // // knowledgeType: 'FAQ',\n // // },\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-3',\n // name: '已调用文档知识库',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'RECALL_KNOWLEDGE_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 知识库调用(DOCUMENT)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-2',\n // // processStatus: 'START',\n // // args: { question: '文档库介绍' },\n // // knowledgeType: 'DOCUMENT',\n // // },\n // // 运行完毕\n // ],\n extra: {\n noFooter: true,\n },\n },\n {\n id: '4',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: '能否生成一段明年的产品计划开发计划文档给我',\n },\n },\n {\n id: '0',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: `\n# 项目开发计划\n\n本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。\n\n---\n\n## 🎯 核心目标\n\n- 提升用户留存率至 **45%**\n- 完成 Web 端新版上线\n- 建立 AI 推荐模块 MVP\n- 优化数据库访问性能\n\n---\n\n## 📅 关键时间节点\n\n| 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |\n|------------------|--------------|----------|------------------|--------------|----------|\n| 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |\n| UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |\n| 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |\n| 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |\n\n---\n\n## 🛠️ 技术方案简述\n\n我们将使用以下技术栈:\n\n- 前端:React + Vite + Zustand\n- 后端:Node.js + PostgreSQL\n- 数据分析:Python + Pandas\n- 部署环境:Kubernetes on AWS\n\n---\n\n## 💡 示例代码片段\n\n以下是一个用于生成唯一 ID 的函数示例:\n\n~~~ts\nimport { nanoid } from 'nanoid'\n\nexport function generateSessionId() {\n return \\`sess-\\${nanoid()}\\`\n}\n~~~\n`,\n },\n extra: {\n noFooter: true,\n },\n },\n {\n id: '11',\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [\n {\n key: '1',\n description: '我要查看 AI 文档',\n },\n {\n key: '2',\n description: '我如何看待 AI',\n },\n {\n key: '3',\n description: '你是谁?',\n },\n ],\n },\n];\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [messages, setMessages] = useState<Messages[]>(mockMessages);\n const [loading, setLoading] = useState<boolean>(false);\n\n // 模拟随机字符串流式返回\n const handleSendMessage = () => {\n setLoading(true);\n\n // 模拟流式输出(向 mockMessages 第二条消息 content.text 追加)\n const stream = ['我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '……'];\n\n stream.forEach((chunk, idx) => {\n setTimeout(() => {\n setMessages((prev) => {\n const updated = [...prev];\n const targetIndex = 2; // mockMessages 的第二条(索引 1)\n const targetMsg = updated[targetIndex];\n\n // 确保该消息存在且是 TextMessage\n if (targetMsg && targetMsg.type === 'TextMessage') {\n // content 可能是多种类型,这里做类型守卫\n if ('text' in targetMsg.content) {\n updated[targetIndex] = {\n ...targetMsg,\n content: {\n ...targetMsg.content,\n // 模拟随机字符串流式拼接\n // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),\n },\n thinks: targetMsg.thinks + chunk + Math.random().toString(36).slice(2, 5),\n status: MessageStatus.pending,\n };\n }\n }\n\n // 最后一个流块时,标记完成\n if (idx === stream.length - 1) {\n updated[targetIndex].execute?.push(\n {\n id: '5',\n type: 'ActionExecutionMessage',\n extra: {\n icon: documentIcon,\n },\n name: '运行完毕',\n createdAt: new Date(),\n });\n setLoading(false);\n updated[targetIndex] = {\n ...updated[targetIndex],\n status: MessageStatus.done,\n };\n }\n\n return updated;\n });\n }, 200 * (idx + 1)); // 每个片段延迟 600ms 模拟流\n });\n };\n\n useEffect(() => {\n if (messages) {\n handleSendMessage();\n }\n }, []);\n\n // 清空消息\n const handleClear = () => {\n setMessages([]);\n };\n\n // 模拟按钮回调\n const handleActions = (index: number, data: any) => {\n console.log(index, data);\n };\n\n // 模拟快捷短语点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev) => prev.filter((m) => m.id !== id));\n };\n\n // tooltip\n const ToolTip = (data: any) => {\n const { cost, token } = data?.extra || {};\n if (!cost && !token) return null;\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: '#949494',\n flex: 1,\n paddingRight: '40px',\n }}\n >\n {cost && <div>{cost}s</div>}\n {token && <Divider type=\"vertical\" />}\n {token && <div>{token} tokens</div>}\n </div>\n );\n };\n\n return (\n <div\n style={{\n height: '600px',\n width: '400px',\n border: '1px solid #e7e7e7',\n borderRadius: '8px',\n }}\n >\n <XAiChatbot\n {...args}\n messages={messages}\n loading={loading}\n messageTooltip={ToolTip}\n onClear={handleClear}\n onSuggestMessageClick={handleSuggestMessageClick}\n onSend={handleSendMessage}\n onMessagesActionsCallback={handleActions}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"image\",\n \"fileSize\": 28118,\n \"mimeType\": \"image/jpeg\",\n \"tempUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"type\": \"image\"\n });\n }, 1000);\n }}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n navbar: {\n title: '智能助手',\n },\n // messages: mockMessages,\n emptyStateText: '众安智能体',\n },\n};\n\n// 在 Provider 中使用\nexport const 在Provider中使用: Story = {\n decorators: [\n (Story) => (\n <XAiProvider token=\"test-token\" url=\"https://api.example.com\">\n <Story />\n </XAiProvider>\n ),\n ],\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 多个 Provider 实例\nexport const 多个Provider实例: Story = {\n decorators: [\n (Story) => (\n <div style={{ display: 'flex', gap: '50px', height: '600px' }}>\n <XAiProvider providerId=\"chat1\" token=\"token1\" url=\"https://api1.example.com\">\n <div style={{ width: '300px', marginRight: '40px' }}>\n <Story />\n </div>\n </XAiProvider>\n <XAiProvider providerId=\"chat2\" token=\"token2\" url=\"https://api2.example.com\">\n <div style={{ width: '300px' }}>\n <Story />\n </div>\n </XAiProvider>\n </div>\n ),\n ],\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 展示新架构的示例组件\nconst ArchitectureDemoComponent: React.FC<{ title: string }> = ({ title }) => {\n const { mergedProps, isInProvider, getProviderValue } = useProviderContext({\n props: { title },\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n return {\n ...props,\n messages: context.messages,\n loading: context.loading,\n customData: context.messages?.length || 0,\n };\n },\n });\n\n const providerMethods = useProviderMethods();\n\n return (\n <div style={{\n padding: '15px',\n border: '1px solid #e7e7e7',\n borderRadius: '8px',\n marginBottom: '10px',\n backgroundColor: '#fafafa',\n }}\n >\n <h4 style={{ margin: '0 0 10px 0' }}>{mergedProps.title}</h4>\n <div style={{ fontSize: '12px', color: '#666' }}>\n <p>Provider 状态: {isInProvider ? '✅ 已连接' : '❌ 未连接'}</p>\n <p>消息数量: {getProviderValue('messages')?.length || 0}</p>\n <p>加载状态: {getProviderValue('loading') ? '🔄 加载中' : '✅ 就绪'}</p>\n <button\n onClick={() => providerMethods.sendMessage?.({ text: '来自架构演示组件的消息' })}\n disabled={!isInProvider}\n style={{\n fontSize: '12px',\n padding: '4px 8px',\n backgroundColor: isInProvider ? '#1890ff' : '#d9d9d9',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: isInProvider ? 'pointer' : 'not-allowed',\n }}\n >\n {isInProvider ? '发送消息' : '需要 Provider'}\n </button>\n </div>\n </div>\n );\n};\n\n// 展示新架构的示例\nexport const 新架构演示: Story = {\n render: (args) => (\n <div style={{ width: '500px', height: '700px' }}>\n <XAiProvider token=\"demo-token\" url=\"https://api.example.com\" providerId=\"architecture-demo\">\n <div style={{ padding: '20px' }}>\n <h3 style={{ marginBottom: '20px' }}>新架构演示</h3>\n <p style={{ marginBottom: '20px', color: '#666' }}>\n 展示如何使用 useProviderContext 和 useProviderMethods Hook\n </p>\n\n {/* 演示组件 */}\n <div style={{ marginBottom: '20px' }}>\n <ArchitectureDemoComponent title=\"演示组件 A\" />\n <ArchitectureDemoComponent title=\"演示组件 B\" />\n <ArchitectureDemoComponent title=\"演示组件 C\" />\n </div>\n\n {/* 聊天机器人 */}\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: '架构演示聊天机器人',\n subtitle: '展示新 Hook 的使用',\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n ),\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 对比示例:独立使用 vs Provider 模式\nexport const 架构对比演示: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px', padding: '20px' }}>\n {/* 独立使用 */}\n <div style={{ width: '300px' }}>\n <h4>独立使用模式</h4>\n <div style={{ border: '1px solid #e7e7e7', borderRadius: '8px', padding: '15px' }}>\n <ArchitectureDemoComponent title=\"独立组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: '独立聊天机器人',\n subtitle: '不依赖 Provider',\n }}\n onSend={(content) => {\n console.log('独立模式发送:', content);\n }}\n onClear={() => {\n console.log('独立模式清空');\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </div>\n\n {/* Provider 模式 */}\n <div style={{ width: '300px' }}>\n <h4>Provider 模式</h4>\n <XAiProvider token=\"demo-token\" url=\"https://api.example.com\" providerId=\"comparison-demo\">\n <div style={{ border: '1px solid #e7e7e7', borderRadius: '8px', padding: '15px' }}>\n <ArchitectureDemoComponent title=\"Provider 组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理',\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useState","Divider","MessageRole","MessageStatus","documentIcon","XAiProvider","XAiChatbot","useProviderContext","useProviderMethods","jsxs","_jsxs","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","navbar","description","messages","mockMessages","id","type","createdAt","Date","status","done","role","assistant","content","text","user","files","fileName","fileId","fileUrl","fileType","fileSize","parentMessageId","thinks","extra","noFooter","suggestion","key","BasicUsageStory","args","_useState","_useState2","_slicedToArray","setMessages","_useState3","_useState4","loading","setLoading","handleSendMessage","stream","forEach","chunk","idx","setTimeout","prev","updated","_toConsumableArray","targetIndex","targetMsg","_objectSpread","Math","random","toString","slice","pending","length","_updated$targetIndex$","execute","push","icon","name","handleClear","handleActions","index","data","console","log","handleSuggestMessageClick","_item","filter","m","ToolTip","_ref","cost","token","style","display","alignItems","fontSize","color","flex","paddingRight","children","height","width","border","borderRadius","messageTooltip","onClear","onSuggestMessageClick","onSend","onMessagesActionsCallback","enableUpload","uploadRequest","_ref2","file","onProgress","onSuccess","percent","mimeType","tempUrl","基础用法","render","emptyStateText","在Provider中使用","decorators","Story","url","多个Provider实例","gap","providerId","marginRight","ArchitectureDemoComponent","_ref3","_getProviderValue","_useProviderContext","props","mergeLogic","context","_context$messages","isInProvider","customData","mergedProps","getProviderValue","providerMethods","padding","marginBottom","backgroundColor","margin","onClick","_providerMethods$send","sendMessage","call","disabled","cursor","新架构演示","navbarShow","subtitle","_ref4","info","架构对比演示","_ref5","_ref6"],"sources":["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Divider } from \"antd\";\nimport { MessageRole, MessageStatus } from \"@/types/XAiMessage\";\nimport type { Messages } from \"@/types/XAiMessage\";\nimport documentIcon from \"@/assets/document.svg\";\nimport XAiProvider from \"../XAiProvider\";\nimport XAiChatbot from \".\";\nimport {\n useProviderContext,\n useProviderMethods,\n} from \"@/hooks/useProviderContext\";\n\nconst meta: Meta<typeof XAiChatbot> = {\n title: \"AI组件/XAiChatbot 聊天框【下线】\",\n component: XAiChatbot,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n navbar: {\n description: \"导航栏配置\",\n },\n messages: {\n description: \"消息列表\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// mock 消息数据,严格符合 Messages 类型\nconst mockMessages: Messages[] = [\n {\n id: \"1\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"你好,有什么我能帮助你的吗?\",\n },\n },\n {\n id: \"2\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"检索从北京到上海的车票数据给我\",\n files: [\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n },\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.pdf\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"pdf\",\n fileSize: 28118,\n },\n ],\n },\n parentMessageId: \"1\",\n },\n {\n id: \"22\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"\",\n },\n thinks: \"\",\n // execute: [\n // // 工具库调用(MCP_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-1',\n // name: '已调用MCP智能工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(PLUGIN_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-2',\n // name: '已调用插件工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(SKILL)\n // // {\n // // action: 'INVOKE_AGENT_TOOL_START',\n // // id: 'tool-3',\n // // toolType: 'SKILL',\n // // agentToolName: '技能工具',\n // // args: { param3: 'baz' },\n\n // // },\n // // // 知识库调用(FAQ)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-1',\n // // processStatus: 'START',\n // // args: { question: '什么是FAQ?' },\n // // knowledgeType: 'FAQ',\n // // },\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-3',\n // name: '已调用文档知识库',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'RECALL_KNOWLEDGE_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 知识库调用(DOCUMENT)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-2',\n // // processStatus: 'START',\n // // args: { question: '文档库介绍' },\n // // knowledgeType: 'DOCUMENT',\n // // },\n // // 运行完毕\n // ],\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"4\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"能否生成一段明年的产品计划开发计划文档给我\",\n },\n },\n {\n id: \"0\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: `\n# 项目开发计划\n\n本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。\n\n---\n\n## 🎯 核心目标\n\n- 提升用户留存率至 **45%**\n- 完成 Web 端新版上线\n- 建立 AI 推荐模块 MVP\n- 优化数据库访问性能\n\n---\n\n## 📅 关键时间节点\n\n| 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |\n|------------------|--------------|----------|------------------|--------------|----------|\n| 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |\n| UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |\n| 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |\n| 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |\n\n---\n\n## 🛠️ 技术方案简述\n\n我们将使用以下技术栈:\n\n- 前端:React + Vite + Zustand\n- 后端:Node.js + PostgreSQL\n- 数据分析:Python + Pandas\n- 部署环境:Kubernetes on AWS\n\n---\n\n## 💡 示例代码片段\n\n以下是一个用于生成唯一 ID 的函数示例:\n\n~~~ts\nimport { nanoid } from 'nanoid'\n\nexport function generateSessionId() {\n return \\`sess-\\${nanoid()}\\`\n}\n~~~\n`,\n },\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"11\",\n type: \"SuggestionMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [\n {\n key: \"1\",\n description: \"我要查看 AI 文档\",\n },\n {\n key: \"2\",\n description: \"我如何看待 AI\",\n },\n {\n key: \"3\",\n description: \"你是谁?\",\n },\n ],\n },\n];\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [messages, setMessages] = useState<Messages[]>(mockMessages);\n const [loading, setLoading] = useState<boolean>(false);\n\n // 模拟随机字符串流式返回\n const handleSendMessage = () => {\n setLoading(true);\n\n // 模拟流式输出(向 mockMessages 第二条消息 content.text 追加)\n const stream = [\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"……\",\n ];\n\n stream.forEach((chunk, idx) => {\n setTimeout(\n () => {\n setMessages((prev) => {\n const updated = [...prev];\n const targetIndex = 2; // mockMessages 的第二条(索引 1)\n const targetMsg = updated[targetIndex];\n\n // 确保该消息存在且是 TextMessage\n if (targetMsg && targetMsg.type === \"TextMessage\") {\n // content 可能是多种类型,这里做类型守卫\n if (\"text\" in targetMsg.content) {\n updated[targetIndex] = {\n ...targetMsg,\n content: {\n ...targetMsg.content,\n // 模拟随机字符串流式拼接\n // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),\n },\n thinks:\n targetMsg.thinks +\n chunk +\n Math.random().toString(36).slice(2, 5),\n status: MessageStatus.pending,\n };\n }\n }\n\n // 最后一个流块时,标记完成\n if (idx === stream.length - 1) {\n updated[targetIndex].execute?.push({\n id: \"5\",\n type: \"ActionExecutionMessage\",\n extra: {\n icon: documentIcon,\n },\n name: \"运行完毕\",\n createdAt: new Date(),\n });\n setLoading(false);\n updated[targetIndex] = {\n ...updated[targetIndex],\n status: MessageStatus.done,\n };\n }\n\n return updated;\n });\n },\n 200 * (idx + 1),\n ); // 每个片段延迟 600ms 模拟流\n });\n };\n\n useEffect(() => {\n if (messages) {\n handleSendMessage();\n }\n }, []);\n\n // 清空消息\n const handleClear = () => {\n setMessages([]);\n };\n\n // 模拟按钮回调\n const handleActions = (index: number, data: any) => {\n console.log(index, data);\n };\n\n // 模拟快捷短语点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev) => prev.filter((m) => m.id !== id));\n };\n\n // tooltip\n const ToolTip = (data: any) => {\n const { cost, token } = data?.extra || {};\n if (!cost && !token) return null;\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"12px\",\n color: \"#949494\",\n flex: 1,\n paddingRight: \"40px\",\n }}\n >\n {cost && <div>{cost}s</div>}\n {token && <Divider type=\"vertical\" />}\n {token && <div>{token} tokens</div>}\n </div>\n );\n };\n\n return (\n <div\n style={{\n height: \"600px\",\n width: \"400px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n }}\n >\n <XAiChatbot\n {...args}\n messages={messages}\n loading={loading}\n messageTooltip={ToolTip}\n onClear={handleClear}\n onSuggestMessageClick={handleSuggestMessageClick}\n onSend={handleSendMessage}\n onMessagesActionsCallback={handleActions}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n mimeType: \"image/jpeg\",\n tempUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n type: \"image\",\n });\n }, 1000);\n }}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n navbar: {\n title: \"智能助手\",\n },\n // messages: mockMessages,\n emptyStateText: \"众安智能体\",\n },\n};\n\n// 在 Provider 中使用\nexport const 在Provider中使用: Story = {\n decorators: [\n (Story) => (\n <XAiProvider token=\"test-token\" url=\"https://api.example.com\">\n <Story />\n </XAiProvider>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 多个 Provider 实例\nexport const 多个Provider实例: Story = {\n decorators: [\n (Story) => (\n <div style={{ display: \"flex\", gap: \"50px\", height: \"600px\" }}>\n <XAiProvider\n providerId=\"chat1\"\n token=\"token1\"\n url=\"https://api1.example.com\"\n >\n <div style={{ width: \"300px\", marginRight: \"40px\" }}>\n <Story />\n </div>\n </XAiProvider>\n <XAiProvider\n providerId=\"chat2\"\n token=\"token2\"\n url=\"https://api2.example.com\"\n >\n <div style={{ width: \"300px\" }}>\n <Story />\n </div>\n </XAiProvider>\n </div>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 展示新架构的示例组件\nconst ArchitectureDemoComponent: React.FC<{ title: string }> = ({ title }) => {\n const { mergedProps, isInProvider, getProviderValue } = useProviderContext({\n props: { title },\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n return {\n ...props,\n messages: context.messages,\n loading: context.loading,\n customData: context.messages?.length || 0,\n };\n },\n });\n\n const providerMethods = useProviderMethods();\n\n return (\n <div\n style={{\n padding: \"15px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n marginBottom: \"10px\",\n backgroundColor: \"#fafafa\",\n }}\n >\n <h4 style={{ margin: \"0 0 10px 0\" }}>{mergedProps.title}</h4>\n <div style={{ fontSize: \"12px\", color: \"#666\" }}>\n <p>Provider 状态: {isInProvider ? \"✅ 已连接\" : \"❌ 未连接\"}</p>\n <p>消息数量: {getProviderValue(\"messages\")?.length || 0}</p>\n <p>加载状态: {getProviderValue(\"loading\") ? \"🔄 加载中\" : \"✅ 就绪\"}</p>\n <button\n onClick={() =>\n providerMethods.sendMessage?.({ text: \"来自架构演示组件的消息\" })\n }\n disabled={!isInProvider}\n style={{\n fontSize: \"12px\",\n padding: \"4px 8px\",\n backgroundColor: isInProvider ? \"#1890ff\" : \"#d9d9d9\",\n color: \"white\",\n border: \"none\",\n borderRadius: \"4px\",\n cursor: isInProvider ? \"pointer\" : \"not-allowed\",\n }}\n >\n {isInProvider ? \"发送消息\" : \"需要 Provider\"}\n </button>\n </div>\n </div>\n );\n};\n\n// 展示新架构的示例\nexport const 新架构演示: Story = {\n render: (args) => (\n <div style={{ width: \"500px\", height: \"700px\" }}>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"architecture-demo\"\n >\n <div style={{ padding: \"20px\" }}>\n <h3 style={{ marginBottom: \"20px\" }}>新架构演示</h3>\n <p style={{ marginBottom: \"20px\", color: \"#666\" }}>\n 展示如何使用 useProviderContext 和 useProviderMethods Hook\n </p>\n\n {/* 演示组件 */}\n <div style={{ marginBottom: \"20px\" }}>\n <ArchitectureDemoComponent title=\"演示组件 A\" />\n <ArchitectureDemoComponent title=\"演示组件 B\" />\n <ArchitectureDemoComponent title=\"演示组件 C\" />\n </div>\n\n {/* 聊天机器人 */}\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"架构演示聊天机器人\",\n subtitle: \"展示新 Hook 的使用\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 对比示例:独立使用 vs Provider 模式\nexport const 架构对比演示: Story = {\n render: (args) => (\n <div style={{ display: \"flex\", gap: \"20px\", padding: \"20px\" }}>\n {/* 独立使用 */}\n <div style={{ width: \"300px\" }}>\n <h4>独立使用模式</h4>\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"独立组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"独立聊天机器人\",\n subtitle: \"不依赖 Provider\",\n }}\n onSend={(content) => {\n console.log(\"独立模式发送:\", content);\n }}\n onClear={() => {\n console.log(\"独立模式清空\");\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </div>\n\n {/* Provider 模式 */}\n <div style={{ width: \"300px\" }}>\n <h4>Provider 模式</h4>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"comparison-demo\"\n >\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"Provider 组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"Provider 聊天机器人\",\n subtitle: \"由 Provider 管理\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ var XAiConversations = function XAiConversations(props) {
54
54
  };
55
55
  return /*#__PURE__*/_jsxs("div", {
56
56
  className: styles.conversationsWrapper,
57
- children: [/*#__PURE__*/_jsx(GlobalStyle, {}), (!listVisible || isNarrow) && /*#__PURE__*/_jsxs("div", {
57
+ children: [/*#__PURE__*/_jsx(GlobalStyle, {}), !listVisible && /*#__PURE__*/_jsxs("div", {
58
58
  className: styles.capWrapper,
59
59
  children: [/*#__PURE__*/_jsx("img", {
60
60
  alt: "logo",
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","InfiniteScroll","clsx","useChatbotContext","logo","AddChatIcon","flashOpen","SESSION_PAGE_SIZE","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","className","conversationsWrapper","children","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div className={styles.conversationsWrapper}>\n <GlobalStyle />\n {/** 顶部操作栏 */}\n {\n (!listVisible || isNarrow) && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut,\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={(\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n )}\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","InfiniteScroll","clsx","useChatbotContext","logo","AddChatIcon","flashOpen","SESSION_PAGE_SIZE","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","className","conversationsWrapper","children","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div className={styles.conversationsWrapper}>\n <GlobalStyle />\n {/** 顶部操作栏 */}\n {\n !listVisible && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut,\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={(\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n )}\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
@@ -16,13 +16,13 @@ var slideOutRight = keyframes(_templateObject2 || (_templateObject2 = _taggedTem
16
16
  export var useStyles = withBasicStyles(function () {
17
17
  return {
18
18
  // 静态样式
19
- conversationsWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n overflow: hidden;\n "]))),
19
+ conversationsWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n "]))),
20
20
  capWrapper: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: 12px 16px;\n display: flex;\n align-items: center;\n "]))),
21
21
  capShape: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ", ";\n } */\n "])), primaryBlue),
22
22
  capIcon: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n "]))),
23
23
  addChatBtn: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n "]))),
24
24
  tipTitle: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n "]))),
25
- fWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n "]))),
25
+ fWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n flex-shrink: 0;\n border-right: 1px solid #f0f0f0;\n "]))),
26
26
  nWrapper: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n "]))),
27
27
  mask: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n "]))),
28
28
  fheaderWrapper: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n "]))),
@@ -1 +1 @@
1
- {"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","conversationsWrapper","_templateObject3","capWrapper","_templateObject4","capShape","_templateObject5","capIcon","_templateObject6","addChatBtn","_templateObject7","tipTitle","_templateObject8","fWrapper","_templateObject9","nWrapper","_templateObject10","mask","_templateObject11","fheaderWrapper","_templateObject12","scrollList","_templateObject13","slideIn","_templateObject14","slideOut","_templateObject15","GlobalStyle","styles","_templateObject16"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n conversationsWrapper: css`\n overflow: hidden;\n `,\n\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,oBAAoB,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mCAExB;IAEDM,UAAU,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,mFAId;IAEDQ,QAAQ,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDiB,OAAO,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,0QAgBX;IAEDY,UAAU,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,sZAqBd;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,gFAIZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,6JAOZ;IAEDkB,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+PAWZ;IAEDoB,IAAI,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,sLASR;IAEDsB,cAAc,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,4HAKlB;IAEDwB,UAAU,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,+jBAkBd;IAED0B,OAAO,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACGF,YAAY,CAC1B;IACD8B,QAAQ,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAA7B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM6B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCtC,IAAA,CAACH,MAAM;IACL0C,MAAM,EAAE3C,SAAS,CAAA4C,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
1
+ {"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","conversationsWrapper","_templateObject3","capWrapper","_templateObject4","capShape","_templateObject5","capIcon","_templateObject6","addChatBtn","_templateObject7","tipTitle","_templateObject8","fWrapper","_templateObject9","nWrapper","_templateObject10","mask","_templateObject11","fheaderWrapper","_templateObject12","scrollList","_templateObject13","slideIn","_templateObject14","slideOut","_templateObject15","GlobalStyle","styles","_templateObject16"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n conversationsWrapper: css`\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n `,\n\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n flex-shrink: 0;\n border-right: 1px solid #f0f0f0;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,oBAAoB,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,uGAKxB;IAEDM,UAAU,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,mFAId;IAEDQ,QAAQ,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDiB,OAAO,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,0QAgBX;IAEDY,UAAU,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,sZAqBd;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,gFAIZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,wNASZ;IAEDkB,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+PAWZ;IAEDoB,IAAI,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,sLASR;IAEDsB,cAAc,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,4HAKlB;IAEDwB,UAAU,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,+jBAkBd;IAED0B,OAAO,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACGF,YAAY,CAC1B;IACD8B,QAAQ,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAA7B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM6B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCtC,IAAA,CAACH,MAAM;IACL0C,MAAM,EAAE3C,SAAS,CAAA4C,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import XAiProvider from './index';
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import XAiProvider from "./index";
3
3
  declare const meta: Meta<typeof XAiProvider>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
@@ -1,32 +1,32 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import React from 'react';
3
- import { Button } from 'antd';
2
+ import React from "react";
3
+ import { Button } from "antd";
4
4
  import XAiProvider from "./index";
5
5
  import XAiChatbot from "../XAiChatbot";
6
6
  import XAiConversations from "../XAiConversations";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  var meta = {
10
- title: 'AI组件/XAiProvider AI容器',
10
+ title: "AI组件/XAiProvider AI容器【下线】",
11
11
  component: XAiProvider,
12
12
  parameters: {
13
- layout: 'centered',
13
+ layout: "centered",
14
14
  docs: {
15
15
  description: {
16
- component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。'
16
+ component: "AI 聊天机器人容器组件,提供全局上下文和消息管理功能。"
17
17
  }
18
18
  }
19
19
  },
20
- tags: ['autodocs'],
20
+ tags: ["autodocs"],
21
21
  argTypes: {
22
22
  config: {
23
- description: '配置信息',
23
+ description: "配置信息",
24
24
  table: {
25
25
  type: {
26
- summary: 'XAiProviderConfig',
26
+ summary: "XAiProviderConfig",
27
27
  detail: "{\n appNo?: string; // \u5E94\u7528\u552F\u4E00\u7F16\u53F7\n }"
28
28
  },
29
- category: '配置选项'
29
+ category: "配置选项"
30
30
  }
31
31
  }
32
32
  },
@@ -34,7 +34,7 @@ var meta = {
34
34
  decorators: [function (Story) {
35
35
  return /*#__PURE__*/_jsx("div", {
36
36
  style: {
37
- padding: '20px'
37
+ padding: "20px"
38
38
  },
39
39
  children: /*#__PURE__*/_jsx(Story, {})
40
40
  });
@@ -49,23 +49,23 @@ export var 单聊天窗口实例 = {
49
49
  var _providerRef$current;
50
50
  if ((_providerRef$current = providerRef.current) !== null && _providerRef$current !== void 0 && _providerRef$current.chat) {
51
51
  providerRef.current.chat({
52
- text: '你好,AI!'
52
+ text: "你好,AI!"
53
53
  });
54
54
  } else {
55
- console.log('XAiProvider ref 未准备好或 chat 方法不存在');
55
+ console.log("XAiProvider ref 未准备好或 chat 方法不存在");
56
56
  }
57
57
  };
58
58
  return /*#__PURE__*/_jsxs("div", {
59
59
  style: {
60
- display: 'flex'
60
+ display: "flex"
61
61
  },
62
62
  children: [/*#__PURE__*/_jsx("div", {
63
63
  style: {
64
- display: 'flex',
65
- flexDirection: 'column',
66
- gap: '12px',
67
- marginRight: '24px',
68
- justifyContent: 'center'
64
+ display: "flex",
65
+ flexDirection: "column",
66
+ gap: "12px",
67
+ marginRight: "24px",
68
+ justifyContent: "center"
69
69
  },
70
70
  children: /*#__PURE__*/_jsx(Button, {
71
71
  type: "primary",
@@ -74,8 +74,8 @@ export var 单聊天窗口实例 = {
74
74
  })
75
75
  }), /*#__PURE__*/_jsx("div", {
76
76
  style: {
77
- maxWidth: '800px',
78
- height: '600px'
77
+ maxWidth: "800px",
78
+ height: "600px"
79
79
  },
80
80
  children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
81
81
  ref: providerRef
@@ -89,9 +89,9 @@ export var 单聊天窗口实例 = {
89
89
  children: /*#__PURE__*/_jsx(XAiChatbot, {
90
90
  navbarShow: true,
91
91
  navbar: {
92
- title: 'Provider 聊天机器人',
93
- subtitle: '由 Provider 管理消息',
94
- avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
92
+ title: "Provider 聊天机器人",
93
+ subtitle: "由 Provider 管理消息",
94
+ avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
95
95
  }
96
96
  })
97
97
  }))
@@ -99,12 +99,12 @@ export var 单聊天窗口实例 = {
99
99
  });
100
100
  },
101
101
  args: {
102
- url: 'https://m-poc-dev.zaxline.com',
103
- token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w',
102
+ url: "https://m-poc-dev.zaxline.com",
103
+ token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w",
104
104
  config: {
105
- appNo: 'PGlA63A1Gt9oZpxa6YCWMciH'
105
+ appNo: "PGlA63A1Gt9oZpxa6YCWMciH"
106
106
  },
107
- providerId: 'demo-provider'
107
+ providerId: "demo-provider"
108
108
  }
109
109
  };
110
110
 
@@ -113,38 +113,38 @@ export var 多容器示例 = {
113
113
  render: function render(args) {
114
114
  return /*#__PURE__*/_jsxs("div", {
115
115
  style: {
116
- display: 'flex',
117
- gap: '20px'
116
+ display: "flex",
117
+ gap: "20px"
118
118
  },
119
119
  children: [/*#__PURE__*/_jsx("div", {
120
120
  style: {
121
- width: '400px',
122
- height: '600px'
121
+ width: "400px",
122
+ height: "600px"
123
123
  },
124
124
  children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
125
125
  providerId: "provider-1",
126
126
  children: /*#__PURE__*/_jsx(XAiChatbot, {
127
127
  navbarShow: true,
128
128
  navbar: {
129
- title: 'Provider 1',
130
- subtitle: '第一个聊天机器人',
131
- avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
129
+ title: "Provider 1",
130
+ subtitle: "第一个聊天机器人",
131
+ avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
132
132
  }
133
133
  })
134
134
  }))
135
135
  }), /*#__PURE__*/_jsx("div", {
136
136
  style: {
137
- width: '400px',
138
- height: '600px'
137
+ width: "400px",
138
+ height: "600px"
139
139
  },
140
140
  children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
141
141
  providerId: "provider-2",
142
142
  children: /*#__PURE__*/_jsx(XAiChatbot, {
143
143
  navbarShow: true,
144
144
  navbar: {
145
- title: 'Provider 2',
146
- subtitle: '第二个聊天机器人',
147
- avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
145
+ title: "Provider 2",
146
+ subtitle: "第二个聊天机器人",
147
+ avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
148
148
  }
149
149
  })
150
150
  }))
@@ -152,8 +152,8 @@ export var 多容器示例 = {
152
152
  });
153
153
  },
154
154
  args: {
155
- url: 'https://api.example.com/ai',
156
- token: 'your-token-here'
155
+ url: "https://api.example.com/ai",
156
+ token: "your-token-here"
157
157
  }
158
158
  };
159
159
 
@@ -163,9 +163,9 @@ export var 携带历史记录示例 = {
163
163
  var providerRef = React.useRef(null);
164
164
  return /*#__PURE__*/_jsx("div", {
165
165
  style: {
166
- width: '1080px',
167
- height: '600px',
168
- overflow: 'hidden'
166
+ width: "1080px",
167
+ height: "600px",
168
+ overflow: "hidden"
169
169
  },
170
170
  children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
171
171
  ref: providerRef
@@ -179,14 +179,14 @@ export var 携带历史记录示例 = {
179
179
  children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
180
180
  style: {
181
181
  flex: 1,
182
- display: 'flex',
183
- justifyContent: 'center'
182
+ display: "flex",
183
+ justifyContent: "center"
184
184
  },
185
185
  children: /*#__PURE__*/_jsx(XAiChatbot, {
186
186
  navbar: {
187
- title: 'Provider 聊天机器人',
188
- subtitle: '由 Provider 管理消息',
189
- avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
187
+ title: "Provider 聊天机器人",
188
+ subtitle: "由 Provider 管理消息",
189
+ avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
190
190
  }
191
191
  })
192
192
  })]
@@ -194,15 +194,15 @@ export var 携带历史记录示例 = {
194
194
  });
195
195
  },
196
196
  args: {
197
- url: 'https://m-poc.zaxline.com',
198
- token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g',
197
+ url: "https://m-poc.zaxline.com",
198
+ token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g",
199
199
  config: {
200
- appNo: '0hbsdWbFUbKYEy10K1437XXm',
200
+ appNo: "0hbsdWbFUbKYEy10K1437XXm",
201
201
  chatProps: {
202
202
  clearBtnShow: false
203
203
  }
204
204
  },
205
- providerId: 'demo-provider'
205
+ providerId: "demo-provider"
206
206
  }
207
207
  };
208
208
  //# sourceMappingURL=XAiProvider.stories.js.map