@ai-group/chat-sdk 0.2.5 → 0.2.7
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.
- package/dist/cjs/assets/arrow-down.png +0 -0
- package/dist/cjs/assets/arrow-up.png +0 -0
- package/dist/cjs/assets/chatKnowledge.png +0 -0
- package/dist/cjs/assets/completed-black.png +0 -0
- package/dist/cjs/assets/completed.png +0 -0
- package/dist/cjs/assets/document-black.png +0 -0
- package/dist/cjs/assets/document.png +0 -0
- package/dist/cjs/assets/document.svg +16 -0
- package/dist/cjs/assets/empty.png +0 -0
- package/dist/cjs/assets/group.png +0 -0
- package/dist/cjs/assets/qa-black.png +0 -0
- package/dist/cjs/assets/qa.png +0 -0
- package/dist/cjs/assets/skillNo-black.png +0 -0
- package/dist/cjs/assets/skillNo.png +0 -0
- package/dist/cjs/assets/tools-black.png +0 -0
- package/dist/cjs/assets/tools.png +0 -0
- package/dist/cjs/assets/user.png +0 -0
- package/dist/cjs/client/base.d.ts +9 -0
- package/dist/cjs/client/base.js +18 -0
- package/dist/cjs/client/base.js.map +7 -0
- package/dist/cjs/client/restClient.d.ts +0 -0
- package/dist/cjs/client/restClient.js +1 -0
- package/dist/cjs/client/restClient.js.map +7 -0
- package/dist/cjs/client/wsClient.d.ts +0 -0
- package/dist/cjs/client/wsClient.js +1 -0
- package/dist/cjs/client/wsClient.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +484 -0
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/index.d.ts +12 -0
- package/dist/cjs/components/XAiChatbot/index.js +365 -0
- package/dist/cjs/components/XAiChatbot/index.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/styles.d.ts +71 -0
- package/dist/cjs/components/XAiChatbot/styles.js +409 -0
- package/dist/cjs/components/XAiChatbot/styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +127 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +7 -0
- package/dist/cjs/components/XAiProvider/index.d.ts +4 -0
- package/dist/cjs/components/XAiProvider/index.js +113 -0
- package/dist/cjs/components/XAiProvider/index.js.map +7 -0
- package/dist/cjs/components/XAiSDK.d.ts +10 -0
- package/dist/cjs/components/XAiSDK.js +53 -0
- package/dist/cjs/components/XAiSDK.js.map +7 -0
- package/dist/cjs/components/XAiWebSDKWrapper.d.ts +9 -0
- package/dist/cjs/components/XAiWebSDKWrapper.js +64 -0
- package/dist/cjs/components/XAiWebSDKWrapper.js.map +7 -0
- package/dist/cjs/context/AiProviderContext.d.ts +12 -0
- package/dist/cjs/context/AiProviderContext.js +74 -0
- package/dist/cjs/context/AiProviderContext.js.map +7 -0
- package/dist/cjs/context/ThemeContext.d.ts +20 -0
- package/dist/cjs/context/ThemeContext.js +37 -0
- package/dist/cjs/context/ThemeContext.js.map +7 -0
- package/dist/cjs/hooks/useAgentGenerator.d.ts +67 -0
- package/dist/cjs/hooks/useAgentGenerator.js +445 -0
- package/dist/cjs/hooks/useAgentGenerator.js.map +7 -0
- package/dist/cjs/hooks/useEventStreamRequest.d.ts +30 -0
- package/dist/cjs/hooks/useEventStreamRequest.js +188 -0
- package/dist/cjs/hooks/useEventStreamRequest.js.map +7 -0
- package/dist/cjs/hooks/useProviderContext.d.ts +33 -0
- package/dist/cjs/hooks/useProviderContext.js +105 -0
- package/dist/cjs/hooks/useProviderContext.js.map +7 -0
- package/dist/cjs/hooks/useXAiSDK.d.ts +14 -0
- package/dist/cjs/hooks/useXAiSDK.js +75 -0
- package/dist/cjs/hooks/useXAiSDK.js.map +7 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +61 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/services/api.d.ts +40 -0
- package/dist/cjs/services/api.js +49 -0
- package/dist/cjs/services/api.js.map +7 -0
- package/dist/cjs/styles/common.d.ts +64 -0
- package/dist/cjs/styles/common.js +144 -0
- package/dist/cjs/styles/common.js.map +7 -0
- package/dist/cjs/styles/markdown.d.ts +3 -0
- package/dist/cjs/styles/markdown.js +193 -0
- package/dist/cjs/styles/markdown.js.map +7 -0
- package/dist/cjs/types/XAiChatbot.d.ts +159 -0
- package/dist/cjs/types/XAiChatbot.js +18 -0
- package/dist/cjs/types/XAiChatbot.js.map +7 -0
- package/dist/cjs/types/XAiMessage.d.ts +121 -0
- package/dist/cjs/types/XAiMessage.js +55 -0
- package/dist/cjs/types/XAiMessage.js.map +7 -0
- package/dist/cjs/types/XAiProvider.d.ts +32 -0
- package/dist/cjs/types/XAiProvider.js +41 -0
- package/dist/cjs/types/XAiProvider.js.map +7 -0
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/index.js +28 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/types/mdx.d.ts +18 -0
- package/dist/cjs/utils/chat.d.ts +34 -0
- package/dist/cjs/utils/chat.js +1 -0
- package/dist/cjs/utils/chat.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.js +49 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/cjs/utils/providerManager.d.ts +22 -0
- package/dist/cjs/utils/providerManager.js +73 -0
- package/dist/cjs/utils/providerManager.js.map +7 -0
- package/dist/cjs/utils/request.d.ts +78 -0
- package/dist/cjs/utils/request.example.d.ts +39 -0
- package/dist/cjs/utils/request.example.js +211 -0
- package/dist/cjs/utils/request.example.js.map +7 -0
- package/dist/cjs/utils/request.js +231 -0
- package/dist/cjs/utils/request.js.map +7 -0
- package/dist/cjs/utils/umdEntry.d.ts +11 -0
- package/dist/cjs/utils/umdEntry.js +95 -0
- package/dist/cjs/utils/umdEntry.js.map +7 -0
- package/dist/esm/assets/user.png +0 -0
- package/dist/esm/client/base.d.ts +9 -0
- package/dist/esm/client/restClient.d.ts +0 -0
- package/dist/esm/client/wsClient.d.ts +0 -0
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
- package/dist/esm/components/XAiChatbot/index.d.ts +12 -0
- package/dist/esm/components/XAiChatbot/index.js +11 -3
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +71 -0
- package/dist/esm/components/XAiChatbot/styles.js +2 -2
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
- package/dist/esm/components/XAiProvider/index.d.ts +4 -0
- package/dist/esm/components/XAiProvider/index.js +3 -0
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSDK.d.ts +10 -0
- package/dist/esm/components/XAiWebSDKWrapper.d.ts +9 -0
- package/dist/esm/context/AiProviderContext.d.ts +12 -0
- package/dist/esm/context/ThemeContext.d.ts +20 -0
- package/dist/esm/hooks/useAgentGenerator.d.ts +67 -0
- package/dist/esm/hooks/useAgentGenerator.js +50 -17
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/hooks/useEventStreamRequest.d.ts +30 -0
- package/dist/esm/hooks/useProviderContext.d.ts +33 -0
- package/dist/esm/hooks/useXAiSDK.d.ts +14 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/services/api.d.ts +40 -0
- package/dist/esm/styles/common.d.ts +64 -0
- package/dist/esm/styles/markdown.d.ts +3 -0
- package/dist/esm/types/XAiChatbot.d.ts +159 -0
- package/dist/esm/types/XAiMessage.d.ts +121 -0
- package/dist/esm/types/XAiProvider.d.ts +32 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/utils/chat.d.ts +34 -0
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/providerManager.d.ts +22 -0
- package/dist/esm/utils/request.d.ts +78 -0
- package/dist/esm/utils/request.example.d.ts +39 -0
- package/dist/esm/utils/umdEntry.d.ts +11 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export declare const basicStyles: {
|
|
2
|
+
w: (width: number | string) => string;
|
|
3
|
+
h: (height: number | string) => string;
|
|
4
|
+
p: (padding: string) => string;
|
|
5
|
+
pb: (padding: number | string) => string;
|
|
6
|
+
pt: (padding: number | string) => string;
|
|
7
|
+
pl: (padding: number | string) => string;
|
|
8
|
+
pr: (padding: number | string) => string;
|
|
9
|
+
m: (margin: string) => string;
|
|
10
|
+
mb: (margin: number | string) => string;
|
|
11
|
+
mt: (margin: number | string) => string;
|
|
12
|
+
ml: (margin: number | string) => string;
|
|
13
|
+
mr: (margin: number | string) => string;
|
|
14
|
+
text: (size: number | string) => string;
|
|
15
|
+
weight: (size: number) => string;
|
|
16
|
+
textColor: (c: string) => string;
|
|
17
|
+
bg: (c: string) => string;
|
|
18
|
+
rs: (radius: number | string) => string;
|
|
19
|
+
gap: (g: number | string) => string;
|
|
20
|
+
flex: string;
|
|
21
|
+
flexCenter: string;
|
|
22
|
+
flexBetween: string;
|
|
23
|
+
flexColumn: string;
|
|
24
|
+
flex1: string;
|
|
25
|
+
cursor: (type: string) => string;
|
|
26
|
+
border: (color: string, width?: string) => string;
|
|
27
|
+
boxShadow: (shadow: string) => string;
|
|
28
|
+
transition: (property?: string, duration?: string) => string;
|
|
29
|
+
overflow: (type: string) => string;
|
|
30
|
+
position: (type: string) => string;
|
|
31
|
+
zIndex: (index: number) => string;
|
|
32
|
+
};
|
|
33
|
+
export declare function withBasicStyles<T extends Record<string, any>>(useCustomStyles: () => T): () => T & {
|
|
34
|
+
w: (width: string | number) => string;
|
|
35
|
+
h: (height: string | number) => string;
|
|
36
|
+
p: (padding: string) => string;
|
|
37
|
+
pb: (padding: string | number) => string;
|
|
38
|
+
pt: (padding: string | number) => string;
|
|
39
|
+
pl: (padding: string | number) => string;
|
|
40
|
+
pr: (padding: string | number) => string;
|
|
41
|
+
m: (margin: string) => string;
|
|
42
|
+
mb: (margin: string | number) => string;
|
|
43
|
+
mt: (margin: string | number) => string;
|
|
44
|
+
ml: (margin: string | number) => string;
|
|
45
|
+
mr: (margin: string | number) => string;
|
|
46
|
+
text: (size: string | number) => string;
|
|
47
|
+
weight: (size: number) => string;
|
|
48
|
+
textColor: (c: string) => string;
|
|
49
|
+
bg: (c: string) => string;
|
|
50
|
+
rs: (radius: string | number) => string;
|
|
51
|
+
gap: (g: string | number) => string;
|
|
52
|
+
flex: string;
|
|
53
|
+
flexCenter: string;
|
|
54
|
+
flexBetween: string;
|
|
55
|
+
flexColumn: string;
|
|
56
|
+
flex1: string;
|
|
57
|
+
cursor: (type: string) => string;
|
|
58
|
+
border: (color: string, width?: string) => string;
|
|
59
|
+
boxShadow: (shadow: string) => string;
|
|
60
|
+
transition: (property?: string, duration?: string) => string;
|
|
61
|
+
overflow: (type: string) => string;
|
|
62
|
+
position: (type: string) => string;
|
|
63
|
+
zIndex: (index: number) => string;
|
|
64
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/styles/common.ts
|
|
20
|
+
var common_exports = {};
|
|
21
|
+
__export(common_exports, {
|
|
22
|
+
basicStyles: () => basicStyles,
|
|
23
|
+
withBasicStyles: () => withBasicStyles
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(common_exports);
|
|
26
|
+
var import_css = require("@emotion/css");
|
|
27
|
+
var addPxIfNumber = (value) => {
|
|
28
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
29
|
+
};
|
|
30
|
+
var basicStyles = {
|
|
31
|
+
w: (width) => import_css.css`
|
|
32
|
+
width: ${addPxIfNumber(width)};
|
|
33
|
+
`,
|
|
34
|
+
h: (height) => import_css.css`
|
|
35
|
+
height: ${addPxIfNumber(height)};
|
|
36
|
+
`,
|
|
37
|
+
p: (padding) => import_css.css`
|
|
38
|
+
padding: ${padding};
|
|
39
|
+
`,
|
|
40
|
+
pb: (padding) => import_css.css`
|
|
41
|
+
padding-bottom: ${addPxIfNumber(padding)};
|
|
42
|
+
`,
|
|
43
|
+
pt: (padding) => import_css.css`
|
|
44
|
+
padding-top: ${addPxIfNumber(padding)};
|
|
45
|
+
`,
|
|
46
|
+
pl: (padding) => import_css.css`
|
|
47
|
+
padding-left: ${addPxIfNumber(padding)};
|
|
48
|
+
`,
|
|
49
|
+
pr: (padding) => import_css.css`
|
|
50
|
+
padding-right: ${addPxIfNumber(padding)};
|
|
51
|
+
`,
|
|
52
|
+
m: (margin) => import_css.css`
|
|
53
|
+
margin: ${margin};
|
|
54
|
+
`,
|
|
55
|
+
mb: (margin) => import_css.css`
|
|
56
|
+
margin-bottom: ${addPxIfNumber(margin)};
|
|
57
|
+
`,
|
|
58
|
+
mt: (margin) => import_css.css`
|
|
59
|
+
margin-top: ${addPxIfNumber(margin)};
|
|
60
|
+
`,
|
|
61
|
+
ml: (margin) => import_css.css`
|
|
62
|
+
margin-left: ${addPxIfNumber(margin)};
|
|
63
|
+
`,
|
|
64
|
+
mr: (margin) => import_css.css`
|
|
65
|
+
margin-right: ${addPxIfNumber(margin)};
|
|
66
|
+
`,
|
|
67
|
+
text: (size) => import_css.css`
|
|
68
|
+
font-size: ${addPxIfNumber(size)};
|
|
69
|
+
`,
|
|
70
|
+
weight: (size) => import_css.css`
|
|
71
|
+
font-weight: ${size};
|
|
72
|
+
`,
|
|
73
|
+
textColor: (c) => import_css.css`
|
|
74
|
+
color: ${c};
|
|
75
|
+
`,
|
|
76
|
+
bg: (c) => import_css.css`
|
|
77
|
+
background-color: ${c};
|
|
78
|
+
`,
|
|
79
|
+
rs: (radius) => import_css.css`
|
|
80
|
+
border-radius: ${addPxIfNumber(radius)};
|
|
81
|
+
`,
|
|
82
|
+
gap: (g) => import_css.css`
|
|
83
|
+
gap: ${addPxIfNumber(g)};
|
|
84
|
+
`,
|
|
85
|
+
flex: import_css.css`
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
`,
|
|
89
|
+
flexCenter: import_css.css`
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
`,
|
|
94
|
+
flexBetween: import_css.css`
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
justify-content: space-between;
|
|
98
|
+
`,
|
|
99
|
+
flexColumn: import_css.css`
|
|
100
|
+
display: flex;
|
|
101
|
+
flex-direction: column;
|
|
102
|
+
`,
|
|
103
|
+
flex1: import_css.css`
|
|
104
|
+
flex: 1;
|
|
105
|
+
`,
|
|
106
|
+
cursor: (type) => import_css.css`
|
|
107
|
+
cursor: ${type};
|
|
108
|
+
`,
|
|
109
|
+
border: (color, width = "1px") => import_css.css`
|
|
110
|
+
border: ${width} solid ${color};
|
|
111
|
+
`,
|
|
112
|
+
boxShadow: (shadow) => import_css.css`
|
|
113
|
+
box-shadow: ${shadow};
|
|
114
|
+
`,
|
|
115
|
+
transition: (property = "all", duration = "0.2s") => import_css.css`
|
|
116
|
+
transition: ${property} ${duration} ease;
|
|
117
|
+
`,
|
|
118
|
+
overflow: (type) => import_css.css`
|
|
119
|
+
overflow: ${type};
|
|
120
|
+
`,
|
|
121
|
+
position: (type) => import_css.css`
|
|
122
|
+
position: ${type};
|
|
123
|
+
`,
|
|
124
|
+
zIndex: (index) => import_css.css`
|
|
125
|
+
z-index: ${index};
|
|
126
|
+
`
|
|
127
|
+
};
|
|
128
|
+
function withBasicStyles(useCustomStyles) {
|
|
129
|
+
return () => {
|
|
130
|
+
const custom = useCustomStyles();
|
|
131
|
+
const result = {
|
|
132
|
+
...basicStyles,
|
|
133
|
+
...custom
|
|
134
|
+
// 组件样式放在后面,优先覆盖基础样式
|
|
135
|
+
};
|
|
136
|
+
return result;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
basicStyles,
|
|
142
|
+
withBasicStyles
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/styles/common.ts"],
|
|
4
|
+
"sourcesContent": ["import { css } from '@emotion/css';\n\n// 辅助函数:判断是否为数字,如果是数字则添加 px 单位\nconst addPxIfNumber = (value: number | string): string => {\n return typeof value === 'number' ? `${value}px` : value;\n};\n\n// 基础样式集合\nexport const basicStyles = {\n w: (width: number | string) => css`\n width: ${addPxIfNumber(width)};\n `,\n h: (height: number | string) => css`\n height: ${addPxIfNumber(height)};\n `,\n p: (padding: string) => css`\n padding: ${padding};\n `,\n pb: (padding: number | string) => css`\n padding-bottom: ${addPxIfNumber(padding)};\n `,\n pt: (padding: number | string) => css`\n padding-top: ${addPxIfNumber(padding)};\n `,\n pl: (padding: number | string) => css`\n padding-left: ${addPxIfNumber(padding)};\n `,\n pr: (padding: number | string) => css`\n padding-right: ${addPxIfNumber(padding)};\n `,\n m: (margin: string) => css`\n margin: ${margin};\n `,\n mb: (margin: number | string) => css`\n margin-bottom: ${addPxIfNumber(margin)};\n `,\n mt: (margin: number | string) => css`\n margin-top: ${addPxIfNumber(margin)};\n `,\n ml: (margin: number | string) => css`\n margin-left: ${addPxIfNumber(margin)};\n `,\n mr: (margin: number | string) => css`\n margin-right: ${addPxIfNumber(margin)};\n `,\n text: (size: number | string) => css`\n font-size: ${addPxIfNumber(size)};\n `,\n weight: (size: number) => css`\n font-weight: ${size};\n `,\n textColor: (c: string) => css`\n color: ${c};\n `,\n bg: (c: string) => css`\n background-color: ${c};\n `,\n rs: (radius: number | string) => css`\n border-radius: ${addPxIfNumber(radius)};\n `,\n gap: (g: number | string) => css`\n gap: ${addPxIfNumber(g)};\n `,\n flex: css`\n display: flex;\n align-items: center;\n `,\n flexCenter: css`\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n flexBetween: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n `,\n flexColumn: css`\n display: flex;\n flex-direction: column;\n `,\n flex1: css`\n flex: 1;\n `,\n cursor: (type: string) => css`\n cursor: ${type};\n `,\n border: (color: string, width = '1px') => css`\n border: ${width} solid ${color};\n `,\n boxShadow: (shadow: string) => css`\n box-shadow: ${shadow};\n `,\n transition: (property = 'all', duration = '0.2s') => css`\n transition: ${property} ${duration} ease;\n `,\n overflow: (type: string) => css`\n overflow: ${type};\n `,\n position: (type: string) => css`\n position: ${type};\n `,\n zIndex: (index: number) => css`\n z-index: ${index};\n `,\n};\n\n// 高阶函数:自动合并基础样式\nexport function withBasicStyles<T extends Record<string, any>>(useCustomStyles: () => T) {\n return () => {\n const custom = useCustomStyles();\n const result = {\n ...basicStyles,\n ...custom, // 组件样式放在后面,优先覆盖基础样式\n };\n return result as T & typeof basicStyles;\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AAGpB,IAAM,gBAAgB,CAAC,UAAmC;AACxD,SAAO,OAAO,UAAU,WAAW,GAAG,YAAY;AACpD;AAGO,IAAM,cAAc;AAAA,EACzB,GAAG,CAAC,UAA2B;AAAA,aACpB,cAAc,KAAK;AAAA;AAAA,EAE9B,GAAG,CAAC,WAA4B;AAAA,cACpB,cAAc,MAAM;AAAA;AAAA,EAEhC,GAAG,CAAC,YAAoB;AAAA,eACX;AAAA;AAAA,EAEb,IAAI,CAAC,YAA6B;AAAA,sBACd,cAAc,OAAO;AAAA;AAAA,EAEzC,IAAI,CAAC,YAA6B;AAAA,mBACjB,cAAc,OAAO;AAAA;AAAA,EAEtC,IAAI,CAAC,YAA6B;AAAA,oBAChB,cAAc,OAAO;AAAA;AAAA,EAEvC,IAAI,CAAC,YAA6B;AAAA,qBACf,cAAc,OAAO;AAAA;AAAA,EAExC,GAAG,CAAC,WAAmB;AAAA,cACX;AAAA;AAAA,EAEZ,IAAI,CAAC,WAA4B;AAAA,qBACd,cAAc,MAAM;AAAA;AAAA,EAEvC,IAAI,CAAC,WAA4B;AAAA,kBACjB,cAAc,MAAM;AAAA;AAAA,EAEpC,IAAI,CAAC,WAA4B;AAAA,mBAChB,cAAc,MAAM;AAAA;AAAA,EAErC,IAAI,CAAC,WAA4B;AAAA,oBACf,cAAc,MAAM;AAAA;AAAA,EAEtC,MAAM,CAAC,SAA0B;AAAA,iBAClB,cAAc,IAAI;AAAA;AAAA,EAEjC,QAAQ,CAAC,SAAiB;AAAA,mBACT;AAAA;AAAA,EAEjB,WAAW,CAAC,MAAc;AAAA,aACf;AAAA;AAAA,EAEX,IAAI,CAAC,MAAc;AAAA,wBACG;AAAA;AAAA,EAEtB,IAAI,CAAC,WAA4B;AAAA,qBACd,cAAc,MAAM;AAAA;AAAA,EAEvC,KAAK,CAAC,MAAuB;AAAA,WACpB,cAAc,CAAC;AAAA;AAAA,EAExB,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAKZ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKb,YAAY;AAAA;AAAA;AAAA;AAAA,EAIZ,OAAO;AAAA;AAAA;AAAA,EAGP,QAAQ,CAAC,SAAiB;AAAA,cACd;AAAA;AAAA,EAEZ,QAAQ,CAAC,OAAe,QAAQ,UAAU;AAAA,cAC9B,eAAe;AAAA;AAAA,EAE3B,WAAW,CAAC,WAAmB;AAAA,kBACf;AAAA;AAAA,EAEhB,YAAY,CAAC,WAAW,OAAO,WAAW,WAAW;AAAA,kBACrC,YAAY;AAAA;AAAA,EAE5B,UAAU,CAAC,SAAiB;AAAA,gBACd;AAAA;AAAA,EAEd,UAAU,CAAC,SAAiB;AAAA,gBACd;AAAA;AAAA,EAEd,QAAQ,CAAC,UAAkB;AAAA,eACd;AAAA;AAEf;AAGO,SAAS,gBAA+C,iBAA0B;AACvF,SAAO,MAAM;AACX,UAAM,SAAS,gBAAgB;AAC/B,UAAM,SAAS;AAAA,MACb,GAAG;AAAA,MACH,GAAG;AAAA;AAAA,IACL;AACA,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/styles/markdown.tsx
|
|
30
|
+
var markdown_exports = {};
|
|
31
|
+
__export(markdown_exports, {
|
|
32
|
+
default: () => markdown_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(markdown_exports);
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_react2 = require("@emotion/react");
|
|
37
|
+
var MarkdownGlobalStyle = () => /* @__PURE__ */ import_react.default.createElement(
|
|
38
|
+
import_react2.Global,
|
|
39
|
+
{
|
|
40
|
+
styles: import_react2.css`
|
|
41
|
+
.markdown-body {
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
min-width: 200px;
|
|
44
|
+
margin: 0 auto;
|
|
45
|
+
background: none !important;
|
|
46
|
+
}
|
|
47
|
+
.markdown-body p {
|
|
48
|
+
margin: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.markdown-body h1,
|
|
52
|
+
.markdown-body h2,
|
|
53
|
+
.markdown-body h3,
|
|
54
|
+
.markdown-body h4,
|
|
55
|
+
.markdown-body h5,
|
|
56
|
+
.markdown-body h6 {
|
|
57
|
+
font-weight: bold;
|
|
58
|
+
margin: 0.1em 0;
|
|
59
|
+
line-height: 1.4;
|
|
60
|
+
}
|
|
61
|
+
.markdown-body h1 { font-size: 2em; }
|
|
62
|
+
.markdown-body h2 { font-size: 1.5em; }
|
|
63
|
+
.markdown-body h3 { font-size: 1.2em; }
|
|
64
|
+
.markdown-body h4 { font-size: 1em; }
|
|
65
|
+
.markdown-body h5 { font-size: 0.9em; }
|
|
66
|
+
.markdown-body h6 { font-size: 0.8em; }
|
|
67
|
+
|
|
68
|
+
.markdown-body ul,
|
|
69
|
+
.markdown-body ol {
|
|
70
|
+
margin: 0 0 1em 1.5em;
|
|
71
|
+
padding: 0;
|
|
72
|
+
}
|
|
73
|
+
.markdown-body li {
|
|
74
|
+
margin: 0.2em 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.markdown-body blockquote {
|
|
78
|
+
margin: 1em 0;
|
|
79
|
+
padding: 0.5em 1em;
|
|
80
|
+
color: #666;
|
|
81
|
+
border-left: 4px solid #e0e0e0;
|
|
82
|
+
background: #fafafa;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.markdown-body code {
|
|
86
|
+
background: #f5f5f5;
|
|
87
|
+
border-radius: 3px;
|
|
88
|
+
padding: 2px 4px;
|
|
89
|
+
font-size: 95%;
|
|
90
|
+
font-family: 'Fira Mono', 'Menlo', 'Consolas', monospace;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.markdown-body pre {
|
|
94
|
+
background: #f5f5f5;
|
|
95
|
+
border-radius: 4px;
|
|
96
|
+
padding: 12px;
|
|
97
|
+
overflow-x: auto;
|
|
98
|
+
font-size: 14px;
|
|
99
|
+
margin: 16px 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.markdown-body a {
|
|
103
|
+
color: #1677ff;
|
|
104
|
+
text-decoration: underline;
|
|
105
|
+
word-break: break-all;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* 表格容器 */
|
|
109
|
+
.markdown-body table {
|
|
110
|
+
display: block;
|
|
111
|
+
overflow-x: auto;
|
|
112
|
+
border-collapse: collapse;
|
|
113
|
+
width: max-content;
|
|
114
|
+
min-width: 100%;
|
|
115
|
+
margin: 16px 0;
|
|
116
|
+
font-size: 14px;
|
|
117
|
+
/* 防止表格被父容器裁剪 */
|
|
118
|
+
max-width: 100%;
|
|
119
|
+
}
|
|
120
|
+
.markdown-body th,
|
|
121
|
+
.markdown-body td {
|
|
122
|
+
border: 1px solid #e0e0e0;
|
|
123
|
+
padding: 8px 12px;
|
|
124
|
+
text-align: left;
|
|
125
|
+
min-width: 120px; /* 设置最小宽度,可根据实际调整 */
|
|
126
|
+
white-space: nowrap; /* 防止内容换行 */
|
|
127
|
+
}
|
|
128
|
+
.markdown-body th {
|
|
129
|
+
background: #f5f5f5;
|
|
130
|
+
font-weight: bold;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.message-chatgpt p,
|
|
134
|
+
.message-chatgpt pre[class*='language-'] {
|
|
135
|
+
white-space: pre-wrap;
|
|
136
|
+
}
|
|
137
|
+
.message-chatgpt p:first-child {
|
|
138
|
+
margin-top: 0;
|
|
139
|
+
}
|
|
140
|
+
.message-chatgpt pre[class*='language-'],
|
|
141
|
+
.message-chatgpt code[class*='language-'] {
|
|
142
|
+
text-shadow: none;
|
|
143
|
+
}
|
|
144
|
+
.message-chatgpt pre[class*='language-'] {
|
|
145
|
+
font-size: 14px;
|
|
146
|
+
border-radius: 0.25rem;
|
|
147
|
+
position: relative;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
.message-chatgpt a:-webkit-any-link {
|
|
152
|
+
cursor: pointer;
|
|
153
|
+
text-decoration: underline;
|
|
154
|
+
}
|
|
155
|
+
.message-chatgpt .prism-title {
|
|
156
|
+
position: sticky;
|
|
157
|
+
left: 0;
|
|
158
|
+
right: 0;
|
|
159
|
+
width: 100%;
|
|
160
|
+
padding: 0.75rem;
|
|
161
|
+
margin-bottom: 15px;
|
|
162
|
+
border-radius: 4px;
|
|
163
|
+
background-color: #343540;
|
|
164
|
+
display: flex;
|
|
165
|
+
justify-content: space-between;
|
|
166
|
+
align-items: center;
|
|
167
|
+
}
|
|
168
|
+
.message-chatgpt .prism-title.dark {
|
|
169
|
+
background-color: #1f2937;
|
|
170
|
+
color: #6b7280;
|
|
171
|
+
}
|
|
172
|
+
.message-chatgpt .prism-copy {
|
|
173
|
+
float: right;
|
|
174
|
+
cursor: pointer;
|
|
175
|
+
color: inherit;
|
|
176
|
+
}
|
|
177
|
+
.message-chatgpt .prism-copy:hover {
|
|
178
|
+
color: #9df69b;
|
|
179
|
+
}
|
|
180
|
+
.message-chatgpt .prism-copy.dark:hover {
|
|
181
|
+
color: #d1d5db;
|
|
182
|
+
}
|
|
183
|
+
.copy-disable {
|
|
184
|
+
-webkit-user-select: none;
|
|
185
|
+
-moz-user-select: none;
|
|
186
|
+
-ms-user-select: none;
|
|
187
|
+
user-select: none;
|
|
188
|
+
}
|
|
189
|
+
`
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
var markdown_default = MarkdownGlobalStyle;
|
|
193
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/styles/markdown.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { Global, css } from '@emotion/react';\n\nconst MarkdownGlobalStyle: React.FC = () => (\n <Global\n styles={css`\n .markdown-body {\n box-sizing: border-box;\n min-width: 200px;\n margin: 0 auto;\n background: none !important;\n }\n .markdown-body p {\n margin: 0;\n }\n\n .markdown-body h1,\n .markdown-body h2,\n .markdown-body h3,\n .markdown-body h4,\n .markdown-body h5,\n .markdown-body h6 {\n font-weight: bold;\n margin: 0.1em 0;\n line-height: 1.4;\n }\n .markdown-body h1 { font-size: 2em; }\n .markdown-body h2 { font-size: 1.5em; }\n .markdown-body h3 { font-size: 1.2em; }\n .markdown-body h4 { font-size: 1em; }\n .markdown-body h5 { font-size: 0.9em; }\n .markdown-body h6 { font-size: 0.8em; }\n\n .markdown-body ul,\n .markdown-body ol {\n margin: 0 0 1em 1.5em;\n padding: 0;\n }\n .markdown-body li {\n margin: 0.2em 0;\n }\n\n .markdown-body blockquote {\n margin: 1em 0;\n padding: 0.5em 1em;\n color: #666;\n border-left: 4px solid #e0e0e0;\n background: #fafafa;\n }\n\n .markdown-body code {\n background: #f5f5f5;\n border-radius: 3px;\n padding: 2px 4px;\n font-size: 95%;\n font-family: 'Fira Mono', 'Menlo', 'Consolas', monospace;\n }\n\n .markdown-body pre {\n background: #f5f5f5;\n border-radius: 4px;\n padding: 12px;\n overflow-x: auto;\n font-size: 14px;\n margin: 16px 0;\n }\n\n .markdown-body a {\n color: #1677ff;\n text-decoration: underline;\n word-break: break-all;\n }\n\n /* 表格容器 */\n .markdown-body table {\n display: block;\n overflow-x: auto;\n border-collapse: collapse;\n width: max-content;\n min-width: 100%;\n margin: 16px 0;\n font-size: 14px;\n /* 防止表格被父容器裁剪 */\n max-width: 100%;\n }\n .markdown-body th,\n .markdown-body td {\n border: 1px solid #e0e0e0;\n padding: 8px 12px;\n text-align: left;\n min-width: 120px; /* 设置最小宽度,可根据实际调整 */\n white-space: nowrap; /* 防止内容换行 */\n }\n .markdown-body th {\n background: #f5f5f5;\n font-weight: bold;\n }\n\n .message-chatgpt p,\n .message-chatgpt pre[class*='language-'] {\n white-space: pre-wrap;\n }\n .message-chatgpt p:first-child {\n margin-top: 0;\n }\n .message-chatgpt pre[class*='language-'],\n .message-chatgpt code[class*='language-'] {\n text-shadow: none;\n }\n .message-chatgpt pre[class*='language-'] {\n font-size: 14px;\n border-radius: 0.25rem;\n position: relative;\n }\n\n \n .message-chatgpt a:-webkit-any-link {\n cursor: pointer;\n text-decoration: underline;\n }\n .message-chatgpt .prism-title {\n position: sticky;\n left: 0;\n right: 0;\n width: 100%;\n padding: 0.75rem;\n margin-bottom: 15px;\n border-radius: 4px;\n background-color: #343540;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .message-chatgpt .prism-title.dark {\n background-color: #1f2937;\n color: #6b7280;\n }\n .message-chatgpt .prism-copy {\n float: right;\n cursor: pointer;\n color: inherit;\n }\n .message-chatgpt .prism-copy:hover {\n color: #9df69b;\n }\n .message-chatgpt .prism-copy.dark:hover {\n color: #d1d5db;\n }\n .copy-disable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n `}\n />\n);\n\nexport default MarkdownGlobalStyle;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,IAAAA,gBAA4B;AAE5B,IAAM,sBAAgC,MACpC,6BAAAC,QAAA;AAAA,EAAC;AAAA;AAAA,IACC,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsJV;AAGF,IAAO,mBAAQ;",
|
|
6
|
+
"names": ["import_react", "React"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import React, { ReactNode, RefObject, ChangeEvent, FocusEvent, MouseEvent } from 'react';
|
|
2
|
+
import type { PromptProps } from '@ant-design/x';
|
|
3
|
+
import type { MessageType } from 'src/client/base';
|
|
4
|
+
import type { Messages } from './XAiMessage';
|
|
5
|
+
export interface User {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
avatar?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface MessageProps {
|
|
11
|
+
_id: string;
|
|
12
|
+
type: string;
|
|
13
|
+
content: Record<string, any>;
|
|
14
|
+
createdAt: number;
|
|
15
|
+
user: User;
|
|
16
|
+
position?: 'left' | 'right' | 'center' | 'pop';
|
|
17
|
+
hasTime?: boolean;
|
|
18
|
+
status?: 'pending' | 'sent' | 'fail';
|
|
19
|
+
}
|
|
20
|
+
export interface QuickReplyItemProps {
|
|
21
|
+
name: string;
|
|
22
|
+
code: string;
|
|
23
|
+
icon?: string;
|
|
24
|
+
img?: string;
|
|
25
|
+
isNew?: boolean;
|
|
26
|
+
isHighlight?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface ComposerHandle {
|
|
29
|
+
setText: (text: string) => void;
|
|
30
|
+
}
|
|
31
|
+
export interface ScrollToEndOptions {
|
|
32
|
+
animated?: boolean;
|
|
33
|
+
force?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface MessageContainerHandle {
|
|
36
|
+
scrollToEnd: (options?: ScrollToEndOptions) => void;
|
|
37
|
+
}
|
|
38
|
+
export interface NavbarProps {
|
|
39
|
+
title?: string;
|
|
40
|
+
subtitle?: string;
|
|
41
|
+
avatar?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ToolbarItemProps {
|
|
44
|
+
id: string;
|
|
45
|
+
icon: string;
|
|
46
|
+
label: string;
|
|
47
|
+
disabled?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface IconButtonProps {
|
|
50
|
+
icon: string;
|
|
51
|
+
onClick: () => void;
|
|
52
|
+
disabled?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface RecorderProps {
|
|
55
|
+
onStart?: () => void;
|
|
56
|
+
onStop?: (audioBlob: Blob) => void;
|
|
57
|
+
onError?: (error: Error) => void;
|
|
58
|
+
}
|
|
59
|
+
export type InputType = 'text' | 'voice';
|
|
60
|
+
export interface ChatbotMessageFields {
|
|
61
|
+
messages?: MessageType[];
|
|
62
|
+
setMessages?: React.Dispatch<React.SetStateAction<MessageType[]>>;
|
|
63
|
+
/** 发送消息回调 */
|
|
64
|
+
onSend?: (type: string, content: string) => void;
|
|
65
|
+
/** 清空消息回调 */
|
|
66
|
+
onClear?: () => void;
|
|
67
|
+
/** 停止生成回调 */
|
|
68
|
+
onStop?: () => void;
|
|
69
|
+
}
|
|
70
|
+
export interface ActionItem {
|
|
71
|
+
key?: string;
|
|
72
|
+
icon: React.ReactNode;
|
|
73
|
+
tooltip?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* AI 聊天机器人组件
|
|
77
|
+
*/
|
|
78
|
+
export interface XAiChatbotProps extends ChatbotMessageFields {
|
|
79
|
+
/** 宽屏断点 */
|
|
80
|
+
wideBreakpoint?: string;
|
|
81
|
+
/** 导航栏展示 */
|
|
82
|
+
navbarShow?: boolean;
|
|
83
|
+
/** 导航栏配置 */
|
|
84
|
+
navbar?: NavbarProps;
|
|
85
|
+
/** 导航栏渲染函数,会覆盖 navbar */
|
|
86
|
+
renderNavbar?: () => ReactNode;
|
|
87
|
+
/** 是否加载中 */
|
|
88
|
+
loading?: boolean;
|
|
89
|
+
/** 加载更多文案 */
|
|
90
|
+
loadMoreText?: string;
|
|
91
|
+
/** 在消息列表上面的渲染函数 */
|
|
92
|
+
renderBeforeMessageList?: () => ReactNode;
|
|
93
|
+
/** 消息列表 ref */
|
|
94
|
+
messagesRef?: RefObject<MessageContainerHandle>;
|
|
95
|
+
/** 下拉加载回调 */
|
|
96
|
+
onRefresh?: () => Promise<any>;
|
|
97
|
+
/** 滚动消息列表回调 */
|
|
98
|
+
onScroll?: (event: React.UIEvent<HTMLDivElement, UIEvent>) => void;
|
|
99
|
+
/** 消息内容渲染函数 */
|
|
100
|
+
renderMessageContent?: (message: MessageProps) => ReactNode;
|
|
101
|
+
/** 快捷短语列表 */
|
|
102
|
+
quickReplies?: QuickReplyItemProps[];
|
|
103
|
+
/** 快捷短语是否可见 */
|
|
104
|
+
quickRepliesVisible?: boolean;
|
|
105
|
+
/** 点击快速回复回调 */
|
|
106
|
+
onQuickReplyClick?: (item: QuickReplyItemProps, index: number) => void;
|
|
107
|
+
/** 快捷短语的滚动回调 */
|
|
108
|
+
onQuickReplyScroll?: () => void;
|
|
109
|
+
/** 快捷短语渲染函数,会覆盖 quickReplies */
|
|
110
|
+
renderQuickReplies?: () => ReactNode;
|
|
111
|
+
/** 输入区 ref */
|
|
112
|
+
composerRef?: RefObject<ComposerHandle>;
|
|
113
|
+
/** 输入框初始内容 */
|
|
114
|
+
text?: string;
|
|
115
|
+
/** 空状态图片 */
|
|
116
|
+
emptyStateImage?: string;
|
|
117
|
+
/** 空状态文案 */
|
|
118
|
+
emptyStateText?: string;
|
|
119
|
+
/** 输入框占位符 */
|
|
120
|
+
placeholder?: string;
|
|
121
|
+
/** 输入框聚焦回调 */
|
|
122
|
+
onInputFocus?: (event: FocusEvent) => void;
|
|
123
|
+
/** 输入框更新回调 */
|
|
124
|
+
onInputChange?: (value: string, event: ChangeEvent) => void;
|
|
125
|
+
/** 输入框失去焦点回调 */
|
|
126
|
+
onInputBlur?: (event: FocusEvent) => void;
|
|
127
|
+
/** 输入框粘贴图片后的回调 */
|
|
128
|
+
onImageSend?: (file: File) => Promise<any>;
|
|
129
|
+
/** 输入方式 */
|
|
130
|
+
inputType?: InputType;
|
|
131
|
+
/** 输入方式切换回调 */
|
|
132
|
+
onInputTypeChange?: (inputType: InputType) => void;
|
|
133
|
+
/** 语音输入配置 */
|
|
134
|
+
recorder?: RecorderProps;
|
|
135
|
+
/** 工具栏配置 */
|
|
136
|
+
toolbar?: ToolbarItemProps[];
|
|
137
|
+
/** AI头像 */
|
|
138
|
+
avatar?: ReactNode;
|
|
139
|
+
/** 用户头像 */
|
|
140
|
+
userAvatar?: ReactNode;
|
|
141
|
+
/** 工具栏点击回调 */
|
|
142
|
+
onToolbarClick?: (item: ToolbarItemProps, event: MouseEvent) => void;
|
|
143
|
+
/** 工具栏打开/关闭回调 */
|
|
144
|
+
onAccessoryToggle?: (isAccessoryOpen: boolean) => void;
|
|
145
|
+
/** 输入框右边图标按钮配置 */
|
|
146
|
+
rightAction?: IconButtonProps;
|
|
147
|
+
/** 上传按钮是否显示 */
|
|
148
|
+
uploadBtnShow?: boolean;
|
|
149
|
+
/** 帮助消息点击回调 */
|
|
150
|
+
onSuggestMessageClick?: (item: PromptProps, id: string) => void;
|
|
151
|
+
/** 消息左下角展示字段 */
|
|
152
|
+
messageTooltip?: (msg: Messages) => React.ReactNode;
|
|
153
|
+
/** 消息右下角功能区 */
|
|
154
|
+
messageActions?: ActionItem[];
|
|
155
|
+
/** 消息右下角功能区点击回调 */
|
|
156
|
+
onMessagesActionsCallback?: (index: number, data: Messages) => void;
|
|
157
|
+
/** 输入组件 */
|
|
158
|
+
Composer?: React.ElementType;
|
|
159
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
+
|
|
15
|
+
// src/types/XAiChatbot.ts
|
|
16
|
+
var XAiChatbot_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(XAiChatbot_exports);
|
|
18
|
+
//# sourceMappingURL=XAiChatbot.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/XAiChatbot.ts"],
|
|
4
|
+
"sourcesContent": ["import React, { ReactNode, RefObject, ChangeEvent, FocusEvent, MouseEvent } from 'react';\nimport type { PromptProps } from '@ant-design/x';\nimport type { MessageType } from 'src/client/base';\nimport type { Messages } from './XAiMessage';\n\n// 类型定义\nexport interface User {\n id: string;\n name: string;\n avatar?: string;\n }\n\nexport interface MessageProps {\n _id: string;\n type: string;\n content: Record<string, any>;\n createdAt: number;\n user: User;\n position?: 'left' | 'right' | 'center' | 'pop';\n hasTime?: boolean;\n status?: 'pending' | 'sent' | 'fail';\n }\n\nexport interface QuickReplyItemProps {\n name: string;\n code: string;\n icon?: string;\n img?: string;\n isNew?: boolean;\n isHighlight?: boolean;\n }\n\nexport interface ComposerHandle {\n setText: (text: string) => void;\n }\n\nexport interface ScrollToEndOptions {\n animated?: boolean;\n force?: boolean;\n }\n\nexport interface MessageContainerHandle {\n scrollToEnd: (options?: ScrollToEndOptions) => void;\n }\n\nexport interface NavbarProps {\n title?: string;\n subtitle?: string;\n avatar?: string;\n}\n\nexport interface ToolbarItemProps {\n id: string;\n icon: string;\n label: string;\n disabled?: boolean;\n }\n\nexport interface IconButtonProps {\n icon: string;\n onClick: () => void;\n disabled?: boolean;\n }\n\nexport interface RecorderProps {\n onStart?: () => void;\n onStop?: (audioBlob: Blob) => void;\n onError?: (error: Error) => void;\n }\n\nexport type InputType = 'text' | 'voice';\n\n// chatbot 会话字段\nexport interface ChatbotMessageFields {\n messages?: MessageType[];\n setMessages?: React.Dispatch<React.SetStateAction<MessageType[]>>;\n /** 发送消息回调 */\n onSend?: (type: string, content: string) => void;\n /** 清空消息回调 */\n onClear?: () => void;\n /** 停止生成回调 */\n onStop?: () => void;\n}\n\nexport interface ActionItem {\n key?: string;\n icon: React.ReactNode;\n tooltip?: string;\n}\n\n/**\n * AI 聊天机器人组件\n */\nexport interface XAiChatbotProps extends ChatbotMessageFields {\n /** 宽屏断点 */\n wideBreakpoint?: string;\n /** 导航栏展示 */\n navbarShow?: boolean;\n /** 导航栏配置 */\n navbar?: NavbarProps;\n /** 导航栏渲染函数,会覆盖 navbar */\n renderNavbar?: () => ReactNode;\n /** 是否加载中 */\n loading?: boolean;\n /** 加载更多文案 */\n loadMoreText?: string;\n /** 在消息列表上面的渲染函数 */\n renderBeforeMessageList?: () => ReactNode;\n /** 消息列表 ref */\n messagesRef?: RefObject<MessageContainerHandle>;\n /** 下拉加载回调 */\n onRefresh?: () => Promise<any>;\n /** 滚动消息列表回调 */\n onScroll?: (event: React.UIEvent<HTMLDivElement, UIEvent>) => void;\n /** 消息内容渲染函数 */\n renderMessageContent?: (message: MessageProps) => ReactNode;\n /** 快捷短语列表 */\n quickReplies?: QuickReplyItemProps[];\n /** 快捷短语是否可见 */\n quickRepliesVisible?: boolean;\n /** 点击快速回复回调 */\n onQuickReplyClick?: (item: QuickReplyItemProps, index: number) => void;\n /** 快捷短语的滚动回调 */\n onQuickReplyScroll?: () => void;\n /** 快捷短语渲染函数,会覆盖 quickReplies */\n renderQuickReplies?: () => ReactNode;\n /** 输入区 ref */\n composerRef?: RefObject<ComposerHandle>;\n /** 输入框初始内容 */\n text?: string;\n /** 空状态图片 */\n emptyStateImage?: string;\n /** 空状态文案 */\n emptyStateText?: string;\n /** 输入框占位符 */\n placeholder?: string;\n /** 输入框聚焦回调 */\n onInputFocus?: (event: FocusEvent) => void;\n /** 输入框更新回调 */\n onInputChange?: (value: string, event: ChangeEvent) => void;\n /** 输入框失去焦点回调 */\n onInputBlur?: (event: FocusEvent) => void;\n /** 输入框粘贴图片后的回调 */\n onImageSend?: (file: File) => Promise<any>;\n /** 输入方式 */\n inputType?: InputType;\n /** 输入方式切换回调 */\n onInputTypeChange?: (inputType: InputType) => void;\n /** 语音输入配置 */\n recorder?: RecorderProps;\n /** 工具栏配置 */\n toolbar?: ToolbarItemProps[];\n /** AI头像 */\n avatar?: ReactNode;\n /** 用户头像 */\n userAvatar?: ReactNode;\n /** 工具栏点击回调 */\n onToolbarClick?: (item: ToolbarItemProps, event: MouseEvent) => void;\n /** 工具栏打开/关闭回调 */\n onAccessoryToggle?: (isAccessoryOpen: boolean) => void;\n /** 输入框右边图标按钮配置 */\n rightAction?: IconButtonProps;\n /** 上传按钮是否显示 */\n uploadBtnShow?: boolean;\n /** 帮助消息点击回调 */\n onSuggestMessageClick?: (item: PromptProps, id: string) => void;\n /** 消息左下角展示字段 */\n messageTooltip?: (msg: Messages) => React.ReactNode;\n /** 消息右下角功能区 */\n messageActions?: ActionItem[];\n /** 消息右下角功能区点击回调 */\n onMessagesActionsCallback?: (index: number, data: Messages) => void; // 点击回调\n /** 输入组件 */\n Composer?: React.ElementType;\n }\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|