@ai-group/chat-sdk 2.1.13 → 3.0.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) 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/components/FunctionCallRender/index.d.ts +1 -1
  11. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +41 -5
  12. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
  13. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  14. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -3
  15. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +2 -2
  16. package/dist/cjs/components/XAdkChatbot/index.d.ts +11 -1
  17. package/dist/cjs/components/XAdkChatbot/index.js +294 -108
  18. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  19. package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
  20. package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
  21. package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
  22. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  23. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
  24. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
  25. package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  26. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
  27. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
  28. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  29. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
  30. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
  31. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  32. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
  33. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
  34. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  35. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
  36. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
  37. package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
  38. package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
  39. package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
  40. package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
  41. package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
  42. package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
  43. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
  44. package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
  45. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
  46. package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  47. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
  48. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
  49. package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  50. package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
  51. package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
  52. package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
  53. package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
  54. package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
  55. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
  56. package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
  57. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
  58. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  59. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
  60. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
  61. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  62. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
  63. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
  64. package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  65. package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
  66. package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
  67. package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
  68. package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
  69. package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
  70. package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
  71. package/dist/cjs/components/XAdkProvider/index.js +221 -0
  72. package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
  73. package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
  74. package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
  75. package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
  76. package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
  77. package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
  78. package/dist/cjs/components/XAdkSender/index.js +95 -81
  79. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  80. package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
  81. package/dist/cjs/components/XAdkSender/styles.js +21 -150
  82. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  83. package/dist/cjs/components/XAiConversations/index.js +1 -1
  84. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  85. package/dist/cjs/components/XAiConversations/styles.js +5 -0
  86. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  87. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  88. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +180 -0
  89. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +7 -0
  90. package/dist/cjs/components/XAiThoughtChain/index.d.ts +4 -0
  91. package/dist/cjs/components/XAiThoughtChain/index.js +155 -0
  92. package/dist/cjs/components/XAiThoughtChain/index.js.map +7 -0
  93. package/dist/cjs/components/XAiThoughtChain/styles.d.ts +60 -0
  94. package/dist/cjs/components/XAiThoughtChain/styles.js +195 -0
  95. package/dist/cjs/components/XAiThoughtChain/styles.js.map +7 -0
  96. package/dist/cjs/hooks/useADKChat.d.ts +9 -3
  97. package/dist/cjs/hooks/useADKChat.js +246 -182
  98. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  99. package/dist/cjs/index.d.ts +25 -9
  100. package/dist/cjs/index.js +37 -0
  101. package/dist/cjs/index.js.map +3 -3
  102. package/dist/cjs/styles/common.js +1 -1
  103. package/dist/cjs/styles/common.js.map +2 -2
  104. package/dist/cjs/types/ChatHook.d.ts +81 -0
  105. package/dist/cjs/types/ChatHook.js +18 -0
  106. package/dist/cjs/types/ChatHook.js.map +7 -0
  107. package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
  108. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  109. package/dist/cjs/types/XAdkProvider.d.ts +10 -27
  110. package/dist/cjs/types/XAdkProvider.js.map +2 -2
  111. package/dist/cjs/types/XAdkSender.d.ts +18 -0
  112. package/dist/cjs/types/XAdkSender.js.map +1 -1
  113. package/dist/cjs/types/XAiConversations.d.ts +4 -2
  114. package/dist/cjs/types/XAiConversations.js.map +1 -1
  115. package/dist/cjs/types/XAiThoughtChain.d.ts +25 -0
  116. package/dist/cjs/types/XAiThoughtChain.js +18 -0
  117. package/dist/cjs/types/XAiThoughtChain.js.map +7 -0
  118. package/dist/cjs/types/index.d.ts +9 -8
  119. package/dist/cjs/types/index.js +2 -0
  120. package/dist/cjs/types/index.js.map +2 -2
  121. package/dist/cjs/utils/index.d.ts +2 -0
  122. package/dist/cjs/utils/index.js +11 -1
  123. package/dist/cjs/utils/index.js.map +2 -2
  124. package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
  125. package/dist/cjs/utils/parseAgentMessage.js +180 -0
  126. package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
  127. package/dist/cjs/utils/umdEntry.d.ts +91 -0
  128. package/dist/cjs/utils/umdEntry.js +108 -6
  129. package/dist/cjs/utils/umdEntry.js.map +3 -3
  130. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  131. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
  132. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
  133. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  134. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
  135. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
  136. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  137. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
  138. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
  139. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
  140. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +17 -15
  141. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
  142. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  143. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +7 -6
  144. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  145. package/dist/esm/components/XAdkChatbot/index.d.ts +11 -1
  146. package/dist/esm/components/XAdkChatbot/index.js +392 -174
  147. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  148. package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
  149. package/dist/esm/components/XAdkChatbot/styles.js +23 -12
  150. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  151. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  152. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
  153. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
  154. package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  155. package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
  156. package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
  157. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  158. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +142 -0
  159. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
  160. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  161. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
  162. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
  163. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  164. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
  165. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
  166. package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
  167. package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
  168. package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
  169. package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
  170. package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
  171. package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
  172. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
  173. package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
  174. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
  175. package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  176. package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
  177. package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
  178. package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  179. package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
  180. package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
  181. package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
  182. package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
  183. package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
  184. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
  185. package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
  186. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
  187. package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  188. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
  189. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
  190. package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  191. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
  192. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
  193. package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  194. package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
  195. package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
  196. package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
  197. package/dist/esm/components/XAdkProvider/context/index.js +9 -0
  198. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
  199. package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
  200. package/dist/esm/components/XAdkProvider/index.js +220 -0
  201. package/dist/esm/components/XAdkProvider/index.js.map +1 -0
  202. package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
  203. package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
  204. package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
  205. package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
  206. package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
  207. package/dist/esm/components/XAdkSender/index.js +92 -109
  208. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  209. package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
  210. package/dist/esm/components/XAdkSender/styles.js +14 -31
  211. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  212. package/dist/esm/components/XAiConversations/index.js +1 -1
  213. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  214. package/dist/esm/components/XAiConversations/styles.js +2 -2
  215. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  216. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  217. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +159 -0
  218. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +1 -0
  219. package/dist/esm/components/XAiThoughtChain/index.d.ts +4 -0
  220. package/dist/esm/components/XAiThoughtChain/index.js +180 -0
  221. package/dist/esm/components/XAiThoughtChain/index.js.map +1 -0
  222. package/dist/esm/components/XAiThoughtChain/styles.d.ts +60 -0
  223. package/dist/esm/components/XAiThoughtChain/styles.js +40 -0
  224. package/dist/esm/components/XAiThoughtChain/styles.js.map +1 -0
  225. package/dist/esm/hooks/useADKChat.d.ts +9 -3
  226. package/dist/esm/hooks/useADKChat.js +75 -54
  227. package/dist/esm/hooks/useADKChat.js.map +1 -1
  228. package/dist/esm/index.d.ts +25 -9
  229. package/dist/esm/index.js +28 -2
  230. package/dist/esm/index.js.map +1 -1
  231. package/dist/esm/styles/common.js +11 -11
  232. package/dist/esm/styles/common.js.map +1 -1
  233. package/dist/esm/types/ChatHook.d.ts +81 -0
  234. package/dist/esm/types/ChatHook.js +2 -0
  235. package/dist/esm/types/ChatHook.js.map +1 -0
  236. package/dist/esm/types/XAdkChatbot.d.ts +80 -15
  237. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  238. package/dist/esm/types/XAdkProvider.d.ts +10 -27
  239. package/dist/esm/types/XAdkProvider.js.map +1 -1
  240. package/dist/esm/types/XAdkSender.d.ts +18 -0
  241. package/dist/esm/types/XAdkSender.js.map +1 -1
  242. package/dist/esm/types/XAiConversations.d.ts +4 -2
  243. package/dist/esm/types/XAiConversations.js.map +1 -1
  244. package/dist/esm/types/XAiThoughtChain.d.ts +25 -0
  245. package/dist/esm/types/XAiThoughtChain.js +2 -0
  246. package/dist/esm/types/XAiThoughtChain.js.map +1 -0
  247. package/dist/esm/types/index.d.ts +9 -8
  248. package/dist/esm/types/index.js +1 -0
  249. package/dist/esm/types/index.js.map +1 -1
  250. package/dist/esm/utils/index.d.ts +2 -0
  251. package/dist/esm/utils/index.js +7 -0
  252. package/dist/esm/utils/index.js.map +1 -1
  253. package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
  254. package/dist/esm/utils/parseAgentMessage.js +286 -0
  255. package/dist/esm/utils/parseAgentMessage.js.map +1 -0
  256. package/dist/esm/utils/umdEntry.d.ts +91 -0
  257. package/dist/esm/utils/umdEntry.js +154 -16
  258. package/dist/esm/utils/umdEntry.js.map +1 -1
  259. package/dist/umd/chat-sdk.min.css +1 -1
  260. package/dist/umd/chat-sdk.min.js +1 -1
  261. package/package.json +20 -11
  262. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  263. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -160
  264. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
  265. package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
  266. package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
  267. package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
  268. package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
  269. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  270. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -158
  271. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
  272. package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
  273. package/dist/esm/components/XAdkWebProvider/index.js +0 -480
  274. package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
  275. package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
  276. /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
  277. /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
