@studiolxd/brand 48.0.0 → 48.1.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/CHANGELOG.md CHANGED
@@ -7,6 +7,39 @@ El paquete sigue [semver](https://semver.org/lang/es/): **patch** para bug fixes
7
7
  regeneración de `dist`, **minor** para componentes/props/variantes/tokens nuevos, **major**
8
8
  para breaking changes.
9
9
 
10
+ ## [48.1.0] — 2026-09-16
11
+
12
+ > **Minor.** `FilterBar` pasa a columnas fijas por punto de corte —4 en escritorio, 2 en
13
+ > tableta, 1 antes de `md`— que llenan la fila entera en vez de dejar hueco a la derecha.
14
+ > Y `Pagination` deja de pintarse con 0 registros, sea cual sea el resto de sus props.
15
+
16
+ ### `FilterBar`: columnas por punto de corte, no por aritmética del ancho disponible
17
+
18
+ `.filter-bar__row` era `repeat(auto-fill, minmax(<mínimo>, 1fr))`: el número de columnas
19
+ lo decidía solo el ancho disponible, así que cuatro filtros en escritorio podían dejar una
20
+ columna vacía a la derecha en vez de llenar la fila. Ahora el máximo de columnas es fijo
21
+ por punto de corte —4 en `lg`, 2 en `md`, 1 antes— y la rejilla es `auto-fit` con un
22
+ mínimo que es una fracción del contenedor: con menos filtros que el máximo, las columnas
23
+ que sobran colapsan y las que tienen contenido se reparten el ancho sobrante, así que la
24
+ fila siempre queda llena — tres filtros en escritorio son tres columnas iguales, no tres
25
+ de cuatro con hueco. Con más filtros que el máximo, saltan de fila como antes. El botón de
26
+ `actions` sigue siendo una celda más de la misma rejilla, así que participa del reparto.
27
+
28
+ Se retira el token `filter-bar.column-min-inline-size` (ya no decide nada: el máximo de
29
+ columnas es fijo en el CSS, no una medida). El resto de los tokens de la barra no cambia.
30
+
31
+ ### `Pagination`: con 0 registros, nunca se pinta
32
+
33
+ `total === 0` dejaba de pintar el `<nav>` solo si además `pageCount` no estaba informado y
34
+ `afterPageSize` estaba vacío — con `showTotal`, con el selector de página o con la ranura
35
+ llena, un listado sin resultados seguía sacando un paginador sin nada que paginar. Ahora
36
+ `total === 0` (o `pageCount === 0`) no pinta el `<nav>` **nunca**, con independencia de las
37
+ demás props. La ranura sigue salvando al paginador solo cuando el total **no se conoce
38
+ todavía** (la prop no se ha informado) y hay como mucho una página — una tabla que aún no
39
+ ha resuelto su total pero ya trae algo que exportar—; con una página y registros de verdad
40
+ (`total` informado y mayor que 0) se sigue pintando si hay selector, ranura o total, como
41
+ antes.
42
+
10
43
  ## [48.0.0] — 2026-09-16
11
44
 
12
45
  > **Major.** Novena familia al proveedor de textos: copiar, datos y estado. Diecisiete
@@ -2546,7 +2546,6 @@ var e = {
2546
2546
  "--filter-bar-gap": "1.5rem",
2547
2547
  "--filter-bar-column-gap": "1rem",
2548
2548
  "--filter-bar-row-gap": "0.75rem",
2549
- "--filter-bar-column-min-inline-size": "12rem",
2550
2549
  "--filter-bar-actions-gap": "0.75rem",
2551
2550
  "--filter-bar-label-offset": "calc(0.875rem * 1.5 + 0.5rem)",
2552
2551
  "--filter-bar-control-block-size": "2.5rem",
@@ -44,9 +44,10 @@ export interface FilterBarProps extends Omit<ComponentPropsWithoutRef<'div'>, 'c
44
44
  * consumidor, igual que en un formulario.
45
45
  *
46
46
  * Existe porque montarla a mano en un `Inline` se rompe en móvil: los campos
47
- * no encogen por debajo de su contenido y la fila se sale. Aquí la rejilla es
48
- * `auto-fit` sobre un ancho mínimo por token, así que el número de columnas lo
49
- * decide el sitio disponible y en pantalla estrecha queda una sola.
47
+ * no encogen por debajo de su contenido y la fila se sale. Aquí las columnas
48
+ * son fijas por punto de corte —4 en escritorio, 2 en tableta, 1 antes de
49
+ * `md`— y `auto-fit` hace que los filtros que haya llenen la fila entera, sin
50
+ * hueco a la derecha cuando hay menos de los que caben.
50
51
  *
51
52
  * `{...rest}` (`id`, `data-*`, `aria-*`…) va al `<div>`.
52
53
  */
@@ -33,9 +33,23 @@ export interface PaginationProps {
33
33
  * (`cursor`): para listados por cursor, donde no se sabe cuántas páginas hay.
34
34
  */
35
35
  mode?: 'pages' | 'cursor';
36
- /** Total de registros. Con `pageCount` o en modo `cursor` no hace falta. */
36
+ /**
37
+ * Total de registros. Con `pageCount` o en modo `cursor` no hace falta.
38
+ * Con `0` el paginador **no se pinta nunca** —ni con `pageCount` informado,
39
+ * ni con `showTotal`, ni con la ranura `afterPageSize` llena: no hay nada
40
+ * que paginar ni que exportar—. Ver la regla completa en `pageCount`.
41
+ */
37
42
  total?: number;
38
- /** Número de páginas, cuando quien pagina ya lo sabe (en vez de `total` + `pageSize`). */
43
+ /**
44
+ * Número de páginas, cuando quien pagina ya lo sabe (en vez de `total` +
45
+ * `pageSize`). Con `0`, igual que `total={0}`: el paginador no se pinta.
46
+ *
47
+ * Regla completa de cuándo el `<nav>` devuelve `null` (modo `pages`; en
48
+ * `cursor` no aplica, ver su prop): `total === 0`, o `pageCount === 0`, o
49
+ * (`total` sin informar y `pageCount` sin informar o `<= 1` y sin
50
+ * `afterPageSize`). Con una sola página pero `total` informado y mayor que
51
+ * 0, como hoy: se pinta si hay selector, ranura o `showTotal`.
52
+ */
39
53
  pageCount?: number;
40
54
  /** Página activa (1-indexed). En modo `cursor`, opcional. */
41
55
  page?: number;