@tdesign-react/chat 1.0.2-alpha.7 → 1.0.2-alpha.9

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 (227) hide show
  1. package/es/_util/reactify.d.ts +1 -2
  2. package/es/_util/reactify.js +81 -231
  3. package/es/_util/reactify.js.map +1 -1
  4. package/es/_util/useDynamicStyle.js +1 -1
  5. package/es/attachments/index.js +4 -6
  6. package/es/attachments/index.js.map +1 -1
  7. package/es/chat-actionbar/_example-js/base.d.ts +2 -0
  8. package/es/chat-actionbar/_example-js/custom.d.ts +2 -0
  9. package/es/chat-actionbar/_example-js/style.d.ts +2 -0
  10. package/es/chat-actionbar/index.js +4 -6
  11. package/es/chat-actionbar/index.js.map +1 -1
  12. package/es/chat-attachments/_example-js/base.d.ts +2 -0
  13. package/es/chat-attachments/_example-js/scroll-x.d.ts +2 -0
  14. package/es/chat-attachments/_example-js/scroll-y.d.ts +2 -0
  15. package/es/chat-attachments/index.js +3 -1
  16. package/es/chat-attachments/index.js.map +1 -1
  17. package/es/chat-engine/_example-js/agui-basic.d.ts +10 -0
  18. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +2 -0
  19. package/es/chat-engine/_example-js/agui-test.d.ts +11 -0
  20. package/es/chat-engine/_example-js/agui-toolcall.d.ts +5 -0
  21. package/es/chat-engine/_example-js/agui-videoclip.d.ts +8 -0
  22. package/es/chat-engine/_example-js/agui.d.ts +1 -0
  23. package/es/chat-engine/_example-js/basic.d.ts +9 -0
  24. package/es/chat-engine/_example-js/components/HotelCard.d.ts +3 -0
  25. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +6 -0
  26. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +3 -0
  27. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +3 -0
  28. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +4 -0
  29. package/es/chat-engine/_example-js/components/Toolcall.d.ts +4 -0
  30. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +3 -0
  31. package/es/chat-engine/_example-js/components/login.d.ts +1 -0
  32. package/es/chat-engine/_example-js/comprehensive.d.ts +12 -0
  33. package/es/chat-engine/_example-js/custom-content.d.ts +1 -0
  34. package/es/chat-engine/_example-js/hookComponent.d.ts +1 -0
  35. package/es/chat-engine/_example-js/initial-messages.d.ts +9 -0
  36. package/es/chat-engine/_example-js/instance-methods.d.ts +13 -0
  37. package/es/chat-engine/_example-js/travel-actions.d.ts +91 -0
  38. package/es/chat-engine/_example-js/travelToolcall.d.ts +1 -0
  39. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.d.ts +1 -0
  40. package/es/chat-engine/components/activity/index.js +18 -0
  41. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.js.map +1 -1
  42. package/es/chat-engine/components/activity/registry.d.ts +44 -0
  43. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/registry.js +32 -22
  44. package/es/chat-engine/components/activity/registry.js.map +1 -0
  45. package/es/chat-engine/components/activity/render.d.ts +11 -0
  46. package/es/chat-engine/components/activity/render.js +107 -0
  47. package/es/chat-engine/components/activity/render.js.map +1 -0
  48. package/es/chat-engine/components/activity/types.d.ts +32 -0
  49. package/es/chat-engine/components/activity/types.js +7 -0
  50. package/es/chat-engine/components/activity/types.js.map +1 -0
  51. package/es/chat-engine/components/index.d.ts +3 -0
  52. package/es/chat-engine/components/index.js +28 -0
  53. package/es/chat-engine/components/index.js.map +1 -0
  54. package/es/chat-engine/components/provider/agent-state.js +1 -1
  55. package/es/chat-engine/components/toolcall/index.js +4 -1
  56. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  57. package/es/chat-engine/components/toolcall/registry.js +1 -1
  58. package/es/chat-engine/components/toolcall/render.js +72 -25
  59. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  60. package/es/chat-engine/components/toolcall/types.js +1 -1
  61. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +109 -0
  62. package/es/chat-engine/core/adapters/agui/event-mapper.js +375 -0
  63. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  64. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  65. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  66. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  67. package/es/chat-engine/core/adapters/agui/index.d.ts +75 -0
  68. package/es/chat-engine/core/adapters/agui/index.js +175 -0
  69. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  70. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  71. package/es/chat-engine/core/adapters/agui/state-manager.js +168 -0
  72. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  73. package/es/chat-engine/core/adapters/agui/types.d.ts +817 -0
  74. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  75. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  76. package/es/chat-engine/core/adapters/agui/utils.d.ts +197 -0
  77. package/es/chat-engine/core/adapters/agui/utils.js +311 -0
  78. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  79. package/es/chat-engine/core/index.d.ts +132 -0
  80. package/es/chat-engine/core/index.js +597 -0
  81. package/es/chat-engine/core/index.js.map +1 -0
  82. package/es/chat-engine/core/processor/index.d.ts +20 -0
  83. package/es/chat-engine/core/processor/index.js +146 -0
  84. package/es/chat-engine/core/processor/index.js.map +1 -0
  85. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  86. package/es/chat-engine/core/server/batch-client.js +114 -0
  87. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  88. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  89. package/es/chat-engine/core/server/connection-manager.js +84 -0
  90. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  91. package/es/chat-engine/core/server/errors.d.ts +22 -0
  92. package/es/chat-engine/core/server/errors.js +80 -0
  93. package/es/chat-engine/core/server/errors.js.map +1 -0
  94. package/es/chat-engine/core/server/index.d.ts +11 -0
  95. package/es/chat-engine/core/server/index.js +26 -0
  96. package/es/chat-engine/core/server/index.js.map +1 -0
  97. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  98. package/es/chat-engine/core/server/llm-service.js +198 -0
  99. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  100. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  101. package/es/chat-engine/core/server/sse-client.js +362 -0
  102. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  103. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  104. package/es/chat-engine/core/server/sse-parser.js +116 -0
  105. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  106. package/es/chat-engine/core/server/types.d.ts +54 -0
  107. package/es/chat-engine/core/server/types.js +28 -0
  108. package/es/chat-engine/core/server/types.js.map +1 -0
  109. package/es/chat-engine/core/store/message.d.ts +27 -0
  110. package/es/chat-engine/core/store/message.js +263 -0
  111. package/es/chat-engine/core/store/message.js.map +1 -0
  112. package/es/chat-engine/core/store/model.d.ts +8 -0
  113. package/es/chat-engine/core/store/model.js +65 -0
  114. package/es/chat-engine/core/store/model.js.map +1 -0
  115. package/es/chat-engine/core/store/reactiveState.d.ts +52 -0
  116. package/es/chat-engine/core/store/reactiveState.js +1359 -0
  117. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  118. package/es/chat-engine/core/type.d.ts +255 -0
  119. package/es/chat-engine/core/type.js +7 -0
  120. package/es/chat-engine/core/type.js.map +1 -0
  121. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  122. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  123. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  124. package/es/chat-engine/core/utils/index.d.ts +33 -0
  125. package/es/chat-engine/core/utils/index.js +999 -0
  126. package/es/chat-engine/core/utils/index.js.map +1 -0
  127. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  128. package/es/chat-engine/core/utils/logger.js +87 -0
  129. package/es/chat-engine/core/utils/logger.js.map +1 -0
  130. package/es/chat-engine/hooks/index.d.ts +4 -0
  131. package/es/chat-engine/hooks/index.js +20 -0
  132. package/es/chat-engine/hooks/index.js.map +1 -0
  133. package/es/chat-engine/hooks/useAgentActivity.d.ts +16 -0
  134. package/es/chat-engine/hooks/useAgentActivity.js +73 -0
  135. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -0
  136. package/es/chat-engine/hooks/useAgentState.js +1 -1
  137. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  138. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  139. package/es/chat-engine/hooks/useChat.js +3 -3
  140. package/es/chat-engine/hooks/useChat.js.map +1 -1
  141. package/es/chat-engine/index.d.ts +3 -1
  142. package/es/chat-engine/index.js +37 -3
  143. package/es/chat-engine/index.js.map +1 -1
  144. package/es/chat-filecard/_example-js/base.d.ts +1 -0
  145. package/es/chat-filecard/index.js +4 -6
  146. package/es/chat-filecard/index.js.map +1 -1
  147. package/es/chat-loading/_example-js/base.d.ts +2 -0
  148. package/es/chat-loading/_example-js/text.d.ts +2 -0
  149. package/es/chat-loading/index.js +4 -6
  150. package/es/chat-loading/index.js.map +1 -1
  151. package/es/chat-markdown/_example-js/base.d.ts +1 -0
  152. package/es/chat-markdown/_example-js/custom.d.ts +2 -0
  153. package/es/chat-markdown/_example-js/event.d.ts +1 -0
  154. package/es/chat-markdown/_example-js/footnote.d.ts +2 -0
  155. package/es/chat-markdown/_example-js/plugin.d.ts +2 -0
  156. package/es/chat-markdown/_example-js/theme.d.ts +2 -0
  157. package/es/chat-markdown/index.js +4 -6
  158. package/es/chat-markdown/index.js.map +1 -1
  159. package/es/chat-message/_example-js/action.d.ts +1 -0
  160. package/es/chat-message/_example-js/base.d.ts +1 -0
  161. package/es/chat-message/_example-js/configure.d.ts +1 -0
  162. package/es/chat-message/_example-js/content.d.ts +1 -0
  163. package/es/chat-message/_example-js/custom.d.ts +1 -0
  164. package/es/chat-message/_example-js/handle-actions.d.ts +7 -0
  165. package/es/chat-message/_example-js/status.d.ts +1 -0
  166. package/es/chat-message/_example-js/think.d.ts +1 -0
  167. package/es/chat-message/index.js +4 -6
  168. package/es/chat-message/index.js.map +1 -1
  169. package/es/chat-sender/_example-js/attachment.d.ts +2 -0
  170. package/es/chat-sender/_example-js/base.d.ts +2 -0
  171. package/es/chat-sender/_example-js/custom.d.ts +2 -0
  172. package/es/chat-sender/index.js +4 -6
  173. package/es/chat-sender/index.js.map +1 -1
  174. package/es/chat-thinking/_example-js/base.d.ts +1 -0
  175. package/es/chat-thinking/_example-js/style.d.ts +1 -0
  176. package/es/chat-thinking/index.js +4 -6
  177. package/es/chat-thinking/index.js.map +1 -1
  178. package/es/chatbot/_example-js/agent.d.ts +1 -0
  179. package/es/chatbot/_example-js/agui.d.ts +13 -0
  180. package/es/chatbot/_example-js/backup/travel.d.ts +1 -0
  181. package/es/chatbot/_example-js/basic.d.ts +1 -0
  182. package/es/chatbot/_example-js/code.d.ts +1 -0
  183. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +3 -0
  184. package/es/chatbot/_example-js/components/login.d.ts +1 -0
  185. package/es/chatbot/_example-js/comprehensive.d.ts +1 -0
  186. package/es/chatbot/_example-js/custom-content.d.ts +1 -0
  187. package/es/chatbot/_example-js/custom-merge.d.ts +1 -0
  188. package/es/chatbot/_example-js/custom.d.ts +1 -0
  189. package/es/chatbot/_example-js/docs.d.ts +1 -0
  190. package/es/chatbot/_example-js/image.d.ts +1 -0
  191. package/es/chatbot/_example-js/initial-messages.d.ts +9 -0
  192. package/es/chatbot/_example-js/instance-methods.d.ts +14 -0
  193. package/es/chatbot/_example-js/nostream.d.ts +1 -0
  194. package/es/chatbot/_example-js/quick-start.d.ts +9 -0
  195. package/es/chatbot/_example-js/research.d.ts +1 -0
  196. package/es/chatbot/_example-js/role-message-config.d.ts +22 -0
  197. package/es/chatbot/_example-js/sender-config.d.ts +20 -0
  198. package/es/chatbot/_example-js/service-config.d.ts +17 -0
  199. package/es/chatbot/_example-js/simple.d.ts +1 -0
  200. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +5 -0
  201. package/es/chatbot/index.js +4 -6
  202. package/es/chatbot/index.js.map +1 -1
  203. package/es/index.js +37 -9
  204. package/es/index.js.map +1 -1
  205. package/es/style/index.js +1 -1
  206. package/package.json +2 -2
  207. package/es/chatbot/components/provider/agent-state.d.ts +0 -5
  208. package/es/chatbot/components/provider/agent-state.js +0 -28
  209. package/es/chatbot/components/provider/agent-state.js.map +0 -1
  210. package/es/chatbot/components/toolcall/index.js +0 -19
  211. package/es/chatbot/components/toolcall/registry.d.ts +0 -35
  212. package/es/chatbot/components/toolcall/registry.js.map +0 -1
  213. package/es/chatbot/components/toolcall/render.d.ts +0 -13
  214. package/es/chatbot/components/toolcall/render.js +0 -207
  215. package/es/chatbot/components/toolcall/render.js.map +0 -1
  216. package/es/chatbot/components/toolcall/types.d.ts +0 -57
  217. package/es/chatbot/components/toolcall/types.js +0 -15
  218. package/es/chatbot/components/toolcall/types.js.map +0 -1
  219. package/es/chatbot/hooks/useAgentState.d.ts +0 -40
  220. package/es/chatbot/hooks/useAgentState.js +0 -76
  221. package/es/chatbot/hooks/useAgentState.js.map +0 -1
  222. package/es/chatbot/hooks/useAgentToolcall.d.ts +0 -28
  223. package/es/chatbot/hooks/useAgentToolcall.js +0 -78
  224. package/es/chatbot/hooks/useAgentToolcall.js.map +0 -1
  225. package/es/chatbot/hooks/useChat.d.ts +0 -11
  226. package/es/chatbot/hooks/useChat.js +0 -66
  227. package/es/chatbot/hooks/useChat.js.map +0 -1
