sass-cms-template-common 0.0.17 → 0.0.19

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/dist/index.d.ts CHANGED
@@ -13,6 +13,13 @@ import { Theme } from '@mui/material/styles';
13
13
  * Navegación lateral por defecto.
14
14
  * `module` debe coincidir exactamente con `module` en POST /auth/modulesAvailable
15
15
  * y con las claves en `messages.navigation`.
16
+ *
17
+ * Convención de destino por ítem:
18
+ * - `jsp: true` → admin viejo (OpenCMS). Abre con form POST autenticado a
19
+ * `cmsBaseUrl` (dev.cms-medios.com), en pestaña nueva. Tiene prioridad.
20
+ * - `legacy: true` (sin `jsp`) → Angular master (`legacyBaseUrl`). Enlace en
21
+ * pestaña nueva.
22
+ * - sin flags → ruta interna del propio gestor React (misma pestaña).
16
23
  */
17
24
  export declare const ACCOUNT_NAV_BLOCKS: NavBlock[];
18
25
 
@@ -35,7 +42,7 @@ export declare type AppMessageNode = string | {
35
42
  /** Árbol de mensajes del gestor (namespaces → claves → string anidable). */
36
43
  export declare type AppMessages = Record<string, AppMessageNode>;
37
44
 
38
- export declare function AppShell({ pathname, sites, children, notificationUnreadCount, notificationsData, copilotSuggestionsHref, onEditorialSeeMore, onEditorialRemindLater, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, newContentGroups, previewFormats, operationPermissions, isAdmin, onNewContentSelect, onPreviewSelect, LinkComponent, permissions, locale, language, messages, appMessages, baseUrl, profileServices, }: AppShellProps): JSX.Element;
45
+ export declare function AppShell({ pathname, sites, children, notificationUnreadCount, notificationsData, copilotSuggestionsHref, onEditorialSeeMore, onEditorialRemindLater, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, previewFormats, operationPermissions, isAdmin, onPreviewSelect, LinkComponent, permissions, locale, language, messages, appMessages, baseUrl, profileServices, }: AppShellProps): JSX.Element;
39
46
 
40
47
  export declare type AppShellProps = {
41
48
  pathname: string;
@@ -65,16 +72,12 @@ export declare type AppShellProps = {
65
72
  cmsBaseUrl?: string;
66
73
  /** Sesión para el redirect al admin viejo (token, sitio, publicación, usuario). */
67
74
  legacySession?: LegacyAdminSession;
68
- /** Columnas/ítems del menú "Nuevo". Por defecto, la estructura del CMS legacy. */
69
- newContentGroups?: NewContentGroup[];
70
75
  /** Formatos del menú de previsualización. Por defecto, Desktop/Mobile/Tablet. */
71
76
  previewFormats?: PreviewFormat[];
72
77
  /** Operaciones concedidas al usuario (`POST /auth/permissions`). */
73
78
  operationPermissions?: string[];
74
- /** Si el usuario es administrador (ve todos los ítems del menú "Nuevo"). */
79
+ /** Si el usuario es administrador (ve todos los ítems restringidos por permiso). */
75
80
  isAdmin?: boolean;
76
- /** Fallback (sin sesión) del clic en un ítem del menú "Nuevo" (recibe su `id`). */
77
- onNewContentSelect?: (itemId: string) => void;
78
81
  /** Integración: clic en un formato de previsualización (recibe su `id`). */
79
82
  onPreviewSelect?: (formatId: string) => void;
80
83
  LinkComponent?: CmsLinkComponent;
@@ -304,7 +307,7 @@ declare type BaseFieldConfig = {
304
307
  * despliega opciones adicionales. Si no hay opciones visibles, la flecha se
305
308
  * oculta automáticamente.
306
309
  */
307
- export declare function BtnDropdown({ titleButton, options, icon, onAction, disabled, enableButton, whiteBtn, showDropdownOptions, testId, }: BtnDropdownProps): JSX.Element;
310
+ export declare function BtnDropdown({ titleButton, options, icon, onAction, disabled, enableButton, whiteBtn, showDropdownOptions, openUpward, testId, }: BtnDropdownProps): JSX.Element;
308
311
 
309
312
  export declare type BtnDropdownProps = {
310
313
  /** Texto o nodo (ya traducido) del botón principal. */
@@ -323,6 +326,11 @@ export declare type BtnDropdownProps = {
323
326
  whiteBtn?: boolean;
324
327
  /** Muestra u oculta la flecha del desplegable. Por defecto `true`. */
325
328
  showDropdownOptions?: boolean;
329
+ /**
330
+ * Abre el menú hacia arriba (útil cuando el botón vive al pie de un footer o
331
+ * pegado al margen inferior). Por defecto `false` (abre hacia abajo).
332
+ */
333
+ openUpward?: boolean;
326
334
  /** Valor base para los `data-testid`. */
327
335
  testId?: string;
328
336
  };
@@ -1983,6 +1991,33 @@ export declare class CmsRecipesServices {
1983
1991
  schedulePublish: (paths: string[]) => Promise<CmsResponse>;
1984
1992
  }
1985
1993
 
1994
+ /**
1995
+ * Muestra un instante como tiempo transcurrido ("hace 3 días") que se recalcula
1996
+ * solo cada minuto. El cálculo relativo corre únicamente en el cliente (usa
1997
+ * `Date.now()`): en SSR y en el primer render muestra `title` (la fecha absoluta),
1998
+ * evitando el desajuste de hidratación de Next.
1999
+ */
2000
+ export declare function CmsRelativeTime({ epochMs, localeTag, style, title, testId, className, }: CmsRelativeTimeProps): JSX.Element;
2001
+
2002
+ export declare type CmsRelativeTimeProps = {
2003
+ /** Instante a mostrar, en milisegundos (epoch UTC). */
2004
+ epochMs: number;
2005
+ /** Tag BCP 47 (p. ej. `"es-AR"`); usar `getIntlLocaleTag(locale)`. */
2006
+ localeTag: string;
2007
+ /** Estilo del texto: `"long"` (por defecto) → "hace 18 minutos". */
2008
+ style?: RelativeTimeStyle;
2009
+ /**
2010
+ * Texto para el `title` (tooltip nativo) y para el primer render/SSR: conviene
2011
+ * pasar la fecha absoluta ya formateada (p. ej. `formatSiteDateTime(...)`), así
2012
+ * el usuario ve el instante exacto al pasar el mouse y no hay salto vacío.
2013
+ */
2014
+ title?: string;
2015
+ /** Base para el `data-testid` (p. ej. `row-<id>-time`). */
2016
+ testId?: string;
2017
+ /** Clase opcional para estilar el `<span>` desde el gestor. */
2018
+ className?: string;
2019
+ };
2020
+
1986
2021
  /** Envelope común de respuesta de los webservices de OpenCms. */
1987
2022
  export declare interface CmsResponse {
1988
2023
  status: 'ok' | 'fail' | 'error';
@@ -2003,22 +2038,48 @@ export declare interface CmsResponseLike {
2003
2038
  * panel lateral. Replica el comportamiento del `app-search` del Angular legacy
2004
2039
  * (incluido el modo `collapsible` que crece al enfocar y colapsa al vaciarse).
2005
2040
  *
2006
- * Es presentacional y controlado: el texto y los textos visibles vienen por
2007
- * props; la decisión de qué abrir en "avanzadas" vive en el gestor.
2041
+ * Con la prop `chips` pasa a **buscador de chips**: cada término escrito se
2042
+ * confirma como chip con `;` (sin buscar) o con Enter (que además ejecuta la
2043
+ * búsqueda), y cada chip se muestra dentro del campo con su "x" para quitarlo
2044
+ * (NAA-4820). Es presentacional y controlado: el texto, los chips y los textos
2045
+ * visibles vienen por props; la decisión de qué abrir en "avanzadas" y cómo
2046
+ * filtrar vive en el gestor.
2008
2047
  */
2009
- export declare function CmsSearchField({ value, onChange, onSearch, onClear, placeholder, showIcon, showAdvanced, advancedActive, onAdvancedClick, collapsible, width, grow, maxWidth, endGap, advancedAriaLabel, clearAriaLabel, ariaLabel, testId, }: CmsSearchFieldProps): JSX.Element;
2048
+ export declare function CmsSearchField({ value, onChange, onSearch, onClear, placeholder, chips, onChipsChange, chipSeparator, addPlaceholder, removeChipAriaLabel, showIcon, showAdvanced, advancedActive, onAdvancedClick, collapsible, width, grow, maxWidth, endGap, startGap, advancedAriaLabel, clearAriaLabel, ariaLabel, testId, }: CmsSearchFieldProps): JSX.Element;
2010
2049
 
2011
2050
  export declare type CmsSearchFieldProps = {
2012
- /** Valor del texto de búsqueda (controlado). */
2051
+ /** Valor del texto de búsqueda en curso (controlado). */
2013
2052
  value: string;
2014
2053
  /** Callback en cada cambio del texto. */
2015
2054
  onChange: (value: string) => void;
2016
- /** Callback al presionar Enter (búsqueda). */
2017
- onSearch?: (value: string) => void;
2018
- /** Callback al limpiar el campo. Si no se pasa, igual limpia `value`. */
2055
+ /**
2056
+ * Callback al ejecutar la búsqueda. En modo texto simple recibe el `value`
2057
+ * (string) al presionar Enter. En modo chips recibe la **lista de chips
2058
+ * vigente** (string[]) cuando hay que aplicar la búsqueda: al presionar Enter,
2059
+ * al quitar un chip y al limpiar. Con `;` NO se dispara (los chips se agregan y
2060
+ * esperan; ver §NAA-4820).
2061
+ */
2062
+ onSearch?: (value: string | string[]) => void;
2063
+ /** Callback al limpiar el campo. Si no se pasa, igual limpia `value` (y chips). */
2019
2064
  onClear?: () => void;
2020
2065
  /** Placeholder del input (ya traducido y modificable por el consumidor). */
2021
2066
  placeholder?: string;
2067
+ /**
2068
+ * Modo "chips": lista controlada de términos de búsqueda ya confirmados. Si se
2069
+ * pasa (aunque sea `[]`), el buscador funciona como buscador de chips: cada
2070
+ * término escrito se confirma como chip con `;` (sin buscar) o con Enter (que
2071
+ * además ejecuta la búsqueda). Los chips se muestran dentro del campo, cada uno
2072
+ * con su "x" para quitarlo. Sin esta prop, el campo es un buscador de texto simple.
2073
+ */
2074
+ chips?: string[];
2075
+ /** Callback con la nueva lista de chips (al agregar o quitar). */
2076
+ onChipsChange?: (chips: string[]) => void;
2077
+ /** Tecla que confirma un chip sin ejecutar la búsqueda. Por defecto `;`. */
2078
+ chipSeparator?: string;
2079
+ /** Placeholder cuando ya hay chips (ya traducido). Por defecto el de la lib ("Agregar…"). */
2080
+ addPlaceholder?: string;
2081
+ /** `aria-label` del botón de quitar un chip. */
2082
+ removeChipAriaLabel?: string;
2022
2083
  /** Muestra la lupa a la izquierda. Por defecto `true`. */
2023
2084
  showIcon?: boolean;
2024
2085
  /** Muestra el botón de opciones avanzadas (tres puntos). Por defecto `false`. */
@@ -2045,6 +2106,13 @@ export declare type CmsSearchFieldProps = {
2045
2106
  maxWidth?: number | string;
2046
2107
  /** Espacio mínimo a la derecha cuando `grow` está activo. Por defecto `40`. */
2047
2108
  endGap?: number;
2109
+ /**
2110
+ * Separación mínima a la izquierda (px) que el buscador deja respecto del
2111
+ * control previo (p. ej. un filtro) **al crecer** en modo `grow`. En reposo
2112
+ * mantiene el ancho `width` alineado a la derecha; al enfocar crece hasta el
2113
+ * espacio disponible dejando este hueco a la izquierda. Por defecto sin hueco.
2114
+ */
2115
+ startGap?: number;
2048
2116
  /** `aria-label` del botón de avanzadas. */
2049
2117
  advancedAriaLabel?: string;
2050
2118
  /** `aria-label` del botón de limpiar. */
@@ -3048,10 +3116,34 @@ export declare interface DashboardNotificationsResponse extends CmsResponse {
3048
3116
  newsTask?: DashboardNewsTask[];
3049
3117
  /** Actividades vencidas o por vencer. */
3050
3118
  expireTask?: DashboardExpireTask[];
3119
+ /** Avisos de desasignación de tarea de planning (`person_remove`). */
3120
+ unassignTask?: DashboardUnassignTask[];
3051
3121
  /** Oportunidades editoriales copilot (hasta 3, por `score` desc). NAA-4645. */
3052
3122
  copilot?: DashboardCopilotOpportunity[];
3053
3123
  }
3054
3124
 
3125
+ /**
3126
+ * Aviso de desasignación de tarea de planning presente en POST
3127
+ * /dashboard/notification (array `unassignTask`, mismos campos que `newsTask`).
3128
+ * El back lo despacha solo cuando corresponde (cambio de responsable). El autor
3129
+ * de la desasignación es OPCIONAL: puede venir como `userName` o `userCreation`,
3130
+ * con `userLogin` entre paréntesis. Si no llega ninguno, se usa el texto genérico.
3131
+ */
3132
+ export declare interface DashboardUnassignTask {
3133
+ id?: string;
3134
+ /** Título de la tarea de la que se desasignó al usuario. */
3135
+ title?: string;
3136
+ /** Autor de la desasignación (nombre). Opcional. */
3137
+ userName?: string;
3138
+ userCreation?: string;
3139
+ /** Login del autor (se muestra entre paréntesis). Opcional. */
3140
+ userLogin?: string;
3141
+ /** Timestamp del aviso (epoch ms o `{ time }`). */
3142
+ timeStamp?: unknown;
3143
+ isRead?: boolean;
3144
+ [key: string]: unknown;
3145
+ }
3146
+
3055
3147
  /** Evento de encoder de video presente en POST /dashboard/notification. */
3056
3148
  export declare interface DashboardVideoNotification {
3057
3149
  actionId?: number;
@@ -3292,6 +3384,9 @@ export declare const enMessages: {
3292
3384
  readonly assignedYesterday: "Assigned yesterday";
3293
3385
  readonly assignedOn: "Assigned on";
3294
3386
  readonly expires: "Due";
3387
+ readonly unassignedText: "You are no longer responsible for the task";
3388
+ readonly unassignedRemovedYouFrom: "removed you from the task";
3389
+ readonly unassignedNoLongerResponsible: "You are no longer responsible.";
3295
3390
  readonly editorialOpportunityLabel: "Editorial opportunity";
3296
3391
  readonly editorialOpportunityText: "{count} topics require your attention";
3297
3392
  readonly editorialOpportunityTop: "Top";
@@ -3304,8 +3399,10 @@ export declare const enMessages: {
3304
3399
  };
3305
3400
  readonly search: {
3306
3401
  readonly placeholder: "Search…";
3402
+ readonly addPlaceholder: "Add…";
3307
3403
  readonly inputAriaLabel: "Search";
3308
3404
  readonly clearAriaLabel: "Clear search";
3405
+ readonly removeChipAriaLabel: "Remove term";
3309
3406
  readonly advancedAriaLabel: "Advanced search";
3310
3407
  readonly title: "Advanced search";
3311
3408
  readonly apply: "Apply";
@@ -3513,6 +3610,9 @@ export declare const esMessages: {
3513
3610
  assignedYesterday: string;
3514
3611
  assignedOn: string;
3515
3612
  expires: string;
3613
+ unassignedText: string;
3614
+ unassignedRemovedYouFrom: string;
3615
+ unassignedNoLongerResponsible: string;
3516
3616
  editorialOpportunityLabel: string;
3517
3617
  editorialOpportunityText: string;
3518
3618
  editorialOpportunityTop: string;
@@ -3525,8 +3625,10 @@ export declare const esMessages: {
3525
3625
  };
3526
3626
  search: {
3527
3627
  placeholder: string;
3628
+ addPlaceholder: string;
3528
3629
  inputAriaLabel: string;
3529
3630
  clearAriaLabel: string;
3631
+ removeChipAriaLabel: string;
3530
3632
  advancedAriaLabel: string;
3531
3633
  title: string;
3532
3634
  apply: string;
@@ -3927,6 +4029,25 @@ export declare const fontFamilies: {
3927
4029
  readonly mono: "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
3928
4030
  };
3929
4031
 
4032
+ /**
4033
+ * Formatea un instante como tiempo transcurrido hasta "ahora": "hace 18 minutos",
4034
+ * "hace 3 días", "hace 3 meses". Elige sola la unidad más significativa y se
4035
+ * traduce al idioma del `localeTag` vía `Intl.RelativeTimeFormat` (no requiere
4036
+ * claves i18n propias).
4037
+ *
4038
+ * La cuenta es una resta de instantes UTC, así que NO depende del GMT del sitio
4039
+ * ni de la zona del navegador (a diferencia de `formatSiteDateTime`).
4040
+ *
4041
+ * @param epochMs Instante en milisegundos (UTC).
4042
+ * @param localeTag Tag BCP 47 (p. ej. `"es-AR"`); usar `getIntlLocaleTag(locale)`.
4043
+ * @param options `nowMs` (referencia de "ahora", por defecto `Date.now()`) y
4044
+ * `style` (por defecto `"long"`).
4045
+ */
4046
+ export declare function formatRelativeTime(epochMs: number, localeTag: string, options?: {
4047
+ nowMs?: number;
4048
+ style?: RelativeTimeStyle;
4049
+ }): string;
4050
+
3930
4051
  /**
3931
4052
  * Formatea un instante (epoch ms) en la zona horaria del sitio, de forma
3932
4053
  * estable entre navegadores.
@@ -3969,6 +4090,14 @@ export declare function getProfileAvatarSrc(profile: ProfileGetResponse, options
3969
4090
 
3970
4091
  export declare function getProfileDisplayName(profile: ProfileGetResponse): string;
3971
4092
 
4093
+ /**
4094
+ * Nombre y apellido del usuario, SIN el nickname/login. Para el título del
4095
+ * desplegable de perfil, donde no debe aparecer el nickname (a diferencia de
4096
+ * `getProfileDisplayName`, que puede caer en `fullName` —que incluye el
4097
+ * nickname— o en `userName`). Solo cae a `userName` si no hay nombre ni apellido.
4098
+ */
4099
+ export declare function getProfileFullName(profile: ProfileGetResponse): string;
4100
+
3972
4101
  /**
3973
4102
  * Hora actual del sitio (equivalente al `getFormattedRedactionTimeUTC` del CMS
3974
4103
  * Angular): "ahora" formateado en la zona de redacción de la publicación.
@@ -4525,6 +4654,15 @@ export declare type NavLinkItem = {
4525
4654
  accent?: 'ai';
4526
4655
  /** Si el href apunta al admin legacy (JSP/Angular), se prefija con `legacyBaseUrl`. */
4527
4656
  legacy?: boolean;
4657
+ /**
4658
+ * Si el href es una página del admin viejo JSP (OpenCMS). Estos NO se abren
4659
+ * como enlace directo: requieren el form POST autenticado
4660
+ * (`submitLegacyAdminPage`) al endpoint `adminBack/login` del CMS
4661
+ * (`cmsBaseUrl`, p. ej. `https://dev.cms-medios.com`), igual que el
4662
+ * `openExternalPage()` de cmsmedios. Abre en pestaña nueva. Tiene prioridad
4663
+ * sobre `legacy` (que apunta al Angular master).
4664
+ */
4665
+ jsp?: boolean;
4528
4666
  /**
4529
4667
  * Si la ruta del Angular master exige el id de publicación al final
4530
4668
  * (p. ej. `/admin/tags/:idPub`, `/admin/planning/:idPub`), se le agrega
@@ -5106,6 +5244,11 @@ export declare const notificationColors: {
5106
5244
  readonly bg: string;
5107
5245
  readonly on: string;
5108
5246
  };
5247
+ /** Desasignación de tarea (person_remove): mismo fondo/ícono que asignados. */
5248
+ readonly unassigned: {
5249
+ readonly bg: string;
5250
+ readonly on: string;
5251
+ };
5109
5252
  };
5110
5253
 
5111
5254
  /** Topic devuelto por notification/adminConfiguration (`{ name, value }`). */
@@ -6203,6 +6346,9 @@ export declare const ptMessages: {
6203
6346
  assignedYesterday: string;
6204
6347
  assignedOn: string;
6205
6348
  expires: string;
6349
+ unassignedText: string;
6350
+ unassignedRemovedYouFrom: string;
6351
+ unassignedNoLongerResponsible: string;
6206
6352
  editorialOpportunityLabel: string;
6207
6353
  editorialOpportunityText: string;
6208
6354
  editorialOpportunityTop: string;
@@ -6215,8 +6361,10 @@ export declare const ptMessages: {
6215
6361
  };
6216
6362
  search: {
6217
6363
  placeholder: string;
6364
+ addPlaceholder: string;
6218
6365
  inputAriaLabel: string;
6219
6366
  clearAriaLabel: string;
6367
+ removeChipAriaLabel: string;
6220
6368
  advancedAriaLabel: string;
6221
6369
  title: string;
6222
6370
  apply: string;
@@ -6407,6 +6555,8 @@ export declare const radii: {
6407
6555
  readonly sm: "8px";
6408
6556
  /** Ítems de menú. */
6409
6557
  readonly md: "10px";
6558
+ /** Flyout desplegable del menú lateral (submenús del Sidebar). */
6559
+ readonly flyout: "12px";
6410
6560
  /** Papers de menú (dropdowns). */
6411
6561
  readonly lg: "14px";
6412
6562
  /** Menús flotantes de cuenta (perfil): esquinas 16px. */
@@ -6590,6 +6740,9 @@ export declare interface RecipesPublishCheckResponse extends CmsResponse {
6590
6740
  [key: string]: unknown;
6591
6741
  }
6592
6742
 
6743
+ /** Estilo del texto relativo (`Intl.RelativeTimeFormat`). */
6744
+ export declare type RelativeTimeStyle = 'long' | 'short' | 'narrow';
6745
+
6593
6746
  export declare type ResilientRunner = <T>(fn: () => Promise<T>, options?: ResilientRunOptions) => Promise<T>;
6594
6747
 
6595
6748
  export declare interface ResilientRunOptions {
@@ -6809,8 +6962,8 @@ export declare const shadows: {
6809
6962
  readonly accountMenu: "0 10px 30px rgba(25, 28, 32, 0.18)";
6810
6963
  /** Desplegable de opciones (M3 Elevation Light/5): dos capas suaves. */
6811
6964
  readonly menuDropdown: "0px 4px 4px 0px rgba(0, 0, 0, 0.30), 0px 8px 12px 6px rgba(0, 0, 0, 0.15)";
6812
- /** Submenús flotantes del sidebar. */
6813
- readonly flyout: "0px 8px 16px rgba(0, 0, 0, 0.18)";
6965
+ /** Submenús flotantes del sidebar (flyout del menú lateral). */
6966
+ readonly flyout: "0 6px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.10)";
6814
6967
  };
6815
6968
 
6816
6969
  export declare function Sidebar({ open, pathname, permissions, LinkComponent, legacyBaseUrl, selectedPublicationId, }: SidebarProps): JSX.Element;
@@ -6834,7 +6987,7 @@ export declare type SidebarProps = {
6834
6987
  * todo. El anclado se identifica por `item.module` y persiste vía
6835
6988
  * `profileServices.addPins`/`deletePins`/`getPins` (recurso de perfil).
6836
6989
  */
6837
- export declare function SidebarRail({ pathname, permissions, LinkComponent, legacyBaseUrl, selectedPublicationId, items, profileServices, }: SidebarRailProps): JSX.Element;
6990
+ export declare function SidebarRail({ pathname, permissions, LinkComponent, legacyBaseUrl, cmsBaseUrl, legacySession, selectedPublicationId, items, profileServices, }: SidebarRailProps): JSX.Element;
6838
6991
 
6839
6992
  /** Servicio de pines usado por el rail: solo necesita estos tres métodos. */
6840
6993
  export declare type SidebarRailPinService = Pick<CmsProfileServices, 'addPins' | 'deletePins' | 'getPins'>;
@@ -6843,8 +6996,12 @@ export declare type SidebarRailProps = {
6843
6996
  pathname: string;
6844
6997
  LinkComponent?: CmsLinkComponent;
6845
6998
  permissions: Array<NavItemPermissions>;
6846
- /** Dominio del admin legacy (JSP/Angular) para prefijar hrefs con `item.legacy`. */
6999
+ /** Dominio del Angular master para prefijar hrefs `legacy` (no `jsp`). */
6847
7000
  legacyBaseUrl?: string;
7001
+ /** Origen del CMS viejo (JSP) para el form POST de los ítems `jsp`. */
7002
+ cmsBaseUrl?: string;
7003
+ /** Sesión para el form POST al admin viejo (token, sitio, publicación, usuario). */
7004
+ legacySession?: LegacyAdminSession;
6848
7005
  /** Id de publicación activa; se agrega a los ítems legacy con `appendPublicationId`. */
6849
7006
  selectedPublicationId?: string;
6850
7007
  /** Ítems de navegación. Por defecto, `ACCOUNT_NAV_BLOCKS`. */
@@ -7252,7 +7409,7 @@ export declare interface ToastOptions {
7252
7409
  /** Severidad visual de un toast. */
7253
7410
  export declare type ToastSeverity = 'success' | 'error' | 'warning' | 'info';
7254
7411
 
7255
- export declare function TopBar({ sites, sidebarOpen, onToggleSidebar, notificationUnreadCount, notificationsData, copilotSuggestionsHref, onEditorialSeeMore, onEditorialRemindLater, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, newContentGroups, previewFormats, operationPermissions, isAdmin, onNewContentSelect, onPreviewSelect, }: TopBarProps): JSX.Element;
7412
+ export declare function TopBar({ sites, sidebarOpen, onToggleSidebar, notificationUnreadCount, notificationsData, copilotSuggestionsHref, onEditorialSeeMore, onEditorialRemindLater, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, previewFormats, operationPermissions, isAdmin, onPreviewSelect, }: TopBarProps): JSX.Element;
7256
7413
 
7257
7414
  export declare type TopBarMessageKey = keyof CmsMessages['topBar'];
7258
7415
 
@@ -7290,19 +7447,15 @@ export declare type TopBarProps = {
7290
7447
  * un enlace simple al CMS.
7291
7448
  */
7292
7449
  legacySession?: LegacyAdminSession;
7293
- /** Columnas/ítems del menú "Nuevo". Por defecto, la estructura del CMS legacy. */
7294
- newContentGroups?: NewContentGroup[];
7295
7450
  /** Formatos del menú de previsualización. Por defecto, Desktop/Mobile/Tablet. */
7296
7451
  previewFormats?: PreviewFormat[];
7297
7452
  /**
7298
- * Operaciones concedidas al usuario (`POST /auth/permissions`). Si se omite,
7299
- * no se filtra el menú "Nuevo" por permisos.
7453
+ * Operaciones concedidas al usuario (`POST /auth/permissions`). Filtran los
7454
+ * ítems del menú de perfil según permisos.
7300
7455
  */
7301
7456
  operationPermissions?: string[];
7302
- /** Si el usuario es administrador (ve todos los ítems del menú "Nuevo"). */
7457
+ /** Si el usuario es administrador (ve todos los ítems restringidos por permiso). */
7303
7458
  isAdmin?: boolean;
7304
- /** Fallback (sin sesión) del clic en un ítem del menú "Nuevo" (recibe su `id`). */
7305
- onNewContentSelect?: (itemId: string) => void;
7306
7459
  /** Integración: clic en un formato de previsualización (recibe su `id`). */
7307
7460
  onPreviewSelect?: (formatId: string) => void;
7308
7461
  };
@@ -7622,7 +7775,7 @@ export declare function useCurrentUserPhoto(): CurrentUserPhotoContextValue | nu
7622
7775
  * nombre y textos traducidos (es/en/pt). Reacciona al cambio de la prop `photo`;
7623
7776
  * para el usuario logueado, reacciona además al `CurrentUserPhotoProvider`.
7624
7777
  */
7625
- export declare function UserAvatar({ photo, description, username, size, showTooltip, inactive, neutralFallback, cmsOrigin, crossOrigin, isCurrentUser, onClick, testId, }: UserAvatarProps): JSX.Element;
7778
+ export declare function UserAvatar({ photo, description, username, size, showTooltip, inactive, neutralFallback, transparentFallbackBg, cmsOrigin, crossOrigin, isCurrentUser, onClick, testId, }: UserAvatarProps): JSX.Element;
7626
7779
 
7627
7780
  export declare type UserAvatarMessageKey = keyof CmsMessages['userAvatar'];
7628
7781
 
@@ -7652,6 +7805,12 @@ export declare type UserAvatarProps = {
7652
7805
  * cuenta del header/perfil. Sin efecto si hay foto o si `inactive`.
7653
7806
  */
7654
7807
  neutralFallback?: boolean;
7808
+ /**
7809
+ * Solo con `neutralFallback`: el fondo del fallback queda transparente (no
7810
+ * pinta el círculo gris en reposo). Pensado para el disparador del perfil en
7811
+ * el header, donde el botón contenedor pinta el círculo al hover.
7812
+ */
7813
+ transparentFallbackBg?: boolean;
7655
7814
  /** Origen del CMS para resolver rutas relativas de la foto. */
7656
7815
  cmsOrigin?: string;
7657
7816
  /**