(
(
{
variant = 'primary',
size = 'md',
icon,
iconPosition = 'left',
rounded = true,
className = '',
children,
...props
},
ref
) => {
return (
{/* Icon - Left position */}
{icon && iconPosition === 'left' && (
{icon}
)}
{/* Badge content */}
{children && {children}}
{/* Icon - Right position */}
{icon && iconPosition === 'right' && (
{icon}
)}
);
}
);
Badge.displayName = 'Badge';
// Badge Group Component for multiple badges
interface BadgeGroupProps extends HTMLAttributes {
children?: ReactNode;
gap?: 'xs' | 'sm' | 'md' | 'lg';
}
export const BadgeGroup = forwardRef(
({ gap = 'sm', className = '', children, ...props }, ref) => {
const gapClasses = {
xs: 'gap-1',
sm: 'gap-2',
md: 'gap-3',
lg: 'gap-4',
};
return (
{children}
);
}
);
BadgeGroup.displayName = 'BadgeGroup';
// Export types for external use
export type { BadgeProps, BadgeVariant, BadgeSize, BadgeGroupProps };