@tdesign-react/chat 1.0.2 → 1.0.3-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-076af7c3.js +438 -0
  4. package/es/_chunks/dep-076af7c3.js.map +1 -0
  5. package/es/_chunks/dep-1007ac80.js +205 -0
  6. package/es/_chunks/dep-1007ac80.js.map +1 -0
  7. package/es/_chunks/dep-16520c2b.js +1247 -0
  8. package/es/_chunks/dep-16520c2b.js.map +1 -0
  9. package/es/_chunks/dep-1743bd61.js +438 -0
  10. package/es/_chunks/dep-1743bd61.js.map +1 -0
  11. package/es/_chunks/dep-1ca64fef.js +1247 -0
  12. package/es/_chunks/dep-1ca64fef.js.map +1 -0
  13. package/es/_chunks/dep-24472232.js +839 -0
  14. package/es/_chunks/dep-24472232.js.map +1 -0
  15. package/es/_chunks/dep-3864b369.js +839 -0
  16. package/es/_chunks/dep-3864b369.js.map +1 -0
  17. package/es/_chunks/dep-3e40d789.js +169 -0
  18. package/es/_chunks/dep-3e40d789.js.map +1 -0
  19. package/es/_chunks/dep-4dedfbef.js +438 -0
  20. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  21. package/es/_chunks/dep-56f5e08e.js +448 -0
  22. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  23. package/es/_chunks/dep-5b6b17d0.js +169 -0
  24. package/es/_chunks/dep-5b6b17d0.js.map +1 -0
  25. package/es/_chunks/dep-688e4aaa.js +438 -0
  26. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  27. package/es/_chunks/dep-870f0d35.js +839 -0
  28. package/es/_chunks/dep-870f0d35.js.map +1 -0
  29. package/es/_chunks/dep-96eca06f.js +169 -0
  30. package/es/_chunks/dep-96eca06f.js.map +1 -0
  31. package/es/_chunks/dep-ba3bd553.js +169 -0
  32. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  33. package/es/_chunks/dep-bcb234a1.js +839 -0
  34. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  35. package/es/_chunks/dep-de8ac730.js +1247 -0
  36. package/es/_chunks/dep-de8ac730.js.map +1 -0
  37. package/es/_chunks/dep-e9dbff09.js +1247 -0
  38. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  39. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  40. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  41. package/es/_chunks/dep-f2051ebd.js +839 -0
  42. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  43. package/es/_chunks/dep-f691a67e.js +438 -0
  44. package/es/_chunks/dep-f691a67e.js.map +1 -0
  45. package/es/_chunks/dep-f8016301.js +169 -0
  46. package/es/_chunks/dep-f8016301.js.map +1 -0
  47. package/es/_util/reactify.d.ts +1 -2
  48. package/es/_util/reactify.js +102 -232
  49. package/es/_util/reactify.js.map +1 -1
  50. package/es/attachments/index.js +3 -5
  51. package/es/attachments/index.js.map +1 -1
  52. package/es/chat-actionbar/index.js +3 -5
  53. package/es/chat-actionbar/index.js.map +1 -1
  54. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  55. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  56. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  57. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  58. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  59. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  60. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  61. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  62. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  63. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  64. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  65. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  66. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  67. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  68. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  80. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  81. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  82. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  83. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  84. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  85. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  86. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  87. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  88. package/es/chat-engine/components/a2ui/index.js +62 -0
  89. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  122. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  123. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  124. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  125. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  126. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  127. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  128. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  129. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  130. package/es/chat-engine/components/a2ui/registry.js +74 -0
  131. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  132. package/es/chat-engine/components/activity/index.js +8 -4
  133. package/es/chat-engine/components/activity/index.js.map +1 -1
  134. package/es/chat-engine/components/activity/registry.d.ts +6 -40
  135. package/es/chat-engine/components/activity/registry.js +22 -76
  136. package/es/chat-engine/components/activity/registry.js.map +1 -1
  137. package/es/chat-engine/components/activity/render.d.ts +1 -1
  138. package/es/chat-engine/components/activity/render.js +21 -69
  139. package/es/chat-engine/components/activity/render.js.map +1 -1
  140. package/es/chat-engine/components/index.js +8 -4
  141. package/es/chat-engine/components/index.js.map +1 -1
  142. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  143. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  144. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  145. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  146. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  147. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  148. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  149. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  150. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  151. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  154. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  155. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  156. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  157. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  158. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  159. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  160. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  163. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  164. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  165. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  166. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  178. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  179. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  180. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  181. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  182. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  183. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  184. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  185. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  186. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  187. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  188. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  189. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  190. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  191. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  192. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  193. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  194. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  195. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  196. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  197. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  198. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  199. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  200. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  201. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  202. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  203. package/es/chat-engine/components/json-render/catalog.js +779 -0
  204. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  205. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  206. package/es/chat-engine/components/json-render/config.js +36 -0
  207. package/es/chat-engine/components/json-render/config.js.map +1 -0
  208. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  209. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  210. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  211. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  212. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  213. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  214. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  215. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  216. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  217. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  218. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  219. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  220. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  221. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  222. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  223. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  224. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  225. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  226. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  227. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  228. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  229. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  230. package/es/chat-engine/components/json-render/engine.js +88 -0
  231. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  232. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  233. package/es/chat-engine/components/json-render/index.js +76 -0
  234. package/es/chat-engine/components/json-render/index.js.map +1 -0
  235. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  236. package/es/chat-engine/components/json-render/performance.js +135 -0
  237. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  238. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  241. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  242. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  243. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  244. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  245. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  246. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  247. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  248. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  249. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  250. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  251. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  252. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  253. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  256. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  257. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  258. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.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 +133 -0
  261. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  262. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  263. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  264. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  265. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  266. package/es/chat-engine/components/json-render/renderer.js +124 -0
  267. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  268. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  269. package/es/chat-engine/components/json-render/types.js +7 -0
  270. package/es/chat-engine/components/json-render/types.js.map +1 -0
  271. package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
  272. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
  273. package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
  274. package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
  275. package/es/chat-engine/components/shared/createRegistry.js +72 -0
  276. package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
  277. package/es/chat-engine/components/shared/index.d.ts +4 -0
  278. package/es/chat-engine/components/shared/index.js +18 -0
  279. package/es/chat-engine/components/shared/index.js.map +1 -0
  280. package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
  281. package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
  282. package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
  283. package/es/chat-engine/components/toolcall/index.d.ts +1 -1
  284. package/es/chat-engine/components/toolcall/index.js +11 -7
  285. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  286. package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
  287. package/es/chat-engine/components/toolcall/registry.js +22 -66
  288. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  289. package/es/chat-engine/components/toolcall/render.js +27 -75
  290. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  291. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  292. package/es/chat-engine/core/a2ui/index.js +24 -0
  293. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  294. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  295. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  296. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  297. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  298. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  299. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  300. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  301. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  302. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  303. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  304. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  305. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  306. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  307. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  308. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  309. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  310. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  311. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  312. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  313. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  314. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  315. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  316. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  317. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  318. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  319. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  320. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  321. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  322. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  323. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  324. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  325. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  326. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  327. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  328. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  329. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  330. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  331. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  332. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  333. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  334. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  335. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  336. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  337. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  338. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  339. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  340. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  341. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  342. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  343. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  344. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  345. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  346. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  347. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  348. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  349. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  350. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  351. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  352. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  353. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  354. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  355. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  356. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  357. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  358. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  359. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  360. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
  361. package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
  362. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  363. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  364. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  365. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  366. package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
  367. package/es/chat-engine/core/adapters/agui/index.js +200 -0
  368. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  369. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  370. package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
  371. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  372. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  373. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  374. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  375. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  376. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  377. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  378. package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
  379. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  380. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  381. package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
  382. package/es/chat-engine/core/adapters/agui/utils.js +330 -0
  383. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  384. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  385. package/es/chat-engine/core/adapters/index.js +34 -0
  386. package/es/chat-engine/core/adapters/index.js.map +1 -0
  387. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  388. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  389. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  390. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  391. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  392. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  393. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  394. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  395. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  396. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  397. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  398. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  399. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  400. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  401. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  402. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  403. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  404. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  405. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  406. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  407. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  408. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  409. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  410. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  411. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  412. package/es/chat-engine/core/event-bus/index.js +13 -0
  413. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  414. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  415. package/es/chat-engine/core/event-bus/types.js +32 -0
  416. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  417. package/es/chat-engine/core/index.d.ts +147 -0
  418. package/es/chat-engine/core/index.js +760 -0
  419. package/es/chat-engine/core/index.js.map +1 -0
  420. package/es/chat-engine/core/processor/index.d.ts +20 -0
  421. package/es/chat-engine/core/processor/index.js +146 -0
  422. package/es/chat-engine/core/processor/index.js.map +1 -0
  423. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  424. package/es/chat-engine/core/server/batch-client.js +114 -0
  425. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  426. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  427. package/es/chat-engine/core/server/connection-manager.js +84 -0
  428. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  429. package/es/chat-engine/core/server/errors.d.ts +22 -0
  430. package/es/chat-engine/core/server/errors.js +80 -0
  431. package/es/chat-engine/core/server/errors.js.map +1 -0
  432. package/es/chat-engine/core/server/index.d.ts +11 -0
  433. package/es/chat-engine/core/server/index.js +26 -0
  434. package/es/chat-engine/core/server/index.js.map +1 -0
  435. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  436. package/es/chat-engine/core/server/llm-service.js +200 -0
  437. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  438. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  439. package/es/chat-engine/core/server/sse-client.js +362 -0
  440. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  441. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  442. package/es/chat-engine/core/server/sse-parser.js +116 -0
  443. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  444. package/es/chat-engine/core/server/types.d.ts +54 -0
  445. package/es/chat-engine/core/server/types.js +28 -0
  446. package/es/chat-engine/core/server/types.js.map +1 -0
  447. package/es/chat-engine/core/store/message.d.ts +27 -0
  448. package/es/chat-engine/core/store/message.js +267 -0
  449. package/es/chat-engine/core/store/message.js.map +1 -0
  450. package/es/chat-engine/core/store/model.d.ts +8 -0
  451. package/es/chat-engine/core/store/model.js +66 -0
  452. package/es/chat-engine/core/store/model.js.map +1 -0
  453. package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
  454. package/es/chat-engine/core/store/reactiveState.js +139 -0
  455. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  456. package/es/chat-engine/core/type.d.ts +279 -0
  457. package/es/chat-engine/core/type.js +7 -0
  458. package/es/chat-engine/core/type.js.map +1 -0
  459. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  460. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  461. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  462. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  463. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  464. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  465. package/es/chat-engine/core/utils/index.d.ts +38 -0
  466. package/es/chat-engine/core/utils/index.js +125 -0
  467. package/es/chat-engine/core/utils/index.js.map +1 -0
  468. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  469. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  470. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  471. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  472. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  473. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  474. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  475. package/es/chat-engine/core/utils/logger.js +87 -0
  476. package/es/chat-engine/core/utils/logger.js.map +1 -0
  477. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  478. package/es/chat-engine/core/utils/performance.js +205 -0
  479. package/es/chat-engine/core/utils/performance.js.map +1 -0
  480. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  481. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  482. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  483. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  484. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  485. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  486. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  487. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  488. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  489. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  490. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  491. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  492. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  493. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  494. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  495. package/es/chat-engine/hooks/index.js +7 -0
  496. package/es/chat-engine/hooks/index.js.map +1 -1
  497. package/es/chat-engine/hooks/useAgentActivity.js +9 -1
  498. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  499. package/es/chat-engine/hooks/useAgentToolcall.js +9 -1
  500. package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
  501. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  502. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  503. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  504. package/es/chat-engine/index.js +8 -4
  505. package/es/chat-engine/index.js.map +1 -1
  506. package/es/chat-filecard/index.js +3 -5
  507. package/es/chat-filecard/index.js.map +1 -1
  508. package/es/chat-loading/index.js +3 -5
  509. package/es/chat-loading/index.js.map +1 -1
  510. package/es/chat-markdown/index.js +3 -5
  511. package/es/chat-markdown/index.js.map +1 -1
  512. package/es/chat-message/index.js +3 -5
  513. package/es/chat-message/index.js.map +1 -1
  514. package/es/chat-sender/index.js +3 -5
  515. package/es/chat-sender/index.js.map +1 -1
  516. package/es/chat-thinking/index.js +3 -5
  517. package/es/chat-thinking/index.js.map +1 -1
  518. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  519. package/es/chatbot/index.js +3 -5
  520. package/es/chatbot/index.js.map +1 -1
  521. package/es/index.js +10 -7
  522. package/es/index.js.map +1 -1
  523. package/package.json +16 -11
  524. package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
