@ai-group/chat-sdk 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +93 -214
  2. package/dist/cjs/components/XAiChatbot/index.js +4 -3
  3. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  4. package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -0
  5. package/dist/cjs/components/XAiChatbot/styles.js +31 -1
  6. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  7. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  8. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +82 -0
  9. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +7 -0
  10. package/dist/cjs/components/XAiConversations/index.d.ts +4 -0
  11. package/dist/cjs/components/XAiConversations/index.js +59 -0
  12. package/dist/cjs/components/XAiConversations/index.js.map +7 -0
  13. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  14. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +12 -12
  15. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  16. package/dist/cjs/components/XAiProvider/demo.styles.d.ts +35 -0
  17. package/dist/cjs/components/XAiProvider/demo.styles.js +37 -0
  18. package/dist/cjs/components/XAiProvider/demo.styles.js.map +7 -0
  19. package/dist/cjs/components/XAiProvider/index.js +8 -3
  20. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  21. package/dist/cjs/components/XAiWebSDKWrapper.js +7 -1
  22. package/dist/cjs/components/XAiWebSDKWrapper.js.map +2 -2
  23. package/dist/cjs/hooks/useAgentGenerator.d.ts +10 -2
  24. package/dist/cjs/hooks/useAgentGenerator.js +132 -7
  25. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  26. package/dist/cjs/services/api.d.ts +65 -3
  27. package/dist/cjs/services/api.js +33 -0
  28. package/dist/cjs/services/api.js.map +2 -2
  29. package/dist/cjs/types/XAiChatbot.d.ts +2 -0
  30. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  31. package/dist/cjs/types/XAiConversations.d.ts +4 -0
  32. package/dist/cjs/types/XAiConversations.js +18 -0
  33. package/dist/cjs/types/XAiConversations.js.map +7 -0
  34. package/dist/cjs/types/XAiProvider.d.ts +14 -0
  35. package/dist/cjs/types/XAiProvider.js +9 -0
  36. package/dist/cjs/types/XAiProvider.js.map +3 -3
  37. package/dist/cjs/types/index.d.ts +1 -0
  38. package/dist/cjs/types/index.js +3 -1
  39. package/dist/cjs/types/index.js.map +2 -2
  40. package/dist/cjs/utils/umdEntry.d.ts +4 -1
  41. package/dist/cjs/utils/umdEntry.js +14 -12
  42. package/dist/cjs/utils/umdEntry.js.map +2 -2
  43. package/dist/esm/components/XAiChatbot/index.js +11 -8
  44. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  45. package/dist/esm/components/XAiChatbot/styles.d.ts +2 -0
  46. package/dist/esm/components/XAiChatbot/styles.js +38 -38
  47. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  48. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  49. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +42 -0
  50. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -0
  51. package/dist/esm/components/XAiConversations/index.d.ts +4 -0
  52. package/dist/esm/components/XAiConversations/index.js +27 -0
  53. package/dist/esm/components/XAiConversations/index.js.map +1 -0
  54. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  55. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +38 -180
  56. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  57. package/dist/esm/components/XAiProvider/demo.styles.d.ts +35 -0
  58. package/dist/esm/components/XAiProvider/demo.styles.js +12 -0
  59. package/dist/esm/components/XAiProvider/demo.styles.js.map +1 -0
  60. package/dist/esm/components/XAiProvider/index.js +17 -3
  61. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  62. package/dist/esm/components/XAiWebSDKWrapper.js +4 -1
  63. package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -1
  64. package/dist/esm/hooks/useAgentGenerator.d.ts +10 -2
  65. package/dist/esm/hooks/useAgentGenerator.js +215 -30
  66. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  67. package/dist/esm/services/api.d.ts +65 -3
  68. package/dist/esm/services/api.js +75 -0
  69. package/dist/esm/services/api.js.map +1 -1
  70. package/dist/esm/types/XAiChatbot.d.ts +2 -0
  71. package/dist/esm/types/XAiChatbot.js.map +1 -1
  72. package/dist/esm/types/XAiConversations.d.ts +4 -0
  73. package/dist/esm/types/XAiConversations.js +2 -0
  74. package/dist/esm/types/XAiConversations.js.map +1 -0
  75. package/dist/esm/types/XAiProvider.d.ts +14 -0
  76. package/dist/esm/types/XAiProvider.js +7 -0
  77. package/dist/esm/types/XAiProvider.js.map +1 -1
  78. package/dist/esm/types/index.d.ts +1 -0
  79. package/dist/esm/types/index.js +1 -0
  80. package/dist/esm/types/index.js.map +1 -1
  81. package/dist/esm/utils/umdEntry.d.ts +4 -1
  82. package/dist/esm/utils/umdEntry.js +22 -18
  83. package/dist/esm/utils/umdEntry.js.map +1 -1
  84. package/dist/umd/chat-sdk.min.js +1 -1
  85. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/XAiProvider.ts"],
