@lobehub/chat 1.96.2 → 1.96.4
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/.cursor/rules/debug-usage.mdc +84 -0
- package/.cursor/rules/desktop-controller-tests.mdc +188 -0
- package/.cursor/rules/desktop-feature-implementation.mdc +1 -1
- package/CHANGELOG.md +34 -0
- package/README.md +1 -1
- package/changelog/v1.json +10 -0
- package/package.json +6 -13
- package/src/app/[variants]/(auth)/next-auth/signin/AuthSignInBox.tsx +7 -7
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/FileItem/File.tsx +2 -3
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatList/ChatItem/Thread.tsx +3 -3
- package/src/app/[variants]/(main)/chat/(workspace)/@topic/features/TopicListContent/SearchResult/index.tsx +2 -2
- package/src/app/[variants]/(main)/chat/(workspace)/@topic/features/TopicListContent/ThreadItem/Content.tsx +5 -5
- package/src/app/[variants]/(main)/chat/(workspace)/@topic/features/TopicListContent/TopicItem/DefaultContent.tsx +3 -6
- package/src/app/[variants]/(main)/chat/(workspace)/@topic/features/TopicListContent/TopicItem/TopicContent.tsx +4 -5
- package/src/app/[variants]/(main)/chat/@session/features/SessionSearchBar.tsx +11 -5
- package/src/app/[variants]/(main)/files/(content)/@menu/features/KnowledgeBase/Item/Content.tsx +4 -6
- package/src/app/[variants]/(main)/files/(content)/NotSupportClient.tsx +6 -5
- package/src/app/[variants]/(main)/files/[id]/Header.tsx +5 -5
- package/src/app/[variants]/(main)/repos/[id]/evals/dataset/DatasetDetail/index.tsx +3 -3
- package/src/app/[variants]/(main)/repos/[id]/evals/evaluation/EvaluationList/index.tsx +4 -3
- package/src/app/[variants]/(main)/repos/[id]/features/Menu/Head/index.tsx +4 -2
- package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/CustomModelOption.tsx +5 -5
- package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelFetcher.tsx +3 -4
- package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/Option.tsx +3 -4
- package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +5 -12
- package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/index.tsx +7 -8
- package/src/app/[variants]/(main)/settings/provider/ProviderMenu/List.tsx +5 -6
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/DisabledModels.tsx +3 -4
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/EnabledModelList/index.tsx +5 -6
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ModelItem.tsx +4 -6
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ModelTitle/index.tsx +6 -6
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/SearchResult.tsx +3 -4
- package/src/app/[variants]/(main)/settings/sync/features/DeviceInfo/DeviceName.tsx +2 -3
- package/src/app/[variants]/(main)/settings/sync/features/DeviceInfo/index.tsx +3 -3
- package/src/app/[variants]/(main)/settings/sync/features/WebRTC/index.tsx +4 -4
- package/src/app/[variants]/oauth/consent/[uid]/ClientError.tsx +4 -6
- package/src/app/[variants]/oauth/consent/[uid]/Consent.tsx +7 -8
- package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +4 -6
- package/src/app/[variants]/oauth/handoff/Client.tsx +6 -6
- package/src/components/InitProgress/index.tsx +3 -3
- package/src/components/Loading/CircleLoading/index.tsx +3 -4
- package/src/components/ModelSelect/index.tsx +3 -6
- package/src/components/StatisticCard/TitleWithPercentage.tsx +4 -7
- package/src/components/StatisticCard/index.tsx +6 -7
- package/src/config/modelProviders/index.ts +0 -1
- package/src/features/AgentSetting/AgentPlugin/index.tsx +4 -3
- package/src/features/ChatInput/Desktop/FilePreview/FileItem/index.tsx +3 -4
- package/src/features/ChatInput/components/UploadDetail/UploadStatus.tsx +10 -10
- package/src/features/ChatInput/components/UploadDetail/index.tsx +3 -3
- package/src/features/Conversation/Messages/Assistant/FileChunks/Item/index.tsx +2 -3
- package/src/features/Conversation/Messages/User/BelowMessage.tsx +3 -4
- package/src/features/Conversation/Messages/User/FileListViewer/Item.tsx +3 -3
- package/src/features/Conversation/components/History/index.tsx +2 -3
- package/src/features/DataImporter/ImportDetail.tsx +2 -4
- package/src/features/ElectronTitlebar/Connection/Waiting.tsx +3 -6
- package/src/features/FileManager/FileList/EmptyStatus.tsx +4 -4
- package/src/features/FileManager/FileList/index.tsx +3 -3
- package/src/features/FileManager/UploadDock/Item.tsx +11 -11
- package/src/features/FileManager/UploadDock/index.tsx +3 -4
- package/src/features/FileManager/index.tsx +3 -5
- package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +3 -5
- package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +2 -4
- package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Item/index.tsx +5 -7
- package/src/features/Portal/Artifacts/Header.tsx +4 -4
- package/src/features/Portal/FilePreview/Header.tsx +4 -4
- package/src/features/Portal/Home/Body/Files/FileList/Item.tsx +3 -3
- package/src/features/Portal/Home/Body/Files/FileList/index.tsx +2 -3
- package/src/features/Portal/Home/Body/Files/index.tsx +3 -3
- package/src/features/Portal/Home/Body/Plugins/ArtifactList/Item/index.tsx +3 -4
- package/src/features/Portal/Home/Body/Plugins/ArtifactList/index.tsx +3 -3
- package/src/features/Portal/Home/Body/Plugins/index.tsx +3 -3
- package/src/features/Portal/Home/Title.tsx +3 -3
- package/src/features/Portal/MessageDetail/Header.tsx +3 -3
- package/src/features/Portal/Plugins/Header.tsx +5 -6
- package/src/features/Portal/Thread/Header/Active.tsx +3 -4
- package/src/features/Portal/Thread/Header/New.tsx +4 -4
- package/src/features/SyncStatusInspector/EnableSync.tsx +5 -9
- package/src/tools/local-system/Render/ReadLocalFile/ReadFileView.tsx +5 -6
- package/src/tools/web-browsing/Portal/PageContent/index.tsx +4 -7
- package/src/tools/web-browsing/Portal/Search/ResultList/SearchItem/TitleExtra.tsx +3 -4
- package/src/tools/web-browsing/Portal/Search/ResultList/SearchItem/Video.tsx +4 -3
- package/src/tools/web-browsing/Portal/Search/ResultList/SearchItem/index.tsx +3 -3
- package/src/tools/web-browsing/Render/PageContent/Result.tsx +4 -6
- package/src/tools/web-browsing/Render/Search/SearchResult/SearchResultItem.tsx +3 -3
- package/src/tools/web-browsing/components/SearchBar.tsx +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { createStyles } from 'antd-style';
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -8,8 +8,6 @@ import { KnowledgeItem } from '@/types/knowledgeBase';
|
|
|
8
8
|
|
|
9
9
|
import Actions from './Action';
|
|
10
10
|
|
|
11
|
-
const { Paragraph } = Typography;
|
|
12
|
-
|
|
13
11
|
const useStyles = createStyles(({ css, token }) => ({
|
|
14
12
|
desc: css`
|
|
15
13
|
margin: 0 !important;
|
|
@@ -51,14 +49,14 @@ const PluginItem = memo<KnowledgeItem>(({ id, fileType, name, type, description,
|
|
|
51
49
|
<KnowledgeIcon fileType={fileType} name={name} size={{ file: 40, repo: 40 }} type={type} />
|
|
52
50
|
<Flexbox flex={1} gap={4} style={{ overflow: 'hidden', position: 'relative' }}>
|
|
53
51
|
<Flexbox align={'center'} gap={8} horizontal>
|
|
54
|
-
<
|
|
52
|
+
<Text className={styles.title} ellipsis>
|
|
55
53
|
{name}
|
|
56
|
-
</
|
|
54
|
+
</Text>
|
|
57
55
|
</Flexbox>
|
|
58
56
|
{description && (
|
|
59
|
-
<
|
|
57
|
+
<Text className={styles.desc} ellipsis>
|
|
60
58
|
{description}
|
|
61
|
-
</
|
|
59
|
+
</Text>
|
|
62
60
|
)}
|
|
63
61
|
</Flexbox>
|
|
64
62
|
</Flexbox>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionIcon, Icon, Segmented } from '@lobehub/ui';
|
|
2
|
-
import { ConfigProvider
|
|
1
|
+
import { ActionIcon, Icon, Segmented, Text } from '@lobehub/ui';
|
|
2
|
+
import { ConfigProvider } from 'antd';
|
|
3
3
|
import { cx } from 'antd-style';
|
|
4
4
|
import { ArrowLeft, CodeIcon, EyeIcon } from 'lucide-react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
@@ -34,9 +34,9 @@ const Header = () => {
|
|
|
34
34
|
<Flexbox align={'center'} flex={1} gap={12} horizontal justify={'space-between'} width={'100%'}>
|
|
35
35
|
<Flexbox align={'center'} gap={4} horizontal>
|
|
36
36
|
<ActionIcon icon={ArrowLeft} onClick={() => closeArtifact()} size={'small'} />
|
|
37
|
-
<
|
|
37
|
+
<Text className={cx(oneLineEllipsis)} type={'secondary'}>
|
|
38
38
|
{artifactTitle}
|
|
39
|
-
</
|
|
39
|
+
</Text>
|
|
40
40
|
</Flexbox>
|
|
41
41
|
<ConfigProvider
|
|
42
42
|
theme={{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionIcon } from '@lobehub/ui';
|
|
2
|
-
import { Skeleton
|
|
1
|
+
import { ActionIcon, Text } from '@lobehub/ui';
|
|
2
|
+
import { Skeleton } from 'antd';
|
|
3
3
|
import { ArrowLeft } from 'lucide-react';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
5
5
|
|
|
@@ -25,9 +25,9 @@ const Header = () => {
|
|
|
25
25
|
{isLoading ? (
|
|
26
26
|
<Skeleton.Button active style={{ height: 28 }} />
|
|
27
27
|
) : (
|
|
28
|
-
<
|
|
28
|
+
<Text className={oneLineEllipsis} style={{ fontSize: 16 }} type={'secondary'}>
|
|
29
29
|
{data?.name}
|
|
30
|
-
</
|
|
30
|
+
</Text>
|
|
31
31
|
)}
|
|
32
32
|
</Flexbox>
|
|
33
33
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { createStyles } from 'antd-style';
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -43,8 +43,8 @@ const FileItem = memo<ChatFileItem>(({ name, fileType, size, id }) => {
|
|
|
43
43
|
>
|
|
44
44
|
<FileIcon fileName={name} fileType={fileType} />
|
|
45
45
|
<Flexbox>
|
|
46
|
-
<
|
|
47
|
-
<
|
|
46
|
+
<Text ellipsis={{ tooltip: true }}>{name}</Text>
|
|
47
|
+
<Text type={'secondary'}>{formatSize(size)}</Text>
|
|
48
48
|
</Flexbox>
|
|
49
49
|
</Flexbox>
|
|
50
50
|
);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Avatar, Icon } from '@lobehub/ui';
|
|
2
|
-
import { Typography } from 'antd';
|
|
1
|
+
import { Avatar, Icon, Text } from '@lobehub/ui';
|
|
3
2
|
import { useTheme } from 'antd-style';
|
|
4
3
|
import isEqual from 'fast-deep-equal';
|
|
5
4
|
import { InboxIcon } from 'lucide-react';
|
|
@@ -35,7 +34,7 @@ const FileList = () => {
|
|
|
35
34
|
size={48}
|
|
36
35
|
/>
|
|
37
36
|
<Balancer>
|
|
38
|
-
<
|
|
37
|
+
<Text type={'secondary'}>{t('emptyKnowledgeList')}</Text>
|
|
39
38
|
</Balancer>
|
|
40
39
|
</Center>
|
|
41
40
|
) : (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { memo } from 'react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -10,9 +10,9 @@ export const Files = memo(() => {
|
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<Flexbox gap={8}>
|
|
13
|
-
<
|
|
13
|
+
<Text as={'h5'} style={{ marginInline: 12 }}>
|
|
14
14
|
{t('files')}
|
|
15
|
-
</
|
|
15
|
+
</Text>
|
|
16
16
|
<FileList />
|
|
17
17
|
</Flexbox>
|
|
18
18
|
);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Icon, Tag } from '@lobehub/ui';
|
|
2
|
-
import { Typography } from 'antd';
|
|
1
|
+
import { Icon, Tag, Text } from '@lobehub/ui';
|
|
3
2
|
import isEqual from 'fast-deep-equal';
|
|
4
3
|
import { CircuitBoard } from 'lucide-react';
|
|
5
4
|
import { memo } from 'react';
|
|
@@ -53,9 +52,9 @@ const ArtifactItem = memo<ArtifactItemProps>(({ payload, messageId, identifier =
|
|
|
53
52
|
<Tag>{payload?.apiName}</Tag>
|
|
54
53
|
</Flexbox>
|
|
55
54
|
<div>
|
|
56
|
-
<
|
|
55
|
+
<Text ellipsis style={{ fontSize: 12 }} type={'secondary'}>
|
|
57
56
|
{args}
|
|
58
|
-
</
|
|
57
|
+
</Text>
|
|
59
58
|
</div>
|
|
60
59
|
</Flexbox>
|
|
61
60
|
</Flexbox>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Avatar, Icon } from '@lobehub/ui';
|
|
2
|
-
import { Skeleton
|
|
1
|
+
import { Avatar, Icon, Text } from '@lobehub/ui';
|
|
2
|
+
import { Skeleton } from 'antd';
|
|
3
3
|
import { useTheme } from 'antd-style';
|
|
4
4
|
import isEqual from 'fast-deep-equal';
|
|
5
5
|
import { Origami } from 'lucide-react';
|
|
@@ -41,7 +41,7 @@ const ArtifactList = () => {
|
|
|
41
41
|
size={48}
|
|
42
42
|
/>
|
|
43
43
|
<Balancer>
|
|
44
|
-
<
|
|
44
|
+
<Text type={'secondary'}>{t('emptyArtifactList')}</Text>
|
|
45
45
|
</Balancer>
|
|
46
46
|
</Center>
|
|
47
47
|
) : (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { memo } from 'react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -10,9 +10,9 @@ export const Artifacts = memo(() => {
|
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<Flexbox gap={8}>
|
|
13
|
-
<
|
|
13
|
+
<Text as={'h5'} style={{ marginInline: 12 }}>
|
|
14
14
|
{t('Plugins')}
|
|
15
|
-
</
|
|
15
|
+
</Text>
|
|
16
16
|
<ArtifactList />
|
|
17
17
|
</Flexbox>
|
|
18
18
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { Text } from '@lobehub/ui';
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
|
|
@@ -8,9 +8,9 @@ const Title = memo(() => {
|
|
|
8
8
|
const { t } = useTranslation('portal');
|
|
9
9
|
|
|
10
10
|
return (
|
|
11
|
-
<
|
|
11
|
+
<Text style={{ fontSize: 16 }} type={'secondary'}>
|
|
12
12
|
{t('title')}
|
|
13
|
-
</
|
|
13
|
+
</Text>
|
|
14
14
|
);
|
|
15
15
|
});
|
|
16
16
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
3
|
import { Flexbox } from 'react-layout-kit';
|
|
4
4
|
|
|
@@ -9,9 +9,9 @@ const Header = () => {
|
|
|
9
9
|
|
|
10
10
|
return (
|
|
11
11
|
<Flexbox align={'center'} gap={4} horizontal>
|
|
12
|
-
<
|
|
12
|
+
<Text className={oneLineEllipsis} style={{ fontSize: 16 }} type={'secondary'}>
|
|
13
13
|
{t('messageDetail')}
|
|
14
|
-
</
|
|
14
|
+
</Text>
|
|
15
15
|
</Flexbox>
|
|
16
16
|
);
|
|
17
17
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ActionIcon, Icon } from '@lobehub/ui';
|
|
2
|
-
import { Typography } from 'antd';
|
|
1
|
+
import { ActionIcon, Icon, Text } from '@lobehub/ui';
|
|
3
2
|
import isEqual from 'fast-deep-equal';
|
|
4
3
|
import { ArrowLeft, Globe } from 'lucide-react';
|
|
5
4
|
import { useTranslation } from 'react-i18next';
|
|
@@ -27,9 +26,9 @@ const Header = () => {
|
|
|
27
26
|
<Flexbox align={'center'} gap={8} horizontal>
|
|
28
27
|
<ActionIcon icon={ArrowLeft} onClick={() => closeToolUI()} size={'small'} />
|
|
29
28
|
<Icon icon={Globe} size={16} />
|
|
30
|
-
<
|
|
29
|
+
<Text style={{ fontSize: 16 }} type={'secondary'}>
|
|
31
30
|
{t('search.title')}
|
|
32
|
-
</
|
|
31
|
+
</Text>
|
|
33
32
|
</Flexbox>
|
|
34
33
|
);
|
|
35
34
|
}
|
|
@@ -37,9 +36,9 @@ const Header = () => {
|
|
|
37
36
|
<Flexbox align={'center'} gap={4} horizontal>
|
|
38
37
|
<ActionIcon icon={ArrowLeft} onClick={() => closeToolUI()} size={'small'} />
|
|
39
38
|
<PluginAvatar identifier={toolUIIdentifier} size={28} />
|
|
40
|
-
<
|
|
39
|
+
<Text style={{ fontSize: 16 }} type={'secondary'}>
|
|
41
40
|
{pluginTitle}
|
|
42
|
-
</
|
|
41
|
+
</Text>
|
|
43
42
|
</Flexbox>
|
|
44
43
|
);
|
|
45
44
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Icon } from '@lobehub/ui';
|
|
2
|
-
import { Typography } from 'antd';
|
|
1
|
+
import { Icon, Text } from '@lobehub/ui';
|
|
3
2
|
import { useTheme } from 'antd-style';
|
|
4
3
|
import isEqual from 'fast-deep-equal';
|
|
5
4
|
import { ListTree } from 'lucide-react';
|
|
@@ -20,7 +19,7 @@ const Active = memo(() => {
|
|
|
20
19
|
currentThread && (
|
|
21
20
|
<Flexbox align={'center'} gap={8} horizontal style={{ marginInlineStart: 4 }}>
|
|
22
21
|
<Icon color={theme.colorTextSecondary} icon={ListTree} size={18} />
|
|
23
|
-
<
|
|
22
|
+
<Text
|
|
24
23
|
className={oneLineEllipsis}
|
|
25
24
|
ellipsis={true}
|
|
26
25
|
style={{ color: theme.colorTextSecondary, fontSize: 14 }}
|
|
@@ -32,7 +31,7 @@ const Active = memo(() => {
|
|
|
32
31
|
) : (
|
|
33
32
|
currentThread?.title
|
|
34
33
|
)}
|
|
35
|
-
</
|
|
34
|
+
</Text>
|
|
36
35
|
</Flexbox>
|
|
37
36
|
)
|
|
38
37
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Icon } from '@lobehub/ui';
|
|
2
|
-
import { Switch
|
|
1
|
+
import { Icon, Text } from '@lobehub/ui';
|
|
2
|
+
import { Switch } from 'antd';
|
|
3
3
|
import { GitBranch } from 'lucide-react';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -17,9 +17,9 @@ const NewThreadHeader = () => {
|
|
|
17
17
|
return (
|
|
18
18
|
<Flexbox align={'center'} gap={8} horizontal style={{ marginInlineStart: 4 }}>
|
|
19
19
|
<Icon icon={GitBranch} size={18} />
|
|
20
|
-
<
|
|
20
|
+
<Text className={oneLineEllipsis} ellipsis style={{ fontSize: 14 }}>
|
|
21
21
|
{t('newPortalThread.title')}
|
|
22
|
-
</
|
|
22
|
+
</Text>
|
|
23
23
|
<Flexbox align={'center'} gap={8} horizontal>
|
|
24
24
|
<Switch
|
|
25
25
|
checked={newThreadMode === ThreadType.Continuation}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionIcon, Avatar, Icon, Tag } from '@lobehub/ui';
|
|
2
|
-
import { Divider, Popover, Switch
|
|
1
|
+
import { ActionIcon, Avatar, Icon, Tag, Text } from '@lobehub/ui';
|
|
2
|
+
import { Divider, Popover, Switch } from 'antd';
|
|
3
3
|
import { createStyles } from 'antd-style';
|
|
4
4
|
import { TooltipPlacement } from 'antd/es/tooltip';
|
|
5
5
|
import isEqual from 'fast-deep-equal';
|
|
@@ -15,8 +15,6 @@ import { pathString } from '@/utils/url';
|
|
|
15
15
|
|
|
16
16
|
import EnableTag from './EnableTag';
|
|
17
17
|
|
|
18
|
-
const { Text } = Typography;
|
|
19
|
-
|
|
20
18
|
const useStyles = createStyles(({ css, token, prefixCls }) => ({
|
|
21
19
|
text: css`
|
|
22
20
|
max-width: 100%;
|
|
@@ -67,9 +65,7 @@ const EnableSync = memo<EnableSyncProps>(({ hiddenActions, placement = 'bottomLe
|
|
|
67
65
|
style={{ paddingInlineEnd: 12 }}
|
|
68
66
|
>
|
|
69
67
|
{t('sync.channel')}
|
|
70
|
-
<Text className={styles.text}
|
|
71
|
-
{channelName}
|
|
72
|
-
</Text>
|
|
68
|
+
<Text className={styles.text}>{channelName}</Text>
|
|
73
69
|
</Flexbox>
|
|
74
70
|
</Flexbox>
|
|
75
71
|
<Divider dashed style={{ margin: 0 }} />
|
|
@@ -99,9 +95,9 @@ const EnableSync = memo<EnableSyncProps>(({ hiddenActions, placement = 'bottomLe
|
|
|
99
95
|
</Flexbox>
|
|
100
96
|
)}
|
|
101
97
|
</Flexbox>
|
|
102
|
-
<
|
|
98
|
+
<Text type={'secondary'}>
|
|
103
99
|
{user.os} · {user.browser}
|
|
104
|
-
</
|
|
100
|
+
</Text>
|
|
105
101
|
</Flexbox>
|
|
106
102
|
</Flexbox>
|
|
107
103
|
))}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LocalReadFileResult } from '@lobechat/electron-client-ipc';
|
|
2
|
-
import { ActionIcon, Icon, Markdown } from '@lobehub/ui';
|
|
3
|
-
import { Typography } from 'antd';
|
|
2
|
+
import { ActionIcon, Icon, Markdown, Text } from '@lobehub/ui';
|
|
4
3
|
import { createStyles } from 'antd-style';
|
|
5
4
|
import { AlignLeft, Asterisk, ChevronDownIcon, ExternalLink, FolderOpen } from 'lucide-react';
|
|
6
5
|
import React, { memo, useState } from 'react';
|
|
@@ -118,9 +117,9 @@ const ReadFileView = memo<ReadFileViewProps>(
|
|
|
118
117
|
<Flexbox align={'center'} flex={1} gap={0} horizontal style={{ overflow: 'hidden' }}>
|
|
119
118
|
<FileIcon fileName={filename} fileType={fileType} size={24} variant={'raw'} />
|
|
120
119
|
<Flexbox horizontal>
|
|
121
|
-
<
|
|
120
|
+
<Text className={styles.fileName} ellipsis>
|
|
122
121
|
{filename}
|
|
123
|
-
</
|
|
122
|
+
</Text>
|
|
124
123
|
{/* Actions on Hover */}
|
|
125
124
|
<Flexbox className={styles.actions} gap={2} horizontal style={{ marginLeft: 8 }}>
|
|
126
125
|
<ActionIcon
|
|
@@ -174,9 +173,9 @@ const ReadFileView = memo<ReadFileViewProps>(
|
|
|
174
173
|
</Flexbox>
|
|
175
174
|
|
|
176
175
|
{/* Path */}
|
|
177
|
-
<
|
|
176
|
+
<Text className={styles.path} ellipsis type={'secondary'}>
|
|
178
177
|
{path}
|
|
179
|
-
</
|
|
178
|
+
</Text>
|
|
180
179
|
|
|
181
180
|
{isExpanded && (
|
|
182
181
|
<Flexbox className={styles.previewBox} style={{ maxHeight: 240, overflow: 'auto' }}>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Alert, CopyButton, Highlighter, Icon, Markdown, Segmented } from '@lobehub/ui';
|
|
2
|
-
import { Descriptions
|
|
1
|
+
import { Alert, CopyButton, Highlighter, Icon, Markdown, Segmented, Text } from '@lobehub/ui';
|
|
2
|
+
import { Descriptions } from 'antd';
|
|
3
3
|
import { createStyles } from 'antd-style';
|
|
4
4
|
import { ExternalLink } from 'lucide-react';
|
|
5
5
|
import Link from 'next/link';
|
|
@@ -148,12 +148,9 @@ const PageContent = memo<PageContentProps>(({ result }) => {
|
|
|
148
148
|
</Flexbox>
|
|
149
149
|
</Flexbox>
|
|
150
150
|
{description && (
|
|
151
|
-
<
|
|
152
|
-
className={styles.description}
|
|
153
|
-
ellipsis={{ expandable: false, rows: 4 }}
|
|
154
|
-
>
|
|
151
|
+
<Text className={styles.description} ellipsis={{ rows: 4 }}>
|
|
155
152
|
{description}
|
|
156
|
-
</
|
|
153
|
+
</Text>
|
|
157
154
|
)}
|
|
158
155
|
<Flexbox align={'center'} className={styles.url} gap={4} horizontal>
|
|
159
156
|
{result.data.siteName && <div>{result.data.siteName} · </div>}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Tag, Tooltip } from '@lobehub/ui';
|
|
2
|
-
import { Typography } from 'antd';
|
|
1
|
+
import { Tag, Text, Tooltip } from '@lobehub/ui';
|
|
3
2
|
import { memo } from 'react';
|
|
4
3
|
import { useTranslation } from 'react-i18next';
|
|
5
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -27,12 +26,12 @@ const TitleExtra = memo<TitleExtraProps>(({ category, score, highlight, engines
|
|
|
27
26
|
{score.toFixed(1)}
|
|
28
27
|
</Tag>
|
|
29
28
|
) : (
|
|
30
|
-
<
|
|
29
|
+
<Text
|
|
31
30
|
style={{ textAlign: 'center', width: 32, wordBreak: 'keep-all' }}
|
|
32
31
|
type={'secondary'}
|
|
33
32
|
>
|
|
34
33
|
{score.toFixed(1)}
|
|
35
|
-
</
|
|
34
|
+
</Text>
|
|
36
35
|
)}
|
|
37
36
|
</Tooltip>
|
|
38
37
|
<CategoryAvatar category={category || 'general'} />
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
|
+
import { Avatar as AntAvatar } from 'antd';
|
|
2
3
|
import { createStyles } from 'antd-style';
|
|
3
4
|
import { memo, useState } from 'react';
|
|
4
5
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -122,9 +123,9 @@ const VideoItem = memo<SearchResultProps>(
|
|
|
122
123
|
score={score}
|
|
123
124
|
/>
|
|
124
125
|
</Flexbox>
|
|
125
|
-
<
|
|
126
|
+
<Text className={styles.url} type={'secondary'}>
|
|
126
127
|
{url}
|
|
127
|
-
</
|
|
128
|
+
</Text>
|
|
128
129
|
<Flexbox className={styles.desc}>{content}</Flexbox>
|
|
129
130
|
</Flexbox>
|
|
130
131
|
</Flexbox>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { createStyles } from 'antd-style';
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
@@ -78,9 +78,9 @@ const SearchItem = memo<SearchResultProps>((props) => {
|
|
|
78
78
|
score={score}
|
|
79
79
|
/>
|
|
80
80
|
</Flexbox>
|
|
81
|
-
<
|
|
81
|
+
<Text className={styles.url} type={'secondary'}>
|
|
82
82
|
{url}
|
|
83
|
-
</
|
|
83
|
+
</Text>
|
|
84
84
|
<Flexbox className={styles.desc}>{content}</Flexbox>
|
|
85
85
|
</Flexbox>
|
|
86
86
|
</Flexbox>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { CrawlErrorResult, CrawlSuccessResult } from '@lobechat/web-crawler';
|
|
4
|
-
import { Alert, Highlighter, Icon } from '@lobehub/ui';
|
|
5
|
-
import { Descriptions
|
|
4
|
+
import { Alert, Highlighter, Icon, Text } from '@lobehub/ui';
|
|
5
|
+
import { Descriptions } from 'antd';
|
|
6
6
|
import { createStyles } from 'antd-style';
|
|
7
7
|
import { ExternalLink } from 'lucide-react';
|
|
8
8
|
import Link from 'next/link';
|
|
@@ -13,8 +13,6 @@ import { Center, Flexbox } from 'react-layout-kit';
|
|
|
13
13
|
import { useChatStore } from '@/store/chat';
|
|
14
14
|
import { WebBrowsingManifest } from '@/tools/web-browsing';
|
|
15
15
|
|
|
16
|
-
const { Paragraph } = Typography;
|
|
17
|
-
|
|
18
16
|
const useStyles = createStyles(({ token, css }) => {
|
|
19
17
|
return {
|
|
20
18
|
cardBody: css`
|
|
@@ -146,9 +144,9 @@ const CrawlerResultCard = memo<CrawlerData>(({ result, messageId, crawler, origi
|
|
|
146
144
|
</Center>
|
|
147
145
|
</Link>
|
|
148
146
|
</Flexbox>
|
|
149
|
-
<
|
|
147
|
+
<Text className={styles.description} ellipsis={{ rows: 2 }}>
|
|
150
148
|
{description || result.content?.slice(0, 40)}
|
|
151
|
-
</
|
|
149
|
+
</Text>
|
|
152
150
|
</Flexbox>
|
|
153
151
|
<div className={styles.footer}>
|
|
154
152
|
<Descriptions
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Text } from '@lobehub/ui';
|
|
2
2
|
import { createStyles } from 'antd-style';
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { memo } from 'react';
|
|
@@ -54,9 +54,9 @@ const SearchResultItem = memo<UniformSearchResult>(({ url, title }) => {
|
|
|
54
54
|
<div className={styles.title}>{title}</div>
|
|
55
55
|
<Flexbox align={'center'} gap={4} horizontal>
|
|
56
56
|
<WebFavicon size={14} title={title} url={url} />
|
|
57
|
-
<
|
|
57
|
+
<Text className={styles.url} type={'secondary'}>
|
|
58
58
|
{host.replace('www.', '')}
|
|
59
|
-
</
|
|
59
|
+
</Text>
|
|
60
60
|
</Flexbox>
|
|
61
61
|
</Flexbox>
|
|
62
62
|
</Link>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Button, Input, Select, Tooltip } from '@lobehub/ui';
|
|
2
|
-
import { Checkbox, Radio, Space
|
|
1
|
+
import { Button, Input, Select, Text, Tooltip } from '@lobehub/ui';
|
|
2
|
+
import { Checkbox, Radio, Space } from 'antd';
|
|
3
3
|
import { SearchIcon } from 'lucide-react';
|
|
4
4
|
import { ReactNode, memo, useState } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
@@ -115,9 +115,9 @@ const SearchBar = memo<SearchBarProps>(
|
|
|
115
115
|
/>
|
|
116
116
|
) : (
|
|
117
117
|
<Flexbox align={'flex-start'} gap={8} horizontal>
|
|
118
|
-
<
|
|
118
|
+
<Text style={{ marginTop: 2, wordBreak: 'keep-all' }} type={'secondary'}>
|
|
119
119
|
{t('search.searchEngine.title')}
|
|
120
|
-
</
|
|
120
|
+
</Text>
|
|
121
121
|
<Checkbox.Group
|
|
122
122
|
onChange={(checkedValue) => {
|
|
123
123
|
setEngines(checkedValue);
|
|
@@ -164,9 +164,9 @@ const SearchBar = memo<SearchBarProps>(
|
|
|
164
164
|
/>
|
|
165
165
|
) : (
|
|
166
166
|
<Flexbox align="flex-start" gap={8} horizontal>
|
|
167
|
-
<
|
|
167
|
+
<Text style={{ marginTop: 2, wordBreak: 'keep-all' }} type={'secondary'}>
|
|
168
168
|
{t('search.searchCategory.title')}
|
|
169
|
-
</
|
|
169
|
+
</Text>
|
|
170
170
|
<Checkbox.Group
|
|
171
171
|
onChange={(checkedValue) => setCategories(checkedValue)}
|
|
172
172
|
options={Object.keys(CATEGORY_ICON_MAP).map((item) => ({
|
|
@@ -184,7 +184,7 @@ const SearchBar = memo<SearchBarProps>(
|
|
|
184
184
|
)}
|
|
185
185
|
|
|
186
186
|
<Flexbox align={'center'} gap={16} horizontal wrap={'wrap'}>
|
|
187
|
-
<
|
|
187
|
+
<Text type={'secondary'}>{t('search.searchTimeRange.title')}</Text>
|
|
188
188
|
<Radio.Group
|
|
189
189
|
onChange={(e) => setTimeRange(e.target.value)}
|
|
190
190
|
optionType="button"
|