@lobehub/chat 1.96.2 → 1.96.3
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/CHANGELOG.md +17 -0
- package/README.md +5 -0
- package/changelog/v1.json +5 -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/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/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,6 +1,6 @@
|
|
1
1
|
import { CheckCircleFilled } from '@ant-design/icons';
|
2
|
-
import { Icon } from '@lobehub/ui';
|
3
|
-
import { Progress
|
2
|
+
import { Icon, Text } from '@lobehub/ui';
|
3
|
+
import { Progress } from 'antd';
|
4
4
|
import { useTheme } from 'antd-style';
|
5
5
|
import { Loader2Icon } from 'lucide-react';
|
6
6
|
import { memo } from 'react';
|
@@ -26,9 +26,9 @@ const UploadStatus = memo<UploadStateProps>(({ status, size, uploadState }) => {
|
|
26
26
|
return (
|
27
27
|
<Flexbox align={'center'} gap={4} horizontal>
|
28
28
|
<Icon icon={Loader2Icon} size={12} spin />
|
29
|
-
<
|
29
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
30
30
|
{t('upload.preview.status.pending')}
|
31
|
-
</
|
31
|
+
</Text>
|
32
32
|
</Flexbox>
|
33
33
|
);
|
34
34
|
}
|
@@ -37,9 +37,9 @@ const UploadStatus = memo<UploadStateProps>(({ status, size, uploadState }) => {
|
|
37
37
|
return (
|
38
38
|
<Flexbox align={'center'} gap={4} horizontal>
|
39
39
|
<Progress percent={uploadState?.progress} size={14} type="circle" />
|
40
|
-
<
|
40
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
41
41
|
{formatSize(size * ((uploadState?.progress || 0) / 100), 0)} / {formatSize(size)}
|
42
|
-
</
|
42
|
+
</Text>
|
43
43
|
</Flexbox>
|
44
44
|
);
|
45
45
|
}
|
@@ -48,9 +48,9 @@ const UploadStatus = memo<UploadStateProps>(({ status, size, uploadState }) => {
|
|
48
48
|
return (
|
49
49
|
<Flexbox align={'center'} gap={4} horizontal>
|
50
50
|
<Progress percent={uploadState?.progress} size={14} type="circle" />
|
51
|
-
<
|
51
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
52
52
|
{formatSize(size)}
|
53
|
-
</
|
53
|
+
</Text>
|
54
54
|
</Flexbox>
|
55
55
|
);
|
56
56
|
}
|
@@ -59,9 +59,9 @@ const UploadStatus = memo<UploadStateProps>(({ status, size, uploadState }) => {
|
|
59
59
|
return (
|
60
60
|
<Flexbox align={'center'} gap={4} horizontal>
|
61
61
|
<CheckCircleFilled style={{ color: theme.colorSuccess, fontSize: 12 }} />
|
62
|
-
<
|
62
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
63
63
|
{formatSize(size)}
|
64
|
-
</
|
64
|
+
</Text>
|
65
65
|
</Flexbox>
|
66
66
|
);
|
67
67
|
}
|
@@ -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 { useTranslation } from 'react-i18next';
|
@@ -34,9 +34,9 @@ const UploadDetail = memo<UploadDetailProps>(({ uploadState, status, size, tasks
|
|
34
34
|
<Flexbox align={'center'} gap={8} height={22} horizontal>
|
35
35
|
<UploadStatus size={size} status={status} uploadState={uploadState} />
|
36
36
|
{!!tasks && Object.keys(tasks).length === 0 ? (
|
37
|
-
<
|
37
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
38
38
|
{t('upload.preview.prepareTasks')}
|
39
|
-
</
|
39
|
+
</Text>
|
40
40
|
) : (
|
41
41
|
<div>
|
42
42
|
<FileParsingStatus {...tasks} className={styles.status} hideEmbeddingButton />
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import { Tooltip } from '@lobehub/ui';
|
2
|
-
import { Typography } from 'antd';
|
1
|
+
import { Text, Tooltip } from '@lobehub/ui';
|
3
2
|
import { memo } from 'react';
|
4
3
|
import { Center, Flexbox } from 'react-layout-kit';
|
5
4
|
|
@@ -33,7 +32,7 @@ const ChunkItem = memo<ChunkItemProps>(({ id, fileId, similarity, text, filename
|
|
33
32
|
>
|
34
33
|
<FileIcon fileName={filename} fileType={fileType} size={20} variant={'raw'} />
|
35
34
|
<Flexbox gap={12} horizontal justify={'space-between'} style={{ maxWidth: 200 }}>
|
36
|
-
<
|
35
|
+
<Text ellipsis>{filename}</Text>
|
37
36
|
{/*<Typography.Text*/}
|
38
37
|
{/* ellipsis={{ suffix: '...' }}*/}
|
39
38
|
{/* style={{ fontSize: 12, lineHeight: 1 }}*/}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import { ActionIcon } from '@lobehub/ui';
|
2
|
-
import { Typography } from 'antd';
|
1
|
+
import { ActionIcon, Text } from '@lobehub/ui';
|
3
2
|
import { createStyles } from 'antd-style';
|
4
3
|
import isEqual from 'fast-deep-equal';
|
5
4
|
import { RotateCwIcon, Trash2 } from 'lucide-react';
|
@@ -50,9 +49,9 @@ export const UserBelowMessage = memo<ChatMessage>(({ ragQuery, content, id }) =>
|
|
50
49
|
!isEqual(ragQuery, content) && (
|
51
50
|
<Flexbox className={styles.container}>
|
52
51
|
<Flexbox align={'center'} className={styles.content} gap={4} horizontal>
|
53
|
-
<
|
52
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
54
53
|
{ragQuery}
|
55
|
-
</
|
54
|
+
</Text>
|
56
55
|
</Flexbox>
|
57
56
|
<Flexbox className={styles.action} horizontal>
|
58
57
|
<ActionIcon
|
@@ -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>(({ id, fileType, size, name }) => {
|
|
43
43
|
>
|
44
44
|
<FileIcon fileName={name} fileType={fileType} />
|
45
45
|
<Flexbox style={{ overflow: 'hidden' }}>
|
46
|
-
<
|
47
|
-
<
|
46
|
+
<Text ellipsis>{name}</Text>
|
47
|
+
<Text type={'secondary'}>{formatSize(size)}</Text>
|
48
48
|
</Flexbox>
|
49
49
|
</Flexbox>
|
50
50
|
);
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { ModelTag } from '@lobehub/icons';
|
2
|
-
import { Icon, Markdown } from '@lobehub/ui';
|
3
|
-
import { Typography } from 'antd';
|
2
|
+
import { Icon, Markdown, Text } from '@lobehub/ui';
|
4
3
|
import { createStyles } from 'antd-style';
|
5
4
|
import { ScrollText } from 'lucide-react';
|
6
5
|
import { memo } from 'react';
|
@@ -50,7 +49,7 @@ const History = memo(() => {
|
|
50
49
|
<Center height={20} width={20}>
|
51
50
|
<Icon icon={ScrollText} size={16} style={{ color: theme.colorTextDescription }} />
|
52
51
|
</Center>
|
53
|
-
<
|
52
|
+
<Text type={'secondary'}>{t('historySummary')}</Text>
|
54
53
|
{model && (
|
55
54
|
<div>
|
56
55
|
<ModelTag model={model} />
|
@@ -1,7 +1,7 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
|
-
import { Button, Modal } from '@lobehub/ui';
|
4
|
-
import { Table
|
3
|
+
import { Button, Modal, Text } from '@lobehub/ui';
|
4
|
+
import { Table } from 'antd';
|
5
5
|
import { createStyles } from 'antd-style';
|
6
6
|
import { Info } from 'lucide-react';
|
7
7
|
import { useState } from 'react';
|
@@ -10,8 +10,6 @@ import { Flexbox } from 'react-layout-kit';
|
|
10
10
|
|
11
11
|
import { ImportPgDataStructure } from '@/types/export';
|
12
12
|
|
13
|
-
const { Text } = Typography;
|
14
|
-
|
15
13
|
const getNonEmptyTables = (data: ImportPgDataStructure) => {
|
16
14
|
const result = [];
|
17
15
|
|
@@ -1,8 +1,7 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
3
|
import { useWatchBroadcast } from '@lobechat/electron-client-ipc';
|
4
|
-
import { Button, Icon } from '@lobehub/ui';
|
5
|
-
import { Typography } from 'antd';
|
4
|
+
import { Button, Icon, Text } from '@lobehub/ui';
|
6
5
|
import { createStyles, cx, keyframes } from 'antd-style';
|
7
6
|
import { WifiIcon } from 'lucide-react';
|
8
7
|
import { memo } from 'react';
|
@@ -10,8 +9,6 @@ import { useTranslation } from 'react-i18next';
|
|
10
9
|
|
11
10
|
import { useElectronStore } from '@/store/electron';
|
12
11
|
|
13
|
-
const { Text, Title } = Typography;
|
14
|
-
|
15
12
|
const airdropPulse = keyframes`
|
16
13
|
0% {
|
17
14
|
transform: translate(-50%, -50%) scale(0.8);
|
@@ -189,9 +186,9 @@ const WaitingOAuth = memo<WaitingOAuthProps>(({ setWaiting, setIsOpen }) => {
|
|
189
186
|
|
190
187
|
<Icon className={styles.radarIcon} icon={WifiIcon} size={40} />
|
191
188
|
</div>
|
192
|
-
<
|
189
|
+
<Text as={'h4'} className={styles.title}>
|
193
190
|
{t('waitingOAuth.title')}
|
194
|
-
</
|
191
|
+
</Text>
|
195
192
|
<Text className={styles.description}>{t('waitingOAuth.description')}</Text>
|
196
193
|
<Button onClick={handleCancel}>{t('waitingOAuth.cancel')}</Button>{' '}
|
197
194
|
<Text className={styles.helpText}>{t('waitingOAuth.helpText')}</Text>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { FileTypeIcon, Icon } from '@lobehub/ui';
|
2
|
-
import {
|
1
|
+
import { FileTypeIcon, Icon, Text } from '@lobehub/ui';
|
2
|
+
import { Upload } from 'antd';
|
3
3
|
import { createStyles, useTheme } from 'antd-style';
|
4
4
|
import { ArrowUpIcon, PlusIcon } from 'lucide-react';
|
5
5
|
import { useTranslation } from 'react-i18next';
|
@@ -76,8 +76,8 @@ const EmptyStatus = ({ showKnowledgeBase, knowledgeBaseId }: EmptyStatusProps) =
|
|
76
76
|
return (
|
77
77
|
<Center gap={24} height={'100%'} style={{ paddingBottom: 100 }} width={'100%'}>
|
78
78
|
<Flexbox justify={'center'} style={{ textAlign: 'center' }}>
|
79
|
-
<
|
80
|
-
<
|
79
|
+
<Text as={'h4'}>{t('FileManager.emptyStatus.title')}</Text>
|
80
|
+
<Text type={'secondary'}>{t('FileManager.emptyStatus.or')}</Text>
|
81
81
|
</Flexbox>
|
82
82
|
<Flexbox gap={12} horizontal>
|
83
83
|
{showKnowledgeBase && (
|
@@ -1,6 +1,6 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
|
-
import {
|
3
|
+
import { Text } from '@lobehub/ui';
|
4
4
|
import { createStyles } from 'antd-style';
|
5
5
|
import { useQueryState } from 'nuqs';
|
6
6
|
import { rgba } from 'polished';
|
@@ -109,9 +109,9 @@ const FileList = memo<FileListProps>(({ knowledgeBaseId, category }) => {
|
|
109
109
|
components={{
|
110
110
|
Footer: () => (
|
111
111
|
<Center style={{ height: 64 }}>
|
112
|
-
<
|
112
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
113
113
|
{t('FileManager.bottom')}
|
114
|
-
</
|
114
|
+
</Text>
|
115
115
|
</Center>
|
116
116
|
),
|
117
117
|
}}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Text } from '@lobehub/ui';
|
2
2
|
import { createStyles } from 'antd-style';
|
3
3
|
import { ReactNode, memo, useMemo } from 'react';
|
4
4
|
import { useTranslation } from 'react-i18next';
|
@@ -52,41 +52,41 @@ const UploadItem = memo<UploadItemProps>(({ file, status, uploadState }) => {
|
|
52
52
|
].filter(Boolean);
|
53
53
|
|
54
54
|
return (
|
55
|
-
<
|
55
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
56
56
|
{uploadState?.progress ? formatSize(size * (uploadState.progress / 100)) : '-'}/
|
57
57
|
{formatSize(size)}
|
58
58
|
{textArray.length === 0 ? '' : ' · ' + textArray.join(' · ')}
|
59
|
-
</
|
59
|
+
</Text>
|
60
60
|
);
|
61
61
|
}
|
62
62
|
case 'pending': {
|
63
63
|
return (
|
64
|
-
<
|
64
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
65
65
|
{formatSize(size)} · {t('uploadDock.body.item.pending')}
|
66
|
-
</
|
66
|
+
</Text>
|
67
67
|
);
|
68
68
|
}
|
69
69
|
|
70
70
|
case 'processing': {
|
71
71
|
return (
|
72
|
-
<
|
72
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
73
73
|
{formatSize(size)} · {t('uploadDock.body.item.processing')}
|
74
|
-
</
|
74
|
+
</Text>
|
75
75
|
);
|
76
76
|
}
|
77
77
|
|
78
78
|
case 'success': {
|
79
79
|
return (
|
80
|
-
<
|
80
|
+
<Text style={{ fontSize: 12 }} type={'secondary'}>
|
81
81
|
{formatSize(size)} · {t('uploadDock.body.item.done')}
|
82
|
-
</
|
82
|
+
</Text>
|
83
83
|
);
|
84
84
|
}
|
85
85
|
case 'error': {
|
86
86
|
return (
|
87
|
-
<
|
87
|
+
<Text style={{ fontSize: 12 }} type={'danger'}>
|
88
88
|
{formatSize(size)} · {t('uploadDock.body.item.error')}
|
89
|
-
</
|
89
|
+
</Text>
|
90
90
|
);
|
91
91
|
}
|
92
92
|
default: {
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons';
|
2
|
-
import { ActionIcon, Icon } from '@lobehub/ui';
|
3
|
-
import { Typography } from 'antd';
|
2
|
+
import { ActionIcon, Icon, Text } from '@lobehub/ui';
|
4
3
|
import { createStyles } from 'antd-style';
|
5
4
|
import isEqual from 'fast-deep-equal';
|
6
5
|
import { UploadIcon, XIcon } from 'lucide-react';
|
@@ -149,7 +148,7 @@ const UploadDock = memo(() => {
|
|
149
148
|
))}
|
150
149
|
</Flexbox>
|
151
150
|
<Center style={{ height: 40, minHeight: 40 }}>
|
152
|
-
<
|
151
|
+
<Text
|
153
152
|
onClick={() => {
|
154
153
|
setExpand(false);
|
155
154
|
}}
|
@@ -157,7 +156,7 @@ const UploadDock = memo(() => {
|
|
157
156
|
type={'secondary'}
|
158
157
|
>
|
159
158
|
{t('uploadDock.body.collapse')}
|
160
|
-
</
|
159
|
+
</Text>
|
161
160
|
</Center>
|
162
161
|
</Flexbox>
|
163
162
|
) : (
|
@@ -1,6 +1,6 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
|
-
import {
|
3
|
+
import { Text } from '@lobehub/ui';
|
4
4
|
import dynamic from 'next/dynamic';
|
5
5
|
import { memo } from 'react';
|
6
6
|
import { Flexbox } from 'react-layout-kit';
|
@@ -21,11 +21,9 @@ const FileManager = memo<FileManagerProps>(({ title, knowledgeBaseId, category }
|
|
21
21
|
<>
|
22
22
|
<Header knowledgeBaseId={knowledgeBaseId} />
|
23
23
|
<Flexbox gap={12} height={'100%'}>
|
24
|
-
<
|
25
|
-
style={{ fontSize: 16, fontWeight: 'bold', marginBlock: 16, marginInline: 24 }}
|
26
|
-
>
|
24
|
+
<Text strong style={{ fontSize: 16, marginBlock: 16, marginInline: 24 }}>
|
27
25
|
{title}
|
28
|
-
</
|
26
|
+
</Text>
|
29
27
|
<FileList category={category} knowledgeBaseId={knowledgeBaseId} />
|
30
28
|
</Flexbox>
|
31
29
|
<UploadDock />
|
@@ -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"
|