export type FeatureCardAlign = 'left' | 'center' | 'right'; export type FeatureCardSize = 'sm' | 'md' | 'lg'; export interface FeatureCardClassNames { root?: string; icon?: string; body?: string; title?: string; description?: string; } export interface FeatureCardStyles { root?: React.CSSProperties; icon?: React.CSSProperties; body?: React.CSSProperties; title?: React.CSSProperties; description?: React.CSSProperties; } export interface FeatureCardProps extends Omit, 'title'> { /** Icon content: ReactNode or string (URL/path to image) */ icon?: React.ReactNode | string; /** Card title (named `cardTitle` to avoid conflict with HTML title attribute) */ cardTitle?: React.ReactNode; description?: React.ReactNode; titleAs?: keyof JSX.IntrinsicElements; /** Alignment: left (default), center, right */ align?: FeatureCardAlign; /** Size: sm, md (default), lg */ size?: FeatureCardSize; /** Gap: 2, 3, 4 */ iconVariant?: 'default' | 'full' | 'square'; /** Custom classNames for each element */ classNames?: FeatureCardClassNames | ((props: FeatureCardProps) => FeatureCardClassNames); styles?: FeatureCardStyles | ((props: FeatureCardProps) => FeatureCardStyles); }