{# # MOLECULE: CONV-ITEM # Paramètres : # | session | SereniaChatSession | requis | La session à afficher | # | isActive | bool | false | Item actif (conversation en cours) | # | controllerName | string | 'seren-ia--sidebar' | Identifiant du controller Stimulus | #} {% set isActive = isActive ?? false %} {% set title = session.title ?? 'Nouvelle conversation' %} {% set controllerName = controllerName ?? 'seren-ia--sidebar' %}
{# Pastille « Partagé » — ICÔNE SEULE, EN TÊTE DE LIGNE. Le mot « Partagé » rendu après le titre mangeait la largeur d'une sidebar de 220 px et tronquait le titre à « Explication fi… ». L'icône seule, à gauche, coûte une largeur fixe et minime, et ne déplace rien quand elle est masquée (un élément en display:none ne produit ni boîte ni gap flex). TOUJOURS RENDUE, jamais sous une condition : shared--share-link#writeBack bascule son `style.display` SANS RECHARGEMENT, après l'avoir retrouvée PAR DESCENDANCE de la conv-item (card.querySelector('[data-share-badge]')). Un rendu conditionnel la rendrait introuvable pour toute discussion partagée en cours de page. #writeBack réaffiche en écrivant `display = ''` — il RETIRE le style inline et laisse la classe reprendre la main : `inline-flex` doit donc rester dans la classe, pas dans le style inline. Le mot ayant disparu, l'information passe par un `title` (souris) et un texte `sr-only` (lecteurs d'écran) — l'icône, elle, est rendue aria-hidden par l'atome. #} {% include '_atoms/icon/icon.html.twig' with { name: 'share', size: 'xs', color: 'current' } only %} Partagée par lien public {# Titre #} {{ title }} {# Bouton 3 points — visible au hover, appel direct au sidebar controller #}