@tdesign-react/chat 1.1.0-alpha.10 → 1.1.0-alpha.12

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 (205) hide show
  1. package/es/_chunks/dep-076af7c3.js +438 -0
  2. package/es/_chunks/dep-076af7c3.js.map +1 -0
  3. package/es/_chunks/dep-1ca64fef.js +1247 -0
  4. package/es/_chunks/dep-1ca64fef.js.map +1 -0
  5. package/es/_chunks/dep-58d90dfe.js +438 -0
  6. package/es/_chunks/dep-58d90dfe.js.map +1 -0
  7. package/es/_chunks/dep-5b6b17d0.js +169 -0
  8. package/es/_chunks/dep-5b6b17d0.js.map +1 -0
  9. package/es/_chunks/dep-93283bbd.js +1247 -0
  10. package/es/_chunks/dep-93283bbd.js.map +1 -0
  11. package/es/_chunks/dep-dbdfe7d6.js +169 -0
  12. package/es/_chunks/dep-dbdfe7d6.js.map +1 -0
  13. package/es/_util/reactify.js +1 -1
  14. package/es/_util/useDynamicStyle.js +1 -1
  15. package/es/attachments/index.js +1 -1
  16. package/es/chat-actionbar/index.js +1 -1
  17. package/es/chat-engine/components/activity/index.d.ts +1 -2
  18. package/es/chat-engine/components/activity/index.js +11 -7
  19. package/es/chat-engine/components/activity/index.js.map +1 -1
  20. package/es/chat-engine/components/activity/registry.d.ts +6 -40
  21. package/es/chat-engine/components/activity/registry.js +23 -77
  22. package/es/chat-engine/components/activity/registry.js.map +1 -1
  23. package/es/chat-engine/components/activity/render.js +23 -71
  24. package/es/chat-engine/components/activity/render.js.map +1 -1
  25. package/es/chat-engine/components/activity/types.js +1 -1
  26. package/es/chat-engine/components/index.js +23 -6
  27. package/es/chat-engine/components/index.js.map +1 -1
  28. package/es/chat-engine/components/json-render/catalog/atomic/button.js +1 -1
  29. package/es/chat-engine/components/json-render/catalog/atomic/card.js +1 -1
  30. package/es/chat-engine/components/json-render/catalog/atomic/input.js +17 -4
  31. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
  32. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +1 -1
  33. package/es/chat-engine/components/json-render/catalog/atomic/text.js +1 -1
  34. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +1 -1
  35. package/es/chat-engine/components/json-render/contexts/actions.js +2 -2
  36. package/es/chat-engine/components/json-render/contexts/data.js +2 -2
  37. package/es/chat-engine/components/json-render/contexts/index.js +2 -2
  38. package/es/chat-engine/components/json-render/contexts/store.js +1 -1
  39. package/es/chat-engine/components/json-render/contexts/tree.js +1 -1
  40. package/es/chat-engine/components/json-render/contexts/validation.js +2 -2
  41. package/es/chat-engine/components/json-render/contexts/visibility.js +2 -2
  42. package/es/chat-engine/components/json-render/index.js +17 -4
  43. package/es/chat-engine/components/json-render/index.js.map +1 -1
  44. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +17 -4
  45. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
  46. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +17 -4
  47. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
  48. package/es/chat-engine/components/json-render/registry/config.js +17 -4
  49. package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
  50. package/es/chat-engine/components/json-render/registry/index.js +17 -4
  51. package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
  52. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +16 -3
  53. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
  54. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +3 -3
  55. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +2 -2
  56. package/es/chat-engine/components/json-render/renderer/_index.js +2 -2
  57. package/es/chat-engine/components/json-render/types.js +1 -1
  58. package/es/chat-engine/components/provider/agent-state.js +15 -2
  59. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  60. package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
  61. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
  62. package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
  63. package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
  64. package/es/chat-engine/components/shared/createRegistry.js +72 -0
  65. package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
  66. package/es/chat-engine/components/shared/index.d.ts +4 -0
  67. package/es/chat-engine/components/shared/index.js +18 -0
  68. package/es/chat-engine/components/shared/index.js.map +1 -0
  69. package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
  70. package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
  71. package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
  72. package/es/chat-engine/components/toolcall/index.d.ts +1 -1
  73. package/es/chat-engine/components/toolcall/index.js +25 -8
  74. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  75. package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
  76. package/es/chat-engine/components/toolcall/registry.js +23 -67
  77. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  78. package/es/chat-engine/components/toolcall/render.js +42 -77
  79. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  80. package/es/chat-engine/components/toolcall/types.js +1 -1
  81. package/es/chat-engine/core/adapters/a2ui/index.js +2 -1
  82. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -1
  83. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +1 -1
  84. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +1 -1
  85. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +1 -1
  86. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +1 -1
  87. package/es/chat-engine/core/adapters/a2ui/types/index.js +1 -1
  88. package/es/chat-engine/core/adapters/a2ui/types/types.js +1 -1
  89. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +2 -1631
  90. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -1
  91. package/es/chat-engine/core/adapters/a2ui/utils/index.js +2 -1
  92. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -1
  93. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +1 -1
  94. package/es/chat-engine/core/adapters/agui/ActivityManager.js +1 -1
  95. package/es/chat-engine/core/adapters/agui/StateManager.js +1 -1
  96. package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
  97. package/es/chat-engine/core/adapters/agui/index.js +1 -1
  98. package/es/chat-engine/core/adapters/agui/types/events.js +1 -1
  99. package/es/chat-engine/core/adapters/agui/types/index.js +1 -1
  100. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  101. package/es/chat-engine/core/adapters/index.d.ts +2 -0
  102. package/es/chat-engine/core/adapters/index.js +27 -9
  103. package/es/chat-engine/core/adapters/index.js.map +1 -1
  104. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +1 -1
  105. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +1 -1
  106. package/es/chat-engine/core/adapters/json-render/engine.js +1 -1
  107. package/es/chat-engine/core/adapters/json-render/index.js +1 -1
  108. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +1 -1
  109. package/es/chat-engine/core/adapters/json-render/types/core.js +1 -1
  110. package/es/chat-engine/core/adapters/json-render/types/index.js +1 -1
  111. package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +212 -0
  112. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +606 -0
  113. package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -0
  114. package/es/chat-engine/core/adapters/openclaw/index.d.ts +158 -0
  115. package/es/chat-engine/core/adapters/openclaw/index.js +456 -0
  116. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -0
  117. package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +114 -0
  118. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +263 -0
  119. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -0
  120. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +59 -0
  121. package/es/chat-engine/core/adapters/openclaw/types/config.js +33 -0
  122. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -0
  123. package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +121 -0
  124. package/es/chat-engine/core/adapters/openclaw/types/events.js +71 -0
  125. package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -0
  126. package/es/chat-engine/core/adapters/openclaw/types/index.d.ts +6 -0
  127. package/es/chat-engine/core/adapters/openclaw/types/index.js +11 -0
  128. package/es/chat-engine/core/adapters/openclaw/types/index.js.map +1 -0
  129. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +215 -0
  130. package/es/chat-engine/core/adapters/openclaw/types/messages.js +18 -0
  131. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -0
  132. package/es/chat-engine/core/adapters/openclaw/utils.d.ts +49 -0
  133. package/es/chat-engine/core/adapters/openclaw/utils.js +109 -0
  134. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -0
  135. package/es/chat-engine/core/adapters/shared/activity-manager.d.ts +11 -0
  136. package/es/chat-engine/core/adapters/shared/activity-manager.js +17 -0
  137. package/es/chat-engine/core/adapters/shared/activity-manager.js.map +1 -0
  138. package/es/chat-engine/core/adapters/shared/content-factory.d.ts +7 -0
  139. package/es/chat-engine/core/adapters/shared/content-factory.js +11 -0
  140. package/es/chat-engine/core/adapters/shared/content-factory.js.map +1 -0
  141. package/es/chat-engine/core/adapters/shared/index.d.ts +11 -0
  142. package/es/chat-engine/core/adapters/shared/index.js +21 -0
  143. package/es/chat-engine/core/adapters/shared/index.js.map +1 -0
  144. package/es/chat-engine/core/adapters/shared/merge-utils.d.ts +7 -0
  145. package/es/chat-engine/core/adapters/shared/merge-utils.js +11 -0
  146. package/es/chat-engine/core/adapters/shared/merge-utils.js.map +1 -0
  147. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  148. package/es/chat-engine/core/event-bus/index.js +1 -1
  149. package/es/chat-engine/core/event-bus/types.js +1 -1
  150. package/es/chat-engine/core/index.d.ts +7 -0
  151. package/es/chat-engine/core/index.js +84 -8
  152. package/es/chat-engine/core/index.js.map +1 -1
  153. package/es/chat-engine/core/processor/index.js +1 -1
  154. package/es/chat-engine/core/server/batch-client.js +1 -1
  155. package/es/chat-engine/core/server/connection-manager.js +1 -1
  156. package/es/chat-engine/core/server/errors.js +1 -1
  157. package/es/chat-engine/core/server/index.d.ts +1 -0
  158. package/es/chat-engine/core/server/index.js +22 -1
  159. package/es/chat-engine/core/server/index.js.map +1 -1
  160. package/es/chat-engine/core/server/llm-service.d.ts +5 -0
  161. package/es/chat-engine/core/server/llm-service.js +140 -13
  162. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  163. package/es/chat-engine/core/server/sse-client.js +1 -1
  164. package/es/chat-engine/core/server/sse-parser.js +1 -1
  165. package/es/chat-engine/core/server/types.js +1 -1
  166. package/es/chat-engine/core/server/websocket-client.d.ts +139 -0
  167. package/es/chat-engine/core/server/websocket-client.js +386 -0
  168. package/es/chat-engine/core/server/websocket-client.js.map +1 -0
  169. package/es/chat-engine/core/store/message.js +2 -2
  170. package/es/chat-engine/core/store/model.js +2 -2
  171. package/es/chat-engine/core/store/reactiveState.js +2 -2
  172. package/es/chat-engine/core/type.d.ts +7 -1
  173. package/es/chat-engine/core/type.js +1 -1
  174. package/es/chat-engine/core/utils/eventEmitter.d.ts +1 -0
  175. package/es/chat-engine/core/utils/eventEmitter.js +11 -1
  176. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -1
  177. package/es/chat-engine/core/utils/immutable-patch.js +1 -1
  178. package/es/chat-engine/core/utils/index.js +1 -1
  179. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  180. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  181. package/es/chat-engine/core/utils/logger.js +1 -1
  182. package/es/chat-engine/core/utils/performance.js +1 -1
  183. package/es/chat-engine/hooks/index.js +19 -2
  184. package/es/chat-engine/hooks/index.js.map +1 -1
  185. package/es/chat-engine/hooks/useAgentActivity.js +10 -2
  186. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  187. package/es/chat-engine/hooks/useAgentState.js +15 -2
  188. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  189. package/es/chat-engine/hooks/useAgentToolcall.js +10 -2
  190. package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
  191. package/es/chat-engine/hooks/useChat.js +15 -2
  192. package/es/chat-engine/hooks/useChat.js.map +1 -1
  193. package/es/chat-engine/index.js +25 -8
  194. package/es/chat-engine/index.js.map +1 -1
  195. package/es/chat-filecard/index.js +1 -1
  196. package/es/chat-loading/index.js +1 -1
  197. package/es/chat-markdown/index.js +1 -1
  198. package/es/chat-message/index.js +1 -1
  199. package/es/chat-sender/index.js +1 -1
  200. package/es/chat-thinking/index.js +1 -1
  201. package/es/chatbot/index.js +1 -1
  202. package/es/index.js +25 -8
  203. package/es/index.js.map +1 -1
  204. package/es/style/index.js +1 -1
  205. package/package.json +2 -2
