import { forwardRef, useId } from 'react'; const Input = forwardRef(function Input( { label, helperText, error, leadingIcon, trailingIcon, trailingAction, id: idProp, type = 'text', className = '', style, ...rest }, ref ) { const reactId = useId(); const id = idProp ?? reactId; const describedBy = []; if (helperText && !error) describedBy.push(`${id}-helper`); if (error) describedBy.push(`${id}-error`); const inputBorder = error ? '1px solid #dc2626' : '1px solid var(--border)'; return (
{label && ( )}
{leadingIcon && ( )} 0 ? describedBy.join(' ') : undefined} className={[ 'glass-input w-full rounded-xl px-4 py-3 transition-all duration-200', 'focus:outline-none focus-visible:ring-2', leadingIcon ? 'pl-10' : '', trailingIcon || trailingAction ? 'pr-10' : '', ] .filter(Boolean) .join(' ')} style={{ border: inputBorder, color: 'var(--text-primary)', '--tw-ring-color': error ? '#dc2626' : 'var(--accent-ember)', ...style, }} {...rest} /> {trailingIcon && ( )} {trailingAction && ( {trailingAction} )}
{error && (

{error}

)} {!error && helperText && (

{helperText}

)}
); }); export default Input;