4
- "sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\n\nexport type ThemeType = 'default';\n\nexport interface XAiProviderProps {\n /** AI 服务地址 */\n url: string;\n /** 认证 token */\n token: string;\n /** 配置信息 */\n config?: any;\n /** Provider 唯一标识,用于区分多个 Provider 实例 */\n providerId?: string;\n /** Token 刷新回调 */\n onRefreshToken?: () => Promise<string>;\n /** 子组件 */\n children: ReactNode;\n}\n\nexport interface XAiSDKProps extends XAiProviderProps {\n theme?: ThemeType;\n componentProps?: {\n id?: string;\n [key: string]: any; // 支持任意 CSS 属性\n };\n}\n\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n client: AiClient | null;\n token: string;\n loading: boolean;\n error: string | null;\n // ...其它全局配置\n}\n\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiC;AAqC1B,IAAM,aAAa,aAAAA,QAAM,cAAqC,IAAI;",
6
- "names": ["React"]
4
+ "sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\n\nexport type ThemeType = 'default';\n\nexport enum ErrorCode {\n APP_NOT_ENABLE = 'APP_NOT_ENABLE',\n APP_DELETED = 'APP_DELETED',\n APP_NOT_FOUND = 'APP_NOT_FOUND',\n API_ERROR = 'API_ERROR',\n}\n\nexport interface Error {\n code: ErrorCode;\n message: string;\n}\n\nexport interface XAiProviderProps {\n /** AI 服务地址 */\n url: string;\n /** 认证 token */\n token: string;\n /** 配置信息 */\n config?: any;\n /** Provider 唯一标识,用于区分多个 Provider 实例 */\n providerId?: string;\n /** Token 刷新回调 */\n onRefreshToken?: () => Promise<string>;\n /** 应用无法正常渲染回调 */\n onError?: (error: Error) => void;\n /** 应用正常渲染回调 */\n onSuccess?: (appInfo: any) => void;\n /** 子组件 */\n children: ReactNode;\n}\n\nexport interface XAiSDKProps extends XAiProviderProps {\n theme?: ThemeType;\n componentProps?: {\n id?: string;\n [key: string]: any; // 支持任意 CSS 属性\n };\n}\n\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n client: AiClient | null;\n token: string;\n loading: boolean;\n error: string | null;\n // ...其它全局配置\n}\n\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiC;AAM1B,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,oBAAiB;AACjB,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,eAAY;AAJF,SAAAA;AAAA,GAAA;AA+CL,IAAM,aAAa,aAAAC,QAAM,cAAqC,IAAI;",
6
+ "names": ["ErrorCode", "React"]
7
7
  }
@@ -1,3 +1,4 @@
1
1
  export * from './XAiChatbot';
2
2
  export * from './XAiMessage';
3
3
  export * from './XAiProvider';
4
+ export * from './XAiConversations';
@@ -19,10 +19,12 @@ module.exports = __toCommonJS(types_exports);
19
19
  __reExport(types_exports, require("./XAiChatbot"), module.exports);
20
20
  __reExport(types_exports, require("./XAiMessage"), module.exports);
21
21
  __reExport(types_exports, require("./XAiProvider"), module.exports);
22
+ __reExport(types_exports, require("./XAiConversations"), module.exports);
22
23
  // Annotate the CommonJS export names for ESM import in node:
23
24
  0 && (module.exports = {
24
25
  ...require("./XAiChatbot"),
25
26
  ...require("./XAiMessage"),
26
- ...require("./XAiProvider")
27
+ ...require("./XAiProvider"),
28
+ ...require("./XAiConversations")
27
29
  });