@@ -0,0 +1,45 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import { useState, useEffect, useMemo } from 'react';
9
+
10
+ function useRegistrationListener(options) {
11
+ var componentKey = options.componentKey,
12
+ eventName = options.eventName,
13
+ eventDetailKey = options.eventDetailKey,
14
+ getRenderFunction = options.getRenderFunction;
15
+ var _useState = useState(function () {
16
+ return !!getRenderFunction(componentKey);
17
+ }),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ isRegistered = _useState2[0],
20
+ setIsRegistered = _useState2[1];
21
+ useEffect(function () {
22
+ if (!isRegistered) {
23
+ var handleRegistered = function handleRegistered(event) {
24
+ var _event$detail;
25
+ if (((_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail[eventDetailKey]) === componentKey) {
26
+ setIsRegistered(true);
27
+ }
28
+ };
29
+ window.addEventListener(eventName, handleRegistered);
30
+ return function () {
31
+ window.removeEventListener(eventName, handleRegistered);
32
+ };
33
+ }
34
+ }, [componentKey, eventName, eventDetailKey, isRegistered]);
35
+ var MemoizedComponent = useMemo(function () {
36
+ return getRenderFunction(componentKey);
37
+ }, [componentKey, isRegistered]);
38
+ return {
39
+ isRegistered: isRegistered,
40
+ MemoizedComponent: MemoizedComponent
41
+ };
42
+ }
43
+
44
+ export { useRegistrationListener };
45
+ //# sourceMappingURL=useRegistrationListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRegistrationListener.js","sources":["../../../../../pro-components/chat/chat-engine/components/shared/useRegistrationListener.ts"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\n\ninterface UseRegistrationListenerOptions<TProps> {\n /** 组件唯一标识 */\n componentKey: string;\n /** 监听的事件名称 */\n eventName: string;\n /** 事件 detail 中的键名 */\n eventDetailKey: string;\n /** 获取渲染函数的方法 */\n getRenderFunction: (key: string) => React.MemoExoticComponent<React.ComponentType<TProps>> | null;\n}\n\ninterface UseRegistrationListenerResult<TProps> {\n /** 是否已注册 */\n isRegistered: boolean;\n /** 缓存的 Memo 组件 */\n MemoizedComponent: React.MemoExoticComponent<React.ComponentType<TProps>> | null;\n}\n\n/**\n * 动态注册监听 Hook\n * 统一处理 Activity 和 Toolcall 的动态注册逻辑\n */\nexport function useRegistrationListener<TProps>(\n options: UseRegistrationListenerOptions<TProps>,\n): UseRegistrationListenerResult<TProps> {\n const { componentKey, eventName, eventDetailKey, getRenderFunction } = options;\n\n // 注册状态\n const [isRegistered, setIsRegistered] = useState(() => !!getRenderFunction(componentKey));\n\n // 监听组件注册事件,支持动态注册\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n // 精确匹配\n if (event.detail?.[eventDetailKey] === componentKey) {\n setIsRegistered(true);\n }\n };\n\n window.addEventListener(eventName, handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener(eventName, handleRegistered as EventListener);\n };\n }\n }, [componentKey, eventName, eventDetailKey, isRegistered]);\n\n // 使用 registry 的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => getRenderFunction(componentKey),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [componentKey, isRegistered],\n );\n\n return { isRegistered, MemoizedComponent };\n}\n"],"names":["useRegistrationListener","options","componentKey","eventName","eventDetailKey","getRenderFunction","_useState","useState","_useState2","_slicedToArray","isRegistered","setIsRegistered","useEffect","handleRegistered","event","_event$detail","detail","window","addEventListener","removeEventListener","MemoizedComponent","useMemo"],"mappings":";;;;;;;;;AAwBO,SAASA,wBACdC,OACuC,EAAA;AACvC,EAAA,IAAQC,YAAA,GAA+DD,OAAA,CAA/DC,YAAA;IAAcC,SAAW,GAAsCF,OAAA,CAAjDE,SAAW;IAAAC,cAAA,GAAsCH,OAAA,CAAtCG,cAAA;IAAgBC,oBAAsBJ,OAAA,CAAtBI;EAG3C,IAAAC,SAAA,GAAkCC,QAAA,CAAS,YAAA;AAAA,MAAA,OAAM,CAAC,CAACF,iBAAkB,CAAAH,YAAY,CAAC,CAAA;KAAA,CAAA;IAAAM,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAjFI,IAAAA,YAAc,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAGpCI,EAAAA,SAAA,CAAU,YAAM;IACd,IAAI,CAACF,YAAc,EAAA;AACX,MAAA,IAAAG,gBAAA,GAAmB,SAAnBA,gBAAAA,CAAoBC,KAAuB,EAAA;AAAA,QAAA,IAAAC,aAAA,CAAA;AAE3C,QAAA,IAAA,CAAAA,CAAAA,aAAA,GAAAD,KAAA,CAAME,MAAS,MAAA,IAAA,IAAAD,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,aAAA,CAAeX,cAAA,CAAA,MAAoBF,YAAc,EAAA;UACnDS,eAAA,CAAgB,IAAI,CAAA,CAAA;AACtB,SAAA;OACF,CAAA;AAEOM,MAAAA,MAAA,CAAAC,gBAAA,CAAiBf,WAAWU,gBAAiC,CAAA,CAAA;AAEpE,MAAA,OAAO,YAAM;AACJI,QAAAA,MAAA,CAAAE,mBAAA,CAAoBhB,WAAWU,gBAAiC,CAAA,CAAA;OACzE,CAAA;AACF,KAAA;KACC,CAACX,YAAA,EAAcC,SAAW,EAAAC,cAAA,EAAgBM,YAAY,CAAC,CAAA,CAAA;EAG1D,IAAMU,iBAAoB,GAAAC,OAAA,CACxB,YAAA;IAAA,OAAMhB,kBAAkBH,YAAY,CAAA,CAAA;AAAA,GAAA,EAEpC,CAACA,cAAcQ,YAAY,CAC7B,CAAA,CAAA;EAEO,OAAA;AAAEA,IAAAA,cAAAA;AAAcU,IAAAA,iBAAkB,EAAlBA,iBAAAA;GAAkB,CAAA;AAC3C;;;;"}
@@ -1,3 +1,3 @@
1
1
  export * from './types';
2
- export * from './registry';
3
2
  export * from './render';
3
+ export { agentToolcallRegistry, TOOLCALL_REGISTERED_EVENT, TOOLCALL_EVENT_DETAIL_KEY } from './registry';
@@ -1,22 +1,26 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  export { isNonInteractive, isNonInteractiveConfig } from './types.js';
8
- export { agentToolcallRegistry } from './registry.js';
9
8
  export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 } from './render.js';
