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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/es/_util/reactify.js +1 -1
  3. package/es/_util/useDynamicStyle.js +1 -1
  4. package/es/attachments/index.js +1 -1
  5. package/es/chat-actionbar/_example-js/base.d.ts +2 -0
  6. package/es/chat-actionbar/_example-js/custom.d.ts +2 -0
  7. package/es/chat-actionbar/_example-js/style.d.ts +2 -0
  8. package/es/chat-actionbar/index.js +1 -1
  9. package/es/chat-attachments/_example-js/base.d.ts +2 -0
  10. package/es/chat-attachments/_example-js/scroll-x.d.ts +2 -0
  11. package/es/chat-attachments/_example-js/scroll-y.d.ts +2 -0
  12. package/es/chat-attachments/index.js +3 -1
  13. package/es/chat-attachments/index.js.map +1 -1
  14. package/es/chat-engine/_example-js/agui-basic.d.ts +10 -0
  15. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +2 -0
  16. package/es/chat-engine/_example-js/agui-test.d.ts +11 -0
  17. package/es/chat-engine/_example-js/agui-toolcall.d.ts +5 -0
  18. package/es/chat-engine/_example-js/agui-videoclip.d.ts +8 -0
  19. package/es/chat-engine/_example-js/agui.d.ts +1 -0
  20. package/es/chat-engine/_example-js/basic.d.ts +9 -0
  21. package/es/chat-engine/_example-js/components/HotelCard.d.ts +3 -0
  22. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +6 -0
  23. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +3 -0
  24. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +3 -0
  25. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +4 -0
  26. package/es/chat-engine/_example-js/components/Toolcall.d.ts +4 -0
  27. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +3 -0
  28. package/es/chat-engine/_example-js/components/login.d.ts +1 -0
  29. package/es/chat-engine/_example-js/comprehensive.d.ts +12 -0
  30. package/es/chat-engine/_example-js/custom-content.d.ts +1 -0
  31. package/es/chat-engine/_example-js/hookComponent.d.ts +1 -0
  32. package/es/chat-engine/_example-js/initial-messages.d.ts +9 -0
  33. package/es/chat-engine/_example-js/instance-methods.d.ts +13 -0
  34. package/es/chat-engine/_example-js/travel-actions.d.ts +91 -0
  35. package/es/chat-engine/_example-js/travelToolcall.d.ts +1 -0
  36. package/es/chat-engine/components/activity/index.js +19 -0
  37. package/es/chat-engine/components/activity/registry.d.ts +44 -0
  38. package/es/{chatbot/components/toolcall → chat-engine/components/activity}/registry.js +32 -22
  39. package/es/chat-engine/components/activity/registry.js.map +1 -0
  40. package/es/chat-engine/components/activity/render.d.ts +15 -0
  41. package/es/chat-engine/components/activity/render.js +117 -0
  42. package/es/chat-engine/components/activity/render.js.map +1 -0
  43. package/es/chat-engine/components/activity/types.d.ts +29 -0
  44. package/es/chat-engine/components/activity/types.js +7 -0
  45. package/es/chat-engine/components/activity/types.js.map +1 -0
  46. package/es/chat-engine/components/index.d.ts +3 -0
  47. package/es/chat-engine/components/index.js +29 -0
  48. package/es/chat-engine/components/index.js.map +1 -0
  49. package/es/chat-engine/components/provider/agent-state.js +1 -1
  50. package/es/chat-engine/components/toolcall/index.js +5 -2
  51. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  52. package/es/chat-engine/components/toolcall/registry.js +1 -1
  53. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  54. package/es/chat-engine/components/toolcall/render.js +72 -26
  55. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  56. package/es/chat-engine/components/toolcall/types.js +1 -1
  57. package/es/chat-engine/hooks/index.d.ts +4 -0
  58. package/es/chat-engine/hooks/index.js +20 -0
  59. package/es/chat-engine/hooks/index.js.map +1 -0
  60. package/es/chat-engine/hooks/useAgentActivity.d.ts +15 -0
  61. package/es/chat-engine/hooks/useAgentActivity.js +73 -0
  62. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -0
  63. package/es/chat-engine/hooks/useAgentState.js +1 -1
  64. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  65. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  66. package/es/chat-engine/hooks/useChat.d.ts +1 -1
  67. package/es/chat-engine/hooks/useChat.js +1 -1
  68. package/es/chat-engine/hooks/useChat.js.map +1 -1
  69. package/es/chat-engine/index.d.ts +2 -2
  70. package/es/chat-engine/index.js +13 -3
  71. package/es/chat-engine/index.js.map +1 -1
  72. package/es/chat-filecard/_example-js/base.d.ts +1 -0
  73. package/es/chat-filecard/index.js +1 -1
  74. package/es/chat-loading/_example-js/base.d.ts +2 -0
  75. package/es/chat-loading/_example-js/text.d.ts +2 -0
  76. package/es/chat-loading/index.js +1 -1
  77. package/es/chat-markdown/_example-js/base.d.ts +1 -0
  78. package/es/chat-markdown/_example-js/custom.d.ts +2 -0
  79. package/es/chat-markdown/_example-js/event.d.ts +1 -0
  80. package/es/chat-markdown/_example-js/footnote.d.ts +2 -0
  81. package/es/chat-markdown/_example-js/plugin.d.ts +2 -0
  82. package/es/chat-markdown/_example-js/theme.d.ts +2 -0
  83. package/es/chat-markdown/index.js +1 -1
  84. package/es/chat-message/_example-js/action.d.ts +1 -0
  85. package/es/chat-message/_example-js/base.d.ts +1 -0
  86. package/es/chat-message/_example-js/configure.d.ts +1 -0
  87. package/es/chat-message/_example-js/content.d.ts +1 -0
  88. package/es/chat-message/_example-js/custom.d.ts +1 -0
  89. package/es/chat-message/_example-js/handle-actions.d.ts +7 -0
  90. package/es/chat-message/_example-js/status.d.ts +1 -0
  91. package/es/chat-message/_example-js/think.d.ts +1 -0
  92. package/es/chat-message/index.js +1 -1
  93. package/es/chat-sender/_example-js/attachment.d.ts +2 -0
  94. package/es/chat-sender/_example-js/base.d.ts +2 -0
  95. package/es/chat-sender/_example-js/custom.d.ts +2 -0
  96. package/es/chat-sender/index.js +1 -1
  97. package/es/chat-thinking/_example-js/base.d.ts +1 -0
  98. package/es/chat-thinking/_example-js/style.d.ts +1 -0
  99. package/es/chat-thinking/index.js +1 -1
  100. package/es/chatbot/_example-js/agent.d.ts +1 -0
  101. package/es/chatbot/_example-js/agui-toolcall.d.ts +11 -0
  102. package/es/chatbot/_example-js/agui.d.ts +13 -0
  103. package/es/chatbot/_example-js/backup/travel.d.ts +1 -0
  104. package/es/chatbot/_example-js/basic.d.ts +1 -0
  105. package/es/chatbot/_example-js/code.d.ts +1 -0
  106. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +3 -0
  107. package/es/chatbot/_example-js/components/login.d.ts +1 -0
  108. package/es/chatbot/_example-js/comprehensive.d.ts +1 -0
  109. package/es/chatbot/_example-js/custom-content.d.ts +1 -0
  110. package/es/chatbot/_example-js/custom-merge.d.ts +1 -0
  111. package/es/chatbot/_example-js/custom.d.ts +1 -0
  112. package/es/chatbot/_example-js/docs.d.ts +1 -0
  113. package/es/chatbot/_example-js/image.d.ts +1 -0
  114. package/es/chatbot/_example-js/initial-messages.d.ts +9 -0
  115. package/es/chatbot/_example-js/instance-methods.d.ts +14 -0
  116. package/es/chatbot/_example-js/nostream.d.ts +1 -0
  117. package/es/chatbot/_example-js/quick-start.d.ts +9 -0
  118. package/es/chatbot/_example-js/research.d.ts +1 -0
  119. package/es/chatbot/_example-js/role-message-config.d.ts +22 -0
  120. package/es/chatbot/_example-js/sender-config.d.ts +20 -0
  121. package/es/chatbot/_example-js/service-config.d.ts +17 -0
  122. package/es/chatbot/_example-js/simple.d.ts +1 -0
  123. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +5 -0
  124. package/es/chatbot/index.js +1 -1
  125. package/es/index.js +8 -1
  126. package/es/index.js.map +1 -1
  127. package/es/style/index.js +1 -1
  128. package/package.json +15 -15
  129. package/es/chatbot/components/provider/agent-state.d.ts +0 -5
  130. package/es/chatbot/components/provider/agent-state.js +0 -28
  131. package/es/chatbot/components/provider/agent-state.js.map +0 -1
  132. package/es/chatbot/components/toolcall/index.js +0 -19
  133. package/es/chatbot/components/toolcall/registry.d.ts +0 -35
  134. package/es/chatbot/components/toolcall/registry.js.map +0 -1
  135. package/es/chatbot/components/toolcall/render.d.ts +0 -13
  136. package/es/chatbot/components/toolcall/render.js +0 -207
  137. package/es/chatbot/components/toolcall/render.js.map +0 -1
  138. package/es/chatbot/components/toolcall/types.d.ts +0 -57
  139. package/es/chatbot/components/toolcall/types.js +0 -15
  140. package/es/chatbot/components/toolcall/types.js.map +0 -1
  141. package/es/chatbot/hooks/useAgentState.d.ts +0 -40
  142. package/es/chatbot/hooks/useAgentState.js +0 -76
  143. package/es/chatbot/hooks/useAgentState.js.map +0 -1
  144. package/es/chatbot/hooks/useAgentToolcall.d.ts +0 -28
  145. package/es/chatbot/hooks/useAgentToolcall.js +0 -78
  146. package/es/chatbot/hooks/useAgentToolcall.js.map +0 -1
  147. package/es/chatbot/hooks/useChat.d.ts +0 -11
  148. package/es/chatbot/hooks/useChat.js +0 -66
  149. package/es/chatbot/hooks/useChat.js.map +0 -1
  150. /package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.d.ts +0 -0
  151. /package/es/{chatbot/components/toolcall → chat-engine/components/activity}/index.js.map +0 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * tdesign v1.0.2
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
+ import { useRef, useCallback, useEffect } from 'react';
9
+ import { activityRegistry } from '../components/activity/registry.js';
10
+ import '@babel/runtime/helpers/classCallCheck';
11
+ import '@babel/runtime/helpers/createClass';
12
+ import '@babel/runtime/helpers/defineProperty';
13
+
14
+ function useAgentActivity(config) {
15
+ var registeredTypesRef = useRef(/* @__PURE__ */new Set());
16
+ var autoRegisteredTypesRef = useRef(/* @__PURE__ */new Set());
17
+ var register = useCallback(function (newConfig) {
18
+ if (!newConfig) {
19
+ console.warn("[useAgentActivity] \u914D\u7F6E\u4E3A\u7A7A\uFF0C\u8DF3\u8FC7\u6CE8\u518C");
20
+ return;
21
+ }
22
+ var configs = Array.isArray(newConfig) ? newConfig : [newConfig];
23
+ configs.forEach(function (cfg) {
24
+ if (activityRegistry.has(cfg.activityType)) {
25
+ console.warn("[useAgentActivity] Activity \u7C7B\u578B \"".concat(cfg.activityType, "\" \u5DF2\u5B58\u5728\u4E8E\u6CE8\u518C\u8868\u4E2D\uFF0C\u5C06\u88AB\u8986\u76D6"));
26
+ }
27
+ activityRegistry.register(cfg);
28
+ registeredTypesRef.current.add(cfg.activityType);
29
+ });
30
+ }, []);
31
+ var unregister = useCallback(function (activityTypes) {
32
+ var typeArray = Array.isArray(activityTypes) ? activityTypes : [activityTypes];
33
+ typeArray.forEach(function (activityType) {
34
+ activityRegistry.unregister(activityType);
35
+ registeredTypesRef.current["delete"](activityType);
36
+ autoRegisteredTypesRef.current["delete"](activityType);
37
+ });
38
+ }, []);
39
+ var isRegistered = useCallback(function (activityType) {
40
+ return registeredTypesRef.current.has(activityType) || autoRegisteredTypesRef.current.has(activityType);
41
+ }, []);
42
+ var getRegistered = useCallback(function () {
43
+ return Array.from(/* @__PURE__ */new Set([].concat(_toConsumableArray(registeredTypesRef.current), _toConsumableArray(autoRegisteredTypesRef.current))));
44
+ }, []);
45
+ useEffect(function () {
46
+ if (!config) {
47
+ return;
48
+ }
49
+ var configs = Array.isArray(config) ? config : [config];
50
+ configs.forEach(function (cfg) {
51
+ if (activityRegistry.has(cfg.activityType)) {
52
+ console.warn("[useAgentActivity] Activity \u7C7B\u578B \"".concat(cfg.activityType, "\" \u5DF2\u5B58\u5728\u4E8E\u6CE8\u518C\u8868\u4E2D\uFF0C\u5C06\u88AB\u8986\u76D6"));
53
+ }
54
+ activityRegistry.register(cfg);
55
+ autoRegisteredTypesRef.current.add(cfg.activityType);
56
+ });
57
+ return function () {
58
+ configs.forEach(function (cfg) {
59
+ activityRegistry.unregister(cfg.activityType);
60
+ autoRegisteredTypesRef.current["delete"](cfg.activityType);
61
+ });
62
+ };
63
+ }, [config]);
64
+ return {
65
+ register: register,
66
+ unregister: unregister,
67
+ isRegistered: isRegistered,
68
+ getRegistered: getRegistered
69
+ };
70
+ }
71
+
72
+ export { useAgentActivity };
73
+ //# sourceMappingURL=useAgentActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAgentActivity.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentActivity.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useCallback, useRef, useEffect } from 'react';\nimport type { ActivityConfig } from '../components/activity/types';\nimport { activityRegistry } from '../components/activity/registry';\n\nexport interface UseAgentActivityReturn {\n register: (config: ActivityConfig | ActivityConfig[]) => void;\n unregister: (activityTypes: string | string[]) => void;\n isRegistered: (activityType: string) => boolean;\n getRegistered: () => string[];\n}\n\n/**\n * Activity 注册管理 Hook,专门用于 Activity 组件的注册管理\n *\n * 支持两种使用模式:\n * 1. 自动注册模式:传入配置,自动注册和清理\n * 2. 手动注册模式:不传配置,返回注册方法由业务控制\n */\nexport function useAgentActivity<TContent = any>(\n config?: ActivityConfig<TContent> | ActivityConfig<TContent>[] | null | undefined,\n): UseAgentActivityReturn {\n const registeredTypesRef = useRef<Set<string>>(new Set());\n const autoRegisteredTypesRef = useRef<Set<string>>(new Set());\n\n // 手动注册方法\n const register = useCallback((newConfig: ActivityConfig | ActivityConfig[]) => {\n if (!newConfig) {\n console.warn('[useAgentActivity] 配置为空,跳过注册');\n return;\n }\n\n const configs = Array.isArray(newConfig) ? newConfig : [newConfig];\n\n configs.forEach((cfg) => {\n if (activityRegistry.has(cfg.activityType)) {\n console.warn(`[useAgentActivity] Activity 类型 \"${cfg.activityType}\" 已存在于注册表中,将被覆盖`);\n }\n\n activityRegistry.register(cfg);\n registeredTypesRef.current.add(cfg.activityType);\n });\n }, []);\n\n // 手动取消注册方法\n const unregister = useCallback((activityTypes: string | string[]) => {\n const typeArray = Array.isArray(activityTypes) ? activityTypes : [activityTypes];\n\n typeArray.forEach((activityType) => {\n activityRegistry.unregister(activityType);\n registeredTypesRef.current.delete(activityType);\n autoRegisteredTypesRef.current.delete(activityType);\n });\n }, []);\n\n // 检查是否已注册\n const isRegistered = useCallback(\n (activityType: string) =>\n registeredTypesRef.current.has(activityType) || autoRegisteredTypesRef.current.has(activityType),\n [],\n );\n\n // 获取所有已注册的 Activity 类型\n const getRegistered = useCallback(\n () => Array.from(new Set([...registeredTypesRef.current, ...autoRegisteredTypesRef.current])),\n [],\n );\n\n // 自动注册逻辑(当传入配置时)\n useEffect(() => {\n if (!config) {\n return;\n }\n\n const configs = Array.isArray(config) ? config : [config];\n\n configs.forEach((cfg) => {\n if (activityRegistry.has(cfg.activityType)) {\n console.warn(`[useAgentActivity] Activity 类型 \"${cfg.activityType}\" 已存在于注册表中,将被覆盖`);\n }\n\n activityRegistry.register(cfg);\n autoRegisteredTypesRef.current.add(cfg.activityType);\n });\n\n // 清理函数:取消注册自动注册的配置\n return () => {\n configs.forEach((cfg) => {\n activityRegistry.unregister(cfg.activityType);\n autoRegisteredTypesRef.current.delete(cfg.activityType);\n });\n };\n }, [config]);\n\n return {\n register,\n unregister,\n isRegistered,\n getRegistered,\n };\n}\n"],"names":["useAgentActivity","config","registeredTypesRef","useRef","Set","autoRegisteredTypesRef","register","useCallback","newConfig","console","warn","configs","Array","isArray","forEach","cfg","activityRegistry","has","activityType","concat","current","add","unregister","activityTypes","typeArray","isRegistered","getRegistered","from","_toConsumableArray","useEffect"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\nimport { stateManager } from 'tdesign-web-components/lib/chat-engine';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"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"}
1
+ {"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\n// import { stateManager } from 'tdesign-web-components/lib/chat-engine';\nimport { stateManager } from 'tdesign-web-components/lib/chat-engine';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -2,7 +2,7 @@ import ChatEngine from 'tdesign-web-components/lib/chat-engine';
2
2
  import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';
3
3
  export type IUseChat = {
4
4
  defaultMessages?: ChatMessagesData[];
5
- chatServiceConfig: ChatServiceConfig;
5
+ chatServiceConfig: ChatServiceConfig | (() => ChatServiceConfig);
6
6
  };
7
7
  export declare const useChat: ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {
8
8
  chatEngine: ChatEngine;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from 'tdesign-web-components/lib/chat-engine';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: ChatServiceConfig;\n};\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n const prevInitialMessagesRef = useRef<ChatMessagesData[]>([]);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n // 清理之前的订阅\n msgSubscribeRef.current?.();\n\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n // 初始化聊天引擎\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // 监听 defaultMessages 变化\n useEffect(() => {\n // 检查 initialMessages 是否真的发生了变化\n const hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);\n\n if (hasChanged && initialMessages && initialMessages.length > 0) {\n // 更新引用\n prevInitialMessagesRef.current = initialMessages;\n\n // 重新初始化聊天引擎或更新消息\n chatEngine.setMessages(initialMessages, 'replace');\n\n // 同步状态\n syncState(initialMessages);\n }\n }, [initialMessages, chatEngine]);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","prevInitialMessagesRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","_msgSubscribeRef$curr","call","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr2","hasChanged","JSON","stringify","length","setMessages"],"mappings":"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"}
1
+ {"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from 'tdesign-web-components/lib/chat-engine';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n// import ChatEngine from 'tdesign-web-components/lib/chat-engine';\n// import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: ChatServiceConfig | (() => ChatServiceConfig);\n};\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n const prevInitialMessagesRef = useRef<ChatMessagesData[]>([]);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n // 清理之前的订阅\n msgSubscribeRef.current?.();\n\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n // 初始化聊天引擎\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // 监听 defaultMessages 变化\n useEffect(() => {\n // 检查 initialMessages 是否真的发生了变化\n const hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);\n\n if (hasChanged && initialMessages && initialMessages.length > 0) {\n // 更新引用\n prevInitialMessagesRef.current = initialMessages;\n\n // 重新初始化聊天引擎或更新消息\n chatEngine.setMessages(initialMessages, 'replace');\n\n // 同步状态\n syncState(initialMessages);\n }\n }, [initialMessages, chatEngine]);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","prevInitialMessagesRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","_msgSubscribeRef$curr","call","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr2","hasChanged","JSON","stringify","length","setMessages"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export * from './hooks/useChat';
2
2
  export * from './hooks/useAgentToolcall';
3
3
  export * from './hooks/useAgentState';
4
- export * from './components/toolcall';
5
- export * from './components/provider/agent-state';
4
+ export * from './hooks/useAgentActivity';
5
+ export * from './components';
6
6
  export * from 'tdesign-web-components/lib/chat-engine';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -7,18 +7,28 @@
7
7
  export { useChat } from './hooks/useChat.js';
8
8
  export { useAgentToolcall } from './hooks/useAgentToolcall.js';
9
9
  export { AgentStateContext, useAgentState, useAgentStateContext, useAgentStateDataByKey } from './hooks/useAgentState.js';
10
- import './components/toolcall/index.js';
11
- export { AgentStateProvider } from './components/provider/agent-state.js';
10
+ export { useAgentActivity } from './hooks/useAgentActivity.js';
11
+ import './components/index.js';
12
12
  export * from 'tdesign-web-components/lib/chat-engine';
13
13
  export { isNonInteractive, isNonInteractiveConfig } from './components/toolcall/types.js';
14
14
  export { agentToolcallRegistry } from './components/toolcall/registry.js';
15
15
  export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 } from './components/toolcall/render.js';
16
+ export { activityRegistry } from './components/activity/registry.js';
17
+ export { ActivityRenderer } from './components/activity/render.js';
18
+ export { AgentStateProvider } from './components/provider/agent-state.js';
16
19
  import '@babel/runtime/helpers/slicedToArray';
17
20
  import 'react';
18
21
  import '@babel/runtime/helpers/toConsumableArray';
19
22
  import '@babel/runtime/helpers/defineProperty';
23
+ import './components/toolcall/index.js';
24
+ import './components/activity/index.js';
25
+ import './components/activity/types.js';
20
26
  import '@babel/runtime/helpers/classCallCheck';
21
27
  import '@babel/runtime/helpers/createClass';
22
28
  import '@babel/runtime/helpers/asyncToGenerator';
29
+ import '@babel/runtime/helpers/possibleConstructorReturn';
30
+ import '@babel/runtime/helpers/getPrototypeOf';
31
+ import '@babel/runtime/helpers/inherits';
23
32
  import '@babel/runtime/regenerator';
33
+ import 'react-fast-compare';
24
34
  //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export default function Cards(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1,2 @@
1
+ export default ChatLoadingExample;
2
+ declare function ChatLoadingExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatLoadingTextExample;
2
+ declare function ChatLoadingTextExample(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1 @@
1
+ export default function ThinkContentDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default MarkdownExample;
2
+ declare function MarkdownExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ThinkContentDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default FootnoteDemo;
2
+ declare function FootnoteDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default MarkdownExample;
2
+ declare function MarkdownExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default MarkdownExample;
2
+ declare function MarkdownExample(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * handleActions 使用示例
3
+ *
4
+ * handleActions 用于处理消息内容中的交互操作,采用对象方式配置。
5
+ * 支持的操作:suggestion(建议问题点击)、searchItem(搜索结果点击)
6
+ */
7
+ export default function HandleActionsExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatMessageExample(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1,2 @@
1
+ export default ChatSenderExample;
2
+ declare function ChatSenderExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatSenderExample;
2
+ declare function ChatSenderExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ChatSenderExample;
2
+ declare function ChatSenderExample(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1 @@
1
+ export default function ThinkContentDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ThinkContentDemo(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -0,0 +1 @@
1
+ export default function ChatBotReact(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AG-UI 协议基础示例(使用 ChatBot 组件)
3
+ *
4
+ * 学习目标:
5
+ * - 使用 ChatBot 组件替代 ChatList + ChatSender 的组合方式
6
+ * - 开启 AG-UI 协议支持(protocol: 'agui')
7
+ * - 理解 AG-UI 协议的自动解析机制
8
+ * - 处理文本消息事件(TEXT_MESSAGE_*)
9
+ * - 通过 slot 渲染自定义 ToolCall 组件
10
+ */
11
+ export default function AguiBasicExample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * AG-UI 协议示例
3
+ *
4
+ * 本示例展示如何使用 AG-UI 协议快速接入聊天服务。
5
+ * AG-UI 是一种标准化的 AI 对话协议,当后端服务符合该协议时,
6
+ * 前端无需编写 onMessage 进行数据转换,大大简化了接入流程。
7
+ * 可以通过查看网络输出的数据流来了解协议格式。
8
+ *
9
+ * 对比说明:
10
+ * - 自定义协议:需要配置 onMessage 进行数据转换(参考 service-config 示例)
11
+ * - AG-UI 协议:只需设置 protocol: 'agui',无需 onMessage
12
+ */
13
+ export default function AguiProtocol(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function TravelPlannerChat(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function ItineraryCard({ plan }: {
2
+ plan: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function BaseForm(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function CustomContent(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function CustomMerge(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function ChatBotReact(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 初始化消息示例
3
+ *
4
+ * 学习目标:
5
+ * - 使用 defaultMessages 设置欢迎语和建议问题
6
+ * - 通过 setMessages 动态加载历史消息
7
+ * - 实现点击建议问题填充输入框
8
+ */
9
+ export default function InitialMessages(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 实例方法示例
3
+ *
4
+ * 学习目标:
5
+ * - 通过 ref 获取组件实例
6
+ * - 调用实例方法控制组件行为
7
+ * - 了解各种实例方法的使用场景
8
+ *
9
+ * 方法分类:
10
+ * 1. 消息设置:sendUserMessage、sendSystemMessage、setMessages
11
+ * 2. 发送控制: addPrompt、regenerate、abortChat、selectFile、scrollList
12
+ * 3. 获取状态
13
+ */
14
+ export default function InstanceMethods(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 快速开始示例
3
+ *
4
+ * 学习目标:
5
+ * - 了解 Chatbot 组件的最小配置
6
+ * - 理解 endpoint 和 onMessage 的作用
7
+ * - 实现一个基于SSE流式传输的最简可用的对话界面
8
+ */
9
+ export default function QuickStart(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function chatSample(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 角色消息配置示例
3
+ *
4
+ * 本示例展示如何通过 messageProps 配置不同角色的消息展示效果。
5
+ * messageProps 会透传给内部的 ChatMessage 组件,用于控制消息的渲染和交互。
6
+ *
7
+ * 配置内容包括:
8
+ * - 消息样式配置(气泡样式、位置、头像、昵称等)
9
+ * - 消息操作按钮配置(复制、点赞、点踩、重试)
10
+ * - 内容类型展示配置(思考过程、搜索结果、Markdown 等)
11
+ * - 静态配置 vs 动态配置的使用场景
12
+ *
13
+ * 学习目标:
14
+ * - 掌握 messageProps 动态配置函数的使用方式
15
+ * - 了解如何根据消息内容、状态动态调整配置
16
+ * - 学会配置消息操作按钮及其回调
17
+ * - 学会使用 chatContentProps 控制内容展示行为
18
+ *
19
+ * 相关文档:
20
+ * - ChatMessage 组件详细文档:https://tdesign.tencent.com/react-chat/components/chat-message
21
+ */
22
+ export default function RoleMessageConfig(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 输入配置示例
3
+ *
4
+ * 本示例展示如何通过 senderProps 配置输入框的基础行为。
5
+ * senderProps 会透传给内部的 ChatSender 组件,用于控制输入框的功能和交互。
6
+ *
7
+ * 配置内容包括:
8
+ * - 输入框基础配置(占位符、自动高度等)
9
+ * - 附件上传配置(文件类型、附件展示等)
10
+ * - 输入事件回调(输入、聚焦、失焦等)
11
+ *
12
+ * 学习目标:
13
+ * - 掌握 senderProps 的常用配置项
14
+ * - 了解如何处理附件上传
15
+ * - 学会处理输入事件
16
+ *
17
+ * 相关文档:
18
+ * - ChatSender 组件详细文档:https://tdesign.tencent.com/react-chat/components/chat-sender
19
+ */
20
+ export default function SenderConfig(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 自定义协议配置示例
3
+ *
4
+ * 本示例展示如何配置自定义协议的聊天服务。
5
+ * 当后端服务使用自定义数据格式时,需要通过 onMessage 进行数据转换。
6
+ *
7
+ * 配置内容包括:
8
+ * - 请求配置(endpoint、onRequest返回请求头、请求参数)
9
+ * - 数据转换(onMessage:将后端数据转换为组件所需格式)
10
+ * - 生命周期回调(onStart、onComplete、onError、onAbort)
11
+ *
12
+ * 学习目标:
13
+ * - 掌握 chatServiceConfig 的核心配置项
14
+ * - 理解 onMessage 的数据转换逻辑(自定义协议必需)
15
+ * - 学会使用生命周期回调处理不同阶段的业务逻辑
16
+ */
17
+ export default function ServiceConfig(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function CompositeChat(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export function renderMessageContent({ item, index, message }: {
2
+ item: any;
3
+ index: any;
4
+ message: any;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.0
2
+ * tdesign v1.0.2
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */