{% trans_default_domain 'admin' %}

<div id="edit-component-container" {{ attributes.defaults(stimulus_controller('ferienpass/admin-edit', {
    unsavedChangesUrl: path('admin_unsaved_changes_modal'),
    formDirty: formDirty|default(false),
})) }}
        data-action="beforeunload@window->ferienpass--admin-edit#leavingPage turbo:before-visit@window->ferienpass--admin-edit#leavingPage ferienpass-edit:continue@window->ferienpass--admin-edit#continueWithoutSave ferienpass-edit:close@window->ferienpass--admin-edit#closeUnsavedModal"
>

    {{ form_start(form, { attr: {'data-action': 'turbo:submit-end->ferienpass--admin-edit#resetDirty live:saved->ferienpass--admin-edit#resetDirty'} }) }}

    {% if not form.vars.valid %}
        <twig:Admin:Alert type="error" class="mt-4">
            <strong class="font-semibold">Bitte beheben Sie die Fehler im Formular.</strong>
            {{ form_errors(form) }}
        </twig:Admin:Alert>
    {% endif %}

    <div class="divide-y divide-gray-200 dark:divide-gray-800">

        <div class="grid gap-x-8 gap-y-2 py-5 sm:grid-cols-[280px_minmax(0,1fr)]">
            <div>
                <label for="{{ form.name.vars.id }}" class="text-sm font-semibold text-gray-900 dark:text-gray-100">{{ 'tenants.label.name'|trans }}</label>
                <p class="mt-1 text-xs/5 text-gray-500 dark:text-gray-400">Anzeigename in der ganzen Verwaltung.</p>
            </div>
            <div class="sm:max-w-sm">
                {{ form_errors(form.name) }}
                {{ form_widget(form.name) }}
            </div>
        </div>

        <div class="grid gap-x-8 gap-y-2 py-5 sm:grid-cols-[280px_minmax(0,1fr)]">
            <div>
                <span class="text-sm font-semibold text-gray-900 dark:text-gray-100">{{ 'tenants.label.slug'|trans }}</span>
                <p class="mt-1 text-xs/5 text-gray-500 dark:text-gray-400">Steht in Konsolenbefehlen, Logzeilen und Cache-Schlüsseln — deshalb nach dem Anlegen nicht mehr änderbar.</p>
            </div>
            {% if item.id %}
                {% do form.slug.setRendered %}
                <div class="flex flex-wrap items-center gap-x-3 gap-y-1 sm:pt-1">
                    <span class="font-mono text-sm font-semibold text-gray-900 dark:text-gray-100">{{ item.slug }}</span>
                    <span class="inline-flex items-center gap-x-1 rounded-full border border-gray-200 bg-gray-100 px-2.5 py-0.5 text-xs font-semibold text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400" title="Nach dem Anlegen nicht mehr änderbar.">
                        <twig:ux:icon name="ph:lock-simple-fill" class="size-3" aria-hidden="true" />
                        einmalig gesetzt
                    </span>
                </div>
            {% else %}
                <div class="sm:max-w-sm">
                    {{ form_errors(form.slug) }}
                    {{ form_widget(form.slug) }}
                    <p class="mt-1.5 text-xs text-gray-500 dark:text-gray-400">{{ 'tenants.help.slug'|trans }}</p>
                </div>
            {% endif %}
        </div>

        <div class="grid gap-x-8 gap-y-2 py-5 sm:grid-cols-[280px_minmax(0,1fr)]">
            <div>
                <span class="text-sm font-semibold text-gray-900 dark:text-gray-100">{{ 'tenants.label.domains'|trans }}</span>
                <p class="mt-1 text-xs/5 text-gray-500 dark:text-gray-400">Eine Domain gehört genau einem Mandanten; ein Host, den kein Mandant beansprucht, antwortet mit 404. Die erste öffentliche Domain wird für Links verwendet, die außerhalb einer Anfrage entstehen — etwa in Cron-Mails.</p>
            </div>
            <div class="min-w-0">
                {{ form_errors(form.domains) }}
                {{ form_widget(form.domains) }}
                <p class="mt-4 flex max-w-xl items-start gap-x-1.5 text-xs/5 text-gray-500 dark:text-gray-400">
                    <span class="mt-0.5 size-3.5 shrink-0 text-gray-400"><twig:ux:icon name="ph:info" aria-hidden="true" /></span>
                    <span>„Öffentliche Website“ liefert den Ferienpass aus — und die Verwaltung unter /admin, solange es keine eigene Verwaltungs-Domain gibt. „Verwaltung“ liefert nur den Verwaltungsbereich, ohne /admin. Beim Speichern wird jede Domain normalisiert: klein geschrieben, ohne Schema, Port und Pfad.</span>
                </p>
            </div>
        </div>

        <div class="grid gap-x-8 gap-y-2 py-5 sm:grid-cols-[280px_minmax(0,1fr)]">
            <div>
                <label for="{{ form.disabled.vars.id }}" class="text-sm font-semibold text-gray-900 dark:text-gray-100">{{ 'tenants.label.disabled'|trans }}</label>
                <p class="mt-1 text-xs/5 text-gray-500 dark:text-gray-400">{{ 'tenants.help.disabled'|trans }}</p>
            </div>
            <div class="sm:pt-1">
                {{ form_errors(form.disabled) }}
                {{ form_widget(form.disabled) }}
            </div>
        </div>

    </div>

    <twig:Admin:Edit:Footer
            :isDirty="formDirty|default(false)"
            :sections="[]"
            :section="null"
            :params="this.getRouteParameters()"
            :editRoute="editRoute|default(null)"
            :viewRoute="viewRoute|default(null)"
    />

    {{ form_end(form) }}

    {% if message|default %}
        <twig:Turbo:Stream:Prepend target="#notifications">
            <twig:Admin:Notification type="success" title="Daten gespeichert" :message="message" />
        </twig:Turbo:Stream:Prepend>
    {% endif %}

</div>
