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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/es/_chunks/dep-870f0d35.js +839 -0
  2. package/es/_chunks/dep-870f0d35.js.map +1 -0
  3. package/es/_chunks/dep-f2051ebd.js +839 -0
  4. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  5. package/es/_util/reactify.js +1 -1
  6. package/es/_util/useDynamicStyle.js +1 -1
  7. package/es/attachments/index.js +1 -1
  8. package/es/chat-actionbar/index.js +1 -1
  9. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  10. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  11. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  12. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  13. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  14. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  15. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  16. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  17. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  18. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  19. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  20. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  21. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  22. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  23. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  24. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  25. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  26. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  27. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  28. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  29. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  30. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  31. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  32. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  33. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  34. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  35. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  36. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  37. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  38. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  39. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  40. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  41. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  42. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  43. package/es/chat-engine/components/a2ui/index.js +62 -0
  44. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  45. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  46. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  47. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  48. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  49. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  50. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  51. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  52. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  53. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  54. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  55. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  56. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  57. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  58. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  59. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  60. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  61. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  62. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  63. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  64. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  65. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  66. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  67. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  68. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  69. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  70. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  71. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  72. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  73. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  74. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  75. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  76. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  77. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  78. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  79. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  80. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  81. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  82. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  83. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  84. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  85. package/es/chat-engine/components/a2ui/registry.js +74 -0
  86. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  87. package/es/chat-engine/components/activity/index.js +1 -1
  88. package/es/chat-engine/components/activity/registry.d.ts +1 -1
  89. package/es/chat-engine/components/activity/registry.js +1 -1
  90. package/es/chat-engine/components/activity/registry.js.map +1 -1
  91. package/es/chat-engine/components/activity/render.d.ts +2 -2
  92. package/es/chat-engine/components/activity/render.js +1 -1
  93. package/es/chat-engine/components/activity/render.js.map +1 -1
  94. package/es/chat-engine/components/activity/types.js +1 -1
  95. package/es/chat-engine/components/index.d.ts +1 -0
  96. package/es/chat-engine/components/index.js +57 -9
  97. package/es/chat-engine/components/index.js.map +1 -1
  98. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  99. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  100. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  101. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  102. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  103. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  104. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  105. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  106. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  107. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  108. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  109. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  110. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  111. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  112. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  113. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  114. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  115. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  116. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  117. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  118. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  119. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  120. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  121. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  122. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  123. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  124. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  125. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  126. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  127. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  128. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  129. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  130. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  131. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  132. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  133. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  134. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  135. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  136. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  137. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  138. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  139. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  140. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  141. package/es/chat-engine/components/json-render/catalog.js +559 -0
  142. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  143. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  144. package/es/chat-engine/components/json-render/config.js +36 -0
  145. package/es/chat-engine/components/json-render/config.js.map +1 -0
  146. package/es/chat-engine/components/json-render/contexts/actions.d.ts +74 -0
  147. package/es/chat-engine/components/json-render/contexts/actions.js +290 -0
  148. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  149. package/es/chat-engine/components/json-render/contexts/data.d.ts +45 -0
  150. package/es/chat-engine/components/json-render/contexts/data.js +104 -0
  151. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  152. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  153. package/es/chat-engine/components/json-render/contexts/validation.js +151 -0
  154. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  155. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +29 -0
  156. package/es/chat-engine/components/json-render/contexts/visibility.js +56 -0
  157. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  158. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  159. package/es/chat-engine/components/json-render/engine.js +88 -0
  160. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  161. package/es/chat-engine/components/json-render/index.d.ts +36 -0
  162. package/es/chat-engine/components/json-render/index.js +36 -0
  163. package/es/chat-engine/components/json-render/index.js.map +1 -0
  164. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  165. package/es/chat-engine/components/json-render/performance.js +135 -0
  166. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  167. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  168. package/es/chat-engine/components/json-render/renderer.js +124 -0
  169. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  170. package/es/chat-engine/components/json-render/types.d.ts +69 -0
  171. package/es/chat-engine/components/json-render/types.js +7 -0
  172. package/es/chat-engine/components/json-render/types.js.map +1 -0
  173. package/es/chat-engine/components/provider/agent-state.js +39 -2
  174. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  175. package/es/chat-engine/components/toolcall/index.js +32 -2
  176. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  177. package/es/chat-engine/components/toolcall/registry.js +1 -1
  178. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  179. package/es/chat-engine/components/toolcall/render.js +33 -4
  180. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  181. package/es/chat-engine/components/toolcall/types.js +1 -1
  182. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  183. package/es/chat-engine/core/a2ui/index.js +24 -0
  184. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  185. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  186. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  187. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  188. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  189. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  190. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  191. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  192. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  193. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  194. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  195. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  196. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  197. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  198. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  199. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  200. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  201. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  202. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  203. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  204. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  205. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  206. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  207. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  208. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  209. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  210. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  211. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  212. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  213. package/es/chat-engine/core/adapters/agui/activity-manager.js +144 -0
  214. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  215. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
  216. package/es/chat-engine/core/adapters/agui/event-mapper.js +90 -50
  217. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  218. package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
  219. package/es/chat-engine/core/adapters/agui/events.js +34 -34
  220. package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
  221. package/es/chat-engine/core/adapters/agui/index.d.ts +22 -2
  222. package/es/chat-engine/core/adapters/agui/index.js +34 -14
  223. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  224. package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
  225. package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
  226. package/es/chat-engine/core/adapters/agui/types.js +5 -5
  227. package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
  228. package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
  229. package/es/chat-engine/core/adapters/agui/utils.js +23 -4
  230. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  231. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  232. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  233. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  234. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  235. package/es/chat-engine/core/event-bus/index.js +13 -0
  236. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  237. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  238. package/es/chat-engine/core/event-bus/types.js +32 -0
  239. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  240. package/es/chat-engine/core/index.d.ts +16 -1
  241. package/es/chat-engine/core/index.js +174 -17
  242. package/es/chat-engine/core/index.js.map +1 -1
  243. package/es/chat-engine/core/processor/index.js +1 -1
  244. package/es/chat-engine/core/server/batch-client.js +1 -1
  245. package/es/chat-engine/core/server/connection-manager.js +1 -1
  246. package/es/chat-engine/core/server/errors.js +1 -1
  247. package/es/chat-engine/core/server/index.js +1 -1
  248. package/es/chat-engine/core/server/llm-service.js +17 -15
  249. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  250. package/es/chat-engine/core/server/sse-client.js +1 -1
  251. package/es/chat-engine/core/server/sse-parser.js +1 -1
  252. package/es/chat-engine/core/server/types.js +1 -1
  253. package/es/chat-engine/core/store/message.js +2 -2
  254. package/es/chat-engine/core/store/message.js.map +1 -1
  255. package/es/chat-engine/core/store/model.js +1 -1
  256. package/es/chat-engine/core/store/reactiveState.js +1 -1
  257. package/es/chat-engine/core/type.d.ts +18 -2
  258. package/es/chat-engine/core/type.js +1 -1
  259. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  260. package/es/chat-engine/core/utils/index.js +1 -1
  261. package/es/chat-engine/core/utils/logger.js +1 -1
  262. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  263. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  264. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  265. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  266. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  267. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  268. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  269. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  270. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  271. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  272. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  273. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  274. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  275. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  276. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  277. package/es/chat-engine/hooks/index.js +38 -4
  278. package/es/chat-engine/hooks/index.js.map +1 -1
  279. package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
  280. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  281. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  282. package/es/chat-engine/hooks/useAgentState.js +39 -2
  283. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  284. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  285. package/es/chat-engine/hooks/useChat.d.ts +3 -3
  286. package/es/chat-engine/hooks/useChat.js +40 -2
  287. package/es/chat-engine/hooks/useChat.js.map +1 -1
  288. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  289. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  290. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  291. package/es/chat-engine/index.d.ts +1 -3
  292. package/es/chat-engine/index.js +30 -8
  293. package/es/chat-engine/index.js.map +1 -1
  294. package/es/chat-filecard/index.js +1 -1
  295. package/es/chat-loading/index.js +1 -1
  296. package/es/chat-markdown/index.js +1 -1
  297. package/es/chat-message/index.js +1 -1
  298. package/es/chat-sender/index.js +1 -1
  299. package/es/chat-thinking/index.js +1 -1
  300. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  301. package/es/chatbot/index.js +1 -1
  302. package/es/index.js +27 -5
  303. package/es/index.js.map +1 -1
  304. package/es/style/index.js +1 -1
  305. package/package.json +6 -3
