<div>
    
    <div class="fixed top-0 left-0 right-0 w-full bg-white flex items-center justify-between p-4 z-50 border-b border-gray-200">
        <div class="flex items-center">
            <img src="<?php echo e(Storage::url('images_static/tresipunt-square.svg')); ?>" alt="Logo" class="w-10 h-10 mr-3">
            <h1 class="text-2xl font-bold">Editar setup</h1>
        </div>
        <div class="flex items-center gap-3">
            <a href="<?php echo e(route('products.setups.show', [$product, $setup])); ?>"
                class="text-gray-700 hover:text-gray-900 px-4 py-2">
                Cancelar
            </a>
            <button type="submit" form="setup-edit-form"
                    wire:loading.attr="disabled"
                    class="bg-3ip hover:bg-3ip-light text-white px-4 py-2 rounded-lg disabled:opacity-50 disabled:cursor-not-allowed">
                <span wire:loading.remove>Guardar cambios</span>
                <span wire:loading>Guardando...</span>
            </button>
        </div>
    </div>

    
    <div class="w-full px-20 pt-24 pb-8">
        <div class="mx-auto max-w-6xl">
            
            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(session()->has('success')): ?>
                <div class="mb-4 rounded bg-green-100 px-4 py-2 text-green-700">
                    <?php echo e(session('success')); ?>

                </div>
            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

            
            <div class="w-full rounded-lg bg-white border border-gray-200 px-8 py-6 mb-6">
                <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
                    <div>
                        <label class="text-xs text-gray-500 mb-1">Producto</label>
                        <p class="font-semibold text-gray-900"><?php echo e($setup->product->name); ?></p>
                        <p class="text-xs text-gray-600 font-mono"><?php echo e($setup->product->slug); ?></p>
                    </div>
                    <div>
                        <label class="text-xs text-gray-500 mb-1">Versión</label>
                        <p class="font-mono font-semibold text-gray-900"><?php echo e($setup->version); ?></p>
                    </div>
                    <div>
                        <label class="text-xs text-gray-500 mb-1">Estado</label>
                        <p>
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($setup->status === 'active'): ?>
                                <span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-semibold bg-green-100 text-green-800">Activo</span>
                            <?php else: ?>
                                <span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-semibold bg-gray-100 text-gray-800">Deprecado</span>
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </p>
                    </div>
                </div>
            </div>

            <div class="w-full rounded-lg bg-white border border-gray-200 px-8 py-6">
                <form wire:submit="save" id="setup-edit-form" class="space-y-6">
                    
                    <div>
                        <div class="flex items-center justify-between mb-2">
                            <label class="block text-sm font-medium text-gray-700">Contenido YAML *</label>
                            <button type="button"
                                    wire:click="validateYaml"
                                    class="text-sm px-4 py-2 bg-gray-200 rounded-lg hover:bg-gray-300 font-semibold">
                                Validar YAML
                            </button>
                        </div>

                        <div wire:ignore>
                            <textarea id="yaml-editor"
                                      wire:model="yaml"
                                      class="w-full rounded-lg border border-gray-200 font-mono text-sm <?php $__errorArgs = ['yaml'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?> border-red-500 <?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>"
                                      rows="20"></textarea>
                        </div>

                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($yamlValidationError): ?>
                            <p class="text-red-600 text-sm mt-1"><?php echo e($yamlValidationError); ?></p>
                        <?php elseif($yamlValid && !empty($yaml)): ?>
                            <p class="text-green-600 text-sm mt-1">✓ YAML válido</p>
                        <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__errorArgs = ['yaml'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
                            <p class="text-red-600 text-sm mt-1"><?php echo e($message); ?></p>
                        <?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                    </div>

                    
                    <div>
                        <label class="block text-sm font-medium text-gray-700 mb-2">Comentario del cambio</label>
                        <textarea wire:model="changeLog"
                                  rows="3"
                                  placeholder="Describe los cambios realizados en este setup..."
                                  class="w-full rounded-lg border border-gray-200 px-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-orange-300 <?php $__errorArgs = ['changeLog'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?> border-red-500 <?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>"></textarea>
                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__errorArgs = ['changeLog'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
                            <p class="text-red-600 text-sm mt-1"><?php echo e($message); ?></p>
                        <?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        <p class="text-xs text-gray-500 mt-1">Opcional pero recomendado para auditoría</p>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script>
        let yamlEditor = null;
        let updateTimeout = null;

        function initializeEditor() {
            const textarea = document.getElementById('yaml-editor');
            if (!textarea) {
                return;
            }

            // Si ya existe un editor, destruirlo primero
            if (yamlEditor) {
                try {
                    yamlEditor.destroy();
                } catch (e) {
                    console.warn('Error al destruir editor anterior:', e);
                }
                yamlEditor = null;
            }

            // Inicializar nuevo editor
            yamlEditor = CodeMirror.fromTextArea(textarea, {
                theme: 'oneDark',
            });

            // Cargar contenido inicial
            yamlEditor.setValue(<?php echo \Illuminate\Support\Js::from($yaml)->toHtml() ?>);

            // Sincronizar con Livewire (con debounce)
            yamlEditor.on('change', function(cm) {
                if (updateTimeout) {
                    clearTimeout(updateTimeout);
                }
                updateTimeout = setTimeout(function() {
                    window.Livewire.find('<?php echo e($_instance->getId()); ?>').set('yaml', cm.getValue(), false);
                }, 300);
            });
        }

        function destroyEditor() {
            if (yamlEditor) {
                try {
                    yamlEditor.destroy();
                } catch (e) {
                    console.warn('Error al destruir editor:', e);
                }
                yamlEditor = null;
            }
            if (updateTimeout) {
                clearTimeout(updateTimeout);
                updateTimeout = null;
            }
        }

        // Inicializar cuando el DOM esté listo
        document.addEventListener('DOMContentLoaded', function() {
            if (document.getElementById('yaml-editor')) {
                initializeEditor();
            }
        });

        // Escuchar navegación de Livewire (después de redirects con navigate: true)
        document.addEventListener('livewire:navigated', function() {
            setTimeout(function() {
                const textarea = document.getElementById('yaml-editor');
                if (textarea && textarea.offsetParent !== null) {
                    // Siempre destruir el editor anterior si existe
                    if (yamlEditor) {
                        try {
                            yamlEditor.destroy();
                        } catch (e) {
                            console.warn('Error al destruir editor en navegación:', e);
                        }
                        yamlEditor = null;
                    }
                    // Inicializar nuevo editor
                    initializeEditor();
                }
            }, 150);
        });

        // Escuchar cambios de Livewire
        document.addEventListener('livewire:init', function() {
            // Escuchar cuando se actualiza el componente
            Livewire.hook('morph.updated', ({ el, component }) => {
                // Verificar si el textarea existe ahora
                const textarea = document.getElementById('yaml-editor');
                if (textarea && textarea.offsetParent !== null) {
                    // Si no hay editor o el textarea no está siendo usado por el editor, inicializar
                    if (!yamlEditor || !textarea.previousElementSibling || !textarea.previousElementSibling.classList.contains('cm-editor')) {
                        setTimeout(initializeEditor, 150);
                    }
                } else if (!textarea) {
                    // Si el textarea desapareció, destruir el editor
                    destroyEditor();
                }
            });
        });

        // También usar un observer para detectar cuando aparece el textarea
        if (typeof MutationObserver !== 'undefined') {
            const observer = new MutationObserver(function(mutations) {
                const textarea = document.getElementById('yaml-editor');
                if (textarea && !yamlEditor) {
                    // Verificar que el textarea esté visible
                    if (textarea.offsetParent !== null) {
                        setTimeout(initializeEditor, 100);
                    }
                }
            });

            // Observar cambios en el body
            document.addEventListener('DOMContentLoaded', function() {
                if (document.body) {
                    observer.observe(document.body, {
                        childList: true,
                        subtree: true,
                    });
                }
            });
        }
    </script>
</div><?php /**PATH /var/www/html/resources/views/livewire/setups/edit.blade.php ENDPATH**/ ?>