@wordpress/components
Version:
UI components for WordPress.
68 lines (64 loc) • 1.65 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _clsx = _interopRequireDefault(require("clsx"));
var _icons = require("@wordpress/icons");
var _icon = _interopRequireDefault(require("../icon"));
var _jsxRuntime = require("react/jsx-runtime");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Returns an icon based on the badge context.
*
* @return The corresponding icon for the provided context.
*/function contextBasedIcon(intent = 'default') {
switch (intent) {
case 'info':
return _icons.info;
case 'success':
return _icons.published;
case 'warning':
return _icons.caution;
case 'error':
return _icons.error;
default:
return null;
}
}
function Badge({
className,
intent = 'default',
children,
...props
}) {
const icon = contextBasedIcon(intent);
const hasIcon = !!icon;
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
className: (0, _clsx.default)('components-badge', className, {
[`is-${intent}`]: intent,
'has-icon': hasIcon
}),
...props,
children: [hasIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.default, {
icon: icon,
size: 16,
fill: "currentColor",
className: "components-badge__icon"
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "components-badge__content",
children: children
})]
});
}
var _default = exports.default = Badge;
//# sourceMappingURL=index.js.map