@zevra/ui 0.36.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/feedback.css CHANGED
@@ -709,12 +709,37 @@
709
709
  min-width: 0;
710
710
  }
711
711
 
712
- /* Même garde-fou que le menu et le popover : plafonnée à l'écran, la
713
- * bulle ne pousse jamais la page en défilement horizontal. Le centrage
714
- * sur une cible collée au bord peut encore la décaler : limite connue,
715
- * une variante d'ancrage latéral s'arbitrera si le cas se présente. */
712
+ /* ⚠️ LA BULLE CESSE DE FLOTTER : elle se pose en bas de l'écran, pleine
713
+ * largeur. Le centrage sur une cible proche du bord droit la poussait
714
+ * hors de l'écran. Mesuré sur le tableau de bord de mcp-factory à 375px :
715
+ * document large de 416, défilement horizontal sur toute la page. Ce
716
+ * n'était pas la largeur qui débordait mais la POSITION, et le plafond en
717
+ * `100vw` n'y pouvait donc rien.
718
+ *
719
+ * Ancrée à l'écran, la bulle ne peut plus déborder quelle que soit la
720
+ * place de sa cible, et c'est le seul endroit où elle reste lisible sur
721
+ * 320px sans se replier en cinq lignes au-dessus d'un bouton.
722
+ *
723
+ * Écarté : la variante d'ancrage latéral que le commentaire précédent
724
+ * envisageait. Elle aurait obligé chaque app à choisir le bon côté pour
725
+ * chaque bulle (quarante et une sur ce seul tableau de bord) et à le
726
+ * refaire à chaque déplacement d'un bouton.
727
+ *
728
+ * `inset` remet `top` et `left` à `auto` : sans quoi le `left: 50%` et le
729
+ * `bottom: calc(100% + 6px)` de la règle de base subsisteraient. */
716
730
  .zv-tooltip {
717
- max-width: calc(100vw - 40px);
731
+ position: fixed;
732
+ inset: auto 16px 16px;
733
+ transform: none;
734
+ translate: none;
735
+ width: auto;
736
+ max-width: none;
737
+ }
738
+
739
+ /* La variante « sous la cible » n'a plus de sens une fois la bulle posée
740
+ * en bas : elle rouvrirait le `top` que l'ancrage vient de neutraliser. */
741
+ .zv-tooltip--bas {
742
+ top: auto;
718
743
  }
719
744
 
720
745
  /* ⚠️ NON RELEVÉ : aucune variante `lg:` sur le padding de l'écran vide.
package/src/layout.css CHANGED
@@ -825,9 +825,24 @@
825
825
  }
826
826
 
827
827
  /* Les liens de navigation desktop n'ont pas d'équivalent mobile au
828
- * relevé : Mobile.html les remplace par un menu burger. Ils ne sont pas
829
- * masqués d'office, cela casserait les pages sans burger, mais
830
- * .zv-only-desktop est là pour le faire en une classe. */
828
+ * relevé : Mobile.html les remplace par un menu burger. Ils disparaissent
829
+ * donc EXACTEMENT là où un burger les remplace, ni avant ni ailleurs.
830
+ *
831
+ * ⚠️ LE `:has()` PORTE TOUT LE RAISONNEMENT. Masquer d'office casserait
832
+ * une barre sans burger : ses liens s'évanouiraient sans rien pour les
833
+ * remplacer, et c'est la raison pour laquelle la règle n'existait pas.
834
+ * Conditionner au burger lève l'objection sans rien sacrifier, et rend
835
+ * enfin vraie la phrase écrite plus haut : « le burger n'existe que là où
836
+ * les liens disparaissent ». C'était l'intention ; ce n'était pas le code.
837
+ *
838
+ * Ce que ça remplace : `zv-only-desktop` posé à la main sur `NavLinks`.
839
+ * QUATRE consommateurs sur cinq collaient cette classe, le cinquième
840
+ * passait par `zv-nav--riche` ; memoire avait même écrit le commentaire
841
+ * qui l'explique. Une rustine que tout le monde recopie est un défaut du
842
+ * paquet, pas un usage. */
843
+ .zv-nav:has(.zv-nav__burger) .zv-nav__links {
844
+ display: none;
845
+ }
831
846
 
832
847
  .zv-steps__rail,
833
848
  .zv-steps__progress {