28
30
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/index.ts"],
4
- "sourcesContent": ["export * from './XAiChatbot';\nexport * from './XAiMessage';\nexport * from './XAiProvider';"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,yBAAd;AACA,0BAAc,yBADd;AAEA,0BAAc,0BAFd;",
4
+ "sourcesContent": ["export * from './XAiChatbot';\nexport * from './XAiMessage';\nexport * from './XAiProvider';\nexport * from './XAiConversations';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,yBAAd;AACA,0BAAc,yBADd;AAEA,0BAAc,0BAFd;AAGA,0BAAc,+BAHd;",
6
6
  "names": []
7
7
  }
@@ -3,9 +3,12 @@ declare class XAiWebSDK {
3
3
  container: HTMLElement;
4
4
  props: XAiSDKProps;
5
5
  root: any;
6
+ onError?: (error: any) => void;
7
+ onSuccess?: (appInfo: any) => void;
6
8
  constructor(container: HTMLElement, props: XAiSDKProps);
7
9
  mount(): void;
8
10
  unmount(): void;
9
- static initChatbot(containerOrProps: HTMLElement | XAiSDKProps, props?: XAiSDKProps): XAiWebSDK;
11
+ static initChatbot(props: XAiSDKProps): XAiWebSDK;
12
+ static create(props: XAiSDKProps): XAiWebSDK;
10
13
  }
11
14
  export default XAiWebSDK;
@@ -40,6 +40,8 @@ var XAiWebSDK = class {
40
40
  constructor(container, props) {
41
41
  this.container = container;
42
42
  this.props = props;
43
+ this.onError = props.onError;
44
+ this.onSuccess = props.onSuccess;
43
45
  this.mount();
44
46
  }
45
47
  mount() {
@@ -60,34 +62,34 @@ var XAiWebSDK = class {
60
62
  this.root.unmount();
61
63
  }
62
64
  }
63
- // 支持两种调用方式
64
- static initChatbot(containerOrProps, props) {
65
+ // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()
66
+ static initChatbot(props) {
65
67
  var _a;
66
- if (containerOrProps instanceof HTMLElement) {
67
- return new XAiWebSDK(containerOrProps, props);
68
- }
69
- const sdkProps = containerOrProps;
70
68
  let container;
71
- if ((_a = sdkProps.componentProps) == null ? void 0 : _a.id) {
72
- const existingContainer = document.getElementById(sdkProps.componentProps.id);
69
+ if ((_a = props.componentProps) == null ? void 0 : _a.id) {
70
+ const existingContainer = document.getElementById(props.componentProps.id);
73
71
  if (existingContainer) {
74
72
  container = existingContainer;
75
73
  } else {
76
74
  container = document.createElement("div");
77
- container.id = sdkProps.componentProps.id;
75
+ container.id = props.componentProps.id;
78
76
  }
79
77
  } else {
80
78
  container = document.createElement("div");
81
79
  container.id = "xai-chatbot-container";
82
80
  }
83
- if (sdkProps.componentProps) {
84
- const { id, ...styleProps } = sdkProps.componentProps;
81
+ if (props.componentProps) {
82
+ const { id, ...styleProps } = props.componentProps;
85
83
  Object.assign(container.style, styleProps);
86
84
  }
87
85
  if (!container.parentNode) {
88
86
  document.body.appendChild(container);
89
87
  }
90
- return new XAiWebSDK(container, sdkProps);
88
+ return new XAiWebSDK(container, props);
89
+ }
90
+ // 兼容旧版本的静态方法
91
+ static create(props) {
92
+ return this.initChatbot(props);
91
93
  }
92
94
  };
93
95
  window.XAiWebSDK = XAiWebSDK;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/umdEntry.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '../components/XAiChatbot';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持两种调用方式\n static initChatbot(containerOrProps: HTMLElement | XAiSDKProps, props?: XAiSDKProps) {\n // 如果第一个参数是 HTMLElement\n if (containerOrProps instanceof HTMLElement) {\n return new XAiWebSDK(containerOrProps, props!);\n }\n\n // 如果第一个参数是 props\n const sdkProps = containerOrProps as XAiSDKProps;\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (sdkProps.componentProps?.id) {\n const existingContainer = document.getElementById(sdkProps.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = sdkProps.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (sdkProps.componentProps) {\n const { id, ...styleProps } = sdkProps.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, sdkProps);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,oBAAqB;AAErB,yBAAwB;AACxB,wBAAuB;AAEvB,IAAM,YAAN,MAAgB;AAAA,EAOd,YAAY,WAAwB,OAAoB;AACtD,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,QAAQ;AACN,QAAI,cAAAA,QAAS,YAAY;AACvB,WAAK,OAAO,cAAAA,QAAS,WAAW,KAAK,SAAS;AAC9C,WAAK,KAAK;AAAA,QACR,6BAAAC,QAAA,cAAC,mBAAAC,SAAA,EAAa,GAAG,KAAK,SACpB,6BAAAD,QAAA,cAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,KAC1C,6BAAAA,QAAA,cAAC,kBAAAE,SAAA,IAAW,CACd,CACF;AAAA,MACF;AAAA,IACF,OAAO;AAEL,oBAAAH,QAAS;AAAA,QACP,6BAAAC,QAAA,cAAC,mBAAAC,SAAA,EAAa,GAAG,KAAK,SACpB,6BAAAD,QAAA,cAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,KAC1C,6BAAAA,QAAA,cAAC,kBAAAE,SAAA,IAAW,CACd,CACF;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU;AACR,QAAI,KAAK,QAAQ,KAAK,KAAK,SAAS;AAClC,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,YAAY,kBAA6C,OAAqB;AAjDvF;AAmDI,QAAI,4BAA4B,aAAa;AAC3C,aAAO,IAAI,UAAU,kBAAkB,KAAM;AAAA,IAC/C;AAGA,UAAM,WAAW;AACjB,QAAI;AAGJ,SAAI,cAAS,mBAAT,mBAAyB,IAAI;AAC/B,YAAM,oBAAoB,SAAS,eAAe,SAAS,eAAe,EAAE;AAC5E,UAAI,mBAAmB;AACrB,oBAAY;AAAA,MACd,OAAO;AAEL,oBAAY,SAAS,cAAc,KAAK;AACxC,kBAAU,KAAK,SAAS,eAAe;AAAA,MACzC;AAAA,IACF,OAAO;AAEL,kBAAY,SAAS,cAAc,KAAK;AACxC,gBAAU,KAAK;AAAA,IACjB;AAGA,QAAI,SAAS,gBAAgB;AAC3B,YAAM,EAAE,IAAI,GAAG,WAAW,IAAI,SAAS;AACvC,aAAO,OAAO,UAAU,OAAO,UAAU;AAAA,IAC3C;AAGA,QAAI,CAAC,UAAU,YAAY;AACzB,eAAS,KAAK,YAAY,SAAS;AAAA,IACrC;AAEA,WAAO,IAAI,UAAU,WAAW,QAAQ;AAAA,EAC1C;AACF;AAIA,OAAO,YAAY;AAGnB,IAAO,mBAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '../components/XAiChatbot';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,oBAAqB;AAErB,yBAAwB;AACxB,wBAAuB;AAEvB,IAAM,YAAN,MAAgB;AAAA,EAWd,YAAY,WAAwB,OAAoB;AACtD,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,QAAQ;AACN,QAAI,cAAAA,QAAS,YAAY;AACvB,WAAK,OAAO,cAAAA,QAAS,WAAW,KAAK,SAAS;AAC9C,WAAK,KAAK;AAAA,QACR,6BAAAC,QAAA,cAAC,mBAAAC,SAAA,EAAa,GAAG,KAAK,SACpB,6BAAAD,QAAA,cAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,KAC1C,6BAAAA,QAAA,cAAC,kBAAAE,SAAA,IAAW,CACd,CACF;AAAA,MACF;AAAA,IACF,OAAO;AAEL,oBAAAH,QAAS;AAAA,QACP,6BAAAC,QAAA,cAAC,mBAAAC,SAAA,EAAa,GAAG,KAAK,SACpB,6BAAAD,QAAA,cAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,KAC1C,6BAAAA,QAAA,cAAC,kBAAAE,SAAA,IAAW,CACd,CACF;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU;AACR,QAAI,KAAK,QAAQ,KAAK,KAAK,SAAS;AAClC,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,YAAY,OAA+B;AAvDpD;AAwDI,QAAI;AAGJ,SAAI,WAAM,mBAAN,mBAAsB,IAAI;AAC5B,YAAM,oBAAoB,SAAS,eAAe,MAAM,eAAe,EAAE;AACzE,UAAI,mBAAmB;AACrB,oBAAY;AAAA,MACd,OAAO;AAEL,oBAAY,SAAS,cAAc,KAAK;AACxC,kBAAU,KAAK,MAAM,eAAe;AAAA,MACtC;AAAA,IACF,OAAO;AAEL,kBAAY,SAAS,cAAc,KAAK;AACxC,gBAAU,KAAK;AAAA,IACjB;AAGA,QAAI,MAAM,gBAAgB;AACxB,YAAM,EAAE,IAAI,GAAG,WAAW,IAAI,MAAM;AACpC,aAAO,OAAO,UAAU,OAAO,UAAU;AAAA,IAC3C;AAGA,QAAI,CAAC,UAAU,YAAY;AACzB,eAAS,KAAK,YAAY,SAAS;AAAA,IACrC;AAEA,WAAO,IAAI,UAAU,WAAW,KAAK;AAAA,EACvC;AAAA;AAAA,EAGA,OAAO,OAAO,OAA+B;AAC3C,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AACF;AAIA,OAAO,YAAY;AAGnB,IAAO,mBAAQ;",
6
6
  "names": ["ReactDOM", "React", "XAiProvider", "XAiChatbot"]
7
7
  }
@@ -79,6 +79,8 @@ var XAiChatbot = function XAiChatbot(props) {
79
79
  propMessages = mergedProps.messages,
80
80
  _mergedProps$text = mergedProps.text,
81
81
  text = _mergedProps$text === void 0 ? '' : _mergedProps$text,
82
+ _mergedProps$footerTi = mergedProps.footerTips,
83
+ footerTips = _mergedProps$footerTi === void 0 ? '' : _mergedProps$footerTi,
82
84
  _mergedProps$emptySta = mergedProps.emptyStateImage,
83
85
  emptyStateImage = _mergedProps$emptySta === void 0 ? emptyIcon : _mergedProps$emptySta,
84
86
  _mergedProps$emptySta2 = mergedProps.emptyStateText,
@@ -151,10 +153,9 @@ var XAiChatbot = function XAiChatbot(props) {
151
153
  assistant: {
152
154
  placement: 'start',
153
155
  avatar: {
154
- icon: avatar || /*#__PURE__*/_jsx(UserOutlined, {}),
155
- style: {
156
- background: '#fde3cf'
157
- }
156
+ icon: avatar || /*#__PURE__*/_jsx(UserOutlined, {
157
+ className: clsx(styles.bg('#fde3cf'), styles.userAvatar)
158
+ })
158
159
  },
159
160
  typing: {
160
161
  step: 5,
@@ -170,10 +171,9 @@ var XAiChatbot = function XAiChatbot(props) {
170
171
  user: {
171
172
  placement: 'end',
172
173
  avatar: {
173
- icon: userAvatar || /*#__PURE__*/_jsx(UserOutlined, {}),
174
- style: {
175
- background: '#87d068'
176
- }
174
+ icon: userAvatar || /*#__PURE__*/_jsx(UserOutlined, {
175
+ className: clsx(styles.bg('#87d068'), styles.userAvatar)
176
+ })
177
177
  },
178
178
  classNames: {
179
179
  content: 'user-content'
@@ -586,6 +586,9 @@ var XAiChatbot = function XAiChatbot(props) {
586
586
  }
587
587
  })]
588
588
  })
589
+ }), footerTips && /*#__PURE__*/_jsx("div", {
590
+ className: styles.footerTips,
591
+ children: footerTips
589
592
  })]
590
593
  })]
