{{-- v4.14.0 §C — L'APP-SHELL : l'en-tête, l'écran, et la barre d'onglets du bas. v4.16.0 §A — L'en-tête porte la marque de L'AGENCE QUI EXÉCUTE **CET ESPACE-CI**, jamais celle de l'installation : `logoDuPrestataire()` / `nomDuPrestataire()` du tableau de bord, qui replient déjà proprement sur l'identité du socle quand l'espace n'a rien posé. C'est ce que fait déjà l'e-mail depuis la v4.7.0 §E — la page disait autre chose que le message. Le client final, lui, reste figuré par son écusson à droite : son logo s'il en a téléversé un, ses initiales sinon. ⚠️ v4.17.0 §C — L'accent vient de l'espace (`couleur_primaire` / `couleur_accent`) QUAND il est posé, avec repli sur la palette de la maquette — mais il n'entre plus JAMAIS tel quel dans `--accent` / `--gold` / `--accent-ink`. La coquille pose les jetons PAR THÈME (`--accent-clair`, `--accent-sombre`, …), calculés par `PaletteTheme` avec un contraste mesuré ≥ 4,5 : 1 sur les fonds du thème, et c'est la feuille qui choisit la variante selon le thème actif. Avant ce lot, la couleur de marque écrasait les jetons dans les deux thèmes : indigo sur `#1c1e27`, les icônes des tuiles, les libellés, l'onglet actif et les pastilles disparaissaient en sombre. ⚠️ Toutes les valeurs d'identité sont lues ICI, au rendu, jamais à l'enregistrement d'un fournisseur : une base pas encore migrée ne doit pas faire tomber l'application. --}} @props([ 'dashboard' => null, 'acces' => null, 'espaces' => null, 'aValider' => 0, 'onglet' => 'accueil', 'nonLus' => ['total' => 0, 'par_sujet' => []], ]) @php use App\Support\EspaceClient\AppClient; use App\Support\EspaceClient\PaletteTheme; use App\Support\Identite; $palette = PaletteTheme::style(PaletteTheme::deLEspace($dashboard)); $espaces = $espaces ?? collect(); // La marque de l'espace ouvert ; hors espace (le choix entre plusieurs marchés), celle de // l'installation — c'est le seul écran où aucune agence n'est encore désignée. $logoMaison = $dashboard?->logoDuPrestataire() ?? Identite::logoRecadre(); $nomMaison = $dashboard?->nomDuPrestataire() ?? Identite::marque(); $lien = fn (string $route): string => $dashboard === null ? route($route) : route($route, ['espace' => $dashboard->id]); // v4.17.0 §B2.4 — Les badges : ce qui attend une décision, plus les messages non lus du fil. $nonLusPar = fn (string $type): int => (int) collect($nonLus['par_sujet'] ?? []) ->filter(fn (int $n, string $cle): bool => str_starts_with($cle, $type.':')) ->sum(); $onglets = [ ['cle' => 'accueil', 'libelle' => 'Accueil', 'route' => 'espace-client.app.accueil', 'badge' => 0], ['cle' => 'publications', 'libelle' => 'Publications', 'route' => 'espace-client.app.publications', 'badge' => $aValider + $nonLusPar('PublicationClient')], ['cle' => 'livrables', 'libelle' => 'Livrables', 'route' => 'espace-client.app.livrables', 'badge' => $nonLusPar('Livrable')], ['cle' => 'documents', 'libelle' => 'Documents', 'route' => 'espace-client.app.documents', 'badge' => 0], ['cle' => 'compte', 'libelle' => 'Compte', 'route' => 'espace-client.app.compte', 'badge' => 0], ]; @endphp
@if ($logoMaison) {{-- v4.16.0 §B — LA PLAQUE. Un logo d'agence est dessiné pour du papier blanc : posé nu sur le fond sombre de l'application, un glyphe sombre disparaît. On le pose donc sur un aplat clair opaque, dans LES DEUX thèmes — sans quoi il faudrait exiger de chaque agence une variante sombre. --}} {{ $nomMaison }} @else {{ $nomMaison }} @endif
{{-- v4.16.1 §F1 — La cloche : le centre de notifications du client, à côté de la bascule de thème. Composant Livewire à part : il ne se rend qu'une session ouverte, et ne coûte qu'un compte tant que son menu est fermé. --}} @auth @endauth @if ($dashboard) @endif
@if ($dashboard)

{{ $dashboard->nomCourtDuClient() }}

@if (filled($dashboard->reference_marche)) Marché {{ $dashboard->reference_marche }} @endif {{-- Le sélecteur n'apparaît que pour qui a plusieurs marchés : un menu à une entrée est un menu de trop. --}} @if ($espaces->count() > 1)
@endif
@endif
{{-- v4.16.0 §J — Le fil de chargement : un aller-retour Livewire ne doit pas laisser croire que le bouton n'a pas pris. Deux clics sur « Valider », ce serait deux e-mails au client. --}}
@if ($dashboard) {{ $slot }} @else {{-- Plusieurs marchés et aucun choisi : on demande, on ne devine pas. --}}

Vos espaces

Choisissez le marché que vous voulez suivre.

@endif
@if ($dashboard) @endif