@@ -1,23 +1,21 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2-alpha.6
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  import 'tdesign-web-components/lib/chat-action';
8
8
  import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/defineProperty';
9
10
  import '@babel/runtime/helpers/objectWithoutProperties';
10
- import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/typeof';
12
+ import '@babel/runtime/helpers/slicedToArray';
11
13
  import '@babel/runtime/helpers/classCallCheck';
12
14
  import '@babel/runtime/helpers/createClass';
13
15
  import '@babel/runtime/helpers/possibleConstructorReturn';
14
16
  import '@babel/runtime/helpers/getPrototypeOf';
15
17
  import '@babel/runtime/helpers/inherits';
16
- import '@babel/runtime/helpers/defineProperty';
17
- import '@babel/runtime/helpers/slicedToArray';
18
- import '@babel/runtime/helpers/typeof';
19
18
  import 'react';
20
- import 'react-dom';
21
19
  import 'react-dom/client';
22
20
 
23
21
  var ChatActionBar = reactify("t-chat-action");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-actionbar/index.tsx"],"sourcesContent":["import { TdChatActionProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-action';\nimport reactify from '../_util/reactify';\n\nexport const ChatActionBar: React.ForwardRefExoticComponent<\n Omit<TdChatActionProps, 'ref'> &\n React.RefAttributes<HTMLElement | undefined> & {\n [key: string]: any;\n }\n> = reactify<TdChatActionProps>('t-chat-action');\n\nexport default ChatActionBar;\nexport type { TdChatActionProps, TdChatActionsName } from 'tdesign-web-components';\n\n// 方案1\n// import { reactifyLazy } from './_util/reactifyLazy';\n// const ChatActionBar = reactifyLazy<{\n// size: 'small' | 'medium' | 'large',\n// variant: 'primary' | 'secondary' | 'outline'\n// }>(\n// 't-chat-action',\n// 'tdesign-web-components/esm/chat-action'\n// );\n\n// import ChatAction from 'tdesign-web-components/esm/chat-action';\n// import React, { forwardRef, useEffect } from 'react';\n\n// // 注册Web Components组件\n// const registerChatAction = () => {\n// if (!customElements.get('t-chat-action')) {\n// customElements.define('t-chat-action', ChatAction);\n// }\n// };\n\n// // 在组件挂载时注册\n// const useRegisterWebComponent = () => {\n// useEffect(() => {\n// registerChatAction();\n// }, []);\n// };\n\n// // 使用reactify创建React组件\n// const BaseChatActionBar = reactify<TdChatActionProps>('t-chat-action');\n\n// // 包装组件,确保Web Components已注册\n// export const ChatActionBar2 = forwardRef<\n// HTMLElement | undefined,\n// Omit<TdChatActionProps, 'ref'> & { [key: string]: any }\n// >((props, ref) => {\n// useRegisterWebComponent();\n// return <BaseChatActionBar {...props} ref={ref} />;\n// });\n"],"names":["ChatActionBar","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,aAAA,GAKTC,SAA4B,eAAe;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-actionbar/index.tsx"],"sourcesContent":["import { TdChatActionProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-action';\nimport reactify from '../_util/reactify';\n\nexport const ChatActionBar: React.ForwardRefExoticComponent<\n Omit<TdChatActionProps, 'ref'> &\n React.RefAttributes<HTMLElement | undefined> & {\n [key: string]: any;\n }\n> = reactify<TdChatActionProps>('t-chat-action');\n\nexport default ChatActionBar;\nexport type { TdChatActionProps, TdChatActionsName } from 'tdesign-web-components';\n\n// 方案1\n// import { reactifyLazy } from './_util/reactifyLazy';\n// const ChatActionBar = reactifyLazy<{\n// size: 'small' | 'medium' | 'large',\n// variant: 'primary' | 'secondary' | 'outline'\n// }>(\n// 't-chat-action',\n// 'tdesign-web-components/esm/chat-action'\n// );\n\n// import ChatAction from 'tdesign-web-components/esm/chat-action';\n// import React, { forwardRef, useEffect } from 'react';\n\n// // 注册Web Components组件\n// const registerChatAction = () => {\n// if (!customElements.get('t-chat-action')) {\n// customElements.define('t-chat-action', ChatAction);\n// }\n// };\n\n// // 在组件挂载时注册\n// const useRegisterWebComponent = () => {\n// useEffect(() => {\n// registerChatAction();\n// }, []);\n// };\n\n// // 使用reactify创建React组件\n// const BaseChatActionBar = reactify<TdChatActionProps>('t-chat-action');\n\n// // 包装组件,确保Web Components已注册\n// export const ChatActionBar2 = forwardRef<\n// HTMLElement | undefined,\n// Omit<TdChatActionProps, 'ref'> & { [key: string]: any }\n// >((props, ref) => {\n// useRegisterWebComponent();\n// return <BaseChatActionBar {...props} ref={ref} />;\n// });\n"],"names":["ChatActionBar","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;IAIaA,aAAA,GAKTC,SAA4B,eAAe;;;;"}
@@ -0,0 +1,2 @@
1
+ export default ChatAttachmentExample;
2
+ declare function ChatAttachmentExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatAttachmentExample;
2
+ declare function ChatAttachmentExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatAttachmentExample;
2
+ declare function ChatAttachmentExample(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.0-beta.4
2
+ * tdesign v1.0.1
3
3
  * (c) 2025 tdesign
4
4
  * @license MIT
5
5
  */
@@ -17,6 +17,8 @@ import '@babel/runtime/helpers/defineProperty';
17
17
  import '@babel/runtime/helpers/slicedToArray';
18
18
  import '@babel/runtime/helpers/typeof';
19
19
  import 'react';
20
+ import 'react-dom';
21
+ import 'react-dom/client';
20
22
 
21
23
  var Attachments = reactify("t-attachments");
22
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-attachments/index.ts"],"sourcesContent":["import { TdAttachmentsProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/attachments';\nimport reactify from '../_util/reactify';\n\nexport const Attachments: React.ForwardRefExoticComponent<\n Omit<TdAttachmentsProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdAttachmentsProps>('t-attachments');\n\nexport default Attachments;\n\nexport type { TdAttachmentsProps, TdAttachmentItem } from 'tdesign-web-components';\n"],"names":["Attachments","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,eAAe;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-attachments/index.ts"],"sourcesContent":["import { TdAttachmentsProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/attachments';\nimport reactify from '../_util/reactify';\n\nexport const Attachments: React.ForwardRefExoticComponent<\n Omit<TdAttachmentsProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdAttachmentsProps>('t-attachments');\n\nexport default Attachments;\n\nexport type { TdAttachmentsProps, TdAttachmentItem } from 'tdesign-web-components';\n"],"names":["Attachments","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,eAAe;;;;"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * AG-UI 协议基础示例
3
+ *
4
+ * 学习目标:
5
+ * - 开启 AG-UI 协议支持(protocol: 'agui')
6
+ * - 理解 AG-UI 协议的自动解析机制
7
+ * - 处理文本消息事件(TEXT_MESSAGE_*)
8
+ * - 初始化加载历史消息方法 AGUIAdapter.convertHistoryMessages
9
+ */
10
+ export default function AguiBasicExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default TravelPlannerContent;
2
+ declare function TravelPlannerContent(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AG-UI 协议基础示例
3
+ *
4
+ * 学习目标:
5
+ * - 开启 AG-UI 协议支持(protocol: 'agui')
6
+ * - 理解 AG-UI 协议的自动解析机制
7
+ * - 处理文本消息事件(TEXT_MESSAGE_*)
8
+ * - 初始化加载历史消息方法 AGUIAdapter.convertHistoryMessages
9
+ * - 调试 ToolCall 组件状态问题
10
+ */
11
+ export default function AguiBasicExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 图片生成 Agent 聊天组件
3
+ * 演示如何使用 useAgentToolcall 和 useAgentState 实现工具调用和状态订阅
4
+ */
5
+ export default function ImageGenAgentChat(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 使用状态订阅机制的视频剪辑Agent聊天组件
3
+ * 演示如何结合状态订阅和工具调用功能
4
+ */
5
+ export default function VideoClipAgentChatWithSubscription(): import("react/jsx-runtime").JSX.Element;
6
+ export function VideoClipSteps({ boundStateKey }: {
7
+ boundStateKey: any;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ComponentsBuild(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 快速开始示例
3
+ *
4
+ * 学习目标:
5
+ * - 使用 useChat Hook 创建聊天引擎
6
+ * - 组合 ChatList、ChatMessage、ChatSender 组件
7
+ * - 理解 chatEngine、messages、status 的作用
8
+ */
9
+ export default function BasicExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function HotelCard({ hotels }: {
2
+ hotels: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export function HumanInputForm({ formConfig, onSubmit, onCancel, disabled }: {
2
+ formConfig: any;
3
+ onSubmit: any;
4
+ onCancel: any;
5
+ disabled?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function HumanInputResult({ userInput }: {
2
+ userInput: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function ItineraryCard({ plan }: {
2
+ plan: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export function PlanningStatePanel({ className, currentStep }: {
2
+ className: any;
3
+ currentStep: any;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export default function CustomToolCallRenderer({ toolCall, status }: {
2
+ toolCall: any;
3
+ status?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function WeatherCard({ weather }: {
2
+ weather: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function BaseForm(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 综合示例
3
+ *
4
+ * 本示例展示如何综合使用多个功能:
5
+ * - 初始消息和建议问题
6
+ * - 消息配置(样式、操作按钮)
7
+ * - 数据转换(思考过程、搜索结果、文本)
8
+ * - 请求配置(自定义参数)
9
+ * - 实例方法(重新生成、填充提示语)
10
+ * - 自定义插槽(输入框底部区域)
11
+ */
12
+ export default function Comprehensive(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function CustomContent(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ComponentsBuild(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 初始化消息示例
3
+ *
4
+ * 学习目标:
5
+ * - 使用 defaultMessages 设置欢迎语和建议问题
6
+ * - 通过 chatEngine.setMessages 动态加载历史消息
7
+ * - 实现点击建议问题填充输入框
8
+ */
9
+ export default function InitialMessages(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 实例方法示例
3
+ *
4
+ * 学习目标:
5
+ * - 通过 chatEngine 调用实例方法
6
+ * - 了解各种实例方法的使用场景
7
+ *
8
+ * 方法分类:
9
+ * 1. 消息设置:sendUserMessage、sendSystemMessage、setMessages
10
+ * 2. 发送控制: regenerateAIMessage、abortChat
11
+ * 3. 获取状态
12
+ */
13
+ export default function InstanceMethods(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,91 @@
1
+ export namespace weatherForecastAction {
2
+ export let name: string;
3
+ export let description: string;
4
+ export let parameters: {
5
+ name: string;
6
+ type: string;
7
+ required: boolean;
8
+ }[];
9
+ export { WeatherDisplay as component };
10
+ }
11
+ export namespace itineraryPlanAction {
12
+ let name_1: string;
13
+ export { name_1 as name };
14
+ let description_1: string;
15
+ export { description_1 as description };
16
+ let parameters_1: {
17
+ name: string;
18
+ type: string;
19
+ required: boolean;
20
+ }[];
21
+ export { parameters_1 as parameters };
22
+ export { PlanItinerary as component };
23
+ export function handler(args: any, backendResult: any): Promise<any>;
24
+ }
25
+ export namespace hotelRecommendAction {
26
+ let name_2: string;
27
+ export { name_2 as name };
28
+ let description_2: string;
29
+ export { description_2 as description };
30
+ let parameters_2: {
31
+ name: string;
32
+ type: string;
33
+ required: boolean;
34
+ }[];
35
+ export { parameters_2 as parameters };
36
+ export { HotelRecommend as component };
37
+ }
38
+ export namespace travelPreferencesAction {
39
+ let name_3: string;
40
+ export { name_3 as name };
41
+ let description_3: string;
42
+ export { description_3 as description };
43
+ let parameters_3: {
44
+ name: string;
45
+ type: string;
46
+ required: boolean;
47
+ }[];
48
+ export { parameters_3 as parameters };
49
+ export { TravelPreferences as component };
50
+ }
51
+ export const travelActions: {
52
+ name: string;
53
+ description: string;
54
+ parameters: {
55
+ name: string;
56
+ type: string;
57
+ required: boolean;
58
+ }[];
59
+ component: ({ status, args, result, error }: {
60
+ status: any;
61
+ args: any;
62
+ result: any;
63
+ error: any;
64
+ }) => import("react/jsx-runtime").JSX.Element;
65
+ }[];
66
+ declare function WeatherDisplay({ status, args, result, error }: {
67
+ status: any;
68
+ args: any;
69
+ result: any;
70
+ error: any;
71
+ }): import("react/jsx-runtime").JSX.Element;
72
+ declare function PlanItinerary({ status, args, result, error }: {
73
+ status: any;
74
+ args: any;
75
+ result: any;
76
+ error: any;
77
+ }): import("react/jsx-runtime").JSX.Element;
78
+ declare function HotelRecommend({ status, args, result, error }: {
79
+ status: any;
80
+ args: any;
81
+ result: any;
82
+ error: any;
83
+ }): import("react/jsx-runtime").JSX.Element;
84
+ declare function TravelPreferences({ status, args, result, error, respond }: {
85
+ status: any;
86
+ args: any;
87
+ result: any;
88
+ error: any;
89
+ respond: any;
90
+ }): import("react/jsx-runtime").JSX.Element;
91
+ export {};
@@ -0,0 +1 @@
1
+ export default function TravelPlannerChat(): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './registry';
3
3
  export * from './render';
4
+ export { activityRegistry } from './registry';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import './types.js';
8
+ export { activityRegistry } from './registry.js';
9
+ export { ActivityRenderer } from './render.js';
10
+ import '@babel/runtime/helpers/classCallCheck';
11
+ import '@babel/runtime/helpers/createClass';
12
+ import '@babel/runtime/helpers/defineProperty';
13
+ import 'react';
14
+ import '@babel/runtime/helpers/slicedToArray';
15
+ import '@babel/runtime/helpers/possibleConstructorReturn';
16
+ import '@babel/runtime/helpers/getPrototypeOf';
17
+ import '@babel/runtime/helpers/inherits';
18
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import type { ActivityConfig, ActivityRegistry, ActivityComponentProps } from './types';
3
+ /**
4
+ * Activity 注册表管理器
5
+ * 参考 AgentToolcallRegistryManager 的设计,但简化了复杂的状态管理
6
+ */
7
+ declare class ActivityRegistryManager {
8
+ private registry;
9
+ private renderFunctionCache;
10
+ /**
11
+ * 注册一个 Activity 配置
12
+ */
13
+ register<TContent = any>(config: ActivityConfig<TContent>): void;
14
+ /**
15
+ * 获取指定类型的 Activity 配置
16
+ */
17
+ get(activityType: string): ActivityConfig | undefined;
18
+ /**
19
+ * 获取或创建缓存的组件渲染函数
20
+ */
21
+ getRenderFunction(activityType: string): React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>> | null;
22
+ /**
23
+ * 获取所有已注册的 Activity 配置
24
+ */
25
+ getAll(): ActivityRegistry;
26
+ /**
27
+ * 取消注册指定的 Activity
28
+ */
29
+ unregister(activityType: string): void;
30
+ /**
31
+ * 清空所有注册的 Activity
32
+ */
33
+ clear(): void;
34
+ /**
35
+ * 检查指定类型是否已注册
36
+ */
37
+ has(activityType: string): boolean;
38
+ /**
39
+ * 获取所有已注册的 Activity 类型
40
+ */
41
+ getRegisteredTypes(): string[];
42
+ }
43
+ export declare const activityRegistry: ActivityRegistryManager;
44
+ export {};
@@ -1,6 +1,6 @@
1
1
  /**
2
- * tdesign v1.0.0-beta.4
3
- * (c) 2025 tdesign
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
@@ -11,42 +11,42 @@ import React from 'react';
11
11
 
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
- var AgentToolcallRegistryManager = /*#__PURE__*/function () {
15
- function AgentToolcallRegistryManager() {
16
- _classCallCheck(this, AgentToolcallRegistryManager);
14
+ var ActivityRegistryManager = /*#__PURE__*/function () {
15
+ function ActivityRegistryManager() {
16
+ _classCallCheck(this, ActivityRegistryManager);
17
17
  _defineProperty(this, "registry", {});
18
18
  _defineProperty(this, "renderFunctionCache", /* @__PURE__ */new Map());
19
19
  }
20
- return _createClass(AgentToolcallRegistryManager, [{
20
+ return _createClass(ActivityRegistryManager, [{
21
21
  key: "register",
22
22
  value: function register(config) {
23
- var existingConfig = this.registry[config.name];
23
+ var existingConfig = this.registry[config.activityType];
24
24
  if (existingConfig && existingConfig.component !== config.component) {
25
- this.renderFunctionCache["delete"](config.name);
25
+ this.renderFunctionCache["delete"](config.activityType);
26
26
  }
27
- this.registry[config.name] = config;
28
- window.dispatchEvent(new CustomEvent("toolcall-registered", {
27
+ this.registry[config.activityType] = config;
28
+ window.dispatchEvent(new CustomEvent("activity-registered", {
29
29
  detail: {
30
- name: config.name
30
+ activityType: config.activityType
31
31
  }
32
32
  }));
33
33
  }
34
34
  }, {
35
35
  key: "get",
36
- value: function get(name) {
37
- return this.registry[name];
36
+ value: function get(activityType) {
37
+ return this.registry[activityType];
38
38
  }
39
39
  }, {
40
40
  key: "getRenderFunction",
41
- value: function getRenderFunction(name) {
42
- var config = this.registry[name];
41
+ value: function getRenderFunction(activityType) {
42
+ var config = this.registry[activityType];
43
43
  if (!config) return null;
44
- var memoizedComponent = this.renderFunctionCache.get(name);
44
+ var memoizedComponent = this.renderFunctionCache.get(activityType);
45
45
  if (!memoizedComponent) {
46
46
  memoizedComponent = /*#__PURE__*/React.memo(function (props) {
47
47
  return /*#__PURE__*/React.createElement(config.component, props);
48
48
  });
49
- this.renderFunctionCache.set(name, memoizedComponent);
49
+ this.renderFunctionCache.set(activityType, memoizedComponent);
50
50
  }
51
51
  return memoizedComponent;
52
52
  }
@@ -57,9 +57,9 @@ var AgentToolcallRegistryManager = /*#__PURE__*/function () {
57
57
  }
58
58
  }, {
59
59
  key: "unregister",
60
- value: function unregister(name) {
61
- delete this.registry[name];
62
- this.renderFunctionCache["delete"](name);
60
+ value: function unregister(activityType) {
61
+ delete this.registry[activityType];
62
+ this.renderFunctionCache["delete"](activityType);
63
63
  }
64
64
  }, {
65
65
  key: "clear",
@@ -67,9 +67,19 @@ var AgentToolcallRegistryManager = /*#__PURE__*/function () {
67
67
  this.registry = {};
68
68
  this.renderFunctionCache.clear();
69
69
  }
70
+ }, {
71
+ key: "has",
72
+ value: function has(activityType) {
73
+ return activityType in this.registry;
74
+ }
75
+ }, {
76
+ key: "getRegisteredTypes",
77
+ value: function getRegisteredTypes() {
78
+ return Object.keys(this.registry);
79
+ }
70
80
  }]);
71
81
  }();
72
- var agentToolcallRegistry = new AgentToolcallRegistryManager();
82
+ var activityRegistry = new ActivityRegistryManager();
73
83
 
74
- export { agentToolcallRegistry };
84
+ export { activityRegistry };
75
85
  //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/activity/registry.ts"],"sourcesContent":["import React from 'react';\nimport type { ActivityConfig, ActivityRegistry, ActivityComponentProps } from './types';\n\n/**\n * Activity 注册表管理器\n * 参考 AgentToolcallRegistryManager 的设计,但简化了复杂的状态管理\n */\nclass ActivityRegistryManager {\n private registry: ActivityRegistry = {};\n\n // 组件渲染函数缓存,避免重复创建 React 组件\n private renderFunctionCache = new Map<\n string,\n React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>>\n >();\n\n /**\n * 注册一个 Activity 配置\n */\n register<TContent = any>(config: ActivityConfig<TContent>): void {\n const existingConfig = this.registry[config.activityType];\n\n // 如果组件发生变化,清除旧的缓存\n if (existingConfig && existingConfig.component !== config.component) {\n this.renderFunctionCache.delete(config.activityType);\n }\n\n this.registry[config.activityType] = config;\n\n // 触发注册事件,支持动态注册\n window.dispatchEvent(\n new CustomEvent('activity-registered', {\n detail: { activityType: config.activityType },\n }),\n );\n }\n\n /**\n * 获取指定类型的 Activity 配置\n */\n get(activityType: string): ActivityConfig | undefined {\n return this.registry[activityType];\n }\n\n /**\n * 获取或创建缓存的组件渲染函数\n */\n getRenderFunction(activityType: string): React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>> | null {\n const config = this.registry[activityType];\n if (!config) return null;\n\n // 检查缓存\n let memoizedComponent = this.renderFunctionCache.get(activityType);\n\n if (!memoizedComponent) {\n // 创建 memo 化的组件\n memoizedComponent = React.memo((props: ActivityComponentProps) => \n React.createElement(config.component, props)\n );\n\n // 缓存组件\n this.renderFunctionCache.set(activityType, memoizedComponent);\n }\n\n return memoizedComponent;\n }\n\n /**\n * 获取所有已注册的 Activity 配置\n */\n getAll(): ActivityRegistry {\n return { ...this.registry };\n }\n\n /**\n * 取消注册指定的 Activity\n */\n unregister(activityType: string): void {\n delete this.registry[activityType];\n this.renderFunctionCache.delete(activityType);\n }\n\n /**\n * 清空所有注册的 Activity\n */\n clear(): void {\n this.registry = {};\n this.renderFunctionCache.clear();\n }\n\n /**\n * 检查指定类型是否已注册\n */\n has(activityType: string): boolean {\n return activityType in this.registry;\n }\n\n /**\n * 获取所有已注册的 Activity 类型\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.registry);\n }\n}\n\n// 导出单例实例\nexport const activityRegistry = new ActivityRegistryManager();"],"names":["ActivityRegistryManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","register","config","existingConfig","registry","activityType","component","renderFunctionCache","window","dispatchEvent","CustomEvent","detail","get","getRenderFunction","memoizedComponent","React","memo","props","createElement","set","getAll","_objectSpread","unregister","clear","has","getRegisteredTypes","Object","keys","activityRegistry"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { type ActivityData } from 'tdesign-web-components/lib/chat-engine';
3
+ interface ActivityRendererProps {
4
+ activity: ActivityData;
5
+ }
6
+ /**
7
+ * Activity 渲染器组件
8
+ * 根据 activityType 查找注册的组件进行渲染
9
+ */
10
+ export declare const ActivityRenderer: React.NamedExoticComponent<ActivityRendererProps>;
11
+ export {};
@@ -0,0 +1,107 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
9
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
10
+ import _createClass from '@babel/runtime/helpers/createClass';
11
+ import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
12
+ import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
13
+ import _inherits from '@babel/runtime/helpers/inherits';
14
+ import React, { Component, useState, useMemo, useEffect } from 'react';
15
+ import { activityRegistry } from './registry.js';
16
+
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var ActivityErrorBoundary = /*#__PURE__*/function (_Component) {
22
+ function ActivityErrorBoundary(props) {
23
+ var _this;
24
+ _classCallCheck(this, ActivityErrorBoundary);
25
+ _this = _callSuper(this, ActivityErrorBoundary, [props]);
26
+ _this.state = {
27
+ hasError: false,
28
+ error: null
29
+ };
30
+ return _this;
31
+ }
32
+ _inherits(ActivityErrorBoundary, _Component);
33
+ return _createClass(ActivityErrorBoundary, [{
34
+ key: "componentDidCatch",
35
+ value: function componentDidCatch(error, errorInfo) {
36
+ console.error("[ActivityRenderer] Error in activity \"".concat(this.props.activityType, "\":"), error, errorInfo);
37
+ }
38
+ }, {
39
+ key: "render",
40
+ value: function render() {
41
+ if (this.state.hasError) {
42
+ return null;
43
+ }
44
+ return this.props.children;
45
+ }
46
+ }], [{
47
+ key: "getDerivedStateFromError",
48
+ value: function getDerivedStateFromError(error) {
49
+ return {
50
+ hasError: true,
51
+ error: error
52
+ };
53
+ }
54
+ }]);
55
+ }(Component);
56
+ var DefaultActivityRenderer = function DefaultActivityRenderer(_ref) {
57
+ var activity = _ref.activity;
58
+ console.warn("[ActivityRenderer] Unknown activity type: ".concat(activity.activityType), activity.content);
59
+ return null;
60
+ };
61
+ var ActivityRenderer = /*#__PURE__*/React.memo(function (_ref2) {
62
+ var activity = _ref2.activity;
63
+ var _useState = useState(function () {
64
+ return !!activityRegistry.getRenderFunction(activity.activityType);
65
+ }),
66
+ _useState2 = _slicedToArray(_useState, 2),
67
+ isRegistered = _useState2[0],
68
+ setIsRegistered = _useState2[1];
69
+ var componentProps = useMemo(function () {
70
+ return {
71
+ activityType: activity.activityType,
72
+ content: activity.content,
73
+ messageId: activity.messageId || ""
74
+ };
75
+ }, [activity.activityType, activity.content, activity.messageId]);
76
+ useEffect(function () {
77
+ if (!isRegistered) {
78
+ var handleRegistered = function handleRegistered(event) {
79
+ var _event$detail;
80
+ if (((_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.activityType) === activity.activityType) {
81
+ setIsRegistered(true);
82
+ }
83
+ };
84
+ window.addEventListener("activity-registered", handleRegistered);
85
+ return function () {
86
+ window.removeEventListener("activity-registered", handleRegistered);
87
+ };
88
+ }
89
+ }, [activity.activityType, isRegistered]);
90
+ var MemoizedComponent = useMemo(function () {
91
+ return activityRegistry.getRenderFunction(activity.activityType);
92
+ }, [activity.activityType, isRegistered]);
93
+ if (!MemoizedComponent) {
94
+ return /* @__PURE__ */React.createElement(DefaultActivityRenderer, {
95
+ activity: activity
96
+ });
97
+ }
98
+ return /* @__PURE__ */React.createElement(ActivityErrorBoundary, {
99
+ activityType: activity.activityType
100
+ }, /* @__PURE__ */React.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
101
+ }, function (prevProps, nextProps) {
102
+ return prevProps.activity.activityType === nextProps.activity.activityType && prevProps.activity.messageId === nextProps.activity.messageId && JSON.stringify(prevProps.activity.content) === JSON.stringify(nextProps.activity.content);
103
+ });
104
+ ActivityRenderer.displayName = "ActivityRenderer";
105
+
106
+ export { ActivityRenderer };
107
+ //# sourceMappingURL=render.js.map