@ai-group/chat-sdk 0.5.2 → 0.5.3

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 (40) hide show
  1. package/dist/cjs/components/XAiChatbot/styles.js +2 -0
  2. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  3. package/dist/cjs/components/XAiConversations/index.js +4 -3
  4. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  5. package/dist/cjs/components/XAiConversations/styles.d.ts +2 -0
  6. package/dist/cjs/components/XAiConversations/styles.js +23 -0
  7. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  8. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +3 -3
  9. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  10. package/dist/cjs/components/XAiProvider/index.d.ts +2 -2
  11. package/dist/cjs/components/XAiProvider/index.js +40 -11
  12. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  13. package/dist/cjs/constants/index.d.ts +1 -0
  14. package/dist/cjs/constants/index.js +3 -0
  15. package/dist/cjs/constants/index.js.map +2 -2
  16. package/dist/cjs/types/XAiConversations.d.ts +2 -0
  17. package/dist/cjs/types/XAiConversations.js.map +1 -1
  18. package/dist/cjs/utils/umdEntry.js +2 -2
  19. package/dist/cjs/utils/umdEntry.js.map +2 -2
  20. package/dist/esm/components/XAiChatbot/styles.js +2 -2
  21. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  22. package/dist/esm/components/XAiConversations/index.js +8 -3
  23. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  24. package/dist/esm/components/XAiConversations/styles.d.ts +2 -0
  25. package/dist/esm/components/XAiConversations/styles.js +9 -7
  26. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  27. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +14 -7
  28. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  29. package/dist/esm/components/XAiProvider/index.d.ts +2 -2
  30. package/dist/esm/components/XAiProvider/index.js +48 -2
  31. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  32. package/dist/esm/constants/index.d.ts +1 -0
  33. package/dist/esm/constants/index.js +3 -0
  34. package/dist/esm/constants/index.js.map +1 -1
  35. package/dist/esm/types/XAiConversations.d.ts +2 -0
  36. package/dist/esm/types/XAiConversations.js.map +1 -1
  37. package/dist/esm/utils/umdEntry.js +16 -2
  38. package/dist/esm/utils/umdEntry.js.map +1 -1
  39. package/dist/umd/chat-sdk.min.js +1 -1
  40. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/umdEntry.tsx"],
4
- "sourcesContent": ["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => 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.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\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 getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => 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.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\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 getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
+ "mappings": "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",
6
6
  "names": ["ReactDOM", "React", "XAiProvider", "XAiConversations", "XAiChatbot"]
7
7
  }
