From 0558d8c58a860b465728788d89c91254375a8f03 Mon Sep 17 00:00:00 2001 From: tristan Date: Fri, 19 Jun 2026 14:06:09 +0200 Subject: [PATCH] =?UTF-8?q?feat(tab)=20:=20onglets=20visibles=20adapt?= =?UTF-8?q?=C3=A9s=20=C3=A0=20la=20largeur=20+=20survol=20=3D=20style=20ac?= =?UTF-8?q?tif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Le nombre d'onglets affichés en mode fenêtré s'adapte automatiquement à la largeur réelle (ResizeObserver + ligne de mesure cachée). Les chevrons restent fixés aux bords ; le nombre est choisi pour que les onglets tiennent (pas de chevauchement ni de rognage). Calcul isolé en fonction pure testable (tabFit.ts, basée sur les vraies largeurs). maxVisibleTabs devient un plafond optionnel. - BREAKING : suppression de la prop maxWidth (la barre prend toute la largeur). - Survol d'un onglet inactif : même style que l'actif (texte m-primary + barre). - Playground : bac à sable interactif (nb onglets, plafond, icônes, labels longs, cadre redimensionnable) pour tester tous les cas. Co-Authored-By: Claude Opus 4.8 (1M context) --- .playground/pages/composant/tab/tabList.vue | 90 ++++++++++++++++++- CHANGELOG.md | 2 + COMPONENTS.md | 5 +- app/components/malio/tab/TabList.test.ts | 22 +++-- app/components/malio/tab/TabList.vue | 98 ++++++++++++++++++--- app/components/malio/tab/tabFit.test.ts | 43 +++++++++ app/components/malio/tab/tabFit.ts | 49 +++++++++++ 7 files changed, 279 insertions(+), 30 deletions(-) create mode 100644 app/components/malio/tab/tabFit.test.ts create mode 100644 app/components/malio/tab/tabFit.ts diff --git a/.playground/pages/composant/tab/tabList.vue b/.playground/pages/composant/tab/tabList.vue index ae19ca7..9ecd87e 100644 --- a/.playground/pages/composant/tab/tabList.vue +++ b/.playground/pages/composant/tab/tabList.vue @@ -1,5 +1,65 @@