10
- import '@babel/runtime/helpers/classCallCheck';
11
- import '@babel/runtime/helpers/createClass';
12
- import '@babel/runtime/helpers/defineProperty';
13
- import 'react';
9
+ export { TOOLCALL_EVENT_DETAIL_KEY, TOOLCALL_REGISTERED_EVENT, agentToolcallRegistry } from './registry.js';
14
10
  import '@babel/runtime/helpers/asyncToGenerator';
11
+ import '@babel/runtime/helpers/defineProperty';
15
12
  import '@babel/runtime/helpers/slicedToArray';
13
+ import '@babel/runtime/regenerator';
14
+ import 'react';
15
+ import '../shared/index.js';
16
+ import '../shared/createRegistry.js';
17
+ import '../shared/ComponentErrorBoundary.js';
18
+ import '@babel/runtime/helpers/classCallCheck';
19
+ import '@babel/runtime/helpers/createClass';
16
20
  import '@babel/runtime/helpers/possibleConstructorReturn';
17
21
  import '@babel/runtime/helpers/getPrototypeOf';
18
22
  import '@babel/runtime/helpers/inherits';
19
- import '@babel/runtime/regenerator';
23
+ import '../shared/useRegistrationListener.js';
20
24
  import '../../hooks/useAgentState.js';
