@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,29 @@
1
+ /// <reference types="react" />
2
+ import type { SessionData } from "../../../types";
3
+ /**
4
+ * 会话管理 Context
5
+ * 管理会话列表和会话操作
6
+ */
7
+ export interface SessionContextType {
8
+ /** 会话列表 */
9
+ sessionList: SessionData[];
10
+ /** 会话分页信息 */
11
+ sessionPagination: {
12
+ total: number;
13
+ pageNum: number;
14
+ pageSize: number;
15
+ };
16
+ /** 删除会话 */
17
+ deleteSession: (sessionId: string) => void;
18
+ /** 更新会话标题 */
19
+ updateSession: (sessionId: string, title: string) => void;
20
+ /** 设置当前会话详情 */
21
+ setCurrentSessionDetail: (sessionId: string) => void;
22
+ }
23
+ export declare const SessionContext: import("react").Context<SessionContextType | null>;
24
+ /**
25
+ * 使用会话管理 Hook
26
+ * @returns SessionContextType
27
+ * @throws Error 如果在 XAdkProvider 外部使用
28
+ */
29
+ export declare const useSession: () => SessionContextType;
@@ -0,0 +1,22 @@
1
+ import { createContext, useContext } from 'react';
2
+
3
+ /**
4
+ * 会话管理 Context
5
+ * 管理会话列表和会话操作
6
+ */
7
+
8
+ export var SessionContext = /*#__PURE__*/createContext(null);
9
+
10
+ /**
11
+ * 使用会话管理 Hook
12
+ * @returns SessionContextType
13
+ * @throws Error 如果在 XAdkProvider 外部使用
14
+ */
15
+ export var useSession = function useSession() {
16
+ var context = useContext(SessionContext);
17
+ if (!context) {
18
+ throw new Error('useSession must be used within XAdkProvider');
19
+ }
20
+ return context;
21
+ };
22
+ //# sourceMappingURL=SessionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","SessionContext","useSession","context","Error"],"sources":["../../../../../src/components/XAdkProvider/context/SessionContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { SessionData } from '@/types';\n\n/**\n * 会话管理 Context\n * 管理会话列表和会话操作\n */\nexport interface SessionContextType {\n /** 会话列表 */\n sessionList: SessionData[];\n /** 会话分页信息 */\n sessionPagination: {\n total: number;\n pageNum: number;\n pageSize: number;\n };\n /** 删除会话 */\n deleteSession: (sessionId: string) => void;\n /** 更新会话标题 */\n updateSession: (sessionId: string, title: string) => void;\n /** 设置当前会话详情 */\n setCurrentSessionDetail: (sessionId: string) => void;\n}\n\nexport const SessionContext = createContext<SessionContextType | null>(null);\n\n/**\n * 使用会话管理 Hook\n * @returns SessionContextType\n * @throws Error 如果在 XAdkProvider 外部使用\n */\nexport const useSession = () => {\n const context = useContext(SessionContext);\n if (!context) {\n throw new Error('useSession must be used within XAdkProvider');\n }\n return context;\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAGjD;AACA;AACA;AACA;;AAkBA,OAAO,IAAMC,cAAc,gBAAGF,aAAa,CAA4B,IAAI,CAAC;;AAE5E;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EAC9B,IAAMC,OAAO,GAAGH,UAAU,CAACC,cAAc,CAAC;EAC1C,IAAI,CAACE,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;EAChE;EACA,OAAOD,OAAO;AAChB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * XAdkProvider Context 导出
3
+ * 提供拆分的 Context 和对应的 Hooks
4
+ */
5
+ export * from './ChatStateContext';
6
+ export * from './ChatActionContext';
7
+ export * from './SessionContext';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * XAdkProvider Context 导出
3
+ * 提供拆分的 Context 和对应的 Hooks
4
+ */
5
+
6
+ export * from "./ChatStateContext";
7
+ export * from "./ChatActionContext";
8
+ export * from "./SessionContext";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../../src/components/XAdkProvider/context/index.ts"],"sourcesContent":["/**\n * XAdkProvider Context 导出\n * 提供拆分的 Context 和对应的 Hooks\n */\n\nexport * from './ChatStateContext';\nexport * from './ChatActionContext';\nexport * from './SessionContext';\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA"}
@@ -0,0 +1,55 @@
1
+ import React from "react";
2
+ import type { XAdkProviderProps, XAdkProviderHandle } from "../../types/XAdkProvider";
3
+ import type { ChatHookResult } from "../../types/ChatHook";
4
+ /**
5
+ * XAdkProvider Props (扩展版)
6
+ *
7
+ * 支持两种使用方式:
8
+ * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat
9
+ * 2. 自定义协议: 提供 chatData,使用自己的 Hook
10
+ */
11
+ export interface XAdkProviderPropsExtended extends Omit<XAdkProviderProps, "url" | "token" | "config"> {
12
+ /**
13
+ * 选项 A: 使用标准协议 (内置 useADKChat)
14
+ */
15
+ url: string;
16
+ token: string;
17
+ config?: any;
18
+ /**
19
+ * 选项 B: 使用自定义 Hook 数据
20
+ * 如果提供此参数,将忽略 url/token/config
21
+ *
22
+ * @example
23
+ * // GraphQL 协议
24
+ * const chatData = useMyGraphQLChat({ endpoint: '...' });
25
+ * <XAdkProvider chatData={chatData}>
26
+ * <XAdkProvider.DefaultLayout />
27
+ * </XAdkProvider>
28
+ *
29
+ * @example
30
+ * // WebSocket 协议
31
+ * const chatData = useWebSocketChat({ url: 'ws://...' });
32
+ * <XAdkProvider chatData={chatData}>
33
+ * <XAdkProvider.DefaultLayout />
34
+ * </XAdkProvider>
35
+ */
36
+ chatData?: ChatHookResult;
37
+ children: React.ReactNode;
38
+ }
39
+ import Header from "./compound/Header";
40
+ import Sidebar from "./compound/Sidebar";
41
+ import Messages from "./compound/Messages";
42
+ import Sender from "./compound/Sender";
43
+ import Chatbot from "./compound/Chatbot";
44
+ import Welcome from "./compound/Welcome";
45
+ import DefaultLayout from "./compound/DefaultLayout";
46
+ declare const XAdkProvider: React.ForwardRefExoticComponent<XAdkProviderPropsExtended & React.RefAttributes<XAdkProviderHandle>> & {
47
+ Header: typeof Header;
48
+ Sidebar: typeof Sidebar;
49
+ Messages: typeof Messages;
50
+ Sender: typeof Sender;
51
+ Chatbot: typeof Chatbot;
52
+ Welcome: typeof Welcome;
53
+ DefaultLayout: typeof DefaultLayout;
54
+ };
55
+ export default XAdkProvider;
@@ -0,0 +1,220 @@
1
+ import React, { forwardRef, useImperativeHandle, useMemo } from "react";
2
+ import { ConfigProvider } from "antd";
3
+ import { XProvider } from "@ant-design/x";
4
+ import { ChatStateContext } from "./context/ChatStateContext";
5
+ import { ChatActionContext } from "./context/ChatActionContext";
6
+ import { SessionContext } from "./context/SessionContext";
7
+ import useADKChat from "../../hooks/useADKChat";
8
+ import { primaryBlue } from "../../styles/common";
9
+
10
+ /**
11
+ * XAdkProvider Props (扩展版)
12
+ *
13
+ * 支持两种使用方式:
14
+ * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat
15
+ * 2. 自定义协议: 提供 chatData,使用自己的 Hook
16
+ */
17
+
18
+ /**
19
+ * XAdkProvider - AI 聊天 SDK 核心 Provider
20
+ *
21
+ * 采用 Compound Components 架构:
22
+ * - 只负责数据和状态管理
23
+ * - 不包含 UI 布局
24
+ * - 通过 Context 向子组件提供数据
25
+ * - 支持完全自定义的组件组合
26
+ * - 支持协议解耦,可使用自定义 Hook
27
+ *
28
+ * @example
29
+ * // 基础用法 - 标准协议
30
+ * <XAdkProvider url="..." token="..." config={...}>
31
+ * <XAdkProvider.Chatbot />
32
+ * </XAdkProvider>
33
+ *
34
+ * @example
35
+ * // 自定义协议 - GraphQL
36
+ * function App() {
37
+ * const chatData = useMyGraphQLChat({ endpoint: '...' });
38
+ * return (
39
+ * <XAdkProvider chatData={chatData}>
40
+ * <XAdkProvider.DefaultLayout />
41
+ * </XAdkProvider>
42
+ * );
43
+ * }
44
+ *
45
+ * @example
46
+ * // 自定义布局
47
+ * <XAdkProvider url="..." token="...">
48
+ * <div style={{ display: 'flex' }}>
49
+ * <XAdkProvider.Sidebar />
50
+ * <div>
51
+ * <XAdkProvider.Messages />
52
+ * <XAdkProvider.Sender />
53
+ * </div>
54
+ * </div>
55
+ * </XAdkProvider>
56
+ */
57
+ var XAdkProviderComponent = /*#__PURE__*/forwardRef(function (_ref, ref) {
58
+ var url = _ref.url,
59
+ token = _ref.token,
60
+ config = _ref.config,
61
+ chatData = _ref.chatData,
62
+ _ref$providerId = _ref.providerId,
63
+ providerId = _ref$providerId === void 0 ? "defaultId" : _ref$providerId,
64
+ onSuccess = _ref.onSuccess,
65
+ onError = _ref.onError,
66
+ onMessage = _ref.onMessage,
67
+ onStream = _ref.onStream,
68
+ children = _ref.children;
69
+ // 内置 Hook 数据 (仅在没有提供 chatData 时调用)
70
+ var internalData = useADKChat({
71
+ url: url || "",
72
+ token: token || "",
73
+ config: config || {},
74
+ onError: onError,
75
+ onSuccess: onSuccess,
76
+ onMessage: onMessage,
77
+ onStream: onStream,
78
+ // 仅在提供了 url 和 token 时才初始化
79
+ enabled: !chatData && !!url && !!token
80
+ });
81
+
82
+ // 使用外部数据或内部数据
83
+ var data = chatData || internalData;
84
+
85
+ // 解构数据
86
+ var appInfo = data.appInfo,
87
+ startChat = data.startChat,
88
+ stopChat = data.stopChat,
89
+ reChat = data.reChat,
90
+ clearChat = data.clearChat,
91
+ suggestChat = data.suggestChat,
92
+ confirmFnCall = data.confirmFnCall,
93
+ deleteSession = data.deleteSession,
94
+ updateSession = data.updateSession,
95
+ currentSessionId = data.currentSessionId,
96
+ sessionPagination = data.sessionPagination,
97
+ sessionList = data.sessionList,
98
+ messages = data.messages,
99
+ loading = data.loading,
100
+ prologue = data.prologue,
101
+ suggestions = data.suggestions,
102
+ initialized = data.initialized,
103
+ setCurrentSessionDetail = data.setCurrentSessionDetail,
104
+ setMessages = data.setMessages;
105
+
106
+ // 暴露 API 给 ref
107
+ useImperativeHandle(ref, function () {
108
+ return {
109
+ startChat: startChat,
110
+ stopChat: stopChat,
111
+ reChat: reChat,
112
+ clearChat: clearChat,
113
+ suggestChat: suggestChat,
114
+ deleteSession: deleteSession,
115
+ updateSession: updateSession,
116
+ getAppInfo: function getAppInfo() {
117
+ return appInfo;
118
+ },
119
+ getMessages: function getMessages() {
120
+ return messages;
121
+ },
122
+ getSessions: function getSessions() {
123
+ return sessionList;
124
+ },
125
+ setMessages: setMessages,
126
+ setCurrentSessionDetail: setCurrentSessionDetail
127
+ };
128
+ }, [appInfo, messages, sessionList, startChat, stopChat, reChat, clearChat, suggestChat, deleteSession, updateSession, setMessages, setCurrentSessionDetail]);
129
+
130
+ // 状态 Context Value - 使用 useMemo 避免不必要的 rerender
131
+ var chatStateValue = useMemo(function () {
132
+ return {
133
+ messages: messages,
134
+ loading: loading,
135
+ currentSessionId: currentSessionId,
136
+ prologue: prologue,
137
+ suggestions: suggestions,
138
+ appInfo: appInfo,
139
+ initialized: initialized,
140
+ url: url,
141
+ token: token
142
+ };
143
+ }, [messages, loading, currentSessionId, prologue, suggestions, appInfo, initialized]);
144
+
145
+ // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象
146
+ var chatActionValue = useMemo(function () {
147
+ return {
148
+ chat: startChat,
149
+ stopChat: stopChat,
150
+ clearChat: clearChat,
151
+ reChat: reChat,
152
+ suggestChat: suggestChat,
153
+ confirmFnCall: confirmFnCall,
154
+ setMessages: setMessages
155
+ };
156
+ }, [startChat, stopChat, clearChat, reChat, suggestChat, confirmFnCall, setMessages]);
157
+
158
+ // 会话 Context Value
159
+ var sessionValue = useMemo(function () {
160
+ return {
161
+ sessionList: sessionList,
162
+ sessionPagination: sessionPagination,
163
+ deleteSession: deleteSession,
164
+ updateSession: updateSession,
165
+ setCurrentSessionDetail: setCurrentSessionDetail
166
+ };
167
+ }, [sessionList, sessionPagination, deleteSession, updateSession, setCurrentSessionDetail]);
168
+ return /*#__PURE__*/_jsx(ConfigProvider, {
169
+ theme: {
170
+ token: {
171
+ colorPrimary: (appInfo === null || appInfo === void 0 ? void 0 : appInfo.appTheme) || primaryBlue
172
+ }
173
+ },
174
+ children: /*#__PURE__*/_jsx(XProvider, {
175
+ children: /*#__PURE__*/_jsx(ChatStateContext.Provider, {
176
+ value: chatStateValue,
177
+ children: /*#__PURE__*/_jsx(ChatActionContext.Provider, {
178
+ value: chatActionValue,
179
+ children: /*#__PURE__*/_jsx(SessionContext.Provider, {
180
+ value: sessionValue,
181
+ children: /*#__PURE__*/_jsx("div", {
182
+ style: {
183
+ display: "flex",
184
+ height: "100%",
185
+ width: "100%",
186
+ position: "relative"
187
+ },
188
+ children: children
189
+ })
190
+ })
191
+ })
192
+ })
193
+ })
194
+ });
195
+ });
196
+ XAdkProviderComponent.displayName = "XAdkProvider";
197
+
198
+ // 导入 Compound Components
199
+ import Header from "./compound/Header";
200
+ import Sidebar from "./compound/Sidebar";
201
+ import Messages from "./compound/Messages";
202
+ import Sender from "./compound/Sender";
203
+ import Chatbot from "./compound/Chatbot";
204
+ import Welcome from "./compound/Welcome";
205
+ import DefaultLayout from "./compound/DefaultLayout";
206
+
207
+ // 导出时会挂载 Compound Components
208
+ import { jsx as _jsx } from "react/jsx-runtime";
209
+ var XAdkProvider = XAdkProviderComponent;
210
+
211
+ // 挂载 Compound Components
212
+ XAdkProvider.Header = Header;
213
+ XAdkProvider.Sidebar = Sidebar;
214
+ XAdkProvider.Messages = Messages;
215
+ XAdkProvider.Sender = Sender;
216
+ XAdkProvider.Chatbot = Chatbot;
217
+ XAdkProvider.DefaultLayout = DefaultLayout;
218
+ XAdkProvider.Welcome = Welcome;
219
+ export default XAdkProvider;
220
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useImperativeHandle","useMemo","ConfigProvider","XProvider","ChatStateContext","ChatActionContext","SessionContext","useADKChat","primaryBlue","XAdkProviderComponent","_ref","ref","url","token","config","chatData","_ref$providerId","providerId","onSuccess","onError","onMessage","onStream","children","internalData","enabled","data","appInfo","startChat","stopChat","reChat","clearChat","suggestChat","confirmFnCall","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","prologue","suggestions","initialized","setCurrentSessionDetail","setMessages","getAppInfo","getMessages","getSessions","chatStateValue","chatActionValue","chat","sessionValue","_jsx","theme","colorPrimary","appTheme","Provider","value","style","display","height","width","position","displayName","Header","Sidebar","Messages","Sender","Chatbot","Welcome","DefaultLayout","jsx","XAdkProvider"],"sources":["../../../../src/components/XAdkProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useMemo } from \"react\";\nimport { ConfigProvider } from \"antd\";\nimport { XProvider } from \"@ant-design/x\";\nimport { ChatStateContext } from \"./context/ChatStateContext\";\nimport { ChatActionContext } from \"./context/ChatActionContext\";\nimport { SessionContext } from \"./context/SessionContext\";\nimport useADKChat from \"@/hooks/useADKChat\";\nimport { primaryBlue } from \"@/styles/common\";\nimport type {\n XAdkProviderProps,\n XAdkProviderHandle,\n} from \"@/types/XAdkProvider\";\nimport type { ChatHookResult } from \"@/types/ChatHook\";\n\n/**\n * XAdkProvider Props (扩展版)\n *\n * 支持两种使用方式:\n * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat\n * 2. 自定义协议: 提供 chatData,使用自己的 Hook\n */\nexport interface XAdkProviderPropsExtended extends Omit<\n XAdkProviderProps,\n \"url\" | \"token\" | \"config\"\n> {\n /**\n * 选项 A: 使用标准协议 (内置 useADKChat)\n */\n url: string;\n token: string;\n config?: any;\n\n /**\n * 选项 B: 使用自定义 Hook 数据\n * 如果提供此参数,将忽略 url/token/config\n *\n * @example\n * // GraphQL 协议\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n *\n * @example\n * // WebSocket 协议\n * const chatData = useWebSocketChat({ url: 'ws://...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n */\n chatData?: ChatHookResult;\n\n children: React.ReactNode;\n}\n\n/**\n * XAdkProvider - AI 聊天 SDK 核心 Provider\n *\n * 采用 Compound Components 架构:\n * - 只负责数据和状态管理\n * - 不包含 UI 布局\n * - 通过 Context 向子组件提供数据\n * - 支持完全自定义的组件组合\n * - 支持协议解耦,可使用自定义 Hook\n *\n * @example\n * // 基础用法 - 标准协议\n * <XAdkProvider url=\"...\" token=\"...\" config={...}>\n * <XAdkProvider.Chatbot />\n * </XAdkProvider>\n *\n * @example\n * // 自定义协议 - GraphQL\n * function App() {\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * return (\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n * );\n * }\n *\n * @example\n * // 自定义布局\n * <XAdkProvider url=\"...\" token=\"...\">\n * <div style={{ display: 'flex' }}>\n * <XAdkProvider.Sidebar />\n * <div>\n * <XAdkProvider.Messages />\n * <XAdkProvider.Sender />\n * </div>\n * </div>\n * </XAdkProvider>\n */\nconst XAdkProviderComponent = forwardRef<\n XAdkProviderHandle,\n XAdkProviderPropsExtended\n>(\n (\n {\n url,\n token,\n config,\n chatData, // 自定义 Hook 数据\n providerId = \"defaultId\",\n onSuccess,\n onError,\n onMessage,\n onStream,\n children,\n },\n ref,\n ) => {\n // 内置 Hook 数据 (仅在没有提供 chatData 时调用)\n const internalData = useADKChat({\n url: url || \"\",\n token: token || \"\",\n config: config || {},\n onError,\n onSuccess,\n onMessage,\n onStream,\n // 仅在提供了 url 和 token 时才初始化\n enabled: !chatData && !!url && !!token,\n });\n\n // 使用外部数据或内部数据\n const data = chatData || internalData;\n\n // 解构数据\n const {\n appInfo,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n setCurrentSessionDetail,\n setMessages,\n } = data;\n\n // 暴露 API 给 ref\n useImperativeHandle(\n ref,\n () => ({\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }),\n [\n appInfo,\n messages,\n sessionList,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setMessages,\n setCurrentSessionDetail,\n ],\n );\n\n // 状态 Context Value - 使用 useMemo 避免不必要的 rerender\n const chatStateValue = useMemo(\n () => ({\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n }),\n [\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n ],\n );\n\n // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象\n const chatActionValue = useMemo(\n () => ({\n chat: startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n }),\n [\n startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n ],\n );\n\n // 会话 Context Value\n const sessionValue = useMemo(\n () => ({\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSessionDetail,\n }),\n [\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSessionDetail,\n ],\n );\n\n return (\n <ConfigProvider\n theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <ChatStateContext.Provider value={chatStateValue}>\n <ChatActionContext.Provider value={chatActionValue}>\n <SessionContext.Provider value={sessionValue}>\n <div\n style={{\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {children}\n </div>\n </SessionContext.Provider>\n </ChatActionContext.Provider>\n </ChatStateContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n },\n);\n\nXAdkProviderComponent.displayName = \"XAdkProvider\";\n\n// 导入 Compound Components\nimport Header from \"./compound/Header\";\nimport Sidebar from \"./compound/Sidebar\";\nimport Messages from \"./compound/Messages\";\nimport Sender from \"./compound/Sender\";\nimport Chatbot from \"./compound/Chatbot\";\nimport Welcome from \"./compound/Welcome\";\nimport DefaultLayout from \"./compound/DefaultLayout\";\n\n// 导出时会挂载 Compound Components\nconst XAdkProvider = XAdkProviderComponent as typeof XAdkProviderComponent & {\n Header: typeof Header;\n Sidebar: typeof Sidebar;\n Messages: typeof Messages;\n Sender: typeof Sender;\n Chatbot: typeof Chatbot;\n Welcome: typeof Welcome;\n DefaultLayout: typeof DefaultLayout;\n};\n\n// 挂载 Compound Components\nXAdkProvider.Header = Header;\nXAdkProvider.Sidebar = Sidebar;\nXAdkProvider.Messages = Messages;\nXAdkProvider.Sender = Sender;\nXAdkProvider.Chatbot = Chatbot;\nXAdkProvider.DefaultLayout = DefaultLayout;\nXAdkProvider.Welcome = Welcome;\n\nexport default XAdkProvider;\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
2
  var _templateObject, _templateObject2, _templateObject3;
