@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 @@
1
+ {"version":3,"file":"macaw-ui.cjs.production.min.js","sources":["../src/ActionBar/context.tsx","../src/Backlink/context.tsx","../src/extensions/types.ts","../src/extensions/sendMessage.ts","../src/tools/useLocalStorage.ts","../src/theme/context.ts","../src/theme/styles.ts","../src/theme/Baseline.tsx","../src/theme/createSaleorTheme/overrides/buttons.ts","../src/theme/createSaleorTheme/overrides/index.ts","../src/theme/createSaleorTheme/overrides/inputs.ts","../src/theme/createSaleorTheme/overrides/tables.ts","../src/theme/createSaleorTheme/palette.ts","../src/theme/createSaleorTheme/shadows.ts","../src/theme/createSaleorTheme/createSaleorTheme.ts","../src/theme/themes.ts","../src/icons/CompleteIcon.tsx","../src/icons/InfoIcon.tsx","../src/icons/NotAllowedIcon.tsx","../src/icons/NotAllowedInvertedIcon.tsx","../src/icons/WarningIcon.tsx","../src/icons/ArrowDropdownIcon.tsx","../src/icons/CheckboxIcon.tsx","../src/icons/CheckboxCheckedIcon.tsx","../src/icons/CheckboxIndeterminateIcon.tsx","../src/tools/useWindowScroll.ts","../src/ActionBar/styles.ts","../src/ActionBar/ActionBar.tsx","../src/ConfirmButton/styles.ts","../src/ConfirmButton/ConfirmButton.tsx","../src/Savebar/ButtonTooltipDecorator.tsx","../src/Savebar/styles.ts","../src/Savebar/Savebar.tsx","../src/Backlink/styles.ts","../src/Backlink/Backlink.tsx","../src/icons/Logo.tsx","../src/SquareButton/SquareButton.tsx","../src/Sidebar/ExpandButton.tsx","../src/Sidebar/MenuItem.tsx","../src/Sidebar/Sidebar.tsx","../src/localStorageKeys.ts","../src/SidebarDrawer/styles.ts","../src/SidebarDrawer/MenuItemBtn.tsx","../src/SidebarDrawer/SidebarDrawer.tsx","../src/Alert/styles.ts","../src/Alert/Alert.tsx","../src/Notification/styles.ts","../src/Notification/Notification.tsx","../src/UserChipMenu/context.ts","../src/UserChipMenu/styles.ts","../src/UserChipMenu/UserChipMenu.tsx","../src/UserChipMenu/UserChipMenuItem.tsx","../src/ResponsiveTable/styles.ts","../src/ResponsiveTable/ResponsiveTable.tsx","../src/Tooltip/styles.ts","../src/Tooltip/Tooltip.tsx","../src/theme/ThemeProvider.tsx","../src/theme/utils.ts","../src/extensions/useExtensionMessage.ts"],"sourcesContent":["import React from \"react\";\n\nexport interface ActionBarContextType {\n anchor: React.RefObject<HTMLDivElement>;\n docked: boolean;\n setDocked: (docked: boolean) => void;\n}\n\nexport const ActionBarContext = React.createContext<\n ActionBarContextType | undefined\n>(undefined);\nActionBarContext.displayName = \"ActionBarContext\";\n\nexport const useActionBar = () => {\n const ctx = React.useContext(ActionBarContext);\n if (ctx === undefined) {\n throw new Error(\"useActionBar must be used within a ActionBarContext\");\n }\n\n return ctx;\n};\n\nexport const ActionBarProvider: React.FC = ({ children }) => {\n const [docked, setDocked] = React.useState(true);\n const anchor = React.useRef<HTMLDivElement | null>(null);\n\n return (\n <ActionBarContext.Provider value={{ anchor, docked, setDocked }}>\n {children}\n </ActionBarContext.Provider>\n );\n};\n","import React from \"react\";\n\nexport type BacklinkContextType = React.RefObject<HTMLDivElement>;\n\nexport const BacklinkContext = React.createContext<\n BacklinkContextType | undefined\n>(undefined);\nBacklinkContext.displayName = \"BacklinkContext\";\n\nexport const useBacklink = () => {\n const ctx = React.useContext(BacklinkContext);\n if (ctx === undefined) {\n throw new Error(\"useBacklink must be used within a BacklinkContext\");\n }\n\n return ctx;\n};\n\nexport const BacklinkProvider: React.FC = ({ children }) => {\n const anchor = React.useRef<HTMLDivElement | null>(null);\n\n return (\n <BacklinkContext.Provider value={anchor}>\n {children}\n </BacklinkContext.Provider>\n );\n};\n","import { ThemeType } from \"../theme\";\n\nexport enum ExtensionMessageType {\n BREADCRUMB_CLICK,\n BREADCRUMB_SET,\n THEME,\n}\nexport interface BaseExtensionMessageData {\n type: ExtensionMessageType;\n}\n\nexport type Breadcrumb = Record<\"label\" | \"value\", string>;\nexport interface BreadcrumbClickMessage extends BaseExtensionMessageData {\n breadcrumb: string;\n}\nexport interface BreadcrumbChangeMessage extends BaseExtensionMessageData {\n breadcrumbs: Breadcrumb[];\n}\n\nexport interface ThemeChangeMessage extends BaseExtensionMessageData {\n theme: ThemeType;\n}\n\nexport interface ExtensionMessageEvent<T extends BaseExtensionMessageData> {\n data: T;\n}\n","import { BaseExtensionMessageData } from \"./types\";\n\nexport function sendMessageToDashboard<T extends BaseExtensionMessageData>(\n message: T,\n targetOrigin: string\n) {\n if (!!window.parent) {\n window.parent.postMessage(message, targetOrigin);\n }\n}\n\nexport function sendMessageToExtension<T extends BaseExtensionMessageData>(\n message: T,\n targetOrigin: string\n) {\n const appFrame: HTMLIFrameElement | null = document.querySelector(\n \"#extension-app\"\n );\n\n if (!!appFrame?.contentWindow) {\n appFrame.contentWindow.postMessage(message, targetOrigin);\n }\n}\n","// Copied directly from\n// https://github.com/dance2die/react-use-localstorage/blob/master/src/index.ts\n// to avoid cjs and esm confusion in jest transformators\n\nimport { useCallback, useEffect, useState } from \"react\";\n\n// FIXME: We also had to tweak return signature because tuples were bugging\n// typescript parser\n// https://stackoverflow.com/questions/62079477/line-0-parsing-error-cannot-read-property-map-of-undefined\n// tsdx issue\n// https://github.com/formium/tsdx/issues/926\nexport interface UseLocalStorage {\n value: string;\n setValue: (value: string) => void;\n}\nexport default function useLocalStorage(\n key: string,\n initialValue: string = \"\"\n): UseLocalStorage {\n const [value, setValue] = useState(\n () => window.localStorage.getItem(key) || initialValue\n );\n\n const setItem = (newValue: string) => {\n setValue(newValue);\n window.localStorage.setItem(key, newValue);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const newValue = window.localStorage.getItem(key);\n if (value !== newValue) {\n setValue(newValue || initialValue);\n }\n });\n\n const handleStorage = useCallback(\n (event: StorageEvent) => {\n if (event.key === key && event.newValue !== value) {\n setValue(event.newValue || initialValue);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [value, key]\n );\n\n useEffect(() => {\n window.addEventListener(\"storage\", handleStorage);\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [handleStorage]);\n\n return {\n value,\n setValue: setItem,\n };\n}\n","import React from \"react\";\n\nimport { SaleorThemeContext } from \"./types\";\n\nexport const ThemeContext = React.createContext<SaleorThemeContext | undefined>(\n undefined\n);\nThemeContext.displayName = \"ThemeContext\";\n","import {\n makeStyles as muiMakeStyles,\n useTheme as useMuiTheme,\n} from \"@material-ui/core/styles\";\nimport type {\n ClassNameMap,\n Styles,\n WithStylesOptions,\n} from \"@material-ui/styles/withStyles\";\nimport { useContext } from \"react\";\n\nimport { ThemeContext } from \"./context\";\nimport { SaleorTheme } from \"./createSaleorTheme/types\";\nimport type { SaleorThemeContext } from \"./types\";\n\nexport function makeStyles<\n Props extends Record<string, any> = {},\n ClassKey extends string = string\n>(\n styles: Styles<SaleorTheme, Props, ClassKey>,\n options?: Omit<WithStylesOptions<SaleorTheme>, \"withTheme\">\n): keyof Props extends never\n ? (props?: any) => ClassNameMap<ClassKey>\n : (props: Props) => ClassNameMap<ClassKey> {\n return muiMakeStyles(styles, options);\n}\n\nexport function useTheme(): SaleorTheme & SaleorThemeContext {\n const saleorTheme = useMuiTheme<SaleorTheme>();\n const themeInfo = useContext(ThemeContext);\n\n if (themeInfo === undefined || saleorTheme === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return {\n ...saleorTheme,\n ...themeInfo,\n };\n}\n","import CssBaseline from \"@material-ui/core/CssBaseline\";\nimport { fade } from \"@material-ui/core/styles\";\nimport React from \"react\";\n\nimport { makeStyles } from \"./styles\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n \"@global\": {\n \"@import\": \"url('https://rsms.me/inter/inter.css')\",\n\n // For some reason @import clause must be put on top\n // eslint-disable-next-line sort-keys\n \"::selection\": {\n background: fade(theme.palette.primary.main, 0.2),\n },\n html: {\n fontSize: \"62.5%\",\n },\n },\n }),\n { name: \"Baseline\" }\n);\n\nexport const Baseline: React.FC = () => {\n useStyles();\n\n return <CssBaseline />;\n};\nBaseline.displayName = \"Baseline\";\n","import { darken, fade } from \"@material-ui/core/styles\";\nimport type { Overrides } from \"@material-ui/core/styles/overrides\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const buttonOverrides = (colors: SaleorThemeColors): Overrides => ({\n MuiButton: {\n contained: {\n \"&$disabled\": {\n backgroundColor: fade(colors.primary, 0.12),\n color: \"#FFFFFF\",\n },\n \"&:active\": {\n boxShadow: \"none\",\n },\n \"&:hover\": {\n boxShadow: \"none\",\n },\n boxShadow: \"none\",\n },\n containedPrimary: {\n \"&:active\": {\n backgroundColor: darken(colors.primary, 0.4),\n },\n \"&:hover\": {\n backgroundColor: darken(colors.primary, 0.1),\n },\n },\n label: {\n fontWeight: 600,\n },\n root: {\n \"& svg\": {\n marginLeft: 8,\n },\n borderRadius: 4,\n },\n textPrimary: {\n \"&:not($disabled) span\": {\n color: colors.primary,\n },\n },\n textSizeSmall: {\n fontSize: \"1.3rem\",\n },\n },\n MuiIconButton: {\n root: {\n \"&:hover\": {\n backgroundColor: fade(colors.primary, 0.12),\n },\n },\n },\n MuiSwitch: {\n colorPrimary: {\n \"&$checked\": {\n color: colors.background.paper,\n },\n },\n root: {\n \"&$disabled\": {\n \"&$switchBase\": {\n \"& + $thumb\": {\n backgroundColor: colors.gray.disabled,\n },\n },\n },\n height: 48,\n width: 72,\n },\n switchBase: {\n \"&$checked\": {\n transform: \"translateX(23px)\",\n },\n boxShadow: \"none\",\n left: 1,\n marginLeft: 4,\n top: 5,\n },\n thumb: {\n boxShadow: \"none\",\n },\n track: {\n \"$colorPrimary$checked + &\": {\n backgroundColor: colors.primary,\n },\n backgroundColor: colors.gray.default,\n borderRadius: 12,\n height: 24,\n opacity: [[\"1\"], \"!important\"] as any,\n width: 48,\n },\n },\n});\n","import type { Overrides } from \"@material-ui/core/styles/overrides\";\n\nimport { SaleorThemeColors } from \"../types\";\nimport { buttonOverrides } from \"./buttons\";\nimport { inputOverrides } from \"./inputs\";\nimport { tableOverrides } from \"./tables\";\n\nexport const overrides = (\n colors: SaleorThemeColors,\n fontFamily: string\n): Overrides => ({\n ...inputOverrides(colors),\n ...tableOverrides(colors, fontFamily),\n ...buttonOverrides(colors),\n});\n","import { fade } from \"@material-ui/core/styles\";\nimport type { Overrides } from \"@material-ui/core/styles/overrides\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const inputOverrides = (colors: SaleorThemeColors): Overrides => ({\n MuiInput: {\n input: {\n \"&:-webkit-autofill\": {\n WebkitTextFillColor: colors.font.default,\n boxShadow: `inset 0 0 0px 9999px ${colors.autofill}`,\n },\n \"&::placeholder\": {\n opacity: \"1 !important\" as any,\n },\n color: colors.font.default,\n },\n underline: {\n \"&:after\": {\n borderBottomColor: colors.primary,\n },\n },\n },\n MuiInputBase: {\n input: {\n \"&$disabled\": {\n color: colors.input.disabledText,\n },\n \"&::placeholder\": {\n color: colors.font.gray,\n opacity: \"1 !important\" as any,\n },\n },\n },\n MuiInputLabel: {\n formControl: {\n transform: \"translate(0, 1.5px) scale(0.75)\",\n transformOrigin: \"top left\" as \"top left\",\n width: \"100%\",\n },\n outlined: {\n \"&$shrink\": {\n transform: \"translate(12px, 9px) scale(0.75)\",\n },\n transform: \"translate(14px, 18px) scale(1)\",\n },\n root: {\n \"&$disabled\": {\n color: `${fade(colors.primary, 0.4)} !important` as any,\n },\n \"&$error\": {\n \"&$focused\": {\n color: colors.error,\n },\n color: colors.error,\n },\n \"&&$focused\": {\n \"&:not($error)\": {\n color: colors.primary,\n },\n },\n color: fade(colors.input.text, 0.6),\n },\n shrink: {\n // Negates x0.75 scale\n width: \"133%\",\n },\n },\n MuiOutlinedInput: {\n input: {\n \"&:-webkit-autofill\": {\n borderRadius: 4,\n boxShadow: \"0 0 0px 1000px rgba(19, 190, 187, 0.1) inset\",\n },\n color: colors.input.text,\n padding: \"23px 12px 10px 12px\",\n },\n inputMultiline: {\n left: -2,\n padding: \"10px 0\",\n position: \"relative\",\n },\n root: {\n \"& fieldset\": {\n \"&&:not($error)\": {\n borderColor: colors.input.border,\n },\n top: 0,\n },\n \"& legend\": {\n display: \"none\",\n },\n \"&$disabled\": {\n \"& fieldset\": {\n borderColor: [[colors.input.disabled], \"!important\"] as any,\n },\n \"& input\": {\n backgroundColor: colors.input.disabledBackground,\n color: colors.input.disabledText,\n },\n },\n \"&$error\": {\n \"&$focused\": {\n \"& fieldset\": {\n borderColor: colors.error,\n },\n \"& input\": {\n color: colors.error,\n },\n },\n \"&:hover\": {\n \"& fieldset\": {\n borderColor: colors.error,\n },\n \"& input\": {\n color: colors.error,\n },\n },\n },\n \"&$focused\": {\n \"& input\": {\n \"& fieldset\": {\n borderColor: colors.primary,\n },\n \"&::placeholder\": {\n opacity: [[1], \"!important\"] as any,\n },\n color: colors.font.default,\n },\n },\n \"&:hover\": {\n \"& input\": {\n color: colors.font.default,\n },\n \"&&&\": {\n \"& fieldset\": {\n borderColor: colors.primary,\n },\n \"&$error fieldset\": {\n borderColor: colors.input.error,\n },\n },\n },\n backgroundColor: colors.background.paper,\n borderColor: colors.input.border,\n top: 0,\n },\n },\n});\n","import { fade } from \"@material-ui/core/styles\";\nimport type { Overrides } from \"@material-ui/core/styles/overrides\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const tableOverrides = (\n colors: SaleorThemeColors,\n fontFamily: string\n): Overrides => ({\n MuiTable: {\n root: {\n fontFamily,\n fontFeatureSettings: '\"tnum\"',\n },\n },\n MuiTableCell: {\n body: {\n fontSize: \"1.6rem\",\n },\n head: {\n fontSize: \"1.4rem\",\n fontWeight: 400,\n color: colors.font.textDisabled,\n },\n paddingCheckbox: {\n \"&:first-child\": {\n padding: \"0 12px\",\n width: 72,\n },\n \"&:not(first-child)\": {\n padding: 0,\n width: 52,\n },\n },\n root: {\n \"&:first-child\": {\n \"&:not($paddingCheckbox)\": {\n paddingLeft: 24 + \"px\",\n textAlign: \"left\" as \"left\",\n },\n },\n borderBottomColor: colors.paperBorder,\n padding: \"16px 24px\",\n },\n },\n MuiTablePagination: {\n input: {\n color: colors.primary,\n fontSize: \"1.4rem\",\n },\n },\n MuiTableRow: {\n footer: {\n \"$root$hover&:hover\": {\n background: \"none\",\n },\n },\n head: {\n \"$root$hover&:hover\": {\n background: \"none\",\n },\n },\n hover: {\n \"$root&:hover\": {\n backgroundColor: fade(colors.primary, 0.3),\n },\n },\n root: {\n \"&$selected\": {\n backgroundColor: fade(colors.primary, 0.05),\n },\n },\n },\n});\n","import { SaleorPaletteOptions, SaleorThemeColors } from \"./types\";\n\nexport const createPalette = (\n colors: SaleorThemeColors\n): SaleorPaletteOptions => ({\n action: {\n active: colors.checkbox.default,\n },\n alert: colors.alert,\n background: colors.background,\n divider: colors.divider,\n error: {\n main: colors.error,\n },\n primary: {\n contrastText: \"#ffffff\",\n dark: colors.font.textDisabled,\n main: colors.primary,\n },\n secondary: {\n contrastText: \"#ffffff\",\n main: colors.secondary,\n },\n success: {\n main: colors.success,\n },\n text: {\n disabled: colors.font.gray,\n hint: colors.font.gray,\n primary: colors.font.default,\n secondary: colors.font.gray,\n },\n textHighlighted: {\n active: colors.primary,\n inactive: colors.highlightInactive.default,\n },\n type: colors.theme,\n});\n","import type { Shadows } from \"@material-ui/core/styles/shadows\";\n\nconst createShadow = (\n pv: number,\n pb: number,\n ps: number,\n uv: number,\n ub: number,\n us: number,\n av: number,\n ab: number,\n as: number\n) =>\n [\n `0 ${pv}px ${pb}px ${ps}px rgba(0, 0, 0, 0.2)`,\n `0 ${uv}px ${ub}px ${us}px rgba(0, 0, 0, 0.14)`,\n `0 ${av}px ${ab}px ${as}px rgba(0, 0, 0, 0.12)`,\n ].join(\",\");\n\nexport const shadows: Shadows = [\n \"none\",\n createShadow(1, 1, 0, 2, 1, -2, 1, 3, 0),\n createShadow(2, 2, 0, 3, 1, -2, 1, 5, 0),\n createShadow(3, 4, 0, 3, 3, -2, 1, 8, 0),\n createShadow(4, 5, 0, 1, 10, 0, 2, 4, -1),\n createShadow(5, 8, 0, 1, 14, 0, 3, 4, -1),\n createShadow(6, 10, 0, 1, 18, 0, 3, 5, -1),\n createShadow(7, 10, 0, 2, 16, 1, 4, 5, -2),\n createShadow(8, 10, 1, 3, 14, 2, 5, 5, -3),\n createShadow(9, 12, 1, 3, 16, 3, 5, 6, -4),\n createShadow(10, 14, 1, 4, 18, 3, 6, 7, -4),\n createShadow(11, 16, 1, 4, 20, 3, 6, 7, -4),\n createShadow(12, 17, 1, 5, 22, 4, 7, 8, -4),\n createShadow(13, 19, 1, 5, 24, 4, 7, 8, -4),\n createShadow(14, 21, 1, 5, 26, 4, 7, 9, -5),\n createShadow(15, 22, 1, 5, 28, 4, 7, 9, -5),\n createShadow(16, 24, 2, 6, 30, 5, 8, 10, -5),\n createShadow(15, 27, 3, 7, 28, 3, 10, 14, -4),\n createShadow(14, 30, 4, 8, 26, 1, 12, 17, -3),\n createShadow(13, 33, 4, 8, 24, -1, 14, 20, -1),\n createShadow(12, 36, 5, 9, 22, -2, 16, 24, 1),\n createShadow(11, 39, 6, 10, 20, -4, 18, 28, 1),\n createShadow(10, 41, 7, 10, 18, -5, 20, 31, 2),\n createShadow(9, 44, 7, 11, 16, -6, 22, 35, 2),\n createShadow(9, 46, 8, 11, 15, -7, 24, 38, 3),\n];\n","import { createMuiTheme } from \"@material-ui/core/styles\";\nimport { fade } from \"@material-ui/core/styles\";\nimport type { TypographyProps } from \"@material-ui/core/Typography\";\n\nimport { overrides } from \"./overrides\";\nimport { createPalette } from \"./palette\";\nimport { shadows } from \"./shadows\";\nimport { SaleorTheme, SaleorThemeColors } from \"./types\";\n\nexport const ICONBUTTON_SIZE = 48;\n\nconst fontFamily = '\"Inter\", \"roboto\", \"sans-serif\"';\n\nexport const createTheme = (colors: SaleorThemeColors): SaleorTheme =>\n (createMuiTheme({\n overrides: {\n ...overrides(colors, fontFamily),\n MuiCard: {\n root: {\n borderColor: colors.paperBorder,\n borderRadius: 8,\n borderStyle: \"solid\",\n borderWidth: 1,\n overflow: \"visible\",\n },\n },\n MuiCardActions: {\n root: {\n flexDirection: \"row-reverse\" as \"row-reverse\",\n },\n },\n MuiCardContent: {\n root: {\n padding: \"2.4rem\",\n },\n },\n MuiCardHeader: {\n action: {\n position: \"relative\",\n top: 4,\n },\n root: {\n padding: \"1.6rem 2.4rem\",\n },\n },\n MuiChip: {\n avatar: {\n fontSize: \"1.2rem\",\n height: 32,\n left: -5,\n position: \"relative\",\n width: 32,\n },\n root: {\n \"& $avatar\": {\n fontSize: \"1.2rem\",\n },\n fontSize: \"1.3rem\",\n },\n },\n MuiDialogActions: {\n root: {\n borderTop: `1px solid ${colors.divider}`,\n padding: \"16px 24px\",\n },\n },\n MuiDialogContent: {\n root: {\n padding: `24px 0px`,\n margin: `0px 24px`,\n },\n },\n MuiDialogContentText: {\n root: {\n \"&:last-child\": {\n marginBottom: 0,\n },\n },\n },\n MuiDialogTitle: {\n root: {\n borderBottom: `1px solid ${colors.divider}`,\n },\n },\n MuiFormControlLabel: {\n label: {\n lineHeight: 1.2,\n marginLeft: 4,\n },\n },\n MuiFormLabel: {\n filled: {\n \"&&:not($error)\": {\n color: colors.primary,\n },\n },\n root: {\n \"&&$focused:not($error)\": {\n color: colors.font.gray,\n },\n },\n },\n MuiSvgIcon: {\n root: {\n fontSize: \"2.4rem\",\n height: \"1em\",\n width: \"1em\",\n },\n },\n MuiList: {\n root: {\n display: \"grid\",\n gridRowGap: 8 + \"px\",\n padding: \"8px !important\",\n },\n },\n MuiListItem: {\n button: {\n \"&:focus\": {\n backgroundColor: colors.input.default,\n },\n },\n root: {\n \"&$selected\": {\n \"&:hover\": {\n backgroundColor: colors.input.default,\n },\n backgroundColor: colors.input.default,\n },\n },\n },\n MuiMenu: {\n paper: {\n borderRadius: 8,\n },\n },\n MuiMenuItem: {\n root: {\n \"&$selected, &$selected:focus, &$selected:hover\": {\n backgroundColor: [colors.background.default, \"!important\"] as any,\n color: colors.primary,\n fontWeight: 700,\n },\n \"&:hover\": {\n backgroundColor: [colors.background.default, \"!important\"] as any,\n color: colors.font.default,\n fontWeight: 400,\n },\n borderRadius: 4,\n },\n },\n MuiSelect: {\n root: {\n \"&$disabled\": {\n backgroundColor: colors.input.disabledBackground,\n },\n },\n },\n MuiSnackbarContent: {\n action: {\n \"& $MuiIconButton\": {\n \"& svg\": {\n color: colors.font.default,\n },\n },\n display: \"block\",\n paddingBottom: 10,\n paddingLeft: 0,\n paddingRight: 45,\n },\n message: {\n fontSize: 16,\n },\n root: {\n backgroundColor: colors.background.paper,\n boxShadow:\n \"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)\",\n color: colors.font.default,\n display: \"block\",\n maxWidth: 480,\n },\n },\n MuiTooltip: {\n tooltip: {\n fontSize: \"0.8em\",\n },\n },\n MuiTouchRipple: {\n child: {\n backgroundColor: fade(colors.primary, 0.2),\n },\n childLeaving: {\n backgroundColor: fade(colors.primary, 0.2),\n },\n ripple: {\n \"&$rippleVisible\": {\n backgroundColor: fade(colors.primary, 0.2),\n },\n borderRadius: \"100%\",\n },\n },\n },\n palette: createPalette(colors),\n props: {\n MuiFormControl: {\n variant: \"filled\",\n },\n MuiTextField: {\n variant: \"outlined\",\n },\n MuiCard: {\n elevation: 0,\n },\n MuiTypography: {\n component: \"div\",\n } as TypographyProps,\n MuiCheckbox: {\n color: \"primary\",\n },\n MuiTooltip: {\n placement: \"right-end\",\n },\n },\n shadows,\n spacing: (value: number = 1) => `${(value * 8) / 10}rem`,\n typography: {\n allVariants: {\n fontFamily,\n },\n body1: {\n color: colors.font.default,\n fontSize: \"1.6rem\",\n },\n body2: {\n fontSize: \"1.4rem\",\n },\n button: {\n fontSize: \"1.4rem\",\n },\n caption: {\n fontSize: \"1.2rem\",\n },\n fontFamily,\n h1: {\n fontSize: \"4.8rem\",\n fontWeight: 700,\n },\n h4: {\n fontSize: \"3.4rem\",\n color: colors.font.default,\n },\n h5: {\n fontSize: \"2.1rem\",\n fontWeight: 500,\n },\n h6: {\n fontSize: \"2rem\",\n fontWeight: 500,\n },\n subtitle1: {\n fontSize: \"1.6rem\",\n },\n subtitle2: {\n fontSize: \"1.4rem\",\n },\n },\n }) as unknown) as SaleorTheme;\n","import { SaleorThemeColors } from \"./createSaleorTheme\";\n\nexport const dark: SaleorThemeColors = {\n alert: {\n paper: {\n error: \"#E0444E\",\n info: \"#2E2F31\",\n success: \"#5DC292\",\n warning: \"#E29A2E\",\n },\n icon: {\n error: \"#FE6E76\",\n info: \"#FAFAFA\",\n success: \"#5DC292\",\n warning: \"#FFB84E\",\n },\n },\n highlightInactive: {\n default: \"#78797A\",\n },\n autofill: \"#5D5881\",\n background: {\n default: \"#1D1E1F\",\n paper: \"#2E2F31\",\n },\n checkbox: {\n default: \"#FFFFFF\",\n },\n divider: \"#252728\",\n error: \"#C22D74\",\n font: {\n button: \"#202124\",\n default: \"#FCFCFC\",\n gray: \"#9E9D9D\",\n textButton: \"#FFFFFF\",\n textDisabled: \"#FCFCFC\",\n },\n gray: {\n default: \"#202124\",\n disabled: \"rgba(32, 33, 36, 0.6)\",\n },\n input: {\n border: \"#9d9d9d\",\n default: \"#25262A\",\n disabled: \"#393939\",\n disabledBackground: \"#292A2D\",\n disabledText: \"#9D9D9D\",\n error: \"#8C2054\",\n text: \"#FCFCFC\",\n textHover: \"#616161\",\n },\n paperBorder: \"#252728\",\n primary: \"#13BEBB\",\n secondary: \"#21125E\",\n success: \"#5DC292\",\n theme: \"dark\",\n};\nexport const light: SaleorThemeColors = {\n alert: {\n paper: {\n error: \"#FFD6D9\",\n info: \"#FFFFFF\",\n success: \"#DFF3E9\",\n warning: \"#FFF4E4\",\n },\n icon: {\n error: \"#FE6E76\",\n info: \"#28234A\",\n success: \"#5DC292\",\n warning: \"#FFB84E\",\n },\n },\n highlightInactive: {\n default: \"#C8C8C8\",\n },\n autofill: \"#f4f6c5\",\n background: {\n default: \"#EFF5F8\",\n paper: \"#FFFFFF\",\n },\n checkbox: {\n default: \"#616161\",\n },\n divider: \"#EAEAEA\",\n error: \"#FE6D76\",\n font: {\n button: \"#FFFFFF\",\n default: \"#3D3D3D\",\n gray: \"#616161\",\n textButton: \"#06847B\",\n textDisabled: \"#616161\",\n },\n gray: {\n default: \"#C8C8C8\",\n disabled: \"rgba(216, 216, 216, 0.3)\",\n },\n\n input: {\n border: \"#BDBDBD\",\n default: \"#FFFFFF\",\n disabled: \"#EAEAEA\",\n disabledBackground: \"#F4F4F4\",\n disabledText: \"#9D9D9D\",\n error: \"#8C2054\",\n text: \"#3D3D3D\",\n textHover: \"#616161\",\n },\n paperBorder: \"#EAEAEA\",\n primary: \"#06847B\",\n secondary: \"#21125E\",\n success: \"#5DC292\",\n theme: \"light\",\n};\n","import React from \"react\";\n\nexport const CompleteIcon: React.FC<React.SVGProps<SVGSVGElement>> = (\n props\n) => (\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"white\" />\n <circle cx=\"20\" cy=\"20\" r=\"14\" stroke=\"#5DC292\" strokeWidth=\"4\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#5DC292\"\n />\n </svg>\n);\n\nCompleteIcon.displayName = \"CompleteIcon\";\n","import React from \"react\";\n\nexport const InfoIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"white\" />\n <circle cx=\"20\" cy=\"20\" r=\"14\" stroke=\"#28234A\" strokeWidth=\"4\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#28234A\"\n />\n </svg>\n);\n\nInfoIcon.displayName = \"InfoIcon\";\n","import React from \"react\";\n\nexport const NotAllowedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (\n props\n) => (\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"16\" fill=\"#F5FAFB\" />\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#FE6E76\"\n />\n </svg>\n);\n\nNotAllowedIcon.displayName = \"NotAllowedIcon\";\n","import React from \"react\";\n\nexport const NotAllowedInvertedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (\n props\n) => (\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"16\" fill=\"#F5FAFB\" />\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"#FE6E76\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"white\"\n />\n </svg>\n);\n\nNotAllowedInvertedIcon.displayName = \"NotAllowedInvertedIcon\";\n","import React from \"react\";\n\nexport const WarningIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"white\" />\n <circle cx=\"20\" cy=\"20\" r=\"14\" stroke=\"#FFB84E\" strokeWidth=\"4\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#FFB84E\"\n />\n </svg>\n);\n\nWarningIcon.displayName = \"WarningIcon\";\n","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nconst ArrowDropdownIcon = createSvgIcon(\n <g style={{ fillRule: \"evenodd\" }}>\n <path d=\"M7 10l5 5 5-5z\" />\n </g>,\n \"ArrowDropdownIcon\"\n);\n\nexport default ArrowDropdownIcon;\n","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nexport const CheckboxIcon = createSvgIcon(\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" stroke=\"currentColor\" fill=\"none\" />,\n \"CheckboxIcon\"\n);\n","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nexport const CheckboxCheckedIcon = createSvgIcon(\n <>\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" fill=\"currentColor\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"white\"\n />\n </>,\n \"CheckboxCheckedIcon\"\n);\n","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nexport const CheckboxIndeterminateIcon = createSvgIcon(\n <>\n <rect\n x=\"5\"\n y=\"5\"\n width=\"14\"\n height=\"14\"\n stroke=\"currentColor\"\n fill=\"none\"\n />\n <rect x=\"8\" y=\"11\" width=\"8\" height=\"2\" fill=\"currentColor\" />\n </>,\n \"CheckboxIndeterminateIcon\"\n);\n","// It's only optimized for esm, cjs will remain fat blob\n// Ref https://github.com/formium/tsdx/issues/763\nimport { throttle } from \"lodash\";\nimport { useEffect, useState } from \"react\";\n\nfunction getPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\nfunction useWindowScroll() {\n const [scroll, setScroll] = useState(getPosition);\n\n useEffect(() => {\n const handleScroll = throttle(() => setScroll(getPosition()), 100);\n\n window.addEventListener(\"scroll\", handleScroll);\n\n return () => window.removeEventListener(\"scroll\", handleScroll);\n }, []);\n\n return scroll;\n}\nexport default useWindowScroll;\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n content: {\n \"&:last-child\": {\n paddingBottom: theme.spacing(2),\n },\n display: \"flex\",\n paddingBottom: theme.spacing(2),\n paddingTop: theme.spacing(2),\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: theme.spacing(1),\n },\n },\n paper: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n root: {\n height: 70,\n },\n }),\n { name: \"Savebar\" }\n);\n\nexport default useStyles;\n","import Card from \"@material-ui/core/Card\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Container from \"@material-ui/core/Container\";\nimport Portal from \"@material-ui/core/Portal\";\nimport React from \"react\";\n\nimport { ConfirmButtonTransitionState } from \"../ConfirmButton\";\nimport useWindowScroll from \"../tools/useWindowScroll\";\nimport { useActionBar } from \"./context\";\nimport useStyles from \"./styles\";\n\nexport interface ActionBarProps {\n disabled: boolean;\n state: ConfirmButtonTransitionState;\n children: React.ReactNode[] | React.ReactNode;\n}\n\nexport const ActionBar: React.FC<ActionBarProps> = ({\n disabled,\n children,\n state,\n ...rest\n}) => {\n const classes = useStyles();\n\n const { anchor, docked, setDocked } = useActionBar();\n const scrollPosition = useWindowScroll();\n\n React.useEffect(() => {\n if (!disabled && state !== \"loading\") {\n setDocked(false);\n }\n }, [disabled, state, setDocked]);\n React.useEffect(() => () => setDocked(true), [setDocked]);\n\n const scrolledToBottom =\n scrollPosition.y + window.innerHeight >= document.body.scrollHeight;\n\n if (!anchor.current) {\n return null;\n }\n\n return (\n <Portal container={anchor.current}>\n <div className={classes.root} {...rest}>\n <Container maxWidth=\"lg\">\n <Card\n className={classes.paper}\n elevation={!(docked || scrolledToBottom) ? 16 : 0}\n >\n <CardContent className={classes.content}>{children}</CardContent>\n </Card>\n </Container>\n </div>\n </Portal>\n );\n};\nActionBar.displayName = \"ActionBar\";\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n error: {\n \"&:hover\": {\n backgroundColor: theme.palette.error.main,\n },\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n },\n icon: {\n marginLeft: \"0 !important\",\n position: \"absolute\",\n transitionDuration: theme.transitions.duration.standard + \"ms\",\n },\n invisible: {\n opacity: 0,\n },\n label: {\n alignItems: \"center\",\n display: \"flex\",\n transitionDuration: theme.transitions.duration.standard + \"ms\",\n },\n progress: {\n \"& svg\": {\n color: theme.palette.common.white,\n margin: 0,\n },\n position: \"absolute\",\n transitionDuration: theme.transitions.duration.standard + \"ms\",\n },\n success: {\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n },\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n }),\n { name: \"ConfirmButton\" }\n);\n\nexport default useStyles;\n","import Button, { ButtonProps } from \"@material-ui/core/Button\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport useStyles from \"./styles\";\n\nconst DEFAULT_NOTIFICATION_SHOW_TIME = 3000;\nexport type ConfirmButtonTransitionState =\n | \"loading\"\n | \"success\"\n | \"error\"\n | \"default\";\n\nexport type ConfirmButtonLabels = Record<\"confirm\" | \"error\", string>;\nexport interface ConfirmButtonProps extends Omit<ButtonProps, \"classes\"> {\n labels: ConfirmButtonLabels;\n noTransition?: boolean;\n transitionState: ConfirmButtonTransitionState;\n onTransitionToDefault?: () => void;\n}\n\nexport const ConfirmButton: React.FC<ConfirmButtonProps> = ({\n children,\n className,\n disabled,\n labels,\n noTransition,\n transitionState,\n onClick,\n onTransitionToDefault,\n ...props\n}) => {\n const classes = useStyles();\n const [\n displayCompletedActionState,\n setDisplayCompletedActionState,\n ] = React.useState(false);\n const timeout = React.useRef<number>();\n\n React.useEffect(() => {\n if (!noTransition && transitionState === \"loading\") {\n setDisplayCompletedActionState(true);\n }\n }, [transitionState, noTransition]);\n\n React.useEffect(() => {\n if (\n !noTransition &&\n ([\"error\", \"success\"] as ConfirmButtonTransitionState[]).includes(\n transitionState\n )\n ) {\n timeout.current = (setTimeout(() => {\n setDisplayCompletedActionState(false);\n if (onTransitionToDefault) {\n onTransitionToDefault();\n }\n }, DEFAULT_NOTIFICATION_SHOW_TIME) as unknown) as number;\n } else if (transitionState === \"loading\") {\n clearTimeout(timeout.current);\n }\n\n return () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n };\n }, [noTransition, transitionState, onTransitionToDefault]);\n\n const isCompleted = noTransition\n ? transitionState !== \"default\"\n : displayCompletedActionState;\n\n return (\n <Button\n variant=\"contained\"\n onClick={transitionState === \"loading\" ? undefined : onClick}\n color=\"primary\"\n className={clsx(className, {\n [classes.error]: transitionState === \"error\" && isCompleted,\n [classes.success]: transitionState === \"success\" && isCompleted,\n })}\n disabled={!isCompleted && disabled}\n data-test-state={isCompleted ? transitionState : \"default\"}\n {...props}\n >\n <CircularProgress\n size={24}\n color=\"inherit\"\n className={clsx({\n [classes.progress]: true,\n [classes.invisible]: transitionState !== \"loading\",\n })}\n />\n <CheckIcon\n className={clsx({\n [classes.icon]: true,\n [classes.invisible]: !(transitionState === \"success\" && isCompleted),\n })}\n />\n <span\n className={clsx({\n [classes.label]: true,\n [classes.invisible]:\n (transitionState === \"loading\" || transitionState === \"success\") &&\n isCompleted,\n })}\n >\n {transitionState === \"error\" && isCompleted\n ? labels.error\n : children || labels.confirm}\n </span>\n </Button>\n );\n};\n\nConfirmButton.displayName = \"ConfirmButton\";\n","import Tooltip from \"@material-ui/core/Tooltip\";\nimport React from \"react\";\n\ninterface ButtonTooltipDecoratorProps {\n tooltip?: string;\n}\n\nexport const ButtonTooltipDecorator: React.FC<ButtonTooltipDecoratorProps> = ({\n tooltip,\n children,\n}) => {\n if (tooltip) {\n return (\n <Tooltip title={tooltip} placement=\"top\">\n <span>{children}</span>\n </Tooltip>\n );\n }\n\n return <>{children}</>;\n};\nButtonTooltipDecorator.displayName = \"ButtonTooltipDecorator\";\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n button: {\n marginRight: theme.spacing(1),\n },\n cancelButton: {\n marginRight: theme.spacing(2),\n },\n deleteButton: {\n \"&:hover\": {\n backgroundColor: theme.palette.error.dark,\n },\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n },\n spacer: {\n flex: \"1\",\n },\n }),\n { name: \"Savebar\" }\n);\n\nexport default useStyles;\n","import Button from \"@material-ui/core/Button\";\nimport React from \"react\";\n\nimport { useActionBar } from \"../ActionBar\";\nimport { ActionBar } from \"../ActionBar/ActionBar\";\nimport {\n ConfirmButton,\n ConfirmButtonLabels,\n ConfirmButtonTransitionState,\n} from \"../ConfirmButton\";\nimport { ButtonTooltipDecorator } from \"./ButtonTooltipDecorator\";\nimport useStyles from \"./styles\";\n\nexport type SavebarLabels = ConfirmButtonLabels &\n Record<\"delete\" | \"cancel\", string>;\nexport type SavebarTooltips = Partial<\n Record<\"confirm\" | \"delete\" | \"cancel\", string>\n>;\nexport interface SavebarProps {\n disabled: boolean;\n state: ConfirmButtonTransitionState;\n labels: SavebarLabels;\n tooltips?: SavebarTooltips;\n onCancel: () => void;\n onDelete?: () => void;\n onSubmit: () => void;\n}\n\nexport const Savebar: React.FC<SavebarProps> = ({\n disabled,\n labels,\n tooltips,\n state,\n onCancel,\n onDelete,\n onSubmit,\n}) => {\n const classes = useStyles();\n const { setDocked } = useActionBar();\n\n return (\n <ActionBar state={state} disabled={disabled}>\n {!!onDelete && (\n <ButtonTooltipDecorator tooltip={tooltips?.delete}>\n <Button\n variant=\"contained\"\n onClick={onDelete}\n className={classes.deleteButton}\n data-test=\"button-bar-delete\"\n >\n {labels.delete}\n </Button>\n </ButtonTooltipDecorator>\n )}\n <div className={classes.spacer} />\n <ButtonTooltipDecorator tooltip={tooltips?.cancel}>\n <Button\n className={classes.cancelButton}\n variant=\"text\"\n onClick={onCancel}\n data-test=\"button-bar-cancel\"\n >\n {labels.cancel}\n </Button>\n </ButtonTooltipDecorator>\n <ButtonTooltipDecorator tooltip={tooltips?.confirm}>\n <ConfirmButton\n disabled={disabled}\n labels={labels}\n onClick={onSubmit}\n transitionState={state}\n data-test=\"button-bar-confirm\"\n onTransitionToDefault={() => setDocked(true)}\n />\n </ButtonTooltipDecorator>\n </ActionBar>\n );\n};\nSavebar.displayName = \"Savebar\";\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n backArrow: {\n fontSize: 30,\n },\n menuButton: {\n flex: \"0 0 auto\",\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(),\n marginTop: theme.spacing(-2),\n },\n root: {\n \"&:hover\": {\n color: theme.typography.body1.color,\n },\n alignItems: \"center\",\n color: theme.palette.grey[500],\n cursor: \"pointer\",\n display: \"flex\",\n marginTop: theme.spacing(0.5),\n transition: theme.transitions.duration.standard + \"ms\",\n [theme.breakpoints.down(\"sm\")]: {\n margin: theme.spacing(4, 0, 0, 0),\n },\n },\n skeleton: {\n width: \"10rem\",\n },\n title: {\n color: \"inherit\",\n flex: 1,\n marginLeft: theme.spacing(),\n textTransform: \"uppercase\",\n },\n }),\n { name: \"AppHeader\" }\n);\n\nexport default useStyles;\n","import Portal from \"@material-ui/core/Portal\";\nimport Typography from \"@material-ui/core/Typography\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport Skeleton from \"@material-ui/lab/Skeleton\";\nimport React from \"react\";\n\nimport { useBacklink } from \"./context\";\nimport useStyles from \"./styles\";\n\nexport interface AppHeaderProps {\n children: React.ReactNode;\n onClick: () => void;\n}\n\nexport const Backlink: React.FC<AppHeaderProps> = ({ children, onClick }) => {\n const classes = useStyles();\n const anchor = useBacklink();\n\n if (!anchor.current) {\n return null;\n }\n\n return (\n <Portal container={anchor.current}>\n <div\n className={classes.root}\n onClick={onClick}\n data-test-id=\"app-header-back-button\"\n >\n <ArrowBackIcon className={classes.backArrow} />\n {children ? (\n <Typography className={classes.title}>{children}</Typography>\n ) : (\n <Skeleton className={classes.skeleton} />\n )}\n </div>\n </Portal>\n );\n};\nBacklink.displayName = \"Backlink\";\n","import React from \"react\";\n\nexport const Logo: React.FC = () => (\n <svg\n width=\"36\"\n height=\"33\"\n viewBox=\"0 0 36 33\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#28234A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.7838 0L13.4043 6.64709H29.1638L35.5433 0H19.7838Z\"\n fill=\"#8AC4EB\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n fill=\"#28234A\"\n />\n </svg>\n);\n\nLogo.displayName = \"Logo\";\n","import ButtonBase, { ButtonBaseProps } from \"@material-ui/core/ButtonBase\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n \"&:hover, &:focus\": {\n background: \"#daedeb\",\n },\n background: theme.palette.background.paper,\n borderRadius: 16,\n color: theme.palette.primary.main,\n height: 48,\n transition: theme.transitions.duration.shortest + \"ms\",\n width: 48,\n },\n }),\n {\n name: \"ExpandButton\",\n }\n);\n\nexport const SquareButton: React.FC<ButtonBaseProps> = ({\n className,\n ...rest\n}) => {\n const classes = useStyles({});\n\n return <ButtonBase className={clsx(classes.root, className)} {...rest} />;\n};\n\nSquareButton.displayName = \"SquareButton\";\n","import { ButtonProps } from \"@material-ui/core/Button\";\nimport ArrowIcon from \"@material-ui/icons/ArrowBack\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport { SquareButton } from \"../SquareButton\";\nimport { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n arrow: {\n transition: theme.transitions.duration.shortest + \"ms\",\n },\n shrunk: {\n transform: \"scaleX(-1)\",\n },\n }),\n {\n name: \"ExpandButton\",\n }\n);\n\nexport interface ExpandButtonProps extends ButtonProps {\n isShrunk: boolean;\n}\n\nexport const ExpandButton: React.FC<ExpandButtonProps> = ({\n isShrunk,\n ...rest\n}) => {\n const classes = useStyles({});\n\n return (\n <SquareButton {...rest}>\n <ArrowIcon\n className={clsx(classes.arrow, {\n [classes.shrunk]: isShrunk,\n })}\n />\n </SquareButton>\n );\n};\n\nExpandButton.displayName = \"ExpandButton\";\n","import ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Popper from \"@material-ui/core/Popper\";\nimport { fade } from \"@material-ui/core/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport SVG from \"react-inlinesvg\";\n\nimport { makeStyles } from \"../theme\";\nimport { SidebarMenuItem } from \"./types\";\n\nexport interface MenuItemProps {\n active: boolean;\n isMenuShrunk: boolean;\n menuItem: SidebarMenuItem;\n onClick: (url: string) => void;\n}\n\nexport const menuWidth = 210;\nexport const shrunkMenuWidth = 72;\n\nconst useStyles = makeStyles(\n (theme) => ({\n hideLabel: {\n \"&$label\": {\n opacity: 0,\n },\n },\n icon: {\n \"& svg\": {\n height: 24,\n width: 24,\n },\n marginRight: theme.spacing(1.5),\n transition: theme.transitions.duration.shortest + \"ms\",\n },\n label: {\n cursor: \"pointer\",\n display: \"block\",\n fontSize: 16,\n fontWeight: \"bold\",\n opacity: 1,\n transition: theme.transitions.duration.shortest + \"ms\",\n },\n labelRoot: {\n position: \"absolute\",\n left: 72,\n width: 200,\n textAlign: \"left\",\n pointerEvents: \"none\",\n },\n menuItemBtn: {\n \"&:focus\": {\n color: theme.palette.primary.main,\n outline: 0,\n },\n background: \"none\",\n border: \"none\",\n color: \"inherit\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n margin: 0,\n padding: 0,\n },\n paper: {\n borderRadius: 16,\n boxShadow: \"0px 6px 30px rgba(0, 0, 0, 0.16)\",\n cursor: \"default\",\n padding: theme.spacing(3),\n textAlign: \"left\",\n },\n popper: {\n marginLeft: theme.spacing(3),\n zIndex: 2,\n },\n root: {\n \"&:hover, &:focus\": {\n color: theme.palette.primary.main,\n outline: 0,\n },\n borderBottomRightRadius: 100,\n borderTopRightRadius: 100,\n color: fade(theme.palette.text.primary, 0.6),\n cursor: \"pointer\",\n display: \"flex\",\n height: 56,\n marginBottom: theme.spacing(),\n overflow: \"hidden\",\n padding: theme.spacing(2, 3, 2, 3.5),\n transition: theme.transitions.duration.shortest + \"ms\",\n width: shrunkMenuWidth,\n },\n rootActive: {\n \"&$root\": {\n background: theme.palette.background.paper,\n boxShadow: \"0px 6px 30px rgba(0, 0, 0, 0.16)\",\n color: theme.palette.primary.main,\n },\n },\n rootExpanded: {\n width: menuWidth,\n },\n subMenuLabel: {\n \"&$label\": {\n \"&:not(:last-child)\": {\n marginBottom: theme.spacing(2),\n },\n },\n \"&:hover, &:focus\": {\n color: theme.palette.primary.main,\n outline: 0,\n },\n background: \"none\",\n border: \"none\",\n color: fade(theme.palette.text.primary, 0.6),\n padding: 0,\n textAlign: \"left\",\n textDecoration: \"none\",\n whiteSpace: \"nowrap\",\n },\n }),\n {\n name: \"MenuItem\",\n }\n);\n\nexport const MenuItem: React.FC<MenuItemProps> = ({\n active,\n menuItem,\n isMenuShrunk,\n onClick,\n}) => {\n const classes = useStyles({});\n const [open, setOpen] = React.useState(false);\n const anchor = React.useRef<HTMLDivElement>(null);\n\n const handleClick = (event: React.MouseEvent, menuItem: SidebarMenuItem) => {\n event.stopPropagation();\n if (menuItem.children) {\n setOpen(true);\n } else {\n onClick(menuItem.url!);\n setOpen(false);\n }\n };\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootActive]: active,\n [classes.rootExpanded]: !isMenuShrunk,\n })}\n ref={anchor}\n onClick={(event) => handleClick(event, menuItem)}\n >\n <button\n className={classes.menuItemBtn}\n data-test=\"menu-item-label\"\n data-test-id={menuItem.id}\n >\n {menuItem.iconSrc && (\n <SVG className={classes.icon} src={menuItem.iconSrc} />\n )}\n <Typography\n aria-label={menuItem.ariaLabel}\n className={clsx(classes.label, classes.labelRoot, {\n [classes.hideLabel]: isMenuShrunk,\n })}\n variant=\"body2\"\n >\n {menuItem.label}\n </Typography>\n </button>\n {menuItem.children && (\n <Popper\n className={classes.popper}\n open={open}\n anchorEl={anchor.current}\n transition\n disablePortal\n placement=\"right-start\"\n >\n <ClickAwayListener onClickAway={() => setOpen(false)}>\n <Paper className={classes.paper}>\n {menuItem.children.map((subMenuItem) => {\n const linkProps = subMenuItem.external\n ? { href: subMenuItem.url, target: \"_blank\" }\n : {};\n\n return (\n <Typography\n aria-label={subMenuItem.ariaLabel}\n component={subMenuItem.external ? \"a\" : \"button\"}\n className={clsx(classes.label, classes.subMenuLabel)}\n key={subMenuItem.url}\n onClick={(event: React.MouseEvent<any>) =>\n handleClick(event, subMenuItem)\n }\n data-test=\"submenu-item-label\"\n data-test-id={subMenuItem.id}\n variant=\"body2\"\n {...linkProps}\n >\n {subMenuItem.label}\n </Typography>\n );\n })}\n </Paper>\n </ClickAwayListener>\n </Popper>\n )}\n </div>\n );\n};\n\nMenuItem.displayName = \"MenuItem\";\n","import clsx from \"clsx\";\nimport React from \"react\";\n\nimport { Logo } from \"../icons/Logo\";\nimport { localStorageKeys } from \"../localStorageKeys\";\nimport { makeStyles } from \"../theme\";\nimport useLocalStorage from \"../tools/useLocalStorage\";\nimport { ExpandButton } from \"./ExpandButton\";\nimport { MenuItem, menuWidth, shrunkMenuWidth } from \"./MenuItem\";\nimport { BaseSidebarProps } from \"./types\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n expandButton: {\n marginLeft: theme.spacing(2),\n },\n float: {\n height: \"100vh\",\n position: \"fixed\",\n },\n logo: {\n margin: `36px 0 ${theme.spacing(3)} ${theme.spacing(3.5)}`,\n },\n root: {\n transition: \"width 0.5s ease\",\n width: menuWidth,\n zIndex: 100,\n },\n rootShrink: {\n width: shrunkMenuWidth,\n },\n toolbarContainer: {\n margin: theme.spacing(1, 0, 1, 2),\n },\n }),\n {\n name: \"SideBar\",\n }\n);\n\nexport interface SidebarProps extends BaseSidebarProps {\n active: string;\n}\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n active,\n menuItems,\n toolbar,\n onMenuItemClick,\n}) => {\n const classes = useStyles({});\n const { value: isShrunkStr, setValue: setShrink } = useLocalStorage(\n localStorageKeys.menuShrink,\n false.toString()\n );\n const isShrunk = isShrunkStr === \"true\";\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootShrink]: isShrunk,\n })}\n >\n <div className={classes.float}>\n <div className={classes.logo}>\n <Logo />\n </div>\n {menuItems.map((menuItem) => (\n <MenuItem\n active={active === menuItem.id}\n isMenuShrunk={isShrunk}\n menuItem={menuItem}\n onClick={onMenuItemClick}\n key={menuItem.ariaLabel}\n />\n ))}\n {toolbar && <div className={classes.toolbarContainer}>{toolbar}</div>}\n <ExpandButton\n className={classes.expandButton}\n isShrunk={isShrunk}\n onClick={() => setShrink((!isShrunk).toString())}\n />\n </div>\n </div>\n );\n};\n\nSidebar.displayName = \"SideBar\";\n","export const localStorageKeys = {\n theme: \"macaw-ui-theme\",\n menuShrink: \"macaw-ui-menu-shrink\",\n};\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n activeMenuLabel: {\n display: \"flex\",\n },\n container: {\n overflowX: \"hidden\",\n width: \"100%\",\n },\n containerSubMenu: {\n \"&$container\": {\n overflow: \"hidden\",\n },\n },\n content: {\n width: \"50%\",\n },\n icon: {\n marginRight: theme.spacing(2),\n },\n innerContainer: {\n display: \"flex\",\n position: \"relative\",\n right: 0,\n transition: theme.transitions.duration.short + \"ms\",\n width: \"200%\",\n },\n label: {\n fontWeight: \"bold\",\n },\n logo: {\n display: \"block\",\n marginBottom: theme.spacing(4),\n },\n menuItemBtn: {\n alignItems: \"center\",\n background: \"none\",\n border: \"none\",\n color: theme.palette.text.secondary,\n display: \"flex\",\n marginBottom: theme.spacing(3),\n padding: 0,\n textDecoration: \"none\",\n },\n root: {\n background: theme.palette.background.default,\n borderBottomRightRadius: 32,\n borderTopRightRadius: 32,\n padding: theme.spacing(3),\n width: 260,\n },\n secondaryContentActive: {\n right: \"100%\",\n },\n subMenuTopBar: {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: theme.spacing(3),\n },\n }),\n {\n name: \"SideBarDrawer\",\n }\n);\n\nexport default useStyles;\n","import Typography from \"@material-ui/core/Typography\";\nimport React from \"react\";\nimport SVG from \"react-inlinesvg\";\n\nimport { SidebarMenuItem } from \"../Sidebar/types\";\nimport useStyles from \"./styles\";\n\nexport interface MenuItemBtnProps {\n menuItem: SidebarMenuItem;\n onClick: (url: string) => void;\n}\nexport const MenuItemBtn: React.FC<MenuItemBtnProps> = ({\n menuItem,\n onClick,\n}) => {\n const classes = useStyles();\n const linkProps = menuItem.external\n ? { href: menuItem.url, target: \"_blank\" }\n : {};\n const Component = menuItem.external ? \"a\" : \"button\";\n\n return (\n <Component\n className={classes.menuItemBtn}\n data-test=\"menu-item-label\"\n data-test-id={menuItem.id}\n onClick={() => onClick(menuItem.url!)}\n {...linkProps}\n >\n {menuItem.iconSrc && (\n <SVG className={classes.icon} src={menuItem.iconSrc} />\n )}\n <Typography aria-label={menuItem.ariaLabel} className={classes.label}>\n {menuItem.label}\n </Typography>\n </Component>\n );\n};\n\nMenuItemBtn.displayName = \"MenuItemBtn\";\n","import Drawer from \"@material-ui/core/Drawer\";\nimport Typography from \"@material-ui/core/Typography\";\nimport ArrowLeftIcon from \"@material-ui/icons/ArrowLeft\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport SVG from \"react-inlinesvg\";\n\nimport { Logo } from \"../icons/Logo\";\nimport { BaseSidebarProps, SidebarMenuItem } from \"../Sidebar/types\";\nimport { SquareButton } from \"../SquareButton\";\nimport { MenuItemBtn } from \"./MenuItemBtn\";\nimport useStyles from \"./styles\";\n\nexport type SideBarDrawerProps = BaseSidebarProps;\n\nexport const SidebarDrawer: React.FC<SideBarDrawerProps> = ({\n menuItems,\n onMenuItemClick,\n}) => {\n const [isOpened, setOpened] = React.useState(false);\n const classes = useStyles({});\n const [activeMenu, setActiveMenu] = React.useState<SidebarMenuItem | null>(\n null\n );\n const [showSubmenu, setShowSubmenu] = React.useState(false);\n const container = React.useRef<HTMLDivElement>(null);\n\n const handleMenuItemClick = (url: string) => {\n setOpened(false);\n setShowSubmenu(false);\n onMenuItemClick(url);\n };\n\n const handleMenuItemWithChildrenClick = (menuItem: SidebarMenuItem) => {\n setActiveMenu(menuItem);\n setShowSubmenu(true);\n container.current?.scrollTo({\n top: 0,\n });\n };\n\n return (\n <>\n <SquareButton onClick={() => setOpened(true)}>\n <MenuIcon />\n </SquareButton>\n <Drawer\n classes={{\n paper: classes.root,\n }}\n open={isOpened}\n onClose={() => setOpened(false)}\n >\n <div\n className={clsx(classes.container, {\n [classes.containerSubMenu]: showSubmenu,\n })}\n ref={container}\n >\n <div\n className={clsx(classes.innerContainer, {\n [classes.secondaryContentActive]: showSubmenu,\n })}\n >\n <div className={classes.content}>\n <div className={classes.logo}>\n <Logo />\n </div>\n {menuItems.map((menuItem) => (\n <MenuItemBtn\n menuItem={menuItem}\n onClick={\n menuItem.children\n ? () => handleMenuItemWithChildrenClick(menuItem)\n : handleMenuItemClick\n }\n key={menuItem.ariaLabel}\n />\n ))}\n </div>\n {activeMenu && (\n <div className={classes.content}>\n <div className={classes.subMenuTopBar}>\n <div className={classes.activeMenuLabel}>\n {activeMenu.iconSrc && (\n <SVG className={classes.icon} src={activeMenu.iconSrc} />\n )}\n <Typography className={classes.label}>\n {activeMenu.label}\n </Typography>\n </div>\n <SquareButton onClick={() => setShowSubmenu(false)}>\n <ArrowLeftIcon />\n </SquareButton>\n </div>\n {activeMenu.children?.map((subMenuItem) => (\n <MenuItemBtn\n menuItem={subMenuItem}\n onClick={handleMenuItemClick}\n key={subMenuItem.ariaLabel}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n </Drawer>\n </>\n );\n};\n\nSidebarDrawer.displayName = \"SideBarDrawer\";\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n close: {\n color: theme.palette.common.black,\n position: \"absolute\",\n right: theme.spacing(-2),\n top: theme.spacing(-1),\n },\n closeNoContent: {\n \"&$close\": {\n right: theme.spacing(-3),\n top: theme.spacing(-3),\n },\n },\n container: {\n columnGap: theme.spacing(2),\n display: \"grid\",\n gridTemplateColumns: \"40px 1fr\",\n },\n content: {\n padding: theme.spacing(0, 1),\n },\n root: {},\n titleBar: {\n marginTop: 6,\n marginBottom: theme.spacing(1),\n position: \"relative\",\n },\n error: {\n background: theme.palette.alert.paper.error,\n },\n warning: {\n background: theme.palette.alert.paper.warning,\n },\n success: {\n background: theme.palette.alert.paper.success,\n },\n }),\n {\n name: \"Alert\",\n }\n);\n\nexport default useStyles;\n","import Card from \"@material-ui/core/Card\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport { CompleteIcon, InfoIcon, NotAllowedIcon, WarningIcon } from \"../icons\";\nimport useStyles from \"./styles\";\n\nexport type AlertVariant = \"error\" | \"warning\" | \"success\" | \"info\";\nexport interface AlertProps {\n className?: string;\n close?: boolean;\n variant: AlertVariant;\n title: string;\n}\n\nfunction getIcon(variant: AlertVariant): React.ReactElement {\n switch (variant) {\n case \"error\":\n return <NotAllowedIcon />;\n case \"success\":\n return <CompleteIcon />;\n case \"warning\":\n return <WarningIcon />;\n }\n return <InfoIcon />;\n}\n\nexport const Alert: React.FC<AlertProps> = ({\n className,\n close = true,\n variant = \"info\",\n title,\n children,\n}) => {\n const classes = useStyles();\n const [visible, setVisible] = React.useState(true);\n\n if (!visible) {\n return null;\n }\n\n return (\n <Card\n elevation={0}\n className={clsx(className, classes.root, {\n [classes.error]: variant === \"error\",\n [classes.warning]: variant === \"warning\",\n [classes.success]: variant === \"success\",\n })}\n data-test=\"alert\"\n >\n <CardContent>\n <div className={classes.container}>\n <div>{getIcon(variant)}</div>\n <div className={classes.content}>\n <div className={classes.titleBar}>\n <Typography variant=\"h5\">{title}</Typography>\n {close && (\n <IconButton\n className={clsx(classes.close, {\n [classes.closeNoContent]: !!children,\n })}\n onClick={() => setVisible(false)}\n data-test=\"close\"\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n {typeof children === \"string\" ? (\n <Typography variant=\"body1\">{children}</Typography>\n ) : (\n children\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n );\n};\n\nAlert.displayName = \"Alert\";\n","import { makeStyles } from \"../theme\";\n\nconst iconWidth = 40;\n\nconst useStyles = makeStyles(\n (theme) => ({\n actionBtn: {\n left: -4,\n position: \"relative\",\n minWidth: \"unset\",\n },\n closeBtn: {\n \"& svg\": {\n maxHeight: 20,\n maxWidth: 20,\n },\n padding: 10,\n position: \"absolute\",\n right: 5,\n top: 7,\n },\n closeBtnInfo: {\n color: theme.palette.text.primary,\n },\n error: {\n backgroundColor: theme.palette.alert.paper.error,\n },\n hiddenText: {\n maxHeight: 0,\n },\n info: {},\n snackbar: {\n borderRadius: 4,\n padding: theme.spacing(0, 6, 1, 2),\n position: \"relative\",\n },\n snackbarContainer: {\n marginBottom: theme.spacing(2),\n maxWidth: 450,\n position: \"relative\",\n },\n snackbarAction: {\n paddingLeft: `calc(${iconWidth}px + ${theme.spacing(2)})`,\n },\n success: {\n backgroundColor: theme.palette.alert.paper.success,\n },\n text: {\n fontWeight: 400,\n paddingTop: 5,\n },\n warning: {\n backgroundColor: theme.palette.alert.paper.warning,\n },\n\n messageContainer: {\n paddingTop: theme.spacing(2),\n position: \"relative\",\n },\n\n container: {\n columnGap: theme.spacing(2),\n display: \"grid\",\n gridTemplateColumns: `${iconWidth}px 1fr`,\n },\n title: {\n marginTop: 6,\n marginBottom: theme.spacing(0.5),\n },\n }),\n { name: \"Notification\" }\n);\n\nexport default useStyles;\n","import Button from \"@material-ui/core/Button\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\nimport Typography from \"@material-ui/core/Typography\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport { CompleteIcon, InfoIcon, NotAllowedIcon, WarningIcon } from \"../icons\";\nimport useStyles from \"./styles\";\nimport type { NotificationProps, NotificationType } from \"./types\";\n\nfunction getIcon(variant: NotificationType): React.ReactElement {\n switch (variant) {\n case \"error\":\n return <NotAllowedIcon />;\n case \"success\":\n return <CompleteIcon />;\n case \"warning\":\n return <WarningIcon />;\n }\n return <InfoIcon />;\n}\n\nexport const Notification: React.FC<NotificationProps> = ({\n onClose,\n title,\n type,\n action,\n content,\n className,\n ...rest\n}) => {\n const classes = useStyles();\n\n return (\n <div\n className={clsx(classes.snackbarContainer, className)}\n data-test=\"notification\"\n data-test-type={type}\n {...rest}\n >\n <SnackbarContent\n aria-describedby=\"client-snackbar\"\n classes={{\n action: classes.snackbarAction,\n message: classes.messageContainer,\n }}\n className={clsx(classes.snackbar, {\n [classes.info]: type === \"info\",\n [classes.error]: type === \"error\",\n [classes.success]: type === \"success\",\n [classes.warning]: type === \"warning\",\n })}\n message={\n <div className={classes.container}>\n <div>{getIcon(type)}</div>\n <div>\n <div className={classes.title}>\n <Typography variant=\"h5\">{title}</Typography>\n </div>\n <Typography variant=\"body1\">{content}</Typography>\n </div>\n </div>\n }\n action={[\n <div key=\"actions\">\n {!!action && (\n <Button\n className={classes.actionBtn}\n key=\"action\"\n color=\"default\"\n size=\"small\"\n onClick={action.onClick}\n data-test=\"button-action\"\n >\n {action.label}\n </Button>\n )}\n </div>,\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n onClick={onClose}\n className={clsx(classes.closeBtn, {\n [classes.closeBtnInfo]: type === \"info\",\n })}\n data-test=\"close\"\n >\n <CloseIcon />\n </IconButton>,\n ]}\n />\n </div>\n );\n};\nNotification.displayName = \"Notification\";\n","import { createContext, useContext } from \"react\";\n\nexport type UserChipMenuContextType = () => void;\n\nexport const UserChipMenuContext = createContext<\n UserChipMenuContextType | undefined\n>(undefined);\nUserChipMenuContext.displayName = \"UserChipMenuContext\";\n\nexport const useUserChipMenu = () => {\n const ctx = useContext(UserChipMenuContext);\n if (ctx === undefined) {\n throw new Error(\n \"useUserChipMenu must be used within a UserChipMenuContext\"\n );\n }\n\n return ctx;\n};\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n arrow: {\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: 0,\n },\n marginLeft: theme.spacing(2),\n transition: theme.transitions.duration.standard + \"ms\",\n },\n avatar: {\n \"&&\": {\n [theme.breakpoints.down(\"sm\")]: {\n height: 40,\n width: 40,\n },\n height: 32,\n width: 32,\n },\n },\n avatarInitials: {\n color: theme.palette.primary.contrastText,\n },\n avatarPlaceholder: {\n alignItems: \"center\",\n background: theme.palette.primary.main,\n borderRadius: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n label: {\n lineHeight: 1.2,\n },\n labelContainer: {\n display: \"inline-flex\",\n alignItems: \"center\",\n },\n popover: {\n marginTop: theme.spacing(2),\n zIndex: 10,\n },\n rotate: {\n transform: \"rotate(180deg)\",\n },\n userChip: {\n [theme.breakpoints.down(\"sm\")]: {\n height: 48,\n },\n backgroundColor: theme.palette.background.paper,\n borderRadius: 24,\n color: theme.palette.text.primary,\n height: 40,\n padding: theme.spacing(0.5),\n },\n userMenuContainer: {\n position: \"relative\",\n },\n }),\n {\n name: \"UserChipMenu\",\n }\n);\n\nexport default useStyles;\n","import Avatar from \"@material-ui/core/Avatar\";\nimport Chip from \"@material-ui/core/Chip\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Grow from \"@material-ui/core/Grow\";\nimport Hidden from \"@material-ui/core/Hidden\";\nimport Menu from \"@material-ui/core/MenuList\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Popper from \"@material-ui/core/Popper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\nimport React from \"react\";\n\nimport ArrowDropdownIcon from \"../icons/ArrowDropdownIcon\";\nimport { UserChipMenuContext } from \"./context\";\nimport useStyles from \"./styles\";\n\nexport interface UserChipProps {\n avatar: string | null;\n initials: string;\n name: string;\n subtext?: string;\n}\n\nexport const UserChipMenu: React.FC<UserChipProps> = ({\n avatar,\n initials,\n name,\n subtext,\n children,\n ...props\n}) => {\n const classes = useStyles({});\n const [isMenuOpened, setMenuState] = React.useState(false);\n const anchor = React.useRef<HTMLDivElement>(null);\n\n const closeMenu = () => setMenuState(false);\n\n return (\n <div className={classes.userMenuContainer} {...props}>\n <Chip\n avatar={\n avatar ? (\n <Avatar alt=\"user\" src={avatar} />\n ) : (\n <div className={classes.avatarPlaceholder}>\n <div className={classes.avatarInitials}>{initials}</div>\n </div>\n )\n }\n classes={{\n avatar: classes.avatar,\n }}\n className={classes.userChip}\n label={\n <div className={classes.labelContainer}>\n <Hidden smDown>\n <div>\n <Typography className={classes.label} variant=\"body2\">\n {name}\n </Typography>\n {subtext && (\n <Typography\n className={classes.label}\n variant=\"body2\"\n color=\"textSecondary\"\n >\n {subtext}\n </Typography>\n )}\n </div>\n </Hidden>\n <ArrowDropdownIcon\n className={clsx(classes.arrow, {\n [classes.rotate]: isMenuOpened,\n })}\n />\n </div>\n }\n onClick={() => setMenuState(!isMenuOpened)}\n ref={anchor}\n data-test=\"userMenu\"\n />\n <Popper\n className={classes.popover}\n open={isMenuOpened}\n anchorEl={anchor.current}\n transition\n placement=\"bottom-end\"\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === \"bottom\" ? \"right top\" : \"right bottom\",\n }}\n >\n <Paper>\n <ClickAwayListener onClickAway={closeMenu} mouseEvent=\"onClick\">\n <Menu>\n <UserChipMenuContext.Provider value={closeMenu}>\n {children}\n </UserChipMenuContext.Provider>\n </Menu>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n );\n};\nUserChipMenu.displayName = \"UserChip\";\n","import MenuItem, { MenuItemProps } from \"@material-ui/core/MenuItem\";\nimport React from \"react\";\n\nimport { useUserChipMenu } from \"./context\";\n\nexport interface UserChipMenuItemProps extends Omit<MenuItemProps, \"button\"> {\n leaveOpen?: boolean;\n}\n\nexport const UserChipMenuItem: React.FC<UserChipMenuItemProps> = ({\n leaveOpen,\n onClick,\n ...props\n}) => {\n const closeMenu = useUserChipMenu();\n\n // We're not really interested in event type here\n const handleClickWithClose = (event: unknown) => {\n closeMenu();\n if (onClick) {\n onClick(event as any);\n }\n };\n\n return (\n <MenuItem\n {...props}\n onClick={leaveOpen ? onClick : handleClickWithClose}\n button\n />\n );\n};\nUserChipMenuItem.displayName = \"UserChipMenuItem\";\n","import { makeStyles } from \"../theme\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n [theme.breakpoints.up(\"md\")]: {\n \"&& table\": {\n tableLayout: \"fixed\",\n },\n },\n \"& table\": {\n tableLayout: \"auto\",\n },\n overflowX: \"auto\",\n width: \"100%\",\n },\n }),\n {\n name: \"ResponsiveTable\",\n }\n);\n\nexport default useStyles;\n","import Table from \"@material-ui/core/Table\";\nimport React from \"react\";\n\nimport useStyles from \"./styles\";\n\ninterface ResponsiveTableProps {\n children: React.ReactNode | React.ReactNodeArray;\n className?: string;\n key?: string;\n}\n\nexport const ResponsiveTable: React.FC<ResponsiveTableProps> = (props) => {\n const { children, className } = props;\n\n const classes = useStyles(props);\n\n return (\n <div className={classes.root}>\n <Table className={className}>{children}</Table>\n </div>\n );\n};\n\nResponsiveTable.displayName = \"ResponsiveTable\";\n","import { makeStyles } from \"../theme\";\nimport { TooltipProps } from \"./Tooltip\";\n\nconst useStyles = makeStyles<TooltipProps, \"tooltip\">(\n (theme) => ({\n tooltip: {\n backgroundColor: (props) => {\n switch (props.variant) {\n case \"info\":\n return theme.palette.info.main;\n case \"success\":\n return theme.palette.success.main;\n case \"warning\":\n return theme.palette.warning.main;\n case \"error\":\n return theme.palette.error.main;\n default:\n return theme.palette.info.main;\n }\n },\n },\n }),\n {\n name: \"Tooltip\",\n }\n);\n\nexport default useStyles;\n","import { Tooltip as MUITooltip } from \"@material-ui/core\";\nimport { TooltipProps as MUITooltipProps } from \"@material-ui/core/Tooltip\";\nimport React from \"react\";\n\nimport useStyles from \"./styles\";\n\nexport interface TooltipProps extends MUITooltipProps {\n variant?: \"info\" | \"success\" | \"warning\" | \"error\";\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n variant = \"info\",\n ...rest\n}) => {\n const classes = useStyles({ variant, children, ...rest });\n\n return (\n <MUITooltip classes={classes} {...rest}>\n {children}\n </MUITooltip>\n );\n};\n\nTooltip.displayName = \"Tooltip\";\n","import type { Theme } from \"@material-ui/core/styles\";\nimport { MuiThemeProvider } from \"@material-ui/core/styles\";\nimport { merge } from \"lodash\";\nimport React, { useEffect } from \"react\";\n\nimport { ActionBarProvider } from \"../ActionBar/context\";\nimport { BacklinkProvider } from \"../Backlink/context\";\nimport {\n ExtensionMessageType,\n sendMessageToExtension,\n ThemeChangeMessage,\n} from \"../extensions\";\nimport { localStorageKeys } from \"../localStorageKeys\";\nimport useLocalStorage from \"../tools/useLocalStorage\";\nimport { Baseline } from \"./Baseline\";\nimport { ThemeContext } from \"./context\";\nimport { createTheme, Themes, ThemeType } from \"./createSaleorTheme\";\nimport { dark, light } from \"./themes\";\nimport { changeColorMeta } from \"./utils\";\n\nexport interface ThemeProviderProps {\n defaultTheme?: ThemeType;\n /**\n * Passing an object here will result in losing visual consistency with\n * Saleor's Dashboard. Use with caution.\n */\n palettes?: Partial<Themes>;\n /**\n * Passing an object here will result in losing visual consistency with\n * Saleor's Dashboard. Use with caution.\n */\n overrides?: Partial<Theme>;\n}\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = \"light\",\n palettes = {},\n overrides = {},\n}) => {\n const { value: themeTypeName, setValue: setThemeType } = useLocalStorage(\n localStorageKeys.theme,\n defaultTheme\n );\n const themeType = themeTypeName as ThemeType;\n const themes = {\n light,\n dark,\n ...palettes,\n };\n const theme = merge(createTheme(themes[themeType]), overrides);\n const sendThemeToExtension = () =>\n sendMessageToExtension<ThemeChangeMessage>(\n {\n theme: themeType,\n type: ExtensionMessageType.THEME,\n },\n \"*\"\n );\n\n useEffect(() => {\n sendThemeToExtension();\n changeColorMeta(theme.palette.background.default);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themeType]);\n\n return (\n <ThemeContext.Provider\n value={{\n themeType,\n sendThemeToExtension,\n setTheme: setThemeType,\n }}\n >\n <MuiThemeProvider theme={theme}>\n <ActionBarProvider>\n <BacklinkProvider>\n <Baseline />\n {children}\n </BacklinkProvider>\n </ActionBarProvider>\n </MuiThemeProvider>\n </ThemeContext.Provider>\n );\n};\n","export function changeColorMeta(color: string) {\n const themeColorTag = document.createElement(\"meta\");\n themeColorTag.setAttribute(\"content\", color);\n themeColorTag.setAttribute(\"name\", \"theme-color\");\n\n const existingColorTag = document.head.querySelector(\n `meta[name=\"theme-color\"]`\n );\n if (existingColorTag) {\n existingColorTag.remove();\n }\n document.head.appendChild(themeColorTag);\n}\n","import { useEffect } from \"react\";\n\nimport { BaseExtensionMessageData, ExtensionMessageEvent } from \"./types\";\n\nexport function useExtensionMessage<T extends BaseExtensionMessageData>(\n handle: (message: ExtensionMessageEvent<T>) => void\n) {\n useEffect(() => {\n window.addEventListener(\"message\", handle);\n\n return () => window.removeEventListener(\"message\", handle);\n }, [handle]);\n}\n"],"names":["ActionBarContext","React","createContext","undefined","displayName","useActionBar","ctx","useContext","Error","ActionBarProvider","children","useState","docked","setDocked","anchor","useRef","Provider","value","BacklinkContext","ExtensionMessageType","useBacklink","BacklinkProvider","sendMessageToExtension","message","targetOrigin","appFrame","document","querySelector","contentWindow","postMessage","useLocalStorage","key","initialValue","window","localStorage","getItem","setValue","useEffect","newValue","handleStorage","useCallback","event","addEventListener","removeEventListener","setItem","ThemeContext","makeStyles","styles","options","muiMakeStyles","useStyles","theme","background","fade","palette","primary","main","html","fontSize","name","Baseline","CssBaseline","overrides","colors","fontFamily","MuiInput","input","WebkitTextFillColor","font","boxShadow","autofill","opacity","color","underline","borderBottomColor","MuiInputBase","disabledText","gray","MuiInputLabel","formControl","transform","transformOrigin","width","outlined","root","error","text","shrink","MuiOutlinedInput","borderRadius","padding","inputMultiline","left","position","borderColor","border","top","display","disabled","backgroundColor","disabledBackground","paper","inputOverrides","MuiTable","fontFeatureSettings","MuiTableCell","body","head","fontWeight","textDisabled","paddingCheckbox","paddingLeft","textAlign","paperBorder","MuiTablePagination","MuiTableRow","footer","hover","tableOverrides","MuiButton","contained","containedPrimary","darken","label","marginLeft","textPrimary","textSizeSmall","MuiIconButton","MuiSwitch","colorPrimary","height","switchBase","thumb","track","buttonOverrides","createPalette","action","active","checkbox","alert","divider","contrastText","dark","secondary","success","hint","textHighlighted","inactive","highlightInactive","type","createShadow","pv","pb","ps","uv","ub","us","av","ab","as","join","shadows","createTheme","createMuiTheme","MuiCard","borderStyle","borderWidth","overflow","MuiCardActions","flexDirection","MuiCardContent","MuiCardHeader","MuiChip","avatar","MuiDialogActions","borderTop","MuiDialogContent","margin","MuiDialogContentText","marginBottom","MuiDialogTitle","borderBottom","MuiFormControlLabel","lineHeight","MuiFormLabel","filled","MuiSvgIcon","MuiList","gridRowGap","MuiListItem","button","MuiMenu","MuiMenuItem","MuiSelect","MuiSnackbarContent","paddingBottom","paddingRight","maxWidth","MuiTooltip","tooltip","MuiTouchRipple","child","childLeaving","ripple","props","MuiFormControl","variant","MuiTextField","elevation","MuiTypography","component","MuiCheckbox","placement","spacing","typography","allVariants","body1","body2","caption","h1","h4","h5","h6","subtitle1","subtitle2","info","warning","icon","textButton","textHover","light","CompleteIcon","viewBox","fill","xmlns","cx","cy","r","stroke","strokeWidth","fillRule","clipRule","d","InfoIcon","NotAllowedIcon","NotAllowedInvertedIcon","WarningIcon","ArrowDropdownIcon","createSvgIcon","style","CheckboxIcon","x","y","CheckboxCheckedIcon","CheckboxIndeterminateIcon","getPosition","pageXOffset","pageYOffset","content","paddingTop","breakpoints","down","marginTop","borderBottomLeftRadius","borderBottomRightRadius","ActionBar","scroll","setScroll","state","rest","classes","scrollPosition","handleScroll","throttle","scrolledToBottom","innerHeight","scrollHeight","current","Portal","container","className","Container","Card","CardContent","transitionDuration","transitions","duration","standard","invisible","alignItems","progress","common","white","ConfirmButton","labels","noTransition","transitionState","onClick","onTransitionToDefault","displayCompletedActionState","setDisplayCompletedActionState","timeout","includes","setTimeout","clearTimeout","isCompleted","Button","clsx","CircularProgress","size","CheckIcon","confirm","ButtonTooltipDecorator","Tooltip","title","marginRight","cancelButton","deleteButton","spacer","flex","Savebar","tooltips","onCancel","onDelete","onSubmit","cancel","backArrow","menuButton","grey","cursor","transition","skeleton","textTransform","Backlink","ArrowBackIcon","Typography","Skeleton","Logo","shortest","SquareButton","ButtonBase","arrow","shrunk","ExpandButton","isShrunk","ArrowIcon","hideLabel","labelRoot","pointerEvents","menuItemBtn","outline","popper","zIndex","borderTopRightRadius","rootActive","rootExpanded","subMenuLabel","textDecoration","whiteSpace","MenuItem","menuItem","isMenuShrunk","open","setOpen","handleClick","stopPropagation","url","ref","id","iconSrc","SVG","src","ariaLabel","Popper","anchorEl","disablePortal","ClickAwayListener","onClickAway","Paper","map","subMenuItem","linkProps","external","href","target","expandButton","logo","rootShrink","toolbarContainer","Sidebar","menuItems","toolbar","onMenuItemClick","toString","setShrink","activeMenuLabel","overflowX","containerSubMenu","innerContainer","right","secondaryContentActive","subMenuTopBar","justifyContent","MenuItemBtn","SidebarDrawer","isOpened","setOpened","activeMenu","setActiveMenu","showSubmenu","setShowSubmenu","handleMenuItemClick","MenuIcon","Drawer","onClose","scrollTo","handleMenuItemWithChildrenClick","ArrowLeftIcon","_activeMenu$children","close","black","closeNoContent","columnGap","gridTemplateColumns","titleBar","Alert","setVisible","getIcon","IconButton","CloseIcon","actionBtn","minWidth","closeBtn","maxHeight","closeBtnInfo","hiddenText","snackbar","snackbarContainer","snackbarAction","messageContainer","iconWidth","Notification","SnackbarContent","UserChipMenuContext","avatarInitials","avatarPlaceholder","labelContainer","popover","rotate","userChip","userMenuContainer","UserChipMenu","initials","subtext","isMenuOpened","setMenuState","closeMenu","Chip","Avatar","alt","Hidden","smDown","Grow","TransitionProps","mouseEvent","Menu","UserChipMenuItem","leaveOpen","useUserChipMenu","up","tableLayout","ResponsiveTable","Table","MUITooltip","defaultTheme","palettes","setThemeType","themeType","themes","merge","sendThemeToExtension","THEME","themeColorTag","createElement","setAttribute","existingColorTag","remove","appendChild","changeColorMeta","setTheme","MuiThemeProvider","parent","handle","saleorTheme","useMuiTheme","themeInfo"],"mappings":"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"}