21
25
  import '../../core/index.js';
22
26
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -36,7 +40,7 @@ import '../../core/adapters/agui/utils.js';
36
40
  import '../../core/store/message.js';
37
41
  import '@babel/runtime/helpers/get';
38
42
  import '../../core/store/reactiveState.js';
39
- import '../../../_chunks/dep-de8ac730.js';
43
+ import '../../../_chunks/dep-93283bbd.js';
40
44
  import '../../core/event-bus/index.js';
41
45
  import '../../core/event-bus/ChatEventBus.js';
42
46
  import '../../core/event-bus/types.js';
@@ -51,6 +55,19 @@ import '../../core/server/sse-client.js';
51
55
  import '../../core/server/connection-manager.js';
52
56
  import '../../core/server/sse-parser.js';
53
57
  import '../../core/server/types.js';
58
+ import '../../core/adapters/openclaw/index.js';
59
+ import '../../core/server/websocket-client.js';
60
+ import '../../core/adapters/openclaw/event-mapper.js';
61
+ import '../../core/adapters/openclaw/types/events.js';
62
+ import '../../core/adapters/shared/index.js';
63
+ import '../../core/adapters/shared/content-factory.js';
64
+ import '../../core/adapters/shared/merge-utils.js';
65
+ import '../../core/adapters/shared/activity-manager.js';
66
+ import '../../core/adapters/openclaw/rpc-handler.js';
67
+ import '../../core/adapters/openclaw/types/config.js';
68
+ import '../../core/adapters/openclaw/utils.js';
69
+ import '../../core/adapters/openclaw/types/index.js';
70
+ import '../../core/adapters/openclaw/types/messages.js';
54
71
  import '../../core/adapters/index.js';
55
72
  import '../../core/adapters/json-render/index.js';
56
73
  import '../../core/adapters/json-render/a2ui-to-jsonrender.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,35 +1,9 @@
1
- import React from 'react';
2
- import type { AgentToolcallConfig, AgentToolcallRegistry, ToolcallComponentProps } from './types';
1
+ import type { AgentToolcallConfig, ToolcallComponentProps } from './types';
2
+ /** Toolcall 注册事件名称 */
3
+ export declare const TOOLCALL_REGISTERED_EVENT = "toolcall-registered";
4
+ /** Toolcall 注册事件 detail 键名 */
5
+ export declare const TOOLCALL_EVENT_DETAIL_KEY = "name";
3
6
  /**
4
7
  * 全局 Agent Toolcall 注册表
5
8
  */
6
- declare class AgentToolcallRegistryManager {
7
- private registry;
8
- private renderFunctionCache;
9
- /**
10
- * 注册一个 Agent Toolcall
11
- */
12
- register<TArgs extends object = any, TResult = any, TResponse = any>(config: AgentToolcallConfig<TArgs, TResult, TResponse>): void;
13
- /**
14
- * 获取指定名称的 Agent Toolcall 配置
15
- */
16
- get(name: string): AgentToolcallConfig | undefined;
17
- /**
18
- * 获取或创建缓存的组件渲染函数
19
- */
20
- getRenderFunction(name: string): React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>> | null;
21
- /**
22
- * 获取所有已注册的 Agent Toolcall
23
- */
24
- getAll(): AgentToolcallRegistry;
25
- /**
26
- * 取消注册指定的 Agent Toolcall
27
- */
28
- unregister(name: string): void;
29
- /**
30
- * 清空所有注册的 Agent Toolcall
31
- */
32
- clear(): void;
33
- }
34
- export declare const agentToolcallRegistry: AgentToolcallRegistryManager;
35
- export {};
9
+ export declare const agentToolcallRegistry: import("../shared").IRegistryManager<AgentToolcallConfig, ToolcallComponentProps<any, any, any>>;
@@ -1,75 +1,31 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
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
- import React from 'react';
7
+ import '../shared/index.js';
8
+ import { createRegistryManager } from '../shared/createRegistry.js';
9
+ import '../shared/ComponentErrorBoundary.js';
10
+ import '@babel/runtime/helpers/classCallCheck';
11
+ import '@babel/runtime/helpers/createClass';
12
+ import '@babel/runtime/helpers/possibleConstructorReturn';
13
+ import '@babel/runtime/helpers/getPrototypeOf';
14
+ import '@babel/runtime/helpers/inherits';
15
+ import 'react';
16
+ import '../shared/useRegistrationListener.js';
17
+ import '@babel/runtime/helpers/slicedToArray';
18
+ import '@babel/runtime/helpers/defineProperty';
11
19
 
