@saleor/macaw-ui 0.2.4

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 (186) hide show
  1. package/README.md +40 -0
  2. package/dist/ActionBar/ActionBar.d.ts +8 -0
  3. package/dist/ActionBar/context.d.ts +9 -0
  4. package/dist/ActionBar/index.d.ts +2 -0
  5. package/dist/ActionBar/styles.d.ts +2 -0
  6. package/dist/Alert/Alert.d.ts +9 -0
  7. package/dist/Alert/index.d.ts +1 -0
  8. package/dist/Alert/styles.d.ts +2 -0
  9. package/dist/Backlink/Backlink.d.ts +6 -0
  10. package/dist/Backlink/context.d.ts +5 -0
  11. package/dist/Backlink/index.d.ts +2 -0
  12. package/dist/Backlink/styles.d.ts +2 -0
  13. package/dist/ConfirmButton/ConfirmButton.d.ts +11 -0
  14. package/dist/ConfirmButton/index.d.ts +1 -0
  15. package/dist/ConfirmButton/styles.d.ts +2 -0
  16. package/dist/Notification/Notification.d.ts +3 -0
  17. package/dist/Notification/index.d.ts +2 -0
  18. package/dist/Notification/styles.d.ts +2 -0
  19. package/dist/Notification/types.d.ts +16 -0
  20. package/dist/ResponsiveTable/ResponsiveTable.d.ts +8 -0
  21. package/dist/ResponsiveTable/index.d.ts +1 -0
  22. package/dist/ResponsiveTable/styles.d.ts +2 -0
  23. package/dist/Savebar/ButtonTooltipDecorator.d.ts +6 -0
  24. package/dist/Savebar/Savebar.d.ts +14 -0
  25. package/dist/Savebar/index.d.ts +1 -0
  26. package/dist/Savebar/styles.d.ts +2 -0
  27. package/dist/Sidebar/ExpandButton.d.ts +6 -0
  28. package/dist/Sidebar/MenuItem.d.ts +11 -0
  29. package/dist/Sidebar/Sidebar.d.ts +6 -0
  30. package/dist/Sidebar/fixtures.d.ts +2 -0
  31. package/dist/Sidebar/index.d.ts +4 -0
  32. package/dist/Sidebar/types.d.ts +16 -0
  33. package/dist/SidebarDrawer/MenuItemBtn.d.ts +7 -0
  34. package/dist/SidebarDrawer/SidebarDrawer.d.ts +4 -0
  35. package/dist/SidebarDrawer/index.d.ts +2 -0
  36. package/dist/SidebarDrawer/styles.d.ts +2 -0
  37. package/dist/SquareButton/SquareButton.d.ts +3 -0
  38. package/dist/SquareButton/index.d.ts +1 -0
  39. package/dist/Tooltip/Tooltip.d.ts +6 -0
  40. package/dist/Tooltip/index.d.ts +1 -0
  41. package/dist/Tooltip/styles.d.ts +3 -0
  42. package/dist/UserChipMenu/UserChipMenu.d.ts +8 -0
  43. package/dist/UserChipMenu/UserChipMenuItem.d.ts +6 -0
  44. package/dist/UserChipMenu/context.d.ts +4 -0
  45. package/dist/UserChipMenu/index.d.ts +2 -0
  46. package/dist/UserChipMenu/styles.d.ts +2 -0
  47. package/dist/extensions/index.d.ts +3 -0
  48. package/dist/extensions/sendMessage.d.ts +3 -0
  49. package/dist/extensions/types.d.ts +22 -0
  50. package/dist/extensions/useExtensionMessage.d.ts +2 -0
  51. package/dist/icons/ArrowDropdownIcon.d.ts +2 -0
  52. package/dist/icons/CheckboxCheckedIcon.d.ts +1 -0
  53. package/dist/icons/CheckboxIcon.d.ts +1 -0
  54. package/dist/icons/CheckboxIndeterminateIcon.d.ts +1 -0
  55. package/dist/icons/CompleteIcon.d.ts +2 -0
  56. package/dist/icons/InfoIcon.d.ts +2 -0
  57. package/dist/icons/Logo.d.ts +2 -0
  58. package/dist/icons/NotAllowedIcon.d.ts +2 -0
  59. package/dist/icons/NotAllowedInvertedIcon.d.ts +2 -0
  60. package/dist/icons/WarningIcon.d.ts +2 -0
  61. package/dist/icons/index.d.ts +9 -0
  62. package/dist/index.d.ts +15 -0
  63. package/dist/index.js +8 -0
  64. package/dist/localStorageKeys.d.ts +4 -0
  65. package/dist/macaw-ui.cjs.development.js +2582 -0
  66. package/dist/macaw-ui.cjs.development.js.map +1 -0
  67. package/dist/macaw-ui.cjs.production.min.js +2 -0
  68. package/dist/macaw-ui.cjs.production.min.js.map +1 -0
  69. package/dist/macaw-ui.esm.js +2536 -0
  70. package/dist/macaw-ui.esm.js.map +1 -0
  71. package/dist/theme/Baseline.d.ts +2 -0
  72. package/dist/theme/ThemeProvider.d.ts +17 -0
  73. package/dist/theme/context.d.ts +3 -0
  74. package/dist/theme/createSaleorTheme/createSaleorTheme.d.ts +3 -0
  75. package/dist/theme/createSaleorTheme/index.d.ts +2 -0
  76. package/dist/theme/createSaleorTheme/overrides/buttons.d.ts +3 -0
  77. package/dist/theme/createSaleorTheme/overrides/index.d.ts +3 -0
  78. package/dist/theme/createSaleorTheme/overrides/inputs.d.ts +3 -0
  79. package/dist/theme/createSaleorTheme/overrides/tables.d.ts +3 -0
  80. package/dist/theme/createSaleorTheme/palette.d.ts +2 -0
  81. package/dist/theme/createSaleorTheme/shadows.d.ts +2 -0
  82. package/dist/theme/createSaleorTheme/types.d.ts +53 -0
  83. package/dist/theme/index.d.ts +4 -0
  84. package/dist/theme/styles.d.ts +5 -0
  85. package/dist/theme/themes.d.ts +3 -0
  86. package/dist/theme/types.d.ts +6 -0
  87. package/dist/theme/utils.d.ts +1 -0
  88. package/dist/tools/useLocalStorage.d.ts +5 -0
  89. package/dist/tools/useWindowScroll.d.ts +5 -0
  90. package/dist/utils/Decorator.d.ts +4 -0
  91. package/package.json +117 -0
  92. package/src/ActionBar/ActionBar.stories.tsx +34 -0
  93. package/src/ActionBar/ActionBar.tsx +58 -0
  94. package/src/ActionBar/context.tsx +32 -0
  95. package/src/ActionBar/index.ts +2 -0
  96. package/src/ActionBar/styles.ts +27 -0
  97. package/src/Alert/Alert.stories.tsx +30 -0
  98. package/src/Alert/Alert.tsx +86 -0
  99. package/src/Alert/index.ts +1 -0
  100. package/src/Alert/styles.ts +46 -0
  101. package/src/Backlink/Backlink.stories.tsx +51 -0
  102. package/src/Backlink/Backlink.tsx +40 -0
  103. package/src/Backlink/context.tsx +27 -0
  104. package/src/Backlink/index.ts +2 -0
  105. package/src/Backlink/styles.ts +41 -0
  106. package/src/ConfirmButton/ConfirmButton.stories.tsx +72 -0
  107. package/src/ConfirmButton/ConfirmButton.tsx +119 -0
  108. package/src/ConfirmButton/index.ts +1 -0
  109. package/src/ConfirmButton/styles.ts +44 -0
  110. package/src/Notification/Notification.stories.tsx +42 -0
  111. package/src/Notification/Notification.tsx +98 -0
  112. package/src/Notification/index.ts +2 -0
  113. package/src/Notification/styles.ts +74 -0
  114. package/src/Notification/types.ts +18 -0
  115. package/src/ResponsiveTable/ResponsiveTable.tsx +24 -0
  116. package/src/ResponsiveTable/index.ts +1 -0
  117. package/src/ResponsiveTable/styles.ts +23 -0
  118. package/src/Savebar/ButtonTooltipDecorator.tsx +22 -0
  119. package/src/Savebar/Savebar.stories.tsx +57 -0
  120. package/src/Savebar/Savebar.tsx +79 -0
  121. package/src/Savebar/index.ts +1 -0
  122. package/src/Savebar/styles.ts +25 -0
  123. package/src/Sidebar/ExpandButton.tsx +44 -0
  124. package/src/Sidebar/MenuItem.tsx +217 -0
  125. package/src/Sidebar/Sidebar.stories.tsx +21 -0
  126. package/src/Sidebar/Sidebar.tsx +88 -0
  127. package/src/Sidebar/fixtures.ts +39 -0
  128. package/src/Sidebar/index.ts +4 -0
  129. package/src/Sidebar/types.ts +18 -0
  130. package/src/SidebarDrawer/MenuItemBtn.tsx +40 -0
  131. package/src/SidebarDrawer/SidebarDrawer.stories.tsx +13 -0
  132. package/src/SidebarDrawer/SidebarDrawer.tsx +113 -0
  133. package/src/SidebarDrawer/index.ts +2 -0
  134. package/src/SidebarDrawer/styles.ts +69 -0
  135. package/src/SquareButton/SquareButton.stories.tsx +15 -0
  136. package/src/SquareButton/SquareButton.tsx +35 -0
  137. package/src/SquareButton/index.ts +1 -0
  138. package/src/Tooltip/Tooltip.stories.tsx +19 -0
  139. package/src/Tooltip/Tooltip.tsx +25 -0
  140. package/src/Tooltip/index.ts +1 -0
  141. package/src/Tooltip/styles.ts +28 -0
  142. package/src/UserChipMenu/UserChipMenu.stories.tsx +40 -0
  143. package/src/UserChipMenu/UserChipMenu.tsx +113 -0
  144. package/src/UserChipMenu/UserChipMenuItem.tsx +33 -0
  145. package/src/UserChipMenu/context.ts +19 -0
  146. package/src/UserChipMenu/index.ts +2 -0
  147. package/src/UserChipMenu/styles.ts +65 -0
  148. package/src/assets/placeholder_64x64.png +0 -0
  149. package/src/extensions/index.ts +3 -0
  150. package/src/extensions/sendMessage.ts +23 -0
  151. package/src/extensions/types.ts +26 -0
  152. package/src/extensions/useExtensionMessage.ts +13 -0
  153. package/src/icons/ArrowDropdownIcon.tsx +11 -0
  154. package/src/icons/CheckboxCheckedIcon.tsx +15 -0
  155. package/src/icons/CheckboxIcon.tsx +7 -0
  156. package/src/icons/CheckboxIndeterminateIcon.tsx +17 -0
  157. package/src/icons/CompleteIcon.tsx +25 -0
  158. package/src/icons/InfoIcon.tsx +23 -0
  159. package/src/icons/Logo.tsx +32 -0
  160. package/src/icons/NotAllowedIcon.tsx +25 -0
  161. package/src/icons/NotAllowedInvertedIcon.tsx +25 -0
  162. package/src/icons/WarningIcon.tsx +23 -0
  163. package/src/icons/index.ts +9 -0
  164. package/src/index.tsx +15 -0
  165. package/src/localStorageKeys.ts +4 -0
  166. package/src/theme/Baseline.tsx +30 -0
  167. package/src/theme/ThemeProvider.tsx +84 -0
  168. package/src/theme/context.ts +8 -0
  169. package/src/theme/createSaleorTheme/createSaleorTheme.ts +267 -0
  170. package/src/theme/createSaleorTheme/index.ts +2 -0
  171. package/src/theme/createSaleorTheme/overrides/buttons.ts +94 -0
  172. package/src/theme/createSaleorTheme/overrides/index.ts +15 -0
  173. package/src/theme/createSaleorTheme/overrides/inputs.ts +149 -0
  174. package/src/theme/createSaleorTheme/overrides/tables.ts +74 -0
  175. package/src/theme/createSaleorTheme/palette.ts +38 -0
  176. package/src/theme/createSaleorTheme/shadows.ts +46 -0
  177. package/src/theme/createSaleorTheme/types.ts +84 -0
  178. package/src/theme/index.ts +4 -0
  179. package/src/theme/styles.ts +40 -0
  180. package/src/theme/themes.ts +113 -0
  181. package/src/theme/types.ts +7 -0
  182. package/src/theme/utils.test.ts +43 -0
  183. package/src/theme/utils.ts +13 -0
  184. package/src/tools/useLocalStorage.ts +56 -0
  185. package/src/tools/useWindowScroll.ts +26 -0
  186. package/src/utils/Decorator.tsx +23 -0