3
- import { css } from '@emotion/css';
3
+ import { css } from "@emotion/css";
4
4
  import { withBasicStyles } from "../../styles/common";
5
5
  export var useStyles = withBasicStyles(function () {
6
6
  return {
7
7
  providerWrapper: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n height: 100%;\n position: relative;\n overflow: hidden;\n "]))),
8
- chatbotWrapper: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n justify-content: center;\n "]))),
8
+ chatbotWrapper: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n justify-content: center;\n flex-direction: column;\n "]))),
9
9
  // 居中显示
10
10
  content: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1;\n justify-content: center;\n max-width: 800px;\n "])))
11
11
  };
@@ -0,0 +1 @@
1
+ {"version":3,"names":["css","withBasicStyles","useStyles","providerWrapper","_templateObject","_taggedTemplateLiteral","chatbotWrapper","_templateObject2","content","_templateObject3"],"sources":["../../../../src/components/XAdkProvider/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n providerWrapper: css`\n display: flex;\n height: 100%;\n position: relative;\n overflow: hidden;\n `,\n\n chatbotWrapper: css`\n flex: 1;\n display: flex;\n justify-content: center;\n flex-direction: column;\n `,\n\n // 居中显示\n content: css`\n flex: 1;\n justify-content: center;\n max-width: 800px;\n `,\n}));\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9CE,eAAe,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,mGAKnB;IAEDC,cAAc,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,yGAKlB;IAED;IACAG,OAAO,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA;EAKd,CAAC;AAAA,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { LocalFile } from "../../types/XAdkSender";
3
+ interface FileGalleryProps {
4
+ files: LocalFile[];
5
+ onRemove: (id: string) => void;
6
+ }
7
+ declare const FileGallery: React.FC<FileGalleryProps>;
8
+ export default FileGallery;
@@ -0,0 +1,236 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
3
+ import React from "react";
4
+ import { Image, Tooltip, Progress } from "antd";
5
+ import { FileOutlined, FilePdfOutlined, FileWordOutlined, FileExcelOutlined, FilePptOutlined, FileImageOutlined, CloseOutlined } from "@ant-design/icons";
6
+ import { css } from "@emotion/css";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { jsxs as _jsxs } from "react/jsx-runtime";
9
+ // 判断是否是图片文件
10
+ var isImageFile = function isImageFile(file) {
11
+ if (!file.type) return false;
12
+ return file.type.startsWith("image/");
13
+ };
14
+
15
+ // 获取文件扩展名
16
+ var getFileExtension = function getFileExtension(filename) {
17
+ var ext = filename.split(".").pop();
18
+ return ext ? ext.toLowerCase() : "";
19
+ };
20
+
21
+ // 获取文件图标和颜色
22
+ var getFileIcon = function getFileIcon(file) {
23
+ var ext = getFileExtension(file.name);
24
+
25
+ // PDF
26
+ if (ext === "pdf") {
27
+ return {
28
+ icon: /*#__PURE__*/_jsx(FilePdfOutlined, {}),
29
+ color: "#ff4d4f"
30
+ };
31
+ }
32
+
33
+ // Word
34
+ if (["doc", "docx"].includes(ext)) {
35
+ return {
36
+ icon: /*#__PURE__*/_jsx(FileWordOutlined, {}),
37
+ color: "#1677ff"
38
+ };
39
+ }
40
+
41
+ // Excel
42
+ if (["xls", "xlsx", "csv"].includes(ext)) {
43
+ return {
44
+ icon: /*#__PURE__*/_jsx(FileExcelOutlined, {}),
45
+ color: "#22b35e"
46
+ };
47
+ }
48
+
49
+ // PPT
50
+ if (["ppt", "pptx"].includes(ext)) {
51
+ return {
52
+ icon: /*#__PURE__*/_jsx(FilePptOutlined, {}),
53
+ color: "#ff6e31"
54
+ };
55
+ }
56
+
57
+ // 图片
58
+ if (isImageFile(file)) {
59
+ return {
60
+ icon: /*#__PURE__*/_jsx(FileImageOutlined, {}),
61
+ color: "#8c8c8c"
62
+ };
63
+ }
64
+
65
+ // 默认
66
+ return {
67
+ icon: /*#__PURE__*/_jsx(FileOutlined, {}),
68
+ color: "#8c8c8c"
69
+ };
70
+ };
71
+
72
+ // 格式化文件大小
73
+ var formatFileSize = function formatFileSize(bytes) {
74
+ if (bytes < 1024) return bytes + " B";
75
+ if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + " KB";
76
+ return (bytes / (1024 * 1024)).toFixed(1) + " MB";
77
+ };
78
+ var styles = {
79
+ container: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 12px 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n "]))),
80
+ // 图片九宫格容器
81
+ imageGrid: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: grid;\n gap: 8px;\n width: fit-content;\n min-width: 80px;\n max-width: 100%;\n /* \u9ED8\u8BA43\u5217\u5E03\u5C40 */\n grid-template-columns: repeat(3, 1fr);\n\n /* \u5355\u5F20\u56FE */\n &[data-count=\"1\"] {\n grid-template-columns: 1fr;\n min-width: 100px;\n max-width: 200px;\n }\n\n /* 2\u5F20\u30014\u5F20 -> 2\u5217 */\n &[data-count=\"2\"],\n &[data-count=\"4\"] {\n grid-template-columns: repeat(2, 1fr);\n min-width: 180px;\n max-width: 240px;\n }\n\n /* 3\u5F20\u30015-9\u5F20 -> 3\u5217 */\n &[data-count=\"3\"],\n &[data-count=\"5\"],\n &[data-count=\"6\"],\n &[data-count=\"7\"],\n &[data-count=\"8\"],\n &[data-count=\"9\"] {\n grid-template-columns: repeat(3, 1fr);\n min-width: 260px;\n max-width: 320px;\n }\n "]))),
82
+ imageItem: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: relative;\n width: 100%;\n min-width: 80px;\n padding-top: 100%; /* 1:1 \u6B63\u65B9\u5F62 */\n height: 0;\n overflow: hidden;\n border-radius: 8px;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n position: absolute !important;\n top: 0;\n left: 0;\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n "]))),
83
+ imageOverlay: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n "]))),
84
+ removeBtn: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 20;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.8);\n transform: scale(1.1);\n }\n "]))),
85
+ // 文件列表
86
+ fileList: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n "]))),
87
+ fileCard: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 200px;\n max-width: 280px;\n min-height: 64px;\n transition: all 0.2s ease;\n\n &:hover {\n background: #f5f5f5;\n border-color: #e0e0e0;\n }\n "]))),
88
+ // 图片缩略图容器
89
+ imageThumbnail: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n position: relative;\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n border-radius: 4px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n "]))),
90
+ fileIcon: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n font-size: 24px;\n flex-shrink: 0;\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
91
+ fileInfo: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n overflow: hidden;\n "]))),
92
+ fileName: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-size: 13px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n "]))),
93
+ fileSize: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: #8c8c8c;\n "]))),
94
+ progress: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n margin-top: 4px;\n\n .ant-progress-inner {\n height: 4px !important;\n }\n\n .ant-progress-bg {\n height: 4px !important;\n }\n "]))),
95
+ fileRemoveBtn: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n position: absolute;\n top: -6px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n "])))
96
+ };
97
+ var FileGallery = function FileGallery(_ref) {
98
+ var files = _ref.files,
99
+ onRemove = _ref.onRemove;
100
+ if (files.length === 0) return null;
101
+
102
+ // 调试日志
103
+ // if (process.env.NODE_ENV === "development") {
104
+ // console.log(
105
+ // "[FileGallery] Rendering files:",
106
+ // files.map((f) => ({
107
+ // id: f.id,
108
+ // name: f.name,
109
+ // type: f.type,
110
+ // status: f.status,
111
+ // hasFile: !!f.file,
112
+ // response: f.response,
113
+ // })),
114
+ // );
115
+ // }
116
+
117
+ return /*#__PURE__*/_jsx("div", {
118
+ className: styles.container,
119
+ children: /*#__PURE__*/_jsx("div", {
120
+ className: styles.fileList,
121
+ children: /*#__PURE__*/_jsx(Image.PreviewGroup, {
122
+ children: files.map(function (file) {
123
+ var isImage = isImageFile(file);
124
+ if (isImage) {
125
+ var _file$response, _file$response2;
126
+ // 图片卡片
127
+ var url = ((_file$response = file.response) === null || _file$response === void 0 ? void 0 : _file$response.fileUrl) || ((_file$response2 = file.response) === null || _file$response2 === void 0 ? void 0 : _file$response2.tempUrl) || file.tempUrl || (file.file ? URL.createObjectURL(file.file) : "");
128
+
129
+ // if (process.env.NODE_ENV === 'development') {
130
+ // console.log('[FileGallery] Image URL for', file.name, ':', {
131
+ // url,
132
+ // 'response.fileUrl': file.response?.fileUrl,
133
+ // 'response.tempUrl': file.response?.tempUrl,
134
+ // 'tempUrl': file.tempUrl,
135
+ // 'hasFile': !!file.file,
136
+ // });
137
+ // }
138
+
139
+ return /*#__PURE__*/_jsxs("div", {
140
+ className: styles.fileCard,
141
+ children: [/*#__PURE__*/_jsxs("div", {
142
+ className: styles.imageThumbnail,
143
+ children: [/*#__PURE__*/_jsx(Image, {
144
+ src: url,
145
+ alt: file.name,
146
+ fallback: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
147
+ preview: {
148
+ src: url
149
+ }
150
+ }), file.status === "uploading" && /*#__PURE__*/_jsx("div", {
151
+ className: styles.imageOverlay,
152
+ children: /*#__PURE__*/_jsx(Progress, {
153
+ type: "circle",
154
+ percent: file.progress,
155
+ size: 30,
156
+ strokeColor: "#1677ff"
157
+ })
158
+ })]
159
+ }), /*#__PURE__*/_jsxs("div", {
160
+ className: styles.fileInfo,
161
+ children: [/*#__PURE__*/_jsx(Tooltip, {
162
+ title: file.name,
163
+ children: /*#__PURE__*/_jsx("div", {
164
+ className: styles.fileName,
165
+ children: file.name.length > 15 ? "".concat(file.name.substring(0, 15), "...") : file.name
166
+ })
167
+ }), /*#__PURE__*/_jsx("div", {
168
+ className: styles.fileSize,
169
+ children: formatFileSize(file.size)
170
+ })]
171
+ }), /*#__PURE__*/_jsx("button", {
172
+ className: styles.fileRemoveBtn,
173
+ onClick: function onClick() {
174
+ return onRemove(file.id);
175
+ },
176
+ disabled: file.status === "uploading",
177
+ "aria-label": "\u5220\u9664\u6587\u4EF6",
178
+ children: /*#__PURE__*/_jsx(CloseOutlined, {})
179
+ })]
180
+ }, file.id);
181
+ } else {
182
+ // 文件卡片
183
+ var _getFileIcon = getFileIcon(file),
184
+ icon = _getFileIcon.icon,
185
+ color = _getFileIcon.color;
186
+ return /*#__PURE__*/_jsxs("div", {
187
+ className: styles.fileCard,
188
+ children: [/*#__PURE__*/_jsx("div", {
189
+ className: styles.fileIcon,
190
+ style: {
191
+ color: color
192
+ },
193
+ children: icon
194
+ }), /*#__PURE__*/_jsxs("div", {
195
+ className: styles.fileInfo,
196
+ children: [/*#__PURE__*/_jsx(Tooltip, {
197
+ title: file.name,
198
+ children: /*#__PURE__*/_jsx("div", {
199
+ className: styles.fileName,
200
+ children: file.name.length > 15 ? "".concat(file.name.substring(0, 15), "...") : file.name
201
+ })
202
+ }), file.status === "uploading" ? /*#__PURE__*/_jsx(Progress, {
203
+ percent: file.progress,
204
+ size: "small",
205
+ showInfo: false,
206
+ strokeColor: "#1677ff",
207
+ className: styles.progress
208
+ }) : /*#__PURE__*/_jsx("div", {
209
+ className: styles.fileSize,
210
+ children: formatFileSize(file.size)
211
+ }), file.status === "error" && file.errorMessage && /*#__PURE__*/_jsx("div", {
212
+ style: {
213
+ fontSize: "11px",
214
+ color: "#ff4d4f",
215
+ marginTop: "2px"
216
+ },
217
+ children: file.errorMessage
218
+ })]
219
+ }), /*#__PURE__*/_jsx("button", {
220
+ className: styles.fileRemoveBtn,
221
+ onClick: function onClick() {
222
+ return onRemove(file.id);
223
+ },
224
+ disabled: file.status === "uploading",
225
+ "aria-label": "\u5220\u9664\u6587\u4EF6",
226
+ children: /*#__PURE__*/_jsx(CloseOutlined, {})
227
+ })]
228
+ }, file.id);
229
+ }
230
+ })
231
+ })
232
+ })
233
+ });
234
+ };
235
+ export default FileGallery;
236
+ //# sourceMappingURL=FileGallery.js.map