import type { CSSProperties, ReactNode } from 'react' import React from 'react' import { type VariantProps, cva } from 'class-variance-authority' import classNames from '@/utils/classnames' import './index.css' enum BadgeState { Warning = 'warning', Accent = 'accent', Default = '', } const BadgeVariants = cva( 'badge', { variants: { size: { s: 'badge-s', m: 'badge-m', l: 'badge-l', }, }, defaultVariants: { size: 'm', }, }, ) type BadgeProps = { size?: 's' | 'm' | 'l' iconOnly?: boolean uppercase?: boolean state?: BadgeState styleCss?: CSSProperties children?: ReactNode } & React.HTMLAttributes & VariantProps function getBadgeState(state: BadgeState) { switch (state) { case BadgeState.Warning: return 'badge-warning' case BadgeState.Accent: return 'badge-accent' default: return '' } } const Badge: React.FC = ({ className, size, state = BadgeState.Default, iconOnly = false, uppercase = false, styleCss, children, ...props }) => { return (
{children}
) } Badge.displayName = 'Badge' export default Badge export { Badge, BadgeState, BadgeVariants }