'use client';

import type { CSSProperties } from 'react';
import { cn } from '@/lib/utils/cn';
import { resolveFaIconClass } from '@/lib/icons/faSolidSuffixToLucide';
import { ICON_SIZE_MD } from './iconTokens';

type FaClassIconProps = {
    /** Classe Font Awesome legada, ex.: `fas fa-search` ou `far fa-circle`. */
    icon: string;
    className?: string;
    size?: number;
    spin?: boolean;
    style?: CSSProperties;
};

/**
 * Resolve classes Font Awesome (`fas`/`far`/`fab`) para Lucide.
 * Usar em migração gradual; preferir import direto de `lucide-react` em código novo.
 */
export function FaClassIcon({ icon, className, size = ICON_SIZE_MD, spin, style }: FaClassIconProps) {
    const Lucide = resolveFaIconClass(icon);
    return (
        <Lucide
            size={size}
            style={style}
            className={cn(spin && 'animate-spin', className)}
            aria-hidden
        />
    );
}
