@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,113 @@
1
+ /**
2
+ * Surface 状态管理器
3
+ *
4
+ * 职责:
5
+ * 1. 缓存已创建的 Surface Schema(跨消息/跨轮次)
6
+ * 2. 提供订阅机制,当 Surface 数据更新时通知已渲染的组件
7
+ *
8
+ * 使用场景:
9
+ * - 第一轮对话:createSurface + updateComponents → 创建完整 UI,注册到缓存
10
+ * - 后续轮次:仅 updateDataModel → 更新缓存中的数据,通知订阅者重渲染
11
+ *
12
+ * 设计原则:
13
+ * 1. 服务端是状态的单一数据源(updateDataModel 来自服务端)
14
+ * 2. 本模块只负责存储和订阅,不负责 A2UI → JsonRender 的转换
15
+ * 3. 转换逻辑由 a2ui-to-jsonrender.ts 中的函数完成
16
+ */
17
+ import type { JsonRenderSchema } from './types';
18
+ export interface SurfaceCache {
19
+ /** Surface ID */
20
+ surfaceId: string;
21
+ /** Catalog ID */
22
+ catalogId?: string;
23
+ /** 当前的 json-render Schema */
24
+ schema: JsonRenderSchema;
25
+ /** 创建时间 */
26
+ createdAt: number;
27
+ /** 最后更新时间 */
28
+ updatedAt: number;
29
+ }
30
+ /** 订阅者回调函数类型 */
31
+ export type SurfaceSubscriber = (schema: JsonRenderSchema) => void;
32
+ /**
33
+ * Surface 状态管理器
34
+ * 单例模式,全局共享 Surface 缓存
35
+ */
36
+ declare class SurfaceStateManager {
37
+ private surfaces;
38
+ /** 订阅者映射:surfaceId → Set<subscriber> */
39
+ private subscribers;
40
+ private debug;
41
+ /**
42
+ * 设置调试模式
43
+ */
44
+ setDebug(enabled: boolean): void;
45
+ /**
46
+ * 注册 Surface(由创建型消息调用)
47
+ *
48
+ * @param surfaceId Surface ID
49
+ * @param schema 转换后的 json-render Schema
50
+ * @param catalogId 可选的 Catalog ID
51
+ */
52
+ registerSurface(surfaceId: string, schema: JsonRenderSchema, catalogId?: string): void;
53
+ /**
54
+ * 更新 Surface 数据(由更新型消息调用)
55
+ *
56
+ * @param surfaceId Surface ID
57
+ * @param path JSON Pointer 路径
58
+ * @param op 操作类型
59
+ * @param value 值
60
+ * @returns 是否成功(Surface 存在)
61
+ */
62
+ updateData(surfaceId: string, path: string | undefined, op?: 'add' | 'replace' | 'remove', value?: unknown): boolean;
63
+ /**
64
+ * 订阅 Surface 状态变化
65
+ *
66
+ * @param surfaceId Surface ID
67
+ * @param subscriber 订阅者回调
68
+ * @returns 取消订阅函数
69
+ */
70
+ subscribe(surfaceId: string, subscriber: SurfaceSubscriber): () => void;
71
+ /**
72
+ * 异步通知订阅者(避免在 React 渲染期间调用 setState)
73
+ */
74
+ private notifySubscribersAsync;
75
+ /**
76
+ * 获取指定 Surface 的缓存
77
+ */
78
+ getSurface(surfaceId: string): SurfaceCache | undefined;
79
+ /**
80
+ * 获取指定 Surface 的 Schema
81
+ */
82
+ getSchema(surfaceId: string): JsonRenderSchema | null;
83
+ /**
84
+ * 检查 Surface 是否存在
85
+ */
86
+ hasSurface(surfaceId: string): boolean;
87
+ /**
88
+ * 获取所有 Surface ID
89
+ */
90
+ getAllSurfaceIds(): string[];
91
+ /**
92
+ * 删除 Surface(由 deleteSurface 消息调用)
93
+ */
94
+ deleteSurface(surfaceId: string): boolean;
95
+ /**
96
+ * 清除所有 Surface 缓存
97
+ */
98
+ clearAll(): void;
99
+ /**
100
+ * 获取缓存统计信息
101
+ */
102
+ getStats(): {
103
+ count: number;
104
+ surfaces: Array<{
105
+ id: string;
106
+ elementsCount: number;
107
+ updatedAt: number;
108
+ subscriberCount: number;
109
+ }>;
110
+ };
111
+ }
112
+ export declare const surfaceStateManager: SurfaceStateManager;
113
+ export { SurfaceStateManager };
@@ -0,0 +1,195 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
+ import _createClass from '@babel/runtime/helpers/createClass';
10
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
11
+ import './adapters/index.js';
12
+ import { applyA2UIDataUpdate } from './adapters/a2ui-to-jsonrender.js';
13
+ import '@babel/runtime/helpers/typeof';
14
+ import '@babel/runtime/helpers/objectWithoutProperties';
15
+
16
+ var SurfaceStateManager = /*#__PURE__*/function () {
17
+ function SurfaceStateManager() {
18
+ _classCallCheck(this, SurfaceStateManager);
19
+ _defineProperty(this, "surfaces", /* @__PURE__ */new Map());
20
+ _defineProperty(this, "subscribers", /* @__PURE__ */new Map());
21
+ _defineProperty(this, "debug", false);
22
+ }
23
+ return _createClass(SurfaceStateManager, [{
24
+ key: "setDebug",
25
+ value: function setDebug(enabled) {
26
+ this.debug = enabled;
27
+ }
28
+ }, {
29
+ key: "registerSurface",
30
+ value: function registerSurface(surfaceId, schema, catalogId) {
31
+ var cache = {
32
+ surfaceId: surfaceId,
33
+ catalogId: catalogId,
34
+ schema: schema,
35
+ createdAt: Date.now(),
36
+ updatedAt: Date.now()
37
+ };
38
+ this.surfaces.set(surfaceId, cache);
39
+ if (this.debug) {
40
+ console.log("[SurfaceStateManager] \u6CE8\u518C Surface:", {
41
+ surfaceId: surfaceId,
42
+ elementsCount: Object.keys(schema.elements).length
43
+ });
44
+ }
45
+ }
46
+ }, {
47
+ key: "updateData",
48
+ value: function updateData(surfaceId, path) {
49
+ var op = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "replace";
50
+ var value = arguments.length > 3 ? arguments[3] : undefined;
51
+ var cache = this.surfaces.get(surfaceId);
52
+ if (!cache) {
53
+ if (this.debug) {
54
+ console.warn("[SurfaceStateManager] updateData: Surface \u4E0D\u5B58\u5728", surfaceId);
55
+ }
56
+ return false;
57
+ }
58
+ cache.schema = applyA2UIDataUpdate(cache.schema, path, op, value);
59
+ cache.updatedAt = Date.now();
60
+ if (this.debug) {
61
+ console.log("[SurfaceStateManager] \u66F4\u65B0\u6570\u636E:", {
62
+ surfaceId: surfaceId,
63
+ path: path,
64
+ op: op,
65
+ value: value,
66
+ newData: cache.schema.data
67
+ });
68
+ }
69
+ this.notifySubscribersAsync(surfaceId, cache.schema);
70
+ return true;
71
+ }
72
+ }, {
73
+ key: "subscribe",
74
+ value: function subscribe(surfaceId, subscriber) {
75
+ var _this = this;
76
+ if (!this.subscribers.has(surfaceId)) {
77
+ this.subscribers.set(surfaceId, /* @__PURE__ */new Set());
78
+ }
79
+ this.subscribers.get(surfaceId).add(subscriber);
80
+ if (this.debug) {
81
+ console.log("[SurfaceStateManager] \u8BA2\u9605 Surface:", surfaceId);
82
+ }
83
+ return function () {
84
+ var subs = _this.subscribers.get(surfaceId);
85
+ if (subs) {
86
+ subs["delete"](subscriber);
87
+ if (subs.size === 0) {
88
+ _this.subscribers["delete"](surfaceId);
89
+ }
90
+ }
91
+ if (_this.debug) {
92
+ console.log("[SurfaceStateManager] \u53D6\u6D88\u8BA2\u9605 Surface:", surfaceId);
93
+ }
94
+ };
95
+ }
96
+ }, {
97
+ key: "notifySubscribersAsync",
98
+ value: function notifySubscribersAsync(surfaceId, schema) {
99
+ var _this2 = this;
100
+ var subs = this.subscribers.get(surfaceId);
101
+ if (!subs || subs.size === 0) {
102
+ return;
103
+ }
104
+ if (this.debug) {
105
+ console.log("[SurfaceStateManager] \u51C6\u5907\u901A\u77E5\u8BA2\u9605\u8005:", {
106
+ surfaceId: surfaceId,
107
+ subscriberCount: subs.size
108
+ });
109
+ }
110
+ queueMicrotask(function () {
111
+ var currentSubs = _this2.subscribers.get(surfaceId);
112
+ if (!currentSubs || currentSubs.size === 0) {
113
+ return;
114
+ }
115
+ if (_this2.debug) {
116
+ console.log("[SurfaceStateManager] \u6267\u884C\u901A\u77E5\u8BA2\u9605\u8005:", {
117
+ surfaceId: surfaceId
118
+ });
119
+ }
120
+ currentSubs.forEach(function (subscriber) {
121
+ try {
122
+ subscriber(schema);
123
+ } catch (e) {
124
+ console.error("[SurfaceStateManager] \u8BA2\u9605\u8005\u56DE\u8C03\u51FA\u9519:", e);
125
+ }
126
+ });
127
+ });
128
+ }
129
+ }, {
130
+ key: "getSurface",
131
+ value: function getSurface(surfaceId) {
132
+ return this.surfaces.get(surfaceId);
133
+ }
134
+ }, {
135
+ key: "getSchema",
136
+ value: function getSchema(surfaceId) {
137
+ var _this$surfaces$get;
138
+ return ((_this$surfaces$get = this.surfaces.get(surfaceId)) === null || _this$surfaces$get === void 0 ? void 0 : _this$surfaces$get.schema) || null;
139
+ }
140
+ }, {
141
+ key: "hasSurface",
142
+ value: function hasSurface(surfaceId) {
143
+ return this.surfaces.has(surfaceId);
144
+ }
145
+ }, {
146
+ key: "getAllSurfaceIds",
147
+ value: function getAllSurfaceIds() {
148
+ return Array.from(this.surfaces.keys());
149
+ }
150
+ }, {
151
+ key: "deleteSurface",
152
+ value: function deleteSurface(surfaceId) {
153
+ this.subscribers["delete"](surfaceId);
154
+ var deleted = this.surfaces["delete"](surfaceId);
155
+ if (this.debug && deleted) {
156
+ console.log("[SurfaceStateManager] \u5220\u9664 Surface:", surfaceId);
157
+ }
158
+ return deleted;
159
+ }
160
+ }, {
161
+ key: "clearAll",
162
+ value: function clearAll() {
163
+ this.surfaces.clear();
164
+ this.subscribers.clear();
165
+ if (this.debug) {
166
+ console.log("[SurfaceStateManager] \u6E05\u9664\u6240\u6709\u7F13\u5B58");
167
+ }
168
+ }
169
+ }, {
170
+ key: "getStats",
171
+ value: function getStats() {
172
+ var _this3 = this;
173
+ var surfaces = Array.from(this.surfaces.entries()).map(function (_ref) {
174
+ var _this3$subscribers$ge;
175
+ var _ref2 = _slicedToArray(_ref, 2),
176
+ id = _ref2[0],
177
+ cache = _ref2[1];
178
+ return {
179
+ id: id,
180
+ elementsCount: Object.keys(cache.schema.elements).length,
181
+ updatedAt: cache.updatedAt,
182
+ subscriberCount: ((_this3$subscribers$ge = _this3.subscribers.get(id)) === null || _this3$subscribers$ge === void 0 ? void 0 : _this3$subscribers$ge.size) || 0
183
+ };
184
+ });
185
+ return {
186
+ count: this.surfaces.size,
187
+ surfaces: surfaces
188
+ };
189
+ }
190
+ }]);
191
+ }();
192
+ var surfaceStateManager = new SurfaceStateManager();
193
+
194
+ export { SurfaceStateManager, surfaceStateManager };
195
+ //# sourceMappingURL=SurfaceStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceStateManager.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/SurfaceStateManager.ts"],"sourcesContent":["/**\n * Surface 状态管理器\n * \n * 职责:\n * 1. 缓存已创建的 Surface Schema(跨消息/跨轮次)\n * 2. 提供订阅机制,当 Surface 数据更新时通知已渲染的组件\n * \n * 使用场景:\n * - 第一轮对话:createSurface + updateComponents → 创建完整 UI,注册到缓存\n * - 后续轮次:仅 updateDataModel → 更新缓存中的数据,通知订阅者重渲染\n * \n * 设计原则:\n * 1. 服务端是状态的单一数据源(updateDataModel 来自服务端)\n * 2. 本模块只负责存储和订阅,不负责 A2UI → JsonRender 的转换\n * 3. 转换逻辑由 a2ui-to-jsonrender.ts 中的函数完成\n */\n\nimport type { JsonRenderSchema } from './types';\nimport { applyA2UIDataUpdate } from './adapters';\n\nexport interface SurfaceCache {\n /** Surface ID */\n surfaceId: string;\n /** Catalog ID */\n catalogId?: string;\n /** 当前的 json-render Schema */\n schema: JsonRenderSchema;\n /** 创建时间 */\n createdAt: number;\n /** 最后更新时间 */\n updatedAt: number;\n}\n\n/** 订阅者回调函数类型 */\nexport type SurfaceSubscriber = (schema: JsonRenderSchema) => void;\n\n/**\n * Surface 状态管理器\n * 单例模式,全局共享 Surface 缓存\n */\nclass SurfaceStateManager {\n private surfaces: Map<string, SurfaceCache> = new Map();\n /** 订阅者映射:surfaceId → Set<subscriber> */\n private subscribers: Map<string, Set<SurfaceSubscriber>> = new Map();\n private debug: boolean = false;\n\n /**\n * 设置调试模式\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n /**\n * 注册 Surface(由创建型消息调用)\n * \n * @param surfaceId Surface ID\n * @param schema 转换后的 json-render Schema\n * @param catalogId 可选的 Catalog ID\n */\n registerSurface(surfaceId: string, schema: JsonRenderSchema, catalogId?: string): void {\n const cache: SurfaceCache = {\n surfaceId,\n catalogId,\n schema,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n };\n \n this.surfaces.set(surfaceId, cache);\n \n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 注册 Surface:', {\n surfaceId,\n elementsCount: Object.keys(schema.elements).length,\n });\n }\n }\n\n /**\n * 更新 Surface 数据(由更新型消息调用)\n * \n * @param surfaceId Surface ID\n * @param path JSON Pointer 路径\n * @param op 操作类型\n * @param value 值\n * @returns 是否成功(Surface 存在)\n */\n updateData(\n surfaceId: string,\n path: string | undefined,\n op: 'add' | 'replace' | 'remove' = 'replace',\n value?: unknown,\n ): boolean {\n const cache = this.surfaces.get(surfaceId);\n if (!cache) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.warn('[SurfaceStateManager] updateData: Surface 不存在', surfaceId);\n }\n return false;\n }\n\n // 使用已有的增量更新函数\n cache.schema = applyA2UIDataUpdate(cache.schema, path, op, value);\n cache.updatedAt = Date.now();\n\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 更新数据:', {\n surfaceId,\n path,\n op,\n value,\n newData: cache.schema.data,\n });\n }\n\n // 异步通知订阅者\n this.notifySubscribersAsync(surfaceId, cache.schema);\n \n return true;\n }\n\n /**\n * 订阅 Surface 状态变化\n * \n * @param surfaceId Surface ID\n * @param subscriber 订阅者回调\n * @returns 取消订阅函数\n */\n subscribe(surfaceId: string, subscriber: SurfaceSubscriber): () => void {\n if (!this.subscribers.has(surfaceId)) {\n this.subscribers.set(surfaceId, new Set());\n }\n this.subscribers.get(surfaceId)!.add(subscriber);\n\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 订阅 Surface:', surfaceId);\n }\n\n // 返回取消订阅函数\n return () => {\n const subs = this.subscribers.get(surfaceId);\n if (subs) {\n subs.delete(subscriber);\n if (subs.size === 0) {\n this.subscribers.delete(surfaceId);\n }\n }\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 取消订阅 Surface:', surfaceId);\n }\n };\n }\n\n /**\n * 异步通知订阅者(避免在 React 渲染期间调用 setState)\n */\n private notifySubscribersAsync(surfaceId: string, schema: JsonRenderSchema): void {\n const subs = this.subscribers.get(surfaceId);\n if (!subs || subs.size === 0) {\n return;\n }\n\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 准备通知订阅者:', { surfaceId, subscriberCount: subs.size });\n }\n\n // 使用 queueMicrotask 延迟到当前渲染完成后执行\n queueMicrotask(() => {\n // 重新获取订阅者(可能在这期间已被取消)\n const currentSubs = this.subscribers.get(surfaceId);\n if (!currentSubs || currentSubs.size === 0) {\n return;\n }\n\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 执行通知订阅者:', { surfaceId });\n }\n\n currentSubs.forEach(subscriber => {\n try {\n subscriber(schema);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('[SurfaceStateManager] 订阅者回调出错:', e);\n }\n });\n });\n }\n\n /**\n * 获取指定 Surface 的缓存\n */\n getSurface(surfaceId: string): SurfaceCache | undefined {\n return this.surfaces.get(surfaceId);\n }\n\n /**\n * 获取指定 Surface 的 Schema\n */\n getSchema(surfaceId: string): JsonRenderSchema | null {\n return this.surfaces.get(surfaceId)?.schema || null;\n }\n\n /**\n * 检查 Surface 是否存在\n */\n hasSurface(surfaceId: string): boolean {\n return this.surfaces.has(surfaceId);\n }\n\n /**\n * 获取所有 Surface ID\n */\n getAllSurfaceIds(): string[] {\n return Array.from(this.surfaces.keys());\n }\n\n /**\n * 删除 Surface(由 deleteSurface 消息调用)\n */\n deleteSurface(surfaceId: string): boolean {\n this.subscribers.delete(surfaceId);\n const deleted = this.surfaces.delete(surfaceId);\n \n if (this.debug && deleted) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 删除 Surface:', surfaceId);\n }\n \n return deleted;\n }\n\n /**\n * 清除所有 Surface 缓存\n */\n clearAll(): void {\n this.surfaces.clear();\n this.subscribers.clear();\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('[SurfaceStateManager] 清除所有缓存');\n }\n }\n\n /**\n * 获取缓存统计信息\n */\n getStats(): { \n count: number; \n surfaces: Array<{ id: string; elementsCount: number; updatedAt: number; subscriberCount: number }>;\n } {\n const surfaces = Array.from(this.surfaces.entries()).map(([id, cache]) => ({\n id,\n elementsCount: Object.keys(cache.schema.elements).length,\n updatedAt: cache.updatedAt,\n subscriberCount: this.subscribers.get(id)?.size || 0,\n }));\n\n return {\n count: this.surfaces.size,\n surfaces,\n };\n }\n}\n\n// 导出单例实例\nexport const surfaceStateManager = new SurfaceStateManager();\n\n// 导出类供测试或创建独立实例\nexport { SurfaceStateManager };\n"],"names":["SurfaceStateManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","setDebug","enabled","debug","registerSurface","surfaceId","schema","catalogId","cache","createdAt","Date","now","updatedAt","surfaces","set","console","log","elementsCount","Object","keys","elements","length","updateData","path","op","arguments","undefined","get","warn","applyA2UIDataUpdate","newData","data","notifySubscribersAsync","subscribe","subscriber","_this","subscribers","has","Set","add","subs","size","_this2","subscriberCount","queueMicrotask","currentSubs","forEach","e","error","getSurface","getSchema","_this$surfaces$get","hasSurface","getAllSurfaceIds","Array","from","deleteSurface","deleted","clearAll","clear","getStats","_this3","entries","map","_ref","_this3$subscribers$ge","_ref2","_slicedToArray","id","count","surfaceStateManager"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A2UI v0.9 → json-render 适配器
3
+ * 将 A2UI v0.9 协议转换为 json-render Schema
4
+ *
5
+ * 核心设计:
6
+ * 1. A2UI v0.9 的 createSurface 只是初始化信号,不包含组件数据
7
+ * 2. 组件数据通过 updateComponents 消息逐步发送(数组形式)
8
+ * 3. 数据模型通过 updateDataModel 消息填充
9
+ * 4. 组件字段名是 'component',不是 'type'
10
+ */
11
+ import type { JsonRenderSchema } from '../types';
12
+ import type { A2UIComponent, A2UIMessage } from './a2ui-types';
13
+ /**
14
+ * 转换 A2UI v0.9 消息数组为 json-render Schema
15
+ *
16
+ * 处理流程:
17
+ * 1. 查找 createSurface 消息初始化 Surface
18
+ * 2. 累积所有 updateComponents 消息构建组件树
19
+ * 3. 累积所有 updateDataModel 消息填充数据
20
+ * 4. 转换为 json-render Schema
21
+ *
22
+ * @param messages A2UI 消息数组
23
+ * @returns json-render Schema 或 null
24
+ */
25
+ export declare function convertA2UIMessagesToJsonRender(messages: A2UIMessage[]): JsonRenderSchema | null;
26
+ /**
27
+ * 应用增量更新到现有 Schema
28
+ *
29
+ * @param schema 当前 json-render Schema
30
+ * @param components A2UI updateComponents 的组件数组
31
+ * @returns 更新后的 Schema
32
+ */
33
+ export declare function applyA2UIUpdates(schema: JsonRenderSchema, components: A2UIComponent[]): JsonRenderSchema;
34
+ /**
35
+ * 应用数据模型更新到现有 Schema
36
+ *
37
+ * @param schema 当前 json-render Schema
38
+ * @param path JSON Pointer 路径
39
+ * @param op 操作类型
40
+ * @param value 值
41
+ * @returns 更新后的 Schema
42
+ */
43
+ export declare function applyA2UIDataUpdate(schema: JsonRenderSchema, path: string | undefined, op?: 'add' | 'replace' | 'remove', value?: unknown): JsonRenderSchema;
44
+ declare const _default: {
45
+ convertA2UIMessagesToJsonRender: typeof convertA2UIMessagesToJsonRender;
46
+ applyA2UIUpdates: typeof applyA2UIUpdates;
47
+ applyA2UIDataUpdate: typeof applyA2UIDataUpdate;
48
+ };
49
+ export default _default;