@@ -0,0 +1,2582 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
+
7
+ var styles = require('@material-ui/core/styles');
8
+ var lodash = require('lodash');
9
+ var React = require('react');
10
+ var React__default = _interopDefault(React);
11
+ var CssBaseline = _interopDefault(require('@material-ui/core/CssBaseline'));
12
+ var utils = require('@material-ui/core/utils');
13
+ var Button = _interopDefault(require('@material-ui/core/Button'));
14
+ var Card = _interopDefault(require('@material-ui/core/Card'));
15
+ var CardContent = _interopDefault(require('@material-ui/core/CardContent'));
16
+ var Container = _interopDefault(require('@material-ui/core/Container'));
17
+ var Portal = _interopDefault(require('@material-ui/core/Portal'));
18
+ var CircularProgress = _interopDefault(require('@material-ui/core/CircularProgress'));
19
+ var CheckIcon = _interopDefault(require('@material-ui/icons/Check'));
20
+ var clsx = _interopDefault(require('clsx'));
21
+ var Tooltip$1 = _interopDefault(require('@material-ui/core/Tooltip'));
22
+ var Typography = _interopDefault(require('@material-ui/core/Typography'));
23
+ var ArrowBackIcon = _interopDefault(require('@material-ui/icons/ArrowBack'));
24
+ var Skeleton = _interopDefault(require('@material-ui/lab/Skeleton'));
25
+ var ButtonBase = _interopDefault(require('@material-ui/core/ButtonBase'));
26
+ var ClickAwayListener = _interopDefault(require('@material-ui/core/ClickAwayListener'));
27
+ var Paper = _interopDefault(require('@material-ui/core/Paper'));
28
+ var Popper = _interopDefault(require('@material-ui/core/Popper'));
29
+ var SVG = _interopDefault(require('react-inlinesvg'));
30
+ var Drawer = _interopDefault(require('@material-ui/core/Drawer'));
31
+ var ArrowLeftIcon = _interopDefault(require('@material-ui/icons/ArrowLeft'));
32
+ var MenuIcon = _interopDefault(require('@material-ui/icons/Menu'));
33
+ var IconButton = _interopDefault(require('@material-ui/core/IconButton'));
34
+ var CloseIcon = _interopDefault(require('@material-ui/icons/Close'));
35
+ var SnackbarContent = _interopDefault(require('@material-ui/core/SnackbarContent'));
36
+ var Avatar = _interopDefault(require('@material-ui/core/Avatar'));
37
+ var Chip = _interopDefault(require('@material-ui/core/Chip'));
38
+ var Grow = _interopDefault(require('@material-ui/core/Grow'));
39
+ var Hidden = _interopDefault(require('@material-ui/core/Hidden'));
40
+ var Menu = _interopDefault(require('@material-ui/core/MenuList'));
41
+ var MenuItem$1 = _interopDefault(require('@material-ui/core/MenuItem'));
42
+ var Table = _interopDefault(require('@material-ui/core/Table'));
43
+ var core = require('@material-ui/core');
44
+
45
+ function _extends() {
46
+ _extends = Object.assign || function (target) {
47
+ for (var i = 1; i < arguments.length; i++) {
48
+ var source = arguments[i];
49
+
50
+ for (var key in source) {
51
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
52
+ target[key] = source[key];
53
+ }
54
+ }
55
+ }
56
+
57
+ return target;
58
+ };
59
+
60
+ return _extends.apply(this, arguments);
61
+ }
62
+
63
+ function _objectWithoutPropertiesLoose(source, excluded) {
64
+ if (source == null) return {};
65
+ var target = {};
66
+ var sourceKeys = Object.keys(source);
67
+ var key, i;
68
+
69
+ for (i = 0; i < sourceKeys.length; i++) {
70
+ key = sourceKeys[i];
71
+ if (excluded.indexOf(key) >= 0) continue;
72
+ target[key] = source[key];
73
+ }
74
+
75
+ return target;
76
+ }
77
+
78
+ var ActionBarContext = /*#__PURE__*/React__default.createContext(undefined);
79
+ ActionBarContext.displayName = "ActionBarContext";
80
+ var useActionBar = function useActionBar() {
81
+ var ctx = React__default.useContext(ActionBarContext);
82
+
83
+ if (ctx === undefined) {
84
+ throw new Error("useActionBar must be used within a ActionBarContext");
85
+ }
86
+
87
+ return ctx;
88
+ };
89
+ var ActionBarProvider = function ActionBarProvider(_ref) {
90
+ var children = _ref.children;
91
+
92
+ var _React$useState = React__default.useState(true),
93
+ docked = _React$useState[0],
94
+ setDocked = _React$useState[1];
95
+
96
+ var anchor = React__default.useRef(null);
97
+ return React__default.createElement(ActionBarContext.Provider, {
98
+ value: {
99
+ anchor: anchor,
100
+ docked: docked,
101
+ setDocked: setDocked
102
+ }
103
+ }, children);
104
+ };
105
+
106
+ var BacklinkContext = /*#__PURE__*/React__default.createContext(undefined);
107
+ BacklinkContext.displayName = "BacklinkContext";
108
+ var useBacklink = function useBacklink() {
109
+ var ctx = React__default.useContext(BacklinkContext);
110
+
111
+ if (ctx === undefined) {
112
+ throw new Error("useBacklink must be used within a BacklinkContext");
113
+ }
114
+
115
+ return ctx;
116
+ };
117
+ var BacklinkProvider = function BacklinkProvider(_ref) {
118
+ var children = _ref.children;
119
+ var anchor = React__default.useRef(null);
120
+ return React__default.createElement(BacklinkContext.Provider, {
121
+ value: anchor
122
+ }, children);
123
+ };
124
+
125
+ function sendMessageToDashboard(message, targetOrigin) {
126
+ if (!!window.parent) {
127
+ window.parent.postMessage(message, targetOrigin);
128
+ }
129
+ }
130
+ function sendMessageToExtension(message, targetOrigin) {
131
+ var appFrame = document.querySelector("#extension-app");
132
+
133
+ if (!!(appFrame != null && appFrame.contentWindow)) {
134
+ appFrame.contentWindow.postMessage(message, targetOrigin);
135
+ }
136
+ }
137
+
138
+ (function (ExtensionMessageType) {
139
+ ExtensionMessageType[ExtensionMessageType["BREADCRUMB_CLICK"] = 0] = "BREADCRUMB_CLICK";
140
+ ExtensionMessageType[ExtensionMessageType["BREADCRUMB_SET"] = 1] = "BREADCRUMB_SET";
141
+ ExtensionMessageType[ExtensionMessageType["THEME"] = 2] = "THEME";
142
+ })(exports.ExtensionMessageType || (exports.ExtensionMessageType = {}));
143
+
144
+ function useExtensionMessage(handle) {
145
+ React.useEffect(function () {
146
+ window.addEventListener("message", handle);
147
+ return function () {
148
+ return window.removeEventListener("message", handle);
149
+ };
150
+ }, [handle]);
151
+ }
152
+
153
+ var localStorageKeys = {
154
+ theme: "macaw-ui-theme",
155
+ menuShrink: "macaw-ui-menu-shrink"
156
+ };
157
+
158
+ // Copied directly from
159
+ function useLocalStorage(key, initialValue) {
160
+ if (initialValue === void 0) {
161
+ initialValue = "";
162
+ }
163
+
164
+ var _useState = React.useState(function () {
165
+ return window.localStorage.getItem(key) || initialValue;
166
+ }),
167
+ value = _useState[0],
168
+ setValue = _useState[1];
169
+
170
+ var setItem = function setItem(newValue) {
171
+ setValue(newValue);
172
+ window.localStorage.setItem(key, newValue);
173
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
174
+
175
+
176
+ React.useEffect(function () {
177
+ var newValue = window.localStorage.getItem(key);
178
+
179
+ if (value !== newValue) {
180
+ setValue(newValue || initialValue);
181
+ }
182
+ });
183
+ var handleStorage = React.useCallback(function (event) {
184
+ if (event.key === key && event.newValue !== value) {
185
+ setValue(event.newValue || initialValue);
186
+ }
187
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
188
+ [value, key]);
189
+ React.useEffect(function () {
190
+ window.addEventListener("storage", handleStorage);
191
+ return function () {
192
+ return window.removeEventListener("storage", handleStorage);
193
+ };
194
+ }, [handleStorage]);
195
+ return {
196
+ value: value,
197
+ setValue: setItem
198
+ };
199
+ }
200
+
201
+ var ThemeContext = /*#__PURE__*/React__default.createContext(undefined);
202
+ ThemeContext.displayName = "ThemeContext";
203
+
204
+ function makeStyles(styles$1, options) {
205
+ return styles.makeStyles(styles$1, options);
206
+ }
207
+ function useTheme() {
208
+ var saleorTheme = styles.useTheme();
209
+ var themeInfo = React.useContext(ThemeContext);
210
+
211
+ if (themeInfo === undefined || saleorTheme === undefined) {
212
+ throw new Error("useTheme must be used within a ThemeProvider");
213
+ }
214
+
215
+ return _extends({}, saleorTheme, themeInfo);
216
+ }
217
+
218
+ var useStyles = /*#__PURE__*/makeStyles(function (theme) {
219
+ return {
220
+ "@global": {
221
+ "@import": "url('https://rsms.me/inter/inter.css')",
222
+ // For some reason @import clause must be put on top
223
+ // eslint-disable-next-line sort-keys
224
+ "::selection": {
225
+ background: styles.fade(theme.palette.primary.main, 0.2)
226
+ },
227
+ html: {
228
+ fontSize: "62.5%"
229
+ }
230
+ }
231
+ };
232
+ }, {
233
+ name: "Baseline"
234
+ });
235
+ var Baseline = function Baseline() {
236
+ useStyles();
237
+ return React__default.createElement(CssBaseline, null);
238
+ };
239
+ Baseline.displayName = "Baseline";
240
+
241
+ var buttonOverrides = function buttonOverrides(colors) {
242
+ return {
243
+ MuiButton: {
244
+ contained: {
245
+ "&$disabled": {
246
+ backgroundColor: styles.fade(colors.primary, 0.12),
247
+ color: "#FFFFFF"
248
+ },
249
+ "&:active": {
250
+ boxShadow: "none"
251
+ },
252
+ "&:hover": {
253
+ boxShadow: "none"
254
+ },
255
+ boxShadow: "none"
256
+ },
257
+ containedPrimary: {
258
+ "&:active": {
259
+ backgroundColor: styles.darken(colors.primary, 0.4)
260
+ },
261
+ "&:hover": {
262
+ backgroundColor: styles.darken(colors.primary, 0.1)
263
+ }
264
+ },
265
+ label: {
266
+ fontWeight: 600
267
+ },
268
+ root: {
269
+ "& svg": {
270
+ marginLeft: 8
271
+ },
272
+ borderRadius: 4
273
+ },
274
+ textPrimary: {
275
+ "&:not($disabled) span": {
276
+ color: colors.primary
277
+ }
278
+ },
279
+ textSizeSmall: {
280
+ fontSize: "1.3rem"
281
+ }
282
+ },
283
+ MuiIconButton: {
284
+ root: {
285
+ "&:hover": {
286
+ backgroundColor: styles.fade(colors.primary, 0.12)
287
+ }
288
+ }
289
+ },
290
+ MuiSwitch: {
291
+ colorPrimary: {
292
+ "&$checked": {
293
+ color: colors.background.paper
294
+ }
295
+ },
296
+ root: {
297
+ "&$disabled": {
298
+ "&$switchBase": {
299
+ "& + $thumb": {
300
+ backgroundColor: colors.gray.disabled
301
+ }
302
+ }
303
+ },
304
+ height: 48,
305
+ width: 72
306
+ },
307
+ switchBase: {
308
+ "&$checked": {
309
+ transform: "translateX(23px)"
310
+ },
311
+ boxShadow: "none",
312
+ left: 1,
313
+ marginLeft: 4,
314
+ top: 5
315
+ },
316
+ thumb: {
317
+ boxShadow: "none"
318
+ },
319
+ track: {
320
+ "$colorPrimary$checked + &": {
321
+ backgroundColor: colors.primary
322
+ },
323
+ backgroundColor: colors.gray["default"],
324
+ borderRadius: 12,
325
+ height: 24,
326
+ opacity: [["1"], "!important"],
327
+ width: 48
328
+ }
329
+ }
330
+ };
331
+ };
332
+
333
+ var inputOverrides = function inputOverrides(colors) {
334
+ return {
335
+ MuiInput: {
336
+ input: {
337
+ "&:-webkit-autofill": {
338
+ WebkitTextFillColor: colors.font["default"],
339
+ boxShadow: "inset 0 0 0px 9999px " + colors.autofill
340
+ },
341
+ "&::placeholder": {
342
+ opacity: "1 !important"
343
+ },
344
+ color: colors.font["default"]
345
+ },
346
+ underline: {
347
+ "&:after": {
348
+ borderBottomColor: colors.primary
349
+ }
350
+ }
351
+ },
352
+ MuiInputBase: {
353
+ input: {
354
+ "&$disabled": {
355
+ color: colors.input.disabledText
356
+ },
357
+ "&::placeholder": {
358
+ color: colors.font.gray,
359
+ opacity: "1 !important"
360
+ }
361
+ }
362
+ },
363
+ MuiInputLabel: {
364
+ formControl: {
365
+ transform: "translate(0, 1.5px) scale(0.75)",
366
+ transformOrigin: "top left",
367
+ width: "100%"
368
+ },
369
+ outlined: {
370
+ "&$shrink": {
371
+ transform: "translate(12px, 9px) scale(0.75)"
372
+ },
373
+ transform: "translate(14px, 18px) scale(1)"
374
+ },
375
+ root: {
376
+ "&$disabled": {
377
+ color: styles.fade(colors.primary, 0.4) + " !important"
378
+ },
379
+ "&$error": {
380
+ "&$focused": {
381
+ color: colors.error
382
+ },
383
+ color: colors.error
384
+ },
385
+ "&&$focused": {
386
+ "&:not($error)": {
387
+ color: colors.primary
388
+ }
389
+ },
390
+ color: styles.fade(colors.input.text, 0.6)
391
+ },
392
+ shrink: {
393
+ // Negates x0.75 scale
394
+ width: "133%"
395
+ }
396
+ },
397
+ MuiOutlinedInput: {
398
+ input: {
399
+ "&:-webkit-autofill": {
400
+ borderRadius: 4,
401
+ boxShadow: "0 0 0px 1000px rgba(19, 190, 187, 0.1) inset"
402
+ },
403
+ color: colors.input.text,
404
+ padding: "23px 12px 10px 12px"
405
+ },
406
+ inputMultiline: {
407
+ left: -2,
408
+ padding: "10px 0",
409
+ position: "relative"
410
+ },
411
+ root: {
412
+ "& fieldset": {
413
+ "&&:not($error)": {
414
+ borderColor: colors.input.border
415
+ },
416
+ top: 0
417
+ },
418
+ "& legend": {
419
+ display: "none"
420
+ },
421
+ "&$disabled": {
422
+ "& fieldset": {
423
+ borderColor: [[colors.input.disabled], "!important"]
424
+ },
425
+ "& input": {
426
+ backgroundColor: colors.input.disabledBackground,
427
+ color: colors.input.disabledText
428
+ }
429
+ },
430
+ "&$error": {
431
+ "&$focused": {
432
+ "& fieldset": {
433
+ borderColor: colors.error
434
+ },
435
+ "& input": {
436
+ color: colors.error
437
+ }
438
+ },
439
+ "&:hover": {
440
+ "& fieldset": {
441
+ borderColor: colors.error
442
+ },
443
+ "& input": {
444
+ color: colors.error
445
+ }
446
+ }
447
+ },
448
+ "&$focused": {
449
+ "& input": {
450
+ "& fieldset": {
451
+ borderColor: colors.primary
452
+ },
453
+ "&::placeholder": {
454
+ opacity: [[1], "!important"]
455
+ },
456
+ color: colors.font["default"]
457
+ }
458
+ },
459
+ "&:hover": {
460
+ "& input": {
461
+ color: colors.font["default"]
462
+ },
463
+ "&&&": {
464
+ "& fieldset": {
465
+ borderColor: colors.primary
466
+ },
467
+ "&$error fieldset": {
468
+ borderColor: colors.input.error
469
+ }
470
+ }
471
+ },
472
+ backgroundColor: colors.background.paper,
473
+ borderColor: colors.input.border,
474
+ top: 0
475
+ }
476
+ }
477
+ };
478
+ };
479
+
480
+ var tableOverrides = function tableOverrides(colors, fontFamily) {
481
+ return {
482
+ MuiTable: {
483
+ root: {
484
+ fontFamily: fontFamily,
485
+ fontFeatureSettings: '"tnum"'
486
+ }
487
+ },
488
+ MuiTableCell: {
489
+ body: {
490
+ fontSize: "1.6rem"
491
+ },
492
+ head: {
493
+ fontSize: "1.4rem",
494
+ fontWeight: 400,
495
+ color: colors.font.textDisabled
496
+ },
497
+ paddingCheckbox: {
498
+ "&:first-child": {
499
+ padding: "0 12px",
500
+ width: 72
501
+ },
502
+ "&:not(first-child)": {
503
+ padding: 0,
504
+ width: 52
505
+ }
506
+ },
507
+ root: {
508
+ "&:first-child": {
509
+ "&:not($paddingCheckbox)": {
510
+ paddingLeft: 24 + "px",
511
+ textAlign: "left"
512
+ }
513
+ },
514
+ borderBottomColor: colors.paperBorder,
515
+ padding: "16px 24px"
516
+ }
517
+ },
518
+ MuiTablePagination: {
519
+ input: {
520
+ color: colors.primary,
521
+ fontSize: "1.4rem"
522
+ }
523
+ },
524
+ MuiTableRow: {
525
+ footer: {
526
+ "$root$hover&:hover": {
527
+ background: "none"
528
+ }
529
+ },
530
+ head: {
531
+ "$root$hover&:hover": {
532
+ background: "none"
533
+ }
534
+ },
535
+ hover: {
536
+ "$root&:hover": {
537
+ backgroundColor: styles.fade(colors.primary, 0.3)
538
+ }
539
+ },
540
+ root: {
541
+ "&$selected": {
542
+ backgroundColor: styles.fade(colors.primary, 0.05)
543
+ }
544
+ }
545
+ }
546
+ };
547
+ };
548
+
549
+ var overrides = function overrides(colors, fontFamily) {
550
+ return _extends({}, inputOverrides(colors), tableOverrides(colors, fontFamily), buttonOverrides(colors));
551
+ };
552
+
553
+ var createPalette = function createPalette(colors) {
554
+ return {
555
+ action: {
556
+ active: colors.checkbox["default"]
557
+ },
558
+ alert: colors.alert,
559
+ background: colors.background,
560
+ divider: colors.divider,
561
+ error: {
562
+ main: colors.error
563
+ },
564
+ primary: {
565
+ contrastText: "#ffffff",
566
+ dark: colors.font.textDisabled,
567
+ main: colors.primary
568
+ },
569
+ secondary: {
570
+ contrastText: "#ffffff",
571
+ main: colors.secondary
572
+ },
573
+ success: {
574
+ main: colors.success
575
+ },
576
+ text: {
577
+ disabled: colors.font.gray,
578
+ hint: colors.font.gray,
579
+ primary: colors.font["default"],
580
+ secondary: colors.font.gray
581
+ },
582
+ textHighlighted: {
583
+ active: colors.primary,
584
+ inactive: colors.highlightInactive["default"]
585
+ },
586
+ type: colors.theme
587
+ };
588
+ };
589
+
590
+ var createShadow = function createShadow(pv, pb, ps, uv, ub, us, av, ab, as) {
591
+ return ["0 " + pv + "px " + pb + "px " + ps + "px rgba(0, 0, 0, 0.2)", "0 " + uv + "px " + ub + "px " + us + "px rgba(0, 0, 0, 0.14)", "0 " + av + "px " + ab + "px " + as + "px rgba(0, 0, 0, 0.12)"].join(",");
592
+ };
593
+
594
+ var shadows = ["none", /*#__PURE__*/createShadow(1, 1, 0, 2, 1, -2, 1, 3, 0), /*#__PURE__*/createShadow(2, 2, 0, 3, 1, -2, 1, 5, 0), /*#__PURE__*/createShadow(3, 4, 0, 3, 3, -2, 1, 8, 0), /*#__PURE__*/createShadow(4, 5, 0, 1, 10, 0, 2, 4, -1), /*#__PURE__*/createShadow(5, 8, 0, 1, 14, 0, 3, 4, -1), /*#__PURE__*/createShadow(6, 10, 0, 1, 18, 0, 3, 5, -1), /*#__PURE__*/createShadow(7, 10, 0, 2, 16, 1, 4, 5, -2), /*#__PURE__*/createShadow(8, 10, 1, 3, 14, 2, 5, 5, -3), /*#__PURE__*/createShadow(9, 12, 1, 3, 16, 3, 5, 6, -4), /*#__PURE__*/createShadow(10, 14, 1, 4, 18, 3, 6, 7, -4), /*#__PURE__*/createShadow(11, 16, 1, 4, 20, 3, 6, 7, -4), /*#__PURE__*/createShadow(12, 17, 1, 5, 22, 4, 7, 8, -4), /*#__PURE__*/createShadow(13, 19, 1, 5, 24, 4, 7, 8, -4), /*#__PURE__*/createShadow(14, 21, 1, 5, 26, 4, 7, 9, -5), /*#__PURE__*/createShadow(15, 22, 1, 5, 28, 4, 7, 9, -5), /*#__PURE__*/createShadow(16, 24, 2, 6, 30, 5, 8, 10, -5), /*#__PURE__*/createShadow(15, 27, 3, 7, 28, 3, 10, 14, -4), /*#__PURE__*/createShadow(14, 30, 4, 8, 26, 1, 12, 17, -3), /*#__PURE__*/createShadow(13, 33, 4, 8, 24, -1, 14, 20, -1), /*#__PURE__*/createShadow(12, 36, 5, 9, 22, -2, 16, 24, 1), /*#__PURE__*/createShadow(11, 39, 6, 10, 20, -4, 18, 28, 1), /*#__PURE__*/createShadow(10, 41, 7, 10, 18, -5, 20, 31, 2), /*#__PURE__*/createShadow(9, 44, 7, 11, 16, -6, 22, 35, 2), /*#__PURE__*/createShadow(9, 46, 8, 11, 15, -7, 24, 38, 3)];
595
+
596
+ var ICONBUTTON_SIZE = 48;
597
+ var fontFamily = '"Inter", "roboto", "sans-serif"';
598
+ var createTheme = function createTheme(colors) {
599
+ return styles.createMuiTheme({
600
+ overrides: _extends({}, overrides(colors, fontFamily), {
601
+ MuiCard: {
602
+ root: {
603
+ borderColor: colors.paperBorder,
604
+ borderRadius: 8,
605
+ borderStyle: "solid",
606
+ borderWidth: 1,
607
+ overflow: "visible"
608
+ }
609
+ },
610
+ MuiCardActions: {
611
+ root: {
612
+ flexDirection: "row-reverse"
613
+ }
614
+ },
615
+ MuiCardContent: {
616
+ root: {
617
+ padding: "2.4rem"
618
+ }
619
+ },
620
+ MuiCardHeader: {
621
+ action: {
622
+ position: "relative",
623
+ top: 4
624
+ },
625
+ root: {
626
+ padding: "1.6rem 2.4rem"
627
+ }
628
+ },
629
+ MuiChip: {
630
+ avatar: {
631
+ fontSize: "1.2rem",
632
+ height: 32,
633
+ left: -5,
634
+ position: "relative",
635
+ width: 32
636
+ },
637
+ root: {
638
+ "& $avatar": {
639
+ fontSize: "1.2rem"
640
+ },
641
+ fontSize: "1.3rem"
642
+ }
643
+ },
644
+ MuiDialogActions: {
645
+ root: {
646
+ borderTop: "1px solid " + colors.divider,
647
+ padding: "16px 24px"
648
+ }
649
+ },
650
+ MuiDialogContent: {
651
+ root: {
652
+ padding: "24px 0px",
653
+ margin: "0px 24px"
654
+ }
655
+ },
656
+ MuiDialogContentText: {
657
+ root: {
658
+ "&:last-child": {
659
+ marginBottom: 0
660
+ }
661
+ }
662
+ },
663
+ MuiDialogTitle: {
664
+ root: {
665
+ borderBottom: "1px solid " + colors.divider
666
+ }
667
+ },
668
+ MuiFormControlLabel: {
669
+ label: {
670
+ lineHeight: 1.2,
671
+ marginLeft: 4
672
+ }
673
+ },
674
+ MuiFormLabel: {
675
+ filled: {
676
+ "&&:not($error)": {
677
+ color: colors.primary
678
+ }
679
+ },
680
+ root: {
681
+ "&&$focused:not($error)": {
682
+ color: colors.font.gray
683
+ }
684
+ }
685
+ },
686
+ MuiSvgIcon: {
687
+ root: {
688
+ fontSize: "2.4rem",
689
+ height: "1em",
690
+ width: "1em"
691
+ }
692
+ },
693
+ MuiList: {
694
+ root: {
695
+ display: "grid",
696
+ gridRowGap: 8 + "px",
697
+ padding: "8px !important"
698
+ }
699
+ },
700
+ MuiListItem: {
701
+ button: {
702
+ "&:focus": {
703
+ backgroundColor: colors.input["default"]
704
+ }
705
+ },
706
+ root: {
707
+ "&$selected": {
708
+ "&:hover": {
709
+ backgroundColor: colors.input["default"]
710
+ },
711
+ backgroundColor: colors.input["default"]
712
+ }
713
+ }
714
+ },
715
+ MuiMenu: {
716
+ paper: {
717
+ borderRadius: 8
718
+ }
719
+ },
720
+ MuiMenuItem: {
721
+ root: {
722
+ "&$selected, &$selected:focus, &$selected:hover": {
723
+ backgroundColor: [colors.background["default"], "!important"],
724
+ color: colors.primary,
725
+ fontWeight: 700
726
+ },
727
+ "&:hover": {
728
+ backgroundColor: [colors.background["default"], "!important"],
729
+ color: colors.font["default"],
730
+ fontWeight: 400
731
+ },
732
+ borderRadius: 4
733
+ }
734
+ },
735
+ MuiSelect: {
736
+ root: {
737
+ "&$disabled": {
738
+ backgroundColor: colors.input.disabledBackground
739
+ }
740
+ }
741
+ },
742
+ MuiSnackbarContent: {
743
+ action: {
744
+ "& $MuiIconButton": {
745
+ "& svg": {
746
+ color: colors.font["default"]
747
+ }
748
+ },
749
+ display: "block",
750
+ paddingBottom: 10,
751
+ paddingLeft: 0,
752
+ paddingRight: 45
753
+ },
754
+ message: {
755
+ fontSize: 16
756
+ },
757
+ root: {
758
+ backgroundColor: colors.background.paper,
759
+ boxShadow: "0 6px 10px 0px rgba(0, 0, 0, 0.15), 0 1px 18px 0px rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.10)",
760
+ color: colors.font["default"],
761
+ display: "block",
762
+ maxWidth: 480
763
+ }
764
+ },
765
+ MuiTooltip: {
766
+ tooltip: {
767
+ fontSize: "0.8em"
768
+ }
769
+ },
770
+ MuiTouchRipple: {
771
+ child: {
772
+ backgroundColor: styles.fade(colors.primary, 0.2)
773
+ },
774
+ childLeaving: {
775
+ backgroundColor: styles.fade(colors.primary, 0.2)
776
+ },
777
+ ripple: {
778
+ "&$rippleVisible": {
779
+ backgroundColor: styles.fade(colors.primary, 0.2)
780
+ },
781
+ borderRadius: "100%"
782
+ }
783
+ }
784
+ }),
785
+ palette: createPalette(colors),
786
+ props: {
787
+ MuiFormControl: {
788
+ variant: "filled"
789
+ },
790
+ MuiTextField: {
791
+ variant: "outlined"
792
+ },
793
+ MuiCard: {
794
+ elevation: 0
795
+ },
796
+ MuiTypography: {
797
+ component: "div"
798
+ },
799
+ MuiCheckbox: {
800
+ color: "primary"
801
+ },
802
+ MuiTooltip: {
803
+ placement: "right-end"
804
+ }
805
+ },
806
+ shadows: shadows,
807
+ spacing: function spacing(value) {
808
+ if (value === void 0) {
809
+ value = 1;
810
+ }
811
+
812
+ return value * 8 / 10 + "rem";
813
+ },
814
+ typography: {
815
+ allVariants: {
816
+ fontFamily: fontFamily
817
+ },
818
+ body1: {
819
+ color: colors.font["default"],
820
+ fontSize: "1.6rem"
821
+ },
822
+ body2: {
823
+ fontSize: "1.4rem"
824
+ },
825
+ button: {
826
+ fontSize: "1.4rem"
827
+ },
828
+ caption: {
829
+ fontSize: "1.2rem"
830
+ },
831
+ fontFamily: fontFamily,
832
+ h1: {
833
+ fontSize: "4.8rem",
834
+ fontWeight: 700
835
+ },
836
+ h4: {
837
+ fontSize: "3.4rem",
838
+ color: colors.font["default"]
839
+ },
840
+ h5: {
841
+ fontSize: "2.1rem",
842
+ fontWeight: 500
843
+ },
844
+ h6: {
845
+ fontSize: "2rem",
846
+ fontWeight: 500
847
+ },
848
+ subtitle1: {
849
+ fontSize: "1.6rem"
850
+ },
851
+ subtitle2: {
852
+ fontSize: "1.4rem"
853
+ }
854
+ }
855
+ });
856
+ };
857
+
858
+ var dark = {
859
+ alert: {
860
+ paper: {
861
+ error: "#E0444E",
862
+ info: "#2E2F31",
863
+ success: "#5DC292",
864
+ warning: "#E29A2E"
865
+ },
866
+ icon: {
867
+ error: "#FE6E76",
868
+ info: "#FAFAFA",
869
+ success: "#5DC292",
870
+ warning: "#FFB84E"
871
+ }
872
+ },
873
+ highlightInactive: {
874
+ "default": "#78797A"
875
+ },
876
+ autofill: "#5D5881",
877
+ background: {
878
+ "default": "#1D1E1F",
879
+ paper: "#2E2F31"
880
+ },
881
+ checkbox: {
882
+ "default": "#FFFFFF"
883
+ },
884
+ divider: "#252728",
885
+ error: "#C22D74",
886
+ font: {
887
+ button: "#202124",
888
+ "default": "#FCFCFC",
889
+ gray: "#9E9D9D",
890
+ textButton: "#FFFFFF",
891
+ textDisabled: "#FCFCFC"
892
+ },
893
+ gray: {
894
+ "default": "#202124",
895
+ disabled: "rgba(32, 33, 36, 0.6)"
896
+ },
897
+ input: {
898
+ border: "#9d9d9d",
899
+ "default": "#25262A",
900
+ disabled: "#393939",
901
+ disabledBackground: "#292A2D",
902
+ disabledText: "#9D9D9D",
903
+ error: "#8C2054",
904
+ text: "#FCFCFC",
905
+ textHover: "#616161"
906
+ },
907
+ paperBorder: "#252728",
908
+ primary: "#13BEBB",
909
+ secondary: "#21125E",
910
+ success: "#5DC292",
911
+ theme: "dark"
912
+ };
913
+ var light = {
914
+ alert: {
915
+ paper: {
916
+ error: "#FFD6D9",
917
+ info: "#FFFFFF",
918
+ success: "#DFF3E9",
919
+ warning: "#FFF4E4"
920
+ },
921
+ icon: {
922
+ error: "#FE6E76",
923
+ info: "#28234A",
924
+ success: "#5DC292",
925
+ warning: "#FFB84E"
926
+ }
927
+ },
928
+ highlightInactive: {
929
+ "default": "#C8C8C8"
930
+ },
931
+ autofill: "#f4f6c5",
932
+ background: {
933
+ "default": "#EFF5F8",
934
+ paper: "#FFFFFF"
935
+ },
936
+ checkbox: {
937
+ "default": "#616161"
938
+ },
939
+ divider: "#EAEAEA",
940
+ error: "#FE6D76",
941
+ font: {
942
+ button: "#FFFFFF",
943
+ "default": "#3D3D3D",
944
+ gray: "#616161",
945
+ textButton: "#06847B",
946
+ textDisabled: "#616161"
947
+ },
948
+ gray: {
949
+ "default": "#C8C8C8",
950
+ disabled: "rgba(216, 216, 216, 0.3)"
951
+ },
952
+ input: {
953
+ border: "#BDBDBD",
954
+ "default": "#FFFFFF",
955
+ disabled: "#EAEAEA",
956
+ disabledBackground: "#F4F4F4",
957
+ disabledText: "#9D9D9D",
958
+ error: "#8C2054",
959
+ text: "#3D3D3D",
960
+ textHover: "#616161"
961
+ },
962
+ paperBorder: "#EAEAEA",
963
+ primary: "#06847B",
964
+ secondary: "#21125E",
965
+ success: "#5DC292",
966
+ theme: "light"
967
+ };
968
+
969
+ function changeColorMeta(color) {
970
+ var themeColorTag = document.createElement("meta");
971
+ themeColorTag.setAttribute("content", color);
972
+ themeColorTag.setAttribute("name", "theme-color");
973
+ var existingColorTag = document.head.querySelector("meta[name=\"theme-color\"]");
974
+
975
+ if (existingColorTag) {
976
+ existingColorTag.remove();
977
+ }
978
+
979
+ document.head.appendChild(themeColorTag);
980
+ }
981
+
982
+ var ThemeProvider = function ThemeProvider(_ref) {
983
+ var children = _ref.children,
984
+ _ref$defaultTheme = _ref.defaultTheme,
985
+ defaultTheme = _ref$defaultTheme === void 0 ? "light" : _ref$defaultTheme,
986
+ _ref$palettes = _ref.palettes,
987
+ palettes = _ref$palettes === void 0 ? {} : _ref$palettes,
988
+ _ref$overrides = _ref.overrides,
989
+ overrides = _ref$overrides === void 0 ? {} : _ref$overrides;
990
+
991
+ var _useLocalStorage = useLocalStorage(localStorageKeys.theme, defaultTheme),
992
+ themeTypeName = _useLocalStorage.value,
993
+ setThemeType = _useLocalStorage.setValue;
994
+
995
+ var themeType = themeTypeName;
996
+
997
+ var themes = _extends({
998
+ light: light,
999
+ dark: dark
1000
+ }, palettes);
1001
+
1002
+ var theme = lodash.merge(createTheme(themes[themeType]), overrides);
1003
+
1004
+ var sendThemeToExtension = function sendThemeToExtension() {
1005
+ return sendMessageToExtension({
1006
+ theme: themeType,
1007
+ type: exports.ExtensionMessageType.THEME
1008
+ }, "*");
1009
+ };
1010
+
1011
+ React.useEffect(function () {
1012
+ sendThemeToExtension();
1013
+ changeColorMeta(theme.palette.background["default"]); // eslint-disable-next-line react-hooks/exhaustive-deps
1014
+ }, [themeType]);
1015
+ return React__default.createElement(ThemeContext.Provider, {
1016
+ value: {
1017
+ themeType: themeType,
1018
+ sendThemeToExtension: sendThemeToExtension,
1019
+ setTheme: setThemeType
1020
+ }
1021
+ }, React__default.createElement(styles.MuiThemeProvider, {
1022
+ theme: theme
1023
+ }, React__default.createElement(ActionBarProvider, null, React__default.createElement(BacklinkProvider, null, React__default.createElement(Baseline, null), children))));
1024
+ };
1025
+
1026
+ var CompleteIcon = function CompleteIcon(props) {
1027
+ return React__default.createElement("svg", Object.assign({
1028
+ width: "40",
1029
+ height: "40",
1030
+ viewBox: "0 0 40 40",
1031
+ fill: "none",
1032
+ xmlns: "http://www.w3.org/2000/svg"
1033
+ }, props), React__default.createElement("circle", {
1034
+ cx: "20",
1035
+ cy: "20",
1036
+ r: "20",
1037
+ fill: "white"
1038
+ }), React__default.createElement("circle", {
1039
+ cx: "20",
1040
+ cy: "20",
1041
+ r: "14",
1042
+ stroke: "#5DC292",
1043
+ strokeWidth: "4"
1044
+ }), React__default.createElement("path", {
1045
+ fillRule: "evenodd",
1046
+ clipRule: "evenodd",
1047
+ d: "M28.7678 13.7678C29.3536 14.3536 29.3536 15.3033 28.7678 15.8891L17.4142 27.2426L12.0607 21.8891C11.4749 21.3033 11.4749 20.3536 12.0607 19.7678L12.7678 19.0607C13.3536 18.4749 14.3033 18.4749 14.8891 19.0607L17.4142 21.5858L25.9393 13.0607C26.5251 12.4749 27.4749 12.4749 28.0607 13.0607L28.7678 13.7678Z",
1048
+ fill: "#5DC292"
1049
+ }));
1050
+ };
1051
+ CompleteIcon.displayName = "CompleteIcon";
1052
+
1053
+ var InfoIcon = function InfoIcon(props) {
1054
+ return React__default.createElement("svg", Object.assign({
1055
+ width: "40",
1056
+ height: "40",
1057
+ viewBox: "0 0 40 40",
1058
+ fill: "none",
1059
+ xmlns: "http://www.w3.org/2000/svg"
1060
+ }, props), React__default.createElement("circle", {
1061
+ cx: "20",
1062
+ cy: "20",
1063
+ r: "20",
1064
+ fill: "white"
1065
+ }), React__default.createElement("circle", {
1066
+ cx: "20",
1067
+ cy: "20",
1068
+ r: "14",
1069
+ stroke: "#28234A",
1070
+ strokeWidth: "4"
1071
+ }), React__default.createElement("path", {
1072
+ fillRule: "evenodd",
1073
+ clipRule: "evenodd",
1074
+ d: "M19.5 11C18.6716 11 18 11.6716 18 12.5V20.5C18 21.3284 18.6716 22 19.5 22H20.5C21.3284 22 22 21.3284 22 20.5V12.5C22 11.6716 21.3284 11 20.5 11H19.5ZM19.5 25C18.6716 25 18 25.6716 18 26.5V27.5C18 28.3284 18.6716 29 19.5 29H20.5C21.3284 29 22 28.3284 22 27.5V26.5C22 25.6716 21.3284 25 20.5 25H19.5Z",
1075
+ fill: "#28234A"
1076
+ }));
1077
+ };
1078
+ InfoIcon.displayName = "InfoIcon";
1079
+
1080
+ var NotAllowedIcon = function NotAllowedIcon(props) {
1081
+ return React__default.createElement("svg", Object.assign({
1082
+ width: "40",
1083
+ height: "40",
1084
+ viewBox: "0 0 40 40",
1085
+ fill: "none",
1086
+ xmlns: "http://www.w3.org/2000/svg"
1087
+ }, props), React__default.createElement("circle", {
1088
+ cx: "20",
1089
+ cy: "20",
1090
+ r: "16",
1091
+ fill: "#F5FAFB"
1092
+ }), React__default.createElement("circle", {
1093
+ cx: "20",
1094
+ cy: "20",
1095
+ r: "20",
1096
+ fill: "white"
1097
+ }), React__default.createElement("path", {
1098
+ fillRule: "evenodd",
1099
+ clipRule: "evenodd",
1100
+ d: "M26.9531 29.7815C24.9914 31.1784 22.5917 32 20 32C13.3726 32 8 26.6274 8 20C8 17.4083 8.82158 15.0086 10.2185 13.0469L26.9531 29.7815ZM29.7815 26.9531L13.0469 10.2185C15.0086 8.82158 17.4083 8 20 8C26.6274 8 32 13.3726 32 20C32 22.5917 31.1784 24.9914 29.7815 26.9531ZM36 20C36 28.8366 28.8366 36 20 36C11.1634 36 4 28.8366 4 20C4 11.1634 11.1634 4 20 4C28.8366 4 36 11.1634 36 20Z",
1101
+ fill: "#FE6E76"
1102
+ }));
1103
+ };
1104
+ NotAllowedIcon.displayName = "NotAllowedIcon";
1105
+
1106
+ var NotAllowedInvertedIcon = function NotAllowedInvertedIcon(props) {
1107
+ return React__default.createElement("svg", Object.assign({
1108
+ width: "40",
1109
+ height: "40",
1110
+ viewBox: "0 0 40 40",
1111
+ fill: "none",
1112
+ xmlns: "http://www.w3.org/2000/svg"
1113
+ }, props), React__default.createElement("circle", {
1114
+ cx: "20",
1115
+ cy: "20",
1116
+ r: "16",
1117
+ fill: "#F5FAFB"
1118
+ }), React__default.createElement("circle", {
1119
+ cx: "20",
1120
+ cy: "20",
1121
+ r: "20",
1122
+ fill: "#FE6E76"
1123
+ }), React__default.createElement("path", {
1124
+ fillRule: "evenodd",
1125
+ clipRule: "evenodd",
1126
+ d: "M26.9531 29.7815C24.9914 31.1784 22.5917 32 20 32C13.3726 32 8 26.6274 8 20C8 17.4083 8.82158 15.0086 10.2185 13.0469L26.9531 29.7815ZM29.7815 26.9531L13.0469 10.2185C15.0086 8.82158 17.4083 8 20 8C26.6274 8 32 13.3726 32 20C32 22.5917 31.1784 24.9914 29.7815 26.9531ZM36 20C36 28.8366 28.8366 36 20 36C11.1634 36 4 28.8366 4 20C4 11.1634 11.1634 4 20 4C28.8366 4 36 11.1634 36 20Z",
1127
+ fill: "white"
1128
+ }));
1129
+ };
1130
+ NotAllowedInvertedIcon.displayName = "NotAllowedInvertedIcon";
1131
+
1132
+ var WarningIcon = function WarningIcon(props) {
1133
+ return React__default.createElement("svg", Object.assign({
1134
+ width: "40",
1135
+ height: "40",
1136
+ viewBox: "0 0 40 40",
1137
+ fill: "none",
1138
+ xmlns: "http://www.w3.org/2000/svg"
1139
+ }, props), React__default.createElement("circle", {
1140
+ cx: "20",
1141
+ cy: "20",
1142
+ r: "20",
1143
+ fill: "white"
1144
+ }), React__default.createElement("circle", {
1145
+ cx: "20",
1146
+ cy: "20",
1147
+ r: "14",
1148
+ stroke: "#FFB84E",
1149
+ strokeWidth: "4"
1150
+ }), React__default.createElement("path", {
1151
+ fillRule: "evenodd",
1152
+ clipRule: "evenodd",
1153
+ d: "M19.5 11C18.6716 11 18 11.6716 18 12.5V20.5C18 21.3284 18.6716 22 19.5 22H20.5C21.3284 22 22 21.3284 22 20.5V12.5C22 11.6716 21.3284 11 20.5 11H19.5ZM19.5 25C18.6716 25 18 25.6716 18 26.5V27.5C18 28.3284 18.6716 29 19.5 29H20.5C21.3284 29 22 28.3284 22 27.5V26.5C22 25.6716 21.3284 25 20.5 25H19.5Z",
1154
+ fill: "#FFB84E"
1155
+ }));
1156
+ };
1157
+ WarningIcon.displayName = "WarningIcon";
1158
+
1159
+ var ArrowDropdownIcon = /*#__PURE__*/utils.createSvgIcon( /*#__PURE__*/React__default.createElement("g", {
1160
+ style: {
1161
+ fillRule: "evenodd"
1162
+ }
1163
+ }, /*#__PURE__*/React__default.createElement("path", {
1164
+ d: "M7 10l5 5 5-5z"
1165
+ })), "ArrowDropdownIcon");
1166
+
1167
+ var CheckboxIcon = /*#__PURE__*/utils.createSvgIcon( /*#__PURE__*/React__default.createElement("rect", {
1168
+ x: "5",
1169
+ y: "5",
1170
+ width: "14",
1171
+ height: "14",
1172
+ stroke: "currentColor",
1173
+ fill: "none"
1174
+ }), "CheckboxIcon");
1175
+
1176
+ var CheckboxCheckedIcon = /*#__PURE__*/utils.createSvgIcon( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("rect", {
1177
+ x: "5",
1178
+ y: "5",
1179
+ width: "14",
1180
+ height: "14",
1181
+ fill: "currentColor"
1182
+ }), /*#__PURE__*/React__default.createElement("path", {
1183
+ fillRule: "evenodd",
1184
+ clipRule: "evenodd",
1185
+ d: "M 16.7527 9.33783 L 10.86618 15.7595 L 8 12.32006 L 8.76822 11.67988 L 10.90204 14.24046 L 16.0155 8.66211 L 16.7527 9.33783 Z",
1186
+ fill: "white"
1187
+ })), "CheckboxCheckedIcon");
1188
+
1189
+ var CheckboxIndeterminateIcon = /*#__PURE__*/utils.createSvgIcon( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("rect", {
1190
+ x: "5",
1191
+ y: "5",
1192
+ width: "14",
1193
+ height: "14",
1194
+ stroke: "currentColor",
1195
+ fill: "none"
1196
+ }), /*#__PURE__*/React__default.createElement("rect", {
1197
+ x: "8",
1198
+ y: "11",
1199
+ width: "8",
1200
+ height: "2",
1201
+ fill: "currentColor"
1202
+ })), "CheckboxIndeterminateIcon");
1203
+
1204
+ // It's only optimized for esm, cjs will remain fat blob
1205
+
1206
+ function getPosition() {
1207
+ return {
1208
+ x: window.pageXOffset,
1209
+ y: window.pageYOffset
1210
+ };
1211
+ }
1212
+
1213
+ function useWindowScroll() {
1214
+ var _useState = React.useState(getPosition),
1215
+ scroll = _useState[0],
1216
+ setScroll = _useState[1];
1217
+
1218
+ React.useEffect(function () {
1219
+ var handleScroll = lodash.throttle(function () {
1220
+ return setScroll(getPosition());
1221
+ }, 100);
1222
+ window.addEventListener("scroll", handleScroll);
1223
+ return function () {
1224
+ return window.removeEventListener("scroll", handleScroll);
1225
+ };
1226
+ }, []);
1227
+ return scroll;
1228
+ }
1229
+
1230
+ var useStyles$1 = /*#__PURE__*/makeStyles(function (theme) {
1231
+ var _content;
1232
+
1233
+ return {
1234
+ content: (_content = {
1235
+ "&:last-child": {
1236
+ paddingBottom: theme.spacing(2)
1237
+ },
1238
+ display: "flex",
1239
+ paddingBottom: theme.spacing(2),
1240
+ paddingTop: theme.spacing(2)
1241
+ }, _content[theme.breakpoints.down("sm")] = {
1242
+ marginTop: theme.spacing(1)
1243
+ }, _content),
1244
+ paper: {
1245
+ borderBottomLeftRadius: 0,
1246
+ borderBottomRightRadius: 0
1247
+ },
1248
+ root: {
1249
+ height: 70
1250
+ }
1251
+ };
1252
+ }, {
1253
+ name: "Savebar"
1254
+ });
1255
+
1256
+ var ActionBar = function ActionBar(_ref) {
1257
+ var disabled = _ref.disabled,
1258
+ children = _ref.children,
1259
+ state = _ref.state,
1260
+ rest = _objectWithoutPropertiesLoose(_ref, ["disabled", "children", "state"]);
1261
+
1262
+ var classes = useStyles$1();
1263
+
1264
+ var _useActionBar = useActionBar(),
1265
+ anchor = _useActionBar.anchor,
1266
+ docked = _useActionBar.docked,
1267
+ setDocked = _useActionBar.setDocked;
1268
+
1269
+ var scrollPosition = useWindowScroll();
1270
+ React__default.useEffect(function () {
1271
+ if (!disabled && state !== "loading") {
1272
+ setDocked(false);
1273
+ }
1274
+ }, [disabled, state, setDocked]);
1275
+ React__default.useEffect(function () {
1276
+ return function () {
1277
+ return setDocked(true);
1278
+ };
1279
+ }, [setDocked]);
1280
+ var scrolledToBottom = scrollPosition.y + window.innerHeight >= document.body.scrollHeight;
1281
+
1282
+ if (!anchor.current) {
1283
+ return null;
1284
+ }
1285
+
1286
+ return React__default.createElement(Portal, {
1287
+ container: anchor.current
1288
+ }, React__default.createElement("div", Object.assign({
1289
+ className: classes.root
1290
+ }, rest), React__default.createElement(Container, {
1291
+ maxWidth: "lg"
1292
+ }, React__default.createElement(Card, {
1293
+ className: classes.paper,
1294
+ elevation: !(docked || scrolledToBottom) ? 16 : 0
1295
+ }, React__default.createElement(CardContent, {
1296
+ className: classes.content
1297
+ }, children)))));
1298
+ };
1299
+ ActionBar.displayName = "ActionBar";
1300
+
1301
+ var useStyles$2 = /*#__PURE__*/makeStyles(function (theme) {
1302
+ return {
1303
+ error: {
1304
+ "&:hover": {
1305
+ backgroundColor: theme.palette.error.main
1306
+ },
1307
+ backgroundColor: theme.palette.error.main,
1308
+ color: theme.palette.error.contrastText
1309
+ },
1310
+ icon: {
1311
+ marginLeft: "0 !important",
1312
+ position: "absolute",
1313
+ transitionDuration: theme.transitions.duration.standard + "ms"
1314
+ },
1315
+ invisible: {
1316
+ opacity: 0
1317
+ },
1318
+ label: {
1319
+ alignItems: "center",
1320
+ display: "flex",
1321
+ transitionDuration: theme.transitions.duration.standard + "ms"
1322
+ },
1323
+ progress: {
1324
+ "& svg": {
1325
+ color: theme.palette.common.white,
1326
+ margin: 0
1327
+ },
1328
+ position: "absolute",
1329
+ transitionDuration: theme.transitions.duration.standard + "ms"
1330
+ },
1331
+ success: {
1332
+ "&:hover": {
1333
+ backgroundColor: theme.palette.primary.main
1334
+ },
1335
+ backgroundColor: theme.palette.primary.main,
1336
+ color: theme.palette.primary.contrastText
1337
+ }
1338
+ };
1339
+ }, {
1340
+ name: "ConfirmButton"
1341
+ });
1342
+
1343
+ var DEFAULT_NOTIFICATION_SHOW_TIME = 3000;
1344
+ var ConfirmButton = function ConfirmButton(_ref) {
1345
+ var _clsx, _clsx2, _clsx3, _clsx4;
1346
+
1347
+ var children = _ref.children,
1348
+ className = _ref.className,
1349
+ disabled = _ref.disabled,
1350
+ labels = _ref.labels,
1351
+ noTransition = _ref.noTransition,
1352
+ transitionState = _ref.transitionState,
1353
+ onClick = _ref.onClick,
1354
+ onTransitionToDefault = _ref.onTransitionToDefault,
1355
+ props = _objectWithoutPropertiesLoose(_ref, ["children", "className", "disabled", "labels", "noTransition", "transitionState", "onClick", "onTransitionToDefault"]);
1356
+
1357
+ var classes = useStyles$2();
1358
+
1359
+ var _React$useState = React__default.useState(false),
1360
+ displayCompletedActionState = _React$useState[0],
1361
+ setDisplayCompletedActionState = _React$useState[1];
1362
+
1363
+ var timeout = React__default.useRef();
1364
+ React__default.useEffect(function () {
1365
+ if (!noTransition && transitionState === "loading") {
1366
+ setDisplayCompletedActionState(true);
1367
+ }
1368
+ }, [transitionState, noTransition]);
1369
+ React__default.useEffect(function () {
1370
+ if (!noTransition && ["error", "success"].includes(transitionState)) {
1371
+ timeout.current = setTimeout(function () {
1372
+ setDisplayCompletedActionState(false);
1373
+
1374
+ if (onTransitionToDefault) {
1375
+ onTransitionToDefault();
1376
+ }
1377
+ }, DEFAULT_NOTIFICATION_SHOW_TIME);
1378
+ } else if (transitionState === "loading") {
1379
+ clearTimeout(timeout.current);
1380
+ }
1381
+
1382
+ return function () {
1383
+ if (timeout.current) {
1384
+ clearTimeout(timeout.current);
1385
+ }
1386
+ };
1387
+ }, [noTransition, transitionState, onTransitionToDefault]);
1388
+ var isCompleted = noTransition ? transitionState !== "default" : displayCompletedActionState;
1389
+ return React__default.createElement(Button, Object.assign({
1390
+ variant: "contained",
1391
+ onClick: transitionState === "loading" ? undefined : onClick,
1392
+ color: "primary",
1393
+ className: clsx(className, (_clsx = {}, _clsx[classes.error] = transitionState === "error" && isCompleted, _clsx[classes.success] = transitionState === "success" && isCompleted, _clsx)),
1394
+ disabled: !isCompleted && disabled,
1395
+ "data-test-state": isCompleted ? transitionState : "default"
1396
+ }, props), React__default.createElement(CircularProgress, {
1397
+ size: 24,
1398
+ color: "inherit",
1399
+ className: clsx((_clsx2 = {}, _clsx2[classes.progress] = true, _clsx2[classes.invisible] = transitionState !== "loading", _clsx2))
1400
+ }), React__default.createElement(CheckIcon, {
1401
+ className: clsx((_clsx3 = {}, _clsx3[classes.icon] = true, _clsx3[classes.invisible] = !(transitionState === "success" && isCompleted), _clsx3))
1402
+ }), React__default.createElement("span", {
1403
+ className: clsx((_clsx4 = {}, _clsx4[classes.label] = true, _clsx4[classes.invisible] = (transitionState === "loading" || transitionState === "success") && isCompleted, _clsx4))
1404
+ }, transitionState === "error" && isCompleted ? labels.error : children || labels.confirm));
1405
+ };
1406
+ ConfirmButton.displayName = "ConfirmButton";
1407
+
1408
+ var ButtonTooltipDecorator = function ButtonTooltipDecorator(_ref) {
1409
+ var tooltip = _ref.tooltip,
1410
+ children = _ref.children;
1411
+
1412
+ if (tooltip) {
1413
+ return React__default.createElement(Tooltip$1, {
1414
+ title: tooltip,
1415
+ placement: "top"
1416
+ }, React__default.createElement("span", null, children));
1417
+ }
1418
+
1419
+ return React__default.createElement(React__default.Fragment, null, children);
1420
+ };
1421
+ ButtonTooltipDecorator.displayName = "ButtonTooltipDecorator";
1422
+
1423
+ var useStyles$3 = /*#__PURE__*/makeStyles(function (theme) {
1424
+ return {
1425
+ button: {
1426
+ marginRight: theme.spacing(1)
1427
+ },
1428
+ cancelButton: {
1429
+ marginRight: theme.spacing(2)
1430
+ },
1431
+ deleteButton: {
1432
+ "&:hover": {
1433
+ backgroundColor: theme.palette.error.dark
1434
+ },
1435
+ backgroundColor: theme.palette.error.main,
1436
+ color: theme.palette.error.contrastText
1437
+ },
1438
+ spacer: {
1439
+ flex: "1"
1440
+ }
1441
+ };
1442
+ }, {
1443
+ name: "Savebar"
1444
+ });
1445
+
1446
+ var Savebar = function Savebar(_ref) {
1447
+ var disabled = _ref.disabled,
1448
+ labels = _ref.labels,
1449
+ tooltips = _ref.tooltips,
1450
+ state = _ref.state,
1451
+ onCancel = _ref.onCancel,
1452
+ onDelete = _ref.onDelete,
1453
+ onSubmit = _ref.onSubmit;
1454
+ var classes = useStyles$3();
1455
+
1456
+ var _useActionBar = useActionBar(),
1457
+ setDocked = _useActionBar.setDocked;
1458
+
1459
+ return React__default.createElement(ActionBar, {
1460
+ state: state,
1461
+ disabled: disabled
1462
+ }, !!onDelete && React__default.createElement(ButtonTooltipDecorator, {
1463
+ tooltip: tooltips == null ? void 0 : tooltips["delete"]
1464
+ }, React__default.createElement(Button, {
1465
+ variant: "contained",
1466
+ onClick: onDelete,
1467
+ className: classes.deleteButton,
1468
+ "data-test": "button-bar-delete"
1469
+ }, labels["delete"])), React__default.createElement("div", {
1470
+ className: classes.spacer
1471
+ }), React__default.createElement(ButtonTooltipDecorator, {
1472
+ tooltip: tooltips == null ? void 0 : tooltips.cancel
1473
+ }, React__default.createElement(Button, {
1474
+ className: classes.cancelButton,
1475
+ variant: "text",
1476
+ onClick: onCancel,
1477
+ "data-test": "button-bar-cancel"
1478
+ }, labels.cancel)), React__default.createElement(ButtonTooltipDecorator, {
1479
+ tooltip: tooltips == null ? void 0 : tooltips.confirm
1480
+ }, React__default.createElement(ConfirmButton, {
1481
+ disabled: disabled,
1482
+ labels: labels,
1483
+ onClick: onSubmit,
1484
+ transitionState: state,
1485
+ "data-test": "button-bar-confirm",
1486
+ onTransitionToDefault: function onTransitionToDefault() {
1487
+ return setDocked(true);
1488
+ }
1489
+ })));
1490
+ };
1491
+ Savebar.displayName = "Savebar";
1492
+
1493
+ var useStyles$4 = /*#__PURE__*/makeStyles(function (theme) {
1494
+ var _root;
1495
+
1496
+ return {
1497
+ backArrow: {
1498
+ fontSize: 30
1499
+ },
1500
+ menuButton: {
1501
+ flex: "0 0 auto",
1502
+ marginLeft: theme.spacing(-2),
1503
+ marginRight: theme.spacing(),
1504
+ marginTop: theme.spacing(-2)
1505
+ },
1506
+ root: (_root = {
1507
+ "&:hover": {
1508
+ color: theme.typography.body1.color
1509
+ },
1510
+ alignItems: "center",
1511
+ color: theme.palette.grey[500],
1512
+ cursor: "pointer",
1513
+ display: "flex",
1514
+ marginTop: theme.spacing(0.5),
1515
+ transition: theme.transitions.duration.standard + "ms"
1516
+ }, _root[theme.breakpoints.down("sm")] = {
1517
+ margin: theme.spacing(4, 0, 0, 0)
1518
+ }, _root),
1519
+ skeleton: {
1520
+ width: "10rem"
1521
+ },
1522
+ title: {
1523
+ color: "inherit",
1524
+ flex: 1,
1525
+ marginLeft: theme.spacing(),
1526
+ textTransform: "uppercase"
1527
+ }
1528
+ };
1529
+ }, {
1530
+ name: "AppHeader"
1531
+ });
1532
+
1533
+ var Backlink = function Backlink(_ref) {
1534
+ var children = _ref.children,
1535
+ onClick = _ref.onClick;
1536
+ var classes = useStyles$4();
1537
+ var anchor = useBacklink();
1538
+
1539
+ if (!anchor.current) {
1540
+ return null;
1541
+ }
1542
+
1543
+ return React__default.createElement(Portal, {
1544
+ container: anchor.current
1545
+ }, React__default.createElement("div", {
1546
+ className: classes.root,
1547
+ onClick: onClick,
1548
+ "data-test-id": "app-header-back-button"
1549
+ }, React__default.createElement(ArrowBackIcon, {
1550
+ className: classes.backArrow
1551
+ }), children ? React__default.createElement(Typography, {
1552
+ className: classes.title
1553
+ }, children) : React__default.createElement(Skeleton, {
1554
+ className: classes.skeleton
1555
+ })));
1556
+ };
1557
+ Backlink.displayName = "Backlink";
1558
+
1559
+ var Logo = function Logo() {
1560
+ return React__default.createElement("svg", {
1561
+ width: "36",
1562
+ height: "33",
1563
+ viewBox: "0 0 36 33",
1564
+ fill: "none",
1565
+ xmlns: "http://www.w3.org/2000/svg"
1566
+ }, React__default.createElement("path", {
1567
+ fillRule: "evenodd",
1568
+ clipRule: "evenodd",
1569
+ d: "M16.6072 33C22.4977 33 23.9789 30.6214 23.9789 27.3629C23.9789 23.3549 20.3772 22.6056 17.3814 22.1167C15.0924 21.7258 14.0489 21.5304 14.0489 20.1292C14.0489 19.0867 14.9577 18.6954 16.4389 18.6954C18.2566 18.6954 18.7614 19.2168 18.9298 20.7482L23.7097 20.0314C23.3055 16.7404 21.4542 15.0787 16.5735 15.0787C11.2216 15.0787 9.33654 17.2293 9.33654 20.6504C9.30299 25.082 13.4768 25.5382 16.5735 26.0594C18.492 26.418 19.2328 26.7437 19.2328 28.0146C19.2328 29.0573 18.5933 29.5135 16.6745 29.5135C14.5539 29.5135 13.9144 29.1551 13.6451 27.4281L9 28.1124C9.43753 31.599 11.4908 33 16.6072 33Z",
1570
+ fill: "#28234A"
1571
+ }), React__default.createElement("path", {
1572
+ fillRule: "evenodd",
1573
+ clipRule: "evenodd",
1574
+ d: "M19.7838 0L13.4043 6.64709H29.1638L35.5433 0H19.7838Z",
1575
+ fill: "#8AC4EB"
1576
+ }), React__default.createElement("path", {
1577
+ fillRule: "evenodd",
1578
+ clipRule: "evenodd",
1579
+ d: "M6.15911 2.31187C6.27552 2.1958 6.4332 2.13062 6.59759 2.13062H27.3248C27.5761 2.13062 27.8026 2.28211 27.8987 2.51437C27.9947 2.74664 27.9412 3.01388 27.7632 3.19134L21.7867 9.1508C21.6703 9.26687 21.5126 9.33205 21.3482 9.33205H0.621008C0.369679 9.33205 0.143131 9.18056 0.0471181 8.94829C-0.0488948 8.71603 0.00456112 8.44879 0.182532 8.27133L6.15911 2.31187ZM6.85429 3.37259L2.12325 8.09007H21.0915L25.8225 3.37259H6.85429Z",
1580
+ fill: "#28234A"
1581
+ }));
1582
+ };
1583
+ Logo.displayName = "Logo";
1584
+
1585
+ var useStyles$5 = /*#__PURE__*/makeStyles(function (theme) {
1586
+ return {
1587
+ root: {
1588
+ "&:hover, &:focus": {
1589
+ background: "#daedeb"
1590
+ },
1591
+ background: theme.palette.background.paper,
1592
+ borderRadius: 16,
1593
+ color: theme.palette.primary.main,
1594
+ height: 48,
1595
+ transition: theme.transitions.duration.shortest + "ms",
1596
+ width: 48
1597
+ }
1598
+ };
1599
+ }, {
1600
+ name: "ExpandButton"
1601
+ });
1602
+ var SquareButton = function SquareButton(_ref) {
1603
+ var className = _ref.className,
1604
+ rest = _objectWithoutPropertiesLoose(_ref, ["className"]);
1605
+
1606
+ var classes = useStyles$5({});
1607
+ return React__default.createElement(ButtonBase, Object.assign({
1608
+ className: clsx(classes.root, className)
1609
+ }, rest));
1610
+ };
1611
+ SquareButton.displayName = "SquareButton";
1612
+
1613
+ var useStyles$6 = /*#__PURE__*/makeStyles(function (theme) {
1614
+ return {
1615
+ arrow: {
1616
+ transition: theme.transitions.duration.shortest + "ms"
1617
+ },
1618
+ shrunk: {
1619
+ transform: "scaleX(-1)"
1620
+ }
1621
+ };
1622
+ }, {
1623
+ name: "ExpandButton"
1624
+ });
1625
+ var ExpandButton = function ExpandButton(_ref) {
1626
+ var _clsx;
1627
+
1628
+ var isShrunk = _ref.isShrunk,
1629
+ rest = _objectWithoutPropertiesLoose(_ref, ["isShrunk"]);
1630
+
1631
+ var classes = useStyles$6({});
1632
+ return React__default.createElement(SquareButton, Object.assign({}, rest), React__default.createElement(ArrowBackIcon, {
1633
+ className: clsx(classes.arrow, (_clsx = {}, _clsx[classes.shrunk] = isShrunk, _clsx))
1634
+ }));
1635
+ };
1636
+ ExpandButton.displayName = "ExpandButton";
1637
+
1638
+ var menuWidth = 210;
1639
+ var shrunkMenuWidth = 72;
1640
+ var useStyles$7 = /*#__PURE__*/makeStyles(function (theme) {
1641
+ return {
1642
+ hideLabel: {
1643
+ "&$label": {
1644
+ opacity: 0
1645
+ }
1646
+ },
1647
+ icon: {
1648
+ "& svg": {
1649
+ height: 24,
1650
+ width: 24
1651
+ },
1652
+ marginRight: theme.spacing(1.5),
1653
+ transition: theme.transitions.duration.shortest + "ms"
1654
+ },
1655
+ label: {
1656
+ cursor: "pointer",
1657
+ display: "block",
1658
+ fontSize: 16,
1659
+ fontWeight: "bold",
1660
+ opacity: 1,
1661
+ transition: theme.transitions.duration.shortest + "ms"
1662
+ },
1663
+ labelRoot: {
1664
+ position: "absolute",
1665
+ left: 72,
1666
+ width: 200,
1667
+ textAlign: "left",
1668
+ pointerEvents: "none"
1669
+ },
1670
+ menuItemBtn: {
1671
+ "&:focus": {
1672
+ color: theme.palette.primary.main,
1673
+ outline: 0
1674
+ },
1675
+ background: "none",
1676
+ border: "none",
1677
+ color: "inherit",
1678
+ cursor: "pointer",
1679
+ display: "inline-flex",
1680
+ margin: 0,
1681
+ padding: 0
1682
+ },
1683
+ paper: {
1684
+ borderRadius: 16,
1685
+ boxShadow: "0px 6px 30px rgba(0, 0, 0, 0.16)",
1686
+ cursor: "default",
1687
+ padding: theme.spacing(3),
1688
+ textAlign: "left"
1689
+ },
1690
+ popper: {
1691
+ marginLeft: theme.spacing(3),
1692
+ zIndex: 2
1693
+ },
1694
+ root: {
1695
+ "&:hover, &:focus": {
1696
+ color: theme.palette.primary.main,
1697
+ outline: 0
1698
+ },
1699
+ borderBottomRightRadius: 100,
1700
+ borderTopRightRadius: 100,
1701
+ color: styles.fade(theme.palette.text.primary, 0.6),
1702
+ cursor: "pointer",
1703
+ display: "flex",
1704
+ height: 56,
1705
+ marginBottom: theme.spacing(),
1706
+ overflow: "hidden",
1707
+ padding: theme.spacing(2, 3, 2, 3.5),
1708
+ transition: theme.transitions.duration.shortest + "ms",
1709
+ width: shrunkMenuWidth
1710
+ },
1711
+ rootActive: {
1712
+ "&$root": {
1713
+ background: theme.palette.background.paper,
1714
+ boxShadow: "0px 6px 30px rgba(0, 0, 0, 0.16)",
1715
+ color: theme.palette.primary.main
1716
+ }
1717
+ },
1718
+ rootExpanded: {
1719
+ width: menuWidth
1720
+ },
1721
+ subMenuLabel: {
1722
+ "&$label": {
1723
+ "&:not(:last-child)": {
1724
+ marginBottom: theme.spacing(2)
1725
+ }
1726
+ },
1727
+ "&:hover, &:focus": {
1728
+ color: theme.palette.primary.main,
1729
+ outline: 0
1730
+ },
1731
+ background: "none",
1732
+ border: "none",
1733
+ color: styles.fade(theme.palette.text.primary, 0.6),
1734
+ padding: 0,
1735
+ textAlign: "left",
1736
+ textDecoration: "none",
1737
+ whiteSpace: "nowrap"
1738
+ }
1739
+ };
1740
+ }, {
1741
+ name: "MenuItem"
1742
+ });
1743
+ var MenuItem = function MenuItem(_ref) {
1744
+ var _clsx, _clsx2;
1745
+
1746
+ var active = _ref.active,
1747
+ menuItem = _ref.menuItem,
1748
+ isMenuShrunk = _ref.isMenuShrunk,
1749
+ onClick = _ref.onClick;
1750
+ var classes = useStyles$7({});
1751
+
1752
+ var _React$useState = React__default.useState(false),
1753
+ open = _React$useState[0],
1754
+ setOpen = _React$useState[1];
1755
+
1756
+ var anchor = React__default.useRef(null);
1757
+
1758
+ var handleClick = function handleClick(event, menuItem) {
1759
+ event.stopPropagation();
1760
+
1761
+ if (menuItem.children) {
1762
+ setOpen(true);
1763
+ } else {
1764
+ onClick(menuItem.url);
1765
+ setOpen(false);
1766
+ }
1767
+ };
1768
+
1769
+ return React__default.createElement("div", {
1770
+ className: clsx(classes.root, (_clsx = {}, _clsx[classes.rootActive] = active, _clsx[classes.rootExpanded] = !isMenuShrunk, _clsx)),
1771
+ ref: anchor,
1772
+ onClick: function onClick(event) {
1773
+ return handleClick(event, menuItem);
1774
+ }
1775
+ }, React__default.createElement("button", {
1776
+ className: classes.menuItemBtn,
1777
+ "data-test": "menu-item-label",
1778
+ "data-test-id": menuItem.id
1779
+ }, menuItem.iconSrc && React__default.createElement(SVG, {
1780
+ className: classes.icon,
1781
+ src: menuItem.iconSrc
1782
+ }), React__default.createElement(Typography, {
1783
+ "aria-label": menuItem.ariaLabel,
1784
+ className: clsx(classes.label, classes.labelRoot, (_clsx2 = {}, _clsx2[classes.hideLabel] = isMenuShrunk, _clsx2)),
1785
+ variant: "body2"
1786
+ }, menuItem.label)), menuItem.children && React__default.createElement(Popper, {
1787
+ className: classes.popper,
1788
+ open: open,
1789
+ anchorEl: anchor.current,
1790
+ transition: true,
1791
+ disablePortal: true,
1792
+ placement: "right-start"
1793
+ }, React__default.createElement(ClickAwayListener, {
1794
+ onClickAway: function onClickAway() {
1795
+ return setOpen(false);
1796
+ }
1797
+ }, React__default.createElement(Paper, {
1798
+ className: classes.paper
1799
+ }, menuItem.children.map(function (subMenuItem) {
1800
+ var linkProps = subMenuItem.external ? {
1801
+ href: subMenuItem.url,
1802
+ target: "_blank"
1803
+ } : {};
1804
+ return React__default.createElement(Typography, Object.assign({
1805
+ "aria-label": subMenuItem.ariaLabel,
1806
+ component: subMenuItem.external ? "a" : "button",
1807
+ className: clsx(classes.label, classes.subMenuLabel),
1808
+ key: subMenuItem.url,
1809
+ onClick: function onClick(event) {
1810
+ return handleClick(event, subMenuItem);
1811
+ },
1812
+ "data-test": "submenu-item-label",
1813
+ "data-test-id": subMenuItem.id,
1814
+ variant: "body2"
1815
+ }, linkProps), subMenuItem.label);
1816
+ })))));
1817
+ };
1818
+ MenuItem.displayName = "MenuItem";
1819
+
1820
+ var useStyles$8 = /*#__PURE__*/makeStyles(function (theme) {
1821
+ return {
1822
+ expandButton: {
1823
+ marginLeft: theme.spacing(2)
1824
+ },
1825
+ "float": {
1826
+ height: "100vh",
1827
+ position: "fixed"
1828
+ },
1829
+ logo: {
1830
+ margin: "36px 0 " + theme.spacing(3) + " " + theme.spacing(3.5)
1831
+ },
1832
+ root: {
1833
+ transition: "width 0.5s ease",
1834
+ width: menuWidth,
1835
+ zIndex: 100
1836
+ },
1837
+ rootShrink: {
1838
+ width: shrunkMenuWidth
1839
+ },
1840
+ toolbarContainer: {
1841
+ margin: theme.spacing(1, 0, 1, 2)
1842
+ }
1843
+ };
1844
+ }, {
1845
+ name: "SideBar"
1846
+ });
1847
+ var Sidebar = function Sidebar(_ref) {
1848
+ var _clsx;
1849
+
1850
+ var active = _ref.active,
1851
+ menuItems = _ref.menuItems,
1852
+ toolbar = _ref.toolbar,
1853
+ onMenuItemClick = _ref.onMenuItemClick;
1854
+ var classes = useStyles$8({});
1855
+
1856
+ var _useLocalStorage = useLocalStorage(localStorageKeys.menuShrink, false.toString()),
1857
+ isShrunkStr = _useLocalStorage.value,
1858
+ setShrink = _useLocalStorage.setValue;
1859
+
1860
+ var isShrunk = isShrunkStr === "true";
1861
+ return React__default.createElement("div", {
1862
+ className: clsx(classes.root, (_clsx = {}, _clsx[classes.rootShrink] = isShrunk, _clsx))
1863
+ }, React__default.createElement("div", {
1864
+ className: classes["float"]
1865
+ }, React__default.createElement("div", {
1866
+ className: classes.logo
1867
+ }, React__default.createElement(Logo, null)), menuItems.map(function (menuItem) {
1868
+ return React__default.createElement(MenuItem, {
1869
+ active: active === menuItem.id,
1870
+ isMenuShrunk: isShrunk,
1871
+ menuItem: menuItem,
1872
+ onClick: onMenuItemClick,
1873
+ key: menuItem.ariaLabel
1874
+ });
1875
+ }), toolbar && React__default.createElement("div", {
1876
+ className: classes.toolbarContainer
1877
+ }, toolbar), React__default.createElement(ExpandButton, {
1878
+ className: classes.expandButton,
1879
+ isShrunk: isShrunk,
1880
+ onClick: function onClick() {
1881
+ return setShrink((!isShrunk).toString());
1882
+ }
1883
+ })));
1884
+ };
1885
+ Sidebar.displayName = "SideBar";
1886
+
1887
+ var useStyles$9 = /*#__PURE__*/makeStyles(function (theme) {
1888
+ return {
1889
+ activeMenuLabel: {
1890
+ display: "flex"
1891
+ },
1892
+ container: {
1893
+ overflowX: "hidden",
1894
+ width: "100%"
1895
+ },
1896
+ containerSubMenu: {
1897
+ "&$container": {
1898
+ overflow: "hidden"
1899
+ }
1900
+ },
1901
+ content: {
1902
+ width: "50%"
1903
+ },
1904
+ icon: {
1905
+ marginRight: theme.spacing(2)
1906
+ },
1907
+ innerContainer: {
1908
+ display: "flex",
1909
+ position: "relative",
1910
+ right: 0,
1911
+ transition: theme.transitions.duration["short"] + "ms",
1912
+ width: "200%"
1913
+ },
1914
+ label: {
1915
+ fontWeight: "bold"
1916
+ },
1917
+ logo: {
1918
+ display: "block",
1919
+ marginBottom: theme.spacing(4)
1920
+ },
1921
+ menuItemBtn: {
1922
+ alignItems: "center",
1923
+ background: "none",
1924
+ border: "none",
1925
+ color: theme.palette.text.secondary,
1926
+ display: "flex",
1927
+ marginBottom: theme.spacing(3),
1928
+ padding: 0,
1929
+ textDecoration: "none"
1930
+ },
1931
+ root: {
1932
+ background: theme.palette.background["default"],
1933
+ borderBottomRightRadius: 32,
1934
+ borderTopRightRadius: 32,
1935
+ padding: theme.spacing(3),
1936
+ width: 260
1937
+ },
1938
+ secondaryContentActive: {
1939
+ right: "100%"
1940
+ },
1941
+ subMenuTopBar: {
1942
+ alignItems: "center",
1943
+ display: "flex",
1944
+ justifyContent: "space-between",
1945
+ marginBottom: theme.spacing(3)
1946
+ }
1947
+ };
1948
+ }, {
1949
+ name: "SideBarDrawer"
1950
+ });
1951
+
1952
+ var MenuItemBtn = function MenuItemBtn(_ref) {
1953
+ var menuItem = _ref.menuItem,
1954
+ _onClick = _ref.onClick;
1955
+ var classes = useStyles$9();
1956
+ var linkProps = menuItem.external ? {
1957
+ href: menuItem.url,
1958
+ target: "_blank"
1959
+ } : {};
1960
+ var Component = menuItem.external ? "a" : "button";
1961
+ return React__default.createElement(Component, Object.assign({
1962
+ className: classes.menuItemBtn,
1963
+ "data-test": "menu-item-label",
1964
+ "data-test-id": menuItem.id,
1965
+ onClick: function onClick() {
1966
+ return _onClick(menuItem.url);
1967
+ }
1968
+ }, linkProps), menuItem.iconSrc && React__default.createElement(SVG, {
1969
+ className: classes.icon,
1970
+ src: menuItem.iconSrc
1971
+ }), React__default.createElement(Typography, {
1972
+ "aria-label": menuItem.ariaLabel,
1973
+ className: classes.label
1974
+ }, menuItem.label));
1975
+ };
1976
+ MenuItemBtn.displayName = "MenuItemBtn";
1977
+
1978
+ var SidebarDrawer = function SidebarDrawer(_ref) {
1979
+ var _clsx, _clsx2, _activeMenu$children;
1980
+
1981
+ var menuItems = _ref.menuItems,
1982
+ onMenuItemClick = _ref.onMenuItemClick;
1983
+
1984
+ var _React$useState = React__default.useState(false),
1985
+ isOpened = _React$useState[0],
1986
+ setOpened = _React$useState[1];
1987
+
1988
+ var classes = useStyles$9({});
1989
+
1990
+ var _React$useState2 = React__default.useState(null),
1991
+ activeMenu = _React$useState2[0],
1992
+ setActiveMenu = _React$useState2[1];
1993
+
1994
+ var _React$useState3 = React__default.useState(false),
1995
+ showSubmenu = _React$useState3[0],
1996
+ setShowSubmenu = _React$useState3[1];
1997
+
1998
+ var container = React__default.useRef(null);
1999
+
2000
+ var handleMenuItemClick = function handleMenuItemClick(url) {
2001
+ setOpened(false);
2002
+ setShowSubmenu(false);
2003
+ onMenuItemClick(url);
2004
+ };
2005
+
2006
+ var handleMenuItemWithChildrenClick = function handleMenuItemWithChildrenClick(menuItem) {
2007
+ var _container$current;
2008
+
2009
+ setActiveMenu(menuItem);
2010
+ setShowSubmenu(true);
2011
+ (_container$current = container.current) == null ? void 0 : _container$current.scrollTo({
2012
+ top: 0
2013
+ });
2014
+ };
2015
+
2016
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(SquareButton, {
2017
+ onClick: function onClick() {
2018
+ return setOpened(true);
2019
+ }
2020
+ }, React__default.createElement(MenuIcon, null)), React__default.createElement(Drawer, {
2021
+ classes: {
2022
+ paper: classes.root
2023
+ },
2024
+ open: isOpened,
2025
+ onClose: function onClose() {
2026
+ return setOpened(false);
2027
+ }
2028
+ }, React__default.createElement("div", {
2029
+ className: clsx(classes.container, (_clsx = {}, _clsx[classes.containerSubMenu] = showSubmenu, _clsx)),
2030
+ ref: container
2031
+ }, React__default.createElement("div", {
2032
+ className: clsx(classes.innerContainer, (_clsx2 = {}, _clsx2[classes.secondaryContentActive] = showSubmenu, _clsx2))
2033
+ }, React__default.createElement("div", {
2034
+ className: classes.content
2035
+ }, React__default.createElement("div", {
2036
+ className: classes.logo
2037
+ }, React__default.createElement(Logo, null)), menuItems.map(function (menuItem) {
2038
+ return React__default.createElement(MenuItemBtn, {
2039
+ menuItem: menuItem,
2040
+ onClick: menuItem.children ? function () {
2041
+ return handleMenuItemWithChildrenClick(menuItem);
2042
+ } : handleMenuItemClick,
2043
+ key: menuItem.ariaLabel
2044
+ });
2045
+ })), activeMenu && React__default.createElement("div", {
2046
+ className: classes.content
2047
+ }, React__default.createElement("div", {
2048
+ className: classes.subMenuTopBar
2049
+ }, React__default.createElement("div", {
2050
+ className: classes.activeMenuLabel
2051
+ }, activeMenu.iconSrc && React__default.createElement(SVG, {
2052
+ className: classes.icon,
2053
+ src: activeMenu.iconSrc
2054
+ }), React__default.createElement(Typography, {
2055
+ className: classes.label
2056
+ }, activeMenu.label)), React__default.createElement(SquareButton, {
2057
+ onClick: function onClick() {
2058
+ return setShowSubmenu(false);
2059
+ }
2060
+ }, React__default.createElement(ArrowLeftIcon, null))), (_activeMenu$children = activeMenu.children) == null ? void 0 : _activeMenu$children.map(function (subMenuItem) {
2061
+ return React__default.createElement(MenuItemBtn, {
2062
+ menuItem: subMenuItem,
2063
+ onClick: handleMenuItemClick,
2064
+ key: subMenuItem.ariaLabel
2065
+ });
2066
+ }))))));
2067
+ };
2068
+ SidebarDrawer.displayName = "SideBarDrawer";
2069
+
2070
+ var useStyles$a = /*#__PURE__*/makeStyles(function (theme) {
2071
+ return {
2072
+ close: {
2073
+ color: theme.palette.common.black,
2074
+ position: "absolute",
2075
+ right: theme.spacing(-2),
2076
+ top: theme.spacing(-1)
2077
+ },
2078
+ closeNoContent: {
2079
+ "&$close": {
2080
+ right: theme.spacing(-3),
2081
+ top: theme.spacing(-3)
2082
+ }
2083
+ },
2084
+ container: {
2085
+ columnGap: theme.spacing(2),
2086
+ display: "grid",
2087
+ gridTemplateColumns: "40px 1fr"
2088
+ },
2089
+ content: {
2090
+ padding: theme.spacing(0, 1)
2091
+ },
2092
+ root: {},
2093
+ titleBar: {
2094
+ marginTop: 6,
2095
+ marginBottom: theme.spacing(1),
2096
+ position: "relative"
2097
+ },
2098
+ error: {
2099
+ background: theme.palette.alert.paper.error
2100
+ },
2101
+ warning: {
2102
+ background: theme.palette.alert.paper.warning
2103
+ },
2104
+ success: {
2105
+ background: theme.palette.alert.paper.success
2106
+ }
2107
+ };
2108
+ }, {
2109
+ name: "Alert"
2110
+ });
2111
+
2112
+ function getIcon(variant) {
2113
+ switch (variant) {
2114
+ case "error":
2115
+ return React__default.createElement(NotAllowedIcon, null);
2116
+
2117
+ case "success":
2118
+ return React__default.createElement(CompleteIcon, null);
2119
+
2120
+ case "warning":
2121
+ return React__default.createElement(WarningIcon, null);
2122
+ }
2123
+
2124
+ return React__default.createElement(InfoIcon, null);
2125
+ }
2126
+
2127
+ var Alert = function Alert(_ref) {
2128
+ var _clsx, _clsx2;
2129
+
2130
+ var className = _ref.className,
2131
+ _ref$close = _ref.close,
2132
+ close = _ref$close === void 0 ? true : _ref$close,
2133
+ _ref$variant = _ref.variant,
2134
+ variant = _ref$variant === void 0 ? "info" : _ref$variant,
2135
+ title = _ref.title,
2136
+ children = _ref.children;
2137
+ var classes = useStyles$a();
2138
+
2139
+ var _React$useState = React__default.useState(true),
2140
+ visible = _React$useState[0],
2141
+ setVisible = _React$useState[1];
2142
+
2143
+ if (!visible) {
2144
+ return null;
2145
+ }
2146
+
2147
+ return React__default.createElement(Card, {
2148
+ elevation: 0,
2149
+ className: clsx(className, classes.root, (_clsx = {}, _clsx[classes.error] = variant === "error", _clsx[classes.warning] = variant === "warning", _clsx[classes.success] = variant === "success", _clsx)),
2150
+ "data-test": "alert"
2151
+ }, React__default.createElement(CardContent, null, React__default.createElement("div", {
2152
+ className: classes.container
2153
+ }, React__default.createElement("div", null, getIcon(variant)), React__default.createElement("div", {
2154
+ className: classes.content
2155
+ }, React__default.createElement("div", {
2156
+ className: classes.titleBar
2157
+ }, React__default.createElement(Typography, {
2158
+ variant: "h5"
2159
+ }, title), close && React__default.createElement(IconButton, {
2160
+ className: clsx(classes.close, (_clsx2 = {}, _clsx2[classes.closeNoContent] = !!children, _clsx2)),
2161
+ onClick: function onClick() {
2162
+ return setVisible(false);
2163
+ },
2164
+ "data-test": "close"
2165
+ }, React__default.createElement(CloseIcon, null))), typeof children === "string" ? React__default.createElement(Typography, {
2166
+ variant: "body1"
2167
+ }, children) : children))));
2168
+ };
2169
+ Alert.displayName = "Alert";
2170
+
2171
+ var iconWidth = 40;
2172
+ var useStyles$b = /*#__PURE__*/makeStyles(function (theme) {
2173
+ return {
2174
+ actionBtn: {
2175
+ left: -4,
2176
+ position: "relative",
2177
+ minWidth: "unset"
2178
+ },
2179
+ closeBtn: {
2180
+ "& svg": {
2181
+ maxHeight: 20,
2182
+ maxWidth: 20
2183
+ },
2184
+ padding: 10,
2185
+ position: "absolute",
2186
+ right: 5,
2187
+ top: 7
2188
+ },
2189
+ closeBtnInfo: {
2190
+ color: theme.palette.text.primary
2191
+ },
2192
+ error: {
2193
+ backgroundColor: theme.palette.alert.paper.error
2194
+ },
2195
+ hiddenText: {
2196
+ maxHeight: 0
2197
+ },
2198
+ info: {},
2199
+ snackbar: {
2200
+ borderRadius: 4,
2201
+ padding: theme.spacing(0, 6, 1, 2),
2202
+ position: "relative"
2203
+ },
2204
+ snackbarContainer: {
2205
+ marginBottom: theme.spacing(2),
2206
+ maxWidth: 450,
2207
+ position: "relative"
2208
+ },
2209
+ snackbarAction: {
2210
+ paddingLeft: "calc(" + iconWidth + "px + " + theme.spacing(2) + ")"
2211
+ },
2212
+ success: {
2213
+ backgroundColor: theme.palette.alert.paper.success
2214
+ },
2215
+ text: {
2216
+ fontWeight: 400,
2217
+ paddingTop: 5
2218
+ },
2219
+ warning: {
2220
+ backgroundColor: theme.palette.alert.paper.warning
2221
+ },
2222
+ messageContainer: {
2223
+ paddingTop: theme.spacing(2),
2224
+ position: "relative"
2225
+ },
2226
+ container: {
2227
+ columnGap: theme.spacing(2),
2228
+ display: "grid",
2229
+ gridTemplateColumns: iconWidth + "px 1fr"
2230
+ },
2231
+ title: {
2232
+ marginTop: 6,
2233
+ marginBottom: theme.spacing(0.5)
2234
+ }
2235
+ };
2236
+ }, {
2237
+ name: "Notification"
2238
+ });
2239
+
2240
+ function getIcon$1(variant) {
2241
+ switch (variant) {
2242
+ case "error":
2243
+ return React__default.createElement(NotAllowedIcon, null);
2244
+
2245
+ case "success":
2246
+ return React__default.createElement(CompleteIcon, null);
2247
+
2248
+ case "warning":
2249
+ return React__default.createElement(WarningIcon, null);
2250
+ }
2251
+
2252
+ return React__default.createElement(InfoIcon, null);
2253
+ }
2254
+
2255
+ var Notification = function Notification(_ref) {
2256
+ var _clsx, _clsx2;
2257
+
2258
+ var onClose = _ref.onClose,
2259
+ title = _ref.title,
2260
+ type = _ref.type,
2261
+ action = _ref.action,
2262
+ content = _ref.content,
2263
+ className = _ref.className,
2264
+ rest = _objectWithoutPropertiesLoose(_ref, ["onClose", "title", "type", "action", "content", "className"]);
2265
+
2266
+ var classes = useStyles$b();
2267
+ return React__default.createElement("div", Object.assign({
2268
+ className: clsx(classes.snackbarContainer, className),
2269
+ "data-test": "notification",
2270
+ "data-test-type": type
2271
+ }, rest), React__default.createElement(SnackbarContent, {
2272
+ "aria-describedby": "client-snackbar",
2273
+ classes: {
2274
+ action: classes.snackbarAction,
2275
+ message: classes.messageContainer
2276
+ },
2277
+ className: clsx(classes.snackbar, (_clsx = {}, _clsx[classes.info] = type === "info", _clsx[classes.error] = type === "error", _clsx[classes.success] = type === "success", _clsx[classes.warning] = type === "warning", _clsx)),
2278
+ message: React__default.createElement("div", {
2279
+ className: classes.container
2280
+ }, React__default.createElement("div", null, getIcon$1(type)), React__default.createElement("div", null, React__default.createElement("div", {
2281
+ className: classes.title
2282
+ }, React__default.createElement(Typography, {
2283
+ variant: "h5"
2284
+ }, title)), React__default.createElement(Typography, {
2285
+ variant: "body1"
2286
+ }, content))),
2287
+ action: [React__default.createElement("div", {
2288
+ key: "actions"
2289
+ }, !!action && React__default.createElement(Button, {
2290
+ className: classes.actionBtn,
2291
+ key: "action",
2292
+ color: "default",
2293
+ size: "small",
2294
+ onClick: action.onClick,
2295
+ "data-test": "button-action"
2296
+ }, action.label)), React__default.createElement(IconButton, {
2297
+ key: "close",
2298
+ "aria-label": "Close",
2299
+ color: "inherit",
2300
+ onClick: onClose,
2301
+ className: clsx(classes.closeBtn, (_clsx2 = {}, _clsx2[classes.closeBtnInfo] = type === "info", _clsx2)),
2302
+ "data-test": "close"
2303
+ }, React__default.createElement(CloseIcon, null))]
2304
+ }));
2305
+ };
2306
+ Notification.displayName = "Notification";
2307
+
2308
+ var UserChipMenuContext = /*#__PURE__*/React.createContext(undefined);
2309
+ UserChipMenuContext.displayName = "UserChipMenuContext";
2310
+ var useUserChipMenu = function useUserChipMenu() {
2311
+ var ctx = React.useContext(UserChipMenuContext);
2312
+
2313
+ if (ctx === undefined) {
2314
+ throw new Error("useUserChipMenu must be used within a UserChipMenuContext");
2315
+ }
2316
+
2317
+ return ctx;
2318
+ };
2319
+
2320
+ var useStyles$c = /*#__PURE__*/makeStyles(function (theme) {
2321
+ var _arrow, _, _userChip;
2322
+
2323
+ return {
2324
+ arrow: (_arrow = {}, _arrow[theme.breakpoints.down("sm")] = {
2325
+ marginLeft: 0
2326
+ }, _arrow.marginLeft = theme.spacing(2), _arrow.transition = theme.transitions.duration.standard + "ms", _arrow),
2327
+ avatar: {
2328
+ "&&": (_ = {}, _[theme.breakpoints.down("sm")] = {
2329
+ height: 40,
2330
+ width: 40
2331
+ }, _.height = 32, _.width = 32, _)
2332
+ },
2333
+ avatarInitials: {
2334
+ color: theme.palette.primary.contrastText
2335
+ },
2336
+ avatarPlaceholder: {
2337
+ alignItems: "center",
2338
+ background: theme.palette.primary.main,
2339
+ borderRadius: "100%",
2340
+ display: "flex",
2341
+ justifyContent: "center"
2342
+ },
2343
+ label: {
2344
+ lineHeight: 1.2
2345
+ },
2346
+ labelContainer: {
2347
+ display: "inline-flex",
2348
+ alignItems: "center"
2349
+ },
2350
+ popover: {
2351
+ marginTop: theme.spacing(2),
2352
+ zIndex: 10
2353
+ },
2354
+ rotate: {
2355
+ transform: "rotate(180deg)"
2356
+ },
2357
+ userChip: (_userChip = {}, _userChip[theme.breakpoints.down("sm")] = {
2358
+ height: 48
2359
+ }, _userChip.backgroundColor = theme.palette.background.paper, _userChip.borderRadius = 24, _userChip.color = theme.palette.text.primary, _userChip.height = 40, _userChip.padding = theme.spacing(0.5), _userChip),
2360
+ userMenuContainer: {
2361
+ position: "relative"
2362
+ }
2363
+ };
2364
+ }, {
2365
+ name: "UserChipMenu"
2366
+ });
2367
+
2368
+ var UserChipMenu = function UserChipMenu(_ref) {
2369
+ var _clsx;
2370
+
2371
+ var avatar = _ref.avatar,
2372
+ initials = _ref.initials,
2373
+ name = _ref.name,
2374
+ subtext = _ref.subtext,
2375
+ children = _ref.children,
2376
+ props = _objectWithoutPropertiesLoose(_ref, ["avatar", "initials", "name", "subtext", "children"]);
2377
+
2378
+ var classes = useStyles$c({});
2379
+
2380
+ var _React$useState = React__default.useState(false),
2381
+ isMenuOpened = _React$useState[0],
2382
+ setMenuState = _React$useState[1];
2383
+
2384
+ var anchor = React__default.useRef(null);
2385
+
2386
+ var closeMenu = function closeMenu() {
2387
+ return setMenuState(false);
2388
+ };
2389
+
2390
+ return React__default.createElement("div", Object.assign({
2391
+ className: classes.userMenuContainer
2392
+ }, props), React__default.createElement(Chip, {
2393
+ avatar: avatar ? React__default.createElement(Avatar, {
2394
+ alt: "user",
2395
+ src: avatar
2396
+ }) : React__default.createElement("div", {
2397
+ className: classes.avatarPlaceholder
2398
+ }, React__default.createElement("div", {
2399
+ className: classes.avatarInitials
2400
+ }, initials)),
2401
+ classes: {
2402
+ avatar: classes.avatar
2403
+ },
2404
+ className: classes.userChip,
2405
+ label: React__default.createElement("div", {
2406
+ className: classes.labelContainer
2407
+ }, React__default.createElement(Hidden, {
2408
+ smDown: true
2409
+ }, React__default.createElement("div", null, React__default.createElement(Typography, {
2410
+ className: classes.label,
2411
+ variant: "body2"
2412
+ }, name), subtext && React__default.createElement(Typography, {
2413
+ className: classes.label,
2414
+ variant: "body2",
2415
+ color: "textSecondary"
2416
+ }, subtext))), React__default.createElement(ArrowDropdownIcon, {
2417
+ className: clsx(classes.arrow, (_clsx = {}, _clsx[classes.rotate] = isMenuOpened, _clsx))
2418
+ })),
2419
+ onClick: function onClick() {
2420
+ return setMenuState(!isMenuOpened);
2421
+ },
2422
+ ref: anchor,
2423
+ "data-test": "userMenu"
2424
+ }), React__default.createElement(Popper, {
2425
+ className: classes.popover,
2426
+ open: isMenuOpened,
2427
+ anchorEl: anchor.current,
2428
+ transition: true,
2429
+ placement: "bottom-end"
2430
+ }, function (_ref2) {
2431
+ var TransitionProps = _ref2.TransitionProps,
2432
+ placement = _ref2.placement;
2433
+ return React__default.createElement(Grow, Object.assign({}, TransitionProps, {
2434
+ style: {
2435
+ transformOrigin: placement === "bottom" ? "right top" : "right bottom"
2436
+ }
2437
+ }), React__default.createElement(Paper, null, React__default.createElement(ClickAwayListener, {
2438
+ onClickAway: closeMenu,
2439
+ mouseEvent: "onClick"
2440
+ }, React__default.createElement(Menu, null, React__default.createElement(UserChipMenuContext.Provider, {
2441
+ value: closeMenu
2442
+ }, children)))));
2443
+ }));
2444
+ };
2445
+ UserChipMenu.displayName = "UserChip";
2446
+
2447
+ var UserChipMenuItem = function UserChipMenuItem(_ref) {
2448
+ var leaveOpen = _ref.leaveOpen,
2449
+ onClick = _ref.onClick,
2450
+ props = _objectWithoutPropertiesLoose(_ref, ["leaveOpen", "onClick"]);
2451
+
2452
+ var closeMenu = useUserChipMenu(); // We're not really interested in event type here
2453
+
2454
+ var handleClickWithClose = function handleClickWithClose(event) {
2455
+ closeMenu();
2456
+
2457
+ if (onClick) {
2458
+ onClick(event);
2459
+ }
2460
+ };
2461
+
2462
+ return React__default.createElement(MenuItem$1, Object.assign({}, props, {
2463
+ onClick: leaveOpen ? onClick : handleClickWithClose,
2464
+ button: true
2465
+ }));
2466
+ };
2467
+ UserChipMenuItem.displayName = "UserChipMenuItem";
2468
+
2469
+ var useStyles$d = /*#__PURE__*/makeStyles(function (theme) {
2470
+ var _root;
2471
+
2472
+ return {
2473
+ root: (_root = {}, _root[theme.breakpoints.up("md")] = {
2474
+ "&& table": {
2475
+ tableLayout: "fixed"
2476
+ }
2477
+ }, _root["& table"] = {
2478
+ tableLayout: "auto"
2479
+ }, _root.overflowX = "auto", _root.width = "100%", _root)
2480
+ };
2481
+ }, {
2482
+ name: "ResponsiveTable"
2483
+ });
2484
+
2485
+ var ResponsiveTable = function ResponsiveTable(props) {
2486
+ var children = props.children,
2487
+ className = props.className;
2488
+ var classes = useStyles$d(props);
2489
+ return React__default.createElement("div", {
2490
+ className: classes.root
2491
+ }, React__default.createElement(Table, {
2492
+ className: className
2493
+ }, children));
2494
+ };
2495
+ ResponsiveTable.displayName = "ResponsiveTable";
2496
+
2497
+ var useStyles$e = /*#__PURE__*/makeStyles(function (theme) {
2498
+ return {
2499
+ tooltip: {
2500
+ backgroundColor: function backgroundColor(props) {
2501
+ switch (props.variant) {
2502
+ case "info":
2503
+ return theme.palette.info.main;
2504
+
2505
+ case "success":
2506
+ return theme.palette.success.main;
2507
+
2508
+ case "warning":
2509
+ return theme.palette.warning.main;
2510
+
2511
+ case "error":
2512
+ return theme.palette.error.main;
2513
+
2514
+ default:
2515
+ return theme.palette.info.main;
2516
+ }
2517
+ }
2518
+ }
2519
+ };
2520
+ }, {
2521
+ name: "Tooltip"
2522
+ });
2523
+
2524
+ var Tooltip = function Tooltip(_ref) {
2525
+ var children = _ref.children,
2526
+ _ref$variant = _ref.variant,
2527
+ variant = _ref$variant === void 0 ? "info" : _ref$variant,
2528
+ rest = _objectWithoutPropertiesLoose(_ref, ["children", "variant"]);
2529
+
2530
+ var classes = useStyles$e(_extends({
2531
+ variant: variant,
2532
+ children: children
2533
+ }, rest));
2534
+ return React__default.createElement(core.Tooltip, Object.assign({
2535
+ classes: classes
2536
+ }, rest), children);
2537
+ };
2538
+ Tooltip.displayName = "Tooltip";
2539
+
2540
+ exports.ActionBar = ActionBar;
2541
+ exports.ActionBarContext = ActionBarContext;
2542
+ exports.ActionBarProvider = ActionBarProvider;
2543
+ exports.Alert = Alert;
2544
+ exports.Backlink = Backlink;
2545
+ exports.BacklinkContext = BacklinkContext;
2546
+ exports.BacklinkProvider = BacklinkProvider;
2547
+ exports.CheckboxCheckedIcon = CheckboxCheckedIcon;
2548
+ exports.CheckboxIcon = CheckboxIcon;
2549
+ exports.CheckboxIndeterminateIcon = CheckboxIndeterminateIcon;
2550
+ exports.CompleteIcon = CompleteIcon;
2551
+ exports.ConfirmButton = ConfirmButton;
2552
+ exports.ExpandButton = ExpandButton;
2553
+ exports.ICONBUTTON_SIZE = ICONBUTTON_SIZE;
2554
+ exports.InfoIcon = InfoIcon;
2555
+ exports.MenuItem = MenuItem;
2556
+ exports.MenuItemBtn = MenuItemBtn;
2557
+ exports.NotAllowedIcon = NotAllowedIcon;
2558
+ exports.NotAllowedInvertedIcon = NotAllowedInvertedIcon;
2559
+ exports.Notification = Notification;
2560
+ exports.ResponsiveTable = ResponsiveTable;
2561
+ exports.Savebar = Savebar;
2562
+ exports.Sidebar = Sidebar;
2563
+ exports.SidebarDrawer = SidebarDrawer;
2564
+ exports.SquareButton = SquareButton;
2565
+ exports.ThemeProvider = ThemeProvider;
2566
+ exports.Tooltip = Tooltip;
2567
+ exports.UserChipMenu = UserChipMenu;
2568
+ exports.UserChipMenuItem = UserChipMenuItem;
2569
+ exports.WarningIcon = WarningIcon;
2570
+ exports.createTheme = createTheme;
2571
+ exports.dark = dark;
2572
+ exports.light = light;
2573
+ exports.makeStyles = makeStyles;
2574
+ exports.menuWidth = menuWidth;
2575
+ exports.sendMessageToDashboard = sendMessageToDashboard;
2576
+ exports.sendMessageToExtension = sendMessageToExtension;
2577
+ exports.shrunkMenuWidth = shrunkMenuWidth;
2578
+ exports.useActionBar = useActionBar;
2579
+ exports.useBacklink = useBacklink;
2580
+ exports.useExtensionMessage = useExtensionMessage;
2581
+ exports.useTheme = useTheme;
2582
+ //# sourceMappingURL=macaw-ui.cjs.development.js.map