@props([ 'label' => null, 'id' => null, 'name' => null, 'type' => 'text', 'placeholder' => null, 'hint' => null, 'error' => null, 'required' => false, 'disabled' => false, 'readonly' => false, 'prefix' => null, 'suffix' => null, 'icon' => null, 'iconPosition' => 'left', 'size' => 'md', ]) @php $inputId = $id ?? $name ?? Str::random(8); // LucentUI size classes $sizeClasses = match($size) { 'sm' => 'px-2.5 py-1.5 text-sm', 'md' => 'px-3 py-2 text-sm', 'lg' => 'px-4 py-2.5 text-base', default => 'px-3 py-2 text-sm', }; $iconSizeClasses = match($size) { 'sm' => 'size-4', 'md' => 'size-4', 'lg' => 'size-5', default => 'size-4', }; // LucentUI input classes $inputClasses = "w-full bg-background border border-neutral rounded-lg text-base placeholder:text-base/50 focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-all duration-200 $sizeClasses"; if ($error) { $inputClasses .= ' border-error focus:ring-error/50 focus:border-error'; } if ($disabled) { $inputClasses .= ' opacity-50 cursor-not-allowed'; } @endphp