{"version":3,"file":"js/352-3872a516a90a42a0c18b.js","mappings":"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","sources":["webpack://booqable/./webpack/shared/prop_types/promise.js","webpack://booqable/./webpack/shared/utils/shouldForwardProp.js","webpack://booqable/./webpack/shared/utils/withTranslation.js","webpack://booqable/./webpack/ui/blocks/Button/styles.js","webpack://booqable/./webpack/ui/blocks/Button/index.js","webpack://booqable/./webpack/ui/blocks/Icon/index.js","webpack://booqable/./webpack/ui/blocks/Icon/styles.js","webpack://booqable/./webpack/ui/blocks/Link/index.js","webpack://booqable/./webpack/ui/blocks/Link/styles.js","webpack://booqable/./webpack/ui/blocks/Loader/index.js","webpack://booqable/./webpack/ui/blocks/Loader/styles.js","webpack://booqable/./webpack/ui/blocks/Skeleton/styles.js","webpack://booqable/./webpack/ui/blocks/Skeleton/index.js","webpack://booqable/./webpack/ui/components/Button/StatefulButton/index.jsx","webpack://booqable/./webpack/ui/components/Button/index.jsx","webpack://booqable/./webpack/ui/components/Icon/index.jsx","webpack://booqable/./webpack/ui/components/Link/index.jsx","webpack://booqable/./webpack/ui/components/Loader/index.jsx","webpack://booqable/./webpack/ui/elements/A.js","webpack://booqable/./webpack/ui/elements/Button.js","webpack://booqable/./webpack/ui/elements/I.js","webpack://booqable/./webpack/ui/elements/Span.js","webpack://booqable/./webpack/ui/themes/app.js","webpack://booqable/./webpack/ui/themes/colors.js","webpack://booqable/./webpack/ui/themes/modifiers.js","webpack://booqable/./webpack/ui/themes/utils.js"],"sourcesContent":["/**\n * Custom PropType for Promise. It checks if the prop has a `then` function.\n */\nconst createPromisePropType = (isRequired) => {\n return (props, propName, componentName) => {\n const value = props[propName]\n const error = new Error(\n `Invalid prop '${propName}' supplied to ` +\n `'${componentName}'. Expected a Promise.`\n )\n\n if (isRequired && !value) {\n return error\n }\n\n if (value && typeof value.then !== 'function') {\n return error\n }\n }\n}\n\n// Optional PropType\nconst promisePropType = createPromisePropType(false)\n\n// Required PropType\npromisePropType.isRequired = createPromisePropType(true)\n\nexport default promisePropType\n","import isPropValid from '@emotion/is-prop-valid'\n\nexport const shouldForwardProp = (propName, target) => {\n if (typeof target === 'string') {\n // For HTML elements, forward the prop if it is a valid HTML attribute\n return isPropValid(propName)\n }\n\n // For other elements, forward all props\n return true\n}\n","// React\nimport React, { createElement } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport { useTranslation, Trans } from 'react-i18next'\n\n// Components\nimport Skeleton from 'ui/blocks/Skeleton'\n\n/**\n * Higher order compomnent to get the `t` function from `react-i18next`,\n * but with a skeleton fallback when the translations are not ready yet.\n *\n * Prefer using the `useTranslation` hook instead of this HOC for functional components.\n */\nexport const withTranslation = (namespace) => (WrappedComponent) => {\n const I18nextWithTranslation = (props) => {\n const { tNamespace } = props\n\n const [t, i18n, ready] = useTranslation(tNamespace || namespace, { useSuspense: false })\n\n const tOrLoadingBar = (key, options = {}) => {\n return ready ? t(key, options) : \n }\n\n const tOrEmptyString = (key, options = {}) => {\n return ready ? t(key, options) : ''\n }\n\n const TransComponent = (transProps) => {\n return ready ?\n :\n \n }\n\n TransComponent.propTypes = {\n i18nKey: PropTypes.string\n }\n\n return createElement(WrappedComponent, {\n ...props, Trans: TransComponent, t: tOrLoadingBar, tOrEmptyString, i18n, tReady: ready\n })\n }\n\n I18nextWithTranslation.propTypes = {\n tNamespace: PropTypes.string\n }\n\n return I18nextWithTranslation\n}\n","import styled, { css } from 'styled-components'\nimport { color, size, fontSize, fontWeight, contrastingFontColor } from 'ui/themes/utils'\n\nimport ButtonElement from 'ui/elements/Button'\nimport A from 'ui/elements/A'\nimport Span from 'ui/elements/Span'\nimport I from 'ui/elements/I'\n\n// Get color for current type, eg: primary\nconst mainColor = (props) => props.color.indexOf('#') > -1 ? props.color : props.theme.color[props.color]\n\n// Get font color for main color; light font for dark color, dark font for light color\nconst fontColor = (props) => contrastingFontColor(mainColor(props))\n\nexport const Label = styled(Span)``\n\nexport const Button = styled(ButtonElement)``\nexport const Link = styled(A)`\n ${I}:last-child {\n ${(props) => props.target === '_blank' && css`\n margin: 0 0 0 ${size('margin', 'xs')} !important;\n `}\n }\n`\n\nexport const StatefulIcon = styled(Span)`\n position: absolute;\n left: 0;\n width: 100%;\n\n i {\n margin: 0 !important;\n }\n`\n\nexport const ButtonContainer = styled(Span)`\n ${(props) => props.block && css`\n display: block;\n width: 100%;\n `}\n\n ${(props) => props.inlineBlock && css`\n display: inline-block;\n `}\n\n ${Button}, ${Link} {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n height: ${size('controlHeight')};\n padding: 0 ${size('padding')};\n\n color: ${fontColor};\n background-color: ${mainColor};\n\n font-weight: ${fontWeight('normal')};\n font-size: ${fontSize()};\n text-decoration: none !important;\n text-align: center;\n line-height: ${size('controlHeight')};\n\n border: none;\n border-radius: ${size('borderRadius')};\n /* To overrule the default borderRadius based on size, which is sometimes to rounded */\n ${(props) => props.borderRadius && css`\n border-radius: ${size('borderRadius', props.borderRadius)};\n `}\n\n ${Label} {\n color: ${fontColor};\n }\n\n cursor: pointer;\n outline: none;\n\n white-space: nowrap;\n\n &:hover {\n box-shadow: inset 0 0 400px 110px rgba(0, 0, 0, 0.12);\n color: ${fontColor};\n\n ${Label} {\n color: ${fontColor};\n }\n }\n\n &:active {\n box-shadow: inset 0 0 400px 110px rgba(0, 0, 0, 0.2);\n color: ${fontColor};\n\n ${Label} {\n color: ${fontColor};\n }\n }\n\n ${(props) => props.uppercase && css`\n text-transform: uppercase;\n `}\n\n ${(props) => props.disabled && css`\n cursor: default;\n opacity: 0.6;\n pointer-events: none;\n `}\n\n ${(props) => props.unclickable && css`\n pointer-events: none;\n `}\n\n ${(props) => props.block && css`\n display: block;\n width: 100%;\n `}\n\n ${(props) => props.textAlign && css`\n text-align: ${(props) => props.textAlign};\n `}\n\n ${(props) => props.outline && typeof props.outline === 'boolean' && css`\n color: ${fontColor};\n background-color: ${mainColor};\n border: ${size('borderWidth')} solid ${color('Misc/Divider')};\n\n ${Label} {\n color: ${fontColor};\n }\n\n &:hover {\n color: ${fontColor};\n box-shadow: none;\n border-color: ${color('borderHover')};\n\n ${Label} {\n color: ${color('Text/Primary')};\n }\n }\n `}\n\n ${(props) => props.noBorder && css`\n border-color: transparent\n `}\n\n ${(props) => props.outline && props.outline === 'transparentWhite' && css`\n color: ${color('Text/Inverted')};\n background-color: transparent;\n border: ${size('borderWidth')} solid ${color('Text/Secondary')};\n\n ${Label} {\n color: ${color('Text/Inverted')};\n }\n\n &:hover {\n box-shadow: none;\n border-color: ${color('white')};\n }\n `}\n\n ${(props) => props.color === 'white' && css`\n border: ${size('borderWidth')} solid ${color('Misc/Divider')};\n `}\n\n ${(props) => props.color === 'black' && css`\n &:hover {\n box-shadow: inset 0 0 400px 110px rgba(255,255,255, 0.12);\n }\n `}\n\n /* Icon styling */\n i {\n ${(props) => (!props.iconFloat || props.iconFloat === 'left') && css`\n margin-right: ${size('margin', 'xs')};\n `}\n ${(props) => (props.iconFloat === 'right') && css`\n margin-left: ${size('margin', 'xs')};\n `}\n }\n\n ${(props) => props.noLabel && css`\n i {\n margin: 0 !important;\n }\n `}\n\n ${(props) => props.isSubmit && css`\n height: 44px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin: 0 auto;\n\n background-color: ${color('Text/Primary')};\n border: ${size('borderWidth')} solid ${color('Text/Primary')};\n\n border-radius: 10px;\n font-size: 16px;\n\n transition: background 200ms, color 200ms;\n\n &:hover:not(:disabled) {\n color: ${color('Text/Primary')};\n\n background-color: #FFFFFF;\n\n transition: background 200ms, color 200ms;\n\n box-shadow: none;\n\n ${Label} {\n color: ${color('Text/Primary')};\n }\n }\n `}\n\n ${(props) => props.round && css`\n height: auto;\n\n padding: ${size('padding', 'sm')} ${size('padding', 'xl')};\n\n font-weight: ${fontWeight('semibold')};\n font-size: 16px;\n line-height: 1.5;\n\n border-radius: ${size('controlHeight', 'lg')};\n\n border: ${size('borderWidth')} solid ${color('Primary/Base')};\n\n transition: background 500ms, color 500ms;\n\n &:hover:not(:disabled) {\n color: ${color('Primary/Base')};\n background-color: ${color('white')};\n\n box-shadow: none;\n\n transition: background 500ms, color 500ms;\n\n ${Label} {\n color: ${color('Primary/Base')};\n }\n }\n `}\n\n ${(props) => props.withBranding && css`\n background-color: var(--branding-color, ${mainColor});\n `}\n }\n`\n\nexport const Hidden = styled(Span)`\n visibility: hidden;\n`\n","import { ButtonContainer, Button, Link, Label, Hidden, StatefulIcon } from './styles'\n\nButtonContainer.Button = Button\nButtonContainer.Link = Link\nButtonContainer.Label = Label\nButtonContainer.Hidden = Hidden\nButtonContainer.StatefulIcon = StatefulIcon\n\nexport default ButtonContainer\n","import { Icon } from './styles'\n\nexport default Icon\n","import styled, { css } from 'styled-components'\nimport { color, contrastingFontColor } from 'ui/themes/utils'\n\nimport I from 'ui/elements/I'\n\nexport const Icon = styled(I)`\n ${(props) => props.hover && css`\n cursor: pointer;\n `}\n\n ${(props) => {\n if (!props.color) return\n\n return css`\n color: ${color(props.color)};\n `\n }}\n\n ${(props) => props.rounded && css`\n width: auto;\n\n &:before {\n background: ${color(props.backgroundColor)};\n color: ${contrastingFontColor(color(props.backgroundColor)(props))};\n font-size: 11px;\n width: 24px;\n height: 24px;\n line-height: 24px;\n text-align: center;\n border-radius: 50%;\n margin-right: 8px;\n display: block;\n }\n `}\n`\n","import {\n Link\n} from './styles'\n\nexport default Link\n","import styled, { css } from 'styled-components'\nimport { color, fontSize } from 'ui/themes/utils'\nimport A from 'ui/elements/A'\nimport I from 'ui/elements/I'\n\nexport const Link = styled(A)`\n cursor: pointer;\n align-self: center;\n font-size: ${fontSize()};\n\n ${(props) => props.iconOnly && css`\n display: inline-block;\n `}\n\n ${(props) => props.block && css`\n display: block;\n align-self: start;\n `}\n\n ${(props) => props.color === 'primary' && css`\n color: ${color('Primary/Base')};\n `}\n\n ${(props) => props.color === 'dark' && css`\n color: ${color('Text/Primary')};\n `}\n\n ${(props) => props.color === 'white' && css`\n color: ${color('Text/Inverted')};\n\n &:hover {\n color: ${color('Text/Inverted')};\n opacity: 0.6;\n }\n\n &:focus {\n color: ${color('Text/Inverted')};\n }\n `}\n\n ${(props) => props.iconColor && css`\n ${I} {\n color: ${color(props.iconColor)};\n }\n `}\n\n ${(props) => props.color === 'danger' && css`\n color: ${color('Danger/Base')};\n `}\n\n ${(props) => props.underline && css`\n text-decoration: underline;\n\n &:hover {\n text-decoration: underline;\n }\n `}\n\n ${({ noDecoration }) => noDecoration && css`\n text-decoration: none;\n `}\n\n ${(props) => props.target === '_blank' && !props.noBlankIcon && css`\n ${I} {\n &:last-child {\n margin-left: 0.2em;\n display: inline-block;\n font-size: ${fontSize('sm')};;\n vertical-align: baseline;\n box-sizing: border-box;\n }\n }\n `}\n\n ${I} {\n &:first-child {\n margin-right: 0.2em;\n }\n }\n\n ${(props) => props.iconAppend && css`\n ${I} {\n &:last-child {\n margin-top: 4px;\n float: right;\n }\n }\n `}\n\n ${(props) => props.disabled && css`\n cursor: default;\n opacity: 0.6;\n pointer-events: none;\n color: ${color('Text/Secondary')};\n `}\n`\n","import { Loader } from './styles'\n\nexport default Loader\n","import styled, { css } from 'styled-components'\nimport { color, fontSize } from 'ui/themes/utils'\n\nimport I from 'ui/elements/I'\nimport Span from 'ui/elements/Span'\n\nexport const Loader = styled(Span)`\n font-size: ${fontSize()};\n\n ${I} {\n ${(props) => props.color && css`\n color: ${(props) => color(props.color)} !important;\n `}\n\n width: ${fontSize()};\n height: ${fontSize()};\n }\n`\n","import styled, { keyframes, css } from 'styled-components'\nimport { color } from 'ui/themes/utils'\n\nimport Span from 'ui/elements/Span'\n\nconst shine = keyframes`\n to {\n background-position-x: -200%;\n }\n`\n\nexport const Skeleton = styled(Span)`\n display: inline-flex;\n\n background: #eee;\n background: linear-gradient(110deg, ${color('light')} 8%, ${color('Background/Base')} 18%, ${color('light')} 33%);\n\n vertical-align: middle;\n transform: translateY(-1px);\n\n max-width: 100%;\n\n padding: 8px 0;\n margin: 0 auto;\n\n border-radius: 12px;\n\n background-size: 200% 100%;\n\n animation: 1.5s ${shine} linear infinite;\n\n ${({ string }) => {\n if (string) {\n const split = string.split('.')\n const length = split[split.length - 1].length\n\n return css`\n width: calc(8px * ${length});\n `\n }\n }}\n\n ${({ width }) => width && css`\n width: ${width}px;\n `}\n\n ${({ height }) => height && css`\n height: ${height}px;\n `}\n\n ${({ noCenter }) => noCenter && css`\n margin: 0;\n `}\n\n ${({ fullHeight }) => fullHeight && css`\n height: 100%;\n `}\n\n ${({ fullWidth }) => fullWidth && css`\n width: 100%;\n `}\n\n ${({ noPadding }) => noPadding && css`\n padding: 0;\n `}\n`\n","import { Skeleton } from './styles'\n\nexport default Skeleton\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\n\n// Components\nimport BButton from 'ui/blocks/Button'\nimport Icon from 'ui/components/Icon'\nimport Loader from 'ui/components/Loader'\n\n// Shared\n\n/**\n * StatefulButton for displaying loading, success, or error state.\n *\n * @example\n * Save\n */\nexport default class StatefulButton extends Component {\n static displayName = 'StatefulButton'\n\n static propTypes = {\n state: PropTypes.string,\n children: PropTypes.any,\n color: PropTypes.string,\n icon: PropTypes.any,\n size: PropTypes.string,\n modifiers: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ])\n }\n\n /**\n * Renders one of the states of the button; loading, success, or error.\n */\n render = () => {\n const { state, children, size, icon, modifiers, ...otherProps } = this.props\n\n let statefulIcon\n\n let color = this.props.color\n\n // modifiers assigned to a Button with a state (promise) could flow into the StatefulButton\n const nestedModifiers = typeof modifiers === 'object' ? modifiers : { self: modifiers }\n\n switch (state) {\n case 'loading':\n statefulIcon = \n break\n case 'success':\n statefulIcon = \n break\n case 'error':\n color = 'danger'\n statefulIcon = \n break\n }\n\n return (\n \n \n \n {icon && }\n {children}\n \n \n {statefulIcon}\n \n \n \n )\n }\n}\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport _isString from 'lodash/isString'\n\n// Components\nimport BButton from 'ui/blocks/Button'\nimport StatefulButton from './StatefulButton'\nimport Icon from 'ui/components/Icon'\n\n// Shared\nimport promisePropType from 'shared/prop_types/promise'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\n\n/**\n * Button for displaying loading, success, or error state.\n * Hooks into a Promise resolve or reject to display the state accordingly.\n *\n * @example\n * \n */\nexport default class Button extends Component {\n static displayName = 'Button'\n\n static propTypes = {\n 'id': PropTypes.string,\n 'children': PropTypes.any,\n 'onClick': PropTypes.func,\n 'color': PropTypes.string,\n 'icon': PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n 'iconFloat': PropTypes.oneOf(['left', 'right']),\n 'size': PropTypes.string,\n 'borderRadius': PropTypes.string,\n 'href': PropTypes.string,\n 'reset': PropTypes.number,\n 'disabled': PropTypes.bool,\n 'block': PropTypes.bool,\n 'outline': PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool\n ]),\n 'noBorder': PropTypes.bool,\n 'promise': promisePropType,\n 'target': PropTypes.string,\n 'textAlign': PropTypes.string,\n 'data-tid': PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n 'round': PropTypes.bool,\n 'uppercase': PropTypes.bool,\n 'noBlankIcon': PropTypes.bool,\n 'modifiers': PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n 'inlineBlock': PropTypes.bool,\n 'withBranding': PropTypes.bool,\n 'loading': PropTypes.bool\n }\n\n static defaultProps = {\n color: 'primary',\n size: 'md',\n type: 'button',\n reset: 2500\n }\n\n constructor (props) {\n super(props)\n\n this.state = {\n state: null\n }\n }\n\n componentDidUpdate = (prevProps) => {\n this._isMounted = true\n\n const { promise } = this.props\n\n if (promise && promise !== prevProps.promise) {\n // There's a promise to hook into\n this.handlePromise(promise)\n }\n\n if (prevProps.loading !== this.props.loading && this._isMounted) {\n this.setState({\n state: this.props.loading ? 'loading' : null\n })\n }\n }\n\n componentWillUnmount = () => {\n this._isMounted = false\n\n if (this.resetTimer) {\n clearTimeout(this.resetTimer)\n }\n }\n\n get icon () {\n const data = this.props.icon\n\n if (!data) return\n\n if (_isString(data)) {\n return { icon: data }\n } else {\n return data\n }\n }\n\n /**\n * Handler: There's a promise to hook into.\n */\n handlePromise = (promise) => {\n // Set state to loading immediately\n this.setState({ state: 'loading' })\n\n promise\n .then(() => {\n // Promise is resolved, set state to success\n if (this._isMounted) {\n this.setState({ state: 'success' })\n }\n })\n .catch(() => {\n // Promise is rejected, set state to error\n if (this._isMounted) {\n this.setState({ state: 'error' })\n }\n })\n // This will always be executed, for catch as well\n .then(() => {\n // Reset state only if `reset` prop is not falsy\n if (this.props.reset) {\n // Reset a previous reset timer, else this may cause unexpected behavior\n clearTimeout(this.resetTimer)\n\n if (this._isMounted) {\n // Promise has either been resolved or reject, reset state after x seconds\n this.resetTimer = setTimeout(() => this.setState({ state: null }), this.props.reset)\n }\n }\n })\n }\n\n /**\n * Renders one of the states of the button; loading, success, or error.\n */\n renderButtonState = (state) => {\n return \n }\n\n /**\n * Render the button itself.\n */\n renderButton = () => {\n const {\n id,\n children,\n color,\n size,\n borderRadius,\n disabled,\n block,\n outline,\n noBorder,\n href,\n target,\n iconFloat,\n textAlign,\n inlineBlock,\n 'data-tid': tid,\n round,\n uppercase,\n noBlankIcon,\n modifiers,\n withBranding,\n ...otherProps\n } = this.props\n const onClick = disabled ? undefined : this.props.onClick\n const ButtonComponent = href ? BButton.Link : BButton.Button\n const componentProps = {}\n const noLabel = !children\n\n if (href) {\n componentProps.href = href\n\n if (href !== '#') {\n componentProps.onClick = RoutingUtils.navigateLink\n }\n }\n\n const nestedModifiers = typeof modifiers === 'object' ? modifiers : { self: modifiers }\n\n return (\n \n \n {this.icon && (!iconFloat || iconFloat === 'left') &&\n }\n {children && {children}}\n {target === '_blank' && !noBlankIcon && }\n {this.icon && (iconFloat === 'right') && }\n \n \n )\n }\n\n render () {\n if (this.state.state) {\n return this.renderButtonState(this.state.state)\n } else {\n return this.renderButton()\n }\n }\n}\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport { withTheme } from 'styled-components'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { far } from '@fortawesome/pro-regular-svg-icons'\n\n// Components\nimport BIcon from 'ui/blocks/Icon'\n\n// Shared\n\nlibrary.add(far)\n\n/**\n * Block: Icon.\n *\n * @example\n * \n */\n\nexport class Icon extends Component {\n static displayName = 'Icon'\n\n static propTypes = {\n style: PropTypes.string,\n icon: PropTypes.any,\n className: PropTypes.string,\n theme: PropTypes.object,\n spin: PropTypes.bool,\n fw: PropTypes.bool,\n color: PropTypes.string,\n modifiers: PropTypes.string,\n svg: PropTypes.bool,\n rounded: PropTypes.bool,\n backgroundColor: PropTypes.string\n }\n\n static defaultProps = {\n fw: true,\n svg: false,\n rounded: false\n }\n\n render () {\n const { icon, spin, style, fw, className, svg, ...otherProps } = this.props\n if (!icon) return null\n\n if (svg) {\n return \n }\n\n const faStyle = style || this.props.theme.font.fontAwesomeStyle || 'far'\n const classNames = [faStyle, `fa-${icon}`]\n\n if (fw) classNames.push('fa-fw')\n if (className) classNames.push(className)\n\n spin && classNames.push('fa-spin')\n\n return (\n \n )\n }\n}\n\nexport default withTheme(Icon)\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport _isString from 'lodash/isString'\n\n// Components\nimport BLink from 'ui/blocks/Link'\nimport Icon from 'ui/components/Icon'\nimport Span from 'ui/elements/Span'\n\n// Shared\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\n\n/**\n * Link component\n *\n * @example\n * \n */\nexport default class Link extends Component {\n static displayName = 'Link'\n\n static propTypes = {\n href: PropTypes.string,\n target: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n PropTypes.object\n ]),\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n iconAppend: PropTypes.bool,\n size: PropTypes.string,\n color: PropTypes.oneOf([\n 'white',\n 'primary',\n 'dark',\n 'danger'\n ]),\n iconColor: PropTypes.string,\n noBlankIcon: PropTypes.bool,\n padding: PropTypes.any,\n innerRef: PropTypes.any\n }\n\n static defaultProps = {\n color: 'primary',\n children: []\n }\n\n get icon () {\n const data = this.props.icon\n\n if (!data) return null\n\n if (_isString(data)) {\n return { icon: data }\n } else {\n return data\n }\n }\n\n render () {\n const {\n children,\n size,\n href,\n target,\n color,\n iconAppend,\n padding,\n iconColor,\n noBlankIcon,\n innerRef,\n ...otherProps\n } = this.props\n\n if (href && href.startsWith('/')) {\n // Link is an internal link\n otherProps.onClick = otherProps.onClick || RoutingUtils.navigateLink\n }\n\n if (otherProps.handleClose) {\n delete otherProps.handleClose\n }\n\n const hasChildren = children.length !== 0\n\n return (\n \n {this.icon && !iconAppend && }\n {hasChildren && {children}}\n {target === '_blank' && !noBlankIcon && }\n {this.icon && iconAppend && }\n \n )\n }\n}\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\n\n// Components\nimport BLoader from 'ui/blocks/Loader'\nimport Icon from 'ui/components/Icon'\n\n// Shared\n\n/**\n * Block: Loader.\n *\n * @example\n * \n */\nexport default class Loader extends Component {\n static displayName = 'Loader'\n\n static propTypes = {\n size: PropTypes.string,\n color: PropTypes.string\n }\n\n render () {\n const { size, color } = this.props\n\n return (\n \n \n \n )\n }\n}\n","import styled from 'styled-components'\nimport { injectModifiers } from 'ui/themes/utils'\nimport modifiers from 'ui/themes/modifiers'\n\nconst A = styled.a`\n ${({ theme }) => injectModifiers(modifiers(theme))}\n`\n\nexport default A\n","import styled from 'styled-components'\nimport { injectModifiers } from 'ui/themes/utils'\nimport modifiers from 'ui/themes/modifiers'\n\nconst Button = styled.button`\n ${({ theme }) => injectModifiers(modifiers(theme))}\n`\n\nexport default Button\n","import styled from 'styled-components'\nimport { injectModifiers } from 'ui/themes/utils'\nimport modifiers from 'ui/themes/modifiers'\n\nconst I = styled.i`\n ${({ theme }) => injectModifiers(modifiers(theme))}\n`\n\nexport default I\n","import styled from 'styled-components'\nimport { injectModifiers } from 'ui/themes/utils'\nimport modifiers from 'ui/themes/modifiers'\n\nconst Span = styled.span` \n ${({ theme }) => injectModifiers(modifiers(theme))}\n`\n\nexport default Span\n","\n\n/**\n * Theme for being used in the business-facing app.\n */\n\nimport { colors, palette } from 'ui/themes/colors'\n\n// DO NOT USE THESE COLORS! THEY ARE DEPRECATED AND WILL BE REMOVED IN THE FUTURE\nconst deprecatedColors = {\n primary: colors['Primary/Base'],\n secondary: colors['Text/Secondary'],\n success: colors['Success/Base'],\n info: colors['Accent1/Base'],\n warning: colors['Warning/Base'],\n danger: colors['Danger/Base'],\n\n light: palette.grey[20],\n dark: colors['Text/Primary'],\n\n borderHover: palette.grey[40]\n}\n\nexport const color = {\n black: palette.black,\n white: palette.white,\n transparent: 'transparent',\n\n // Ease of use colors, corresponding to the Base color of the palette.\n // e.g. blue =~ colors['Primary/Base']\n blue: palette.blue[60],\n green: palette.green[50],\n orange: palette.orange[50],\n red: palette.red[60],\n purple: palette.purple[60],\n grey: palette.grey[30],\n\n ...colors,\n ...deprecatedColors\n}\n\nconst orderStatusColors = (status) => {\n const accent = {\n new: 'Accent2',\n overdue: 'Accent6',\n concept: 'Accent2',\n reserved: 'Accent1',\n started: 'Accent5',\n stopped: 'Accent4',\n archived: 'Accent2',\n canceled: 'Accent2',\n mixed: 'Accent2'\n }[status]\n\n if (status === 'mixed') {\n return {\n text: colors[`${accent}/Foreground3`],\n color: colors[`${accent}/Foreground3`],\n background: colors[`${accent}/Controlvariant2`],\n border: colors[`${accent}/Outline`]\n }\n } else {\n return {\n text: colors[`${accent}/Foreground3`],\n color: colors[`${accent}/Foreground1`],\n background: colors[`${accent}/Controlvariant1`],\n border: colors[`${accent}/Controlvariant1`]\n }\n }\n}\n\nconst productStatusColors = (status) => {\n const accent = {\n already_booked: 'Accent6',\n reserved: 'Accent1',\n started: 'Accent5',\n picked_up: 'Accent5',\n specified: 'Accent2',\n stopped: 'Accent4',\n concept: 'Accent3',\n in_stock: 'Accent4',\n available: 'Accent2',\n unavailable: 'Accent6',\n shortage: 'Accent6',\n overdue: 'Accent6',\n expected: 'Accent3',\n expired: 'Accent3',\n archived: 'Accent3'\n }[status]\n\n return {\n color: colors[`${accent}/Foreground3`],\n background: colors[`${accent}/Controlvariant2`],\n border: colors[`${accent}/Outline`]\n }\n}\n\nexport const paymentStatusColors = (status) => {\n const accent = {\n 'confirmed': 'Accent4',\n 'unconfirmed': 'Accent2',\n 'payment_due': 'Accent5',\n 'revised': 'Accent2',\n 'partially_paid': 'Accent1',\n 'paid': 'Accent4',\n 'overpaid': 'Accent6',\n 'process_deposit': 'Accent5',\n 'success': 'Accent4',\n 'failure': 'Accent6',\n 'pending': 'Accent1',\n 'failed': 'Accent6',\n 'canceled': 'Accent5',\n 'sca pending': 'Accent5',\n 'loading': 'Accent2'\n }[status]\n\n return {\n color: colors[`${accent}/Foreground1`],\n background: colors[`${accent}/Controlvariant1`],\n border: colors[`${accent}/Controlvariant1`]\n }\n}\n\nconst confirmedStatusColors = (confirmed) => {\n const accent = confirmed ? 'Accent4' : 'Accent2'\n\n return {\n color: colors[`${accent}/Foreground1`],\n background: colors[`${accent}/Controlvariant1`],\n border: colors[`${accent}/Controlvariant1`]\n }\n}\n\n/**\n * We use a 4px grid system for spacing. This function calculates the pixel value for a given grid unit.\n * 0.5 grid units = 2px\n * 1 grid unit = 4px\n * 2 grid units = 8px\n * 3 grid units = 12px\n * 4 grid units = 16px\n * 5 grid units = 20px\n * 6 grid units = 24px\n * 7 grid units = 28px\n * 8 grid units = 32px\n * 9 grid units = 36px\n * 10 grid units = 40px\n * 11 grid units = 44px\n * 12 grid units = 48px\n * 16 grid units = 64px\n */\nconst grid = (unit) => {\n if (!Number.isInteger(unit) && unit !== 0.5) {\n throw new Error('Grid units must be integers or 0.5')\n }\n return `${unit * 4}px`\n}\n\nconst units = {\n 0.5: grid(0.5),\n 1: grid(1),\n 2: grid(2),\n 3: grid(3),\n 4: grid(4),\n 5: grid(5),\n 6: grid(6),\n 7: grid(7),\n 8: grid(8),\n 9: grid(9),\n 10: grid(10),\n 11: grid(11),\n 12: grid(12),\n 13: grid(13),\n 14: grid(14),\n 15: grid(15),\n 16: grid(16)\n}\n\nconst font = {\n base: 'proxima-nova',\n fallback: 'sans-serif',\n mono: 'Monospace',\n handwriting: 'Caveat',\n fontAwesomeStyle: 'far',\n size: {\n body: '20px',\n xs: '12px',\n sm: '12px',\n md: '14px',\n mdplus: '16px',\n lg: '18px',\n lgplus: '22px',\n xl: '26px',\n xxl: '34px',\n xxxl: '48px',\n largeIcon: '66px'\n },\n weight: {\n light: '300',\n lighter: '400',\n normal: '500',\n semibold: '600',\n bold: '700'\n }\n}\n\nfont.body = `${font.base}, ${font.fallback}`\n\nconst spacingUnits = {\n xxs: grid(0.5),\n xs: grid(1),\n xsplus: grid(2),\n sm: grid(3),\n md: grid(4),\n mdplus: grid(5),\n lg: grid(6),\n lgplus: grid(7),\n xl: grid(8),\n xlplus: grid(11),\n xxl: grid(12),\n xxxl: grid(16)\n}\n\nconst size = {\n borderRadius: {\n xxs: '2px',\n xs: '6px',\n sm: '6px',\n md: '8px',\n mdplus: '12px',\n lg: '18px',\n xl: '26px',\n xxl: '34px'\n },\n borderWidth: {\n xs: '1px',\n sm: '1px',\n md: '1px',\n lg: '1px',\n xl: '1px',\n xxl: '1px'\n },\n controlHeight: {\n xs: '26px',\n sm: '38px',\n md: '42px',\n lg: '48px',\n xl: '66px',\n xxl: '66px'\n },\n margin: {\n ...spacingUnits,\n auto: 'auto'\n },\n padding: spacingUnits,\n shadow: {\n sm: 'rgba(0, 0, 0, 0.2) 0px 1px 2px 0px',\n md: 'rgba(0, 0, 0, 0.1) 0 6px 14px 0',\n lg: 'rgba(0, 0, 0, 0.2) 0px 1px 2px 0px',\n lgplus: 'rgba(0, 0, 0, 0.12) 0px 4px 10px 0px',\n xl: 'rgba(0, 0, 0, 0.12) 0px 8px 20px 0px',\n xxl: 'rgba(0, 0, 0, 0.2) 0px 4px 40px 0px'\n },\n headerHeight: {\n xs: '62px',\n sm: '62px',\n md: '62px',\n lg: '62px'\n },\n navigationWidth: {\n xs: '41px',\n sm: '41px',\n md: '41px',\n lg: '41px'\n },\n navigationWidthExpanded: {\n xs: '201px',\n sm: '201px',\n md: '201px',\n lg: '201px'\n },\n sidebarWidth: {\n xs: '220px',\n sm: '220px',\n md: '220px',\n lg: '220px'\n },\n screenSizes: {\n xs: '0px',\n sm: '768px',\n md: '992px',\n lg: '1200px',\n xl: '1800px'\n }\n}\n\nconst opacity = {\n disabled: 0.6,\n destroying: 0.4\n}\n\nconst zIndex = [\n 1,\n 100,\n 200,\n 300,\n 400\n]\n\nexport default () => {\n return {\n color,\n font,\n size,\n opacity,\n zIndex,\n orderStatusColors,\n productStatusColors,\n paymentStatusColors,\n confirmedStatusColors,\n units\n }\n}\n","\n\nimport { transparentize } from './utils'\n\n/**\n * Figma: https://www.figma.com/file/j4OaSht5DUOkPEcthfjc5x/Style-tokens\n */\n\nexport const palette = {\n blue: {\n 5: '#EDF5FF',\n 10: '#E2EFFF',\n 20: '#DDEBFF',\n 30: '#BBDBFA',\n 40: '#86C2FF',\n 50: '#86C2FF',\n 60: '#136DEB',\n 70: '#2466C3',\n 80: '#1B3D6B',\n 90: '#2C3847'\n },\n green: {\n 5: '#E8FFEB',\n 10: '#D8FFDD',\n 20: '#C7FFCF',\n 30: '#B1FCC1',\n 40: '#96FFAD',\n 50: '#62DA7C',\n 60: '#40A14F',\n 70: '#1F772C',\n 80: '#0E491B',\n 90: '#2D4030'\n },\n orange: {\n 5: '#FFF2DE',\n 10: '#FFEACB',\n 20: '#FFE1B4',\n 30: '#FFDAA1',\n 40: '#FFCF86',\n 50: '#FFB442',\n 60: '#E08700',\n 70: '#A34C00',\n 80: '#593B0D',\n 90: '#423B2F'\n },\n red: {\n 5: '#FFEDEF',\n 10: '#FFE5E8',\n 20: '#FFE0E3',\n 30: '#FFB7B7',\n 40: '#FF8181',\n 50: '#FF4252',\n 60: '#E51C2C',\n 70: '#C1000F',\n 80: '#670C13',\n 90: '#4A3436'\n },\n purple: {\n 5: '#F7F2FF',\n 10: '#F0E7FF',\n 20: '#EADEFF',\n 30: '#DDC8FF',\n 40: '#C6A3FF',\n 50: '#966BDB',\n 60: '#623AA3',\n 70: '#4C248D',\n 80: '#442872',\n 90: '#3B324A'\n },\n grey: {\n 5: '#F4F9FF',\n 10: '#EDF1F5',\n 20: '#E0E4E8',\n 30: '#D6D9DB',\n 40: '#A4A7A8',\n 50: '#6C727A',\n 60: '#4F5661',\n 70: '#333A40',\n 80: '#2D3035',\n 90: '#1F2326'\n },\n black: '#131314',\n white: '#FFFFFF'\n}\n\nexport const colors = {\n /**\n * Theme colors\n */\n 'Primary/Base': palette.blue[60],\n 'Primary/Highlight': palette.blue[70],\n 'Primary/Background1': palette.blue[5],\n 'Primary/Background2': palette.blue[20],\n 'Primary/Foreground1': palette.white,\n 'Primary/Foreground2': palette.blue[60],\n 'Primary/Foreground3': palette.blue[60],\n 'Primary/Outline': palette.blue[60],\n 'Primary/Controlvariant1': palette.blue[60],\n 'Primary/Controlvariant2': palette.blue[5],\n\n 'Secondary/Base': palette.white,\n 'Secondary/Highlight': palette.grey[5],\n 'Secondary/Background1': palette.grey[5],\n 'Secondary/Background2': palette.grey[20],\n 'Secondary/Foreground1': palette.black,\n 'Secondary/Foreground2': palette.black,\n 'Secondary/Foreground3': palette.black,\n 'Secondary/Outline': palette.grey[30],\n 'Secondary/Controlvariant1': palette.grey[30],\n 'Secondary/Controlvariant2': palette.grey[5],\n\n 'Tertiary/Base': palette.white,\n 'Tertiary/Highlight': palette.grey[5],\n 'Tertiary/Background1': palette.white,\n 'Tertiary/Background2': palette.white,\n 'Tertiary/Foreground1': palette.black,\n 'Tertiary/Foreground2': palette.black,\n 'Tertiary/Foreground3': palette.black,\n 'Tertiary/Outline': palette.grey[30],\n 'Tertiary/Controlvariant1': palette.white,\n 'Tertiary/Controlvariant2': palette.white,\n\n 'Success/Base': palette.green[50],\n 'Success/Highlight': palette.green[60],\n 'Success/Background1': palette.green[5],\n 'Success/Background2': palette.green[20],\n 'Success/Foreground1': palette.black,\n 'Success/Foreground2': palette.green[60],\n 'Success/Foreground3': palette.green[70],\n 'Success/Outline': palette.green[70],\n 'Success/Controlvariant1': palette.green[50],\n 'Success/Controlvariant2': palette.green[5],\n\n 'Warning/Base': palette.orange[50],\n 'Warning/Highlight': palette.orange[60],\n 'Warning/Background1': palette.orange[5],\n 'Warning/Background2': palette.orange[20],\n 'Warning/Foreground1': palette.black,\n 'Warning/Foreground2': palette.orange[60],\n 'Warning/Foreground3': palette.orange[70],\n 'Warning/Outline': palette.orange[60],\n 'Warning/Controlvariant1': palette.orange[50],\n 'Warning/Controlvariant2': palette.orange[5],\n\n 'Danger/Base': palette.red[60],\n 'Danger/Highlight': palette.red[70],\n 'Danger/Background1': palette.red[5],\n 'Danger/Background2': palette.red[20],\n 'Danger/Foreground1': palette.white,\n 'Danger/Foreground2': palette.red[60],\n 'Danger/Foreground3': palette.red[70],\n 'Danger/Outline': palette.red[70],\n 'Danger/Controlvariant1': palette.red[60],\n 'Danger/Controlvariant2': palette.red[5],\n\n /**\n * Accent colors\n */\n 'Accent1/Base': palette.blue[60],\n 'Accent1/Highlight': palette.blue[70],\n 'Accent1/Background1': palette.blue[5],\n 'Accent1/Background2': palette.blue[20],\n 'Accent1/Foreground1': palette.white,\n 'Accent1/Foreground2': palette.blue[60],\n 'Accent1/Foreground3': palette.blue[60],\n 'Accent1/Outline': palette.blue[60],\n 'Accent1/Controlvariant1': palette.blue[60],\n 'Accent1/Controlvariant2': palette.blue[5],\n\n 'Accent2/Base': palette.white,\n 'Accent2/Highlight': palette.grey[5],\n 'Accent2/Background1': palette.grey[5],\n 'Accent2/Background2': palette.grey[20],\n 'Accent2/Foreground1': palette.black,\n 'Accent2/Foreground2': palette.black,\n 'Accent2/Foreground3': palette.black,\n 'Accent2/Outline': palette.grey[30],\n 'Accent2/Controlvariant1': palette.grey[30],\n 'Accent2/Controlvariant2': palette.grey[5],\n\n 'Accent3/Base': palette.white,\n 'Accent3/Highlight': palette.grey[5],\n 'Accent3/Background1': palette.white,\n 'Accent3/Background2': palette.white,\n 'Accent3/Foreground1': palette.black,\n 'Accent3/Foreground2': palette.black,\n 'Accent3/Foreground3': palette.black,\n 'Accent3/Outline': palette.grey[30],\n 'Accent3/Controlvariant1': palette.white,\n 'Accent3/Controlvariant2': palette.white,\n\n 'Accent4/Base': palette.green[50],\n 'Accent4/Highlight': palette.green[60],\n 'Accent4/Background1': palette.green[5],\n 'Accent4/Background2': palette.green[20],\n 'Accent4/Foreground1': palette.black,\n 'Accent4/Foreground2': palette.green[60],\n 'Accent4/Foreground3': palette.green[70],\n 'Accent4/Outline': palette.green[70],\n 'Accent4/Controlvariant1': palette.green[50],\n 'Accent4/Controlvariant2': palette.green[5],\n\n 'Accent5/Base': palette.orange[50],\n 'Accent5/Highlight': palette.orange[60],\n 'Accent5/Background1': palette.orange[5],\n 'Accent5/Background2': palette.orange[20],\n 'Accent5/Foreground1': palette.black,\n 'Accent5/Foreground2': palette.orange[60],\n 'Accent5/Foreground3': palette.orange[70],\n 'Accent5/Outline': palette.orange[60],\n 'Accent5/Controlvariant1': palette.orange[50],\n 'Accent5/Controlvariant2': palette.orange[5],\n\n 'Accent6/Base': palette.red[60],\n 'Accent6/Highlight': palette.red[70],\n 'Accent6/Background1': palette.red[5],\n 'Accent6/Background2': palette.red[20],\n 'Accent6/Foreground1': palette.white,\n 'Accent6/Foreground2': palette.red[60],\n 'Accent6/Foreground3': palette.red[70],\n 'Accent6/Outline': palette.red[70],\n 'Accent6/Controlvariant1': palette.red[60],\n 'Accent6/Controlvariant2': palette.red[5],\n\n 'Accent7/Base': palette.purple[60],\n 'Accent7/Highlight': palette.purple[70],\n 'Accent7/Background1': palette.purple[5],\n 'Accent7/Background2': palette.purple[20],\n 'Accent7/Foreground1': palette.white,\n 'Accent7/Foreground2': palette.purple[60],\n 'Accent7/Foreground3': palette.purple[60],\n 'Accent7/Outline': palette.purple[70],\n 'Accent7/Controlvariant1': palette.purple[60],\n 'Accent7/Controlvariant2': palette.purple[5],\n\n /**\n * Background colors\n */\n 'Background/Base': palette.grey[10],\n 'Background/Primary': palette.white,\n 'Background/Secondary': palette.grey[10],\n 'Background/Tertiary': palette.white,\n 'Background/Quarternary': palette.white,\n\n /**\n * Text colors\n */\n 'Text/Primary': palette.black,\n 'Text/Secondary': palette.grey[60],\n 'Text/Tertiary': palette.grey[50],\n 'Text/Link': palette.blue[60],\n 'Text/Inverted': palette.white,\n\n /**\n * Misc colors\n */\n 'Misc/Divider': palette.grey[30],\n 'Misc/Overlay': transparentize(palette.grey[60], 0.8)\n}\n\nexport default colors\n","import { color, size, fontSize, fontWeight, unit } from 'ui/themes/utils'\n\nconst modifiersCache = new WeakMap()\n\n// This call is expensive, so we cache the result\n// in modifiersCache, to avoid calling it on\n// every rerender.\nconst getModifiers = (theme) => {\n const horizontalPositions = ['right', 'left']\n const verticalPositions = ['top', 'bottom']\n const positions = horizontalPositions.concat(verticalPositions)\n const borderPositions = ['top-left', 'top-right', 'bottom-left', 'bottom-right']\n const spacings = ['padding', 'margin']\n const dimensions = ['width', 'height']\n const screenSizes = theme.size.screenSizes\n const displayProperties = [\n 'none',\n 'inherit',\n 'block',\n 'contents',\n 'flex',\n 'inline-flex',\n 'grid',\n 'inline',\n 'inline-block',\n 'revert',\n 'table',\n 'unset'\n ]\n\n const modifiers = new Map([\n ['text-shadow', () => `\n text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.25);\n `],\n ['text-line-through', () => `\n text-decoration: line-through;\n `],\n ['text-decoration-none', () => `\n text-decoration: none;\n `],\n ['text-center', () => `\n text-align: center;\n `],\n ['text-right', () => `\n text-align: right;\n `],\n ['text-left', () => `\n text-align: left;\n `],\n ['text-lowercase', () => `\n text-transform: lowercase;\n `],\n ['text-uppercase', () => `\n text-transform: uppercase;\n `],\n ['position-relative', () => `\n position: relative;\n `],\n ['position-absolute', () => `\n position: absolute !important;\n `],\n ['fixed-background', (props) => `\n background-color: ${props.background};\n `],\n ['no-border', () => `\n border: none !important;\n `],\n ['no-overflow', () => `\n overflow: hidden !important;\n `],\n ['preserve-newlines', () => `\n white-space: pre-wrap;\n `],\n ['break-words', () => `\n word-break: break-all;\n `],\n ['flex-row', () => `\n flex-direction: row;\n `],\n ['flex-column', () => `\n flex-direction: column;\n `],\n ['flex-wrap', () => `\n flex-wrap: wrap;\n `],\n ['flex-nowrap', () => `\n flex-wrap: nowrap;\n `],\n ['flex-grow', () => `\n flex-grow: 1;\n `],\n ['justify-start', () => `\n justify-content: flex-start;\n `],\n ['justify-end', () => `\n justify-content: flex-end;\n `],\n ['justify-center', () => `\n justify-content: center;\n `],\n ['justify-between', () => `\n justify-content: space-between;\n `],\n ['justify-around', () => `\n justify-content: space-around;\n `],\n ['align-start', () => `\n align-items: flex-start;\n `],\n ['align-end', () => `\n align-items: flex-end;\n `],\n ['align-center', () => `\n align-items: center;\n `],\n ['v-align-middle', () => `\n vertical-align: middle;\n `],\n ['rounded-circle', () => `\n border-radius: 50%;\n `],\n ['text-break', () => `\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n `],\n ['text-nowrap', () => `\n white-space: nowrap;\n `],\n ['margin-x-auto', () => `\n margin-left: auto;\n margin-right: auto;\n `],\n ['overflow-hidden', () => `\n overflow: hidden;\n `],\n ['overflow-auto', () => `\n overflow: auto;\n `],\n ['select-none', () => `\n user-select: none;\n `],\n ['grid-2-columns', () => `\n grid-template-columns: 1fr 1fr;\n `],\n ['list-style-none', () => `\n list-style: none;\n `],\n ['container-normal', () => `\n container-type: normal;\n `],\n ['container-inline-size', () => `\n container-type: inline-size;\n `],\n ['container-inline', () => `\n container-type: inline;\n `]\n ])\n\n Object.keys(screenSizes).forEach((screenSize) => {\n // Responsive right text align properties\n // Example text-right-md\n modifiers.set(`text-right-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n text-align: right !important;\n }\n `)\n // Responsive left text align properties\n // Example text-left-lg\n modifiers.set(`text-left-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n text-align: left !important;\n }\n `)\n // Responsive fixed position\n // Example position-fixed-lg\n modifiers.set(`position-fixed-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n position: fixed !important;\n }\n `)\n })\n\n // Limits a text to be a given amount of lines and adds ellipsis if necessary\n // Example: line-clamp-2 limits a text to 2 lines\n Array(3).fill().forEach((_, index) => {\n modifiers.set(`line-clamp-${index + 1}`, () => `\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ${index + 1};\n -webkit-box-orient: vertical;\n `)\n })\n\n // Width/height properties\n dimensions.forEach((dimension) => {\n Array(100).fill().forEach((_, index) => {\n // Example: width-100p / height-100p\n // Supports 1 till 100\n modifiers.set(`${dimension}-${index + 1}p`, () => `\n ${dimension}: ${index + 1}% !important;\n `)\n\n // Example: max-width-100p / max-height-100p\n // Supports 1 till 100\n modifiers.set(`max-${dimension}-${index + 1}p`, () => `\n max-${dimension}: ${index + 1}% !important;\n `)\n\n // Example: max-width-100vh / max-height-100vh\n // Supports 1 till 100\n modifiers.set(`max-${dimension}-${index + 1}v${dimension[0]}`, () => `\n max-${dimension}: ${index + 1}v${dimension[0]} !important;\n `)\n\n // Responsive maximum width/height\n // Example: max-width-75p-md\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`max-${dimension}-${index + 1}p-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n max-${dimension}: ${index + 1}% !important;\n }\n `)\n })\n })\n\n // A minimum width/height of X %\n // Example: min-width-100p\n // Supports 1 till 100\n Array(100).fill().forEach((_, index) => {\n modifiers.set(`min-${dimension}-${index + 1}p`, () => `\n min-${dimension}: ${index + 1}% !important;\n `)\n\n // Responsive minimum width/height\n // Example: min-width-75p-md\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`min-${dimension}-${index + 1}p-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n min-${dimension}: ${index + 1}% !important;\n }\n `)\n })\n })\n\n // Auto width/height\n // Example: width-auto\n modifiers.set(`${dimension}-auto`, () => `\n ${dimension}: auto !important;\n `)\n\n // vh/vw width/height\n // Example: height-100vh, width-100vw\n modifiers.set(`${dimension}-100v${dimension[0]}`, () => `\n ${dimension}: 100v${dimension[0]} !important;\n `)\n })\n\n // Control the width/height of an element, supports 25 till 1500, in steps of 25\n // Example: width-150\n // Example: max-width-650\n // Example: min-height-50\n Array(60).fill().forEach((_, index) => {\n const size = (index + 1) * 25\n\n modifiers.set(`width-${size}`, () => `\n width: ${size}px;\n `)\n modifiers.set(`max-width-${size}`, () => `\n max-width: ${size}px;\n `)\n modifiers.set(`height-${size}`, () => `\n height: ${size}px;\n `)\n modifiers.set(`min-height-${size}`, () => `\n min-height: ${size}px;\n `)\n modifiers.set(`min-width-${size}`, () => `\n min-width: ${size}px;\n `)\n\n // Responsive width properties\n // width-{breakpoint}-{size}\n // Example width-md-250\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`width-${screenSize}-${size}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n width: ${size}px;\n }\n `)\n })\n })\n\n // Font weight, example: font-weight-lighter\n Object.keys(theme.font.weight).forEach((weight) => {\n modifiers.set(`font-weight-${weight}`, (props) => `\n font-weight: ${fontWeight(weight)(props)} !important;\n `)\n })\n\n // Font size, example: font-size-lg\n Object.keys(theme.font.size).forEach((size) => {\n modifiers.set(`font-size-${size}`, (props) => `\n font-size: ${fontSize(size)(props)} !important;\n `)\n })\n\n // Line height, example: line-height-lg\n Object.keys(theme.font.size).forEach((size) => {\n modifiers.set(`line-height-${size}`, (props) => `\n line-height: ${fontSize(size)(props)} !important;\n `)\n })\n\n // Line height, example: line-height-6\n Object.keys(theme.units).forEach((unitSize) => {\n modifiers.set(`line-height-${unitSize}`, (props) => `\n line-height: ${unit(unitSize)(props)} !important;\n `)\n })\n\n // Box shadows, example: box-shadow-lg\n Object.keys(theme.size.shadow).forEach((shadowSize) => {\n modifiers.set(`box-shadow-${shadowSize}`, (props) => `\n box-shadow: ${size('shadow', shadowSize)(props)} !important;\n `)\n })\n\n // Border radius, example: border-radius-lg\n Object.keys(theme.size.borderRadius).forEach((radiusSize) => {\n modifiers.set(`border-radius-${radiusSize}`, (props) => `\n border-radius: ${size('borderRadius', radiusSize)(props)} !important;\n `)\n })\n\n // Specific position border radius, example: border-top-left-radius-lg\n borderPositions.forEach((position) => {\n Object.keys(theme.size.borderRadius).forEach((radiusSize) => {\n modifiers.set(`border-${position}-radius-${radiusSize}`, (props) => `\n border-${position}-radius: ${size('borderRadius', radiusSize)(props)} !important;\n `)\n })\n })\n\n // Disable border radius, example: no-border-radius-bottom-left\n borderPositions.forEach((position) => {\n modifiers.set(`no-border-radius-${position}`, () => `\n border-${position}-radius: 0 !important;\n `)\n })\n\n positions.forEach((position) => {\n // Borders on specific sides, example: border-bottom\n modifiers.set(`border-${position}`, (props) => `\n border-${position}: 1px solid ${color('Misc/Divider')(props)} !important;\n `)\n\n // Disable borders, example: no-border-bottom\n modifiers.set(`no-border-${position}`, () => `\n border-${position}: none !important;\n `)\n })\n\n Object.keys(theme.color).forEach((themeColor) => {\n // Text color, example: text-white\n modifiers.set(`text-${themeColor}`, (props) => `\n color: ${color(themeColor)(props)} !important;\n `)\n\n // Border with color, example: border-Primary/Base\n modifiers.set(`border-${themeColor}`, (props) => `\n border: 1px solid ${color(themeColor)(props)} !important;\n `)\n\n // Border color, example: border-color-Primary/Base\n modifiers.set(`border-color-${themeColor}`, (props) => `\n border-color: ${color(themeColor)(props)} !important;\n `)\n\n // Background color, example: background-color-Primary/Base\n modifiers.set(`background-color-${themeColor}`, (props) => `\n background-color: ${color(themeColor)(props)} !important;\n `)\n })\n\n // Example: gap-xl\n // Defined as:
\n Object.keys(theme.size.padding).forEach((paddingSize) => {\n modifiers.set(`gap-${paddingSize}`, (props) => `\n gap: ${size('padding', paddingSize)(props)} !important;\n `)\n })\n\n // Example: gap-2\n // Defined as:
\n Object.keys(theme.units).forEach((unitSize) => {\n modifiers.set(`gap-${unitSize}`, (props) => `\n gap: ${unit(unitSize)(props)} !important;\n `)\n })\n\n spacings.forEach((spacingName) => {\n // Example (padding): padding: 10px;\n // Defined as:
\n modifiers.set(spacingName, (props) => `\n ${spacingName}: ${size(spacingName)(props)};\n `)\n\n // Example: padding-xl\n // Defined as:
\n Object.keys(theme.size[spacingName]).forEach((paddingSize) => {\n modifiers.set(`${spacingName}-${paddingSize}`, (props) => `\n ${spacingName}: ${size(spacingName, paddingSize)(props)} !important;\n `)\n })\n\n // Example: padding-2\n // Defined as:
\n Object.keys(theme.units).forEach((unitSize) => {\n modifiers.set(`${spacingName}-${unitSize}`, (props) => `\n ${spacingName}: ${unit(unitSize)(props)} !important;\n `)\n })\n\n // Example: padding-x-2\n // Defined as:
\n Object.keys(theme.units).forEach((unitSize) => {\n modifiers.set(`${spacingName}-x-${unitSize}`, (props) => `\n ${spacingName}-left: ${unit(unitSize)(props)} !important;\n ${spacingName}-right: ${unit(unitSize)(props)} !important;\n `)\n })\n\n // Example: padding-y-2\n // Defined as:
\n Object.keys(theme.units).forEach((unitSize) => {\n modifiers.set(`${spacingName}-y-${unitSize}`, (props) => `\n ${spacingName}-top: ${unit(unitSize)(props)} !important;\n ${spacingName}-bottom: ${unit(unitSize)(props)} !important;\n `)\n })\n\n // Example (no-padding): padding: 0;\n modifiers.set(`no-${spacingName}`, () => `\n ${spacingName}: 0 !important;\n `)\n\n if (spacingName === 'margin') {\n // Auto margins\n // Example (margin-top-auto): margin-top: auto;\n positions.forEach((position) => {\n modifiers.set(`${spacingName}-${position}-auto`, () => `\n margin-${position}: auto !important;\n `)\n })\n }\n\n positions.forEach((position) => {\n Object.keys(theme.size[spacingName]).forEach((paddingSize) => {\n // Example (margin-top-sm): margin-top: 10px;\n modifiers.set(`${spacingName}-${position}-${paddingSize}`, (props) => `\n ${spacingName}-${position}: ${size(spacingName, paddingSize)(props)} !important;\n `)\n\n // Negative margin\n // Example (margin-top-n-sm): margin-top: -10px;\n modifiers.set(`${spacingName}-${position}-n-${paddingSize}`, (props) => `\n ${spacingName}-${position}: -${size(spacingName, paddingSize)(props)} !important;\n `)\n\n // Responsive margins\n // {property}-{sides}-{breakpoint}-{size}\n // Example (margin-top-md-sm): margin-top: 10px;\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`${spacingName}-${position}-${screenSize}-${paddingSize}`, (props) => `\n @media (min-width: ${screenSizes[screenSize]}) {\n ${spacingName}-${position}: ${size(spacingName, paddingSize)(props)} !important;\n }\n `)\n })\n\n Object.keys(theme.units).forEach((unitSize) => {\n // Example: margin-top-2\n // Defined as:
\n modifiers.set(`${spacingName}-${position}-${unitSize}`, (props) => `\n ${spacingName}-${position}: ${unit(unitSize)(props)} !important;\n `)\n\n // Negative margin\n // Example: margin-top-n-2\n modifiers.set(`${spacingName}-${position}-n-${unitSize}`, (props) => `\n ${spacingName}-${position}: -${unit(unitSize)(props)} !important;\n `)\n })\n })\n\n // Example (no-margin-bottom): margin: 0;\n modifiers.set(`no-${spacingName}-${position}`, () => `\n ${spacingName}-${position}: 0 !important;\n `)\n\n // Responsive disabling margins\n // Example no-margin-top-md\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`no-${spacingName}-${position}-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n ${spacingName}-${position}: 0 !important;\n }\n `)\n })\n })\n })\n\n // Response floats\n horizontalPositions.forEach((position) => {\n modifiers.set(`float-${position}`, () => `\n float: ${position} !important;\n `)\n\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`float-right-${screenSize}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n float: right !important;\n }\n `)\n })\n })\n\n displayProperties.forEach((displayProp) => {\n modifiers.set(`display-${displayProp}`, () => `\n display: ${displayProp} !important;\n `)\n\n // Responsive display properties\n // display-{breakpoint}-{displayProp}\n // Example display-md-block\n Object.keys(screenSizes).forEach((screenSize) => {\n modifiers.set(`display-${screenSize}-${displayProp}`, () => `\n @media (min-width: ${screenSizes[screenSize]}) {\n display: ${displayProp} !important;\n }\n `)\n })\n })\n\n return modifiers\n}\n\nexport default (modifiers) => {\n if (modifiersCache.has(modifiers)) {\n return modifiersCache.get(modifiers)\n }\n\n const computedModifiers = getModifiers(modifiers)\n\n modifiersCache.set(modifiers, computedModifiers)\n\n return computedModifiers\n}\n","import hexToRgb from 'hex-to-rgb'\nimport insertCss from 'insert-css'\n\n/**\n * Fetches color from theme.\n *\n * @param {String} color\n * @param {Float} alpha (optional)\n * @return {String} color\n */\nexport const color = (color, alpha) => (props) => {\n const hexColor = props.theme.color[color] || color\n\n if (alpha !== undefined && alpha >= 0 && alpha < 1) {\n return transparentize(hexColor, alpha)\n }\n\n return hexColor\n}\n\n/**\n * Fetches opacity from theme.\n *\n * @param {String} property\n * @return {String} opacity\n */\nexport const opacity = (property) => (props) => props.theme.opacity[property]\n\n/**\n * Fetches size from theme, supports size from props or given size.\n *\n * @param {String} property\n * @param {String} size (optional)\n * @example\n * size('padding')\n * size('padding', 'sm')\n * @return {String} size\n */\nexport const size = (property, size) => (props) => props.theme.size[property][size || props.size || 'md']\n\n/**\n * Fetches font size from theme, supports size from props or given size.\n *\n * @param {String} size (optional)\n * @example\n * fontSize()\n * fontSize('sm')\n * @return {String} font color\n */\nexport const fontSize = (size) => (props) => props.theme.font.size[size || props.size || 'md']\n\n/**\n * Fetches font weight from theme by given style\n *\n * @param {String} style\n * @example\n * fontWeight()\n * fontWeight('bold')\n * @return {String} font weight\n */\nexport const fontWeight = (style) => (props) => props.theme.font.weight[style]\n\n/**\n * Returns wether a color is dark or not.\n *\n * @param {String} color\n * @param {Number} opacity\n * @return {Boolean} true or false\n * https://www.w3.org/TR/WCAG21/#contrast-minimum\n * https://www.w3.org/TR/WCAG21/#dfn-relative-luminance\n * https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio\n */\nexport const isDark = (color = '#FFFFFF') => {\n const rgb = hexToRgb(color)\n\n const calc = Math.round((parseInt(rgb[0] * 299) + parseInt(rgb[1] * 587) + parseInt(rgb[2] * 114)) / 1000)\n\n return calc <= 170\n}\n\n/**\n * Returns the contrasting font color for given background color.\n *\n * @param {String} bgColor\n * @return {String} font color\n */\nexport const contrastingFontColor = (bgColor) => {\n return (props) => isDark(bgColor) ? props.theme.color['Text/Inverted'] : props.theme.color['Text/Primary']\n}\n\n/**\n * Injects CSS into the DOM used in the webstore.\n *\n * @param {String} bgColor\n * @return {String} font color\n */\nexport function insertCSS (color = '#8fcc40') {\n let fontColor\n\n if (isDark(color)) {\n fontColor = '#FFFFFF'\n } else {\n fontColor = '#424242'\n }\n\n // Generic branded colors\n // TODO: Is this still a thing?\n insertCss(`\n .bq-branded, .bq-branded:before, .bq-branded:after {\n background: ${color} !important;\n color: ${fontColor} !important;\n }\n `)\n insertCss(`.bq-branded-font { color: ${color} !important; }`)\n insertCss(`.bq-branded-font-color { color: ${fontColor} !important; }`)\n insertCss(`.bq-branded-border { border-color: ${fontColor} !important; }`)\n insertCss(`.bq-branded-focus:focus { border-color: ${color} !important; }`)\n insertCss(`.bq-branded-border-color { border-color: ${color} !important; }`)\n}\n\n/**\n * Make a color transparent by returning an hex color with alpha value.\n *\n * @param {String} color\n * @param {Float} alpha\n * @return {String} hex color with alpha value\n */\nexport const transparentize = (color, alpha) => {\n const decimal = `0${Math.round(255 * alpha).toString(16)}`.slice(-2).toUpperCase()\n\n return color + decimal\n}\n\n/**\n * Disables that the text can be selected.\n */\nexport function disableTextSelect () {\n return `\n -webkit-touch-callout: none;\n user-select: none;\n `\n}\n\n/**\n * Truncates the text if it would overflow.\n * @param {string} width Width the text should be truncated at\n */\nexport function truncate (width) {\n const widthRule = width ?\n `width: ${width};` :\n ''\n\n return `\n ${widthRule}\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `\n}\n\n/**\n * Checks if given string is a valid hex color\n * @param {string} string to test\n */\nexport const isValidHexColor = (string) => {\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(string)\n}\n\n/**\n * Returns the color related to the order status from the theme.\n * @param {string} status The status of an order.\n * @param {string} type The type of the color.\n */\nexport const orderStatusColor = (status, type) => (props) => {\n const theme = props.theme.orderStatusColors(status)\n\n return type ? theme[type] : theme\n}\n\n/**\n * Returns the color related to the status of a product from the theme.\n * @param {string} status The status of a product.\n */\nexport const productStatusColor = (status, type) => (props) => {\n const theme = props.theme.productStatusColors(status)\n\n return type ? theme[type] : theme\n}\n\n/**\n * Returns the color related to the status of a payment from the theme.\n * @param {string} status The status of a payment.\n * @param {string} type The type of the color.\n */\nexport const paymentStatusColor = (status, type) => (props) => {\n const theme = props.theme.paymentStatusColors(status)\n\n return type ? theme[type] : theme\n}\n\n/* Returns the confirmation status color of a document from the theme.\n *\n * @param {boolean} confirmed The confirmation status of a document.\n * @param {string} type The type of the color.\n */\nexport const confirmedStatusColor = (confirmed, type) => (props) => {\n const theme = props.theme.confirmedStatusColors(confirmed)\n\n return type ? theme[type] : theme\n}\n\n/**\n * Fetches unit from theme, supports unit from props or given unit.\n *\n * @param {String} property\n * @param {String} unit (optional)\n * @example\n * unit()\n * unit('sm')\n * @return {String} unit\n */\nexport const unit = (unit) => (props) => props.theme.units[unit]\n\n/**\n * Injects modifiers to a css string.\n *\n * @param {Object} modifiers\n * @returns {String} CSS for the given modifiers\n */\nexport const injectModifiers = (modifiers) => {\n return (props) => {\n if (!props.modifiers) return\n if (typeof props.modifiers !== 'string') return\n\n return props.modifiers.split(' ').map((modifier) => {\n if (modifiers.has(modifier)) {\n return modifiers.get(modifier)(props)\n }\n\n return ''\n }).join(' ')\n }\n}\n\n/**\n * Mixes two colors by given weight.\n *\n * @param {string} color1 The first color to mix.\n * @param {string} color2 The second color to mix.\n * @param {number} weight The weight to mix the colors by.\n */\nexport const mixColor = (color1, color2, weight) => {\n color1 = color1.replace('#', '')\n color2 = color2.replace('#', '')\n\n const d2h = (d) => d.toString(16)\n const h2d = (h) => parseInt(h, 16)\n\n weight = (typeof (weight) !== 'undefined') ? weight : 50\n\n let color = '#'\n\n for (let i = 0; i <= 5; i += 2) {\n const v1 = h2d(color1.substr(i, 2))\n const v2 = h2d(color2.substr(i, 2))\n let val = d2h(Math.round(v2 + (v1 - v2) * (weight / 100.0)))\n while (val.length < 2) { val = `0${val}` }\n color += val\n }\n\n return color\n}\n\n/**\n * Shifts a color by given weight.\n *\n * @param {string} color The color to shift.\n * @param {number} weight The weight to shift the color by.\n */\nexport const shiftColor = (color, weight) => {\n return (props) => {\n const hex = props.theme.color[color] || color\n\n return weight > 0 ? mixColor('#000000', hex, weight) : mixColor('#FFFFFF', hex, -weight)\n }\n}\n\nexport default {\n color,\n opacity,\n size,\n fontSize,\n fontWeight,\n contrastingFontColor,\n isDark,\n insertCSS,\n transparentize,\n disableTextSelect,\n truncate,\n orderStatusColor,\n productStatusColor,\n paymentStatusColor,\n unit,\n injectModifiers\n}\n"],"names":["createPromisePropType","isRequired","props","propName","componentName","value","error","Error","then","promisePropType","shouldForwardProp","target","isPropValid","withTranslation","namespace","WrappedComponent","I18nextWithTranslation","tNamespace","t","i18n","ready","useTranslation","useSuspense","TransComponent","transProps","React","Trans","_extends","Skeleton","key","i18nKey","string","propTypes","PropTypes","createElement","tOrLoadingBar","options","tOrEmptyString","tReady","mainColor","color","indexOf","theme","fontColor","contrastingFontColor","Label","styled","Span","withConfig","displayName","Button","ButtonElement","Link","A","I","css","size","StatefulIcon","ButtonContainer","block","inlineBlock","fontWeight","fontSize","borderRadius","uppercase","disabled","unclickable","textAlign","outline","noBorder","iconFloat","noLabel","isSubmit","round","withBranding","Hidden","hover","rounded","backgroundColor","iconOnly","iconColor","underline","noDecoration","noBlankIcon","iconAppend","shine","keyframes","split","length","width","height","noCenter","fullHeight","fullWidth","noPadding","StatefulButton","Component","static","state","children","icon","modifiers","render","otherProps","this","statefulIcon","nestedModifiers","self","Loader","Icon","BButton","onClick","buttonComponent","type","reset","constructor","super","componentDidUpdate","prevProps","_isMounted","promise","handlePromise","loading","setState","componentWillUnmount","resetTimer","clearTimeout","data","_isString","catch","setTimeout","renderButtonState","renderButton","id","href","tid","undefined","ButtonComponent","componentProps","RoutingUtils","navigateLink","library","add","far","style","className","spin","fw","svg","FontAwesomeIcon","classNames","font","fontAwesomeStyle","push","BIcon","join","withTheme","padding","innerRef","startsWith","handleClose","hasChildren","BLink","ref","BLoader","a","injectModifiers","button","i","span","deprecatedColors","primary","colors","secondary","success","info","warning","danger","light","palette","grey","dark","borderHover","black","white","transparent","blue","green","orange","red","purple","orderStatusColors","status","accent","new","overdue","concept","reserved","started","stopped","archived","canceled","mixed","text","background","border","productStatusColors","already_booked","picked_up","specified","in_stock","available","unavailable","shortage","expected","expired","paymentStatusColors","confirmedStatusColors","confirmed","grid","unit","Number","isInteger","units","base","fallback","mono","handwriting","body","xs","sm","md","mdplus","lg","lgplus","xl","xxl","xxxl","largeIcon","weight","lighter","normal","semibold","bold","spacingUnits","xxs","xsplus","xlplus","borderWidth","controlHeight","margin","auto","shadow","headerHeight","navigationWidth","navigationWidthExpanded","sidebarWidth","screenSizes","opacity","destroying","zIndex","transparentize","modifiersCache","WeakMap","has","get","computedModifiers","horizontalPositions","positions","concat","borderPositions","Map","Object","keys","forEach","screenSize","set","Array","fill","_","index","dimension","unitSize","shadowSize","radiusSize","position","themeColor","paddingSize","spacingName","displayProp","getModifiers","alpha","hexColor","property","isDark","rgb","hexToRgb","Math","parseInt","bgColor","toString","slice","toUpperCase","disableTextSelect","truncate","isValidHexColor","test","orderStatusColor","productStatusColor","paymentStatusColor","confirmedStatusColor","map","modifier","mixColor","color1","color2","replace","h2d","h","v1","substr","v2","val","shiftColor","hex","insertCSS","insertCss"],"sourceRoot":""}