@ai-group/chat-sdk 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +14 -5
  2. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
  3. package/dist/cjs/components/XAiChatbot/index.js +21 -102
  4. package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
  5. package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -14
  6. package/dist/cjs/components/XAiChatbot/styles.js +19 -161
  7. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  8. package/dist/cjs/components/XAiConversations/index.js +4 -3
  9. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  10. package/dist/cjs/components/XAiConversations/styles.d.ts +4 -0
  11. package/dist/cjs/components/XAiConversations/styles.js +23 -0
  12. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  13. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +3 -3
  14. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  15. package/dist/cjs/components/XAiProvider/demo.styles.d.ts +2 -0
  16. package/dist/cjs/components/XAiProvider/index.d.ts +2 -2
  17. package/dist/cjs/components/XAiProvider/index.js +42 -12
  18. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  19. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +6 -0
  20. package/dist/cjs/components/XAiSender/XAiSender.stories.js +86 -0
  21. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +7 -0
  22. package/dist/cjs/components/XAiSender/index.d.ts +4 -0
  23. package/dist/cjs/components/XAiSender/index.js +168 -0
  24. package/dist/cjs/components/XAiSender/index.js.map +7 -0
  25. package/dist/cjs/components/XAiSender/styles.d.ts +47 -0
  26. package/dist/cjs/components/XAiSender/styles.js +157 -0
  27. package/dist/cjs/components/XAiSender/styles.js.map +7 -0
  28. package/dist/cjs/constants/index.d.ts +1 -0
  29. package/dist/cjs/constants/index.js +3 -0
  30. package/dist/cjs/constants/index.js.map +2 -2
  31. package/dist/cjs/hooks/useAgentGenerator.js.map +1 -1
  32. package/dist/cjs/styles/common.d.ts +9 -0
  33. package/dist/cjs/styles/common.js +30 -0
  34. package/dist/cjs/styles/common.js.map +2 -2
  35. package/dist/cjs/types/XAiChatbot.d.ts +5 -17
  36. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  37. package/dist/cjs/types/XAiConversations.d.ts +2 -0
  38. package/dist/cjs/types/XAiConversations.js.map +1 -1
  39. package/dist/cjs/types/XAiProvider.d.ts +6 -0
  40. package/dist/cjs/types/XAiProvider.js.map +2 -2
  41. package/dist/cjs/types/XAiSender.d.ts +13 -0
  42. package/dist/cjs/types/XAiSender.js +18 -0
  43. package/dist/cjs/types/XAiSender.js.map +7 -0
  44. package/dist/cjs/types/index.d.ts +1 -0
  45. package/dist/cjs/types/index.js +2 -0
  46. package/dist/cjs/types/index.js.map +2 -2
  47. package/dist/cjs/utils/umdEntry.js +2 -2
  48. package/dist/cjs/utils/umdEntry.js.map +2 -2
  49. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +17 -6
  50. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
  51. package/dist/esm/components/XAiChatbot/index.js +37 -177
  52. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  53. package/dist/esm/components/XAiChatbot/styles.d.ts +2 -14
  54. package/dist/esm/components/XAiChatbot/styles.js +13 -33
  55. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  56. package/dist/esm/components/XAiConversations/index.js +8 -3
  57. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  58. package/dist/esm/components/XAiConversations/styles.d.ts +4 -0
  59. package/dist/esm/components/XAiConversations/styles.js +9 -7
  60. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  61. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +14 -7
  62. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  63. package/dist/esm/components/XAiProvider/demo.styles.d.ts +2 -0
  64. package/dist/esm/components/XAiProvider/index.d.ts +2 -2
  65. package/dist/esm/components/XAiProvider/index.js +50 -3
  66. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  67. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +6 -0
  68. package/dist/esm/components/XAiSender/XAiSender.stories.js +66 -0
  69. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -0
  70. package/dist/esm/components/XAiSender/index.d.ts +4 -0
  71. package/dist/esm/components/XAiSender/index.js +211 -0
  72. package/dist/esm/components/XAiSender/index.js.map +1 -0
  73. package/dist/esm/components/XAiSender/styles.d.ts +47 -0
  74. package/dist/esm/components/XAiSender/styles.js +21 -0
  75. package/dist/esm/components/XAiSender/styles.js.map +1 -0
  76. package/dist/esm/constants/index.d.ts +1 -0
  77. package/dist/esm/constants/index.js +3 -0
  78. package/dist/esm/constants/index.js.map +1 -1
  79. package/dist/esm/hooks/useAgentGenerator.js +1 -1
  80. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  81. package/dist/esm/styles/common.d.ts +9 -0
  82. package/dist/esm/styles/common.js +9 -2
  83. package/dist/esm/styles/common.js.map +1 -1
  84. package/dist/esm/types/XAiChatbot.d.ts +5 -17
  85. package/dist/esm/types/XAiChatbot.js.map +1 -1
  86. package/dist/esm/types/XAiConversations.d.ts +2 -0
  87. package/dist/esm/types/XAiConversations.js.map +1 -1
  88. package/dist/esm/types/XAiProvider.d.ts +6 -0
  89. package/dist/esm/types/XAiProvider.js.map +1 -1
  90. package/dist/esm/types/XAiSender.d.ts +13 -0
  91. package/dist/esm/types/XAiSender.js +2 -0
  92. package/dist/esm/types/XAiSender.js.map +1 -0
  93. package/dist/esm/types/index.d.ts +1 -0
  94. package/dist/esm/types/index.js +1 -0
  95. package/dist/esm/types/index.js.map +1 -1
  96. package/dist/esm/utils/umdEntry.js +16 -2
  97. package/dist/esm/utils/umdEntry.js.map +1 -1
  98. package/dist/umd/chat-sdk.min.js +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { useState } from 'react';