@@ -0,0 +1,448 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.5
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { J as JsonRenderActivityRenderer, r as reactFastCompare } from './dep-1007ac80.js';
8
+ import { A2UIJsonRenderActivityRenderer } from '../chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js';
9
+ import '../chat-engine/components/json-render/renderer/index.js';
10
+ import '../chat-engine/components/json-render/contexts/index.js';
11
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
12
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
13
+ import React, { useRef, useMemo, useCallback, memo } from 'react';
14
+ import { JsonRenderButton } from '../chat-engine/components/json-render/catalog/atomic/button.js';
15
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
16
+ import { Input, Space, Button } from 'tdesign-react';
17
+ import '../chat-engine/components/json-render/catalog/catalog-to-prompt.js';
18
+ import _typeof from '@babel/runtime/helpers/typeof';
19
+ import { getByPath } from '@json-render/core';
20
+ import { useData } from '../chat-engine/components/json-render/contexts/data.js';
21
+ import { JsonRenderCard } from '../chat-engine/components/json-render/catalog/atomic/card.js';
22
+ import { JsonRenderText } from '../chat-engine/components/json-render/catalog/atomic/text.js';
23
+ import { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderColumn, JsonRenderDivider } from '../chat-engine/components/json-render/catalog/atomic/layout.js';
24
+ import '../chat-engine/components/json-render/contexts/visibility.js';
25
+ import '../chat-engine/components/json-render/contexts/actions.js';
26
+ import '../chat-engine/components/json-render/contexts/validation.js';
27
+
28
+ var _excluded$2 = ["value", "defaultValue", "placeholder", "disabled", "readonly", "size", "type", "maxlength", "clearable", "status", "onChange", "onBlur", "onFocus", "onEnter", "onClear"],
29
+ _excluded2$1 = ["label", "valuePath", "placeholder", "type", "disabled", "size"];
30
+ function ownKeys$4(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; }
31
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ var JsonRenderInput = function JsonRenderInput(_ref) {
33
+ var element = _ref.element;
34
+ var _element$props = element.props,
35
+ value = _element$props.value,
36
+ defaultValue = _element$props.defaultValue,
37
+ placeholder = _element$props.placeholder,
38
+ _element$props$disabl = _element$props.disabled,
39
+ disabled = _element$props$disabl === void 0 ? false : _element$props$disabl,
40
+ _element$props$readon = _element$props.readonly,
41
+ readonly = _element$props$readon === void 0 ? false : _element$props$readon,
42
+ _element$props$size = _element$props.size,
43
+ size = _element$props$size === void 0 ? "medium" : _element$props$size,
44
+ _element$props$type = _element$props.type,
45
+ type = _element$props$type === void 0 ? "text" : _element$props$type,
46
+ maxlength = _element$props.maxlength,
47
+ _element$props$cleara = _element$props.clearable,
48
+ clearable = _element$props$cleara === void 0 ? false : _element$props$cleara,
49
+ status = _element$props.status,
50
+ onChange = _element$props.onChange,
51
+ onBlur = _element$props.onBlur,
52
+ onFocus = _element$props.onFocus,
53
+ onEnter = _element$props.onEnter,
54
+ onClear = _element$props.onClear,
55
+ restProps = _objectWithoutProperties(_element$props, _excluded$2);
56
+ return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
57
+ value: value,
58
+ defaultValue: defaultValue,
59
+ placeholder: placeholder,
60
+ disabled: disabled,
61
+ readonly: readonly,
62
+ size: size,
63
+ type: type,
64
+ maxlength: maxlength,
65
+ clearable: clearable,
66
+ status: status,
67
+ onChange: onChange,
68
+ onBlur: onBlur,
69
+ onFocus: onFocus,
70
+ onEnter: onEnter,
71
+ onClear: onClear
72
+ }, restProps));
73
+ };
74
+ JsonRenderInput.displayName = "JsonRenderInput";
75
+ var JsonRenderTextField = function JsonRenderTextField(_ref2) {
76
+ var _getByPath;
77
+ var element = _ref2.element;
78
+ var _element$props2 = element.props,
79
+ label = _element$props2.label,
80
+ valuePath = _element$props2.valuePath,
81
+ placeholder = _element$props2.placeholder,
82
+ _element$props2$type = _element$props2.type,
83
+ type = _element$props2$type === void 0 ? "text" : _element$props2$type,
84
+ _element$props2$disab = _element$props2.disabled,
85
+ disabled = _element$props2$disab === void 0 ? false : _element$props2$disab,
86
+ _element$props2$size = _element$props2.size,
87
+ size = _element$props2$size === void 0 ? "medium" : _element$props2$size,
88
+ restProps = _objectWithoutProperties(_element$props2, _excluded2$1);
89
+ var _useData = useData(),
90
+ data = _useData.data,
91
+ set = _useData.set;
92
+ var value = valuePath ? (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "" : "";
93
+ var handleChange = function handleChange(newValue) {
94
+ if (valuePath) {
95
+ set(valuePath, newValue);
96
+ }
97
+ };
98
+ if (label) {
99
+ return /* @__PURE__ */React.createElement(Space, {
100
+ direction: "vertical",
101
+ size: 4,
102
+ style: {
103
+ width: "100%"
104
+ }
105
+ }, /* @__PURE__ */React.createElement("label", {
106
+ style: {
107
+ fontSize: "14px",
108
+ fontWeight: 500
109
+ }
110
+ }, label), /* @__PURE__ */React.createElement(Input, _objectSpread$4({
111
+ value: value,
112
+ placeholder: placeholder,
113
+ type: type,
114
+ disabled: disabled,
115
+ size: size,
116
+ onChange: handleChange
117
+ }, restProps)));
118
+ }
119
+ return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
120
+ value: value,
121
+ placeholder: placeholder,
122
+ type: type,
123
+ disabled: disabled,
124
+ size: size,
125
+ onChange: handleChange
126
+ }, restProps));
127
+ };
128
+ JsonRenderTextField.displayName = "JsonRenderTextField";
129
+
130
+ var _excluded$1 = ["valuePath", "disabledPath", "action", "disabled"];
131
+ function ownKeys$3(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; }
132
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
133
+ function resolveActionParams(params, data) {
134
+ var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
135
+ var resolved = {};
136
+ var stack = [{
137
+ source: params,
138
+ target: resolved,
139
+ depth: 0
140
+ }];
141
+ while (stack.length > 0) {
142
+ var _stack$pop = stack.pop(),
143
+ source = _stack$pop.source,
144
+ target = _stack$pop.target,
145
+ depth = _stack$pop.depth;
146
+ if (depth >= maxDepth) {
147
+ Object.assign(target, source);
148
+ continue;
149
+ }
150
+ for (var _i = 0, _Object$entries = Object.entries(source); _i < _Object$entries.length; _i++) {
151
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
152
+ key = _Object$entries$_i[0],
153
+ value = _Object$entries$_i[1];
154
+ if (value && _typeof(value) === "object" && "path" in value) {
155
+ var pathValue = value.path;
156
+ target[key] = getByPath(data, pathValue);
157
+ } else if (value && _typeof(value) === "object" && !Array.isArray(value)) {
158
+ var nestedTarget = {};
159
+ target[key] = nestedTarget;
160
+ stack.push({
161
+ source: value,
162
+ target: nestedTarget,
163
+ depth: depth + 1
164
+ });
165
+ } else {
166
+ target[key] = value;
167
+ }
168
+ }
169
+ }
170
+ return resolved;
171
+ }
172
+ function A2UIBoundInner(_ref) {
173
+ var element = _ref.element,
174
+ children = _ref.children,
175
+ onAction = _ref.onAction,
176
+ WrappedComponent = _ref.WrappedComponent,
177
+ valueField = _ref.valueField,
178
+ onChangeField = _ref.onChangeField,
179
+ supportsAction = _ref.supportsAction,
180
+ actionTrigger = _ref.actionTrigger;
181
+ var _useData = useData(),
182
+ data = _useData.data,
183
+ set = _useData.set;
184
+ var _element$props = element.props,
185
+ valuePath = _element$props.valuePath,
186
+ disabledPath = _element$props.disabledPath,
187
+ action = _element$props.action,
188
+ staticDisabled = _element$props.disabled,
189
+ componentProps = _objectWithoutProperties(_element$props, _excluded$1);
190
+ var dataRef = useRef(data);
191
+ dataRef.current = data;
192
+ var boundValue = useMemo(function () {
193
+ if (valuePath) {
194
+ var _getByPath;
195
+ return (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "";
196
+ }
197
+ return void 0;
198
+ }, [valuePath, valuePath ? getByPath(data, valuePath) : void 0]);
199
+ var boundDisabled = useMemo(function () {
200
+ if (disabledPath) {
201
+ return Boolean(getByPath(data, disabledPath));
202
+ }
203
+ return staticDisabled !== null && staticDisabled !== void 0 ? staticDisabled : false;
204
+ }, [disabledPath, disabledPath ? getByPath(data, disabledPath) : void 0, staticDisabled]);
205
+ var setRef = useRef(set);
206
+ setRef.current = set;
207
+ var handleChange = useCallback(function (newValue) {
208
+ if (valuePath) {
209
+ setRef.current(valuePath, newValue);
210
+ }
211
+ }, [valuePath]);
212
+ var handleAction = useCallback(function () {
213
+ if (!action || !onAction) return;
214
+ var actionObj = typeof action === "string" ? {
215
+ name: action,
216
+ params: {}
217
+ } : action;
218
+ var resolvedParams = actionObj.params ? resolveActionParams(actionObj.params, dataRef.current) : {};
219
+ var resolvedAction = {
220
+ name: actionObj.name,
221
+ params: resolvedParams
222
+ };
223
+ onAction(resolvedAction);
224
+ }, [action, onAction]);
225
+ var finalProps = useMemo(function () {
226
+ var props = _objectSpread$3(_objectSpread$3({}, componentProps), {}, {
227
+ disabled: boundDisabled
228
+ });
229
+ if (valuePath !== void 0) {
230
+ props[valueField] = boundValue;
231
+ props[onChangeField] = handleChange;
232
+ }
233
+ if (supportsAction && action) {
234
+ var originalHandler = componentProps[actionTrigger];
235
+ props[actionTrigger] = function () {
236
+ if (typeof originalHandler === "function") {
237
+ originalHandler.apply(void 0, arguments);
238
+ }
239
+ handleAction.apply(void 0, arguments);
240
+ };
241
+ }
242
+ return props;
243
+ }, [componentProps, boundDisabled, valuePath, valueField, boundValue, onChangeField, handleChange, supportsAction, action, actionTrigger, handleAction]);
244
+ return /* @__PURE__ */React.createElement(WrappedComponent, _objectSpread$3({}, finalProps), children);
245
+ }
246
+ function withA2UIBinding(WrappedComponent) {
247
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
248
+ var _config$valueField = config.valueField,
249
+ valueField = _config$valueField === void 0 ? "value" : _config$valueField,
250
+ _config$onChangeField = config.onChangeField,
251
+ onChangeField = _config$onChangeField === void 0 ? "onChange" : _config$onChangeField,
252
+ _config$supportsActio = config.supportsAction,
253
+ supportsAction = _config$supportsActio === void 0 ? false : _config$supportsActio,
254
+ _config$actionTrigger = config.actionTrigger,
255
+ actionTrigger = _config$actionTrigger === void 0 ? "onClick" : _config$actionTrigger;
256
+ var A2UIBoundComponent = function A2UIBoundComponent(props) {
257
+ return /* @__PURE__ */React.createElement(A2UIBoundInner, _objectSpread$3(_objectSpread$3({}, props), {}, {
258
+ WrappedComponent: WrappedComponent,
259
+ valueField: valueField,
260
+ onChangeField: onChangeField,
261
+ supportsAction: supportsAction,
262
+ actionTrigger: actionTrigger
263
+ }));
264
+ };
265
+ A2UIBoundComponent.displayName = "withA2UIBinding(".concat(WrappedComponent.displayName || WrappedComponent.name || "Component", ")");
266
+ return /*#__PURE__*/memo(A2UIBoundComponent, function (prevProps, nextProps) {
267
+ if (prevProps.element === nextProps.element) return true;
268
+ var prevEl = prevProps.element;
269
+ var nextEl = nextProps.element;
270
+ if (prevEl.type !== nextEl.type) return false;
271
+ if (prevEl.key !== nextEl.key) return false;
272
+ var prevElProps = prevEl.props || {};
273
+ var nextElProps = nextEl.props || {};
274
+ var prevKeys = Object.keys(prevElProps);
275
+ var nextKeys = Object.keys(nextElProps);
276
+ if (prevKeys.length !== nextKeys.length) return false;
277
+ for (var _i2 = 0, _prevKeys = prevKeys; _i2 < _prevKeys.length; _i2++) {
278
+ var key = _prevKeys[_i2];
279
+ if (prevElProps[key] !== nextElProps[key]) return false;
280
+ }
281
+ return true;
282
+ });
283
+ }
284
+
285
+ var _excluded = ["label"],
286
+ _excluded2 = ["label", "children"];
287
+ function ownKeys$2(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; }
288
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
289
+ var BaseInput = function BaseInput(_ref) {
290
+ var label = _ref.label,
291
+ props = _objectWithoutProperties(_ref, _excluded);
292
+ if (label) {
293
+ return /* @__PURE__ */React.createElement(Space, {
294
+ direction: "vertical",
295
+ size: 4,
296
+ style: {
297
+ width: "100%"
298
+ }
299
+ }, /* @__PURE__ */React.createElement("label", {
300
+ style: {
301
+ fontSize: "14px",
302
+ fontWeight: 500
303
+ }
304
+ }, label), /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props)));
305
+ }
306
+ return /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props));
307
+ };
308
+ BaseInput.displayName = "BaseInput";
309
+ var BaseButton = function BaseButton(_ref2) {
310
+ var label = _ref2.label,
311
+ children = _ref2.children,
312
+ props = _objectWithoutProperties(_ref2, _excluded2);
313
+ var content = label || children;
314
+ return /* @__PURE__ */React.createElement(Button, _objectSpread$2({}, props), content);
315
+ };
316
+ BaseButton.displayName = "BaseButton";
317
+ var A2UITextField = withA2UIBinding(BaseInput, {
318
+ valueField: "value",
319
+ onChangeField: "onChange",
320
+ supportsAction: false
321
+ });
322
+ var A2UIButton = withA2UIBinding(BaseButton, {
323
+ supportsAction: true
324
+ });
325
+ var a2uiRegistry = {
326
+ TextField: A2UITextField,
327
+ Button: A2UIButton,
328
+ Card: JsonRenderCard,
329
+ Text: JsonRenderText,
330
+ Row: JsonRenderRow,
331
+ Col: JsonRenderCol,
332
+ Space: JsonRenderSpace,
333
+ Column: JsonRenderColumn,
334
+ Divider: JsonRenderDivider
335
+ };
336
+ function createA2UIRegistry(customComponents) {
337
+ return _objectSpread$2(_objectSpread$2({}, a2uiRegistry), customComponents);
338
+ }
339
+
340
+ function ownKeys$1(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; }
341
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
342
+ function createJsonRenderActivityConfig() {
343
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
344
+ var _options$activityType = options.activityType,
345
+ activityType = _options$activityType === void 0 ? "json-render" : _options$activityType,
346
+ _options$registry = options.registry,
347
+ registry = _options$registry === void 0 ? tdesignRegistry : _options$registry,
348
+ _options$actionHandle = options.actionHandlers,
349
+ actionHandlers = _options$actionHandle === void 0 ? {} : _options$actionHandle,
350
+ _options$debug = options.debug,
351
+ debug = _options$debug === void 0 ? false : _options$debug,
352
+ _options$description = options.description,
353
+ description = _options$description === void 0 ? "json-render \u52A8\u6001 UI \u6E32\u67D3\u5668" : _options$description;
354
+ return {
355
+ activityType: activityType,
356
+ component: /*#__PURE__*/React.memo(function (props) {
357
+ return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, _objectSpread$1(_objectSpread$1({}, props), {}, {
358
+ registry: registry,
359
+ actionHandlers: actionHandlers,
360
+ debug: debug
361
+ }));
362
+ }),
363
+ description: description
364
+ };
365
+ }
366
+ function createA2UIJsonRenderActivityConfig() {
367
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
368
+ var _options$activityType2 = options.activityType,
369
+ activityType = _options$activityType2 === void 0 ? "a2ui-json-render" : _options$activityType2,
370
+ _options$registry2 = options.registry,
371
+ registry = _options$registry2 === void 0 ? a2uiRegistry : _options$registry2,
372
+ _options$actionHandle2 = options.actionHandlers,
373
+ actionHandlers = _options$actionHandle2 === void 0 ? {} : _options$actionHandle2,
374
+ _options$debug2 = options.debug,
375
+ debug = _options$debug2 === void 0 ? false : _options$debug2,
376
+ _options$description2 = options.description,
377
+ description = _options$description2 === void 0 ? "A2UI + json-render \u9002\u914D\u6E32\u67D3\u5668" : _options$description2;
378
+ return {
379
+ activityType: activityType,
380
+ component: /*#__PURE__*/React.memo(function (props) {
381
+ return /* @__PURE__ */React.createElement(A2UIJsonRenderActivityRenderer, _objectSpread$1(_objectSpread$1({}, props), {}, {
382
+ registry: registry,
383
+ actionHandlers: actionHandlers,
384
+ debug: debug
385
+ }));
386
+ }),
387
+ description: description
388
+ };
389
+ }
390
+
391
+ 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; }
392
+ 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; }
393
+ function withStableProps(Component) {
394
+ return /*#__PURE__*/React.memo(Component, function (prevProps, nextProps) {
395
+ var prevElement = prevProps.element;
396
+ var nextElement = nextProps.element;
397
+ if (prevProps.children !== nextProps.children) {
398
+ return false;
399
+ }
400
+ if (prevElement === nextElement) return true;
401
+ if (prevElement.id !== nextElement.id || prevElement.type !== nextElement.type) {
402
+ return false;
403
+ }
404
+ return reactFastCompare(prevElement.props, nextElement.props);
405
+ });
406
+ }
407
+ var tdesignRegistry = {
408
+ Button: JsonRenderButton,
409
+ Input: JsonRenderInput,
410
+ TextField: JsonRenderTextField,
411
+ Card: JsonRenderCard,
412
+ Text: JsonRenderText,
413
+ Row: JsonRenderRow,
414
+ Col: JsonRenderCol,
415
+ Space: JsonRenderSpace,
416
+ Column: JsonRenderColumn,
417
+ Divider: JsonRenderDivider,
418
+ button: JsonRenderButton,
419
+ input: JsonRenderInput,
420
+ textfield: JsonRenderTextField,
421
+ card: JsonRenderCard,
422
+ text: JsonRenderText,
423
+ row: JsonRenderRow,
424
+ col: JsonRenderCol,
425
+ space: JsonRenderSpace,
426
+ column: JsonRenderColumn,
427
+ divider: JsonRenderDivider
428
+ };
429
+ function createCustomRegistry(customComponents) {
430
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
431
+ var _options$enableStable = options.enableStableProps,
432
+ enableStableProps = _options$enableStable === void 0 ? true : _options$enableStable;
433
+ var processedComponents = {};
434
+ if (enableStableProps) {
435
+ for (var _i = 0, _Object$entries = Object.entries(customComponents); _i < _Object$entries.length; _i++) {
436
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
437
+ name = _Object$entries$_i[0],
438
+ Component = _Object$entries$_i[1];
439
+ processedComponents[name] = withStableProps(Component);
440
+ }
441
+ } else {
442
+ Object.assign(processedComponents, customComponents);
443
+ }
444
+ return _objectSpread(_objectSpread({}, tdesignRegistry), processedComponents);
445
+ }
446
+
447
+ export { A2UITextField as A, JsonRenderInput as J, a2uiRegistry as a, createA2UIRegistry as b, createCustomRegistry as c, A2UIButton as d, withA2UIBinding as e, createJsonRenderActivityConfig as f, createA2UIJsonRenderActivityConfig as g, JsonRenderTextField as h, tdesignRegistry as t, withStableProps as w };
448
+ //# sourceMappingURL=dep-56f5e08e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-56f5e08e.js","sources":["../../../pro-components/chat/chat-engine/components/json-render/catalog/atomic/input.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/a2ui-binding.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/a2ui-registry.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/config.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/index.ts"],"sourcesContent":["/**\n * TDesign Input 组件适配 json-render\n * \n * 这是纯净的 json-render Input 组件,不包含 A2UI 协议绑定逻辑\n * 如需 A2UI 支持,请使用 a2uiRegistry 中的 A2UITextField\n */\n\nimport React from 'react';\nimport { Input, Space } from 'tdesign-react';\nimport type { InputProps } from 'tdesign-react';\nimport type { ComponentRenderProps } from '../../types';\nimport { useData } from '../..';\nimport { getByPath } from '@json-render/core';\n\n/**\n * json-render Input 组件(基础版本,不带数据绑定)\n */\nexport const JsonRenderInput: React.FC<ComponentRenderProps> = ({ element }) => {\n const {\n value,\n defaultValue,\n placeholder,\n disabled = false,\n readonly = false,\n size = 'medium',\n type = 'text',\n maxlength,\n clearable = false,\n status,\n onChange,\n onBlur,\n onFocus,\n onEnter,\n onClear,\n ...restProps\n } = element.props as InputProps;\n\n return (\n <Input\n value={value}\n defaultValue={defaultValue}\n placeholder={placeholder}\n disabled={disabled}\n readonly={readonly}\n size={size}\n type={type}\n maxlength={maxlength}\n clearable={clearable}\n status={status}\n onChange={onChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onEnter={onEnter}\n onClear={onClear}\n {...restProps}\n />\n );\n};\n\nJsonRenderInput.displayName = 'JsonRenderInput';\n\n/**\n * json-render TextField 组件(带 label 和 valuePath 数据绑定)\n * \n * 这是标准 json-render 的 TextField,支持 valuePath 但不支持 A2UI 的 disabledPath\n * 如需完整 A2UI 支持,请使用 a2uiRegistry 中的 A2UITextField\n */\nexport const JsonRenderTextField: React.FC<ComponentRenderProps> = ({ element }) => {\n const {\n label,\n valuePath,\n placeholder,\n type = 'text',\n disabled = false,\n size = 'medium',\n ...restProps\n } = element.props as InputProps & {\n label?: string;\n valuePath?: string;\n };\n\n const { data, set } = useData();\n\n const value = valuePath ? (getByPath(data, valuePath) as string) ?? '' : '';\n\n const handleChange = (newValue: string) => {\n if (valuePath) {\n set(valuePath, newValue);\n }\n };\n\n if (label) {\n return (\n <Space direction=\"vertical\" size={4} style={{ width: '100%' }}>\n <label style={{ fontSize: '14px', fontWeight: 500 }}>{label}</label>\n <Input\n value={value}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n size={size}\n onChange={handleChange}\n {...restProps}\n />\n </Space>\n );\n }\n\n return (\n <Input\n value={value}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n size={size}\n onChange={handleChange}\n {...restProps}\n />\n );\n};\n\nJsonRenderTextField.displayName = 'JsonRenderTextField';\n\nexport default JsonRenderInput;\n","/**\n * A2UI 数据绑定 HOC\n * \n * 统一处理 A2UI 协议的标准字段:\n * - valuePath: 值的数据绑定路径(如 /userInfo/name)\n * - disabledPath: disabled 状态的数据绑定路径(如 /formDisabled)\n * - action.context: action 参数中的动态数据绑定\n * \n * 性能优化:\n * - 使用 React.memo + 精确值比较避免不必要渲染\n * - Action 参数延迟解析(触发时才计算)\n * - 使用 useRef 缓存回调函数避免重建\n * \n * 使用方式:\n * ```tsx\n * // 创建支持 A2UI 绑定的 Input\n * const A2UIInput = withA2UIBinding(Input, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * });\n * \n * // 创建支持 action 的 Button\n * const A2UIButton = withA2UIBinding(Button, {\n * supportsAction: true,\n * actionTrigger: 'onClick', // 默认\n * });\n * \n * // Input 支持 onEnter 触发 action\n * const A2UISearchInput = withA2UIBinding(Input, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * supportsAction: true,\n * actionTrigger: 'onEnter',\n * });\n * ```\n */\n\nimport React, { useCallback, useRef, memo, useMemo } from 'react';\nimport type { ComponentRenderProps } from '../renderer';\nimport { getByPath } from '@json-render/core';\nimport type { Action } from '@json-render/core';\nimport { useData } from '..';\n\n/**\n * A2UI 绑定配置\n */\nexport interface A2UIBindingConfig {\n /** 组件的值字段名,默认 'value' */\n valueField?: string;\n /** 组件的 onChange 字段名,默认 'onChange' */\n onChangeField?: string;\n /** 是否支持 action 绑定,默认 false */\n supportsAction?: boolean;\n /** \n * Action 触发事件名,默认 'onClick'\n * 可设置为 'onEnter'、'onChange' 等\n */\n actionTrigger?: string;\n}\n\n/**\n * 解析 action params 中的动态数据绑定\n * 将 { path: '/xxx' } 格式的引用替换为实际数据\n * \n * 性能优化:使用迭代替代递归,减少调用栈深度\n */\nfunction resolveActionParams(\n params: Record<string, unknown>,\n data: Record<string, unknown>,\n maxDepth = 10,\n): Record<string, unknown> {\n const resolved: Record<string, unknown> = {};\n \n // 使用栈迭代处理,避免深递归\n const stack: Array<{\n source: Record<string, unknown>;\n target: Record<string, unknown>;\n depth: number;\n }> = [{ source: params, target: resolved, depth: 0 }];\n \n while (stack.length > 0) {\n const { source, target, depth } = stack.pop()!;\n \n if (depth >= maxDepth) {\n // 防止无限递归\n Object.assign(target, source);\n continue;\n }\n \n for (const [key, value] of Object.entries(source)) {\n if (value && typeof value === 'object' && 'path' in value) {\n // 动态绑定:{ path: '/userInfo' } → 实际数据\n const pathValue = (value as { path: string }).path;\n target[key] = getByPath(data, pathValue);\n } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n // 嵌套对象,加入栈处理\n const nestedTarget: Record<string, unknown> = {};\n target[key] = nestedTarget;\n stack.push({\n source: value as Record<string, unknown>,\n target: nestedTarget,\n depth: depth + 1,\n });\n } else {\n // 静态值直接保留\n target[key] = value;\n }\n }\n }\n \n return resolved;\n}\n\n/**\n * A2UI 数据绑定 HOC 内部组件\n * 处理实际的数据绑定逻辑\n */\ninterface A2UIBoundInnerProps<P> extends ComponentRenderProps {\n WrappedComponent: React.ComponentType<P>;\n valueField: string;\n onChangeField: string;\n supportsAction: boolean;\n actionTrigger: string;\n}\n\nfunction A2UIBoundInner<P extends Record<string, any>>({\n element,\n children,\n onAction,\n WrappedComponent,\n valueField,\n onChangeField,\n supportsAction,\n actionTrigger,\n}: A2UIBoundInnerProps<P>) {\n const { data, set } = useData();\n \n // 提取 A2UI 特有字段\n const {\n valuePath,\n disabledPath,\n action,\n disabled: staticDisabled,\n ...componentProps\n } = element.props as P & {\n valuePath?: string;\n disabledPath?: string;\n action?: string | Action;\n disabled?: boolean;\n };\n\n // 使用 ref 缓存 data,action 触发时获取最新值\n const dataRef = useRef(data);\n dataRef.current = data;\n\n // 提取绑定的值(只在真正需要的路径变化时才变)\n const boundValue = useMemo(() => {\n if (valuePath) {\n return getByPath(data, valuePath) ?? '';\n }\n return undefined;\n }, [valuePath, valuePath ? getByPath(data, valuePath) : undefined]);\n\n // 提取 disabled 状态\n const boundDisabled = useMemo(() => {\n if (disabledPath) {\n return Boolean(getByPath(data, disabledPath));\n }\n return staticDisabled ?? false;\n }, [disabledPath, disabledPath ? getByPath(data, disabledPath) : undefined, staticDisabled]);\n\n // 使用 ref 缓存 set 函数,避免 handleChange 重建\n const setRef = useRef(set);\n setRef.current = set;\n\n // 创建稳定的 onChange 处理器\n const handleChange = useCallback((newValue: unknown) => {\n if (valuePath) {\n setRef.current(valuePath, newValue);\n }\n }, [valuePath]);\n\n // 创建稳定的 action 处理器(延迟解析,触发时才获取最新 data)\n const handleAction = useCallback(() => {\n if (!action || !onAction) return;\n\n // 标准化 action 格式\n const actionObj: Action = typeof action === 'string'\n ? { name: action, params: {} }\n : action;\n\n // 使用最新的 data 解析参数\n const resolvedParams = actionObj.params\n ? resolveActionParams(actionObj.params as Record<string, unknown>, dataRef.current)\n : {};\n\n const resolvedAction: Action = {\n name: actionObj.name,\n params: resolvedParams,\n };\n\n onAction(resolvedAction);\n }, [action, onAction]);\n\n // 构建最终 props\n const finalProps = useMemo(() => {\n const props: any = {\n ...componentProps,\n disabled: boundDisabled,\n };\n\n // 如果有 valuePath,注入值和 onChange\n if (valuePath !== undefined) {\n props[valueField] = boundValue;\n props[onChangeField] = handleChange;\n }\n\n // 如果支持 action,注入到指定的触发事件\n if (supportsAction && action) {\n const originalHandler = componentProps[actionTrigger];\n props[actionTrigger] = (...args: unknown[]) => {\n // 先调用原始处理器\n if (typeof originalHandler === 'function') {\n originalHandler(...args);\n }\n // 再触发 action\n handleAction(...args);\n };\n }\n\n return props;\n }, [\n componentProps,\n boundDisabled,\n valuePath,\n valueField,\n boundValue,\n onChangeField,\n handleChange,\n supportsAction,\n action,\n actionTrigger,\n handleAction,\n ]);\n\n return (\n <WrappedComponent {...finalProps as P}>\n {children}\n </WrappedComponent>\n );\n}\n\n/**\n * A2UI 数据绑定 HOC\n * \n * 自动处理 A2UI 协议的标准字段,让原子组件保持纯净\n * \n * @param WrappedComponent 原始组件\n * @param config 绑定配置\n */\nexport function withA2UIBinding<P extends Record<string, any>>(\n WrappedComponent: React.ComponentType<P>,\n config: A2UIBindingConfig = {},\n): React.FC<ComponentRenderProps> {\n const {\n valueField = 'value',\n onChangeField = 'onChange',\n supportsAction = false,\n actionTrigger = 'onClick',\n } = config;\n\n const A2UIBoundComponent: React.FC<ComponentRenderProps> = (props) => {\n return (\n <A2UIBoundInner\n {...props}\n WrappedComponent={WrappedComponent}\n valueField={valueField}\n onChangeField={onChangeField}\n supportsAction={supportsAction}\n actionTrigger={actionTrigger}\n />\n );\n };\n\n A2UIBoundComponent.displayName = `withA2UIBinding(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n\n // 使用 memo 包装,通过精确比较避免不必要渲染\n return memo(A2UIBoundComponent, (prevProps, nextProps) => {\n // element 引用相同,跳过渲染\n if (prevProps.element === nextProps.element) return true;\n \n // 比较关键字段\n const prevEl = prevProps.element;\n const nextEl = nextProps.element;\n \n if (prevEl.type !== nextEl.type) return false;\n if (prevEl.key !== nextEl.key) return false;\n \n // 比较 props(浅比较)\n const prevElProps = prevEl.props || {};\n const nextElProps = nextEl.props || {};\n const prevKeys = Object.keys(prevElProps);\n const nextKeys = Object.keys(nextElProps);\n \n if (prevKeys.length !== nextKeys.length) return false;\n \n for (const key of prevKeys) {\n if (prevElProps[key] !== nextElProps[key]) return false;\n }\n \n return true;\n });\n}\n\nexport default withA2UIBinding;\n","/**\n * A2UI 专用组件注册表\n * \n * 使用 withA2UIBinding HOC 包装原子组件,自动处理 A2UI 协议字段:\n * - valuePath: 值的数据绑定(如 /userInfo/name)\n * - disabledPath: disabled 状态的数据绑定(如 /formDisabled)\n * - action.context: action 参数中的动态数据绑定({ path: '/xxx' } 格式)\n * \n * 与 tdesignRegistry 的区别:\n * - tdesignRegistry: 纯净的 TDesign 组件,用于直接的 json-render schema\n * - a2uiRegistry: 支持 A2UI 协议的组件,用于 A2UI → json-render 转换后的渲染\n * \n * 使用方式:\n * ```tsx\n * // 业务使用 A2UI 协议时\n * const config = createA2UIJsonRenderActivityConfig({\n * registry: a2uiRegistry, // 内置 A2UI 组件\n * // 或扩展自定义组件\n * registry: createA2UIRegistry({\n * MyCustomComponent: withA2UIBinding(MyComponent, { supportsAction: true }),\n * }),\n * });\n * ```\n */\n\nimport React from 'react';\nimport { Input, Button, Space } from 'tdesign-react';\nimport type { InputProps, ButtonProps } from 'tdesign-react';\nimport type { ComponentRegistry } from '../renderer';\nimport { withA2UIBinding } from './a2ui-binding';\n\n// 导入纯净组件和布局组件(这些不需要 A2UI 绑定)\nimport { JsonRenderCard } from '../catalog/atomic/card';\nimport { JsonRenderText } from '../catalog/atomic/text';\nimport {\n JsonRenderRow,\n JsonRenderCol,\n JsonRenderSpace,\n JsonRenderColumn,\n JsonRenderDivider,\n} from '../catalog/atomic/layout';\n\n// ==================== 基础组件包装器 ====================\n\n/**\n * 基础 Input 组件(用于 HOC 包装)\n * 接收标准 InputProps,由 HOC 注入 value/onChange/disabled\n */\nconst BaseInput: React.FC<InputProps & { label?: string }> = ({\n label,\n ...props\n}) => {\n if (label) {\n return (\n <Space direction=\"vertical\" size={4} style={{ width: '100%' }}>\n <label style={{ fontSize: '14px', fontWeight: 500 }}>{label}</label>\n <Input {...props} />\n </Space>\n );\n }\n return <Input {...props} />;\n};\n\nBaseInput.displayName = 'BaseInput';\n\n/**\n * 基础 Button 组件(用于 HOC 包装)\n * 接收标准 ButtonProps,由 HOC 注入 onClick/disabled\n */\nconst BaseButton: React.FC<ButtonProps & { label?: string }> = ({\n label,\n children,\n ...props\n}) => {\n const content = label || children;\n return <Button {...props}>{content}</Button>;\n};\n\nBaseButton.displayName = 'BaseButton';\n\n// ==================== A2UI 组件(通过 HOC 生成)====================\n\n/**\n * A2UI TextField 组件\n * 自动支持 valuePath/disabledPath 数据绑定\n */\nexport const A2UITextField = withA2UIBinding<InputProps & { label?: string }>(\n BaseInput,\n {\n valueField: 'value',\n onChangeField: 'onChange',\n supportsAction: false,\n },\n);\n\n/**\n * A2UI Button 组件\n * 自动支持 disabledPath 和 action.context 动态绑定\n */\nexport const A2UIButton = withA2UIBinding<ButtonProps & { label?: string }>(\n BaseButton,\n {\n supportsAction: true,\n },\n);\n\n// ==================== A2UI Registry ====================\n\n/**\n * A2UI 专用组件注册表\n * \n * 用于 A2UI 协议转换后的渲染,组件自动支持:\n * - valuePath: 值绑定到 dataModel\n * - disabledPath: disabled 状态绑定到 dataModel\n * - action.context: action 参数动态解析\n * \n * @example\n * ```tsx\n * import { a2uiRegistry } from './catalog/a2ui-registry';\n * \n * const config = createA2UIJsonRenderActivityConfig({\n * registry: a2uiRegistry, // 使用 A2UI 专用 registry\n * actionHandlers: { ... },\n * });\n * ```\n */\nexport const a2uiRegistry: ComponentRegistry = {\n // A2UI 绑定组件(通过 HOC 包装)\n TextField: A2UITextField,\n Button: A2UIButton,\n \n // 纯净组件(布局类不需要 A2UI 绑定)\n Card: JsonRenderCard,\n Text: JsonRenderText,\n Row: JsonRenderRow,\n Col: JsonRenderCol,\n Space: JsonRenderSpace,\n Column: JsonRenderColumn,\n Divider: JsonRenderDivider,\n};\n\n/**\n * 创建自定义 A2UI 组件注册表\n * \n * 基于 a2uiRegistry 扩展自定义组件\n * 自定义组件如需支持 A2UI 协议,请使用 withA2UIBinding 包装\n * \n * @example\n * ```tsx\n * import { createA2UIRegistry, withA2UIBinding } from '@tdesign-react/chat';\n * \n * // 创建支持 A2UI 的自定义组件\n * const A2UIDatePicker = withA2UIBinding(DatePicker, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * });\n * \n * const customRegistry = createA2UIRegistry({\n * DatePicker: A2UIDatePicker,\n * });\n * ```\n */\nexport function createA2UIRegistry(\n customComponents: ComponentRegistry,\n): ComponentRegistry {\n return {\n ...a2uiRegistry,\n ...customComponents,\n };\n}\n\nexport default a2uiRegistry;\n","/**\n * json-render Activity 配置工厂函数\n * 便捷创建 ActivityConfig 用于注册\n */\n\nimport React from 'react';\nimport type { ComponentRegistry } from '../renderer';\nimport type { ActivityConfig } from '../../activity/types';\nimport type { JsonRenderActivityProps } from '../types';\nimport { JsonRenderActivityRenderer } from '../renderer/JsonRenderActivityRenderer';\nimport { A2UIJsonRenderActivityRenderer } from '../renderer/A2UIJsonRenderActivityRenderer';\nimport { a2uiRegistry, tdesignRegistry } from '.';\n\n/**\n * json-render Activity 配置选项\n */\nexport interface JsonRenderActivityConfigOptions {\n /** Activity 类型标识,默认 'json-render' */\n activityType?: string;\n /** 组件注册表,默认使用 tdesignRegistry */\n registry?: ComponentRegistry;\n /** \n * Action 处理器映射表\n * \n * 重要:json-render 采用预定义 action 模式\n * - AI/服务端只能生成在此预定义的 action 名称\n * - 每个 action 对应一个具体的处理函数\n * - 这确保了生成式 UI 的安全性和可控性\n * \n * @example\n * ```tsx\n * actionHandlers: {\n * // 表单提交\n * submit: async (params) => {\n * await api.submitForm(params);\n * MessagePlugin.success('提交成功');\n * },\n * \n * // 表单重置\n * reset: async (params) => {\n * // 注意:如需清空表单,应在组件内部使用 useData().update()\n * MessagePlugin.info('表单已重置');\n * },\n * \n * // 删除操作\n * delete: async (params) => {\n * await api.deleteItem(params.id);\n * },\n * \n * // 刷新数据\n * refresh: async () => {\n * await refetchData();\n * }\n * }\n * ```\n */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n /** 描述信息 */\n description?: string;\n}\n\n/**\n * 创建 json-render Activity 配置\n * \n * @example\n * 基础用法 - 预定义 action handlers\n * ```tsx\n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * activityType: 'json-render',\n * actionHandlers: {\n * submit: async (params) => {\n * console.log('提交表单:', params);\n * await api.submit(params);\n * MessagePlugin.success('提交成功');\n * },\n * reset: async (params) => {\n * MessagePlugin.info('表单已重置');\n * },\n * delete: async (params) => {\n * await api.delete(params.id);\n * }\n * },\n * });\n * \n * useAgentActivity(jsonRenderConfig);\n * ```\n * \n * @example\n * 结合 ChatEngine 发送消息到服务端\n * ```tsx\n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * actionHandlers: {\n * submit: async (params) => {\n * // 发送到服务端处理\n * await chatEngine.sendAIMessage({\n * params: { userActionMessage: { name: 'submit', params } },\n * sendRequest: true,\n * });\n * },\n * reset: async (params) => {\n * // 本地处理,不发送到服务端\n * MessagePlugin.info('已重置');\n * },\n * },\n * });\n * ```\n * \n * @example\n * 配合自定义组件注册表\n * ```tsx\n * import { createCustomRegistry } from './catalog';\n * \n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * registry: createCustomRegistry({\n * MyCustomComponent: MyComponentRenderer,\n * }),\n * actionHandlers: {\n * custom_action: async (params) => {\n * // 处理自定义操作\n * },\n * },\n * });\n * ```\n */\nexport function createJsonRenderActivityConfig(\n options: JsonRenderActivityConfigOptions = {},\n): ActivityConfig<JsonRenderActivityProps['content']> {\n const {\n activityType = 'json-render',\n registry = tdesignRegistry,\n actionHandlers = {},\n debug = false,\n description = 'json-render 动态 UI 渲染器',\n } = options;\n\n return {\n activityType,\n component: React.memo((props: JsonRenderActivityProps) => (\n <JsonRenderActivityRenderer\n {...props}\n registry={registry}\n actionHandlers={actionHandlers}\n debug={debug}\n />\n )),\n description,\n };\n}\n\n/**\n * 创建 A2UI + json-render Activity 配置\n * 支持将 A2UI 协议转换为 json-render Schema 渲染\n * \n * 注意:默认使用 a2uiRegistry,自动支持 valuePath/disabledPath/action.context 绑定\n * \n * @example\n * ```tsx\n * const a2uiJsonRenderConfig = createA2UIJsonRenderActivityConfig({\n * activityType: 'a2ui-json-render',\n * actionHandlers: {\n * submit: async (params) => {\n * console.log('提交:', params);\n * },\n * cancel: async (params) => {\n * console.log('取消');\n * },\n * },\n * });\n * \n * useAgentActivity(a2uiJsonRenderConfig);\n * ```\n */\nexport function createA2UIJsonRenderActivityConfig(\n options: JsonRenderActivityConfigOptions = {},\n): ActivityConfig<any> {\n const {\n activityType = 'a2ui-json-render',\n registry = a2uiRegistry, // A2UI 默认使用 a2uiRegistry\n actionHandlers = {},\n debug = false,\n description = 'A2UI + json-render 适配渲染器',\n } = options;\n\n return {\n activityType,\n component: React.memo((props: any) => (\n <A2UIJsonRenderActivityRenderer\n {...props}\n registry={registry}\n actionHandlers={actionHandlers}\n debug={debug}\n />\n )),\n description,\n };\n}\n","/**\n * TDesign ComponentRegistry(React 组件注册表)\n * 用于 json-render 渲染层的组件映射\n * \n * 重要概念区分:\n * - ComponentRegistry(本文件):渲染层,映射组件名到 React 组件(传给 Renderer)\n * - Catalog(catalog.ts):约束层,定义组件 props schema 和 actions 白名单(给 AI/服务端)\n * \n * Registry 分类:\n * - tdesignRegistry: 纯净的 TDesign 组件,用于直接的 json-render schema\n * - a2uiRegistry: 支持 A2UI 协议的组件,自动处理 valuePath/disabledPath/action.context\n * \n * 详见:ARCHITECTURE.md\n */\n\nimport React from 'react';\nimport isEqual from 'react-fast-compare';\nimport type { ComponentRegistry, ComponentRenderProps } from '../renderer';\nimport { JsonRenderButton } from '../catalog/atomic/button';\nimport { JsonRenderInput, JsonRenderTextField } from '../catalog/atomic/input';\nimport { JsonRenderCard } from '../catalog/atomic/card';\nimport { JsonRenderText } from '../catalog/atomic/text';\nimport {\n JsonRenderRow,\n JsonRenderCol,\n JsonRenderSpace,\n JsonRenderColumn,\n JsonRenderDivider,\n} from '../catalog/atomic/layout';\n\n/**\n * 高性能组件包装器\n * 使用 React.memo + react-fast-compare 实现深比较\n * \n * 原理:\n * - json-render 每次渲染都会创建新的 element 对象引用\n * - 默认的 React.memo 浅比较会认为 props 变化了\n * - 使用 react-fast-compare 进行高效深比较,只在内容真正变化时才重渲染\n * \n * 性能说明(来自 performance_suggestion.md):\n * - react-fast-compare 比 JSON.stringify 更快(短路比较)\n * - 发现第一个不同属性时立即停止,不会遍历整个对象\n * - 处理了循环引用等边缘情况\n * \n * 重要:必须同时比较 element.props 和 children\n * - element.props 变化:组件自身的属性发生变化\n * - children 变化:子组件树发生变化(深层更新场景)\n */\nexport function withStableProps<P extends ComponentRenderProps>(\n Component: React.ComponentType<P>,\n): React.MemoExoticComponent<React.ComponentType<P>> {\n return React.memo(Component, (prevProps, nextProps) => {\n const prevElement = prevProps.element as any;\n const nextElement = nextProps.element as any;\n \n // 1. children 变化必须重渲染\n // 深层更新时,父组件的 element 可能不变,但 children(子组件树)会变化\n if (prevProps.children !== nextProps.children) {\n return false;\n }\n \n // 2. element 引用相同,跳过渲染\n if (prevElement === nextElement) return true;\n \n // 3. 快速路径:id 或 type 不同,需要重渲染\n if (prevElement.id !== nextElement.id || prevElement.type !== nextElement.type) {\n return false;\n }\n \n // 4. 使用 react-fast-compare 进行高效深比较\n return isEqual(prevElement.props, nextElement.props);\n });\n}\n\n/**\n * TDesign 内置组件注册表(渲染层)\n * \n * 这是框架内置的原子组件集合,提供基础 UI 渲染能力\n * 业务层可以通过 createCustomRegistry 扩展自定义组件\n * \n * 使用方式:\n * ```tsx\n * import { tdesignRegistry } from '@tdesign-react/chat';\n * \n * const config = createJsonRenderActivityConfig({\n * registry: tdesignRegistry,\n * actionHandlers: { ... },\n * });\n * ```\n * \n * Schema 示例:\n * ```json\n * {\n * \"root\": \"btn1\",\n * \"elements\": {\n * \"btn1\": {\n * \"key\": \"btn1\",\n * \"type\": \"Button\",\n * \"props\": {\n * \"variant\": \"base\",\n * \"theme\": \"primary\",\n * \"children\": \"点击我\",\n * \"action\": \"submit\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport const tdesignRegistry: ComponentRegistry = {\n // 基础组件\n Button: JsonRenderButton,\n Input: JsonRenderInput,\n TextField: JsonRenderTextField,\n Card: JsonRenderCard,\n Text: JsonRenderText,\n\n // 布局组件\n Row: JsonRenderRow,\n Col: JsonRenderCol,\n Space: JsonRenderSpace,\n Column: JsonRenderColumn,\n Divider: JsonRenderDivider,\n\n // 别名(兼容不同命名风格)\n button: JsonRenderButton,\n input: JsonRenderInput,\n textfield: JsonRenderTextField,\n card: JsonRenderCard,\n text: JsonRenderText,\n row: JsonRenderRow,\n col: JsonRenderCol,\n space: JsonRenderSpace,\n column: JsonRenderColumn,\n divider: JsonRenderDivider,\n};\n\n/**\n * createCustomRegistry 配置选项\n */\nexport interface CreateCustomRegistryOptions {\n /**\n * 是否自动包装组件以优化性能\n * 使用 React.memo + react-fast-compare 深比较 element.props\n * \n * @default true\n */\n enableStableProps?: boolean;\n}\n\n/**\n * 创建自定义组件注册表(扩展内置组件)\n * \n * 用于渲染层:扩展自定义业务组件的 React 实现\n * \n * 性能优化(默认开启):\n * - 自动使用 withStableProps 包装组件\n * - 使用 react-fast-compare 进行高效深比较\n * - 业务组件无需手动写 React.memo 比较函数\n * \n * @example\n * ```tsx\n * import { createCustomRegistry } from '@tdesign-react/chat';\n * import type { ComponentRenderProps } from '@json-render/react';\n * \n * // 定义自定义组件(无需手动 React.memo)\n * const StatusCard: React.FC<ComponentRenderProps> = ({ element }) => (\n * <div className=\"status-card\">{element.props.status}</div>\n * );\n * \n * const ProgressBar: React.FC<ComponentRenderProps> = ({ element }) => (\n * <div className=\"progress-bar\" style={{ width: `${element.props.percentage}%` }} />\n * );\n * \n * // 扩展 registry(自动优化性能)\n * const customRegistry = createCustomRegistry({\n * StatusCard,\n * ProgressBar,\n * });\n * \n * // 禁用自动优化(如果需要自己控制)\n * const customRegistry = createCustomRegistry(\n * { StatusCard, ProgressBar },\n * { enableStableProps: false }\n * );\n * ```\n * \n * 注意:\n * - 这里只定义渲染层的组件映射\n * - 约束层(Catalog)需要使用 createCustomCatalog 定义(见 catalog.ts)\n * - 两者需要保持组件名称一致\n */\nexport function createCustomRegistry(\n customComponents: ComponentRegistry,\n options: CreateCustomRegistryOptions = {},\n): ComponentRegistry {\n const { enableStableProps = true } = options;\n\n // 如果启用性能优化,自动包装组件\n const processedComponents: ComponentRegistry = {};\n \n if (enableStableProps) {\n for (const [name, Component] of Object.entries(customComponents)) {\n processedComponents[name] = withStableProps(Component as React.ComponentType<ComponentRenderProps>);\n }\n } else {\n Object.assign(processedComponents, customComponents);\n }\n\n return {\n ...tdesignRegistry,\n ...processedComponents,\n };\n}\n\n// ==================== 重新导出 A2UI Registry ====================\n// A2UI 专用组件,支持 valuePath/disabledPath/action.context 自动绑定\nexport { a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton } from './a2ui-registry';\n\n\n// 配置工厂\nexport type { JsonRenderActivityConfigOptions } from './config';\n// 默认导出配置函数\nexport { createJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig } from './config';\n\n// ==================== 重新导出 A2UI Binding HOC ====================\nexport { withA2UIBinding } from './a2ui-binding';\nexport type { A2UIBindingConfig } from './a2ui-binding';"],"names":["JsonRenderInput","_ref","element","_element$props","props","value","defaultValue","placeholder","_element$props$disabl","disabled","_element$props$readon","readonly","_element$props$size","size","_element$props$type","type","maxlength","_element$props$cleara","clearable","status","onChange","onBlur","onFocus","onEnter","onClear","restProps","_objectWithoutProperties","_excluded","React","createElement","Input","_objectSpread","displayName","JsonRenderTextField","_ref2","_getByPath","_element$props2","label","valuePath","_element$props2$type","_element$props2$disab","_element$props2$size","_excluded2","_useData","useData","data","set","getByPath","handleChange","newValue","Space","direction","style","width","fontSize","fontWeight","resolveActionParams","params","maxDepth","arguments","length","undefined","resolved","stack","source","target","depth","_stack$pop","pop","Object","assign","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","key","_typeof","pathValue","path","Array","isArray","nestedTarget","push","A2UIBoundInner","children","onAction","WrappedComponent","valueField","onChangeField","supportsAction","actionTrigger","disabledPath","action","staticDisabled","componentProps","dataRef","useRef","current","boundValue","useMemo","boundDisabled","Boolean","setRef","useCallback","handleAction","actionObj","name","resolvedParams","resolvedAction","finalProps","originalHandler","apply","withA2UIBinding","config","_config$valueField","_config$onChangeField","_config$supportsActio","_config$actionTrigger","A2UIBoundComponent","concat","memo","prevProps","nextProps","prevEl","nextEl","prevElProps","nextElProps","prevKeys","keys","nextKeys","_i2","_prevKeys","BaseInput","BaseButton","content","Button","A2UITextField","A2UIButton","a2uiRegistry","TextField","Card","JsonRenderCard","Text","JsonRenderText","Row","JsonRenderRow","Col","JsonRenderCol","JsonRenderSpace","Column","JsonRenderColumn","Divider","JsonRenderDivider","createA2UIRegistry","customComponents","createJsonRenderActivityConfig","options","_options$activityType","activityType","_options$registry","registry","tdesignRegistry","_options$actionHandle","actionHandlers","_options$debug","debug","_options$description","description","component","JsonRenderActivityRenderer","createA2UIJsonRenderActivityConfig","_options$activityType2","_options$registry2","_options$actionHandle2","_options$debug2","_options$description2","A2UIJsonRenderActivityRenderer","withStableProps","Component","prevElement","nextElement","id","isEqual","JsonRenderButton","button","input","textfield","card","text","row","col","space","column","divider","createCustomRegistry","_options$enableStable","enableStableProps","processedComponents"],"mappings":"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"}