12
- 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; }
13
- 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; }
14
- var AgentToolcallRegistryManager = /*#__PURE__*/function () {
15
- function AgentToolcallRegistryManager() {
16
- _classCallCheck(this, AgentToolcallRegistryManager);
17
- _defineProperty(this, "registry", {});
18
- _defineProperty(this, "renderFunctionCache", /* @__PURE__ */new Map());
19
- }
20
- return _createClass(AgentToolcallRegistryManager, [{
21
- key: "register",
22
- value: function register(config) {
23
- var existingConfig = this.registry[config.name];
24
- if (existingConfig && existingConfig.component !== config.component) {
25
- this.renderFunctionCache["delete"](config.name);
26
- }
27
- this.registry[config.name] = config;
28
- window.dispatchEvent(new CustomEvent("toolcall-registered", {
29
- detail: {
30
- name: config.name
31
- }
32
- }));
33
- }
34
- }, {
35
- key: "get",
36
- value: function get(name) {
37
- return this.registry[name];
38
- }
39
- }, {
40
- key: "getRenderFunction",
41
- value: function getRenderFunction(name) {
42
- var config = this.registry[name];
43
- if (!config) return null;
44
- var memoizedComponent = this.renderFunctionCache.get(name);
45
- if (!memoizedComponent) {
46
- memoizedComponent = /*#__PURE__*/React.memo(function (props) {
47
- return /*#__PURE__*/React.createElement(config.component, props);
48
- });
49
- this.renderFunctionCache.set(name, memoizedComponent);
50
- }
51
- return memoizedComponent;
52
- }
53
- }, {
54
- key: "getAll",
55
- value: function getAll() {
56
- return _objectSpread({}, this.registry);
57
- }
58
- }, {
59
- key: "unregister",
60
- value: function unregister(name) {
61
- delete this.registry[name];
62
- this.renderFunctionCache["delete"](name);
63
- }
64
- }, {
65
- key: "clear",
66
- value: function clear() {
67
- this.registry = {};
68
- this.renderFunctionCache.clear();
69
- }
70
- }]);
71
- }();
72
- var agentToolcallRegistry = new AgentToolcallRegistryManager();
20
+ var TOOLCALL_REGISTERED_EVENT = "toolcall-registered";
21
+ var TOOLCALL_EVENT_DETAIL_KEY = "name";
22
+ var agentToolcallRegistry = createRegistryManager({
23
+ getKey: function getKey(config) {
24
+ return config.name;
25
+ },
26
+ eventName: TOOLCALL_REGISTERED_EVENT,
27
+ eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY
28
+ });
73
29
 
