import React, { forwardRef, useId } from 'react'; import { cn } from '@/utils/utils'; import { NEUMORPHISM } from '@/styles/Neumorphism'; export interface InputProps extends Omit, 'size'> { label?: string; error?: string; size?: keyof typeof NEUMORPHISM.sizeStyles; leftIcon?: React.ReactNode; rightIcon?: React.ReactNode; } export const Input = forwardRef( ({ className, label, error, id, size = 'md', leftIcon, rightIcon, required, disabled, ...props }, ref) => { const autoId = useId(); const inputId = id || autoId; return (
{/* Label */} {label && ( )}
{/* Icône à gauche */} {leftIcon && ( {leftIcon} )} {/* Champ HTML avec les ombres creusées centralisées */} {/* Icône à droite */} {rightIcon && ( {rightIcon} )}
{/* Message d'erreur */} {error && (

{error}

)}
); } ); Input.displayName = "Input";