{{-- v4.17.0 §A1 — LA COQUILLE HTML DE STUDIO, l'app de l'agence. Le jumeau de `layouts.espace-client-app` : la langue, le thème, la police, la feuille, le manifeste et le service worker. Ici, l'identité est celle de L'INSTALLATION — Studio n'appartient à aucun espace, il les montre tous — et le nom proposé par « Ajouter à l'écran d'accueil » est « Studio ». L'en-tête, la barre latérale et la barre du bas vivent dans . ⚠️ Aucun chrome Filament : Studio ne doit pas une ligne au back-office, qui reste entier à côté. ⚠️ Les classes sont appelées par leur nom PLEINEMENT QUALIFIÉ, et non importées : Blade compile le contenu d'un slot à l'intérieur d'un bloc conditionnel, où PHP interdit `use`. --}} {{-- v4.17.2 §C2 — `maximum-scale=1` : le jumeau exact de l'app client. Proposer une publication depuis le téléphone ne doit pas faire sauter l'écran à chaque champ touché. --}} {{ isset($title) ? $title.' · Studio' : \App\Support\Identite::marque().' · Studio' }} {{-- Le favicon et les icônes : celles de l'installation, OPAQUES (jamais la pastille blanche). --}} {{-- Le thème est posé AVANT le premier rendu : jamais d'écran clair qui vire au sombre. --}} @vite('resources/css/espace-client/studio.css') @livewireStyles {{-- v4.17.1 §B — La brique push est montée AVANT l'écran : `window.soclePush` existe quand l'écran Compte le lit. En bas de page, l'écran le lisait trop tôt et concluait « indisponible » à tort — même dans l'application installée. Le script est auto-suffisant (il définit `window.soclePush` tout de suite et n'enregistre le service worker qu'au `load`). --}} @auth @include('filament.push-register', [ 'routesPush' => [ 'cle' => route('studio.push.key'), 'abonnement' => route('studio.push.subscribe'), ], ]) @endauth {{ $slot }} {{-- v4.17.3 §B2 — `data-navigate-once` + le drapeau : Livewire RÉEXÉCUTE les scripts du corps à chaque navigation `wire:navigate`. Sans ces deux garde-fous, chaque changement d'onglet ajouterait un écouteur de plus, et la bascule de thème finirait par basculer deux fois — donc pas du tout. Les écouteurs sont posés sur `document`, qui SURVIT à la navigation : ils n'ont besoin d'être posés qu'une fois. --}} @livewireScripts