@@ -14,7 +14,7 @@ var borderGray = '#ddd'; // 边框灰色
14
14
  export var useStyles = withBasicStyles(function () {
15
15
  return {
16
16
  // 静态样式
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 "]))),
17
+ wrapper: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\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
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
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),
@@ -36,7 +36,7 @@ export var useStyles = withBasicStyles(function () {
36
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
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
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 "]))),
39
+ footerTips: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n "]))),
40
40
  flexCenterGap2: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n "]))),
41
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
42
  popoverFooter: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
@@ -1 +1 @@
1
- {"version":3,"names":["React","css","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","emptyWrapper","_templateObject8","emptyImg","_templateObject9","message","_templateObject10","messageRight","_templateObject11","quickReplies","_templateObject12","replyItem","_templateObject13","highlight","_templateObject14","inputBar","_templateObject15","input","_templateObject16","sendWrapper","_templateObject17","stopButton","_templateObject18","sendButton","_templateObject19","uploadBtn","_templateObject20","clearBtn","_templateObject21","chatFooter","_templateObject22","footerTips","_templateObject23","flexCenterGap2","_templateObject24","iconHuihuarenqun","_templateObject25","popoverFooter","_templateObject26","divider","_templateObject27","flexCenterGap4","_templateObject28","iconZengjiaDisabled","_templateObject29","iconZengjiaNormal","_templateObject30","actionHeaderWrapper","_templateObject31","actionHeaderItem","_templateObject32","actionHeaderIcon","_templateObject33","actionHeaderText","_templateObject34","actionHeaderDetail","_templateObject35","actionDetailTitle","_templateObject36","actionHeaderDetailItem","_templateObject37","actionHeaderCost","_templateObject38","GlobalStyle","styles","_templateObject39"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\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 `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\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 `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\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 `,\n\n emptyWrapper: css`\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 `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\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 `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\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 `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n `,\n\n stopButton: css`\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 `,\n\n sendButton: css`\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: #000000;\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: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\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 `,\n\n clearBtn: css`\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 `,\n\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n color: rgba(0,0,0,0.4);\n `,\n\n flexCenterGap2: css`\n display: flex;\n align-items: center;\n gap: 8px;\n `,\n\n iconHuihuarenqun: css`\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 `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n flexCenterGap4: css`\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `,\n\n iconZengjiaDisabled: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n `,\n\n iconZengjiaNormal: css`\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 `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderItem: css`\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 `,\n actionHeaderIcon: css`\n height: 14px;\n `,\n actionHeaderText: css`\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\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 `,\n actionHeaderDetailItem: css`\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 `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\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 /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n `}\n />\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","css","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","emptyWrapper","_templateObject8","emptyImg","_templateObject9","message","_templateObject10","messageRight","_templateObject11","quickReplies","_templateObject12","replyItem","_templateObject13","highlight","_templateObject14","inputBar","_templateObject15","input","_templateObject16","sendWrapper","_templateObject17","stopButton","_templateObject18","sendButton","_templateObject19","uploadBtn","_templateObject20","clearBtn","_templateObject21","chatFooter","_templateObject22","footerTips","_templateObject23","flexCenterGap2","_templateObject24","iconHuihuarenqun","_templateObject25","popoverFooter","_templateObject26","divider","_templateObject27","flexCenterGap4","_templateObject28","iconZengjiaDisabled","_templateObject29","iconZengjiaNormal","_templateObject30","actionHeaderWrapper","_templateObject31","actionHeaderItem","_templateObject32","actionHeaderIcon","_templateObject33","actionHeaderText","_templateObject34","actionHeaderDetail","_templateObject35","actionDetailTitle","_templateObject36","actionHeaderDetailItem","_templateObject37","actionHeaderCost","_templateObject38","GlobalStyle","styles","_templateObject39"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\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 `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\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 `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\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 `,\n\n emptyWrapper: css`\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 `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\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 `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\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 `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n `,\n\n stopButton: css`\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 `,\n\n sendButton: css`\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: #000000;\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: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\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 `,\n\n clearBtn: css`\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 `,\n\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n flexCenterGap2: css`\n display: flex;\n align-items: center;\n gap: 8px;\n `,\n\n iconHuihuarenqun: css`\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 `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n flexCenterGap4: css`\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `,\n\n iconZengjiaDisabled: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n `,\n\n iconZengjiaNormal: css`\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 `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderItem: css`\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 `,\n actionHeaderIcon: css`\n height: 14px;\n `,\n actionHeaderText: css`\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\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 `,\n actionHeaderDetailItem: css`\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 `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\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 /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n `}\n />\n);\n"],"mappings":"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"}
@@ -18,7 +18,9 @@ var XAiConversations = function XAiConversations(props) {
18
18
  var styles = useStyles();
19
19
  var _useChatbotContext = useChatbotContext(props),
20
20
  mergedProps = _useChatbotContext.mergedProps;
21
- var sessionList = mergedProps.sessionList,
21
+ var _mergedProps$isNarrow = mergedProps.isNarrow,
22
+ isNarrow = _mergedProps$isNarrow === void 0 ? false : _mergedProps$isNarrow,
23
+ sessionList = mergedProps.sessionList,
22
24
  style = mergedProps.style,
23
25
  onActiveChange = mergedProps.onActiveChange,
24
26
  onNewChat = mergedProps.onNewChat,
@@ -51,7 +53,7 @@ var XAiConversations = function XAiConversations(props) {
51
53
  }, 300);
52
54
  };
53
55
  return /*#__PURE__*/_jsxs("div", {
54
- children: [/*#__PURE__*/_jsx(GlobalStyle, {}), !listVisible && /*#__PURE__*/_jsxs("div", {
56
+ children: [/*#__PURE__*/_jsx(GlobalStyle, {}), (!listVisible || isNarrow) && /*#__PURE__*/_jsxs("div", {
55
57
  className: styles.capWrapper,
56
58
  children: [/*#__PURE__*/_jsx("img", {
57
59
  alt: "logo",
@@ -78,7 +80,7 @@ var XAiConversations = function XAiConversations(props) {
78
80
  style: {
79
81
  display: listVisible ? 'block' : 'none'
80
82
  },
81
- className: clsx(styles.fWrapper, animateDirection === 'in' && styles.slideIn, animateDirection === 'out' && styles.slideOut),
83
+ className: clsx(isNarrow ? styles.nWrapper : styles.fWrapper, animateDirection === 'in' && styles.slideIn, animateDirection === 'out' && styles.slideOut),
82
84
  children: [/*#__PURE__*/_jsxs("div", {
83
85
  className: styles.fheaderWrapper,
84
86
  children: [/*#__PURE__*/_jsx("img", {
@@ -144,6 +146,9 @@ var XAiConversations = function XAiConversations(props) {
144
146
  })
145
147
  })
146
148
  })]
149
+ }), isNarrow && listVisible && /*#__PURE__*/_jsx("div", {
150
+ className: styles.mask,
151
+ onClick: handleCloseList
147
152
  })]
148
153
  });
149
154
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","useChatbotContext","logo","AddChatIcon","flashOpen","InfiniteScroll","SESSION_PAGE_SIZE","clsx","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","children","className","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport clsx from 'clsx';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div>\n <GlobalStyle />\n {\n !listVisible && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n }\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","useChatbotContext","logo","AddChatIcon","flashOpen","InfiniteScroll","SESSION_PAGE_SIZE","clsx","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","children","className","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport clsx from 'clsx';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div>\n <GlobalStyle />\n {/**顶部操作栏 */}\n {\n (!listVisible || isNarrow) && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n }\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare const useStyles: () => {
6
6
  addChatBtn: string;
7
7
  tipTitle: string;
8
8
  fWrapper: string;
9
+ nWrapper: string;
10
+ mask: string;
9
11
  fheaderWrapper: string;
10
12
  scrollList: string;
11
13
  slideIn: 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;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
3
3
  import React from 'react';
4
4
  import { css, keyframes } from '@emotion/css';
5
5
  import { css as globalCss, Global } from '@emotion/react';
@@ -21,16 +21,18 @@ export var useStyles = withBasicStyles(function () {
21
21
  capIcon: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n "]))),
22
22
  addChatBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n "]))),
23
23
  tipTitle: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n "]))),
24
- fWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n "]))),
25
- fheaderWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n "]))),
26
- scrollList: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n max-height: calc(100vh - 120px); /* 120px\u4E3A\u5934\u90E8\u9AD8\u5EA6\uFF0C\u53EF\u6839\u636E\u5B9E\u9645\u8C03\u6574 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Chrome, Edge, Safari\uFF09 */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Firefox\uFF09 */\n scrollbar-width: none;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08IE/Edge\uFF09 */\n -ms-overflow-style: none;\n "]))),
27
- slideIn: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideInRight),
28
- slideOut: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideOutRight)
24
+ fWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n "]))),
25
+ nWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n "]))),
26
+ mask: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n "]))),
27
+ fheaderWrapper: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n "]))),
28
+ scrollList: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n max-height: calc(100vh - 120px); /* 120px\u4E3A\u5934\u90E8\u9AD8\u5EA6\uFF0C\u53EF\u6839\u636E\u5B9E\u9645\u8C03\u6574 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Chrome, Edge, Safari\uFF09 */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Firefox\uFF09 */\n scrollbar-width: none;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08IE/Edge\uFF09 */\n -ms-overflow-style: none;\n "]))),
29
+ slideIn: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideInRight),
30
+ slideOut: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideOutRight)
29
31
  };
30
32
  });
31
33
  export var GlobalStyle = function GlobalStyle() {
32
34
  return /*#__PURE__*/_jsx(Global, {
33
- styles: globalCss(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n "])))
35
+ styles: globalCss(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n "])))
34
36
  });
35
37
  };
36
38
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","capWrapper","_templateObject3","capShape","_templateObject4","capIcon","_templateObject5","addChatBtn","_templateObject6","tipTitle","_templateObject7","fWrapper","_templateObject8","fheaderWrapper","_templateObject9","scrollList","_templateObject10","slideIn","_templateObject11","slideOut","_templateObject12","GlobalStyle","styles","_templateObject13"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}))\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAGhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAGD,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mFAId;IAEDM,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDe,OAAO,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,0QAgBX;IAEDU,UAAU,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,sZAqBd;IAEDY,QAAQ,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,gFAIZ;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,oIAMZ;IAEDgB,cAAc,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,4HAKlB;IAEDkB,UAAU,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+jBAkBd;IAEDoB,OAAO,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,iDACGF,YAAY,CAC1B;IACDwB,QAAQ,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAMuB,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChChC,IAAA,CAACH,MAAM;IACLoC,MAAM,EAAErC,SAAS,CAAAsC,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
1
+ {"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","capWrapper","_templateObject3","capShape","_templateObject4","capIcon","_templateObject5","addChatBtn","_templateObject6","tipTitle","_templateObject7","fWrapper","_templateObject8","nWrapper","_templateObject9","mask","_templateObject10","fheaderWrapper","_templateObject11","scrollList","_templateObject12","slideIn","_templateObject13","slideOut","_templateObject14","GlobalStyle","styles","_templateObject15"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}))\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAGhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAGD,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mFAId;IAEDM,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDe,OAAO,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,0QAgBX;IAEDU,UAAU,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,sZAqBd;IAEDY,QAAQ,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,gFAIZ;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,6JAOZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,+PAWZ;IAEDkB,IAAI,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,sLASR;IAEDoB,cAAc,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,4HAKlB;IAEDsB,UAAU,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,+jBAkBd;IAEDwB,OAAO,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,iDACGF,YAAY,CAC1B;IACD4B,QAAQ,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM2B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCpC,IAAA,CAACH,MAAM;IACLwC,MAAM,EAAEzC,SAAS,CAAA0C,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
@@ -194,7 +194,7 @@ export var 携带历史记录示例 = {
194
194
  var providerRef = React.useRef(null);
195
195
  return /*#__PURE__*/_jsx("div", {
196
196
  style: {
197
- width: '800px',
197
+ width: '1080px',
198
198
  height: '600px',
199
199
  overflow: 'hidden'
200
200
  },
@@ -207,12 +207,19 @@ export var 携带历史记录示例 = {
207
207
  onMessage: function onMessage(data) {
208
208
  return console.log(data);
209
209
  },
210
- children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {
211
- navbar: {
212
- title: 'Provider 聊天机器人',
213
- subtitle: '由 Provider 管理消息',
214
- avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
215
- }
210
+ children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
211
+ style: {
212
+ flex: 1,
213
+ display: 'flex',
214
+ justifyContent: 'center'
215
+ },
216
+ children: /*#__PURE__*/_jsx(XAiChatbot, {
217
+ navbar: {
218
+ title: 'Provider 聊天机器人',
219
+ subtitle: '由 Provider 管理消息',
220
+ avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
221
+ }
222
+ })
216
223
  })]
217
224
  }))
218
225
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","pt","tc","providerId","多容器示例","width","携带历史记录示例","overflow","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: { \n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n pt?: string; // 授权方式\n tc?: string; // 租户key\n }`\n },\n category: '配置选项'\n }\n }\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat('你好,AI!');\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '800px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI4ZjYxNjE2Yy05ZWZjLTQ5ZmMtOWFmYi00OWZiZDNhNGVmNzciLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTc5MjUwOTQsImV4cCI6MTc1NzkzMjI5NCwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NTUyMzA4NTA4OTU2ODc2ODAiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9._lZMQ_V0Tzv54Cez-Wc9OQCpP1dt6k0HqOiGZ8DBd_f3HPa1mjF3wJP-0ToBLH8udMrFQmkjAOD3jzvTUqHSJA',\n config: {\n appNo: 'App1955230850895687680',\n pt: 'MainStation',\n tc: 'ZABX',\n },\n providerId: 'demo-provider',\n },\n};\n\n// export const 带历史记录聊天窗口: Story = {\n// render: (args) => {\n// function WithStyles(props: any) {\n// const styles = useStyles();\n// return (\n// <XAiProvider {...props}>\n// <div className={styles.wrapper}>\n// <div>\n// <XAiConversations />\n// </div>\n// <div>\n// <XAiChatbot />\n// </div>\n// </div>\n// </XAiProvider>\n// );\n// }\n// return <WithStyles {...args} />;\n// },\n// args: {\n// url: 'http://ai-platform.xline-dev.test.xinke.biz',\n// token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJjYWIxYjM3Ni03MmZjLTRkNWEtOTIzMC01N2U3NmZiMGI4NmQiLCJzdWIiOiJSZXgiLCJpc3MiOiJodHRwOi8vY2hhdC10ZXN0LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTQzMTc1OTAsImV4cCI6MTc1NDkyMjM5MCwidHlwZSI6InJlZnJlc2giLCJjbGllbnRfaWQiOiJBcHAxOTUwMDIwNTk0NDUyNjYwMjI0Iiwic2NvcGUiOiJhbGwiLCJwbGF0Zm9ybV90eXBlIjoiTWFpblN0YXRpb24ifQ.crZFQRycuHHA1iIIFJ5ak9kS1-04Eqro-QWWG8HZj6Dz7DkLWYuQBPCrUlCtavGu0XW5tqHZ5WW4tdST06FvEA',\n// config: {\n// appNo: 'App1952213101022154752',\n// pt: 'MainStation',\n// tc: 'ZABX',\n// },\n// providerId: 'demo-provider',\n// },\n// };\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: '800px', height: '600px', overflow: 'hidden' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiZGVmZjAyZS01N2VmLTQzMzItOGY5Zi1lNmMyZDdjM2RlYTEiLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTgwOTAxMDIsImV4cCI6MTc1ODA5NzMwMiwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NjMxODcwMjEwMzc5Mjg0NDgiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9.NrnkXcGUZ098ElJmSH1DqCAxHAF05d9Rs15JiuprnW6Z4WK6m4DrDvZTxbNcYcfrtHvcc3nCBAYajz6x5M03QA',\n config: {\n appNo: 'App1963187021037928448',\n pt: 'MainStation',\n tc: 'ZABX',\n chatProps: {\n clearBtnShow: false\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
1
+ {"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","pt","tc","providerId","多容器示例","width","携带历史记录示例","overflow","flex","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: { \n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n pt?: string; // 授权方式\n tc?: string; // 租户key\n }`\n },\n category: '配置选项'\n }\n }\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat('你好,AI!');\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '800px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI4ZjYxNjE2Yy05ZWZjLTQ5ZmMtOWFmYi00OWZiZDNhNGVmNzciLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTc5MjUwOTQsImV4cCI6MTc1NzkzMjI5NCwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NTUyMzA4NTA4OTU2ODc2ODAiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9._lZMQ_V0Tzv54Cez-Wc9OQCpP1dt6k0HqOiGZ8DBd_f3HPa1mjF3wJP-0ToBLH8udMrFQmkjAOD3jzvTUqHSJA',\n config: {\n appNo: 'App1955230850895687680',\n pt: 'MainStation',\n tc: 'ZABX',\n },\n providerId: 'demo-provider',\n },\n};\n\n// export const 带历史记录聊天窗口: Story = {\n// render: (args) => {\n// function WithStyles(props: any) {\n// const styles = useStyles();\n// return (\n// <XAiProvider {...props}>\n// <div className={styles.wrapper}>\n// <div>\n// <XAiConversations />\n// </div>\n// <div>\n// <XAiChatbot />\n// </div>\n// </div>\n// </XAiProvider>\n// );\n// }\n// return <WithStyles {...args} />;\n// },\n// args: {\n// url: 'http://ai-platform.xline-dev.test.xinke.biz',\n// token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJjYWIxYjM3Ni03MmZjLTRkNWEtOTIzMC01N2U3NmZiMGI4NmQiLCJzdWIiOiJSZXgiLCJpc3MiOiJodHRwOi8vY2hhdC10ZXN0LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTQzMTc1OTAsImV4cCI6MTc1NDkyMjM5MCwidHlwZSI6InJlZnJlc2giLCJjbGllbnRfaWQiOiJBcHAxOTUwMDIwNTk0NDUyNjYwMjI0Iiwic2NvcGUiOiJhbGwiLCJwbGF0Zm9ybV90eXBlIjoiTWFpblN0YXRpb24ifQ.crZFQRycuHHA1iIIFJ5ak9kS1-04Eqro-QWWG8HZj6Dz7DkLWYuQBPCrUlCtavGu0XW5tqHZ5WW4tdST06FvEA',\n// config: {\n// appNo: 'App1952213101022154752',\n// pt: 'MainStation',\n// tc: 'ZABX',\n// },\n// providerId: 'demo-provider',\n// },\n// };\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: '1080px', height: '600px', overflow: 'hidden' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <div style={{ flex: 1, display: 'flex', justifyContent: 'center' }}>\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </div>\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiZGVmZjAyZS01N2VmLTQzMzItOGY5Zi1lNmMyZDdjM2RlYTEiLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTgwOTAxMDIsImV4cCI6MTc1ODA5NzMwMiwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NjMxODcwMjEwMzc5Mjg0NDgiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9.NrnkXcGUZ098ElJmSH1DqCAxHAF05d9Rs15JiuprnW6Z4WK6m4DrDvZTxbNcYcfrtHvcc3nCBAYajz6x5M03QA',\n config: {\n appNo: 'App1963187021037928448',\n pt: 'MainStation',\n tc: 'ZABX',\n chatProps: {\n clearBtnShow: false\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { XAiProviderProps, XAiProviderHandle } from "../../types/XAiProvider";
3
- declare const XAiProvider: React.ForwardRefExoticComponent<XAiProviderProps & React.RefAttributes<XAiProviderHandle>>;
3
+ declare const XAiProvider: import("react").ForwardRefExoticComponent<XAiProviderProps & import("react").RefAttributes<XAiProviderHandle>>;
4
4
  export default XAiProvider;
@@ -1,10 +1,13 @@
1
- import React, { forwardRef, useImperativeHandle } from 'react';
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';
2
4
  import { message, Divider, Modal, Input } from 'antd';
3
5
  import copy from 'copy-to-clipboard';
4
6
  import { XProvider } from '@ant-design/x';
5
7
  import { ExclamationCircleFilled } from '@ant-design/icons';
6
8
  import { XAiContext } from "../../context/AiProviderContext";
7
9
  import useAgentGenerator from "../../hooks/useAgentGenerator";
10
+ import { MOBILE_MAX_WIDTH } from "../../constants";
8
11
  import userIcon from "../../assets/user.png";
9
12
  import { jsx as _jsx } from "react/jsx-runtime";
10
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -64,6 +67,46 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
64
67
  setCurrentSessionDetail: setCurrentSessionDetail
65
68
  };
66
69
  }, [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);
70
+ var _useState = useState(false),
71
+ _useState2 = _slicedToArray(_useState, 2),
72
+ isNarrow = _useState2[0],
73
+ setIsNarrow = _useState2[1];
74
+ var divRef = useRef(null);
75
+
76
+ // 监听容器宽度变化
77
+ useEffect(function () {
78
+ var div = divRef.current;
79
+ if (!div) return;
80
+
81
+ // 创建监听器
82
+ var resizeObserver = new ResizeObserver(function (entries) {
83
+ var _iterator = _createForOfIteratorHelper(entries),
84
+ _step;
85
+ try {
86
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
87
+ var entry = _step.value;
88
+ var width = entry.contentRect.width;
89
+ setIsNarrow(width <= MOBILE_MAX_WIDTH);
90
+ }
91
+ } catch (err) {
92
+ _iterator.e(err);
93
+ } finally {
94
+ _iterator.f();
95
+ }
96
+ });
97
+
98
+ // 开始监听
99
+ resizeObserver.observe(div);
100
+
101
+ // 初始化检查
102
+ var initialWidth = div.offsetWidth;
103
+ setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);
104
+
105
+ // 清理函数
106
+ return function () {
107
+ resizeObserver.disconnect();
108
+ };
109
+ }, []);
67
110
 
68
111
  // 发送消息
69
112
  var handleSendMessage = function handleSendMessage(_type, content) {
@@ -274,6 +317,7 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
274
317
  error: null,
275
318
  activeKey: currentSessionId,
276
319
  clearBtnShow: clearBtnShow,
320
+ isNarrow: isNarrow,
277
321
  messageTooltip: ToolTip,
278
322
  onSend: handleSendMessage,
279
323
  onClear: handleCreateNewMessage,
@@ -286,9 +330,11 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
286
330
  isInProvider: true
287
331
  },
288
332
  children: /*#__PURE__*/_jsx("div", {
333
+ ref: divRef,
289
334
  style: {
290
335
  display: 'flex',
291
- height: '100%'
336
+ height: '100%',
337
+ position: 'relative'
292
338
  },
293
339
  children: children
294
340
  })