74
- export { agentToolcallRegistry };
30
+ export { TOOLCALL_EVENT_DETAIL_KEY, TOOLCALL_REGISTERED_EVENT, agentToolcallRegistry };
75
31
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/registry.ts"],"sourcesContent":["import React from 'react';\nimport type { AgentToolcallConfig, AgentToolcallRegistry, ToolcallComponentProps } from './types';\n\n/**\n * 全局 Agent Toolcall 注册表\n */\nclass AgentToolcallRegistryManager {\n private registry: AgentToolcallRegistry = {};\n\n // 添加组件渲染函数缓存(类似CopilotKit的chatComponentsCache.current.actions)\n private renderFunctionCache = new Map<\n string,\n React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>>\n >();\n\n /**\n * 注册一个 Agent Toolcall\n */\n register<TArgs extends object = any, TResult = any, TResponse = any>(\n config: AgentToolcallConfig<TArgs, TResult, TResponse>,\n ): void {\n const existingConfig = this.registry[config.name];\n\n // 如果组件发生变化,清除旧的缓存\n if (existingConfig && existingConfig.component !== config.component) {\n this.renderFunctionCache.delete(config.name);\n }\n this.registry[config.name] = config;\n window.dispatchEvent(\n new CustomEvent('toolcall-registered', {\n detail: { name: config.name },\n }),\n );\n }\n\n /**\n * 获取指定名称的 Agent Toolcall 配置\n */\n get(name: string): AgentToolcallConfig | undefined {\n return this.registry[name];\n }\n\n /**\n * 获取或创建缓存的组件渲染函数\n */\n getRenderFunction(name: string): React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>> | null {\n const config = this.registry[name];\n if (!config) return null;\n\n // 检查缓存\n let memoizedComponent = this.renderFunctionCache.get(name);\n\n if (!memoizedComponent) {\n // 创建memo化的组件\n memoizedComponent = React.memo((props: ToolcallComponentProps) => React.createElement(config.component, props));\n\n // 缓存组件\n this.renderFunctionCache.set(name, memoizedComponent);\n }\n\n return memoizedComponent;\n }\n\n /**\n * 获取所有已注册的 Agent Toolcall\n */\n getAll(): AgentToolcallRegistry {\n return { ...this.registry };\n }\n\n /**\n * 取消注册指定的 Agent Toolcall\n */\n unregister(name: string): void {\n delete this.registry[name];\n this.renderFunctionCache.delete(name);\n }\n\n /**\n * 清空所有注册的 Agent Toolcall\n */\n clear(): void {\n this.registry = {};\n this.renderFunctionCache.clear();\n }\n}\n\n// 导出单例实例\nexport const agentToolcallRegistry = new AgentToolcallRegistryManager();\n"],"names":["AgentToolcallRegistryManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","register","config","existingConfig","registry","name","component","renderFunctionCache","window","dispatchEvent","CustomEvent","detail","get","getRenderFunction","memoizedComponent","React","memo","props","createElement","set","getAll","_objectSpread","unregister","clear","agentToolcallRegistry"],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/registry.ts"],"sourcesContent":["import { createRegistryManager } from '../shared';\nimport type { AgentToolcallConfig, ToolcallComponentProps } from './types';\n\n/** Toolcall 注册事件名称 */\nexport const TOOLCALL_REGISTERED_EVENT = 'toolcall-registered';\n\n/** Toolcall 注册事件 detail 键名 */\nexport const TOOLCALL_EVENT_DETAIL_KEY = 'name';\n\n/**\n * 全局 Agent Toolcall 注册表\n */\nexport const agentToolcallRegistry = createRegistryManager<AgentToolcallConfig, ToolcallComponentProps>({\n getKey: (config) => config.name,\n eventName: TOOLCALL_REGISTERED_EVENT,\n eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY,\n});\n"],"names":["TOOLCALL_REGISTERED_EVENT","TOOLCALL_EVENT_DETAIL_KEY","agentToolcallRegistry","createRegistryManager","getKey","config","name","eventName","eventDetailKey"],"mappings":";;;;;;;;;;;;;;;;;;;AAIO,IAAMA,yBAA4B,GAAA,sBAAA;AAGlC,IAAMC,yBAA4B,GAAA,OAAA;AAK5BC,IAAAA,wBAAwBC,qBAAmE,CAAA;AACtGC,EAAAA,MAAA,EAAQ,SAARA,MAAAA,CAASC,MAAA,EAAA;IAAA,OAAWA,MAAO,CAAAC,IAAA,CAAA;AAAA,GAAA;AAC3BC,EAAAA,SAAW,EAAAP,yBAAA;AACXQ,EAAAA,cAAgB,EAAAP,yBAAAA;AAClB,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -7,18 +7,22 @@
7
7
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
8
8
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
11
- import _createClass from '@babel/runtime/helpers/createClass';
12
- import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
13
- import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
14
- import _inherits from '@babel/runtime/helpers/inherits';
15
10
  import _regeneratorRuntime from '@babel/runtime/regenerator';
16
- import React, { Component, useState, useMemo, useCallback, useEffect } from 'react';
11
+ import React, { useState, useMemo, useCallback, useEffect } from 'react';
17
12
  import { isNonInteractiveConfig } from './types.js';
18
- import { agentToolcallRegistry } from './registry.js';
13
+ import { agentToolcallRegistry, TOOLCALL_REGISTERED_EVENT, TOOLCALL_EVENT_DETAIL_KEY } from './registry.js';
14
+ import '../shared/index.js';
19
15
  import { useAgentStateDataByKey, AgentStateContext } from '../../hooks/useAgentState.js';
20
16
  import '../../core/index.js';
17
+ import { useRegistrationListener } from '../shared/useRegistrationListener.js';
21
18
  import { AGUIEventType } from '../../core/adapters/agui/types/index.js';
19
+ import { ComponentErrorBoundary } from '../shared/ComponentErrorBoundary.js';
20
+ import '../shared/createRegistry.js';
21
+ import '@babel/runtime/helpers/classCallCheck';
22
+ import '@babel/runtime/helpers/createClass';
23
+ import '@babel/runtime/helpers/possibleConstructorReturn';
24
+ import '@babel/runtime/helpers/getPrototypeOf';
25
+ import '@babel/runtime/helpers/inherits';
22
26
  import '../../core/adapters/agui/StateManager.js';
23
27
  import '@babel/runtime/helpers/typeof';
24
28
  import '../../core/utils/index.js';
@@ -35,7 +39,7 @@ import '@babel/runtime/helpers/wrapNativeSuper';
35
39
  import '../../core/store/message.js';
36
40
  import '@babel/runtime/helpers/get';
37
41
  import '../../core/store/reactiveState.js';
38
- import '../../../_chunks/dep-de8ac730.js';
42
+ import '../../../_chunks/dep-93283bbd.js';
39
43
  import '../../core/event-bus/index.js';
40
44
  import '../../core/event-bus/ChatEventBus.js';
41
45
  import '../../core/event-bus/types.js';
@@ -50,6 +54,19 @@ import '../../core/server/sse-client.js';
50
54
  import '../../core/server/connection-manager.js';
51
55
  import '../../core/server/sse-parser.js';
52
56
  import '../../core/server/types.js';
57
+ import '../../core/adapters/openclaw/index.js';
58
+ import '../../core/server/websocket-client.js';
59
+ import '../../core/adapters/openclaw/event-mapper.js';
60
+ import '../../core/adapters/openclaw/types/events.js';
61
+ import '../../core/adapters/shared/index.js';
62
+ import '../../core/adapters/shared/content-factory.js';
63
+ import '../../core/adapters/shared/merge-utils.js';
64
+ import '../../core/adapters/shared/activity-manager.js';
65
+ import '../../core/adapters/openclaw/rpc-handler.js';
66
+ import '../../core/adapters/openclaw/types/config.js';
67
+ import '../../core/adapters/openclaw/utils.js';
68
+ import '../../core/adapters/openclaw/types/index.js';
69
+ import '../../core/adapters/openclaw/types/messages.js';
53
70
  import '../../core/adapters/index.js';
54
71
  import '../../core/adapters/json-render/index.js';
55
72
  import '../../core/adapters/json-render/a2ui-to-jsonrender.js';
@@ -60,43 +77,6 @@ import '../../core/adapters/json-render/types/core.js';
60
77
 
61
78
  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; }
62
79
  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; }
