UNPKG

@retailmenot/anchor

Version:

A React UI Library by RetailMeNot

340 lines (306 loc) 12.5 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var __chunk_1 = require('./anchor-chunk-24f232e7.js'); var __chunk_2 = require('./anchor-chunk-9d9a5df6.js'); var StyledReactModal = require('styled-react-modal'); var StyledReactModal__default = _interopDefault(StyledReactModal); var React = require('react'); var classNames = _interopDefault(require('classnames')); var styled = require('@xstyled/styled-components'); var styled__default = _interopDefault(styled); var system = require('@xstyled/system'); require('./addevent.js'); require('./anchor-chunk-31a3b978.js'); require('./arrowback.js'); require('./arrowforward.js'); require('./avataricon.js'); require('./avataroutline.js'); require('./barcode.js'); require('./bulletlist.js'); require('./calendar.js'); require('./camera.js'); require('./cart.js'); require('./cashback.js'); require('./cells.js'); require('./chat.js'); require('./check.js'); require('./checksmall.js'); require('./chevrondown.js'); require('./chevrondownsmall.js'); require('./chevronleft.js'); require('./chevronleftsmall.js'); require('./chevronright.js'); require('./chevronrightsmall.js'); require('./chevronup.js'); require('./chevronupsmall.js'); require('./clock.js'); var close = require('./close.js'); require('./closesmall.js'); require('./commentmore.js'); require('./creditcard.js'); require('./crosshairs.js'); require('./cut.js'); require('./disabled.js'); require('./dislike.js'); require('./download.js'); require('./ellipses.js'); require('./ellipsesvertical.js'); require('./envelope.js'); require('./envelopeopen.js'); require('./error.js'); require('./expand.js'); require('./gear.js'); require('./giftcard.js'); require('./hamburger.js'); require('./heart.js'); require('./heartoutline.js'); require('./home.js'); require('./info.js'); require('./infooutline.js'); require('./laptop.js'); require('./lightning.js'); require('./like.js'); require('./listicon.js'); require('./lock.js'); require('./map.js'); require('./marker.js'); require('./markeroutline.js'); require('./mobile.js'); require('./news.js'); require('./pencil.js'); require('./play.js'); require('./plus.js'); require('./plussmall.js'); require('./print.js'); require('./question.js'); require('./questionoutline.js'); require('./refresh.js'); require('./retailmenotlogo.js'); require('./sadface.js'); require('./search.js'); require('./share.js'); require('./sliders.js'); require('./star.js'); require('./starhalf.js'); require('./staroutline.js'); require('./success.js'); require('./successoutline.js'); require('./tag.js'); require('./upload.js'); require('./tagadd.js'); var __chunk_6 = require('./anchor-chunk-cd6fece5.js'); require('./anchor-chunk-1efd6395.js'); var __chunk_7 = require('./anchor-chunk-eb382a51.js'); require('./anchor-chunk-598e53e1.js'); require('polished'); function _templateObject() { var data = __chunk_1._taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n\n order: 0;\n flex-grow: 1;\n ", "\n"]); _templateObject = function _templateObject() { return data; }; return data; } var StyledContent = styled__default.div(_templateObject(), system.space); var ModalContent = function ModalContent(_ref) { var children = _ref.children, className = _ref.className; return React.createElement(StyledContent, { className: classNames('anchor-modal-content', className) }, children); }; function _templateObject$1() { var data = __chunk_1._taggedTemplateLiteral(["\n box-sizing: border-box;\n min-height: 4rem;\n padding: 1.25rem 4.75rem 1.25rem 2rem;\n width: 100%;\n border-radius: modal modal 0 0;\n margin-bottom: 1rem;\n\n display: flex;\n order: -1;\n\n ", ";\n\n // If the header exists, remove the Content's padding.\n // We're preferring this selector to using Modal :first-child\n // in case there is a close button placed before it, and using a\n // double selector to ensure it takes precedence.\n & ~ ", "", " {\n padding-top: 0;\n }\n\n ", "\n"]); _templateObject$1 = function _templateObject() { return data; }; return data; } var StyledHeader = styled__default('div')(_templateObject$1(), function (_ref) { var _ref$color = _ref.color, color = _ref$color === void 0 ? 'text.light' : _ref$color, _ref$background = _ref.background, background = _ref$background === void 0 ? 'white' : _ref$background; return styled.css({ color: color, backgroundColor: background }); }, StyledContent, StyledContent, system.space); var ModalHeader = function ModalHeader(_a) { var children = _a.children, className = _a.className, title = _a.title, props = __chunk_2.__rest(_a, ["children", "className", "title"]); return React.createElement(StyledHeader, Object.assign({ className: classNames('anchor-modal-header', className) }, props), title && React.createElement(__chunk_6.Typography, { scale: 20, weight: "bold" }, title), children); }; function _templateObject2() { var data = __chunk_1._taggedTemplateLiteral(["\n && {\n padding: ", ";\n }\n "]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject$2() { var data = __chunk_1._taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n border-radius: 0 0 modal modal;\n margin-top: auto;\n ", ";\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n order: 1;\n justify-self: flex-end;\n\n background: ", ";\n\n ", "\n"]); _templateObject$2 = function _templateObject() { return data; }; return data; } var StyledFooter = styled__default('div')(_templateObject$2(), function (_ref) { var padding = _ref.padding; return padding && styled.css(_templateObject2(), padding); }, function (_ref2) { var _ref2$background = _ref2.background, background = _ref2$background === void 0 ? 'transparent' : _ref2$background; return background; }, system.space); var ModalFooter = function ModalFooter(_a) { var children = _a.children, className = _a.className, props = __chunk_2.__rest(_a, ["children", "className"]); return React.createElement(StyledFooter, Object.assign({ className: classNames('anchor-modal-footer', className) }, props), children); }; function _templateObject$3() { var data = __chunk_1._taggedTemplateLiteral(["\n position: absolute;\n height: 3rem;\n width: 3rem;\n margin: 0.5rem;\n top: 0;\n ", "\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n cursor: pointer;\n"]); _templateObject$3 = function _templateObject() { return data; }; return data; } var StyledClose = styled__default('div')(_templateObject$3(), function (_ref) { var align = _ref.align; return align === 'left' ? 'left: 0;' : 'right: 0;'; }); var ModalClose = function ModalClose(_a) { var className = _a.className, _a$align = _a.align, align = _a$align === void 0 ? 'right' : _a$align, props = __chunk_2.__rest(_a, ["className", "align"]); return React.createElement(StyledClose, { className: classNames('anchor-modal-close', className), align: align }, React.createElement(__chunk_7.Button, Object.assign({ prefix: React.createElement(close.Close, null), variant: "minimal", circular: true }, props))); }; function _templateObject2$1() { var data = __chunk_1._taggedTemplateLiteral(["\n box-sizing: border-box;\n overflow-y: auto;\n padding: ", ";\n background-color: ", ";\n"]); _templateObject2$1 = function _templateObject2() { return data; }; return data; } function _templateObject$4() { var data = __chunk_1._taggedTemplateLiteral(["\n position: relative;\n width: ", ";\n height: ", ";\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: space-between;\n\n ", ";\n box-shadow: ", ";\n\n overflow: hidden;\n\n // The Modal Content component only gets its bottom padding if\n // its the last-child of the modal. Furthermore, if the Modal Header\n // comes before it, then the Content loses its top padding\n // (see Modal Header styles). The goal is that we have full padding\n // in isolation, but lose the top or bottom padding if the Header or\n // Footer (respectively) are also used.\n ", " {\n padding: ", ";\n &:last-child {\n padding-bottom: ", ";\n }\n }\n ", " {\n padding-left: ", "rem;\n }\n ", " {\n padding: ", ";\n min-height: ", "rem;\n }\n ", "\n"]); _templateObject$4 = function _templateObject() { return data; }; return data; } var Sizes = { lg: { width: 50, contentPadding: 2.5, footerHeight: 6.5 }, sm: { width: 25, contentPadding: 2, footerHeight: 5.5 } }; var defaultSize = 'lg'; var StyledModal = StyledReactModal__default.styled(_templateObject$4(), function (_ref) { var width = _ref.width, _ref$size = _ref.size, size = _ref$size === void 0 ? defaultSize : _ref$size; return width || "".concat(Sizes[size].width, "rem"); }, function (_ref2) { var _ref2$height = _ref2.height, height = _ref2$height === void 0 ? '42.375rem' : _ref2$height; return height; }, function (_ref3) { var _ref3$background = _ref3.background, background = _ref3$background === void 0 ? 'white' : _ref3$background, color = _ref3.color; return styled.css({ background: system.th.color(background), color: color, borderRadius: 'modal' }); }, function (_ref4) { var _ref4$shadow = _ref4.shadow, shadow = _ref4$shadow === void 0 ? '0 0.375rem 0.5rem 0.25rem rgba(0,0,0,0.13)' : _ref4$shadow; return shadow; }, StyledContent, function (_ref5) { var _ref5$size = _ref5.size, size = _ref5$size === void 0 ? defaultSize : _ref5$size; return "4rem ".concat(Sizes[size].contentPadding, "rem 0 ").concat(Sizes[size].contentPadding, "rem"); }, function (_ref6) { var _ref6$size = _ref6.size, size = _ref6$size === void 0 ? defaultSize : _ref6$size; return "".concat(Sizes[size].contentPadding, "rem"); }, StyledHeader, function (_ref7) { var _ref7$size = _ref7.size, size = _ref7$size === void 0 ? defaultSize : _ref7$size; return Sizes[size].contentPadding; }, StyledFooter, function (_ref8) { var _ref8$size = _ref8.size, size = _ref8$size === void 0 ? defaultSize : _ref8$size; return "0 ".concat(Sizes[size].contentPadding, "rem"); }, function (_ref9) { var _ref9$size = _ref9.size, size = _ref9$size === void 0 ? defaultSize : _ref9$size; return Sizes[size].footerHeight; }, system.space); var Modal = function Modal(_a) { var children = _a.children, className = _a.className, _a$margin = _a.margin, margin = _a$margin === void 0 ? 'auto' : _a$margin, props = __chunk_2.__rest(_a, ["children", "className", "margin"]); return React.createElement(StyledModal, Object.assign({}, Object.assign({ className: classNames('anchor-modal', className), margin: margin }, props)), children); }; Modal.Content = ModalContent; Modal.Header = ModalHeader; Modal.Footer = ModalFooter; Modal.Close = ModalClose; var CustomModalBackground = styled__default(StyledReactModal.BaseModalBackground)(_templateObject2$1(), function (_ref10) { var _ref10$padding = _ref10.padding, padding = _ref10$padding === void 0 ? '2rem 1rem' : _ref10$padding; return padding; }, function (_ref11) { var _ref11$opacity = _ref11.opacity, opacity = _ref11$opacity === void 0 ? 0.6 : _ref11$opacity; return "rgba(0,0,0,".concat(opacity, ")"); }); var BaseModalBackground = CustomModalBackground; var ModalProvider = /*#__PURE__*/function (_StyledReactModal$Mod) { __chunk_1._inherits(ModalProvider, _StyledReactModal$Mod); var _super = __chunk_1._createSuper(ModalProvider); function ModalProvider() { __chunk_1._classCallCheck(this, ModalProvider); return _super.apply(this, arguments); } return ModalProvider; }(StyledReactModal.ModalProvider); ModalProvider.defaultProps = { backgroundComponent: BaseModalBackground }; exports.Modal = Modal; exports.BaseModalBackground = BaseModalBackground; exports.ModalProvider = ModalProvider; //# sourceMappingURL=modal.js.map