export type RadioButtonSize = 'xs'; export type RadioButtonColor = 'blue' | 'green' | 'red' | 'yellow' | 'neutral'; export type RadioButtonState = 'unchecked' | 'checked' | 'uncheckedHover' | 'checkedHover' | 'uncheckedActive' | 'checkedActive' | 'disabledUnchecked' | 'disabledChecked'; export interface RadioButtonBaseProps { /** Texto del label del radio button */ label?: string; /** Tamaño del radio button */ size?: RadioButtonSize; /** Color del radio button */ color?: RadioButtonColor; /** Si el radio button está deshabilitado */ disabled?: boolean; /** Clases CSS adicionales para el contenedor */ className?: string; /** Clases CSS adicionales para el label */ labelClassName?: string; /** ID único del radio button */ id?: string; /** Si el radio button está seleccionado */ checked?: boolean; /** Callback cuando cambia el estado */ onChange?: (event: React.ChangeEvent) => void; /** Nombre del grupo de radio buttons */ name?: string; } export interface RadioButtonProps extends Omit, 'size' | 'color'>, RadioButtonBaseProps { } export interface RadioButtonGroupProps { /** Array de opciones para el grupo de radio buttons */ options: RadioButtonOption[]; /** Valor seleccionado actualmente */ value?: string; /** Callback cuando cambia la selección */ onChange?: (value: string) => void; /** Tamaño de todos los radio buttons */ size?: RadioButtonSize; /** Color de todos los radio buttons */ color?: RadioButtonColor; /** Si todos los radio buttons están deshabilitados */ disabled?: boolean; /** Orientación del grupo */ orientation?: 'horizontal' | 'vertical'; /** Clases CSS adicionales */ className?: string; /** Nombre del grupo */ name?: string; } export interface RadioButtonOption { /** Valor único de la opción */ value: string; /** Texto a mostrar */ label: string; /** Si esta opción está deshabilitada */ disabled?: boolean; } export interface UseRadioButtonReturn { /** Estado actual del radio button */ state: RadioButtonState; /** ID único generado */ radioId: string; /** Si está en estado activo (presionado) */ isActive: boolean; /** Si está en estado hover */ isHovered: boolean; /** Handlers para eventos del mouse */ handlers: { handleMouseDown: () => void; handleMouseUp: () => void; handleMouseEnter: () => void; handleMouseLeave: () => void; handleClick: (e: React.MouseEvent) => void; }; } export interface UseRadioButtonGroupReturn { /** Valor seleccionado actualmente */ selectedValue: string | undefined; /** Handler para cambiar la selección */ handleChange: (value: string) => void; } //# sourceMappingURL=radiobutton.d.ts.map