63
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
64
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
65
- var ToolCallErrorBoundary = /*#__PURE__*/function (_Component) {
66
- function ToolCallErrorBoundary(props) {
67
- var _this;
68
- _classCallCheck(this, ToolCallErrorBoundary);
69
- _this = _callSuper(this, ToolCallErrorBoundary, [props]);
70
- _this.state = {
71
- hasError: false,
72
- error: null
73
- };
74
- return _this;
75
- }
76
- _inherits(ToolCallErrorBoundary, _Component);
77
- return _createClass(ToolCallErrorBoundary, [{
78
- key: "componentDidCatch",
79
- value: function componentDidCatch(error, errorInfo) {
80
- console.error("[ToolCallRenderer] Error in tool \"".concat(this.props.toolCallName, "\":"), error, errorInfo);
81
- }
82
- }, {
83
- key: "render",
84
- value: function render() {
85
- if (this.state.hasError) {
86
- return null;
87
- }
88
- return this.props.children;
89
- }
90
- }], [{
91
- key: "getDerivedStateFromError",
92
- value: function getDerivedStateFromError(error) {
93
- return {
94
- hasError: true,
95
- error: error
96
- };
97
- }
98
- }]);
99
- }(Component);
100
80
  var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
101
81
  var toolCall = _ref.toolCall,
102
82
  onRespond = _ref.onRespond;
@@ -110,12 +90,13 @@ var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
110
90
  var cfg = agentToolcallRegistry.get(toolCall.toolCallName);
111
91
  return cfg;
112
92
  }, [toolCall.toolCallName]);
