@saleor/macaw-ui 0.2.6 → 0.2.7

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.
@@ -1 +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/icons/LogoLight.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 type { ThemeOptions } from \"@material-ui/core/styles\";\nimport { darken, fade } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const buttonOverrides = (\n colors: SaleorThemeColors\n): ThemeOptions[\"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 { ThemeOptions } from \"@material-ui/core/styles\";\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): ThemeOptions[\"overrides\"] => ({\n ...inputOverrides(colors),\n ...tableOverrides(colors, fontFamily),\n ...buttonOverrides(colors),\n});\n","import { fade, ThemeOptions } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const inputOverrides = (\n colors: SaleorThemeColors\n): ThemeOptions[\"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, ThemeOptions } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const tableOverrides = (\n colors: SaleorThemeColors,\n fontFamily: string\n): ThemeOptions[\"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 { ThemeOptions } from \"@material-ui/core/styles\";\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: ThemeOptions[\"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 MuiDialog: {\n paper: {\n overflowY: undefined,\n },\n },\n MuiDialogActions: {\n root: {\n borderTop: `1px solid ${colors.divider}`,\n padding: \"16px 24px\",\n },\n },\n MuiDialogContent: {\n root: {\n overflowX: undefined,\n overflowY: undefined,\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<React.SVGProps<SVGSVGElement>> = (props) => (\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 {...props}\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.59759 2.13062C6.4332 2.13062 6.27552 2.1958 6.15911 2.31187L0.182532 8.27133C0.00456112 8.44879 -0.0488948 8.71603 0.0471181 8.94829C0.143131 9.18056 0.369679 9.33205 0.621008 9.33205H21.3482C21.5126 9.33205 21.6703 9.26687 21.7867 9.1508L27.7632 3.19134C27.9412 3.01388 27.9947 2.74664 27.8987 2.51437C27.8026 2.28211 27.5761 2.13062 27.3248 2.13062H6.59759ZM2.12325 8.09007L6.85429 3.37259H25.8225L21.0915 8.09007H2.12325ZM23.9789 27.3629C23.9789 30.6214 22.4977 33 16.6072 33C11.4908 33 9.43754 31.599 9 28.1124L13.6451 27.4281C13.9144 29.1551 14.5539 29.5135 16.6745 29.5135C18.5933 29.5135 19.2328 29.0573 19.2328 28.0146C19.2328 26.7437 18.492 26.418 16.5735 26.0594C16.4207 26.0337 16.2653 26.0082 16.1079 25.9823C13.0752 25.4835 9.30464 24.8634 9.33654 20.6504C9.33654 17.2293 11.2216 15.0787 16.5735 15.0787C21.4542 15.0787 23.3055 16.7404 23.7097 20.0314L18.9298 20.7482C18.7614 19.2168 18.2566 18.6954 16.4389 18.6954C14.9577 18.6954 14.0489 19.0867 14.0489 20.1292C14.0489 21.5304 15.0924 21.7258 17.3814 22.1167C20.3772 22.6056 23.9789 23.3549 23.9789 27.3629Z\"\n fill=\"#28234A\"\n />\n </svg>\n);\n\nLogo.displayName = \"Logo\";\n","import React from \"react\";\n\nexport const LogoLight: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\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 {...props}\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.59759 2.13062C6.4332 2.13062 6.27552 2.1958 6.15911 2.31187L0.182532 8.27133C0.00456112 8.44879 -0.0488948 8.71603 0.0471181 8.94829C0.143131 9.18056 0.369679 9.33205 0.621008 9.33205H21.3482C21.5126 9.33205 21.6703 9.26687 21.7867 9.1508L27.7632 3.19134C27.9412 3.01388 27.9947 2.74664 27.8987 2.51437C27.8026 2.28211 27.5761 2.13062 27.3248 2.13062H6.59759ZM2.12325 8.09007L6.85429 3.37259H25.8225L21.0915 8.09007H2.12325ZM23.9789 27.3629C23.9789 30.6214 22.4977 33 16.6072 33C11.4908 33 9.43754 31.599 9 28.1124L13.6451 27.4281C13.9144 29.1551 14.5539 29.5135 16.6745 29.5135C18.5933 29.5135 19.2328 29.0573 19.2328 28.0146C19.2328 26.7437 18.492 26.418 16.5735 26.0594C16.4207 26.0337 16.2653 26.0082 16.1079 25.9823C13.0752 25.4835 9.30464 24.8634 9.33654 20.6504C9.33654 17.2293 11.2216 15.0787 16.5735 15.0787C21.4542 15.0787 23.3055 16.7404 23.7097 20.0314L18.9298 20.7482C18.7614 19.2168 18.2566 18.6954 16.4389 18.6954C14.9577 18.6954 14.0489 19.0867 14.0489 20.1292C14.0489 21.5304 15.0924 21.7258 17.3814 22.1167C20.3772 22.6056 23.9789 23.3549 23.9789 27.3629Z\"\n fill=\"#FAFAFA\"\n />\n </svg>\n);\n\nLogoLight.displayName = \"LogoLight\";\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 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 { LogoLight } from \"../icons/LogoLight\";\nimport { localStorageKeys } from \"../localStorageKeys\";\nimport { makeStyles, useTheme } 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 paddingRight: \"2em\",\n overflowY: \"auto\",\n },\n logo: {\n margin: `36px 0 ${theme.spacing(3)} ${theme.spacing(3.5)}`,\n },\n root: {\n transition: \"width 0.5s ease\",\n minWidth: menuWidth,\n width: menuWidth,\n zIndex: 100,\n },\n rootShrink: {\n minWidth: shrunkMenuWidth,\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 theme = useTheme();\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 {theme.themeType === \"light\" ? <Logo /> : <LogoLight />}\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 { LogoLight } from \"../icons/LogoLight\";\nimport { BaseSidebarProps, SidebarMenuItem } from \"../Sidebar/types\";\nimport { SquareButton } from \"../SquareButton\";\nimport { useTheme } from \"../theme\";\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 theme = useTheme();\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 {theme.themeType === \"light\" ? <Logo /> : <LogoLight />}\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","useTheme","saleorTheme","useMuiTheme","themeInfo","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","MuiDialog","overflowY","MuiDialogActions","borderTop","MuiDialogContent","overflowX","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","LogoLight","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","ClickAwayListener","onClickAway","Paper","map","subMenuItem","linkProps","external","href","target","expandButton","logo","minWidth","rootShrink","toolbarContainer","Sidebar","menuItems","toolbar","onMenuItemClick","toString","setShrink","themeType","activeMenuLabel","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","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","themes","merge","sendThemeToExtension","THEME","themeColorTag","createElement","setAttribute","existingColorTag","remove","appendChild","changeColorMeta","setTheme","MuiThemeProvider","parent","handle"],"mappings":"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"}
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/icons/SearchIcon.tsx","../src/icons/EditIcon.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/icons/LogoLight.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 type { ThemeOptions } from \"@material-ui/core/styles\";\nimport { darken, fade } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const buttonOverrides = (\n colors: SaleorThemeColors\n): ThemeOptions[\"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 { ThemeOptions } from \"@material-ui/core/styles\";\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): ThemeOptions[\"overrides\"] => ({\n ...inputOverrides(colors),\n ...tableOverrides(colors, fontFamily),\n ...buttonOverrides(colors),\n});\n","import { fade, ThemeOptions } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const inputOverrides = (\n colors: SaleorThemeColors\n): ThemeOptions[\"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, ThemeOptions } from \"@material-ui/core/styles\";\n\nimport { SaleorThemeColors } from \"../types\";\n\nexport const tableOverrides = (\n colors: SaleorThemeColors,\n fontFamily: string\n): ThemeOptions[\"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 { ThemeOptions } from \"@material-ui/core/styles\";\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: ThemeOptions[\"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 MuiDialog: {\n paper: {\n overflowY: undefined,\n },\n },\n MuiDialogActions: {\n root: {\n borderTop: `1px solid ${colors.divider}`,\n padding: \"16px 24px\",\n },\n },\n MuiDialogContent: {\n root: {\n overflowX: undefined,\n overflowY: undefined,\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","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nexport const SearchIcon = createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17 10.5C17 14.0899 14.0899 17 10.5 17C6.91015 17 4 14.0899 4 10.5C4 6.91015 6.91015 4 10.5 4C14.0899 4 17 6.91015 17 10.5ZM15.7618 17.176C14.3145 18.3183 12.4869 19 10.5 19C5.80558 19 2 15.1944 2 10.5C2 5.80558 5.80558 2 10.5 2C15.1944 2 19 5.80558 19 10.5C19 12.4869 18.3183 14.3145 17.176 15.7618L21.7071 20.2929C22.0976 20.6834 22.0976 21.3166 21.7071 21.7071C21.3166 22.0976 20.6834 22.0976 20.2929 21.7071L15.7618 17.176Z\"\n fill=\"currentColor\"\n />,\n \"SearchIcon\"\n);\n","import { createSvgIcon } from \"@material-ui/core/utils\";\nimport React from \"react\";\n\nexport const EditIcon = createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.0445 2.90731C18.8236 1.69756 16.8544 1.69756 15.6336 2.90731L14.7077 3.82479L7.00549 11.4569C6.63843 11.8206 6.41956 12.3074 6.39126 12.8231L6.24246 15.535C6.17315 16.7984 7.23704 17.8317 8.4994 17.7272L11.1564 17.5073C11.646 17.4668 12.1055 17.2551 12.4543 16.9096L21.0739 8.36838C22.3086 7.14491 22.3086 5.15086 21.0739 3.92738L20.0445 2.90731ZM8.47578 12.9372L15.4428 6.03358L17.9544 8.52227L10.984 15.4292L8.32698 15.6492L8.47578 12.9372ZM16.9249 4.56496L19.4365 7.05365L19.6036 6.88805C20.0152 6.48022 20.0152 5.81554 19.6036 5.40772L18.5742 4.38765C18.1672 3.9844 17.5108 3.9844 17.1039 4.38765L16.9249 4.56496ZM5.13147 3.23318C3.40201 3.23318 2 4.63355 2 6.36099V18.8722C2 20.5997 3.40201 22 5.13147 22H17.6573C19.3868 22 20.7888 20.5997 20.7888 18.8722V14.2848C20.7888 13.709 20.3215 13.2422 19.745 13.2422C19.1685 13.2422 18.7012 13.709 18.7012 14.2848V18.8722C18.7012 19.4481 18.2338 19.9148 17.6573 19.9148H5.13147C4.55498 19.9148 4.08765 19.4481 4.08765 18.8722V6.36099C4.08765 5.78518 4.55498 5.31839 5.13147 5.31839H9.72429C10.3008 5.31839 10.7681 4.8516 10.7681 4.27578C10.7681 3.69997 10.3008 3.23318 9.72429 3.23318H5.13147Z\"\n fill=\"currentColor\"\n />,\n \"EditIcon\"\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<React.SVGProps<SVGSVGElement>> = (props) => (\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 {...props}\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.59759 2.13062C6.4332 2.13062 6.27552 2.1958 6.15911 2.31187L0.182532 8.27133C0.00456112 8.44879 -0.0488948 8.71603 0.0471181 8.94829C0.143131 9.18056 0.369679 9.33205 0.621008 9.33205H21.3482C21.5126 9.33205 21.6703 9.26687 21.7867 9.1508L27.7632 3.19134C27.9412 3.01388 27.9947 2.74664 27.8987 2.51437C27.8026 2.28211 27.5761 2.13062 27.3248 2.13062H6.59759ZM2.12325 8.09007L6.85429 3.37259H25.8225L21.0915 8.09007H2.12325ZM23.9789 27.3629C23.9789 30.6214 22.4977 33 16.6072 33C11.4908 33 9.43754 31.599 9 28.1124L13.6451 27.4281C13.9144 29.1551 14.5539 29.5135 16.6745 29.5135C18.5933 29.5135 19.2328 29.0573 19.2328 28.0146C19.2328 26.7437 18.492 26.418 16.5735 26.0594C16.4207 26.0337 16.2653 26.0082 16.1079 25.9823C13.0752 25.4835 9.30464 24.8634 9.33654 20.6504C9.33654 17.2293 11.2216 15.0787 16.5735 15.0787C21.4542 15.0787 23.3055 16.7404 23.7097 20.0314L18.9298 20.7482C18.7614 19.2168 18.2566 18.6954 16.4389 18.6954C14.9577 18.6954 14.0489 19.0867 14.0489 20.1292C14.0489 21.5304 15.0924 21.7258 17.3814 22.1167C20.3772 22.6056 23.9789 23.3549 23.9789 27.3629Z\"\n fill=\"#28234A\"\n />\n </svg>\n);\n\nLogo.displayName = \"Logo\";\n","import React from \"react\";\n\nexport const LogoLight: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\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 {...props}\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.59759 2.13062C6.4332 2.13062 6.27552 2.1958 6.15911 2.31187L0.182532 8.27133C0.00456112 8.44879 -0.0488948 8.71603 0.0471181 8.94829C0.143131 9.18056 0.369679 9.33205 0.621008 9.33205H21.3482C21.5126 9.33205 21.6703 9.26687 21.7867 9.1508L27.7632 3.19134C27.9412 3.01388 27.9947 2.74664 27.8987 2.51437C27.8026 2.28211 27.5761 2.13062 27.3248 2.13062H6.59759ZM2.12325 8.09007L6.85429 3.37259H25.8225L21.0915 8.09007H2.12325ZM23.9789 27.3629C23.9789 30.6214 22.4977 33 16.6072 33C11.4908 33 9.43754 31.599 9 28.1124L13.6451 27.4281C13.9144 29.1551 14.5539 29.5135 16.6745 29.5135C18.5933 29.5135 19.2328 29.0573 19.2328 28.0146C19.2328 26.7437 18.492 26.418 16.5735 26.0594C16.4207 26.0337 16.2653 26.0082 16.1079 25.9823C13.0752 25.4835 9.30464 24.8634 9.33654 20.6504C9.33654 17.2293 11.2216 15.0787 16.5735 15.0787C21.4542 15.0787 23.3055 16.7404 23.7097 20.0314L18.9298 20.7482C18.7614 19.2168 18.2566 18.6954 16.4389 18.6954C14.9577 18.6954 14.0489 19.0867 14.0489 20.1292C14.0489 21.5304 15.0924 21.7258 17.3814 22.1167C20.3772 22.6056 23.9789 23.3549 23.9789 27.3629Z\"\n fill=\"#FAFAFA\"\n />\n </svg>\n);\n\nLogoLight.displayName = \"LogoLight\";\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 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 { LogoLight } from \"../icons/LogoLight\";\nimport { localStorageKeys } from \"../localStorageKeys\";\nimport { makeStyles, useTheme } 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 paddingRight: \"2em\",\n overflowY: \"auto\",\n },\n logo: {\n margin: `36px 0 ${theme.spacing(3)} ${theme.spacing(3.5)}`,\n },\n root: {\n transition: \"width 0.5s ease\",\n minWidth: menuWidth,\n width: menuWidth,\n zIndex: 100,\n },\n rootShrink: {\n minWidth: shrunkMenuWidth,\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 theme = useTheme();\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 {theme.themeType === \"light\" ? <Logo /> : <LogoLight />}\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 { LogoLight } from \"../icons/LogoLight\";\nimport { BaseSidebarProps, SidebarMenuItem } from \"../Sidebar/types\";\nimport { SquareButton } from \"../SquareButton\";\nimport { useTheme } from \"../theme\";\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 theme = useTheme();\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 {theme.themeType === \"light\" ? <Logo /> : <LogoLight />}\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 {title && <Typography variant=\"h5\">{title}</Typography>}\n\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","useTheme","saleorTheme","useMuiTheme","themeInfo","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","MuiDialog","overflowY","MuiDialogActions","borderTop","MuiDialogContent","overflowX","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","SearchIcon","EditIcon","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","LogoLight","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","ClickAwayListener","onClickAway","Paper","map","subMenuItem","linkProps","external","href","target","expandButton","logo","minWidth","rootShrink","toolbarContainer","Sidebar","menuItems","toolbar","onMenuItemClick","toString","setShrink","themeType","activeMenuLabel","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","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","themes","merge","sendThemeToExtension","THEME","themeColorTag","createElement","setAttribute","existingColorTag","remove","appendChild","changeColorMeta","setTheme","MuiThemeProvider","parent","handle"],"mappings":"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"}