{"version":3,"file":"commons-4818378f64ffe217a78e.js","mappings":"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","sources":["webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Fade/Fade.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Dialog/Dialog.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Modal/ModalManager.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Modal/Modal.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Paper/Paper.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/Portal/Portal.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/colorManipulator.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createBreakpoints.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createMixins.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/common.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/grey.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/indigo.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/pink.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/red.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/orange.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/blue.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/colors/green.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createPalette.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createTypography.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/shadows.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/shape.js","webpack://riot-tournament-eu/./node_modules/@material-ui/system/esm/breakpoints.js","webpack://riot-tournament-eu/./node_modules/@material-ui/system/esm/merge.js","webpack://riot-tournament-eu/./node_modules/@material-ui/system/esm/spacing.js","webpack://riot-tournament-eu/./node_modules/@material-ui/system/esm/memoize.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createTheme.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/createSpacing.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/defaultTheme.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/transitions.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/useTheme.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/withStyles.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/styles/zIndex.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/transitions/utils.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/capitalize.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/createChainedFunction.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/ownerDocument.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/ownerWindow.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/setRef.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/useEventCallback.js","webpack://riot-tournament-eu/./node_modules/@material-ui/core/esm/utils/useForkRef.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","webpack://riot-tournament-eu/./node_modules/is-in-browser/dist/module.js","webpack://riot-tournament-eu/./node_modules/jss/dist/jss.esm.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","webpack://riot-tournament-eu/./node_modules/css-vendor/dist/css-vendor.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","webpack://riot-tournament-eu/./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack://riot-tournament-eu/./node_modules/@material-ui/utils/esm/deepmerge.js","webpack://riot-tournament-eu/./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","webpack://riot-tournament-eu/./node_modules/clsx/dist/clsx.m.js","webpack://riot-tournament-eu/./node_modules/hyphenate-style-name/index.js","webpack://riot-tournament-eu/./node_modules/react-transition-group/esm/config.js","webpack://riot-tournament-eu/./node_modules/react-transition-group/esm/Transition.js","webpack://riot-tournament-eu/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://riot-tournament-eu/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://riot-tournament-eu/./src/assets/icon/Close.tsx","webpack://riot-tournament-eu/./src/components/global/languages/languageUtils.ts","webpack://riot-tournament-eu/./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","webpack://riot-tournament-eu/./src/components/global/cookieBanner/cookieBanner.tsx","webpack://riot-tournament-eu/./src/assets/icon/riot-fist.svg.tsx","webpack://riot-tournament-eu/./src/assets/icon/socials/facebook.svg.tsx","webpack://riot-tournament-eu/./src/assets/icon/socials/instagram.logo.tsx","webpack://riot-tournament-eu/./src/assets/icon/socials/twitter.svg.tsx","webpack://riot-tournament-eu/./src/assets/icon/triangle.svg.tsx","webpack://riot-tournament-eu/./src/assets/icon/world.svg.tsx","webpack://riot-tournament-eu/./src/components/global/languages/language-dialog/language-dialog.tsx","webpack://riot-tournament-eu/./src/components/global/languages/language-dialog/languague-dialog.module.scss","webpack://riot-tournament-eu/./src/components/global/footer/footer.tsx","webpack://riot-tournament-eu/./node_modules/gsap/CSSPlugin.js","webpack://riot-tournament-eu/./node_modules/gsap/index.js","webpack://riot-tournament-eu/./src/assets/icon/riot-fist-text.svg.tsx","webpack://riot-tournament-eu/./src/components/global/header/header.module.scss","webpack://riot-tournament-eu/./src/components/global/header/header.tsx","webpack://riot-tournament-eu/./src/components/global/languages/language-helmet.tsx","webpack://riot-tournament-eu/./src/components/global/layout/layout.tsx","webpack://riot-tournament-eu/./src/hooks/useSSRLayoutEffect.ts","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://riot-tournament-eu/./node_modules/polished/dist/polished.esm.js","webpack://riot-tournament-eu/./src/utils/index.ts","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://riot-tournament-eu/./node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { Transition } from 'react-transition-group';\nimport { duration } from '../styles/transitions';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nvar styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\nvar defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Fade transition is used by the [Modal](/components/modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"TransitionComponent\", \"timeout\"]);\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n timeout: timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default Fade;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Fade from '../Fade';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n // Improve scrollable dialog support.\n zIndex: -1,\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\nvar Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n transitionDuration = props.transitionDuration,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\", \"TransitionComponent\"]);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, className, invisible && classes.invisible),\n \"aria-hidden\": true,\n ref: ref\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiBackdrop'\n})(Backdrop);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport Modal from '../Modal';\nimport Backdrop from '../Backdrop';\nimport Fade from '../Fade';\nimport { duration } from '../styles/transitions';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n },\n /* Styles applied to the container element if `scroll=\"paper\"`. */\n scrollPaper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n /* Styles applied to the container element if `scroll=\"body\"`. */\n scrollBody: {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n },\n /* Styles applied to the container element. */\n container: {\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n },\n /* Styles applied to the `Paper` component. */\n paper: {\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE 11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n },\n /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n paperScrollPaper: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n },\n /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n paperScrollBody: {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE 11\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=false`. */\n paperWidthFalse: {\n maxWidth: 'calc(100% - 64px)'\n },\n /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n paperWidthXs: {\n maxWidth: Math.max(theme.breakpoints.values.xs, 444),\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n paperWidthSm: {\n maxWidth: theme.breakpoints.values.sm,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n paperWidthMd: {\n maxWidth: theme.breakpoints.values.md,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n paperWidthLg: {\n maxWidth: theme.breakpoints.values.lg,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n /* Styles applied to the `Paper` component if `maxWidth=\"xl\"`. */\n paperWidthXl: {\n maxWidth: theme.breakpoints.values.xl,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n paperFullWidth: {\n width: 'calc(100% - 64px)'\n },\n /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n paperFullScreen: {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n '&$paperScrollBody': {\n margin: 0,\n maxWidth: '100%'\n }\n }\n };\n};\nvar defaultTransitionDuration = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nvar Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {\n var BackdropProps = props.BackdropProps,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$fullScreen = props.fullScreen,\n fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$maxWidth = props.maxWidth,\n maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperComponent = props.PaperComponent,\n PaperComponent = _props$PaperComponent === void 0 ? Paper : _props$PaperComponent,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$scroll = props.scroll,\n scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n TransitionProps = props.TransitionProps,\n ariaDescribedby = props['aria-describedby'],\n ariaLabelledby = props['aria-labelledby'],\n other = _objectWithoutProperties(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"aria-describedby\", \"aria-labelledby\"]);\n var mouseDownTarget = React.useRef();\n var handleMouseDown = function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n };\n var handleBackdropClick = function handleBackdropClick(event) {\n // Ignore the events not coming from the \"backdrop\"\n // We don't want to close the dialog when clicking the dialog content.\n if (event.target !== event.currentTarget) {\n return;\n } // Make sure the event starts and ends on the same DOM element.\n\n if (event.target !== mouseDownTarget.current) {\n return;\n }\n mouseDownTarget.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n return /*#__PURE__*/React.createElement(Modal, _extends({\n className: clsx(classes.root, className),\n BackdropComponent: Backdrop,\n BackdropProps: _extends({\n transitionDuration: transitionDuration\n }, BackdropProps),\n closeAfterTransition: true\n }, disableBackdropClick ? {\n disableBackdropClick: disableBackdropClick\n } : {}, {\n disableEscapeKeyDown: disableEscapeKeyDown,\n onEscapeKeyDown: onEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n role: \"none presentation\"\n }, TransitionProps), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.container, classes[\"scroll\".concat(capitalize(scroll))]),\n onMouseUp: handleBackdropClick,\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(PaperComponent, _extends({\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, classes[\"paperScroll\".concat(capitalize(scroll))], classes[\"paperWidth\".concat(capitalize(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)\n }), children))));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialog'\n})(Dialog);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow'; // Is a vertical scrollbar displayed?\n\nfunction isOverflowing(container) {\n var doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(doc).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(node, show) {\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(node) {\n return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;\n}\nfunction ariaHiddenSiblings(container, mountNode, currentNode) {\n var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var show = arguments.length > 4 ? arguments[4] : undefined;\n var blacklist = [mountNode, currentNode].concat(_toConsumableArray(nodesToExclude));\n var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n [].forEach.call(container.children, function (node) {\n if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {\n ariaHidden(node, show);\n }\n });\n}\nfunction findIndexOf(containerInfo, callback) {\n var idx = -1;\n containerInfo.some(function (item, index) {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n var restoreStyle = [];\n var restorePaddings = [];\n var container = containerInfo.container;\n var fixedNodes;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n var scrollbarSize = getScrollbarSize();\n restoreStyle.push({\n value: container.style.paddingRight,\n key: 'padding-right',\n el: container\n }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n container.style['padding-right'] = \"\".concat(getPaddingRight(container) + scrollbarSize, \"px\"); // .mui-fixed is a global helper.\n\n fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedNodes, function (node) {\n restorePaddings.push(node.style.paddingRight);\n node.style.paddingRight = \"\".concat(getPaddingRight(node) + scrollbarSize, \"px\");\n });\n } // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n var parent = container.parentElement;\n var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n key: 'overflow',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n var restore = function restore() {\n if (fixedNodes) {\n [].forEach.call(fixedNodes, function (node, i) {\n if (restorePaddings[i]) {\n node.style.paddingRight = restorePaddings[i];\n } else {\n node.style.removeProperty('padding-right');\n }\n });\n }\n restoreStyle.forEach(function (_ref) {\n var value = _ref.value,\n el = _ref.el,\n key = _ref.key;\n if (value) {\n el.style.setProperty(key, value);\n } else {\n el.style.removeProperty(key);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n var hiddenSiblings = [];\n [].forEach.call(container.children, function (node) {\n if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(node);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\n\nvar ModalManager = /*#__PURE__*/function () {\n function ModalManager() {\n _classCallCheck(this, ModalManager);\n\n // this.modals[modalIndex] = modal\n this.modals = []; // this.containers[containerIndex] = {\n // modals: [],\n // container,\n // restore: null,\n // }\n\n this.containers = [];\n }\n _createClass(ModalManager, [{\n key: \"add\",\n value: function add(modal, container) {\n var modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n var hiddenSiblingNodes = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.container === container;\n });\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container: container,\n restore: null,\n hiddenSiblingNodes: hiddenSiblingNodes\n });\n return modalIndex;\n }\n }, {\n key: \"mount\",\n value: function mount(modal, props) {\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(modal) {\n var modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, true);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n }, {\n key: \"isTopModal\",\n value: function isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n }]);\n return ModalManager;\n}();\nexport { ModalManager as default };","/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport { exactProp } from '@material-ui/utils';\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n var children = props.children,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n getDoc = props.getDoc,\n isEnabled = props.isEnabled,\n open = props.open;\n var ignoreNextEnforceFocus = React.useRef();\n var sentinelStart = React.useRef(null);\n var sentinelEnd = React.useRef(null);\n var nodeToRestore = React.useRef();\n var rootRef = React.useRef(null); // can be removed once we drop support for non ref forwarding class components\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n rootRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(children.ref, handleOwnRef);\n var prevOpenRef = React.useRef();\n React.useEffect(function () {\n prevOpenRef.current = open;\n }, [open]);\n if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n // WARNING: Potentially unsafe in concurrent mode.\n // The way the read on `nodeToRestore` is setup could make this actually safe.\n // Say we render `open={false}` -> `open={true}` but never commit.\n // We have now written a state that wasn't committed. But no committed effect\n // will read this wrong value. We only read from `nodeToRestore` in effects\n // that were committed on `open={true}`\n // WARNING: Prevents the instance from being garbage collected. Should only\n // hold a weak ref.\n nodeToRestore.current = getDoc().activeElement;\n }\n React.useEffect(function () {\n if (!open) {\n return;\n }\n var doc = ownerDocument(rootRef.current); // We might render an empty child.\n\n if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n }\n rootRef.current.setAttribute('tabIndex', -1);\n }\n rootRef.current.focus();\n }\n var contain = function contain() {\n var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n\n if (rootElement === null) {\n return;\n }\n if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n rootRef.current.focus();\n }\n };\n var loopFocus = function loopFocus(event) {\n // 9 = Tab\n if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n return;\n } // Make sure the next tab starts from the right place.\n\n if (doc.activeElement === rootRef.current) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n if (event.shiftKey) {\n sentinelEnd.current.focus();\n } else {\n sentinelStart.current.focus();\n }\n }\n };\n doc.addEventListener('focus', contain, true);\n doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n var interval = setInterval(function () {\n contain();\n }, 50);\n return function () {\n clearInterval(interval);\n doc.removeEventListener('focus', contain, true);\n doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n if (!disableRestoreFocus) {\n // In IE 11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE 11 have a focus method.\n // Once IE 11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n nodeToRestore.current.focus();\n }\n nodeToRestore.current = null;\n }\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStart,\n \"data-test\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEnd,\n \"data-test\": \"sentinelEnd\"\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Unstable_TrapFocus['propTypes' + ''] = exactProp(Unstable_TrapFocus.propTypes);\n}\nexport default Unstable_TrapFocus;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n zIndex: -1,\n position: 'fixed',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SimpleBackdrop = /*#__PURE__*/React.forwardRef(function SimpleBackdrop(props, ref) {\n var _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n other = _objectWithoutProperties(props, [\"invisible\", \"open\"]);\n return open ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-hidden\": true,\n ref: ref\n }, other, {\n style: _extends({}, styles.root, invisible ? styles.invisible : {}, other.style)\n })) : null;\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default SimpleBackdrop;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nimport { elementAcceptingRef, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport ownerDocument from '../utils/ownerDocument';\nimport Portal from '../Portal';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport zIndex from '../styles/zIndex';\nimport ModalManager, { ariaHidden } from './ModalManager';\nimport TrapFocus from '../Unstable_TrapFocus';\nimport SimpleBackdrop from './SimpleBackdrop';\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container;\n return ReactDOM.findDOMNode(container);\n}\nfunction getHasTransition(props) {\n return props.children ? props.children.props.hasOwnProperty('in') : false;\n} // A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\n\nvar defaultManager = new ModalManager();\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'fixed',\n zIndex: theme.zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n },\n /* Styles applied to the root element if the `Modal` has exited. */\n hidden: {\n visibility: 'hidden'\n }\n };\n};\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/api/dialog/)\n * - [Drawer](/api/drawer/)\n * - [Menu](/api/menu/)\n * - [Popover](/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\nvar Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n var theme = useTheme();\n var props = getThemeProps({\n name: 'MuiModal',\n props: _extends({}, inProps),\n theme: theme\n });\n var _props$BackdropCompon = props.BackdropComponent,\n BackdropComponent = _props$BackdropCompon === void 0 ? SimpleBackdrop : _props$BackdropCompon,\n BackdropProps = props.BackdropProps,\n children = props.children,\n _props$closeAfterTran = props.closeAfterTransition,\n closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,\n container = props.container,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n _props$disableScrollL = props.disableScrollLock,\n disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,\n _props$hideBackdrop = props.hideBackdrop,\n hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,\n _props$keepMounted = props.keepMounted,\n keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n _props$manager = props.manager,\n manager = _props$manager === void 0 ? defaultManager : _props$manager,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onRendered = props.onRendered,\n open = props.open,\n other = _objectWithoutProperties(props, [\"BackdropComponent\", \"BackdropProps\", \"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableBackdropClick\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"manager\", \"onBackdropClick\", \"onClose\", \"onEscapeKeyDown\", \"onRendered\", \"open\"]);\n var _React$useState = React.useState(true),\n exited = _React$useState[0],\n setExited = _React$useState[1];\n var modal = React.useRef({});\n var mountNodeRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var handleRef = useForkRef(modalRef, ref);\n var hasTransition = getHasTransition(props);\n var getDoc = function getDoc() {\n return ownerDocument(mountNodeRef.current);\n };\n var getModal = function getModal() {\n modal.current.modalRef = modalRef.current;\n modal.current.mountNode = mountNodeRef.current;\n return modal.current;\n };\n var handleMounted = function handleMounted() {\n manager.mount(getModal(), {\n disableScrollLock: disableScrollLock\n }); // Fix a bug on Chrome where the scroll isn't initially 0.\n\n modalRef.current.scrollTop = 0;\n };\n var handleOpen = useEventCallback(function () {\n var resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer); // The element was already mounted.\n\n if (modalRef.current) {\n handleMounted();\n }\n });\n var isTopModal = React.useCallback(function () {\n return manager.isTopModal(getModal());\n }, [manager]);\n var handlePortalRef = useEventCallback(function (node) {\n mountNodeRef.current = node;\n if (!node) {\n return;\n }\n if (onRendered) {\n onRendered();\n }\n if (open && isTopModal()) {\n handleMounted();\n } else {\n ariaHidden(modalRef.current, true);\n }\n });\n var handleClose = React.useCallback(function () {\n manager.remove(getModal());\n }, [manager]);\n React.useEffect(function () {\n return function () {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(function () {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n var handleEnter = function handleEnter() {\n setExited(false);\n };\n var handleExited = function handleExited() {\n setExited(true);\n if (closeAfterTransition) {\n handleClose();\n }\n };\n var handleBackdropClick = function handleBackdropClick(event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n var handleKeyDown = function handleKeyDown(event) {\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviours like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || !isTopModal()) {\n return;\n }\n if (onEscapeKeyDown) {\n onEscapeKeyDown(event);\n }\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n var inlineStyle = styles(theme || {\n zIndex: zIndex\n });\n var childProps = {};\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = children.props.tabIndex || '-1';\n } // It's a Transition like component\n\n if (hasTransition) {\n childProps.onEnter = createChainedFunction(handleEnter, children.props.onEnter);\n childProps.onExited = createChainedFunction(handleExited, children.props.onExited);\n }\n return /*#__PURE__*/React.createElement(Portal, {\n ref: handlePortalRef,\n container: container,\n disablePortal: disablePortal\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: handleRef,\n onKeyDown: handleKeyDown,\n role: \"presentation\"\n }, other, {\n style: _extends({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)\n }), hideBackdrop ? null : /*#__PURE__*/React.createElement(BackdropComponent, _extends({\n open: open,\n onClick: handleBackdropClick\n }, BackdropProps)), /*#__PURE__*/React.createElement(TrapFocus, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n getDoc: getDoc,\n isEnabled: isTopModal,\n open: open\n }, /*#__PURE__*/React.cloneElement(children, childProps))));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default Modal;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { exactProp, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport setRef from '../utils/setRef';\nimport useForkRef from '../utils/useForkRef';\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container; // #StrictMode ready\n\n return ReactDOM.findDOMNode(container);\n}\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\nvar Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n var children = props.children,\n container = props.container,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n onRendered = props.onRendered;\n var _React$useState = React.useState(null),\n mountNode = _React$useState[0],\n setMountNode = _React$useState[1];\n var handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(function () {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(function () {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return function () {\n setRef(ref, null);\n };\n }\n return undefined;\n }, [ref, mountNode, disablePortal]);\n useEnhancedEffect(function () {\n if (onRendered && (mountNode || disablePortal)) {\n onRendered();\n }\n }, [onRendered, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n return children;\n }\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport default Portal;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n function only(key) {\n return between(key, key);\n }\n var warnedOnce = false;\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n return values[key];\n }\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n var types = {\n dark: dark,\n light: light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nvar warnedOnce = false;\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n return round(value);\n}\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n var coef = fontSize / 14;\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n var output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\nexport default breakpoints;","import { deepmerge } from '@material-ui/utils';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\n\nexport default merge;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n return function () {\n return undefined;\n };\n}\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return \"-\".concat(transformed);\n}\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n node[key] = {};\n }\n }\n };\n traverse(muiTheme.overrides);\n }\n return muiTheme;\n}\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n if (args.length === 0) {\n return transform(1);\n }\n if (args.length === 1) {\n return transform(args[0]);\n }\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n warnOnce = true;\n }\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n var classNamePrefix = name;\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n hoistNonReactStatics(WithStyles, Component);\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n return WithStyles;\n };\n};\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\nexport default withStyles;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nexport default function useMediaQuery(queryInput) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var theme = useTheme();\n var props = getThemeProps({\n theme: theme,\n name: 'MuiUseMediaQuery',\n props: {}\n });\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['Material-UI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n var query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // Wait for jsdom to support the match media feature.\n // All the browsers Material-UI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n var supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n var _props$options = _extends({}, props, options),\n _props$options$defaul = _props$options.defaultMatches,\n defaultMatches = _props$options$defaul === void 0 ? false : _props$options$defaul,\n _props$options$matchM = _props$options.matchMedia,\n matchMedia = _props$options$matchM === void 0 ? supportMatchMedia ? window.matchMedia : null : _props$options$matchM,\n _props$options$noSsr = _props$options.noSsr,\n noSsr = _props$options$noSsr === void 0 ? false : _props$options$noSsr,\n _props$options$ssrMat = _props$options.ssrMatchMedia,\n ssrMatchMedia = _props$options$ssrMat === void 0 ? null : _props$options$ssrMat;\n var _React$useState = React.useState(function () {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n return defaultMatches;\n }),\n match = _React$useState[0],\n setMatch = _React$useState[1];\n React.useEffect(function () {\n var active = true;\n if (!supportMatchMedia) {\n return undefined;\n }\n var queryList = matchMedia(query);\n var updateMatch = function updateMatch() {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui-org/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n updateMatch();\n queryList.addListener(updateMatch);\n return function () {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query: query,\n match: match\n });\n }\n return match;\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519\nexport default function getScrollbarSize() {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarSize;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n var defaultProps = theme.props[name];\n var propName;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n return props;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\nexport default isBrowser;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n return null;\n}\nvar join = function join(value, by) {\n var result = '';\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n return cssValue;\n};\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (options.format === false) {\n indent = -Infinity;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n for (var prop in fallback) {\n var value = fallback[prop];\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n};\nvar BaseStyleRule = /*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n var _proto = BaseStyleRule.prototype;\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n var isEmpty = newValue == null || newValue === false;\n var isDefined = (name in this.style); // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n var sheet = this.options.sheet;\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n return this;\n };\n return BaseStyleRule;\n}();\nvar StyleRule = /*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n function StyleRule(key, style, options) {\n var _this;\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n if (renderer) {\n var json = this.toJSON();\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n return json;\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */,\n\n get: function get() {\n return this.selectorText;\n }\n }]);\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n return new StyleRule(key, style, options);\n }\n};\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule = /*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n var _proto = ConditionalRule.prototype;\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n if (options.children === false) {\n return this.query + \" {}\";\n }\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule = /*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = KeyframesRule.prototype;\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n if (!sheet) {\n return val;\n }\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n default:\n return val;\n }\n }\n};\nvar KeyframeRule = /*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n return null;\n }\n};\nvar FontFaceRule = /*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = FontFaceRule.prototype;\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (Array.isArray(this.style)) {\n var str = '';\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n return str;\n }\n return toCss(this.at, this.style, options);\n };\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\nvar ViewportRule = /*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = ViewportRule.prototype;\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\nvar SimpleRule = /*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n var _proto = SimpleRule.prototype;\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n return str;\n }\n return this.key + \" \" + this.value + \";\";\n };\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n};\n\nvar RuleList = /*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n var _proto = RuleList.prototype;\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n var key = name;\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n this.raw[key] = decl;\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n if (oldRule) {\n this.remove(oldRule);\n }\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n return str;\n };\n return RuleList;\n}();\nvar StyleSheet = /*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n this.rules = new RuleList(this.options);\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n var _proto = StyleSheet.prototype;\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n return added;\n }\n /**\n * Get a rule by name or selector.\n */;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n if (!rule ||\n // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n this.rules.remove(rule);\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n return true;\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */;\n\n _proto.update = function update() {\n var _this$rules;\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n return this;\n }\n /**\n * Updates a single rule.\n */;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n return StyleSheet;\n}();\nvar PluginsRegistry = /*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n return processedValue;\n }\n /**\n * Register a plugin.\n */;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry = /*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n var css = '';\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n return css;\n };\n _createClass(SheetsRegistry, [{\n key: \"index\",\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n var ruleCounter = 0;\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n var jssId = '';\n var prefix = '';\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n return true;\n};\n/**\n * Remove a style property.\n */\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\nfunction findCommentNode(text) {\n var head = getHead();\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n sheet = findHighestSheet(registry, options);\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n var insertionPoint = options.insertionPoint;\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n return container.cssRules[index];\n};\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n return index;\n};\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\nvar DomRenderer = /*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n var _proto = DomRenderer.prototype;\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n if (latestNativeParent === false) {\n return false;\n }\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n if (nativeRule === false) {\n return false;\n }\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n return DomRenderer;\n}();\nvar instanceCounter = 0;\nvar Jss = /*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.9.2\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n var _proto = Jss.prototype;\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n index = _options.index;\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n var rule = createRule(name, style, ruleOptions);\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */;\n\n _proto.use = function use() {\n var _this = this;\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n return Jss;\n}();\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager = /*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n var _proto = SheetsManager.prototype;\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n entry.refs++;\n return entry.sheet;\n }\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n return ruleCounter;\n };\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\nexport default functionPlugin;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\nvar at = '@global';\nvar atPrefix = '@global ';\nvar GlobalContainerRule = /*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n var _proto = GlobalContainerRule.prototype;\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n return GlobalContainerRule;\n}();\nvar GlobalPrefixedRule = /*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n var _proto2 = GlobalPrefixedRule.prototype;\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n return GlobalPrefixedRule;\n}();\nvar separatorRegExp = /\\s*,\\s*/g;\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n return scoped;\n}\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n delete style[at];\n}\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n var parent = options.parent;\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n return null;\n }\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\nexport default jssGlobal;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n if (rule) {\n return rule.selector;\n }\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n return result;\n }\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n });\n\n delete options.name;\n return options;\n }\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n delete style[prop];\n }\n return style;\n }\n return {\n onProcessStyle: onProcessStyle\n };\n}\nexport default jssNested;","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n return style;\n }\n return convertCase(style);\n }\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default camelCase;","import { hasCSSTOMSupport } from 'jss';\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n var newObj = {};\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n return newObj;\n}\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n return value.toString();\n }\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n var camelCasedOptions = addCamelCasedVersion(options);\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n return style;\n }\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default defaultUnit;","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n if (camelize(longhand) in style) {\n return prop;\n }\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n if (options.transform) {\n return prop;\n }\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n if (options.transition) {\n return prop;\n }\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n return _jsProp in style ? \"page-\" + prop : false;\n }\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n return prop;\n }\n};\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n if (!multiple) return false;\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n return newProp.map(prefixCss);\n }\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\nvar el;\nvar cache = {};\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n return cache[prop];\n}\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n return style;\n }\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default jssVendorPrefixer;","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n return prop0.length - prop1.length;\n };\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n return newStyle;\n }\n };\n}\nexport default jssPropsSort;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n var outerOptions = React.useContext(StylesContext);\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(),\n // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n return indexCounter;\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n var generate = false;\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n return state.cacheClasses.value;\n}\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n if (stylesOptions.disableGeneration) {\n return;\n }\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n var staticSheet;\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n var styles = stylesCreator.create(theme, name);\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n sheetManager.refs += 1;\n}\nfunction update(_ref3, props) {\n var state = _ref3.state;\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n if (stylesOptions.disableGeneration) {\n return;\n }\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n return classes;\n };\n return useStyles;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n return {\n create: function create(theme, name) {\n var styles;\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n throw err;\n }\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n var overrides = theme.overrides[name];\n var stylesWithOverrides = _extends({}, styles);\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n if (!newClasses) {\n return baseClasses;\n }\n var nextClasses = _extends({}, baseClasses);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","import React from 'react';\nvar ThemeContext = React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://mui.com/production-error/?code=' + code;\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","function r(e) {\n var t,\n f,\n n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;else if (\"object\" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++) e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);else for (t in e) e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nexport function clsx() {\n for (var e, t, f = 0, n = \"\"; f < arguments.length;) (e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\nexport default clsx;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n function Transition(props, context) {\n var _this;\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n if (prevProps !== this.props) {\n var status = this.state.status;\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n this.updateStatus(false, nextStatus);\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n _proto.performExit = function performExit() {\n var _this3 = this;\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n var active = true;\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n this.nextCallback.cancel = function () {\n active = false;\n };\n return this.nextCallback;\n };\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n _proto.render = function render() {\n var status = this.state.status;\n if (status === UNMOUNTED) {\n return null;\n }\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n return /*#__PURE__*/(\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n return Transition;\n}(React.Component);\nTransition.contextType = TransitionGroupContext;\n// Name the function so it is clearer in the documentation\n\nfunction noop() {}\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import React from 'react';\n\nconst Close = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n);\n\nexport default Close;\n","export const supportedLang = [\n { language: 'en', value: '', displayName: 'English' },\n { language: 'fr', value: 'fr', displayName: 'Français' },\n { language: 'it', value: 'it', displayName: 'Italiano' },\n { language: 'es', value: 'es', displayName: 'Español' },\n { language: 'de', value: 'de', displayName: 'Deutsch' },\n { language: 'cs', value: 'cs', displayName: 'Čeština' },\n { language: 'hu', value: 'hu', displayName: 'Magyar' },\n { language: 'pl', value: 'pl', displayName: 'Polskie' },\n { language: 'tr', value: 'tr', displayName: 'Türk' },\n { language: 'ru', value: 'ru', displayName: 'русский' },\n { language: 'gr', value: 'gr', displayName: 'Ελληνικά' },\n { language: 'ro', value: 'ro', displayName: 'Română' },\n];\n\nexport const languageRegex = (hasSlash = false) =>\n new RegExp(\n supportedLang\n .map(lang => {\n if (lang.value !== '') {\n return `${hasSlash ? '/' : ''}${lang.value}`;\n }\n })\n .join('|')\n .substring(1),\n );\n\nexport const getLangFullPathname = (language: string, pathname: string, removeLang = false, isDefaultLang = false) => {\n if (removeLang) {\n return `${getLangPath(language)}${isDefaultLang ? '/' : ''}${removeLangPrefix(pathname)}`;\n }\n return `${getLangPath(language)}${pathname}`;\n};\n\nexport const removeLangPrefix = (pathname: string): string => {\n if (languageRegex(true).test(pathname)) {\n return pathname.replace(languageRegex(true), '');\n } else {\n return pathname.replace(/\\/+/, '');\n }\n};\n\nexport const getLangPath = (language: string) => {\n if (language !== '') {\n return `/${language}`;\n } else {\n return '/';\n }\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n var theme = React.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}\nexport default ThemeProvider;","import React, { Dispatch, FC, SetStateAction } from 'react';\nimport { Cookie } from '../../../interfaces/ui-elements.interface';\nimport * as styles from './cookieBanner.module.scss';\n\ntype RTCookieBannerProps = {\n cookie: Cookie;\n setShowCookieBanner: Dispatch>;\n};\n\nconst RTCookieBanner: FC = ({ cookie, setShowCookieBanner }) => {\n const acceptCookies = () => {\n localStorage.setItem('RT_CookieConsent', 'true');\n setShowCookieBanner(false);\n };\n\n const rejectCookies = () => {\n localStorage.setItem('RT_CookieConsent', 'false');\n setShowCookieBanner(false);\n };\n\n return (\n
\n \n
\n \n \n
\n
\n );\n};\n\nexport default RTCookieBanner;\n","import React from 'react';\n\nconst RiotFistLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n);\n\nexport default RiotFistLogo;\n","import React from 'react';\n\nconst FacebookLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n);\n\nexport default FacebookLogo;\n","import React from 'react';\n\nconst InstagramLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n \n);\n\nexport default InstagramLogo;\n","import React from 'react';\n\nconst TwitterLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n);\n\nexport default TwitterLogo;\n","import React from 'react';\n\nconst TriangleLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n);\n\nexport default TriangleLogo;\n","import React from 'react';\n\nconst WorldLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n \n);\n\nexport default WorldLogo;\n","import { useMediaQuery } from '@material-ui/core';\nimport Dialog from '@material-ui/core/Dialog';\nimport { navigate } from 'gatsby';\nimport React, { FC } from 'react';\nimport Close from '../../../../assets/icon/Close';\nimport { getLangFullPathname, languageRegex, supportedLang } from '../languageUtils';\nimport * as dialogStyle from './languague-dialog.module.scss';\n\nexport const LanguageDialog: FC<{\n onClose: (value: { displayName: string; value: string }) => any;\n open: boolean;\n selectedValue: { displayName: string; value: string };\n langModalTranslations: { title: string; subtitle: string };\n}> = ({ onClose, selectedValue, open, langModalTranslations }) => {\n const fullScreen = useMediaQuery('(max-width:600px)');\n\n const handleClose = () => {\n onClose(selectedValue);\n };\n\n const handleListItemClick = (selectedLang: { displayName: string; value: string }) => {\n const currentLang = JSON.parse(localStorage.getItem('RT_current_lang') || '{}');\n localStorage.setItem('RT_preferred_lang', JSON.stringify({ displayName: selectedLang.displayName, value: selectedLang.value }));\n if (selectedLang.value === '') {\n navigate(location.pathname.replace(languageRegex(true), ''));\n } else {\n if (currentLang.value === '') {\n navigate(getLangFullPathname(selectedLang.value || '', location.pathname, true, true));\n } else {\n navigate(getLangFullPathname(selectedLang.value || '', location.pathname, true));\n }\n }\n\n scrollTo(0, 0);\n onClose(selectedLang);\n };\n\n return (\n \n
\n

{langModalTranslations.title || 'Language selector'}

\n

{langModalTranslations.subtitle || 'Select your language'}

\n
\n {supportedLang.map((lang, idx) => (\n
handleListItemClick(lang)}>\n {lang.displayName}\n
\n ))}\n
\n \n
\n
\n );\n};\n\nexport default LanguageDialog;\n","// extracted by mini-css-extract-plugin\nexport var closeButton = \"languague-dialog-module--close-Button--YN4qP\";\nexport var dialogContainer = \"languague-dialog-module--dialog-container--ciEqF\";\nexport var lang = \"languague-dialog-module--lang---aiyI\";\nexport var langsListContainer = \"languague-dialog-module--langs-list-container--bnUS-\";\nexport var underline = \"languague-dialog-module--underline--ytZSj\";","import React, { FC, useState } from 'react';\nimport RiotFistLogo from '../../../assets/icon/riot-fist.svg';\nimport FacebookLogo from '../../../assets/icon/socials/facebook.svg';\nimport InstagramLogo from '../../../assets/icon/socials/instagram.logo';\nimport TwitterLogo from '../../../assets/icon/socials/twitter.svg';\nimport TriangleLogo from '../../../assets/icon/triangle.svg';\nimport WorldLogo from '../../../assets/icon/world.svg';\nimport useSSRLayoutEffect from '../../../hooks/useSSRLayoutEffect';\nimport { FooterTxt } from '../../../interfaces/ui-elements.interface';\nimport LanguagueDialog from '../languages/language-dialog/language-dialog';\nimport * as styles from './footer.module.scss';\n\nconst socials = [\n { name: 'Facebook', url: 'https://facebook.com/RiotGames', Icon: FacebookLogo },\n { name: 'Twitter', url: 'https://twitter.com/riotgames', Icon: TwitterLogo },\n { name: 'Instagram', url: 'https://instagram.com/riotgames', Icon: InstagramLogo },\n];\n\ntype RTFooterProps = {\n footerTxt: FooterTxt;\n langModalTranslations: {\n title: string;\n subtitle: string;\n };\n};\n\nconst RTFooter: FC = ({ footerTxt, langModalTranslations }) => {\n const [open, setOpen] = useState(false);\n const [currentLang, setCurrentLang] = useState('');\n const [selectedValue, setSelectedValue] = useState({ displayName: 'English', value: '' });\n\n const scrollToTheTop = (): void => {\n scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n const handleOpenDialogClick = (): void => {\n setOpen(true);\n };\n\n const handleClose = (value: { displayName: string; value: string }) => {\n setOpen(false);\n setSelectedValue(value);\n };\n\n useSSRLayoutEffect(() => {\n const browserLang = localStorage.getItem('RT_browser_lang');\n const currentLang = localStorage.getItem('RT_current_lang');\n\n if (currentLang !== null) {\n const parsedCurrentLang = JSON.parse(currentLang) as { displayName: string; value: string };\n setSelectedValue(parsedCurrentLang);\n setCurrentLang((JSON.parse(currentLang) as { value: string }).value);\n } else if (browserLang !== null) {\n const parsedBrowserLang = JSON.parse(browserLang) as { displayName: string; value: string };\n setSelectedValue(parsedBrowserLang);\n }\n }, []);\n\n return (\n \n );\n};\n\nexport default RTFooter;\n","/*!\n * CSSPlugin 3.12.7\n * https://gsap.com\n *\n * Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n },\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n },\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n },\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n },\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n },\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n _renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n },\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n },\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n },\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n },\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n },\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n },\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n },\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n },\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n },\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n var target = this.target,\n style = target.style,\n cache = target._gsap;\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n property = _transformProp;\n }\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n },\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n },\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n if (!props[i + 1]) {\n props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n } else if (props[i + 1] === 2) {\n // non-CSS value (function-based)\n target[props[i]](props[i + 2]);\n } else {\n // non-CSS value (not function-based)\n target[props[i]] = props[i + 2];\n }\n }\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n i = _reverting();\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\n\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n },\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && target.style && target.nodeType && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n }); // make sure it's a DOM node too.\n\n return saver;\n },\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n },\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n },\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n if (property in s && !preferPrefix) {\n return property;\n }\n property = property.charAt(0).toUpperCase() + property.substr(1);\n while (i-- && !(_prefixes[i] + property in s)) {}\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n },\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n },\n _getReparentedCloneBBox = function _getReparentedCloneBBox(target) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var owner = target.ownerSVGElement,\n svg = _createElement(\"svg\", owner && owner.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n clone = target.cloneNode(true),\n bbox;\n clone.style.display = \"block\";\n svg.appendChild(clone);\n _docElement.appendChild(svg);\n try {\n bbox = clone.getBBox();\n } catch (e) {}\n svg.removeChild(clone);\n _docElement.removeChild(svg);\n return bbox;\n },\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n },\n _getBBox = function _getBBox(target) {\n var bounds, cloned;\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getReparentedCloneBBox(target);\n cloned = 1;\n }\n bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n },\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n },\n //reports if the element is an SVG on which getBBox() actually works\n _removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style,\n first2Chars;\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n },\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n plugin._props.push(property);\n return pt;\n },\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n },\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n },\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n _convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = unit !== \"rem\" && ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n cache = parent._gsap;\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n },\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n },\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n a = [start, end];\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n },\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n },\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n },\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n while (--i > -1) {\n prop = props[i];\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n _removeProperty(target, prop);\n }\n }\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n style.scale = style.rotate = style.translate = \"none\";\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n cache.uncache = 1;\n _removeIndependentTransforms(style);\n }\n }\n }\n },\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n _specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n plugin._props.push(property);\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n },\n /*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n _identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n },\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n },\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375. Note: position: fixed elements report a null offsetParent but they could also be invisible because they're in an ancestor with display: none, so we check getBoundingClientRect(). We only want to alter the DOM if we absolutely have to because it can cause iframe content to reload, like a Vimeo video.\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n },\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\n // \txOrigin -= bounds.x;\n // \tyOrigin -= bounds.y;\n // }\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n },\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n style.scale = style.rotate = style.translate = \"none\";\n }\n matrix = _getMatrix(target, cache.svg);\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n },\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n },\n //for handling transformOrigin values, stripping out the 3rd dimension\n _addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n },\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n _renderCSSTransforms(ratio, cache);\n },\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n },\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n },\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n if (isString) {\n direction = endValue.split(\"_\")[1];\n if (direction === \"short\") {\n change %= cap;\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n plugin._props.push(property);\n return pt;\n },\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n return target;\n },\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n _removeProperty(target, _transformProp);\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n plugin._props.push(p);\n }\n }\n _assign(endCache, startCache);\n }; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n endValue = vars[p];\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n type = typeof endValue;\n specialProp = _specialProps[p];\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n inlineProps.push(\"visibility\", 0, style.visibility);\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : typeof target[p] === \"function\" ? inlineProps.push(p, 2, target[p]()) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\n TweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","import React from 'react';\n\nconst RiotFistTextLogo = ({ ...props }: React.SVGProps): JSX.Element => (\n \n \n \n);\n\nexport default RiotFistTextLogo;\n","// extracted by mini-css-extract-plugin\nexport var burger = \"header-module--burger--pjAdY\";\nexport var burgerLine = \"header-module--burgerLine--Pkoh0\";\nexport var burgerLineBlack = \"header-module--burgerLineBlack--rj7ky\";\nexport var burgerOpen = \"header-module--burgerOpen--bMqKH\";\nexport var link = \"header-module--link--V0sZI\";\nexport var menu = \"header-module--menu--ZuYiZ\";\nexport var rtHeader = \"header-module--rt-header--iOC44\";","import { useLocation } from '@reach/router';\nimport { Link } from 'gatsby';\nimport gsap from 'gsap';\nimport React, { FC, useMemo, useRef, useState } from 'react';\nimport RiotFistTextLogo from '../../../assets/icon/riot-fist-text.svg';\nimport useSSRLayoutEffect from '../../../hooks/useSSRLayoutEffect';\nimport { MenuTxt } from '../../../interfaces/ui-elements.interface';\nimport { getLangFullPathname, getLangPath } from '../languages/languageUtils';\nimport * as styles from './header.module.scss';\n\ntype RTHeader = {\n menuTxt: MenuTxt;\n};\n\nconst RTHeader: FC = ({ menuTxt }) => {\n const location = useLocation();\n const [currentLang, setCurrentLang] = useState('');\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [isScrolled, setIsScrolled] = useState(false);\n const linkListRef = useRef(null);\n const menuRef = useRef(null);\n const [timeline] = useState(() => gsap.timeline({ paused: true, defaults: { duration: 1, delay: 0, ease: 'Power3.InOut' } }));\n const links = [\n { to: '/', display: 'Home', isDisplayDesktop: false },\n { to: '/#games', display: menuTxt.games || 'Games', isDisplayDesktop: true },\n { to: '/#faq', display: menuTxt.faq || 'FAQ', isDisplayDesktop: true },\n { to: '/calendar', display: menuTxt.calendar || 'Calendar', isDisplayDesktop: true },\n ];\n\n const toggleMenu = (): void => {\n setIsMenuOpen(boolean => !boolean);\n\n if (isMenuOpen) {\n timeline.timeScale(2).reverse();\n } else {\n timeline.play();\n }\n };\n\n useSSRLayoutEffect(() => {\n const currentLang = localStorage.getItem('RT_current_lang');\n\n if (currentLang) {\n setCurrentLang((JSON.parse(currentLang) as { value: string }).value);\n }\n }, []);\n\n useSSRLayoutEffect(() => {\n const onScroll = () => {\n setIsScrolled(window.scrollY > 150);\n };\n\n document.addEventListener('scroll', onScroll);\n\n return () => {\n document.removeEventListener('scroll', onScroll);\n setIsScrolled(false);\n };\n }, []);\n\n useSSRLayoutEffect(() => {\n timeline.to(menuRef.current, {\n y: 0,\n duration: 0.6,\n });\n timeline.to(gsap.utils.selector(linkListRef.current)('a'), {\n y: 0,\n stagger: {\n amount: 0.2,\n },\n });\n }, []);\n\n const isLogoBlack = useMemo(() => {\n const GAME_PATH = '/games/valorant-console';\n const GAME_GUIDELINE_PATH = '/games/valorant-console/guidelines';\n\n if (location.pathname.includes(GAME_GUIDELINE_PATH)) return false;\n else if (location.pathname.includes(GAME_PATH)) return true;\n else return false;\n }, [location.pathname]);\n\n return (\n <>\n
\n
\n
\n \n \n \n \n
    \n {links\n .filter(link => link.isDisplayDesktop)\n .map((link, index) => (\n
  • \n \n {link.display}\n \n
  • \n ))}\n
