@lobehub/ui 1.29.0 → 1.29.1

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.
@@ -16,5 +16,4 @@ export declare const Provider: ({ createStore, children }: {
16
16
  destroy: () => void;
17
17
  };
18
18
  export { type MessageDispatch, messagesReducer } from './messageReducer';
19
- export * from './selectors';
20
19
  export type { ChatStore } from './store';
@@ -12,5 +12,4 @@ var _createContext = createContext(),
12
12
  useStore = _createContext.useStore,
13
13
  useStoreApi = _createContext.useStoreApi;
14
14
  export { Provider, useStore, useStoreApi };
15
- export { messagesReducer } from "./messageReducer";
16
- export * from "./selectors";
15
+ export { messagesReducer } from "./messageReducer";
package/es/index.d.ts CHANGED
@@ -8,7 +8,6 @@ export { default as ChatItem, type ChatItemProps } from './ChatItem';
8
8
  export { default as ChatList, type ChatListProps } from './ChatList';
9
9
  export { default as ColorScales, type ColorScalesProps } from './ColorScales';
10
10
  export { default as ContextMenu, type ContextMenuProps } from './ContextMenu';
11
- export { default as Conversation, type ConversationProps } from './Conversation';
12
11
  export { default as CopyButton, type CopyButtonProps } from './CopyButton';
13
12
  export { default as DraggablePanel, type DraggablePanelProps } from './DraggablePanel';
14
13
  export { default as EditableMessage, type EditableMessageProps } from './EditableMessage';
package/es/index.js CHANGED
@@ -7,7 +7,6 @@ export { default as ChatItem } from "./ChatItem";
7
7
  export { default as ChatList } from "./ChatList";
8
8
  export { default as ColorScales } from "./ColorScales";
9
9
  export { default as ContextMenu } from "./ContextMenu";
10
- export { default as Conversation } from "./Conversation";
11
10
  export { default as CopyButton } from "./CopyButton";
12
11
  export { default as DraggablePanel } from "./DraggablePanel";
13
12
  export { default as EditableMessage } from "./EditableMessage";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/ui",
3
- "version": "1.29.0",
3
+ "version": "1.29.1",
4
4
  "description": "Lobe UI is an open-source UI component library for building chatbot web apps",
5
5
  "keywords": [
6
6
  "lobehub",
@@ -73,7 +73,6 @@
73
73
  "@ant-design/colors": "^7",
74
74
  "@ant-design/icons": "^5",
75
75
  "@babel/runtime": "^7",
76
- "@dqbd/tiktoken": "^1",
77
76
  "@floating-ui/react": "^0",
78
77
  "@react-spring/web": "^9",
79
78
  "ahooks": "^3",
@@ -1,9 +0,0 @@
1
- import type { ChatStore } from './store';
2
- export declare const chatSelectors: {
3
- agentTokenCount: (s: ChatStore) => number;
4
- disableInput: (s: ChatStore) => boolean;
5
- messagesTokenCount: (s: ChatStore) => number;
6
- messagesTokens: (s: ChatStore) => number[];
7
- totalTokenCount: (s: ChatStore) => number;
8
- totalTokens: (s: ChatStore) => number[];
9
- };
@@ -1,44 +0,0 @@
1
- import { get_encoding } from '@dqbd/tiktoken';
2
- var tiktoken = get_encoding('cl100k_base');
3
- var encode = function encode(text) {
4
- if (!text) return [];
5
- var tokens = tiktoken.encode(text);
6
- return tokens;
7
- };
8
- var disableInputSel = function disableInputSel(s) {
9
- return s.changingSystemRole;
10
- };
11
- var messagesTokens = function messagesTokens(s) {
12
- return encode(s.messages.map(function (m) {
13
- return m.content;
14
- }).join(''));
15
- };
16
- var agentContentTokens = function agentContentTokens(s) {
17
- return encode(s.messages.filter(function (s) {
18
- return s.role === 'system';
19
- }).map(function (c) {
20
- return c.content;
21
- }).join('') || '');
22
- };
23
- var totalTokens = function totalTokens(s) {
24
- return encode(s.messages.map(function (m) {
25
- return m.content;
26
- }).join(''));
27
- };
28
- var totalTokenCount = function totalTokenCount(s) {
29
- return totalTokens(s).length;
30
- };
31
- var agentTokenCount = function agentTokenCount(s) {
32
- return agentContentTokens(s).length;
33
- };
34
- var messagesTokenCount = function messagesTokenCount(s) {
35
- return messagesTokens(s).length;
36
- };
37
- export var chatSelectors = {
38
- agentTokenCount: agentTokenCount,
39
- disableInput: disableInputSel,
40
- messagesTokenCount: messagesTokenCount,
41
- messagesTokens: messagesTokens,
42
- totalTokenCount: totalTokenCount,
43
- totalTokens: totalTokens
44
- };
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- export interface AppProps {
3
- /**
4
- * @description Whether to include system messages in the chat.
5
- * @default true
6
- */
7
- includeSystem?: boolean;
8
- /**
9
- * @description Whether the component is in readonly mode.
10
- * @default false
11
- */
12
- readonly?: boolean;
13
- }
14
- declare const _default: import("react").NamedExoticComponent<AppProps>;
15
- export default _default;
@@ -1,43 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { Typography } from 'antd';
3
- import isEqual from 'fast-deep-equal';
4
- import { memo } from 'react';
5
- import { Flexbox } from 'react-layout-kit';
6
- import { useStore } from "../Chat/store";
7
- import ChatList from "./ChatList";
8
- import InputArea from "./InputArea";
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
- var ChatContainer = function ChatContainer(_ref) {
12
- var readonly = _ref.readonly,
13
- _ref$includeSystem = _ref.includeSystem,
14
- includeSystem = _ref$includeSystem === void 0 ? true : _ref$includeSystem;
15
- var _useStore = useStore(function (s) {
16
- return [!s.changingSystemRole, s.title, s.description];
17
- }, isEqual),
18
- _useStore2 = _slicedToArray(_useStore, 3),
19
- showInput = _useStore2[0],
20
- title = _useStore2[1],
21
- description = _useStore2[2];
22
- if (readonly) return /*#__PURE__*/_jsx(ChatList, {
23
- includeSystem: includeSystem,
24
- readonly: true
25
- });
26
- return /*#__PURE__*/_jsxs(Flexbox, {
27
- gap: 24,
28
- height: '100%',
29
- width: '100%',
30
- children: [title || description ? /*#__PURE__*/_jsxs(Flexbox, {
31
- children: [/*#__PURE__*/_jsx(Typography.Title, {
32
- level: 4,
33
- children: title
34
- }), /*#__PURE__*/_jsx(Typography.Text, {
35
- type: 'secondary',
36
- children: description
37
- })]
38
- }) : undefined, /*#__PURE__*/_jsx(ChatList, {
39
- includeSystem: includeSystem
40
- }), showInput ? /*#__PURE__*/_jsx(InputArea, {}) : undefined]
41
- });
42
- };
43
- export default /*#__PURE__*/memo(ChatContainer);
@@ -1,8 +0,0 @@
1
- import { FC } from 'react';
2
- import { ChatMessage } from "../../../Chat/types";
3
- export interface ContentProps extends Pick<ChatMessage, 'content' | 'role' | 'error'> {
4
- index: number;
5
- loading: boolean;
6
- }
7
- declare const Content: FC<ContentProps>;
8
- export default Content;
@@ -1,104 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { LoadingOutlined } from '@ant-design/icons';
3
- import { Alert, Button } from 'antd';
4
- import { memo } from 'react';
5
- import { shallow } from 'zustand/shallow';
6
- import { useStore } from "../../../Chat/store";
7
- import Markdown from "../../../Markdown";
8
- import MessageInput from "../../../MessageInput";
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
- import { Fragment as _Fragment } from "react/jsx-runtime";
12
- var Content = /*#__PURE__*/memo(function (_ref) {
13
- var content = _ref.content,
14
- role = _ref.role,
15
- index = _ref.index,
16
- error = _ref.error,
17
- loading = _ref.loading;
18
- var _useStore = useStore(function (s) {
19
- return [s.editingMessageId, s.dispatchMessage, s.handleMessageEditing, s.resendMessage];
20
- }, shallow),
21
- _useStore2 = _slicedToArray(_useStore, 4),
22
- editingMessageId = _useStore2[0],
23
- dispatchMessage = _useStore2[1],
24
- handleMessageEditing = _useStore2[2],
25
- resendMessage = _useStore2[3];
26
- var isEditing = editingMessageId === index;
27
- var isUser = role === 'user';
28
- if (isEditing) {
29
- return /*#__PURE__*/_jsx(MessageInput, {
30
- defaultValue: content,
31
- renderButtons: function renderButtons(text) {
32
- return [{
33
- children: isUser ? '更新并重新生成' : '更新',
34
- onClick: function onClick() {
35
- dispatchMessage({
36
- index: index,
37
- message: text,
38
- type: 'updateMessage'
39
- });
40
- handleMessageEditing();
41
-
42
- // 如果是用户的消息,那么重新生成下一条消息
43
- if (isUser) {
44
- resendMessage(index + 1);
45
- }
46
- },
47
- type: 'primary'
48
- }, isUser ? {
49
- children: '仅更新',
50
- onClick: function onClick() {
51
- dispatchMessage({
52
- index: index,
53
- message: text,
54
- type: 'updateMessage'
55
- });
56
- handleMessageEditing();
57
- }
58
- } : undefined, {
59
- children: '取消',
60
- onClick: function onClick() {
61
- return handleMessageEditing();
62
- },
63
- type: 'text'
64
- }].filter(Boolean);
65
- }
66
- });
67
- }
68
- return /*#__PURE__*/_jsxs(_Fragment, {
69
- children: [loading ? error ? undefined : /*#__PURE__*/_jsx("div", {
70
- children: /*#__PURE__*/_jsx(LoadingOutlined, {
71
- spin: true,
72
- style: {
73
- fontSize: 20
74
- }
75
- })
76
- }) : /*#__PURE__*/_jsx(Markdown, {
77
- children: content
78
- }), error && /*#__PURE__*/_jsx(Alert, {
79
- action: /*#__PURE__*/_jsx(Button, {
80
- onClick: function onClick() {
81
- return resendMessage(index);
82
- },
83
- children: "\u91CD\u8BD5"
84
- }),
85
- description: error.type === 'openai' ? /*#__PURE__*/_jsxs("div", {
86
- children: [error.message, " \uFF08\u9519\u8BEF\u7801\uFF1A", /*#__PURE__*/_jsx("code", {
87
- children: error.status
88
- }), "\uFF0C\u8BE6\u60C5\u53EF\u67E5\u770B", ' ', /*#__PURE__*/_jsx("a", {
89
- href: "https://platform.openai.com/docs/guides/error-codes",
90
- rel: "noreferrer",
91
- target: '_blank',
92
- children: "\u5B98\u65B9\u6587\u6863"
93
- }), "\uFF09"]
94
- }) : error.message,
95
- message: error.type === 'openai' ? "\u8BF7\u6C42 OpenAI \u670D\u52A1\u51FA\u9519" : "\u4F1A\u8BDD\u51FA\u9519\u5566\uFF08\u9519\u8BEF\u7801 ".concat(error.status, "\uFF09"),
96
- showIcon: true,
97
- style: {
98
- marginTop: 12
99
- },
100
- type: 'error'
101
- })]
102
- });
103
- });
104
- export default Content;
@@ -1,10 +0,0 @@
1
- import { FC } from 'react';
2
- export interface ToolbarProps {
3
- className?: string;
4
- content: string;
5
- index: number;
6
- isUser?: boolean;
7
- readonly?: boolean;
8
- }
9
- declare const Toolbar: FC<ToolbarProps>;
10
- export default Toolbar;
@@ -1,91 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
- var _templateObject;
4
- import { Popconfirm } from 'antd';
5
- import { createStyles } from 'antd-style';
6
- import { EditIcon, RotateCwIcon, TrashIcon } from 'lucide-react';
7
- import { rgba } from 'polished';
8
- import { memo } from 'react';
9
- import { Flexbox } from 'react-layout-kit';
10
- import { shallow } from 'zustand/shallow';
11
- import IconAction from "../../../ActionIcon";
12
- import { useStore } from "../../../Chat/store";
13
- import CopyButton from "../../../CopyButton";
14
- import { jsx as _jsx } from "react/jsx-runtime";
15
- import { Fragment as _Fragment } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
17
- var useStyles = createStyles(function (_ref) {
18
- var css = _ref.css,
19
- token = _ref.token,
20
- stylish = _ref.stylish,
21
- cx = _ref.cx;
22
- return {
23
- container: cx(stylish.blur, css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n border-radius: 4px;\n "])), rgba(token.colorBgElevated, 0.2)))
24
- };
25
- });
26
- var Toolbar = /*#__PURE__*/memo(function (_ref2) {
27
- var content = _ref2.content,
28
- isUser = _ref2.isUser,
29
- index = _ref2.index,
30
- readonly = _ref2.readonly,
31
- className = _ref2.className;
32
- var _useStyles = useStyles(),
33
- styles = _useStyles.styles,
34
- cx = _useStyles.cx;
35
- var _useStore = useStore(function (s) {
36
- return [s.dispatchMessage, s.handleMessageEditing, s.resendMessage];
37
- }, shallow),
38
- _useStore2 = _slicedToArray(_useStore, 3),
39
- dispatchMessage = _useStore2[0],
40
- handleMessageEditing = _useStore2[1],
41
- resendMessage = _useStore2[2];
42
- return /*#__PURE__*/_jsxs(Flexbox, {
43
- className: cx(className, styles.container),
44
- gap: 4,
45
- horizontal: true,
46
- children: [/*#__PURE__*/_jsx(CopyButton, {
47
- content: content,
48
- placement: 'top',
49
- size: 'small',
50
- title: '复制'
51
- }), readonly ? undefined : /*#__PURE__*/_jsxs(_Fragment, {
52
- children: [/*#__PURE__*/_jsx(IconAction, {
53
- icon: RotateCwIcon,
54
- onClick: function onClick() {
55
- resendMessage(isUser ? index + 1 : index);
56
- },
57
- placement: 'top',
58
- size: 'small',
59
- title: isUser ? '重新生成回答' : '重新生成'
60
- }), /*#__PURE__*/_jsx(IconAction, {
61
- icon: EditIcon,
62
- onClick: function onClick() {
63
- return handleMessageEditing(index);
64
- },
65
- placement: 'top',
66
- size: 'small',
67
- title: '编辑'
68
- }), /*#__PURE__*/_jsx(Popconfirm, {
69
- okButtonProps: {
70
- danger: true
71
- },
72
- onConfirm: function onConfirm() {
73
- dispatchMessage({
74
- index: index,
75
- type: 'deleteMessage'
76
- });
77
- },
78
- title: '确定要删除这条消息吗?',
79
- children: /*#__PURE__*/_jsx(IconAction
80
- // type={'danger'}
81
- , {
82
- icon: TrashIcon,
83
- placement: 'top',
84
- size: 'small',
85
- title: '删除'
86
- })
87
- })]
88
- })]
89
- });
90
- });
91
- export default Toolbar;
@@ -1,9 +0,0 @@
1
- import { FC } from 'react';
2
- import { ChatMessage } from "../../../Chat/types";
3
- export interface MessageItemProps extends ChatMessage {
4
- index: number;
5
- readonly?: boolean;
6
- userAvatarImg?: string;
7
- }
8
- declare const MessageItem: FC<MessageItemProps>;
9
- export default MessageItem;
@@ -1,126 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
4
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
5
- import { ConfigProvider, Divider, Typography } from 'antd';
6
- import { createStyles, useResponsive } from 'antd-style';
7
- import { memo, useState } from 'react';
8
- import { Center, Flexbox } from 'react-layout-kit';
9
- import { shallow } from 'zustand/shallow';
10
- import Avatar from "../../../Avatar";
11
- import { LOADING_FLAT } from "../../../Chat/const";
12
- import { useStore } from "../../../Chat/store";
13
- import Content from "./Content";
14
- import Toolbar from "./Toolbar";
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
17
- import { Fragment as _Fragment } from "react/jsx-runtime";
18
- var useStyles = createStyles(function (_ref) {
19
- var css = _ref.css,
20
- cx = _ref.cx,
21
- responsive = _ref.responsive,
22
- token = _ref.token;
23
- var toolbarClassName = 'chat-float-toolbar';
24
- return {
25
- assistant: css(_templateObject || (_templateObject = _taggedTemplateLiteral([""]))),
26
- choice: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n cursor: pointer;\n\n width: 20px;\n height: 20px;\n\n font-size: 12px;\n color: ", ";\n\n background: ", ";\n border-radius: 50%;\n "])), token.colorTextTertiary, token.colorFillContent),
27
- choiceActive: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n color: ", ";\n background: ", ";\n "])), token.colorTextLightSolid, token.colorPrimary),
28
- container: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n padding: 12px;\n border-radius: 4px;\n\n ", " {\n padding-inline: 0;\n }\n\n &:hover {\n background: ", ";\n\n .", " {\n opacity: 1;\n }\n }\n "])), responsive.mobile, token.colorFillQuaternary, toolbarClassName),
29
- floatAction: cx(toolbarClassName, css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: ", ";\n top: 4px;\n right: 4px;\n\n opacity: 0;\n "])), token.zIndexPopupBase - 100)),
30
- md: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n overflow-x: hidden;\n overflow-y: auto;\n max-width: 100%;\n .", " {\n max-width: 100%;\n }\n "])), responsive.mobile),
31
- system: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n filter: invert(1);\n "]))),
32
- user: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: linear-gradient(to right, ", ", ", ");\n "])), token.green3, token.gold3)
33
- };
34
- });
35
- var MessageItem = /*#__PURE__*/memo(function (_ref2) {
36
- var content = _ref2.content,
37
- error = _ref2.error,
38
- userAvatarImg = _ref2.userAvatarImg,
39
- choices = _ref2.choices,
40
- role = _ref2.role,
41
- index = _ref2.index,
42
- readonly = _ref2.readonly;
43
- var _useStyles = useStyles(),
44
- styles = _useStyles.styles,
45
- cx = _useStyles.cx;
46
- var _useResponsive = useResponsive(),
47
- mobile = _useResponsive.mobile;
48
- var _useState = useState(0),
49
- _useState2 = _slicedToArray(_useState, 2),
50
- activeChoice = _useState2[0],
51
- setActiveChoice = _useState2[1];
52
- var _useStore = useStore(function (s) {
53
- return [s.editingMessageId];
54
- }, shallow),
55
- _useStore2 = _slicedToArray(_useStore, 1),
56
- editingMessageId = _useStore2[0];
57
- var isEditing = editingMessageId === index;
58
- var fullChoices = choices ? [content].concat(_toConsumableArray(choices)) : [content];
59
- var displayContent = fullChoices[activeChoice];
60
- var isSystem = role === 'system';
61
- var isUser = role === 'user';
62
- return /*#__PURE__*/_jsxs(_Fragment, {
63
- children: [/*#__PURE__*/_jsxs(Flexbox, {
64
- className: styles.container,
65
- gap: 12,
66
- horizontal: true,
67
- id: "message-item-".concat(index),
68
- children: [isEditing || mobile ? undefined : /*#__PURE__*/_jsx(Toolbar, {
69
- className: styles.floatAction,
70
- content: content,
71
- index: index,
72
- isUser: isUser,
73
- readonly: readonly
74
- }), /*#__PURE__*/_jsxs(Flexbox, {
75
- align: 'center',
76
- gap: 8,
77
- children: [/*#__PURE__*/_jsx(ConfigProvider, {
78
- theme: {
79
- token: {
80
- fontSize: 14
81
- }
82
- },
83
- children: /*#__PURE__*/_jsx(Avatar, {
84
- avatar: role === 'user' ? userAvatarImg : 'data:image/webp;base64,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',
85
- shape: 'circle'
86
- // className={cx(styles[role])}
87
- })
88
- }), choices ? fullChoices.map(function (choice, index) {
89
- return /*#__PURE__*/_jsx(Center, {
90
- className: cx(styles.choice, activeChoice === index && styles.choiceActive),
91
- onClick: function onClick() {
92
- setActiveChoice(index);
93
- },
94
- onKeyDown: function onKeyDown(e) {
95
- if (e.key === 'Enter') {
96
- setActiveChoice(index);
97
- }
98
- },
99
- tabIndex: 10,
100
- children: index + 1
101
- }, index);
102
- }) : undefined]
103
- }), /*#__PURE__*/_jsx(Flexbox, {
104
- className: styles.md,
105
- flex: 1,
106
- children: /*#__PURE__*/_jsx(Content, {
107
- content: displayContent,
108
- error: error,
109
- index: index,
110
- loading: displayContent === LOADING_FLAT,
111
- role: role
112
- })
113
- })]
114
- }), isSystem && /*#__PURE__*/_jsx(Divider, {
115
- children: /*#__PURE__*/_jsx(Typography.Text, {
116
- style: {
117
- fontSize: 14,
118
- fontWeight: 'normal'
119
- },
120
- type: 'secondary',
121
- children: "\u5F00\u59CB\u5BF9\u8BDD"
122
- })
123
- })]
124
- });
125
- });
126
- export default MessageItem;
@@ -1,14 +0,0 @@
1
- import { CSSProperties, FC } from 'react';
2
- interface ChatListProps {
3
- /**
4
- * @title 是否包含系统消息
5
- */
6
- includeSystem?: boolean;
7
- /**
8
- * @title 是否只读
9
- */
10
- readonly?: boolean;
11
- style?: CSSProperties;
12
- }
13
- declare const ChatList: FC<ChatListProps>;
14
- export default ChatList;
@@ -1,62 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
4
- var _templateObject, _templateObject2;
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- import { createStyles } from 'antd-style';
8
- import isEqual from 'fast-deep-equal';
9
- import { memo } from 'react';
10
- import { Center, Flexbox } from 'react-layout-kit';
11
- import { useStore } from "../../Chat/store";
12
- import MessageItem from "./MessageItem";
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
- var useStyles = createStyles(function (_ref) {
16
- var css = _ref.css,
17
- token = _ref.token;
18
- return {
19
- btn: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n background: transparent;\n border: 2px solid ", " !important;\n "])), token.colorTextSecondary, token.colorBorderSecondary),
20
- loading: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 12px;\n background: ", ";\n border-radius: 8px;\n "])), token.colorFillQuaternary)
21
- };
22
- });
23
- var ChatList = /*#__PURE__*/memo(function (_ref2) {
24
- var readonly = _ref2.readonly,
25
- _ref2$includeSystem = _ref2.includeSystem,
26
- includeSystem = _ref2$includeSystem === void 0 ? false : _ref2$includeSystem,
27
- style = _ref2.style;
28
- // const [messages, loading] = useStore((s) => [s.messages, s.loading], isEqual);
29
- var _useStyles = useStyles(),
30
- styles = _useStyles.styles;
31
- var _useStore = useStore(function (s) {
32
- return [s.messages, s.loading];
33
- }, isEqual),
34
- _useStore2 = _slicedToArray(_useStore, 2),
35
- messages = _useStore2[0],
36
- loading = _useStore2[1];
37
- return !messages || messages.length === 0 ? undefined : /*#__PURE__*/_jsxs(Flexbox, {
38
- gap: 8,
39
- style: style,
40
- children: [messages
41
- // 根据情况确认是否包含系统
42
- .filter(function (s) {
43
- return includeSystem ? Boolean(s) : s.role !== 'system';
44
- }).map(function (item, index) {
45
- return /*#__PURE__*/_jsx(MessageItem, _objectSpread({
46
- index: index,
47
- readonly: readonly
48
- }, item), index);
49
- }), loading ? /*#__PURE__*/_jsx(Center, {
50
- className: styles.loading,
51
- id: 'for-loading',
52
- children: /*#__PURE__*/_jsxs(Flexbox, {
53
- align: 'center',
54
- distribution: 'space-between',
55
- gap: 24,
56
- horizontal: true,
57
- children: [/*#__PURE__*/_jsx("div", {}), "\u6B63\u5728\u751F\u6210...", /*#__PURE__*/_jsx("div", {})]
58
- })
59
- }) : undefined]
60
- });
61
- });
62
- export default ChatList;
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const ActionBar: () => import("react/jsx-runtime").JSX.Element | undefined;
3
- declare const _default: import("react").NamedExoticComponent<object>;
4
- export default _default;
@@ -1,71 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
- var _templateObject;
4
- import { ConfigProvider, Popconfirm, Tooltip } from 'antd';
5
- import { createStyles } from 'antd-style';
6
- import { EraserIcon } from 'lucide-react';
7
- import { memo } from 'react';
8
- import { Flexbox } from 'react-layout-kit';
9
- import { shallow } from 'zustand/shallow';
10
- import IconAction from "../../ActionIcon";
11
- import { chatSelectors, useStore } from "../../Chat/store";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- var useStyles = createStyles(function (_ref) {
15
- var css = _ref.css,
16
- token = _ref.token;
17
- return {
18
- extra: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", ";\n "])), token.colorTextTertiary)
19
- };
20
- });
21
- export var ActionBar = function ActionBar() {
22
- var _useStore = useStore(function (s) {
23
- return [chatSelectors.totalTokenCount(s), chatSelectors.agentTokenCount(s), chatSelectors.messagesTokenCount(s), s.dispatchMessage];
24
- }, shallow),
25
- _useStore2 = _slicedToArray(_useStore, 4),
26
- totalToken = _useStore2[0],
27
- agentToken = _useStore2[1],
28
- messagesToken = _useStore2[2],
29
- dispatchMessage = _useStore2[3];
30
- var _useStyles = useStyles(),
31
- styles = _useStyles.styles,
32
- theme = _useStyles.theme;
33
- return totalToken > 0 ? /*#__PURE__*/_jsx(ConfigProvider, {
34
- theme: {
35
- token: {
36
- colorText: theme.colorTextSecondary
37
- }
38
- },
39
- children: /*#__PURE__*/_jsxs(Flexbox, {
40
- align: 'center',
41
- className: styles.extra,
42
- direction: 'horizontal-reverse',
43
- gap: 8,
44
- paddingInline: 12,
45
- children: [/*#__PURE__*/_jsx(Popconfirm, {
46
- okButtonProps: {
47
- danger: true
48
- },
49
- okText: '清空会话',
50
- onConfirm: function onConfirm() {
51
- dispatchMessage({
52
- type: 'resetMessages'
53
- });
54
- },
55
- title: '你即将要清空会话,清空后将无法找回。是否清空当前会话?',
56
- children: /*#__PURE__*/_jsx(IconAction, {
57
- icon: EraserIcon,
58
- size: 'small',
59
- title: '清空当前会话'
60
- })
61
- }), /*#__PURE__*/_jsx(Tooltip, {
62
- title: [agentToken > 0 ? "\u89D2\u8272\u5B9A\u4E49: ".concat(agentToken) : undefined, messagesToken > 0 ? "\u4F1A\u8BDD: ".concat(messagesToken) : undefined].filter(Boolean).join(' | '),
63
- children: /*#__PURE__*/_jsxs(Flexbox, {
64
- gap: 4,
65
- children: [" Tokens: ", totalToken]
66
- })
67
- })]
68
- })
69
- }) : undefined;
70
- };
71
- export default /*#__PURE__*/memo(ActionBar);
@@ -1,4 +0,0 @@
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;
@@ -1,99 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
4
- import { SendOutlined } from '@ant-design/icons';
5
- import { Button, ConfigProvider, Input } from 'antd';
6
- import { createStyles, useResponsive } from 'antd-style';
7
- import { memo, useRef } from 'react';
8
- import { Flexbox } from 'react-layout-kit';
9
- import { shallow } from 'zustand/shallow';
10
- import { chatSelectors, useStore, useStoreApi } from "../../Chat/store";
11
- import ActionBar from "./ActionBar";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- var useStyles = createStyles(function (_ref) {
15
- var css = _ref.css,
16
- responsive = _ref.responsive,
17
- token = _ref.token;
18
- return {
19
- boxShadow: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n border-radius: 8px;\n box-shadow: ", ";\n "])), token.boxShadowSecondary),
20
- btn: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 10;\n right: 8px;\n bottom: 8px;\n\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n "])), token.colorTextTertiary, token.colorTextSecondary),
21
- container: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: sticky;\n z-index: ", ";\n bottom: 0;\n\n padding-top: 12px;\n padding-bottom: 24px;\n\n background-image: linear-gradient(to top, ", " 88%, transparent 100%);\n\n ", " {\n width: 100%;\n }\n "])), token.zIndexPopupBase, token.colorBgLayout, responsive.mobile),
22
- extra: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n color: ", ";\n "])), token.colorTextTertiary),
23
- input: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n border-radius: 8px;\n "])))
24
- };
25
- });
26
- export var InputArea = function InputArea() {
27
- var _useStore = useStore(function (s) {
28
- return [s.message, s.sendMessage, s.loading, chatSelectors.disableInput(s)];
29
- }, shallow),
30
- _useStore2 = _slicedToArray(_useStore, 4),
31
- message = _useStore2[0],
32
- sendMessage = _useStore2[1],
33
- isLoading = _useStore2[2],
34
- disabled = _useStore2[3];
35
- var isChineseInput = useRef(false);
36
- var _useStyles = useStyles(),
37
- styles = _useStyles.styles,
38
- theme = _useStyles.theme;
39
- var _useResponsive = useResponsive(),
40
- mobile = _useResponsive.mobile;
41
- var storeApi = useStoreApi();
42
- return /*#__PURE__*/_jsx(ConfigProvider, {
43
- theme: {
44
- token: {
45
- borderRadius: 4,
46
- colorBgContainer: theme.colorBgElevated,
47
- colorBorder: 'transparent',
48
- colorPrimaryHover: 'transparent',
49
- controlHeightLG: 48,
50
- fontSize: 16
51
- }
52
- },
53
- children: /*#__PURE__*/_jsxs(Flexbox, {
54
- className: styles.container,
55
- gap: 8,
56
- children: [/*#__PURE__*/_jsx(ActionBar, {}), /*#__PURE__*/_jsxs(Flexbox, {
57
- align: 'center',
58
- className: styles.boxShadow,
59
- gap: 8,
60
- horizontal: true,
61
- children: [/*#__PURE__*/_jsx(Input.TextArea, {
62
- autoSize: {
63
- maxRows: 8
64
- },
65
- className: styles.input,
66
- disabled: disabled,
67
- onChange: function onChange(e) {
68
- storeApi.setState({
69
- message: e.target.value
70
- });
71
- },
72
- onCompositionEnd: function onCompositionEnd() {
73
- isChineseInput.current = false;
74
- },
75
- onCompositionStart: function onCompositionStart() {
76
- isChineseInput.current = true;
77
- },
78
- onPressEnter: function onPressEnter(e) {
79
- if (!isLoading && !e.shiftKey && !isChineseInput.current) {
80
- e.preventDefault();
81
- sendMessage();
82
- }
83
- },
84
- placeholder: "\u8BF7\u8F93\u5165\u5185\u5BB9...",
85
- size: 'large',
86
- value: message
87
- }), mobile ? undefined : /*#__PURE__*/_jsx(Button, {
88
- className: styles.btn,
89
- disabled: disabled,
90
- icon: /*#__PURE__*/_jsx(SendOutlined, {}),
91
- loading: isLoading,
92
- onClick: sendMessage,
93
- type: "text"
94
- })]
95
- })]
96
- })
97
- });
98
- };
99
- export default /*#__PURE__*/memo(InputArea);
@@ -1,7 +0,0 @@
1
- import { FC } from 'react';
2
- import { ChatStore } from '../Chat/store';
3
- import { InternalChatContext } from '../Chat/types';
4
- export interface StoreUpdaterProps extends Partial<InternalChatContext>, Pick<ChatStore, 'onMessagesChange' | 'onAgentChange' | 'onResponseFinished' | 'onResponseStart'> {
5
- }
6
- declare const StoreUpdater: FC<StoreUpdaterProps>;
7
- export default StoreUpdater;
@@ -1,25 +0,0 @@
1
- import { createStoreUpdater } from 'zustand-utils';
2
- import { useStoreApi } from "../Chat/store";
3
- var StoreUpdater = function StoreUpdater(_ref) {
4
- var updateAt = _ref.updateAt,
5
- createAt = _ref.createAt,
6
- title = _ref.title,
7
- description = _ref.description,
8
- messages = _ref.messages,
9
- onAgentChange = _ref.onAgentChange,
10
- onMessagesChange = _ref.onMessagesChange,
11
- onResponseFinished = _ref.onResponseFinished,
12
- onResponseStart = _ref.onResponseStart;
13
- var useStoreUpdater = createStoreUpdater(useStoreApi());
14
- useStoreUpdater('onAgentChange', onAgentChange);
15
- useStoreUpdater('messages', messages);
16
- useStoreUpdater('onMessagesChange', onMessagesChange);
17
- useStoreUpdater('onResponseFinished', onResponseFinished);
18
- useStoreUpdater('onResponseStart', onResponseStart);
19
- useStoreUpdater('title', title);
20
- useStoreUpdater('description', description);
21
- useStoreUpdater('createAt', createAt);
22
- useStoreUpdater('updateAt', updateAt);
23
- return false;
24
- };
25
- export default StoreUpdater;
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import { AppProps } from './App';
3
- import { StoreUpdaterProps } from './StoreUpdater';
4
- export interface ConversationProps extends StoreUpdaterProps, AppProps {
5
- /**
6
- * @description Whether to enable devtools or not
7
- * @default false
8
- */
9
- devtools?: boolean;
10
- }
11
- declare const Conversation: import("react").NamedExoticComponent<ConversationProps>;
12
- export default Conversation;
@@ -1,28 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["readonly", "devtools", "includeSystem"];
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import { memo, useRef } from 'react';
7
- import { Provider, createChatStore } from "../Chat/store";
8
- import ChatContainer from "./App";
9
- import StoreUpdater from "./StoreUpdater";
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- var Conversation = /*#__PURE__*/memo(function (_ref) {
13
- var readonly = _ref.readonly,
14
- devtools = _ref.devtools,
15
- includeSystem = _ref.includeSystem,
16
- res = _objectWithoutProperties(_ref, _excluded);
17
- var reference = useRef(function () {
18
- return createChatStore(devtools);
19
- });
20
- return /*#__PURE__*/_jsxs(Provider, {
21
- createStore: reference.current,
22
- children: [/*#__PURE__*/_jsx(ChatContainer, {
23
- includeSystem: includeSystem,
24
- readonly: readonly
25
- }), /*#__PURE__*/_jsx(StoreUpdater, _objectSpread({}, res))]
26
- });
27
- });
28
- export default Conversation;