@zevra/ui 0.50.0 → 0.50.1

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/DECISIONS.md CHANGED
@@ -2242,3 +2242,44 @@ petit, qui ne ressemblait à aucune icône du jeu. Retour de Joachim le même
2242
2242
  jour. Il devient `Icon nom="chevron-bas" taille="sm"`, en `--label`, et
2243
2243
  pivote d'un demi-tour quand la liste est ouverte. La classe
2244
2244
  `.zv-select__chevron` reste (elle porte la couleur et la rotation).
2245
+
2246
+ ---
2247
+
2248
+ ## Deux régressions vues en production chez mcp-factory (03/11/2026, 0.50.1)
2249
+
2250
+ ### Une modale ouverte décalait la colonne de navigation
2251
+
2252
+ `useOverlay` verrouillait le défilement sur `body` (`overflow: hidden`), et
2253
+ `overlays.css` le verrouille déjà sur `html` (`html:has(.zv-modal--open)`).
2254
+ Les deux ensemble se contrarient : quand `html` n'est plus en `visible`, le
2255
+ `overflow` de `body` ne remonte plus au viewport, et `body` devient LUI-MÊME
2256
+ un conteneur de défilement, à zéro. Une colonne `position: sticky; top: 0`
2257
+ se cale alors en haut de `body`, que la page a déjà fait défiler hors de
2258
+ l'écran : la colonne perdait son haut (logo, liens) à l'ouverture de toute
2259
+ modale, dès qu'on avait descendu dans la page.
2260
+
2261
+ Le verrou JavaScript porte désormais sur `html` (`documentElement`), comme
2262
+ la règle CSS. `body` n'est plus jamais un conteneur de défilement.
2263
+
2264
+ ### La liste de `SelectMenu` était rognée par son conteneur
2265
+
2266
+ Posée dans un `Table` (rôle d'un membre sur sa ligne), la liste s'ouvrait
2267
+ DANS le cadre du tableau, qui défile horizontalement (`overflow-x: auto`,
2268
+ donc `overflow-y` calculé à `auto` aussi) : elle était coupée net sous la
2269
+ ligne. Même défaut dans tout conteneur qui défile.
2270
+
2271
+ La liste est désormais en `position: fixed`, placée sous le déclencheur
2272
+ d'après sa boîte à l'écran, et recalculée au défilement et au
2273
+ redimensionnement : elle échappe à tout conteneur rogné. Elle s'ouvre AU-
2274
+ DESSUS quand la place manque dessous et qu'il y en a davantage dessus, se
2275
+ borne à la place disponible (et défile au-delà), et ne déborde jamais de
2276
+ la fenêtre à droite. Sa largeur MINIMALE est celle du déclencheur (`--zv-menu-largeur`), sa
2277
+ largeur celle de ses options (`max-content`), bornée à la fenêtre : sous un
2278
+ déclencheur calé sur son contenu (« Membre »), l'option longue
2279
+ (« Administrateur ») ne déborde plus. Une app qui surchargeait `min-width:
2280
+ 100%` doit écrire `var(--zv-menu-largeur)` : 100 % vaudrait la fenêtre.
2281
+
2282
+ ⚠️ Limite connue : un ancêtre en `transform` redevient le bloc conteneur
2283
+ d'un `fixed`. Aucun composant du paquet n'en pose autour d'une liste ;
2284
+ une app qui anime un conteneur par `transform` (colonne glissante) ne doit
2285
+ pas y loger de `SelectMenu` ouvert pendant l'animation.
@@ -1 +1 @@
1
- {"version":3,"file":"css-inline.d.ts","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAGA;;;iEAGiE;AACjE,eAAO,MAAM,WAAW,EAAE,MAAsmpT,CAAA;AAEhopT;;;yBAGyB;AACzB,eAAO,MAAM,WAAW,EAAE,MAAk4B,CAAA"}
1
+ {"version":3,"file":"css-inline.d.ts","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAGA;;;iEAGiE;AACjE,eAAO,MAAM,WAAW,EAAE,MAA2vqT,CAAA;AAErxqT;;;yBAGyB;AACzB,eAAO,MAAM,WAAW,EAAE,MAAk4B,CAAA"}