{# Collaborateur (molécule) — LE composant unique pour représenter une personne, à trois DENSITÉS. Sépare proprement : DONNÉE (identité) · CONTEXTE (rôle/pôle/dispo) · PRÉSENTATION (densité). Densités : avatar -> bulle d'initiales seule compact -> avatar + nom (+ rôle éventuel) [défaut si un nom est fourni] detailed -> avatar + nom + contexte (rôle · pôle · dispo) Paramètres : Donnée : initials, name Contexte : role, pole, availability (surtout en densité detailed) Présentat.: density (avatar|compact|detailed), size (md|sm|xs), title (infobulle) Usage : {{ include('components/collaborator.html.twig', { initials: c.initials, name: c.fullName }) }} {{ include('components/collaborator.html.twig', { density: 'avatar', initials: c.initials, size: 'sm', title: c.fullName }) }} {{ include('components/collaborator.html.twig', { density: 'detailed', initials: c.initials, name: c.fullName, role: 'Designer', pole: 'UX/UI', availability: 'Télétravail' }) }} Note : components/avatar.html.twig reste l'ATOME (bulle) ; components/person.html.twig est conservé en alias de compatibilité et route vers ce composant. #} {%- set size = size|default('md') -%} {%- set density = density|default((name is defined and name) ? 'compact' : 'avatar') -%} {%- if density == 'avatar' -%} {{ include('components/avatar.html.twig', { initials: initials|default('•'), size: size, title: title|default((name is defined and name) ? name : null) }) }} {%- else -%} {{ include('components/avatar.html.twig', { initials: initials|default('•'), size: size }) }} {{ name|default('') }} {%- if density == 'detailed' -%} {%- set context = [] -%} {%- if role is defined and role %}{% set context = context|merge([role]) %}{% endif -%} {%- if pole is defined and pole %}{% set context = context|merge([pole]) %}{% endif -%} {%- if availability is defined and availability %}{% set context = context|merge([availability]) %}{% endif -%} {%- if context is not empty %}{{ context|join(' · ') }}{% endif -%} {%- elseif role is defined and role -%} {{ role }} {%- endif -%} {%- endif -%}