3
+ import XAiSender from '.';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ var meta = {
6
+ title: 'AI组件/XAiSender 输入框',
7
+ component: XAiSender,
8
+ parameters: {
9
+ layout: 'centered'
10
+ },
11
+ tags: ['autodocs'],
12
+ argTypes: {}
13
+ };
14
+ export default meta;
15
+ // 基础用法
16
+ var BasicUsageStory = function BasicUsageStory(args) {
17
+ var _useState = useState(''),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ content = _useState2[0],
20
+ setContent = _useState2[1];
21
+ var _useState3 = useState(false),
22
+ _useState4 = _slicedToArray(_useState3, 2),
23
+ loading = _useState4[0],
24
+ setLoading = _useState4[1];
25
+
26
+ // 模拟清空数据
27
+ var handleClear = function handleClear() {
28
+ console.log('clear');
29
+ };
30
+
31
+ // 模拟输入
32
+ var handleChange = function handleChange(content) {
33
+ setContent(content);
34
+ };
35
+
36
+ // 模拟快捷短语点击
37
+ var handleSendMessage = function handleSendMessage(type, content) {
38
+ setLoading(true);
39
+ console.log(type, content);
40
+ setTimeout(function () {
41
+ setContent('');
42
+ setLoading(false);
43
+ }, 2000);
44
+ };
45
+ return /*#__PURE__*/_jsx("div", {
46
+ style: {
47
+ width: 440,
48
+ border: '1px solid #eee',
49
+ padding: 20
50
+ },
51
+ children: /*#__PURE__*/_jsx(XAiSender, {
52
+ loading: loading,
53
+ value: content,
54
+ onClear: handleClear,
55
+ onChange: handleChange,
56
+ onSubmit: handleSendMessage,
57
+ onStop: handleClear,
58
+ footerTips: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u65E0\u6CD5\u786E\u4FDD\u771F\u5B9E\u51C6\u786E\uFF0C\u4EC5\u4F9B\u53C2\u8003"
59
+ })
60
+ });
61
+ };
62
+ export var 基础用法 = {
63
+ render: BasicUsageStory,
64
+ args: {}
65
+ };
66
+ //# sourceMappingURL=XAiSender.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","args","_useState","_useState2","_slicedToArray","content","setContent","_useState3","_useState4","loading","setLoading","handleClear","console","log","handleChange","handleSendMessage","type","setTimeout","style","width","border","padding","children","value","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.log('clear');\n };\n\n // 模拟输入\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 模拟快捷短语点击\n const handleSendMessage = (type: string, content: any) => {\n setLoading(true);\n console.log(type, content);\n setTimeout(() => {\n setContent('');\n setLoading(false);\n }, 2000);\n };\n\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips='内容由AI生成,无法确保真实准确,仅供参考'\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,OAAOC,SAAS,MAAM,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1B,IAAMC,IAA4B,GAAG;EACnCC,KAAK,EAAE,oBAAoB;EAC3BC,SAAS,EAAEL,SAAS;EACpBM,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeN,IAAI;AAGnB;AACA,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAS,EAAK;EACrC,IAAAC,SAAA,GAA8Bb,QAAQ,CAAC,EAAE,CAAC;IAAAc,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnCG,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAAI,UAAA,GAA8BlB,QAAQ,CAAC,KAAK,CAAC;IAAAmB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;;EAE1B;EACA,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBC,OAAO,CAACC,GAAG,CAAC,OAAO,CAAC;EACtB,CAAC;;EAED;EACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIT,OAAe,EAAK;IACxCC,UAAU,CAACD,OAAO,CAAC;EACrB,CAAC;;EAED;EACA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,IAAY,EAAEX,OAAY,EAAK;IACxDK,UAAU,CAAC,IAAI,CAAC;IAChBE,OAAO,CAACC,GAAG,CAACG,IAAI,EAAEX,OAAO,CAAC;IAC1BY,UAAU,CAAC,YAAM;MACfX,UAAU,CAAC,EAAE,CAAC;MACdI,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAGD,oBACElB,IAAA;IAAK0B,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,gBAAgB;MAAEC,OAAO,EAAE;IAAG,CAAE;IAAAC,QAAA,eAChE9B,IAAA,CAACF,SAAS;MACRmB,OAAO,EAAEA,OAAQ;MACjBc,KAAK,EAAElB,OAAQ;MACfmB,OAAO,EAAEb,WAAY;MACrBc,QAAQ,EAAEX,YAAa;MACvBY,QAAQ,EAAEX,iBAAkB;MAC5BY,MAAM,EAAEhB,WAAY;MACpBiB,UAAU,EAAC;IAAuB,CACnC;EAAC,CACC,CAAC;AAEV,CAAC;AAED,OAAO,IAAMC,IAAW,GAAG;EACzBC,MAAM,EAAE9B,eAAe;EACvBC,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { XAiSenderProps } from "../../types";
3
+ declare const XAiSender: React.FC<XAiSenderProps>;
4
+ export default XAiSender;
@@ -0,0 +1,211 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["footerTips", "clearBtnShow", "value", "onSend", "onChange", "onClear", "onStop", "onSubmit", "loading"];
5
+ // 文件: components/XAiSender/index.tsx
6
+ import React, { useRef, useState } from 'react';
7
+ import { Sender } from '@ant-design/x';
8
+ import { Button, Popover, Space, Tooltip, Spin } from 'antd';
9
+ import { ArrowUpOutlined, ClearOutlined } from '@ant-design/icons';
10
+ import { useChatbotContext } from "../../hooks/useProviderContext";
11
+ import clsx from 'clsx';
12
+ import { useStyles } from "./styles";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { Fragment as _Fragment } from "react/jsx-runtime";
16
+ var XAiSender = function XAiSender(props) {
17
+ // 使用新的 Hook 来处理 Provider 上下文
18
+ var _useChatbotContext = useChatbotContext(props),
19
+ mergedProps = _useChatbotContext.mergedProps;
20
+ var footerTips = mergedProps.footerTips,
21
+ clearBtnShow = mergedProps.clearBtnShow,
22
+ value = mergedProps.value,
23
+ onSend = mergedProps.onSend,
24
+ _onChange = mergedProps.onChange,
25
+ onClear = mergedProps.onClear,
26
+ onStop = mergedProps.onStop,
27
+ onSubmit = mergedProps.onSubmit,
28
+ _mergedProps$loading = mergedProps.loading,
29
+ propLoading = _mergedProps$loading === void 0 ? false : _mergedProps$loading,
30
+ resetProps = _objectWithoutProperties(mergedProps, _excluded);
31
+
32
+ // 如果在 Provider 中,使用 Provider 的状态
33
+ var loading = mergedProps.loading || propLoading;
34
+ var _useState = useState(false),
35
+ _useState2 = _slicedToArray(_useState, 2),
36
+ disabled = _useState2[0],
37
+ _setDisabled = _useState2[1]; // 是否禁止输入
38
+ var _useState3 = useState(''),
39
+ _useState4 = _slicedToArray(_useState3, 2),
40
+ mode = _useState4[0],
41
+ _setMode = _useState4[1]; // todo 模式
42
+ var _useState5 = useState(false),
43
+ _useState6 = _slicedToArray(_useState5, 2),
44
+ fileUploading = _useState6[0],
45
+ setFileUploading = _useState6[1]; // 文件上传进度条
46
+ var _useState7 = useState(false),
47
+ _useState8 = _slicedToArray(_useState7, 2),
48
+ clearPopoverVisible = _useState8[0],
49
+ setClearPopoverVisible = _useState8[1]; // 气泡卡片显隐藏
50
+ var styles = useStyles();
51
+
52
+ // 触发发送
53
+ var handleSend = function handleSend() {
54
+ if (value.trim()) {
55
+ // 直接使用合并后的 onSend,自动处理 Provider 和独立模式
56
+ onSubmit === null || onSubmit === void 0 || onSubmit('text', value);
57
+ }
58
+ };
59
+
60
+ // 文件上传按钮引用
61
+ var fileInputRef = useRef(null);
62
+
63
+ // 选择文件
64
+ var handleFileSelect = function handleFileSelect() {};
65
+
66
+ // 点击清除按钮
67
+ var handleClear = function handleClear() {
68
+ setClearPopoverVisible(true);
69
+ };
70
+
71
+ // 取消清除
72
+ var cancelClear = function cancelClear() {
73
+ setClearPopoverVisible(false);
74
+ };
75
+
76
+ // 确认清除
77
+ var confirmClear = function confirmClear() {
78
+ onClear === null || onClear === void 0 || onClear();
79
+ setClearPopoverVisible(false);
80
+ };
81
+
82
+ // 清空按钮提示文案
83
+ var clearConfirmContent = /*#__PURE__*/_jsxs("div", {
84
+ className: styles.p('2px'),
85
+ children: [/*#__PURE__*/_jsx("p", {
86
+ className: clsx(styles.mb(14), styles.mt(0)),
87
+ children: "\u786E\u8BA4\u6E05\u9664\u6240\u6709\u804A\u5929\u8BB0\u5F55\u5E76\u91CD\u7F6E\u4F1A\u8BDD\uFF01"
88
+ }), /*#__PURE__*/_jsxs("div", {
89
+ className: styles.popoverFooter,
90
+ children: [/*#__PURE__*/_jsx(Button, {
91
+ size: "small",
92
+ onClick: cancelClear,
93
+ children: "\u53D6\u6D88"
94
+ }), /*#__PURE__*/_jsx(Button, {
95
+ size: "small",
96
+ type: "primary",
97
+ danger: true,
98
+ onClick: confirmClear,
99
+ children: "\u786E\u8BA4"
100
+ })]
101
+ })]
102
+ });
103
+
104
+ // 自定义上传按钮
105
+ var uploadButton = /*#__PURE__*/_jsx("div", {
106
+ className: styles.flexCenterGap2,
107
+ children: /*#__PURE__*/_jsxs(Tooltip, {
108
+ placement: "top",
109
+ title: mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传',
110
+ children: [fileUploading ? /*#__PURE__*/_jsx(Spin, {
111
+ size: "small"
112
+ }) : /*#__PURE__*/_jsx("i", {
113
+ className: mode === 'single_agent_skill_mode' ? styles.iconZengjiaDisabled : styles.iconZengjiaNormal,
114
+ onClick: function onClick() {
115
+ if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {
116
+ var _fileInputRef$current;
117
+ (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
118
+ }
119
+ }
120
+ }), /*#__PURE__*/_jsx("input", {
121
+ type: "file",
122
+ ref: fileInputRef,
123
+ onChange: handleFileSelect,
124
+ style: {
125
+ display: 'none'
126
+ },
127
+ accept: "*/*",
128
+ disabled: fileUploading || mode === 'single_agent_skill_mode'
129
+ })]
130
+ })
131
+ });
132
+ return /*#__PURE__*/_jsxs(_Fragment, {
133
+ children: [/*#__PURE__*/_jsx("div", {
134
+ className: styles.chatFooter,
135
+ children: /*#__PURE__*/_jsxs("div", {
136
+ className: clsx(styles.flex, styles.gap(8)),
137
+ children: [clearBtnShow && /*#__PURE__*/_jsx(Popover, {
138
+ content: clearConfirmContent,
139
+ title: "\u786E\u8BA4\u6E05\u7A7A\u5BF9\u8BDD",
140
+ trigger: "click",
141
+ open: clearPopoverVisible,
142
+ onOpenChange: setClearPopoverVisible,
143
+ children: /*#__PURE__*/_jsx("div", {
144
+ className: styles.clearBtn,
145
+ style: {
146
+ border: '1px solid #E4E7EC',
147
+ borderRadius: '50%',
148
+ height: '35px',
149
+ width: '35px'
150
+ },
151
+ onClick: handleClear,
152
+ children: /*#__PURE__*/_jsx(ClearOutlined, {
153
+ className: styles.text(16)
154
+ })
155
+ })
156
+ }), /*#__PURE__*/_jsx(Sender, _objectSpread(_objectSpread({}, resetProps), {}, {
157
+ value: value,
158
+ className: styles.sendWrapper,
159
+ placeholder: "\u7EE7\u7EED\u5BF9\u8BDD...",
160
+ disabled: disabled,
161
+ loading: loading,
162
+ actions: function actions(_, info) {
163
+ var _info$components = info.components,
164
+ SendButton = _info$components.SendButton,
165
+ LoadingButton = _info$components.LoadingButton;
166
+ return /*#__PURE__*/_jsxs(Space, {
167
+ size: "small",
168
+ children: [/*#__PURE__*/_jsx("div", {
169
+ className: styles.w(20)
170
+ }), mode !== 'single_agent_skill_mode' && uploadButton, mode === 'meta_agent_mode' && /*#__PURE__*/_jsx("div", {
171
+ className: styles.flexCenterGap2,
172
+ style: {
173
+ visibility: 'hidden'
174
+ },
175
+ children: /*#__PURE__*/_jsx("i", {
176
+ className: styles.iconHuihuarenqun
177
+ })
178
+ }), /*#__PURE__*/_jsx("div", {
179
+ className: styles.divider
180
+ }), loading ? /*#__PURE__*/_jsx(LoadingButton, {
181
+ onClick: function onClick() {
182
+ return onStop === null || onStop === void 0 ? void 0 : onStop();
183
+ },
184
+ className: styles.stopButton
185
+ }) : /*#__PURE__*/_jsx(SendButton, {
186
+ className: styles.sendButton,
187
+ type: "primary",
188
+ icon: /*#__PURE__*/_jsx(ArrowUpOutlined, {
189
+ className: styles.text(20)
190
+ }),
191
+ disabled: disabled
192
+ })]
193
+ });
194
+ },
195
+ onChange: function onChange(v) {
196
+ _onChange === null || _onChange === void 0 || _onChange(v);
197
+ },
198
+ onSubmit: handleSend,
199
+ onCancel: function onCancel() {
200
+ onStop === null || onStop === void 0 || onStop();
201
+ }
202
+ }))]
203
+ })
204
+ }), footerTips && /*#__PURE__*/_jsx("div", {
205
+ className: styles.footerTips,
206
+ children: footerTips
207
+ })]
208
+ });
209
+ };
210
+ export default XAiSender;
211
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useRef","useState","Sender","Button","Popover","Space","Tooltip","Spin","ArrowUpOutlined","ClearOutlined","useChatbotContext","clsx","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","footerTips","clearBtnShow","value","onSend","onChange","onClear","onStop","onSubmit","_mergedProps$loading","loading","propLoading","resetProps","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","mode","_setMode","_useState5","_useState6","fileUploading","setFileUploading","_useState7","_useState8","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","fileInputRef","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","iconZengjiaDisabled","iconZengjiaNormal","current","_fileInputRef$current","click","ref","style","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","text","_objectSpread","sendWrapper","placeholder","actions","_","info","_info$components","components","SendButton","LoadingButton","w","visibility","iconHuihuarenqun","divider","stopButton","sendButton","icon","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["// 文件: components/XAiSender/index.tsx\nimport React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n Popover,\n Space,\n Tooltip,\n Spin,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n} from '@ant-design/icons';\nimport {\n XAiSenderProps\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n footerTips,\n clearBtnShow,\n value,\n onSend,\n onChange,\n onClear,\n onStop,\n onSubmit,\n loading: propLoading = false,\n ...resetProps\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\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 handleSend = () => {\n if (value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.('text', value);\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\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 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 return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n { clearBtnShow && <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 {...resetProps}\n value={value}\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={() => onStop?.()} 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 onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export declare const useStyles: () => {
2
+ chatFooter: string;
3
+ footerTips: string;
4
+ popoverFooter: string;
5
+ sendButton: string;
6
+ uploadBtn: string;
7
+ clearBtn: string;
8
+ stopButton: string;
9
+ divider: string;
10
+ sendWrapper: string;
11
+ iconHuihuarenqun: string;
12
+ iconZengjiaDisabled: string;
13
+ iconZengjiaNormal: string;
14
+ } & {
15
+ w: (width: string | number) => string;
16
+ h: (height: string | number) => string;
17
+ p: (padding: string) => string;
18
+ pb: (padding: string | number) => string;
19
+ pt: (padding: string | number) => string;
20
+ pl: (padding: string | number) => string;
21
+ pr: (padding: string | number) => string;
22
+ m: (margin: string) => string;
23
+ mb: (margin: string | number) => string;
24
+ mt: (margin: string | number) => string;
25
+ ml: (margin: string | number) => string;
26
+ mr: (margin: string | number) => string;
27
+ text: (size: string | number) => string;
28
+ weight: (size: number) => string;
29
+ textColor: (c: string) => string;
30
+ bg: (c: string) => string;
31
+ rs: (radius: string | number) => string;
32
+ gap: (g: string | number) => string;
33
+ flex: string;
34
+ flexCenter: string;
35
+ flexBetween: string;
36
+ flexColumn: string;
37
+ flex1: string;
38
+ cursor: (type: string) => string;
39
+ border: (color: string, width?: string) => string;
40
+ boxShadow: (shadow: string) => string;
41
+ transition: (property?: string, duration?: string) => string;
42
+ overflow: (type: string) => string;
43
+ position: (type: string) => string;
44
+ zIndex: (index: number) => string;
45
+ flexCenterGap2: string;
46
+ flexCenterGap4: string;
47
+ };
@@ -0,0 +1,21 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
3
+ import { css } from '@emotion/css';
4
+ import { withBasicStyles, lightBlue, primaryBlue } from "../../styles/common";
5
+ export var useStyles = withBasicStyles(function () {
6
+ return {
7
+ chatFooter: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n "]))),
8
+ footerTips: css(_templateObject2 || (_templateObject2 = _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 "]))),
9
+ popoverFooter: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
10
+ sendButton: css(_templateObject4 || (_templateObject4 = _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: #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: ", ";\n cursor: not-allowed;\n }\n "])), lightBlue),
11
+ uploadBtn: css(_templateObject5 || (_templateObject5 = _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),
12
+ clearBtn: css(_templateObject6 || (_templateObject6 = _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 "]))),
13
+ stopButton: css(_templateObject7 || (_templateObject7 = _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 "]))),
14
+ divider: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
15
+ sendWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n "]))),
16
+ iconHuihuarenqun: css(_templateObject10 || (_templateObject10 = _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 "]))),
17
+ iconZengjiaDisabled: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
18
+ iconZengjiaNormal: css(_templateObject12 || (_templateObject12 = _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 "])))
19
+ };
20
+ });
21
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9","iconHuihuarenqun","_templateObject10","iconZengjiaDisabled","_templateObject11","iconZengjiaNormal","_templateObject12"],"sources":["../../../../src/components/XAiSender/styles.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { withBasicStyles, lightBlue, primaryBlue } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\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 popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\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 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 divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\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 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}));"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe,EAAEC,SAAS,EAAEC,WAAW;AAEhD,OAAO,IAAMC,SAAS,GAAGH,eAAe,CAAC;EAAA,OAAO;IAC9CI,UAAU,EAAEL,GAAG,CAAAM,eAAA,KAAAA,eAAA,GAAAC,sBAAA,wGAKd;IAEDC,UAAU,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,oKAOd;IAEDG,aAAa,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,0EAIjB;IAEDK,UAAU,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,slBAqBSL,SAAS,CAGhC;IAEDY,SAAS,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,yWAKQJ,WAAW,CAYhC;IAEDa,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,qPAUZ;IAEDW,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,kPASd;IAEDa,OAAO,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,yHAMX;IAEDe,WAAW,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,oDAGf;IAEDiB,gBAAgB,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,yPAYpB;IAEDmB,mBAAmB,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,wIAMvB;IAEDqB,iBAAiB,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA;EAUxB,CAAC;AAAA,CAAC,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const SESSION_PAGE_SIZE = 50;
2
+ export declare const MOBILE_MAX_WIDTH = 760;
@@ -1,3 +1,6 @@
1
1
  // 会话分页数
2
2
  export var SESSION_PAGE_SIZE = 50;
3
+
4
+ // 移动端交互最大宽度
5
+ export var MOBILE_MAX_WIDTH = 760;
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SESSION_PAGE_SIZE"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE"}
1
+ {"version":3,"names":["SESSION_PAGE_SIZE","MOBILE_MAX_WIDTH"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;\n\n// 移动端交互最大宽度\nexport const MOBILE_MAX_WIDTH = 760;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE;;AAEnC;AACA,OAAO,IAAMC,gBAAgB,GAAG,GAAG"}
@@ -379,7 +379,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
379
379
  // eslint-disable-next-line react-hooks/exhaustive-deps
380
380
  }, [responseData]);
381
381
 
382
- // 添加对话(非普通对话)
382
+ // 添加对话(非交互触发)
383
383
  var setMessage = /*#__PURE__*/function () {
384
384
  var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
385
385
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {