@fibery/ui-kit 1.38.0 → 1.38.2

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.
Files changed (111) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/config/jest/testFrameworkSetup.js +1 -1
  3. package/package.json +23 -22
  4. package/src/abbreviate-name.ts +42 -0
  5. package/src/actions-menu/actions-menu-item.tsx +14 -5
  6. package/src/actions-menu/actions-menu-props.tsx +1 -0
  7. package/src/actions-menu/actions-menu.tsx +4 -1
  8. package/src/actions-menu/context-actions-menu.tsx +22 -0
  9. package/src/animated-height-container.tsx +24 -5
  10. package/src/antd/ant-upload.tsx +1 -1
  11. package/src/antd/input.tsx +4 -0
  12. package/src/avatar.tsx +1 -27
  13. package/src/button/base-button.tsx +2 -0
  14. package/src/button/button.tsx +4 -4
  15. package/src/button/icon-button.tsx +3 -3
  16. package/src/card-container.tsx +3 -2
  17. package/src/checkbox.tsx +17 -0
  18. package/src/collapsible/index.tsx +4 -2
  19. package/src/collapsible-section.tsx +3 -1
  20. package/src/date-picker/autocomplete.tsx +11 -5
  21. package/src/date-picker/date-range-input.tsx +5 -1
  22. package/src/date-picker/date-range-picker-popup-content.tsx +31 -13
  23. package/src/date-picker/single-date-input.tsx +5 -1
  24. package/src/date-picker/styles.ts +20 -0
  25. package/src/design-system.ts +26 -1
  26. package/src/dropdown-menu/index.tsx +11 -1
  27. package/src/emoji-picker/emoji-picker-preview-footer.tsx +4 -0
  28. package/src/emoji-picker/emoji.tsx +4 -3
  29. package/src/emoji-picker/primitives/emoji.tsx +49 -51
  30. package/src/emoji-picker/primitives/footer.tsx +6 -0
  31. package/src/emoji-picker/primitives/search.tsx +8 -0
  32. package/src/emoji-picker/primitives/skin-tone.tsx +12 -2
  33. package/src/fibermoji-placeholder.tsx +2 -29
  34. package/src/file-item-2.tsx +566 -0
  35. package/src/file-item.tsx +196 -162
  36. package/src/header-layout.tsx +11 -0
  37. package/src/html-styles.ts +13 -4
  38. package/src/icons/ast/Back.ts +1 -1
  39. package/src/icons/ast/ExtensionFiles.ts +1 -1
  40. package/src/icons/ast/FileArchive.ts +8 -0
  41. package/src/icons/ast/FileBroken.ts +8 -0
  42. package/src/icons/ast/FileDocument.ts +8 -0
  43. package/src/icons/ast/FileImage.ts +8 -0
  44. package/src/icons/ast/FilePresentation.ts +8 -0
  45. package/src/icons/ast/FileTable.ts +8 -0
  46. package/src/icons/ast/FileUpload.ts +1 -1
  47. package/src/icons/ast/FileVideo.ts +8 -0
  48. package/src/icons/ast/SwitchToMention.ts +8 -0
  49. package/src/icons/ast/SwitchToText.ts +8 -0
  50. package/src/icons/ast/SwitchToWidget.ts +8 -0
  51. package/src/icons/ast/ViewGallery.ts +8 -0
  52. package/src/icons/ast/index.tsx +11 -0
  53. package/src/icons/react/FileArchive.tsx +13 -0
  54. package/src/icons/react/FileBroken.tsx +13 -0
  55. package/src/icons/react/FileDocument.tsx +13 -0
  56. package/src/icons/react/FileImage.tsx +13 -0
  57. package/src/icons/react/FilePresentation.tsx +13 -0
  58. package/src/icons/react/FileTable.tsx +13 -0
  59. package/src/icons/react/FileVideo.tsx +13 -0
  60. package/src/icons/react/SwitchToMention.tsx +13 -0
  61. package/src/icons/react/SwitchToText.tsx +13 -0
  62. package/src/icons/react/SwitchToWidget.tsx +13 -0
  63. package/src/icons/react/ViewGallery.tsx +13 -0
  64. package/src/icons/react/index.tsx +11 -0
  65. package/src/icons/svg/back.svg +3 -1
  66. package/src/icons/svg/extension/files.svg +3 -1
  67. package/src/icons/svg/file-archive.svg +3 -0
  68. package/src/icons/svg/file-broken.svg +3 -0
  69. package/src/icons/svg/file-document.svg +3 -0
  70. package/src/icons/svg/file-image.svg +3 -0
  71. package/src/icons/svg/file-presentation.svg +3 -0
  72. package/src/icons/svg/file-table.svg +3 -0
  73. package/src/icons/svg/file-upload.svg +3 -6
  74. package/src/icons/svg/file-video.svg +3 -0
  75. package/src/icons/svg/switch-to-mention.svg +3 -0
  76. package/src/icons/svg/switch-to-text.svg +4 -0
  77. package/src/icons/svg/switch-to-widget.svg +4 -0
  78. package/src/icons/svg/view-gallery.svg +4 -0
  79. package/src/images-gallery/images-gallery-fall-through-provider.tsx +11 -0
  80. package/src/images-gallery/images-gallery.tsx +13 -10
  81. package/src/images-gallery/zoom.tsx +13 -2
  82. package/src/images-gallery-2/images-gallery-2.tsx +522 -0
  83. package/src/images-gallery-2/slide-buttons.tsx +271 -0
  84. package/src/images-gallery-2/zoom.tsx +35 -0
  85. package/src/kbd.tsx +46 -0
  86. package/src/loading-sausage.tsx +2 -2
  87. package/src/modal-menu/modal-menu-item.tsx +10 -2
  88. package/src/modal-menu/modal-menu-trigger.tsx +19 -2
  89. package/src/notification-dot.tsx +16 -7
  90. package/src/platform-symbols.ts +9 -0
  91. package/src/platform.ts +2 -0
  92. package/src/popover/index.tsx +31 -8
  93. package/src/popover/modifiers.tsx +26 -19
  94. package/src/reactions/reaction-button.tsx +323 -101
  95. package/src/reactions/reaction-picker.tsx +14 -1
  96. package/src/reactions/reactions.tsx +11 -1
  97. package/src/reactions/tootltip.tsx +55 -0
  98. package/src/rich-text-embed-error.tsx +2 -1
  99. package/src/select/components/group-heading.tsx +8 -0
  100. package/src/select/components/menu-list-virtualized.tsx +6 -2
  101. package/src/select/components/option.tsx +4 -0
  102. package/src/select/select-control-settings-context.tsx +11 -2
  103. package/src/select/select-in-popover.tsx +10 -7
  104. package/src/select/styles.ts +21 -1
  105. package/src/tab-nav/tab-nav.tsx +1 -1
  106. package/src/toggle.tsx +8 -0
  107. package/src/tooltip.tsx +28 -19
  108. package/src/type-badge.tsx +5 -2
  109. package/src/unit/unit-with-tooltip.tsx +1 -1
  110. package/src/use-is-phone.tsx +34 -6
  111. package/src/shortcut-badge.tsx +0 -29
