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