@braineet/ui
Version:
Braineet design system
81 lines (80 loc) • 3.05 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _styledComponents = require("styled-components");
var _utils = require("../../utils");
var _badge = _interopRequireDefault(require("../badge"));
var _heading = _interopRequireDefault(require("../heading"));
var _icon = _interopRequireDefault(require("../icon"));
var _pane = _interopRequireDefault(require("../pane"));
var _styles = require("./styles");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
The `Alert` component.
*/
var Alert = function Alert(_ref) {
var color = _ref.color,
theme = _ref.theme,
icon = _ref.icon,
isClosable = _ref.isClosable,
onClose = _ref.onClose,
label = _ref.label,
children = _ref.children,
textStyles = _ref.textStyles;
// Get text color and background color of badge
var _theme$helpers$getFil = theme.helpers.getFills({
appearance: 'subtle',
color: color
}),
textColor = _theme$helpers$getFil.color,
backgroundColor = _theme$helpers$getFil.backgroundColor;
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Wrapper, {
bg: backgroundColor,
paddingY: theme.utils.fluid(8),
paddingLeft: (0, _utils.fluid)(12),
paddingRight: (0, _utils.fluid)(12),
borderRadius: theme.borderRadius.md,
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_pane.default, {
display: "flex",
alignY: "center",
children: [icon && (typeof icon === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledIcon, {
color: textColor,
name: icon,
mr: theme.spaces.sm
}) : icon), label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_badge.default, {
color: textColor,
isSolid: true,
marginRight: "0.25rem",
children: label
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_heading.default, _extends({
color: textColor,
size: "sm",
lineHeight: (0, _utils.fluid)(20),
wordBreak: "break-word",
marginRight: (0, _utils.fluid)(36),
display: "inline-block"
}, textStyles, {
children: children
}))]
}), typeof isClosable === 'boolean' && isClosable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.IconClose, {
color: color,
onClick: onClose,
backgroundColor: textColor,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.default, {
color: textColor,
name: "cross"
})
})]
});
};
Alert.defaultProps = {
icon: null,
theme: {},
isClosable: false,
onClose: function onClose() {},
color: 'success',
textStyles: {}
};
var _default = exports.default = (0, _styledComponents.withTheme)(Alert);