@tdesign-react/chat 1.0.2-alpha.8 → 1.0.2-alpha.9

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 (227) hide show
  1. package/es/_util/reactify.d.ts +1 -2
  2. package/es/_util/reactify.js +81 -231
  3. package/es/_util/reactify.js.map +1 -1
  4. package/es/_util/useDynamicStyle.js +1 -1
  5. package/es/attachments/index.js +4 -6
  6. package/es/attachments/index.js.map +1 -1
  7. package/es/chat-actionbar/_example-js/base.d.ts +2 -0
  8. package/es/chat-actionbar/_example-js/custom.d.ts +2 -0
  9. package/es/chat-actionbar/_example-js/style.d.ts +2 -0
  10. package/es/chat-actionbar/index.js +4 -6
  11. package/es/chat-actionbar/index.js.map +1 -1
  12. package/es/chat-attachments/_example-js/base.d.ts +2 -0
  13. package/es/chat-attachments/_example-js/scroll-x.d.ts +2 -0
  14. package/es/chat-attachments/_example-js/scroll-y.d.ts +2 -0
  15. package/es/chat-attachments/index.js +3 -1
  16. package/es/chat-attachments/index.js.map +1 -1
  17. package/es/chat-engine/_example-js/agui-basic.d.ts +10 -0
  18. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +2 -0
  19. package/es/chat-engine/_example-js/agui-test.d.ts +11 -0
  20. package/es/chat-engine/_example-js/agui-toolcall.d.ts +5 -0
  21. package/es/chat-engine/_example-js/agui-videoclip.d.ts +8 -0
  22. package/es/chat-engine/_example-js/agui.d.ts +1 -0
  23. package/es/chat-engine/_example-js/basic.d.ts +9 -0
  24. package/es/chat-engine/_example-js/components/HotelCard.d.ts +3 -0
  25. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +6 -0
  26. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +3 -0
  27. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +3 -0
  28. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +4 -0
  29. package/es/chat-engine/_example-js/components/Toolcall.d.ts +4 -0
  30. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +3 -0
  31. package/es/chat-engine/_example-js/components/login.d.ts +1 -0
  32. package/es/chat-engine/_example-js/comprehensive.d.ts +12 -0
  33. package/es/chat-engine/_example-js/custom-content.d.ts +1 -0
  34. package/es/chat-engine/_example-js/hookComponent.d.ts +1 -0
  35. package/es/chat-engine/_example-js/initial-messages.d.ts +9 -0
  36. package/es/chat-engine/_example-js/instance-methods.d.ts +13 -0
  37. package/es/chat-engine/_example-js/travel-actions.d.ts +91 -0
  38. package/es/chat-engine/_example-js/travelToolcall.d.ts +1 -0
  39. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.d.ts +1 -0
  40. package/es/chat-engine/components/activity/index.js +18 -0
  41. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.js.map +1 -1
  42. package/es/chat-engine/components/activity/registry.d.ts +44 -0
  43. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/registry.js +32 -22
  44. package/es/chat-engine/components/activity/registry.js.map +1 -0
  45. package/es/chat-engine/components/activity/render.d.ts +11 -0
  46. package/es/chat-engine/components/activity/render.js +107 -0
  47. package/es/chat-engine/components/activity/render.js.map +1 -0
  48. package/es/chat-engine/components/activity/types.d.ts +32 -0
  49. package/es/chat-engine/components/activity/types.js +7 -0
  50. package/es/chat-engine/components/activity/types.js.map +1 -0
  51. package/es/chat-engine/components/index.d.ts +3 -0
  52. package/es/chat-engine/components/index.js +28 -0
  53. package/es/chat-engine/components/index.js.map +1 -0
  54. package/es/chat-engine/components/provider/agent-state.js +1 -1
  55. package/es/chat-engine/components/toolcall/index.js +4 -1
  56. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  57. package/es/chat-engine/components/toolcall/registry.js +1 -1
  58. package/es/chat-engine/components/toolcall/render.js +72 -25
  59. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  60. package/es/chat-engine/components/toolcall/types.js +1 -1
  61. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +109 -0
  62. package/es/chat-engine/core/adapters/agui/event-mapper.js +375 -0
  63. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  64. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  65. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  66. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  67. package/es/chat-engine/core/adapters/agui/index.d.ts +75 -0
  68. package/es/chat-engine/core/adapters/agui/index.js +175 -0
  69. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  70. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  71. package/es/chat-engine/core/adapters/agui/state-manager.js +168 -0
  72. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  73. package/es/chat-engine/core/adapters/agui/types.d.ts +817 -0
  74. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  75. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  76. package/es/chat-engine/core/adapters/agui/utils.d.ts +197 -0
  77. package/es/chat-engine/core/adapters/agui/utils.js +311 -0
  78. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  79. package/es/chat-engine/core/index.d.ts +132 -0
  80. package/es/chat-engine/core/index.js +597 -0
  81. package/es/chat-engine/core/index.js.map +1 -0
  82. package/es/chat-engine/core/processor/index.d.ts +20 -0
  83. package/es/chat-engine/core/processor/index.js +146 -0
  84. package/es/chat-engine/core/processor/index.js.map +1 -0
  85. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  86. package/es/chat-engine/core/server/batch-client.js +114 -0
  87. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  88. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  89. package/es/chat-engine/core/server/connection-manager.js +84 -0
  90. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  91. package/es/chat-engine/core/server/errors.d.ts +22 -0
  92. package/es/chat-engine/core/server/errors.js +80 -0
  93. package/es/chat-engine/core/server/errors.js.map +1 -0
  94. package/es/chat-engine/core/server/index.d.ts +11 -0
  95. package/es/chat-engine/core/server/index.js +26 -0
  96. package/es/chat-engine/core/server/index.js.map +1 -0
  97. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  98. package/es/chat-engine/core/server/llm-service.js +198 -0
  99. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  100. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  101. package/es/chat-engine/core/server/sse-client.js +362 -0
  102. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  103. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  104. package/es/chat-engine/core/server/sse-parser.js +116 -0
  105. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  106. package/es/chat-engine/core/server/types.d.ts +54 -0
  107. package/es/chat-engine/core/server/types.js +28 -0
  108. package/es/chat-engine/core/server/types.js.map +1 -0
  109. package/es/chat-engine/core/store/message.d.ts +27 -0
  110. package/es/chat-engine/core/store/message.js +263 -0
  111. package/es/chat-engine/core/store/message.js.map +1 -0
  112. package/es/chat-engine/core/store/model.d.ts +8 -0
  113. package/es/chat-engine/core/store/model.js +65 -0
  114. package/es/chat-engine/core/store/model.js.map +1 -0
  115. package/es/chat-engine/core/store/reactiveState.d.ts +52 -0
  116. package/es/chat-engine/core/store/reactiveState.js +1359 -0
  117. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  118. package/es/chat-engine/core/type.d.ts +255 -0
  119. package/es/chat-engine/core/type.js +7 -0
  120. package/es/chat-engine/core/type.js.map +1 -0
  121. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  122. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  123. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  124. package/es/chat-engine/core/utils/index.d.ts +33 -0
  125. package/es/chat-engine/core/utils/index.js +999 -0
  126. package/es/chat-engine/core/utils/index.js.map +1 -0
  127. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  128. package/es/chat-engine/core/utils/logger.js +87 -0
  129. package/es/chat-engine/core/utils/logger.js.map +1 -0
  130. package/es/chat-engine/hooks/index.d.ts +4 -0
  131. package/es/chat-engine/hooks/index.js +20 -0
  132. package/es/chat-engine/hooks/index.js.map +1 -0
  133. package/es/chat-engine/hooks/useAgentActivity.d.ts +16 -0
  134. package/es/chat-engine/hooks/useAgentActivity.js +73 -0
  135. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -0
  136. package/es/chat-engine/hooks/useAgentState.js +1 -1
  137. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  138. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  139. package/es/chat-engine/hooks/useChat.js +3 -3
  140. package/es/chat-engine/hooks/useChat.js.map +1 -1
  141. package/es/chat-engine/index.d.ts +3 -1
  142. package/es/chat-engine/index.js +37 -3
  143. package/es/chat-engine/index.js.map +1 -1
  144. package/es/chat-filecard/_example-js/base.d.ts +1 -0
  145. package/es/chat-filecard/index.js +4 -6
  146. package/es/chat-filecard/index.js.map +1 -1
  147. package/es/chat-loading/_example-js/base.d.ts +2 -0
  148. package/es/chat-loading/_example-js/text.d.ts +2 -0
  149. package/es/chat-loading/index.js +4 -6
  150. package/es/chat-loading/index.js.map +1 -1
  151. package/es/chat-markdown/_example-js/base.d.ts +1 -0
  152. package/es/chat-markdown/_example-js/custom.d.ts +2 -0
  153. package/es/chat-markdown/_example-js/event.d.ts +1 -0
  154. package/es/chat-markdown/_example-js/footnote.d.ts +2 -0
  155. package/es/chat-markdown/_example-js/plugin.d.ts +2 -0
  156. package/es/chat-markdown/_example-js/theme.d.ts +2 -0
  157. package/es/chat-markdown/index.js +4 -6
  158. package/es/chat-markdown/index.js.map +1 -1
  159. package/es/chat-message/_example-js/action.d.ts +1 -0
  160. package/es/chat-message/_example-js/base.d.ts +1 -0
  161. package/es/chat-message/_example-js/configure.d.ts +1 -0
  162. package/es/chat-message/_example-js/content.d.ts +1 -0
  163. package/es/chat-message/_example-js/custom.d.ts +1 -0
  164. package/es/chat-message/_example-js/handle-actions.d.ts +7 -0
  165. package/es/chat-message/_example-js/status.d.ts +1 -0
  166. package/es/chat-message/_example-js/think.d.ts +1 -0
  167. package/es/chat-message/index.js +4 -6
  168. package/es/chat-message/index.js.map +1 -1
  169. package/es/chat-sender/_example-js/attachment.d.ts +2 -0
  170. package/es/chat-sender/_example-js/base.d.ts +2 -0
  171. package/es/chat-sender/_example-js/custom.d.ts +2 -0
  172. package/es/chat-sender/index.js +4 -6
  173. package/es/chat-sender/index.js.map +1 -1
  174. package/es/chat-thinking/_example-js/base.d.ts +1 -0
  175. package/es/chat-thinking/_example-js/style.d.ts +1 -0
  176. package/es/chat-thinking/index.js +4 -6
  177. package/es/chat-thinking/index.js.map +1 -1
  178. package/es/chatbot/_example-js/agent.d.ts +1 -0
  179. package/es/chatbot/_example-js/agui.d.ts +13 -0
  180. package/es/chatbot/_example-js/backup/travel.d.ts +1 -0
  181. package/es/chatbot/_example-js/basic.d.ts +1 -0
  182. package/es/chatbot/_example-js/code.d.ts +1 -0
  183. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +3 -0
  184. package/es/chatbot/_example-js/components/login.d.ts +1 -0
  185. package/es/chatbot/_example-js/comprehensive.d.ts +1 -0
  186. package/es/chatbot/_example-js/custom-content.d.ts +1 -0
  187. package/es/chatbot/_example-js/custom-merge.d.ts +1 -0
  188. package/es/chatbot/_example-js/custom.d.ts +1 -0
  189. package/es/chatbot/_example-js/docs.d.ts +1 -0
  190. package/es/chatbot/_example-js/image.d.ts +1 -0
  191. package/es/chatbot/_example-js/initial-messages.d.ts +9 -0
  192. package/es/chatbot/_example-js/instance-methods.d.ts +14 -0
  193. package/es/chatbot/_example-js/nostream.d.ts +1 -0
  194. package/es/chatbot/_example-js/quick-start.d.ts +9 -0
  195. package/es/chatbot/_example-js/research.d.ts +1 -0
  196. package/es/chatbot/_example-js/role-message-config.d.ts +22 -0
  197. package/es/chatbot/_example-js/sender-config.d.ts +20 -0
  198. package/es/chatbot/_example-js/service-config.d.ts +17 -0
  199. package/es/chatbot/_example-js/simple.d.ts +1 -0
  200. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +5 -0
  201. package/es/chatbot/index.js +4 -6
  202. package/es/chatbot/index.js.map +1 -1
  203. package/es/index.js +37 -9
  204. package/es/index.js.map +1 -1
  205. package/es/style/index.js +1 -1
  206. package/package.json +2 -2
  207. package/es/chatbot/components/provider/agent-state.d.ts +0 -5
  208. package/es/chatbot/components/provider/agent-state.js +0 -28
  209. package/es/chatbot/components/provider/agent-state.js.map +0 -1
  210. package/es/chatbot/components/toolcall/index.js +0 -19
  211. package/es/chatbot/components/toolcall/registry.d.ts +0 -35
  212. package/es/chatbot/components/toolcall/registry.js.map +0 -1
  213. package/es/chatbot/components/toolcall/render.d.ts +0 -13
  214. package/es/chatbot/components/toolcall/render.js +0 -207
  215. package/es/chatbot/components/toolcall/render.js.map +0 -1
  216. package/es/chatbot/components/toolcall/types.d.ts +0 -57
  217. package/es/chatbot/components/toolcall/types.js +0 -15
  218. package/es/chatbot/components/toolcall/types.js.map +0 -1
  219. package/es/chatbot/hooks/useAgentState.d.ts +0 -40
  220. package/es/chatbot/hooks/useAgentState.js +0 -76
  221. package/es/chatbot/hooks/useAgentState.js.map +0 -1
  222. package/es/chatbot/hooks/useAgentToolcall.d.ts +0 -28
  223. package/es/chatbot/hooks/useAgentToolcall.js +0 -78
  224. package/es/chatbot/hooks/useAgentToolcall.js.map +0 -1
  225. package/es/chatbot/hooks/useChat.d.ts +0 -11
  226. package/es/chatbot/hooks/useChat.js +0 -66
  227. package/es/chatbot/hooks/useChat.js.map +0 -1
