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.

91 lines (90 loc) 3.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; exports.__esModule = true; exports.getIconColor = exports.default = exports.StyledVerticalBadge = exports.StyledBadgeListItem = exports.StyledBadgeContent = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _Text = _interopRequireWildcard(require("../../Text")); var _consts = require("../consts"); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var _consts2 = require("../../Icon/consts"); var _TooltipPrimitive = require("../../primitives/TooltipPrimitive"); var _rtl = require("../../utils/rtl"); const getBackground = ({ theme, $type }) => { const tokens = { [_consts.TYPE_OPTIONS.NEUTRAL]: theme.orbit.paletteCloudLight, [_consts.TYPE_OPTIONS.INFO]: theme.orbit.paletteBlueLight, [_consts.TYPE_OPTIONS.SUCCESS]: theme.orbit.paletteGreenLight, [_consts.TYPE_OPTIONS.WARNING]: theme.orbit.paletteOrangeLight, [_consts.TYPE_OPTIONS.CRITICAL]: theme.orbit.paletteRedLight }; if (!$type) return null; return tokens[$type]; }; const getIconColor = type => { if (type === _consts.TYPE_OPTIONS.NEUTRAL) return _consts2.ICON_COLORS.SECONDARY; return type; }; exports.getIconColor = getIconColor; const StyledBadgeListItem = _styledComponents.default.li.withConfig({ displayName: "BadgeListItem__StyledBadgeListItem", componentId: "sc-18311xc-0" })(["", ";"], ({ theme }) => (0, _styledComponents.css)(["display:flex;flex-direction:row;width:100%;& + &{margin-top:", ";}"], theme.orbit.spaceXXSmall)); exports.StyledBadgeListItem = StyledBadgeListItem; StyledBadgeListItem.defaultProps = { theme: _defaultTheme.default }; const StyledVerticalBadge = _styledComponents.default.div.withConfig({ displayName: "BadgeListItem__StyledVerticalBadge", componentId: "sc-18311xc-1" })(["", ";"], ({ theme, $type }) => (0, _styledComponents.css)(["background:", ";display:flex;align-items:center;justify-content:center;margin-", ":", ";flex-shrink:0;height:", ";width:", ";border-radius:", ";svg{height:", ";width:", ";}"], getBackground({ theme, $type }), _rtl.right, theme.orbit.spaceXSmall, theme.orbit.heightIconLarge, theme.orbit.widthIconLarge, theme.orbit.borderRadiusCircle, theme.orbit.heightIconSmall, theme.orbit.widthIconSmall)); exports.StyledVerticalBadge = StyledVerticalBadge; StyledVerticalBadge.defaultProps = { theme: _defaultTheme.default }; const StyledBadgeContent = _styledComponents.default.div.withConfig({ displayName: "BadgeListItem__StyledBadgeContent", componentId: "sc-18311xc-2" })(["", ";"], ({ theme }) => (0, _styledComponents.css)(["display:inline-flex;align-items:center;", " ", "{font-weight:", ";}"], _TooltipPrimitive.StyledTooltipChildren, _Text.StyledText, theme.orbit.fontWeightMedium)); exports.StyledBadgeContent = StyledBadgeContent; StyledBadgeContent.defaultProps = { theme: _defaultTheme.default }; const BadgeListItem = ({ icon, strikeThrough, type = _consts.TYPE_OPTIONS.NEUTRAL, size = _consts.SIZE_OPTIONS.SMALL, dataTest, children }) => { return /*#__PURE__*/React.createElement(StyledBadgeListItem, { "data-test": dataTest }, /*#__PURE__*/React.createElement(StyledVerticalBadge, { $type: type, "aria-hidden": true }, /*#__PURE__*/React.isValidElement(icon) && /*#__PURE__*/React.cloneElement(icon, { color: getIconColor(type) })), /*#__PURE__*/React.createElement(StyledBadgeContent, null, /*#__PURE__*/React.createElement(_Text.default, { type: "secondary", size: size, as: "span", strikeThrough: strikeThrough }, children))); }; var _default = BadgeListItem; exports.default = _default;