package/src/file-item.tsx CHANGED
@@ -1,15 +1,18 @@
1
1
  import {css, cx} from "@linaria/core";
2
- import {PureComponent, useEffect, useState} from "react";
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";
9
+ import FileDownload from "./icons/react/FileDownload";
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";
13
16
 
14
17
  const fileItemStyle = css`
15
18
  ${{
@@ -67,10 +70,17 @@ const fileOverlayStyle = css`
67
70
  `;
68
71
 
69
72
  export type FileItemType = {
73
+ uid: string;
70
74
  name: string;
71
75
  url: string;
72
76
  thumbnailUrl: string | null;
73
- previewUrl: string | null;
77
+ previewData: null | {
78
+ type: "image" | "video" | "iframe";
79
+ previewSrc: string | null;
80
+ originalSrc: string;
81
+ contentType: string;
82
+ };
83
+ downloadUrl?: string | null;
74
84
  status?: string;
75
85
  };
76
86
 
@@ -78,191 +88,215 @@ export type FileItemProps = {
78
88
  data: FileItemType;
79
89
  onRemoveClick?: (x: FileItemType) => void;
80
90
  disabled?: boolean;
91
+ onRenameClick?: (p: {id: string; name: string}) => void;
81
92
  };
82
93
 
83
- function ImageZoom({thumbnailUrl, url}: {thumbnailUrl: string; url: string}) {
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
+
84
99
  const [zoomed, setZoomed] = useState(false);
85
100
  const imagesRegistry = useImagesGalleryRegistry();
86
101
  const galleryMethods = useImagesGalleryMethods();
102
+
87
103
  useEffect(() => {
88
- imagesRegistry.set(thumbnailUrl, {zoomed: false, setZoomed});
89
- }, [imagesRegistry, thumbnailUrl]);
104
+ if (!preview) {
105
+ return undefined;
106
+ }
107
+
108
+ imagesRegistry.set(preview.originalSrc, {
109
+ type: preview.type,
110
+ src: preview.originalSrc,
111
+ contentType: preview.contentType,
112
+ zoomed: false,
113
+ setZoomed,
114
+ actions: <FilePreviewActions url={preview.originalSrc} name={name} />,
115
+ });
116
+ return () => {
117
+ imagesRegistry.delete(preview.originalSrc);
118
+ };
119
+ }, [imagesRegistry, name, preview]);
120
+
90
121
  useEffect(() => {
122
+ if (!preview) {
123
+ return;
124
+ }
125
+
91
126
  if (zoomed) {
92
127
  galleryMethods.setActivated(true);
93
128
  }
94
- const imageData = imagesRegistry.get(thumbnailUrl);
129
+ const imageData = imagesRegistry.get(preview.originalSrc);
95
130
  if (imageData) {
96
131
  imageData.zoomed = zoomed;
97
132
  } else {
98
- imagesRegistry.set(thumbnailUrl, {zoomed, setZoomed});
133
+ imagesRegistry.set(preview.originalSrc, {
134
+ type: preview.type,
135
+ src: preview.originalSrc,
136
+ contentType: preview.contentType,
137
+ zoomed,
138
+ setZoomed,
139
+ actions: <FilePreviewActions url={preview.originalSrc} name={name} />,
140
+ });
99
141
  }
100
- }, [galleryMethods, zoomed, thumbnailUrl, imagesRegistry]);
101
- return (
102
- <div
103
- className={css`
104
- position: relative;
105
- `}
106
- >
107
- <Zoom
108
- zoomImg={{src: url}}
109
- openOnClick={true}
110
- className={css`
111
- position: absolute;
112
- outline: none;
113
- bottom: 0;
114
- top: 0;
115
- left: 0;
116
- right: 0;
117
- cursor: zoom-in;
118
- `}
119
- zoomed={zoomed}
120
- onZoomedChange={setZoomed}
121
- >
122
- <div role="img" style={{backgroundImage: `url(${thumbnailUrl})`, outline: "none"}} />
123
- </Zoom>
124
- <Tooltip title={"Zoom in"}>
125
- <IconButton
126
- style={makeButtonColors(colors.inversedTextColor, "ghost")}
127
- onClick={() => setZoomed(true)}
128
- size={"small"}
129
- supportMobile={true}
130
- >
131
- <ZoomIn />
132
- </IconButton>
133
- </Tooltip>
134
- </div>
135
- );
136
- }
142
+ }, [galleryMethods, zoomed, preview, imagesRegistry, name]);
137
143
 
138
- export class FileItem extends PureComponent<FileItemProps> {
139
- _renderStatus() {
140
- const {status} = this.props.data;
141
- if (status === "done" || status === "remove-error") {
142
- return "";
143
- }
144
- let statusText = `status=${status}`;
145
- if (status === "deleting") {
146
- statusText = "Deleting…";
147
- }
148
- if (status === "uploading") {
149
- statusText = "Uploading…";
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);
150
156
  }
151
- return <b>{statusText}</b>;
152
- }
157
+ }, [name, preview, url]);
153
158
 
154
- render() {
155
- const {name, url, thumbnailUrl, status, previewUrl} = this.props.data;
156
- const isActive = status === "uploading" || status === "deleting";
157
- const isBackgroundReady = thumbnailUrl && !isActive;
158
- return (
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 */}
159
177
  <div
178
+ style={isBackgroundReady ? {backgroundImage: `url(${thumbnailUrl})`} : {}}
179
+ onClick={onContainerClick}
160
180
  className={cx(
161
- css`
162
- position: relative;
163
- height: 100%;
164
- `,
165
- isBackgroundReady &&
181
+ fileItemStyle,
182
+ isActive &&
166
183
  css`