@@ -2,6 +2,5 @@ import React from 'react';
2
2
  type AnyProps = {
3
3
  [key: string]: any;
4
4
  };
5
- export declare function hyphenate(str: string): string;
6
- declare const reactify: <T extends AnyProps = AnyProps>(WC: string) => React.ForwardRefExoticComponent<Omit<T, "ref"> & React.RefAttributes<HTMLElement | undefined>>;
5
+ declare const reactify: <T extends AnyProps = AnyProps>(WC: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<T> & React.RefAttributes<HTMLElement>>;
7
6
  export default reactify;
@@ -1,21 +1,19 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2-alpha.6
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
7
8
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
8
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
+ import _typeof from '@babel/runtime/helpers/typeof';
10
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
9
11
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
10
12
  import _createClass from '@babel/runtime/helpers/createClass';
11
13
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
12
14
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
13
15
  import _inherits from '@babel/runtime/helpers/inherits';
14
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
15
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
16
- import _typeof from '@babel/runtime/helpers/typeof';
17
16
  import React, { createRef, createElement, Component, forwardRef } from 'react';
18
- import ReactDOM from 'react-dom';
19
17
  import { createRoot } from 'react-dom/client';
20
18
 
21
19
  var _excluded = ["children", "className"];
@@ -23,75 +21,28 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
23
21
  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; }