591
594
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useState","useMemo","Button","Space","Spin","Tooltip","Popover","Bubble","Sender","Prompts","ArrowUpOutlined","ClearOutlined","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","groupIcon","arrowUp","arrowDown","useChatbotContext","useStyles","GlobalStyle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","defaultActions","key","icon","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","content","setContent","_useState5","_useState6","mode","_setMode","_useState7","_useState8","fileUploading","setFileUploading","_useState9","_useState10","clearPopoverVisible","setClearPopoverVisible","styles","FooterActions","_ref","data","className","flex","gap","children","map","action","index","title","cursor","onClick","MessageFooter","_ref2","rolesObject","assistant","placement","style","background","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","ActionHeader","_ref3","_first$extra","_ref3$thinks","thinks","renderActionHeader","_useState11","_useState12","expanded","setExpanded","length","onToggle","v","first","name","extra","actionHeaderWrapper","actionHeaderItem","src","alt","actionHeaderIcon","actionHeaderText","w","actionHeaderDetail","actionDetailTitle","flex1","pl","_action$extra","_action$extra2","_action$extra3","thinkIcon","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","handleSend","trim","NavBar","subtitle","fileInputRef","handleStopGenerate","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","p","mb","mt","popoverFooter","size","type","danger","uploadButton","flexCenterGap2","iconZengjiaDisabled","iconZengjiaNormal","current","_fileInputRef$current","click","ref","onChange","display","accept","EmptyState","emptyWrapper","emptyImg","weight","textColor","wrapper","messageContainer","List","roles","items","msg","_ref4","id","role","status","_ref4$thinks","_ref4$extra","noFooter","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","chatFooter","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","value","sendWrapper","placeholder","actions","_","_info$components","components","SendButton","LoadingButton","iconHuihuarenqun","divider","stopButton","sendButton","onSubmit","onCancel"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Button,\n Space,\n Spin,\n Tooltip,\n Popover,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Sender,\n Prompts,\n} from '@ant-design/x';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport { useChatbotContext, useProviderMethods } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n thinks: any[];\n renderActionHeader?: (params: { thinks: any[]; expanded: boolean; onToggle: () => void }) => React.ReactNode;\n}\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\n const [content, setContent] = useState<string>(text); // 输入框文本\n const [mode, _setMode] = useState<string>(''); // todo 模式\n const [fileUploading, setFileUploading] = useState(false); // 文件上传进度条\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages }> = ({ data }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n ))}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages }> = ({ data }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined />, style: { background: '#fde3cf' } },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined />, style: { background: '#87d068' } },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // ActionHeader 组件\n const ActionHeader: React.FC<ActionHeaderProps> = ({ thinks = [], renderActionHeader }) => {\n const [expanded, setExpanded] = useState(false);\n if (!thinks || thinks.length === 0) return null;\n if (renderActionHeader) {\n return renderActionHeader({ thinks, expanded, onToggle: () => setExpanded((v) => !v) });\n }\n // 默认渲染\n const first = thinks[0];\n const { name } = first;\n const icon = first?.icon || first?.extra?.icon;\n return (\n <div className={styles.actionHeaderWrapper}>\n { !expanded && (\n <div\n className={styles.actionHeaderItem}\n onClick={() => setExpanded((v) => !v)}\n >\n { icon && <img src={icon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span className={styles.actionHeaderText}>{name}</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n ) }\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks.map((action, idx) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n { thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n };\n\n // 触发发送\n const handleSend = () => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.('text', content);\n setContent(''); // 发送后清空输入框内容\n }\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 停止生成\n const handleStopGenerate = () => {\n onStop?.();\n };\n\n // 选择文件\n const handleFileSelect = () => {};\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n setContent('');\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title={\n mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传'\n }\n >\n {fileUploading\n ? (\n <Spin size=\"small\" />\n )\n : (\n <i\n className={\n mode === 'single_agent_skill_mode'\n ? styles.iconZengjiaDisabled\n : styles.iconZengjiaNormal\n }\n onClick={() => {\n if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n )}\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n style={{ display: 'none' }}\n accept=\"*/*\"\n disabled={fileUploading || mode === 'single_agent_skill_mode'}\n />\n </Tooltip>\n </div>\n );\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n roles={rolesObject}\n items={messages.map((msg: any) => {\n const { id, role, status, type, thinks = [], extra = { noFooter: false } } = msg as Messages;\n return {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => <ActionHeader thinks={thinks} />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n footer: (() => {\n return (\n extra.noFooter\n ? null\n : (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} />\n </>\n )\n )\n );\n }),\n };\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n {/* 普通文本输入 */}\n <Sender\n value={content}\n // submitType=\"shiftEnter\"\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n <div className={styles.w(20)} />\n\n {mode !== 'single_agent_skill_mode' && uploadButton}\n {mode === 'meta_agent_mode' && (\n <div\n className={styles.flexCenterGap2}\n style={{ visibility: 'hidden' }}\n >\n <i className={styles.iconHuihuarenqun} />\n </div>\n )}\n\n <div className={styles.divider} />\n\n {loading\n ? (\n <LoadingButton onClick={handleStopGenerate} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n setContent(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n handleStopGenerate();\n }}\n />\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useRef","useState","useMemo","Button","Space","Spin","Tooltip","Popover","Bubble","Sender","Prompts","ArrowUpOutlined","ClearOutlined","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","groupIcon","arrowUp","arrowDown","useChatbotContext","useStyles","GlobalStyle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","defaultActions","key","icon","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","content","setContent","_useState5","_useState6","mode","_setMode","_useState7","_useState8","fileUploading","setFileUploading","_useState9","_useState10","clearPopoverVisible","setClearPopoverVisible","styles","FooterActions","_ref","data","className","flex","gap","children","map","action","index","title","cursor","onClick","MessageFooter","_ref2","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","ActionHeader","_ref3","_first$extra","_ref3$thinks","thinks","renderActionHeader","_useState11","_useState12","expanded","setExpanded","length","onToggle","v","first","name","extra","actionHeaderWrapper","actionHeaderItem","src","alt","actionHeaderIcon","actionHeaderText","w","actionHeaderDetail","actionDetailTitle","flex1","pl","_action$extra","_action$extra2","_action$extra3","thinkIcon","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","handleSend","trim","NavBar","subtitle","fileInputRef","handleStopGenerate","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","p","mb","mt","popoverFooter","size","type","danger","uploadButton","flexCenterGap2","iconZengjiaDisabled","iconZengjiaNormal","current","_fileInputRef$current","click","ref","onChange","display","accept","EmptyState","emptyWrapper","emptyImg","weight","textColor","wrapper","messageContainer","List","roles","items","msg","_ref4","id","role","status","_ref4$thinks","_ref4$extra","noFooter","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","chatFooter","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","value","sendWrapper","placeholder","actions","_","_info$components","components","SendButton","LoadingButton","iconHuihuarenqun","divider","stopButton","sendButton","onSubmit","onCancel"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Button,\n Space,\n Spin,\n Tooltip,\n Popover,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Sender,\n Prompts,\n} from '@ant-design/x';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n thinks: any[];\n renderActionHeader?: (params: { thinks: any[]; expanded: boolean; onToggle: () => void }) => React.ReactNode;\n}\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\n const [content, setContent] = useState<string>(text); // 输入框文本\n const [mode, _setMode] = useState<string>(''); // todo 模式\n const [fileUploading, setFileUploading] = useState(false); // 文件上传进度条\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages }> = ({ data }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n ))}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages }> = ({ data }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // ActionHeader 组件\n const ActionHeader: React.FC<ActionHeaderProps> = ({ thinks = [], renderActionHeader }) => {\n const [expanded, setExpanded] = useState(false);\n if (!thinks || thinks.length === 0) return null;\n if (renderActionHeader) {\n return renderActionHeader({ thinks, expanded, onToggle: () => setExpanded((v) => !v) });\n }\n // 默认渲染\n const first = thinks[0];\n const { name } = first;\n const icon = first?.icon || first?.extra?.icon;\n return (\n <div className={styles.actionHeaderWrapper}>\n { !expanded && (\n <div\n className={styles.actionHeaderItem}\n onClick={() => setExpanded((v) => !v)}\n >\n { icon && <img src={icon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span className={styles.actionHeaderText}>{name}</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n ) }\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks.map((action, idx) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n { thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n };\n\n // 触发发送\n const handleSend = () => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.('text', content);\n setContent(''); // 发送后清空输入框内容\n }\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 停止生成\n const handleStopGenerate = () => {\n onStop?.();\n };\n\n // 选择文件\n const handleFileSelect = () => {};\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n setContent('');\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title={\n mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传'\n }\n >\n {fileUploading\n ? (\n <Spin size=\"small\" />\n )\n : (\n <i\n className={\n mode === 'single_agent_skill_mode'\n ? styles.iconZengjiaDisabled\n : styles.iconZengjiaNormal\n }\n onClick={() => {\n if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n )}\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n style={{ display: 'none' }}\n accept=\"*/*\"\n disabled={fileUploading || mode === 'single_agent_skill_mode'}\n />\n </Tooltip>\n </div>\n );\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n roles={rolesObject}\n items={messages.map((msg: any) => {\n const { id, role, status, type, thinks = [], extra = { noFooter: false } } = msg as Messages;\n return {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => <ActionHeader thinks={thinks} />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n footer: (() => {\n return (\n extra.noFooter\n ? null\n : (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} />\n </>\n )\n )\n );\n }),\n };\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n {/* 普通文本输入 */}\n <Sender\n value={content}\n // submitType=\"shiftEnter\"\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n <div className={styles.w(20)} />\n\n {mode !== 'single_agent_skill_mode' && uploadButton}\n {mode === 'meta_agent_mode' && (\n <div\n className={styles.flexCenterGap2}\n style={{ visibility: 'hidden' }}\n >\n <i className={styles.iconHuihuarenqun} />\n </div>\n )}\n\n <div className={styles.divider} />\n\n {loading\n ? (\n <LoadingButton onClick={handleStopGenerate} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n setContent(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n handleStopGenerate();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export declare const useStyles: () => {
3
3
  wrapper: string;
