@fibery/ui-kit 1.38.1 → 1.39.0
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 +14 -0
- package/package.json +12 -12
- package/src/button/button.tsx +1 -2
- package/src/card-container.tsx +5 -2
- package/src/collapsible/index.tsx +4 -2
- package/src/collapsible-section.tsx +1 -0
- package/src/design-system.ts +2 -1
- package/src/fibermoji-placeholder.tsx +1 -2
- package/src/file-item-2.tsx +188 -30
- package/src/file-item.tsx +172 -189
- package/src/icons/ast/FileArchive.ts +8 -0
- package/src/icons/ast/FileBroken.ts +8 -0
- package/src/icons/ast/FileDocument.ts +8 -0
- package/src/icons/ast/FileImage.ts +8 -0
- package/src/icons/ast/FilePresentation.ts +8 -0
- package/src/icons/ast/FileTable.ts +8 -0
- package/src/icons/ast/FileVideo.ts +8 -0
- package/src/icons/ast/index.tsx +7 -0
- package/src/icons/react/FileArchive.tsx +13 -0
- package/src/icons/react/FileBroken.tsx +13 -0
- package/src/icons/react/FileDocument.tsx +13 -0
- package/src/icons/react/FileImage.tsx +13 -0
- package/src/icons/react/FilePresentation.tsx +13 -0
- package/src/icons/react/FileTable.tsx +13 -0
- package/src/icons/react/FileVideo.tsx +13 -0
- package/src/icons/react/index.tsx +7 -0
- package/src/icons/svg/file-archive.svg +3 -0
- package/src/icons/svg/file-broken.svg +3 -0
- package/src/icons/svg/file-document.svg +3 -0
- package/src/icons/svg/file-image.svg +3 -0
- package/src/icons/svg/file-presentation.svg +3 -0
- package/src/icons/svg/file-table.svg +3 -0
- package/src/icons/svg/file-video.svg +3 -0
- package/src/images-gallery-2/images-gallery-2.tsx +105 -25
- package/src/images-gallery-2/slide-buttons.tsx +99 -58
- package/src/kbd.tsx +1 -1
- package/src/loading-sausage.tsx +2 -2
- package/src/tooltip.tsx +1 -1
- package/src/use-is-phone.tsx +20 -12
- package/src/use-on-screen-keyboard-data.tsx +3 -4
package/src/file-item.tsx
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import {css, cx} from "@linaria/core";
|
|
2
|
-
import {
|
|
2
|
+
import {useCallback, useEffect, useState} from "react";
|
|
3
3
|
import {ActionsMenu, ActionsMenuItem} from "./actions-menu";
|
|
4
4
|
import {ActionsButtonCompact} from "./button/actions-button-compact";
|
|
5
5
|
import {Item} from "./item";
|
|
6
6
|
import {border, colors, fontWeight, space, textStyles, themeVars} from "./design-system";
|
|
7
7
|
import {makeButtonColors} from "./button/make-button-colors";
|
|
8
|
-
import {IconButton} from "./button/icon-button";
|
|
9
|
-
import ZoomIn from "./icons/react/RicheditorImageZoom";
|
|
10
|
-
import {Tooltip} from "./tooltip";
|
|
11
|
-
import {Zoom} from "./images-gallery/zoom";
|
|
12
8
|
import {useImagesGalleryMethods, useImagesGalleryRegistry} from "./images-gallery/images-gallery";
|
|
13
9
|
import FileDownload from "./icons/react/FileDownload";
|
|
14
10
|
import RicheditorOpenLink from "./icons/react/RicheditorOpenLink";
|
|
11
|
+
import Delete from "./icons/react/Delete";
|
|
12
|
+
import Link from "./icons/react/Link";
|
|
13
|
+
import Pencil from "./icons/react/Pencil";
|
|
14
|
+
import {copyToClipboard} from "./copy-to-clipboard";
|
|
15
|
+
import {useToast} from "./toast/toast-provider";
|
|
15
16
|
|
|
16
17
|
const fileItemStyle = css`
|
|
17
18
|
${{
|
|
@@ -77,6 +78,7 @@ export type FileItemType = {
|
|
|
77
78
|
type: "image" | "video" | "iframe";
|
|
78
79
|
previewSrc: string | null;
|
|
79
80
|
originalSrc: string;
|
|
81
|
+
contentType: string;
|
|
80
82
|
};
|
|
81
83
|
downloadUrl?: string | null;
|
|
82
84
|
status?: string;
|
|
@@ -89,27 +91,38 @@ export type FileItemProps = {
|
|
|
89
91
|
onRenameClick?: (p: {id: string; name: string}) => void;
|
|
90
92
|
};
|
|
91
93
|
|
|
92
|
-
function
|
|
93
|
-
preview
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
actions: React.ReactNode;
|
|
98
|
-
}) {
|
|
94
|
+
export function FileItem(props: FileItemProps) {
|
|
95
|
+
const {name, url, thumbnailUrl, status, previewData: preview} = props.data;
|
|
96
|
+
const isActive = status === "uploading" || status === "deleting";
|
|
97
|
+
const isBackgroundReady = thumbnailUrl && !isActive;
|
|
98
|
+
|
|
99
99
|
const [zoomed, setZoomed] = useState(false);
|
|
100
100
|
const imagesRegistry = useImagesGalleryRegistry();
|
|
101
101
|
const galleryMethods = useImagesGalleryMethods();
|
|
102
102
|
|
|
103
103
|
useEffect(() => {
|
|
104
|
+
if (!preview) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
|
|
104
108
|
imagesRegistry.set(preview.originalSrc, {
|
|
105
109
|
type: preview.type,
|
|
106
110
|
src: preview.originalSrc,
|
|
111
|
+
contentType: preview.contentType,
|
|
107
112
|
zoomed: false,
|
|
108
113
|
setZoomed,
|
|
109
|
-
actions
|
|
114
|
+
actions: <FilePreviewActions url={preview.originalSrc} name={name} />,
|
|
110
115
|
});
|
|
111
|
-
|
|
116
|
+
return () => {
|
|
117
|
+
imagesRegistry.delete(preview.originalSrc);
|
|
118
|
+
};
|
|
119
|
+
}, [imagesRegistry, name, preview]);
|
|
120
|
+
|
|
112
121
|
useEffect(() => {
|
|
122
|
+
if (!preview) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
113
126
|
if (zoomed) {
|
|
114
127
|
galleryMethods.setActivated(true);
|
|
115
128
|
}
|
|
@@ -120,200 +133,170 @@ function PreviewEntry({
|
|
|
120
133
|
imagesRegistry.set(preview.originalSrc, {
|
|
121
134
|
type: preview.type,
|
|
122
135
|
src: preview.originalSrc,
|
|
136
|
+
contentType: preview.contentType,
|
|
123
137
|
zoomed,
|
|
124
138
|
setZoomed,
|
|
125
|
-
actions
|
|
139
|
+
actions: <FilePreviewActions url={preview.originalSrc} name={name} />,
|
|
126
140
|
});
|
|
127
141
|
}
|
|
128
|
-
}, [galleryMethods, zoomed, preview, imagesRegistry,
|
|
129
|
-
return (
|
|
130
|
-
<div
|
|
131
|
-
className={css`
|
|
132
|
-
position: relative;
|
|
133
|
-
`}
|
|
134
|
-
>
|
|
135
|
-
<Zoom
|
|
136
|
-
zoomImg={preview.previewSrc ? {src: preview.previewSrc} : undefined}
|
|
137
|
-
openOnClick={true}
|
|
138
|
-
className={css`
|
|
139
|
-
position: absolute;
|
|
140
|
-
outline: none;
|
|
141
|
-
bottom: 0;
|
|
142
|
-
top: 0;
|
|
143
|
-
left: 0;
|
|
144
|
-
right: 0;
|
|
145
|
-
cursor: zoom-in;
|
|
146
|
-
`}
|
|
147
|
-
zoomed={zoomed}
|
|
148
|
-
onZoomedChange={setZoomed}
|
|
149
|
-
>
|
|
150
|
-
<div role="img" style={{backgroundImage: `url(${preview.previewSrc})`, outline: "none"}} />
|
|
151
|
-
</Zoom>
|
|
152
|
-
<Tooltip title={"Zoom in"}>
|
|
153
|
-
<IconButton
|
|
154
|
-
style={makeButtonColors(colors.inversedTextColor, "ghost")}
|
|
155
|
-
onClick={() => setZoomed(true)}
|
|
156
|
-
size={"small"}
|
|
157
|
-
supportMobile={true}
|
|
158
|
-
>
|
|
159
|
-
<ZoomIn />
|
|
160
|
-
</IconButton>
|
|
161
|
-
</Tooltip>
|
|
162
|
-
</div>
|
|
163
|
-
);
|
|
164
|
-
}
|
|
142
|
+
}, [galleryMethods, zoomed, preview, imagesRegistry, name]);
|
|
165
143
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
144
|
+
const onContainerClick = useCallback(() => {
|
|
145
|
+
if (preview) {
|
|
146
|
+
setZoomed(true);
|
|
147
|
+
} else {
|
|
148
|
+
const a = document.createElement("a");
|
|
149
|
+
a.href = `${url}?attachment`;
|
|
150
|
+
a.download = name;
|
|
151
|
+
a.style.display = "none";
|
|
152
|
+
|
|
153
|
+
document.body.appendChild(a);
|
|
154
|
+
a.click();
|
|
155
|
+
document.body.removeChild(a);
|
|
178
156
|
}
|
|
179
|
-
|
|
180
|
-
}
|
|
157
|
+
}, [name, preview, url]);
|
|
181
158
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
159
|
+
return (
|
|
160
|
+
<div
|
|
161
|
+
className={cx(
|
|
162
|
+
css`
|
|
163
|
+
position: relative;
|
|
164
|
+
height: 100%;
|
|
165
|
+
cursor: pointer;
|
|
166
|
+
`,
|
|
167
|
+
isBackgroundReady &&
|
|
168
|
+
css`
|
|
169
|
+
&:hover .${overlayStyle} {
|
|
170
|
+
background-position: 0 0;
|
|
171
|
+
color: ${themeVars.inversedTextColor};
|
|
172
|
+
}
|
|
173
|
+
`
|
|
174
|
+
)}
|
|
175
|
+
>
|
|
176
|
+
{/* eslint-disable-next-line jsx-a11y/anchor-has-content */}
|
|
187
177
|
<div
|
|
178
|
+
style={isBackgroundReady ? {backgroundImage: `url(${thumbnailUrl})`} : {}}
|
|
179
|
+
onClick={onContainerClick}
|
|
188
180
|
className={cx(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
height: 100%;
|
|
192
|
-
`,
|
|
193
|
-
isBackgroundReady &&
|
|
181
|
+
fileItemStyle,
|
|
182
|
+
isActive &&
|
|
194
183
|
css`
|
|
195
|
-
|
|
196
|
-
background-position: 0 0;
|
|
197
|
-
color: ${themeVars.inversedTextColor};
|
|
198
|
-
}
|
|
184
|
+
${{backgroundColor: themeVars.entityCardSelectedColor}}
|
|
199
185
|
`
|
|
200
186
|
)}
|
|
201
187
|
>
|
|
202
|
-
{
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
bottom: 0;
|
|
208
|
-
content: "";
|
|
209
|
-
display: block;
|
|
210
|
-
left: 0;
|
|
211
|
-
position: absolute;
|
|
212
|
-
right: 0;
|
|
213
|
-
top: 0;
|
|
214
|
-
}
|
|
215
|
-
`}
|
|
216
|
-
rel="noopener noreferrer nofollow"
|
|
217
|
-
target="_blank"
|
|
218
|
-
/>
|
|
219
|
-
<div
|
|
220
|
-
style={isBackgroundReady ? {backgroundImage: `url(${thumbnailUrl})`} : {}}
|
|
221
|
-
className={cx(
|
|
222
|
-
fileItemStyle,
|
|
223
|
-
isActive &&
|
|
224
|
-
css`
|
|
225
|
-
${{backgroundColor: themeVars.entityCardSelectedColor}}
|
|
226
|
-
`
|
|
227
|
-
)}
|
|
228
|
-
>
|
|
229
|
-
<div className={cx(overlayStyle, isBackgroundReady ? imageOverlayStyle : fileOverlayStyle)}>
|
|
230
|
-
<Item
|
|
231
|
-
multiline
|
|
232
|
-
textClassName={nameStyle}
|
|
233
|
-
rightContainer={
|
|
234
|
-
<div
|
|
235
|
-
className={css`
|
|
236
|
-
display: flex;
|
|
237
|
-
align-items: center;
|
|
238
|
-
gap: ${space.s4}px;
|
|
239
|
-
`}
|
|
240
|
-
>
|
|
241
|
-
{previewData ? (
|
|
242
|
-
<PreviewEntry
|
|
243
|
-
preview={previewData}
|
|
244
|
-
actions={
|
|
245
|
-
<>
|
|
246
|
-
<a href={url} target="_blank" rel="noopener noreferrer">
|
|
247
|
-
<ActionsMenuItem Icon={RicheditorOpenLink}>Open in new tab</ActionsMenuItem>
|
|
248
|
-
</a>
|
|
249
|
-
<a download={name} href={`${url}/attachment`}>
|
|
250
|
-
<ActionsMenuItem Icon={FileDownload}>Download</ActionsMenuItem>
|
|
251
|
-
</a>
|
|
252
|
-
</>
|
|
253
|
-
}
|
|
254
|
-
/>
|
|
255
|
-
) : null}
|
|
256
|
-
<ActionsMenu
|
|
257
|
-
trigger={
|
|
258
|
-
<ActionsButtonCompact
|
|
259
|
-
className={css`
|
|
260
|
-
z-index: 1;
|
|
261
|
-
`}
|
|
262
|
-
style={isBackgroundReady ? makeButtonColors(colors.inversedTextColor, "ghost") : undefined}
|
|
263
|
-
/>
|
|
264
|
-
}
|
|
265
|
-
>
|
|
266
|
-
<a download={name} href={this.props.data.downloadUrl ?? url}>
|
|
267
|
-
<ActionsMenuItem>Download</ActionsMenuItem>
|
|
268
|
-
</a>
|
|
269
|
-
{this.props.onRenameClick && status === "done" ? (
|
|
270
|
-
<ActionsMenuItem
|
|
271
|
-
onSelect={() =>
|
|
272
|
-
this.props.onRenameClick?.({id: this.props.data.uid, name: this.props.data.name})
|
|
273
|
-
}
|
|
274
|
-
>
|
|
275
|
-
Rename
|
|
276
|
-
</ActionsMenuItem>
|
|
277
|
-
) : null}
|
|
278
|
-
<ActionsMenuItem
|
|
279
|
-
onSelect={() => this.props.onRemoveClick?.(this.props.data)}
|
|
280
|
-
dangerous
|
|
281
|
-
disabled={this.props.disabled}
|
|
282
|
-
>
|
|
283
|
-
Delete
|
|
284
|
-
</ActionsMenuItem>
|
|
285
|
-
</ActionsMenu>
|
|
286
|
-
</div>
|
|
287
|
-
}
|
|
288
|
-
>
|
|
188
|
+
<div className={cx(overlayStyle, isBackgroundReady ? imageOverlayStyle : fileOverlayStyle)}>
|
|
189
|
+
<Item
|
|
190
|
+
multiline
|
|
191
|
+
textClassName={nameStyle}
|
|
192
|
+
rightContainer={
|
|
289
193
|
<div
|
|
290
194
|
className={css`
|
|
291
|
-
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
gap: ${space.s4}px;
|
|
292
198
|
`}
|
|
293
199
|
>
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
&:hover {
|
|
303
|
-
text-decoration: none;
|
|
304
|
-
color: inherit;
|
|
200
|
+
<ActionsMenu
|
|
201
|
+
trigger={
|
|
202
|
+
<ActionsButtonCompact
|
|
203
|
+
className={css`
|
|
204
|
+
z-index: 1;
|
|
205
|
+
`}
|
|
206
|
+
style={isBackgroundReady ? makeButtonColors(colors.inversedTextColor, "ghost") : undefined}
|
|
207
|
+
/>
|
|
305
208
|
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
209
|
+
>
|
|
210
|
+
<CopyFileUrlActionMenuItem url={url} />
|
|
211
|
+
<a href={url} target="_blank" rel="noopener noreferrer">
|
|
212
|
+
<ActionsMenuItem Icon={RicheditorOpenLink}>Open in new tab</ActionsMenuItem>
|
|
213
|
+
</a>
|
|
214
|
+
<a download={name} href={props.data.downloadUrl ?? url}>
|
|
215
|
+
<ActionsMenuItem Icon={FileDownload}>Download</ActionsMenuItem>
|
|
216
|
+
</a>
|
|
217
|
+
{props.onRenameClick && status === "done" ? (
|
|
218
|
+
<ActionsMenuItem
|
|
219
|
+
Icon={Pencil}
|
|
220
|
+
onSelect={() => props.onRenameClick?.({id: props.data.uid, name: props.data.name})}
|
|
221
|
+
>
|
|
222
|
+
Rename
|
|
223
|
+
</ActionsMenuItem>
|
|
224
|
+
) : null}
|
|
225
|
+
<ActionsMenuItem
|
|
226
|
+
Icon={Delete}
|
|
227
|
+
onSelect={() => props.onRemoveClick?.(props.data)}
|
|
228
|
+
dangerous
|
|
229
|
+
disabled={props.disabled}
|
|
230
|
+
>
|
|
231
|
+
Delete
|
|
232
|
+
</ActionsMenuItem>
|
|
233
|
+
</ActionsMenu>
|
|
234
|
+
</div>
|
|
235
|
+
}
|
|
236
|
+
>
|
|
237
|
+
<div
|
|
238
|
+
className={css`
|
|
239
|
+
${fontWeight}
|
|
240
|
+
`}
|
|
241
|
+
>
|
|
242
|
+
<b>{resolveStatusText(props.data.status)}</b>
|
|
243
|
+
</div>
|
|
244
|
+
<span
|
|
245
|
+
className={css`
|
|
246
|
+
position: relative;
|
|
247
|
+
z-index: 1;
|
|
248
|
+
color: inherit;
|
|
249
|
+
text-decoration: none;
|
|
250
|
+
`}
|
|
251
|
+
>
|
|
252
|
+
{name}
|
|
253
|
+
</span>
|
|
254
|
+
</Item>
|
|
315
255
|
</div>
|
|
316
256
|
</div>
|
|
317
|
-
|
|
257
|
+
</div>
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function CopyFileUrlActionMenuItem({url}: {url: string}) {
|
|
262
|
+
const toast = useToast();
|
|
263
|
+
return (
|
|
264
|
+
<ActionsMenuItem
|
|
265
|
+
Icon={Link}
|
|
266
|
+
onSelect={() => {
|
|
267
|
+
copyToClipboard(new URL(url, `${window.location}`).href)
|
|
268
|
+
.then(() => toast.success({title: "Link copied to clipboard"}))
|
|
269
|
+
.catch((error) => toast.error({title: "Unable to copy link to clipboard", subTitle: error.message}));
|
|
270
|
+
}}
|
|
271
|
+
>
|
|
272
|
+
Copy file URL
|
|
273
|
+
</ActionsMenuItem>
|
|
274
|
+
);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
function resolveStatusText(status?: string) {
|
|
278
|
+
if (status === "done" || status === "remove-error") {
|
|
279
|
+
return "";
|
|
280
|
+
}
|
|
281
|
+
let statusText = `status=${status}`;
|
|
282
|
+
if (status === "deleting") {
|
|
283
|
+
statusText = "Deleting…";
|
|
318
284
|
}
|
|
285
|
+
if (status === "uploading") {
|
|
286
|
+
statusText = "Uploading…";
|
|
287
|
+
}
|
|
288
|
+
return statusText;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function FilePreviewActions({url, name}: {url: string; name: string}) {
|
|
292
|
+
return (
|
|
293
|
+
<>
|
|
294
|
+
<a href={url} target="_blank" rel="noopener noreferrer">
|
|
295
|
+
<ActionsMenuItem Icon={RicheditorOpenLink}>Open in new tab</ActionsMenuItem>
|
|
296
|
+
</a>
|
|
297
|
+
<a download={name} href={`${url}/attachment`}>
|
|
298
|
+
<ActionsMenuItem Icon={FileDownload}>Download</ActionsMenuItem>
|
|
299
|
+
</a>
|
|
300
|
+
</>
|
|
301
|
+
);
|
|
319
302
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileArchive: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M14.75 2A2.25 2.25 0 0 1 17 4.25v11.5A2.25 2.25 0 0 1 14.75 18h-9.5A2.25 2.25 0 0 1 3 15.75V4.25A2.25 2.25 0 0 1 5.25 2h9.5Zm-9.5 1.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h9.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75h-9.5Zm8 1.5a.75.75 0 0 1 0 1.5H11a1 1 0 0 1-2 0H6.75a.75.75 0 0 1 0-1.5h6.5Z"},"children":[]}],"metadata":""}]},"name":"file-archive"};
|
|
7
|
+
|
|
8
|
+
export default FileArchive;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileBroken: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M11.742 1.5a.75.75 0 0 1 .53.219l4.504 4.497c.141.14.221.332.221.531v9.003a2.75 2.75 0 0 1-2.749 2.75H5.745a2.749 2.749 0 0 1-2.748-2.75V4.25c0-1.519 1.23-2.75 2.748-2.75h5.997ZM5.745 3c-.69 0-1.249.56-1.249 1.25v11.5c0 .69.56 1.25 1.25 1.25h8.502c.69 0 1.25-.56 1.25-1.25V7.497h-2.923a1.583 1.583 0 0 1-1.582-1.584V3H5.745Zm5.975 6.22a.75.75 0 1 1 1.06 1.06L11.06 12l1.72 1.72a.75.75 0 1 1-1.06 1.06L10 13.06l-1.72 1.72a.75.75 0 1 1-1.06-1.06L8.94 12l-1.72-1.72a.75.75 0 1 1 1.06-1.06L10 10.94l1.72-1.72Zm.772-3.307a.084.084 0 0 0 .083.084h1.86l-1.943-1.94v1.856Z"},"children":[]}],"metadata":""}]},"name":"file-broken"};
|
|
7
|
+
|
|
8
|
+
export default FileBroken;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileDocument: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M11.742 1.5a.75.75 0 0 1 .53.219l4.504 4.497c.141.14.221.332.221.531v9.003a2.75 2.75 0 0 1-2.749 2.75H5.745a2.749 2.749 0 0 1-2.748-2.75V4.25c0-1.519 1.23-2.75 2.748-2.75h5.997ZM5.745 3c-.69 0-1.249.56-1.249 1.25v11.5c0 .69.56 1.25 1.25 1.25h8.502c.69 0 1.25-.56 1.25-1.25V7.497h-2.923a1.583 1.583 0 0 1-1.582-1.584V3H5.745Zm6.505 10a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5h5.5Zm-2-3a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h3.5Zm2.242-4.087a.084.084 0 0 0 .083.084h1.86l-1.943-1.94v1.856Z"},"children":[]}],"metadata":""}]},"name":"file-document"};
|
|
7
|
+
|
|
8
|
+
export default FileDocument;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileImage: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 16 14"},"children":[{"type":"element","tagName":"path","properties":{"d":"M13.75 0A2.25 2.25 0 0 1 16 2.25v9.5A2.25 2.25 0 0 1 13.75 14H2.25A2.25 2.25 0 0 1 0 11.75v-9.5A2.25 2.25 0 0 1 2.25 0h11.5ZM2.25 1.5a.75.75 0 0 0-.75.75v9.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75v-9.5a.75.75 0 0 0-.75-.75H2.25Zm9.896 8.646a.5.5 0 0 1-.353.854H4.207a.5.5 0 0 1-.353-.854L6 8l1 1 2-2 3.146 3.146ZM12 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"},"children":[]}],"metadata":""}]},"name":"file-image"};
|
|
7
|
+
|
|
8
|
+
export default FileImage;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FilePresentation: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"m12.762 16.572.056.063a.851.851 0 0 1-.056 1.12.806.806 0 0 1-1.096.058l-.062-.058-1.603-1.64-1.604 1.64a.805.805 0 0 1-1.156 0 .85.85 0 0 1 0-1.183L8.778 15H4.25A2.25 2.25 0 0 1 2 12.75v-7.5A2.25 2.25 0 0 1 4.25 3h11.5A2.25 2.25 0 0 1 18 5.25v7.5A2.25 2.25 0 0 1 15.75 15h-4.526l1.538 1.572ZM4.25 4.5a.75.75 0 0 0-.75.75v7.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75v-7.5a.75.75 0 0 0-.75-.75H4.25ZM10 9h2a2 2 0 1 1-2-2v2Z"},"children":[]}],"metadata":""}]},"name":"file-presentation"};
|
|
7
|
+
|
|
8
|
+
export default FilePresentation;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileTable: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M11.742 1.5a.75.75 0 0 1 .53.219l4.504 4.497c.141.14.221.332.221.531v3.194L17 10c0 .02-.002.039-.003.058v3.883L17 14c0 .02-.002.039-.003.058v1.692a2.75 2.75 0 0 1-2.749 2.75H5.745a2.749 2.749 0 0 1-2.748-2.75V4.25c0-1.519 1.23-2.75 2.748-2.75h5.997ZM8.75 17h5.498c.69 0 1.25-.56 1.25-1.25v-1H8.75V17Zm-4.254-1.25c0 .69.56 1.25 1.25 1.25H7.25v-2.25H4.496v1Zm4.254-2.5h6.747v-2.5H8.75v2.5Zm-4.254 0H7.25v-2.5H4.496v2.5ZM5.746 3c-.69 0-1.25.56-1.25 1.25v5h11.001V7.497h-2.922a1.583 1.583 0 0 1-1.582-1.584V3H5.745Zm6.746 2.913a.084.084 0 0 0 .083.084h1.86l-1.943-1.94v1.856Z"},"children":[]}],"metadata":""}]},"name":"file-table"};
|
|
7
|
+
|
|
8
|
+
export default FileTable;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const FileVideo: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M15.75 4A2.25 2.25 0 0 1 18 6.25v7.5A2.25 2.25 0 0 1 15.75 16H4.25A2.25 2.25 0 0 1 2 13.75v-7.5A2.25 2.25 0 0 1 4.25 4h11.5ZM4.25 5.5a.75.75 0 0 0-.75.75v7.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75v-7.5a.75.75 0 0 0-.75-.75H4.25ZM7.5 7.809a.5.5 0 0 1 .724-.448l4.381 2.192a.5.5 0 0 1 0 .894l-4.381 2.19a.5.5 0 0 1-.724-.446V7.81Z"},"children":[]}],"metadata":""}]},"name":"file-video"};
|
|
7
|
+
|
|
8
|
+
export default FileVideo;
|
package/src/icons/ast/index.tsx
CHANGED
|
@@ -129,8 +129,15 @@ export { default as FiberyMono } from './FiberyMono';
|
|
|
129
129
|
export { default as FieldUnit } from './FieldUnit';
|
|
130
130
|
export { default as Fields } from './Fields';
|
|
131
131
|
export { default as Figma } from './Figma';
|
|
132
|
+
export { default as FileArchive } from './FileArchive';
|
|
133
|
+
export { default as FileBroken } from './FileBroken';
|
|
134
|
+
export { default as FileDocument } from './FileDocument';
|
|
132
135
|
export { default as FileDownload } from './FileDownload';
|
|
136
|
+
export { default as FileImage } from './FileImage';
|
|
137
|
+
export { default as FilePresentation } from './FilePresentation';
|
|
138
|
+
export { default as FileTable } from './FileTable';
|
|
133
139
|
export { default as FileUpload } from './FileUpload';
|
|
140
|
+
export { default as FileVideo } from './FileVideo';
|
|
134
141
|
export { default as Filter } from './Filter';
|
|
135
142
|
export { default as FitToScreen } from './FitToScreen';
|
|
136
143
|
export { default as FocusModeOff } from './FocusModeOff';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileArchiveSvg from '../ast/FileArchive';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileArchive = forwardRef<SVGSVGElement, IconBaseProps>(function FileArchive(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileArchiveSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileArchive;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileBrokenSvg from '../ast/FileBroken';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileBroken = forwardRef<SVGSVGElement, IconBaseProps>(function FileBroken(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileBrokenSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileBroken;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileDocumentSvg from '../ast/FileDocument';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileDocument = forwardRef<SVGSVGElement, IconBaseProps>(function FileDocument(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileDocumentSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileDocument;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileImageSvg from '../ast/FileImage';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileImage = forwardRef<SVGSVGElement, IconBaseProps>(function FileImage(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileImageSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileImage;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FilePresentationSvg from '../ast/FilePresentation';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FilePresentation = forwardRef<SVGSVGElement, IconBaseProps>(function FilePresentation(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FilePresentationSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FilePresentation;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileTableSvg from '../ast/FileTable';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileTable = forwardRef<SVGSVGElement, IconBaseProps>(function FileTable(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileTableSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileTable;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import {forwardRef} from 'react';
|
|
4
|
+
import FileVideoSvg from '../ast/FileVideo';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { IconBaseProps } from '../types';
|
|
7
|
+
|
|
8
|
+
const FileVideo = forwardRef<SVGSVGElement, IconBaseProps>(function FileVideo(
|
|
9
|
+
props: IconBaseProps,
|
|
10
|
+
ref: React.Ref<SVGSVGElement>
|
|
11
|
+
) {return <Icon {...props} className={props.className} ref={ref} icon={FileVideoSvg} />});
|
|
12
|
+
|
|
13
|
+
export default FileVideo;
|
|
@@ -129,8 +129,15 @@ export { default as FiberyMono } from './FiberyMono';
|
|
|
129
129
|
export { default as FieldUnit } from './FieldUnit';
|
|
130
130
|
export { default as Fields } from './Fields';
|
|
131
131
|
export { default as Figma } from './Figma';
|
|
132
|
+
export { default as FileArchive } from './FileArchive';
|
|
133
|
+
export { default as FileBroken } from './FileBroken';
|
|
134
|
+
export { default as FileDocument } from './FileDocument';
|
|
132
135
|
export { default as FileDownload } from './FileDownload';
|
|
136
|
+
export { default as FileImage } from './FileImage';
|
|
137
|
+
export { default as FilePresentation } from './FilePresentation';
|
|
138
|
+
export { default as FileTable } from './FileTable';
|
|
133
139
|
export { default as FileUpload } from './FileUpload';
|
|
140
|
+
export { default as FileVideo } from './FileVideo';
|
|
134
141
|
export { default as Filter } from './Filter';
|
|
135
142
|
export { default as FitToScreen } from './FitToScreen';
|
|
136
143
|
export { default as FocusModeOff } from './FocusModeOff';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
|
|
2
|
+
<path d="M14.75 2C15.9926 2 17 3.0074 17 4.25V15.75C17 16.9926 15.9926 18 14.75 18H5.25C4.00736 18 3 16.9926 3 15.75V4.25C3 3.0074 4.00736 2 5.25 2H14.75ZM5.25 3.5C4.83579 3.5 4.5 3.8358 4.5 4.25V15.75C4.5 16.1642 4.83579 16.5 5.25 16.5H14.75C15.1642 16.5 15.5 16.1642 15.5 15.75V4.25C15.5 3.8358 15.1642 3.5 14.75 3.5H5.25ZM13.25 5C13.6642 5 14 5.33579 14 5.75C14 6.16421 13.6642 6.5 13.25 6.5H11C11 6.63132 10.9741 6.76149 10.9238 6.88281C10.8736 7.00409 10.7999 7.11421 10.707 7.20703C10.6142 7.29986 10.5041 7.37357 10.3828 7.42383C10.2615 7.47408 10.1313 7.5 10 7.5C9.86868 7.5 9.73851 7.47408 9.61719 7.42383C9.49591 7.37357 9.38579 7.29986 9.29297 7.20703C9.20014 7.11421 9.12643 7.00409 9.07617 6.88281C9.02592 6.76149 9 6.63132 9 6.5H6.75C6.33579 6.5 6 6.16421 6 5.75C6 5.33579 6.33579 5 6.75 5H13.25Z" />
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
|
|
2
|
+
<path d="M11.7422 1.5C11.9405 1.5 12.131 1.5787 12.2715 1.71875L16.7764 6.21582C16.9173 6.35652 16.9971 6.54787 16.9971 6.74707V15.75C16.9971 17.2687 15.766 18.4999 14.248 18.5H5.74512C4.22716 18.4999 2.99708 17.2687 2.99707 15.75V4.25C2.99707 2.73127 4.22713 1.50008 5.74512 1.5H11.7422ZM5.74512 3C5.05516 3.00008 4.49609 3.55969 4.49609 4.25V15.75C4.4961 16.4403 5.05519 16.9999 5.74512 17H14.248C14.938 16.9999 15.4971 16.4403 15.4971 15.75V7.49707H12.5752C12.1555 7.49702 11.7528 7.33009 11.4561 7.0332C11.1593 6.73627 10.9932 6.33301 10.9932 5.91309V3H5.74512ZM11.7197 9.21973C12.0126 8.92684 12.4874 8.92683 12.7803 9.21973C13.0732 9.51262 13.0732 9.98738 12.7803 10.2803L11.0605 12L12.7803 13.7197C13.0732 14.0126 13.0732 14.4874 12.7803 14.7803C12.4874 15.0732 12.0126 15.0732 11.7197 14.7803L10 13.0605L8.28027 14.7803C7.98738 15.0732 7.51262 15.0732 7.21973 14.7803C6.92683 14.4874 6.92683 14.0126 7.21973 13.7197L8.93945 12L7.21973 10.2803C6.92683 9.98738 6.92683 9.51262 7.21973 9.21973C7.51262 8.92683 7.98738 8.92683 8.28027 9.21973L10 10.9395L11.7197 9.21973ZM12.4922 5.91309C12.4922 5.93519 12.501 5.95703 12.5166 5.97266C12.5322 5.98808 12.5533 5.99702 12.5752 5.99707H14.4346L12.4922 4.05762V5.91309Z" />
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
|
|
2
|
+
<path d="M11.7422 1.5C11.9405 1.5 12.131 1.5787 12.2715 1.71875L16.7764 6.21582C16.9173 6.35652 16.9971 6.54787 16.9971 6.74707V15.75C16.9971 17.2687 15.766 18.4999 14.248 18.5H5.74512C4.22716 18.4999 2.99708 17.2687 2.99707 15.75V4.25C2.99707 2.73127 4.22713 1.50008 5.74512 1.5H11.7422ZM5.74512 3C5.05516 3.00008 4.49609 3.55969 4.49609 4.25V15.75C4.4961 16.4403 5.05519 16.9999 5.74512 17H14.248C14.938 16.9999 15.4971 16.4403 15.4971 15.75V7.49707H12.5752C12.1555 7.49702 11.7528 7.33009 11.4561 7.0332C11.1593 6.73627 10.9932 6.33301 10.9932 5.91309V3H5.74512ZM12.25 13C12.6642 13 13 13.3358 13 13.75C13 14.1642 12.6642 14.5 12.25 14.5H6.75C6.33579 14.5 6 14.1642 6 13.75C6 13.3358 6.33579 13 6.75 13H12.25ZM10.25 10C10.6642 10 11 10.3358 11 10.75C11 11.1642 10.6642 11.5 10.25 11.5H6.75C6.33579 11.5 6 11.1642 6 10.75C6 10.3358 6.33579 10 6.75 10H10.25ZM12.4922 5.91309C12.4922 5.93519 12.501 5.95703 12.5166 5.97266C12.5322 5.98808 12.5533 5.99702 12.5752 5.99707H14.4346L12.4922 4.05762V5.91309Z" />
|
|
3
|
+
</svg>
|