@zevra/ui 0.43.0 → 0.44.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 +49 -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/data-table.d.ts +33 -3
- package/dist/data-table.d.ts.map +1 -1
- package/dist/data-table.js +58 -40
- package/dist/data-table.js.map +1 -1
- package/dist/grille.d.ts +93 -8
- package/dist/grille.d.ts.map +1 -1
- package/dist/grille.js +251 -112
- package/dist/grille.js.map +1 -1
- package/package.json +1 -1
- package/react/css-inline.ts +1 -1
- package/react/data-table.tsx +87 -6
- package/react/grille.tsx +627 -268
- package/src/data.css +101 -10
package/src/data.css
CHANGED
|
@@ -198,9 +198,11 @@
|
|
|
198
198
|
outline-offset: -2px;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
-
/* ⚠️
|
|
202
|
-
*
|
|
203
|
-
*
|
|
201
|
+
/* ⚠️ La source ne contient ni état sélectionné, ni :focus-within, ni ligne
|
|
202
|
+
* active : une liste à LIRE n'en a pas besoin. Une grille qu'on OPÈRE, si :
|
|
203
|
+
* la ligne cochée (--selected) et la ligne active (--on) sont arbitrées
|
|
204
|
+
* plus bas, section « Grille de données », HORS RELEVÉ, sans troisième
|
|
205
|
+
* gris (l'une sur --accent-soft, l'autre sur le fond du survol). */
|
|
204
206
|
|
|
205
207
|
/* ─── En-tête triable ──────────────────────────────────────────────────
|
|
206
208
|
* ⚠️ HORS RELEVÉ : ajouté le 25/08/2026 avec l'adaptateur TanStack Table.
|
|
@@ -1037,8 +1039,8 @@
|
|
|
1037
1039
|
* du cadre pendant que les cellules continuent. --zv-cols-somme et
|
|
1038
1040
|
* --zv-cols-n sont posés par le composant (largeurs choisies par
|
|
1039
1041
|
* l'utilisateur, pas des valeurs de charte). */
|
|
1040
|
-
.zv-table--grille
|
|
1041
|
-
.zv-table--grille
|
|
1042
|
+
.zv-table--grille .zv-table__head,
|
|
1043
|
+
.zv-table--grille .zv-row {
|
|
1042
1044
|
min-width: calc(
|
|
1043
1045
|
var(--zv-cols-somme, 0px) + 2 * var(--zv-grille-pad) +
|
|
1044
1046
|
(var(--zv-cols-n, 1) - 1) * var(--zv-grille-gap)
|
|
@@ -1212,7 +1214,8 @@
|
|
|
1212
1214
|
}
|
|
1213
1215
|
|
|
1214
1216
|
.zv-table__head .zv-cell--pin,
|
|
1215
|
-
.zv-row:hover .zv-cell--pin
|
|
1217
|
+
.zv-row:hover .zv-cell--pin,
|
|
1218
|
+
.zv-row--on .zv-cell--pin {
|
|
1216
1219
|
--zv-pin-fond: var(--panel);
|
|
1217
1220
|
}
|
|
1218
1221
|
|
|
@@ -1229,6 +1232,19 @@
|
|
|
1229
1232
|
--zv-pin-fond: var(--accent-soft);
|
|
1230
1233
|
}
|
|
1231
1234
|
|
|
1235
|
+
/* ─── Ligne active ──────────────────────────────────────────────────────
|
|
1236
|
+
* La ligne dont on regarde le détail (un aperçu ouvert à côté de la liste).
|
|
1237
|
+
* ⚠️ HORS RELEVÉ, repris de Sunday (24/09/2026), qui le peignait dans son
|
|
1238
|
+
* propre CSS faute de l'avoir ici. Aucun troisième fond : le fond du
|
|
1239
|
+
* survol, et un filet d'accent à gauche. En ombre INTÉRIEURE et non en
|
|
1240
|
+
* bordure : une bordure décalerait toute la rangée de trois pixels au
|
|
1241
|
+
* moment du clic. Distincte de la ligne cochée (--selected), qui est une
|
|
1242
|
+
* sélection pour agir. */
|
|
1243
|
+
.zv-row--on {
|
|
1244
|
+
background: var(--panel);
|
|
1245
|
+
box-shadow: inset 3px 0 0 var(--accent);
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1232
1248
|
/* La case de sélection : centrée dans sa piste, sans troncature. */
|
|
1233
1249
|
.zv-cell--case {
|
|
1234
1250
|
display: flex;
|
|
@@ -1279,11 +1295,18 @@
|
|
|
1279
1295
|
color: var(--accent);
|
|
1280
1296
|
}
|
|
1281
1297
|
|
|
1282
|
-
/* La taille de page : le
|
|
1298
|
+
/* La taille de page : le SelectMenu du paquet, à sa largeur de contenu
|
|
1299
|
+
* (il prend la largeur de son conteneur par défaut). */
|
|
1283
1300
|
.zv-grille__taille {
|
|
1284
1301
|
width: auto;
|
|
1285
|
-
|
|
1286
|
-
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
/* La liste d'un filtre à choix : le .zv-menu du paquet, posé dans
|
|
1305
|
+
* l'enveloppe flottante. Il défile au-delà d'une douzaine d'options plutôt
|
|
1306
|
+
* que de couvrir la page. */
|
|
1307
|
+
.zv-grille__liste {
|
|
1308
|
+
max-height: min(320px, 60vh);
|
|
1309
|
+
overflow-y: auto;
|
|
1287
1310
|
}
|
|
1288
1311
|
|
|
1289
1312
|
/* Le résumé d'une plage (nombres, dates) dans la rangée de filtres : un
|
|
@@ -1337,6 +1360,74 @@
|
|
|
1337
1360
|
padding-inline: 8px;
|
|
1338
1361
|
}
|
|
1339
1362
|
|
|
1363
|
+
/* ─── Remplir son parent ────────────────────────────────────────────────
|
|
1364
|
+
* La grille prend la hauteur d'une colonne flex bornée : seules les lignes
|
|
1365
|
+
* défilent. Les intitulés et les filtres sont groupés dans un bloc COLLANT
|
|
1366
|
+
* (.zv-table__haut) : collées une à une, les deux rangées se poseraient au
|
|
1367
|
+
* même endroit et la seconde recouvrirait la première. */
|
|
1368
|
+
.zv-grille--remplir {
|
|
1369
|
+
display: flex;
|
|
1370
|
+
flex: 1;
|
|
1371
|
+
flex-direction: column;
|
|
1372
|
+
min-height: 0;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
.zv-table--remplir {
|
|
1376
|
+
flex: 1;
|
|
1377
|
+
min-height: 0;
|
|
1378
|
+
overflow: auto;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
.zv-table__haut {
|
|
1382
|
+
position: sticky;
|
|
1383
|
+
top: 0;
|
|
1384
|
+
z-index: 2;
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
/* ─── Densité ───────────────────────────────────────────────────────────
|
|
1388
|
+
* Un tableau secondaire, posé dans une fiche : les rangées se resserrent,
|
|
1389
|
+
* rien d'autre ne change. Dérivé (6 px : la rangée de filtres). */
|
|
1390
|
+
.zv-table--dense .zv-row,
|
|
1391
|
+
.zv-table--dense .zv-table__head {
|
|
1392
|
+
padding-block: 6px;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
/* ─── Rangées qui ne sont pas des lignes ────────────────────────────────
|
|
1396
|
+
* Un intitulé de groupe, une ligne de saisie, un pied de totaux : sur le
|
|
1397
|
+
* fond du survol, et inertes (ni pointeur ni survol). */
|
|
1398
|
+
.zv-row--groupe,
|
|
1399
|
+
.zv-row--saisie,
|
|
1400
|
+
.zv-row--pied {
|
|
1401
|
+
background: var(--panel);
|
|
1402
|
+
cursor: default;
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
.zv-row--groupe:hover,
|
|
1406
|
+
.zv-row--saisie:hover,
|
|
1407
|
+
.zv-row--pied:hover {
|
|
1408
|
+
background: var(--panel);
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
.zv-row--groupe {
|
|
1412
|
+
display: block;
|
|
1413
|
+
padding-block: 6px;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
.zv-row--pied {
|
|
1417
|
+
font-weight: 600;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
/* Des champs à la hauteur d'une ligne, pas d'un formulaire. */
|
|
1421
|
+
.zv-row--saisie .zv-input {
|
|
1422
|
+
padding-block: 5px;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
/* Le nombre de lignes d'une valeur, au bout de son option. */
|
|
1426
|
+
.zv-grille__compte {
|
|
1427
|
+
margin-left: auto;
|
|
1428
|
+
flex: none;
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1340
1431
|
/* Le pied : compte à gauche, taille de page et sens à droite. */
|
|
1341
1432
|
.zv-grille__pied {
|
|
1342
1433
|
display: flex;
|
|
@@ -1347,7 +1438,7 @@
|
|
|
1347
1438
|
@media (max-width: 767px) {
|
|
1348
1439
|
/* En cartes, l'épinglage, les poignées et la largeur minimale n'ont plus
|
|
1349
1440
|
* de sens : la carte prend la largeur de l'écran. */
|
|
1350
|
-
.zv-table--grille
|
|
1441
|
+
.zv-table--grille .zv-row {
|
|
1351
1442
|
min-width: 0;
|
|
1352
1443
|
}
|
|
1353
1444
|
|