type BadgeVariant =
  | 'default'
  | 'muted'
  | 'green'
  | 'orange'
  | 'red'
  | 'pulse'

const statusVariantMap: Record<string, BadgeVariant> = {
  active: 'green',
  archived: 'muted',
  deleted: 'red',
  owner: 'orange',
  member: 'muted',
  admin: 'default',
  creator: 'green',
  inactive: 'red',
}

interface BadgeProps {
  label: string
  variant?: BadgeVariant
  status?: string
}

export function Badge({ label, variant, status }: BadgeProps) {
  const resolvedVariant = variant ?? (status ? statusVariantMap[status] ?? 'muted' : 'default')
  const classes = ['badge', resolvedVariant !== 'default' ? resolvedVariant : ''].filter(Boolean).join(' ')

  return <span className={classes}>{label}</span>
}

export function StatusPill({ status, label }: { status: string; label: string }) {
  return <span className={`status-pill ${status}`}>{label}</span>
}
