@ai-group/chat-sdk 3.5.13 → 3.6.0

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 (38) hide show
  1. package/dist/cjs/components/FileGallery/index.js +1 -1
  2. package/dist/cjs/components/FileGallery/index.js.map +1 -1
  3. package/dist/cjs/components/FolderTree/styles.js +4 -1
  4. package/dist/cjs/components/FolderTree/styles.js.map +2 -2
  5. package/dist/cjs/components/XAdkProvider/index.js +2 -0
  6. package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
  7. package/dist/cjs/components/XAdkThoughtChain/index.js +75 -39
  8. package/dist/cjs/components/XAdkThoughtChain/index.js.map +2 -2
  9. package/dist/cjs/components/XAdkThoughtChain/styles.js +27 -26
  10. package/dist/cjs/components/XAdkThoughtChain/styles.js.map +2 -2
  11. package/dist/cjs/index.d.ts +2 -1
  12. package/dist/cjs/index.js +9 -0
  13. package/dist/cjs/index.js.map +2 -2
  14. package/dist/cjs/styles/tokens.d.ts +27 -0
  15. package/dist/cjs/styles/tokens.js +72 -0
  16. package/dist/cjs/styles/tokens.js.map +7 -0
  17. package/dist/cjs/types/XAdkThoughtChain.d.ts +13 -0
  18. package/dist/cjs/types/XAdkThoughtChain.js.map +1 -1
  19. package/dist/esm/components/FileGallery/index.js +1 -1
  20. package/dist/esm/components/FileGallery/index.js.map +1 -1
  21. package/dist/esm/components/FolderTree/styles.js +2 -2
  22. package/dist/esm/components/FolderTree/styles.js.map +1 -1
  23. package/dist/esm/components/XAdkProvider/index.js +3 -2
  24. package/dist/esm/components/XAdkProvider/index.js.map +1 -1
  25. package/dist/esm/components/XAdkThoughtChain/index.js +100 -50
  26. package/dist/esm/components/XAdkThoughtChain/index.js.map +1 -1
  27. package/dist/esm/components/XAdkThoughtChain/styles.js +20 -19
  28. package/dist/esm/components/XAdkThoughtChain/styles.js.map +1 -1
  29. package/dist/esm/index.d.ts +2 -1
  30. package/dist/esm/index.js +3 -0
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/styles/tokens.d.ts +27 -0
  33. package/dist/esm/styles/tokens.js +42 -0
  34. package/dist/esm/styles/tokens.js.map +1 -0
  35. package/dist/esm/types/XAdkThoughtChain.d.ts +13 -0
  36. package/dist/esm/types/XAdkThoughtChain.js.map +1 -1
  37. package/dist/umd/chat-sdk.min.js +1 -1
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useImperativeHandle","useMemo","ConfigProvider","XProvider","ChatStateContext","ChatActionContext","SessionContext","useADKChat","primaryBlue","mergeChatStrategies","resolvePresetUploadRequest","XAdkProviderComponent","_ref","ref","_config$showFeedback","_config$uploadRequest","_ref$url","url","window","location","origin","token","config","preset","strategies","chatData","_ref$providerId","providerId","onSuccess","onError","onMessage","onStream","children","mergedStrategies","_objectSpread","internalData","enabled","data","appInfo","startChat","stopChat","reChat","clearChat","suggestChat","confirmFnCall","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","prologue","suggestions","initialized","setCurrentSession","setMessages","_data$likeMessage","likeMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","_data$setStateDelta","setStateDelta","showFeedback","onFileClick","presetUploadRequest","appNo","uploadRequest","getAppInfo","getMessages","getSessions","chatStateValue","chatActionValue","chat","sessionValue","_jsx","theme","colorPrimary","appTheme","Provider","value","style","display","height","width","position","displayName","Header","Sidebar","Messages","Sender","Chatbot","Welcome","DefaultLayout","jsx","XAdkProvider"],"sources":["../../../../src/components/XAdkProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useMemo } from \"react\";\nimport { ConfigProvider } from \"antd\";\nimport { XProvider } from \"@ant-design/x\";\nimport { ChatStateContext } from \"./context/ChatStateContext\";\nimport { ChatActionContext } from \"./context/ChatActionContext\";\nimport { SessionContext } from \"./context/SessionContext\";\nimport useADKChat from \"@/hooks/useADKChat\";\nimport { primaryBlue } from \"@/styles/common\";\nimport type {\n XAdkProviderProps,\n XAdkProviderHandle,\n XAdkProviderConfig,\n} from \"@/types/XAdkProvider\";\nimport type { ChatHookResult } from \"@/types/ChatHook\";\nimport {\n mergeChatStrategies,\n resolvePresetUploadRequest,\n} from \"@/presets/xGroupAdk\";\n\n/**\n * XAdkProvider Props (扩展版)\n *\n * 支持两种使用方式:\n * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat\n * 2. 自定义协议: 提供 chatData,使用自己的 Hook\n */\nexport interface XAdkProviderPropsExtended extends Omit<\n XAdkProviderProps,\n \"url\" | \"token\" | \"config\"\n> {\n /**\n * 选项 A: 使用标准协议 (内置 useADKChat)\n */\n url?: string;\n token: string;\n config?: XAdkProviderConfig;\n\n /**\n * 选项 B: 使用自定义 Hook 数据\n * 如果提供此参数,将忽略 url/token/config\n *\n * @example\n * // GraphQL 协议\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n *\n * @example\n * // WebSocket 协议\n * const chatData = useWebSocketChat({ url: 'ws://...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n */\n chatData?: ChatHookResult;\n\n children: React.ReactNode;\n}\n\n/**\n * XAdkProvider - AI 聊天 SDK 核心 Provider\n *\n * 采用 Compound Components 架构:\n * - 只负责数据和状态管理\n * - 不包含 UI 布局\n * - 通过 Context 向子组件提供数据\n * - 支持完全自定义的组件组合\n * - 支持协议解耦,可使用自定义 Hook\n *\n * @example\n * // 基础用法 - 标准协议\n * <XAdkProvider url=\"...\" token=\"...\" config={...}>\n * <XAdkProvider.Chatbot />\n * </XAdkProvider>\n *\n * @example\n * // 自定义协议 - GraphQL\n * function App() {\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * return (\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n * );\n * }\n *\n * @example\n * // 自定义布局\n * <XAdkProvider url=\"...\" token=\"...\">\n * <div style={{ display: 'flex' }}>\n * <XAdkProvider.Sidebar />\n * <div>\n * <XAdkProvider.Messages />\n * <XAdkProvider.Sender />\n * </div>\n * </div>\n * </XAdkProvider>\n */\nconst XAdkProviderComponent = forwardRef<\n XAdkProviderHandle,\n XAdkProviderPropsExtended\n>(\n (\n {\n url = window.location.origin,\n token,\n config,\n preset,\n strategies,\n chatData, // 自定义 Hook 数据\n providerId = \"defaultId\",\n onSuccess,\n onError,\n onMessage,\n onStream,\n children,\n },\n ref,\n ) => {\n const mergedStrategies = useMemo(\n () =>\n mergeChatStrategies(\n preset ?? config?.preset,\n {\n ...config?.strategies,\n ...strategies,\n },\n ),\n [preset, strategies, config?.preset, config?.strategies],\n );\n\n // 内置 Hook 数据 (仅在没有提供 chatData 时调用)\n const internalData = useADKChat({\n url,\n token: token || \"\",\n config: config || {},\n strategies: mergedStrategies,\n onError,\n onSuccess,\n onMessage,\n onStream,\n // 仅在提供了 url 和 token 时才初始化\n enabled: !chatData && !!url && !!token,\n });\n\n // 使用外部数据或内部数据\n const data = chatData || internalData;\n\n // 解构数据\n const {\n appInfo,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n setCurrentSession,\n setMessages,\n likeMessage = async () => false,\n setStateDelta = () => {},\n } = data;\n\n const showFeedback = config?.showFeedback ?? true;\n const onFileClick = config?.onFileClick;\n const presetUploadRequest = useMemo(\n () =>\n resolvePresetUploadRequest(preset ?? config?.preset, {\n url,\n token,\n appNo: config?.appNo,\n }),\n [preset, config?.preset, url, token, config?.appNo],\n );\n const uploadRequest = config?.uploadRequest ?? presetUploadRequest;\n\n // 暴露 API 给 ref\n useImperativeHandle(\n ref,\n () => ({\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSession,\n setStateDelta,\n }),\n [\n appInfo,\n messages,\n sessionList,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setMessages,\n setCurrentSession,\n setStateDelta,\n ],\n );\n\n // 状态 Context Value - 使用 useMemo 避免不必要的 rerender\n const chatStateValue = useMemo(\n () => ({\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n onFileClick,\n uploadRequest,\n strategies: mergedStrategies,\n }),\n [\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n showFeedback,\n onFileClick,\n uploadRequest,\n mergedStrategies,\n ],\n );\n\n // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象\n const chatActionValue = useMemo(\n () => ({\n chat: startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n }),\n [\n startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n ],\n );\n\n // 会话 Context Value\n const sessionValue = useMemo(\n () => ({\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n }),\n [\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n ],\n );\n\n return (\n <ConfigProvider\n theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <ChatStateContext.Provider value={chatStateValue}>\n <ChatActionContext.Provider value={chatActionValue}>\n <SessionContext.Provider value={sessionValue}>\n <div\n style={{\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {children}\n </div>\n </SessionContext.Provider>\n </ChatActionContext.Provider>\n </ChatStateContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n },\n);\n\nXAdkProviderComponent.displayName = \"XAdkProvider\";\n\n// 导入 Compound Components\nimport Header from \"./compound/Header\";\nimport Sidebar from \"./compound/Sidebar\";\nimport Messages from \"./compound/Messages\";\nimport Sender from \"./compound/Sender\";\nimport Chatbot from \"./compound/Chatbot\";\nimport Welcome from \"./compound/Welcome\";\nimport DefaultLayout from \"./compound/DefaultLayout\";\n\n// 导出时会挂载 Compound Components\nconst XAdkProvider = XAdkProviderComponent as typeof XAdkProviderComponent & {\n Header: typeof Header;\n Sidebar: typeof Sidebar;\n Messages: typeof Messages;\n Sender: typeof Sender;\n Chatbot: typeof Chatbot;\n Welcome: typeof Welcome;\n DefaultLayout: typeof DefaultLayout;\n};\n\n// 挂载 Compound Components\nXAdkProvider.Header = Header;\nXAdkProvider.Sidebar = Sidebar;\nXAdkProvider.Messages = Messages;\nXAdkProvider.Sender = Sender;\nXAdkProvider.Chatbot = Chatbot;\nXAdkProvider.DefaultLayout = DefaultLayout;\nXAdkProvider.Welcome = Welcome;\n\nexport default XAdkProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","useImperativeHandle","useMemo","ConfigProvider","XProvider","ChatStateContext","ChatActionContext","SessionContext","useADKChat","primaryBlue","cssVarStyle","mergeChatStrategies","resolvePresetUploadRequest","XAdkProviderComponent","_ref","ref","_config$showFeedback","_config$uploadRequest","_ref$url","url","window","location","origin","token","config","preset","strategies","chatData","_ref$providerId","providerId","onSuccess","onError","onMessage","onStream","children","mergedStrategies","_objectSpread","internalData","enabled","data","appInfo","startChat","stopChat","reChat","clearChat","suggestChat","confirmFnCall","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","prologue","suggestions","initialized","setCurrentSession","setMessages","_data$likeMessage","likeMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","_data$setStateDelta","setStateDelta","showFeedback","onFileClick","presetUploadRequest","appNo","uploadRequest","getAppInfo","getMessages","getSessions","chatStateValue","chatActionValue","chat","sessionValue","_jsx","theme","colorPrimary","appTheme","Provider","value","style","display","height","width","position","displayName","Header","Sidebar","Messages","Sender","Chatbot","Welcome","DefaultLayout","jsx","XAdkProvider"],"sources":["../../../../src/components/XAdkProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useMemo } from \"react\";\nimport { ConfigProvider } from \"antd\";\nimport { XProvider } from \"@ant-design/x\";\nimport { ChatStateContext } from \"./context/ChatStateContext\";\nimport { ChatActionContext } from \"./context/ChatActionContext\";\nimport { SessionContext } from \"./context/SessionContext\";\nimport useADKChat from \"@/hooks/useADKChat\";\nimport { primaryBlue } from \"@/styles/common\";\nimport { cssVarStyle } from \"@/styles/tokens\";\nimport type {\n XAdkProviderProps,\n XAdkProviderHandle,\n XAdkProviderConfig,\n} from \"@/types/XAdkProvider\";\nimport type { ChatHookResult } from \"@/types/ChatHook\";\nimport {\n mergeChatStrategies,\n resolvePresetUploadRequest,\n} from \"@/presets/xGroupAdk\";\n\n/**\n * XAdkProvider Props (扩展版)\n *\n * 支持两种使用方式:\n * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat\n * 2. 自定义协议: 提供 chatData,使用自己的 Hook\n */\nexport interface XAdkProviderPropsExtended extends Omit<\n XAdkProviderProps,\n \"url\" | \"token\" | \"config\"\n> {\n /**\n * 选项 A: 使用标准协议 (内置 useADKChat)\n */\n url?: string;\n token: string;\n config?: XAdkProviderConfig;\n\n /**\n * 选项 B: 使用自定义 Hook 数据\n * 如果提供此参数,将忽略 url/token/config\n *\n * @example\n * // GraphQL 协议\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n *\n * @example\n * // WebSocket 协议\n * const chatData = useWebSocketChat({ url: 'ws://...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n */\n chatData?: ChatHookResult;\n\n children: React.ReactNode;\n}\n\n/**\n * XAdkProvider - AI 聊天 SDK 核心 Provider\n *\n * 采用 Compound Components 架构:\n * - 只负责数据和状态管理\n * - 不包含 UI 布局\n * - 通过 Context 向子组件提供数据\n * - 支持完全自定义的组件组合\n * - 支持协议解耦,可使用自定义 Hook\n *\n * @example\n * // 基础用法 - 标准协议\n * <XAdkProvider url=\"...\" token=\"...\" config={...}>\n * <XAdkProvider.Chatbot />\n * </XAdkProvider>\n *\n * @example\n * // 自定义协议 - GraphQL\n * function App() {\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * return (\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n * );\n * }\n *\n * @example\n * // 自定义布局\n * <XAdkProvider url=\"...\" token=\"...\">\n * <div style={{ display: 'flex' }}>\n * <XAdkProvider.Sidebar />\n * <div>\n * <XAdkProvider.Messages />\n * <XAdkProvider.Sender />\n * </div>\n * </div>\n * </XAdkProvider>\n */\nconst XAdkProviderComponent = forwardRef<\n XAdkProviderHandle,\n XAdkProviderPropsExtended\n>(\n (\n {\n url = window.location.origin,\n token,\n config,\n preset,\n strategies,\n chatData, // 自定义 Hook 数据\n providerId = \"defaultId\",\n onSuccess,\n onError,\n onMessage,\n onStream,\n children,\n },\n ref,\n ) => {\n const mergedStrategies = useMemo(\n () =>\n mergeChatStrategies(\n preset ?? config?.preset,\n {\n ...config?.strategies,\n ...strategies,\n },\n ),\n [preset, strategies, config?.preset, config?.strategies],\n );\n\n // 内置 Hook 数据 (仅在没有提供 chatData 时调用)\n const internalData = useADKChat({\n url,\n token: token || \"\",\n config: config || {},\n strategies: mergedStrategies,\n onError,\n onSuccess,\n onMessage,\n onStream,\n // 仅在提供了 url 和 token 时才初始化\n enabled: !chatData && !!url && !!token,\n });\n\n // 使用外部数据或内部数据\n const data = chatData || internalData;\n\n // 解构数据\n const {\n appInfo,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n setCurrentSession,\n setMessages,\n likeMessage = async () => false,\n setStateDelta = () => {},\n } = data;\n\n const showFeedback = config?.showFeedback ?? true;\n const onFileClick = config?.onFileClick;\n const presetUploadRequest = useMemo(\n () =>\n resolvePresetUploadRequest(preset ?? config?.preset, {\n url,\n token,\n appNo: config?.appNo,\n }),\n [preset, config?.preset, url, token, config?.appNo],\n );\n const uploadRequest = config?.uploadRequest ?? presetUploadRequest;\n\n // 暴露 API 给 ref\n useImperativeHandle(\n ref,\n () => ({\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSession,\n setStateDelta,\n }),\n [\n appInfo,\n messages,\n sessionList,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setMessages,\n setCurrentSession,\n setStateDelta,\n ],\n );\n\n // 状态 Context Value - 使用 useMemo 避免不必要的 rerender\n const chatStateValue = useMemo(\n () => ({\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n onFileClick,\n uploadRequest,\n strategies: mergedStrategies,\n }),\n [\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n showFeedback,\n onFileClick,\n uploadRequest,\n mergedStrategies,\n ],\n );\n\n // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象\n const chatActionValue = useMemo(\n () => ({\n chat: startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n }),\n [\n startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n ],\n );\n\n // 会话 Context Value\n const sessionValue = useMemo(\n () => ({\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n }),\n [\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n ],\n );\n\n return (\n <ConfigProvider\n theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <ChatStateContext.Provider value={chatStateValue}>\n <ChatActionContext.Provider value={chatActionValue}>\n <SessionContext.Provider value={sessionValue}>\n <div\n style={{\n ...cssVarStyle,\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n } as React.CSSProperties}\n >\n {children}\n </div>\n </SessionContext.Provider>\n </ChatActionContext.Provider>\n </ChatStateContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n },\n);\n\nXAdkProviderComponent.displayName = \"XAdkProvider\";\n\n// 导入 Compound Components\nimport Header from \"./compound/Header\";\nimport Sidebar from \"./compound/Sidebar\";\nimport Messages from \"./compound/Messages\";\nimport Sender from \"./compound/Sender\";\nimport Chatbot from \"./compound/Chatbot\";\nimport Welcome from \"./compound/Welcome\";\nimport DefaultLayout from \"./compound/DefaultLayout\";\n\n// 导出时会挂载 Compound Components\nconst XAdkProvider = XAdkProviderComponent as typeof XAdkProviderComponent & {\n Header: typeof Header;\n Sidebar: typeof Sidebar;\n Messages: typeof Messages;\n Sender: typeof Sender;\n Chatbot: typeof Chatbot;\n Welcome: typeof Welcome;\n DefaultLayout: typeof DefaultLayout;\n};\n\n// 挂载 Compound Components\nXAdkProvider.Header = Header;\nXAdkProvider.Sidebar = Sidebar;\nXAdkProvider.Messages = Messages;\nXAdkProvider.Sender = Sender;\nXAdkProvider.Chatbot = Chatbot;\nXAdkProvider.DefaultLayout = DefaultLayout;\nXAdkProvider.Welcome = Welcome;\n\nexport default XAdkProvider;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import React, { useState, useEffect } from "react";
3
- import { CheckCircleFilled, SyncOutlined, ThunderboltOutlined, PartitionOutlined, RightOutlined, DownOutlined } from "@ant-design/icons";
3
+ import { CheckCircleFilled, CloseCircleFilled, ClockCircleOutlined, SyncOutlined, ThunderboltOutlined, PartitionOutlined, RightOutlined, DownOutlined } from "@ant-design/icons";
4
4
  import MarkdownRender from "../XAdkChatbot/components/MarkdownRender";
5
5
  import FunctionCallRender from "../XAdkChatbot/components/FunctionCallRender";
6
6
  import { useStyles } from "./styles";
@@ -117,36 +117,110 @@ var TimelineToolItem = function TimelineToolItem(_ref3) {
117
117
  })]
