@lark-apaas/coding-template-nestjs-react-fullstack 0.1.54 → 0.1.55-alpha.20261030081308
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/package.json +1 -1
- package/template/client/src/components/business-ui/README.md +10 -0
- package/template/client/src/components/business-ui/api/user-profiles/queries.ts +1 -7
- package/template/client/src/components/business-ui/comment/README.md +177 -0
- package/template/client/src/components/business-ui/comment/ccm-document-source.ts +252 -0
- package/template/client/src/components/business-ui/comment/comment-content.tsx +231 -0
- package/template/client/src/components/business-ui/comment/comment-input.tsx +536 -0
- package/template/client/src/components/business-ui/comment/comment-provider.tsx +213 -0
- package/template/client/src/components/business-ui/comment/content.ts +261 -0
- package/template/client/src/components/business-ui/comment/dom-editor.ts +582 -0
- package/template/client/src/components/business-ui/comment/image-attachments.tsx +375 -0
- package/template/client/src/components/business-ui/comment/mention-provider.tsx +168 -0
- package/template/client/src/components/business-ui/comment/mention-suggestions.tsx +411 -0
- package/template/client/src/components/business-ui/comment/mention-view.tsx +171 -0
- package/template/client/src/components/business-ui/comment/types.ts +149 -0
- package/template/client/src/components/business-ui/user-display/user-display.tsx +0 -13
- package/template/client/src/components/business-ui/user-profile/user-profile.tsx +146 -397
- package/template/client/src/components/business-ui/user-select/user-pill.tsx +0 -13
- package/template/client/src/hooks/use-example.ts +45 -36
- package/template/client/src/pages/ExamplePage/ExamplePage.tsx +7 -8
- package/template/client/src/tailwind-theme.css +5 -6
- package/template/eslint.config.js +0 -6
- package/template/package-lock.json +94 -73
- package/template/package.json +5 -4
- package/template/server/modules/hello/hello.controller.ts +4 -8
- package/template/server/modules/hello/hello.service.ts +3 -5
- package/template/shared/api.interface.ts +1 -8
- package/template/client/src/components/business-ui/user-profile/lark-card-pool.ts +0 -217
- package/template/client/src/lib/api-error.ts +0 -36
- package/template/server/modules/hello/hello.dto.ts +0 -21
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useLayoutEffect, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { autoUpdate } from '@floating-ui/dom';
|
|
5
|
+
import { LoaderCircle } from 'lucide-react';
|
|
6
|
+
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
|
7
|
+
import { Button } from '@/components/ui/button';
|
|
8
|
+
import { ScrollArea } from '@/components/ui/scroll-area';
|
|
9
|
+
import { cn } from '@/lib/utils';
|
|
10
|
+
import { DocumentIcon, COMMENT_THEME_CLASS } from './mention-view';
|
|
11
|
+
import { mentionKey, safeUrl } from './content';
|
|
12
|
+
import type { MentionOption, CommentDataSource, MentionKind } from './types';
|
|
13
|
+
|
|
14
|
+
function HighlightedLabel({ label, query }: { label: string; query: string }) {
|
|
15
|
+
const index = query ? label.toLowerCase().indexOf(query.toLowerCase()) : -1;
|
|
16
|
+
if (index < 0) return <>{label}</>;
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
{label.slice(0, index)}
|
|
20
|
+
<span className="text-primary">
|
|
21
|
+
{label.slice(index, index + query.length)}
|
|
22
|
+
</span>
|
|
23
|
+
{label.slice(index + query.length)}
|
|
24
|
+
</>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type Props = {
|
|
29
|
+
container?: HTMLElement;
|
|
30
|
+
anchor: () => DOMRect | null;
|
|
31
|
+
editorElement: HTMLElement;
|
|
32
|
+
id: string;
|
|
33
|
+
items: MentionOption[];
|
|
34
|
+
selected: number;
|
|
35
|
+
query?: string;
|
|
36
|
+
onSelect: (item: MentionOption) => void;
|
|
37
|
+
onHover: (index: number) => void;
|
|
38
|
+
loading: boolean;
|
|
39
|
+
error?: string;
|
|
40
|
+
retry: () => void;
|
|
41
|
+
loadMore: () => void;
|
|
42
|
+
hasMore: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/** Source: miaoda UdMentionPlugin + UD MentionPanel/OptionItem/index.less.
|
|
46
|
+
* hiddenTab=true, footer=false, 360px width, 48px rows, 2px row gap,
|
|
47
|
+
* 8px vertical list padding, 8px row margin, 8px avatar gap.
|
|
48
|
+
*/
|
|
49
|
+
export function MentionSuggestions({
|
|
50
|
+
container,
|
|
51
|
+
anchor,
|
|
52
|
+
editorElement,
|
|
53
|
+
id,
|
|
54
|
+
items,
|
|
55
|
+
selected,
|
|
56
|
+
query = '',
|
|
57
|
+
onSelect,
|
|
58
|
+
onHover,
|
|
59
|
+
loading,
|
|
60
|
+
error,
|
|
61
|
+
retry,
|
|
62
|
+
loadMore,
|
|
63
|
+
hasMore,
|
|
64
|
+
}: Props) {
|
|
65
|
+
const panel = React.useRef<HTMLDivElement>(null);
|
|
66
|
+
const initialLoading = loading && !items.length;
|
|
67
|
+
const list = React.useRef<HTMLDivElement>(null);
|
|
68
|
+
useLayoutEffect(() => {
|
|
69
|
+
const element = panel.current;
|
|
70
|
+
if (!element) return;
|
|
71
|
+
const reference = {
|
|
72
|
+
contextElement: editorElement,
|
|
73
|
+
getBoundingClientRect: () =>
|
|
74
|
+
anchor() || editorElement.getBoundingClientRect(),
|
|
75
|
+
};
|
|
76
|
+
const update = () => {
|
|
77
|
+
const rect = reference.getBoundingClientRect();
|
|
78
|
+
const viewport = document.documentElement;
|
|
79
|
+
const width = viewport.clientWidth || window.innerWidth;
|
|
80
|
+
const height = viewport.clientHeight || window.innerHeight;
|
|
81
|
+
const below = height - rect.bottom;
|
|
82
|
+
const above = rect.top;
|
|
83
|
+
// Match getMentionPositionInfo's preferred 417px box, including when the list is short.
|
|
84
|
+
const up = below < 431 && (above >= 431 || above > below);
|
|
85
|
+
const maxHeight = Math.max(64, Math.min(417, (up ? above : below) - 14));
|
|
86
|
+
const boxWidth = Math.min(360, Math.max(0, width - 24));
|
|
87
|
+
element.style.width = `${boxWidth}px`;
|
|
88
|
+
const computed = window.getComputedStyle(element);
|
|
89
|
+
const borderHeight =
|
|
90
|
+
(parseFloat(computed.borderTopWidth) || 0) +
|
|
91
|
+
(parseFloat(computed.borderBottomWidth) || 0);
|
|
92
|
+
// The actual list includes padding, row margins and wrapped status text.
|
|
93
|
+
// Its measured size must fit inside the panel's borders, not underneath them.
|
|
94
|
+
const contentHeight = list.current?.getBoundingClientRect().height || 0;
|
|
95
|
+
const naturalHeight = Math.max(
|
|
96
|
+
64,
|
|
97
|
+
Math.ceil(contentHeight + borderHeight),
|
|
98
|
+
);
|
|
99
|
+
const boxHeight = Math.min(naturalHeight, maxHeight);
|
|
100
|
+
const preferLeft = width - rect.left < 372 && rect.right >= 372;
|
|
101
|
+
const left = Math.max(
|
|
102
|
+
12,
|
|
103
|
+
Math.min(
|
|
104
|
+
preferLeft ? rect.right - boxWidth : rect.left,
|
|
105
|
+
width - boxWidth - 12,
|
|
106
|
+
),
|
|
107
|
+
);
|
|
108
|
+
Object.assign(element.style, {
|
|
109
|
+
left: `${left}px`,
|
|
110
|
+
top: `${up ? Math.max(12, rect.top - boxHeight - 2) : rect.bottom + 2}px`,
|
|
111
|
+
width: `${boxWidth}px`,
|
|
112
|
+
height: `${boxHeight}px`,
|
|
113
|
+
visibility: 'visible',
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
const stopPositioning = autoUpdate(reference, element, update);
|
|
117
|
+
const observer =
|
|
118
|
+
typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(update);
|
|
119
|
+
if (list.current) observer?.observe(list.current);
|
|
120
|
+
return () => {
|
|
121
|
+
stopPositioning();
|
|
122
|
+
observer?.disconnect();
|
|
123
|
+
};
|
|
124
|
+
}, [
|
|
125
|
+
anchor,
|
|
126
|
+
editorElement,
|
|
127
|
+
container,
|
|
128
|
+
items,
|
|
129
|
+
initialLoading,
|
|
130
|
+
error,
|
|
131
|
+
hasMore,
|
|
132
|
+
query,
|
|
133
|
+
]);
|
|
134
|
+
useLayoutEffect(() => {
|
|
135
|
+
panel.current
|
|
136
|
+
?.querySelector('[aria-selected="true"]')
|
|
137
|
+
?.scrollIntoView({ block: 'nearest' });
|
|
138
|
+
}, [selected, items]);
|
|
139
|
+
return createPortal(
|
|
140
|
+
<div
|
|
141
|
+
ref={panel}
|
|
142
|
+
data-comment-suggestions
|
|
143
|
+
className={cn(
|
|
144
|
+
COMMENT_THEME_CLASS,
|
|
145
|
+
'fixed z-50 overflow-hidden rounded-[6px] border border-border bg-popover text-popover-foreground shadow-[0_6px_24px_rgba(31,35,41,0.08),0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-4px_rgba(0,0,0,0.1)]',
|
|
146
|
+
)}
|
|
147
|
+
style={{
|
|
148
|
+
visibility: 'hidden',
|
|
149
|
+
width: 360,
|
|
150
|
+
minHeight: 64,
|
|
151
|
+
maxHeight: 417,
|
|
152
|
+
}}
|
|
153
|
+
onPointerDown={(event) => event.preventDefault()}
|
|
154
|
+
onWheel={(event) => event.stopPropagation()}
|
|
155
|
+
>
|
|
156
|
+
<span role="status" className="sr-only">
|
|
157
|
+
{loading ? '正在搜索' : `${items.length} 个结果`}
|
|
158
|
+
</span>
|
|
159
|
+
<ScrollArea className="h-full w-full">
|
|
160
|
+
<div
|
|
161
|
+
ref={list}
|
|
162
|
+
id={id}
|
|
163
|
+
role="listbox"
|
|
164
|
+
aria-label="提及搜索结果"
|
|
165
|
+
aria-busy={loading}
|
|
166
|
+
className="py-2"
|
|
167
|
+
>
|
|
168
|
+
{items.map((item, index) => {
|
|
169
|
+
const active = selected === index;
|
|
170
|
+
return (
|
|
171
|
+
<div
|
|
172
|
+
key={mentionKey(item.ref)}
|
|
173
|
+
id={`${id}-${index}`}
|
|
174
|
+
role="option"
|
|
175
|
+
aria-selected={active}
|
|
176
|
+
onPointerMove={() => {
|
|
177
|
+
if (!active) onHover(index);
|
|
178
|
+
}}
|
|
179
|
+
onClick={() => {
|
|
180
|
+
onSelect(item);
|
|
181
|
+
}}
|
|
182
|
+
className={cn(
|
|
183
|
+
'mx-2 mb-0.5 flex h-12 cursor-pointer items-center gap-2 rounded-[4px] px-2 py-1',
|
|
184
|
+
active && 'bg-[var(--comment-hover)]',
|
|
185
|
+
!active && 'hover:bg-[var(--comment-hover)]',
|
|
186
|
+
)}
|
|
187
|
+
>
|
|
188
|
+
{item.ref.kind === 'user' ? (
|
|
189
|
+
<Avatar className="size-8 shrink-0">
|
|
190
|
+
<AvatarImage src={safeUrl(item.avatarUrl)} alt="" />
|
|
191
|
+
<AvatarFallback className="bg-primary text-sm text-primary-foreground">
|
|
192
|
+
{Array.from(item.label.trim())[0] || '@'}
|
|
193
|
+
</AvatarFallback>
|
|
194
|
+
</Avatar>
|
|
195
|
+
) : (
|
|
196
|
+
<DocumentIcon
|
|
197
|
+
refValue={item.ref}
|
|
198
|
+
metadata={item.document}
|
|
199
|
+
variant="option"
|
|
200
|
+
/>
|
|
201
|
+
)}
|
|
202
|
+
<div className="min-w-0 flex-1">
|
|
203
|
+
<div
|
|
204
|
+
className="truncate text-sm font-normal leading-[22px] text-foreground"
|
|
205
|
+
title={item.label}
|
|
206
|
+
>
|
|
207
|
+
<HighlightedLabel label={item.label} query={query} />
|
|
208
|
+
{item.ref.kind === 'document' && item.isExternal ? (
|
|
209
|
+
<span className="ml-1 rounded-[2px] border border-border px-1 text-xs text-subtle-foreground">
|
|
210
|
+
外部
|
|
211
|
+
</span>
|
|
212
|
+
) : null}
|
|
213
|
+
</div>
|
|
214
|
+
{item.description ? (
|
|
215
|
+
<div
|
|
216
|
+
className="truncate text-xs leading-5 text-muted-foreground"
|
|
217
|
+
title={item.description}
|
|
218
|
+
>
|
|
219
|
+
{item.description}
|
|
220
|
+
</div>
|
|
221
|
+
) : null}
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
);
|
|
225
|
+
})}
|
|
226
|
+
{initialLoading ? (
|
|
227
|
+
<div role="status" aria-label="正在搜索" className="px-4">
|
|
228
|
+
{[0, 1, 2, 3].map((key) => (
|
|
229
|
+
<div
|
|
230
|
+
key={key}
|
|
231
|
+
aria-hidden
|
|
232
|
+
className="flex h-12 animate-pulse items-center gap-2 py-1"
|
|
233
|
+
>
|
|
234
|
+
<span className="size-8 shrink-0 rounded-full bg-muted" />
|
|
235
|
+
<span className="space-y-1.5">
|
|
236
|
+
<span className="block h-3.5 w-[70px] rounded-md bg-muted" />
|
|
237
|
+
<span className="block h-3.5 w-[200px] max-w-full rounded-md bg-muted" />
|
|
238
|
+
</span>
|
|
239
|
+
</div>
|
|
240
|
+
))}
|
|
241
|
+
</div>
|
|
242
|
+
) : null}
|
|
243
|
+
{!items.length && !loading && !error ? (
|
|
244
|
+
<div
|
|
245
|
+
role="status"
|
|
246
|
+
className="px-4 py-4 text-sm leading-[22px] text-foreground"
|
|
247
|
+
>
|
|
248
|
+
{query ? '没有匹配结果,换个关键词试试吧' : '列表为空'}
|
|
249
|
+
</div>
|
|
250
|
+
) : null}
|
|
251
|
+
{error ? (
|
|
252
|
+
<div role="alert" className="px-4 py-4 text-sm leading-[22px]">
|
|
253
|
+
<button
|
|
254
|
+
type="button"
|
|
255
|
+
className="inline text-left"
|
|
256
|
+
disabled={loading}
|
|
257
|
+
onClick={retry}
|
|
258
|
+
title="点击重新加载"
|
|
259
|
+
>
|
|
260
|
+
<span
|
|
261
|
+
aria-hidden
|
|
262
|
+
className="mr-2 inline-block not-italic [line-height:0]"
|
|
263
|
+
style={{ color: 'var(--comment-warning)' }}
|
|
264
|
+
>
|
|
265
|
+
<svg
|
|
266
|
+
aria-hidden
|
|
267
|
+
viewBox="0 0 24 24"
|
|
268
|
+
fill="none"
|
|
269
|
+
style={{
|
|
270
|
+
width: '1em',
|
|
271
|
+
height: '1em',
|
|
272
|
+
display: 'inline-block',
|
|
273
|
+
verticalAlign: '-0.14em',
|
|
274
|
+
}}
|
|
275
|
+
>
|
|
276
|
+
<path
|
|
277
|
+
d="M23 12c0 6.075-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1s11 4.925 11 11ZM12 7a1 1 0 0 0-1 1v5a1 1 0 1 0 2 0V8a1 1 0 0 0-1-1Zm0 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z"
|
|
278
|
+
fill="currentColor"
|
|
279
|
+
/>
|
|
280
|
+
</svg>
|
|
281
|
+
</span>
|
|
282
|
+
加载失败,请检查网络后重试
|
|
283
|
+
</button>
|
|
284
|
+
</div>
|
|
285
|
+
) : null}
|
|
286
|
+
{hasMore ? (
|
|
287
|
+
<Button
|
|
288
|
+
type="button"
|
|
289
|
+
variant="ghost"
|
|
290
|
+
size="sm"
|
|
291
|
+
className="mx-3 my-2 text-primary"
|
|
292
|
+
disabled={loading}
|
|
293
|
+
onClick={loadMore}
|
|
294
|
+
>
|
|
295
|
+
加载更多
|
|
296
|
+
</Button>
|
|
297
|
+
) : null}
|
|
298
|
+
</div>
|
|
299
|
+
</ScrollArea>
|
|
300
|
+
{loading && items.length ? (
|
|
301
|
+
<div className="absolute inset-0 flex items-center justify-center bg-popover/60">
|
|
302
|
+
<LoaderCircle
|
|
303
|
+
aria-label="正在搜索"
|
|
304
|
+
className="size-5 animate-spin text-primary"
|
|
305
|
+
/>
|
|
306
|
+
</div>
|
|
307
|
+
) : null}
|
|
308
|
+
</div>,
|
|
309
|
+
container || document.body,
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
interface Result {
|
|
314
|
+
key: string;
|
|
315
|
+
items: MentionOption[];
|
|
316
|
+
nextCursor?: string;
|
|
317
|
+
loading: boolean;
|
|
318
|
+
error?: string;
|
|
319
|
+
}
|
|
320
|
+
export function useMentionSearch(
|
|
321
|
+
source: CommentDataSource,
|
|
322
|
+
session: { id: number; query: string } | null,
|
|
323
|
+
kind: MentionKind,
|
|
324
|
+
) {
|
|
325
|
+
const key = JSON.stringify([
|
|
326
|
+
source.scopeKey,
|
|
327
|
+
session?.id,
|
|
328
|
+
session?.query,
|
|
329
|
+
kind,
|
|
330
|
+
]);
|
|
331
|
+
const [state, setState] = useState<Result>({
|
|
332
|
+
key: '',
|
|
333
|
+
items: [],
|
|
334
|
+
loading: false,
|
|
335
|
+
});
|
|
336
|
+
const controller = useRef<AbortController | null>(null);
|
|
337
|
+
const currentKey = useRef(key);
|
|
338
|
+
currentKey.current = key;
|
|
339
|
+
const runRef = useRef<(cursor?: string) => void>(() => {});
|
|
340
|
+
useEffect(() => {
|
|
341
|
+
const abort = new AbortController();
|
|
342
|
+
controller.current = abort;
|
|
343
|
+
let pending = false;
|
|
344
|
+
const run = async (cursor?: string) => {
|
|
345
|
+
if (!session || pending) return;
|
|
346
|
+
pending = true;
|
|
347
|
+
setState((previous) => ({
|
|
348
|
+
key,
|
|
349
|
+
items: cursor && previous.key === key ? previous.items : [],
|
|
350
|
+
loading: true,
|
|
351
|
+
}));
|
|
352
|
+
try {
|
|
353
|
+
const args = { kind, cursor, signal: abort.signal };
|
|
354
|
+
const result =
|
|
355
|
+
!session.query && source.recommend
|
|
356
|
+
? await source.recommend(args)
|
|
357
|
+
: await source.search({ ...args, query: session.query });
|
|
358
|
+
if (abort.signal.aborted || currentKey.current !== key) return;
|
|
359
|
+
setState((previous) => {
|
|
360
|
+
const unique = new Map(
|
|
361
|
+
(cursor ? previous.items : []).map((item) => [
|
|
362
|
+
mentionKey(item.ref),
|
|
363
|
+
item,
|
|
364
|
+
]),
|
|
365
|
+
);
|
|
366
|
+
for (const item of result.items)
|
|
367
|
+
unique.set(mentionKey(item.ref), item);
|
|
368
|
+
return {
|
|
369
|
+
key,
|
|
370
|
+
items: [...unique.values()],
|
|
371
|
+
nextCursor: result.nextCursor,
|
|
372
|
+
loading: false,
|
|
373
|
+
};
|
|
374
|
+
});
|
|
375
|
+
} catch (error) {
|
|
376
|
+
if (!abort.signal.aborted && currentKey.current === key)
|
|
377
|
+
setState((previous) => ({
|
|
378
|
+
...previous,
|
|
379
|
+
key,
|
|
380
|
+
loading: false,
|
|
381
|
+
error: error instanceof Error ? error.message : '搜索失败,请重试',
|
|
382
|
+
nextCursor: cursor,
|
|
383
|
+
}));
|
|
384
|
+
} finally {
|
|
385
|
+
pending = false;
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
runRef.current = (cursor) => {
|
|
389
|
+
void run(cursor);
|
|
390
|
+
};
|
|
391
|
+
const timer = session
|
|
392
|
+
? setTimeout(
|
|
393
|
+
() => {
|
|
394
|
+
void run();
|
|
395
|
+
},
|
|
396
|
+
session.query ? 200 : 0,
|
|
397
|
+
)
|
|
398
|
+
: undefined;
|
|
399
|
+
return () => {
|
|
400
|
+
clearTimeout(timer);
|
|
401
|
+
abort.abort();
|
|
402
|
+
};
|
|
403
|
+
}, [source, key]);
|
|
404
|
+
const result =
|
|
405
|
+
state.key === key ? state : { key, items: [], loading: Boolean(session) };
|
|
406
|
+
return {
|
|
407
|
+
...result,
|
|
408
|
+
loadMore: () => runRef.current(result.nextCursor),
|
|
409
|
+
retry: () => runRef.current(),
|
|
410
|
+
};
|
|
411
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { DocumentMentionMetadata, MentionRef } from './types';
|
|
3
|
+
|
|
4
|
+
export function DocumentIcon({
|
|
5
|
+
refValue,
|
|
6
|
+
metadata,
|
|
7
|
+
variant = 'inline',
|
|
8
|
+
}: {
|
|
9
|
+
refValue: MentionRef;
|
|
10
|
+
metadata?: DocumentMentionMetadata;
|
|
11
|
+
variant?: 'inline' | 'option';
|
|
12
|
+
}) {
|
|
13
|
+
const emoji = documentEmoji(metadata?.iconInfo);
|
|
14
|
+
const size = variant === 'option' ? 32 : 14;
|
|
15
|
+
const className =
|
|
16
|
+
variant === 'option'
|
|
17
|
+
? 'inline-block shrink-0 text-center leading-none'
|
|
18
|
+
: '-mb-0.5 mr-0.5 inline-block text-center leading-none';
|
|
19
|
+
return emoji ? (
|
|
20
|
+
<span
|
|
21
|
+
aria-hidden
|
|
22
|
+
className={className}
|
|
23
|
+
style={{ width: size, height: size, fontSize: size }}
|
|
24
|
+
>
|
|
25
|
+
{emoji}
|
|
26
|
+
</span>
|
|
27
|
+
) : (
|
|
28
|
+
<span
|
|
29
|
+
aria-hidden
|
|
30
|
+
className={className}
|
|
31
|
+
style={{ width: size, height: size }}
|
|
32
|
+
// Only bundled static UD SVGs enter this HTML sink; never document metadata.
|
|
33
|
+
dangerouslySetInnerHTML={{
|
|
34
|
+
__html: documentIconSvg(refValue, metadata, variant),
|
|
35
|
+
}}
|
|
36
|
+
/>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const outline: Record<string, keyof typeof DOCUMENT_ICONS> = {
|
|
41
|
+
'1': 'FileDocV2Outlined',
|
|
42
|
+
'2': 'FileDocV2Outlined',
|
|
43
|
+
'22': 'FileDocV2Outlined',
|
|
44
|
+
'16': 'FileDocV2Outlined',
|
|
45
|
+
'44': 'FileDocV2Outlined',
|
|
46
|
+
'3': 'FileSheetV2Outlined',
|
|
47
|
+
'8': 'FileBitableV2Outlined',
|
|
48
|
+
'11': 'FileMindnoteV2Outlined',
|
|
49
|
+
'12': 'FileUnknowV2Outlined',
|
|
50
|
+
'15': 'FileLinkSlideV2Outlined',
|
|
51
|
+
'30': 'FileSlidesV2Outlined',
|
|
52
|
+
'38': 'FileBoardV2Outlined',
|
|
53
|
+
};
|
|
54
|
+
const colorful: Record<string, keyof typeof DOCUMENT_ICONS> = {
|
|
55
|
+
'1': 'FileRoundDocV2Colorful',
|
|
56
|
+
'2': 'FileRoundDocV2Colorful',
|
|
57
|
+
'22': 'FileRoundDocV2Colorful',
|
|
58
|
+
'3': 'FileRoundSheetV2Colorful',
|
|
59
|
+
'8': 'FileRoundBitableV2Colorful',
|
|
60
|
+
'11': 'FileRoundMindnoteV2Colorful',
|
|
61
|
+
'12': 'FileRoundUnknowV2Colorful',
|
|
62
|
+
'15': 'FileRoundPptV2Colorful',
|
|
63
|
+
'30': 'FileRoundSlidesV2Colorful',
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export function documentIconSvg(
|
|
67
|
+
ref: MentionRef,
|
|
68
|
+
meta?: DocumentMentionMetadata,
|
|
69
|
+
variant: 'inline' | 'option' = 'inline',
|
|
70
|
+
) {
|
|
71
|
+
const type = ref.kind === 'document' ? ref.resourceType : '';
|
|
72
|
+
// Inline AtSuite uses the mention type; the search panel uses a wiki's real type.
|
|
73
|
+
const iconType =
|
|
74
|
+
variant === 'option' && type === '16' && meta?.subType
|
|
75
|
+
? String(meta.subType)
|
|
76
|
+
: type;
|
|
77
|
+
return DOCUMENT_ICONS[
|
|
78
|
+
variant === 'option'
|
|
79
|
+
? colorful[iconType] || 'FileRoundDocV2Colorful'
|
|
80
|
+
: outline[iconType] || 'FileDocV2Outlined'
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function documentEmoji(iconInfo?: string): string {
|
|
85
|
+
if (!iconInfo) return '';
|
|
86
|
+
try {
|
|
87
|
+
const { type, key } = JSON.parse(decodeURIComponent(iconInfo));
|
|
88
|
+
if (
|
|
89
|
+
type !== 1 ||
|
|
90
|
+
typeof key !== 'string' ||
|
|
91
|
+
!/^[0-9a-f]+(?:-[0-9a-f]+)*$/i.test(key)
|
|
92
|
+
)
|
|
93
|
+
return '';
|
|
94
|
+
return String.fromCodePoint(
|
|
95
|
+
...key.split('-').map((part) => parseInt(part, 16)),
|
|
96
|
+
);
|
|
97
|
+
} catch {
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Values from miaoda/design themes.css and comment/utils/comment-at-style.ts. */
|
|
103
|
+
export const COMMENT_THEME_CLASS = [
|
|
104
|
+
'font-sans text-sm leading-[22px]',
|
|
105
|
+
'[--foreground:#1f2329] [--background:#fff] [--card:#fff] [--card-foreground:#1f2329]',
|
|
106
|
+
'[--popover:#fff] [--popover-foreground:#1f2329] [--border:#dee0e3]',
|
|
107
|
+
'[--primary:#1456f0] [--primary-foreground:#fff] [--button-outline:#dee0e3]',
|
|
108
|
+
'[--primary-border:transparent] [--comment-warning:#ff811a] [--muted:#f2f3f5] [--muted-foreground:#8f959e]',
|
|
109
|
+
'[--accent:rgba(31,35,41,0.05)] [--accent-foreground:#1f2329] [--subtle-foreground:#646a73]',
|
|
110
|
+
'[--info:#1456f0] [--info-foreground:#f5f7ff] [--comment-hover:rgba(31,35,41,0.05)]',
|
|
111
|
+
'dark:[--foreground:#f0f0f2] dark:[--background:#141414] dark:[--card:#292929]',
|
|
112
|
+
'dark:[--card-foreground:#f0f0f2] dark:[--popover:#292929] dark:[--popover-foreground:#f0f0f2]',
|
|
113
|
+
'dark:[--border:rgba(255,255,255,0.15)] dark:[--primary:#4c88ff]',
|
|
114
|
+
'dark:[--muted:#292929] dark:[--muted-foreground:#a3a3a3] dark:[--subtle-foreground:#a3a3a3]',
|
|
115
|
+
'dark:[--accent:rgba(255,255,255,0.05)] dark:[--accent-foreground:#f0f0f2]',
|
|
116
|
+
'dark:[--comment-hover:rgba(255,255,255,0.08)]',
|
|
117
|
+
].join(' ');
|
|
118
|
+
|
|
119
|
+
export const USER_MENTION_CLASS = 'inline-block max-w-[220px] px-0.5 align-top';
|
|
120
|
+
export const USER_MENTION_LABEL_CLASS =
|
|
121
|
+
'mt-px block cursor-pointer truncate rounded-[4px] px-0.5 text-primary no-underline leading-5 hover:bg-accent';
|
|
122
|
+
export const USER_MENTION_SELF_CLASS =
|
|
123
|
+
'mt-px block cursor-pointer truncate rounded px-1 bg-[var(--info)] text-[var(--info-foreground)] no-underline leading-5';
|
|
124
|
+
export const DOCUMENT_MENTION_CLASS =
|
|
125
|
+
'mx-0.5 inline cursor-pointer break-words rounded-[2px] p-0.5 text-primary no-underline hover:bg-accent';
|
|
126
|
+
export const DOCUMENT_MENTION_UNREADABLE_CLASS =
|
|
127
|
+
'mx-0.5 inline cursor-pointer break-words rounded-[2px] p-0.5 text-subtle-foreground no-underline hover:bg-muted';
|
|
128
|
+
export function atUserLabel(label: string) {
|
|
129
|
+
return /^\s*@/.test(label) ? label : `@${label}`;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** Editable mentions are blue pills; rounded-full keeps semicircular ends for long names. */
|
|
133
|
+
export const INPUT_USER_MENTION_CLASS =
|
|
134
|
+
'mx-0.5 inline-flex h-5 max-w-[220px] items-center rounded-full bg-primary px-1.5 align-baseline text-primary-foreground leading-5';
|
|
135
|
+
export const INPUT_USER_MENTION_LABEL_CLASS =
|
|
136
|
+
'min-w-0 truncate leading-5 text-inherit';
|
|
137
|
+
|
|
138
|
+
// Static SVGs from @universe-design/icons-react 3.350.0, matching miaoda ud-provider-icons V2.
|
|
139
|
+
// Only the document glyphs are included; no icon library runtime dependency.
|
|
140
|
+
const DOCUMENT_ICONS = {
|
|
141
|
+
FileDocV2Outlined:
|
|
142
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileDocV2Outlined"><path d="M16.716 14.36a.783.783 0 0 1 0 1.565H7.282a.783.783 0 0 1 0-1.565h9.434Zm-5.001-4.229a.8.8 0 0 1 0 1.6h-4.4a.8.8 0 0 1 0-1.6h4.4Z" fill="currentColor"></path><path d="M15.153 1.5c.75.006 1.472.36 2.02.874l3.875 3.63c.607.569.952 1.366.952 2.198v8.28c0 3.323-2.687 6.017-6 6.017H8c-3.313 0-6-2.694-6-6.016v-8.97C2 4.17 4.72 1.469 8.056 1.5h7.097ZM8.037 3.503A4.006 4.006 0 0 0 4 7.514v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.005 2.005 0 0 1-1.796-1.996V3.666c0-.137-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
143
|
+
FileSheetV2Outlined:
|
|
144
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileSheetV2Outlined"><path d="M12 7.96c.774 0 1.5.05 2.133.115a3.068 3.068 0 0 1 2.753 2.76A20.8 20.8 0 0 1 17 12.974c0 .775-.048 1.504-.114 2.139a3.069 3.069 0 0 1-2.753 2.76c-.634.067-1.36.115-2.133.115-.58 0-1.134-.027-1.642-.069l-.49-.046a3.065 3.065 0 0 1-2.714-2.488l-.04-.272A20.772 20.772 0 0 1 7 12.973c0-.58.027-1.136.068-1.645l.046-.493a3.066 3.066 0 0 1 2.482-2.72l.271-.04A20.58 20.58 0 0 1 12 7.96Zm-.386 8.418a17.484 17.484 0 0 0 2.353-.101 1.466 1.466 0 0 0 1.327-1.33c.061-.59.106-1.263.106-1.973 0-.125-.003-.25-.005-.371h-3.78v3.775ZM8.6 12.974c0 .7.043 1.364.103 1.95l.027.18c.13.634.636 1.103 1.303 1.173l.18.016v-3.69H8.605c-.002.122-.004.246-.004.37Zm1.455-3.306-.18.028a1.46 1.46 0 0 0-1.169 1.306l-.02.196h1.528V9.653l-.16.015Zm1.56-.098v1.628h3.697c-.006-.066-.011-.132-.018-.196a1.466 1.466 0 0 0-1.327-1.33 18.991 18.991 0 0 0-2.353-.102Z" fill="currentColor"></path><path d="M15.153 1.5c.75.007 1.472.362 2.02.875l3.875 3.63c.607.569.952 1.365.952 2.198v8.28c0 3.323-2.687 6.017-6 6.017H8c-3.313 0-6-2.694-6-6.016v-8.97C2 4.172 4.72 1.47 8.056 1.5h7.097ZM8.037 3.505A4.005 4.005 0 0 0 4 7.515v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.005 2.005 0 0 1-1.796-1.996V3.667c0-.138-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
145
|
+
FileBitableV2Outlined:
|
|
146
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileBitableV2Outlined"><path d="M13.515 8.189a1.001 1.001 0 0 1 1.32.084l1.889 1.89a1 1 0 0 1 .084 1.319l-1.174 1.514 1.174 1.516a1 1 0 0 1-.084 1.32l-1.889 1.888a1.001 1.001 0 0 1-1.32.084L12 16.63l-1.513 1.174a1 1 0 0 1-1.32-.083l-1.89-1.89a1 1 0 0 1-.085-1.32l1.174-1.515-1.174-1.514a1 1 0 0 1 .084-1.32l1.891-1.89a1 1 0 0 1 1.32-.082L12 9.363l1.515-1.174Zm-5.149 4.807L12 16.63l3.634-3.634L12 9.363l-3.634 3.633Z" fill="currentColor"></path><path d="M15.153 1.5c.75.007 1.472.362 2.02.875l3.875 3.63c.607.569.952 1.365.952 2.198v8.28c0 3.323-2.686 6.017-6 6.017H8c-3.314 0-6-2.694-6-6.016v-8.97C2 4.172 4.72 1.47 8.056 1.5h7.097ZM8.037 3.505A4.005 4.005 0 0 0 4 7.515v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.004 2.004 0 0 1-1.796-1.996V3.667c0-.138-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
147
|
+
FileMindnoteV2Outlined:
|
|
148
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileMindnoteV2Outlined"><path d="M12 7.96a1.403 1.403 0 0 1 .7 2.616v.666a4.909 4.909 0 0 1 4.2 4.862v.33a1.403 1.403 0 0 1-.8 2.554 1.403 1.403 0 0 1-.601-2.67v-.214a3.507 3.507 0 0 0-2.799-3.438v3.705a1.403 1.403 0 0 1-.7 2.617 1.403 1.403 0 0 1-.7-2.617v-3.705a3.508 3.508 0 0 0-2.8 3.438v.214a1.403 1.403 0 0 1-.6 2.67 1.403 1.403 0 0 1-.8-2.554v-.33a4.909 4.909 0 0 1 4.2-4.861v-.667A1.403 1.403 0 0 1 12 7.96Z" fill="currentColor"></path><path d="M15.153 2c.75.006 1.472.36 2.02.874l3.875 3.63c.607.569.952 1.366.952 2.198v8.28C22 20.306 19.313 23 16 23H8c-3.313 0-6-2.694-6-6.016v-8.97C2 4.67 4.72 1.969 8.056 2h7.097ZM8.037 4.003A4.006 4.006 0 0 0 4 8.014v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.005 2.005 0 0 1-1.796-1.996V4.166c0-.137-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
149
|
+
FileUnknowV2Outlined:
|
|
150
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileUnknowV2Outlined"><path d="M12.001 16.484a1.002 1.002 0 0 1 0 2.005 1.001 1.001 0 0 1 0-2.006ZM12 7.694c1.692 0 3.008 1.423 3.009 3.109 0 .93-.397 1.774-1.033 2.347-.342.307-.644.575-.872.863-.222.282-.303.5-.303.683a.801.801 0 1 1-1.6 0c0-.691.314-1.254.65-1.678.33-.418.748-.785 1.055-1.062.304-.273.503-.685.503-1.153 0-.863-.662-1.506-1.409-1.506s-1.408.643-1.408 1.506c0 .148.02.291.056.425a.8.8 0 1 1-1.543.425 3.218 3.218 0 0 1-.113-.85c0-1.686 1.316-3.11 3.008-3.11Z" fill="currentColor"></path><path d="M15.153 1.5c.75.007 1.472.362 2.02.875l3.875 3.63c.607.569.952 1.365.952 2.198v8.28c0 3.323-2.686 6.017-6 6.017H8c-3.314 0-6-2.694-6-6.016v-8.97C2 4.172 4.72 1.47 8.056 1.5h7.097ZM8.037 3.505A4.005 4.005 0 0 0 4 7.515v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.004 2.004 0 0 1-1.796-1.996V3.667c0-.138-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
151
|
+
FileLinkSlideV2Outlined:
|
|
152
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileLinkSlideV2Outlined"><path d="M15.204 17.49A2 2 0 0 0 17 15.5v-5a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5l.01.204a2 2 0 0 0 1.786 1.785L9 17.5h6l.204-.01ZM9.3 15.5a.8.8 0 0 1-.8-.8v-3.6a.6.6 0 0 1 .6-.6h5.8a.6.6 0 0 1 .6.6v3.8a.6.6 0 0 1-.6.6H9.3Z" fill="currentColor"></path><path d="M16 22.5c3.314 0 6-2.694 6-6.016v-8.28c0-.834-.345-1.63-.952-2.199l-3.874-3.63c-.549-.513-1.27-.868-2.02-.875H8.055C4.72 1.47 2 4.171 2 7.515v8.969C2 19.806 4.686 22.5 8 22.5h8Zm-8-2.006c-2.21 0-4-1.795-4-4.01v-8.97a4.005 4.005 0 0 1 4.037-4.009h7.224c.137.003.289.025.289.162v2.288c0 1.039.787 1.893 1.796 1.995l.204.011h2.419c.02.079.03.16.031.242v8.28a4.004 4.004 0 0 1-4 4.011H8Z" fill="currentColor"></path></svg>',
|
|
153
|
+
FileSlidesV2Outlined:
|
|
154
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileSlidesV2Outlined"><path d="M11.933 18.423c3 0 5.433-2.44 5.433-5.448 0-3.009-2.433-5.447-5.433-5.447S6.5 9.966 6.5 12.975c0 3.008 2.432 5.448 5.433 5.448Zm0-1.604A3.839 3.839 0 0 1 8.1 12.975a3.843 3.843 0 0 1 3.053-3.765v3.334c0 .72.582 1.304 1.3 1.304h3.213a3.838 3.838 0 0 1-3.733 2.97Zm.82-7.599a3.844 3.844 0 0 1 2.943 3.023h-2.943V9.22Z" fill="currentColor"></path><path d="M16 22.5c3.314 0 6-2.694 6-6.016v-8.28c0-.834-.345-1.63-.952-2.199l-3.874-3.63c-.549-.513-1.27-.868-2.02-.875H8.055C4.72 1.47 2 4.171 2 7.515v8.969C2 19.806 4.686 22.5 8 22.5h8Zm-8-2.006c-2.21 0-4-1.795-4-4.01v-8.97a4.005 4.005 0 0 1 4.037-4.009h7.224c.137.003.289.025.289.162v2.288c0 1.039.787 1.893 1.796 1.995l.204.011h2.419c.02.079.03.16.031.242v8.28a4.004 4.004 0 0 1-4 4.011H8Z" fill="currentColor"></path></svg>',
|
|
155
|
+
FileBoardV2Outlined:
|
|
156
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileBoardV2Outlined"><path d="M13.633 8.19c.397.018.75.182 1.054.478.236.229.365.507.373.826.007.3-.08.63-.24.986-.16.35-.384.743-.67 1.175-.282.425-.61.898-.981 1.417l-.812 1.129c-.222.309-.403.567-.543.772-.14.204-.24.366-.305.485h-.001a.716.716 0 0 0-.084.218c0 .01 0 .016.003.021h.021a.91.91 0 0 0 .276-.124 5.89 5.89 0 0 0 .564-.405c.235-.185.53-.433.883-.745.379-.33.717-.618 1.014-.864v-.001c.304-.249.582-.445.83-.584l.193-.097c.19-.084.378-.129.56-.126.259.004.49.117.688.31l.105.116a.919.919 0 0 1 .185.396h.002c.04.185.025.383-.031.588h-.001a3.346 3.346 0 0 1-.25.633c-.055.112-.116.23-.182.353l-.214.386c-.16.28-.29.517-.393.707l-.001-.002a3.007 3.007 0 0 0-.17.367c.072-.032.172-.088.3-.18l.003-.002c.155-.111.341-.27.557-.48h.001a.544.544 0 0 1 .334-.154.454.454 0 0 1 .364.138.437.437 0 0 1 .127.4.67.67 0 0 1-.197.349l-.002.001c-.458.448-.888.744-1.288.855-.39.108-.743.069-1-.188l-.003-.002a.942.942 0 0 1-.268-.504l-.01-.082c-.015-.2.02-.406.097-.615a3.89 3.89 0 0 1 .288-.614v-.002c.117-.197.231-.393.344-.587l.304-.535a1.71 1.71 0 0 0 .152-.348l.001-.01a.62.62 0 0 0-.109.053h.001c-.16.1-.366.257-.62.476-.254.219-.538.467-.852.746l-.002.002a18.82 18.82 0 0 1-1.516 1.203l-.001-.001c-.445.311-.851.512-1.218.579l-.001-.001a1.08 1.08 0 0 1-1.015-.313 1.14 1.14 0 0 1-.355-.71H9.92c-.026-.26.021-.537.13-.824v-.002c.11-.28.266-.582.466-.903.197-.318.428-.66.691-1.023l.839-1.165v-.002c.198-.271.39-.542.578-.81.093-.135.18-.265.262-.389l.226-.357c.138-.229.227-.413.274-.556v-.002a.534.534 0 0 0 .025-.103.899.899 0 0 0-.223.11l-.002.001c-.22.138-.515.372-.886.708-.368.333-.8.745-1.295 1.235-.493.489-1.039 1.037-1.639 1.645l-.334.337-.002.002c-.096.096-.18.182-.252.256l-.186.186a3.591 3.591 0 0 1-.131.125 1.083 1.083 0 0 1-.996.256.893.893 0 0 1-.4-.226.925.925 0 0 1-.23-.394l-.002-.004a1.02 1.02 0 0 1-.007-.497c.04-.184.135-.354.272-.508H7.1c.031-.036.073-.08.125-.13l.186-.187.264-.253c.1-.096.213-.208.342-.336v-.001a56.897 56.897 0 0 1 2.495-2.337l.5-.42a9.95 9.95 0 0 1 1.28-.905l.184-.1c.423-.219.81-.332 1.156-.316Z" fill="currentColor"></path><path d="M15.153 1.5c.75.007 1.472.362 2.02.875l3.875 3.63c.607.569.952 1.365.952 2.198v8.28c0 3.323-2.686 6.017-6 6.017H8c-3.314 0-6-2.694-6-6.016v-8.97C2 4.172 4.72 1.47 8.056 1.5h7.097ZM8.037 3.505A4.005 4.005 0 0 0 4 7.515v8.969a4.006 4.006 0 0 0 4 4.01h8c2.209 0 4-1.796 4-4.01v-8.28c0-.083-.012-.164-.031-.243h-2.42l-.203-.01a2.004 2.004 0 0 1-1.796-1.996V3.667c0-.138-.152-.16-.29-.162H8.038Z" fill="currentColor"></path></svg>',
|
|
157
|
+
FileRoundDocV2Colorful:
|
|
158
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundDocV2Colorful"><circle cx="12" cy="12" r="12" fill="#F0F4FF"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.66c.637 0 1.01-.002 1.364.083a3 3 0 0 1 .867.359c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.713.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.364v1.166c0 1.114 0 1.97-.055 2.654-.056.687-.171 1.23-.417 1.713a4.334 4.334 0 0 1-1.894 1.894c-.483.245-1.025.36-1.713.416-.683.056-1.54.056-2.654.056h-.534c-1.114 0-1.97 0-2.654-.056-.688-.056-1.23-.17-1.713-.416a4.334 4.334 0 0 1-1.894-1.894c-.246-.483-.36-1.026-.417-1.713C5 14.564 5 13.708 5 12.594v-1.2c0-1.115 0-1.972.055-2.655.057-.688.171-1.23.417-1.713a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.667c-1.125 0-1.95 0-2.6.053-.646.053-1.091.156-1.464.346a3.673 3.673 0 0 0-1.603 1.603c-.19.373-.293.818-.346 1.464-.053.65-.053 1.475-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.647.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.347.65.053 1.475.053 2.6.053h.534c1.125 0 1.95 0 2.6-.053.646-.053 1.091-.157 1.464-.347a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.818.346-1.465.053-.65.053-1.474.053-2.6v-1.165c0-.669-.002-.949-.064-1.208a2.31 2.31 0 0 0-.086-.274.835.835 0 0 0-.208-.071 3.176 3.176 0 0 0-.642-.048v-.004c-.1.002-.216.004-.347.004-.457 0-.808 0-1.09-.02a2.238 2.238 0 0 1-.713-.14c-.54-.22-.97-.649-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.632-.02-1.09 0-.13.001-.246.003-.347h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.209 2.332 2.332 0 0 0-.273-.085c-.26-.062-.54-.064-1.208-.064h-.499Z" fill="#C0D2FC"></path><path d="M15.214 12.993a.534.534 0 0 1 0 1.066H8.949a.534.534 0 1 1 0-1.066h6.265ZM11.88 9.66a.533.533 0 0 1 0 1.066H8.948a.533.533 0 1 1 0-1.066h2.932Z" fill="#336DF4"></path></svg>',
|
|
159
|
+
FileRoundSheetV2Colorful:
|
|
160
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundSheetV2Colorful"><circle cx="12" cy="12" r="12" fill="#E4FAE1"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.654-.056.688-.171 1.23-.417 1.713a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.713C5 14.571 5 13.714 5 12.6v-1.2c0-1.115 0-1.971.055-2.655.057-.687.171-1.23.417-1.713A4.334 4.334 0 0 1 7.366 5.14c.482-.246 1.025-.361 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.052-1.091.156-1.464.346a3.666 3.666 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.293 1.464.346.65.053 1.475.053 2.6.053h.534c1.125 0 1.95 0 2.6-.053.646-.053 1.091-.156 1.464-.346a3.667 3.667 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.208a2.314 2.314 0 0 0-.086-.274.835.835 0 0 0-.208-.07 3.176 3.176 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#9EE8A2"></path><path d="M10.704 11.857v3.882l-.126-.008a2.04 2.04 0 0 1-1.809-1.654l-.026-.181a13.763 13.763 0 0 1-.062-2.039h2.023ZM12 9.14c.516 0 1 .033 1.422.077.98.102 1.79 1.413 1.835 1.835v.005h-3.753V9.151c.161-.006.327-.01.496-.01Zm-1.296 1.917H8.742v-.005a2.04 2.04 0 0 1 1.655-1.809l.181-.026.126-.013v1.853Z" fill="#32A645"></path><path d="M15.317 11.844c.007.151.012.306.014.465v.341c-.006.457-.035.886-.074 1.265a2.052 2.052 0 0 1-1.835 1.853 13.639 13.639 0 0 1-1.918.066v-3.99h3.813Z" fill="#5CD168"></path></svg>',
|
|
161
|
+
FileRoundBitableV2Colorful:
|
|
162
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundBitableV2Colorful"><circle cx="12" cy="12" r="12" fill="#F5F0FE"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.655-.056.687-.171 1.23-.417 1.712a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.712C5 14.57 5 13.715 5 12.6v-1.2c0-1.115 0-1.97.055-2.655.057-.687.171-1.23.417-1.712a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.053-1.091.156-1.464.346a3.671 3.671 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.346.65.053 1.475.054 2.6.054h.534c1.125 0 1.95 0 2.6-.054.646-.052 1.091-.156 1.464-.346a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.207a2.312 2.312 0 0 0-.086-.275.834.834 0 0 0-.208-.07 3.175 3.175 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#D9C5FC"></path><path d="m9.621 12.667-.761.983a.667.667 0 0 0 .056.88l1.222 1.221a.667.667 0 0 0 .88.056l.982-.762.983.762a.667.667 0 0 0 .88-.056l1.222-1.221a.667.667 0 0 0 .055-.88l-.761-.983.761-.984a.667.667 0 0 0-.055-.88l-1.222-1.221a.667.667 0 0 0-.88-.056l-.983.762-.982-.761a.667.667 0 0 0-.88.055l-1.222 1.222a.667.667 0 0 0-.056.88l.761.983ZM12 10.288l2.379 2.379L12 15.045l-2.379-2.378L12 10.288Z" fill="#8D55ED"></path></svg>',
|
|
163
|
+
FileRoundMindnoteV2Colorful:
|
|
164
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundMindnoteV2Colorful"><circle cx="12" cy="12" r="12" fill="#E7F8FE"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.655-.056.687-.171 1.23-.417 1.712a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.712C5 14.57 5 13.715 5 12.6v-1.2c0-1.115 0-1.97.055-2.655.057-.687.171-1.23.417-1.712a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.053-1.091.156-1.464.346a3.671 3.671 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.346.65.053 1.475.054 2.6.054h.534c1.125 0 1.95 0 2.6-.054.646-.052 1.091-.156 1.464-.346a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.207a2.312 2.312 0 0 0-.086-.275.834.834 0 0 0-.208-.07 3.175 3.175 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#A5DFFA"></path><path d="M15.61 15.098a.833.833 0 1 1-1.21-.743v-.072a2.4 2.4 0 0 0-1.978-2.362v2.433a.833.833 0 1 1-.8.028v-2.47a2.4 2.4 0 0 0-2.021 2.37v.074a.832.832 0 1 1-.8.024v-.097a3.2 3.2 0 0 1 2.821-3.177v-.687a.832.832 0 0 1 .422-1.552.834.834 0 0 1 .378 1.576v.67a3.199 3.199 0 0 1 2.778 3.17v.098c.245.145.41.411.41.717Z" fill="#047FB0"></path></svg>',
|
|
165
|
+
FileRoundUnknowV2Colorful:
|
|
166
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundUnknowV2Colorful"><circle cx="12" cy="12" r="12" fill="#F5F6F7"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.655-.056.687-.171 1.23-.417 1.712a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.712C5 14.57 5 13.715 5 12.6v-1.2c0-1.115 0-1.97.055-2.655.057-.687.171-1.23.417-1.712a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.053-1.091.156-1.464.346a3.671 3.671 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.346.65.053 1.475.054 2.6.054h.534c1.125 0 1.95 0 2.6-.054.646-.052 1.091-.156 1.464-.346a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.207a2.312 2.312 0 0 0-.086-.275.834.834 0 0 0-.208-.07 3.175 3.175 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#D0D3D6"></path><path d="M12 14.77a.667.667 0 1 1 0 1.334.667.667 0 0 1 0-1.334Zm0-5.844c1.128 0 2.006.947 2.006 2.067 0 .62-.265 1.18-.69 1.56-.227.205-.428.383-.58.575-.148.187-.202.331-.202.453a.534.534 0 0 1-1.067 0c0-.46.21-.833.433-1.115.22-.278.5-.522.704-.706.202-.182.335-.455.335-.767 0-.574-.441-1-.94-1-.497 0-.938.427-.938 1 0 .1.014.194.038.282a.534.534 0 0 1-1.029.283 2.11 2.11 0 0 1-.075-.565c0-1.12.877-2.067 2.005-2.067Z" fill="#646A73"></path></svg>',
|
|
167
|
+
FileRoundPptV2Colorful:
|
|
168
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundPptV2Colorful"><circle cx="12" cy="12" r="12" fill="#FFF3E5"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.655-.056.687-.171 1.23-.417 1.712a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.712C5 14.57 5 13.715 5 12.6v-1.2c0-1.115 0-1.97.055-2.655.057-.687.171-1.23.417-1.712a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.053-1.091.156-1.464.346a3.671 3.671 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.346.65.053 1.475.054 2.6.054h.534c1.125 0 1.95 0 2.6-.054.646-.052 1.091-.156 1.464-.346a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.207a2.312 2.312 0 0 0-.086-.275.834.834 0 0 0-.208-.07 3.175 3.175 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#FCC38B"></path><path d="M13.426 11.759c0-.666-.539-1.205-1.204-1.205h-1.156v2.41h1.156c.665 0 1.204-.54 1.204-1.205Zm1.067 0a2.272 2.272 0 0 1-2.271 2.271h-1.156v1.382a.533.533 0 0 1-1.066 0v-5.058c0-.479.388-.867.867-.867h1.355a2.272 2.272 0 0 1 2.271 2.272Z" fill="#C25705"></path></svg>',
|
|
169
|
+
FileRoundSlidesV2Colorful:
|
|
170
|
+
'<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="FileRoundSlidesV2Colorful"><circle cx="12" cy="12" r="12" fill="#FFF3E5"></circle><path opacity="0.99" d="M5.333 11.4v1.2c0 2.24 0 3.36.436 4.216a4 4 0 0 0 1.748 1.748C8.373 19 9.493 19 11.733 19h.533c2.24 0 3.36 0 4.216-.436a4 4 0 0 0 1.748-1.748c.436-.856.436-1.976.436-4.216v-.833c0-.652 0-.978-.073-1.285a2.666 2.666 0 0 0-.32-.77c-.165-.27-.395-.5-.856-.962l-2.501-2.5c-.461-.462-.692-.692-.96-.857a2.667 2.667 0 0 0-.772-.32C12.877 5 12.551 5 11.9 5h-.166c-2.24 0-3.36 0-4.216.436A4 4 0 0 0 5.77 7.184c-.436.856-.436 1.976-.436 4.216Z" fill="#fff"></path><path d="M12.232 4.667c.637 0 1.01-.003 1.364.082a3 3 0 0 1 .867.36c.31.19.573.455 1.023.905l2.167 2.167c.45.45.715.712.905 1.023a3 3 0 0 1 .36.867c.084.354.082.727.082 1.363V12.6c0 1.115 0 1.97-.055 2.655-.056.687-.171 1.23-.417 1.712a4.334 4.334 0 0 1-1.894 1.894c-.483.246-1.025.36-1.713.417-.683.056-1.54.055-2.654.055h-.534c-1.114 0-1.97 0-2.654-.055-.688-.056-1.23-.17-1.713-.417a4.334 4.334 0 0 1-1.894-1.894c-.246-.482-.36-1.025-.417-1.712C5 14.57 5 13.715 5 12.6v-1.2c0-1.115 0-1.97.055-2.655.057-.687.171-1.23.417-1.712a4.334 4.334 0 0 1 1.894-1.894c.482-.246 1.025-.36 1.713-.417.683-.056 1.54-.055 2.654-.055h.5Zm-.499.666c-1.125 0-1.95 0-2.6.054-.646.053-1.091.156-1.464.346a3.671 3.671 0 0 0-1.603 1.602c-.19.373-.293.819-.346 1.465-.053.65-.053 1.474-.053 2.6v1.2c0 1.126 0 1.95.053 2.6.053.646.156 1.092.346 1.465.352.69.913 1.25 1.603 1.602.373.19.818.294 1.464.346.65.053 1.475.054 2.6.054h.534c1.125 0 1.95 0 2.6-.054.646-.052 1.091-.156 1.464-.346a3.666 3.666 0 0 0 1.603-1.602c.19-.373.293-.819.346-1.465.053-.65.053-1.474.053-2.6v-1.166c0-.668-.002-.948-.064-1.207a2.312 2.312 0 0 0-.086-.275.834.834 0 0 0-.208-.07 3.175 3.175 0 0 0-.642-.049V9.83c-.1.002-.216.003-.347.003-.457 0-.808 0-1.09-.019-.283-.019-.508-.057-.713-.14-.54-.22-.97-.65-1.19-1.19a2.254 2.254 0 0 1-.14-.713c-.02-.282-.02-.633-.02-1.09 0-.131.001-.247.003-.348h-.003a3.18 3.18 0 0 0-.048-.642.832.832 0 0 0-.072-.208 2.334 2.334 0 0 0-.273-.085c-.26-.063-.54-.065-1.208-.065h-.499Z" fill="#FCC38B"></path><path d="M14.833 12.833c.184 0 .335.15.317.333a3.333 3.333 0 1 1-3.65-3.65.31.31 0 0 1 .333.317V12.5c0 .184.15.333.334.333h2.666Z" fill="#FF9D4C"></path><path d="M15.167 12.167c.184 0 .335-.15.315-.333a2.998 2.998 0 0 0-2.65-2.649c-.182-.02-.332.13-.332.315v2.467c0 .11.09.2.2.2h2.467Z" fill="#ED6D0C"></path></svg>',
|
|
171
|
+
} as const;
|