@@ -0,0 +1 @@
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.eyJzdWIiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiLCJhdWQiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiLCJuYmYiOjE3NzMwNDM0MjIsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MzA1MDYyMiwiaWF0IjoxNzczMDQzNDIyLCJqdGkiOiJhODRmM2I5Ni1mNDIyLTRjOTgtOTA4Yi1lYzFiYmY0Y2JlNDciLCJjbGllbnRfaWQiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kifQ.PDpY6X-fO2QkOB_30rkDsFFBNObsNJXtK0DoGKb7euOg0R7nHrXimCKR28LbVk-gRa-7C8uwJbVvCX-gJZivYaVwpeUijiBq2lY59bXU695iCyZNpkCAsRNnPfIX75hnTDDTY2-Qr2CXN0lgPZ8KO5Kt-CItu3cq8SiLYM8YlUVjqsCbNQdaqkhPLVnUzjyQseM-5mldNW2_j_UvQ0wtjcybPVHpmHrKT_N6jdqZDtwYUuM4vk6DL-K4O8m66gXImXbolQB62Ad04hFVrI2sJjHOt7U4ZwRWxxIm8JY7nk-03uUiUmhGsDSVaqHIc-YlDbxGVR0dhx59w6EaIYAX9A\",\n config: {\n appNo: \"pHQOYWcJ33OF7G7C8WcGmHGi\",\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.eyJzdWIiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiLCJhdWQiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiLCJuYmYiOjE3NzMwNDM0MjIsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kiXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MzA1MDYyMiwiaWF0IjoxNzczMDQzNDIyLCJqdGkiOiJhODRmM2I5Ni1mNDIyLTRjOTgtOTA4Yi1lYzFiYmY0Y2JlNDciLCJjbGllbnRfaWQiOiJwSFFPWVdjSjMzT0Y3RzdDOFdjR21IR2kifQ.PDpY6X-fO2QkOB_30rkDsFFBNObsNJXtK0DoGKb7euOg0R7nHrXimCKR28LbVk-gRa-7C8uwJbVvCX-gJZivYaVwpeUijiBq2lY59bXU695iCyZNpkCAsRNnPfIX75hnTDDTY2-Qr2CXN0lgPZ8KO5Kt-CItu3cq8SiLYM8YlUVjqsCbNQdaqkhPLVnUzjyQseM-5mldNW2_j_UvQ0wtjcybPVHpmHrKT_N6jdqZDtwYUuM4vk6DL-K4O8m66gXImXbolQB62Ad04hFVrI2sJjHOt7U4ZwRWxxIm8JY7nk-03uUiUmhGsDSVaqHIc-YlDbxGVR0dhx59w6EaIYAX9A\",\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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"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { XAdkMessagesProps } from './Messages';
3
+ import { XAdkSenderCompoundProps } from './Sender';
4
+ /**
5
+ * XAdkProvider.Chatbot - 完整的聊天界面组件
6
+ *
7
+ * 组合了 Messages + Sender,提供开箱即用的完整聊天界面
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <XAdkProvider url="..." token="...">
12
+ * <XAdkProvider.Chatbot
13
+ * messagesProps={{ showFnCallDetail: true }}
14
+ * senderProps={{ allowUpload: true }}
15
+ * />
16
+ * </XAdkProvider>
17
+ * ```
18
+ */
19
+ export interface XAdkChatbotCompoundProps {
20
+ /** Messages 组件的属性 */
21
+ messagesProps?: XAdkMessagesProps;
22
+ /** Sender 组件的属性 */
23
+ senderProps?: XAdkSenderCompoundProps;
24
+ /** 容器样式 */
25
+ style?: React.CSSProperties;
26
+ /** 容器类名 */
27
+ className?: string;
28
+ }
29
+ declare const Chatbot: React.FC<XAdkChatbotCompoundProps>;
30
+ export default Chatbot;
@@ -0,0 +1,47 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import React from 'react';
3
+ import Messages from "./Messages";
4
+ import Sender from "./Sender";
5
+
6
+ /**
7
+ * XAdkProvider.Chatbot - 完整的聊天界面组件
8
+ *
9
+ * 组合了 Messages + Sender,提供开箱即用的完整聊天界面
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <XAdkProvider url="..." token="...">
14
+ * <XAdkProvider.Chatbot
15
+ * messagesProps={{ showFnCallDetail: true }}
16
+ * senderProps={{ allowUpload: true }}
17
+ * />
18
+ * </XAdkProvider>
19
+ * ```
20
+ */
21
+ import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { jsxs as _jsxs } from "react/jsx-runtime";
23
+ var Chatbot = function Chatbot(_ref) {
24
+ var messagesProps = _ref.messagesProps,
25
+ senderProps = _ref.senderProps,
26
+ style = _ref.style,
27
+ className = _ref.className;
28
+ return /*#__PURE__*/_jsxs("div", {
29
+ className: className,
30
+ style: _objectSpread({
31
+ display: 'flex',
32
+ flexDirection: 'column',
33
+ height: '100%',
34
+ width: '100%'
35
+ }, style),
36
+ children: [/*#__PURE__*/_jsx("div", {
37
+ style: {
38
+ flex: 1,
39
+ overflow: 'hidden'
40
+ },
41
+ children: /*#__PURE__*/_jsx(Messages, _objectSpread({}, messagesProps))
42
+ }), /*#__PURE__*/_jsx(Sender, _objectSpread({}, senderProps))]
43
+ });
44
+ };
45
+ Chatbot.displayName = 'XAdkProvider.Chatbot';
46
+ export default Chatbot;
47
+ //# sourceMappingURL=Chatbot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Messages","Sender","jsx","_jsx","jsxs","_jsxs","Chatbot","_ref","messagesProps","senderProps","style","className","_objectSpread","display","flexDirection","height","width","children","flex","overflow","displayName"],"sources":["../../../../../src/components/XAdkProvider/compound/Chatbot.tsx"],"sourcesContent":["import React from 'react';\nimport Messages, { XAdkMessagesProps } from './Messages';\nimport Sender, { XAdkSenderCompoundProps } from './Sender';\n\n/**\n * XAdkProvider.Chatbot - 完整的聊天界面组件\n *\n * 组合了 Messages + Sender,提供开箱即用的完整聊天界面\n *\n * @example\n * ```tsx\n * <XAdkProvider url=\"...\" token=\"...\">\n * <XAdkProvider.Chatbot\n * messagesProps={{ showFnCallDetail: true }}\n * senderProps={{ allowUpload: true }}\n * />\n * </XAdkProvider>\n * ```\n */\nexport interface XAdkChatbotCompoundProps {\n /** Messages 组件的属性 */\n messagesProps?: XAdkMessagesProps;\n /** Sender 组件的属性 */\n senderProps?: XAdkSenderCompoundProps;\n /** 容器样式 */\n style?: React.CSSProperties;\n /** 容器类名 */\n className?: string;\n}\n\nconst Chatbot: React.FC<XAdkChatbotCompoundProps> = ({\n messagesProps,\n senderProps,\n style,\n className,\n}) => {\n return (\n <div\n className={className}\n style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '100%',\n ...style,\n }}\n >\n {/* 消息列表区域 */}\n <div style={{ flex: 1, overflow: 'hidden' }}>\n <Messages {...messagesProps} />\n </div>\n\n {/* 输入框区域 */}\n <Sender {...senderProps} />\n </div>\n );\n};\n\nChatbot.displayName = 'XAdkProvider.Chatbot';\n\nexport default Chatbot;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ;AACf,OAAOC,MAAM;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AA0BA,IAAMC,OAA2C,GAAG,SAA9CA,OAA2CA,CAAAC,IAAA,EAK3C;EAAA,IAJJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,SAAS,GAAAJ,IAAA,CAATI,SAAS;EAET,oBACEN,KAAA;IACEM,SAAS,EAAEA,SAAU;IACrBD,KAAK,EAAAE,aAAA;MACHC,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,QAAQ;MACvBC,MAAM,EAAE,MAAM;MACdC,KAAK,EAAE;IAAM,GACVN,KAAK,CACR;IAAAO,QAAA,gBAGFd,IAAA;MAAKO,KAAK,EAAE;QAAEQ,IAAI,EAAE,CAAC;QAAEC,QAAQ,EAAE;MAAS,CAAE;MAAAF,QAAA,eAC1Cd,IAAA,CAACH,QAAQ,EAAAY,aAAA,KAAKJ,aAAa,CAAG;IAAC,CAC5B,CAAC,eAGNL,IAAA,CAACF,MAAM,EAAAW,aAAA,KAAKH,WAAW,CAAG,CAAC;EAAA,CACxB,CAAC;AAEV,CAAC;AAEDH,OAAO,CAACc,WAAW,GAAG,sBAAsB;AAE5C,eAAed,OAAO"}
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ /**
3
+ * XAdkProvider 默认布局
4
+ *
5
+ * 提供类似 ChatGPT/DeepSeek 的默认布局:
6
+ * - 左侧: 会话列表侧边栏 (可选,支持展开/收起)
7
+ * - 右侧: 聊天区域 (标题 + 消息 + 输入框,居中显示,最大宽度800px)
8
+ */
9
+ export interface DefaultLayoutProps {
10
+ /** 是否显示会话列表 */
11
+ showSessionList?: boolean;
12
+ /** 自定义头部 */
13
+ header?: React.ReactNode;
14
+ /** 自定义底部 (替代默认 Sender) */
15
+ footer?: React.ReactNode;
16
+ /** 是否允许上传文件 */
17
+ allowUpload?: boolean;
18
+ /** 是否显示清空按钮 */
19
+ clearBtnShow?: boolean;
20
+ /** 是否显示函数调用详情 */
21
+ showFnCallDetail?: boolean;
22
+ /** 自定义消息 Footer */
23
+ messagesFooter?: (msg: any) => React.ReactNode;
24
+ }
25
+ declare const DefaultLayout: React.FC<DefaultLayoutProps>;
26
+ export default DefaultLayout;
@@ -0,0 +1,142 @@
1
+ import React from "react";
2
+ import { useChatState } from "../context/ChatStateContext";
3
+ import Sidebar from "./Sidebar";
4
+ import Messages from "./Messages";
5
+ import Welcome from "./Welcome";
6
+ import Sender from "./Sender";
7
+
8
+ /**
9
+ * XAdkProvider 默认布局
10
+ *
11
+ * 提供类似 ChatGPT/DeepSeek 的默认布局:
12
+ * - 左侧: 会话列表侧边栏 (可选,支持展开/收起)
13
+ * - 右侧: 聊天区域 (标题 + 消息 + 输入框,居中显示,最大宽度800px)
14
+ */
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs } from "react/jsx-runtime";
17
+ var DefaultLayout = function DefaultLayout(_ref) {
18
+ var _ref$showSessionList = _ref.showSessionList,
19
+ showSessionList = _ref$showSessionList === void 0 ? false : _ref$showSessionList,
20
+ header = _ref.header,
21
+ footer = _ref.footer,
22
+ _ref$allowUpload = _ref.allowUpload,
23
+ allowUpload = _ref$allowUpload === void 0 ? false : _ref$allowUpload,
24
+ _ref$clearBtnShow = _ref.clearBtnShow,
25
+ clearBtnShow = _ref$clearBtnShow === void 0 ? true : _ref$clearBtnShow,
26
+ _ref$showFnCallDetail = _ref.showFnCallDetail,
27
+ showFnCallDetail = _ref$showFnCallDetail === void 0 ? false : _ref$showFnCallDetail,
28
+ messagesFooter = _ref.messagesFooter;
29
+ var _useChatState = useChatState(),
30
+ appInfo = _useChatState.appInfo,
31
+ messages = _useChatState.messages,
32
+ prologue = _useChatState.prologue,
33
+ suggestions = _useChatState.suggestions;
34
+
35
+ // 判断是否为空状态(展示Welcome)
36
+ var isEmpty = messages.length === 0 && !prologue && (!suggestions || suggestions.length === 0);
37
+ return /*#__PURE__*/_jsxs("div", {
38
+ style: {
39
+ display: "flex",
40
+ height: "100%",
41
+ width: "100%",
42
+ position: "relative",
43
+ overflow: "hidden"
44
+ },
45
+ children: [showSessionList && /*#__PURE__*/_jsx(Sidebar, {
46
+ isNarrow: false
47
+ }), /*#__PURE__*/_jsx("div", {
48
+ style: {
49
+ flex: 1,
50
+ display: "flex",
51
+ justifyContent: "center",
52
+ alignItems: "center",
53
+ flexDirection: "column",
54
+ overflow: "hidden"
55
+ },
56
+ children: /*#__PURE__*/_jsxs("div", {
57
+ style: {
58
+ width: "100%",
59
+ maxWidth: "800px",
60
+ height: "100%",
61
+ display: "flex",
62
+ flexDirection: "column"
63
+ },
64
+ children: [header || appInfo && /*#__PURE__*/_jsx("div", {
65
+ style: {
66
+ padding: "16px 24px",
67
+ display: "flex",
68
+ justifyContent: "center",
69
+ background: "white"
70
+ },
71
+ children: /*#__PURE__*/_jsx("div", {
72
+ style: {
73
+ display: "flex",
74
+ alignItems: "center",
75
+ gap: "12px"
76
+ },
77
+ children: appInfo.appName && /*#__PURE__*/_jsx("div", {
78
+ children: /*#__PURE__*/_jsx("div", {
79
+ style: {
80
+ fontSize: "16px",
81
+ fontWeight: 500,
82
+ color: "#000"
83
+ },
84
+ children: appInfo.appName
85
+ })
86
+ })
87
+ })
88
+ }), /*#__PURE__*/_jsxs("div", {
89
+ style: {
90
+ flex: 1,
91
+ overflow: "hidden",
92
+ display: "flex",
93
+ flexDirection: "column"
94
+ },
95
+ children: [/*#__PURE__*/_jsx("div", {
96
+ style: {
97
+ flex: isEmpty ? 1 : 0,
98
+ transition: "flex 0.4s cubic-bezier(0.4, 0, 0.2, 1)"
99
+ }
100
+ }), isEmpty && /*#__PURE__*/_jsx("div", {
101
+ style: {
102
+ display: "flex",
103
+ flexDirection: "column",
104
+ alignItems: "center",
105
+ padding: "0 24px",
106
+ marginBottom: "24px"
107
+ },
108
+ children: /*#__PURE__*/_jsx(Welcome, {})
109
+ }), !isEmpty && /*#__PURE__*/_jsx("div", {
110
+ style: {
111
+ flex: 1,
112
+ overflow: "hidden"
113
+ },
114
+ children: /*#__PURE__*/_jsx(Messages
115
+ // footer={messagesFooter}
116
+ , {})
117
+ }), /*#__PURE__*/_jsx("div", {
118
+ style: {
119
+ width: "100%",
120
+ maxWidth: isEmpty ? "600px" : "100%",
121
+ alignSelf: "center",
122
+ padding: isEmpty ? "0 24px" : "0",
123
+ transition: "all 0.4s cubic-bezier(0.4, 0, 0.2, 1)"
124
+ },
125
+ children: footer || /*#__PURE__*/_jsx(Sender, {
126
+ allowUpload: allowUpload,
127
+ clearBtnShow: clearBtnShow
128
+ })
129
+ }), /*#__PURE__*/_jsx("div", {
130
+ style: {
131
+ flex: isEmpty ? 1.5 : 0,
132
+ transition: "flex 0.4s cubic-bezier(0.4, 0, 0.2, 1)"
133
+ }
134
+ })]
135
+ })]
136
+ })
137
+ })]
138
+ });
139
+ };
140
+ DefaultLayout.displayName = "XAdkProvider.DefaultLayout";
141
+ export default DefaultLayout;
142
+ //# sourceMappingURL=DefaultLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useChatState","Sidebar","Messages","Welcome","Sender","jsx","_jsx","jsxs","_jsxs","DefaultLayout","_ref","_ref$showSessionList","showSessionList","header","footer","_ref$allowUpload","allowUpload","_ref$clearBtnShow","clearBtnShow","_ref$showFnCallDetail","showFnCallDetail","messagesFooter","_useChatState","appInfo","messages","prologue","suggestions","isEmpty","length","style","display","height","width","position","overflow","children","isNarrow","flex","justifyContent","alignItems","flexDirection","maxWidth","padding","background","gap","appName","fontSize","fontWeight","color","transition","marginBottom","alignSelf","displayName"],"sources":["../../../../../src/components/XAdkProvider/compound/DefaultLayout.tsx"],"sourcesContent":["import React from \"react\";\nimport { useChatState } from \"../context/ChatStateContext\";\nimport Sidebar from \"./Sidebar\";\nimport Messages from \"./Messages\";\nimport Welcome from \"./Welcome\";\nimport Sender from \"./Sender\";\n\n/**\n * XAdkProvider 默认布局\n *\n * 提供类似 ChatGPT/DeepSeek 的默认布局:\n * - 左侧: 会话列表侧边栏 (可选,支持展开/收起)\n * - 右侧: 聊天区域 (标题 + 消息 + 输入框,居中显示,最大宽度800px)\n */\nexport interface DefaultLayoutProps {\n /** 是否显示会话列表 */\n showSessionList?: boolean;\n /** 自定义头部 */\n header?: React.ReactNode;\n /** 自定义底部 (替代默认 Sender) */\n footer?: React.ReactNode;\n /** 是否允许上传文件 */\n allowUpload?: boolean;\n /** 是否显示清空按钮 */\n clearBtnShow?: boolean;\n /** 是否显示函数调用详情 */\n showFnCallDetail?: boolean;\n /** 自定义消息 Footer */\n messagesFooter?: (msg: any) => React.ReactNode;\n}\n\nconst DefaultLayout: React.FC<DefaultLayoutProps> = ({\n showSessionList = false,\n header,\n footer,\n allowUpload = false,\n clearBtnShow = true,\n showFnCallDetail = false,\n messagesFooter,\n}) => {\n const { appInfo, messages, prologue, suggestions } = useChatState();\n\n // 判断是否为空状态(展示Welcome)\n const isEmpty =\n messages.length === 0 &&\n !prologue &&\n (!suggestions || suggestions.length === 0);\n\n return (\n <div\n style={{\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n {/* 左侧会话列表 - XAiConversations 组件会处理展开/收起 */}\n {showSessionList && <Sidebar isNarrow={false} />}\n\n {/* 右侧聊天区域 - 使用 flex: 1 自动占据剩余空间 */}\n <div\n style={{\n flex: 1,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n }}\n >\n {/* 居中容器 - 最大宽度 800px */}\n <div\n style={{\n width: \"100%\",\n maxWidth: \"800px\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* 头部 */}\n {header ||\n (appInfo && (\n <div\n style={{\n padding: \"16px 24px\",\n display: \"flex\",\n justifyContent: \"center\",\n background: \"white\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n }}\n >\n {/* {appInfo.icon && (\n <img\n src={appInfo.icon}\n alt=\"应用图标\"\n style={{\n width: 32,\n height: 32,\n borderRadius: \"6px\",\n }}\n />\n )} */}\n {appInfo.appName && (\n <div>\n <div\n style={{\n fontSize: \"16px\",\n fontWeight: 500,\n color: \"#000\",\n }}\n >\n {appInfo.appName}\n </div>\n {/* {appInfo.description && (\n <div\n style={{\n fontSize: \"12px\",\n color: \"#999\",\n marginTop: \"2px\",\n }}\n >\n {appInfo.description}\n </div>\n )} */}\n </div>\n )}\n </div>\n </div>\n ))}\n\n {/* 消息区域或Welcome区域 */}\n <div\n style={{\n flex: 1,\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* 上方弹性占位 - Welcome状态时占据空间 */}\n <div\n style={{\n flex: isEmpty ? 1 : 0,\n transition: \"flex 0.4s cubic-bezier(0.4, 0, 0.2, 1)\",\n }}\n />\n\n {/* Welcome 组件 - 只在空状态显示 */}\n {isEmpty && (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"0 24px\",\n marginBottom: \"24px\",\n }}\n >\n <Welcome />\n </div>\n )}\n\n {/* Messages 组件 - 只在非空状态显示 */}\n {!isEmpty && (\n <div\n style={{\n flex: 1,\n overflow: \"hidden\",\n }}\n >\n <Messages\n // footer={messagesFooter}\n />\n </div>\n )}\n\n {/* 输入区域 - 始终存在,通过样式控制位置 */}\n <div\n style={{\n width: \"100%\",\n maxWidth: isEmpty ? \"600px\" : \"100%\",\n alignSelf: \"center\",\n padding: isEmpty ? \"0 24px\" : \"0\",\n transition: \"all 0.4s cubic-bezier(0.4, 0, 0.2, 1)\",\n }}\n >\n {footer || (\n <Sender allowUpload={allowUpload} clearBtnShow={clearBtnShow} />\n )}\n </div>\n\n {/* 下方弹性占位 - Welcome状态时占据更多空间,让内容偏上 */}\n <div\n style={{\n flex: isEmpty ? 1.5 : 0,\n transition: \"flex 0.4s cubic-bezier(0.4, 0, 0.2, 1)\",\n }}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nDefaultLayout.displayName = \"XAdkProvider.DefaultLayout\";\n\nexport default DefaultLayout;\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ export interface DislikeFeedbackProps {
3
+ msg: any;
4
+ activeColor: string;
5
+ onSubmit: (v: any) => Promise<boolean>;
6
+ }
7
+ export declare const DislikeFeedback: React.FC<DislikeFeedbackProps>;
8
+ export default DislikeFeedback;
@@ -0,0 +1,122 @@
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 { Button, Form, Input, message, Popover } from "antd";
5
+ import React, { useState } from "react";
6
+ import { DislikeFilled, DislikeOutlined } from "@ant-design/icons";
7
+ import FeedbackTags from "./FeedbackTags";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ export var DislikeFeedback = function DislikeFeedback(_ref) {
11
+ var _msg$isLike;
12
+ var msg = _ref.msg,
13
+ activeColor = _ref.activeColor,
14
+ onSubmit = _ref.onSubmit;
15
+ var _Form$useForm = Form.useForm(),
16
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
17
+ form = _Form$useForm2[0];
18
+ var _useState = useState(false),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ showFeedback = _useState2[0],
21
+ setShowFeedback = _useState2[1];
22
+
23
+ // msg 是 ChatGroup 对象,isLike 在同层
24
+ var currentIsLike = (_msg$isLike = msg.isLike) !== null && _msg$isLike !== void 0 ? _msg$isLike : 0;
25
+ return /*#__PURE__*/_jsx(Popover, {
26
+ trigger: ["click"],
27
+ open: showFeedback,
28
+ onOpenChange: function onOpenChange(v) {
29
+ if (v && currentIsLike !== 0) {
30
+ message.warning("已收到您的反馈,无需重复提交");
31
+ return;
32
+ }
33
+ if (v) {
34
+ form.resetFields();
35
+ }
36
+ setShowFeedback(v);
37
+ },
38
+ title: /*#__PURE__*/_jsxs("div", {
39
+ children: [/*#__PURE__*/_jsx("div", {
40
+ children: "\u62B1\u6B49\uFF0C\u672A\u80FD\u6EE1\u8DB3\u60A8\u7684\u9700\u6C42"
41
+ }), /*#__PURE__*/_jsx("div", {
42
+ style: {
43
+ color: "#999",
44
+ fontWeight: "normal",
45
+ marginBottom: 12
46
+ },
47
+ children: "\u4E3A\u63D0\u5347\u60A8\u7684\u4F7F\u7528\u4F53\u9A8C\uFF0C\u8BF7\u544A\u8BC9\u6211\u4EEC\u4E0D\u8DB3\u7684\u65B9\u5411"
48
+ })]
49
+ }),
50
+ content: /*#__PURE__*/_jsx("div", {
51
+ children: /*#__PURE__*/_jsxs(Form, {
52
+ form: form,
53
+ children: [/*#__PURE__*/_jsx(Form.Item, {
54
+ name: "feedbackTags",
55
+ style: {
56
+ marginBottom: 12
57
+ },
58
+ children: /*#__PURE__*/_jsx(FeedbackTags, {})
59
+ }), /*#__PURE__*/_jsx(Form.Item, {
60
+ name: "feedbackDescription",
61
+ style: {
62
+ marginBottom: 12
63
+ },
64
+ children: /*#__PURE__*/_jsx(Input.TextArea, {
65
+ rows: 4,
66
+ placeholder: "\u6B22\u8FCE\u8BF4\u8BF4\u4F60\u7684\u60F3\u6CD5"
67
+ })
68
+ }), /*#__PURE__*/_jsx(Form.Item, {
69
+ dependencies: ["feedbackTags", "feedbackDescription"],
70
+ noStyle: true,
71
+ children: function children(_ref2) {
72
+ var getFieldValue = _ref2.getFieldValue;
73
+ var feedbackTags = getFieldValue("feedbackTags") || [];
74
+ var feedbackDescription = getFieldValue("feedbackDescription");
75
+ var disabled = !feedbackTags.length && !feedbackDescription;
76
+ return /*#__PURE__*/_jsx(Button, {
77
+ type: "primary",
78
+ block: true,
79
+ disabled: disabled,
80
+ onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
81
+ var formData, res;
82
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
83
+ while (1) switch (_context.prev = _context.next) {
84
+ case 0:
85
+ _context.next = 2;
86
+ return form.validateFields();
87
+ case 2:
88
+ formData = _context.sent;
89
+ _context.next = 5;
90
+ return onSubmit(formData);
91
+ case 5:
92
+ res = _context.sent;
93
+ if (res) {
94
+ setShowFeedback(false);
95
+ }
96
+ case 7:
97
+ case "end":
98
+ return _context.stop();
99
+ }
100
+ }, _callee);
101
+ })),
102
+ children: "\u63D0\u4EA4\u53CD\u9988"
103
+ });
104
+ }
105
+ })]
106
+ })
107
+ }),
108
+ children: currentIsLike === -1 ? /*#__PURE__*/_jsx(DislikeFilled, {
109
+ style: {
110
+ color: activeColor,
111
+ cursor: "pointer"
112
+ }
113
+ }) : /*#__PURE__*/_jsx(DislikeOutlined, {
114
+ style: {
115
+ color: "#81858c",
116
+ cursor: "pointer"
117
+ }
118
+ })
119
+ });
120
+ };
121
+ export default DislikeFeedback;
122
+ //# sourceMappingURL=DislikeFeedBack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Button","Form","Input","message","Popover","React","useState","DislikeFilled","DislikeOutlined","FeedbackTags","jsx","_jsx","jsxs","_jsxs","DislikeFeedback","_ref","_msg$isLike","msg","activeColor","onSubmit","_Form$useForm","useForm","_Form$useForm2","_slicedToArray","form","_useState","_useState2","showFeedback","setShowFeedback","currentIsLike","isLike","trigger","open","onOpenChange","v","warning","resetFields","title","children","style","color","fontWeight","marginBottom","content","Item","name","TextArea","rows","placeholder","dependencies","noStyle","_ref2","getFieldValue","feedbackTags","feedbackDescription","disabled","length","type","block","onClick","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formData","res","wrap","_callee$","_context","prev","next","validateFields","sent","stop","cursor"],"sources":["../../../../../src/components/XAdkProvider/compound/DislikeFeedBack.tsx"],"sourcesContent":["import { Button, Form, Input, message, Popover } from \"antd\";\nimport React, { useState } from \"react\";\nimport { DislikeFilled, DislikeOutlined } from \"@ant-design/icons\";\nimport FeedbackTags from \"./FeedbackTags\";\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({\n msg,\n activeColor,\n onSubmit,\n}) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n\n // msg 是 ChatGroup 对象,isLike 在同层\n const currentIsLike = msg.isLike ?? 0;\n\n return (\n <Popover\n trigger={[\"click\"]}\n open={showFeedback}\n onOpenChange={(v) => {\n if (v && currentIsLike !== 0) {\n message.warning(\"已收到您的反馈,无需重复提交\");\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div\n style={{ color: \"#999\", fontWeight: \"normal\", marginBottom: 12 }}\n >\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n }\n content={\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item\n dependencies={[\"feedbackTags\", \"feedbackDescription\"]}\n noStyle\n >\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue(\"feedbackTags\") || [];\n const feedbackDescription = getFieldValue(\n \"feedbackDescription\",\n );\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n }\n >\n {currentIsLike === -1 ? (\n <DislikeFilled style={{ color: activeColor, cursor: \"pointer\" }} />\n ) : (\n <DislikeOutlined style={{ color: \"#81858c\", cursor: \"pointer\" }} />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface FeedbackTagsProps {
3
+ value?: string[];
4
+ onChange?: (v?: string[]) => void;
5
+ }
6
+ export declare const FeedbackTags: React.FC<FeedbackTagsProps>;
7
+ export default FeedbackTags;
@@ -0,0 +1,34 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { Button, Flex } from "antd";
3
+ import React from "react";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ var allTags = ["回答错误", "需求理解错", "内容质量差", "逻辑混乱", "可读性差", "遗忘了上文", "时效性差", "其他"];
6
+ export var FeedbackTags = function FeedbackTags(_ref) {
7
+ var value = _ref.value,
8
+ onChange = _ref.onChange;
9
+ var tags = value || [];
10
+ return /*#__PURE__*/_jsx(Flex, {
11
+ gap: 8,
12
+ wrap: true,
13
+ style: {
14
+ width: 305
15
+ },
16
+ children: allTags.map(function (v) {
17
+ return /*#__PURE__*/_jsx(Button, {
18
+ type: tags.includes(v) ? "primary" : "default",
19
+ onClick: function onClick() {
20
+ if (tags.includes(v)) {
21
+ onChange === null || onChange === void 0 || onChange(tags.filter(function (t) {
22
+ return t !== v;
23
+ }));
24
+ } else {
25
+ onChange === null || onChange === void 0 || onChange([].concat(_toConsumableArray(tags), [v]));
26
+ }
27
+ },
28
+ children: v
29
+ }, v);
30
+ })
31
+ });
32
+ };
33
+ export default FeedbackTags;
34
+ //# sourceMappingURL=FeedbackTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Button","Flex","React","jsx","_jsx","allTags","FeedbackTags","_ref","value","onChange","tags","gap","wrap","style","width","children","map","v","type","includes","onClick","filter","t","concat","_toConsumableArray"],"sources":["../../../../../src/components/XAdkProvider/compound/FeedbackTags.tsx"],"sourcesContent":["import { Button, Flex } from \"antd\";\nimport React from \"react\";\n\nexport interface FeedbackTagsProps {\n value?: string[];\n onChange?: (v?: string[]) => void;\n}\n\nconst allTags = [\n \"回答错误\",\n \"需求理解错\",\n \"内容质量差\",\n \"逻辑混乱\",\n \"可读性差\",\n \"遗忘了上文\",\n \"时效性差\",\n \"其他\",\n];\n\nexport const FeedbackTags: React.FC<FeedbackTagsProps> = ({\n value,\n onChange,\n}) => {\n const tags = value || [];\n return (\n <Flex gap={8} wrap style={{ width: 305 }}>\n {allTags.map((v) => (\n <Button\n key={v}\n type={tags.includes(v) ? \"primary\" : \"default\"}\n onClick={() => {\n if (tags.includes(v)) {\n onChange?.(tags.filter((t) => t !== v));\n } else {\n onChange?.([...tags, v]);\n }\n }}\n >\n {v}\n </Button>\n ))}\n </Flex>\n );\n};\n\nexport default FeedbackTags;\n"],"mappings":";AAAA,SAASA,MAAM,EAAEC,IAAI,QAAQ,MAAM;AACnC,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO1B,IAAMC,OAAO,GAAG,CACd,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,CACL;AAED,OAAO,IAAMC,YAAyC,GAAG,SAA5CA,YAAyCA,CAAAC,IAAA,EAGhD;EAAA,IAFJC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAER,IAAMC,IAAI,GAAGF,KAAK,IAAI,EAAE;EACxB,oBACEJ,IAAA,CAACH,IAAI;IAACU,GAAG,EAAE,CAAE;IAACC,IAAI;IAACC,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAE;IAAAC,QAAA,EACtCV,OAAO,CAACW,GAAG,CAAC,UAACC,CAAC;MAAA,oBACbb,IAAA,CAACJ,MAAM;QAELkB,IAAI,EAAER,IAAI,CAACS,QAAQ,CAACF,CAAC,CAAC,GAAG,SAAS,GAAG,SAAU;QAC/CG,OAAO,EAAE,SAAAA,QAAA,EAAM;UACb,IAAIV,IAAI,CAACS,QAAQ,CAACF,CAAC,CAAC,EAAE;YACpBR,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGC,IAAI,CAACW,MAAM,CAAC,UAACC,CAAC;cAAA,OAAKA,CAAC,KAAKL,CAAC;YAAA,EAAC,CAAC;UACzC,CAAC,MAAM;YACLR,QAAQ,aAARA,QAAQ,eAARA,QAAQ,IAAAc,MAAA,CAAAC,kBAAA,CAAOd,IAAI,IAAEO,CAAC,EAAC,CAAC;UAC1B;QACF,CAAE;QAAAF,QAAA,EAEDE;MAAC,GAVGA,CAWC,CAAC;IAAA,CACV;EAAC,CACE,CAAC;AAEX,CAAC;AAED,eAAeX,YAAY"}
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import type { ChatConfig } from "../../../services/api";
3
+ /**
4
+ * XAdkProvider.Header - 可选的头部组件
5
+ *
6
+ * 显示应用信息,用户可以自定义或不使用
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <XAdkProvider url="..." token="...">
11
+ * <XAdkProvider.Header />
12
+ * <XAdkProvider.Messages />
13
+ * </XAdkProvider>
14
+ * ```
15
+ */
16
+ export interface XAdkHeaderProps {
17
+ /** 额外的样式 */
18
+ style?: React.CSSProperties;
19
+ /** 额外的类名 */
20
+ className?: string;
21
+ /** 自定义渲染函数 */
22
+ render?: (appInfo: ChatConfig | null) => React.ReactNode;
23
+ }
24
+ declare const Header: React.FC<XAdkHeaderProps>;
25
+ export default Header;
@@ -0,0 +1,79 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import React from "react";
3
+ import { useChatState } from "../context/ChatStateContext";
4
+
5
+ /**
6
+ * XAdkProvider.Header - 可选的头部组件
7
+ *
8
+ * 显示应用信息,用户可以自定义或不使用
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <XAdkProvider url="..." token="...">
13
+ * <XAdkProvider.Header />
14
+ * <XAdkProvider.Messages />
15
+ * </XAdkProvider>
16
+ * ```
17
+ */
18
+ import { Fragment as _Fragment } from "react/jsx-runtime";
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ import { jsxs as _jsxs } from "react/jsx-runtime";
21
+ var Header = function Header(_ref) {
22
+ var style = _ref.style,
23
+ className = _ref.className,
24
+ render = _ref.render;
25
+ var _useChatState = useChatState(),
26
+ appInfo = _useChatState.appInfo;
27
+
28
+ // 如果提供了自定义渲染函数,使用它
29
+ if (render) {
30
+ return /*#__PURE__*/_jsx(_Fragment, {
31
+ children: render(appInfo)
32
+ });
33
+ }
34
+
35
+ // 默认头部渲染
36
+ if (!appInfo) {
37
+ return null;
38
+ }
39
+ return /*#__PURE__*/_jsxs("div", {
40
+ className: className,
41
+ style: _objectSpread({
42
+ padding: "16px",
43
+ borderBottom: "1px solid #f0f0f0",
44
+ display: "flex",
45
+ alignItems: "center",
46
+ gap: "12px"
47
+ }, style),
48
+ children: [appInfo.icon && /*#__PURE__*/_jsx("img", {
49
+ src: appInfo.icon,
50
+ alt: "\u5E94\u7528\u56FE\u6807",
51
+ style: {
52
+ width: 32,
53
+ height: 32,
54
+ borderRadius: "4px"
55
+ }
56
+ }), appInfo.appName && /*#__PURE__*/_jsxs("div", {
57
+ style: {
58
+ flex: 1
59
+ },
60
+ children: [/*#__PURE__*/_jsx("div", {
61
+ style: {
62
+ fontWeight: 500,
63
+ fontSize: "16px"
64
+ },
65
+ children: appInfo.appName
66
+ }), appInfo.description && /*#__PURE__*/_jsx("div", {
67
+ style: {
68
+ fontSize: "12px",
69
+ color: "#999",
70
+ marginTop: "4px"
71
+ },
72
+ children: appInfo.description
73
+ })]
74
+ })]
75
+ });
76
+ };
77
+ Header.displayName = "XAdkProvider.Header";
78
+ export default Header;
79
+ //# sourceMappingURL=Header.js.map