@inject('deployment', 'App\Services\DeploymentService')
@php
// Reverb (Echo) endpoint derived at RUNTIME from the effective domain, so changing
// the panel domain from the dashboard needs no JS rebuild. Read by resources/js/app.js.
$reverb = $deployment->reverbClient();
@endphp
{{ $title ?? 'Clusev' }}
@include('partials.head-icons')
@vite(['resources/css/app.css', 'resources/js/app.js'])
@livewireStyles
{{-- mobile/tablet backdrop --}}
{{ $slot }}
@include('partials.toaster')
{{-- Command palette + keyboard shortcuts (persistent; one global keydown listener) --}}
{{-- Persist the modal manager across wire:navigate: otherwise body.replaceWith +
Alpine.destroyTree tear down its window-level `openModal` listener on every SPA
navigation, leaving a post-landing window where a click finds no live component
(dead trigger / "Could not find Livewire component in DOM tree"). @persist keeps
ONE stable manager + listener for the whole session. --}}
@persist('modal')
@endpersist
@livewireScripts