@props([
    // El error de sintaxis, si lo hay. Es el único que impide guardar.
    'error' => null,
    // Si la sintaxis está bien.
    'valido' => false,
    // Si hay algo escrito que revisar.
    'hayContenido' => false,
    // Los avisos de la revisión estructural. No impiden guardar.
    'avisos' => [],
    // Si alguno de los avisos es de la cabecera, para ofrecer arreglarla en el sitio donde
    // se lee el aviso — que es donde alguien decide hacerlo.
    'cabeceraDescuadrada' => false,
])

{{--
    El estado del YAML de un setup, con los tres casos separados.

    **Por qué el mensaje de éxito ya no dice «YAML válido».** Decía eso comprobando solo la
    sintaxis, y «válido» se lee como «esto funciona» — que es justo lo que el Manager no
    puede saber: quien sabe si un setup se aplica bien es el plugin. Ahora dice qué se ha
    comprobado, que es lo que se sabe.
--}}

@if ($error)
    <p class="text-red-600 text-sm mt-1">{{ $error }}</p>

@elseif ($valido && $hayContenido)
    @if (empty($avisos))
        <p class="text-green-600 text-sm mt-1">
            ✓ Bien escrito: sintaxis correcta y no vemos nada raro en la estructura.
        </p>
        <p class="text-xs text-gray-500 mt-0.5">
            Que se aplique bien en el Moodle del cliente no lo puede saber el Manager: lo
            decide el plugin al aplicarlo.
        </p>
    @else
        {{-- **Avisos, no errores.** Se guarda igual: un setup puede tener un motivo para
             salirse de lo previsto, y quien lo escribe sabe más que esta comprobación. --}}
        <div class="mt-2 rounded-lg border border-amber-200 bg-amber-50 px-3.5 py-2.5">
            <p class="text-sm font-semibold text-amber-900">
                Sintaxis correcta, pero hay {{ count($avisos) }}
                {{ count($avisos) === 1 ? 'cosa' : 'cosas' }} que conviene revisar
            </p>
            <ul class="mt-1.5 list-disc space-y-1 pl-5 text-xs text-amber-900">
                @foreach ($avisos as $aviso)
                    <li>{!! \Illuminate\Support\Str::inlineMarkdown($aviso) !!}</li>
                @endforeach
            </ul>
            @if ($cabeceraDescuadrada)
                {{-- **El arreglo, donde se lee el aviso.** La cabecera no decide nada —lo que
                     manda es el producto y la versión de la fila— pero deja el fichero
                     documentando otra cosa, y ponerla a mano es lo que se olvida. --}}
                <button type="button" wire:click="rellenarCabecera"
                        class="mt-2 rounded-lg border border-amber-300 bg-white px-3 py-1.5 text-xs font-semibold text-amber-900 hover:bg-amber-100">
                    Poner en la cabecera el producto y la versión de este setup
                </button>
            @endif

            <p class="mt-2 text-xs text-amber-800">
                <strong>Se puede guardar igual.</strong> Esto es una revisión de cómo está
                escrito el fichero, no de si el plugin lo va a aceptar.
            </p>
        </div>
    @endif
@endif
