sass-template-common 0.11.24 → 0.11.25

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.
@@ -976,6 +976,16 @@ export declare function decodeApiEnv<T = any>(encoded: Record<string, any>): T;
976
976
  */
977
977
  export declare const DEFAULT_HEAD_CONFIG: headConfig;
978
978
 
979
+ /**
980
+ * Ventana por defecto del relativo, en horas. **48 h**: hasta ahí el texto es
981
+ * "hace N horas"; pasada la ventana, fecha absoluta.
982
+ *
983
+ * Es el default de `isWithinRelativeWindow`, de `formatRelativeDate` y del
984
+ * hidratador, para que los tres no puedan discrepar. Se sobreescribe por sitio
985
+ * con `CONFIG_relativeTime.maxAgeHours`.
986
+ */
987
+ export declare const DEFAULT_RELATIVE_MAX_AGE_HOURS = 48;
988
+
979
989
  export declare const DEFAULT_S3_REFERER = "https://goamg.amplifyapp.com/vndomv";
980
990
 
981
991
  declare type DestacadoDiario = {
@@ -1262,6 +1272,11 @@ export declare const formatNewsMeta: (meta: any, news: NewListResponseData | und
1262
1272
  * Relativo ("hace 3 horas") si la nota es más nueva que `maxAgeHours`;
1263
1273
  * si no, cae a `formatDate` (absoluto).
1264
1274
  *
1275
+ * Escala: `hace instantes` (< 1 min) · `hace N minutos` · `hace N horas` ·
1276
+ * `hace N días`. Pasada la ventana (`maxAgeHours`, default 48) vuelve al
1277
+ * absoluto — el hidratador restaura el texto que emitió el SSR, que puede no
1278
+ * ser el de `formatDate` (la nota usa `formatDateJournalistArticule`).
1279
+ *
1265
1280
  * `now` entra POR PARÁMETRO, no se lee adentro: así la función es determinista
1266
1281
  * dado `(date, now)` y el SSR nunca la llama con `Date.now()` por accidente
1267
1282
  * (un relativo renderizado en servidor queda congelado en el cache del CDN y
@@ -1934,11 +1949,18 @@ export declare type LibraryConfig = {
1934
1949
  * un relativo renderizado en servidor queda congelado en el CDN.
1935
1950
  *
1936
1951
  * Default `undefined` -> comportamiento actual (absoluto, sin hidratador).
1937
- * `maxAgeHours` default 24: pasada esa antiguedad se muestra el absoluto.
1952
+ *
1953
+ * - `enabled` — kill switch. Sin `true` el hidratador no toca el DOM.
1954
+ * - `scope` — qué familias de superficie hidrata. Default `'all'`.
1955
+ * Ver {@link RelativeTimeScope}.
1956
+ * - `maxAgeHours` — cuánto tiempo se mantiene el relativo. Default **48**;
1957
+ * pasada esa antigüedad se muestra el absoluto que emitió
1958
+ * el SSR (cada superficie conserva su propio formato).
1938
1959
  */
1939
1960
  CONFIG_relativeTime?: {
1940
1961
  enabled: boolean;
1941
1962
  maxAgeHours?: number;
1963
+ scope?: RelativeTimeScope;
1942
1964
  };
1943
1965
  CONFIG_deferBanners?: {
1944
1966
  common?: boolean;
@@ -3462,18 +3484,35 @@ export declare const RELATIVE_TIME_ATTR = "data-rel-ts";
3462
3484
  */
3463
3485
  export declare const RELATIVE_TIME_PREFIX_ATTR = "data-rel-prefix";
3464
3486
 
3487
+ /**
3488
+ * Superficie a la que pertenece el elemento, para que `CONFIG_relativeTime.scope`
3489
+ * pueda prender/apagar por familia sin que el hidratador tenga que adivinar la
3490
+ * ruta ni conocer selectores de componentes.
3491
+ *
3492
+ * - `'note'` → la fecha del ENCABEZADO de la nota (`JournalistArticule3/4/5`)
3493
+ * y la de los comentarios: solo existen dentro de una nota.
3494
+ * - `'summary'`→ tarjetas y listados (home, sección, tag, autor, búsqueda,
3495
+ * "más noticias", videos, opinión). Es el DEFAULT.
3496
+ *
3497
+ * `'summary'` no se emite: la ausencia del atributo YA significa summary. Así
3498
+ * el HTML de las 8 superficies que ya existían no cambia ni un byte, y el HTML
3499
+ * emitido por versiones anteriores (sin el atributo) se sigue clasificando
3500
+ * bien.
3501
+ */
3502
+ export declare const RELATIVE_TIME_SCOPE_ATTR = "data-rel-scope";
3503
+
3465
3504
  /**
3466
3505
  * Props JSX del contrato. Devuelve `{}` (spread vacío, cero atributos en el
3467
3506
  * HTML) si el timestamp no sirve: la superficie queda exactamente como hoy.
3468
3507
  */
3469
- export declare const relativeTimeAttrs: (ts: number | undefined, prefix?: string) => Record<string, string | number>;
3508
+ export declare const relativeTimeAttrs: (ts: number | undefined, prefix?: string, surface?: RelativeTimeSurface) => Record<string, string | number>;
3470
3509
 
3471
3510
  /**
3472
3511
  * La misma info que `relativeTimeAttrs`, para los emisores de HTML-string
3473
3512
  * (`homeCardFastRender`). Devuelve `''` o un fragmento que ARRANCA con espacio,
3474
3513
  * listo para concatenar dentro del tag.
3475
3514
  */
3476
- export declare const relativeTimeAttrsHTML: (ts: number | undefined, prefix?: string) => string;
3515
+ export declare const relativeTimeAttrsHTML: (ts: number | undefined, prefix?: string, surface?: RelativeTimeSurface) => string;
3477
3516
 
3478
3517
  declare type RelativeTimeOptions = {
3479
3518
  /**
@@ -3481,13 +3520,39 @@ declare type RelativeTimeOptions = {
3481
3520
  * el hidratador es un no-op: no observa, no agenda y no toca el DOM.
3482
3521
  */
3483
3522
  enabled?: boolean;
3523
+ /** Ventana del relativo. Default `CONFIG_relativeTime.maxAgeHours`, o 48. */
3484
3524
  maxAgeHours?: number;
3525
+ /**
3526
+ * Qué familias de superficie hidratar. Default `CONFIG_relativeTime.scope`,
3527
+ * o `'all'` — que es exactamente el comportamiento previo al toggle.
3528
+ */
3529
+ scope?: RelativeTimeScope;
3485
3530
  /** Cada cuánto refresca el texto. Default 60_000. `0` desactiva el refresco. */
3486
3531
  refreshMs?: number;
3487
3532
  /** Raíz del query. Default `document`. */
3488
3533
  root?: ParentNode;
3489
3534
  };
3490
3535
 
3536
+ /**
3537
+ * Alcance de la fecha relativa (`CONFIG_relativeTime.scope`).
3538
+ *
3539
+ * - `'all'` — todo el sitio, **incluida la fecha del encabezado de la
3540
+ * nota** (`JournalistArticule3/4/5`) y la de los comentarios.
3541
+ * Es el default y el comportamiento previo al toggle.
3542
+ * - `'summaries'` — solo tarjetas y listados: home, sección, tag, autor,
3543
+ * búsqueda, "más noticias", videos, opinión. El encabezado de
3544
+ * la nota y los comentarios quedan en absoluto.
3545
+ * - `'notes'` — solo lo que vive dentro de la nota: encabezado y
3546
+ * comentarios. Los listados quedan en absoluto.
3547
+ *
3548
+ * La clasificación viaja en el HTML como `data-rel-scope="note"` (la ausencia
3549
+ * del atributo significa `summary`), así que no depende de detectar la ruta.
3550
+ */
3551
+ export declare type RelativeTimeScope = 'all' | 'summaries' | 'notes';
3552
+
3553
+ /** Familia de superficie. Ver `RELATIVE_TIME_SCOPE_ATTR`. */
3554
+ export declare type RelativeTimeSurface = 'note' | 'summary';
3555
+
3491
3556
  export declare const removePages: (pathname: string) => string;
3492
3557
 
3493
3558
  declare type ReplaceProps = {