\n
\n
\n
\n \n
    \n {links.map((link, index) => (\n
  • \n \n {link.display}\n \n
  • \n ))}\n
\n \n \n );\n};\n\nexport default RTHeader;\n","import { useLocation } from '@reach/router';\nimport React, { useEffect } from 'react';\nimport { isBrowser } from '../../../utils';\nimport { languageRegex, supportedLang } from './languageUtils';\n\nconst LanguageHelmet = () => {\n const location = useLocation();\n\n useEffect(() => {\n if (!isBrowser) return;\n\n const browserLang = navigator.language;\n const pathname = location.pathname;\n\n const getLangFromPathname = () => {\n const match = languageRegex(true).exec(pathname);\n\n if (match) {\n const filter = supportedLang.find(lang => lang.value === match[0].replace(/\\/+/g, ''));\n return filter ?? { displayName: 'English', value: '' };\n } else {\n return { displayName: 'English', value: '' };\n }\n };\n\n const lang = getLangFromPathname();\n\n // Define browser lang\n if (lang.value === browserLang.substring(0, 2) || lang.value === '') {\n localStorage.setItem(\n 'RT_browser_lang',\n JSON.stringify({\n displayName: supportedLang.find(lang => lang.value === browserLang.substring(0, 2))?.displayName || 'English',\n value: browserLang.substring(0, 2) === 'en' ? '' : browserLang.substring(0, 2),\n }),\n );\n }\n\n // Define current lang in localStorage\n localStorage.setItem(\n 'RT_current_lang',\n JSON.stringify({\n displayName: lang.displayName,\n value: lang.value,\n }),\n );\n }, []);\n\n return <>;\n};\n\nexport default LanguageHelmet;\n","import { createMuiTheme, ThemeProvider } from '@material-ui/core';\nimport React, { FC, ReactNode, useState } from 'react';\nimport useSSRLayoutEffect from '../../../hooks/useSSRLayoutEffect';\nimport { Cookie, FooterTxt, MenuTxt } from '../../../interfaces/ui-elements.interface';\nimport RTCookieBanner from '../cookieBanner/cookieBanner';\nimport RTFooter from '../footer/footer';\nimport RTHeader from '../header/header';\nimport LanguageHelmet from '../languages/language-helmet';\n\nconst darkTheme = createMuiTheme({\n palette: {\n type: 'dark',\n },\n});\n\ntype RTLayoutProps = {\n children: ReactNode;\n menuText: MenuTxt;\n footerText: FooterTxt;\n cookie: Cookie;\n langModalTranslations: {\n title: string;\n subtitle: string;\n };\n};\n\nconst RTLayout: FC = ({ children, menuText, footerText, cookie, langModalTranslations }) => {\n const [showCookieBanner, setShowCookieBanner] = useState(false);\n\n useSSRLayoutEffect(() => {\n const cookieConsent = localStorage.getItem('RT_CookieConsent');\n\n if (cookieConsent === null) {\n setShowCookieBanner(true);\n } else {\n setShowCookieBanner(false);\n }\n }, []);\n\n return (\n <>\n \n \n \n
{children}
\n \n {showCookieBanner && }\n
\n \n );\n};\n\nexport default RTLayout;\n","import { useEffect, useLayoutEffect } from 'react';\nimport { isClient } from '../utils';\n\n/**\n * useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server renderer's output format.\n *\n * This will lead to a mismatch between the initial, non-hydrated UI and the intended UI.\n *`\n * To avoid this, we will use this hook to replace useLayoutEffect.\n */\nconst useSSRLayoutEffect = isClient ? useLayoutEffect : useEffect;\n\nexport default useSSRLayoutEffect;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\nfunction last() {\n var _ref;\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\nfunction negation(a) {\n return -a;\n}\nfunction addition(a, b) {\n return a + b;\n}\nfunction subtraction(a, b) {\n return a - b;\n}\nfunction multiplication(a, b) {\n return a * b;\n}\nfunction division(a, b) {\n return a / b;\n}\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols;\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n\n/**\n * super basic version of sprintf\n * @private\n */\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var a = args[0];\n var b = [];\n var c;\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n function PolishedError(code) {\n var _this;\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized(_this);\n }\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g;\n\n// Merges additional math functionality into the defaults.\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\nfunction exec(operators, values) {\n var _ref;\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp(\n // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" +\n // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n })\n // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n })\n // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n do {\n match = pattern.exec(expression);\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix;\n\n // Check for syntax errors:\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break;\n // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n afterValue = curr.notation === 'postfix';\n if (curr.symbol !== ')') {\n operators.push(curr);\n // Postfix always has precedence over any operator that follows after it\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp);\n\n // Check that all units are the same\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\nvar cssVariableRegex = /--[\\S]*/g;\n\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n var variableValue;\n\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n return styles;\n}\n\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n var newPxval = pxval;\n var newBase = base;\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n newPxval = stripUnit(pxval);\n }\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n newBase = stripUnit(base);\n }\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n return \"\" + newPxval / newBase + to;\n };\n};\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\nvar em = pixelsto('em');\nvar em$1 = em;\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n if (ratio === void 0) {\n ratio = 1.333;\n }\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\nvar rem = pixelsto('rem');\nvar rem$1 = rem;\nvar defaultFontSize = 16;\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n throw new PolishedError(78, deconstructedValue[1]);\n}\nfunction getBaseFromDoc() {\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n /* istanbul ignore next */\n return defaultFontSize;\n}\n\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n if (parent === void 0) {\n parent = '&';\n }\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n var obj = _step.value;\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n return fontReferences.join(', ');\n}\n\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n };\n\n // Removes undefined fields for cleaner css object.\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\nfunction constructGradientValue(literals) {\n var template = '';\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n });\n // Adds leading coma if properties preceed color-stops\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i];\n // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n return template.trim();\n}\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n if (extension === void 0) {\n extension = 'png';\n }\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n if (!filename) {\n throw new PolishedError(58);\n }\n // Replace the dot at the beginning of the passed extension if one exists\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n default:\n throw new PolishedError(59);\n }\n};\n\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n }\n\n // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n var normalizedColor = nameToHex(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new PolishedError(5);\n}\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) / delta + 2;\n break;\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new PolishedError(7);\n}\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n}\n\n// eslint-disable-next-line no-redeclare\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n}\n\n// prettier-ignore\nvar curriedAdjustHue = curry /* :: */(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDarken = curry /* :: */(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDesaturate = curry /* :: */(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\nfunction invert(color) {\n if (color === 'transparent') return color;\n // parse color string to rgb\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedLighten = curry /* :: */(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n var parsedColor2 = parseToRgb(otherColor);\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n });\n\n // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n}\n\n// prettier-ignore\nvar curriedMix = curry /* :: */(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedOpacify = curry /* :: */(opacify);\nvar curriedOpacify$1 = curriedOpacify;\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n if (strict === void 0) {\n strict = true;\n }\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedSaturate = curry /* :: */(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n}\n\n// prettier-ignore\nvar curriedSetHue = curry /* :: */(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n}\n\n// prettier-ignore\nvar curriedSetLightness = curry /* :: */(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n}\n\n// prettier-ignore\nvar curriedSetSaturation = curry /* :: */(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n}\n\n// prettier-ignore\nvar curriedShade = curry /* :: */(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n}\n\n// prettier-ignore\nvar curriedTint = curry /* :: */(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedTransparentize = curry /* :: */(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n background: properties.join(', ')\n };\n}\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n selectors.push(generateSelectors(template, states[i]));\n }\n selectors = selectors.join(',');\n return selectors;\n}\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n return {\n height: height,\n width: width\n };\n}\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };","import { getContrast } from 'polished';\n\nexport const isBrowser = typeof window !== 'undefined';\n\nexport const isClient = typeof window !== 'undefined';\n\nexport const getContrastYIQ = (bgColor: string, contrast = 3) => {\n const contrastRatio = getContrast(bgColor, '#fff');\n\n return contrastRatio <= contrast ? '#000' : '#fff';\n};\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}"],"names":["styles","entering","opacity","entered","defaultTimeout","enter","enteringScreen","exit","leavingScreen","props","ref","children","_props$disableStrictM","disableStrictModeCompat","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","_props$TransitionComp","TransitionComponent","Transition","_props$timeout","timeout","other","theme","useTheme","enableStrictModeCompat","unstable_strictMode","nodeRef","foreignRef","useForkRef","handleRef","undefined","normalizedTransitionCallback","callback","nodeOrAppearing","maybeAppearing","_ref","current","_ref2","node","isAppearing","handleEntering","handleEnter","transitionProps","mode","webkitTransition","transitions","create","transition","handleEntered","handleExiting","handleExit","handleExited","appear","state","childProps","visibility","Backdrop","classes","className","_props$invisible","invisible","open","transitionDuration","root","withStyles","zIndex","position","display","alignItems","justifyContent","right","bottom","top","left","backgroundColor","WebkitTapHighlightColor","name","defaultTransitionDuration","Dialog","BackdropProps","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$fullScreen","fullScreen","_props$fullWidth","fullWidth","_props$maxWidth","maxWidth","onBackdropClick","onClose","onEscapeKeyDown","_props$PaperComponent","PaperComponent","Paper","_props$PaperProps","PaperProps","_props$scroll","scroll","_props$transitionDura","TransitionProps","ariaDescribedby","ariaLabelledby","mouseDownTarget","Modal","BackdropComponent","closeAfterTransition","role","container","concat","capitalize","onMouseUp","event","target","currentTarget","onMouseDown","elevation","paper","String","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","overflowY","overflowX","textAlign","content","verticalAlign","height","width","outline","margin","boxShadow","paperScrollPaper","flexDirection","maxHeight","paperScrollBody","paperWidthFalse","paperWidthXs","Math","max","breakpoints","values","xs","down","paperWidthSm","sm","paperWidthMd","md","paperWidthLg","lg","paperWidthXl","xl","borderRadius","ariaHidden","show","setAttribute","removeAttribute","getPaddingRight","parseInt","window","getComputedStyle","ariaHiddenSiblings","mountNode","currentNode","nodesToExclude","arguments","length","blacklist","blacklistTagNames","forEach","call","nodeType","indexOf","tagName","findIndexOf","containerInfo","idx","some","item","index","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","doc","ownerDocument","body","ownerWindow","innerWidth","documentElement","clientWidth","scrollHeight","clientHeight","isOverflowing","scrollbarSize","getScrollbarSize","push","value","paddingRight","key","el","querySelectorAll","parent","parentElement","scrollContainer","nodeName","overflow","i","removeProperty","setProperty","ModalManager","this","modals","containers","modal","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getAttribute","getHiddenSiblings","containerIndex","restore","splice","nextTop","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","handleOwnRef","instance","prevOpenRef","activeElement","contains","hasAttribute","focus","contain","hasFocus","loopFocus","keyCode","shiftKey","addEventListener","interval","setInterval","clearInterval","removeEventListener","tabIndex","defaultManager","inProps","getThemeProps","_props$BackdropCompon","_props$closeAfterTran","_props$disablePortal","disablePortal","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$keepMounted","keepMounted","_props$manager","manager","onRendered","_React$useState","exited","setExited","mountNodeRef","hasTransition","hasOwnProperty","getHasTransition","getModal","handleMounted","mount","scrollTop","handleOpen","useEventCallback","resolvedContainer","getContainer","add","isTopModal","handlePortalRef","handleClose","remove","inlineStyle","hidden","createChainedFunction","Portal","onKeyDown","stopPropagation","onClick","_props$component","component","Component","_props$square","square","_props$elevation","_props$variant","variant","outlined","rounded","elevations","shadows","shadow","palette","background","color","text","primary","shape","border","divider","useEnhancedEffect","setMountNode","document","clamp","min","decomposeColor","type","charAt","substr","re","RegExp","colors","match","map","n","round","join","hexToRgb","marker","substring","Error","split","parseFloat","recomposeColor","getContrastRatio","foreground","lumA","getLuminance","lumB","rgb","h","s","l","a","f","k","hslToRgb","val","pow","Number","toFixed","emphasize","coefficient","darken","lighten","fade","alpha","keys","createMixins","spacing","mixins","_toolbar","gutters","console","warn","paddingLeft","up","toolbar","minHeight","black","white","A100","A200","A400","A700","light","secondary","disabled","hint","default","action","active","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","direction","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","size","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","deepmerge","clone","createShadow","defaultBreakpoints","acc","fn","cache","properties","m","p","directions","t","r","b","x","y","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","prop","_prop$split","_prop$split2","property","Array","isArray","dir","arg","spacingKeys","createUnarySpacing","themeSpacing","abs","getStyleFromPropValue","cssProperties","transformer","propValue","reduce","cssProperty","transformed","getValue","Object","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","propTypes","filterProps","createTheme","options","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","spacingInput","_options$typography","typographyInput","_palette$primary","_palette$secondary","_palette$error","error","_palette$warning","warning","_palette$info","info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","augmentColor","mainShade","lightShade","darkShade","JSON","stringify","contrastText","types","common","grey","createPalette","_breakpoints$values","_breakpoints$unit","unit","_breakpoints$step","step","between","start","end","endIndex","upperbound","only","createBreakpoints","mui","transform","_len","args","_key","argument","output","defineProperty","get","createSpacing","muiTheme","overrides","createMuiTheme","apply","defaultTheme","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","delay","animatedProp","getAutoHeightDuration","constant","stylesOrCreator","_options$withTheme","withTheme","stylesOptions","classNamePrefix","useStyles","makeStyles","displayName","WithStyles","innerRef","defaultProps","more","mobileStepper","speedDial","appBar","drawer","snackbar","tooltip","reflow","getTransitionProps","_props$style","transitionDelay","useMediaQuery","queryInput","query","replace","supportMatchMedia","matchMedia","_props$options","_props$options$defaul","defaultMatches","_props$options$matchM","_props$options$noSsr","noSsr","_props$options$ssrMat","ssrMatchMedia","matches","setMatch","queryList","updateMatch","addListener","removeListener","string","toUpperCase","slice","funcs","func","_len2","_key2","scrollDiv","createElement","appendChild","offsetWidth","removeChild","defaultView","setRef","refA","refB","refValue","hasSymbol","Symbol","for","params","propName","_typeof","iterator","obj","constructor","prototype","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","by","result","toCssValue","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","str","indent","toCss","selector","_options$indent","fallbacks","Infinity","_getWhitespaceSymbols","fallback","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","BaseStyleRule","isProcessed","sheet","Renderer","renderer","force","newValue","process","onChangeValue","isEmpty","isDefined","renderable","attached","StyleRule","_BaseStyleRule","_this","scoped","generateId","selectorText","id","_proto2","applyTo","json","toJSON","toString","opts","link","set","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","at","rules","RuleList","_proto","getRule","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","test","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","ruleOptions","_this$options","register","oldRule","oldIndex","nameOrSelector","unregister","update","data","updateOne","_this$options2","onUpdate","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","attach","deploy","detach","queue","insertRule","deleteRule","addRules","added","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","plugin","SheetsRegistry","reset","_temp","sheets","globalThis$1","globalThis","self","Function","ns","moduleId","createGenerateId","ruleCounter","jssId","prefix","minify","memoize","getPropertyValue","cssRule","attributeStyleMap","err","indexOfImportantFlag","cssValueWithoutImportantFlag","delete","getHead","querySelector","findPrevNode","insertionPoint","findHigherSheet","element","parentNode","findHighestSheet","nextSibling","comment","head","childNodes","nodeValue","trim","findCommentNode","getNonce","_insertRule","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","textContent","createStyle","nonce","nextNode","insertBefore","insertionPointElement","insertStyle","Boolean","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","version","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","to","extracted","multiKeyStore","key1","key2","subCache","Map","pseudoClasses","now","Date","fnValuesNs","fnRuleNs","fnValues","styleRule","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","j","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","convertCase","converted","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","newObj","units","padding","inset","motion","perspective","gap","grid","iterate","innerProp","_innerProp","isNaN","camelCasedOptions","js","vendor","browser","isTouch","jsCssMap","Moz","O","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","c","camelize","pascalize","mask","longhand","textOrientation","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","order","flex2012","propMap$1","flex","propKeys","prefixCss","flex2009","multiple","propertyDetectors","filter","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","sort","prop0","prop1","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","createGenerateClassName","defaultOptions","disableGeneration","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","stylesCreator","sheetManager","refs","staticSheet","dynamicStyles","flip","serverGenerateClassName","dynamicSheet","mergeClasses","baseClasses","newClasses","classNamePrefixOption","_options$defaultTheme","stylesOptions2","themingEnabled","stylesWithOverrides","getStylesCreator","shouldUpdate","currentKey","useSynchronousEffect","_ref4","_ref3","cacheClasses","lastProp","lastJSS","generate","getClasses","nextClasses","ThemeContext","isPlainObject","source","formatMuiErrorMessage","code","url","encodeURIComponent","e","uppercasePattern","msPattern","toHyphenLower","toLowerCase","hName","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","context","initialStatus","isMounting","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","setState","_this2","appearing","maybeNode","timeouts","enterTimeout","config","safeSetState","onTransitionEnd","_this3","cancel","nextState","setNextCallback","_this4","handler","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","setTimeout","render","_this$props","TransitionGroupContext","Provider","noop","contextType","forceReflow","React","assign","stroke","fill","strokeWidth","viewBox","xmlns","d","supportedLang","language","languageRegex","hasSlash","lang","getLangFullPathname","pathname","removeLang","isDefaultLang","getLangPath","removeLangPrefix","localTheme","outerTheme","mergeOuterLocalTheme","cookie","setShowCookieBanner","dangerouslySetInnerHTML","__html","cookieContent","acceptCookies","localStorage","setItem","rejectCookies","selectedValue","langModalTranslations","title","subtitle","selectedLang","currentLang","parse","getItem","navigate","location","scrollTo","handleListItemClick","Close","socials","Icon","FacebookLogo","TwitterLogo","InstagramLogo","_win","_doc","_docElement","_pluginInitted","_tempDiv","_recentSetterPlugin","_reverting","_supports3D","footerTxt","setOpen","useState","setCurrentLang","setSelectedValue","useSSRLayoutEffect","browserLang","parsedCurrentLang","parsedBrowserLang","RiotFistLogo","href","rel","legal","termsOfService","privacyNotice","competitiveRulings","social","handleOpenDialogClick","WorldLogo","LanguagueDialog","getFullYear","allRightsReserved","scrollToTheTop","behavior","toTheSurface","TriangleLogo","_transformProps","_RAD2DEG","PI","_DEG2RAD","_atan2","atan2","_capsExp","_horizontalExp","_complexExp","_propertyAliases","autoAlpha","scale","_renderCSSProp","ratio","u","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","_setterTransform","_gsap","_setterScale","scaleX","scaleY","_setterScaleWithRender","renderTransform","_setterTransformWithRender","_transformProp","_transformOriginProp","_saveStyle","isNotCSS","tfm","_get","zOrigin","svg","svgo","_removeIndependentTransforms","translate","_revertStyle","isStart","uncache","_getStyleSaver","saver","revert","save","core","getCache","_createElement","createElementNS","_getComputedProperty","skipPrefixFallback","cs","_checkPropPrefix","_prefixes","preferPrefix","_initCore","cssText","reverting","_getReparentedCloneBBox","bbox","owner","ownerSVGElement","cloneNode","getBBox","_getAttributeFallbacks","attributesArray","_getBBox","bounds","cloned","_isSVG","getCTM","_removeProperty","first2Chars","_addNonTweeningPT","beginning","onlySetAtEnd","pt","_pt","_props","_nonConvertibleUnits","deg","rad","turn","_nonStandardLayouts","_convertToUnit","isSVG","curValue","curUnit","horizontal","isRootSVG","measureProperty","amount","toPixels","toPercent","time","v","_parseTransform","origin","_firstTwoOnly","_specialProps","_tweenComplexCSSString","startValues","startNum","startValue","endValue","endNum","chunk","endUnit","startUnit","matchIndex","exec","lastIndex","_next","_keywordToPercent","center","_renderClearProps","tween","_time","_dur","clearTransforms","rotate","clearProps","pr","_identity2DMatrix","_rotationalProperties","_isNullTransform","_getComputedTransformMatrixAsArray","matrixString","_getMatrix","force2D","temp","addedToDOM","matrix","baseVal","consolidate","offsetParent","getBoundingClientRect","nextElementSibling","_applySVGOrigin","originIsAbsolute","smooth","matrixArray","pluginToAddPropTweensTo","determinant","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","yOffset","tx","ty","originSplit","z","rotation","rotationX","rotationY","skewX","skewY","angle","cos","sin","a12","a22","t1","t2","t3","a13","a23","a33","a42","a43","a32","invertedScaleX","sqrt","forceCSS","xPercent","yPercent","offsetHeight","transformPerspective","force3D","_renderSVGTransforms","_renderCSSTransforms","_renderNon3DTransforms","_addPxTranslate","_zeroDeg","_zeroPx","_endParenthesis","transforms","use3D","a11","a21","tan","_addRotationalPropTween","cap","isString","change","finalValue","_assign","_addRawTransformPTs","endCache","startCache","side","vars","init","positionAndScale","all","CSSPlugin","targetTest","targets","specialProp","relative","isTransformRelated","transformPropTween","hasPriority","inlineProps","startAt","parseTransform","smoothOrigin","dep","autoRound","getSetter","utils","checkPrefix","getStyleSaver","registerPlugin","gsapWithCSS","Tween","_props$fill","fillRule","clipRule","burgerLine","burgerLineBlack","menuTxt","useLocation","isMenuOpen","setIsMenuOpen","isScrolled","setIsScrolled","linkListRef","useRef","menuRef","timeline","gsap","paused","defaults","ease","links","isDisplayDesktop","games","faq","calendar","onScroll","scrollY","stagger","isLogoBlack","useMemo","includes","Link","RiotFistTextLogo","toggleMenu","boolean","timeScale","reverse","play","LanguageHelmet","useEffect","isBrowser","navigator","getLangFromPathname","find","_supportedLang$find","darkTheme","menuText","footerText","showCookieBanner","cookieConsent","ThemeProvider","RTHeader","RTFooter","RTCookieBanner","isClient","useLayoutEffect","_construct","Parent","Class","isNativeReflectConstruct","Reflect","construct","bind","setPrototypeOf","_wrapNativeSuper","_cache","TypeError","has","Wrapper","getPrototypeOf","enumerable","writable","configurable","PolishedError","_Error","endsWith","suffix","cssRegex$1","stripUnit","pixelsto","pxval","base","newPxval","newBase","colorToInt","convertToInt","red","green","blue","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","normalizedColorName","nameToHex","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","parseToHsl","delta","rgbToHsl","reduceHexValue$1","numberToHex","hex","colorToHex","convertToHex","hslToHex","hsl","hsla","rgba","firstValue","secondValue","thirdValue","fourthValue","rgbValue","isRgb","isRgba","isHsl","isHsla","toColorString","curried","combined","curry","degree","hslColor","guard","lowerBoundary","upperBoundary","rgbColor","_Object$keys$map","channel","g","getContrast","color1","color2","luminance1","luminance2","mix$1","weight","otherColor","parsedColor1","parsedColor2","alphaDelta","weight1","weight2","floor","parsedColor","percentage","getContrastYIQ","bgColor","contrast","_assertThisInitialized","ReferenceError","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_defineProperty","_extends","_getPrototypeOf","o","__proto__","_isNativeReflectConstruct","sham","Proxy","valueOf","_objectWithoutProperties","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutPropertiesLoose","sourceKeys","_slicedToArray","arr","_i","_s","_e","_arr","_n","_d","next","done","unsupportedIterableToArray"],"sourceRoot":""}