UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

204 lines (168 loc) 8.45 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.MobileHeader = exports.StyledModalHeader = exports.ModalHeading = void 0; var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _transition = _interopRequireDefault(require("../../utils/transition")); var _Text = _interopRequireDefault(require("../../Text")); var _Heading = require("../../Heading"); var _consts = require("../../Heading/consts"); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var _mediaQuery = _interopRequireDefault(require("../../utils/mediaQuery")); var _ModalSection = require("../ModalSection"); var _rtl = require("../../utils/rtl"); var _ModalContext = require("../ModalContext"); var _useModalContextFunctions = _interopRequireDefault(require("../helpers/useModalContextFunctions")); var getModalHeading = function getModalHeading(type, token) { return function (_ref) { var theme = _ref.theme; return (0, _Heading.getHeadingToken)(token)({ theme: theme, type: type }); }; }; var ModalHeading = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__ModalHeading", componentId: "sc-13vyf6i-0" })(["font-size:", ";font-weight:", ";line-height:", ";color:", ";", ";"], getModalHeading(_consts.TYPE_OPTIONS.TITLE2, _consts.TOKENS.sizeHeading), getModalHeading(_consts.TYPE_OPTIONS.TITLE2, _consts.TOKENS.weightHeading), getModalHeading(_consts.TYPE_OPTIONS.TITLE2, _consts.TOKENS.lineHeight), function (_ref2) { var theme = _ref2.theme; return theme.orbit.colorHeading; }, _mediaQuery.default.largeMobile((0, _styledComponents.css)(["font-size:", ";font-weight:", ";line-height:", ";"], getModalHeading(_consts.TYPE_OPTIONS.TITLE1, _consts.TOKENS.sizeHeading), getModalHeading(_consts.TYPE_OPTIONS.TITLE1, _consts.TOKENS.weightHeading), getModalHeading(_consts.TYPE_OPTIONS.TITLE1, _consts.TOKENS.lineHeight)))); exports.ModalHeading = ModalHeading; ModalHeading.defaultProps = { theme: _defaultTheme.default }; var ModalTitle = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__ModalTitle", componentId: "sc-13vyf6i-1" })(["margin-top:", ";", "{padding-", ":", ";}", ";"], function (_ref3) { var theme = _ref3.theme, illustration = _ref3.illustration; return illustration && theme.orbit.spaceXSmall; }, ModalHeading, _rtl.right, function (_ref4) { var theme = _ref4.theme; return theme.orbit.spaceXLarge; }, _mediaQuery.default.desktop((0, _styledComponents.css)(["", "{padding:0;}"], ModalHeading))); ModalTitle.defaultProps = { theme: _defaultTheme.default }; var ModalDescription = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__ModalDescription", componentId: "sc-13vyf6i-2" })(["margin-top:", ";"], function (_ref5) { var theme = _ref5.theme; return theme.orbit.spaceXSmall; }); ModalDescription.defaultProps = { theme: _defaultTheme.default }; var getModalHeaderPadding = function getModalHeaderPadding() { var desktop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; return function (_ref6) { var theme = _ref6.theme, suppressed = _ref6.suppressed; if (desktop) { if (suppressed) { return theme.orbit.spaceXXLarge; } return "".concat(theme.orbit.spaceXXLarge, " ").concat(theme.orbit.spaceXXLarge, " 0 ").concat(theme.orbit.spaceXXLarge); } if (suppressed) { return "".concat(theme.orbit.spaceXXLarge, " ").concat(theme.orbit.spaceMedium); } return "".concat(theme.orbit.spaceLarge, " ").concat(theme.orbit.spaceMedium, " 0 ").concat(theme.orbit.spaceMedium); }; }; var StyledModalHeader = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__StyledModalHeader", componentId: "sc-13vyf6i-3" })(["width:100%;display:block;padding:", ";border-top-left-radius:", ";border-top-right-radius:", ";box-sizing:border-box;background-color:", ";& ~ ", ":first-of-type{border-top:", ";border-top-left-radius:0;border-top-right-radius:0;margin-top:", ";}", ";"], function (props) { return (0, _rtl.rtlSpacing)(getModalHeaderPadding()(props)); }, function (_ref7) { var isMobileFullPage = _ref7.isMobileFullPage; return !isMobileFullPage && "12px"; }, function (_ref8) { var isMobileFullPage = _ref8.isMobileFullPage; return !isMobileFullPage && "12px"; }, function (_ref9) { var suppressed = _ref9.suppressed, theme = _ref9.theme; return suppressed ? theme.orbit.paletteCloudLight : theme.orbit.paletteWhite; }, _ModalSection.StyledModalSection, function (_ref10) { var suppressed = _ref10.suppressed, theme = _ref10.theme; return suppressed && "1px solid ".concat(theme.orbit.paletteCloudNormal); }, function (_ref11) { var suppressed = _ref11.suppressed; return suppressed && "0!important"; }, _mediaQuery.default.largeMobile((0, _styledComponents.css)(["padding:", ";& ~ ", ":first-of-type{border-top-left-radius:0;border-top-right-radius:0;}"], function (props) { return (0, _rtl.rtlSpacing)(getModalHeaderPadding(true)(props)); }, _ModalSection.StyledModalSection))); exports.StyledModalHeader = StyledModalHeader; StyledModalHeader.defaultProps = { theme: _defaultTheme.default }; var MobileHeader = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__MobileHeader", componentId: "sc-13vyf6i-4" })(["display:inline-block;position:fixed;visibility:hidden;height:52px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:", ";", ":48px;", ":0;font-family:", ";font-weight:", ";font-size:18px;color:", ";line-height:52px;box-sizing:border-box;padding:", ";opacity:0;transition:", ";z-index:800;", ";"], function (_ref12) { var isMobileFullPage = _ref12.isMobileFullPage; return isMobileFullPage ? "0" : "16px"; }, _rtl.right, _rtl.left, function (_ref13) { var theme = _ref13.theme; return theme.orbit.fontFamily; }, function (_ref14) { var theme = _ref14.theme; return theme.orbit.fontWeightHeadingDisplay; }, function (_ref15) { var theme = _ref15.theme; return theme.orbit.colorHeading; }, function (_ref16) { var theme = _ref16.theme; return (0, _rtl.rtlSpacing)("0 0 0 ".concat(theme.orbit.spaceLarge)); }, (0, _transition.default)(["top", "opacity", "visibility"], "fast", "ease-in-out"), _mediaQuery.default.largeMobile((0, _styledComponents.css)(["left:auto;right:auto;padding:0;"]))); exports.MobileHeader = MobileHeader; MobileHeader.defaultProps = { theme: _defaultTheme.default }; var StyledModalHeaderContent = _styledComponents.default.div.withConfig({ displayName: "ModalHeader__StyledModalHeaderContent", componentId: "sc-13vyf6i-5" })(["margin-top:", ";"], function (_ref17) { var description = _ref17.description; return description ? "32px" : "16px"; }); var ModalHeader = function ModalHeader(_ref18) { var illustration = _ref18.illustration, suppressed = _ref18.suppressed, children = _ref18.children, description = _ref18.description, title = _ref18.title, dataTest = _ref18.dataTest; var _useContext = (0, _react.useContext)(_ModalContext.ModalContext), isMobileFullPage = _useContext.isMobileFullPage; (0, _useModalContextFunctions.default)(); var hasHeader = title || description; return /*#__PURE__*/_react.default.createElement(StyledModalHeader, { illustration: !!illustration, suppressed: suppressed, "data-test": dataTest, isMobileFullPage: isMobileFullPage }, illustration, hasHeader && /*#__PURE__*/_react.default.createElement(ModalTitle, { illustration: !!illustration }, title && /*#__PURE__*/_react.default.createElement(ModalHeading, null, title), description && /*#__PURE__*/_react.default.createElement(ModalDescription, null, /*#__PURE__*/_react.default.createElement(_Text.default, { size: "large", as: "div" }, description))), children && /*#__PURE__*/_react.default.createElement(StyledModalHeaderContent, { description: !!description }, children), title && /*#__PURE__*/_react.default.createElement(MobileHeader, { isMobileFullPage: isMobileFullPage }, title)); }; var _default = ModalHeader; exports.default = _default;