4
4
  navbar: string;
5
+ userAvatar: string;
5
6
  avatar: string;
6
7
  title: string;
7
8
  subtitle: string;
@@ -21,6 +22,7 @@ export declare const useStyles: () => {
21
22
  uploadBtn: string;
22
23
  clearBtn: string;
23
24
  chatFooter: string;
25
+ footerTips: string;
24
26
  flexCenterGap2: string;
25
27
  iconHuihuarenqun: string;
26
28
  popoverFooter: string;
@@ -1,5 +1,5 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39;
3
3
  import React from 'react';
4
4
  import { css } from '@emotion/css';
5
5
  import { css as globalCss, Global } from '@emotion/react';
@@ -16,47 +16,47 @@ export var useStyles = withBasicStyles(function () {
16
16
  // 静态样式
17
17
  wrapper: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n max-height: 812px;\n min-height: 300px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n "]))),
18
18
  navbar: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ", ";\n background-color: #fff;\n "])), borderGray),
19
- avatar: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ", ";\n "])), borderGray),
20
- title: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-weight: 600;\n font-size: 16px;\n color: ", ";\n "])), darkGray),
21
- subtitle: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n margin-top: 2px;\n "])), lightGray),
22
- messageContainer: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n "]))),
23
- emptyWrapper: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n userSelect: none;\n "]))),
24
- emptyImg: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 60px;\n height: 60px;\n margin-bottom: 16px;\n "]))),
25
- message: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ", ";\n color: ", ";\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n "])), lightBlue, darkGray),
26
- messageRight: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n align-self: flex-end;\n background-color: ", ";\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n "])), primaryBlue),
27
- quickReplies: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n overflow-x: auto;\n "])), borderGray),
28
- replyItem: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ", ";\n border-radius: 20px;\n background-color: #fff;\n color: ", ";\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ", ";\n color: #fff;\n }\n "])), primaryBlue, primaryBlue, primaryBlue),
29
- highlight: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n background-color: ", ";\n color: white;\n border-color: ", ";\n "])), primaryBlue, primaryBlue),
30
- inputBar: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n "])), borderGray),
31
- input: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ", ";\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ", ";\n box-shadow: 0 0 3px ", ";\n }\n "])), borderGray, primaryBlue, primaryBlue),
32
- sendWrapper: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n "]))),
33
- stopButton: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
34
- sendButton: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ", ";\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n "])), primaryBlue, lightBlue),
35
- uploadBtn: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ", ";\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n "])), primaryBlue),
36
- clearBtn: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n "]))),
37
- chatFooter: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n "]))),
38
- // todo 后续增加safe-bottom
39
-
40
- flexCenterGap2: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n "]))),
41
- iconHuihuarenqun: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n "]))),
42
- popoverFooter: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
43
- divider: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
44
- flexCenterGap4: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n "]))),
45
- iconZengjiaDisabled: css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
46
- iconZengjiaNormal: css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n "]))),
47
- actionHeaderWrapper: css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n "]))),
48
- actionHeaderItem: css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n "]))),
49
- actionHeaderIcon: css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["\n height: 14px;\n "]))),
50
- actionHeaderText: css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n "]))),
51
- actionHeaderDetail: css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n "]))),
52
- actionDetailTitle: css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n "]))),
53
- actionHeaderDetailItem: css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n "]))),
54
- actionHeaderCost: css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n "])))
19
+ userAvatar: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n "]))),
20
+ avatar: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ", ";\n "])), borderGray),
21
+ title: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-weight: 600;\n font-size: 16px;\n color: ", ";\n "])), darkGray),
22
+ subtitle: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n margin-top: 2px;\n "])), lightGray),
23
+ messageContainer: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n "]))),
24
+ emptyWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n userSelect: none;\n "]))),
25
+ emptyImg: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 60px;\n height: 60px;\n margin-bottom: 16px;\n "]))),
26
+ message: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ", ";\n color: ", ";\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n "])), lightBlue, darkGray),
27
+ messageRight: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n align-self: flex-end;\n background-color: ", ";\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n "])), primaryBlue),
28
+ quickReplies: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n overflow-x: auto;\n "])), borderGray),
29
+ replyItem: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ", ";\n border-radius: 20px;\n background-color: #fff;\n color: ", ";\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ", ";\n color: #fff;\n }\n "])), primaryBlue, primaryBlue, primaryBlue),
30
+ highlight: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n background-color: ", ";\n color: white;\n border-color: ", ";\n "])), primaryBlue, primaryBlue),
31
+ inputBar: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n "])), borderGray),
32
+ input: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ", ";\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ", ";\n box-shadow: 0 0 3px ", ";\n }\n "])), borderGray, primaryBlue, primaryBlue),
33
+ sendWrapper: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n "]))),
34
+ stopButton: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
35
+ sendButton: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ", ";\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n "])), primaryBlue, lightBlue),
36
+ uploadBtn: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ", ";\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n "])), primaryBlue),
37
+ clearBtn: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n "]))),
38
+ chatFooter: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n "]))),
39
+ footerTips: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n color: rgba(0,0,0,0.4);\n "]))),
40
+ flexCenterGap2: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n "]))),
41
+ iconHuihuarenqun: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n "]))),
42
+ popoverFooter: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
43
+ divider: css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
44
+ flexCenterGap4: css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n "]))),
45
+ iconZengjiaDisabled: css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
46
+ iconZengjiaNormal: css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n "]))),
47
+ actionHeaderWrapper: css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n "]))),
48
+ actionHeaderItem: css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n "]))),
49
+ actionHeaderIcon: css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["\n height: 14px;\n "]))),
50
+ actionHeaderText: css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n "]))),
51
+ actionHeaderDetail: css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n "]))),
52
+ actionDetailTitle: css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n "]))),
53
+ actionHeaderDetailItem: css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n "]))),
54
+ actionHeaderCost: css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n "])))
55
55
  };
56
56
  });
57
57
  export var GlobalStyle = function GlobalStyle() {
58
58
  return /*#__PURE__*/_jsx(Global, {
59
- styles: globalCss(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* \u4F60\u60F3\u8986\u76D6\u7684\u5176\u4ED6\u6837\u5F0F */\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* \u7528\u6237\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* \u52A9\u624B\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n "])))
59
+ styles: globalCss(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* \u4F60\u60F3\u8986\u76D6\u7684\u5176\u4ED6\u6837\u5F0F */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* \u7528\u6237\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* \u52A9\u624B\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n "])))
60
60
  });
61
61
  };
62
62
  //# sourceMappingURL=styles.js.map