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.

148 lines (128 loc) 5.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var _Stack = _interopRequireDefault(require("../../Stack")); var _Text = _interopRequireDefault(require("../../Text")); var _Radio = _interopRequireDefault(require("../../Radio")); var _Badge = _interopRequireDefault(require("../../Badge")); var _mediaQuery = _interopRequireDefault(require("../../utils/mediaQuery")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var StyledPricingTableItem = _styledComponents.default.div.withConfig({ displayName: "PricingTableItem__StyledPricingTableItem", componentId: "tsjz71-0" })(["display:flex;flex-grow:1;position:relative;background:", ";box-shadow:0 0 2px 0 rgba(37,42,49,0.16),0 1px 4px 0 rgba(37,42,49,0.12);transition:", ";border-radius:", ";padding:", ";cursor:pointer;&:hover{box-shadow:0 1px 4px 0 rgba(37,42,49,0.16),0 4px 8px 0 rgba(37,42,49,0.12);}", " ", ""], function (_ref) { var theme = _ref.theme; return theme.orbit.paletteWhite; }, function (_ref2) { var theme = _ref2.theme; return theme.orbit.durationNormal; }, function (_ref3) { var theme = _ref3.theme; return theme.orbit.borderRadiusNormal; }, function (_ref4) { var theme = _ref4.theme; return theme.orbit.spaceMedium; }, function (_ref5) { var basis = _ref5.basis; return basis && (0, _styledComponents.css)(["flex-basis:", ";"], basis); }, function (_ref6) { var featureIcon = _ref6.featureIcon; return featureIcon && (0, _styledComponents.css)(["", ""], _mediaQuery.default.tablet((0, _styledComponents.css)(["padding-top:", ";padding-bottom:", ";"], function (_ref7) { var theme = _ref7.theme; return theme.orbit.spaceLarge; }, function (_ref8) { var theme = _ref8.theme; return theme.orbit.spaceLarge; }))); }); StyledPricingTableItem.defaultProps = { theme: _defaultTheme.default }; var StyledBadge = _styledComponents.default.div.withConfig({ displayName: "PricingTableItem__StyledBadge", componentId: "tsjz71-1" })(["position:absolute;top:-", ";left:50%;transform:translate(-50%,3px);"], function (_ref9) { var theme = _ref9.theme; return theme.orbit.spaceMedium; }); StyledBadge.defaultProps = { theme: _defaultTheme.default }; var Item = _styledComponents.default.div.withConfig({ displayName: "PricingTableItem__Item", componentId: "tsjz71-2" })([""]); var PricingTableItem = function PricingTableItem(_ref10) { var name = _ref10.name, price = _ref10.price, priceBadge = _ref10.priceBadge, featureIcon = _ref10.featureIcon, badge = _ref10.badge, action = _ref10.action, _ref10$active = _ref10.active, active = _ref10$active === void 0 ? false : _ref10$active, _ref10$compact = _ref10.compact, compact = _ref10$compact === void 0 ? false : _ref10$compact, children = _ref10.children, onClick = _ref10.onClick, basis = _ref10.basis; var onClickHandler = function onClickHandler() { if (onClick) { onClick(); } }; return _react.default.createElement(StyledPricingTableItem, { onClick: onClickHandler, basis: basis, featureIcon: !!featureIcon }, badge && _react.default.createElement(StyledBadge, null, typeof badge === "string" ? _react.default.createElement(_Badge.default, { type: "infoInverted" }, badge) : badge), _react.default.createElement(_Stack.default, { flex: true, direction: "column", spacing: "condensed", tablet: { spacing: "natural" } }, featureIcon && _react.default.createElement(_Stack.default, { justify: "center", grow: false }, featureIcon), _react.default.createElement(_Stack.default, { justify: "between", direction: "column" }, _react.default.createElement(_Stack.default, { spacing: "tight" }, name && _react.default.createElement(_Text.default, { type: "primary", align: "center", weight: featureIcon ? "normal" : "bold" }, name), price && _react.default.createElement(_Text.default, { size: "large", weight: "bold", type: "primary", align: "center" }, price), priceBadge && _react.default.createElement(_Stack.default, { justify: "center" }, " ", priceBadge, " ")), !compact ? _react.default.createElement(_Stack.default, { justify: "between", direction: "column" }, children && children, action && _react.default.createElement(_Stack.default, { justify: "center", grow: false }, action)) : _react.default.createElement(_Stack.default, { justify: "center", align: "center", grow: false }, _react.default.createElement(Item, null, _react.default.createElement(_Radio.default, { checked: active, onChange: onClickHandler })))))); }; var _default = PricingTableItem; exports.default = _default;