From 4b1340f1606d40c20ddaef978fa6f1367cbc9a5e Mon Sep 17 00:00:00 2001 From: Jules Date: Fri, 25 Sep 2026 12:03:16 +0200 Subject: [PATCH] =?UTF-8?q?feat(b3):=20M1=20=E2=80=94=20Chip.vue=20par=20d?= =?UTF-8?q?imension=20(=C3=A9chelle=20outline,=20fonction=20pleine,=20post?= =?UTF-8?q?ure=20safran)=20+=20filtres=20/=20et=20/agences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - components/Chip.vue (nouveau) : label/variant(echelle|fonction|posture)/ active/count/as(button|span)/removable, emits toggle+remove, aria-pressed natif sur as=button, croix "Retirer {label}" accessible. Styles 100% tokens DS (--primary/--on-primary/--bg-alt/--accent/--on-accent/--focus-ring/ --dur-fast), hover translateY, focus-visible outline var(--focus-ring), transition coupée sous prefers-reduced-motion. Taille compacte 32px de haut mesurée (tap ok). - components/ChipGroup.vue (nouveau) : role="group" + aria-label + flex-wrap gap — garantit le wrap propre exigé (jamais une ligne à virgules). - EchelleFilter.vue, FonctionFilter.vue : rendu remplacé par Chip/ChipGroup, props modelValue/counts et événement update:modelValue strictement inchangés (NavSidebar.vue n'a rien à changer côté logique). FonctionFilter passe le rang de sélection (comme avant) via le prop count de Chip. - HashtagFilter.vue : seule la liste HASHTAGS (togglable, grammaire fonction) passe en Chip/ChipGroup. Les chips FAMILLES gardent leur rendu et leurs couleurs propres par famille (hors grammaire échelle/fonction/posture, hors périmètre B3 — les changer aurait été une refonte, pas un branchement). - pages/agences.vue : hashtags par structure (liste sidebar) en Chip as="span" variant="fonction" (non cliquables avant, le restent). - pages/index.vue : la sheet mobile ne passe PAS par NavSidebar/EchelleFilter/ FonctionFilter — elle a son propre bloc de chips dupliqué (découvert en testant le mobile, absent du périmètre écrit du brief). Direction du parti design ("chips codées par dimension", mobile-first explicite) : convertie en Chip/ChipGroup elle aussi, mêmes handlers toggleEchelle/toggleFonction inchangés. Effet de bord positif : le nombre par fonction (déjà calculé, jamais affiché sur mobile) apparaît désormais aussi en mobile, à parité avec le desktop. - components/TagBadge.vue supprimé : son seul consommateur, OrgCard.vue, n'est importé nulle part dans l'app (grep vérifié) — code mort. OrgCard.vue supprimé avec lui plutôt que laissé avec une référence à un composant disparu. - components/TypeBadge.vue : conservé tel quel — ce n'est pas un filtre, et sa grammaire couleur par type (7 couleurs Tailwind fixes) est orthogonale à échelle/fonction/posture ; le convertir en Chip aurait perdu l'info de type ou inventé une 4e variante non validée. Vérifié : npm run build OK. Chips wrap avec gap en clair/sombre/mobile (390px, hauteur mesurée 32px). Dark mode : contraste texte/fond conforme (safran = texte sombre, jamais blanc). Co-Authored-By: Claude Sonnet 5 --- components/Chip.vue | 170 ++++++++++++++++++++++++++++++++++ components/ChipGroup.vue | 19 ++++ components/EchelleFilter.vue | 39 ++------ components/FonctionFilter.vue | 33 ++----- components/HashtagFilter.vue | 20 ++-- components/OrgCard.vue | 45 --------- components/TagBadge.vue | 11 --- pages/agences.vue | 13 +-- pages/index.vue | 40 ++++---- 9 files changed, 242 insertions(+), 148 deletions(-) create mode 100644 components/Chip.vue create mode 100644 components/ChipGroup.vue delete mode 100644 components/OrgCard.vue delete mode 100644 components/TagBadge.vue diff --git a/components/Chip.vue b/components/Chip.vue new file mode 100644 index 0000000..8fec213 --- /dev/null +++ b/components/Chip.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/components/ChipGroup.vue b/components/ChipGroup.vue new file mode 100644 index 0000000..4c076a6 --- /dev/null +++ b/components/ChipGroup.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/components/EchelleFilter.vue b/components/EchelleFilter.vue index 9f09556..2fc8d16 100644 --- a/components/EchelleFilter.vue +++ b/components/EchelleFilter.vue @@ -1,39 +1,16 @@ diff --git a/components/FonctionFilter.vue b/components/FonctionFilter.vue index fda7c11..f2d240d 100644 --- a/components/FonctionFilter.vue +++ b/components/FonctionFilter.vue @@ -1,32 +1,17 @@