167
- &:hover .${overlayStyle} {
168
- background-position: 0 0;
169
- color: ${themeVars.inversedTextColor};
170
- }
184
+ ${{backgroundColor: themeVars.entityCardSelectedColor}}
171
185
  `
172
186
  )}
173
187
  >
174
- {/* eslint-disable-next-line jsx-a11y/anchor-has-content */}
175
- <a
176
- href={url}
177
- className={css`
178
- &::before {
179
- bottom: 0;
180
- content: "";
181
- display: block;
182
- left: 0;
183
- position: absolute;
184
- right: 0;
185
- top: 0;
186
- }
187
- `}
188
- rel="noopener noreferrer nofollow"
189
- target="_blank"
190
- />
191
- <div
192
- style={isBackgroundReady ? {backgroundImage: `url(${thumbnailUrl})`} : {}}
193
- className={cx(
194
- fileItemStyle,
195
- isActive &&
196
- css`
197
- ${{backgroundColor: themeVars.entityCardSelectedColor}}
198
- `
199
- )}
200
- >
201
- <div className={cx(overlayStyle, isBackgroundReady ? imageOverlayStyle : fileOverlayStyle)}>
202
- <Item
203
- multiline
204
- textClassName={nameStyle}
205
- rightContainer={
206
- <div
207
- className={css`
208
- display: flex;
209
- align-items: center;
210
- gap: ${space.s4}px;
211
- `}
212
- >
213
- {previewUrl ? <ImageZoom url={url} thumbnailUrl={previewUrl} /> : null}
214
- <ActionsMenu
215
- trigger={
216
- <ActionsButtonCompact
217
- className={css`
218
- z-index: 1;
219
- `}
220
- style={isBackgroundReady ? makeButtonColors(colors.inversedTextColor, "ghost") : undefined}
221
- />
222
- }
223
- >
224
- <a download={name} href={url}>
225
- <ActionsMenuItem>Download</ActionsMenuItem>
226
- </a>
227
- <ActionsMenuItem
228
- onSelect={() => this.props.onRemoveClick?.(this.props.data)}
229
- dangerous
230
- disabled={this.props.disabled}
231
- >
232
- Delete
233
- </ActionsMenuItem>
234
- </ActionsMenu>
235
- </div>
236
- }
237
- >
188
+ <div className={cx(overlayStyle, isBackgroundReady ? imageOverlayStyle : fileOverlayStyle)}>
189
+ <Item
190
+ multiline
191
+ textClassName={nameStyle}
192
+ rightContainer={
238
193
  <div
239
194
  className={css`
