sass-template-common 0.12.21 → 0.13.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.
@@ -377,6 +377,8 @@ declare type CarrouselProps = {
377
377
  cardGap?: number;
378
378
  fullPageWidth?: boolean;
379
379
  pagination?: boolean;
380
+ /** Dots circulares (opt-in). No altera el estilo de barra de `pagination`. */
381
+ paginationCircle?: boolean;
380
382
  enableDrag?: boolean;
381
383
  };
382
384
 
@@ -793,6 +795,7 @@ export declare type ConfigDynamic = {
793
795
  'Carrusel card': any;
794
796
  'Carrusel story': any;
795
797
  'Carrusel owl': any;
798
+ 'Carrusel video'?: any;
796
799
  'Modulo fotogaleria': any;
797
800
  'Destacado full width'?: any;
798
801
  };
@@ -800,6 +803,7 @@ export declare type ConfigDynamic = {
800
803
  export declare type ConfigMain = {
801
804
  Diario: DestacadoDiario;
802
805
  'Diario con imagen': DestacadoDiario;
806
+ 'Diario en vivo': DestacadoDiarioLive;
803
807
  Super: SectionCardCSS & Super;
804
808
  '3 notas verticales': {
805
809
  customLargeSection?: SectionCardCSS & Super;
@@ -932,7 +936,7 @@ declare interface Date_2 {
932
936
  }
933
937
  export { Date_2 as Date }
934
938
 
935
- export declare const DEBUG_MainSlots: ({ mainBlock, StylesConfigMain, config, banners, }: Props_22) => JSX.Element | null;
939
+ export declare const DEBUG_MainSlots: ({ mainBlock, StylesConfigMain, config, banners, commonServices, }: Props_22) => JSX.Element | null;
936
940
 
937
941
  declare type DebugCfg = {
938
942
  buttonPosition?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
@@ -1023,6 +1027,31 @@ declare type DestacadoDiario = {
1023
1027
  customNewsDescriptionStyles: NewsDescriptionBlockCSS;
1024
1028
  };
1025
1029
 
1030
+ declare type DestacadoDiarioLive = {
1031
+ customSectionCardStyles: SectionCardCSS;
1032
+ customNewsDescriptionStyles: NewsDescriptionBlockCSS;
1033
+ customLiveStyles?: SectionCardCSS & {
1034
+ borderBottom?: string;
1035
+ padding?: string;
1036
+ '--image-play-margin'?: string;
1037
+ '--news-description-padding'?: string;
1038
+ '--news-description-border-bottom'?: string;
1039
+ };
1040
+ };
1041
+
1042
+ export declare interface DestacadoDiarioLiveProps extends SectionCardProps, NewDescriptionBlockProps {
1043
+ banner?: ReactNode;
1044
+ banners?: BannerResponse[];
1045
+ rightOnlyBanner?: boolean;
1046
+ customSectionCardStyles?: CSSProperties;
1047
+ customNewsDescriptionStyles?: CSSProperties;
1048
+ customLiveStyles?: CSSProperties;
1049
+ paths: RoutePathConfig;
1050
+ block: NewListResponseData[];
1051
+ commonServices?: CommonServices;
1052
+ speculationPrerenderClass?: string;
1053
+ }
1054
+
1026
1055
  export declare const DestacadoNoticias: FC<DestacadoNoticiasProps>;
1027
1056
 
1028
1057
  declare interface DestacadoNoticiasProps extends Omit<ImageProps_2, 'preview'>, SectionProps {
@@ -1115,7 +1144,7 @@ export declare class DynamicBlockServices extends CommonServices {
1115
1144
 
1116
1145
  export declare const DynamicComponents: ({ slots, DYNAMIC_SLOT_SUBINDEXES, stylesConfig, AutorIcon, config, banners, showTagBySection, pathname, }: Props_21) => ReactNode[];
1117
1146
 
1118
- export declare const DynamicMainSlot: ({ component, data, banners, rightOnlyBanner, isHome, }: Props_20) => JSX.Element;
1147
+ export declare const DynamicMainSlot: ({ component, data, banners, rightOnlyBanner, isHome, commonServices, }: Props_20) => JSX.Element;
1119
1148
 
1120
1149
  export declare function DynamicSlot({ component, slot_id, data, banners, isHome, }: Props_18): JSX.Element | undefined;
1121
1150
 
@@ -3137,6 +3166,7 @@ declare type Props_20 = {
3137
3166
  banners: BannerResponse[];
3138
3167
  rightOnlyBanner?: boolean;
3139
3168
  isHome?: boolean;
3169
+ commonServices?: CommonServices;
3140
3170
  };
3141
3171
 
3142
3172
  declare type Props_21 = {
@@ -3155,6 +3185,7 @@ declare type Props_22 = {
3155
3185
  StylesConfigMain: ConfigMain;
3156
3186
  config: Config;
3157
3187
  banners: BannerResponse[];
3188
+ commonServices?: CommonServices;
3158
3189
  };
3159
3190
 
3160
3191
  declare type Props_23 = {
@@ -3385,6 +3416,36 @@ declare type Props_45 = {
3385
3416
  * asi que el header no cambia salvo que el consumidor lo prenda.
3386
3417
  */
3387
3418
  showPosition?: boolean;
3419
+ /**
3420
+ * Si true, el mail deja de salir como bloque de texto (`.sass-com-ah1-email`)
3421
+ * y pasa a ser UNA RED MAS dentro de `.sass-com-ah1-social`: un icono de
3422
+ * sobre que linkea al `mailto:`. Es como lo pinta el sitio viejo de Debate
3423
+ * (`getSocialFollowLink` tiene `mail: 'mailto:{username}'` y la ficha del
3424
+ * autor no tiene linea de mail aparte).
3425
+ *
3426
+ * Apagado por defecto: los sitios que hoy muestran el mail en texto lo
3427
+ * siguen mostrando igual. A diferencia del bloque de texto, esta variante SI
3428
+ * respeta el flag del CMS (`USER_MOSTRAR_MAIL` / `USER_SHOWEMAIL`).
3429
+ */
3430
+ showEmailAsSocial?: boolean;
3431
+ /**
3432
+ * Si true, la bio del autor se pinta como HTML en lugar de texto escapado.
3433
+ *
3434
+ * El CMS deja cargar la descripcion con formato (`<br>` entre parrafos,
3435
+ * negritas, links), pero React escapa los children: el redactor que separo
3436
+ * su bio en cinco bloques veia los `<br>` literales en la ficha. Con el
3437
+ * toggle prendido el markup se interpreta, pasado antes por
3438
+ * `sanitizeRichText`: sobreviven los tags de formato y los links, y se caen
3439
+ * `<script>`, `<iframe>`, los handlers `on*` y los `href="javascript:"`.
3440
+ *
3441
+ * Apagado por defecto: los sitios que hoy tienen `<`/`>` en la bio como
3442
+ * texto (o que no cargan HTML) no cambian.
3443
+ *
3444
+ * El nodo pasa de `<p>` a `<div>` cuando esta prendido -- un `<p>` no puede
3445
+ * contener `<p>` ni `<ul>` y el browser cerraria el parrafo antes de tiempo,
3446
+ * partiendo la ficha. La clase (`.sass-com-ah1-description`) es la misma.
3447
+ */
3448
+ allowBioHtml?: boolean;
3388
3449
  };
3389
3450
 
3390
3451
  declare type Props_46 = {
@@ -3392,6 +3453,12 @@ declare type Props_46 = {
3392
3453
  autorIcon: any;
3393
3454
  /** Si true, usa iconos rellenos (filled) para redes sociales en lugar de outline */
3394
3455
  socialIconsFilled?: boolean;
3456
+ /**
3457
+ * Si true, la bio se pinta como HTML sanitizado en lugar de texto escapado.
3458
+ * Mismo contrato que en `AutorHeader1`: pasa el formato del CMS (`<br>`,
3459
+ * negritas, links) y no pasa nada ejecutable. Apagado por defecto.
3460
+ */
3461
+ allowBioHtml?: boolean;
3395
3462
  };
3396
3463
 
3397
3464
  declare type Props_47 = {
@@ -3868,6 +3935,16 @@ export declare function runConfigOriginComparison(params: {
3868
3935
  runs?: number;
3869
3936
  }): Promise<ConfigOriginComparisonReport | null>;
3870
3937
 
3938
+ /**
3939
+ * Devuelve el HTML con SOLO los tags y atributos de la allowlist. Lo que no
3940
+ * esta permitido pierde el markup pero mantiene el texto.
3941
+ *
3942
+ * @example
3943
+ * sanitizeRichText('a<br>b<script>x()</script><a href="javascript:x()">c</a>')
3944
+ * // 'a<br />b<a>c</a>'
3945
+ */
3946
+ export declare const sanitizeRichText: (html?: string | null) => string;
3947
+
3871
3948
  export declare function ScriptHydrator({ containerId, containerId2 }: Props_17): null;
3872
3949
 
3873
3950
  declare type ScriptProps = {
@@ -4118,6 +4195,13 @@ export declare const Spin: ({ className }: {
4118
4195
 
4119
4196
  export declare function StaticSlotWrapper({ children, stylesConfigEntry, }: Props_19): JSX.Element;
4120
4197
 
4198
+ /**
4199
+ * Texto plano: saca los tags y colapsa espacios. Es lo que necesita cualquier
4200
+ * consumidor que NO renderiza HTML (schemas JSON-LD, `meta description`,
4201
+ * `aria-label`, `title`), donde un `<br>` literal seria basura visible.
4202
+ */
4203
+ export declare const stripHtml: (html?: string | null) => string;
4204
+
4121
4205
  export declare const SubscribeColumn: (props: Props_30) => JSX.Element;
4122
4206
 
4123
4207
  export declare const SubscribeRow: FC<Props_31>;
@@ -4369,6 +4453,16 @@ export declare const VideoBlock3: FC<Props_35>;
4369
4453
 
4370
4454
  export declare const VideoBlock4: FC<Props_48>;
4371
4455
 
4456
+ export declare const VideoCarousel: FC<VideoCarouselProps>;
4457
+
4458
+ declare interface VideoCarouselProps {
4459
+ titleUrl?: string;
4460
+ content: Array<VideoResponseData>;
4461
+ title?: string;
4462
+ slot_id?: string;
4463
+ identificador?: number;
4464
+ }
4465
+
4372
4466
  export declare const VideoEmbeddedHeader: ({ newsformated, internal, commonServices, }: {
4373
4467
  newsformated: NewListResponseData;
4374
4468
  internal?: string;