/** * Token individual para TextFlow */ export interface IToken { /** Identificador único del token */ id: string; /** Texto a mostrar */ text: string; } /** * Modo de transición para cambios de texto en separadores */ export type SeparatorTransitionMode = 'none' | 'fade' | 'slide'; /** * Tipos de lista para Intl.ListFormat */ export type ListFormatType = 'conjunction' | 'disjunction' | 'unit'; /** * Estilos de lista para Intl.ListFormat */ export type ListFormatStyle = 'long' | 'short' | 'narrow'; /** * Configuración de separadores entre tokens */ export interface ISeparatorConfig { /** Texto del separador. Si se omite, usa Intl.ListFormat */ value?: string; /** Locale para Intl.ListFormat */ locale?: string; /** Tipo de lista para Intl.ListFormat */ listType?: ListFormatType; /** Estilo de lista para Intl.ListFormat */ listStyle?: ListFormatStyle; /** Modo de transición cuando el texto del separador cambia */ transition?: SeparatorTransitionMode; /** Duración de la transición en ms */ duration?: number; /** Clase CSS adicional para separadores */ className?: string; } /** * Configuración del indicador de overflow (+N more) */ export interface IOverflowConfig { /** Prefijo antes del número */ prefix?: string; /** Texto después del número */ label?: string; /** Separador mostrado antes del overflow */ separator?: string; /** Mostrar separador antes del overflow */ showSeparator?: boolean; /** Clase CSS adicional para el overflow */ className?: string; } /** * Configuración de animación de texto */ export interface ITextAnimationConfig { /** Modo de animación del texto */ mode?: 'character' | 'word'; /** Dirección de entrada del texto */ direction?: 'vertical' | 'horizontal'; /** Delay entre caracteres/palabras en ms */ stagger?: number; /** Duración de animación en ms */ duration?: number; /** Habilitar efecto blur durante animación */ blur?: boolean; /** Animar cambios de ancho del contenedor */ widthAnimation?: boolean; } /** * Props for TextFlow component * * TextFlow renders an animated list of tokens with locale-aware separators, * smooth FLIP animations, and overflow handling. */ export interface ITextFlowProps { /** Array de tokens a mostrar */ tokens: IToken[]; /** Texto placeholder cuando no hay tokens */ placeholder?: string; /** Máximo de tokens visibles. El resto se muestra como "+N" */ maxVisible?: number; /** Configuración de separadores */ separator?: ISeparatorConfig; /** Configuración del indicador de overflow */ overflow?: IOverflowConfig; /** Configuración de animación de texto */ animation?: ITextAnimationConfig; /** Modo inline para uso en botones/selects */ inline?: boolean; /** Clase CSS para el contenedor principal */ className?: string; /** Clase CSS para cada token */ tokenClassName?: string; /** Clase CSS para el placeholder */ placeholderClassName?: string; } //# sourceMappingURL=TextFlow.types.d.ts.map