@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"
|