Files
8f4591f7-3bdb-444d-bf6d-def…/src/components/ui/IconBadge.tsx
2026-06-14 11:12:29 +00:00

43 lines
875 B
TypeScript

import type { LucideIcon } from "lucide-react";
import { resolveIcon } from "@/utils/resolve-icon";
import { cls } from "@/lib/utils";
interface IconBadgeProps {
icon: string | LucideIcon;
size?: "sm" | "base" | "lg";
className?: string;
}
const sizeStyles = {
sm: "size-10",
base: "size-12",
lg: "size-14",
};
const iconSizeStyles = {
sm: "size-3.5",
base: "size-4",
lg: "size-5",
};
const IconBadge = ({ icon, size = "base", className }: IconBadgeProps) => {
const IconComponent = resolveIcon(icon);
return (
<div
className={cls(
"flex items-center justify-center primary-button rounded shadow",
sizeStyles[size],
className
)}
>
<IconComponent
className={cls("text-primary-cta-text", iconSizeStyles[size])}
strokeWidth={1.5}
/>
</div>
);
};
export default IconBadge;