{{-- Pre-filtered element list — see ElementList.php for the "why" (caller supplies $elementIds + optional $title, this component only knows how to display/mutate them). $compact only changes spacing/density below, never which actions are available. Row title opens the element's Aperçu detail with pushHistory: true, so ApercuPanel stacks this list underneath it — the "back" button (see apercu-panel.blade.php) returns here rather than closing the panel. --}}
@if ($title)

$compact, 'text-base' => ! $compact])> {{ $title }}

@endif
$compact, 'mt-4' => ! $compact])> @forelse ($this->elements() as $element) @php $isDone = $element->status->category === 'done'; $isMeeting = $element->type->code === 'meeting'; $isToday = $element->due_date && ($element->due_date->toDateString() == Carbon\Carbon::today()->toDateString()); $isOverdue = $element->due_date && ($element->due_date->toDateString() <= Carbon\Carbon::today()->subDay()->toDateString()) && ! in_array($element->status->category, ['done', 'cancelled'], true); $statuses = $this->statusesFor($element->project_id); @endphp
$compact, 'px-1 py-3.5' => ! $compact])> {{-- Compléter --}} @php $isMeeting = $element->type->code === 'meeting'; $canToggleDone = ! $isMeeting || $element->meeting?->organizer_id === $this->currentPersonId(); @endphp @if ($canToggleDone) @else @endif {{-- Titre --}}
@if ($element->type->code === 'milestone') {{ $this->milestoneKindLabel($element->milestone->milestone_kind) }} @else {{ $element->type->label }} @endif @unless ($compact)

{{ $element->projectCodeOrUnfiled() }}

@endunless
@if ($element->type->code === 'meeting') @php $color = $element->meeting->organizer->avatar_color ?? '#9CA3AF'; @endphp {{ $element->meeting->organizer->initials ?? '?' }} @endif {{-- Pastille de rattachement : le code du projet, ou « À ranger » dans le gris neutre réservé à ce qui n'a pas encore trouvé sa place. `projectColorOrNeutral()` retourne toujours une couleur, ce qui a permis de supprimer la branche sans couleur — elle rendait deux `class` sur le même élément, dont seule la première comptait. --}} @if ($compact) {{ $element->projectCodeOrUnfiled() }} @endif {{-- Échéance : verrouillée pour les réunions (pilotée par Outlook) --}} @if ($isMeeting) {{ $this->relativeDateLabel($element->due_date) ?? '—' }} @else $isOverdue, 'text-gray-500 dark:text-gray-400' => ! $isOverdue, ]) /> @endif {{-- Statut --}} @foreach ($statuses as $status) {{ $status->label }} @endforeach
@empty
Aucun élément.
@endforelse