24
22
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
25
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
26
- var isReact18Plus = function isReact18Plus() {
27
- return typeof createRoot !== "undefined";
28
- };
29
- var isReact19Plus = function isReact19Plus() {
30
- var majorVersion = parseInt(React.version.split(".")[0], 10);
31
- return majorVersion >= 19;
24
+ var hyphenateRE = /\B([A-Z])/g;
25
+ var hyphenate = function hyphenate(string) {
26
+ return string.replace(hyphenateRE, "-$1").toLowerCase();
32
27
  };
33
- var rootCache = /* @__PURE__ */new WeakMap();
34
- var createRenderer = function createRenderer(container) {
35
- if (isReact18Plus()) {
36
- var cached = rootCache.get(container);
37
- if (!cached) {
38
- cached = {
39
- root: createRoot(container)
40
- };
41
- rootCache.set(container, cached);
42
- }
43
- return {
44
- render: function render(element) {
45
- if (cached.lastElement !== element) {
46
- cached.root.render(element);
47
- cached.lastElement = element;
48
- }
49
- },
50
- unmount: function unmount() {
51
- cached.root.unmount();
52
- rootCache["delete"](container);
53
- }
54
- };
55
- }
56
- return {
57
- render: function render(element) {
58
- ReactDOM.render(element, container);
59
- },
60
- unmount: function unmount() {
61
- ReactDOM.unmountComponentAtNode(container);
62
- }
63
- };
28
+ var styleObjectToString = function styleObjectToString(style) {
29
+ if (!style) return "";
30
+ if (typeof style === "string") return style;
31
+ return Object.keys(style).reduce(function (acc, key) {
32
+ var value = style[key];
33
+ var cssKey = key.replace(hyphenateRE, "-$1").toLowerCase();
34
+ return acc.concat("".concat(cssKey, ":").concat(value));
35
+ }, []).join(";");
64
36
  };
65
- var isReactElement = function isReactElement(obj) {
66
- return obj && _typeof(obj) === "object" && obj.$$typeof && obj.$$typeof.toString().includes("react");
37
+ var isReactElement = function isReactElement(node) {
38
+ return /*#__PURE__*/React.isValidElement(node);
67
39
  };
68
40
  var isValidReactNode = function isValidReactNode(node) {
69
41
  return node !== null && node !== void 0 && (typeof node === "string" || typeof node === "number" || typeof node === "boolean" || isReactElement(node) || Array.isArray(node));
70
42
  };
71
- var hyphenateRE = /\B([A-Z])/g;
72
- function hyphenate(str) {
73
- return str.replace(hyphenateRE, "-$1").toLowerCase();
74
- }
75
- var styleObjectToString = function styleObjectToString(style) {
76
- if (!style || _typeof(style) !== "object") return "";
77
- var unitlessKeys = /* @__PURE__ */new Set(["animationIterationCount", "boxFlex", "boxFlexGroup", "boxOrdinalGroup", "columnCount", "fillOpacity", "flex", "flexGrow", "flexShrink", "fontWeight", "lineClamp", "lineHeight", "opacity", "order", "orphans", "tabSize", "widows", "zIndex", "zoom"]);
78
- return Object.entries(style).filter(function (_ref) {
79
- var _ref2 = _slicedToArray(_ref, 2),
80
- value = _ref2[1];
81
- return value != null && value !== "";
82
- }).map(function (_ref3) {
83
- var _ref4 = _slicedToArray(_ref3, 2),
84
- key = _ref4[0],
85
- value = _ref4[1];
86
- var cssKey = key.replace(/[A-Z]/g, function (m) {
87
- return "-".concat(m.toLowerCase());
88
- });
89
- var cssValue = value;
90
- if (typeof value === "number" && value !== 0 && !unitlessKeys.has(key)) {
91
- cssValue = "".concat(value, "px");
92
- }
93
- return "".concat(cssKey, ":").concat(cssValue, ";");
94
- }).join(" ");
43
+ var isReact19Plus = function isReact19Plus() {
44
+ var version = React.version.split(".")[0];
45
+ return parseInt(version, 10) >= 19;
95
46
  };
96
47
  var reactify = function reactify(WC) {
97
48
  var Reactify = /*#__PURE__*/function (_Component) {
@@ -99,10 +50,8 @@ var reactify = function reactify(WC) {
99
50
  var _this;
100
51
  _classCallCheck(this, Reactify);
101
52
  _this = _callSuper(this, Reactify, [props]);
102
- _defineProperty(_this, "processingSlots", /* @__PURE__ */new Set());
103
- _defineProperty(_this, "lastRenderedElements", /* @__PURE__ */new Map());
104
53
  _this.eventHandlers = [];
105
- _this.slotRenderers = /* @__PURE__ */new Map();
54
+ _this.slotInstances = /* @__PURE__ */new Map();
106
55
  var innerRef = props.innerRef;
107
56
  _this.ref = innerRef || /*#__PURE__*/createRef();
108
57
  return _this;
@@ -121,27 +70,12 @@ var reactify = function reactify(WC) {
121
70
  var _this2 = this;
122
71
  var webComponent = this.ref.current;
123
72
  if (!webComponent) return;
124
- if (this.processingSlots.has(prop)) {
125
- return;
126
- }
127
- var currentRenderer = this.slotRenderers.get(prop);
128
- if (currentRenderer && this.isSameReactElement(prop, val)) {
129
- return;
130
- }
131
- this.processingSlots.add(prop);
132
- if (isValidReactNode(val)) {
133
- this.lastRenderedElements.set(prop, val);
134
- }
135
- if (currentRenderer) {
136
- this.cleanupSlotRenderer(prop);
137
- }
138
73
  if (typeof val === "function") {
139
74
  var renderSlot = function renderSlot(params) {
140
75
  var reactNode = val(params);
141
76
  return _this2.renderReactNodeToSlot(reactNode, prop);
142
77
  };
143
78
  webComponent[prop] = renderSlot;
144
- this.processingSlots["delete"](prop);
145
79
  } else if (isValidReactNode(val)) {
146
80
  webComponent[prop] = true;
147
81
  Promise.resolve().then(function () {
@@ -149,180 +83,96 @@ var reactify = function reactify(WC) {
149
83
  webComponent.update();
150
84
  }
151
85
  _this2.renderReactNodeToSlot(val, prop);
152
- _this2.processingSlots["delete"](prop);
153
86
  });
87
+ } else {
88
+ this.cleanupSlotRenderer(prop);
154
89
  }
155
90
  }
156
91
  }, {
157
92
  key: "cleanupSlotRenderer",
158
93
  value: function cleanupSlotRenderer(slotName) {
159
- var _this3 = this;
160
- var renderer = this.slotRenderers.get(slotName);
161
- if (!renderer) return;
162
- this.clearSlotContainers(slotName);
163
- Promise.resolve().then(function () {
164
- _this3.safeCleanupRenderer(renderer);
165
- });
166
- this.slotRenderers["delete"](slotName);
167
- }
168
- }, {
169
- key: "safeCleanupRenderer",
170
- value: function safeCleanupRenderer(cleanup) {
171
- try {
172
- cleanup();
173
- } catch (error) {
174
- console.warn("Error cleaning up React renderer:", error);
175
- }
176
- }
177
- }, {
178
- key: "clearSlotContainers",
179
- value: function clearSlotContainers(slotName) {
180
- var webComponent = this.ref.current;
181
- if (!webComponent) return;
182
- var containers = webComponent.querySelectorAll("[slot=\"".concat(slotName, "\"]"));
183
- containers.forEach(function (container) {
184
- if (container.parentNode) {
185
- container.parentNode.removeChild(container);
94
+ var instance = this.slotInstances.get(slotName);
95
+ if (instance) {
96
+ setTimeout(function () {
97
+ instance.root.unmount();
98
+ }, 0);
99
+ if (instance.container.parentNode === this.ref.current) {
100
+ var _this$ref$current2;
101
+ (_this$ref$current2 = this.ref.current) === null || _this$ref$current2 === void 0 || _this$ref$current2.removeChild(instance.container);
186
102
  }
187
- });
188
- }
189
- }, {
190
- key: "isSameReactElement",
191
- value: function isSameReactElement(prop, val) {
192
- var lastElement = this.lastRenderedElements.get(prop);
193
- if (!lastElement || !isValidReactNode(val)) {
194
- return false;
103
+ this.slotInstances["delete"](slotName);
195
104
  }
196
- if (lastElement === val) {
197
- return true;
198
- }
199
- if (/*#__PURE__*/React.isValidElement(lastElement) && /*#__PURE__*/React.isValidElement(val)) {
200
- var typeMatch = lastElement.type === val.type;
201
- var keyMatch = lastElement.key === val.key;
202
- var propsMatch = JSON.stringify(lastElement.props) === JSON.stringify(val.props);
203
- return typeMatch && keyMatch && propsMatch;
204
- }
205
- return false;
206
105
  }
207
106
  }, {
208
107
  key: "renderReactNodeToSlot",
209
108
  value: function renderReactNodeToSlot(reactNode, slotName) {
210
- var _this4 = this;
211
109
  var webComponent = this.ref.current;
212
110
  if (!webComponent) return;
213
- var existingContainers = webComponent.querySelectorAll("[slot=\"".concat(slotName, "\"]"));
214
- if (existingContainers.length > 0) {
215
- return;
216
- }
217
- var container = document.createElement("div");
218
- container.style.display = "contents";
219
- container.setAttribute("slot", slotName);
220
- webComponent.appendChild(container);
221
- var cleanupFn = null;
222
- if (isValidReactNode(reactNode)) {
223
- if (/*#__PURE__*/React.isValidElement(reactNode)) {
224
- try {
225
- var renderer = createRenderer(container);
226
- renderer.render(reactNode);
227
- cleanupFn = function cleanupFn() {
228
- try {
229
- renderer.unmount();
230
- } catch (error) {
231
- console.warn("Error unmounting React renderer:", error);
232
- }
233
- };
234
- } catch (error) {
235
- console.warn("Error creating React renderer:", error);
236
- }
237
- } else if (typeof reactNode === "string" || typeof reactNode === "number") {
238
- container.textContent = String(reactNode);
239
- cleanupFn = function cleanupFn() {
240
- container.textContent = "";
241
- };
242
- } else if (Array.isArray(reactNode)) {
243
- try {
244
- var _renderer = createRenderer(container);
245
- var wrapper = /*#__PURE__*/React.createElement.apply(React, ["div", {
246
- style: {
247
- display: "contents"
248
- }
249
- }].concat(_toConsumableArray(reactNode.filter(isValidReactNode))));
250
- _renderer.render(wrapper);
251
- cleanupFn = function cleanupFn() {
252
- try {
253
- _renderer.unmount();
254
- } catch (error) {
255
- console.warn("Error unmounting React renderer:", error);
256
- }
257
- };
258
- } catch (error) {
259
- console.warn("Error creating React renderer for array:", error);
260
- }
111
+ var instance = this.slotInstances.get(slotName);
112
+ if (!instance) {
113
+ var container = webComponent.querySelector("[slot=\"".concat(slotName, "\"]"));
114
+ if (!container) {
115
+ container = document.createElement("div");
116
+ container.style.display = "contents";
117
+ container.setAttribute("slot", slotName);
118
+ webComponent.appendChild(container);
261
119
  }
120
+ var root = createRoot(container);
121
+ instance = {
122
+ container: container,
123
+ root: root
124
+ };
125
+ this.slotInstances.set(slotName, instance);
262
126
  }
263
- this.slotRenderers.set(slotName, function () {
264
- _this4.lastRenderedElements["delete"](slotName);
265
- Promise.resolve().then(function () {
266
- if (cleanupFn) {
267
- cleanupFn();
268
- }
269
- if (container.parentNode) {
270
- container.parentNode.removeChild(container);
271
- }
272
- });
273
- });
127
+ instance.root.render(reactNode);
274
128
  }
275
129
  }, {
276
130
  key: "update",
277
131
  value: function update() {
278
- var _this5 = this;
132
+ var _this3 = this;
279
133
  this.clearEventHandlers();
280
134
  if (!this.ref.current) return;
281
- Object.entries(this.props).forEach(function (_ref5) {
282
- var _ref6 = _slicedToArray(_ref5, 2),
283
- prop = _ref6[0],
284
- val = _ref6[1];
135
+ Object.entries(this.props).forEach(function (_ref) {
136
+ var _ref2 = _slicedToArray(_ref, 2),
137
+ prop = _ref2[0],
138
+ val = _ref2[1];
285
139
  if (["innerRef", "children"].includes(prop)) return;
286
140
  if (typeof val === "function" && prop.match(/^on[A-Za-z]/)) {
287
141
  var eventName = prop.slice(2);
288
142
  var omiEventName = eventName[0].toLowerCase() + eventName.slice(1);
289
- _this5.setEvent(omiEventName, val);
143
+ _this3.setEvent(omiEventName, val);
290
144
  return;
291
145
  }
292
- if (typeof val === "function" && prop.match(/^render[A-Za-z]/)) {
293
- _this5.handleSlotProp(prop, val);
294
- return;
295
- }
296
- if (isReactElement(val) && !prop.match(/^on[A-Za-z]/) && !prop.match(/^render[A-Za-z]/)) {
297
- var _this5$ref$current;
298
- var componentClass = (_this5$ref$current = _this5.ref.current) === null || _this5$ref$current === void 0 ? void 0 : _this5$ref$current.constructor;
146
+ if (isReactElement(val) && !prop.match(/^on[A-Za-z]/)) {
147
+ var _this3$ref$current;
148
+ var componentClass = (_this3$ref$current = _this3.ref.current) === null || _this3$ref$current === void 0 ? void 0 : _this3$ref$current.constructor;
299
149
  var declaredSlots = (componentClass === null || componentClass === void 0 ? void 0 : componentClass.slotProps) || [];
300
150
  if (declaredSlots.includes(prop) || prop.endsWith("Slot")) {
301
- _this5.handleSlotProp(prop, val);
151
+ _this3.handleSlotProp(prop, val);
302
152
  return;
303
153
  }
304
154
  }
305
155
  if (_typeof(val) === "object" && val !== null) {
306
156
  if (prop === "style") {
307
- var _this5$ref$current2;
308
- (_this5$ref$current2 = _this5.ref.current) === null || _this5$ref$current2 === void 0 || _this5$ref$current2.setAttribute("style", styleObjectToString(val));
157
+ var _this3$ref$current2;
158
+ (_this3$ref$current2 = _this3.ref.current) === null || _this3$ref$current2 === void 0 || _this3$ref$current2.setAttribute("style", styleObjectToString(val));
309
159
  return;
310
160
  }
311
- _this5.ref.current[prop] = val;
161
+ _this3.ref.current[prop] = val;
312
162
  return;
313
163
  }
314
164
  if (typeof val === "function") {
315
- _this5.ref.current[prop] = val;
165
+ _this3.ref.current[prop] = val;
316
166
  return;
317
167
  }
318
168
  if (prop.match(hyphenateRE)) {
319
- var _this5$ref$current3, _this5$ref$current4;
320
- (_this5$ref$current3 = _this5.ref.current) === null || _this5$ref$current3 === void 0 || _this5$ref$current3.setAttribute(hyphenate(prop), val);
321
- (_this5$ref$current4 = _this5.ref.current) === null || _this5$ref$current4 === void 0 || _this5$ref$current4.removeAttribute(prop);
169
+ var _this3$ref$current3, _this3$ref$current4;
170
+ (_this3$ref$current3 = _this3.ref.current) === null || _this3$ref$current3 === void 0 || _this3$ref$current3.setAttribute(hyphenate(prop), val);
171
+ (_this3$ref$current4 = _this3.ref.current) === null || _this3$ref$current4 === void 0 || _this3$ref$current4.removeAttribute(prop);
322
172
  return;
323
173
  }
324
174
  if (!isReact19Plus()) {
325
- _this5.ref.current[prop] = val;
175
+ _this3.ref.current[prop] = val;
326
176
  }
327
177
  });
328
178
  }
@@ -340,30 +190,30 @@ var reactify = function reactify(WC) {
340
190
  key: "componentWillUnmount",
341
191
  value: function componentWillUnmount() {
342
192
  this.clearEventHandlers();
343
- this.clearSlotRenderers();
193
+ this.clearSlotInstances();
344
194
  }
345
195
  }, {
346
196
  key: "clearEventHandlers",
347
197
  value: function clearEventHandlers() {
348
- var _this6 = this;
349
- this.eventHandlers.forEach(function (_ref7) {
350
- var _this6$ref$current;
351
- var _ref8 = _slicedToArray(_ref7, 2),
352
- event = _ref8[0],
353
- handler = _ref8[1];
354
- (_this6$ref$current = _this6.ref.current) === null || _this6$ref$current === void 0 || _this6$ref$current.removeEventListener(event, handler);
198
+ var _this4 = this;
199
+ this.eventHandlers.forEach(function (_ref3) {
200
+ var _this4$ref$current;
201
+ var _ref4 = _slicedToArray(_ref3, 2),
202
+ event = _ref4[0],
203
+ handler = _ref4[1];
204
+ (_this4$ref$current = _this4.ref.current) === null || _this4$ref$current === void 0 || _this4$ref$current.removeEventListener(event, handler);
355
205
  });
356
206
  this.eventHandlers = [];
357
207
  }
358
208
  }, {
359
- key: "clearSlotRenderers",
360
- value: function clearSlotRenderers() {
361
- var _this7 = this;
362
- this.slotRenderers.forEach(function (cleanup) {
363
- _this7.safeCleanupRenderer(cleanup);
209
+ key: "clearSlotInstances",
210
+ value: function clearSlotInstances() {
211
+ this.slotInstances.forEach(function (instance) {
212
+ setTimeout(function () {
213
+ instance.root.unmount();
214
+ }, 0);
364
215
  });
365
- this.slotRenderers.clear();
366
- this.processingSlots.clear();
216
+ this.slotInstances.clear();
367
217
  }
368
218
  }, {
369
219
  key: "render",
@@ -387,5 +237,5 @@ var reactify = function reactify(WC) {
387
237
  });
388
238
  };
389
239
 
390
- export { reactify as default, hyphenate };
240
+ export { reactify as default };
391
241
  //# sourceMappingURL=reactify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactify.js","sources":["../../../pro-components/chat/_util/reactify.tsx"],"sourcesContent":["import React, { Component, createRef, createElement, forwardRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { createRoot } from 'react-dom/client';\n\n// 检测 React 版本\nconst isReact18Plus = () => typeof createRoot !== 'undefined';\nconst isReact19Plus = (): boolean => {\n const majorVersion = parseInt(React.version.split('.')[0], 10);\n return majorVersion >= 19;\n};\n\n// 增强版本的缓存管理\nconst rootCache = new WeakMap<\n HTMLElement,\n {\n root: ReturnType<typeof createRoot>;\n lastElement?: React.ReactElement;\n }\n>();\n\nconst createRenderer = (container: HTMLElement) => {\n if (isReact18Plus()) {\n let cached = rootCache.get(container);\n if (!cached) {\n cached = { root: createRoot(container) };\n rootCache.set(container, cached);\n }\n\n return {\n render: (element: React.ReactElement) => {\n // 可选:避免相同元素的重复渲染\n if (cached.lastElement !== element) {\n cached.root.render(element);\n cached.lastElement = element;\n }\n },\n unmount: () => {\n cached.root.unmount();\n rootCache.delete(container);\n },\n };\n }\n\n // React 17的实现\n return {\n render: (element: React.ReactElement) => {\n ReactDOM.render(element, container);\n },\n unmount: () => {\n ReactDOM.unmountComponentAtNode(container);\n },\n };\n};\n\n// 检查是否是React元素\nconst isReactElement = (obj: any): obj is React.ReactElement =>\n obj && typeof obj === 'object' && obj.$$typeof && obj.$$typeof.toString().includes('react');\n\n// 检查是否是有效的React节点\nconst isValidReactNode = (node: any): node is React.ReactNode =>\n node !== null &&\n node !== undefined &&\n (typeof node === 'string' ||\n typeof node === 'number' ||\n typeof node === 'boolean' ||\n isReactElement(node) ||\n Array.isArray(node));\n\ntype AnyProps = {\n [key: string]: any;\n};\n\nconst hyphenateRE = /\\B([A-Z])/g;\n\nexport function hyphenate(str: string): string {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n}\n\nconst styleObjectToString = (style: any) => {\n if (!style || typeof style !== 'object') return '';\n\n const unitlessKeys = new Set([\n 'animationIterationCount',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'fontWeight',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n ]);\n\n return Object.entries(style)\n .filter(([, value]) => value != null && value !== '') // 过滤无效值\n .map(([key, value]) => {\n // 转换驼峰式为连字符格式\n const cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n\n // 处理数值类型值\n let cssValue = value;\n if (typeof value === 'number' && value !== 0 && !unitlessKeys.has(key)) {\n cssValue = `${value}px`;\n }\n\n return `${cssKey}:${cssValue};`;\n })\n .join(' ');\n};\n\nconst reactify = <T extends AnyProps = AnyProps>(\n WC: string,\n): React.ForwardRefExoticComponent<Omit<T, 'ref'> & React.RefAttributes<HTMLElement | undefined>> => {\n class Reactify extends Component<AnyProps> {\n eventHandlers: [string, EventListener][];\n\n slotRenderers: Map<string, () => void>;\n\n ref: React.RefObject<HTMLElement>;\n\n constructor(props: AnyProps) {\n super(props);\n this.eventHandlers = [];\n this.slotRenderers = new Map();\n const { innerRef } = props;\n this.ref = innerRef || createRef();\n }\n\n setEvent(event: string, val: EventListener) {\n this.eventHandlers.push([event, val]);\n this.ref.current?.addEventListener(event, val);\n }\n\n // 防止重复处理的标记\n private processingSlots = new Set<string>();\n\n // 处理slot相关的prop\n handleSlotProp(prop: string, val: any) {\n const webComponent = this.ref.current as any;\n if (!webComponent) return;\n\n // 防止重复处理同一个slot\n if (this.processingSlots.has(prop)) {\n return;\n }\n\n // 检查是否需要更新(避免相同内容的重复渲染)\n const currentRenderer = this.slotRenderers.get(prop);\n if (currentRenderer && this.isSameReactElement(prop, val)) {\n return; // 相同内容,跳过更新\n }\n\n // 标记正在处理\n this.processingSlots.add(prop);\n\n // 立即缓存新元素,防止重复调用\n if (isValidReactNode(val)) {\n this.lastRenderedElements.set(prop, val);\n }\n\n // 清理旧的渲染器\n if (currentRenderer) {\n this.cleanupSlotRenderer(prop);\n }\n\n // 如果val是函数,为WebComponent提供一个函数,该函数返回渲染后的DOM\n if (typeof val === 'function') {\n const renderSlot = (params?: any) => {\n const reactNode = val(params);\n return this.renderReactNodeToSlot(reactNode, prop);\n };\n webComponent[prop] = renderSlot;\n // 函数类型处理完成后立即移除标记\n this.processingSlots.delete(prop);\n }\n // 如果val是ReactNode,直接渲染到slot\n else if (isValidReactNode(val)) {\n // 先设置属性,让组件知道这个prop有值\n webComponent[prop] = true;\n\n // 使用微任务延迟渲染,确保在当前渲染周期完成后执行\n Promise.resolve().then(() => {\n if (webComponent.update) {\n webComponent.update();\n }\n this.renderReactNodeToSlot(val, prop);\n // 渲染完成后移除处理标记\n this.processingSlots.delete(prop);\n });\n }\n }\n\n // 清理slot渲染器的统一方法\n private cleanupSlotRenderer(slotName: string) {\n const renderer = this.slotRenderers.get(slotName);\n if (!renderer) return;\n\n // 立即清理DOM容器\n this.clearSlotContainers(slotName);\n\n // 总是异步清理React渲染器,避免竞态条件\n Promise.resolve().then(() => {\n this.safeCleanupRenderer(renderer);\n });\n\n this.slotRenderers.delete(slotName);\n }\n\n // 安全清理渲染器\n // eslint-disable-next-line class-methods-use-this\n private safeCleanupRenderer(cleanup: () => void) {\n try {\n cleanup();\n } catch (error) {\n console.warn('Error cleaning up React renderer:', error);\n }\n }\n\n // 立即清理指定slot的所有容器\n private clearSlotContainers(slotName: string) {\n const webComponent = this.ref.current;\n if (!webComponent) return;\n\n // 查找并移除所有匹配的slot容器\n const containers = webComponent.querySelectorAll(`[slot=\"${slotName}\"]`);\n containers.forEach((container: Element) => {\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n }\n });\n }\n\n // 缓存最后渲染的React元素,用于比较\n private lastRenderedElements = new Map<string, any>();\n\n // 检查是否是相同的React元素\n private isSameReactElement(prop: string, val: any): boolean {\n const lastElement = this.lastRenderedElements.get(prop);\n\n if (!lastElement || !isValidReactNode(val)) {\n return false;\n }\n\n // 简单比较:如果是相同的React元素引用,则认为相同\n if (lastElement === val) {\n return true;\n }\n\n // 对于React元素,比较type、key和props\n if (React.isValidElement(lastElement) && React.isValidElement(val)) {\n const typeMatch = lastElement.type === val.type;\n const keyMatch = lastElement.key === val.key;\n const propsMatch = JSON.stringify(lastElement.props) === JSON.stringify(val.props);\n return typeMatch && keyMatch && propsMatch;\n }\n\n return false;\n }\n\n // 将React节点渲染到slot中\n renderReactNodeToSlot(reactNode: React.ReactNode, slotName: string) {\n const webComponent = this.ref.current;\n if (!webComponent) return;\n\n // 检查是否已经有相同的slot容器存在,避免重复创建\n const existingContainers = webComponent.querySelectorAll(`[slot=\"${slotName}\"]`);\n if (existingContainers.length > 0) {\n return;\n }\n\n // 直接创建容器并添加到Web Component中\n const container = document.createElement('div');\n container.style.display = 'contents'; // 不影响布局\n container.setAttribute('slot', slotName); // 设置slot属性,Web Components会自动处理\n\n // 将容器添加到Web Component中\n webComponent.appendChild(container);\n\n // 根据不同类型的reactNode创建不同的清理函数\n let cleanupFn: (() => void) | null = null;\n\n if (isValidReactNode(reactNode)) {\n if (React.isValidElement(reactNode)) {\n try {\n const renderer = createRenderer(container);\n renderer.render(reactNode);\n cleanupFn = () => {\n try {\n renderer.unmount();\n } catch (error) {\n console.warn('Error unmounting React renderer:', error);\n }\n };\n } catch (error) {\n console.warn('Error creating React renderer:', error);\n }\n } else if (typeof reactNode === 'string' || typeof reactNode === 'number') {\n container.textContent = String(reactNode);\n cleanupFn = () => {\n container.textContent = '';\n };\n } else if (Array.isArray(reactNode)) {\n try {\n const renderer = createRenderer(container);\n const wrapper = React.createElement(\n 'div',\n { style: { display: 'contents' } },\n ...reactNode.filter(isValidReactNode),\n );\n renderer.render(wrapper);\n cleanupFn = () => {\n try {\n renderer.unmount();\n } catch (error) {\n console.warn('Error unmounting React renderer:', error);\n }\n };\n } catch (error) {\n console.warn('Error creating React renderer for array:', error);\n }\n }\n }\n\n // 保存cleanup函数\n this.slotRenderers.set(slotName, () => {\n // 清理缓存\n this.lastRenderedElements.delete(slotName);\n // 异步unmount避免竞态条件\n Promise.resolve().then(() => {\n if (cleanupFn) {\n cleanupFn();\n }\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n }\n });\n });\n }\n\n update() {\n this.clearEventHandlers();\n if (!this.ref.current) return;\n\n Object.entries(this.props).forEach(([prop, val]) => {\n if (['innerRef', 'children'].includes(prop)) return;\n\n // event handler\n if (typeof val === 'function' && prop.match(/^on[A-Za-z]/)) {\n const eventName = prop.slice(2);\n const omiEventName = eventName[0].toLowerCase() + eventName.slice(1);\n this.setEvent(omiEventName, val as EventListener);\n return;\n }\n\n // render functions or slot props\n if (typeof val === 'function' && prop.match(/^render[A-Za-z]/)) {\n this.handleSlotProp(prop, val);\n return;\n }\n\n // 检查是否是slot prop(通过组件的slotProps静态属性或Slot后缀)\n if (isReactElement(val) && !prop.match(/^on[A-Za-z]/) && !prop.match(/^render[A-Za-z]/)) {\n const componentClass = this.ref.current?.constructor as any;\n const declaredSlots = componentClass?.slotProps || [];\n\n if (declaredSlots.includes(prop) || prop.endsWith('Slot')) {\n this.handleSlotProp(prop, val);\n return;\n }\n }\n\n // Complex object处理\n if (typeof val === 'object' && val !== null) {\n // style特殊处理\n if (prop === 'style') {\n this.ref.current?.setAttribute('style', styleObjectToString(val));\n return;\n }\n // 其他复杂对象直接设置为属性\n (this.ref.current as any)[prop] = val;\n return;\n }\n\n // 函数类型但不是事件处理器也不是render函数的,直接设置为属性\n if (typeof val === 'function') {\n (this.ref.current as any)[prop] = val;\n return;\n }\n\n // camel case to kebab-case for attributes\n if (prop.match(hyphenateRE)) {\n this.ref.current?.setAttribute(hyphenate(prop), val);\n this.ref.current?.removeAttribute(prop);\n return;\n }\n if (!isReact19Plus()) {\n (this.ref.current as any)[prop] = val;\n }\n });\n }\n\n componentDidUpdate() {\n this.update();\n }\n\n componentDidMount() {\n this.update();\n }\n\n componentWillUnmount() {\n this.clearEventHandlers();\n this.clearSlotRenderers();\n }\n\n clearEventHandlers() {\n this.eventHandlers.forEach(([event, handler]) => {\n this.ref.current?.removeEventListener(event, handler);\n });\n this.eventHandlers = [];\n }\n\n clearSlotRenderers() {\n this.slotRenderers.forEach((cleanup) => {\n this.safeCleanupRenderer(cleanup);\n });\n this.slotRenderers.clear();\n this.processingSlots.clear();\n }\n\n render() {\n const { children, className, ...rest } = this.props;\n\n return createElement(WC, { class: className, ...rest, ref: this.ref }, children);\n }\n }\n\n return forwardRef<HTMLElement, AnyProps>((props, ref) =>\n createElement(Reactify, { ...props, innerRef: ref }),\n ) as React.ForwardRefExoticComponent<Omit<T, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;\n};\n\nexport default reactify;\n"],"names":["isReact18Plus","createRoot","isReact19Plus","majorVersion","parseInt","React","version","split","rootCache","WeakMap","createRenderer","container","cached","get","root","set","render","element","lastElement","unmount","ReactDOM","unmountComponentAtNode","isReactElement","obj","_typeof","$$typeof","toString","includes","isValidReactNode","node","Array","isArray","hyphenateRE","hyphenate","str","replace","toLowerCase","styleObjectToString","style","unitlessKeys","Set","Object","entries","filter","_ref","_ref2","_slicedToArray","value","map","_ref3","_ref4","key","cssKey","m","concat","cssValue","has","join","reactify","WC","Reactify","props","_this","_classCallCheck","_callSuper","_defineProperty","Map","eventHandlers","slotRenderers","innerRef","ref","createRef","_inherits","_Component","_createClass","setEvent","event","val","_this$ref$current","push","current","addEventListener","handleSlotProp","prop","_this2","webComponent","processingSlots","currentRenderer","isSameReactElement","add","lastRenderedElements","cleanupSlotRenderer","renderSlot","params","reactNode","renderReactNodeToSlot","Promise","resolve","then","update","slotName","_this3","renderer","clearSlotContainers","safeCleanupRenderer","cleanup","error","console","warn","containers","querySelectorAll","forEach","parentNode","removeChild","isValidElement","typeMatch","type","keyMatch","propsMatch","JSON","stringify","_this4","existingContainers","length","document","createElement","display","setAttribute","appendChild","cleanupFn","textContent","String","wrapper","apply","_toConsumableArray","_this5","clearEventHandlers","_ref5","_ref6","match","eventName","slice","omiEventName","_this5$ref$current","componentClass","constructor","declaredSlots","slotProps","endsWith","_this5$ref$current2","_this5$ref$current3","_this5$ref$current4","removeAttribute","componentDidUpdate","componentDidMount","componentWillUnmount","clearSlotRenderers","_this6","_ref7","_this6$ref$current","_ref8","handler","removeEventListener","_this7","clear","_this$props","children","className","rest","_objectWithoutProperties","_excluded","_objectSpread","Component","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"reactify.js","sources":["../../../pro-components/chat/_util/reactify.tsx"],"sourcesContent":["import React, { Component, createRef, createElement, forwardRef } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\n\ntype AnyProps = {\n [key: string]: any;\n};\n\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (string: string) => string.replace(hyphenateRE, '-$1').toLowerCase();\n\nconst styleObjectToString = (style: any) => {\n if (!style) return '';\n if (typeof style === 'string') return style;\n return Object.keys(style)\n .reduce((acc: string[], key) => {\n const value = style[key];\n const cssKey = key.replace(hyphenateRE, '-$1').toLowerCase();\n return acc.concat(`${cssKey}:${value}`);\n }, [])\n .join(';');\n};\n\nconst isReactElement = (node: any): boolean => {\n return React.isValidElement(node);\n};\n\nconst isValidReactNode = (node: any): node is React.ReactNode =>\n node !== null &&\n node !== undefined &&\n (typeof node === 'string' ||\n typeof node === 'number' ||\n typeof node === 'boolean' ||\n isReactElement(node) ||\n Array.isArray(node));\n\nconst isReact19Plus = () => {\n const version = React.version.split('.')[0];\n return parseInt(version, 10) >= 19;\n};\n\nconst reactify = <T extends AnyProps = AnyProps>(\n WC: string,\n): React.ForwardRefExoticComponent<React.PropsWithoutRef<T> & React.RefAttributes<HTMLElement>> => {\n class Reactify extends Component<T> {\n eventHandlers: [string, EventListener][];\n\n // 使用 Map 缓存每个 slot 的 React Root 实例\n slotInstances: Map<\n string,\n {\n root: Root;\n container: HTMLElement;\n }\n >;\n\n ref: React.RefObject<HTMLElement>;\n\n constructor(props: T) {\n super(props);\n this.eventHandlers = [];\n this.slotInstances = new Map();\n const { innerRef } = props;\n this.ref = innerRef || createRef();\n }\n\n setEvent(event: string, val: EventListener) {\n this.eventHandlers.push([event, val]);\n this.ref.current?.addEventListener(event, val);\n }\n\n // 处理slot相关的prop\n handleSlotProp(prop: string, val: any) {\n const webComponent = this.ref.current as any;\n if (!webComponent) return;\n\n // 如果val是函数,为WebComponent提供一个函数,该函数返回渲染后的DOM\n if (typeof val === 'function') {\n const renderSlot = (params?: any) => {\n const reactNode = val(params);\n // 函数式 slot 每次调用可能产生新内容,这里简化处理,\n // 实际场景中可能需要更复杂的挂载逻辑,或者 WebComponent 内部处理了 DOM 挂载\n // 这里保持原逻辑或根据 WebComponent 行为调整\n return this.renderReactNodeToSlot(reactNode, prop);\n };\n webComponent[prop] = renderSlot;\n }\n // 如果val是ReactNode,直接渲染到slot\n else if (isValidReactNode(val)) {\n // 先设置属性,让组件知道这个prop有值\n webComponent[prop] = true;\n\n // 使用微任务延迟渲染,确保在当前渲染周期完成后执行\n Promise.resolve().then(() => {\n if (webComponent.update) {\n webComponent.update();\n }\n this.renderReactNodeToSlot(val, prop);\n });\n } else {\n this.cleanupSlotRenderer(prop);\n }\n }\n\n // 清理slot渲染器的统一方法\n private cleanupSlotRenderer(slotName: string) {\n const instance = this.slotInstances.get(slotName);\n if (instance) {\n // React 18 使用 root.unmount()\n setTimeout(() => {\n instance.root.unmount();\n }, 0);\n\n if (instance.container.parentNode === this.ref.current) {\n this.ref.current?.removeChild(instance.container);\n }\n this.slotInstances.delete(slotName);\n }\n }\n\n // 将React节点渲染到slot中\n renderReactNodeToSlot(reactNode: React.ReactNode, slotName: string) {\n const webComponent = this.ref.current;\n if (!webComponent) return;\n\n let instance = this.slotInstances.get(slotName);\n\n if (!instance) {\n // 检查是否已经有相同的slot容器存在\n let container = webComponent.querySelector(`[slot=\"${slotName}\"]`) as HTMLElement;\n if (!container) {\n container = document.createElement('div');\n container.style.display = 'contents';\n container.setAttribute('slot', slotName);\n webComponent.appendChild(container);\n }\n\n // 创建 React Root\n const root = createRoot(container);\n\n instance = {\n container,\n root,\n };\n this.slotInstances.set(slotName, instance);\n }\n\n // 复用 root 进行增量更新,React 会自动处理 Diff,避免 DOM 销毁重建\n instance.root.render(reactNode);\n }\n\n update() {\n this.clearEventHandlers();\n if (!this.ref.current) return;\n\n Object.entries(this.props).forEach(([prop, val]) => {\n if (['innerRef', 'children'].includes(prop)) return;\n\n // event handler\n if (typeof val === 'function' && prop.match(/^on[A-Za-z]/)) {\n const eventName = prop.slice(2);\n const omiEventName = eventName[0].toLowerCase() + eventName.slice(1);\n this.setEvent(omiEventName, val as EventListener);\n return;\n }\n\n // 检查是否是slot prop\n if (isReactElement(val) && !prop.match(/^on[A-Za-z]/)) {\n const componentClass = this.ref.current?.constructor as any;\n const declaredSlots = componentClass?.slotProps || [];\n\n if (declaredSlots.includes(prop) || prop.endsWith('Slot')) {\n this.handleSlotProp(prop, val);\n return;\n }\n }\n\n // Complex object处理\n if (typeof val === 'object' && val !== null) {\n // style特殊处理\n if (prop === 'style') {\n this.ref.current?.setAttribute('style', styleObjectToString(val));\n return;\n }\n // 其他复杂对象直接设置为属性\n (this.ref.current as any)[prop] = val;\n return;\n }\n\n // 函数类型但不是事件处理器也不是render函数的,直接设置为属性\n if (typeof val === 'function') {\n (this.ref.current as any)[prop] = val;\n return;\n }\n\n // camel case to kebab-case for attributes\n if (prop.match(hyphenateRE)) {\n this.ref.current?.setAttribute(hyphenate(prop), val);\n this.ref.current?.removeAttribute(prop);\n return;\n }\n if (!isReact19Plus()) {\n (this.ref.current as any)[prop] = val;\n }\n });\n }\n\n componentDidUpdate() {\n this.update();\n }\n\n componentDidMount() {\n this.update();\n }\n\n componentWillUnmount() {\n this.clearEventHandlers();\n this.clearSlotInstances();\n }\n\n clearEventHandlers() {\n this.eventHandlers.forEach(([event, handler]) => {\n this.ref.current?.removeEventListener(event, handler);\n });\n this.eventHandlers = [];\n }\n\n clearSlotInstances() {\n this.slotInstances.forEach((instance) => {\n // 卸载时清理\n setTimeout(() => {\n instance.root.unmount();\n }, 0);\n });\n this.slotInstances.clear();\n }\n\n render() {\n const { children, className, ...rest } = this.props;\n return createElement(WC, { class: className, ...rest, ref: this.ref }, children);\n }\n }\n\n return forwardRef<HTMLElement, T>((props, ref) =>\n createElement(Reactify, { ...props, innerRef: ref } as T & { innerRef: React.ForwardedRef<HTMLElement> }),\n );\n};\n\nexport default reactify;\n"],"names":["hyphenateRE","hyphenate","string","replace","toLowerCase","styleObjectToString","style","Object","keys","reduce","acc","key","value","cssKey","concat","join","isReactElement","node","React","isValidElement","isValidReactNode","Array","isArray","isReact19Plus","version","split","parseInt","reactify","WC","Reactify","props","_this","_classCallCheck","_callSuper","eventHandlers","slotInstances","Map","innerRef","ref","createRef","_inherits","_Component","_createClass","setEvent","event","val","_this$ref$current","push","current","addEventListener","handleSlotProp","prop","_this2","webComponent","renderSlot","params","reactNode","renderReactNodeToSlot","Promise","resolve","then","update","cleanupSlotRenderer","slotName","instance","get","setTimeout","root","unmount","container","parentNode","_this$ref$current2","removeChild","querySelector","document","createElement","display","setAttribute","appendChild","createRoot","set","render","_this3","clearEventHandlers","entries","forEach","_ref","_ref2","_slicedToArray","includes","match","eventName","slice","omiEventName","_this3$ref$current","componentClass","constructor","declaredSlots","slotProps","endsWith","_typeof","_this3$ref$current2","_this3$ref$current3","_this3$ref$current4","removeAttribute","componentDidUpdate","componentDidMount","componentWillUnmount","clearSlotInstances","_this4","_ref3","_this4$ref$current","_ref4","handler","removeEventListener","clear","_this$props","children","className","rest","_objectWithoutProperties","_excluded","_objectSpread","Component","forwardRef"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2-alpha.6
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,23 +1,21 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2-alpha.6
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  import 'tdesign-web-components/lib/attachments';
8
8
  import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/defineProperty';
9
10
  import '@babel/runtime/helpers/objectWithoutProperties';
10
- import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/typeof';
12
+ import '@babel/runtime/helpers/slicedToArray';
11
13
  import '@babel/runtime/helpers/classCallCheck';
12
14
  import '@babel/runtime/helpers/createClass';
13
15
  import '@babel/runtime/helpers/possibleConstructorReturn';
14
16
  import '@babel/runtime/helpers/getPrototypeOf';
15
17
  import '@babel/runtime/helpers/inherits';
16
- import '@babel/runtime/helpers/defineProperty';
17
- import '@babel/runtime/helpers/slicedToArray';
18
- import '@babel/runtime/helpers/typeof';
19
18
  import 'react';
20
- import 'react-dom';
21
19
  import 'react-dom/client';
22
20
 
23
21
  var Attachments = reactify("t-attachments");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../pro-components/chat/attachments/index.ts"],"sourcesContent":["import { TdAttachmentsProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/attachments';\nimport reactify from '../_util/reactify';\n\nexport const Attachments: React.ForwardRefExoticComponent<\n Omit<TdAttachmentsProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdAttachmentsProps>('t-attachments');\n\nexport default Attachments;\n\nexport type { TdAttachmentsProps, TdAttachmentItem } from 'tdesign-web-components';\n"],"names":["Attachments","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,eAAe;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/attachments/index.ts"],"sourcesContent":["import { TdAttachmentsProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/attachments';\nimport reactify from '../_util/reactify';\n\nexport const Attachments: React.ForwardRefExoticComponent<\n Omit<TdAttachmentsProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdAttachmentsProps>('t-attachments');\n\nexport default Attachments;\n\nexport type { TdAttachmentsProps, TdAttachmentItem } from 'tdesign-web-components';\n"],"names":["Attachments","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,eAAe;;;;"}
@@ -0,0 +1,2 @@
1
+ export default ChatActionBarExample;
2
+ declare function ChatActionBarExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatActionBarExample;
2
+ declare function ChatActionBarExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatActionBarExample;
2
+ declare function ChatActionBarExample(): import("react/jsx-runtime").JSX.Element;