240
- ${fontWeight}
195
+ display: flex;
196
+ align-items: center;
197
+ gap: ${space.s4}px;
241
198
  `}
242
199
  >
243
- {this._renderStatus()}
244
- </div>
245
- <a
246
- className={css`
247
- position: relative;
248
- z-index: 1;
249
- color: inherit;
250
- text-decoration: none;
251
- &:hover {
252
- text-decoration: none;
253
- 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
+ />
254
208
  }
255
- `}
256
- href={url}
257
- target={"_blank"}
258
- rel="noreferrer"
259
- >
260
- {name}
261
- </a>
262
- </Item>
263
- </div>
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>
264
255
  </div>
265
256
  </div>
266
- );
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…";
267
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
+ );
268
302
  }
@@ -1,14 +1,22 @@
1
1
  import {css} from "@linaria/core";
2
2
  import {ReactNode} from "react";
3
3
  import {space, textStyles, themeVars} from "./design-system";
4
+ import {mobileRootSelector} from "./mobile-styles";
4
5
 
5
6
  const containerStyle = css`
6
7
  padding: ${space.s8}px;
8
+ display: flex;
9
+ align-items: center;
7
10
  border-bottom: 1px solid ${themeVars.separatorColor};
11
+ ${mobileRootSelector} & {
12
+ padding: ${space.s12}px;
13
+ min-height: ${space.s60}px;
14
+ }
8
15
  `;
9
16
 
10
17
  const topGridCompactStyle = css`
11
18
  ${textStyles.regular}
19
+ width: 100%;
12
20
  display: flex;
13
21
  align-items: center;
14
22
  justify-content: space-between;