113
- var _useState3 = useState(function () {
114
- return !!agentToolcallRegistry.getRenderFunction(toolCall.toolCallName);
93
+ var _useRegistrationListe = useRegistrationListener({
94
+ componentKey: toolCall.toolCallName,
95
+ eventName: TOOLCALL_REGISTERED_EVENT,
96
+ eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY,
97
+ getRenderFunction: agentToolcallRegistry.getRenderFunction
115
98
  }),
116
- _useState4 = _slicedToArray(_useState3, 2),
117
- isRegistered = _useState4[0],
118
- setIsRegistered = _useState4[1];
99
+ MemoizedComponent = _useRegistrationListe.MemoizedComponent;
119
100
  var args = useMemo(function () {
120
101
  try {
121
102
  return toolCall.args ? JSON.parse(toolCall.args) : {};
@@ -221,20 +202,6 @@ var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
221
202
  };
222
203
  return subscribeKeyExtractor(fullProps);
223
204
  }, [subscribeKeyExtractor, args, actionState]);
224
- useEffect(function () {
225
- if (!isRegistered) {
226
- var handleRegistered = function handleRegistered(event) {
227
- var _event$detail;
228
- if (((_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.name) === toolCall.toolCallName) {
229
- setIsRegistered(true);
230
- }
231
- };
232
- window.addEventListener("toolcall-registered", handleRegistered);
233
- return function () {
234
- window.removeEventListener("toolcall-registered", handleRegistered);
235
- };
236
- }
237
- }, [toolCall.toolCallName, isRegistered]);
238
205
  var agentState = useAgentStateDataByKey(targetStateKey);
239
206
  var componentProps = useMemo(function () {
240
207
  return {
@@ -246,44 +213,42 @@ var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
246
213
  agentState: agentState
247
214
  };
248
215
  }, [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState]);
249
- var MemoizedComponent = useMemo(function () {
250
- return agentToolcallRegistry.getRenderFunction(toolCall.toolCallName);
251
- }, [toolCall.toolCallName, isRegistered]);
252
216
  if (!MemoizedComponent) {
253
217
  return null;
254
218
  }
255
- return /* @__PURE__ */React.createElement(ToolCallErrorBoundary, {
256
- toolCallName: toolCall.toolCallName
219
+ return /* @__PURE__ */React.createElement(ComponentErrorBoundary, {
220
+ componentName: toolCall.toolCallName,
221
+ logPrefix: "ToolCallRenderer"
257
222
  }, /* @__PURE__ */React.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
258
223
  }, function (prevProps, nextProps) {
259
224
  return prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId && prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName && prevProps.toolCall.args === nextProps.toolCall.args && prevProps.toolCall.result === nextProps.toolCall.result && prevProps.toolCall.eventType === nextProps.toolCall.eventType && prevProps.onRespond === nextProps.onRespond;
260
225
  });
261
- var withAgentStateToolcall1 = function withAgentStateToolcall1(Component2) {
226
+ var withAgentStateToolcall1 = function withAgentStateToolcall1(Component) {
262
227
  var WrappedComponent = function WrappedComponent(props) {
263
228
  return /* @__PURE__ */React.createElement(AgentStateContext.Consumer, null, function (context) {
264
229
  if (!context) {
265
230
  console.warn("AgentStateContext not found, component will render without state");
266
- return /* @__PURE__ */React.createElement(Component2, _objectSpread({}, props));
231
+ return /* @__PURE__ */React.createElement(Component, _objectSpread({}, props));
267
232
  }
268
- return /* @__PURE__ */React.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
233
+ return /* @__PURE__ */React.createElement(Component, _objectSpread(_objectSpread({}, props), {}, {
269
234
  agentState: context.stateMap
270
235
  }));
271
236
  });
272
237
  };
273
- WrappedComponent.displayName = "withAgentState(".concat(Component2.displayName || Component2.name || "Component", ")");
238
+ WrappedComponent.displayName = "withAgentState(".concat(Component.displayName || Component.name || "Component", ")");
274
239
  return /*#__PURE__*/React.memo(WrappedComponent);
275
240
  };
276
- var withAgentStateToolcall = function withAgentStateToolcall(Component2, subscribeKeyExtractor) {
241
+ var withAgentStateToolcall = function withAgentStateToolcall(Component, subscribeKeyExtractor) {
277
242
  var WrappedComponent = function WrappedComponent(props) {
278
243
  var targetStateKey = useMemo(function () {
279
244
  return subscribeKeyExtractor ? subscribeKeyExtractor(props) : void 0;
280
245
  }, [props]);
281
246
  var agentState = useAgentStateDataByKey(targetStateKey);
282
- return /* @__PURE__ */React.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
247
+ return /* @__PURE__ */React.createElement(Component, _objectSpread(_objectSpread({}, props), {}, {
283
248
  agentState: agentState
284
249
  }));
285
250
  };
286
- WrappedComponent.displayName = "withAgentState(".concat(Component2.displayName || Component2.name || "Component", ")");
251
+ WrappedComponent.displayName = "withAgentState(".concat(Component.displayName || Component.name || "Component", ")");
287
252
  return /*#__PURE__*/React.memo(WrappedComponent);
288
253
  };
289
254
 
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo, Component, ErrorInfo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry } from './registry';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * ToolCall 错误边界组件\n * 捕获子组件渲染错误,防止整个对话列表崩溃\n */\nclass ToolCallErrorBoundary extends Component<{ children: React.ReactNode; toolCallName: string }, ErrorBoundaryState> {\n constructor(props: { children: React.ReactNode; toolCallName: string }) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`[ToolCallRenderer] Error in tool \"${this.props.toolCallName}\":`, error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n // 空白兜底,仅在控制台输出错误\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 添加注册状态监听\n const [isRegistered, setIsRegistered] = useState(\n () => !!agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n );\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (\n toolCall.eventType === AGUIEventType.TOOL_CALL_END ||\n toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT\n ) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 监听组件注册事件, 无论何时注册,都能正确触发重新渲染\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n if (event.detail?.name === toolCall.toolCallName) {\n setIsRegistered(true);\n }\n };\n\n // 添加事件监听\n window.addEventListener('toolcall-registered', handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener('toolcall-registered', handleRegistered as EventListener);\n };\n }\n }, [toolCall.toolCallName, isRegistered]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n // 使用registry的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallName, isRegistered],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ToolCallErrorBoundary toolCallName={toolCall.toolCallName}>\n <MemoizedComponent {...componentProps} />\n </ToolCallErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n// 用于调试,可以在控制台查看每次渲染的参数\n// (prevProps, nextProps) => {\n// const toolCallIdSame = prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId;\n// const toolCallNameSame = prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName;\n// const argsSame = prevProps.toolCall.args === nextProps.toolCall.args;\n// const resultSame = prevProps.toolCall.result === nextProps.toolCall.result;\n// const onRespondSame = prevProps.onRespond === nextProps.onRespond;\n\n// console.log(`ToolCallRenderer memo 详细检查 [${prevProps.toolCall.toolCallName}]:`, {\n// toolCallIdSame,\n// toolCallNameSame,\n// argsSame,\n// resultSame,\n// onRespondSame,\n// prevToolCallId: prevProps.toolCall.toolCallId,\n// nextToolCallId: nextProps.toolCall.toolCallId,\n// prevOnRespond: prevProps.onRespond,\n// nextOnRespond: nextProps.onRespond,\n// });\n\n// const shouldSkip = toolCallIdSame && toolCallNameSame && argsSame && resultSame && onRespondSame;\n\n// console.log(`ToolCallRenderer memo 检查 [${prevProps.toolCall.toolCallName}]:`, shouldSkip ? '跳过渲染' : '需要重新渲染');\n// return shouldSkip\n// },\n// );\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallErrorBoundary","props","_this","_classCallCheck","_callSuper","state","hasError","error","_inherits","_Component","_createClass","key","value","componentDidCatch","errorInfo","console","toolCallName","render","children","getDerivedStateFromError","Component","ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","_useState3","getRenderFunction","_useState4","isRegistered","setIsRegistered","args","JSON","parse","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","handleRegistered","event","_event$detail","detail","name","window","addEventListener","removeEventListener","agentState","useAgentStateDataByKey","componentProps","MemoizedComponent","createElement","prevProps","nextProps","withAgentStateToolcall1","WrappedComponent","AgentStateContext","Consumer","context","stateMap","displayName","concat","withAgentStateToolcall"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry, TOOLCALL_REGISTERED_EVENT, TOOLCALL_EVENT_DETAIL_KEY } from './registry';\nimport { ComponentErrorBoundary, useRegistrationListener } from '../shared';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 使用公共 Hook 监听动态注册\n const { MemoizedComponent } = useRegistrationListener<ToolcallComponentProps>({\n componentKey: toolCall.toolCallName,\n eventName: TOOLCALL_REGISTERED_EVENT,\n eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY,\n getRenderFunction: agentToolcallRegistry.getRenderFunction,\n });\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (\n toolCall.eventType === AGUIEventType.TOOL_CALL_END ||\n toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT\n ) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ComponentErrorBoundary componentName={toolCall.toolCallName} logPrefix=\"ToolCallRenderer\">\n <MemoizedComponent {...componentProps} />\n </ComponentErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","toolCallName","_useRegistrationListe","useRegistrationListener","componentKey","eventName","TOOLCALL_REGISTERED_EVENT","eventDetailKey","TOOLCALL_EVENT_DETAIL_KEY","getRenderFunction","MemoizedComponent","args","JSON","parse","error","console","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","agentState","useAgentStateDataByKey","componentProps","createElement","ComponentErrorBoundary","componentName","logPrefix","prevProps","nextProps","withAgentStateToolcall1","Component","WrappedComponent","props","AgentStateContext","Consumer","context","stateMap","displayName","concat","name","withAgentStateToolcall"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -20,5 +20,6 @@ import '@babel/runtime/helpers/defineProperty';
20
20
  import '@babel/runtime/helpers/slicedToArray';
21
21
  import '@babel/runtime/helpers/toArray';
22
22
  import 'zod';
23
+ import 'expr-eval';
23
24
  import '@babel/runtime/helpers/toConsumableArray';
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.9
2
+ * tdesign v1.1.0-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */