import { cva, VariantProps } from "class-variance-authority"; import React, { ComponentType } from "react"; import { cn } from "@sparkle/lib/utils"; export interface IconProps { visual?: ComponentType<{ className?: string }>; size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl"; className?: string; } const IconSizes = { xs: "s-h-4 s-w-4", sm: "s-h-5 s-w-5", md: "s-h-6 s-w-6", lg: "s-h-8 s-w-8", xl: "s-h-12 s-w-12", "2xl": "s-h-20 s-w-20", }; export function Icon({ visual: IconComponent, size = "sm", className = "", }: IconProps) { return IconComponent ? ( ) : null; } const sizeVariants = cva("s-relative", { variants: { size: { sm: "s-h-5 s-w-5", md: "s-h-6 s-w-6", lg: "s-h-8 s-w-8 s-p-0.5", xl: "s-h-10 s-w-10", }, }, defaultVariants: { size: "lg", }, }); const iconSizeVariants = cva("s-absolute", { variants: { size: { sm: "s-bottom-0 s-right-0", md: "s-bottom-0 s-right-0", lg: "s-bottom-0 s-right-0", xl: "s-bottom-0 s-right-0", }, }, defaultVariants: { size: "lg", }, }); export interface DoubleIconProps extends VariantProps { mainIcon: React.ComponentType; secondaryIcon: React.ComponentType; size?: "sm" | "md" | "lg" | "xl"; className?: string; } export const DoubleIcon = ({ mainIcon, secondaryIcon, className, size = "lg", }: DoubleIconProps) => { return (
); };