@zevra/ui 0.46.1 → 0.47.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/react/grille.tsx CHANGED
@@ -300,6 +300,11 @@ export interface DataGridProps<T> {
300
300
  /** La grille REMPLIT son parent (colonne flex à hauteur bornée) : seules
301
301
  * les lignes défilent, la barre, les intitulés et les filtres restent. */
302
302
  remplir?: boolean
303
+ /** Posée À BORD d'une carte sans retrait (`Card padding="aucun"`) : la
304
+ * barre d'outils et la pagination prennent le retrait de la carte, le
305
+ * tableau court d'un bord à l'autre sans second cadre. Sans elle, la
306
+ * recherche et les cases touchent la bordure. */
307
+ encadree?: boolean
303
308
  /** Sous les lignes, dans la zone qui défile : le déclencheur d'une liste
304
309
  * infinie, qui charge la suite en entrant dans l'écran. */
305
310
  apresLignes?: ReactNode
@@ -1310,6 +1315,7 @@ export function DataGrid<T>({
1310
1315
  pied,
1311
1316
  dense,
1312
1317
  remplir,
1318
+ encadree,
1313
1319
  apresLignes,
1314
1320
  envelopperTableau,
1315
1321
  barre = true,
@@ -1700,7 +1706,7 @@ export function DataGrid<T>({
1700
1706
  )
1701
1707
 
1702
1708
  return (
1703
- <div className={cx('zv-grille', remplir && 'zv-grille--remplir', className)}>
1709
+ <div className={cx('zv-grille', remplir && 'zv-grille--remplir', encadree && 'zv-grille--encadree', className)}>
1704
1710
  {barre && (
1705
1711
  <div className="zv-grille__outils">
1706
1712
  {champRecherche ??
package/src/data.css CHANGED
@@ -1442,6 +1442,34 @@
1442
1442
  gap: 14px;
1443
1443
  }
1444
1444
 
1445
+ /* La grille À BORD d'une carte sans retrait (27/10/2026, HORS RELEVÉ, voir
1446
+ * DECISIONS.md). La barre et la pagination reprennent le retrait d'en-tête
1447
+ * de carte (12 / 16 px, celui des écrans de gestion) ; le tableau court d'un
1448
+ * bord à l'autre et rend son cadre à la carte : deux bordures accolées
1449
+ * faisaient un trait double, et le rayon d'un cadre intérieur ne suit pas
1450
+ * celui de la carte. Le filet du haut reste : il sépare la barre des
1451
+ * intitulés. */
1452
+ .zv-grille--encadree {
1453
+ gap: 0;
1454
+ }
1455
+
1456
+ .zv-grille--encadree > .zv-grille__outils {
1457
+ padding: 12px 16px;
1458
+ }
1459
+
1460
+ /* Les coins du BAS suivent ceux de la carte, moins sa bordure : carrés, le
1461
+ * fond blanc du tableau débordait sur l'arrondi et en masquait le filet.
1462
+ * `max` : sous l'angle vif, le rayon de carte vaut 0 et le calcul serait
1463
+ * négatif. */
1464
+ .zv-grille--encadree .zv-table {
1465
+ border-width: 1px 0 0;
1466
+ border-radius: 0 0 max(0px, calc(var(--r-card) - 1px)) max(0px, calc(var(--r-card) - 1px));
1467
+ }
1468
+
1469
+ .zv-grille--encadree > .zv-pager {
1470
+ padding: 12px 16px;
1471
+ }
1472
+
1445
1473
  @media (max-width: 767px) {
1446
1474
  /* En cartes, l'épinglage, les poignées et la largeur minimale n'ont plus
1447
1475
  * de sens : la carte prend la largeur de l'écran. */