import { AvatarColor, AvatarTheme, AvatarSize } from '../types'; /** * ============================================ * AVATAR UTILS - ATOMIC DESIGN * ============================================ * Funciones auxiliares para generar clases y procesar datos */ /** * Obtiene las clases de color según el tema * * @param color - Color del avatar * @param theme - Tema de estilo (solid o soft) * @param avatarType - Tipo de avatar (para personalizar letter/icon) * @param disabled - Si está deshabilitado * @returns Clases de Tailwind para el color * * @example * getColorClasses('blue', 'solid') * // => 'ui-bg-blue-600 ui-text-white' */ export declare const getColorClasses: (color: AvatarColor, theme: AvatarTheme, avatarType?: "icon" | "letter", disabled?: boolean) => string; /** * Obtiene las clases de tamaño del avatar * * @param size - Tamaño del avatar * @returns Clases de Tailwind para el tamaño * * @example * getSizeClasses('md') * // => 'ui-w-40 ui-h-40 ui-text-[12px]' */ export declare const getSizeClasses: (size: AvatarSize) => string; /** * Obtiene las clases de borde (stroke) según el tipo de avatar * * @param stroke - Si debe mostrar borde * @param avatarType - Tipo de avatar ('people', 'icon', 'letter') * @param color - Color del avatar (solo para icon/letter) * @param theme - Tema (solo para icon/letter) * @returns Clases de Tailwind para el borde * * @example * // People avatar - borde gris fijo * getStrokeClasses(true, 'people') * // => 'ui-border-2 ui-border-default' * * @example * // Icon/Letter con soft - borde del color del background soft * getStrokeClasses(true, 'icon', 'blue', 'soft') * // => 'ui-border-2 ui-border-surface-all-colors-blue' */ export declare const getStrokeClasses: (stroke: boolean, avatarType?: "people" | "icon" | "letter", color?: AvatarColor, theme?: AvatarTheme, disabled?: boolean) => string; /** * Obtiene las clases de forma (pill) * * @param pill - true = circular, false = redondeado * @param size - Tamaño del avatar (para ajustar radios pequeños) * @returns Clases de Tailwind para la forma * * @example * getShapeClasses(true) * // => 'ui-rounded-control-pill' */ export declare const getShapeClasses: (pill: boolean, size?: AvatarSize) => string; /** * Genera las clases base del contenedor del avatar * * Combina todas las clases necesarias para el avatar: * - Layout (flex, centrado) * - Tamaño * - Borde (si aplica) * - Forma (circular o redondeado) * - Estado disabled * - Clases personalizadas * * @param size - Tamaño del avatar * @param stroke - Si debe mostrar borde * @param pill - Forma del avatar * @param disabled - Si está deshabilitado * @param grayscaleWhenDisabled - Si aplica filtro grayscale cuando está disabled * @param className - Clases CSS adicionales * @param avatarType - Tipo de avatar (para stroke) * @param color - Color del avatar (para stroke) * @param theme - Tema (para stroke) * @returns Clases combinadas para el avatar */ export declare const getBaseClasses: (size: AvatarSize, stroke: boolean, pill: boolean, disabled: boolean, grayscaleWhenDisabled: boolean, className?: string, avatarType?: "people" | "icon" | "letter", color?: AvatarColor, theme?: AvatarTheme) => string; /** * Trunca el texto a un máximo de caracteres * * Útil para avatares tipo 'letter' que muestran iniciales, * números de contador (99+), o indicadores (+1) * * @param text - Texto a truncar * @param maxLength - Longitud máxima (default: 3) * @returns Texto truncado en mayúsculas * * @example * truncateText('hello', 3) // => 'HEL' * truncateText('99+', 3) // => '99+' * truncateText('abc') // => 'ABC' */ export declare const truncateText: (text: string, maxLength?: number) => string; /** * Valida si una URL es válida * * Usado para validar URLs de imágenes en avatares tipo 'people' * * @param url - URL a validar * @returns true si es una URL válida * * @example * isValidUrl('https://example.com/image.jpg') // => true * isValidUrl('not-a-url') // => false */ export declare const isValidUrl: (url: string) => boolean; //# sourceMappingURL=index.d.ts.map