@tdesign-react/chat 1.0.2-alpha.9 → 1.1.0-alpha.1

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 (303) hide show
  1. package/es/_chunks/dep-f2051ebd.js +839 -0
  2. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  3. package/es/_util/reactify.js +1 -1
  4. package/es/_util/useDynamicStyle.js +1 -1
  5. package/es/attachments/index.js +1 -1
  6. package/es/chat-actionbar/index.js +1 -1
  7. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  8. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  9. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  10. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  11. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  12. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  13. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  14. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  15. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  16. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  17. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  18. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  19. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  20. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  21. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  22. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  23. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  24. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  25. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  26. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  27. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  28. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  29. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  30. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  31. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  32. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  33. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  34. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  35. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  36. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  37. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  38. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  39. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  40. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  41. package/es/chat-engine/components/a2ui/index.js +62 -0
  42. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  43. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  44. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  45. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  46. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  47. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  48. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  49. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  50. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  51. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  52. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  53. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  54. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  55. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  56. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  57. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  58. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  59. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  60. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  61. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  62. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  63. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  64. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  65. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  66. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  67. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  68. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  69. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  70. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  71. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  72. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  73. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  74. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  75. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  76. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  77. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  78. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  79. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  80. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  81. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  82. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  83. package/es/chat-engine/components/a2ui/registry.js +74 -0
  84. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  85. package/es/chat-engine/components/activity/index.js +1 -1
  86. package/es/chat-engine/components/activity/registry.d.ts +1 -1
  87. package/es/chat-engine/components/activity/registry.js +1 -1
  88. package/es/chat-engine/components/activity/registry.js.map +1 -1
  89. package/es/chat-engine/components/activity/render.d.ts +2 -2
  90. package/es/chat-engine/components/activity/render.js +1 -1
  91. package/es/chat-engine/components/activity/render.js.map +1 -1
  92. package/es/chat-engine/components/activity/types.js +1 -1
  93. package/es/chat-engine/components/index.d.ts +1 -0
  94. package/es/chat-engine/components/index.js +57 -9
  95. package/es/chat-engine/components/index.js.map +1 -1
  96. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  97. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  98. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  99. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  100. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  101. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  102. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  103. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  104. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  105. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  106. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  107. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  108. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  109. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  110. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  111. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  112. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  113. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  114. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  115. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  116. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  117. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  118. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  119. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  120. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  121. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  122. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  123. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  124. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  125. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  126. package/es/chat-engine/components/json-render/catalog/index.d.ts +127 -0
  127. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  128. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  129. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  130. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  131. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  132. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  133. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  134. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  135. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  136. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  137. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  138. package/es/chat-engine/components/json-render/catalog.d.ts +549 -0
  139. package/es/chat-engine/components/json-render/catalog.js +147 -0
  140. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  141. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  142. package/es/chat-engine/components/json-render/config.js +36 -0
  143. package/es/chat-engine/components/json-render/config.js.map +1 -0
  144. package/es/chat-engine/components/json-render/contexts/actions.d.ts +74 -0
  145. package/es/chat-engine/components/json-render/contexts/actions.js +290 -0
  146. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  147. package/es/chat-engine/components/json-render/contexts/data.d.ts +45 -0
  148. package/es/chat-engine/components/json-render/contexts/data.js +104 -0
  149. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  150. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  151. package/es/chat-engine/components/json-render/contexts/validation.js +151 -0
  152. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  153. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +29 -0
  154. package/es/chat-engine/components/json-render/contexts/visibility.js +56 -0
  155. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  156. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  157. package/es/chat-engine/components/json-render/engine.js +88 -0
  158. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  159. package/es/chat-engine/components/json-render/index.d.ts +34 -0
  160. package/es/chat-engine/components/json-render/index.js +36 -0
  161. package/es/chat-engine/components/json-render/index.js.map +1 -0
  162. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  163. package/es/chat-engine/components/json-render/performance.js +135 -0
  164. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  165. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  166. package/es/chat-engine/components/json-render/renderer.js +124 -0
  167. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  168. package/es/chat-engine/components/json-render/types.d.ts +69 -0
  169. package/es/chat-engine/components/json-render/types.js +7 -0
  170. package/es/chat-engine/components/json-render/types.js.map +1 -0
  171. package/es/chat-engine/components/provider/agent-state.js +39 -2
  172. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  173. package/es/chat-engine/components/toolcall/index.js +32 -2
  174. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  175. package/es/chat-engine/components/toolcall/registry.js +1 -1
  176. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  177. package/es/chat-engine/components/toolcall/render.js +33 -4
  178. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  179. package/es/chat-engine/components/toolcall/types.js +1 -1
  180. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  181. package/es/chat-engine/core/a2ui/index.js +24 -0
  182. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  183. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  184. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  185. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  186. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  187. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  188. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  189. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  190. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  191. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  192. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  193. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  194. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  195. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  196. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  197. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  198. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  199. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  200. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  201. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  202. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  203. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  204. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  205. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  206. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  207. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  208. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  209. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  210. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  211. package/es/chat-engine/core/adapters/agui/activity-manager.js +144 -0
  212. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  213. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
  214. package/es/chat-engine/core/adapters/agui/event-mapper.js +90 -50
  215. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  216. package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
  217. package/es/chat-engine/core/adapters/agui/events.js +34 -34
  218. package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
  219. package/es/chat-engine/core/adapters/agui/index.d.ts +22 -2
  220. package/es/chat-engine/core/adapters/agui/index.js +34 -14
  221. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  222. package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
  223. package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
  224. package/es/chat-engine/core/adapters/agui/types.js +5 -5
  225. package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
  226. package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
  227. package/es/chat-engine/core/adapters/agui/utils.js +23 -4
  228. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  229. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  230. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  231. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  232. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  233. package/es/chat-engine/core/event-bus/index.js +13 -0
  234. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  235. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  236. package/es/chat-engine/core/event-bus/types.js +32 -0
  237. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  238. package/es/chat-engine/core/index.d.ts +16 -1
  239. package/es/chat-engine/core/index.js +174 -17
  240. package/es/chat-engine/core/index.js.map +1 -1
  241. package/es/chat-engine/core/processor/index.js +1 -1
  242. package/es/chat-engine/core/server/batch-client.js +1 -1
  243. package/es/chat-engine/core/server/connection-manager.js +1 -1
  244. package/es/chat-engine/core/server/errors.js +1 -1
  245. package/es/chat-engine/core/server/index.js +1 -1
  246. package/es/chat-engine/core/server/llm-service.js +17 -15
  247. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  248. package/es/chat-engine/core/server/sse-client.js +1 -1
  249. package/es/chat-engine/core/server/sse-parser.js +1 -1
  250. package/es/chat-engine/core/server/types.js +1 -1
  251. package/es/chat-engine/core/store/message.js +2 -2
  252. package/es/chat-engine/core/store/message.js.map +1 -1
  253. package/es/chat-engine/core/store/model.js +1 -1
  254. package/es/chat-engine/core/store/reactiveState.js +1 -1
  255. package/es/chat-engine/core/type.d.ts +18 -2
  256. package/es/chat-engine/core/type.js +1 -1
  257. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  258. package/es/chat-engine/core/utils/index.js +1 -1
  259. package/es/chat-engine/core/utils/logger.js +1 -1
  260. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  261. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  262. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  263. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  264. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  265. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  266. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  267. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  268. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  269. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  270. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  271. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  272. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  273. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  274. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  275. package/es/chat-engine/hooks/index.js +38 -4
  276. package/es/chat-engine/hooks/index.js.map +1 -1
  277. package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
  278. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  279. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  280. package/es/chat-engine/hooks/useAgentState.js +39 -2
  281. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  282. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  283. package/es/chat-engine/hooks/useChat.d.ts +3 -3
  284. package/es/chat-engine/hooks/useChat.js +40 -2
  285. package/es/chat-engine/hooks/useChat.js.map +1 -1
  286. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  287. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  288. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  289. package/es/chat-engine/index.d.ts +1 -3
  290. package/es/chat-engine/index.js +30 -8
  291. package/es/chat-engine/index.js.map +1 -1
  292. package/es/chat-filecard/index.js +1 -1
  293. package/es/chat-loading/index.js +1 -1
  294. package/es/chat-markdown/index.js +1 -1
  295. package/es/chat-message/index.js +1 -1
  296. package/es/chat-sender/index.js +1 -1
  297. package/es/chat-thinking/index.js +1 -1
  298. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  299. package/es/chatbot/index.js +1 -1
  300. package/es/index.js +27 -5
  301. package/es/index.js.map +1 -1
  302. package/es/style/index.js +1 -1
  303. package/package.json +6 -3
