@fibery/ui-kit 1.12.2 → 1.14.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/package.json +5 -7
- package/src/designSystem.ts +2 -0
- package/src/emoji-picker/app-icon-picker.tsx +54 -0
- package/src/emoji-picker/emoji-index.ts +8 -0
- package/src/emoji-picker/emoji-picker.tsx +75 -0
- package/src/emoji-picker/emoji.tsx +11 -0
- package/src/{emoji-mart → emoji-picker}/icon-emoji-picker.tsx +13 -11
- package/src/emoji-picker/index.tsx +5 -0
- package/src/emoji-picker/lazy-emoji-data-store.tsx +29 -0
- package/src/emoji-picker/lazy-icon-data-store.tsx +55 -0
- package/src/emoji-picker/primitives/category.tsx +107 -0
- package/src/emoji-picker/primitives/content.tsx +48 -0
- package/src/emoji-picker/primitives/emoji.tsx +130 -0
- package/src/emoji-picker/primitives/footer.tsx +12 -0
- package/src/emoji-picker/primitives/grid.tsx +67 -0
- package/src/emoji-picker/primitives/header.tsx +11 -0
- package/src/emoji-picker/primitives/layout.ts +5 -0
- package/src/emoji-picker/primitives/root.tsx +79 -0
- package/src/emoji-picker/primitives/search-provider.tsx +22 -0
- package/src/emoji-picker/primitives/search.tsx +133 -0
- package/src/emoji-picker/primitives/skin-provider.tsx +27 -0
- package/src/emoji-picker/primitives/skin-tone.tsx +99 -0
- package/src/emoji-picker/stores/emoji-data-store.tsx +50 -0
- package/src/emoji-picker/utils/emoji-set.ts +5 -0
- package/src/{emoji-mart → emoji-picker/utils}/emoji-support.ts +6 -10
- package/src/emoji-picker/utils/frequently.ts +82 -0
- package/src/emoji-picker/utils/load-emoji-data.ts +4 -0
- package/src/emoji-picker/utils/store.ts +40 -0
- package/src/icons/ast/AddAfter.ts +8 -0
- package/src/icons/ast/AddBefore.ts +8 -0
- package/src/icons/ast/ArrowBarLeft.ts +8 -0
- package/src/icons/ast/ArrowBarRight.ts +8 -0
- package/src/icons/ast/Columns2.ts +8 -0
- package/src/icons/ast/Columns4.ts +8 -0
- package/src/icons/ast/MessagePlusSquare.ts +8 -0
- package/src/icons/ast/UsbFlashDrive.ts +8 -0
- package/src/icons/ast/index.tsx +8 -0
- package/src/icons/react/AddAfter.tsx +12 -0
- package/src/icons/react/AddBefore.tsx +12 -0
- package/src/icons/react/ArrowBarLeft.tsx +12 -0
- package/src/icons/react/ArrowBarRight.tsx +12 -0
- package/src/icons/react/Columns2.tsx +12 -0
- package/src/icons/react/Columns4.tsx +12 -0
- package/src/icons/react/MessagePlusSquare.tsx +12 -0
- package/src/icons/react/UsbFlashDrive.tsx +12 -0
- package/src/icons/react/index.tsx +8 -0
- package/src/emoji-mart/app-icon-picker.tsx +0 -68
- package/src/emoji-mart/data/get-data.tsx +0 -58
- package/src/emoji-mart/emoji/emoji.tsx +0 -26
- package/src/emoji-mart/emoji/index.tsx +0 -24
- package/src/emoji-mart/emoji-index.ts +0 -5
- package/src/emoji-mart/emoji-mart.tsx +0 -216
- package/src/emoji-mart/emoji-picker.tsx +0 -78
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const ArrowBarLeft: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M15.75 3.75a.75.75 0 0 0-1.5 0v12.5a.75.75 0 0 0 1.5 0V3.75ZM6.78 8.03a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.06l-1.22-1.22h5.69a.75.75 0 0 0 0-1.5H5.56l1.22-1.22Z"},"children":[]}],"metadata":""}]},"name":"arrow-bar-left"};
|
|
7
|
+
|
|
8
|
+
export default ArrowBarLeft;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const ArrowBarRight: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M5.5 16.25a.75.75 0 0 1-1.5 0V3.75a.75.75 0 0 1 1.5 0v12.5ZM14.03 13.03a.75.75 0 1 1-1.06-1.06l1.22-1.22H8.5a.75.75 0 0 1 0-1.5h5.69l-1.22-1.22a.75.75 0 0 1 1.06-1.06l2.5 2.5a.75.75 0 0 1 0 1.06l-2.5 2.5Z"},"children":[]}],"metadata":""}]},"name":"arrow-bar-right"};
|
|
7
|
+
|
|
8
|
+
export default ArrowBarRight;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const Columns2: 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":"M4.25 4.5a.75.75 0 0 0-.75.75v9.5c0 .414.336.75.75.75h5v-11h-5Zm6.5 0v11h5a.75.75 0 0 0 .75-.75v-9.5a.75.75 0 0 0-.75-.75h-5ZM2 5.25A2.25 2.25 0 0 1 4.25 3h11.5A2.25 2.25 0 0 1 18 5.25v9.5A2.25 2.25 0 0 1 15.75 17H4.25A2.25 2.25 0 0 1 2 14.75v-9.5Z"},"children":[]}],"metadata":""}]},"name":"columns-2"};
|
|
7
|
+
|
|
8
|
+
export default Columns2;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const Columns4: 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":"M4.25 4.5a.75.75 0 0 0-.75.75v9.5c0 .414.336.75.75.75H5.5v-11H4.25ZM7 4.5v11h2.25v-11H7Zm3.75 0v11H13v-11h-2.25Zm3.75 0v11h1.25a.75.75 0 0 0 .75-.75v-9.5a.75.75 0 0 0-.75-.75H14.5ZM2 5.25A2.25 2.25 0 0 1 4.25 3h11.5A2.25 2.25 0 0 1 18 5.25v9.5A2.25 2.25 0 0 1 15.75 17H4.25A2.25 2.25 0 0 1 2 14.75v-9.5Z"},"children":[]}],"metadata":""}]},"name":"columns-4"};
|
|
7
|
+
|
|
8
|
+
export default Columns4;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const MessagePlusSquare: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M10.75 6.25a.75.75 0 0 0-1.5 0V8H7.5a.75.75 0 0 0 0 1.5h1.75v1.75a.75.75 0 0 0 1.5 0V9.5h1.75a.75.75 0 0 0 0-1.5h-1.75V6.25Z"},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M13.531 1.75H6.47c-.674 0-1.224 0-1.672.037-.463.037-.882.118-1.272.317a3.25 3.25 0 0 0-1.42 1.42c-.2.391-.28.81-.318 1.273-.037.448-.037.998-.037 1.672v5.306c0 .67 0 1.15.11 1.566A3.25 3.25 0 0 0 4.16 15.64c.27.072.566.098.924.107v1.228c0 .198 0 .394.015.554.014.153.05.428.24.666.222.278.558.44.913.44.305-.001.542-.145.67-.23a6.55 6.55 0 0 0 .442-.334l2.01-1.608c.43-.343.565-.447.708-.52.14-.072.29-.125.444-.156.157-.032.328-.036.878-.036h2.128c.674 0 1.225 0 1.672-.037.463-.037.882-.118 1.273-.317a3.25 3.25 0 0 0 1.42-1.42c.199-.391.28-.81.317-1.273.037-.447.037-.998.037-1.672V6.47c0-.674 0-1.224-.037-1.672-.037-.463-.118-.882-.317-1.272a3.25 3.25 0 0 0-1.42-1.42c-.391-.2-.81-.28-1.273-.318-.447-.037-.998-.037-1.671-.037ZM4.207 3.44c.144-.073.343-.128.713-.158.38-.031.869-.032 1.581-.032h7c.713 0 1.202 0 1.581.032.37.03.57.085.713.159.33.168.598.435.765.765.074.144.13.343.16.713.03.38.031.869.031 1.581V11c0 .712 0 1.202-.032 1.58-.03.371-.085.57-.159.714a1.75 1.75 0 0 1-.765.765c-.144.074-.343.13-.713.16-.38.03-.868.031-1.58.031h-2.165c-.455 0-.788 0-1.112.066a3.248 3.248 0 0 0-.826.29c-.295.15-.554.358-.91.643l-1.905 1.524V15a.75.75 0 0 0-.75-.75c-.823 0-1.087-.006-1.286-.06a1.75 1.75 0 0 1-1.237-1.237c-.053-.199-.06-.463-.06-1.286V6.5c0-.712 0-1.202.032-1.58.03-.371.085-.57.159-.714a1.75 1.75 0 0 1 .765-.765Z"},"children":[]}],"metadata":""}]},"name":"message-plus-square"};
|
|
7
|
+
|
|
8
|
+
export default MessagePlusSquare;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
// This icon file is generated automatically.
|
|
3
|
+
|
|
4
|
+
import { IconDefinition } from '../types';
|
|
5
|
+
|
|
6
|
+
const UsbFlashDrive: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M9.083 4.167a.75.75 0 0 0-1.5 0V5a.75.75 0 1 0 1.5 0v-.833ZM12.417 4.167a.75.75 0 0 0-1.5 0V5a.75.75 0 0 0 1.5 0v-.833Z"},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M6.309.917c-.212 0-.414 0-.584.013-.185.015-.398.05-.61.16-.298.15-.54.393-.692.691a1.602 1.602 0 0 0-.16.61c-.013.17-.013.372-.013.584v3.902a1.979 1.979 0 0 0-.347.136A2.417 2.417 0 0 0 2.847 8.07c-.154.301-.212.617-.238.94a14.88 14.88 0 0 0-.026 1.127v4.228c0 .673 0 1.224.037 1.671.038.464.119.882.318 1.273a3.25 3.25 0 0 0 1.42 1.42c.39.2.81.28 1.272.318.448.036.999.036 1.672.036h5.396c.674 0 1.224 0 1.672-.036.463-.038.882-.119 1.272-.318a3.25 3.25 0 0 0 1.42-1.42c.2-.39.28-.81.318-1.273.037-.447.037-.998.037-1.671v-4.228c0-.441 0-.817-.025-1.126-.027-.324-.085-.64-.239-.941a2.417 2.417 0 0 0-1.056-1.057 1.978 1.978 0 0 0-.347-.136V2.975c0-.212 0-.414-.014-.584a1.603 1.603 0 0 0-.159-.61 1.583 1.583 0 0 0-.691-.692 1.602 1.602 0 0 0-.61-.159 7.607 7.607 0 0 0-.585-.013H6.31ZM14.25 6.75V3c0-.246 0-.385-.009-.486a.692.692 0 0 0-.007-.064.083.083 0 0 0-.018-.017.707.707 0 0 0-.063-.008 6.87 6.87 0 0 0-.486-.008H6.333c-.245 0-.385 0-.486.008a.702.702 0 0 0-.063.008.083.083 0 0 0-.018.017.707.707 0 0 0-.007.064A6.87 6.87 0 0 0 5.75 3v3.75H14.25Zm-9.666 1.6c.055-.028.151-.06.383-.08.24-.02.554-.02 1.033-.02h8c.48 0 .793 0 1.034.02.231.02.327.052.382.08a.917.917 0 0 1 .4.4c.029.055.062.152.08.383.02.24.02.555.02 1.034v4.166c0 .713 0 1.202-.03 1.581-.031.37-.086.57-.16.714a1.75 1.75 0 0 1-.765.765c-.144.073-.343.128-.713.159-.38.03-.869.031-1.581.031H7.334c-.713 0-1.202 0-1.581-.031-.37-.03-.57-.086-.714-.16a1.75 1.75 0 0 1-.765-.764c-.073-.144-.129-.343-.159-.714-.03-.379-.032-.868-.032-1.58v-4.167c0-.48.001-.794.02-1.034.02-.231.052-.328.08-.382a.917.917 0 0 1 .401-.401Z"},"children":[]}],"metadata":""}]},"name":"usb-flash-drive"};
|
|
7
|
+
|
|
8
|
+
export default UsbFlashDrive;
|
package/src/icons/ast/index.tsx
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// This icon file is generated automatically.
|
|
2
2
|
export { default as ActivityLog } from './ActivityLog';
|
|
3
3
|
export { default as Activity } from './Activity';
|
|
4
|
+
export { default as AddAfter } from './AddAfter';
|
|
5
|
+
export { default as AddBefore } from './AddBefore';
|
|
4
6
|
export { default as AddCompact } from './AddCompact';
|
|
5
7
|
export { default as AddGroup } from './AddGroup';
|
|
6
8
|
export { default as AddReactions } from './AddReactions';
|
|
@@ -19,6 +21,8 @@ export { default as AppTemplates } from './AppTemplates';
|
|
|
19
21
|
export { default as AppWebhooks } from './AppWebhooks';
|
|
20
22
|
export { default as AppWiki } from './AppWiki';
|
|
21
23
|
export { default as App } from './App';
|
|
24
|
+
export { default as ArrowBarLeft } from './ArrowBarLeft';
|
|
25
|
+
export { default as ArrowBarRight } from './ArrowBarRight';
|
|
22
26
|
export { default as ArrowBottom } from './ArrowBottom';
|
|
23
27
|
export { default as ArrowCollapseVertical } from './ArrowCollapseVertical';
|
|
24
28
|
export { default as ArrowCollapse } from './ArrowCollapse';
|
|
@@ -35,6 +39,8 @@ export { default as Checked } from './Checked';
|
|
|
35
39
|
export { default as ClearValue } from './ClearValue';
|
|
36
40
|
export { default as Close } from './Close';
|
|
37
41
|
export { default as ColorCoding } from './ColorCoding';
|
|
42
|
+
export { default as Columns2 } from './Columns2';
|
|
43
|
+
export { default as Columns4 } from './Columns4';
|
|
38
44
|
export { default as Columns } from './Columns';
|
|
39
45
|
export { default as Copy } from './Copy';
|
|
40
46
|
export { default as CopyUrl } from './CopyUrl';
|
|
@@ -80,6 +86,7 @@ export { default as Levels } from './Levels';
|
|
|
80
86
|
export { default as Lock } from './Lock';
|
|
81
87
|
export { default as Markdown } from './Markdown';
|
|
82
88
|
export { default as MenuCollapser } from './MenuCollapser';
|
|
89
|
+
export { default as MessagePlusSquare } from './MessagePlusSquare';
|
|
83
90
|
export { default as Milestones } from './Milestones';
|
|
84
91
|
export { default as Minus } from './Minus';
|
|
85
92
|
export { default as MoreCompact } from './MoreCompact';
|
|
@@ -186,6 +193,7 @@ export { default as TypeSingleSelect } from './TypeSingleSelect';
|
|
|
186
193
|
export { default as TypeText } from './TypeText';
|
|
187
194
|
export { default as TypeUrl } from './TypeUrl';
|
|
188
195
|
export { default as Upgrade } from './Upgrade';
|
|
196
|
+
export { default as UsbFlashDrive } from './UsbFlashDrive';
|
|
189
197
|
export { default as ViewBoard } from './ViewBoard';
|
|
190
198
|
export { default as ViewCalendar } from './ViewCalendar';
|
|
191
199
|
export { default as ViewCanvas } from './ViewCanvas';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import AddAfterSvg from '../ast/AddAfter';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const AddAfter = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={AddAfterSvg} />;
|
|
10
|
+
|
|
11
|
+
AddAfter.displayName = 'AddAfter';
|
|
12
|
+
export default AddAfter;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import AddBeforeSvg from '../ast/AddBefore';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const AddBefore = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={AddBeforeSvg} />;
|
|
10
|
+
|
|
11
|
+
AddBefore.displayName = 'AddBefore';
|
|
12
|
+
export default AddBefore;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import ArrowBarLeftSvg from '../ast/ArrowBarLeft';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const ArrowBarLeft = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={ArrowBarLeftSvg} />;
|
|
10
|
+
|
|
11
|
+
ArrowBarLeft.displayName = 'ArrowBarLeft';
|
|
12
|
+
export default ArrowBarLeft;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import ArrowBarRightSvg from '../ast/ArrowBarRight';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const ArrowBarRight = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={ArrowBarRightSvg} />;
|
|
10
|
+
|
|
11
|
+
ArrowBarRight.displayName = 'ArrowBarRight';
|
|
12
|
+
export default ArrowBarRight;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import Columns2Svg from '../ast/Columns2';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const Columns2 = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={Columns2Svg} />;
|
|
10
|
+
|
|
11
|
+
Columns2.displayName = 'Columns2';
|
|
12
|
+
export default Columns2;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import Columns4Svg from '../ast/Columns4';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const Columns4 = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={Columns4Svg} />;
|
|
10
|
+
|
|
11
|
+
Columns4.displayName = 'Columns4';
|
|
12
|
+
export default Columns4;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import MessagePlusSquareSvg from '../ast/MessagePlusSquare';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const MessagePlusSquare = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={MessagePlusSquareSvg} />;
|
|
10
|
+
|
|
11
|
+
MessagePlusSquare.displayName = 'MessagePlusSquare';
|
|
12
|
+
export default MessagePlusSquare;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
|
|
3
|
+
import UsbFlashDriveSvg from '../ast/UsbFlashDrive';
|
|
4
|
+
import { Icon } from '../Icon';
|
|
5
|
+
import { IconBaseProps } from '../types';
|
|
6
|
+
|
|
7
|
+
const UsbFlashDrive = (
|
|
8
|
+
props: IconBaseProps,
|
|
9
|
+
): JSX.Element => <Icon {...props} icon={UsbFlashDriveSvg} />;
|
|
10
|
+
|
|
11
|
+
UsbFlashDrive.displayName = 'UsbFlashDrive';
|
|
12
|
+
export default UsbFlashDrive;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// This icon file is generated automatically.
|
|
2
2
|
export { default as ActivityLog } from './ActivityLog';
|
|
3
3
|
export { default as Activity } from './Activity';
|
|
4
|
+
export { default as AddAfter } from './AddAfter';
|
|
5
|
+
export { default as AddBefore } from './AddBefore';
|
|
4
6
|
export { default as AddCompact } from './AddCompact';
|
|
5
7
|
export { default as AddGroup } from './AddGroup';
|
|
6
8
|
export { default as AddReactions } from './AddReactions';
|
|
@@ -19,6 +21,8 @@ export { default as AppTemplates } from './AppTemplates';
|
|
|
19
21
|
export { default as AppWebhooks } from './AppWebhooks';
|
|
20
22
|
export { default as AppWiki } from './AppWiki';
|
|
21
23
|
export { default as App } from './App';
|
|
24
|
+
export { default as ArrowBarLeft } from './ArrowBarLeft';
|
|
25
|
+
export { default as ArrowBarRight } from './ArrowBarRight';
|
|
22
26
|
export { default as ArrowBottom } from './ArrowBottom';
|
|
23
27
|
export { default as ArrowCollapseVertical } from './ArrowCollapseVertical';
|
|
24
28
|
export { default as ArrowCollapse } from './ArrowCollapse';
|
|
@@ -35,6 +39,8 @@ export { default as Checked } from './Checked';
|
|
|
35
39
|
export { default as ClearValue } from './ClearValue';
|
|
36
40
|
export { default as Close } from './Close';
|
|
37
41
|
export { default as ColorCoding } from './ColorCoding';
|
|
42
|
+
export { default as Columns2 } from './Columns2';
|
|
43
|
+
export { default as Columns4 } from './Columns4';
|
|
38
44
|
export { default as Columns } from './Columns';
|
|
39
45
|
export { default as Copy } from './Copy';
|
|
40
46
|
export { default as CopyUrl } from './CopyUrl';
|
|
@@ -80,6 +86,7 @@ export { default as Levels } from './Levels';
|
|
|
80
86
|
export { default as Lock } from './Lock';
|
|
81
87
|
export { default as Markdown } from './Markdown';
|
|
82
88
|
export { default as MenuCollapser } from './MenuCollapser';
|
|
89
|
+
export { default as MessagePlusSquare } from './MessagePlusSquare';
|
|
83
90
|
export { default as Milestones } from './Milestones';
|
|
84
91
|
export { default as Minus } from './Minus';
|
|
85
92
|
export { default as MoreCompact } from './MoreCompact';
|
|
@@ -186,6 +193,7 @@ export { default as TypeSingleSelect } from './TypeSingleSelect';
|
|
|
186
193
|
export { default as TypeText } from './TypeText';
|
|
187
194
|
export { default as TypeUrl } from './TypeUrl';
|
|
188
195
|
export { default as Upgrade } from './Upgrade';
|
|
196
|
+
export { default as UsbFlashDrive } from './UsbFlashDrive';
|
|
189
197
|
export { default as ViewBoard } from './ViewBoard';
|
|
190
198
|
export { default as ViewCalendar } from './ViewCalendar';
|
|
191
199
|
export { default as ViewCanvas } from './ViewCanvas';
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import {forwardRef, useMemo} from "react";
|
|
2
|
-
import {getThemedUrl} from "../AppIconWithFallback";
|
|
3
|
-
import {useThemeMode} from "../ThemeProvider";
|
|
4
|
-
import appIcons from "../appIcons.json";
|
|
5
|
-
import {alignTheme} from "../theme-settings";
|
|
6
|
-
import {$TSFixMe} from "../tsfixme";
|
|
7
|
-
import type {EmojiDataProps} from "./data/get-data";
|
|
8
|
-
import {EmojiMartWrapper, NimblePicker, NimblePickerProps} from "./emoji-mart";
|
|
9
|
-
import {ColorPicker} from "../ColorPicker";
|
|
10
|
-
import {cardTypeColors} from "../designSystem";
|
|
11
|
-
|
|
12
|
-
const EMPTY_DATA = {
|
|
13
|
-
aliases: {},
|
|
14
|
-
emojis: {},
|
|
15
|
-
categories: [],
|
|
16
|
-
compressed: false,
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
type NimblePickerWithData = Omit<NimblePickerProps, keyof EmojiDataProps>;
|
|
20
|
-
|
|
21
|
-
export type AppIconPickerProps = {
|
|
22
|
-
borderless?: boolean;
|
|
23
|
-
color?: string;
|
|
24
|
-
getHoverColor?: (color: string) => string | undefined;
|
|
25
|
-
colors?: string[];
|
|
26
|
-
onColorSelect?: (c: $TSFixMe) => void;
|
|
27
|
-
} & NimblePickerWithData;
|
|
28
|
-
|
|
29
|
-
const i18n = {search: "Search icon...", notfound: "No Icons Found"};
|
|
30
|
-
|
|
31
|
-
export const AppIconPicker = forwardRef<HTMLDivElement, AppIconPickerProps>(function AppIconPicker(
|
|
32
|
-
{borderless = true, color, getHoverColor, colors = cardTypeColors, onColorSelect, ...pickerProps},
|
|
33
|
-
ref
|
|
34
|
-
) {
|
|
35
|
-
const themeMode = useThemeMode();
|
|
36
|
-
|
|
37
|
-
const alignedTheme = alignTheme(themeMode);
|
|
38
|
-
|
|
39
|
-
const customIcons = useMemo(
|
|
40
|
-
() =>
|
|
41
|
-
appIcons.map((icon) => {
|
|
42
|
-
return {
|
|
43
|
-
...icon,
|
|
44
|
-
imageUrl: getThemedUrl(icon.file, alignedTheme),
|
|
45
|
-
};
|
|
46
|
-
}),
|
|
47
|
-
[alignedTheme]
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<EmojiMartWrapper
|
|
52
|
-
ref={ref}
|
|
53
|
-
emojiHoverColor={color ? getHoverColor?.(color) : undefined}
|
|
54
|
-
borderless={borderless}
|
|
55
|
-
hideCategories
|
|
56
|
-
>
|
|
57
|
-
<NimblePicker custom={customIcons} i18n={i18n} {...pickerProps} data={EMPTY_DATA} showSkinTones={false} />
|
|
58
|
-
{onColorSelect ? (
|
|
59
|
-
<ColorPicker
|
|
60
|
-
colors={colors}
|
|
61
|
-
getSwatchHoverColor={getHoverColor}
|
|
62
|
-
color={color}
|
|
63
|
-
onChangeComplete={onColorSelect}
|
|
64
|
-
/>
|
|
65
|
-
) : null}
|
|
66
|
-
</EmojiMartWrapper>
|
|
67
|
-
);
|
|
68
|
-
});
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {detectEmojiSupportLevel} from "../emoji-support";
|
|
2
|
-
import type {Data} from "emoji-mart";
|
|
3
|
-
|
|
4
|
-
export type EmojiDataProps = {
|
|
5
|
-
native: boolean;
|
|
6
|
-
data: Data;
|
|
7
|
-
backgroundImageFn: (set: string) => string;
|
|
8
|
-
set: "apple" | "twitter";
|
|
9
|
-
sheetColumns: number;
|
|
10
|
-
sheetRows: number;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
let promise: Promise<EmojiDataProps>;
|
|
14
|
-
|
|
15
|
-
const backgroundImageFn = (set: string) =>
|
|
16
|
-
`https://fibery-ui-public-assets.s3.eu-central-1.amazonaws.com/images/emoji-datasource-${set}-15_0_1-64.png`;
|
|
17
|
-
|
|
18
|
-
export const loadEmojiData = async () => {
|
|
19
|
-
const data = await import("@fibery/emoji-data/data/all.json");
|
|
20
|
-
return data.default;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const getAppleDataProps = async (): Promise<EmojiDataProps> => {
|
|
24
|
-
const [level, data] = await Promise.all([detectEmojiSupportLevel(), loadEmojiData()]);
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
native: level >= 14,
|
|
28
|
-
// type declarations between @fibery/emoji-data and emoji-mart conflict a bit but they are compatible
|
|
29
|
-
data: data as unknown as Data,
|
|
30
|
-
backgroundImageFn,
|
|
31
|
-
set: "apple",
|
|
32
|
-
sheetColumns: 61,
|
|
33
|
-
sheetRows: 61,
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
const getTwitterDataProps = async (): Promise<EmojiDataProps> => {
|
|
37
|
-
const data = await loadEmojiData();
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
native: false,
|
|
41
|
-
// type declarations between @fibery/emoji-data and emoji-mart conflict a bit but they are compatible
|
|
42
|
-
data: data as unknown as Data,
|
|
43
|
-
backgroundImageFn,
|
|
44
|
-
set: "twitter",
|
|
45
|
-
sheetColumns: 61,
|
|
46
|
-
sheetRows: 61,
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const isApple = () => /Mac|iPhone|iPad/.test(navigator.userAgent);
|
|
51
|
-
|
|
52
|
-
export const getEmojiDataProps = async () => {
|
|
53
|
-
if (!promise) {
|
|
54
|
-
promise = isApple() ? getAppleDataProps() : getTwitterDataProps();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return promise;
|
|
58
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {css} from "@linaria/core";
|
|
2
|
-
import {NimbleEmoji, NimbleEmojiProps} from "emoji-mart";
|
|
3
|
-
import {themeVars} from "../../designSystem";
|
|
4
|
-
|
|
5
|
-
const emojiWrapperCss = css`
|
|
6
|
-
display: inline-flex;
|
|
7
|
-
align-items: center;
|
|
8
|
-
|
|
9
|
-
& span.emoji-mart-emoji {
|
|
10
|
-
color: ${themeVars.textColor};
|
|
11
|
-
line-height: 1;
|
|
12
|
-
vertical-align: middle;
|
|
13
|
-
& span {
|
|
14
|
-
vertical-align: middle;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
`;
|
|
18
|
-
|
|
19
|
-
export type EmojiMartEmojiProps = NimbleEmojiProps;
|
|
20
|
-
export const EmojiMartEmoji: React.FC<NimbleEmojiProps> = (props) => {
|
|
21
|
-
return (
|
|
22
|
-
<span className={emojiWrapperCss}>
|
|
23
|
-
<NimbleEmoji {...props} />
|
|
24
|
-
</span>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {lazy, Suspense} from "react";
|
|
2
|
-
import {EmojiDataProps, getEmojiDataProps} from "../data/get-data";
|
|
3
|
-
import {EmojiMartEmoji, type EmojiMartEmojiProps} from "./emoji";
|
|
4
|
-
|
|
5
|
-
type EmojiProps = Omit<EmojiMartEmojiProps, keyof EmojiDataProps>;
|
|
6
|
-
|
|
7
|
-
const LazyEmojiComponent = lazy(async () => {
|
|
8
|
-
const emojiDataProps = await getEmojiDataProps();
|
|
9
|
-
|
|
10
|
-
function Emoji(props: EmojiProps) {
|
|
11
|
-
return <EmojiMartEmoji {...props} {...emojiDataProps} />;
|
|
12
|
-
}
|
|
13
|
-
return {
|
|
14
|
-
default: Emoji,
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export const Emoji: React.FC<EmojiProps> = function EmojiOrLoader(props) {
|
|
19
|
-
return (
|
|
20
|
-
<Suspense fallback={<div style={{width: props.size, height: props.size}} />}>
|
|
21
|
-
<LazyEmojiComponent {...props} />
|
|
22
|
-
</Suspense>
|
|
23
|
-
);
|
|
24
|
-
};
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import {CSSProperties, css, cx} from "@linaria/core";
|
|
2
|
-
import "emoji-mart/css/emoji-mart.css";
|
|
3
|
-
import {forwardRef} from "react";
|
|
4
|
-
import {useTheme, useThemeMode} from "../ThemeProvider";
|
|
5
|
-
import {border, fontFamily, space, textStyles, themeVars} from "../designSystem";
|
|
6
|
-
|
|
7
|
-
import {NimblePickerProps, NimblePicker as Picker} from "emoji-mart";
|
|
8
|
-
import {alignTheme} from "../theme-settings";
|
|
9
|
-
|
|
10
|
-
export type {BaseEmoji, EmojiSkin, NimblePickerProps} from "emoji-mart";
|
|
11
|
-
|
|
12
|
-
export const NimblePicker = (props: NimblePickerProps) => {
|
|
13
|
-
const themeMode = useThemeMode();
|
|
14
|
-
const theme = useTheme();
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Picker
|
|
18
|
-
theme={alignTheme(themeMode)}
|
|
19
|
-
title={""}
|
|
20
|
-
showPreview={false}
|
|
21
|
-
skinEmoji="hand"
|
|
22
|
-
color={theme.primary}
|
|
23
|
-
emoji=""
|
|
24
|
-
emojiSize={20}
|
|
25
|
-
emojiTooltip
|
|
26
|
-
{...props}
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const emojiMartCss = css`
|
|
32
|
-
padding: 0 ${space.l}px;
|
|
33
|
-
position: relative;
|
|
34
|
-
|
|
35
|
-
.emoji-mart {
|
|
36
|
-
font-family: ${fontFamily};
|
|
37
|
-
background-color: ${themeVars.actionMenuBg};
|
|
38
|
-
margin-top: ${space.xxs}px;
|
|
39
|
-
display: block;
|
|
40
|
-
width: 288px !important;
|
|
41
|
-
|
|
42
|
-
+ * {
|
|
43
|
-
border-top: 1px solid ${themeVars.separatorColor};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.emoji-mart-bar {
|
|
48
|
-
border-bottom: 1px solid ${themeVars.separatorColor};
|
|
49
|
-
|
|
50
|
-
&:last-child {
|
|
51
|
-
border: 0;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.emoji-mart-search {
|
|
56
|
-
padding-bottom: ${space.s}px;
|
|
57
|
-
padding-left: 0;
|
|
58
|
-
padding-right: 0;
|
|
59
|
-
|
|
60
|
-
& input {
|
|
61
|
-
${textStyles.regular}
|
|
62
|
-
background-color: ${themeVars.inputBgColor};
|
|
63
|
-
color: ${themeVars.textColor};
|
|
64
|
-
box-shadow: ${themeVars.inputBorderColor};
|
|
65
|
-
height: 32px;
|
|
66
|
-
border: 0;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
& .emoji-mart-search-icon {
|
|
70
|
-
top: 5px;
|
|
71
|
-
right: 4px;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.emoji-mart-scroll {
|
|
76
|
-
padding-left: 0;
|
|
77
|
-
padding-right: 0;
|
|
78
|
-
height: 238px;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.emoji-anchor-bar {
|
|
82
|
-
height: ${space.xxs}px;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.emoji-mart-category-label {
|
|
86
|
-
& span {
|
|
87
|
-
${textStyles.heading6}
|
|
88
|
-
background-color: ${themeVars.actionMenuBg};
|
|
89
|
-
color: ${themeVars.textColor};
|
|
90
|
-
color: ${themeVars.accentTextColor};
|
|
91
|
-
padding-top: ${space.l}px;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.emoji-mart-category .emoji-mart-emoji span,
|
|
96
|
-
.emoji-mart-anchor {
|
|
97
|
-
cursor: pointer !important;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.emoji-mart-category .emoji-mart-emoji:hover::before {
|
|
101
|
-
background-color: var(--fibery-emoji-hover-color, ${themeVars.badgeBgColor}) !important;
|
|
102
|
-
border-radius: ${border.radius8}px !important;
|
|
103
|
-
}
|
|
104
|
-
.emoji-mart-dark .emoji-mart-category-label span {
|
|
105
|
-
background-color: ${themeVars.actionMenuBg};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.emoji-mart-skin-swatch {
|
|
109
|
-
cursor: pointer;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.emoji-mart-preview {
|
|
113
|
-
height: 0px;
|
|
114
|
-
position: unset;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.emoji-mart-emoji {
|
|
118
|
-
color: ${themeVars.textColor};
|
|
119
|
-
/* pathetic attemts to make it a bit faster without forking */
|
|
120
|
-
content-visibility: auto;
|
|
121
|
-
contain-intrinsic-size: 20px;
|
|
122
|
-
cursor: pointer;
|
|
123
|
-
}
|
|
124
|
-
.emoji-mart-category-list,
|
|
125
|
-
.emoji-mart-category-list li {
|
|
126
|
-
/* hack to maintain correct size of hidden emojis becuase of content-visibility */
|
|
127
|
-
line-height: 0;
|
|
128
|
-
}
|
|
129
|
-
.emoji-mart-preview-skins {
|
|
130
|
-
top: 16px;
|
|
131
|
-
right: 12px !important;
|
|
132
|
-
z-index: 2;
|
|
133
|
-
background-color: ${themeVars.actionMenuBg};
|
|
134
|
-
|
|
135
|
-
& .emoji-mart-skin-swatches {
|
|
136
|
-
background-color: ${themeVars.actionMenuBg};
|
|
137
|
-
|
|
138
|
-
&.opened {
|
|
139
|
-
& .emoji-mart-skin-swatch {
|
|
140
|
-
width: 32px !important;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
& .emoji-mart-skin-swatch {
|
|
145
|
-
height: 32px !important;
|
|
146
|
-
|
|
147
|
-
&.selected {
|
|
148
|
-
width: 32px !important;
|
|
149
|
-
padding: 0;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
&:hover {
|
|
153
|
-
background-color: ${themeVars.badgeBgColor} !important;
|
|
154
|
-
border-radius: ${border.radius8}px !important;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
& .emoji-mart-skin-text {
|
|
158
|
-
height: auto;
|
|
159
|
-
padding: 0;
|
|
160
|
-
background-color: ${themeVars.actionMenuBg};
|
|
161
|
-
color: ${themeVars.accentTextColor};
|
|
162
|
-
border-radius: 0;
|
|
163
|
-
|
|
164
|
-
&.opened {
|
|
165
|
-
width: 98px;
|
|
166
|
-
padding-left: 8px;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
`;
|
|
172
|
-
|
|
173
|
-
const borderlessEmojiMartCss = css`
|
|
174
|
-
.emoji-mart {
|
|
175
|
-
border-radius: 0;
|
|
176
|
-
border: none;
|
|
177
|
-
}
|
|
178
|
-
`;
|
|
179
|
-
const hideCategoriesEmojiMartCss = css`
|
|
180
|
-
.emoji-mart-bar:first-child {
|
|
181
|
-
display: none;
|
|
182
|
-
}
|
|
183
|
-
`;
|
|
184
|
-
|
|
185
|
-
const emojiMartWithShortSearchCss = css`
|
|
186
|
-
.emoji-mart-search {
|
|
187
|
-
width: 250px;
|
|
188
|
-
}
|
|
189
|
-
`;
|
|
190
|
-
|
|
191
|
-
type EmojiMartWrapperProps = React.PropsWithChildren<{
|
|
192
|
-
borderless?: boolean;
|
|
193
|
-
hideCategories?: boolean;
|
|
194
|
-
shortSearch?: boolean;
|
|
195
|
-
emojiHoverColor?: string;
|
|
196
|
-
}>;
|
|
197
|
-
|
|
198
|
-
export const EmojiMartWrapper = forwardRef<HTMLDivElement, EmojiMartWrapperProps>(function EmojiMartWrapper(
|
|
199
|
-
{borderless, hideCategories, emojiHoverColor, shortSearch, children},
|
|
200
|
-
ref
|
|
201
|
-
) {
|
|
202
|
-
return (
|
|
203
|
-
<div
|
|
204
|
-
style={{"--fibery-emoji-hover-color": emojiHoverColor} as CSSProperties}
|
|
205
|
-
ref={ref}
|
|
206
|
-
className={cx(
|
|
207
|
-
emojiMartCss,
|
|
208
|
-
borderless && borderlessEmojiMartCss,
|
|
209
|
-
hideCategories && hideCategoriesEmojiMartCss,
|
|
210
|
-
shortSearch && emojiMartWithShortSearchCss
|
|
211
|
-
)}
|
|
212
|
-
>
|
|
213
|
-
{children}
|
|
214
|
-
</div>
|
|
215
|
-
);
|
|
216
|
-
});
|