@tdesign-react/chat 1.0.2 → 1.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-1007ac80.js +205 -0
  4. package/es/_chunks/dep-1007ac80.js.map +1 -0
  5. package/es/_chunks/dep-16520c2b.js +1247 -0
  6. package/es/_chunks/dep-16520c2b.js.map +1 -0
  7. package/es/_chunks/dep-1743bd61.js +438 -0
  8. package/es/_chunks/dep-1743bd61.js.map +1 -0
  9. package/es/_chunks/dep-24472232.js +839 -0
  10. package/es/_chunks/dep-24472232.js.map +1 -0
  11. package/es/_chunks/dep-3864b369.js +839 -0
  12. package/es/_chunks/dep-3864b369.js.map +1 -0
  13. package/es/_chunks/dep-3e40d789.js +169 -0
  14. package/es/_chunks/dep-3e40d789.js.map +1 -0
  15. package/es/_chunks/dep-4dedfbef.js +438 -0
  16. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  17. package/es/_chunks/dep-56f5e08e.js +448 -0
  18. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  19. package/es/_chunks/dep-688e4aaa.js +438 -0
  20. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  21. package/es/_chunks/dep-870f0d35.js +839 -0
  22. package/es/_chunks/dep-870f0d35.js.map +1 -0
  23. package/es/_chunks/dep-96eca06f.js +169 -0
  24. package/es/_chunks/dep-96eca06f.js.map +1 -0
  25. package/es/_chunks/dep-ba3bd553.js +169 -0
  26. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  27. package/es/_chunks/dep-bcb234a1.js +839 -0
  28. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  29. package/es/_chunks/dep-de8ac730.js +1247 -0
  30. package/es/_chunks/dep-de8ac730.js.map +1 -0
  31. package/es/_chunks/dep-e9dbff09.js +1247 -0
  32. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  33. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  34. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  35. package/es/_chunks/dep-f2051ebd.js +839 -0
  36. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  37. package/es/_chunks/dep-f691a67e.js +438 -0
  38. package/es/_chunks/dep-f691a67e.js.map +1 -0
  39. package/es/_chunks/dep-f8016301.js +169 -0
  40. package/es/_chunks/dep-f8016301.js.map +1 -0
  41. package/es/_util/reactify.d.ts +1 -2
  42. package/es/_util/reactify.js +103 -233
  43. package/es/_util/reactify.js.map +1 -1
  44. package/es/_util/useDynamicStyle.js +1 -1
  45. package/es/attachments/index.js +4 -6
  46. package/es/attachments/index.js.map +1 -1
  47. package/es/chat-actionbar/index.d.ts +13 -4
  48. package/es/chat-actionbar/index.js +37 -9
  49. package/es/chat-actionbar/index.js.map +1 -1
  50. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  51. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  52. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  53. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  54. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  55. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  56. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  57. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  58. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  59. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  60. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  61. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  62. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  63. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  64. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  65. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  66. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  67. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  68. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  80. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  81. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  82. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  83. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  84. package/es/chat-engine/components/a2ui/index.js +62 -0
  85. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  86. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  87. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  88. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  89. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  122. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  123. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  124. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  125. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  126. package/es/chat-engine/components/a2ui/registry.js +74 -0
  127. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  128. package/es/chat-engine/components/activity/index.d.ts +1 -0
  129. package/es/chat-engine/components/activity/index.js +3 -2
  130. package/es/chat-engine/components/activity/index.js.map +1 -1
  131. package/es/chat-engine/components/activity/registry.js +1 -1
  132. package/es/chat-engine/components/activity/render.d.ts +1 -1
  133. package/es/chat-engine/components/activity/render.js +4 -3
  134. package/es/chat-engine/components/activity/render.js.map +1 -1
  135. package/es/chat-engine/components/activity/types.js +1 -1
  136. package/es/chat-engine/components/index.d.ts +1 -0
  137. package/es/chat-engine/components/index.js +62 -5
  138. package/es/chat-engine/components/index.js.map +1 -1
  139. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  140. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  141. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  142. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  143. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  144. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  145. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  146. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  147. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  148. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  149. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  150. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  151. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  154. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  155. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  156. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  157. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  158. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  159. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  160. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  163. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  164. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  165. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  166. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  178. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  179. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  180. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  181. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  182. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  183. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  184. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  185. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  186. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  187. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  188. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  189. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  190. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  191. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  192. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  193. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  194. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  195. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  196. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  197. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  198. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  199. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  200. package/es/chat-engine/components/json-render/catalog.js +779 -0
  201. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  202. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  203. package/es/chat-engine/components/json-render/config.js +36 -0
  204. package/es/chat-engine/components/json-render/config.js.map +1 -0
  205. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  206. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  207. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  208. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  209. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  210. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  211. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  212. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  213. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  214. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  215. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  216. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  217. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  218. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  219. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  220. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  221. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  222. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  223. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  224. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  225. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  226. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  227. package/es/chat-engine/components/json-render/engine.js +88 -0
  228. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  229. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  230. package/es/chat-engine/components/json-render/index.js +76 -0
  231. package/es/chat-engine/components/json-render/index.js.map +1 -0
  232. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  233. package/es/chat-engine/components/json-render/performance.js +135 -0
  234. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  235. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  236. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  237. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  238. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  241. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  242. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  243. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  244. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  245. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  246. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  247. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  248. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  249. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  250. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  251. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  252. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  253. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  256. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  257. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  258. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  259. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  260. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  261. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  262. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  263. package/es/chat-engine/components/json-render/renderer.js +124 -0
  264. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  265. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  266. package/es/chat-engine/components/json-render/types.js +7 -0
  267. package/es/chat-engine/components/json-render/types.js.map +1 -0
  268. package/es/chat-engine/components/provider/agent-state.js +48 -2
  269. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  270. package/es/chat-engine/components/toolcall/index.js +41 -2
  271. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  272. package/es/chat-engine/components/toolcall/registry.js +1 -1
  273. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  274. package/es/chat-engine/components/toolcall/render.js +41 -2
  275. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  276. package/es/chat-engine/components/toolcall/types.js +1 -1
  277. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  278. package/es/chat-engine/core/a2ui/index.js +24 -0
  279. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  280. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  281. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  282. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  283. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  284. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  285. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  286. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  287. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  288. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  289. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  290. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  291. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  292. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  293. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  294. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  295. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  296. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  297. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  298. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  299. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  300. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  301. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  302. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  303. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  304. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  305. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  306. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  307. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  308. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  309. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  310. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  311. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  312. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  313. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  314. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  315. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  316. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  317. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  318. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  319. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  320. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  321. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  322. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  323. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  324. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  325. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  326. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  327. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  328. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  329. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  330. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  331. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  332. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  333. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  334. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  335. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  336. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  337. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  338. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  339. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  340. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  341. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  342. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  343. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  344. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  345. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  346. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
  347. package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
  348. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  349. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  350. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  351. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  352. package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
  353. package/es/chat-engine/core/adapters/agui/index.js +200 -0
  354. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  355. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  356. package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
  357. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  358. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  359. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  360. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  361. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  362. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  363. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  364. package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
  365. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  366. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  367. package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
  368. package/es/chat-engine/core/adapters/agui/utils.js +330 -0
  369. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  370. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  371. package/es/chat-engine/core/adapters/index.js +34 -0
  372. package/es/chat-engine/core/adapters/index.js.map +1 -0
  373. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  374. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  375. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  376. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  377. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  378. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  379. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  380. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  381. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  382. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  383. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  384. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  385. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  386. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  387. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  388. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  389. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  390. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  391. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  392. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  393. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  394. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  395. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  396. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  397. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  398. package/es/chat-engine/core/event-bus/index.js +13 -0
  399. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  400. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  401. package/es/chat-engine/core/event-bus/types.js +32 -0
  402. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  403. package/es/chat-engine/core/index.d.ts +147 -0
  404. package/es/chat-engine/core/index.js +760 -0
  405. package/es/chat-engine/core/index.js.map +1 -0
  406. package/es/chat-engine/core/processor/index.d.ts +20 -0
  407. package/es/chat-engine/core/processor/index.js +146 -0
  408. package/es/chat-engine/core/processor/index.js.map +1 -0
  409. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  410. package/es/chat-engine/core/server/batch-client.js +114 -0
  411. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  412. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  413. package/es/chat-engine/core/server/connection-manager.js +84 -0
  414. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  415. package/es/chat-engine/core/server/errors.d.ts +22 -0
  416. package/es/chat-engine/core/server/errors.js +80 -0
  417. package/es/chat-engine/core/server/errors.js.map +1 -0
  418. package/es/chat-engine/core/server/index.d.ts +11 -0
  419. package/es/chat-engine/core/server/index.js +26 -0
  420. package/es/chat-engine/core/server/index.js.map +1 -0
  421. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  422. package/es/chat-engine/core/server/llm-service.js +200 -0
  423. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  424. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  425. package/es/chat-engine/core/server/sse-client.js +362 -0
  426. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  427. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  428. package/es/chat-engine/core/server/sse-parser.js +116 -0
  429. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  430. package/es/chat-engine/core/server/types.d.ts +54 -0
  431. package/es/chat-engine/core/server/types.js +28 -0
  432. package/es/chat-engine/core/server/types.js.map +1 -0
  433. package/es/chat-engine/core/store/message.d.ts +27 -0
  434. package/es/chat-engine/core/store/message.js +267 -0
  435. package/es/chat-engine/core/store/message.js.map +1 -0
  436. package/es/chat-engine/core/store/model.d.ts +8 -0
  437. package/es/chat-engine/core/store/model.js +66 -0
  438. package/es/chat-engine/core/store/model.js.map +1 -0
  439. package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
  440. package/es/chat-engine/core/store/reactiveState.js +139 -0
  441. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  442. package/es/chat-engine/core/type.d.ts +279 -0
  443. package/es/chat-engine/core/type.js +7 -0
  444. package/es/chat-engine/core/type.js.map +1 -0
  445. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  446. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  447. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  448. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  449. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  450. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  451. package/es/chat-engine/core/utils/index.d.ts +38 -0
  452. package/es/chat-engine/core/utils/index.js +125 -0
  453. package/es/chat-engine/core/utils/index.js.map +1 -0
  454. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  455. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  456. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  457. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  458. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  459. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  460. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  461. package/es/chat-engine/core/utils/logger.js +87 -0
  462. package/es/chat-engine/core/utils/logger.js.map +1 -0
  463. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  464. package/es/chat-engine/core/utils/performance.js +205 -0
  465. package/es/chat-engine/core/utils/performance.js.map +1 -0
  466. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  467. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  468. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  469. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  470. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  471. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  472. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  473. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  474. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  475. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  476. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  477. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  478. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  479. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  480. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  481. package/es/chat-engine/hooks/index.js +47 -4
  482. package/es/chat-engine/hooks/index.js.map +1 -1
  483. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  484. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  485. package/es/chat-engine/hooks/useAgentState.js +48 -2
  486. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  487. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  488. package/es/chat-engine/hooks/useChat.d.ts +2 -2
  489. package/es/chat-engine/hooks/useChat.js +50 -3
  490. package/es/chat-engine/hooks/useChat.js.map +1 -1
  491. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  492. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  493. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  494. package/es/chat-engine/index.d.ts +1 -1
  495. package/es/chat-engine/index.js +61 -5
  496. package/es/chat-engine/index.js.map +1 -1
  497. package/es/chat-filecard/index.js +4 -6
  498. package/es/chat-filecard/index.js.map +1 -1
  499. package/es/chat-loading/index.js +4 -6
  500. package/es/chat-loading/index.js.map +1 -1
  501. package/es/chat-markdown/index.js +4 -6
  502. package/es/chat-markdown/index.js.map +1 -1
  503. package/es/chat-message/index.js +4 -6
  504. package/es/chat-message/index.js.map +1 -1
  505. package/es/chat-sender/index.js +4 -6
  506. package/es/chat-sender/index.js.map +1 -1
  507. package/es/chat-thinking/index.js +4 -6
  508. package/es/chat-thinking/index.js.map +1 -1
  509. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  510. package/es/chatbot/index.js +4 -6
  511. package/es/chatbot/index.js.map +1 -1
  512. package/es/index.js +63 -10
  513. package/es/index.js.map +1 -1
  514. package/es/style/index.js +1 -1
  515. package/package.json +19 -15
  516. package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