118
118
  });
119
119
  };
120
- var XAdkThoughtChain = function XAdkThoughtChain(_ref4) {
121
- var _ref4$defaultOpen = _ref4.defaultOpen,
122
- defaultOpen = _ref4$defaultOpen === void 0 ? false : _ref4$defaultOpen,
123
- _ref4$showFnCallDetai = _ref4.showFnCallDetail,
124
- showFnCallDetail = _ref4$showFnCallDetai === void 0 ? false : _ref4$showFnCallDetai,
125
- _ref4$title = _ref4.title,
126
- title = _ref4$title === void 0 ? "思维链已完成" : _ref4$title,
127
- _ref4$items = _ref4.items,
128
- items = _ref4$items === void 0 ? [] : _ref4$items,
129
- loading = _ref4.loading,
130
- _ref4$blink = _ref4.blink,
131
- blink = _ref4$blink === void 0 ? false : _ref4$blink,
132
- onConfirm = _ref4.onConfirm,
133
- renderFunctionCall = _ref4.renderFunctionCall,
134
- _ref4$toolKindResolve = _ref4.toolKindResolver,
135
- toolKindResolver = _ref4$toolKindResolve === void 0 ? defaultToolKindResolver : _ref4$toolKindResolve,
136
- strategies = _ref4.strategies;
120
+ var StatusIcon = function StatusIcon(_ref4) {
121
+ var status = _ref4.status;
122
+ switch (status) {
123
+ case "loading":
124
+ return /*#__PURE__*/_jsx(SyncOutlined, {
125
+ spin: true,
126
+ style: {
127
+ color: "#1677ff"
128
+ }
129
+ });
130
+ case "success":
131
+ return /*#__PURE__*/_jsx(CheckCircleFilled, {
132
+ style: {
133
+ color: "#52c41a"
134
+ }
135
+ });
136
+ case "error":
137
+ return /*#__PURE__*/_jsx(CloseCircleFilled, {
138
+ style: {
139
+ color: "#ff4d4f"
140
+ }
141
+ });
142
+ case "pending":
143
+ return /*#__PURE__*/_jsx(ClockCircleOutlined, {
144
+ style: {
145
+ color: "#8c8c8c"
146
+ }
147
+ });
148
+ }
149
+ };
150
+ var XAdkThoughtChain = function XAdkThoughtChain(_ref5) {
151
+ var _ref5$collapsible = _ref5.collapsible,
152
+ showCollapsibleHeader = _ref5$collapsible === void 0 ? false : _ref5$collapsible,
153
+ status = _ref5.status,
154
+ className = _ref5.className,
155
+ style = _ref5.style,
156
+ _ref5$defaultOpen = _ref5.defaultOpen,
157
+ defaultOpen = _ref5$defaultOpen === void 0 ? false : _ref5$defaultOpen,
158
+ _ref5$showFnCallDetai = _ref5.showFnCallDetail,
159
+ showFnCallDetail = _ref5$showFnCallDetai === void 0 ? false : _ref5$showFnCallDetai,
160
+ _ref5$title = _ref5.title,
161
+ title = _ref5$title === void 0 ? "思维链已完成" : _ref5$title,
162
+ _ref5$items = _ref5.items,
163
+ items = _ref5$items === void 0 ? [] : _ref5$items,
164
+ loading = _ref5.loading,
165
+ _ref5$blink = _ref5.blink,
166
+ blink = _ref5$blink === void 0 ? false : _ref5$blink,
167
+ onConfirm = _ref5.onConfirm,
168
+ renderFunctionCall = _ref5.renderFunctionCall,
169
+ _ref5$toolKindResolve = _ref5.toolKindResolver,
170
+ toolKindResolver = _ref5$toolKindResolve === void 0 ? defaultToolKindResolver : _ref5$toolKindResolve,
171
+ strategies = _ref5.strategies;
137
172
  var styles = useStyles();
173
+
174
+ // status 优先,loading 向后兼容
175
+ var effectiveStatus = status !== null && status !== void 0 ? status : loading ? "loading" : "success";
176
+ var isLoading = effectiveStatus === "loading";
138
177
  var _useState3 = useState(defaultOpen),
139
178
  _useState4 = _slicedToArray(_useState3, 2),
140
179
  isOpen = _useState4[0],
141
180
  setIsOpen = _useState4[1];
142
181
  useEffect(function () {
143
- if (loading) Promise.resolve().then(function () {
182
+ if (isLoading) Promise.resolve().then(function () {
144
183
  return setIsOpen(true);
145
184
  });
146
- }, [loading]);
147
- var shouldBlink = blink && loading;
185
+ }, [isLoading]);
186
+ var shouldBlink = blink && isLoading;
187
+ var renderTimeline = function renderTimeline() {
188
+ return /*#__PURE__*/_jsx("div", {
189
+ className: styles.timeline,
190
+ children: items.map(function (item, i) {
191
+ return item.type === "text" ? /*#__PURE__*/_jsx(TimelineTextItem, {
192
+ item: item,
193
+ blink: shouldBlink
194
+ }, item.key || i) : /*#__PURE__*/_jsx(TimelineToolItem, {
195
+ msg: item.msg,
196
+ collapsible: item.collapsible,
197
+ showFnCallDetail: showFnCallDetail,
198
+ onConfirm: onConfirm,
199
+ blink: shouldBlink,
200
+ renderFunctionCall: renderFunctionCall,
201
+ toolKindResolver: toolKindResolver,
202
+ strategies: strategies
203
+ }, "tool-".concat(item.key || i));
204
+ })
205
+ });
206
+ };
207
+
208
+ // 不显示外层 header,直接渲染 timeline
209
+ if (!showCollapsibleHeader) {
210
+ return /*#__PURE__*/_jsx("div", {
211
+ className: "".concat(styles.thoughtChainBlock).concat(className ? " ".concat(className) : ""),
212
+ style: style,
213
+ children: /*#__PURE__*/_jsx("div", {
214
+ className: styles.thinkingBody,
215
+ children: renderTimeline()
216
+ })
217
+ });
218
+ }
219
+
220
+ // 显示可折叠 header
148
221
  return /*#__PURE__*/_jsxs("div", {
149
- className: styles.thoughtChainBlock,
222
+ className: "".concat(styles.thoughtChainBlock).concat(className ? " ".concat(className) : ""),
223
+ style: style,
150
224
  children: [/*#__PURE__*/_jsx("div", {
151
225
  className: styles.thoughtHeader,
152
226
  onClick: function onClick() {
@@ -156,19 +230,12 @@ var XAdkThoughtChain = function XAdkThoughtChain(_ref4) {
156
230
  className: styles.headerLeft,
157
231
  children: [/*#__PURE__*/_jsx("div", {
158
232
  className: styles.statusIcon,
159
- children: loading ? /*#__PURE__*/_jsx(SyncOutlined, {
160
- spin: true,
161
- style: {
162
- color: "#1677ff"
163
- }
164
- }) : /*#__PURE__*/_jsx(CheckCircleFilled, {
165
- style: {
166
- color: "#52c41a"
167
- }
233
+ children: /*#__PURE__*/_jsx(StatusIcon, {
234
+ status: effectiveStatus
168
235
  })
169
236
  }), /*#__PURE__*/_jsx("span", {
170
237
  className: "".concat(styles.headerTitle).concat(shouldBlink ? " ".concat(styles.blink) : ""),
171
- children: loading ? "深度思考与执行中..." : title
238
+ children: isLoading ? "深度思考与执行中..." : title
172
239
  }), /*#__PURE__*/_jsx("div", {
173
240
  className: "".concat(styles.caret, " ").concat(isOpen ? "open" : ""),
174
241
  children: /*#__PURE__*/_jsx(RightOutlined, {})
@@ -176,24 +243,7 @@ var XAdkThoughtChain = function XAdkThoughtChain(_ref4) {
176
243
  })
177
244
  }), isOpen && /*#__PURE__*/_jsx("div", {
178
245
  className: styles.thinkingBody,
179
- children: /*#__PURE__*/_jsx("div", {
180
- className: styles.timeline,
181
- children: items.map(function (item, i) {
182
- return item.type === "text" ? /*#__PURE__*/_jsx(TimelineTextItem, {
183
- item: item,
184
- blink: shouldBlink
185
- }, item.key || i) : /*#__PURE__*/_jsx(TimelineToolItem, {
186
- msg: item.msg,
187
- collapsible: item.collapsible,
188
- showFnCallDetail: showFnCallDetail,
189
- onConfirm: onConfirm,
190
- blink: shouldBlink,
191
- renderFunctionCall: renderFunctionCall,
192
- toolKindResolver: toolKindResolver,
193
- strategies: strategies
194
- }, "tool-".concat(item.key || i));
195
- })
196
- })
246
+ children: renderTimeline()
197
247
  })]
198
248
  });
199
249
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","CheckCircleFilled","SyncOutlined","ThunderboltOutlined","PartitionOutlined","RightOutlined","DownOutlined","MarkdownRender","FunctionCallRender","useStyles","defaultToolKindResolver","cleanProcessText","jsx","_jsx","jsxs","_jsxs","TimelineItem","_ref","icon","title","children","_ref$collapsible","collapsible","_ref$defaultOpen","defaultOpen","blink","_useState","_useState2","_slicedToArray","isOpen","setIsOpen","styles","className","timelineItem","timelineLeft","timelineConnector","timelineRight","collapsibleHeader","onClick","undefined","arrowIcon","stepContent","TimelineTextItem","_ref2","item","timelineIcon","titleText","text","content","TimelineToolItem","_ref3","_msg$functionCall","_msg$functionCall2","_msg$functionCall3","_msg$functionResponse","_msg$functionResponse2","_renderFunctionCall","msg","onConfirm","showFnCallDetail","renderFunctionCall","toolKindResolver","strategies","fnName","functionCall","name","kind","needsConfirm","functionResponse","isDone","toolName","args","componentName","statusInfo","response","processData","output","titleNode","toolTitleGroup","toolStatusTag","timelineIconTool","showDetail","renderApproval","renderHandoff","XAdkThoughtChain","_ref4","_ref4$defaultOpen","_ref4$showFnCallDetai","_ref4$title","_ref4$items","items","loading","_ref4$blink","_ref4$toolKindResolve","_useState3","_useState4","Promise","resolve","then","shouldBlink","thoughtChainBlock","thoughtHeader","headerLeft","statusIcon","spin","style","color","concat","headerTitle","caret","thinkingBody","timeline","map","i","type","key"],"sources":["../../../../src/components/XAdkThoughtChain/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport {\n CheckCircleFilled,\n SyncOutlined,\n ThunderboltOutlined,\n PartitionOutlined,\n RightOutlined,\n DownOutlined,\n} from \"@ant-design/icons\";\nimport MarkdownRender from \"@/components/XAdkChatbot/components/MarkdownRender\";\nimport FunctionCallRender from \"@/components/XAdkChatbot/components/FunctionCallRender\";\nimport { useStyles } from \"./styles\";\nimport {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n TimelineItemProps,\n FunctionCall,\n IMessage,\n RenderFunctionCall,\n ToolRenderKind,\n} from \"@/types\";\nimport { defaultToolKindResolver } from \"@/types/FunctionCallRender\";\nimport { cleanProcessText } from \"@/utils\";\n\nconst TimelineItem = ({\n icon,\n title,\n children,\n collapsible = true,\n defaultOpen = true,\n blink,\n}: TimelineItemProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const styles = useStyles();\n\n return (\n <div className={styles.timelineItem}>\n <div className={styles.timelineLeft}>\n {icon}\n <div className={styles.timelineConnector} />\n </div>\n <div className={styles.timelineRight}>\n <div\n className={styles.collapsibleHeader}\n onClick={() => (collapsible ? setIsOpen(!isOpen) : undefined)}\n >\n <div className={blink ? styles.blink : undefined}>{title}</div>\n {collapsible && (\n <span className={styles.arrowIcon}>\n {isOpen ? <DownOutlined /> : <RightOutlined />}\n </span>\n )}\n </div>\n\n {isOpen && <div className={styles.stepContent}>{children}</div>}\n </div>\n </div>\n );\n};\n\nconst TimelineTextItem: React.FC<{\n item: ThoughtChainItemType;\n blink?: boolean;\n}> = ({ item, blink }) => {\n return (\n <TimelineItem\n icon={\n <span className={useStyles().timelineIcon}>\n <PartitionOutlined />\n </span>\n }\n title={<span className={useStyles().titleText}>{item.title}</span>}\n blink={blink}\n >\n <MarkdownRender text={cleanProcessText(item.content)} />\n </TimelineItem>\n );\n};\n\nconst TimelineToolItem: React.FC<{\n msg: IMessage;\n collapsible?: boolean;\n showFnCallDetail: boolean;\n onConfirm?: (fnCall: FunctionCall, confirmed: boolean) => void;\n blink?: boolean;\n renderFunctionCall?: RenderFunctionCall;\n toolKindResolver: (name: string | undefined) => ToolRenderKind;\n strategies?: XAdkThoughtChainProps[\"strategies\"];\n}> = ({\n msg,\n collapsible,\n onConfirm,\n showFnCallDetail,\n blink,\n renderFunctionCall,\n toolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n const fnName = msg.functionCall?.name;\n const kind = toolKindResolver(fnName);\n const needsConfirm = msg.functionCall && !msg.functionResponse;\n const isDone = !!msg.functionResponse;\n\n const toolName =\n msg.functionCall?.args?.componentName ||\n msg.functionCall?.name ||\n \"组件执行\";\n\n const statusInfo =\n msg.functionResponse?.response?.processData ||\n msg.functionResponse?.response?.output;\n\n const titleNode = (\n <div className={styles.toolTitleGroup}>\n <span className={styles.toolName}>{toolName}</span>\n {isDone && <span className={styles.toolStatusTag}>执行成功</span>}\n </div>\n );\n\n return (\n <TimelineItem\n icon={\n <span className={styles.timelineIconTool}>\n <ThunderboltOutlined />\n </span>\n }\n title={titleNode}\n collapsible={collapsible}\n defaultOpen={needsConfirm}\n blink={blink}\n >\n {statusInfo && typeof statusInfo === \"string\" && (\n <div className={styles.statusInfo}>{statusInfo}</div>\n )}\n {renderFunctionCall?.(msg) ?? (\n <FunctionCallRender\n msg={msg}\n showDetail={showFnCallDetail}\n onConfirm={onConfirm}\n kind={kind}\n renderApproval={strategies?.renderApproval}\n renderHandoff={strategies?.renderHandoff}\n />\n )}\n </TimelineItem>\n );\n};\n\nconst XAdkThoughtChain: React.FC<XAdkThoughtChainProps> = ({\n defaultOpen = false,\n showFnCallDetail = false,\n title = \"思维链已完成\",\n items = [],\n loading,\n blink = false,\n onConfirm,\n renderFunctionCall,\n toolKindResolver = defaultToolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n const [isOpen, setIsOpen] = useState(defaultOpen);\n useEffect(() => {\n if (loading) Promise.resolve().then(() => setIsOpen(true));\n }, [loading]);\n\n const shouldBlink = blink && loading;\n\n return (\n <div className={styles.thoughtChainBlock}>\n <div className={styles.thoughtHeader} onClick={() => setIsOpen(!isOpen)}>\n <div className={styles.headerLeft}>\n <div className={styles.statusIcon}>\n {loading ? (\n <SyncOutlined spin style={{ color: \"#1677ff\" }} />\n ) : (\n <CheckCircleFilled style={{ color: \"#52c41a\" }} />\n )}\n </div>\n <span\n className={`${styles.headerTitle}${shouldBlink ? ` ${styles.blink}` : \"\"}`}\n >\n {loading ? \"深度思考与执行中...\" : title}\n </span>\n <div className={`${styles.caret} ${isOpen ? \"open\" : \"\"}`}>\n <RightOutlined />\n </div>\n </div>\n </div>\n {isOpen && (\n <div className={styles.thinkingBody}>\n <div className={styles.timeline}>\n {items.map((item, i) =>\n item.type === \"text\" ? (\n <TimelineTextItem\n key={item.key || i}\n item={item}\n blink={shouldBlink}\n />\n ) : (\n <TimelineToolItem\n key={`tool-${item.key || i}`}\n msg={item.msg!}\n collapsible={item.collapsible}\n showFnCallDetail={showFnCallDetail}\n onConfirm={onConfirm}\n blink={shouldBlink}\n renderFunctionCall={renderFunctionCall}\n toolKindResolver={toolKindResolver}\n strategies={strategies}\n />\n ),\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default XAdkThoughtChain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","useEffect","CheckCircleFilled","CloseCircleFilled","ClockCircleOutlined","SyncOutlined","ThunderboltOutlined","PartitionOutlined","RightOutlined","DownOutlined","MarkdownRender","FunctionCallRender","useStyles","defaultToolKindResolver","cleanProcessText","jsx","_jsx","jsxs","_jsxs","TimelineItem","_ref","icon","title","children","_ref$collapsible","collapsible","_ref$defaultOpen","defaultOpen","blink","_useState","_useState2","_slicedToArray","isOpen","setIsOpen","styles","className","timelineItem","timelineLeft","timelineConnector","timelineRight","collapsibleHeader","onClick","undefined","arrowIcon","stepContent","TimelineTextItem","_ref2","item","timelineIcon","titleText","text","content","TimelineToolItem","_ref3","_msg$functionCall","_msg$functionCall2","_msg$functionCall3","_msg$functionResponse","_msg$functionResponse2","_renderFunctionCall","msg","onConfirm","showFnCallDetail","renderFunctionCall","toolKindResolver","strategies","fnName","functionCall","name","kind","needsConfirm","functionResponse","isDone","toolName","args","componentName","statusInfo","response","processData","output","titleNode","toolTitleGroup","toolStatusTag","timelineIconTool","showDetail","renderApproval","renderHandoff","StatusIcon","_ref4","status","spin","style","color","XAdkThoughtChain","_ref5","_ref5$collapsible","showCollapsibleHeader","_ref5$defaultOpen","_ref5$showFnCallDetai","_ref5$title","_ref5$items","items","loading","_ref5$blink","_ref5$toolKindResolve","effectiveStatus","isLoading","_useState3","_useState4","Promise","resolve","then","shouldBlink","renderTimeline","timeline","map","i","type","key","concat","thoughtChainBlock","thinkingBody","thoughtHeader","headerLeft","statusIcon","headerTitle","caret"],"sources":["../../../../src/components/XAdkThoughtChain/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport {\n CheckCircleFilled,\n CloseCircleFilled,\n ClockCircleOutlined,\n SyncOutlined,\n ThunderboltOutlined,\n PartitionOutlined,\n RightOutlined,\n DownOutlined,\n} from \"@ant-design/icons\";\nimport MarkdownRender from \"@/components/XAdkChatbot/components/MarkdownRender\";\nimport FunctionCallRender from \"@/components/XAdkChatbot/components/FunctionCallRender\";\nimport { useStyles } from \"./styles\";\nimport {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n ThoughtChainStatus,\n TimelineItemProps,\n FunctionCall,\n IMessage,\n RenderFunctionCall,\n ToolRenderKind,\n} from \"@/types\";\nimport { defaultToolKindResolver } from \"@/types/FunctionCallRender\";\nimport { cleanProcessText } from \"@/utils\";\n\nconst TimelineItem = ({\n icon,\n title,\n children,\n collapsible = true,\n defaultOpen = true,\n blink,\n}: TimelineItemProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const styles = useStyles();\n\n return (\n <div className={styles.timelineItem}>\n <div className={styles.timelineLeft}>\n {icon}\n <div className={styles.timelineConnector} />\n </div>\n <div className={styles.timelineRight}>\n <div\n className={styles.collapsibleHeader}\n onClick={() => (collapsible ? setIsOpen(!isOpen) : undefined)}\n >\n <div className={blink ? styles.blink : undefined}>{title}</div>\n {collapsible && (\n <span className={styles.arrowIcon}>\n {isOpen ? <DownOutlined /> : <RightOutlined />}\n </span>\n )}\n </div>\n\n {isOpen && <div className={styles.stepContent}>{children}</div>}\n </div>\n </div>\n );\n};\n\nconst TimelineTextItem: React.FC<{\n item: ThoughtChainItemType;\n blink?: boolean;\n}> = ({ item, blink }) => {\n return (\n <TimelineItem\n icon={\n <span className={useStyles().timelineIcon}>\n <PartitionOutlined />\n </span>\n }\n title={<span className={useStyles().titleText}>{item.title}</span>}\n blink={blink}\n >\n <MarkdownRender text={cleanProcessText(item.content)} />\n </TimelineItem>\n );\n};\n\nconst TimelineToolItem: React.FC<{\n msg: IMessage;\n collapsible?: boolean;\n showFnCallDetail: boolean;\n onConfirm?: (fnCall: FunctionCall, confirmed: boolean) => void;\n blink?: boolean;\n renderFunctionCall?: RenderFunctionCall;\n toolKindResolver: (name: string | undefined) => ToolRenderKind;\n strategies?: XAdkThoughtChainProps[\"strategies\"];\n}> = ({\n msg,\n collapsible,\n onConfirm,\n showFnCallDetail,\n blink,\n renderFunctionCall,\n toolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n const fnName = msg.functionCall?.name;\n const kind = toolKindResolver(fnName);\n const needsConfirm = msg.functionCall && !msg.functionResponse;\n const isDone = !!msg.functionResponse;\n\n const toolName =\n msg.functionCall?.args?.componentName ||\n msg.functionCall?.name ||\n \"组件执行\";\n\n const statusInfo =\n msg.functionResponse?.response?.processData ||\n msg.functionResponse?.response?.output;\n\n const titleNode = (\n <div className={styles.toolTitleGroup}>\n <span className={styles.toolName}>{toolName}</span>\n {isDone && <span className={styles.toolStatusTag}>执行成功</span>}\n </div>\n );\n\n return (\n <TimelineItem\n icon={\n <span className={styles.timelineIconTool}>\n <ThunderboltOutlined />\n </span>\n }\n title={titleNode}\n collapsible={collapsible}\n defaultOpen={needsConfirm}\n blink={blink}\n >\n {statusInfo && typeof statusInfo === \"string\" && (\n <div className={styles.statusInfo}>{statusInfo}</div>\n )}\n {renderFunctionCall?.(msg) ?? (\n <FunctionCallRender\n msg={msg}\n showDetail={showFnCallDetail}\n onConfirm={onConfirm}\n kind={kind}\n renderApproval={strategies?.renderApproval}\n renderHandoff={strategies?.renderHandoff}\n />\n )}\n </TimelineItem>\n );\n};\n\nconst StatusIcon: React.FC<{ status: ThoughtChainStatus }> = ({ status }) => {\n switch (status) {\n case \"loading\":\n return <SyncOutlined spin style={{ color: \"#1677ff\" }} />;\n case \"success\":\n return <CheckCircleFilled style={{ color: \"#52c41a\" }} />;\n case \"error\":\n return <CloseCircleFilled style={{ color: \"#ff4d4f\" }} />;\n case \"pending\":\n return <ClockCircleOutlined style={{ color: \"#8c8c8c\" }} />;\n }\n};\n\nconst XAdkThoughtChain: React.FC<XAdkThoughtChainProps> = ({\n collapsible: showCollapsibleHeader = false,\n status,\n className,\n style,\n defaultOpen = false,\n showFnCallDetail = false,\n title = \"思维链已完成\",\n items = [],\n loading,\n blink = false,\n onConfirm,\n renderFunctionCall,\n toolKindResolver = defaultToolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n\n // status 优先,loading 向后兼容\n const effectiveStatus: ThoughtChainStatus =\n status ?? (loading ? \"loading\" : \"success\");\n const isLoading = effectiveStatus === \"loading\";\n\n const [isOpen, setIsOpen] = useState(defaultOpen);\n useEffect(() => {\n if (isLoading) Promise.resolve().then(() => setIsOpen(true));\n }, [isLoading]);\n\n const shouldBlink = blink && isLoading;\n\n const renderTimeline = () => (\n <div className={styles.timeline}>\n {items.map((item, i) =>\n item.type === \"text\" ? (\n <TimelineTextItem\n key={item.key || i}\n item={item}\n blink={shouldBlink}\n />\n ) : (\n <TimelineToolItem\n key={`tool-${item.key || i}`}\n msg={item.msg!}\n collapsible={item.collapsible}\n showFnCallDetail={showFnCallDetail}\n onConfirm={onConfirm}\n blink={shouldBlink}\n renderFunctionCall={renderFunctionCall}\n toolKindResolver={toolKindResolver}\n strategies={strategies}\n />\n ),\n )}\n </div>\n );\n\n // 不显示外层 header,直接渲染 timeline\n if (!showCollapsibleHeader) {\n return (\n <div\n className={`${styles.thoughtChainBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n </div>\n );\n }\n\n // 显示可折叠 header\n return (\n <div\n className={`${styles.thoughtChainBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <div className={styles.thoughtHeader} onClick={() => setIsOpen(!isOpen)}>\n <div className={styles.headerLeft}>\n <div className={styles.statusIcon}>\n <StatusIcon status={effectiveStatus} />\n </div>\n <span\n className={`${styles.headerTitle}${shouldBlink ? ` ${styles.blink}` : \"\"}`}\n >\n {isLoading ? \"深度思考与执行中...\" : title}\n </span>\n <div className={`${styles.caret} ${isOpen ? \"open\" : \"\"}`}>\n <RightOutlined />\n </div>\n </div>\n </div>\n {isOpen && (\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n )}\n </div>\n );\n};\n\nexport default XAdkThoughtChain;\n"],"mappings":"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"}
@@ -3,39 +3,40 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
3
3
  /* eslint-disable import/prefer-default-export */
4
4
  import { css, keyframes } from "@emotion/css";
5
5
  import { withBasicStyles } from "../../styles/common";
6
+ import { token, tokens } from "../../styles/tokens";
6
7
  var blinkAnimation = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% { background-position-x: -200%; background-position-y: 100%; }\n 25% { background-position-x: -100%; background-position-y: 100%; }\n 50% { background-position-x: 0%; background-position-y: 100%; }\n 75% { background-position-x: 100%; background-position-y: 100%; }\n 100% { background-position-x: 200%; background-position-y: 100%; }\n"])));
7
8
  export var useStyles = withBasicStyles(function () {
8
9
  return {
9
10
  /* --- ThoughtChain --- */
10
11
 
11
- thoughtChainBlock: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 16px;\n border-radius: 8px;\n overflow: hidden;\n "]))),
12
- thoughtHeader: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 14px;\n cursor: pointer;\n user-select: none;\n transition: background 0.2s;\n &:hover {\n background: #f0f0f0;\n border-color: #ccc;\n }\n "]))),
13
- headerLeft: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n "]))),
14
- caret: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #8194ad;\n transition: transform 0.2s;\n &.open {\n transform: rotate(90deg);\n }\n "]))),
12
+ thoughtChainBlock: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n border-radius: ", ";\n overflow: hidden;\n "])), token(tokens.spacingMd), token(tokens.borderRadius)),
13
+ thoughtHeader: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 14px;\n cursor: pointer;\n user-select: none;\n transition: background 0.2s;\n &:hover {\n background: ", ";\n border-color: #ccc;\n }\n "])), token(tokens.colorBgHover)),
14
+ headerLeft: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: ", ";\n "])), token(tokens.spacingSm)),
15
+ caret: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size: ", ";\n color: ", ";\n transition: transform 0.2s;\n &.open {\n transform: rotate(90deg);\n }\n "])), token(tokens.fontSizeSm), token(tokens.colorTextSecondary)),
15
16
  statusIcon: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: 14px;\n display: flex;\n align-items: center;\n "]))),
16
- headerTitle: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-size: 13px;\n color: #8194ad;\n font-weight: 500;\n "]))),
17
+ headerTitle: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-size: ", ";\n color: ", ";\n font-weight: 500;\n "])), token(tokens.fontSizeBase), token(tokens.colorTextSecondary)),
17
18
  headerRight: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([""]))),
18
- thinkingBody: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n padding: 0 16px;\n animation: fadeIn 0.2s ease-in-out;\n "]))),
19
+ thinkingBody: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n padding: 0 ", ";\n animation: fadeIn 0.2s ease-in-out;\n "])), token(tokens.spacingMd)),
19
20
  /* --- Timeline --- */
20
21
 
21
22
  timeline: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
22
23
  timelineItem: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n gap: 12px;\n position: relative;\n "]))),
23
24
  timelineLeft: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 20px;\n flex-shrink: 0;\n "]))),
24
- timelineIcon: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n color: #8194ad;\n font-size: 16px;\n margin-top: 6px;\n "]))),
25
- timelineIconTool: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n color: #faad14;\n font-size: 16px;\n margin-top: 6px;\n "]))),
26
- timelineConnector: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n flex: 1;\n width: 1px;\n background-color: #e5e5e5;\n margin: 4px 0;\n min-height: 12px;\n "]))),
25
+ timelineIcon: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 16px;\n margin-top: 6px;\n "])), token(tokens.colorTextSecondary)),
26
+ timelineIconTool: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 16px;\n margin-top: 6px;\n "])), token(tokens.colorWarning)),
27
+ timelineConnector: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n flex: 1;\n width: 1px;\n background-color: ", ";\n margin: 4px 0;\n min-height: 12px;\n "])), token(tokens.colorBorder)),
27
28
  /* Hide connector on last item */
28
29
  timelineItemLastConnector: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n display: none;\n "]))),
29
- timelineRight: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n flex: 1;\n padding-bottom: 8px;\n min-width: 0;\n "]))),
30
- collapsibleHeader: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 5px 8px;\n margin: 0 -8px 4px -8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n user-select: none;\n\n &:hover {\n background: #f5f5f5;\n }\n "]))),
31
- titleText: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n font-size: 13px;\n font-weight: 600;\n color: #8194ad;\n "]))),
32
- toolTitleGroup: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n overflow: hidden;\n "]))),
33
- toolName: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n font-size: 13px;\n font-weight: 600;\n color: #8194ad;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n "]))),
34
- toolStatusTag: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: #52c41a;\n background: #f6ffed;\n border: 1px solid #b7eb8f;\n padding: 0 6px;\n border-radius: 4px;\n flex-shrink: 0;\n "]))),
35
- arrowIcon: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n font-size: 10px;\n color: #bbb;\n margin-left: 8px;\n "]))),
36
- stepContent: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n font-size: 13px;\n color: #8194ad;\n line-height: 1.6;\n padding-left: 4px;\n "]))),
37
- statusInfo: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #8194ad;\n margin-bottom: 4px;\n font-style: italic;\n "]))),
38
- blink: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n color: #8194ad;\n background-image: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.88),\n transparent\n );\n background-clip: text;\n -webkit-background-clip: text;\n background-size: 50%;\n background-repeat: no-repeat;\n animation-name: ", ";\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n "])), blinkAnimation)
30
+ timelineRight: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n flex: 1;\n padding-bottom: ", ";\n min-width: 0;\n "])), token(tokens.spacingSm)),
31
+ collapsibleHeader: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 5px 8px;\n margin: 0 -8px 4px -8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n user-select: none;\n\n &:hover {\n background: ", ";\n }\n "])), token(tokens.colorBgHover)),
32
+ titleText: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: 600;\n color: ", ";\n "])), token(tokens.fontSizeBase), token(tokens.colorTextSecondary)),
33
+ toolTitleGroup: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: ", ";\n overflow: hidden;\n "])), token(tokens.spacingSm)),
34
+ toolName: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: 600;\n color: ", ";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n "])), token(tokens.fontSizeBase), token(tokens.colorTextSecondary)),
35
+ toolStatusTag: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: ", ";\n background: #f6ffed;\n border: 1px solid #b7eb8f;\n padding: 0 6px;\n border-radius: 4px;\n flex-shrink: 0;\n "])), token(tokens.colorSuccess)),
36
+ arrowIcon: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n font-size: 10px;\n color: #bbb;\n margin-left: ", ";\n "])), token(tokens.spacingSm)),
37
+ stepContent: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n font-size: ", ";\n color: ", ";\n line-height: 1.6;\n padding-left: 4px;\n "])), token(tokens.fontSizeBase), token(tokens.colorTextSecondary)),
38
+ statusInfo: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n font-size: ", ";\n color: ", ";\n margin-bottom: 4px;\n font-style: italic;\n "])), token(tokens.fontSizeSm), token(tokens.colorTextSecondary)),
39
+ blink: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n color: ", ";\n background-image: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.88),\n transparent\n );\n background-clip: text;\n -webkit-background-clip: text;\n background-size: 50%;\n background-repeat: no-repeat;\n animation-name: ", ";\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n "])), token(tokens.colorTextSecondary), blinkAnimation)
39
40
  };
40
41
  });
41
42
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["css","keyframes","withBasicStyles","blinkAnimation","_templateObject","_taggedTemplateLiteral","useStyles","thoughtChainBlock","_templateObject2","thoughtHeader","_templateObject3","headerLeft","_templateObject4","caret","_templateObject5","statusIcon","_templateObject6","headerTitle","_templateObject7","headerRight","_templateObject8","thinkingBody","_templateObject9","timeline","_templateObject10","timelineItem","_templateObject11","timelineLeft","_templateObject12","timelineIcon","_templateObject13","timelineIconTool","_templateObject14","timelineConnector","_templateObject15","timelineItemLastConnector","_templateObject16","timelineRight","_templateObject17","collapsibleHeader","_templateObject18","titleText","_templateObject19","toolTitleGroup","_templateObject20","toolName","_templateObject21","toolStatusTag","_templateObject22","arrowIcon","_templateObject23","stepContent","_templateObject24","statusInfo","_templateObject25","blink","_templateObject26"],"sources":["../../../../src/components/XAdkThoughtChain/styles.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { css, keyframes } from \"@emotion/css\";\nimport { withBasicStyles, lightBlue, primaryBlue } from \"@/styles/common\";\n\nconst blinkAnimation = keyframes`\n 0% { background-position-x: -200%; background-position-y: 100%; }\n 25% { background-position-x: -100%; background-position-y: 100%; }\n 50% { background-position-x: 0%; background-position-y: 100%; }\n 75% { background-position-x: 100%; background-position-y: 100%; }\n 100% { background-position-x: 200%; background-position-y: 100%; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n /* --- ThoughtChain --- */\n\n thoughtChainBlock: css`\n margin-bottom: 16px;\n border-radius: 8px;\n overflow: hidden;\n `,\n\n thoughtHeader: css`\n display: flex;\n align-items: center;\n padding: 10px 14px;\n cursor: pointer;\n user-select: none;\n transition: background 0.2s;\n &:hover {\n background: #f0f0f0;\n border-color: #ccc;\n }\n `,\n\n headerLeft: css`\n display: flex;\n align-items: center;\n gap: 8px;\n `,\n\n caret: css`\n font-size: 12px;\n color: #8194ad;\n transition: transform 0.2s;\n &.open {\n transform: rotate(90deg);\n }\n `,\n\n statusIcon: css`\n font-size: 14px;\n display: flex;\n align-items: center;\n `,\n\n headerTitle: css`\n font-size: 13px;\n color: #8194ad;\n font-weight: 500;\n `,\n\n headerRight: css``,\n\n thinkingBody: css`\n padding: 0 16px;\n animation: fadeIn 0.2s ease-in-out;\n `,\n\n /* --- Timeline --- */\n\n timeline: css`\n width: 100%;\n `,\n\n timelineItem: css`\n display: flex;\n gap: 12px;\n position: relative;\n `,\n\n timelineLeft: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 20px;\n flex-shrink: 0;\n `,\n\n timelineIcon: css`\n color: #8194ad;\n font-size: 16px;\n margin-top: 6px;\n `,\n\n timelineIconTool: css`\n color: #faad14;\n font-size: 16px;\n margin-top: 6px;\n `,\n\n timelineConnector: css`\n flex: 1;\n width: 1px;\n background-color: #e5e5e5;\n margin: 4px 0;\n min-height: 12px;\n `,\n\n /* Hide connector on last item */\n timelineItemLastConnector: css`\n display: none;\n `,\n\n timelineRight: css`\n flex: 1;\n padding-bottom: 8px;\n min-width: 0;\n `,\n\n collapsibleHeader: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 5px 8px;\n margin: 0 -8px 4px -8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n user-select: none;\n\n &:hover {\n background: #f5f5f5;\n }\n `,\n\n titleText: css`\n font-size: 13px;\n font-weight: 600;\n color: #8194ad;\n `,\n\n toolTitleGroup: css`\n display: flex;\n align-items: center;\n gap: 8px;\n overflow: hidden;\n `,\n\n toolName: css`\n font-size: 13px;\n font-weight: 600;\n color: #8194ad;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n\n toolStatusTag: css`\n font-size: 11px;\n color: #52c41a;\n background: #f6ffed;\n border: 1px solid #b7eb8f;\n padding: 0 6px;\n border-radius: 4px;\n flex-shrink: 0;\n `,\n\n arrowIcon: css`\n font-size: 10px;\n color: #bbb;\n margin-left: 8px;\n `,\n\n stepContent: css`\n font-size: 13px;\n color: #8194ad;\n line-height: 1.6;\n padding-left: 4px;\n `,\n\n statusInfo: css`\n font-size: 12px;\n color: #8194ad;\n margin-bottom: 4px;\n font-style: italic;\n `,\n\n blink: css`\n color: #8194ad;\n background-image: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.88),\n transparent\n );\n background-clip: text;\n -webkit-background-clip: text;\n background-size: 50%;\n background-repeat: no-repeat;\n animation-name: ${blinkAnimation};\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n `,\n}));\n"],"mappings":";;AAAA;AACA,SAASA,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASC,eAAe;AAExB,IAAMC,cAAc,GAAGF,SAAS,CAAAG,eAAA,KAAAA,eAAA,GAAAC,sBAAA,6WAM/B;AAED,OAAO,IAAMC,SAAS,GAAGJ,eAAe,CAAC;EAAA,OAAO;IAC9C;;IAEAK,iBAAiB,EAAEP,GAAG,CAAAQ,gBAAA,KAAAA,gBAAA,GAAAH,sBAAA,sFAIrB;IAEDI,aAAa,EAAET,GAAG,CAAAU,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,gPAWjB;IAEDM,UAAU,EAAEX,GAAG,CAAAY,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,yEAId;IAEDQ,KAAK,EAAEb,GAAG,CAAAc,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,8IAOT;IAEDU,UAAU,EAAEf,GAAG,CAAAgB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,gFAId;IAEDY,WAAW,EAAEjB,GAAG,CAAAkB,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,8EAIf;IAEDc,WAAW,EAAEnB,GAAG,CAAAoB,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,QAAE;IAElBgB,YAAY,EAAErB,GAAG,CAAAsB,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,2EAGhB;IAED;;IAEAkB,QAAQ,EAAEvB,GAAG,CAAAwB,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,8BAEZ;IAEDoB,YAAY,EAAEzB,GAAG,CAAA0B,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,yEAIhB;IAEDsB,YAAY,EAAE3B,GAAG,CAAA4B,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,8HAMhB;IAEDwB,YAAY,EAAE7B,GAAG,CAAA8B,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,6EAIhB;IAED0B,gBAAgB,EAAE/B,GAAG,CAAAgC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,6EAIpB;IAED4B,iBAAiB,EAAEjC,GAAG,CAAAkC,iBAAA,KAAAA,iBAAA,GAAA7B,sBAAA,sHAMrB;IAED;IACA8B,yBAAyB,EAAEnC,GAAG,CAAAoC,iBAAA,KAAAA,iBAAA,GAAA/B,sBAAA,gCAE7B;IAEDgC,aAAa,EAAErC,GAAG,CAAAsC,iBAAA,KAAAA,iBAAA,GAAAjC,sBAAA,uEAIjB;IAEDkC,iBAAiB,EAAEvC,GAAG,CAAAwC,iBAAA,KAAAA,iBAAA,GAAAnC,sBAAA,0SAcrB;IAEDoC,SAAS,EAAEzC,GAAG,CAAA0C,iBAAA,KAAAA,iBAAA,GAAArC,sBAAA,8EAIb;IAEDsC,cAAc,EAAE3C,GAAG,CAAA4C,iBAAA,KAAAA,iBAAA,GAAAvC,sBAAA,gGAKlB;IAEDwC,QAAQ,EAAE7C,GAAG,CAAA8C,iBAAA,KAAAA,iBAAA,GAAAzC,sBAAA,6JAOZ;IAED0C,aAAa,EAAE/C,GAAG,CAAAgD,iBAAA,KAAAA,iBAAA,GAAA3C,sBAAA,oLAQjB;IAED4C,SAAS,EAAEjD,GAAG,CAAAkD,iBAAA,KAAAA,iBAAA,GAAA7C,sBAAA,2EAIb;IAED8C,WAAW,EAAEnD,GAAG,CAAAoD,iBAAA,KAAAA,iBAAA,GAAA/C,sBAAA,sGAKf;IAEDgD,UAAU,EAAErD,GAAG,CAAAsD,iBAAA,KAAAA,iBAAA,GAAAjD,sBAAA,yGAKd;IAEDkD,KAAK,EAAEvD,GAAG,CAAAwD,iBAAA,KAAAA,iBAAA,GAAAnD,sBAAA,+cAYUF,cAAc;EAMpC,CAAC;AAAA,CAAC,CAAC"}
1
+ {"version":3,"names":["css","keyframes","withBasicStyles","token","tokens","blinkAnimation","_templateObject","_taggedTemplateLiteral","useStyles","thoughtChainBlock","_templateObject2","spacingMd","borderRadius","thoughtHeader","_templateObject3","colorBgHover","headerLeft","_templateObject4","spacingSm","caret","_templateObject5","fontSizeSm","colorTextSecondary","statusIcon","_templateObject6","headerTitle","_templateObject7","fontSizeBase","headerRight","_templateObject8","thinkingBody","_templateObject9","timeline","_templateObject10","timelineItem","_templateObject11","timelineLeft","_templateObject12","timelineIcon","_templateObject13","timelineIconTool","_templateObject14","colorWarning","timelineConnector","_templateObject15","colorBorder","timelineItemLastConnector","_templateObject16","timelineRight","_templateObject17","collapsibleHeader","_templateObject18","titleText","_templateObject19","toolTitleGroup","_templateObject20","toolName","_templateObject21","toolStatusTag","_templateObject22","colorSuccess","arrowIcon","_templateObject23","stepContent","_templateObject24","statusInfo","_templateObject25","blink","_templateObject26"],"sources":["../../../../src/components/XAdkThoughtChain/styles.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { css, keyframes } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\nimport { token, tokens } from \"@/styles/tokens\";\n\nconst blinkAnimation = keyframes`\n 0% { background-position-x: -200%; background-position-y: 100%; }\n 25% { background-position-x: -100%; background-position-y: 100%; }\n 50% { background-position-x: 0%; background-position-y: 100%; }\n 75% { background-position-x: 100%; background-position-y: 100%; }\n 100% { background-position-x: 200%; background-position-y: 100%; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n /* --- ThoughtChain --- */\n\n thoughtChainBlock: css`\n margin-bottom: ${token(tokens.spacingMd)};\n border-radius: ${token(tokens.borderRadius)};\n overflow: hidden;\n `,\n\n thoughtHeader: css`\n display: flex;\n align-items: center;\n padding: 10px 14px;\n cursor: pointer;\n user-select: none;\n transition: background 0.2s;\n &:hover {\n background: ${token(tokens.colorBgHover)};\n border-color: #ccc;\n }\n `,\n\n headerLeft: css`\n display: flex;\n align-items: center;\n gap: ${token(tokens.spacingSm)};\n `,\n\n caret: css`\n font-size: ${token(tokens.fontSizeSm)};\n color: ${token(tokens.colorTextSecondary)};\n transition: transform 0.2s;\n &.open {\n transform: rotate(90deg);\n }\n `,\n\n statusIcon: css`\n font-size: 14px;\n display: flex;\n align-items: center;\n `,\n\n headerTitle: css`\n font-size: ${token(tokens.fontSizeBase)};\n color: ${token(tokens.colorTextSecondary)};\n font-weight: 500;\n `,\n\n headerRight: css``,\n\n thinkingBody: css`\n padding: 0 ${token(tokens.spacingMd)};\n animation: fadeIn 0.2s ease-in-out;\n `,\n\n /* --- Timeline --- */\n\n timeline: css`\n width: 100%;\n `,\n\n timelineItem: css`\n display: flex;\n gap: 12px;\n position: relative;\n `,\n\n timelineLeft: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 20px;\n flex-shrink: 0;\n `,\n\n timelineIcon: css`\n color: ${token(tokens.colorTextSecondary)};\n font-size: 16px;\n margin-top: 6px;\n `,\n\n timelineIconTool: css`\n color: ${token(tokens.colorWarning)};\n font-size: 16px;\n margin-top: 6px;\n `,\n\n timelineConnector: css`\n flex: 1;\n width: 1px;\n background-color: ${token(tokens.colorBorder)};\n margin: 4px 0;\n min-height: 12px;\n `,\n\n /* Hide connector on last item */\n timelineItemLastConnector: css`\n display: none;\n `,\n\n timelineRight: css`\n flex: 1;\n padding-bottom: ${token(tokens.spacingSm)};\n min-width: 0;\n `,\n\n collapsibleHeader: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 5px 8px;\n margin: 0 -8px 4px -8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n user-select: none;\n\n &:hover {\n background: ${token(tokens.colorBgHover)};\n }\n `,\n\n titleText: css`\n font-size: ${token(tokens.fontSizeBase)};\n font-weight: 600;\n color: ${token(tokens.colorTextSecondary)};\n `,\n\n toolTitleGroup: css`\n display: flex;\n align-items: center;\n gap: ${token(tokens.spacingSm)};\n overflow: hidden;\n `,\n\n toolName: css`\n font-size: ${token(tokens.fontSizeBase)};\n font-weight: 600;\n color: ${token(tokens.colorTextSecondary)};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n\n toolStatusTag: css`\n font-size: 11px;\n color: ${token(tokens.colorSuccess)};\n background: #f6ffed;\n border: 1px solid #b7eb8f;\n padding: 0 6px;\n border-radius: 4px;\n flex-shrink: 0;\n `,\n\n arrowIcon: css`\n font-size: 10px;\n color: #bbb;\n margin-left: ${token(tokens.spacingSm)};\n `,\n\n stepContent: css`\n font-size: ${token(tokens.fontSizeBase)};\n color: ${token(tokens.colorTextSecondary)};\n line-height: 1.6;\n padding-left: 4px;\n `,\n\n statusInfo: css`\n font-size: ${token(tokens.fontSizeSm)};\n color: ${token(tokens.colorTextSecondary)};\n margin-bottom: 4px;\n font-style: italic;\n `,\n\n blink: css`\n color: ${token(tokens.colorTextSecondary)};\n background-image: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.88),\n transparent\n );\n background-clip: text;\n -webkit-background-clip: text;\n background-size: 50%;\n background-repeat: no-repeat;\n animation-name: ${blinkAnimation};\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n `,\n}));\n"],"mappings":"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"}
@@ -27,4 +27,5 @@ export { default as FunctionCallRender } from "./components/XAdkChatbot/componen
27
27
  export { default as ThinkRender } from "./components/XAdkChatbot/components/ThinkRender";
28
28
  export type { MarkdownRenderProps } from "./components/XAdkChatbot/components/MarkdownRender";
29
29
  export type { FunctionCallRenderProps } from "./types/FunctionCallRender";
30
- export type { XAdkThoughtChainProps, ThoughtChainItemType, } from "./types/XAdkThoughtChain";
30
+ export type { XAdkThoughtChainProps, ThoughtChainItemType, ThoughtChainStatus, } from "./types/XAdkThoughtChain";
31
+ export { tokens, tokenDefaults, token, cssVarStyle } from "./styles/tokens";
package/dist/esm/index.js CHANGED
@@ -39,4 +39,7 @@ export { default as FunctionCallRender } from "./components/XAdkChatbot/componen
39
39
  export { default as ThinkRender } from "./components/XAdkChatbot/components/ThinkRender";
40
40
 
41
41
  // 基础组件类型导出
42
+
43
+ // 设计令牌导出 - 供引用方覆盖样式
44
+ export { tokens, tokenDefaults, token, cssVarStyle } from "./styles/tokens";
42
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","XAdkSenderSwitch","useADKChat","baseChatStrategies","basePreset","baseToolKindResolver","mergeChatStrategies","resolvePresetUploadRequest","resolveChatPreset","createXGroupUploadRequest","xGroupAdkPreset","xGroupToolKindResolver","useChatState","useChatActions","useSession","FolderTree","default","MarkdownRender","FunctionCallRender","ThinkRender"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport XAdkSenderSwitch from \"./components/XAdkSender/Switch\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n XAdkSenderSwitch,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// FolderTree 文件树组件\nimport FolderTree from \"./components/FolderTree\";\nexport { FolderTree };\nexport type {\n FolderTreeProps,\n FolderTreeData,\n FileContentService,\n FolderTreeRef,\n} from \"./components/FolderTree\";\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n} from \"./types/XAdkThoughtChain\";\n"],"mappings":"AAAA;AACA,SAASA,MAAM;AACf,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,MAAM;AACb,OAAOC,SAAS;AAChB,OAAOC,WAAW;AAClB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,SAAS;AAChB,OAAOC,OAAO;;AAEd;AACA,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,gBAAgB;AACvB,OAAOC,UAAU;AACjB,SACEC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SACEC,YAAY,EACZC,cAAc,EACdC,UAAU;AAGZ;;AAEA;;AAGA;AACA,SACE1B,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTE,gBAAgB,EAChBE,SAAS,EACTC,OAAO;;AAGT;AACA,SACEC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,gBAAgB,EAChBR,WAAW,EACXE,gBAAgB,EAChBO,UAAU,EACVC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBI,yBAAyB,EACzBH,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBE,eAAe,EACfC,sBAAsB;;AAGxB;AACA,OAAOI,UAAU;AACjB,SAASA,UAAU;AAQnB;AACA,SAASC,OAAO,IAAIC,cAAc;AAClC,SAASD,OAAO,IAAIE,kBAAkB;AACtC,SAASF,OAAO,IAAIG,WAAW;;AAE/B"}
1
+ {"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","XAdkSenderSwitch","useADKChat","baseChatStrategies","basePreset","baseToolKindResolver","mergeChatStrategies","resolvePresetUploadRequest","resolveChatPreset","createXGroupUploadRequest","xGroupAdkPreset","xGroupToolKindResolver","useChatState","useChatActions","useSession","FolderTree","default","MarkdownRender","FunctionCallRender","ThinkRender","tokens","tokenDefaults","token","cssVarStyle"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport XAdkSenderSwitch from \"./components/XAdkSender/Switch\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n XAdkSenderSwitch,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// FolderTree 文件树组件\nimport FolderTree from \"./components/FolderTree\";\nexport { FolderTree };\nexport type {\n FolderTreeProps,\n FolderTreeData,\n FileContentService,\n FolderTreeRef,\n} from \"./components/FolderTree\";\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n ThoughtChainStatus,\n} from \"./types/XAdkThoughtChain\";\n\n// 设计令牌导出 - 供引用方覆盖样式\nexport { tokens, tokenDefaults, token, cssVarStyle } from \"./styles/tokens\";\n"],"mappings":"AAAA;AACA,SAASA,MAAM;AACf,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,MAAM;AACb,OAAOC,SAAS;AAChB,OAAOC,WAAW;AAClB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,SAAS;AAChB,OAAOC,OAAO;;AAEd;AACA,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,gBAAgB;AACvB,OAAOC,UAAU;AACjB,SACEC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SACEC,YAAY,EACZC,cAAc,EACdC,UAAU;AAGZ;;AAEA;;AAGA;AACA,SACE1B,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTE,gBAAgB,EAChBE,SAAS,EACTC,OAAO;;AAGT;AACA,SACEC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,gBAAgB,EAChBR,WAAW,EACXE,gBAAgB,EAChBO,UAAU,EACVC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBI,yBAAyB,EACzBH,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBE,eAAe,EACfC,sBAAsB;;AAGxB;AACA,OAAOI,UAAU;AACjB,SAASA,UAAU;AAQnB;AACA,SAASC,OAAO,IAAIC,cAAc;AAClC,SAASD,OAAO,IAAIE,kBAAkB;AACtC,SAASF,OAAO,IAAIG,WAAW;;AAE/B;;AASA;AACA,SAASC,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAEC,WAAW"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CSS Variables 设计令牌统一管理
3
+ *
4
+ * 引用方可通过在父容器设置同名 CSS 变量来覆盖组件样式:
5
+ * .my-app { --xadk-color-primary: #7c3aed; }
6
+ */
7
+ /** CSS 变量名常量 */
8
+ export declare const tokens: {
9
+ readonly colorPrimary: "--xadk-color-primary";
10
+ readonly colorSuccess: "--xadk-color-success";
11
+ readonly colorError: "--xadk-color-error";
12
+ readonly colorWarning: "--xadk-color-warning";
13
+ readonly colorTextSecondary: "--xadk-color-text-secondary";
14
+ readonly colorBorder: "--xadk-color-border";
15
+ readonly colorBgHover: "--xadk-color-bg-hover";
16
+ readonly fontSizeSm: "--xadk-font-size-sm";
17
+ readonly fontSizeBase: "--xadk-font-size-base";
18
+ readonly borderRadius: "--xadk-border-radius";
19
+ readonly spacingSm: "--xadk-spacing-sm";
20
+ readonly spacingMd: "--xadk-spacing-md";
21
+ };
22
+ /** 默认值映射 */
23
+ export declare const tokenDefaults: Record<string, string>;
24
+ /** 生成 var() 引用(带 fallback 默认值) */
25
+ export declare const token: (name: string, fallback?: string) => string;
26
+ /** 将 tokenDefaults 转为可注入到 style 属性的对象 */
27
+ export declare const cssVarStyle: Record<string, string>;
@@ -0,0 +1,42 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ var _tokenDefaults;
4
+ /**
5
+ * CSS Variables 设计令牌统一管理
6
+ *
7
+ * 引用方可通过在父容器设置同名 CSS 变量来覆盖组件样式:
8
+ * .my-app { --xadk-color-primary: #7c3aed; }
9
+ */
10
+
11
+ /** CSS 变量名常量 */
12
+ export var tokens = {
13
+ // 颜色
14
+ colorPrimary: "--xadk-color-primary",
15
+ colorSuccess: "--xadk-color-success",
16
+ colorError: "--xadk-color-error",
17
+ colorWarning: "--xadk-color-warning",
18
+ colorTextSecondary: "--xadk-color-text-secondary",
19
+ colorBorder: "--xadk-color-border",
20
+ colorBgHover: "--xadk-color-bg-hover",
21
+ // 字体
22
+ fontSizeSm: "--xadk-font-size-sm",
23
+ fontSizeBase: "--xadk-font-size-base",
24
+ // 圆角
25
+ borderRadius: "--xadk-border-radius",
26
+ // 间距
27
+ spacingSm: "--xadk-spacing-sm",
28
+ spacingMd: "--xadk-spacing-md"
29
+ };
30
+
31
+ /** 默认值映射 */
32
+ export var tokenDefaults = (_tokenDefaults = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_tokenDefaults, tokens.colorPrimary, "#0078FF"), tokens.colorSuccess, "#52c41a"), tokens.colorError, "#ff4d4f"), tokens.colorWarning, "#faad14"), tokens.colorTextSecondary, "#8194ad"), tokens.colorBorder, "#e5e5e5"), tokens.colorBgHover, "#f5f5f5"), tokens.fontSizeSm, "12px"), tokens.fontSizeBase, "13px"), tokens.borderRadius, "8px"), _defineProperty(_defineProperty(_tokenDefaults, tokens.spacingSm, "8px"), tokens.spacingMd, "16px"));
33
+
34
+ /** 生成 var() 引用(带 fallback 默认值) */
35
+ export var token = function token(name, fallback) {
36
+ var defaultVal = fallback !== null && fallback !== void 0 ? fallback : tokenDefaults[name];
37
+ return defaultVal ? "var(".concat(name, ", ").concat(defaultVal, ")") : "var(".concat(name, ")");
38
+ };
39
+
40
+ /** 将 tokenDefaults 转为可注入到 style 属性的对象 */
41
+ export var cssVarStyle = _objectSpread({}, tokenDefaults);
42
+ //# sourceMappingURL=tokens.js.map