sass-template-common 0.13.8 → 0.14.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/README.md +36 -36
- package/dist/sass-template-common.d.ts +104 -3
- package/dist/sass-template-common.js +2177 -2138
- package/dist/sass-template-common.umd.cjs +51 -51
- package/dist/ui/components/common/headers/headers.css +1 -1
- package/package.json +71 -71
package/README.md
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# sass-template-common
|
|
2
|
-
|
|
3
|
-
Librería web, maqueta de configuración y componentes para proyectos sass.
|
|
4
|
-
|
|
5
|
-
## Publicar nueva versión
|
|
6
|
-
|
|
7
|
-
Para que los cambios se reflejen al publicar:
|
|
8
|
-
|
|
9
|
-
1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
|
|
10
|
-
```bash
|
|
11
|
-
pnpm version:patch # 0.3.21 → 0.3.22
|
|
12
|
-
# o
|
|
13
|
-
pnpm version:minor # 0.3.21 → 0.4.0
|
|
14
|
-
pnpm version:major # 0.3.21 → 1.0.0
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
2. **Build limpio + publicar**:
|
|
18
|
-
```bash
|
|
19
|
-
pnpm run clean && pnpm run build && pnpm publish
|
|
20
|
-
```
|
|
21
|
-
O en un solo paso (patch):
|
|
22
|
-
```bash
|
|
23
|
-
pnpm release:patch
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
|
|
27
|
-
|
|
28
|
-
4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
|
|
29
|
-
```bash
|
|
30
|
-
pnpm update sass-template-common
|
|
31
|
-
# o cambiar la versión en package.json y luego
|
|
32
|
-
pnpm install
|
|
33
|
-
```
|
|
34
|
-
Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
|
|
35
|
-
|
|
36
|
-
**Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
|
|
1
|
+
# sass-template-common
|
|
2
|
+
|
|
3
|
+
Librería web, maqueta de configuración y componentes para proyectos sass.
|
|
4
|
+
|
|
5
|
+
## Publicar nueva versión
|
|
6
|
+
|
|
7
|
+
Para que los cambios se reflejen al publicar:
|
|
8
|
+
|
|
9
|
+
1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
|
|
10
|
+
```bash
|
|
11
|
+
pnpm version:patch # 0.3.21 → 0.3.22
|
|
12
|
+
# o
|
|
13
|
+
pnpm version:minor # 0.3.21 → 0.4.0
|
|
14
|
+
pnpm version:major # 0.3.21 → 1.0.0
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. **Build limpio + publicar**:
|
|
18
|
+
```bash
|
|
19
|
+
pnpm run clean && pnpm run build && pnpm publish
|
|
20
|
+
```
|
|
21
|
+
O en un solo paso (patch):
|
|
22
|
+
```bash
|
|
23
|
+
pnpm release:patch
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
|
|
27
|
+
|
|
28
|
+
4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
|
|
29
|
+
```bash
|
|
30
|
+
pnpm update sass-template-common
|
|
31
|
+
# o cambiar la versión en package.json y luego
|
|
32
|
+
pnpm install
|
|
33
|
+
```
|
|
34
|
+
Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
|
|
35
|
+
|
|
36
|
+
**Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
|
|
@@ -155,9 +155,24 @@ export declare interface AutorInfo {
|
|
|
155
155
|
};
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
export declare const BannerAdvertising: ({ banners, name, scope }: Props_28) => JSX.Element | null;
|
|
158
|
+
export declare const BannerAdvertising: ({ banners, name, legacy, scope }: Props_28) => JSX.Element | null;
|
|
159
159
|
|
|
160
|
-
export declare const BannerAdvertisingMiddle: ({ banners, index, scope }: Props_27) => JSX.Element | null;
|
|
160
|
+
export declare const BannerAdvertisingMiddle: ({ banners, index, name, legacy, scope, }: Props_27) => JSX.Element | null;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Arma la cadena de candidatos de una posición: primero la key canónica
|
|
164
|
+
* (nomenclatura nueva), después los alias legacy en orden.
|
|
165
|
+
*
|
|
166
|
+
* No deduplica por accidente: si un sitio pasa `legacy` igual al canónico el
|
|
167
|
+
* resultado es el mismo lookup una sola vez.
|
|
168
|
+
*/
|
|
169
|
+
export declare const bannerKeyCandidates: (canonical: string, legacy?: BannerLegacyKey) => string[];
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Nombres legacy de una posición de banner. Acepta un string o una lista
|
|
173
|
+
* ordenada (de más a menos prioritario).
|
|
174
|
+
*/
|
|
175
|
+
export declare type BannerLegacyKey = string | string[] | undefined;
|
|
161
176
|
|
|
162
177
|
export declare interface BannerResponse {
|
|
163
178
|
key: string;
|
|
@@ -1241,6 +1256,22 @@ export declare function fetchWithConfigCache<T>(cacheKey: string, fetchFn: () =>
|
|
|
1241
1256
|
staleOnError?: boolean;
|
|
1242
1257
|
}): Promise<T>;
|
|
1243
1258
|
|
|
1259
|
+
/**
|
|
1260
|
+
* Resuelve una posición de banner contra la respuesta del CMS con fallback a
|
|
1261
|
+
* nomenclatura vieja.
|
|
1262
|
+
*
|
|
1263
|
+
* REGLA DE CAÍDA — **solo por ausencia**. Se devuelve la primera key que
|
|
1264
|
+
* EXISTE en el array, sin mirar `show` ni `value`. Si la key canónica está
|
|
1265
|
+
* presente pero apagada (`show: false`) NO se cae al legacy: apagar un banner
|
|
1266
|
+
* es una decisión deliberada de tráfico y el fallback no debe revivirlo.
|
|
1267
|
+
*
|
|
1268
|
+
* Los guards de `show`/`value` los sigue aplicando cada componente sobre el
|
|
1269
|
+
* `BannerResponse` devuelto, exactamente como antes de este helper. Por eso,
|
|
1270
|
+
* sin `legacy`, el comportamiento es byte-idéntico al `banners.find(...)`
|
|
1271
|
+
* original: misma búsqueda, mismo resultado.
|
|
1272
|
+
*/
|
|
1273
|
+
export declare const findBanner: (banners: Array<BannerResponse> | undefined, canonical: string, legacy?: BannerLegacyKey) => BannerResponse | undefined;
|
|
1274
|
+
|
|
1244
1275
|
export declare const Font: ({ config }: {
|
|
1245
1276
|
config: Config;
|
|
1246
1277
|
}) => JSX.Element | null;
|
|
@@ -1631,6 +1662,26 @@ declare type HeaderProps = {
|
|
|
1631
1662
|
custom_styles?: CSSProperties;
|
|
1632
1663
|
mobileIcon?: any;
|
|
1633
1664
|
customComponent?: ReactNode;
|
|
1665
|
+
/**
|
|
1666
|
+
* [banners] Slot `pre_header`: contenido que se renderiza ARRIBA de la barra
|
|
1667
|
+
* del header estatico, en flujo normal dentro del `<header>`. Pensado para el
|
|
1668
|
+
* banner `pre_header` (posicion no estandar: la mayoria de los sitios no la
|
|
1669
|
+
* usa).
|
|
1670
|
+
*
|
|
1671
|
+
* Solo se pinta en el header ESTATICO, nunca en el sticky: el sticky es la
|
|
1672
|
+
* barra compacta del scroll y duplicar ahi el creativo seria una segunda
|
|
1673
|
+
* impresion del mismo slot publicitario.
|
|
1674
|
+
*
|
|
1675
|
+
* CONTRATO DE ALTURA — el header esta pineado (`position: fixed/absolute;
|
|
1676
|
+
* top: 0`) y el contenido lo despeja con un `margin-top` fijo. Un sitio que
|
|
1677
|
+
* active `pre_header` DEBE declarar la altura reservada:
|
|
1678
|
+
*
|
|
1679
|
+
* :root { --pre-header-height: 90px; }
|
|
1680
|
+
*
|
|
1681
|
+
* `headers-header-1.css` la suma al margen del contenido. Default `0px`, asi
|
|
1682
|
+
* que sin el slot el layout queda byte-identico.
|
|
1683
|
+
*/
|
|
1684
|
+
preHeader?: ReactNode;
|
|
1634
1685
|
prerender_classes?: {
|
|
1635
1686
|
alert?: string;
|
|
1636
1687
|
};
|
|
@@ -2062,6 +2113,33 @@ export declare type LibraryConfig = {
|
|
|
2062
2113
|
middle?: boolean;
|
|
2063
2114
|
innote?: boolean;
|
|
2064
2115
|
};
|
|
2116
|
+
/**
|
|
2117
|
+
* [banners] Nomenclatura de keys de banners. **Solo gatea los renombres que
|
|
2118
|
+
* REUSAN un nombre existente**; el resto de la nomenclatura nueva
|
|
2119
|
+
* (`post_header`, `pre_footer`, `pre_header`, `destacado_N`,
|
|
2120
|
+
* `destacado_middle`, `block_N_middle`, `body_N`) no pasa por acá: son
|
|
2121
|
+
* nombres nuevos, sin colisión posible, y se resuelven siempre con fallback
|
|
2122
|
+
* canónico → legacy vía `findBanner`.
|
|
2123
|
+
*
|
|
2124
|
+
* - `'legacy'` (**default**) — comportamiento histórico, byte-idéntico.
|
|
2125
|
+
* Los middles dinámicos del home siguen siendo `middle_dynamic_<slot>` y
|
|
2126
|
+
* los middles de nota siguen numerados desde `middle_2`.
|
|
2127
|
+
* - `'v2'` — los middles dinámicos del home pasan a `middle_<slot>` (con
|
|
2128
|
+
* fallback a `middle_dynamic_<slot>`) y la nota renumera sus middles
|
|
2129
|
+
* arrancando en `middle_1`.
|
|
2130
|
+
*
|
|
2131
|
+
* POR QUÉ ES UN FLAG Y NO UN FALLBACK MÁS. Estos dos casos no son un
|
|
2132
|
+
* renombre, son un SWAP: `middle_N` sigue existiendo después del cambio pero
|
|
2133
|
+
* apunta a otra posición física. Con fallback gradual, un sitio a medio
|
|
2134
|
+
* migrar resolvería el `middle_1` viejo (estático, arriba) desde la posición
|
|
2135
|
+
* nueva (dinámica, abajo) y duplicaría el banner. El flag garantiza que no
|
|
2136
|
+
* exista estado mixto: se da vuelta el mismo día que se renombran las keys
|
|
2137
|
+
* en el CMS.
|
|
2138
|
+
*
|
|
2139
|
+
* Cutover por sitio. Un sitio en `'legacy'` no ve NINGÚN cambio de
|
|
2140
|
+
* comportamiento por este refactor.
|
|
2141
|
+
*/
|
|
2142
|
+
CONFIG_bannerKeys?: 'legacy' | 'v2';
|
|
2065
2143
|
/**
|
|
2066
2144
|
* [banners] Rutas cuyo contenido de banners depende de que exista un query
|
|
2067
2145
|
* string (ej. `'buscar'`: sin query no hay resultados → no hay banners). Para
|
|
@@ -3212,13 +3290,36 @@ declare type Props_26 = {
|
|
|
3212
3290
|
|
|
3213
3291
|
declare type Props_27 = {
|
|
3214
3292
|
banners: Array<BannerResponse>;
|
|
3215
|
-
|
|
3293
|
+
/**
|
|
3294
|
+
* Sufijo numérico histórico: la key resuelta es `middle_${index}`. Se sigue
|
|
3295
|
+
* soportando tal cual — todos los call sites que no migraron lo usan.
|
|
3296
|
+
* Ignorado si se pasa `name`.
|
|
3297
|
+
*/
|
|
3298
|
+
index?: string | number;
|
|
3299
|
+
/**
|
|
3300
|
+
* Key canónica COMPLETA, sin prefijo `middle_`. Es la vía para las
|
|
3301
|
+
* posiciones que dejaron de ser un middle numerado (`post_header`,
|
|
3302
|
+
* `pre_footer`, `pre_header`, `destacado_middle`, `block_N_middle`).
|
|
3303
|
+
*/
|
|
3304
|
+
name?: string;
|
|
3305
|
+
/**
|
|
3306
|
+
* Key(s) con las que esta posición se llamaba antes. Solo se consultan si la
|
|
3307
|
+
* canónica no está en la respuesta del CMS. Ver `findBanner`.
|
|
3308
|
+
*/
|
|
3309
|
+
legacy?: BannerLegacyKey;
|
|
3216
3310
|
scope?: BannerScope;
|
|
3217
3311
|
};
|
|
3218
3312
|
|
|
3219
3313
|
declare type Props_28 = {
|
|
3220
3314
|
banners: Array<BannerResponse>;
|
|
3315
|
+
/** Key canónica (nomenclatura nueva). */
|
|
3221
3316
|
name: string;
|
|
3317
|
+
/**
|
|
3318
|
+
* Key(s) con las que esta misma posición se llamaba antes. Se usan solo si
|
|
3319
|
+
* `name` NO está en la respuesta del CMS, así el renombre es inerte hasta
|
|
3320
|
+
* que se actualicen los banners. Ver `findBanner`.
|
|
3321
|
+
*/
|
|
3322
|
+
legacy?: BannerLegacyKey;
|
|
3222
3323
|
scope?: BannerScope;
|
|
3223
3324
|
};
|
|
3224
3325
|
|