@ai-group/chat-sdk 0.2.5 → 0.2.8
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/README.md +93 -214
- 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 +72 -0
- package/dist/cjs/components/XAiChatbot/styles.js +426 -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 +115 -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 +70 -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 +72 -0
- package/dist/cjs/hooks/useAgentGenerator.js +487 -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 +69 -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 +46 -0
- package/dist/cjs/types/XAiProvider.js +50 -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 +14 -0
- package/dist/cjs/utils/umdEntry.js +97 -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 +17 -11
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +72 -0
- package/dist/esm/components/XAiChatbot/styles.js +37 -38
- 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 +8 -1
- 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/components/XAiWebSDKWrapper.js +4 -1
- package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -1
- 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 +72 -0
- package/dist/esm/hooks/useAgentGenerator.js +113 -39
- 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 +69 -0
- package/dist/esm/services/api.js.map +1 -1
- 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 +46 -0
- package/dist/esm/types/XAiProvider.js +7 -0
- package/dist/esm/types/XAiProvider.js.map +1 -1
- 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 +14 -0
- package/dist/esm/utils/umdEntry.js +22 -18
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
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/services/api.ts
|
|
20
|
+
var api_exports = {};
|
|
21
|
+
__export(api_exports, {
|
|
22
|
+
fetchAppConfig: () => fetchAppConfig,
|
|
23
|
+
sendMessage: () => sendMessage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(api_exports);
|
|
26
|
+
var import_request = require("../utils/request");
|
|
27
|
+
var fetchAppConfig = async ({ url, appNo, pt, tc }) => {
|
|
28
|
+
const response = await import_request.request.post(`${url}/appouter/config/${appNo}/initApp`, {}, {
|
|
29
|
+
params: {
|
|
30
|
+
pt,
|
|
31
|
+
tc
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return response.data;
|
|
35
|
+
};
|
|
36
|
+
var sendMessage = async ({ url, appNo, pt, tc, msg }) => {
|
|
37
|
+
const response = await import_request.request.post(`${url}/appouter/${appNo}/sendMsg`, {
|
|
38
|
+
pt,
|
|
39
|
+
tc,
|
|
40
|
+
msg
|
|
41
|
+
});
|
|
42
|
+
return response.data;
|
|
43
|
+
};
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
fetchAppConfig,
|
|
47
|
+
sendMessage
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/api.ts"],
|
|
4
|
+
"sourcesContent": ["import { request } from '@/utils/request';\n\n// 服务端API响应接口\nexport interface ServerApiResponse<T = unknown> {\n data: T;\n code: string;\n success: boolean;\n message: string;\n serverTime: number;\n traceId: string;\n}\n\n// 标准API响应类型\nexport interface ApiResponse<T> {\n success: boolean;\n data: T;\n message?: string;\n code?: string;\n}\n\n// 聊天配置类型\nexport interface ChatConfig {\n botNo: string;\n appNo: string;\n appName: string;\n appTheme: string;\n description: string;\n icon: string;\n onboardingInfo: {\n prologue: string;\n suggested_questions: string[];\n };\n appVersionNo: string;\n publishDTO: {\n id: number;\n tenantId: string;\n botNo: string;\n publishNo: string;\n publishTime: string;\n publishVersionNo: string;\n publishVersionDesc: string;\n publishAppType: string;\n platformConfigInfo: string;\n appNo: string;\n appVersionNo: string;\n gmtCreated: string;\n enableFlag: number;\n gmtModified: string;\n creator: string;\n modifier: string;\n isDeleted: string;\n authLoginInfoDTO: Record<string, unknown>;\n shareLink: string;\n };\n}\n\n/**\n * 获取聊天配置\n * 使用request,会自动添加token\n */\nexport const fetchAppConfig = async ({ url, appNo, pt, tc }: { url: string; appNo: string; pt: string; tc: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/config/${appNo}/initApp`, {}, {\n params: {\n pt, tc,\n },\n });\n return response.data;\n};\n\n/**\n * 获取聊天配置\n * 使用request,会自动添加token\n */\nexport const sendMessage = async ({ url, appNo, pt, tc, msg }: { url: string; appNo: string; pt: string; tc: string; msg: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/${appNo}/sendMsg`, {\n pt, tc, msg,\n });\n return response.data;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AA4DjB,IAAM,iBAAiB,OAAO,EAAE,KAAK,OAAO,IAAI,GAAG,MAAgG;AACxJ,QAAM,WAAW,MAAM,uBAAQ,KAA8B,GAAG,uBAAuB,iBAAiB,CAAC,GAAG;AAAA,IAC1G,QAAQ;AAAA,MACN;AAAA,MAAI;AAAA,IACN;AAAA,EACF,CAAC;AACD,SAAO,SAAS;AAClB;AAMO,IAAM,cAAc,OAAO,EAAE,KAAK,OAAO,IAAI,IAAI,IAAI,MAA6G;AACvK,QAAM,WAAW,MAAM,uBAAQ,KAA8B,GAAG,gBAAgB,iBAAiB;AAAA,IAC/F;AAAA,IAAI;AAAA,IAAI;AAAA,EACV,CAAC;AACD,SAAO,SAAS;AAClB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -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
|