import { type FC } from 'react' | |
import { cn } from '@/lib/utils' | |
import { ICONS } from './constants' | |
import { type IconProps } from './types' | |
const Icon: FC<IconProps> = ({ | |
type, | |
size = 'sm', | |
className, | |
color, | |
disabled = false | |
}) => { | |
const IconElement = ICONS[type] | |
return ( | |
<IconElement | |
className={cn( | |
color && !disabled ? `text-${color}` : 'text-primary', | |
disabled && 'cursor-default text-muted/50', | |
className, | |
size === 'xxs' && 'size-3', | |
size === 'xs' && 'size-4', | |
size === 'sm' && 'size-6', | |
size === 'md' && 'size-[42px]', | |
size === 'lg' && 'size-7', | |
size === 'dot' && 'size-[5.07px]', | |
size === 'default' && ' ' | |
)} | |
/> | |
) | |
} | |
export default Icon | |