@lobehub/ui 1.6.1 → 1.7.2

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 (109) hide show
  1. package/es/Chat/const.d.ts +1 -0
  2. package/es/Chat/const.js +1 -0
  3. package/es/Chat/index.d.ts +2 -0
  4. package/es/Chat/index.js +2 -0
  5. package/es/Chat/store/index.d.ts +20 -0
  6. package/es/Chat/store/index.js +16 -0
  7. package/es/Chat/store/initialState.d.ts +28 -0
  8. package/es/Chat/store/initialState.js +9 -0
  9. package/es/Chat/store/messageReducer.d.ts +37 -0
  10. package/es/Chat/store/messageReducer.js +67 -0
  11. package/es/Chat/store/selectors.d.ts +9 -0
  12. package/es/Chat/store/selectors.js +44 -0
  13. package/es/Chat/store/store.d.ts +34 -0
  14. package/es/Chat/store/store.js +240 -0
  15. package/es/Chat/types.d.ts +77 -0
  16. package/es/Chat/types.js +1 -0
  17. package/es/Chat/utils/fetch.d.ts +11 -0
  18. package/es/Chat/utils/fetch.js +100 -0
  19. package/es/Conversation/App.d.ts +13 -0
  20. package/es/Conversation/App.js +43 -0
  21. package/es/Conversation/ChatList/MessageItem/Content.d.ts +8 -0
  22. package/es/Conversation/ChatList/MessageItem/Content.js +103 -0
  23. package/es/Conversation/ChatList/MessageItem/Toolbar.d.ts +10 -0
  24. package/es/Conversation/ChatList/MessageItem/Toolbar.js +94 -0
  25. package/es/Conversation/ChatList/MessageItem/index.d.ts +9 -0
  26. package/es/Conversation/ChatList/MessageItem/index.js +126 -0
  27. package/es/Conversation/ChatList/index.d.ts +14 -0
  28. package/es/Conversation/ChatList/index.js +62 -0
  29. package/es/Conversation/InputArea/ActionBar.d.ts +4 -0
  30. package/es/Conversation/InputArea/ActionBar.js +71 -0
  31. package/es/Conversation/InputArea/index.d.ts +4 -0
  32. package/es/Conversation/InputArea/index.js +101 -0
  33. package/es/Conversation/StoreUpdater.d.ts +7 -0
  34. package/es/Conversation/StoreUpdater.js +27 -0
  35. package/es/Conversation/index.d.ts +8 -0
  36. package/es/Conversation/index.js +28 -0
  37. package/es/EditableMessageList/index.d.ts +9 -0
  38. package/es/EditableMessageList/index.js +101 -0
  39. package/es/EditableText/index.d.ts +1 -1
  40. package/es/EditableText/index.js +1 -1
  41. package/es/Highlighter/SyntaxHighlighter/style.js +1 -1
  42. package/es/Highlighter/style.js +1 -1
  43. package/es/Logo/style.js +1 -1
  44. package/es/Markdown/style.js +1 -1
  45. package/es/Snippet/style.js +1 -1
  46. package/es/StroyBook/style.js +3 -3
  47. package/es/ThemeProvider/GlobalStyle.js +4 -3
  48. package/es/Tooltip/style.js +1 -1
  49. package/es/index.d.ts +3 -0
  50. package/es/index.js +2 -0
  51. package/es/styles/customStylish.js +4 -4
  52. package/es/styles/theme/base.js +6 -2
  53. package/lib/Chat/const.d.ts +1 -0
  54. package/lib/Chat/const.js +29 -0
  55. package/lib/Chat/index.d.ts +2 -0
  56. package/lib/Chat/index.js +31 -0
  57. package/lib/Chat/store/index.d.ts +20 -0
  58. package/lib/Chat/store/index.js +44 -0
  59. package/lib/Chat/store/initialState.d.ts +28 -0
  60. package/lib/Chat/store/initialState.js +37 -0
  61. package/lib/Chat/store/messageReducer.d.ts +37 -0
  62. package/lib/Chat/store/messageReducer.js +82 -0
  63. package/lib/Chat/store/selectors.d.ts +9 -0
  64. package/lib/Chat/store/selectors.js +53 -0
  65. package/lib/Chat/store/store.d.ts +34 -0
  66. package/lib/Chat/store/store.js +119 -0
  67. package/lib/Chat/types.d.ts +77 -0
  68. package/lib/Chat/types.js +17 -0
  69. package/lib/Chat/utils/fetch.d.ts +11 -0
  70. package/lib/Chat/utils/fetch.js +72 -0
  71. package/lib/Conversation/App.d.ts +13 -0
  72. package/lib/Conversation/App.js +53 -0
  73. package/lib/Conversation/ChatList/MessageItem/Content.d.ts +8 -0
  74. package/lib/Conversation/ChatList/MessageItem/Content.js +104 -0
  75. package/lib/Conversation/ChatList/MessageItem/Toolbar.d.ts +10 -0
  76. package/lib/Conversation/ChatList/MessageItem/Toolbar.js +110 -0
  77. package/lib/Conversation/ChatList/MessageItem/index.d.ts +9 -0
  78. package/lib/Conversation/ChatList/MessageItem/index.js +164 -0
  79. package/lib/Conversation/ChatList/index.d.ts +14 -0
  80. package/lib/Conversation/ChatList/index.js +61 -0
  81. package/lib/Conversation/InputArea/ActionBar.d.ts +4 -0
  82. package/lib/Conversation/InputArea/ActionBar.js +97 -0
  83. package/lib/Conversation/InputArea/index.d.ts +4 -0
  84. package/lib/Conversation/InputArea/index.js +149 -0
  85. package/lib/Conversation/StoreUpdater.d.ts +7 -0
  86. package/lib/Conversation/StoreUpdater.js +54 -0
  87. package/lib/Conversation/index.d.ts +8 -0
  88. package/lib/Conversation/index.js +45 -0
  89. package/lib/EditableMessageList/index.d.ts +9 -0
  90. package/lib/EditableMessageList/index.js +124 -0
  91. package/lib/EditableText/index.d.ts +1 -1
  92. package/lib/EditableText/index.js +1 -1
  93. package/lib/Highlighter/SyntaxHighlighter/style.js +4 -1
  94. package/lib/Highlighter/style.js +11 -13
  95. package/lib/Logo/style.js +1 -1
  96. package/lib/Markdown/style.js +27 -37
  97. package/lib/Snippet/style.js +16 -12
  98. package/lib/StroyBook/style.js +5 -2
  99. package/lib/ThemeProvider/GlobalStyle.js +23 -9
  100. package/lib/Tooltip/style.js +8 -5
  101. package/lib/{EditableText → components}/ControlInput.js +1 -1
  102. package/lib/index.d.ts +3 -0
  103. package/lib/index.js +6 -0
  104. package/lib/styles/customStylish.js +6 -5
  105. package/lib/styles/theme/base.js +6 -2
  106. package/package.json +16 -3
  107. /package/es/{EditableText → components}/ControlInput.d.ts +0 -0
  108. /package/es/{EditableText → components}/ControlInput.js +0 -0
  109. /package/lib/{EditableText → components}/ControlInput.d.ts +0 -0