@@ -0,0 +1,151 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.1
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _typeof from '@babel/runtime/helpers/typeof';
8
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
9
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
11
+ import React, { createContext, useState, useCallback, useMemo, useContext } from 'react';
12
+ import { runValidation } from '@json-render/core';
13
+ import { useData } from './data.js';
14
+
15
+ "use client";
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ 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; }
19
+ 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; }
20
+ var ValidationContext = /*#__PURE__*/createContext(null);
21
+ function ValidationProvider(_ref) {
22
+ var _ref$customFunctions = _ref.customFunctions,
23
+ customFunctions = _ref$customFunctions === void 0 ? {} : _ref$customFunctions,
24
+ children = _ref.children;
25
+ var _useData = useData(),
26
+ data = _useData.data,
27
+ authState = _useData.authState;
28
+ var _useState = useState({}),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ fieldStates = _useState2[0],
31
+ setFieldStates = _useState2[1];
32
+ var _useState3 = useState({}),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ fieldConfigs = _useState4[0],
35
+ setFieldConfigs = _useState4[1];
36
+ var registerField = useCallback(function (path, config) {
37
+ setFieldConfigs(function (prev) {
38
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, config));
39
+ });
40
+ }, []);
41
+ var validate = useCallback(function (path, config) {
42
+ var value2 = data[path.split("/").filter(Boolean).join(".")];
43
+ var result = runValidation(config, {
44
+ value: value2,
45
+ dataModel: data,
46
+ customFunctions: customFunctions,
47
+ authState: authState
48
+ });
49
+ setFieldStates(function (prev) {
50
+ var _prev$path$touched, _prev$path;
51
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, {
52
+ touched: (_prev$path$touched = (_prev$path = prev[path]) === null || _prev$path === void 0 ? void 0 : _prev$path.touched) !== null && _prev$path$touched !== void 0 ? _prev$path$touched : true,
53
+ validated: true,
54
+ result: result
55
+ }));
56
+ });
57
+ return result;
58
+ }, [data, customFunctions, authState]);
59
+ var touch = useCallback(function (path) {
60
+ setFieldStates(function (prev) {
61
+ var _prev$path$validated, _prev$path2, _prev$path$result, _prev$path3;
62
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, _objectSpread(_objectSpread({}, prev[path]), {}, {
63
+ touched: true,
64
+ validated: (_prev$path$validated = (_prev$path2 = prev[path]) === null || _prev$path2 === void 0 ? void 0 : _prev$path2.validated) !== null && _prev$path$validated !== void 0 ? _prev$path$validated : false,
65
+ result: (_prev$path$result = (_prev$path3 = prev[path]) === null || _prev$path3 === void 0 ? void 0 : _prev$path3.result) !== null && _prev$path$result !== void 0 ? _prev$path$result : null
66
+ })));
67
+ });
68
+ }, []);
69
+ var clear = useCallback(function (path) {
70
+ setFieldStates(function (prev) {
71
+ var _ = prev[path],
72
+ rest = _objectWithoutProperties(prev, [path].map(_toPropertyKey));
73
+ return rest;
74
+ });
75
+ }, []);
76
+ var validateAll = useCallback(function () {
77
+ var allValid = true;
78
+ for (var _i = 0, _Object$entries = Object.entries(fieldConfigs); _i < _Object$entries.length; _i++) {
79
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
80
+ path = _Object$entries$_i[0],
81
+ config = _Object$entries$_i[1];
82
+ var result = validate(path, config);
83
+ if (!result.valid) {
84
+ allValid = false;
85
+ }
86
+ }
87
+ return allValid;
88
+ }, [fieldConfigs, validate]);
89
+ var value = useMemo(function () {
90
+ return {
91
+ customFunctions: customFunctions,
92
+ fieldStates: fieldStates,
93
+ validate: validate,
94
+ touch: touch,
95
+ clear: clear,
96
+ validateAll: validateAll,
97
+ registerField: registerField
98
+ };
99
+ }, [customFunctions, fieldStates, validate, touch, clear, validateAll, registerField]);
100
+ return /* @__PURE__ */React.createElement(ValidationContext.Provider, {
101
+ value: value
102
+ }, children);
103
+ }
104
+ function useValidation() {
105
+ var ctx = useContext(ValidationContext);
106
+ if (!ctx) {
107
+ throw new Error("useValidation must be used within a ValidationProvider");
108
+ }
109
+ return ctx;
110
+ }
111
+ function useFieldValidation(path, config) {
112
+ var _fieldStates$path, _state$result$errors, _state$result, _state$result$valid, _state$result2;
113
+ var _useValidation = useValidation(),
114
+ fieldStates = _useValidation.fieldStates,
115
+ validateField = _useValidation.validate,
116
+ touchField = _useValidation.touch,
117
+ clearField = _useValidation.clear,
118
+ registerField = _useValidation.registerField;
119
+ React.useEffect(function () {
120
+ if (config) {
121
+ registerField(path, config);
122
+ }
123
+ }, [path, config, registerField]);
124
+ var state = (_fieldStates$path = fieldStates[path]) !== null && _fieldStates$path !== void 0 ? _fieldStates$path : {
125
+ touched: false,
126
+ validated: false,
127
+ result: null
128
+ };
129
+ var validate = useCallback(function () {
130
+ return validateField(path, config !== null && config !== void 0 ? config : {
131
+ checks: []
132
+ });
133
+ }, [path, config, validateField]);
134
+ var touch = useCallback(function () {
135
+ return touchField(path);
136
+ }, [path, touchField]);
137
+ var clear = useCallback(function () {
138
+ return clearField(path);
139
+ }, [path, clearField]);
140
+ return {
141
+ state: state,
142
+ validate: validate,
143
+ touch: touch,
144
+ clear: clear,
145
+ errors: (_state$result$errors = (_state$result = state.result) === null || _state$result === void 0 ? void 0 : _state$result.errors) !== null && _state$result$errors !== void 0 ? _state$result$errors : [],
146
+ isValid: (_state$result$valid = (_state$result2 = state.result) === null || _state$result2 === void 0 ? void 0 : _state$result2.valid) !== null && _state$result$valid !== void 0 ? _state$result$valid : true
147
+ };
148
+ }
149
+
150
+ export { ValidationProvider, useFieldValidation, useValidation };
151
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/validation.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n runValidation,\n type ValidationConfig,\n type ValidationFunction,\n type ValidationResult,\n} from \"@json-render/core\";\nimport { useData } from \"./data\";\n\n/**\n * Field validation state\n */\nexport interface FieldValidationState {\n /** Whether the field has been touched */\n touched: boolean;\n /** Whether the field has been validated */\n validated: boolean;\n /** Validation result */\n result: ValidationResult | null;\n}\n\n/**\n * Validation context value\n */\nexport interface ValidationContextValue {\n /** Custom validation functions from catalog */\n customFunctions: Record<string, ValidationFunction>;\n /** Validation state by field path */\n fieldStates: Record<string, FieldValidationState>;\n /** Validate a field */\n validate: (path: string, config: ValidationConfig) => ValidationResult;\n /** Mark field as touched */\n touch: (path: string) => void;\n /** Clear validation for a field */\n clear: (path: string) => void;\n /** Validate all fields */\n validateAll: () => boolean;\n /** Register field config */\n registerField: (path: string, config: ValidationConfig) => void;\n}\n\nconst ValidationContext = createContext<ValidationContextValue | null>(null);\n\n/**\n * Props for ValidationProvider\n */\nexport interface ValidationProviderProps {\n /** Custom validation functions from catalog */\n customFunctions?: Record<string, ValidationFunction>;\n children: ReactNode;\n}\n\n/**\n * Provider for validation\n */\nexport function ValidationProvider({\n customFunctions = {},\n children,\n}: ValidationProviderProps) {\n const { data, authState } = useData();\n const [fieldStates, setFieldStates] = useState<\n Record<string, FieldValidationState>\n >({});\n const [fieldConfigs, setFieldConfigs] = useState<\n Record<string, ValidationConfig>\n >({});\n\n const registerField = useCallback(\n (path: string, config: ValidationConfig) => {\n setFieldConfigs((prev) => ({ ...prev, [path]: config }));\n },\n [],\n );\n\n const validate = useCallback(\n (path: string, config: ValidationConfig): ValidationResult => {\n const value = data[path.split(\"/\").filter(Boolean).join(\".\")];\n const result = runValidation(config, {\n value,\n dataModel: data,\n customFunctions,\n authState,\n });\n\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n touched: prev[path]?.touched ?? true,\n validated: true,\n result,\n },\n }));\n\n return result;\n },\n [data, customFunctions, authState],\n );\n\n const touch = useCallback((path: string) => {\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n ...prev[path],\n touched: true,\n validated: prev[path]?.validated ?? false,\n result: prev[path]?.result ?? null,\n },\n }));\n }, []);\n\n const clear = useCallback((path: string) => {\n setFieldStates((prev) => {\n const { [path]: _, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const validateAll = useCallback(() => {\n let allValid = true;\n\n for (const [path, config] of Object.entries(fieldConfigs)) {\n const result = validate(path, config);\n if (!result.valid) {\n allValid = false;\n }\n }\n\n return allValid;\n }, [fieldConfigs, validate]);\n\n const value = useMemo<ValidationContextValue>(\n () => ({\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n }),\n [\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n ],\n );\n\n return (\n <ValidationContext.Provider value={value}>\n {children}\n </ValidationContext.Provider>\n );\n}\n\n/**\n * Hook to access validation context\n */\nexport function useValidation(): ValidationContextValue {\n const ctx = useContext(ValidationContext);\n if (!ctx) {\n throw new Error(\"useValidation must be used within a ValidationProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to get validation state for a field\n */\nexport function useFieldValidation(\n path: string,\n config?: ValidationConfig,\n): {\n state: FieldValidationState;\n validate: () => ValidationResult;\n touch: () => void;\n clear: () => void;\n errors: string[];\n isValid: boolean;\n} {\n const {\n fieldStates,\n validate: validateField,\n touch: touchField,\n clear: clearField,\n registerField,\n } = useValidation();\n\n // Register field on mount\n React.useEffect(() => {\n if (config) {\n registerField(path, config);\n }\n }, [path, config, registerField]);\n\n const state = fieldStates[path] ?? {\n touched: false,\n validated: false,\n result: null,\n };\n\n const validate = useCallback(\n () => validateField(path, config ?? { checks: [] }),\n [path, config, validateField],\n );\n\n const touch = useCallback(() => touchField(path), [path, touchField]);\n const clear = useCallback(() => clearField(path), [path, clearField]);\n\n return {\n state,\n validate,\n touch,\n clear,\n errors: state.result?.errors ?? [],\n isValid: state.result?.valid ?? true,\n };\n}\n"],"names":["_toPropertyKey","t","i","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","TypeError","String","Number","ownKeys","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ValidationContext","createContext","ValidationProvider","_ref","_ref$customFunctions","customFunctions","children","_useData","useData","data","authState","_useState","useState","_useState2","_slicedToArray","fieldStates","setFieldStates","_useState3","_useState4","fieldConfigs","setFieldConfigs","registerField","useCallback","path","config","prev","validate","value","split","Boolean","join","result","runValidation","dataModel","_prev$path$touched","_prev$path","touched","validated","touch","_prev$path$validated","_prev$path2","_prev$path$result","_prev$path3","clear","_","rest","_objectWithoutProperties","map","validateAll","allValid","_i","_Object$entries","entries","_Object$entries$_i","valid","useMemo","React","createElement","Provider","useValidation","ctx","useContext","Error","useFieldValidation","_fieldStates$path","_state$result$errors","_state$result","_state$result$valid","_state$result2","_useValidation","validateField","touchField","clearField","useEffect","state","checks","errors","isValid"],"mappings":";;;;;;;;;;;;;;AAAA,YAAA,CAAA;AAAA,SAAAA,cAAAC,CAAAA,CAAA,EAAAC,EAAAA,IAAAA,CAAA,GAAAC,YAAA,CAAAF,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,OAAA,QAAA,IAAAG,OAAA,CAAAF,CAAA,CAAAA,GAAAA,CAAA,GAAAA,CAAA,GAAA,EAAA,CAAA,EAAA;AAAA,SAAAC,YAAAA,CAAAF,CAAA,EAAAI,CAAA,oBAAAD,OAAA,CAAAH,CAAA,CAAAA,IAAAA,CAAAA,CAAA,SAAAA,CAAA,CAAA,CAAA,IAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,CAAA,CAAA,CAAA,IAAA,KAAA,CAAA,KAAAF,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAD,SAAAA,CAAAA,CAAAA,CAAAA,IAAAA,QAAAA,IAAAA,OAAA,CAAAF,CAAA,UAAAA,CAAA,CAAA,CAAA,MAAA,IAAAQ,SAAA,CAAAL,8CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,QAAAA,KAAAA,CAAA,GAAAM,MAAA,GAAAC,MAAA,EAAAX,CAAA,CAAA,CAAA,EAAA;AAAA,SAAAY,OAAAA,CAAAP,CAAA,EAAAD,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAa,MAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAQ,MAAA,CAAAE,qBAAA,EAAA,EAAA,IAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAV,CAAA,CAAA,CAAA,CAAAD,CAAA,KAAAY,CAAA,GAAAA,CAAA,CAAAC,MAAA,CAAAb,UAAAA,CAAA,EAAAS,EAAAA,OAAAA,MAAA,CAAAK,wBAAA,CAAAb,CAAA,EAAAD,CAAA,EAAAe,UAAA,CAAA,EAAA,CAAA,CAAA,EAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAgB,CAAA,CAAA,CAAA,EAAA,CAAA,OAAAhB,CAAA,CAAA,EAAA;AAAA,SAAAsB,cAAAjB,CAAA,EAAA,EAAA,KAAA,IAAAD,CAAA,GAAAA,CAAAA,EAAAA,CAAA,GAAAmB,SAAA,CAAAC,MAAA,EAAApB,CAAA,EAAAJ,EAAAA,EAAAA,IAAAA,CAAA,WAAAuB,SAAA,CAAAnB,CAAA,CAAAmB,GAAAA,SAAA,CAAAnB,CAAA,QAAAA,CAAA,GAAA,CAAA,GAAAQ,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAAyB,OAAA,CAAArB,UAAAA,CAAA,IAAAsB,eAAA,CAAArB,CAAA,EAAAD,CAAA,EAAAJ,CAAA,CAAAI,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAAS,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAvB,CAAA,EAAAQ,MAAA,CAAAc,yBAAA,CAAA3B,CAAA,KAAAY,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAAyB,CAAAA,CAAAA,OAAA,WAAArB,CAAA,EAAA,EAAAS,MAAA,CAAAgB,cAAA,CAAAxB,CAAA,EAAAD,CAAA,EAAAS,MAAA,CAAAK,wBAAA,CAAAlB,CAAA,EAAAI,CAAA,iBAAAC,CAAA,CAAA,EAAA;AAkDA,IAAMyB,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAcpE,SAASC,kBAAmBA,CAAAC,IAAA,EAGP;AAAA,EAAA,IAAAC,oBAAA,GAAAD,IAAA,CAF1BE;AAAAA,IAAAA,oDAAkB,EAAC,GAAAD,oBAAA;IACnBE,QAAA,GAAAH,IAAA,CAAAG,QAAA,CAAA;AAEA,EAAA,IAAAC,QAAA,GAA4BC,OAAQ,EAAA;IAA5BC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,SAAU,GAAAH,QAAA,CAAVG,SAAU,CAAA;AACxB,EAAA,IAAAC,SAAA,GAAsCC,QAAA,CAEpC,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAFGI,IAAAA,WAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAI,UAAA,GAAwCL,QAAA,CAEtC,EAAE,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAFGE,IAAAA,YAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAAE,IAAAA,eAAe,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAIpC,IAAMG,aAAgB,GAAAC,WAAA,CACpB,UAACC,MAAcC,MAA6B,EAAA;IAC1BJ,eAAA,CAAA,UAACK;yCAAeA,EAAAA,EAAAA,+BAAOF,IAAA,EAAOC;KAAS,CAAA,CAAA;GACzD,EACA,EACF,CAAA,CAAA;EAEA,IAAME,QAAW,GAAAJ,WAAA,CACf,UAACC,MAAcC,MAA+C,EAAA;IACtDG,IAAAA,MAAAA,GAAQlB,IAAK,CAAAc,IAAA,CAAKK,KAAM,CAAA,GAAG,EAAEzC,MAAO,CAAA0C,OAAO,CAAE,CAAAC,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA;AACrD,IAAA,IAAAC,MAAA,GAASC,cAAcR,MAAQ,EAAA;AACnCG,MAAAA,KAAAA,EAAAA,MAAAA;AACAM,MAAAA,SAAW,EAAAxB,IAAA;AACXJ,MAAAA,eAAA,EAAAA,eAAA;AACAK,MAAAA,SAAA,EAAAA,SAAAA;AACF,KAAC,CAAA,CAAA;IAEDM,cAAA,CAAe,UAACS,IAAU,EAAA;MAAA,IAAAS,kBAAA,EAAAC,UAAA,CAAA;MAAA,OAAA3C,aAAA,CAAAA,aAAA,CAAA,EAAA,EACrBiC,IAAA,CAAA7B,EAAAA,EAAAA,EAAAA,eAAA,CACF2B,EAAAA,EAAAA,IAAO,EAAA;QACNa,OAAA,EAAA,CAAAF,kBAAA,GAAAC,CAAAA,UAAA,GAASV,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAY,UAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAYC,OAAW,MAAA,IAAA,IAAAF,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAA,IAAA;AAChCG,QAAAA,SAAW,EAAA,IAAA;AACXN,QAAAA,MAAA,EAAAA,MAAAA;OACF,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEK,IAAA,OAAAA,MAAA,CAAA;GACT,EACA,CAACtB,IAAM,EAAAJ,eAAA,EAAiBK,SAAS,CACnC,CAAA,CAAA;AAEM,EAAA,IAAA4B,KAAA,GAAQhB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAU,EAAA;AAAA,MAAA,IAAAc,oBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,WAAA,CAAA;AAAA,MAAA,OAAAlD,aAAA,CAAAA,aAAA,CACrBiC,EAAAA,EAAAA,IAAA,OAAA7B,eAAA,CAAA,EAAA,EACF2B,IAAO,EAAA/B,aAAA,CAAAA,aAAA,KACHiC,IAAK,CAAAF,IAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACRa,QAAAA,OAAS,EAAA,IAAA;QACTC,SAAA,EAAA,CAAAE,oBAAA,GAAAC,CAAAA,WAAA,GAAWf,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAiB,WAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYH,SAAa,MAAA,IAAA,IAAAE,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAA,KAAA;AACpCR,QAAAA,MAAA,GAAAU,iBAAA,GAAA,CAAAC,WAAA,GAAQjB,IAAK,CAAAF,IAAA,CAAA,cAAAmB,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,WAAA,CAAYX,MAAU,cAAAU,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAA,IAAA;AAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAEhC,CAAA,CAAA;GACJ,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAE,KAAA,GAAQrB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAS,EAAA;AACvB,MAAA,IAAgBmB,CAAM,GAASnB,IAAA,CAAtBF,IAAA,CAAA;QAAasB,IAAA,GAAAC,wBAAA,CAASrB,IAAA,GAAtBF,IAAA,CAAA,CAAAwB,GAAA,CAAA9E,cAAA,CAAA,CAAA,CAAA;AACF,MAAA,OAAA4E,IAAA,CAAA;AACT,KAAC,CAAA,CAAA;GACH,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAG,WAAA,GAAc1B,YAAY,YAAM;IACpC,IAAI2B,QAAW,GAAA,IAAA,CAAA;AAEf,IAAA,KAAA,IAAAC,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAA6BpE,MAAO,CAAAqE,OAAA,CAAQjC,YAAY,CAAG,EAAA+B,EAAA,GAAAC,eAAA,CAAAzD,MAAA,EAAAwD,EAAA,EAAA,EAAA;AAA3D,MAAA,IAAAG,kBAAA,GAAAvC,cAAA,CAAAqC,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAY3B,QAAAA,IAAM,GAAA8B,kBAAA,CAAA,CAAA,CAAA;AAAA7B,QAAAA,MAAM,GAAA6B,kBAAA,CAAA,CAAA,CAAA,CAAA;AAChB,MAAA,IAAAtB,MAAA,GAASL,QAAS,CAAAH,IAAA,EAAMC,MAAM,CAAA,CAAA;AAChC,MAAA,IAAA,CAACO,OAAOuB,KAAO,EAAA;AACNL,QAAAA,QAAA,GAAA,KAAA,CAAA;AACb,OAAA;AACF,KAAA;AAEO,IAAA,OAAAA,QAAA,CAAA;AACT,GAAG,EAAA,CAAC9B,YAAc,EAAAO,QAAQ,CAAC,CAAA,CAAA;EAE3B,IAAMC,KAAQ,GAAA4B,OAAA,CACZ,YAAA;IAAA,OAAO;AACLlD,MAAAA,eAAA,EAAAA,eAAA;AACAU,MAAAA,WAAA,EAAAA,WAAA;AACAW,MAAAA,QAAA,EAAAA,QAAA;AACAY,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,WAAA,EAAAA,WAAA;AACA3B,MAAAA,aAAA,EAAAA,aAAAA;KACF,CAAA;AAAA,GAAA,EACA,CACEhB,eAAA,EACAU,WAAA,EACAW,QAAA,EACAY,KAAA,EACAK,KAAA,EACAK,WAAA,EACA3B,aAAA,CAEJ,CAAA,CAAA;EAGE,sBAAAmC,KAAA,CAAAC,aAAA,CAACzD,kBAAkB0D,QAAlB,EAAA;AAA2B/B,IAAAA,KAAA,EAAAA,KAAAA;GAAA,EACzBrB,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASqD,aAAwCA,GAAA;AAChD,EAAA,IAAAC,GAAA,GAAMC,WAAW7D,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAAC4D,GAAK,EAAA;AACF,IAAA,MAAA,IAAIE,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAF,GAAA,CAAA;AACT,CAAA;AAKgB,SAAAG,kBAAAA,CACdxC,MACAC,MAQA,EAAA;EAAA,IAAAwC,iBAAA,EAAAC,oBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,cAAA,CAAA;AACM,EAAA,IAAAC,cAAA,GAMFV,aAAc,EAAA;IALhB5C,WAAA,GAAAsD,cAAA,CAAAtD,WAAA;IACUuD,aAAA,GAAAD,cAAA,CAAV3C,QAAU;IACH6C,UAAA,GAAAF,cAAA,CAAP/B,KAAO;IACAkC,UAAA,GAAAH,cAAA,CAAP1B,KAAO;IACPtB,aAAA,GAAAgD,cAAA,CAAAhD,aAAA,CAAA;EAIFmC,KAAA,CAAMiB,UAAU,YAAM;AACpB,IAAA,IAAIjD,MAAQ,EAAA;AACVH,MAAAA,aAAA,CAAcE,MAAMC,MAAM,CAAA,CAAA;AAC5B,KAAA;GACC,EAAA,CAACD,IAAM,EAAAC,MAAA,EAAQH,aAAa,CAAC,CAAA,CAAA;AAE1B,EAAA,IAAAqD,KAAA,GAAA,CAAAV,iBAAA,GAAQjD,YAAYQ,IAAS,CAAA,MAAAyC,IAAAA,IAAAA,iBAAA,KAAAA,KAAAA,CAAAA,GAAAA,iBAAA,GAAA;AACjC5B,IAAAA,OAAS,EAAA,KAAA;AACTC,IAAAA,SAAW,EAAA,KAAA;AACXN,IAAAA,MAAQ,EAAA,IAAA;GACV,CAAA;EAEA,IAAML,QAAW,GAAAJ,WAAA,CACf,YAAA;IAAA,OAAMgD,cAAc/C,IAAM,EAAAC,MAAA,KAAAA,IAAAA,IAAAA,MAAA,KAAAA,KAAAA,CAAAA,GAAAA,MAAA,GAAU;AAAEmD,MAAAA,MAAQ,EAAA,EAAA;AAAG,KAAC,CAAA,CAAA;AAAA,GAAA,EAClD,CAACpD,IAAM,EAAAC,MAAA,EAAQ8C,aAAa,CAC9B,CAAA,CAAA;EAEM,IAAAhC,KAAA,GAAQhB,YAAY,YAAA;IAAA,OAAMiD,UAAA,CAAWhD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAgD,UAAU,CAAC,CAAA,CAAA;EAC9D,IAAA5B,KAAA,GAAQrB,YAAY,YAAA;IAAA,OAAMkD,UAAA,CAAWjD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAiD,UAAU,CAAC,CAAA,CAAA;EAE7D,OAAA;AACLE,IAAAA,KAAA,EAAAA,KAAA;AACAhD,IAAAA,QAAA,EAAAA,QAAA;AACAY,IAAAA,KAAA,EAAAA,KAAA;AACAK,IAAAA,KAAA,EAAAA,KAAA;AACAiC,IAAAA,MAAQ,GAAAX,oBAAA,GAAA,CAAAC,aAAA,GAAAQ,KAAA,CAAM3C,MAAQ,MAAA,IAAA,IAAAmC,aAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAcU,MAAA,MAAA,IAAA,IAAAX,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAU,EAAC;AACjCY,IAAAA,OAAA,GAAAV,mBAAA,GAAA,CAAAC,cAAA,GAASM,KAAM,CAAA3C,MAAA,MAAA,IAAA,IAAAqC,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,cAAA,CAAcd,KAAS,cAAAa,mBAAA,KAAA,KAAA,CAAA,GAAAA,mBAAA,GAAA,IAAA;GAClC,CAAA;AACF;;;;"}
@@ -0,0 +1,29 @@
1
+ import { type ReactNode } from "react";
2
+ import { type VisibilityCondition, type VisibilityContext as CoreVisibilityContext } from "@json-render/core";
3
+ /**
4
+ * Visibility context value
5
+ */
6
+ export interface VisibilityContextValue {
7
+ /** Evaluate a visibility condition */
8
+ isVisible: (condition: VisibilityCondition | undefined) => boolean;
9
+ /** The underlying visibility context */
10
+ ctx: CoreVisibilityContext;
11
+ }
12
+ /**
13
+ * Props for VisibilityProvider
14
+ */
15
+ export interface VisibilityProviderProps {
16
+ children: ReactNode;
17
+ }
18
+ /**
19
+ * Provider for visibility evaluation
20
+ */
21
+ export declare function VisibilityProvider({ children }: VisibilityProviderProps): import("react/jsx-runtime").JSX.Element;
22
+ /**
23
+ * Hook to access visibility evaluation
24
+ */
25
+ export declare function useVisibility(): VisibilityContextValue;
26
+ /**
27
+ * Hook to check if a condition is visible
28
+ */
29
+ export declare function useIsVisible(condition: VisibilityCondition | undefined): boolean;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.1
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import React, { createContext, useMemo, useContext } from 'react';
8
+ import { evaluateVisibility } from '@json-render/core';
9
+ import { useData } from './data.js';
10
+ import '@babel/runtime/helpers/typeof';
11
+ import '@babel/runtime/helpers/defineProperty';
12
+ import '@babel/runtime/helpers/slicedToArray';
13
+
14
+ "use client";
15
+ var VisibilityContext = /*#__PURE__*/createContext(null);
16
+ function VisibilityProvider(_ref) {
17
+ var children = _ref.children;
18
+ var _useData = useData(),
19
+ data = _useData.data,
20
+ authState = _useData.authState;
21
+ var ctx = useMemo(function () {
22
+ return {
23
+ dataModel: data,
24
+ authState: authState
25
+ };
26
+ }, [data, authState]);
27
+ var isVisible = useMemo(function () {
28
+ return function (condition) {
29
+ return evaluateVisibility(condition, ctx);
30
+ };
31
+ }, [ctx]);
32
+ var value = useMemo(function () {
33
+ return {
34
+ isVisible: isVisible,
35
+ ctx: ctx
36
+ };
37
+ }, [isVisible, ctx]);
38
+ return /* @__PURE__ */React.createElement(VisibilityContext.Provider, {
39
+ value: value
40
+ }, children);
41
+ }
42
+ function useVisibility() {
43
+ var ctx = useContext(VisibilityContext);
44
+ if (!ctx) {
45
+ throw new Error("useVisibility must be used within a VisibilityProvider");
46
+ }
47
+ return ctx;
48
+ }
49
+ function useIsVisible(condition) {
50
+ var _useVisibility = useVisibility(),
51
+ isVisible = _useVisibility.isVisible;
52
+ return isVisible(condition);
53
+ }
54
+
55
+ export { VisibilityProvider, useIsVisible, useVisibility };
56
+ //# sourceMappingURL=visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/visibility.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n evaluateVisibility,\n type VisibilityCondition,\n type VisibilityContext as CoreVisibilityContext,\n} from \"@json-render/core\";\nimport { useData } from \"./data\";\n\n/**\n * Visibility context value\n */\nexport interface VisibilityContextValue {\n /** Evaluate a visibility condition */\n isVisible: (condition: VisibilityCondition | undefined) => boolean;\n /** The underlying visibility context */\n ctx: CoreVisibilityContext;\n}\n\nconst VisibilityContext = createContext<VisibilityContextValue | null>(null);\n\n/**\n * Props for VisibilityProvider\n */\nexport interface VisibilityProviderProps {\n children: ReactNode;\n}\n\n/**\n * Provider for visibility evaluation\n */\nexport function VisibilityProvider({ children }: VisibilityProviderProps) {\n const { data, authState } = useData();\n\n const ctx: CoreVisibilityContext = useMemo(\n () => ({\n dataModel: data,\n authState,\n }),\n [data, authState],\n );\n\n const isVisible = useMemo(\n () => (condition: VisibilityCondition | undefined) =>\n evaluateVisibility(condition, ctx),\n [ctx],\n );\n\n const value = useMemo<VisibilityContextValue>(\n () => ({ isVisible, ctx }),\n [isVisible, ctx],\n );\n\n return (\n <VisibilityContext.Provider value={value}>\n {children}\n </VisibilityContext.Provider>\n );\n}\n\n/**\n * Hook to access visibility evaluation\n */\nexport function useVisibility(): VisibilityContextValue {\n const ctx = useContext(VisibilityContext);\n if (!ctx) {\n throw new Error(\"useVisibility must be used within a VisibilityProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to check if a condition is visible\n */\nexport function useIsVisible(\n condition: VisibilityCondition | undefined,\n): boolean {\n const { isVisible } = useVisibility();\n return isVisible(condition);\n}\n"],"names":["VisibilityContext","createContext","VisibilityProvider","_ref","children","_useData","useData","data","authState","ctx","useMemo","dataModel","isVisible","condition","evaluateVisibility","value","React","createElement","Provider","useVisibility","useContext","Error","useIsVisible","_useVisibility"],"mappings":";;;;;;;;;;;;;AAAA,YAAA,CAAA;AAyBA,IAAMA,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAY3D,SAAAC,kBAAAA,CAAAC,IAAA,EAA0D;AAAA,EAAA,IAArCC,QAAA,GAAAD,IAAA,CAAAC,QAAA,CAAA;AACnC,EAAA,IAAAC,QAAA,GAA4BC,OAAQ,EAAA;IAA5BC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,SAAU,GAAAH,QAAA,CAAVG,SAAU,CAAA;EAExB,IAAMC,GAA6B,GAAAC,OAAA,CACjC,YAAA;IAAA,OAAO;AACLC,MAAAA,SAAW,EAAAJ,IAAA;AACXC,MAAAA,SAAA,EAAAA,SAAAA;KACF,CAAA;AAAA,GAAA,EACA,CAACD,MAAMC,SAAS,CAClB,CAAA,CAAA;EAEA,IAAMI,SAAY,GAAAF,OAAA,CAChB,YAAA;AAAA,IAAA,OAAM,UAACG,SACL,EAAA;AAAA,MAAA,OAAAC,kBAAA,CAAmBD,WAAWJ,GAAG,CAAA,CAAA;AAAA,KAAA,CAAA;GACnC,EAAA,CAACA,GAAG,CACN,CAAA,CAAA;EAEA,IAAMM,KAAQ,GAAAL,OAAA,CACZ,YAAA;IAAA,OAAO;AAAEE,MAAAA,SAAA,EAAAA,SAAA;AAAWH,MAAAA,GAAI,EAAJA,GAAAA;KAAI,CAAA;AAAA,GAAA,EACxB,CAACG,WAAWH,GAAG,CACjB,CAAA,CAAA;EAGE,sBAAAO,KAAA,CAAAC,aAAA,CAACjB,kBAAkBkB,QAAlB,EAAA;AAA2BH,IAAAA,KAAA,EAAAA,KAAAA;GAAA,EACzBX,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASe,aAAwCA,GAAA;AAChD,EAAA,IAAAV,GAAA,GAAMW,WAAWpB,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAACS,GAAK,EAAA;AACF,IAAA,MAAA,IAAIY,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAZ,GAAA,CAAA;AACT,CAAA;AAKO,SAASa,aACdT,SACS,EAAA;AACH,EAAA,IAAAU,cAAA,GAAgBJ,aAAc,EAAA;IAA5BP,SAAU,GAAAW,cAAA,CAAVX,SAAU,CAAA;EAClB,OAAOA,UAAUC,SAAS,CAAA,CAAA;AAC5B;;;;"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * json-render 引擎封装
3
+ * 提供高性能的增量渲染能力
4
+ */
5
+ import type { UIElement } from '@json-render/core';
6
+ import type { ComponentRegistry } from './renderer';
7
+ import type { JsonRenderSchema, DeltaInfo } from './types';
8
+ /**
9
+ * json-render 引擎管理器
10
+ * 负责 Schema 缓存、增量更新和性能优化
11
+ */
12
+ export declare class JsonRenderEngine {
13
+ private currentSchema;
14
+ private registry;
15
+ constructor(registry: ComponentRegistry);
16
+ /**
17
+ * 全量渲染
18
+ * 用于 ACTIVITY_SNAPSHOT 事件
19
+ */
20
+ setSchema(schema: JsonRenderSchema): void;
21
+ /**
22
+ * 获取当前 Schema
23
+ */
24
+ getSchema(): JsonRenderSchema | null;
25
+ /**
26
+ * 增量更新
27
+ * 用于 ACTIVITY_DELTA 事件
28
+ *
29
+ * @param newSchema 应用 JSON Patch 后的完整 Schema
30
+ * @param deltaInfo 增量信息(可选,用于进一步优化)
31
+ */
32
+ patchSchema(newSchema: JsonRenderSchema, deltaInfo?: DeltaInfo): void;
33
+ /**
34
+ * 重置引擎状态
35
+ */
36
+ reset(): void;
37
+ /**
38
+ * 获取组件注册表
39
+ */
40
+ getRegistry(): ComponentRegistry;
41
+ /**
42
+ * 更新组件注册表
43
+ */
44
+ updateRegistry(registry: ComponentRegistry): void;
45
+ /**
46
+ * 验证 Schema 是否有效
47
+ */
48
+ validateSchema(schema: JsonRenderSchema): boolean;
49
+ /**
50
+ * 提取增量元素(基于 deltaInfo)
51
+ * 用于性能优化场景
52
+ */
53
+ extractDeltaElements(schema: JsonRenderSchema, deltaInfo: DeltaInfo): Record<string, UIElement>;
54
+ }
55
+ /**
56
+ * 创建 json-render 引擎实例
57
+ */
58
+ export declare function createJsonRenderEngine(registry: ComponentRegistry): JsonRenderEngine;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.1
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
8
+ import _createClass from '@babel/runtime/helpers/createClass';
9
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
+
11
+ 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; }
12
+ 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; }
13
+ var JsonRenderEngine = /*#__PURE__*/function () {
14
+ function JsonRenderEngine(registry) {
15
+ _classCallCheck(this, JsonRenderEngine);
16
+ _defineProperty(this, "currentSchema", null);
17
+ this.registry = registry;
18
+ }
19
+ return _createClass(JsonRenderEngine, [{
20
+ key: "setSchema",
21
+ value: function setSchema(schema) {
22
+ this.currentSchema = schema;
23
+ }
24
+ }, {
25
+ key: "getSchema",
26
+ value: function getSchema() {
27
+ return this.currentSchema;
28
+ }
29
+ }, {
30
+ key: "patchSchema",
31
+ value: function patchSchema(newSchema, deltaInfo) {
32
+ if (!this.currentSchema) {
33
+ this.currentSchema = newSchema;
34
+ return;
35
+ }
36
+ this.currentSchema = newSchema;
37
+ if (deltaInfo) {
38
+ console.debug("[json-render] \u589E\u91CF\u66F4\u65B0\u8303\u56F4:", deltaInfo);
39
+ }
40
+ }
41
+ }, {
42
+ key: "reset",
43
+ value: function reset() {
44
+ this.currentSchema = null;
45
+ }
46
+ }, {
47
+ key: "getRegistry",
48
+ value: function getRegistry() {
49
+ return this.registry;
50
+ }
51
+ }, {
52
+ key: "updateRegistry",
53
+ value: function updateRegistry(registry) {
54
+ this.registry = _objectSpread(_objectSpread({}, this.registry), registry);
55
+ }
56
+ }, {
57
+ key: "validateSchema",
58
+ value: function validateSchema(schema) {
59
+ if (!schema || !schema.root || !schema.elements) {
60
+ console.error("[json-render] Schema \u9A8C\u8BC1\u5931\u8D25\uFF1A\u7F3A\u5C11 root \u6216 elements");
61
+ return false;
62
+ }
63
+ var rootElement = schema.elements[schema.root];
64
+ if (!rootElement) {
65
+ console.error("[json-render] Schema \u9A8C\u8BC1\u5931\u8D25\uFF1Aroot \u5143\u7D20\u4E0D\u5B58\u5728");
66
+ return false;
67
+ }
68
+ return true;
69
+ }
70
+ }, {
71
+ key: "extractDeltaElements",
72
+ value: function extractDeltaElements(schema, deltaInfo) {
73
+ var elementKeys = Object.keys(schema.elements);
74
+ var deltaKeys = elementKeys.slice(deltaInfo.fromIndex, deltaInfo.toIndex);
75
+ var deltaElements = {};
76
+ deltaKeys.forEach(function (key) {
77
+ deltaElements[key] = schema.elements[key];
78
+ });
79
+ return deltaElements;
80
+ }
81
+ }]);
82
+ }();
83
+ function createJsonRenderEngine(registry) {
84
+ return new JsonRenderEngine(registry);
85
+ }
86
+
87
+ export { JsonRenderEngine, createJsonRenderEngine };
88
+ //# sourceMappingURL=engine.js.map
@@ -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,36 @@
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, generateCatalogPrompt, } from './catalog/index';
16
+ export type { Catalog } from '@json-render/core';
17
+ export type { PromptTemplateMode, CustomTemplateGenerator, ComponentDoc, NormalizedComponentDoc } from './catalog';
18
+ export { a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton } from './catalog/index';
19
+ export { withA2UIBinding } from './catalog/index';
20
+ export type { A2UIBindingConfig } from './catalog/index';
21
+ export { JsonRenderButton } from './catalog/button';
22
+ export { JsonRenderInput } from './catalog/input';
23
+ export { JsonRenderCard } from './catalog/card';
24
+ export { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderDivider, } from './catalog/layout';
25
+ export { createJsonRenderActivityConfig, defaultJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig, defaultA2UIJsonRenderActivityConfig, } from './config';
26
+ export type { JsonRenderActivityConfigOptions } from './config';
27
+ export * from './adapters';
28
+ export { surfaceStateManager, SurfaceStateManager } from './SurfaceStateManager';
29
+ export type { SurfaceCache, SurfaceSubscriber } from './SurfaceStateManager';
30
+ export { createJsonRenderActivityConfig as default } from './config';
31
+ export { DataProvider, useData, useDataValue, useDataBinding, type DataContextValue, type DataProviderProps, } from "./contexts/data";
32
+ export { VisibilityProvider, useVisibility, useIsVisible, type VisibilityContextValue, type VisibilityProviderProps, } from "./contexts/visibility";
33
+ export { ActionProvider, useActions, useAction, ConfirmDialog, type ActionContextValue, type ActionProviderProps, type PendingConfirmation, type ConfirmDialogProps, } from "./contexts/actions";
34
+ export { ValidationProvider, useValidation, useFieldValidation, type ValidationContextValue, type ValidationProviderProps, type FieldValidationState, } from "./contexts/validation";
35
+ export { Renderer, JSONUIProvider, createRendererFromCatalog, type ComponentRenderProps, type ComponentRenderer, type ComponentRegistry, type RendererProps, type JSONUIProviderProps, } from "./renderer";
36
+ export * from './catalog';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.1
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-870f0d35.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, generateCatalogPrompt, 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;