import { forwardRef } from 'react'; import { twMerge } from 'tailwind-merge'; import { tv } from 'tailwind-variants'; import type { ComponentPropsWithoutRef } from 'react'; import type { VariantProps } from 'tailwind-variants'; export const ALL_BADGE_COLORS = ['green', 'blue', 'brown', 'purple', 'yellow', 'grey'] as const; export type BadgeColor = (typeof ALL_BADGE_COLORS)[number]; export function isBadgeColor(value: string): value is BadgeColor { return ALL_BADGE_COLORS.includes(value as BadgeColor); } const badge = tv({ base: 'font-sans text-base inline-block', variants: { color: { green: 'bg-success-100 text-success-800', blue: 'bg-blue-100 text-blue-800', brown: 'bg-[#FFE7BD] text-[#421400]', purple: 'bg-[#F7ECFF] text-[#6B32E4]', yellow: 'bg-warning-100 text-warning-700', grey: 'bg-grey-100 text-grey-800', }, roundness: { default: 'rounded-md', xl: 'rounded-2xl', }, size: { default: 'px-3 py-2 font-normal', sm: 'px-3.5 py-1 leading-5 font-normal', }, }, }); type BadgeProps = ComponentPropsWithoutRef<'div'> & VariantProps; export const Badge = forwardRef(function Badge( { className, color = 'grey', roundness = 'default', size = 'default', ...other }, forwardedRef, ) { return
; });