@cranberry-money/shared-utils
Version:
Shared utility functions for Blueberry platform
27 lines • 1.26 kB
JavaScript
const DEFAULT_BADGE_VARIANTS = {
default: 'bg-surface-secondary text-content-body',
primary: 'bg-surface-tertiary text-content-secondary',
secondary: 'bg-surface-secondary text-content-body',
success: 'bg-success-900/80 text-success-300',
warning: 'bg-warning-900/80 text-warning-300',
error: 'bg-error-900/80 text-error-300',
info: 'bg-surface-tertiary text-content-body',
neutral: 'bg-surface-secondary text-content-muted',
};
const DEFAULT_BADGE_SIZES = {
sm: 'text-xs px-1.5 py-0.5',
md: 'text-xs px-2 py-1',
lg: 'text-sm px-3 py-1.5',
};
const BASE_BADGE_STYLES = 'inline-flex items-center rounded-md font-medium whitespace-nowrap transition-colors';
export function createBadge({ variant, size = 'md', className = '' }, variantStyles = DEFAULT_BADGE_VARIANTS, sizeStyles = DEFAULT_BADGE_SIZES) {
const variantClasses = variantStyles[variant] || variantStyles.neutral;
const sizeClasses = sizeStyles[size];
return {
className: `${BASE_BADGE_STYLES} ${variantClasses} ${sizeClasses} ${className}`.trim(),
ariaLabel: `${variant} status`,
};
}
export const BADGE_VARIANTS = DEFAULT_BADGE_VARIANTS;
export const BADGE_SIZES = DEFAULT_BADGE_SIZES;
//# sourceMappingURL=badge.js.map