@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 @@
1
+ {"version":3,"file":"engine.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/engine.ts"],"sourcesContent":["/**\n * json-render 引擎封装\n * 提供高性能的增量渲染能力\n */\n\nimport type { UIElement } from '@json-render/core';\nimport type { ComponentRegistry } from './renderer';\nimport type { JsonRenderSchema, DeltaInfo } from './types';\n\n/**\n * json-render 引擎管理器\n * 负责 Schema 缓存、增量更新和性能优化\n */\nexport class JsonRenderEngine {\n private currentSchema: JsonRenderSchema | null = null;\n private registry: ComponentRegistry;\n\n constructor(registry: ComponentRegistry) {\n this.registry = registry;\n }\n\n /**\n * 全量渲染\n * 用于 ACTIVITY_SNAPSHOT 事件\n */\n setSchema(schema: JsonRenderSchema): void {\n this.currentSchema = schema;\n }\n\n /**\n * 获取当前 Schema\n */\n getSchema(): JsonRenderSchema | null {\n return this.currentSchema;\n }\n\n /**\n * 增量更新\n * 用于 ACTIVITY_DELTA 事件\n * \n * @param newSchema 应用 JSON Patch 后的完整 Schema\n * @param deltaInfo 增量信息(可选,用于进一步优化)\n */\n patchSchema(newSchema: JsonRenderSchema, deltaInfo?: DeltaInfo): void {\n if (!this.currentSchema) {\n // 如果没有初始 Schema,直接设置\n this.currentSchema = newSchema;\n return;\n }\n\n // 更新 Schema(json-render 的 Renderer 会自动处理 diff)\n this.currentSchema = newSchema;\n\n // 如果有 deltaInfo,可以在这里做进一步优化\n if (deltaInfo) {\n console.debug('[json-render] 增量更新范围:', deltaInfo);\n // 未来可以基于 deltaInfo 实现更细粒度的优化\n }\n }\n\n /**\n * 重置引擎状态\n */\n reset(): void {\n this.currentSchema = null;\n }\n\n /**\n * 获取组件注册表\n */\n getRegistry(): ComponentRegistry {\n return this.registry;\n }\n\n /**\n * 更新组件注册表\n */\n updateRegistry(registry: ComponentRegistry): void {\n this.registry = { ...this.registry, ...registry };\n }\n\n /**\n * 验证 Schema 是否有效\n */\n validateSchema(schema: JsonRenderSchema): boolean {\n if (!schema || !schema.root || !schema.elements) {\n console.error('[json-render] Schema 验证失败:缺少 root 或 elements');\n return false;\n }\n\n const rootElement = schema.elements[schema.root];\n if (!rootElement) {\n console.error('[json-render] Schema 验证失败:root 元素不存在');\n return false;\n }\n\n return true;\n }\n\n /**\n * 提取增量元素(基于 deltaInfo)\n * 用于性能优化场景\n */\n extractDeltaElements(schema: JsonRenderSchema, deltaInfo: DeltaInfo): Record<string, UIElement> {\n const elementKeys = Object.keys(schema.elements);\n const deltaKeys = elementKeys.slice(deltaInfo.fromIndex, deltaInfo.toIndex);\n \n const deltaElements: Record<string, UIElement> = {};\n deltaKeys.forEach((key) => {\n deltaElements[key] = schema.elements[key];\n });\n \n return deltaElements;\n }\n}\n\n/**\n * 创建 json-render 引擎实例\n */\nexport function createJsonRenderEngine(registry: ComponentRegistry): JsonRenderEngine {\n return new JsonRenderEngine(registry);\n}\n"],"names":["JsonRenderEngine","registry","_classCallCheck","_defineProperty","_createClass","key","value","setSchema","schema","currentSchema","getSchema","patchSchema","newSchema","deltaInfo","console","debug","reset","getRegistry","updateRegistry","validateSchema","root","elements","error","rootElement","extractDeltaElements","elementKeys","Object","keys","deltaKeys","slice","fromIndex","toIndex","deltaElements","forEach","createJsonRenderEngine"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * json-render 集成模块入口
3
+ * 导出所有核心 API 和类型
4
+ */
5
+ export { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer';
6
+ export type { JsonRenderActivityRendererProps } from './JsonRenderActivityRenderer';
7
+ export { A2UIJsonRenderActivityRenderer } from './A2UIJsonRenderActivityRenderer';
8
+ export type { A2UIJsonRenderActivityRendererProps } from './A2UIJsonRenderActivityRenderer';
9
+ export { JsonRenderEngine, createJsonRenderEngine } from './engine';
10
+ export { PerformanceMonitor, globalPerformanceMonitor, checkPerformance, PERFORMANCE_THRESHOLDS, } from './performance';
11
+ export type { PerformanceMetrics } from './performance';
12
+ export type { JsonRenderSchema, ComponentCatalog, JsonRenderContext, DeltaInfo, JsonRenderActivityProps, A2UIAdapterConfig, } from './types';
13
+ export { createCustomRegistry, tdesignRegistry, withStableProps } from './catalog/index';
14
+ export type { CreateCustomRegistryOptions } from './catalog/index';
15
+ export { tdesignCatalog, createCustomCatalog, tdesignComponentList, tdesignActionList, } from './catalog/index';
16
+ export type { Catalog } from '@json-render/core';
17
+ export { a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton } from './catalog/index';
18
+ export { withA2UIBinding } from './catalog/index';
19
+ export type { A2UIBindingConfig } from './catalog/index';
20
+ export { JsonRenderButton } from './catalog/button';
21
+ export { JsonRenderInput } from './catalog/input';
22
+ export { JsonRenderCard } from './catalog/card';
23
+ export { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderDivider, } from './catalog/layout';
24
+ export { createJsonRenderActivityConfig, defaultJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig, defaultA2UIJsonRenderActivityConfig, } from './config';
25
+ export type { JsonRenderActivityConfigOptions } from './config';
26
+ export * from './adapters';
27
+ export { surfaceStateManager, SurfaceStateManager } from './SurfaceStateManager';
28
+ export type { SurfaceCache, SurfaceSubscriber } from './SurfaceStateManager';
29
+ export { createJsonRenderActivityConfig as default } from './config';
30
+ export { DataProvider, useData, useDataValue, useDataBinding, type DataContextValue, type DataProviderProps, } from "./contexts/data";
31
+ export { VisibilityProvider, useVisibility, useIsVisible, type VisibilityContextValue, type VisibilityProviderProps, } from "./contexts/visibility";
32
+ export { ActionProvider, useActions, useAction, ConfirmDialog, type ActionContextValue, type ActionProviderProps, type PendingConfirmation, type ConfirmDialogProps, } from "./contexts/actions";
33
+ export { ValidationProvider, useValidation, useFieldValidation, type ValidationContextValue, type ValidationProviderProps, type FieldValidationState, } from "./contexts/validation";
34
+ export { Renderer, JSONUIProvider, createRendererFromCatalog, type ComponentRenderProps, type ComponentRenderer, type ComponentRegistry, type RendererProps, type JSONUIProviderProps, } from "./renderer";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { e as A2UIButton, A as A2UIJsonRenderActivityRenderer, d as A2UITextField, J as JsonRenderActivityRenderer, g as JsonRenderInput, a as a2uiRegistry, j as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig, t as tdesignRegistry, f as withA2UIBinding, w as withStableProps } from '../../../_chunks/dep-f2051ebd.js';
8
+ export { JsonRenderEngine, createJsonRenderEngine } from './engine.js';
9
+ export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, globalPerformanceMonitor } from './performance.js';
10
+ export { JsonRenderButton } from './catalog/button.js';
11
+ export { JsonRenderCard } from './catalog/card.js';
12
+ export { JsonRenderCol, JsonRenderDivider, JsonRenderRow, JsonRenderSpace } from './catalog/layout.js';
13
+ import './adapters/index.js';
14
+ export { SurfaceStateManager, surfaceStateManager } from './SurfaceStateManager.js';
15
+ export { DataProvider, useData, useDataBinding, useDataValue } from './contexts/data.js';
16
+ export { VisibilityProvider, useIsVisible, useVisibility } from './contexts/visibility.js';
17
+ export { ActionProvider, ConfirmDialog, useAction, useActions } from './contexts/actions.js';
18
+ export { ValidationProvider, useFieldValidation, useValidation } from './contexts/validation.js';
19
+ export { JSONUIProvider, Renderer, createRendererFromCatalog } from './renderer.js';
20
+ export { createCustomCatalog, tdesignActionList, tdesignCatalog, tdesignComponentList } from './catalog.js';
21
+ export { default as A2UIAdapter, applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender } from './adapters/a2ui-to-jsonrender.js';
22
+ import 'react';
23
+ import '@babel/runtime/helpers/typeof';
24
+ import '@babel/runtime/helpers/slicedToArray';
25
+ import '@babel/runtime/helpers/defineProperty';
26
+ import '@babel/runtime/helpers/objectWithoutProperties';
27
+ import 'tdesign-react';
28
+ import '@json-render/core';
29
+ import './catalog/text.js';
30
+ import '@babel/runtime/helpers/classCallCheck';
31
+ import '@babel/runtime/helpers/createClass';
32
+ import '@babel/runtime/helpers/toConsumableArray';
33
+ import '@babel/runtime/helpers/asyncToGenerator';
34
+ import '@babel/runtime/regenerator';
35
+ import 'zod';
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * json-render 性能监控和优化工具
3
+ */
4
+ /**
5
+ * 性能指标
6
+ */
7
+ export interface PerformanceMetrics {
8
+ /** 渲染类型 */
9
+ type: 'snapshot' | 'delta';
10
+ /** 渲染开始时间 */
11
+ startTime: number;
12
+ /** 渲染结束时间 */
13
+ endTime: number;
14
+ /** 渲染耗时(ms) */
15
+ duration: number;
16
+ /** Schema 元素数量 */
17
+ elementCount: number;
18
+ /** 增量信息(仅 delta 类型) */
19
+ deltaInfo?: {
20
+ fromIndex: number;
21
+ toIndex: number;
22
+ newElementsCount: number;
23
+ };
24
+ }
25
+ /**
26
+ * 性能监控器
27
+ */
28
+ export declare class PerformanceMonitor {
29
+ private metrics;
30
+ private maxMetricsCount;
31
+ /**
32
+ * 开始性能测量
33
+ */
34
+ start(): () => PerformanceMetrics;
35
+ /**
36
+ * 添加性能指标
37
+ */
38
+ private addMetric;
39
+ /**
40
+ * 获取所有指标
41
+ */
42
+ getMetrics(): PerformanceMetrics[];
43
+ /**
44
+ * 获取平均渲染时间
45
+ */
46
+ getAverageDuration(type?: 'snapshot' | 'delta'): number;
47
+ /**
48
+ * 获取最近 N 次渲染的平均时间
49
+ */
50
+ getRecentAverageDuration(count?: number): number;
51
+ /**
52
+ * 获取性能统计摘要
53
+ */
54
+ getSummary(): {
55
+ totalRenders: number;
56
+ snapshotRenders: number;
57
+ deltaRenders: number;
58
+ avgSnapshotDuration: number;
59
+ avgDeltaDuration: number;
60
+ recentAvgDuration: number;
61
+ };
62
+ /**
63
+ * 重置所有指标
64
+ */
65
+ reset(): void;
66
+ /**
67
+ * 打印性能摘要
68
+ */
69
+ printSummary(): void;
70
+ }
71
+ /**
72
+ * 全局性能监控实例
73
+ */
74
+ export declare const globalPerformanceMonitor: PerformanceMonitor;
75
+ /**
76
+ * 性能警告阈值(ms)
77
+ */
78
+ export declare const PERFORMANCE_THRESHOLDS: {
79
+ snapshot: number;
80
+ delta: number;
81
+ };
82
+ /**
83
+ * 检查性能并发出警告
84
+ */
85
+ export declare function checkPerformance(metric: PerformanceMetrics): void;
86
+ declare const _default: {
87
+ PerformanceMonitor: typeof PerformanceMonitor;
88
+ globalPerformanceMonitor: PerformanceMonitor;
89
+ checkPerformance: typeof checkPerformance;
90
+ };
91
+ export default _default;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
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
+
12
+ var PerformanceMonitor = /*#__PURE__*/function () {
13
+ function PerformanceMonitor() {
14
+ _classCallCheck(this, PerformanceMonitor);
15
+ _defineProperty(this, "metrics", []);
16
+ _defineProperty(this, "maxMetricsCount", 100);
17
+ }
18
+ return _createClass(PerformanceMonitor, [{
19
+ key: "start",
20
+ value: function start() {
21
+ var _this = this;
22
+ var startTime = performance.now();
23
+ return function (type, elementCount, deltaInfo) {
24
+ var endTime = performance.now();
25
+ var duration = endTime - startTime;
26
+ var metric = {
27
+ type: type,
28
+ startTime: startTime,
29
+ endTime: endTime,
30
+ duration: duration,
31
+ elementCount: elementCount,
32
+ deltaInfo: deltaInfo ? {
33
+ fromIndex: deltaInfo.fromIndex,
34
+ toIndex: deltaInfo.toIndex,
35
+ newElementsCount: deltaInfo.toIndex - deltaInfo.fromIndex
36
+ } : void 0
37
+ };
38
+ _this.addMetric(metric);
39
+ return metric;
40
+ };
41
+ }
42
+ }, {
43
+ key: "addMetric",
44
+ value: function addMetric(metric) {
45
+ this.metrics.push(metric);
46
+ if (this.metrics.length > this.maxMetricsCount) {
47
+ this.metrics.shift();
48
+ }
49
+ }
50
+ }, {
51
+ key: "getMetrics",
52
+ value: function getMetrics() {
53
+ return _toConsumableArray(this.metrics);
54
+ }
55
+ }, {
56
+ key: "getAverageDuration",
57
+ value: function getAverageDuration(type) {
58
+ var filteredMetrics = type ? this.metrics.filter(function (m) {
59
+ return m.type === type;
60
+ }) : this.metrics;
61
+ if (filteredMetrics.length === 0) return 0;
62
+ var totalDuration = filteredMetrics.reduce(function (sum, m) {
63
+ return sum + m.duration;
64
+ }, 0);
65
+ return totalDuration / filteredMetrics.length;
66
+ }
67
+ }, {
68
+ key: "getRecentAverageDuration",
69
+ value: function getRecentAverageDuration() {
70
+ var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
71
+ var recentMetrics = this.metrics.slice(-count);
72
+ if (recentMetrics.length === 0) return 0;
73
+ var totalDuration = recentMetrics.reduce(function (sum, m) {
74
+ return sum + m.duration;
75
+ }, 0);
76
+ return totalDuration / recentMetrics.length;
77
+ }
78
+ }, {
79
+ key: "getSummary",
80
+ value: function getSummary() {
81
+ return {
82
+ totalRenders: this.metrics.length,
83
+ snapshotRenders: this.metrics.filter(function (m) {
84
+ return m.type === "snapshot";
85
+ }).length,
86
+ deltaRenders: this.metrics.filter(function (m) {
87
+ return m.type === "delta";
88
+ }).length,
89
+ avgSnapshotDuration: this.getAverageDuration("snapshot"),
90
+ avgDeltaDuration: this.getAverageDuration("delta"),
91
+ recentAvgDuration: this.getRecentAverageDuration()
92
+ };
93
+ }
94
+ }, {
95
+ key: "reset",
96
+ value: function reset() {
97
+ this.metrics = [];
98
+ }
99
+ }, {
100
+ key: "printSummary",
101
+ value: function printSummary() {
102
+ var summary = this.getSummary();
103
+ console.log("[json-render Performance Summary]", {
104
+ "\u603B\u6E32\u67D3\u6B21\u6570": summary.totalRenders,
105
+ "\u5FEB\u7167\u6E32\u67D3": summary.snapshotRenders,
106
+ "\u589E\u91CF\u6E32\u67D3": summary.deltaRenders,
107
+ "\u5FEB\u7167\u5E73\u5747\u8017\u65F6(ms)": summary.avgSnapshotDuration.toFixed(2),
108
+ "\u589E\u91CF\u5E73\u5747\u8017\u65F6(ms)": summary.avgDeltaDuration.toFixed(2),
109
+ "\u6700\u8FD110\u6B21\u5E73\u5747\u8017\u65F6(ms)": summary.recentAvgDuration.toFixed(2)
110
+ });
111
+ }
112
+ }]);
113
+ }();
114
+ var globalPerformanceMonitor = new PerformanceMonitor();
115
+ var PERFORMANCE_THRESHOLDS = {
116
+ snapshot: 50,
117
+ delta: 16
118
+ };
119
+ function checkPerformance(metric) {
120
+ var threshold = PERFORMANCE_THRESHOLDS[metric.type];
121
+ if (metric.duration > threshold) {
122
+ console.warn("[json-render Performance Warning] ".concat(metric.type, " \u6E32\u67D3\u8017\u65F6 ").concat(metric.duration.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(threshold, "ms"), {
123
+ elementCount: metric.elementCount,
124
+ deltaInfo: metric.deltaInfo
125
+ });
126
+ }
127
+ }
128
+ var performance$1 = {
129
+ PerformanceMonitor: PerformanceMonitor,
130
+ globalPerformanceMonitor: globalPerformanceMonitor,
131
+ checkPerformance: checkPerformance
132
+ };
133
+
134
+ export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, performance$1 as default, globalPerformanceMonitor };
135
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/performance.ts"],"sourcesContent":["/**\n * json-render 性能监控和优化工具\n */\n\n/**\n * 性能指标\n */\nexport interface PerformanceMetrics {\n /** 渲染类型 */\n type: 'snapshot' | 'delta';\n /** 渲染开始时间 */\n startTime: number;\n /** 渲染结束时间 */\n endTime: number;\n /** 渲染耗时(ms) */\n duration: number;\n /** Schema 元素数量 */\n elementCount: number;\n /** 增量信息(仅 delta 类型) */\n deltaInfo?: {\n fromIndex: number;\n toIndex: number;\n newElementsCount: number;\n };\n}\n\n/**\n * 性能监控器\n */\nexport class PerformanceMonitor {\n private metrics: PerformanceMetrics[] = [];\n private maxMetricsCount = 100; // 最多保留 100 条记录\n\n /**\n * 开始性能测量\n */\n start(): () => PerformanceMetrics {\n const startTime = performance.now();\n \n return (\n type: 'snapshot' | 'delta',\n elementCount: number,\n deltaInfo?: { fromIndex: number; toIndex: number },\n ): PerformanceMetrics => {\n const endTime = performance.now();\n const duration = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n type,\n startTime,\n endTime,\n duration,\n elementCount,\n deltaInfo: deltaInfo\n ? {\n fromIndex: deltaInfo.fromIndex,\n toIndex: deltaInfo.toIndex,\n newElementsCount: deltaInfo.toIndex - deltaInfo.fromIndex,\n }\n : undefined,\n };\n\n this.addMetric(metric);\n return metric;\n };\n }\n\n /**\n * 添加性能指标\n */\n private addMetric(metric: PerformanceMetrics): void {\n this.metrics.push(metric);\n\n // 限制记录数量\n if (this.metrics.length > this.maxMetricsCount) {\n this.metrics.shift();\n }\n }\n\n /**\n * 获取所有指标\n */\n getMetrics(): PerformanceMetrics[] {\n return [...this.metrics];\n }\n\n /**\n * 获取平均渲染时间\n */\n getAverageDuration(type?: 'snapshot' | 'delta'): number {\n const filteredMetrics = type\n ? this.metrics.filter((m) => m.type === type)\n : this.metrics;\n\n if (filteredMetrics.length === 0) return 0;\n\n const totalDuration = filteredMetrics.reduce((sum, m) => sum + m.duration, 0);\n return totalDuration / filteredMetrics.length;\n }\n\n /**\n * 获取最近 N 次渲染的平均时间\n */\n getRecentAverageDuration(count: number = 10): number {\n const recentMetrics = this.metrics.slice(-count);\n if (recentMetrics.length === 0) return 0;\n\n const totalDuration = recentMetrics.reduce((sum, m) => sum + m.duration, 0);\n return totalDuration / recentMetrics.length;\n }\n\n /**\n * 获取性能统计摘要\n */\n getSummary() {\n return {\n totalRenders: this.metrics.length,\n snapshotRenders: this.metrics.filter((m) => m.type === 'snapshot').length,\n deltaRenders: this.metrics.filter((m) => m.type === 'delta').length,\n avgSnapshotDuration: this.getAverageDuration('snapshot'),\n avgDeltaDuration: this.getAverageDuration('delta'),\n recentAvgDuration: this.getRecentAverageDuration(),\n };\n }\n\n /**\n * 重置所有指标\n */\n reset(): void {\n this.metrics = [];\n }\n\n /**\n * 打印性能摘要\n */\n printSummary(): void {\n const summary = this.getSummary();\n console.log('[json-render Performance Summary]', {\n '总渲染次数': summary.totalRenders,\n '快照渲染': summary.snapshotRenders,\n '增量渲染': summary.deltaRenders,\n '快照平均耗时(ms)': summary.avgSnapshotDuration.toFixed(2),\n '增量平均耗时(ms)': summary.avgDeltaDuration.toFixed(2),\n '最近10次平均耗时(ms)': summary.recentAvgDuration.toFixed(2),\n });\n }\n}\n\n/**\n * 全局性能监控实例\n */\nexport const globalPerformanceMonitor = new PerformanceMonitor();\n\n/**\n * 性能警告阈值(ms)\n */\nexport const PERFORMANCE_THRESHOLDS = {\n snapshot: 50, // 快照渲染超过 50ms 发出警告\n delta: 16, // 增量渲染超过 16ms 发出警告(1帧)\n};\n\n/**\n * 检查性能并发出警告\n */\nexport function checkPerformance(metric: PerformanceMetrics): void {\n const threshold = PERFORMANCE_THRESHOLDS[metric.type];\n \n if (metric.duration > threshold) {\n console.warn(\n `[json-render Performance Warning] ${metric.type} 渲染耗时 ${metric.duration.toFixed(2)}ms,超过阈值 ${threshold}ms`,\n {\n elementCount: metric.elementCount,\n deltaInfo: metric.deltaInfo,\n },\n );\n }\n}\n\nexport default {\n PerformanceMonitor,\n globalPerformanceMonitor,\n checkPerformance,\n};\n"],"names":["PerformanceMonitor","_classCallCheck","_defineProperty","_createClass","key","value","start","_this","startTime","performance","now","type","elementCount","deltaInfo","endTime","duration","metric","fromIndex","toIndex","newElementsCount","addMetric","metrics","push","length","maxMetricsCount","shift","getMetrics","_toConsumableArray","getAverageDuration","filteredMetrics","filter","m","totalDuration","reduce","sum","getRecentAverageDuration","count","recentMetrics","slice","getSummary","totalRenders","snapshotRenders","deltaRenders","avgSnapshotDuration","avgDeltaDuration","recentAvgDuration","reset","printSummary","summary","console","log","toFixed","globalPerformanceMonitor","PERFORMANCE_THRESHOLDS","snapshot","delta","checkPerformance","threshold","warn","concat"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { type ComponentType, type ReactNode } from "react";
2
+ import type { UIElement, UITree, Action, Catalog, ComponentDefinition } from "@json-render/core";
3
+ /**
4
+ * Props passed to component renderers
5
+ */
6
+ export interface ComponentRenderProps<P = Record<string, unknown>> {
7
+ /** The element being rendered */
8
+ element: UIElement<string, P>;
9
+ /** Rendered children */
10
+ children?: ReactNode;
11
+ /** Execute an action */
12
+ onAction?: (action: Action) => void;
13
+ /** Whether the parent is loading */
14
+ loading?: boolean;
15
+ }
16
+ /**
17
+ * Component renderer type
18
+ */
19
+ export type ComponentRenderer<P = Record<string, unknown>> = ComponentType<ComponentRenderProps<P>>;
20
+ /**
21
+ * Registry of component renderers
22
+ */
23
+ export type ComponentRegistry = Record<string, ComponentRenderer<any>>;
24
+ /**
25
+ * Props for the Renderer component
26
+ */
27
+ export interface RendererProps {
28
+ /** The UI tree to render */
29
+ tree: UITree | null;
30
+ /** Component registry */
31
+ registry: ComponentRegistry;
32
+ /** Whether the tree is currently loading/streaming */
33
+ loading?: boolean;
34
+ /** Fallback component for unknown types */
35
+ fallback?: ComponentRenderer;
36
+ }
37
+ /**
38
+ * Main renderer component
39
+ */
40
+ export declare function Renderer({ tree, registry, loading, fallback }: RendererProps): import("react/jsx-runtime").JSX.Element;
41
+ /**
42
+ * Props for JSONUIProvider
43
+ */
44
+ export interface JSONUIProviderProps {
45
+ /** Component registry */
46
+ registry: ComponentRegistry;
47
+ /** Initial data model */
48
+ initialData?: Record<string, unknown>;
49
+ /** Auth state */
50
+ authState?: {
51
+ isSignedIn: boolean;
52
+ user?: Record<string, unknown>;
53
+ };
54
+ /** Action handlers */
55
+ actionHandlers?: Record<string, (params: Record<string, unknown>) => Promise<unknown> | unknown>;
56
+ /** Navigation function */
57
+ navigate?: (path: string) => void;
58
+ /** Custom validation functions */
59
+ validationFunctions?: Record<string, (value: unknown, args?: Record<string, unknown>) => boolean>;
60
+ /** Callback when data changes */
61
+ onDataChange?: (path: string, value: unknown) => void;
62
+ children: ReactNode;
63
+ }
64
+ /**
65
+ * Combined provider for all JSONUI contexts
66
+ */
67
+ export declare function JSONUIProvider({ registry, initialData, authState, actionHandlers, navigate, validationFunctions, onDataChange, children, }: JSONUIProviderProps): import("react/jsx-runtime").JSX.Element;
68
+ /**
69
+ * Helper to create a renderer component from a catalog
70
+ */
71
+ export declare function createRendererFromCatalog<C extends Catalog<Record<string, ComponentDefinition>>>(_catalog: C, registry: ComponentRegistry): ComponentType<Omit<RendererProps, "registry">>;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import React from 'react';
9
+ import { useIsVisible, VisibilityProvider } from './contexts/visibility.js';
10
+ import { useActions, ActionProvider, ConfirmDialog } from './contexts/actions.js';
11
+ import { DataProvider } from './contexts/data.js';
12
+ import { ValidationProvider } from './contexts/validation.js';
13
+ import '@json-render/core';
14
+ import '@babel/runtime/helpers/typeof';
15
+ import '@babel/runtime/helpers/slicedToArray';
16
+ import '@babel/runtime/helpers/asyncToGenerator';
17
+ import '@babel/runtime/regenerator';
18
+ import '@babel/runtime/helpers/objectWithoutProperties';
19
+
20
+ "use client";
21
+ 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; }
22
+ 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; }
23
+ function ElementRenderer(_ref) {
24
+ var _registry$element$typ, _element$children;
25
+ var element = _ref.element,
26
+ tree = _ref.tree,
27
+ registry = _ref.registry,
28
+ loading = _ref.loading,
29
+ fallback = _ref.fallback;
30
+ var isVisible = useIsVisible(element.visible);
31
+ var _useActions = useActions(),
32
+ execute = _useActions.execute;
33
+ if (!isVisible) {
34
+ return null;
35
+ }
36
+ var Component = (_registry$element$typ = registry[element.type]) !== null && _registry$element$typ !== void 0 ? _registry$element$typ : fallback;
37
+ if (!Component) {
38
+ console.warn("No renderer for component type: ".concat(element.type));
39
+ return null;
40
+ }
41
+ var children = (_element$children = element.children) === null || _element$children === void 0 ? void 0 : _element$children.map(function (childKey) {
42
+ var childElement = tree.elements[childKey];
43
+ if (!childElement) {
44
+ return null;
45
+ }
46
+ return /* @__PURE__ */React.createElement(ElementRenderer, {
47
+ key: childKey,
48
+ element: childElement,
49
+ tree: tree,
50
+ registry: registry,
51
+ loading: loading,
52
+ fallback: fallback
53
+ });
54
+ });
55
+ return /* @__PURE__ */React.createElement(Component, {
56
+ element: element,
57
+ onAction: execute,
58
+ loading: loading
59
+ }, children);
60
+ }
61
+ function Renderer(_ref2) {
62
+ var tree = _ref2.tree,
63
+ registry = _ref2.registry,
64
+ loading = _ref2.loading,
65
+ fallback = _ref2.fallback;
66
+ if (!tree || !tree.root) {
67
+ return null;
68
+ }
69
+ var rootElement = tree.elements[tree.root];
70
+ if (!rootElement) {
71
+ return null;
72
+ }
73
+ return /* @__PURE__ */React.createElement(ElementRenderer, {
74
+ element: rootElement,
75
+ tree: tree,
76
+ registry: registry,
77
+ loading: loading,
78
+ fallback: fallback
79
+ });
80
+ }
81
+ function JSONUIProvider(_ref3) {
82
+ var registry = _ref3.registry,
83
+ initialData = _ref3.initialData,
84
+ authState = _ref3.authState,
85
+ actionHandlers = _ref3.actionHandlers,
86
+ navigate = _ref3.navigate,
87
+ validationFunctions = _ref3.validationFunctions,
88
+ onDataChange = _ref3.onDataChange,
89
+ children = _ref3.children;
90
+ return /* @__PURE__ */React.createElement(DataProvider, {
91
+ initialData: initialData,
92
+ authState: authState,
93
+ onDataChange: onDataChange
94
+ }, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
95
+ handlers: actionHandlers,
96
+ navigate: navigate
97
+ }, /* @__PURE__ */React.createElement(ValidationProvider, {
98
+ customFunctions: validationFunctions
99
+ }, children, /* @__PURE__ */React.createElement(ConfirmationDialogManager, null)))));
100
+ }
101
+ function ConfirmationDialogManager() {
102
+ var _useActions2 = useActions(),
103
+ pendingConfirmation = _useActions2.pendingConfirmation,
104
+ confirm = _useActions2.confirm,
105
+ cancel = _useActions2.cancel;
106
+ if (!(pendingConfirmation !== null && pendingConfirmation !== void 0 && pendingConfirmation.action.confirm)) {
107
+ return null;
108
+ }
109
+ return /* @__PURE__ */React.createElement(ConfirmDialog, {
110
+ confirm: pendingConfirmation.action.confirm,
111
+ onConfirm: confirm,
112
+ onCancel: cancel
113
+ });
114
+ }
115
+ function createRendererFromCatalog(_catalog, registry) {
116
+ return function CatalogRenderer(props) {
117
+ return /* @__PURE__ */React.createElement(Renderer, _objectSpread(_objectSpread({}, props), {}, {
118
+ registry: registry
119
+ }));
120
+ };
121
+ }
122
+
123
+ export { JSONUIProvider, Renderer, createRendererFromCatalog };
124
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/renderer.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { type ComponentType, type ReactNode, useMemo } from \"react\";\nimport type {\n UIElement,\n UITree,\n Action,\n Catalog,\n ComponentDefinition,\n} from \"@json-render/core\";\nimport { useIsVisible } from \"./contexts/visibility\";\nimport { useActions } from \"./contexts/actions\";\n\n/**\n * Props passed to component renderers\n */\nexport interface ComponentRenderProps<P = Record<string, unknown>> {\n /** The element being rendered */\n element: UIElement<string, P>;\n /** Rendered children */\n children?: ReactNode;\n /** Execute an action */\n onAction?: (action: Action) => void;\n /** Whether the parent is loading */\n loading?: boolean;\n}\n\n/**\n * Component renderer type\n */\nexport type ComponentRenderer<P = Record<string, unknown>> = ComponentType<\n ComponentRenderProps<P>\n>;\n\n/**\n * Registry of component renderers\n */\nexport type ComponentRegistry = Record<string, ComponentRenderer<any>>;\n\n/**\n * Props for the Renderer component\n */\nexport interface RendererProps {\n /** The UI tree to render */\n tree: UITree | null;\n /** Component registry */\n registry: ComponentRegistry;\n /** Whether the tree is currently loading/streaming */\n loading?: boolean;\n /** Fallback component for unknown types */\n fallback?: ComponentRenderer;\n}\n\n/**\n * Element renderer component\n */\nfunction ElementRenderer({\n element,\n tree,\n registry,\n loading,\n fallback,\n}: {\n element: UIElement;\n tree: UITree;\n registry: ComponentRegistry;\n loading?: boolean;\n fallback?: ComponentRenderer;\n}) {\n const isVisible = useIsVisible(element.visible);\n const { execute } = useActions();\n\n // Don't render if not visible\n if (!isVisible) {\n return null;\n }\n\n // Get the component renderer\n const Component = registry[element.type] ?? fallback;\n\n if (!Component) {\n console.warn(`No renderer for component type: ${element.type}`);\n return null;\n }\n\n // Render children\n const children = element.children?.map((childKey) => {\n const childElement = tree.elements[childKey];\n if (!childElement) {\n return null;\n }\n return (\n <ElementRenderer\n key={childKey}\n element={childElement}\n tree={tree}\n registry={registry}\n loading={loading}\n fallback={fallback}\n />\n );\n });\n\n return (\n <Component element={element} onAction={execute} loading={loading}>\n {children}\n </Component>\n );\n}\n\n/**\n * Main renderer component\n */\nexport function Renderer({ tree, registry, loading, fallback }: RendererProps) {\n if (!tree || !tree.root) {\n return null;\n }\n\n const rootElement = tree.elements[tree.root];\n if (!rootElement) {\n return null;\n }\n\n return (\n <ElementRenderer\n element={rootElement}\n tree={tree}\n registry={registry}\n loading={loading}\n fallback={fallback}\n />\n );\n}\n\n/**\n * Props for JSONUIProvider\n */\nexport interface JSONUIProviderProps {\n /** Component registry */\n registry: ComponentRegistry;\n /** Initial data model */\n initialData?: Record<string, unknown>;\n /** Auth state */\n authState?: { isSignedIn: boolean; user?: Record<string, unknown> };\n /** Action handlers */\n actionHandlers?: Record<\n string,\n (params: Record<string, unknown>) => Promise<unknown> | unknown\n >;\n /** Navigation function */\n navigate?: (path: string) => void;\n /** Custom validation functions */\n validationFunctions?: Record<\n string,\n (value: unknown, args?: Record<string, unknown>) => boolean\n >;\n /** Callback when data changes */\n onDataChange?: (path: string, value: unknown) => void;\n children: ReactNode;\n}\n\n// Import the providers\nimport { DataProvider } from \"./contexts/data\";\nimport { VisibilityProvider } from \"./contexts/visibility\";\nimport { ActionProvider } from \"./contexts/actions\";\nimport { ValidationProvider } from \"./contexts/validation\";\nimport { ConfirmDialog } from \"./contexts/actions\";\n\n/**\n * Combined provider for all JSONUI contexts\n */\nexport function JSONUIProvider({\n registry,\n initialData,\n authState,\n actionHandlers,\n navigate,\n validationFunctions,\n onDataChange,\n children,\n}: JSONUIProviderProps) {\n return (\n <DataProvider\n initialData={initialData}\n authState={authState}\n onDataChange={onDataChange}\n >\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers} navigate={navigate}>\n <ValidationProvider customFunctions={validationFunctions}>\n {children}\n <ConfirmationDialogManager />\n </ValidationProvider>\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n );\n}\n\n/**\n * Renders the confirmation dialog when needed\n */\nfunction ConfirmationDialogManager() {\n const { pendingConfirmation, confirm, cancel } = useActions();\n\n if (!pendingConfirmation?.action.confirm) {\n return null;\n }\n\n return (\n <ConfirmDialog\n confirm={pendingConfirmation.action.confirm}\n onConfirm={confirm}\n onCancel={cancel}\n />\n );\n}\n\n/**\n * Helper to create a renderer component from a catalog\n */\nexport function createRendererFromCatalog<\n C extends Catalog<Record<string, ComponentDefinition>>,\n>(\n _catalog: C,\n registry: ComponentRegistry,\n): ComponentType<Omit<RendererProps, \"registry\">> {\n return function CatalogRenderer(props: Omit<RendererProps, \"registry\">) {\n return <Renderer {...props} registry={registry} />;\n };\n}\n"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ElementRenderer","_ref","_registry$element$typ","_element$children","element","tree","registry","loading","fallback","isVisible","useIsVisible","visible","_useActions","useActions","execute","Component","type","console","warn","concat","children","map","childKey","childElement","elements","React","createElement","key","onAction","Renderer","_ref2","root","rootElement","JSONUIProvider","_ref3","initialData","authState","actionHandlers","navigate","validationFunctions","onDataChange","DataProvider","VisibilityProvider","ActionProvider","handlers","ValidationProvider","customFunctions","ConfirmationDialogManager","_useActions2","pendingConfirmation","confirm","cancel","action","ConfirmDialog","onConfirm","onCancel","createRendererFromCatalog","_catalog","CatalogRenderer","props"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * json-render 集成相关类型定义
3
+ */
4
+ import type { UITree, UIElement } from '@json-render/core';
5
+ import type { ComponentRenderProps, ComponentRegistry } from '@json-render/react';
6
+ /**
7
+ * json-render Activity 内容格式
8
+ * 用于 ACTIVITY_SNAPSHOT 和 ACTIVITY_DELTA 事件
9
+ */
10
+ export interface JsonRenderSchema extends UITree {
11
+ root: string;
12
+ elements: Record<string, UIElement>;
13
+ data?: Record<string, unknown>;
14
+ }
15
+ /**
16
+ * 组件目录(Catalog)定义
17
+ * 映射组件类型到 React 组件实现
18
+ * 使用 @json-render/react 的 ComponentRegistry 类型
19
+ */
20
+ export type ComponentCatalog = ComponentRegistry;
21
+ export type { ComponentRenderProps };
22
+ /**
23
+ * 渲染上下文配置
24
+ */
25
+ export interface JsonRenderContext {
26
+ /** 渲染模式:direct(直接模式) | adapter(适配模式) */
27
+ mode: 'direct' | 'adapter';
28
+ /** 组件目录 */
29
+ catalog: ComponentCatalog;
30
+ /** 可选:自定义数据 */
31
+ customData?: Record<string, unknown>;
32
+ }
33
+ /**
34
+ * 增量更新信息
35
+ * 从 event-mapper 的 deltaInfo 传递过来
36
+ */
37
+ export interface DeltaInfo {
38
+ /** 新增元素的起始索引 */
39
+ fromIndex: number;
40
+ /** 新增元素的结束索引 */
41
+ toIndex: number;
42
+ }
43
+ /**
44
+ * json-render Activity 渲染器 Props
45
+ */
46
+ export interface JsonRenderActivityProps {
47
+ /** Activity 类型 */
48
+ activityType: string;
49
+ /** json-render Schema 内容 */
50
+ content: JsonRenderSchema;
51
+ /** 关联的消息 ID */
52
+ messageId: string;
53
+ /** 扩展属性(包含 deltaInfo) */
54
+ ext?: {
55
+ deltaInfo?: DeltaInfo;
56
+ [key: string]: any;
57
+ };
58
+ }
59
+ /**
60
+ * A2UI → json-render 转换配置
61
+ */
62
+ export interface A2UIAdapterConfig {
63
+ /** 启用适配模式 */
64
+ enabled: boolean;
65
+ /** 自定义类型映射表 */
66
+ typeMapping?: Record<string, string>;
67
+ /** 自定义属性映射 */
68
+ propsMapping?: Record<string, (value: any) => any>;
69
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}