@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
JavaScript
;
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;