@@ -0,0 +1,271 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.9
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import React, { useEffect, useState, useMemo, useCallback } from 'react';
9
+ import '../../../core/index.js';
10
+ import { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer.js';
11
+ import { surfaceStateManager } from '../../../core/adapters/json-render/SurfaceStateManager.js';
12
+ import { convertA2UIMessagesToJsonRender } from '../../../core/adapters/json-render/a2ui-to-jsonrender.js';
13
+ import '@babel/runtime/helpers/objectWithoutProperties';
14
+ import '@babel/runtime/helpers/asyncToGenerator';
15
+ import '@babel/runtime/helpers/classCallCheck';
16
+ import '@babel/runtime/helpers/createClass';
17
+ import '@babel/runtime/helpers/defineProperty';
18
+ import '@babel/runtime/regenerator';
19
+ import '../../../core/adapters/agui/index.js';
20
+ import '@babel/runtime/helpers/toConsumableArray';
21
+ import '../../../core/adapters/agui/event-mapper.js';
22
+ import '../../../core/adapters/agui/types/index.js';
23
+ import 'zod';
24
+ import '@babel/runtime/helpers/possibleConstructorReturn';
25
+ import '@babel/runtime/helpers/getPrototypeOf';
26
+ import '@babel/runtime/helpers/inherits';
27
+ import '@babel/runtime/helpers/wrapNativeSuper';
28
+ import '../../../core/adapters/agui/StateManager.js';
29
+ import '@babel/runtime/helpers/typeof';
30
+ import '../../../core/utils/index.js';
31
+ import '../../../core/utils/immutable-patch.js';
32
+ import '@babel/runtime/helpers/toArray';
33
+ import '../../../core/adapters/agui/ActivityManager.js';
34
+ import '../../../core/adapters/agui/utils.js';
35
+ import '../../../core/store/message.js';
36
+ import '@babel/runtime/helpers/get';
37
+ import '../../../core/store/reactiveState.js';
38
+ import '../../../../_chunks/dep-de8ac730.js';
39
+ import '../../../core/event-bus/index.js';
40
+ import '../../../core/event-bus/ChatEventBus.js';
41
+ import '../../../core/event-bus/types.js';
42
+ import '../../../core/processor/index.js';
43
+ import '../../../core/server/index.js';
44
+ import '../../../core/server/llm-service.js';
45
+ import '../../../core/utils/logger.js';
46
+ import '../../../core/server/batch-client.js';
47
+ import '../../../core/utils/eventEmitter.js';
48
+ import '../../../core/server/errors.js';
49
+ import '../../../core/server/sse-client.js';
50
+ import '../../../core/server/connection-manager.js';
51
+ import '../../../core/server/sse-parser.js';
52
+ import '../../../core/server/types.js';
53
+ import '../../../core/adapters/index.js';
54
+ import '../../../core/adapters/json-render/index.js';
55
+ import '../../../core/adapters/json-render/types/a2ui.js';
56
+ import '../../../core/adapters/json-render/types/index.js';
57
+ import '../../../core/adapters/json-render/types/core.js';
58
+ import '../../../../_chunks/dep-ba3bd553.js';
59
+ import './JsonUIRenderer.js';
60
+ import '../contexts/index.js';
61
+ import '../contexts/data.js';
62
+ import '@json-render/core';
63
+ import '../contexts/store.js';
64
+ import '../contexts/visibility.js';
65
+ import '../contexts/actions.js';
66
+ import '../contexts/validation.js';
67
+ import '../contexts/tree.js';
68
+
69
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
70
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
71
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
72
+ function extractSurfaceId(messages) {
73
+ var _iterator = _createForOfIteratorHelper(messages),
74
+ _step;
75
+ try {
76
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
77
+ var msg = _step.value;
78
+ if (msg.createSurface) return msg.createSurface.surfaceId;
79
+ if (msg.updateComponents) return msg.updateComponents.surfaceId;
80
+ if (msg.updateDataModel) return msg.updateDataModel.surfaceId;
81
+ if (msg.deleteSurface) return msg.deleteSurface.surfaceId;
82
+ }
83
+ } catch (err) {
84
+ _iterator.e(err);
85
+ } finally {
86
+ _iterator.f();
87
+ }
88
+ return null;
89
+ }
90
+ function isUIMessages(messages) {
91
+ return messages.some(function (msg) {
92
+ return msg.createSurface || msg.updateComponents || msg.deleteSurface;
93
+ });
94
+ }
95
+ function hasDeletionMessages(messages) {
96
+ return messages.some(function (msg) {
97
+ return msg.deleteSurface;
98
+ });
99
+ }
100
+ function hasCreationMessages(messages) {
101
+ return messages.some(function (msg) {
102
+ return msg.createSurface || msg.updateComponents;
103
+ });
104
+ }
105
+ var A2UIJsonRenderActivityRenderer = function A2UIJsonRenderActivityRenderer(_ref) {
106
+ var activityType = _ref.activityType,
107
+ content = _ref.content,
108
+ messageId = _ref.messageId,
109
+ ext = _ref.ext,
110
+ registry = _ref.registry,
111
+ actionHandlers = _ref.actionHandlers,
112
+ _ref$debug = _ref.debug,
113
+ debug = _ref$debug === void 0 ? false : _ref$debug;
114
+ useEffect(function () {
115
+ surfaceStateManager.setDebug(debug);
116
+ }, [debug]);
117
+ var _useState = useState(0),
118
+ _useState2 = _slicedToArray(_useState, 2),
119
+ schemaVersion = _useState2[0],
120
+ setSchemaVersion = _useState2[1];
121
+ var _useMemo = useMemo(function () {
122
+ var msgs = content.messages;
123
+ if (!Array.isArray(msgs) || msgs.length === 0) {
124
+ return {
125
+ surfaceId: null,
126
+ isUI: false,
127
+ isDeletion: false,
128
+ isCreation: false,
129
+ messages: []
130
+ };
131
+ }
132
+ return {
133
+ surfaceId: extractSurfaceId(msgs),
134
+ isUI: isUIMessages(msgs),
135
+ isDeletion: hasDeletionMessages(msgs),
136
+ isCreation: hasCreationMessages(msgs),
137
+ messages: msgs
138
+ };
139
+ }, [content.messages]),
140
+ surfaceId = _useMemo.surfaceId,
141
+ isUI = _useMemo.isUI,
142
+ isDeletion = _useMemo.isDeletion,
143
+ isCreation = _useMemo.isCreation,
144
+ messages = _useMemo.messages;
145
+ var initialSchema = useMemo(function () {
146
+ if (!surfaceId || messages.length === 0) {
147
+ return null;
148
+ }
149
+ if (debug) {
150
+ console.log("[A2UI Adapter] \u5904\u7406\u6D88\u606F:", {
151
+ messageId: messageId,
152
+ surfaceId: surfaceId,
153
+ messagesCount: messages.length,
154
+ messageTypes: messages.map(function (m) {
155
+ return Object.keys(m).filter(function (k) {
156
+ return ["createSurface", "updateComponents", "updateDataModel", "deleteSurface"].includes(k);
157
+ })[0];
158
+ }),
159
+ isUI: isUI,
160
+ isCreation: isCreation,
161
+ isDeletion: isDeletion,
162
+ cachedSurfaces: surfaceStateManager.getAllSurfaceIds()
163
+ });
164
+ }
165
+ if (isDeletion) {
166
+ surfaceStateManager.deleteSurface(surfaceId);
167
+ if (debug) {
168
+ console.log("[A2UI Adapter] \u5220\u9664 Surface:", surfaceId);
169
+ }
170
+ return null;
171
+ }
172
+ if (isCreation) {
173
+ var schema = convertA2UIMessagesToJsonRender(messages);
174
+ if (schema) {
175
+ var _messages$find;
176
+ var catalogId = (_messages$find = messages.find(function (m) {
177
+ return m.createSurface;
178
+ })) === null || _messages$find === void 0 || (_messages$find = _messages$find.createSurface) === null || _messages$find === void 0 ? void 0 : _messages$find.catalogId;
179
+ surfaceStateManager.registerSurface(surfaceId, schema, catalogId);
180
+ if (debug) {
181
+ console.log("[A2UI Adapter] \u521B\u5EFA\u578B\u6D88\u606F\uFF0C\u6CE8\u518C Surface:", {
182
+ surfaceId: surfaceId,
183
+ elementsCount: Object.keys(schema.elements).length,
184
+ data: schema.data
185
+ });
186
+ }
187
+ }
188
+ return schema;
189
+ }
190
+ var _iterator2 = _createForOfIteratorHelper(messages),
191
+ _step2;
192
+ try {
193
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
194
+ var msg = _step2.value;
195
+ if (msg.updateDataModel) {
196
+ var _msg$updateDataModel = msg.updateDataModel,
197
+ path = _msg$updateDataModel.path,
198
+ op = _msg$updateDataModel.op,
199
+ value = _msg$updateDataModel.value;
200
+ var success = surfaceStateManager.updateData(surfaceId, path, op || "replace", value);
201
+ if (debug) {
202
+ console.log("[A2UI Adapter] \u66F4\u65B0\u578B\u6D88\u606F\uFF0C\u66F4\u65B0\u6570\u636E:", {
203
+ surfaceId: surfaceId,
204
+ path: path,
205
+ op: op || "replace",
206
+ value: value,
207
+ success: success
208
+ });
209
+ }
210
+ }
211
+ }
212
+ } catch (err) {
213
+ _iterator2.e(err);
214
+ } finally {
215
+ _iterator2.f();
216
+ }
217
+ return null;
218
+ }, [messages, surfaceId, isCreation, isDeletion, isUI, debug, messageId]);
219
+ var handleSchemaUpdate = useCallback(function () {
220
+ if (debug) {
221
+ console.log("[A2UI Adapter] \u6536\u5230\u72B6\u6001\u66F4\u65B0\u901A\u77E5\uFF0C\u89E6\u53D1\u91CD\u6E32\u67D3");
222
+ }
223
+ setSchemaVersion(function (v) {
224
+ return v + 1;
225
+ });
226
+ }, [debug]);
227
+ useEffect(function () {
228
+ if (!isCreation || !surfaceId) {
229
+ return;
230
+ }
231
+ if (debug) {
232
+ console.log("[A2UI Adapter] \u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
233
+ }
234
+ var unsubscribe = surfaceStateManager.subscribe(surfaceId, handleSchemaUpdate);
235
+ return function () {
236
+ if (debug) {
237
+ console.log("[A2UI Adapter] \u53D6\u6D88\u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
238
+ }
239
+ unsubscribe();
240
+ };
241
+ }, [isCreation, surfaceId, handleSchemaUpdate, debug]);
242
+ var currentSchema = useMemo(function () {
243
+ if (!isCreation || !surfaceId) {
244
+ return null;
245
+ }
246
+ return surfaceStateManager.getSchema(surfaceId) || initialSchema;
247
+ }, [isCreation, surfaceId, initialSchema, schemaVersion]);
248
+ if (!isUI) {
249
+ if (debug && messages.length > 0) {
250
+ console.log("[A2UI Adapter] \u7EAF\u6570\u636E\u66F4\u65B0\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
251
+ }
252
+ return null;
253
+ }
254
+ if (isDeletion && !isCreation) {
255
+ if (debug) {
256
+ console.log("[A2UI Adapter] \u5220\u9664\u578B\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
257
+ }
258
+ return null;
259
+ }
260
+ return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, {
261
+ activityType: activityType,
262
+ content: currentSchema,
263
+ messageId: messageId,
264
+ ext: ext,
265
+ registry: registry,
266
+ actionHandlers: actionHandlers
267
+ });
268
+ };
269
+
270
+ export { A2UIJsonRenderActivityRenderer, A2UIJsonRenderActivityRenderer as default };
271
+ //# sourceMappingURL=A2UIJsonRenderActivityRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2UIJsonRenderActivityRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.tsx"],"sourcesContent":["/**\n * A2UI v0.9 + json-render Activity 渲染器\n * 将 A2UI v0.9 协议转换为 json-render Schema 进行渲染\n * \n * 工作流程:\n * 1. 接收 ACTIVITY_SNAPSHOT/DELTA 中的 A2UI content\n * 2. 区分消息类型:UI型 vs 纯数据型\n * 3. UI型:转换为 Schema 并注册到 SurfaceStateManager,渲染 UI\n * 4. 纯数据型:通过 SurfaceStateManager 更新数据,触发订阅者重渲染,本组件不渲染\n * \n * 消息分类:\n * - UI型消息:包含 createSurface / updateComponents / deleteSurface → 需要渲染/更新 UI\n * - 纯数据型消息:仅包含 updateDataModel → 只更新状态,不渲染新 UI\n */\n\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport { convertA2UIMessagesToJsonRender, surfaceStateManager } from '../../../core';\nimport type { A2UIMessage, JsonRenderSchema } from '../../../core';\nimport type { JsonRenderActivityProps, ComponentRegistry } from '../types';\nimport { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer';\n\n\nexport interface A2UIJsonRenderActivityRendererProps extends Omit<JsonRenderActivityProps, 'content'> {\n /** A2UI content(包含 messages 数组) */\n content: {\n messages?: A2UIMessage[];\n [key: string]: any;\n };\n /** 组件注册表(必须) */\n registry: ComponentRegistry;\n /** Action 处理器(可选) */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n}\n\n/**\n * 从消息中提取 surfaceId\n */\nfunction extractSurfaceId(messages: A2UIMessage[]): string | null {\n for (const msg of messages) {\n if (msg.createSurface) return msg.createSurface.surfaceId;\n if (msg.updateComponents) return msg.updateComponents.surfaceId;\n if (msg.updateDataModel) return msg.updateDataModel.surfaceId;\n if (msg.deleteSurface) return msg.deleteSurface.surfaceId;\n }\n return null;\n}\n\n/**\n * 判断消息是否为\"UI型\"(需要渲染/更新 UI)\n * 包括 createSurface / updateComponents / deleteSurface\n * 只有纯 updateDataModel 消息不需要渲染\n */\nfunction isUIMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.createSurface || msg.updateComponents || msg.deleteSurface);\n}\n\n/**\n * 判断消息是否包含删除操作\n */\nfunction hasDeletionMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.deleteSurface);\n}\n\n/**\n * 判断消息是否包含创建/更新操作(需要渲染 UI 的)\n */\nfunction hasCreationMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.createSurface || msg.updateComponents);\n}\n\n/**\n * A2UI v0.9 + json-render Activity 渲染器组件\n */\nexport const A2UIJsonRenderActivityRenderer: React.FC<A2UIJsonRenderActivityRendererProps> = ({\n activityType,\n content,\n messageId,\n ext,\n registry,\n actionHandlers,\n debug = false,\n}) => {\n // 设置调试模式\n useEffect(() => {\n surfaceStateManager.setDebug(debug);\n }, [debug]);\n\n // 用于触发重渲染的版本号\n const [schemaVersion, setSchemaVersion] = useState(0);\n\n // 分析消息类型\n const { surfaceId, isUI, isDeletion, isCreation, messages } = useMemo(() => {\n const msgs = content.messages;\n if (!Array.isArray(msgs) || msgs.length === 0) {\n return { surfaceId: null, isUI: false, isDeletion: false, isCreation: false, messages: [] };\n }\n return {\n surfaceId: extractSurfaceId(msgs),\n isUI: isUIMessages(msgs),\n isDeletion: hasDeletionMessages(msgs),\n isCreation: hasCreationMessages(msgs),\n messages: msgs,\n };\n }, [content.messages]);\n\n // 处理消息并获取 Schema\n const initialSchema = useMemo<JsonRenderSchema | null>(() => {\n if (!surfaceId || messages.length === 0) {\n return null;\n }\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 处理消息:', {\n messageId,\n surfaceId,\n messagesCount: messages.length,\n messageTypes: messages.map(m => \n Object.keys(m).filter(k => ['createSurface', 'updateComponents', 'updateDataModel', 'deleteSurface'].includes(k))[0]\n ),\n isUI,\n isCreation,\n isDeletion,\n cachedSurfaces: surfaceStateManager.getAllSurfaceIds(),\n });\n }\n\n // 删除型消息:清理缓存\n if (isDeletion) {\n surfaceStateManager.deleteSurface(surfaceId);\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 删除 Surface:', surfaceId);\n }\n return null;\n }\n\n // 创建型消息:转换并注册\n if (isCreation) {\n const schema = convertA2UIMessagesToJsonRender(messages);\n if (schema) {\n // 提取 catalogId\n const catalogId = messages.find(m => m.createSurface)?.createSurface?.catalogId;\n surfaceStateManager.registerSurface(surfaceId, schema, catalogId);\n \n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 创建型消息,注册 Surface:', {\n surfaceId,\n elementsCount: Object.keys(schema.elements).length,\n data: schema.data,\n });\n }\n }\n return schema;\n }\n\n // 更新型消息:通过 SurfaceStateManager 更新数据\n for (const msg of messages) {\n if (msg.updateDataModel) {\n const { path, op, value } = msg.updateDataModel;\n const success = surfaceStateManager.updateData(surfaceId, path, op || 'replace', value);\n \n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 更新型消息,更新数据:', {\n surfaceId,\n path,\n op: op || 'replace',\n value,\n success,\n });\n }\n }\n }\n\n // 更新型消息不需要渲染,返回 null\n return null;\n }, [messages, surfaceId, isCreation, isDeletion, isUI, debug, messageId]);\n\n // 订阅状态变化的回调\n const handleSchemaUpdate = useCallback(() => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 收到状态更新通知,触发重渲染');\n }\n setSchemaVersion(v => v + 1);\n }, [debug]);\n\n // 订阅 Surface 状态变化(仅当是创建型消息时)\n useEffect(() => {\n if (!isCreation || !surfaceId) {\n return;\n }\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 订阅 Surface 状态:', surfaceId);\n }\n\n const unsubscribe = surfaceStateManager.subscribe(surfaceId, handleSchemaUpdate);\n\n return () => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 取消订阅 Surface 状态:', surfaceId);\n }\n unsubscribe();\n };\n }, [isCreation, surfaceId, handleSchemaUpdate, debug]);\n\n // 获取当前 Schema(考虑版本变化)\n const currentSchema = useMemo(() => {\n if (!isCreation || !surfaceId) {\n return null;\n }\n // schemaVersion 变化时从缓存获取最新 Schema\n return surfaceStateManager.getSchema(surfaceId) || initialSchema;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCreation, surfaceId, initialSchema, schemaVersion]);\n\n // 非 UI 型消息不渲染(仅 updateDataModel 的消息)\n if (!isUI) {\n if (debug && messages.length > 0) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 纯数据更新消息,跳过渲染');\n }\n return null;\n }\n\n // 删除型消息:返回 null(UI 已被删除)\n if (isDeletion && !isCreation) {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 删除型消息,跳过渲染');\n }\n return null;\n }\n\n // 渲染 UI\n return (\n <JsonRenderActivityRenderer\n activityType={activityType}\n content={currentSchema}\n messageId={messageId}\n ext={ext}\n registry={registry}\n actionHandlers={actionHandlers}\n />\n );\n};\n\nexport default A2UIJsonRenderActivityRenderer;\n"],"names":["extractSurfaceId","messages","_iterator","_createForOfIteratorHelper","_step","s","n","done","msg","createSurface","surfaceId","updateComponents","updateDataModel","deleteSurface","err","e","f","isUIMessages","some","hasDeletionMessages","hasCreationMessages","A2UIJsonRenderActivityRenderer","activityType","_ref","content","messageId","ext","registry","actionHandlers","_ref$debug","debug","useEffect","surfaceStateManager","setDebug","_useState","useState","_useState2","_slicedToArray","schemaVersion","setSchemaVersion","_useMemo","useMemo","msgs","Array","isArray","length","isUI","isDeletion","isCreation","initialSchema","console","log","messagesCount","messageTypes","map","Object","keys","m","filter","k","includes","cachedSurfaces","getAllSurfaceIds","schema","convertA2UIMessagesToJsonRender","_messages$find","catalogId","find","registerSurface","elementsCount","elements","data","_iterator2","_step2","_msg$updateDataModel","path","op","value","success","updateData","handleSchemaUpdate","useCallback","v","unsubscribe","subscribe","currentSchema","getSchema","React","createElement","JsonRenderActivityRenderer"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * json-render Activity 渲染器
3
+ * 基于 TDesign ChatEngine 的 Activity 机制集成 json-render
4
+ *
5
+ * 核心特性:
6
+ * 1. 支持 ACTIVITY_SNAPSHOT 全量渲染
7
+ * 2. 支持 ACTIVITY_DELTA 增量更新(Delta Merge 由数据层完成,此处接收完整 Schema)
8
+ * 3. 使用 React.memo + react-fast-compare 优化渲染性能
9
+ *
10
+ */
11
+ import React from 'react';
12
+ import type { JsonRenderActivityProps, ComponentRegistry } from '../types';
13
+ export interface JsonRenderActivityRendererProps extends JsonRenderActivityProps {
14
+ /** 组件注册表(必须) */
15
+ registry: ComponentRegistry;
16
+ /**
17
+ * Action 处理器映射表
18
+ *
19
+ * 示例:
20
+ * ```tsx
21
+ * const actionHandlers = {
22
+ * submit: async (params) => { ... },
23
+ * reset: async (params) => { ... },
24
+ * cancel: async (params) => { ... },
25
+ * };
26
+ * ```
27
+ */
28
+ actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;
29
+ /** 显示调试信息 */
30
+ debug?: boolean;
31
+ }
32
+ /**
33
+ * 使用 React.memo 包装,配合 react-fast-compare 进行高效的深比较
34
+ *
35
+ * 对比策略:
36
+ * 1. registry 引用比较(通常是稳定的)
37
+ * 2. actionHandlers 引用比较(建议使用 useMemo 稳定化)
38
+ * 3. content 使用 react-fast-compare 深比较(比 JSON.stringify 快 3-5 倍)
39
+ */
40
+ export declare const JsonRenderActivityRenderer: React.NamedExoticComponent<JsonRenderActivityRendererProps>;
41
+ /**
42
+ * 默认导出
43
+ */
44
+ export default JsonRenderActivityRenderer;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.9
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import React, { useMemo } from 'react';
8
+ import { r as reactFastCompare } from '../../../../_chunks/dep-ba3bd553.js';
9
+ import { JsonRenderElement } from './JsonUIRenderer.js';
10
+ import '../contexts/index.js';
11
+ import { DataProvider } from '../contexts/data.js';
12
+ import { VisibilityProvider } from '../contexts/visibility.js';
13
+ import { ActionProvider } from '../contexts/actions.js';
14
+ import '@babel/runtime/helpers/typeof';
15
+ import '@babel/runtime/helpers/defineProperty';
16
+ import '../contexts/tree.js';
17
+ import '@babel/runtime/helpers/classCallCheck';
18
+ import '@babel/runtime/helpers/createClass';
19
+ import '@babel/runtime/helpers/possibleConstructorReturn';
20
+ import '@babel/runtime/helpers/getPrototypeOf';
21
+ import '@babel/runtime/helpers/inherits';
22
+ import '../contexts/store.js';
23
+ import '../contexts/validation.js';
24
+ import '@babel/runtime/helpers/objectWithoutProperties';
25
+ import '@babel/runtime/helpers/slicedToArray';
26
+ import '@json-render/core';
27
+ import '../../../../_chunks/dep-de8ac730.js';
28
+ import '@babel/runtime/helpers/wrapNativeSuper';
29
+ import '@babel/runtime/helpers/asyncToGenerator';
30
+ import '@babel/runtime/regenerator';
31
+
32
+ var JsonRenderActivityRendererInner = function JsonRenderActivityRendererInner(_ref) {
33
+ var activityType = _ref.activityType,
34
+ content = _ref.content,
35
+ messageId = _ref.messageId,
36
+ registry = _ref.registry,
37
+ _ref$actionHandlers = _ref.actionHandlers,
38
+ actionHandlers = _ref$actionHandlers === void 0 ? {} : _ref$actionHandlers;
39
+ var isValidSchema = content && content.root && content.elements && content.elements[content.root];
40
+ var renderData = useMemo(function () {
41
+ return (content === null || content === void 0 ? void 0 : content.data) || {};
42
+ }, [content === null || content === void 0 ? void 0 : content.data]);
43
+ return /* @__PURE__ */React.createElement("div", {
44
+ "data-activity-type": activityType,
45
+ "data-message-id": messageId
46
+ }, /* @__PURE__ */React.createElement(DataProvider, {
47
+ initialData: renderData
48
+ }, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
49
+ handlers: actionHandlers
50
+ }, /* @__PURE__ */React.createElement(JsonRenderElement, {
51
+ tree: content,
52
+ registry: registry
53
+ })))));
54
+ };
55
+ var JsonRenderActivityRenderer = /*#__PURE__*/React.memo(JsonRenderActivityRendererInner, function (prevProps, nextProps) {
56
+ if (prevProps.registry !== nextProps.registry) return false;
57
+ if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;
58
+ if (prevProps.content === nextProps.content) return true;
59
+ return reactFastCompare(prevProps.content, nextProps.content);
60
+ });
61
+
62
+ export { JsonRenderActivityRenderer, JsonRenderActivityRenderer as default };
63
+ //# sourceMappingURL=JsonRenderActivityRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonRenderActivityRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.tsx"],"sourcesContent":["/**\n * json-render Activity 渲染器\n * 基于 TDesign ChatEngine 的 Activity 机制集成 json-render\n * \n * 核心特性:\n * 1. 支持 ACTIVITY_SNAPSHOT 全量渲染\n * 2. 支持 ACTIVITY_DELTA 增量更新(Delta Merge 由数据层完成,此处接收完整 Schema)\n * 3. 使用 React.memo + react-fast-compare 优化渲染性能\n * \n */\n\nimport React, { useMemo } from 'react';\nimport isEqual from 'react-fast-compare';\nimport { JsonRenderElement } from './JsonUIRenderer';\nimport { DataProvider, ActionProvider, VisibilityProvider } from '../contexts';\nimport type { JsonRenderActivityProps, ComponentRegistry } from '../types';\n\nexport interface JsonRenderActivityRendererProps extends JsonRenderActivityProps {\n /** 组件注册表(必须) */\n registry: ComponentRegistry;\n /** \n * Action 处理器映射表\n * \n * 示例:\n * ```tsx\n * const actionHandlers = {\n * submit: async (params) => { ... },\n * reset: async (params) => { ... },\n * cancel: async (params) => { ... },\n * };\n * ```\n */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n}\n\n/**\n * json-render Activity 渲染器组件\n */\nconst JsonRenderActivityRendererInner: React.FC<JsonRenderActivityRendererProps> = ({\n activityType,\n content,\n messageId,\n registry,\n actionHandlers = {},\n}) => {\n // 直接在渲染阶段做校验\n const isValidSchema = content && content.root && content.elements && content.elements[content.root];\n\n // 数据处理:使用 useMemo 缓存,只在 content.data 变化时重新计算\n const renderData = useMemo(() => content?.data || {}, [content?.data]);\n\n // todo: Schema 无效时显示加载状态\n // if (!isValidSchema) {\n // return (\n // <div style={{ padding: '16px', color: 'var(--td-text-color-secondary)' }}>\n // 数据初始化中...\n // </div>\n // );\n // }\n return (\n <div data-activity-type={activityType} data-message-id={messageId}>\n <DataProvider initialData={renderData}>\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers}>\n <JsonRenderElement tree={content} registry={registry} />\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n </div>\n );\n};\n\n/**\n * 使用 React.memo 包装,配合 react-fast-compare 进行高效的深比较\n * \n * 对比策略:\n * 1. registry 引用比较(通常是稳定的)\n * 2. actionHandlers 引用比较(建议使用 useMemo 稳定化)\n * 3. content 使用 react-fast-compare 深比较(比 JSON.stringify 快 3-5 倍)\n */\nexport const JsonRenderActivityRenderer = React.memo(\n JsonRenderActivityRendererInner,\n (prevProps, nextProps) => {\n // registry 变化必须重渲染\n if (prevProps.registry !== nextProps.registry) return false;\n \n // actionHandlers 变化必须重渲染\n if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;\n\n // content 引用相同,跳过渲染\n if (prevProps.content === nextProps.content) return true;\n\n // 使用 react-fast-compare 进行高效深比较\n // 比 JSON.stringify 快 3-5 倍,且能正确处理循环引用\n return isEqual(prevProps.content, nextProps.content);\n },\n);\n\n/**\n * 默认导出\n */\nexport default JsonRenderActivityRenderer;\n"],"names":["JsonRenderActivityRendererInner","activityType","_ref","content","messageId","registry","_ref$actionHandlers","actionHandlers","isValidSchema","root","elements","renderData","useMemo","data","React","createElement","DataProvider","initialData","VisibilityProvider","ActionProvider","handlers","JsonRenderElement","tree","JsonRenderActivityRenderer","memo","prevProps","nextProps","isEqual"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAMA,kCAA6E,SAA7EA,sCAMA;AAAA,EAAA,IALJC,YAAA,GAAAC,IAAA,CAAAD,YAAA;IACAE,OAAA,GAAAD,IAAA,CAAAC,OAAA;IACAC,SAAA,GAAAF,IAAA,CAAAE,SAAA;IACAC,QAAA,GAAAH,IAAA,CAAAG,QAAA;IAAAC,mBAAA,GAAAJ,IAAA,CACAK;AAAAA,IAAAA,kDAAiB,EAAC,GAAAD,mBAAA,CAAA;AAGZ,EAAA,IAAAE,aAAA,GAAgBL,WAAWA,OAAQ,CAAAM,IAAA,IAAQN,QAAQO,QAAY,IAAAP,OAAA,CAAQO,SAASP,OAAQ,CAAAM,IAAA,CAAA,CAAA;EAGxF,IAAAE,UAAA,GAAaC,OAAQ,CAAA,YAAA;IAAA,OAAM,CAAAT,OAAS,KAAA,IAAA,IAATA,OAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,OAAS,CAAAU,IAAA,KAAQ,EAAI,CAAA;GAAA,EAAA,CAACV,OAAS,KAATA,IAAAA,IAAAA,OAAS,uBAATA,OAAS,CAAAU,IAAI,CAAC,CAAA,CAAA;AAUrE,EAAA,sBACGC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAI,IAAA,oBAAoB,EAAAd,YAAA;AAAc,IAAA,iBAAiB,EAAAG,SAAAA;AAAA,GAAA,iBACrDU,KAAA,CAAAC,aAAA,CAAAC,YAAA,EAAA;AAAaC,IAAAA,WAAa,EAAAN,UAAAA;AACzB,GAAA,iBAAAG,KAAA,CAAAC,aAAA,CAACG,yCACEJ,KAAA,CAAAC,aAAA,CAAAI,cAAA,EAAA;AAAeC,IAAAA,QAAU,EAAAb,cAAAA;AAAA,GAAA,iBACvBO,KAAA,CAAAC,aAAA,CAAAM,iBAAA,EAAA;AAAkBC,IAAAA,IAAM,EAAAnB,OAAA;AAASE,IAAAA,QAAA,EAAAA,QAAAA;AAAoB,GAAA,CACxD,CACF,CACF,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAUakB,IAAAA,0CAA6BT,KAAM,CAAAU,IAAA,CAC9CxB,+BAAA,EACA,UAACyB,WAAWC,SAAc,EAAA;EAEpB,IAAAD,SAAA,CAAUpB,aAAaqB,SAAU,CAAArB,QAAA,EAAiB,OAAA,KAAA,CAAA;EAGlD,IAAAoB,SAAA,CAAUlB,mBAAmBmB,SAAU,CAAAnB,cAAA,EAAuB,OAAA,KAAA,CAAA;EAG9D,IAAAkB,SAAA,CAAUtB,YAAYuB,SAAU,CAAAvB,OAAA,EAAgB,OAAA,IAAA,CAAA;EAIpD,OAAOwB,gBAAQ,CAAAF,SAAA,CAAUtB,OAAS,EAAAuB,SAAA,CAAUvB,OAAO,CAAA,CAAA;AACrD,CACF;;;;"}
@@ -0,0 +1,44 @@
1
+ import { type ComponentType, type ReactNode } from "react";
2
+ import type { Catalog, ComponentDefinition } from "@json-render/core";
3
+ import type { ComponentRegistry, RendererProps } from "../types";
4
+ /**
5
+ * Main renderer component
6
+ *
7
+ * 架构说明:
8
+ * - JsonRenderElement 作为入口,不因 tree 变化而重渲染
9
+ * - tree 更新通过 store.setTree() 通知订阅者
10
+ * - 每个 ElementRenderer 独立订阅自己的 element
11
+ * - 配合上游 Structural Sharing,只有真正变化的节点才重渲染
12
+ */
13
+ export declare function JsonRenderElement({ tree, registry, loading, fallback }: RendererProps): import("react/jsx-runtime").JSX.Element;
14
+ /**
15
+ * Props for JSONUIProvider
16
+ */
17
+ export interface JSONUIProviderProps {
18
+ /** Component registry */
19
+ registry: ComponentRegistry;
20
+ /** Initial data model */
21
+ initialData?: Record<string, unknown>;
22
+ /** Auth state */
23
+ authState?: {
24
+ isSignedIn: boolean;
25
+ user?: Record<string, unknown>;
26
+ };
27
+ /** Action handlers */
28
+ actionHandlers?: Record<string, (params: Record<string, unknown>) => Promise<unknown> | unknown>;
29
+ /** Navigation function */
30
+ navigate?: (path: string) => void;
31
+ /** Custom validation functions */
32
+ validationFunctions?: Record<string, (value: unknown, args?: Record<string, unknown>) => boolean>;
33
+ /** Callback when data changes */
34
+ onDataChange?: (path: string, value: unknown) => void;
35
+ children: ReactNode;
36
+ }
37
+ /**
38
+ * Combined provider for all JSONUI contexts
39
+ */
40
+ export declare function JSONUIProvider({ registry, initialData, authState, actionHandlers, navigate, validationFunctions, onDataChange, children, }: JSONUIProviderProps): import("react/jsx-runtime").JSX.Element;
41
+ /**
42
+ * Helper to create a renderer component from a catalog
43
+ */
44
+ export declare function createRendererFromCatalog<C extends Catalog<Record<string, ComponentDefinition>>>(_catalog: C, registry: ComponentRegistry): ComponentType<Omit<RendererProps, "registry">>;
@@ -0,0 +1,131 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.9
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import React, { useRef, useLayoutEffect, useMemo } from 'react';
9
+ import '../contexts/index.js';
10
+ import { useRenderContext, useElement, useRoot, TreeStore, RenderContext } from '../contexts/tree.js';
11
+ import { useIsVisible, VisibilityProvider } from '../contexts/visibility.js';
12
+ import { useActions, ActionProvider } from '../contexts/actions.js';
13
+ import { DataProvider } from '../contexts/data.js';
14
+ import { ValidationProvider } from '../contexts/validation.js';
15
+ import '@babel/runtime/helpers/classCallCheck';
16
+ import '@babel/runtime/helpers/createClass';
17
+ import '@babel/runtime/helpers/possibleConstructorReturn';
18
+ import '@babel/runtime/helpers/getPrototypeOf';
19
+ import '@babel/runtime/helpers/inherits';
20
+ import '../contexts/store.js';
21
+ import '@json-render/core';
22
+ import '@babel/runtime/helpers/typeof';
23
+ import '@babel/runtime/helpers/slicedToArray';
24
+ import '../../../../_chunks/dep-de8ac730.js';
25
+ import '@babel/runtime/helpers/wrapNativeSuper';
26
+ import '@babel/runtime/helpers/asyncToGenerator';
27
+ import '@babel/runtime/regenerator';
28
+ import '@babel/runtime/helpers/objectWithoutProperties';
29
+
30
+ "use client";
31
+ 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; }
32
+ 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; }
33
+ var ElementRenderer = /*#__PURE__*/React.memo(function ElementRenderer2(_ref) {
34
+ var _registry$element$typ, _element$children;
35
+ var elementKey = _ref.elementKey;
36
+ var _useRenderContext = useRenderContext(),
37
+ registry = _useRenderContext.registry,
38
+ loading = _useRenderContext.loading,
39
+ fallback = _useRenderContext.fallback;
40
+ var element = useElement(elementKey);
41
+ var isVisible = useIsVisible(element === null || element === void 0 ? void 0 : element.visible);
42
+ var _useActions = useActions(),
43
+ execute = _useActions.execute;
44
+ if (!element || !isVisible) {
45
+ return null;
46
+ }
47
+ var Component = (_registry$element$typ = registry[element.type]) !== null && _registry$element$typ !== void 0 ? _registry$element$typ : fallback;
48
+ if (!Component) {
49
+ console.warn("No renderer for component type: ".concat(element.type));
50
+ return null;
51
+ }
52
+ console.count("ElementRenderer-".concat(element.type));
53
+ var children = (_element$children = element.children) === null || _element$children === void 0 ? void 0 : _element$children.map(function (childKey) {
54
+ return /* @__PURE__ */React.createElement(ElementRenderer2, {
55
+ key: childKey,
56
+ elementKey: childKey
57
+ });
58
+ });
59
+ return /* @__PURE__ */React.createElement(Component, {
60
+ element: element,
61
+ onAction: execute,
62
+ loading: loading
63
+ }, children);
64
+ });
65
+ function RootRenderer() {
66
+ var root = useRoot();
67
+ if (!root) {
68
+ return null;
69
+ }
70
+ return /* @__PURE__ */React.createElement(ElementRenderer, {
71
+ elementKey: root
72
+ });
73
+ }
74
+ function JsonRenderElement(_ref2) {
75
+ var tree = _ref2.tree,
76
+ registry = _ref2.registry,
77
+ loading = _ref2.loading,
78
+ fallback = _ref2.fallback;
79
+ if (!tree || !tree.root) {
80
+ return null;
81
+ }
82
+ var storeRef = useRef(null);
83
+ if (!storeRef.current) {
84
+ storeRef.current = new TreeStore();
85
+ }
86
+ var store = storeRef.current;
87
+ useLayoutEffect(function () {
88
+ store.setTree(tree);
89
+ }, [tree, store]);
90
+ var contextValue = useMemo(function () {
91
+ return {
92
+ store: store,
93
+ registry: registry,
94
+ loading: loading,
95
+ fallback: fallback
96
+ };
97
+ }, [store, registry, loading, fallback]);
98
+ return /* @__PURE__ */React.createElement(RenderContext.Provider, {
99
+ value: contextValue
100
+ }, /* @__PURE__ */React.createElement(RootRenderer, null));
101
+ }
102
+ function JSONUIProvider(_ref3) {
103
+ var registry = _ref3.registry,
104
+ initialData = _ref3.initialData,
105
+ authState = _ref3.authState,
106
+ actionHandlers = _ref3.actionHandlers,
107
+ navigate = _ref3.navigate,
108
+ validationFunctions = _ref3.validationFunctions,
109
+ onDataChange = _ref3.onDataChange,
110
+ children = _ref3.children;
111
+ return /* @__PURE__ */React.createElement(DataProvider, {
112
+ initialData: initialData,
113
+ authState: authState,
114
+ onDataChange: onDataChange
115
+ }, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
116
+ handlers: actionHandlers,
117
+ navigate: navigate
118
+ }, /* @__PURE__ */React.createElement(ValidationProvider, {
119
+ customFunctions: validationFunctions
120
+ }, children, /* @__PURE__ */React.createElement(ConfirmationDialogManager, null)))));
121
+ }
122
+ function createRendererFromCatalog(_catalog, registry) {
123
+ return function CatalogRenderer(props) {
124
+ return /* @__PURE__ */React.createElement(JsonRenderElement, _objectSpread(_objectSpread({}, props), {}, {
125
+ registry: registry
126
+ }));
127
+ };
128
+ }
129
+
130
+ export { JSONUIProvider, JsonRenderElement, createRendererFromCatalog };
131
+ //# sourceMappingURL=JsonUIRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonUIRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/JsonUIRenderer.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { type ComponentType, type ReactNode, useRef, useLayoutEffect, useMemo } from \"react\";\nimport type {\n Catalog,\n ComponentDefinition,\n} from \"@json-render/core\";\nimport { \n useIsVisible, \n useActions,\n DataProvider, \n ValidationProvider, \n ActionProvider, \n VisibilityProvider,\n} from \"../contexts\";\n\nimport {\n useElement,\n useRoot,\n useRenderContext,\n TreeStore,\n RenderContext,\n} from \"../contexts/tree\";\n\nimport type { ComponentRegistry, RendererProps } from \"../types\";\n\n/**\n * ElementRenderer - 使用 selector 模式订阅特定 element\n * \n * 性能优化原理:\n * 1. 上游使用 Structural Sharing,未修改的节点保持原引用\n * 2. useSyncExternalStore 的 getSnapshot 返回 element 引用\n * 3. 引用相同 → 不重渲染;引用不同 → 重渲染\n */\nconst ElementRenderer = React.memo(function ElementRenderer({\n elementKey,\n}: {\n elementKey: string;\n}) {\n const { registry, loading, fallback } = useRenderContext();\n const element = useElement(elementKey);\n const isVisible = useIsVisible(element?.visible);\n const { execute } = useActions();\n\n // Don't render if element doesn't exist or not visible\n if (!element || !isVisible) {\n return null;\n }\n\n // Get the component renderer\n const Component = registry[element.type] ?? fallback;\n\n if (!Component) {\n console.warn(`No renderer for component type: ${element.type}`);\n return null;\n }\n\n console.count(`ElementRenderer-${element.type}`);\n\n // 子组件独立订阅\n const children = element.children?.map((childKey) => (\n <ElementRenderer key={childKey} elementKey={childKey} />\n ));\n\n return (\n <Component element={element} onAction={execute} loading={loading}>\n {children}\n </Component>\n );\n});\n\n/**\n * Root renderer - 订阅 root 变化\n */\nfunction RootRenderer() {\n const root = useRoot();\n \n if (!root) {\n return null;\n }\n \n return <ElementRenderer elementKey={root} />;\n}\n\n/**\n * Main renderer component\n * \n * 架构说明:\n * - JsonRenderElement 作为入口,不因 tree 变化而重渲染\n * - tree 更新通过 store.setTree() 通知订阅者\n * - 每个 ElementRenderer 独立订阅自己的 element\n * - 配合上游 Structural Sharing,只有真正变化的节点才重渲染\n */\nexport function JsonRenderElement({ tree, registry, loading, fallback }: RendererProps) {\n // 边界保护\n if (!tree || !tree.root) {\n return null;\n }\n // 创建稳定的 store 引用\n const storeRef = useRef<TreeStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new TreeStore();\n }\n const store = storeRef.current;\n \n // 确保子组件在 useEffect 或布局计算前能获取到最新的 tree。\n useLayoutEffect(() => {\n store.setTree(tree);\n }, [tree, store]);\n \n const contextValue = useMemo(() => ({\n store,\n registry,\n loading,\n fallback,\n }), [store, registry, loading, fallback]);\n\n\n\n return (\n <RenderContext.Provider value={contextValue}>\n <RootRenderer />\n </RenderContext.Provider>\n );\n}\n\n/**\n * Props for JSONUIProvider\n */\nexport interface JSONUIProviderProps {\n /** Component registry */\n registry: ComponentRegistry;\n /** Initial data model */\n initialData?: Record<string, unknown>;\n /** Auth state */\n authState?: { isSignedIn: boolean; user?: Record<string, unknown> };\n /** Action handlers */\n actionHandlers?: Record<\n string,\n (params: Record<string, unknown>) => Promise<unknown> | unknown\n >;\n /** Navigation function */\n navigate?: (path: string) => void;\n /** Custom validation functions */\n validationFunctions?: Record<\n string,\n (value: unknown, args?: Record<string, unknown>) => boolean\n >;\n /** Callback when data changes */\n onDataChange?: (path: string, value: unknown) => void;\n children: ReactNode;\n}\n\n\n/**\n * Combined provider for all JSONUI contexts\n */\nexport function JSONUIProvider({\n registry,\n initialData,\n authState,\n actionHandlers,\n navigate,\n validationFunctions,\n onDataChange,\n children,\n}: JSONUIProviderProps) {\n return (\n <DataProvider\n initialData={initialData}\n authState={authState}\n onDataChange={onDataChange}\n >\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers} navigate={navigate}>\n <ValidationProvider customFunctions={validationFunctions}>\n {children}\n <ConfirmationDialogManager />\n </ValidationProvider>\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n );\n}\n\n/**\n * Helper to create a renderer component from a catalog\n */\nexport function createRendererFromCatalog<\n C extends Catalog<Record<string, ComponentDefinition>>,\n>(\n _catalog: C,\n registry: ComponentRegistry,\n): ComponentType<Omit<RendererProps, \"registry\">> {\n return function CatalogRenderer(props: Omit<RendererProps, \"registry\">) {\n return <JsonRenderElement {...props} registry={registry} />;\n };\n}\n"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ElementRenderer","React","memo","ElementRenderer2","_ref","_registry$element$typ","_element$children","elementKey","_useRenderContext","useRenderContext","registry","loading","fallback","element","useElement","isVisible","useIsVisible","visible","_useActions","useActions","execute","Component","type","console","warn","concat","count","children","map","childKey","key","createElement","onAction","RootRenderer","root","useRoot","JsonRenderElement","tree","_ref2","storeRef","useRef","current","TreeStore","store","useLayoutEffect","setTree","contextValue","useMemo","RenderContext","Provider","value","JSONUIProvider","_ref3","initialData","authState","actionHandlers","navigate","validationFunctions","onDataChange","DataProvider","VisibilityProvider","ActionProvider","handlers","ValidationProvider","customFunctions","ConfirmationDialogManager","createRendererFromCatalog","_catalog","CatalogRenderer","props"],"mappings":"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"}