@zevra/ui 0.50.0 → 0.51.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/DECISIONS.md +83 -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/partenaires-data.d.ts +8 -0
- package/dist/partenaires-data.d.ts.map +1 -0
- package/dist/partenaires-data.js +11 -0
- package/dist/partenaires-data.js.map +1 -0
- package/dist/partenaires.d.ts +29 -0
- package/dist/partenaires.d.ts.map +1 -0
- package/dist/partenaires.js +29 -0
- package/dist/partenaires.js.map +1 -0
- 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/logos/partenaires/docusign.webp +0 -0
- package/logos/partenaires/google.svg +1 -0
- package/logos/partenaires/henrri.webp +0 -0
- package/logos/partenaires/index.json +7 -0
- package/logos/partenaires/maileva.webp +0 -0
- package/logos/partenaires/microsoft.svg +1 -0
- package/package.json +6 -2
- package/react/css-inline.ts +1 -1
- package/react/overlays.tsx +9 -3
- package/react/partenaires-data.ts +18 -0
- package/react/partenaires.tsx +55 -0
- package/react/select-menu.tsx +71 -5
- package/src/forms.css +18 -3
- package/src/icons.css +33 -0
- package/src/tokens.css +13 -1
- package/tokens/index.js +3 -0
package/DECISIONS.md
CHANGED
|
@@ -2242,3 +2242,86 @@ 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.
|
|
2286
|
+
|
|
2287
|
+
---
|
|
2288
|
+
|
|
2289
|
+
## L'interrupteur suit l'option arrondie, et les logos des partenaires (03/11/2026, 0.51.0)
|
|
2290
|
+
|
|
2291
|
+
Demande de Joachim, vue sur la Marketplace de Tésope (cabinet en `zv-arrondi`
|
|
2292
|
+
depuis le 27/10) : des cartes et des boutons arrondis, mais des
|
|
2293
|
+
interrupteurs carrés, et des extensions (Microsoft 365, DocuSign, Henrri…)
|
|
2294
|
+
reconnues à une icône générique plutôt qu'à leur marque.
|
|
2295
|
+
|
|
2296
|
+
### L'interrupteur
|
|
2297
|
+
|
|
2298
|
+
HORS RELEVÉ. En angle vif (le défaut de la charte), rien ne change : piste
|
|
2299
|
+
et bouton restent carrés, comme arbitré le 25/08. Sous `zv-arrondi`, la
|
|
2300
|
+
piste passe en gélule et le bouton en rond. Deux tokens à part,
|
|
2301
|
+
`--r-switch` et `--r-switch-knob`, nuls hors de l'option : le rayon des
|
|
2302
|
+
autres composants (3 px pour `--r-pill`) ne convient pas à une piste de
|
|
2303
|
+
20 px, qui ne se lirait alors ni carrée ni ronde. Dans une app arrondie,
|
|
2304
|
+
un interrupteur carré était le seul angle vif de l'écran : il se lisait
|
|
2305
|
+
comme une erreur, pas comme un choix.
|
|
2306
|
+
|
|
2307
|
+
La tuile d'icône (`IconTile`) suit aussi `--r-pill`, nul par défaut : même
|
|
2308
|
+
raison, dans une app arrondie elle était la seule boîte carrée d'une carte.
|
|
2309
|
+
|
|
2310
|
+
### Les logos des partenaires
|
|
2311
|
+
|
|
2312
|
+
Entrée séparée `@zevra/ui/react/partenaires`, sur le modèle des clients :
|
|
2313
|
+
les fichiers dans `logos/partenaires/` (provenance de chacun dans
|
|
2314
|
+
`index.json`), inlinés par `scripts/build-partenaires-data.mjs`. À la
|
|
2315
|
+
différence des clients, ils restent EN COULEUR : c'est la marque de
|
|
2316
|
+
l'éditeur, elle ne se recolore pas.
|
|
2317
|
+
|
|
2318
|
+
`LogoPartenaire` reprend le gabarit d'`IconTile` (40×40, même filet), sur
|
|
2319
|
+
blanc : la teinte indigo pâle aurait sali les couleurs de la marque. Le logo
|
|
2320
|
+
occupe 60 % de la tuile ; une icône d'application à fond plein (Henrri) la
|
|
2321
|
+
couvre entière. Un produit Zevra branché comme service (Mémoire) passe son
|
|
2322
|
+
glyphe par `src`, depuis `@zevra/ui/glyphes` : jamais une image de l'app.
|
|
2323
|
+
|
|
2324
|
+
Cinq marques au départ : Microsoft, Google, DocuSign, Henrri, Maileva.
|
|
2325
|
+
Universign n'y est pas : universign.com renvoie désormais vers Signaturit,
|
|
2326
|
+
et poser le logo d'une autre marque serait un faux. Un service sans logo
|
|
2327
|
+
garde son `IconTile` : on n'invente pas de marque.
|
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,MAAg4tT,CAAA;AAE15tT;;;yBAGyB;AACzB,eAAO,MAAM,WAAW,EAAE,MAAk4B,CAAA"}
|