@@ -0,0 +1,307 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _typeof from '@babel/runtime/helpers/typeof';
8
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
10
+
11
+ var _excluded = ["id", "component", "weight", "child", "children"];
12
+ 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; } } }; }
13
+ 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; } }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ var TYPE_MAPPING = {
18
+ Text: "Text",
19
+ Image: "Image",
20
+ Icon: "Icon",
21
+ Video: "Video",
22
+ AudioPlayer: "AudioPlayer",
23
+ Button: "Button",
24
+ TextField: "TextField",
25
+ CheckBox: "Checkbox",
26
+ ChoicePicker: "Select",
27
+ Slider: "Slider",
28
+ DateTimeInput: "DatePicker",
29
+ Card: "Card",
30
+ Row: "Row",
31
+ Column: "Column",
32
+ Col: "Col",
33
+ List: "List",
34
+ Tabs: "Tabs",
35
+ Divider: "Divider",
36
+ Modal: "Dialog"
37
+ };
38
+ function mapProps(component) {
39
+ var id = component.id,
40
+ componentType = component.component,
41
+ weight = component.weight,
42
+ child = component.child,
43
+ children = component.children,
44
+ restProps = _objectWithoutProperties(component, _excluded);
45
+ var mappedProps = _objectSpread({}, restProps);
46
+ if (weight !== void 0) {
47
+ mappedProps.style = _objectSpread(_objectSpread({}, mappedProps.style), {}, {
48
+ flexGrow: weight
49
+ });
50
+ }
51
+ switch (componentType) {
52
+ case "Button":
53
+ if (mappedProps.text && typeof mappedProps.text === "string") {
54
+ mappedProps.label = mappedProps.text;
55
+ delete mappedProps.text;
56
+ }
57
+ if (mappedProps.action && _typeof(mappedProps.action) === "object") {
58
+ var a2uiAction = mappedProps.action;
59
+ mappedProps.action = {
60
+ name: a2uiAction.name,
61
+ params: a2uiAction.context || {}
62
+ };
63
+ }
64
+ break;
65
+ case "TextField":
66
+ if (mappedProps.text && _typeof(mappedProps.text) === "object" && mappedProps.text.path) {
67
+ mappedProps.valuePath = mappedProps.text.path;
68
+ delete mappedProps.text;
69
+ }
70
+ break;
71
+ case "CheckBox":
72
+ if (mappedProps.checked && _typeof(mappedProps.checked) === "object" && mappedProps.checked.path) {
73
+ mappedProps.valuePath = mappedProps.checked.path;
74
+ delete mappedProps.checked;
75
+ }
76
+ break;
77
+ case "Column":
78
+ if (mappedProps.gap !== void 0) {
79
+ mappedProps.size = mappedProps.gap;
80
+ mappedProps.style = _objectSpread(_objectSpread({}, mappedProps.style), {}, {
81
+ display: "flex",
82
+ flexDirection: "column",
83
+ gap: "".concat(mappedProps.gap, "px")
84
+ });
85
+ delete mappedProps.gap;
86
+ }
87
+ break;
88
+ case "Row":
89
+ if (mappedProps.gap !== void 0) {
90
+ mappedProps.gutter = mappedProps.gap;
91
+ mappedProps.style = _objectSpread(_objectSpread({}, mappedProps.style), {}, {
92
+ display: "flex",
93
+ flexDirection: "row",
94
+ gap: "".concat(mappedProps.gap, "px")
95
+ });
96
+ delete mappedProps.gap;
97
+ }
98
+ if (mappedProps.distribution) {
99
+ var distributionMap = {
100
+ start: "start",
101
+ end: "end",
102
+ center: "center",
103
+ "space-between": "space-between",
104
+ "space-around": "space-around"
105
+ };
106
+ mappedProps.justify = distributionMap[mappedProps.distribution] || mappedProps.distribution;
107
+ mappedProps.style = _objectSpread(_objectSpread({}, mappedProps.style), {}, {
108
+ justifyContent: mappedProps.distribution === "end" ? "flex-end" : mappedProps.distribution
109
+ });
110
+ delete mappedProps.distribution;
111
+ }
112
+ break;
113
+ default:
114
+ break;
115
+ }
116
+ if (mappedProps.disabled && _typeof(mappedProps.disabled) === "object" && mappedProps.disabled.path) {
117
+ mappedProps.disabledPath = mappedProps.disabled.path;
118
+ delete mappedProps.disabled;
119
+ }
120
+ return mappedProps;
121
+ }
122
+ function convertComponent(component) {
123
+ var a2uiType = component.component;
124
+ var mappedType = TYPE_MAPPING[a2uiType] || a2uiType;
125
+ var props = mapProps(component);
126
+ var element = {
127
+ key: component.id,
128
+ type: mappedType,
129
+ props: props
130
+ };
131
+ if (component.children) {
132
+ if (Array.isArray(component.children)) {
133
+ element.children = component.children;
134
+ } else if (_typeof(component.children) === "object" && component.children.path) {
135
+ element.props.childrenPath = component.children.path;
136
+ element.props.childTemplate = component.children.componentId;
137
+ }
138
+ } else if (component.child) {
139
+ element.children = [component.child];
140
+ }
141
+ return element;
142
+ }
143
+ function buildSurfaceState(messages) {
144
+ var surfaceState = null;
145
+ var _iterator = _createForOfIteratorHelper(messages),
146
+ _step;
147
+ try {
148
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
149
+ var _surfaceState;
150
+ var msg = _step.value;
151
+ if (msg.createSurface) {
152
+ surfaceState = {
153
+ surfaceId: msg.createSurface.surfaceId,
154
+ catalogId: msg.createSurface.catalogId,
155
+ components: /* @__PURE__ */new Map(),
156
+ dataModel: {}
157
+ };
158
+ }
159
+ if (msg.updateComponents && surfaceState) {
160
+ var components = msg.updateComponents.components;
161
+ if (Array.isArray(components)) {
162
+ var _iterator2 = _createForOfIteratorHelper(components),
163
+ _step2;
164
+ try {
165
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
166
+ var comp = _step2.value;
167
+ surfaceState.components.set(comp.id, comp);
168
+ }
169
+ } catch (err) {
170
+ _iterator2.e(err);
171
+ } finally {
172
+ _iterator2.f();
173
+ }
174
+ }
175
+ }
176
+ if (msg.updateDataModel && surfaceState) {
177
+ var _msg$updateDataModel = msg.updateDataModel,
178
+ path = _msg$updateDataModel.path,
179
+ op = _msg$updateDataModel.op,
180
+ value = _msg$updateDataModel.value;
181
+ var operation = op || "replace";
182
+ if (operation === "replace" && (path === "/" || !path)) {
183
+ surfaceState.dataModel = value;
184
+ } else if (operation === "replace" && path) {
185
+ setValueByPath(surfaceState.dataModel, path, value);
186
+ } else if (operation === "add" && path) {
187
+ setValueByPath(surfaceState.dataModel, path, value);
188
+ } else if (operation === "remove" && path) {
189
+ deleteValueByPath(surfaceState.dataModel, path);
190
+ }
191
+ }
192
+ if (msg.deleteSurface && ((_surfaceState = surfaceState) === null || _surfaceState === void 0 ? void 0 : _surfaceState.surfaceId) === msg.deleteSurface.surfaceId) {
193
+ surfaceState = null;
194
+ }
195
+ }
196
+ } catch (err) {
197
+ _iterator.e(err);
198
+ } finally {
199
+ _iterator.f();
200
+ }
201
+ return surfaceState;
202
+ }
203
+ function setValueByPath(obj, path, value) {
204
+ var parts = path.split("/").filter(Boolean);
205
+ var current = obj;
206
+ for (var i = 0; i < parts.length - 1; i++) {
207
+ var key = parts[i];
208
+ var nextKey = parts[i + 1];
209
+ if (!(key in current)) {
210
+ current[key] = /^\d+$/.test(nextKey) ? [] : {};
211
+ }
212
+ current = current[key];
213
+ }
214
+ if (parts.length > 0) {
215
+ current[parts[parts.length - 1]] = value;
216
+ }
217
+ }
218
+ function deleteValueByPath(obj, path) {
219
+ var parts = path.split("/").filter(Boolean);
220
+ var current = obj;
221
+ for (var i = 0; i < parts.length - 1; i++) {
222
+ var key = parts[i];
223
+ if (!(key in current)) return;
224
+ current = current[key];
225
+ }
226
+ if (parts.length > 0) {
227
+ var lastKey = parts[parts.length - 1];
228
+ if (Array.isArray(current) && /^\d+$/.test(lastKey)) {
229
+ current.splice(parseInt(lastKey, 10), 1);
230
+ } else {
231
+ delete current[lastKey];
232
+ }
233
+ }
234
+ }
235
+ function surfaceStateToSchema(state) {
236
+ var elements = {};
237
+ state.components.forEach(function (component, id) {
238
+ elements[id] = convertComponent(component);
239
+ });
240
+ return {
241
+ root: "root",
242
+ elements: elements,
243
+ data: state.dataModel
244
+ };
245
+ }
246
+ function convertA2UIMessagesToJsonRender(messages) {
247
+ if (!messages || messages.length === 0) {
248
+ return null;
249
+ }
250
+ var surfaceState = buildSurfaceState(messages);
251
+ if (!surfaceState) {
252
+ return null;
253
+ }
254
+ if (!surfaceState.components.has("root")) {
255
+ return null;
256
+ }
257
+ return surfaceStateToSchema(surfaceState);
258
+ }
259
+ function applyA2UIUpdates(schema, components) {
260
+ if (!Array.isArray(components)) {
261
+ return schema;
262
+ }
263
+ var newElements = _objectSpread({}, schema.elements);
264
+ var _iterator3 = _createForOfIteratorHelper(components),
265
+ _step3;
266
+ try {
267
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
268
+ var component = _step3.value;
269
+ newElements[component.id] = convertComponent(component);
270
+ }
271
+ } catch (err) {
272
+ _iterator3.e(err);
273
+ } finally {
274
+ _iterator3.f();
275
+ }
276
+ return _objectSpread(_objectSpread({}, schema), {}, {
277
+ elements: newElements
278
+ });
279
+ }
280
+ function applyA2UIDataUpdate(schema, path) {
281
+ var op = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "replace";
282
+ var value = arguments.length > 3 ? arguments[3] : undefined;
283
+ var newData = _objectSpread({}, schema.data);
284
+ if (op === "replace" && (path === "/" || !path)) {
285
+ return _objectSpread(_objectSpread({}, schema), {}, {
286
+ data: value
287
+ });
288
+ }
289
+ if (path) {
290
+ if (op === "remove") {
291
+ deleteValueByPath(newData, path);
292
+ } else {
293
+ setValueByPath(newData, path, value);
294
+ }
295
+ }
296
+ return _objectSpread(_objectSpread({}, schema), {}, {
297
+ data: newData
298
+ });
299
+ }
300
+ var a2uiToJsonrender = {
301
+ convertA2UIMessagesToJsonRender: convertA2UIMessagesToJsonRender,
302
+ applyA2UIUpdates: applyA2UIUpdates,
303
+ applyA2UIDataUpdate: applyA2UIDataUpdate
304
+ };
305
+
306
+ export { applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender, a2uiToJsonrender as default };
307
+ //# sourceMappingURL=a2ui-to-jsonrender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2ui-to-jsonrender.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.ts"],"sourcesContent":["/**\n * A2UI v0.9 → json-render 适配器\n * 将 A2UI v0.9 协议转换为 json-render Schema\n * \n * 核心设计:\n * 1. A2UI v0.9 的 createSurface 只是初始化信号,不包含组件数据\n * 2. 组件数据通过 updateComponents 消息逐步发送(数组形式)\n * 3. 数据模型通过 updateDataModel 消息填充\n * 4. 组件字段名是 'component',不是 'type'\n */\n\nimport type { UIElement } from '@json-render/core';\nimport type { JsonRenderSchema } from '../types';\nimport type { A2UIComponent, A2UIMessage, A2UISurfaceState } from './a2ui-types';\n\n/**\n * 组件类型映射表\n * A2UI 类型 → json-render 类型\n */\nconst TYPE_MAPPING: Record<string, string> = {\n // 基础组件\n Text: 'Text',\n Image: 'Image',\n Icon: 'Icon',\n Video: 'Video',\n AudioPlayer: 'AudioPlayer',\n Button: 'Button',\n TextField: 'TextField', // 映射到 TextField 以支持数据绑定\n CheckBox: 'Checkbox',\n ChoicePicker: 'Select',\n Slider: 'Slider',\n DateTimeInput: 'DatePicker',\n \n // 布局组件\n Card: 'Card',\n Row: 'Row',\n Column: 'Column', // A2UI Column → json-render Column(垂直布局),不是 Col(栅格列)\n Col: 'Col', // 保留 Col 映射给显式使用栅格的场景\n List: 'List',\n Tabs: 'Tabs',\n Divider: 'Divider',\n Modal: 'Dialog',\n};\n\n/**\n * 属性映射函数\n * 将 A2UI v0.9 组件属性转换为 json-render 组件属性\n */\nfunction mapProps(component: A2UIComponent): Record<string, any> {\n // 排除 A2UI 特有字段,保留其他属性\n const { id, component: componentType, weight, child, children, ...restProps } = component;\n \n const mappedProps: Record<string, any> = { ...restProps };\n\n // 处理 weight(flex-grow)\n if (weight !== undefined) {\n mappedProps.style = {\n ...mappedProps.style,\n flexGrow: weight,\n };\n }\n\n // 特定类型的属性转换\n switch (componentType) {\n case 'Button':\n // A2UI Button 的 text 属性 → json-render 的 label(或 children)\n if (mappedProps.text && typeof mappedProps.text === 'string') {\n mappedProps.label = mappedProps.text;\n delete mappedProps.text;\n }\n // A2UI action 格式转换:{ name, context } → { name, params }\n // context 中的 { path: \"/xxx\" } 会在运行时被 Button 组件解析\n if (mappedProps.action && typeof mappedProps.action === 'object') {\n const a2uiAction = mappedProps.action as { name: string; context?: Record<string, unknown> };\n mappedProps.action = {\n name: a2uiAction.name,\n // 将 context 转为 params,保留动态绑定引用供运行时解析\n params: a2uiAction.context || {},\n };\n }\n // 处理 theme 映射(A2UI 的 theme: 'primary' → TDesign 的 theme: 'primary')\n // 保持不变,TDesign Button 支持 theme 属性\n break;\n\n case 'TextField':\n // A2UI TextField 的 text 属性(数据绑定)→ json-render 的 value\n if (mappedProps.text && typeof mappedProps.text === 'object' && mappedProps.text.path) {\n mappedProps.valuePath = mappedProps.text.path;\n delete mappedProps.text;\n }\n break;\n\n case 'CheckBox':\n // A2UI CheckBox 的 checked 属性(数据绑定)\n if (mappedProps.checked && typeof mappedProps.checked === 'object' && mappedProps.checked.path) {\n mappedProps.valuePath = mappedProps.checked.path;\n delete mappedProps.checked;\n }\n break;\n\n case 'Column':\n // A2UI Column 的 gap 属性 → json-render Column 的 size 属性 + CSS gap 后备\n if (mappedProps.gap !== undefined) {\n mappedProps.size = mappedProps.gap;\n // 同时设置 CSS gap 作为后备方案\n mappedProps.style = {\n ...mappedProps.style,\n display: 'flex',\n flexDirection: 'column',\n gap: `${mappedProps.gap}px`,\n };\n delete mappedProps.gap;\n }\n break;\n\n case 'Row':\n // A2UI Row 的 gap 属性 → json-render Row 的 gutter 属性 + CSS gap 后备\n if (mappedProps.gap !== undefined) {\n mappedProps.gutter = mappedProps.gap;\n // 同时设置 CSS gap 作为后备方案\n mappedProps.style = {\n ...mappedProps.style,\n display: 'flex',\n flexDirection: 'row',\n gap: `${mappedProps.gap}px`,\n };\n delete mappedProps.gap;\n }\n // A2UI Row 的 distribution 属性 → json-render Row 的 justify 属性\n if (mappedProps.distribution) {\n const distributionMap: Record<string, string> = {\n start: 'start',\n end: 'end',\n center: 'center',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n };\n mappedProps.justify = distributionMap[mappedProps.distribution] || mappedProps.distribution;\n // 同时设置 CSS justifyContent\n mappedProps.style = {\n ...mappedProps.style,\n justifyContent: mappedProps.distribution === 'end' ? 'flex-end' : mappedProps.distribution,\n };\n delete mappedProps.distribution;\n }\n break;\n\n default:\n break;\n }\n\n // 处理通用的 disabled 数据绑定\n if (mappedProps.disabled && typeof mappedProps.disabled === 'object' && mappedProps.disabled.path) {\n mappedProps.disabledPath = mappedProps.disabled.path;\n delete mappedProps.disabled;\n }\n\n return mappedProps;\n}\n\n/**\n * 转换单个 A2UI 组件为 json-render UIElement\n */\nfunction convertComponent(component: A2UIComponent): UIElement {\n // A2UI v0.9 使用 'component' 字段,不是 'type'\n const a2uiType = component.component;\n const mappedType = TYPE_MAPPING[a2uiType] || a2uiType;\n const props = mapProps(component);\n\n const element: UIElement = {\n key: component.id, // UIElement 需要 key 属性\n type: mappedType,\n props,\n };\n\n // 处理子组件\n if (component.children) {\n if (Array.isArray(component.children)) {\n // 静态子组件数组\n element.children = component.children;\n } else if (typeof component.children === 'object' && component.children.path) {\n // 模板子组件(数据绑定列表)\n element.props.childrenPath = component.children.path;\n element.props.childTemplate = component.children.componentId;\n }\n } else if (component.child) {\n // 单子组件\n element.children = [component.child];\n }\n\n return element;\n}\n\n/**\n * 从 A2UI 消息数组构建 Surface 状态\n * 累积处理所有消息类型\n */\nfunction buildSurfaceState(messages: A2UIMessage[]): A2UISurfaceState | null {\n let surfaceState: A2UISurfaceState | null = null;\n\n for (const msg of messages) {\n // 1. createSurface - 初始化 Surface\n if (msg.createSurface) {\n surfaceState = {\n surfaceId: msg.createSurface.surfaceId,\n catalogId: msg.createSurface.catalogId,\n components: new Map(),\n dataModel: {},\n };\n }\n\n // 2. updateComponents - 累积组件\n if (msg.updateComponents && surfaceState) {\n const { components } = msg.updateComponents;\n // A2UI v0.9 的 components 是数组\n if (Array.isArray(components)) {\n for (const comp of components) {\n surfaceState.components.set(comp.id, comp);\n }\n }\n }\n\n // 3. updateDataModel - 累积数据\n if (msg.updateDataModel && surfaceState) {\n const { path, op, value } = msg.updateDataModel;\n const operation = op || 'replace';\n \n if (operation === 'replace' && (path === '/' || !path)) {\n // 替换整个数据模型\n surfaceState.dataModel = value as Record<string, unknown>;\n } else if (operation === 'replace' && path) {\n // 替换指定路径\n setValueByPath(surfaceState.dataModel, path, value);\n } else if (operation === 'add' && path) {\n // 添加到指定路径\n setValueByPath(surfaceState.dataModel, path, value);\n } else if (operation === 'remove' && path) {\n // 删除指定路径\n deleteValueByPath(surfaceState.dataModel, path);\n }\n }\n\n // 4. deleteSurface - 删除 Surface(返回 null)\n if (msg.deleteSurface && surfaceState?.surfaceId === msg.deleteSurface.surfaceId) {\n surfaceState = null;\n }\n }\n\n return surfaceState;\n}\n\n/**\n * 根据 JSON Pointer 路径设置值\n * 支持数组索引路径(如 /list/0/name)\n */\nfunction setValueByPath(obj: Record<string, unknown>, path: string, value: unknown): void {\n const parts = path.split('/').filter(Boolean);\n let current: any = obj;\n \n for (let i = 0; i < parts.length - 1; i++) {\n const key = parts[i];\n const nextKey = parts[i + 1];\n if (!(key in current)) {\n // 如果下一个 key 是数字,创建数组;否则创建对象\n current[key] = /^\\d+$/.test(nextKey) ? [] : {};\n }\n current = current[key];\n }\n \n if (parts.length > 0) {\n current[parts[parts.length - 1]] = value;\n }\n}\n\n/**\n * 根据 JSON Pointer 路径删除值\n * 支持数组索引路径\n */\nfunction deleteValueByPath(obj: Record<string, unknown>, path: string): void {\n const parts = path.split('/').filter(Boolean);\n let current: any = obj;\n \n for (let i = 0; i < parts.length - 1; i++) {\n const key = parts[i];\n if (!(key in current)) return;\n current = current[key];\n }\n \n if (parts.length > 0) {\n const lastKey = parts[parts.length - 1];\n if (Array.isArray(current) && /^\\d+$/.test(lastKey)) {\n // 数组元素删除\n current.splice(parseInt(lastKey, 10), 1);\n } else {\n delete current[lastKey];\n }\n }\n}\n\n/**\n * 将 Surface 状态转换为 json-render Schema\n */\nfunction surfaceStateToSchema(state: A2UISurfaceState): JsonRenderSchema {\n const elements: Record<string, UIElement> = {};\n\n // 遍历所有组件,转换为 json-render elements\n state.components.forEach((component, id) => {\n elements[id] = convertComponent(component);\n });\n\n return {\n root: 'root', // A2UI v0.9 规定必须有 id 为 'root' 的组件\n elements,\n data: state.dataModel,\n };\n}\n\n/**\n * 转换 A2UI v0.9 消息数组为 json-render Schema\n * \n * 处理流程:\n * 1. 查找 createSurface 消息初始化 Surface\n * 2. 累积所有 updateComponents 消息构建组件树\n * 3. 累积所有 updateDataModel 消息填充数据\n * 4. 转换为 json-render Schema\n * \n * @param messages A2UI 消息数组\n * @returns json-render Schema 或 null\n */\nexport function convertA2UIMessagesToJsonRender(\n messages: A2UIMessage[],\n): JsonRenderSchema | null {\n if (!messages || messages.length === 0) {\n return null;\n }\n\n // 构建 Surface 状态\n const surfaceState = buildSurfaceState(messages);\n \n if (!surfaceState) {\n return null;\n }\n\n // 检查是否有 root 组件\n if (!surfaceState.components.has('root')) {\n return null;\n }\n\n // 转换为 json-render Schema\n return surfaceStateToSchema(surfaceState);\n}\n\n/**\n * 应用增量更新到现有 Schema\n * \n * @param schema 当前 json-render Schema\n * @param components A2UI updateComponents 的组件数组\n * @returns 更新后的 Schema\n */\nexport function applyA2UIUpdates(\n schema: JsonRenderSchema,\n components: A2UIComponent[],\n): JsonRenderSchema {\n if (!Array.isArray(components)) {\n return schema;\n }\n\n const newElements = { ...schema.elements };\n\n for (const component of components) {\n // 转换组件并添加/更新\n newElements[component.id] = convertComponent(component);\n }\n\n return {\n ...schema,\n elements: newElements,\n };\n}\n\n/**\n * 应用数据模型更新到现有 Schema\n * \n * @param schema 当前 json-render Schema\n * @param path JSON Pointer 路径\n * @param op 操作类型\n * @param value 值\n * @returns 更新后的 Schema\n */\nexport function applyA2UIDataUpdate(\n schema: JsonRenderSchema,\n path: string | undefined,\n op: 'add' | 'replace' | 'remove' = 'replace',\n value?: unknown,\n): JsonRenderSchema {\n const newData = { ...schema.data };\n\n if (op === 'replace' && (path === '/' || !path)) {\n return {\n ...schema,\n data: value as Record<string, unknown>,\n };\n }\n\n if (path) {\n if (op === 'remove') {\n deleteValueByPath(newData, path);\n } else {\n setValueByPath(newData, path, value);\n }\n }\n\n return {\n ...schema,\n data: newData,\n };\n}\n\nexport default {\n convertA2UIMessagesToJsonRender,\n applyA2UIUpdates,\n applyA2UIDataUpdate,\n};\n"],"names":["TYPE_MAPPING","Text","Image","Icon","Video","AudioPlayer","Button","TextField","CheckBox","ChoicePicker","Slider","DateTimeInput","Card","Row","Column","Col","List","Tabs","Divider","Modal","mapProps","component","id","componentType","weight","child","children","restProps","_excluded","mappedProps","_objectSpread","style","flexGrow","text","label","action","_typeof","a2uiAction","name","params","context","path","valuePath","checked","gap","size","display","flexDirection","concat","gutter","distribution","distributionMap","start","end","center","justify","justifyContent","disabled","disabledPath","convertComponent","a2uiType","mappedType","props","element","key","type","Array","isArray","childrenPath","childTemplate","componentId","buildSurfaceState","messages","surfaceState","_iterator","_createForOfIteratorHelper","_step","s","n","done","_surfaceState","msg","createSurface","surfaceId","catalogId","components","Map","dataModel","updateComponents","_iterator2","_step2","comp","set","err","e","f","updateDataModel","_msg$updateDataModel","op","value","operation","setValueByPath","deleteValueByPath","deleteSurface","obj","parts","split","filter","Boolean","current","i","length","nextKey","test","lastKey","splice","parseInt","surfaceStateToSchema","state","elements","forEach","root","data","convertA2UIMessagesToJsonRender","has","applyA2UIUpdates","schema","newElements","_iterator3","_step3","applyA2UIDataUpdate","arguments","undefined","newData"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * A2UI v0.9 协议类型定义
3
+ * 用于 A2UI → json-render 转换
4
+ *
5
+ * 参考:A2UI Protocol v0.9 Specification
6
+ * https://a2ui.dev/specification/0.9/
7
+ */
8
+ /**
9
+ * A2UI 标准组件类型(Standard Catalog)
10
+ */
11
+ export type A2UIComponentType = 'Text' | 'Image' | 'Icon' | 'Video' | 'AudioPlayer' | 'Button' | 'TextField' | 'CheckBox' | 'ChoicePicker' | 'Slider' | 'DateTimeInput' | 'Card' | 'Row' | 'Column' | 'List' | 'Tabs' | 'Divider' | 'Modal';
12
+ /**
13
+ * A2UI v0.9 组件定义
14
+ * 注意:v0.9 使用 'component' 字段(不是 'type')
15
+ */
16
+ export interface A2UIComponent {
17
+ /** 组件唯一标识符 */
18
+ id: string;
19
+ /** 组件类型(A2UI v0.9 使用 'component' 字段) */
20
+ component: string;
21
+ /** 权重(flex-grow),仅在 Row/Column 子组件中有效 */
22
+ weight?: number;
23
+ /** 单子组件 ID */
24
+ child?: string;
25
+ /** 多子组件 ID 数组,或模板配置 */
26
+ children?: string[] | {
27
+ path: string;
28
+ componentId: string;
29
+ };
30
+ /** 其他组件特定属性 */
31
+ [key: string]: any;
32
+ }
33
+ /**
34
+ * A2UI v0.9 createSurface 消息
35
+ * 只包含 surfaceId 和 catalogId,不包含组件数据
36
+ */
37
+ export interface A2UICreateSurface {
38
+ /** Surface 唯一标识符 */
39
+ surfaceId: string;
40
+ /** Catalog ID(组件目录标识) */
41
+ catalogId: string;
42
+ }
43
+ /**
44
+ * A2UI v0.9 updateComponents 消息
45
+ * components 是数组,不是 Record
46
+ */
47
+ export interface A2UIUpdateComponents {
48
+ /** Surface 唯一标识符 */
49
+ surfaceId: string;
50
+ /** 组件数组(不是 Record) */
51
+ components: A2UIComponent[];
52
+ }
53
+ /**
54
+ * A2UI v0.9 updateDataModel 消息
55
+ */
56
+ export interface A2UIUpdateDataModel {
57
+ /** Surface 唯一标识符 */
58
+ surfaceId: string;
59
+ /** JSON Pointer 路径 */
60
+ path?: string;
61
+ /** 操作类型 */
62
+ op?: 'add' | 'replace' | 'remove';
63
+ /** 数据值 */
64
+ value?: unknown;
65
+ }
66
+ /**
67
+ * A2UI v0.9 deleteSurface 消息
68
+ */
69
+ export interface A2UIDeleteSurface {
70
+ /** Surface 唯一标识符 */
71
+ surfaceId: string;
72
+ }
73
+ /**
74
+ * A2UI v0.9 消息类型(Server to Client)
75
+ * 每条消息只包含一种消息类型
76
+ */
77
+ export interface A2UIMessage {
78
+ createSurface?: A2UICreateSurface;
79
+ updateComponents?: A2UIUpdateComponents;
80
+ updateDataModel?: A2UIUpdateDataModel;
81
+ deleteSurface?: A2UIDeleteSurface;
82
+ }
83
+ /**
84
+ * A2UI Surface 状态(客户端维护)
85
+ * 由多条消息累积构建
86
+ */
87
+ export interface A2UISurfaceState {
88
+ /** Surface ID */
89
+ surfaceId: string;
90
+ /** Catalog ID */
91
+ catalogId: string;
92
+ /** 组件 Map(由 updateComponents 累积) */
93
+ components: Map<string, A2UIComponent>;
94
+ /** 数据模型(由 updateDataModel 累积) */
95
+ dataModel: Record<string, unknown>;
96
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ //# sourceMappingURL=a2ui-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2ui-types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * json-render 适配器模块
3
+ * 支持多种协议转换为 json-render Schema
4
+ */
5
+ export type { A2UIComponentType, A2UIComponent, A2UIMessage, A2UICreateSurface, A2UIUpdateComponents, A2UIUpdateDataModel, A2UIDeleteSurface, A2UISurfaceState, } from './a2ui-types';
6
+ export { convertA2UIMessagesToJsonRender, applyA2UIUpdates, applyA2UIDataUpdate, } from './a2ui-to-jsonrender';
7
+ export { default as A2UIAdapter } from './a2ui-to-jsonrender';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { default as A2UIAdapter, applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender } from './a2ui-to-jsonrender.js';
8
+ import '@babel/runtime/helpers/typeof';
9
+ import '@babel/runtime/helpers/defineProperty';
10
+ import '@babel/runtime/helpers/objectWithoutProperties';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * A2UI 数据绑定 HOC
3
+ *
4
+ * 统一处理 A2UI 协议的标准字段:
5
+ * - valuePath: 值的数据绑定路径(如 /userInfo/name)
6
+ * - disabledPath: disabled 状态的数据绑定路径(如 /formDisabled)
7
+ * - action.context: action 参数中的动态数据绑定
8
+ *
9
+ * 性能优化:
10
+ * - 使用 React.memo + 精确值比较避免不必要渲染
11
+ * - Action 参数延迟解析(触发时才计算)
12
+ * - 使用 useRef 缓存回调函数避免重建
13
+ *
14
+ * 使用方式:
15
+ * ```tsx
16
+ * // 创建支持 A2UI 绑定的 Input
17
+ * const A2UIInput = withA2UIBinding(Input, {
18
+ * valueField: 'value',
19
+ * onChangeField: 'onChange',
20
+ * });
21
+ *
22
+ * // 创建支持 action 的 Button
23
+ * const A2UIButton = withA2UIBinding(Button, {
24
+ * supportsAction: true,
25
+ * actionTrigger: 'onClick', // 默认
26
+ * });
27
+ *
28
+ * // Input 支持 onEnter 触发 action
29
+ * const A2UISearchInput = withA2UIBinding(Input, {
30
+ * valueField: 'value',
31
+ * onChangeField: 'onChange',
32
+ * supportsAction: true,
33
+ * actionTrigger: 'onEnter',
34
+ * });
35
+ * ```
36
+ */
37
+ import React from 'react';
38
+ import type { ComponentRenderProps } from '@json-render/react';
39
+ /**
40
+ * A2UI 绑定配置
41
+ */
42
+ export interface A2UIBindingConfig {
43
+ /** 组件的值字段名,默认 'value' */
44
+ valueField?: string;
45
+ /** 组件的 onChange 字段名,默认 'onChange' */
46
+ onChangeField?: string;
47
+ /** 是否支持 action 绑定,默认 false */
48
+ supportsAction?: boolean;
49
+ /**
50
+ * Action 触发事件名,默认 'onClick'
51
+ * 可设置为 'onEnter'、'onChange' 等
52
+ */
53
+ actionTrigger?: string;
54
+ }
55
+ /**
56
+ * A2UI 数据绑定 HOC
57
+ *
58
+ * 自动处理 A2UI 协议的标准字段,让原子组件保持纯净
59
+ *
60
+ * @param WrappedComponent 原始组件
61
+ * @param config 绑定配置
62
+ */
63
+ export declare function withA2UIBinding<P extends Record<string, any>>(WrappedComponent: React.ComponentType<P>, config?: A2UIBindingConfig): React.FC<ComponentRenderProps>;
64
+ export default withA2UIBinding;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import '@babel/runtime/helpers/defineProperty';
8
+ import '@babel/runtime/helpers/objectWithoutProperties';
9
+ import '@babel/runtime/helpers/typeof';
10
+ import '@babel/runtime/helpers/slicedToArray';
11
+ import 'react';
12
+ export { f as default, f as withA2UIBinding } from '../../../../_chunks/dep-f2051ebd.js';
13
+ import '@json-render/core';
14
+ import '../contexts/data.js';
15
+ import '../adapters/index.js';
16
+ import '../adapters/a2ui-to-jsonrender.js';
17
+ import '../SurfaceStateManager.js';
18
+ import '@babel/runtime/helpers/classCallCheck';
19
+ import '@babel/runtime/helpers/createClass';
20
+ import '../engine.js';
21
+ import '../performance.js';
22
+ import '@babel/runtime/helpers/toConsumableArray';
23
+ import './button.js';
24
+ import 'tdesign-react';
25
+ import './card.js';
26
+ import './text.js';
27
+ import './layout.js';
28
+ import '../catalog.js';
29
+ import 'zod';
30
+ import '../contexts/visibility.js';
31
+ import '../contexts/actions.js';
32
+ import '@babel/runtime/helpers/asyncToGenerator';
33
+ import '@babel/runtime/regenerator';
34
+ import '../contexts/validation.js';
35
+ import '../renderer.js';
36
+ //# sourceMappingURL=a2ui-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2ui-binding.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}