@@ -0,0 +1,164 @@
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/Conversation/ChatList/MessageItem/index.tsx
30
+ var MessageItem_exports = {};
31
+ __export(MessageItem_exports, {
32
+ default: () => MessageItem_default
33
+ });
34
+ module.exports = __toCommonJS(MessageItem_exports);
35
+ var import_antd = require("antd");
36
+ var import_antd_style = require("antd-style");
37
+ var import_react = require("react");
38
+ var import_react_layout_kit = require("react-layout-kit");
39
+ var import_shallow = require("zustand/shallow");
40
+ var import_Content = __toESM(require("./Content"));
41
+ var import_Toolbar = __toESM(require("./Toolbar"));
42
+ var import_Avatar = __toESM(require("../../../Avatar"));
43
+ var import_const = require("../../../Chat/const");
44
+ var import_store = require("../../../Chat/store");
45
+ var useStyles = (0, import_antd_style.createStyles)(({ css, cx, responsive, token }) => {
46
+ const toolbarClassName = "chat-float-toolbar";
47
+ return {
48
+ container: css`
49
+ position: relative;
50
+ padding: 12px;
51
+ border-radius: 4px;
52
+
53
+ ${responsive.mobile} {
54
+ padding-inline: 0;
55
+ }
56
+
57
+ &:hover {
58
+ background: ${token.colorFillQuaternary};
59
+
60
+ .${toolbarClassName} {
61
+ opacity: 1;
62
+ }
63
+ }
64
+ `,
65
+ user: css`
66
+ background: linear-gradient(to right, ${token.green3}, ${token.gold3});
67
+ `,
68
+ system: css`
69
+ filter: invert(1);
70
+ `,
71
+ assistant: css``,
72
+ md: css`
73
+ overflow: scroll;
74
+ max-width: 100%;
75
+ .${responsive.mobile} {
76
+ max-width: 100%;
77
+ }
78
+ `,
79
+ floatAction: cx(
80
+ toolbarClassName,
81
+ css`
82
+ position: absolute;
83
+ z-index: ${token.zIndexPopupBase - 100};
84
+ top: 4px;
85
+ right: 4px;
86
+
87
+ opacity: 0;
88
+ `
89
+ ),
90
+ choice: css`
91
+ cursor: pointer;
92
+
93
+ width: 20px;
94
+ height: 20px;
95
+
96
+ font-size: 12px;
97
+ color: ${token.colorTextTertiary};
98
+
99
+ background: ${token.colorFillContent};
100
+ border-radius: 50%;
101
+ `,
102
+ choiceActive: css`
103
+ color: ${token.colorTextLightSolid};
104
+ background: ${token.colorPrimary};
105
+ `
106
+ };
107
+ });
108
+ var MessageItem = (0, import_react.memo)(
109
+ ({ content, error, userAvatarImg, choices, role, index, readonly }) => {
110
+ const { styles, cx } = useStyles();
111
+ const { mobile } = (0, import_antd_style.useResponsive)();
112
+ const [activeChoice, setActiveChoice] = (0, import_react.useState)(0);
113
+ const [editingMessageId] = (0, import_store.useStore)((s) => [s.editingMessageId], import_shallow.shallow);
114
+ const isEditing = editingMessageId === index;
115
+ const fullChoices = !choices ? [content] : [content, ...choices];
116
+ const displayContent = fullChoices[activeChoice];
117
+ const isSystem = role === "system";
118
+ const isUser = role === "user";
119
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { id: `message-item-${index}`, horizontal: true, gap: 12, className: styles.container }, isEditing || mobile ? null : /* @__PURE__ */ React.createElement(
120
+ import_Toolbar.default,
121
+ {
122
+ readonly,
123
+ content,
124
+ isUser,
125
+ index,
126
+ className: styles.floatAction
127
+ }
128
+ ), /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { align: "center", gap: 8 }, /* @__PURE__ */ React.createElement(import_antd.ConfigProvider, { theme: { token: { fontSize: 14 } } }, /* @__PURE__ */ React.createElement(
129
+ import_Avatar.default,
130
+ {
131
+ avatar: role === "user" ? userAvatarImg : "data:image/webp;base64,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",
132
+ shape: "circle"
133
+ }
134
+ )), !choices ? null : fullChoices.map((choice, index2) => /* @__PURE__ */ React.createElement(
135
+ import_react_layout_kit.Center,
136
+ {
137
+ className: cx(styles.choice, activeChoice === index2 && styles.choiceActive),
138
+ key: index2,
139
+ tabIndex: 10,
140
+ onKeyDown: (e) => {
141
+ if (e.key === "Enter") {
142
+ setActiveChoice(index2);
143
+ }
144
+ },
145
+ onClick: () => {
146
+ setActiveChoice(index2);
147
+ }
148
+ },
149
+ index2 + 1
150
+ ))), /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { flex: 1, className: styles.md }, /* @__PURE__ */ React.createElement(
151
+ import_Content.default,
152
+ {
153
+ content: displayContent,
154
+ loading: displayContent === import_const.LOADING_FLAT,
155
+ error,
156
+ index,
157
+ role
158
+ }
159
+ ))), isSystem && /* @__PURE__ */ React.createElement(import_antd.Divider, null, /* @__PURE__ */ React.createElement(import_antd.Typography.Text, { type: "secondary", style: { fontWeight: "normal", fontSize: 14 } }, "开始对话")));
160
+ }
161
+ );
162
+ var MessageItem_default = MessageItem;
163
+ // Annotate the CommonJS export names for ESM import in node:
164
+ 0 && (module.exports = {});
@@ -0,0 +1,14 @@
1
+ import { CSSProperties, FC } from 'react';
2
+ interface ChatListProps {
3
+ /**
4
+ * @title 是否只读
5
+ */
6
+ readonly?: boolean;
7
+ /**
8
+ * @title 是否包含系统消息
9
+ */
10
+ includeSystem?: boolean;
11
+ style?: CSSProperties;
12
+ }
13
+ declare const ChatList: FC<ChatListProps>;
14
+ export default ChatList;
@@ -0,0 +1,61 @@
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/Conversation/ChatList/index.tsx
30
+ var ChatList_exports = {};
31
+ __export(ChatList_exports, {
32
+ default: () => ChatList_default
33
+ });
34
+ module.exports = __toCommonJS(ChatList_exports);
35
+ var import_antd_style = require("antd-style");
36
+ var import_fast_deep_equal = __toESM(require("fast-deep-equal"));
37
+ var import_react = require("react");
38
+ var import_react_layout_kit = require("react-layout-kit");
39
+ var import_store = require("../../Chat/store");
40
+ var import_MessageItem = __toESM(require("./MessageItem"));
41
+ var useStyles = (0, import_antd_style.createStyles)(({ css, token }) => ({
42
+ loading: css`
43
+ padding: 12px;
44
+ background: ${token.colorFillQuaternary};
45
+ border-radius: 8px;
46
+ `,
47
+ btn: css`
48
+ font-size: 12px;
49
+ color: ${token.colorTextSecondary};
50
+ background: transparent;
51
+ border: 2px solid ${token.colorBorderSecondary} !important;
52
+ `
53
+ }));
54
+ var ChatList = (0, import_react.memo)(({ readonly, includeSystem = false, style }) => {
55
+ const { styles } = useStyles();
56
+ const [messages, loading] = (0, import_store.useStore)((s) => [s.messages, s.loading], import_fast_deep_equal.default);
57
+ return !messages || messages.length === 0 ? null : /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { gap: 8, style }, messages.filter((s) => !includeSystem ? s.role !== "system" : !!s).map((item, index) => /* @__PURE__ */ React.createElement(import_MessageItem.default, { readonly, index, key: index, ...item })), loading ? /* @__PURE__ */ React.createElement(import_react_layout_kit.Center, { id: "for-loading", className: styles.loading }, /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { horizontal: true, distribution: "space-between", align: "center", gap: 24 }, /* @__PURE__ */ React.createElement("div", null), "正在生成...", /* @__PURE__ */ React.createElement("div", null))) : null);
58
+ });
59
+ var ChatList_default = ChatList;
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {});
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const ActionBar: () => import("react/jsx-runtime").JSX.Element | null;
3
+ declare const _default: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
4
+ export default _default;
@@ -0,0 +1,97 @@
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/Conversation/InputArea/ActionBar.tsx
30
+ var ActionBar_exports = {};
31
+ __export(ActionBar_exports, {
32
+ ActionBar: () => ActionBar,
33
+ default: () => ActionBar_default
34
+ });
35
+ module.exports = __toCommonJS(ActionBar_exports);
36
+ var import_antd_style = require("antd-style");
37
+ var import_react = require("react");
38
+ var import_react_layout_kit = require("react-layout-kit");
39
+ var import_shallow = require("zustand/shallow");
40
+ var import_ActionIcon = __toESM(require("../../ActionIcon"));
41
+ var import_antd = require("antd");
42
+ var import_lucide_react = require("lucide-react");
43
+ var import_store = require("../../Chat/store");
44
+ var useStyles = (0, import_antd_style.createStyles)(({ css, token }) => ({
45
+ extra: css`
46
+ color: ${token.colorTextTertiary};
47
+ `
48
+ }));
49
+ var ActionBar = () => {
50
+ const [totalToken, agentToken, messagesToken, dispatchMessage] = (0, import_store.useStore)(
51
+ (s) => [
52
+ import_store.chatSelectors.totalTokenCount(s),
53
+ import_store.chatSelectors.agentTokenCount(s),
54
+ import_store.chatSelectors.messagesTokenCount(s),
55
+ s.dispatchMessage
56
+ ],
57
+ import_shallow.shallow
58
+ );
59
+ const { styles, theme } = useStyles();
60
+ return totalToken > 0 ? /* @__PURE__ */ React.createElement(import_antd.ConfigProvider, { theme: { token: { colorText: theme.colorTextSecondary } } }, /* @__PURE__ */ React.createElement(
61
+ import_react_layout_kit.Flexbox,
62
+ {
63
+ align: "center",
64
+ direction: "horizontal-reverse",
65
+ paddingInline: 12,
66
+ className: styles.extra,
67
+ gap: 8
68
+ },
69
+ /* @__PURE__ */ React.createElement(
70
+ import_antd.Popconfirm,
71
+ {
72
+ title: "你即将要清空会话,清空后将无法找回。是否清空当前会话?",
73
+ okButtonProps: { danger: true },
74
+ okText: "清空会话",
75
+ onConfirm: () => {
76
+ dispatchMessage({ type: "resetMessages" });
77
+ }
78
+ },
79
+ /* @__PURE__ */ React.createElement(import_ActionIcon.default, { title: "清空当前会话", size: "small", icon: import_lucide_react.EraserIcon })
80
+ ),
81
+ /* @__PURE__ */ React.createElement(
82
+ import_antd.Tooltip,
83
+ {
84
+ title: [
85
+ agentToken > 0 ? `角色定义: ${agentToken}` : null,
86
+ messagesToken > 0 ? `会话: ${messagesToken}` : null
87
+ ].filter(Boolean).join(" | ")
88
+ },
89
+ /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { gap: 4 }, " Tokens: ", totalToken)
90
+ )
91
+ )) : null;
92
+ };
93
+ var ActionBar_default = (0, import_react.memo)(ActionBar);
94
+ // Annotate the CommonJS export names for ESM import in node:
95
+ 0 && (module.exports = {
96
+ ActionBar
97
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const InputArea: ({}: {}) => import("react/jsx-runtime").JSX.Element;
3
+ declare const _default: import("react").MemoExoticComponent<({}: {}) => import("react/jsx-runtime").JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,149 @@
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/Conversation/InputArea/index.tsx
30
+ var InputArea_exports = {};
31
+ __export(InputArea_exports, {
32
+ InputArea: () => InputArea,
33
+ default: () => InputArea_default
34
+ });
35
+ module.exports = __toCommonJS(InputArea_exports);
36
+ var import_icons = require("@ant-design/icons");
37
+ var import_antd = require("antd");
38
+ var import_antd_style = require("antd-style");
39
+ var import_react = require("react");
40
+ var import_react_layout_kit = require("react-layout-kit");
41
+ var import_shallow = require("zustand/shallow");
42
+ var import_store = require("../../Chat/store");
43
+ var import_ActionBar = __toESM(require("./ActionBar"));
44
+ var useStyles = (0, import_antd_style.createStyles)(({ css, responsive, token }) => ({
45
+ container: css`
46
+ position: sticky;
47
+ z-index: ${token.zIndexPopupBase};
48
+ bottom: 0;
49
+
50
+ width: ${token.contentWidth}px;
51
+ padding-top: 12px;
52
+ padding-bottom: 24px;
53
+
54
+ background-image: linear-gradient(to top, ${token.colorBgLayout} 88%, transparent 100%);
55
+
56
+ ${responsive.mobile} {
57
+ width: 100%;
58
+ }
59
+ `,
60
+ boxShadow: css`
61
+ position: relative;
62
+ border-radius: 8px;
63
+ box-shadow: ${token.boxShadowSecondary};
64
+ `,
65
+ input: css`
66
+ width: 100%;
67
+ border-radius: 8px;
68
+ `,
69
+ btn: css`
70
+ position: absolute;
71
+ z-index: 10;
72
+ right: 8px;
73
+ bottom: 8px;
74
+
75
+ color: ${token.colorTextTertiary};
76
+ &:hover {
77
+ color: ${token.colorTextSecondary};
78
+ }
79
+ `,
80
+ extra: css`
81
+ color: ${token.colorTextTertiary};
82
+ `
83
+ }));
84
+ var InputArea = ({}) => {
85
+ const [message, sendMessage, isLoading, disabled] = (0, import_store.useStore)(
86
+ (s) => [s.message, s.sendMessage, s.loading, import_store.chatSelectors.disableInput(s)],
87
+ import_shallow.shallow
88
+ );
89
+ const isChineseInput = (0, import_react.useRef)(false);
90
+ const { styles, theme } = useStyles();
91
+ const { mobile } = (0, import_antd_style.useResponsive)();
92
+ const storeApi = (0, import_store.useStoreApi)();
93
+ return /* @__PURE__ */ React.createElement(
94
+ import_antd.ConfigProvider,
95
+ {
96
+ theme: {
97
+ token: {
98
+ borderRadius: 4,
99
+ fontSize: 16,
100
+ colorBgContainer: theme.colorBgElevated,
101
+ controlHeightLG: 48,
102
+ colorBorder: "transparent",
103
+ colorPrimaryHover: "transparent"
104
+ }
105
+ }
106
+ },
107
+ /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { gap: 8, className: styles.container }, /* @__PURE__ */ React.createElement(import_ActionBar.default, null), /* @__PURE__ */ React.createElement(import_react_layout_kit.Flexbox, { horizontal: true, gap: 8, align: "center", className: styles.boxShadow }, /* @__PURE__ */ React.createElement(
108
+ import_antd.Input.TextArea,
109
+ {
110
+ size: "large",
111
+ value: message,
112
+ placeholder: "请输入内容...",
113
+ onChange: (e) => {
114
+ storeApi.setState({ message: e.target.value });
115
+ },
116
+ disabled,
117
+ autoSize: { maxRows: 8 },
118
+ onCompositionStart: () => {
119
+ isChineseInput.current = true;
120
+ },
121
+ onCompositionEnd: () => {
122
+ isChineseInput.current = false;
123
+ },
124
+ className: styles.input,
125
+ onPressEnter: (e) => {
126
+ if (!isLoading && !e.shiftKey && !isChineseInput.current) {
127
+ e.preventDefault();
128
+ sendMessage();
129
+ }
130
+ }
131
+ }
132
+ ), mobile ? null : /* @__PURE__ */ React.createElement(
133
+ import_antd.Button,
134
+ {
135
+ disabled,
136
+ loading: isLoading,
137
+ type: "text",
138
+ className: styles.btn,
139
+ onClick: sendMessage,
140
+ icon: /* @__PURE__ */ React.createElement(import_icons.SendOutlined, null)
141
+ }
142
+ )))
143
+ );
144
+ };
145
+ var InputArea_default = (0, import_react.memo)(InputArea);
146
+ // Annotate the CommonJS export names for ESM import in node:
147
+ 0 && (module.exports = {
148
+ InputArea
149
+ });
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { InternalChatContext } from '../Chat/types';
3
+ import { ChatStore } from '../Chat/store';
4
+ export interface StoreUpdaterProps extends Partial<InternalChatContext>, Pick<ChatStore, 'onMessagesChange' | 'onAgentChange' | 'onResponseFinished' | 'onResponseStart'> {
5
+ }
6
+ declare const StoreUpdater: FC<StoreUpdaterProps>;
7
+ export default StoreUpdater;