@webiny/app-admin 5.41.4 → 5.42.0-beta.1

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 (183) hide show
  1. package/base/Admin.js +4 -13
  2. package/base/Admin.js.map +1 -1
  3. package/base/providers/TelemetryProvider.d.ts +1 -7
  4. package/base/providers/TelemetryProvider.js +3 -2
  5. package/base/providers/TelemetryProvider.js.map +1 -1
  6. package/base/providers/UiStateProvider.d.ts +1 -7
  7. package/base/providers/UiStateProvider.js +3 -2
  8. package/base/providers/UiStateProvider.js.map +1 -1
  9. package/base/providers/ViewCompositionProvider.js.map +1 -1
  10. package/base/ui/FileManager.js.map +1 -1
  11. package/base/ui/Menu.js +4 -4
  12. package/base/ui/Menu.js.map +1 -1
  13. package/base/ui/Navigation.d.ts +1 -5
  14. package/base/ui/Navigation.js +2 -2
  15. package/base/ui/Navigation.js.map +1 -1
  16. package/base/ui/Search.d.ts +1 -7
  17. package/base/ui/Search.js +2 -2
  18. package/base/ui/Search.js.map +1 -1
  19. package/base/ui/UserMenu.d.ts +1 -7
  20. package/base/ui/UserMenu.js +2 -2
  21. package/base/ui/UserMenu.js.map +1 -1
  22. package/components/AppInstaller/AppInstaller.js +1 -1
  23. package/components/AppInstaller/AppInstaller.js.map +1 -1
  24. package/components/AppInstaller/Sidebar.js +1 -1
  25. package/components/AppInstaller/Sidebar.js.map +1 -1
  26. package/components/BulkActions/Worker.js.map +1 -1
  27. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
  28. package/components/Dialogs/DialogsContext.d.ts +4 -13
  29. package/components/Dialogs/DialogsContext.js +83 -61
  30. package/components/Dialogs/DialogsContext.js.map +1 -1
  31. package/components/IconPicker/IconPicker.d.ts +13 -0
  32. package/components/IconPicker/IconPicker.js +46 -0
  33. package/components/IconPicker/IconPicker.js.map +1 -0
  34. package/components/IconPicker/IconPicker.styles.d.ts +63 -0
  35. package/components/IconPicker/IconPicker.styles.js +187 -0
  36. package/components/IconPicker/IconPicker.styles.js.map +1 -0
  37. package/components/IconPicker/IconPickerComponent.d.ts +16 -0
  38. package/components/IconPicker/IconPickerComponent.js +101 -0
  39. package/components/IconPicker/IconPickerComponent.js.map +1 -0
  40. package/components/IconPicker/IconPickerPresenter.d.ts +52 -0
  41. package/components/IconPicker/IconPickerPresenter.js +118 -0
  42. package/components/IconPicker/IconPickerPresenter.js.map +1 -0
  43. package/components/IconPicker/IconPickerPresenter.test.d.ts +1 -0
  44. package/components/IconPicker/IconPickerPresenter.test.js +111 -0
  45. package/components/IconPicker/IconPickerPresenter.test.js.map +1 -0
  46. package/components/IconPicker/IconPickerPresenterProvider.d.ts +9 -0
  47. package/components/IconPicker/IconPickerPresenterProvider.js +26 -0
  48. package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -0
  49. package/components/IconPicker/IconPickerTab.d.ts +32 -0
  50. package/components/IconPicker/IconPickerTab.js +169 -0
  51. package/components/IconPicker/IconPickerTab.js.map +1 -0
  52. package/components/IconPicker/IconRenderer.d.ts +34 -0
  53. package/components/IconPicker/IconRenderer.js +35 -0
  54. package/components/IconPicker/IconRenderer.js.map +1 -0
  55. package/components/IconPicker/IconRepository.d.ts +19 -0
  56. package/components/IconPicker/IconRepository.js +79 -0
  57. package/components/IconPicker/IconRepository.js.map +1 -0
  58. package/components/IconPicker/IconRepository.test.d.ts +1 -0
  59. package/components/IconPicker/IconRepository.test.js +68 -0
  60. package/components/IconPicker/IconRepository.test.js.map +1 -0
  61. package/components/IconPicker/IconRepositoryFactory.d.ts +9 -0
  62. package/components/IconPicker/IconRepositoryFactory.js +40 -0
  63. package/components/IconPicker/IconRepositoryFactory.js.map +1 -0
  64. package/components/IconPicker/Loading.d.ts +14 -0
  65. package/components/IconPicker/Loading.js +76 -0
  66. package/components/IconPicker/Loading.js.map +1 -0
  67. package/components/IconPicker/config/Emojis.d.ts +2 -0
  68. package/components/IconPicker/config/Emojis.js +31 -0
  69. package/components/IconPicker/config/Emojis.js.map +1 -0
  70. package/components/IconPicker/config/FontAwesomeIcons.d.ts +2 -0
  71. package/components/IconPicker/config/FontAwesomeIcons.js +74 -0
  72. package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -0
  73. package/components/IconPicker/config/IconPackProvider.d.ts +7 -0
  74. package/components/IconPicker/config/IconPackProvider.js +29 -0
  75. package/components/IconPicker/config/IconPackProvider.js.map +1 -0
  76. package/components/IconPicker/config/IconType.d.ts +32 -0
  77. package/components/IconPicker/config/IconType.js +92 -0
  78. package/components/IconPicker/config/IconType.js.map +1 -0
  79. package/components/IconPicker/config/index.d.ts +31 -0
  80. package/components/IconPicker/config/index.js +63 -0
  81. package/components/IconPicker/config/index.js.map +1 -0
  82. package/components/IconPicker/defaultIcon.d.ts +6 -0
  83. package/components/IconPicker/defaultIcon.js +14 -0
  84. package/components/IconPicker/defaultIcon.js.map +1 -0
  85. package/components/IconPicker/index.d.ts +7 -0
  86. package/components/IconPicker/index.js +49 -0
  87. package/components/IconPicker/index.js.map +1 -0
  88. package/components/IconPicker/plugins/customPlugin.d.ts +2 -0
  89. package/components/IconPicker/plugins/customPlugin.js +157 -0
  90. package/components/IconPicker/plugins/customPlugin.js.map +1 -0
  91. package/components/IconPicker/plugins/emojisPlugin.d.ts +2 -0
  92. package/components/IconPicker/plugins/emojisPlugin.js +164 -0
  93. package/components/IconPicker/plugins/emojisPlugin.js.map +1 -0
  94. package/components/IconPicker/plugins/graphql.d.ts +20 -0
  95. package/components/IconPicker/plugins/graphql.js +18 -0
  96. package/components/IconPicker/plugins/graphql.js.map +1 -0
  97. package/components/IconPicker/plugins/iconsPlugin.d.ts +2 -0
  98. package/components/IconPicker/plugins/iconsPlugin.js +146 -0
  99. package/components/IconPicker/plugins/iconsPlugin.js.map +1 -0
  100. package/components/IconPicker/types.d.ts +22 -0
  101. package/components/IconPicker/types.js +15 -0
  102. package/components/IconPicker/types.js.map +1 -0
  103. package/components/MultiImageUpload.js.map +1 -1
  104. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  105. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  107. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  108. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  109. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  110. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  111. package/components/SimpleUI/InputField.js.map +1 -1
  112. package/components/SingleImageUpload.js.map +1 -1
  113. package/hooks/useConfirmationDialog.js.map +1 -1
  114. package/hooks/useDialog.js.map +1 -1
  115. package/hooks/useIsMounted.js.map +1 -1
  116. package/hooks/useKeyHandler.js.map +1 -1
  117. package/hooks/useSnackbar.js.map +1 -1
  118. package/index.d.ts +1 -0
  119. package/index.js +12 -0
  120. package/index.js.map +1 -1
  121. package/package.json +35 -34
  122. package/plugins/MenuPlugin.js.map +1 -1
  123. package/plugins/PermissionRendererPlugin.js.map +1 -1
  124. package/plugins/globalSearch/SearchBar.js.map +1 -1
  125. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  126. package/plugins/globalSearch/index.js.map +1 -1
  127. package/types.d.ts +1 -0
  128. package/types.js +7 -0
  129. package/types.js.map +1 -1
  130. package/ui/elements/AccordionElement.js +3 -4
  131. package/ui/elements/AccordionElement.js.map +1 -1
  132. package/ui/elements/ButtonElement.js.map +1 -1
  133. package/ui/elements/ButtonGroupElement.js +2 -3
  134. package/ui/elements/ButtonGroupElement.js.map +1 -1
  135. package/ui/elements/LabelElement.js.map +1 -1
  136. package/ui/elements/NavigationMenuElement.js +2 -3
  137. package/ui/elements/NavigationMenuElement.js.map +1 -1
  138. package/ui/elements/PlaceholderElement.js.map +1 -1
  139. package/ui/elements/SmallButtonElement.js.map +1 -1
  140. package/ui/elements/TypographyElement.js +2 -3
  141. package/ui/elements/TypographyElement.js.map +1 -1
  142. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +2 -3
  143. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  144. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  145. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  146. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  147. package/ui/elements/form/FileManagerElement.js.map +1 -1
  148. package/ui/elements/form/FormElement.js +3 -4
  149. package/ui/elements/form/FormElement.js.map +1 -1
  150. package/ui/elements/form/FormFieldElement.js +3 -3
  151. package/ui/elements/form/FormFieldElement.js.map +1 -1
  152. package/ui/elements/form/HiddenElement.js.map +1 -1
  153. package/ui/elements/form/InputElement.js.map +1 -1
  154. package/ui/elements/form/PasswordElement.js.map +1 -1
  155. package/ui/elements/form/SelectElement.js.map +1 -1
  156. package/ui/elements/form/TextareaElement.js.map +1 -1
  157. package/ui/views/AdminView/ContentElement.js.map +1 -1
  158. package/ui/views/AdminView/HeaderElement.js +1 -1
  159. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  160. package/ui/views/AdminView/HeaderSectionCenterElement.js +2 -3
  161. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  162. package/ui/views/AdminView/HeaderSectionLeftElement.js +2 -3
  163. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  164. package/ui/views/AdminView/HeaderSectionRightElement.js +2 -3
  165. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  166. package/ui/views/FormView/FormContainerElement.js +2 -3
  167. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  168. package/ui/views/FormView/FormFooterElement.js +2 -3
  169. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  170. package/ui/views/FormView/FormHeaderElement.js +2 -3
  171. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  172. package/ui/views/FormView.js +2 -3
  173. package/ui/views/FormView.js.map +1 -1
  174. package/ui/views/OverlayView/ContentElement.js +2 -3
  175. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  176. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  177. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  178. package/ui/views/OverlayView.js +2 -3
  179. package/ui/views/OverlayView.js.map +1 -1
  180. package/ui/views/SplitView/SplitViewPanelElement.js +2 -3
  181. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  182. package/ui/views/SplitView.js +2 -3
  183. package/ui/views/SplitView.js.map +1 -1
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tab = exports.IconTypeProvider = exports.IconType = exports.Icon = void 0;
8
+ exports.useIconType = useIconType;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactProperties = require("@webiny/react-properties");
11
+ var _IconRenderer = require("../IconRenderer");
12
+ var _IconPickerTab = require("../IconPickerTab");
13
+ var IconTypeContext = /*#__PURE__*/_react.default.createContext(undefined);
14
+ var IconTypeProvider = exports.IconTypeProvider = function IconTypeProvider(_ref) {
15
+ var type = _ref.type,
16
+ children = _ref.children;
17
+ return /*#__PURE__*/_react.default.createElement(IconTypeContext.Provider, {
18
+ value: {
19
+ type: type
20
+ }
21
+ }, children);
22
+ };
23
+ function useIconType() {
24
+ var context = _react.default.useContext(IconTypeContext);
25
+ if (!context) {
26
+ throw Error("Missing <IconTypeProvider> in the component tree!");
27
+ }
28
+ return context;
29
+ }
30
+ var IconType = exports.IconType = function IconType(_ref2) {
31
+ var name = _ref2.name,
32
+ _ref2$before = _ref2.before,
33
+ before = _ref2$before === void 0 ? undefined : _ref2$before,
34
+ _ref2$after = _ref2.after,
35
+ after = _ref2$after === void 0 ? undefined : _ref2$after,
36
+ _ref2$remove = _ref2.remove,
37
+ remove = _ref2$remove === void 0 ? false : _ref2$remove,
38
+ children = _ref2.children;
39
+ var getId = (0, _reactProperties.useIdGenerator)("iconType");
40
+ var placeBefore = before !== undefined ? getId(before) : undefined;
41
+ var placeAfter = after !== undefined ? getId(after) : undefined;
42
+ return /*#__PURE__*/_react.default.createElement(IconTypeProvider, {
43
+ type: name
44
+ }, /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
45
+ id: getId(name),
46
+ name: "iconTypes",
47
+ before: placeBefore,
48
+ after: placeAfter,
49
+ remove: remove,
50
+ array: true
51
+ }, /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
52
+ id: getId(name, "name"),
53
+ name: "name",
54
+ value: name
55
+ }), children));
56
+ };
57
+ var Icon = exports.Icon = function Icon(_ref3) {
58
+ var element = _ref3.element;
59
+ var _useIconType = useIconType(),
60
+ configType = _useIconType.type;
61
+ var IconDecorator = _IconRenderer.IconRenderer.createDecorator(function (Original) {
62
+ return function IconRenderer() {
63
+ var _useIcon = (0, _IconRenderer.useIcon)(),
64
+ icon = _useIcon.icon;
65
+ if (icon.type !== configType) {
66
+ return /*#__PURE__*/_react.default.createElement(Original, null);
67
+ }
68
+ return element;
69
+ };
70
+ });
71
+ return /*#__PURE__*/_react.default.createElement(IconDecorator, null);
72
+ };
73
+ var Tab = exports.Tab = function Tab(_ref4) {
74
+ var element = _ref4.element;
75
+ var _useIconType2 = useIconType(),
76
+ configType = _useIconType2.type;
77
+ var IconPickerTabDecorator = _IconPickerTab.IconPickerTabRenderer.createDecorator(function (Original) {
78
+ return function IconPickerTabRenderer() {
79
+ var _useIconType3 = useIconType(),
80
+ type = _useIconType3.type;
81
+ if (type !== configType) {
82
+ return /*#__PURE__*/_react.default.createElement(Original, null);
83
+ }
84
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, element);
85
+ };
86
+ });
87
+ return /*#__PURE__*/_react.default.createElement(IconPickerTabDecorator, null);
88
+ };
89
+ IconType.Icon = Icon;
90
+ IconType.Tab = Tab;
91
+
92
+ //# sourceMappingURL=IconType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactProperties","_IconRenderer","_IconPickerTab","IconTypeContext","React","createContext","undefined","IconTypeProvider","exports","_ref","type","children","default","createElement","Provider","value","useIconType","context","useContext","Error","IconType","_ref2","name","_ref2$before","before","_ref2$after","after","_ref2$remove","remove","getId","useIdGenerator","placeBefore","placeAfter","Property","id","array","Icon","_ref3","element","_useIconType","configType","IconDecorator","IconRenderer","createDecorator","Original","_useIcon","useIcon","icon","Tab","_ref4","_useIconType2","IconPickerTabDecorator","IconPickerTabRenderer","_useIconType3","Fragment"],"sources":["IconType.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nimport { IconRenderer, useIcon } from \"../IconRenderer\";\nimport { IconPickerTabRenderer } from \"../IconPickerTab\";\n\nexport type IconTypeProps = {\n name: string;\n before?: string;\n after?: string;\n remove?: boolean;\n children?: React.ReactNode;\n};\n\ninterface IconTypeContext {\n type: string;\n}\n\nconst IconTypeContext = React.createContext<IconTypeContext | undefined>(undefined);\n\ninterface IconTypeProviderProps {\n type: string;\n children: React.ReactNode;\n}\n\nexport const IconTypeProvider = ({ type, children }: IconTypeProviderProps) => {\n return <IconTypeContext.Provider value={{ type }}>{children}</IconTypeContext.Provider>;\n};\n\nexport function useIconType() {\n const context = React.useContext(IconTypeContext);\n if (!context) {\n throw Error(`Missing <IconTypeProvider> in the component tree!`);\n }\n return context;\n}\n\nexport interface IconType extends React.FC<IconTypeProps> {\n Icon: typeof Icon;\n Tab: typeof Tab;\n}\n\nexport const IconType: IconType = ({\n name,\n before = undefined,\n after = undefined,\n remove = false,\n children\n}) => {\n const getId = useIdGenerator(\"iconType\");\n\n const placeBefore = before !== undefined ? getId(before) : undefined;\n const placeAfter = after !== undefined ? getId(after) : undefined;\n\n return (\n <IconTypeProvider type={name}>\n <Property\n id={getId(name)}\n name={\"iconTypes\"}\n before={placeBefore}\n after={placeAfter}\n remove={remove}\n array={true}\n >\n <Property id={getId(name, \"name\")} name={\"name\"} value={name} />\n {children}\n </Property>\n </IconTypeProvider>\n );\n};\n\nexport type IconProps = {\n element: React.ReactElement;\n};\n\nexport const Icon = ({ element }: IconProps) => {\n const { type: configType } = useIconType();\n\n const IconDecorator = IconRenderer.createDecorator(Original => {\n return function IconRenderer() {\n const { icon } = useIcon();\n\n if (icon.type !== configType) {\n return <Original />;\n }\n\n return element;\n };\n });\n\n return <IconDecorator />;\n};\n\nexport type TabProps = {\n element: React.ReactElement;\n};\n\nexport const Tab = ({ element }: TabProps) => {\n const { type: configType } = useIconType();\n\n const IconPickerTabDecorator = IconPickerTabRenderer.createDecorator(Original => {\n return function IconPickerTabRenderer() {\n const { type } = useIconType();\n\n if (type !== configType) {\n return <Original />;\n }\n\n return <>{element}</>;\n };\n });\n\n return <IconPickerTabDecorator />;\n};\n\nIconType.Icon = Icon;\nIconType.Tab = Tab;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { IconType } from "./IconType";
3
+ import { Icon } from "../types";
4
+ export declare const IconPickerConfig: (({ priority, children }: import("@webiny/react-properties").ConfigProps) => React.JSX.Element) & {
5
+ IconPack: ({ name, provider }: import("./IconPackProvider").IconPackProviderProps) => React.JSX.Element;
6
+ IconType: IconType;
7
+ };
8
+ export declare const IconPickerWithConfig: ({ onProperties, children }: import("@webiny/react-properties").WithConfigProps) => React.JSX.Element;
9
+ export declare const IconPickerConfigProvider: import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
10
+ export interface IconPackLoader {
11
+ (): Promise<Icon[]>;
12
+ }
13
+ interface IconTypeInterface {
14
+ name: string;
15
+ }
16
+ export { IconTypeInterface as IconType };
17
+ export interface IconPackProviderInterface {
18
+ name: string;
19
+ getIcons(): Promise<Icon[]>;
20
+ }
21
+ declare class IconPackProvider implements IconPackProviderInterface {
22
+ readonly name: string;
23
+ private readonly loader;
24
+ constructor(name: string, loader: IconPackLoader);
25
+ getIcons(): Promise<Icon[]>;
26
+ }
27
+ export declare function useIconPickerConfig(): {
28
+ iconTypes: IconTypeInterface[];
29
+ iconPackProviders: IconPackProvider[];
30
+ };
31
+ export declare const DefaultIcons: () => React.JSX.Element;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.IconPickerWithConfig = exports.IconPickerConfigProvider = exports.IconPickerConfig = exports.DefaultIcons = void 0;
9
+ exports.useIconPickerConfig = useIconPickerConfig;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactProperties = require("@webiny/react-properties");
14
+ var _IconPackProvider = require("./IconPackProvider");
15
+ var _IconType = require("./IconType");
16
+ var _iconsPlugin = require("../plugins/iconsPlugin");
17
+ var _emojisPlugin = require("../plugins/emojisPlugin");
18
+ var _customPlugin = require("../plugins/customPlugin");
19
+ var _app = require("@webiny/app");
20
+ var _Emojis = require("./Emojis");
21
+ var _FontAwesomeIcons = require("./FontAwesomeIcons");
22
+ var base = (0, _reactProperties.createConfigurableComponent)("IconPicker");
23
+ var IconPickerConfig = exports.IconPickerConfig = Object.assign(base.Config, {
24
+ IconPack: _IconPackProvider.IconPackProvider,
25
+ IconType: _IconType.IconType
26
+ });
27
+ var IconPickerWithConfig = exports.IconPickerWithConfig = base.WithConfig;
28
+ var IconPickerConfigProvider = exports.IconPickerConfigProvider = (0, _app.createProvider)(function (Original) {
29
+ return function IconPickerConfigProvider(_ref) {
30
+ var children = _ref.children;
31
+ return /*#__PURE__*/_react.default.createElement(IconPickerWithConfig, null, /*#__PURE__*/_react.default.createElement(Original, null, children));
32
+ };
33
+ });
34
+ var IconPackProvider = /*#__PURE__*/function () {
35
+ function IconPackProvider(name, loader) {
36
+ (0, _classCallCheck2.default)(this, IconPackProvider);
37
+ this.name = name;
38
+ this.loader = loader;
39
+ }
40
+ return (0, _createClass2.default)(IconPackProvider, [{
41
+ key: "getIcons",
42
+ value: function getIcons() {
43
+ return this.loader();
44
+ }
45
+ }]);
46
+ }();
47
+ function useIconPickerConfig() {
48
+ var config = base.useConfig();
49
+ var iconPackProviders = config.iconPackProviders || [];
50
+ return (0, _react.useMemo)(function () {
51
+ return {
52
+ iconTypes: config.iconTypes || [],
53
+ iconPackProviders: iconPackProviders.map(function (provider) {
54
+ return new IconPackProvider(provider.name, provider.load);
55
+ })
56
+ };
57
+ }, [config]);
58
+ }
59
+ var DefaultIcons = exports.DefaultIcons = function DefaultIcons() {
60
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_iconsPlugin.SimpleIconPlugin, null), /*#__PURE__*/_react.default.createElement(_emojisPlugin.EmojiPlugin, null), /*#__PURE__*/_react.default.createElement(_customPlugin.CustomIconPlugin, null), /*#__PURE__*/_react.default.createElement(_Emojis.Emojis, null), /*#__PURE__*/_react.default.createElement(_FontAwesomeIcons.FontAwesomeIcons, null));
61
+ };
62
+
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactProperties","_IconPackProvider","_IconType","_iconsPlugin","_emojisPlugin","_customPlugin","_app","_Emojis","_FontAwesomeIcons","base","createConfigurableComponent","IconPickerConfig","exports","Object","assign","Config","IconPack","IconType","IconPickerWithConfig","WithConfig","IconPickerConfigProvider","createProvider","Original","_ref","children","default","createElement","IconPackProvider","name","loader","_classCallCheck2","_createClass2","key","value","getIcons","useIconPickerConfig","config","useConfig","iconPackProviders","useMemo","iconTypes","map","provider","load","DefaultIcons","Fragment","SimpleIconPlugin","EmojiPlugin","CustomIconPlugin","Emojis","FontAwesomeIcons"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { createConfigurableComponent } from \"@webiny/react-properties\";\nimport { IconPackProvider as IconPack } from \"./IconPackProvider\";\nimport { IconType } from \"./IconType\";\nimport { SimpleIconPlugin } from \"../plugins/iconsPlugin\";\nimport { EmojiPlugin } from \"../plugins/emojisPlugin\";\nimport { CustomIconPlugin } from \"../plugins/customPlugin\";\nimport { Icon } from \"../types\";\nimport { createProvider } from \"@webiny/app\";\nimport { Emojis } from \"./Emojis\";\nimport { FontAwesomeIcons } from \"./FontAwesomeIcons\";\n\nconst base = createConfigurableComponent<IconPickerConfig>(\"IconPicker\");\n\nexport const IconPickerConfig = Object.assign(base.Config, { IconPack, IconType });\nexport const IconPickerWithConfig = base.WithConfig;\n\nexport const IconPickerConfigProvider = createProvider(Original => {\n return function IconPickerConfigProvider({ children }) {\n return (\n <IconPickerWithConfig>\n <Original>{children}</Original>\n </IconPickerWithConfig>\n );\n };\n});\n\nexport interface IconPackLoader {\n (): Promise<Icon[]>;\n}\n\ninterface IconTypeInterface {\n name: string;\n}\n\nexport { IconTypeInterface as IconType };\n\ninterface IconPickerConfig {\n iconTypes: IconTypeInterface[];\n iconPackProviders: {\n name: string;\n load: IconPackLoader;\n }[];\n}\n\nexport interface IconPackProviderInterface {\n name: string;\n getIcons(): Promise<Icon[]>;\n}\n\nclass IconPackProvider implements IconPackProviderInterface {\n public readonly name: string;\n private readonly loader: IconPackLoader;\n\n constructor(name: string, loader: IconPackLoader) {\n this.name = name;\n this.loader = loader;\n }\n\n getIcons(): Promise<Icon[]> {\n return this.loader();\n }\n}\n\nexport function useIconPickerConfig() {\n const config = base.useConfig();\n\n const iconPackProviders = config.iconPackProviders || [];\n\n return useMemo(\n () => ({\n iconTypes: config.iconTypes || [],\n iconPackProviders: iconPackProviders.map(\n provider => new IconPackProvider(provider.name, provider.load)\n )\n }),\n [config]\n );\n}\n\nexport const DefaultIcons = () => {\n return (\n <>\n <SimpleIconPlugin />\n <EmojiPlugin />\n <CustomIconPlugin />\n <Emojis />\n <FontAwesomeIcons />\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export declare const defaultIcon: {
2
+ type: string;
3
+ name: string;
4
+ value: string;
5
+ width: number;
6
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultIcon = void 0;
7
+ var defaultIcon = exports.defaultIcon = {
8
+ type: "icon",
9
+ name: "regular_star",
10
+ value: '<path fill="currentColor" d="M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3l153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4L459.8 484c1.5 9-2.2 18.1-9.6 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6l68.6-141.3C270.4 5.2 278.7 0 287.9 0zm0 79l-52.5 108.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9l85.9 85.1c5.5 5.5 8.1 13.3 6.8 21l-20.3 119.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2l-20.2-119.6c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1l-118.3-17.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"/>',
11
+ width: 576
12
+ };
13
+
14
+ //# sourceMappingURL=defaultIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["defaultIcon","exports","type","name","value","width"],"sources":["defaultIcon.ts"],"sourcesContent":["export const defaultIcon = {\n type: \"icon\",\n name: \"regular_star\",\n value: '<path fill=\"currentColor\" d=\"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3l153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4L459.8 484c1.5 9-2.2 18.1-9.6 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6l68.6-141.3C270.4 5.2 278.7 0 287.9 0zm0 79l-52.5 108.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9l85.9 85.1c5.5 5.5 8.1 13.3 6.8 21l-20.3 119.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2l-20.2-119.6c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1l-118.3-17.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"/>',\n width: 576\n};\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACvBE,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,+mBAA+mB;EACtnBC,KAAK,EAAE;AACX,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export { IconPicker } from "./IconPicker";
2
+ export { IconPickerConfig } from "./config";
3
+ export { useIcon } from "./IconRenderer";
4
+ export { useIconPicker } from "./IconPickerPresenterProvider";
5
+ export { useIconType } from "./config/IconType";
6
+ export { defaultIcon } from "./defaultIcon";
7
+ export type { Icon } from "./types";
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "IconPicker", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _IconPicker.IconPicker;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "IconPickerConfig", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _config.IconPickerConfig;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "defaultIcon", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _defaultIcon.defaultIcon;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useIcon", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _IconRenderer.useIcon;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useIconPicker", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _IconPickerPresenterProvider.useIconPicker;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "useIconType", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _IconType.useIconType;
40
+ }
41
+ });
42
+ var _IconPicker = require("./IconPicker");
43
+ var _config = require("./config");
44
+ var _IconRenderer = require("./IconRenderer");
45
+ var _IconPickerPresenterProvider = require("./IconPickerPresenterProvider");
46
+ var _IconType = require("./config/IconType");
47
+ var _defaultIcon = require("./defaultIcon");
48
+
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_IconPicker","require","_config","_IconRenderer","_IconPickerPresenterProvider","_IconType","_defaultIcon"],"sources":["index.tsx"],"sourcesContent":["export { IconPicker } from \"./IconPicker\";\nexport { IconPickerConfig } from \"./config\";\nexport { useIcon } from \"./IconRenderer\";\nexport { useIconPicker } from \"./IconPickerPresenterProvider\";\nexport { useIconType } from \"./config/IconType\";\nexport { defaultIcon } from \"./defaultIcon\";\nexport type { Icon } from \"./types\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const CustomIconPlugin: () => React.JSX.Element;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CustomIconPlugin = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _reactHooks = require("@apollo/react-hooks");
12
+ var _mobxReactLite = require("mobx-react-lite");
13
+ var _Button = require("@webiny/ui/Button");
14
+ var _FileManager = require("../../../base/ui/FileManager");
15
+ var _IconPickerTab = require("../IconPickerTab");
16
+ var _ = require("..");
17
+ var _IconPickerPresenterProvider = require("../IconPickerPresenterProvider");
18
+ var _config = require("../config");
19
+ var _graphql = require("./graphql");
20
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
21
+ var AddButton = /*#__PURE__*/(0, _base.default)(_Button.ButtonSecondary, process.env.NODE_ENV === "production" ? {
22
+ target: "ecisavg0"
23
+ } : {
24
+ target: "ecisavg0",
25
+ label: "AddButton"
26
+ })(process.env.NODE_ENV === "production" ? {
27
+ name: "1eeskvi",
28
+ styles: "&.mdc-button{height:40px;}"
29
+ } : {
30
+ name: "1eeskvi",
31
+ styles: "&.mdc-button{height:40px;}",
32
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImN1c3RvbVBsdWdpbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZXlDIiwiZmlsZSI6ImN1c3RvbVBsdWdpbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VBcG9sbG9DbGllbnQgfSBmcm9tIFwiQGFwb2xsby9yZWFjdC1ob29rc1wiO1xuaW1wb3J0IHsgb2JzZXJ2ZXIgfSBmcm9tIFwibW9ieC1yZWFjdC1saXRlXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcblxuaW1wb3J0IHsgQnV0dG9uU2Vjb25kYXJ5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQnV0dG9uXCI7XG5cbmltcG9ydCB7IEZpbGVNYW5hZ2VyLCBGaWxlTWFuYWdlckZpbGVJdGVtIH0gZnJvbSBcIn4vYmFzZS91aS9GaWxlTWFuYWdlclwiO1xuaW1wb3J0IHsgSWNvblBpY2tlclRhYiB9IGZyb20gXCIuLi9JY29uUGlja2VyVGFiXCI7XG5pbXBvcnQgeyB1c2VJY29uIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyB1c2VJY29uUGlja2VyIH0gZnJvbSBcIi4uL0ljb25QaWNrZXJQcmVzZW50ZXJQcm92aWRlclwiO1xuaW1wb3J0IHsgSWNvblBpY2tlckNvbmZpZyB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IExpc3RDdXN0b21JY29uc1F1ZXJ5UmVzcG9uc2UsIExJU1RfQ1VTVE9NX0lDT05TIH0gZnJvbSBcIi4vZ3JhcGhxbFwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCBBZGRCdXR0b24gPSBzdHlsZWQoQnV0dG9uU2Vjb25kYXJ5KWBcbiAgICAmLm1kYy1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuYDtcblxuLyoqXG4gKiBOT1RFOiBBdm9pZCB1c2luZyBgQGVtb3Rpb24vc3R5bGVkYCBpbiBpY29uIHJlbmRlcmVyIGNvbXBvbmVudHMgYWNyb3NzIGFsbCBwbHVnaW5zLlxuICogVGhpcyBpcyBjcnVjaWFsIGZvciBzZXJpYWxpemluZyBjb21wb25lbnQgcmVuZGVyaW5nIGludG8gYSBzdHJpbmcgdmFsdWUgYXMgcGxhaW4gSFRNTCxcbiAqIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgdXNhZ2UgaW4gdGhlIHdlYnNpdGUgYXBwbGljYXRpb24uIFBsZWFzZSB1c2UgaW5saW5lIHN0eWxlcyBoZXJlXG4gKiB0byBlbnN1cmUgcHJvcGVyIHNlcmlhbGl6YXRpb24uXG4gKi9cblxuY29uc3QgQ3VzdG9tSWNvbiA9ICgpID0+IHtcbiAgICBjb25zdCB7IGljb24sIHNpemUgfSA9IHVzZUljb248SWNvbj4oKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIHdpZHRoPXtzaXplfVxuICAgICAgICAgICAgaGVpZ2h0PXtzaXplfVxuICAgICAgICAgICAgc3JjPXtpY29uLnZhbHVlfVxuICAgICAgICAgICAgYWx0PXtpY29uLm5hbWV9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwibWlkZGxlXCJcbiAgICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgKTtcbn07XG5cbmludGVyZmFjZSBJY29uRmlsZVBpY2tlclByb3BzIHtcbiAgICBvblVwbG9hZDogKGZpbGU6IEZpbGVNYW5hZ2VyRmlsZUl0ZW0pID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U6IChmaWxlOiBGaWxlTWFuYWdlckZpbGVJdGVtKSA9PiB2b2lkO1xufVxuXG5jb25zdCBJY29uRmlsZVBpY2tlciA9ICh7IG9uVXBsb2FkLCBvbkNoYW5nZSB9OiBJY29uRmlsZVBpY2tlclByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZpbGVNYW5hZ2VyXG4gICAgICAgICAgICBvblVwbG9hZENvbXBsZXRpb249eyhbZmlsZV0pID0+IHtcbiAgICAgICAgICAgICAgICBvblVwbG9hZChmaWxlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICBzY29wZT1cInNjb3BlOmljb25QaWNrZXJcIlxuICAgICAgICAgICAgYWNjZXB0PXtbXCJpbWFnZS9zdmcreG1sXCJdfVxuICAgICAgICA+XG4gICAgICAgICAgICB7KHsgc2hvd0ZpbGVNYW5hZ2VyIH0pID0+IChcbiAgICAgICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dGaWxlTWFuYWdlcigpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQnJvd3NlXG4gICAgICAgICAgICAgICAgPC9BZGRCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L0ZpbGVNYW5hZ2VyPlxuICAgICk7XG59O1xuXG5mdW5jdGlvbiBnZXROYW1lT3JJZChmaWxlOiBGaWxlTWFuYWdlckZpbGVJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gKGZpbGUubWV0YSB8fCBbXSkuZmluZChvYmogPT4gb2JqLmtleSA9PT0gXCJuYW1lXCIpO1xuXG4gICAgcmV0dXJuIG5hbWUgPyBuYW1lLnZhbHVlIDogZmlsZS5pZDtcbn1cblxuY29uc3QgQ3VzdG9tSWNvblRhYiA9IG9ic2VydmVyKCgpID0+IHtcbiAgICBjb25zdCBwcmVzZW50ZXIgPSB1c2VJY29uUGlja2VyKCk7XG5cbiAgICBjb25zdCBvbkljb25TZWxlY3QgPSAoaWNvbjogSWNvbikgPT4ge1xuICAgICAgICBwcmVzZW50ZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgcHJlc2VudGVyLmNsb3NlTWVudSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbkljb25GaWxlU2VsZWN0ID0gKGZpbGU6IEZpbGVNYW5hZ2VyRmlsZUl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGdldE5hbWVPcklkKGZpbGUpO1xuXG4gICAgICAgIHByZXNlbnRlci5zZXRJY29uKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGZpbGUuc3JjXG4gICAgICAgIH0pO1xuICAgICAgICBwcmVzZW50ZXIuY2xvc2VNZW51KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uSWNvbkZpbGVVcGxvYWQgPSAoZmlsZTogRmlsZU1hbmFnZXJGaWxlSXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lID0gZ2V0TmFtZU9ySWQoZmlsZSk7XG5cbiAgICAgICAgY29uc3QgaWNvbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGZpbGUuc3JjXG4gICAgICAgIH07XG5cbiAgICAgICAgcHJlc2VudGVyLmFkZEljb24oaWNvbik7XG4gICAgICAgIHByZXNlbnRlci5zZXRJY29uKGljb24pO1xuICAgICAgICBwcmVzZW50ZXIuY2xvc2VNZW51KCk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJY29uUGlja2VyVGFiXG4gICAgICAgICAgICBsYWJlbD17XCJDdXN0b21cIn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkljb25TZWxlY3R9XG4gICAgICAgICAgICBhY3Rpb25zPXs8SWNvbkZpbGVQaWNrZXIgb25DaGFuZ2U9e29uSWNvbkZpbGVTZWxlY3R9IG9uVXBsb2FkPXtvbkljb25GaWxlVXBsb2FkfSAvPn1cbiAgICAgICAgLz5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBjb25zdCBDdXN0b21JY29uUGx1Z2luID0gKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHVzZUFwb2xsb0NsaWVudCgpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEljb25QaWNrZXJDb25maWc+XG4gICAgICAgICAgICA8SWNvblBpY2tlckNvbmZpZy5JY29uUGFja1xuICAgICAgICAgICAgICAgIG5hbWU9XCJjdXN0b21cIlxuICAgICAgICAgICAgICAgIHByb3ZpZGVyPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogcmVzcG9uc2UgfSA9IGF3YWl0IGNsaWVudC5xdWVyeTxMaXN0Q3VzdG9tSWNvbnNRdWVyeVJlc3BvbnNlPih7XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogTElTVF9DVVNUT01fSUNPTlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdDogMTAwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTmV0d29yayBlcnJvciB3aGlsZSBsaXN0aW5nIGN1c3RvbSBpY29ucy5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXNwb25zZS5maWxlTWFuYWdlci5saXN0RmlsZXM7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3I/Lm1lc3NhZ2UgfHwgXCJDb3VsZCBub3QgZmV0Y2ggY3VzdG9tIGljb25zLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChjdXN0b21JY29uID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VzdG9tSWNvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUljb24uc3JjXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxJY29uUGlja2VyQ29uZmlnLkljb25UeXBlIG5hbWU9e1wiY3VzdG9tXCJ9PlxuICAgICAgICAgICAgICAgIDxJY29uUGlja2VyQ29uZmlnLkljb25UeXBlLkljb24gZWxlbWVudD17PEN1c3RvbUljb24gLz59IC8+XG4gICAgICAgICAgICAgICAgPEljb25QaWNrZXJDb25maWcuSWNvblR5cGUuVGFiIGVsZW1lbnQ9ezxDdXN0b21JY29uVGFiIC8+fSAvPlxuICAgICAgICAgICAgPC9JY29uUGlja2VyQ29uZmlnLkljb25UeXBlPlxuICAgICAgICA8L0ljb25QaWNrZXJDb25maWc+XG4gICAgKTtcbn07XG4iXX0= */",
33
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
34
+ });
35
+
36
+ /**
37
+ * NOTE: Avoid using `@emotion/styled` in icon renderer components across all plugins.
38
+ * This is crucial for serializing component rendering into a string value as plain HTML,
39
+ * which is necessary for usage in the website application. Please use inline styles here
40
+ * to ensure proper serialization.
41
+ */
42
+
43
+ var CustomIcon = function CustomIcon() {
44
+ var _useIcon = (0, _.useIcon)(),
45
+ icon = _useIcon.icon,
46
+ size = _useIcon.size;
47
+ return /*#__PURE__*/_react.default.createElement("img", {
48
+ width: size,
49
+ height: size,
50
+ src: icon.value,
51
+ alt: icon.name,
52
+ style: {
53
+ verticalAlign: "middle"
54
+ }
55
+ });
56
+ };
57
+ var IconFilePicker = function IconFilePicker(_ref) {
58
+ var onUpload = _ref.onUpload,
59
+ onChange = _ref.onChange;
60
+ return /*#__PURE__*/_react.default.createElement(_FileManager.FileManager, {
61
+ onUploadCompletion: function onUploadCompletion(_ref2) {
62
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
63
+ file = _ref3[0];
64
+ onUpload(file);
65
+ },
66
+ onChange: onChange,
67
+ scope: "scope:iconPicker",
68
+ accept: ["image/svg+xml"]
69
+ }, function (_ref4) {
70
+ var showFileManager = _ref4.showFileManager;
71
+ return /*#__PURE__*/_react.default.createElement(AddButton, {
72
+ onClick: function onClick() {
73
+ showFileManager();
74
+ }
75
+ }, "Browse");
76
+ });
77
+ };
78
+ function getNameOrId(file) {
79
+ var name = (file.meta || []).find(function (obj) {
80
+ return obj.key === "name";
81
+ });
82
+ return name ? name.value : file.id;
83
+ }
84
+ var CustomIconTab = (0, _mobxReactLite.observer)(function () {
85
+ var presenter = (0, _IconPickerPresenterProvider.useIconPicker)();
86
+ var onIconSelect = function onIconSelect(icon) {
87
+ presenter.setIcon(icon);
88
+ presenter.closeMenu();
89
+ };
90
+ var onIconFileSelect = function onIconFileSelect(file) {
91
+ var name = getNameOrId(file);
92
+ presenter.setIcon({
93
+ type: "custom",
94
+ name: name,
95
+ value: file.src
96
+ });
97
+ presenter.closeMenu();
98
+ };
99
+ var onIconFileUpload = function onIconFileUpload(file) {
100
+ var name = getNameOrId(file);
101
+ var icon = {
102
+ type: "custom",
103
+ name: name,
104
+ value: file.src
105
+ };
106
+ presenter.addIcon(icon);
107
+ presenter.setIcon(icon);
108
+ presenter.closeMenu();
109
+ };
110
+ return /*#__PURE__*/_react.default.createElement(_IconPickerTab.IconPickerTab, {
111
+ label: "Custom",
112
+ onChange: onIconSelect,
113
+ actions: /*#__PURE__*/_react.default.createElement(IconFilePicker, {
114
+ onChange: onIconFileSelect,
115
+ onUpload: onIconFileUpload
116
+ })
117
+ });
118
+ });
119
+ var CustomIconPlugin = exports.CustomIconPlugin = function CustomIconPlugin() {
120
+ var client = (0, _reactHooks.useApolloClient)();
121
+ return /*#__PURE__*/_react.default.createElement(_config.IconPickerConfig, null, /*#__PURE__*/_react.default.createElement(_config.IconPickerConfig.IconPack, {
122
+ name: "custom",
123
+ provider: async function provider() {
124
+ var _await$client$query = await client.query({
125
+ query: _graphql.LIST_CUSTOM_ICONS,
126
+ variables: {
127
+ limit: 10000
128
+ }
129
+ }),
130
+ response = _await$client$query.data;
131
+ if (!response) {
132
+ throw new Error("Network error while listing custom icons.");
133
+ }
134
+ var _response$fileManager = response.fileManager.listFiles,
135
+ data = _response$fileManager.data,
136
+ error = _response$fileManager.error;
137
+ if (!data) {
138
+ throw new Error(error?.message || "Could not fetch custom icons.");
139
+ }
140
+ return data.map(function (customIcon) {
141
+ return {
142
+ type: "custom",
143
+ name: customIcon.name,
144
+ value: customIcon.src
145
+ };
146
+ });
147
+ }
148
+ }), /*#__PURE__*/_react.default.createElement(_config.IconPickerConfig.IconType, {
149
+ name: "custom"
150
+ }, /*#__PURE__*/_react.default.createElement(_config.IconPickerConfig.IconType.Icon, {
151
+ element: /*#__PURE__*/_react.default.createElement(CustomIcon, null)
152
+ }), /*#__PURE__*/_react.default.createElement(_config.IconPickerConfig.IconType.Tab, {
153
+ element: /*#__PURE__*/_react.default.createElement(CustomIconTab, null)
154
+ })));
155
+ };
156
+
157
+ //# sourceMappingURL=customPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactHooks","_mobxReactLite","_Button","_FileManager","_IconPickerTab","_","_IconPickerPresenterProvider","_config","_graphql","_EMOTION_STRINGIFIED_CSS_ERROR__","AddButton","_base","default","ButtonSecondary","process","env","NODE_ENV","target","label","name","styles","map","toString","CustomIcon","_useIcon","useIcon","icon","size","createElement","width","height","src","value","alt","style","verticalAlign","IconFilePicker","_ref","onUpload","onChange","FileManager","onUploadCompletion","_ref2","_ref3","_slicedToArray2","file","scope","accept","_ref4","showFileManager","onClick","getNameOrId","meta","find","obj","key","id","CustomIconTab","observer","presenter","useIconPicker","onIconSelect","setIcon","closeMenu","onIconFileSelect","type","onIconFileUpload","addIcon","IconPickerTab","actions","CustomIconPlugin","exports","client","useApolloClient","IconPickerConfig","IconPack","provider","_await$client$query","query","LIST_CUSTOM_ICONS","variables","limit","response","data","Error","_response$fileManager","fileManager","listFiles","error","message","customIcon","IconType","Icon","element","Tab"],"sources":["customPlugin.tsx"],"sourcesContent":["import React from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { observer } from \"mobx-react-lite\";\nimport styled from \"@emotion/styled\";\n\nimport { ButtonSecondary } from \"@webiny/ui/Button\";\n\nimport { FileManager, FileManagerFileItem } from \"~/base/ui/FileManager\";\nimport { IconPickerTab } from \"../IconPickerTab\";\nimport { useIcon } from \"..\";\nimport { useIconPicker } from \"../IconPickerPresenterProvider\";\nimport { IconPickerConfig } from \"../config\";\nimport { ListCustomIconsQueryResponse, LIST_CUSTOM_ICONS } from \"./graphql\";\nimport { Icon } from \"../types\";\n\nconst AddButton = styled(ButtonSecondary)`\n &.mdc-button {\n height: 40px;\n }\n`;\n\n/**\n * NOTE: Avoid using `@emotion/styled` in icon renderer components across all plugins.\n * This is crucial for serializing component rendering into a string value as plain HTML,\n * which is necessary for usage in the website application. Please use inline styles here\n * to ensure proper serialization.\n */\n\nconst CustomIcon = () => {\n const { icon, size } = useIcon<Icon>();\n\n return (\n <img\n width={size}\n height={size}\n src={icon.value}\n alt={icon.name}\n style={{\n verticalAlign: \"middle\"\n }}\n />\n );\n};\n\ninterface IconFilePickerProps {\n onUpload: (file: FileManagerFileItem) => void;\n onChange: (file: FileManagerFileItem) => void;\n}\n\nconst IconFilePicker = ({ onUpload, onChange }: IconFilePickerProps) => {\n return (\n <FileManager\n onUploadCompletion={([file]) => {\n onUpload(file);\n }}\n onChange={onChange}\n scope=\"scope:iconPicker\"\n accept={[\"image/svg+xml\"]}\n >\n {({ showFileManager }) => (\n <AddButton\n onClick={() => {\n showFileManager();\n }}\n >\n Browse\n </AddButton>\n )}\n </FileManager>\n );\n};\n\nfunction getNameOrId(file: FileManagerFileItem): string {\n const name = (file.meta || []).find(obj => obj.key === \"name\");\n\n return name ? name.value : file.id;\n}\n\nconst CustomIconTab = observer(() => {\n const presenter = useIconPicker();\n\n const onIconSelect = (icon: Icon) => {\n presenter.setIcon(icon);\n presenter.closeMenu();\n };\n\n const onIconFileSelect = (file: FileManagerFileItem) => {\n const name = getNameOrId(file);\n\n presenter.setIcon({\n type: \"custom\",\n name,\n value: file.src\n });\n presenter.closeMenu();\n };\n\n const onIconFileUpload = (file: FileManagerFileItem) => {\n const name = getNameOrId(file);\n\n const icon = {\n type: \"custom\",\n name,\n value: file.src\n };\n\n presenter.addIcon(icon);\n presenter.setIcon(icon);\n presenter.closeMenu();\n };\n\n return (\n <IconPickerTab\n label={\"Custom\"}\n onChange={onIconSelect}\n actions={<IconFilePicker onChange={onIconFileSelect} onUpload={onIconFileUpload} />}\n />\n );\n});\n\nexport const CustomIconPlugin = () => {\n const client = useApolloClient();\n\n return (\n <IconPickerConfig>\n <IconPickerConfig.IconPack\n name=\"custom\"\n provider={async () => {\n const { data: response } = await client.query<ListCustomIconsQueryResponse>({\n query: LIST_CUSTOM_ICONS,\n variables: {\n limit: 10000\n }\n });\n\n if (!response) {\n throw new Error(\"Network error while listing custom icons.\");\n }\n\n const { data, error } = response.fileManager.listFiles;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch custom icons.\");\n }\n\n return data.map(customIcon => ({\n type: \"custom\",\n name: customIcon.name,\n value: customIcon.src\n }));\n }}\n />\n <IconPickerConfig.IconType name={\"custom\"}>\n <IconPickerConfig.IconType.Icon element={<CustomIcon />} />\n <IconPickerConfig.IconType.Tab element={<CustomIconTab />} />\n </IconPickerConfig.IconType>\n </IconPickerConfig>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,CAAA,GAAAN,OAAA;AACA,IAAAO,4BAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AAA4E,SAAAU,iCAAA;AAG5E,IAAMC,SAAS,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAOC,uBAAe,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAb;AAAA,EAIxC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMc,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,QAAA,GAAuB,IAAAC,SAAO,EAAO,CAAC;IAA9BC,IAAI,GAAAF,QAAA,CAAJE,IAAI;IAAEC,IAAI,GAAAH,QAAA,CAAJG,IAAI;EAElB,oBACI9B,MAAA,CAAAe,OAAA,CAAAgB,aAAA;IACIC,KAAK,EAAEF,IAAK;IACZG,MAAM,EAAEH,IAAK;IACbI,GAAG,EAAEL,IAAI,CAACM,KAAM;IAChBC,GAAG,EAAEP,IAAI,CAACP,IAAK;IACfe,KAAK,EAAE;MACHC,aAAa,EAAE;IACnB;EAAE,CACL,CAAC;AAEV,CAAC;AAOD,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAoD;EAAA,IAA9CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACxC,oBACI1C,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACzB,YAAA,CAAAqC,WAAW;IACRC,kBAAkB,EAAE,SAApBA,kBAAkBA,CAAAC,KAAA,EAAc;MAAA,IAAAC,KAAA,OAAAC,eAAA,CAAAhC,OAAA,EAAA8B,KAAA;QAAVG,IAAI,GAAAF,KAAA;MACtBL,QAAQ,CAACO,IAAI,CAAC;IAClB,CAAE;IACFN,QAAQ,EAAEA,QAAS;IACnBO,KAAK,EAAC,kBAAkB;IACxBC,MAAM,EAAE,CAAC,eAAe;EAAE,GAEzB,UAAAC,KAAA;IAAA,IAAGC,eAAe,GAAAD,KAAA,CAAfC,eAAe;IAAA,oBACfpD,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAClB,SAAS;MACNwC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAQ;QACXD,eAAe,CAAC,CAAC;MACrB;IAAE,GACL,QAEU,CAAC;EAAA,CAEP,CAAC;AAEtB,CAAC;AAED,SAASE,WAAWA,CAACN,IAAyB,EAAU;EACpD,IAAM1B,IAAI,GAAG,CAAC0B,IAAI,CAACO,IAAI,IAAI,EAAE,EAAEC,IAAI,CAAC,UAAAC,GAAG;IAAA,OAAIA,GAAG,CAACC,GAAG,KAAK,MAAM;EAAA,EAAC;EAE9D,OAAOpC,IAAI,GAAGA,IAAI,CAACa,KAAK,GAAGa,IAAI,CAACW,EAAE;AACtC;AAEA,IAAMC,aAAa,GAAG,IAAAC,uBAAQ,EAAC,YAAM;EACjC,IAAMC,SAAS,GAAG,IAAAC,0CAAa,EAAC,CAAC;EAEjC,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAInC,IAAU,EAAK;IACjCiC,SAAS,CAACG,OAAO,CAACpC,IAAI,CAAC;IACvBiC,SAAS,CAACI,SAAS,CAAC,CAAC;EACzB,CAAC;EAED,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAInB,IAAyB,EAAK;IACpD,IAAM1B,IAAI,GAAGgC,WAAW,CAACN,IAAI,CAAC;IAE9Bc,SAAS,CAACG,OAAO,CAAC;MACdG,IAAI,EAAE,QAAQ;MACd9C,IAAI,EAAJA,IAAI;MACJa,KAAK,EAAEa,IAAI,CAACd;IAChB,CAAC,CAAC;IACF4B,SAAS,CAACI,SAAS,CAAC,CAAC;EACzB,CAAC;EAED,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIrB,IAAyB,EAAK;IACpD,IAAM1B,IAAI,GAAGgC,WAAW,CAACN,IAAI,CAAC;IAE9B,IAAMnB,IAAI,GAAG;MACTuC,IAAI,EAAE,QAAQ;MACd9C,IAAI,EAAJA,IAAI;MACJa,KAAK,EAAEa,IAAI,CAACd;IAChB,CAAC;IAED4B,SAAS,CAACQ,OAAO,CAACzC,IAAI,CAAC;IACvBiC,SAAS,CAACG,OAAO,CAACpC,IAAI,CAAC;IACvBiC,SAAS,CAACI,SAAS,CAAC,CAAC;EACzB,CAAC;EAED,oBACIlE,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACxB,cAAA,CAAAgE,aAAa;IACVlD,KAAK,EAAE,QAAS;IAChBqB,QAAQ,EAAEsB,YAAa;IACvBQ,OAAO,eAAExE,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACQ,cAAc;MAACG,QAAQ,EAAEyB,gBAAiB;MAAC1B,QAAQ,EAAE4B;IAAiB,CAAE;EAAE,CACvF,CAAC;AAEV,CAAC,CAAC;AAEK,IAAMI,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;EAClC,IAAME,MAAM,GAAG,IAAAC,2BAAe,EAAC,CAAC;EAEhC,oBACI5E,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrB,OAAA,CAAAmE,gBAAgB,qBACb7E,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrB,OAAA,CAAAmE,gBAAgB,CAACC,QAAQ;IACtBxD,IAAI,EAAC,QAAQ;IACbyD,QAAQ,EAAE,eAAVA,QAAQA,CAAA,EAAc;MAClB,IAAAC,mBAAA,GAA2B,MAAML,MAAM,CAACM,KAAK,CAA+B;UACxEA,KAAK,EAAEC,0BAAiB;UACxBC,SAAS,EAAE;YACPC,KAAK,EAAE;UACX;QACJ,CAAC,CAAC;QALYC,QAAQ,GAAAL,mBAAA,CAAdM,IAAI;MAOZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,2CAA2C,CAAC;MAChE;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,WAAW,CAACC,SAAS;QAA9CJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,IAAI,+BAA+B,CAAC;MACtE;MAEA,OAAON,IAAI,CAAC9D,GAAG,CAAC,UAAAqE,UAAU;QAAA,OAAK;UAC3BzB,IAAI,EAAE,QAAQ;UACd9C,IAAI,EAAEuE,UAAU,CAACvE,IAAI;UACrBa,KAAK,EAAE0D,UAAU,CAAC3D;QACtB,CAAC;MAAA,CAAC,CAAC;IACP;EAAE,CACL,CAAC,eACFlC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrB,OAAA,CAAAmE,gBAAgB,CAACiB,QAAQ;IAACxE,IAAI,EAAE;EAAS,gBACtCtB,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrB,OAAA,CAAAmE,gBAAgB,CAACiB,QAAQ,CAACC,IAAI;IAACC,OAAO,eAAEhG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACL,UAAU,MAAE;EAAE,CAAE,CAAC,eAC3D1B,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrB,OAAA,CAAAmE,gBAAgB,CAACiB,QAAQ,CAACG,GAAG;IAACD,OAAO,eAAEhG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC6B,aAAa,MAAE;EAAE,CAAE,CACrC,CACb,CAAC;AAE3B,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const EmojiPlugin: () => React.JSX.Element;