@@ -22,6 +30,9 @@ export function HeaderLayout({actions, children}: {actions?: ReactNode; children
22
30
  className={css`
23
31
  ${textStyles.heading4}
24
32
  position: relative;
33
+ ${mobileRootSelector} & {
34
+ ${textStyles.heading3}
35
+ }
25
36
  `}
26
37
  >
27
38
  {children}
@@ -3,6 +3,7 @@ import {css} from "@linaria/core";
3
3
  import {
4
4
  border,
5
5
  fontFamily,
6
+ fontSize,
6
7
  fontWeight,
7
8
  lineHeight,
8
9
  space,
@@ -11,6 +12,7 @@ import {
11
12
  transition,
12
13
  typeSizes,
13
14
  } from "./design-system";
15
+ import {mobileRootSelector} from "./mobile-styles";
14
16
 
15
17
  export const linkStyles = {
16
18
  color: themeVars.linkColor,
@@ -252,7 +254,10 @@ const htmlStyles = {
252
254
  Used in comments and view descriptions
253
255
  */
254
256
  const smallHtmlStyles = {
255
- fontSize: typeSizes[4],
257
+ fontSize: fontSize.xs,
258
+ [`${mobileRootSelector} &`]: {
259
+ fontSize: fontSize.md,
260
+ },
256
261
  "& h1": {
257
262
  fontFamily,
258
263
  fontSize: 24,
@@ -453,11 +458,12 @@ const smallHtmlStyles = {
453
458
  /*
454
459
  Used in chat
455
460
  */
456
- /*
457
- Used in chat
458
- */
461
+
459
462
  const chatHtmlStyles = {
460
463
  fontSize: typeSizes[4],
464
+ [`${mobileRootSelector} &`]: {
465
+ fontSize: typeSizes[3],
466
+ },
461
467
  "& h1": {
462
468
  fontFamily,
463
469
  fontSize: 20,
@@ -549,6 +555,9 @@ const chatHtmlStyles = {
549
555
  paddingBottom: space.s2,
550
556
  ...textStyles.regular,
551
557
  lineHeight: lineHeight.text,
558
+ [`${mobileRootSelector} &`]: {
559
+ ...textStyles.big,
560
+ },
552
561
  },
553
562
  "& .fibery-rich-text-check-item": {
554
563
  marginTop: space.s2,
@@ -3,6 +3,6 @@
3
3
 
4
4
  import { IconDefinition } from '../types';
5
5
 
6
- const Back: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M9.546 15.584a.8.8 0 0 1-1.13-.037l-5-5.343a.8.8 0 0 1 .01-1.104l5-5.157a.8.8 0 0 1 1.148 1.114l-3.684 3.8H16a.8.8 0 0 1 0 1.6H5.844l3.74 3.996a.8.8 0 0 1-.038 1.131Z"},"children":[]}],"metadata":""}]},"name":"back"};
6
+ const Back: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M7.47 5.22a.75.75 0 0 1 1.06 1.06L5.56 9.25h10.69a.75.75 0 0 1 0 1.5H5.56l2.97 2.97a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.748.748 0 0 1 0-1.06l4.25-4.25Z"},"children":[]}],"metadata":""}]},"name":"back"};
7
7
 
8
8
  export default Back;
@@ -3,6 +3,6 @@
3
3
 
4
4
  import { IconDefinition } from '../types';
5
5
 
6
- const ExtensionFiles: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M16.824 9.897a.75.75 0 1 0-1.061-1.06l1.06 1.06Zm-6.657 5.596-.53-.53.53.53Zm-2.83 1.173v.75-.75Zm-4.003-4.003h-.75.75Zm1.173-2.83.53.53-.53-.53Zm6.126-6.126-.53-.53.53.53Zm1.887-.782v.75-.75Zm1.887 4.555.53.53-.53-.53Zm-6.134 6.127-.53-.53.53.53ZM6.387 11.72l-.53-.53.53.53Zm6.19-5.123a.75.75 0 0 0-1.06-1.06l1.06 1.06Zm3.186 2.24-6.127 6.126 1.061 1.06 6.127-6.126-1.061-1.06Zm-6.127 6.126c-.61.61-1.437.953-2.3.953v1.5c1.261 0 2.47-.501 3.361-1.392l-1.06-1.06Zm-2.3.953c-.862 0-1.69-.343-2.299-.953l-1.06 1.06a4.752 4.752 0 0 0 3.36 1.393v-1.5Zm-2.299-.953a3.252 3.252 0 0 1-.953-2.3h-1.5c0 1.26.501 2.47 1.392 3.36l1.061-1.06Zm-.953-2.3c0-.862.343-1.69.953-2.3l-1.06-1.06a4.752 4.752 0 0 0-1.393 3.36h1.5Zm.953-2.3 6.127-6.126-1.061-1.06-6.127 6.126 1.061 1.06Zm6.127-6.126c.36-.36.847-.562 1.356-.562v-1.5c-.906 0-1.776.36-2.417 1.001l1.06 1.061Zm1.356-.562c.509 0 .997.202 1.356.562l1.061-1.06a3.418 3.418 0 0 0-2.417-1.002v1.5Zm1.356.562c.36.36.562.848.562 1.356h1.5c0-.906-.36-1.776-1.001-2.417l-1.06 1.061Zm.562 1.356c0 .51-.202.997-.562 1.357l1.061 1.06a3.418 3.418 0 0 0 1.001-2.417h-1.5Zm-.561 1.356-6.134 6.127 1.06 1.061 6.134-6.126-1.06-1.062Zm-6.134 6.127a.584.584 0 0 1-.413.171v1.5c.553 0 1.083-.22 1.474-.61l-1.061-1.06Zm-.413.171a.584.584 0 0 1-.413-.17l-1.06 1.06c.39.39.92.61 1.473.61v-1.5Zm-.413-.17a.584.584 0 0 1-.171-.414h-1.5c0 .553.22 1.083.61 1.474l1.061-1.06Zm-.171-.414c0-.155.061-.303.171-.413l-1.06-1.06c-.392.39-.611.92-.611 1.473h1.5Zm.17-.412 5.66-5.654-1.06-1.06-5.66 5.653 1.06 1.06Z"},"children":[]}],"metadata":""}]},"name":"extension-files"};
6
+ const ExtensionFiles: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M15.03 6.032c0-.695-.294-1.362-.817-1.854a2.886 2.886 0 0 0-1.974-.767c-.647 0-1.271.212-1.768.594l-.205.173-5.427 5.097c-.855.803-1.336 1.893-1.336 3.03 0 1.136.48 2.225 1.336 3.029a4.718 4.718 0 0 0 3.226 1.255l.226-.006a4.705 4.705 0 0 0 3-1.25l5.426-5.096a.786.786 0 0 1 1.063 0 .676.676 0 0 1 0 .998l-5.426 5.096c-1.067 1.002-2.49 1.592-3.988 1.662l-.3.007c-1.61 0-3.152-.6-4.29-1.669C2.64 15.263 2 13.815 2 12.304c0-1.51.64-2.959 1.777-4.027l5.426-5.096.155-.138A4.454 4.454 0 0 1 12.239 2a4.44 4.44 0 0 1 3.036 1.18 3.913 3.913 0 0 1 1.258 2.852l-.005.2a3.923 3.923 0 0 1-1.253 2.65L9.85 13.98a2.595 2.595 0 0 1-1.535.683l-.249.011c-.669 0-1.31-.25-1.783-.694a2.299 2.299 0 0 1-.74-1.675c0-.628.267-1.23.74-1.675l5.426-5.096a.787.787 0 0 1 1.062 0 .676.676 0 0 1 0 .998l-5.426 5.096a.93.93 0 0 0-.3.677.93.93 0 0 0 .3.678c.191.179.45.28.721.28l.101-.005a1.05 1.05 0 0 0 .62-.275l5.427-5.097c.458-.43.74-.994.804-1.594l.014-.26Z"},"children":[]}],"metadata":""}]},"name":"extension-files"};
7
7
 
8
8
  export default ExtensionFiles;
@@ -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;
@@ -3,6 +3,6 @@
3
3
 
4
4
  import { IconDefinition } from '../types';
5
5
 
6
- const FileUpload: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 48 48"},"children":[{"type":"element","tagName":"path","properties":{"d":"M42 30v7.2c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C39.72 42 38.88 42 37.2 42H10.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C6 39.72 6 38.88 6 37.2V30M34 16 24 6 14 16M24 6v24","stroke":"#6E7A83","strokeWidth":3,"strokeLinecap":"round","strokeLinejoin":"round","fill":"none"},"children":[]}],"metadata":""}]},"name":"file-upload"};
6
+ const FileUpload: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"m13.029 10.72-2.499-2.5a.75.75 0 0 0-1.06 0l-2.499 2.5a.75.75 0 0 0 1.06 1.06l1.22-1.22v3.94a.75.75 0 1 0 1.499 0v-3.94l1.219 1.22a.75.75 0 1 0 1.06-1.06Z"},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M5.745 1.5a2.75 2.75 0 0 0-2.748 2.75v11.5a2.75 2.75 0 0 0 2.748 2.75h8.503a2.75 2.75 0 0 0 2.749-2.75V6.747c0-.2-.08-.39-.22-.531l-4.505-4.497a.75.75 0 0 0-.53-.219H5.745Zm-1.25 2.75c0-.69.56-1.25 1.25-1.25h5.248v2.913a1.584 1.584 0 0 0 1.582 1.584h2.922v8.253c0 .69-.56 1.25-1.25 1.25H5.746c-.69 0-1.25-.56-1.25-1.25V4.25Zm9.94 1.747-1.943-1.94v1.856a.083.083 0 0 0 .083.084h1.86Z"},"children":[]}],"metadata":""}]},"name":"file-upload"};
7
7
 
8
8
  export default FileUpload;
@@ -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;
@@ -0,0 +1,8 @@
1
+
2
+ // This icon file is generated automatically.
3
+
4
+ import { IconDefinition } from '../types';
5
+
6
+ const SwitchToMention: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M2 12.75A2.25 2.25 0 0 0 4.25 15h11.5A2.25 2.25 0 0 0 18 12.75v-5.5A2.25 2.25 0 0 0 15.75 5H4.25A2.25 2.25 0 0 0 2 7.25v5.5Zm1.5 0c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75v-5.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75v5.5Zm6.75-3.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5ZM6 8.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H6Z"},"children":[]}],"metadata":""}]},"name":"switch-to-mention"};
7
+
8
+ export default SwitchToMention;
@@ -0,0 +1,8 @@
1
+
2
+ // This icon file is generated automatically.
3
+
4
+ import { IconDefinition } from '../types';
5
+
6
+ const SwitchToText: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M6.75 7.25c.305 0 .581.185.696.468l3.25 8a.751.751 0 0 1-1.39.564l-.623-1.532H4.318l-.622 1.532a.751.751 0 0 1-1.39-.564l3.25-8a.75.75 0 0 1 .694-.468h.5Zm-1.823 6h3.147L6.5 9.378 4.927 13.25Z"},"children":[]},{"type":"element","tagName":"path","properties":{"d":"M12.14 2.2a.7.7 0 0 1 .702.713.69.69 0 0 1-.224.508l-.948.93-.117.093.316-.01h2.489c.95 0 1.786.297 2.388.851.603.556.954 1.355.954 2.326 0 .967-.354 1.77-.957 2.328-.602.558-1.44.86-2.385.86h-1.114a.785.785 0 0 1-.518-.173.663.663 0 0 1-.224-.519c0-.211.078-.393.217-.52a.743.743 0 0 1 .505-.183h1.134c.575 0 1.053-.183 1.385-.497.33-.312.533-.77.533-1.355 0-.561-.204-.988-.534-1.277-.334-.29-.814-.456-1.384-.456h-2.495l-.293-.01 1.058 1.023a.696.696 0 0 1 .214.508.698.698 0 0 1-.692.713.698.698 0 0 1-.513-.21l-.002-.001-2.087-2.143a.794.794 0 0 1 0-1.156l2.085-2.12c.137-.149.3-.223.507-.223Z"},"children":[]}],"metadata":""}]},"name":"switch-to-text"};
7
+
8
+ export default SwitchToText;
@@ -0,0 +1,8 @@
1
+
2
+ // This icon file is generated automatically.
3
+
4
+ import { IconDefinition } from '../types';
5
+
6
+ const SwitchToWidget: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{},"children":[{"type":"element","tagName":"path","properties":{"d":"M14.166 5.639a.75.75 0 0 1 .75.75v3.333a.75.75 0 0 1-.75.75H5.833a.75.75 0 0 1-.75-.75V6.389a.75.75 0 0 1 .75-.75h8.333Z"},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M15.277 2.306a2.973 2.973 0 0 1 2.973 2.972v9.445a2.972 2.972 0 0 1-2.973 2.971H4.723a2.972 2.972 0 0 1-2.97-2.82l-.003-.152V5.278a2.973 2.973 0 0 1 2.973-2.972h10.554Zm-10.554 1.5c-.813 0-1.473.66-1.473 1.472v9.445l.008.15a1.472 1.472 0 0 0 1.465 1.321h10.554c.813 0 1.473-.658 1.473-1.471V5.277c0-.813-.66-1.472-1.473-1.472H4.723Z"},"children":[]}],"metadata":""}]},"name":"switch-to-widget"};
7
+
8
+ export default SwitchToWidget;