@props([ // Identificador único 'uid' => uniqid(), // Modelos para Livewire 'checkboxModel' => '', 'textModel' => '', // Etiqueta y clases de la etiqueta 'label' => '', 'labelClass' => '', // Clases generales 'align' => 'start', 'size' => '', // Tamaño del input (sm, lg) 'mb0' => false, // Remover margen inferior 'parentClass' => '', // Elementos opcionales antes/después del input 'prefix' => null, 'suffix' => null, // Íconos dentro del input 'icon' => null, // Ícono fijo 'clickableIcon' => null, // Ícono con botón // Configuración del checkbox 'checked' => false, 'disabled' => false, // Configuración del input de texto 'disableOnOffCheckbox' => true, // Deshabilita input hasta que el checkbox esté activo 'focusOnCheck' => true, // Hace foco en el input al activar el checkbox // Texto de ayuda 'helperText' => '', // Atributos adicionales para el input de texto 'attributes' => new \Illuminate\View\ComponentAttributeBag([]), ]) @php // **Generación de Name, ID y Model** $livewireCheckbox = $checkboxModel ? "wire:model=$checkboxModel" : ''; $livewireText = $textModel ? "wire:model=$textModel" : ''; $nameCheckbox = $checkboxModel; $nameText = $attributes->get('name', $textModel); $checkboxId = $attributes->get('id', 'chk_' . $uid); $textInputId = 'txt_' . $uid; // **Placeholder del input de texto** $placeholder = $attributes->get('placeholder', 'Ingrese información'); // **Clases dinámicas** $sizeClass = match ($size) { 'sm' => 'form-control-sm', 'lg' => 'form-control-lg', default => '', }; $fullClass = trim("form-control $sizeClass"); // **Fusionar atributos del input de texto** $inputAttributes = $attributes->merge([ 'id' => $textInputId, 'name' => $nameText, 'placeholder' => $placeholder, ])->class($fullClass); @endphp {{-- ============================ CHECKBOX CON INPUT GROUP ============================ --}}