@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 +41 -0
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +9 -3
- package/dist/overlays.js.map +1 -1
- package/dist/select-menu.d.ts.map +1 -1
- package/dist/select-menu.js +66 -5
- package/dist/select-menu.js.map +1 -1
- package/package.json +1 -1
- package/react/css-inline.ts +1 -1
- package/react/overlays.tsx +9 -3
- package/react/select-menu.tsx +71 -5
- package/src/forms.css +15 -2
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.
|
package/dist/css-inline.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|