UNPKG

@wordpress/components

Version:
63 lines (59 loc) 1.32 kB
/** * External dependencies */ import clsx from 'clsx'; /** * WordPress dependencies */ import { info, caution, error, published } from '@wordpress/icons'; /** * Internal dependencies */ import Icon from '../icon'; /** * Returns an icon based on the badge context. * * @return The corresponding icon for the provided context. */ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function contextBasedIcon(intent = 'default') { switch (intent) { case 'info': return info; case 'success': return published; case 'warning': return caution; case 'error': return error; default: return null; } } function Badge({ className, intent = 'default', children, ...props }) { const icon = contextBasedIcon(intent); const hasIcon = !!icon; return /*#__PURE__*/_jsxs("span", { className: clsx('components-badge', className, { [`is-${intent}`]: intent, 'has-icon': hasIcon }), ...props, children: [hasIcon && /*#__PURE__*/_jsx(Icon, { icon: icon, size: 16, fill: "currentColor", className: "components-badge__icon" }), /*#__PURE__*/_jsx("span", { className: "components-badge__content", children: children })] }); } export default Badge; //# sourceMappingURL=index.js.map