sass-cms-template-common 0.0.10 → 0.0.11
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 +393 -181
- package/dist/index.js +2033 -1151
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +138 -0
- package/dist/server.js +2 -2
- package/dist/{services-Zx1IiHhX.js → services-BLy9bEvH.js} +474 -170
- package/dist/services-BLy9bEvH.js.map +1 -0
- package/package.json +1 -1
- package/dist/services-Zx1IiHhX.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export declare type AppMessageNode = string | {
|
|
|
35
35
|
/** Árbol de mensajes del gestor (namespaces → claves → string anidable). */
|
|
36
36
|
export declare type AppMessages = Record<string, AppMessageNode>;
|
|
37
37
|
|
|
38
|
-
export declare function AppShell({ pathname, sites, children, notificationUnreadCount, notificationsData, 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;
|
|
38
|
+
export declare function AppShell({ pathname, sites, children, notificationUnreadCount, notificationsData, editorialOpportunities, showEditorialOpportunities, copilotSuggestionsHref, onEditorialSeeMore, 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;
|
|
39
39
|
|
|
40
40
|
export declare type AppShellProps = {
|
|
41
41
|
pathname: string;
|
|
@@ -44,6 +44,14 @@ export declare type AppShellProps = {
|
|
|
44
44
|
notificationUnreadCount: number;
|
|
45
45
|
/** Respuesta cruda de `POST /dashboard/notification` (newsTask/expireTask/videos). */
|
|
46
46
|
notificationsData?: DashboardNotificationsResponse | null;
|
|
47
|
+
/** Oportunidades editoriales copilot (card de la campanita). Si se omite, mock temporal. */
|
|
48
|
+
editorialOpportunities?: EditorialOpportunity[];
|
|
49
|
+
/** Muestra la card de oportunidades editoriales copilot. Por defecto `true`. */
|
|
50
|
+
showEditorialOpportunities?: boolean;
|
|
51
|
+
/** URL del gestor de sugerencias copilot para el "Ver más" (enlace real). */
|
|
52
|
+
copilotSuggestionsHref?: string;
|
|
53
|
+
/** Clic en "Ver más" cuando no hay `copilotSuggestionsHref` (fallback). */
|
|
54
|
+
onEditorialSeeMore?: () => void;
|
|
47
55
|
profile: ProfileGetResponse;
|
|
48
56
|
primaryLogo: ReactNode;
|
|
49
57
|
brandLogo?: ReactNode;
|
|
@@ -706,76 +714,48 @@ export declare class CmsCkeditorServices {
|
|
|
706
714
|
|
|
707
715
|
export declare type CmsColors = typeof cmsColors;
|
|
708
716
|
|
|
709
|
-
/**
|
|
717
|
+
/**
|
|
718
|
+
* Paleta de la librería. Valores semánticos, no por componente.
|
|
719
|
+
*
|
|
720
|
+
* Casi todos son *mode-aware* (`var(--cms-…)`). La única excepción es `white`,
|
|
721
|
+
* que es blanco de contraste (texto sobre botón de color) y se mantiene blanco
|
|
722
|
+
* en ambos modos.
|
|
723
|
+
*/
|
|
710
724
|
export declare const cmsColors: {
|
|
711
|
-
/**
|
|
712
|
-
readonly primary: "#0067C4";
|
|
713
|
-
/** Hover del primario (mismo tono, un poco más oscuro). */
|
|
714
|
-
readonly primaryHover: "#005CAF";
|
|
715
|
-
/** Fondo de control primario deshabilitado (negro al 10%). */
|
|
716
|
-
readonly primaryDisabled: "#1D1B201A";
|
|
717
|
-
/** Color secundario / contenedor (estado activo o seleccionado). */
|
|
718
|
-
readonly secondary: "#D8E2FF";
|
|
719
|
-
/** Hover sobre superficies secundarias (opciones de desplegable). */
|
|
720
|
-
readonly secondaryHover: "#E1E2EA";
|
|
721
|
-
/**
|
|
722
|
-
* Texto / íconos sobre el contenedor `secondary` (chips de filtro activos,
|
|
723
|
-
* opciones marcadas en multiselect, etiquetas). Equivale al
|
|
724
|
-
* `onSecondaryContainer` de Material 3.
|
|
725
|
-
*/
|
|
726
|
-
readonly onSecondaryContainer: "#2C4678";
|
|
727
|
-
/**
|
|
728
|
-
* Secundario sólido (tono fuerte de la paleta secundaria). Se usa, p. ej.,
|
|
729
|
-
* para resaltar el borde del avatar al hacer hover sobre una fila.
|
|
730
|
-
*/
|
|
731
|
-
readonly secondaryStrong: "#455E91";
|
|
732
|
-
/** Borde por defecto de controles tipo select. */
|
|
733
|
-
readonly controlBorder: "#727784";
|
|
734
|
-
/** Texto por defecto de controles tipo select. */
|
|
735
|
-
readonly controlText: "#000000";
|
|
736
|
-
/** Fondo de hover de un control tipo select (sin valor activo). */
|
|
737
|
-
readonly controlHoverBg: "#F9F9FF";
|
|
738
|
-
/** Borde del botón en variante blanca (BtnDropdown). */
|
|
739
|
-
readonly whiteBtnBorder: "#DDDDDD";
|
|
740
|
-
/** Texto del botón en variante blanca (BtnDropdown). */
|
|
741
|
-
readonly whiteBtnText: "#515253";
|
|
742
|
-
/** Fondo de hover/activo del botón de ícono (disparador del SimpleDropdown). */
|
|
743
|
-
readonly iconButtonHoverBg: "#E6E6E6";
|
|
744
|
-
/** Color del ícono del disparador en reposo. */
|
|
745
|
-
readonly iconButtonIcon: "#929193";
|
|
746
|
-
/** Fondo de menús flotantes (perfil, selector de sitios). */
|
|
747
|
-
readonly menuSurface: "#ECEDF6";
|
|
748
|
-
/** Fondo de la opción activa/hover dentro de un menú desplegable simple. */
|
|
749
|
-
readonly menuItemActive: "#E1E2EB";
|
|
750
|
-
/** Hover neutro sobre superficies claras (sidebar, top bar). */
|
|
751
|
-
readonly surfaceHover: "#E3E2E6";
|
|
752
|
-
/** Texto tenue del índice alfabético (letras inactivas A–Z del listado). */
|
|
753
|
-
readonly alphabetIdle: "#B4BEDA";
|
|
754
|
-
/** Texto fuerte (títulos de ítems, nombre de perfil). */
|
|
755
|
-
readonly textStrong: "#191C22";
|
|
756
|
-
/** Texto de navegación / secundario. */
|
|
757
|
-
readonly textNav: "#414752";
|
|
758
|
-
/** Texto atenuado: títulos de sección, encabezados de columna (gris claro). */
|
|
759
|
-
readonly textMuted: "#94A2AA";
|
|
760
|
-
/**
|
|
761
|
-
* Azul para enlaces de texto y botones tipo texto (p. ej. el label
|
|
762
|
-
* "Cancelar" del modal de confirmación y los enlaces dentro de descripciones).
|
|
763
|
-
*/
|
|
764
|
-
readonly link: "#004F99";
|
|
765
|
-
/** Acento de acción destructiva (CTA "Desactivar/Resetear", badge de riesgo). */
|
|
766
|
-
readonly danger: "#BA1A1A";
|
|
767
|
-
/** Hover del acento destructivo. */
|
|
768
|
-
readonly dangerHover: "#93000A";
|
|
769
|
-
/** Acento de acción positiva (badge de "Activar"). */
|
|
770
|
-
readonly success: "#1E8E3E";
|
|
771
|
-
/** Bordes y divisores sutiles. */
|
|
772
|
-
readonly border: "#C1C6D4";
|
|
773
|
-
/** Fondo del avatar de perfil. */
|
|
774
|
-
readonly avatarBg: "#F2F6FC";
|
|
775
|
-
/** Borde del avatar de perfil. */
|
|
776
|
-
readonly avatarBorder: "#DEE2E6";
|
|
777
|
-
/** Blanco base (superficies elevadas / botones blancos). */
|
|
725
|
+
/** Blanco de contraste (texto/íconos sobre botones de color). Fijo en ambos modos. */
|
|
778
726
|
readonly white: "#FFFFFF";
|
|
727
|
+
readonly primary: string;
|
|
728
|
+
readonly primaryHover: string;
|
|
729
|
+
readonly primaryDisabled: string;
|
|
730
|
+
readonly secondary: string;
|
|
731
|
+
readonly secondaryHover: string;
|
|
732
|
+
readonly onSecondaryContainer: string;
|
|
733
|
+
readonly secondaryStrong: string;
|
|
734
|
+
readonly controlBorder: string;
|
|
735
|
+
readonly controlText: string;
|
|
736
|
+
readonly controlHoverBg: string;
|
|
737
|
+
readonly whiteBtnBorder: string;
|
|
738
|
+
readonly whiteBtnText: string;
|
|
739
|
+
readonly iconButtonHoverBg: string;
|
|
740
|
+
readonly iconButtonIcon: string;
|
|
741
|
+
readonly menuSurface: string;
|
|
742
|
+
readonly menuItemActive: string;
|
|
743
|
+
readonly surfaceHover: string;
|
|
744
|
+
readonly alphabetIdle: string;
|
|
745
|
+
readonly alphabetIdleSoft: string;
|
|
746
|
+
readonly alphabetLetter: string;
|
|
747
|
+
readonly alphabetLetterDisabled: string;
|
|
748
|
+
readonly textStrong: string;
|
|
749
|
+
readonly textNav: string;
|
|
750
|
+
readonly textMuted: string;
|
|
751
|
+
readonly link: string;
|
|
752
|
+
readonly danger: string;
|
|
753
|
+
readonly dangerHover: string;
|
|
754
|
+
readonly success: string;
|
|
755
|
+
readonly border: string;
|
|
756
|
+
readonly avatarBg: string;
|
|
757
|
+
readonly avatarBorder: string;
|
|
758
|
+
readonly surface: string;
|
|
779
759
|
};
|
|
780
760
|
|
|
781
761
|
/**
|
|
@@ -980,6 +960,25 @@ export declare class CmsContributionsServices {
|
|
|
980
960
|
getPaymentGateways: (filters?: PaymentGatewaysGetFilters) => Promise<PaymentGatewaysGetResponse>;
|
|
981
961
|
}
|
|
982
962
|
|
|
963
|
+
/**
|
|
964
|
+
* Servicios HTTP del módulo `copilot` del CMS (gateway hacia el microservicio
|
|
965
|
+
* Copilot/Kundera). Errores propios en la serie `030.x` (ver `commonErrors`).
|
|
966
|
+
*
|
|
967
|
+
* Se construye igual que `CmsCommonServices`, con `{ axiosApi, authentication }`.
|
|
968
|
+
*/
|
|
969
|
+
export declare class CmsCopilotServices {
|
|
970
|
+
protected props: ICopilotServices;
|
|
971
|
+
protected authentication: Authentication;
|
|
972
|
+
constructor(props: ICopilotServices);
|
|
973
|
+
/** POST /copilot/opportunities — feed de oportunidades (permiso COPILOT_VIEW). */
|
|
974
|
+
getOpportunities: (filters?: CopilotOpportunitiesFilters) => Promise<CopilotOpportunitiesResponse>;
|
|
975
|
+
/**
|
|
976
|
+
* POST /copilot/actions — ejecuta una acción del editor sobre una
|
|
977
|
+
* oportunidad: `save` | `like` | `dislike` | `assign` (permiso COPILOT_ACTION).
|
|
978
|
+
*/
|
|
979
|
+
executeAction: (input: CopilotActionInput) => Promise<CopilotActionResponse>;
|
|
980
|
+
}
|
|
981
|
+
|
|
983
982
|
/**
|
|
984
983
|
* Servicios HTTP del módulo `dashboard` del CMS.
|
|
985
984
|
*
|
|
@@ -1057,6 +1056,32 @@ export declare type CmsDialogActionsProps = {
|
|
|
1057
1056
|
testId?: string;
|
|
1058
1057
|
};
|
|
1059
1058
|
|
|
1059
|
+
/**
|
|
1060
|
+
* Página de error compartida por todos los gestores (mecanismo en la lib).
|
|
1061
|
+
* Replica la de cmsmedios: ilustración + título + subtítulo + botón HOME, y en
|
|
1062
|
+
* el 404 la línea "Error 404. Copiar detalle." que copia la URL al portapapeles.
|
|
1063
|
+
* Los textos salen del i18n de la lib (namespace `errorPage`, es/en/pt), así que
|
|
1064
|
+
* ningún gestor los duplica.
|
|
1065
|
+
*/
|
|
1066
|
+
export declare function CmsErrorPage({ variant, homeHref, LinkComponent, illustrationSrc, }: CmsErrorPageProps): JSX.Element;
|
|
1067
|
+
|
|
1068
|
+
export declare type CmsErrorPageProps = {
|
|
1069
|
+
/** Tipo de error a mostrar. */
|
|
1070
|
+
variant: CmsErrorPageVariant;
|
|
1071
|
+
/** Destino del botón HOME. Por defecto la raíz del gestor (`/`). */
|
|
1072
|
+
homeHref?: string;
|
|
1073
|
+
/** Componente de enlace del host (p. ej. `next/link`). Por defecto un `<a>`. */
|
|
1074
|
+
LinkComponent?: CmsLinkComponent;
|
|
1075
|
+
/**
|
|
1076
|
+
* Ruta de la ilustración (servida desde el `public/` del gestor). Por defecto
|
|
1077
|
+
* `/errors/notfound.png` o `/errors/not-allowed.png` según la variante.
|
|
1078
|
+
*/
|
|
1079
|
+
illustrationSrc?: string;
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
/** Variante de error a mostrar: 404 (no encontrado) o sin permisos. */
|
|
1083
|
+
export declare type CmsErrorPageVariant = 'not-found' | 'not-allowed';
|
|
1084
|
+
|
|
1060
1085
|
/** Severidad de feedback derivada de un código de error. */
|
|
1061
1086
|
export declare type CmsErrorSeverity = 'warning' | 'error';
|
|
1062
1087
|
|
|
@@ -2089,6 +2114,7 @@ export declare type CmsTranslator = {
|
|
|
2089
2114
|
}) => string;
|
|
2090
2115
|
toast: (key: ToastMessageKey) => string;
|
|
2091
2116
|
userAvatar: (key: UserAvatarMessageKey) => string;
|
|
2117
|
+
errorPage: (key: ErrorPageMessageKey) => string;
|
|
2092
2118
|
/**
|
|
2093
2119
|
* Resuelve una clave propia del gestor por ruta con puntos
|
|
2094
2120
|
* (p. ej. `t.app('usuarios.modal.deactivate.title')`). Si falta, devuelve la
|
|
@@ -2545,27 +2571,10 @@ export declare const commonErrorsPt: Record<string, string>;
|
|
|
2545
2571
|
|
|
2546
2572
|
export declare type ConfidenceColors = typeof confidenceColors;
|
|
2547
2573
|
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
export declare const confidenceColors: {
|
|
2553
|
-
/** Alto, ≥85% (verde). */
|
|
2554
|
-
readonly high: {
|
|
2555
|
-
readonly bg: "#D7F5DD";
|
|
2556
|
-
readonly on: "#0D5B2B";
|
|
2557
|
-
};
|
|
2558
|
-
/** Medio, 70–84% (ámbar). */
|
|
2559
|
-
readonly medium: {
|
|
2560
|
-
readonly bg: "#FFF0C8";
|
|
2561
|
-
readonly on: "#6B4D00";
|
|
2562
|
-
};
|
|
2563
|
-
/** Bajo, <70% (gris). */
|
|
2564
|
-
readonly low: {
|
|
2565
|
-
readonly bg: "#E7E8EE";
|
|
2566
|
-
readonly on: "#43474E";
|
|
2567
|
-
};
|
|
2568
|
-
};
|
|
2574
|
+
export declare const confidenceColors: Record<"high" | "medium" | "low", {
|
|
2575
|
+
bg: string;
|
|
2576
|
+
on: string;
|
|
2577
|
+
}>;
|
|
2569
2578
|
|
|
2570
2579
|
/**
|
|
2571
2580
|
* Contribución a actualizar (POST /contributions/edit).
|
|
@@ -2603,6 +2612,90 @@ export declare interface ContributionsInsertCrmResponse extends CmsResponse {
|
|
|
2603
2612
|
[key: string]: unknown;
|
|
2604
2613
|
}
|
|
2605
2614
|
|
|
2615
|
+
/** Acción del editor sobre una oportunidad (POST /copilot/actions). */
|
|
2616
|
+
export declare type CopilotAction = 'save' | 'like' | 'dislike' | 'assign';
|
|
2617
|
+
|
|
2618
|
+
/** Datos según la acción ejecutada (el backend lo omite si está vacío). */
|
|
2619
|
+
export declare interface CopilotActionData {
|
|
2620
|
+
/** Acción `save` (bookmark, toggle). */
|
|
2621
|
+
is_followed?: boolean;
|
|
2622
|
+
/** Acciones `like` / `dislike`. */
|
|
2623
|
+
interest_signal?: string;
|
|
2624
|
+
/** Acción `assign`. */
|
|
2625
|
+
assigned_to?: string;
|
|
2626
|
+
}
|
|
2627
|
+
|
|
2628
|
+
/** Entrada de POST /copilot/actions. */
|
|
2629
|
+
export declare interface CopilotActionInput {
|
|
2630
|
+
action: CopilotAction;
|
|
2631
|
+
/** ID de la oportunidad sobre la que se acciona. */
|
|
2632
|
+
opportunityId: string;
|
|
2633
|
+
/**
|
|
2634
|
+
* ID opaco y estable del redactor a asignar (NO el username).
|
|
2635
|
+
* Obligatorio solo para `action = "assign"` (error 030.005 si falta).
|
|
2636
|
+
*/
|
|
2637
|
+
userExternalId?: string;
|
|
2638
|
+
}
|
|
2639
|
+
|
|
2640
|
+
/** Cuerpo de la respuesta de POST /copilot/actions. */
|
|
2641
|
+
export declare interface CopilotActionResponse extends CmsResponse {
|
|
2642
|
+
copilotEnabled?: boolean;
|
|
2643
|
+
action?: CopilotAction;
|
|
2644
|
+
opportunity_id?: string;
|
|
2645
|
+
/** Código de resultado devuelto por el microservicio (omitido si es nulo). */
|
|
2646
|
+
code?: string;
|
|
2647
|
+
data?: CopilotActionData;
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
/** Filtros opcionales de POST /copilot/opportunities (passthrough al micro). */
|
|
2651
|
+
export declare interface CopilotOpportunitiesFilters {
|
|
2652
|
+
/** Filtro de estado de las oportunidades (p. ej. "open"). */
|
|
2653
|
+
status?: CopilotOpportunityStatus;
|
|
2654
|
+
/** Cantidad máxima de oportunidades a devolver. */
|
|
2655
|
+
limit?: number;
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
/**
|
|
2659
|
+
* Cuerpo de la respuesta de POST /copilot/opportunities.
|
|
2660
|
+
*
|
|
2661
|
+
* Si la publicación no tiene `KUNDERA_SITE_UUID` (Copilot desactivado) el CMS
|
|
2662
|
+
* responde `status:"ok"` con `copilotEnabled:false` y lista vacía: NO es un
|
|
2663
|
+
* error, el gestor decide qué mostrar.
|
|
2664
|
+
*/
|
|
2665
|
+
export declare interface CopilotOpportunitiesResponse extends CmsResponse {
|
|
2666
|
+
copilotEnabled?: boolean;
|
|
2667
|
+
/** UUID del sitio en Kundera (solo si `copilotEnabled = true`). */
|
|
2668
|
+
site_uuid?: string;
|
|
2669
|
+
count?: number;
|
|
2670
|
+
opportunities?: CopilotOpportunity[];
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2673
|
+
/**
|
|
2674
|
+
* Oportunidad editorial del feed de Copilot.
|
|
2675
|
+
*
|
|
2676
|
+
* La doc del gateway lista `id`, `topic` y `created_at`, pero el microservicio
|
|
2677
|
+
* (observado en dev) puede omitirlos: solo `title`, `status` y `score` están
|
|
2678
|
+
* garantizados. El consumidor debe tolerar los faltantes.
|
|
2679
|
+
*/
|
|
2680
|
+
export declare interface CopilotOpportunity {
|
|
2681
|
+
id?: string;
|
|
2682
|
+
title: string;
|
|
2683
|
+
/** Tema/categoría. */
|
|
2684
|
+
topic?: string;
|
|
2685
|
+
status: CopilotOpportunityStatus;
|
|
2686
|
+
/** Puntaje (el backend lo omite si es nulo). */
|
|
2687
|
+
score?: number;
|
|
2688
|
+
/** Fecha de creación (ISO 8601, p. ej. "2026-06-26T10:15:00Z"). */
|
|
2689
|
+
created_at?: string;
|
|
2690
|
+
}
|
|
2691
|
+
|
|
2692
|
+
/**
|
|
2693
|
+
* Estado de una oportunidad tal como lo entrega el microservicio (passthrough).
|
|
2694
|
+
* El único valor documentado hoy es `"open"`; se deja abierto para no romper
|
|
2695
|
+
* cuando el microservicio agregue estados nuevos.
|
|
2696
|
+
*/
|
|
2697
|
+
export declare type CopilotOpportunityStatus = 'open' | (string & {});
|
|
2698
|
+
|
|
2606
2699
|
/** POST /dashboard/countNotificatio */
|
|
2607
2700
|
export declare interface CountNotificationsResponse {
|
|
2608
2701
|
status: string;
|
|
@@ -2817,6 +2910,29 @@ export declare type DropdownOption = {
|
|
|
2817
2910
|
testId?: string;
|
|
2818
2911
|
};
|
|
2819
2912
|
|
|
2913
|
+
/**
|
|
2914
|
+
* Oportunidad editorial de un tema copilot (fuente de la card de la campanita).
|
|
2915
|
+
* Misma forma que el `getCopilotOpportunities()` del CMS Angular (NAA-4645): hoy
|
|
2916
|
+
* datos quemados; cuando el back libere el bloque en el WS de notificaciones se
|
|
2917
|
+
* reemplaza la fuente manteniendo esta forma.
|
|
2918
|
+
*/
|
|
2919
|
+
export declare interface EditorialOpportunity {
|
|
2920
|
+
id: number | string;
|
|
2921
|
+
title: string;
|
|
2922
|
+
/** % de coincidencia con la línea editorial. */
|
|
2923
|
+
match: number;
|
|
2924
|
+
trending: boolean;
|
|
2925
|
+
isRead: boolean;
|
|
2926
|
+
/** Momento de entrega (epoch ms), como `{ time }` o número. */
|
|
2927
|
+
timeStamp?: {
|
|
2928
|
+
time: number;
|
|
2929
|
+
} | number | null;
|
|
2930
|
+
}
|
|
2931
|
+
|
|
2932
|
+
export declare type EditorialOpportunityColors = typeof editorialOpportunityColors;
|
|
2933
|
+
|
|
2934
|
+
export declare const editorialOpportunityColors: Record<"accent" | "text" | "topicBg" | "topicBorder" | "trending", string>;
|
|
2935
|
+
|
|
2820
2936
|
export declare const enMessages: {
|
|
2821
2937
|
readonly navigation: {
|
|
2822
2938
|
readonly COMMENTS: "Comments";
|
|
@@ -2874,6 +2990,13 @@ export declare const enMessages: {
|
|
|
2874
2990
|
readonly preview: "Preview";
|
|
2875
2991
|
readonly help: "Help";
|
|
2876
2992
|
readonly publication: "Publication";
|
|
2993
|
+
readonly appearance: "Appearance";
|
|
2994
|
+
readonly newTheme: "New theme";
|
|
2995
|
+
readonly newThemeSubtitle: "Redesigned interface";
|
|
2996
|
+
readonly modeLabel: "Mode";
|
|
2997
|
+
readonly modeLight: "Light";
|
|
2998
|
+
readonly modeDark: "Dark";
|
|
2999
|
+
readonly classicUnavailable: "The classic view is not available in this prototype.";
|
|
2877
3000
|
};
|
|
2878
3001
|
readonly newMenu: {
|
|
2879
3002
|
readonly frequentsTitle: "Frequent";
|
|
@@ -2919,6 +3042,15 @@ export declare const enMessages: {
|
|
|
2919
3042
|
readonly assignedYesterday: "Assigned yesterday";
|
|
2920
3043
|
readonly assignedOn: "Assigned on";
|
|
2921
3044
|
readonly expires: "Due";
|
|
3045
|
+
readonly editorialOpportunityLabel: "Editorial opportunity";
|
|
3046
|
+
readonly editorialOpportunityText: "{count} topics require your attention";
|
|
3047
|
+
readonly editorialOpportunityTop: "Top";
|
|
3048
|
+
readonly editorialOpportunityMatch: "Match";
|
|
3049
|
+
readonly editorialOpportunityTrending: "Trending";
|
|
3050
|
+
readonly editorialOpportunitySeeMoreOpportunities: "See {count} more opportunities";
|
|
3051
|
+
readonly editorialOpportunityHide: "Hide";
|
|
3052
|
+
readonly editorialOpportunityRemindLater: "Remind me later";
|
|
3053
|
+
readonly editorialOpportunitySeeMore: "See more";
|
|
2922
3054
|
};
|
|
2923
3055
|
readonly search: {
|
|
2924
3056
|
readonly placeholder: "Search…";
|
|
@@ -3001,8 +3133,22 @@ export declare const enMessages: {
|
|
|
3001
3133
|
readonly alt: "User avatar";
|
|
3002
3134
|
readonly unknownUser: "Unknown user";
|
|
3003
3135
|
};
|
|
3136
|
+
readonly errorPage: {
|
|
3137
|
+
readonly homeButton: "Home";
|
|
3138
|
+
readonly notFoundTitle: "Sorry an error occurred.";
|
|
3139
|
+
readonly notFoundSubtitle: "This website is no longer available. Keep browsing!";
|
|
3140
|
+
readonly notFoundCode: "404";
|
|
3141
|
+
readonly errorLabel: "Error";
|
|
3142
|
+
readonly copyDetail: "Copy detail.";
|
|
3143
|
+
readonly copyDetailText: "The route {url} you are trying to access is no longer available.";
|
|
3144
|
+
readonly copied: "Text copied to clipboard!";
|
|
3145
|
+
readonly notAllowedTitle: "Sorry.\nYou do not have access.";
|
|
3146
|
+
readonly notAllowedSubtitle: "What you want to see is restricted by permissions. Keep browsing!";
|
|
3147
|
+
};
|
|
3004
3148
|
};
|
|
3005
3149
|
|
|
3150
|
+
declare type ErrorPageMessageKey = keyof CmsMessages['errorPage'];
|
|
3151
|
+
|
|
3006
3152
|
export declare const esMessages: {
|
|
3007
3153
|
navigation: {
|
|
3008
3154
|
COMMENTS: string;
|
|
@@ -3060,6 +3206,13 @@ export declare const esMessages: {
|
|
|
3060
3206
|
preview: string;
|
|
3061
3207
|
help: string;
|
|
3062
3208
|
publication: string;
|
|
3209
|
+
appearance: string;
|
|
3210
|
+
newTheme: string;
|
|
3211
|
+
newThemeSubtitle: string;
|
|
3212
|
+
modeLabel: string;
|
|
3213
|
+
modeLight: string;
|
|
3214
|
+
modeDark: string;
|
|
3215
|
+
classicUnavailable: string;
|
|
3063
3216
|
};
|
|
3064
3217
|
newMenu: {
|
|
3065
3218
|
frequentsTitle: string;
|
|
@@ -3105,6 +3258,15 @@ export declare const esMessages: {
|
|
|
3105
3258
|
assignedYesterday: string;
|
|
3106
3259
|
assignedOn: string;
|
|
3107
3260
|
expires: string;
|
|
3261
|
+
editorialOpportunityLabel: string;
|
|
3262
|
+
editorialOpportunityText: string;
|
|
3263
|
+
editorialOpportunityTop: string;
|
|
3264
|
+
editorialOpportunityMatch: string;
|
|
3265
|
+
editorialOpportunityTrending: string;
|
|
3266
|
+
editorialOpportunitySeeMoreOpportunities: string;
|
|
3267
|
+
editorialOpportunityHide: string;
|
|
3268
|
+
editorialOpportunityRemindLater: string;
|
|
3269
|
+
editorialOpportunitySeeMore: string;
|
|
3108
3270
|
};
|
|
3109
3271
|
search: {
|
|
3110
3272
|
placeholder: string;
|
|
@@ -3187,6 +3349,18 @@ export declare const esMessages: {
|
|
|
3187
3349
|
alt: string;
|
|
3188
3350
|
unknownUser: string;
|
|
3189
3351
|
};
|
|
3352
|
+
errorPage: {
|
|
3353
|
+
homeButton: string;
|
|
3354
|
+
notFoundTitle: string;
|
|
3355
|
+
notFoundSubtitle: string;
|
|
3356
|
+
notFoundCode: string;
|
|
3357
|
+
errorLabel: string;
|
|
3358
|
+
copyDetail: string;
|
|
3359
|
+
copyDetailText: string;
|
|
3360
|
+
copied: string;
|
|
3361
|
+
notAllowedTitle: string;
|
|
3362
|
+
notAllowedSubtitle: string;
|
|
3363
|
+
};
|
|
3190
3364
|
};
|
|
3191
3365
|
|
|
3192
3366
|
/** Cuerpo de la respuesta de POST /events/create. */
|
|
@@ -3258,8 +3432,8 @@ export declare type FeedbackBadgeColors = typeof feedbackBadgeColors;
|
|
|
3258
3432
|
|
|
3259
3433
|
/**
|
|
3260
3434
|
* Colores del círculo de ícono del toast por severidad. `bg` = fondo del
|
|
3261
|
-
* círculo; `on` = color del ícono.
|
|
3262
|
-
*
|
|
3435
|
+
* círculo; `on` = color del ícono. Como el toast es oscuro en ambos modos,
|
|
3436
|
+
* estos tampoco cambian.
|
|
3263
3437
|
*/
|
|
3264
3438
|
export declare const feedbackBadgeColors: {
|
|
3265
3439
|
/** Éxito: círculo verde menta con check verde oscuro. */
|
|
@@ -3290,8 +3464,8 @@ export declare type FeedbackColors = typeof feedbackColors;
|
|
|
3290
3464
|
* Colores de feedback de operaciones (toasts/notificaciones).
|
|
3291
3465
|
*
|
|
3292
3466
|
* El toast usa una superficie oscura (estilo de diseño del CMS) con texto
|
|
3293
|
-
* claro y un ícono de acento por severidad.
|
|
3294
|
-
*
|
|
3467
|
+
* claro y un ícono de acento por severidad. Como ya es un componente oscuro por
|
|
3468
|
+
* diseño, NO cambia entre modos (se mantiene igual en claro y oscuro).
|
|
3295
3469
|
*/
|
|
3296
3470
|
export declare const feedbackColors: {
|
|
3297
3471
|
/** Fondo oscuro del toast (común a todas las severidades). */
|
|
@@ -3460,6 +3634,23 @@ export declare interface FileExplorerGetFoldersResponse extends CmsResponse {
|
|
|
3460
3634
|
folders: ExplorerFolder[];
|
|
3461
3635
|
}
|
|
3462
3636
|
|
|
3637
|
+
/**
|
|
3638
|
+
* Filtra los módulos de POST /auth/modulesAvailable dejando solo los que el
|
|
3639
|
+
* usuario puede ver, replicando el cruce que hace `parseModuleIntoMenu` de
|
|
3640
|
+
* cmsmedios: un admin ve todo; el resto solo ve un módulo si tiene la operación
|
|
3641
|
+
* `${module}_VIEW` en POST /auth/permissions. La comparación es case-insensitive.
|
|
3642
|
+
*
|
|
3643
|
+
* Degrada con seguridad: si `permissions` es null/undefined (p. ej. porque
|
|
3644
|
+
* /auth/permissions falló), NO filtra y devuelve los módulos tal cual (misma
|
|
3645
|
+
* visibilidad que hoy). El acceso real lo sigue gobernando el guard de ruta
|
|
3646
|
+
* (`hasModulePermission`), así que el menú puede degradar sin exponer nada.
|
|
3647
|
+
*
|
|
3648
|
+
* @param modules módulos crudos de POST /auth/modulesAvailable
|
|
3649
|
+
* @param permissions respuesta de POST /auth/permissions (`isAdmin` + `operations`)
|
|
3650
|
+
* @returns los módulos visibles para el usuario (preserva `isnew`)
|
|
3651
|
+
*/
|
|
3652
|
+
export declare function filterModulesByPermissions(modules: NavItemPermissions[], permissions: Pick<AuthPermissionsResponse, 'isAdmin' | 'operations'> | null | undefined): NavItemPermissions[];
|
|
3653
|
+
|
|
3463
3654
|
export declare function findPublicationBySlug(sites: SiteSection[], slug: string): Publication | undefined;
|
|
3464
3655
|
|
|
3465
3656
|
export declare function findPublicationLabel(sites: SiteSection[], publicationId: string): string;
|
|
@@ -3467,8 +3658,7 @@ export declare function findPublicationLabel(sites: SiteSection[], publicationId
|
|
|
3467
3658
|
/**
|
|
3468
3659
|
* Familias tipográficas del CMS. `roboto` = texto general (default del theme);
|
|
3469
3660
|
* `productSans` = marca / títulos. Las `@font-face` que las cargan viven en
|
|
3470
|
-
* `theme/fonts.ts` y se inyectan vía el provider MUI.
|
|
3471
|
-
* lugar de strings sueltos (mismo criterio que con los colores).
|
|
3661
|
+
* `theme/fonts.ts` y se inyectan vía el provider MUI.
|
|
3472
3662
|
*/
|
|
3473
3663
|
export declare const fontFamilies: {
|
|
3474
3664
|
readonly roboto: "\"Roboto\",\"Helvetica\",\"Arial\",sans-serif";
|
|
@@ -3504,6 +3694,15 @@ export declare function getDefaultPublicationSlug(sites: SiteSection[]): string;
|
|
|
3504
3694
|
/** BCP 47 tag for `Intl` / `toLocaleString` formatting. */
|
|
3505
3695
|
export declare function getIntlLocaleTag(locale: Locale): string;
|
|
3506
3696
|
|
|
3697
|
+
/**
|
|
3698
|
+
* Oportunidades editoriales copilot QUEMADAS temporales (NAA-4837). El back aún
|
|
3699
|
+
* no envía este bloque; cuando lo haga, el gestor pasa las oportunidades reales
|
|
3700
|
+
* por la prop `editorialOpportunities` y este mock se elimina.
|
|
3701
|
+
*
|
|
3702
|
+
* @param now Instante actual (epoch ms) usado como hora de entrega de las cards.
|
|
3703
|
+
*/
|
|
3704
|
+
export declare function getMockCopilotOpportunities(now: number): EditorialOpportunity[];
|
|
3705
|
+
|
|
3507
3706
|
export declare function getProfileAvatarSrc(profile: ProfileGetResponse, options?: ProfileAvatarOptions): string;
|
|
3508
3707
|
|
|
3509
3708
|
export declare function getProfileDisplayName(profile: ProfileGetResponse): string;
|
|
@@ -3518,6 +3717,19 @@ export declare function getProfileDisplayName(profile: ProfileGetResponse): stri
|
|
|
3518
3717
|
*/
|
|
3519
3718
|
export declare function getSiteNow(gmtRedaction: string | null | undefined, localeTag: string, options?: Intl.DateTimeFormatOptions): string;
|
|
3520
3719
|
|
|
3720
|
+
/**
|
|
3721
|
+
* Decide si el usuario puede acceder a un módulo, replicando el
|
|
3722
|
+
* `AccessPermissionsGuard` de cmsmedios: un admin siempre pasa, el comodín
|
|
3723
|
+
* `All_VIEWS` siempre pasa, y en el resto el usuario debe tener una operación
|
|
3724
|
+
* cuyo `name` coincida con el permiso requerido. La comparación es
|
|
3725
|
+
* case-insensitive (cmsmedios pasa el permiso de la ruta a mayúsculas).
|
|
3726
|
+
*
|
|
3727
|
+
* @param permissions respuesta de POST /auth/permissions (`isAdmin` + `operations`)
|
|
3728
|
+
* @param requiredPermission permiso que exige la ruta (p. ej. `'NEWS_VIEW'`)
|
|
3729
|
+
* @returns `true` si tiene acceso; `false` si debería redirigirse a `/not-allowed`
|
|
3730
|
+
*/
|
|
3731
|
+
export declare function hasModulePermission(permissions: Pick<AuthPermissionsResponse, 'isAdmin' | 'operations'> | null | undefined, requiredPermission: string): boolean;
|
|
3732
|
+
|
|
3521
3733
|
declare interface IAudiosServices {
|
|
3522
3734
|
axiosApi: AxiosInstance;
|
|
3523
3735
|
authentication: Authentication;
|
|
@@ -3557,6 +3769,11 @@ declare interface IContributionsServices {
|
|
|
3557
3769
|
authentication: Authentication;
|
|
3558
3770
|
}
|
|
3559
3771
|
|
|
3772
|
+
declare interface ICopilotServices {
|
|
3773
|
+
axiosApi: AxiosInstance;
|
|
3774
|
+
authentication: Authentication;
|
|
3775
|
+
}
|
|
3776
|
+
|
|
3560
3777
|
declare interface IDashboardServices {
|
|
3561
3778
|
axiosApi: AxiosInstance;
|
|
3562
3779
|
authentication: Authentication;
|
|
@@ -3831,7 +4048,7 @@ export declare type InterestColors = typeof interestColors;
|
|
|
3831
4048
|
|
|
3832
4049
|
/**
|
|
3833
4050
|
* Feedback de interés del usuario sobre un ítem (me gusta / no me gusta).
|
|
3834
|
-
*
|
|
4051
|
+
* Se mantienen literales (se usan con `alpha()` para los hovers).
|
|
3835
4052
|
*/
|
|
3836
4053
|
export declare const interestColors: {
|
|
3837
4054
|
/** Me gusta (verde). */
|
|
@@ -3911,9 +4128,9 @@ declare interface ITagsServices {
|
|
|
3911
4128
|
authentication: Authentication;
|
|
3912
4129
|
}
|
|
3913
4130
|
|
|
3914
|
-
export declare const ITEM_DEFAULT_BG:
|
|
4131
|
+
export declare const ITEM_DEFAULT_BG: string;
|
|
3915
4132
|
|
|
3916
|
-
export declare const ITEM_HOVER_BG:
|
|
4133
|
+
export declare const ITEM_HOVER_BG: string;
|
|
3917
4134
|
|
|
3918
4135
|
declare interface ITranscribeServices {
|
|
3919
4136
|
axiosApi: AxiosInstance;
|
|
@@ -3990,7 +4207,7 @@ export declare type Locale = (typeof SUPPORTED_LOCALES)[number];
|
|
|
3990
4207
|
|
|
3991
4208
|
export declare type LocaleCatalog = Record<Locale, CmsMessages>;
|
|
3992
4209
|
|
|
3993
|
-
export declare const MENU_BG:
|
|
4210
|
+
export declare const MENU_BG: string;
|
|
3994
4211
|
|
|
3995
4212
|
declare type MenuOrigin = {
|
|
3996
4213
|
vertical: 'top' | 'center' | 'bottom';
|
|
@@ -4581,29 +4798,23 @@ export declare interface NotificationAdminConfigurationResponse extends CmsRespo
|
|
|
4581
4798
|
|
|
4582
4799
|
export declare type NotificationColors = typeof notificationColors;
|
|
4583
4800
|
|
|
4584
|
-
/**
|
|
4585
|
-
* Colores del avatar de ícono de cada tarjeta del centro de notificaciones
|
|
4586
|
-
* (campanita del TopBar). `bg` = fondo del contenedor cuadrado; `on` =
|
|
4587
|
-
* color del ícono. Replican los del centro de notificaciones del diseño
|
|
4588
|
-
* (mockup "Gestión de Noticias"): temas asignados en azul (misma familia
|
|
4589
|
-
* secundaria), actividades por vencer en naranja y notificaciones de sistema
|
|
4590
|
-
* (videos) en verde. Semánticos y reutilizables por cualquier gestor.
|
|
4591
|
-
*/
|
|
4592
4801
|
export declare const notificationColors: {
|
|
4593
|
-
/** Temas asignados (azul): mismo contenedor secundario que los chips activos. */
|
|
4594
|
-
readonly assigned: {
|
|
4595
|
-
readonly bg: "#D8E2FF";
|
|
4596
|
-
readonly on: "#2C4678";
|
|
4597
|
-
};
|
|
4598
|
-
/** Actividades por vencer (naranja). El `on` se reutiliza para la fecha de vencimiento. */
|
|
4599
4802
|
readonly pending: {
|
|
4600
|
-
|
|
4601
|
-
|
|
4803
|
+
bg: string;
|
|
4804
|
+
on: string;
|
|
4602
4805
|
};
|
|
4603
|
-
/** Notificaciones del sistema / videos (verde). */
|
|
4604
4806
|
readonly system: {
|
|
4605
|
-
|
|
4606
|
-
|
|
4807
|
+
bg: string;
|
|
4808
|
+
on: string;
|
|
4809
|
+
};
|
|
4810
|
+
readonly editorialOpportunity: {
|
|
4811
|
+
bg: string;
|
|
4812
|
+
on: string;
|
|
4813
|
+
};
|
|
4814
|
+
/** Temas asignados (azul): mismo contenedor secundario que los chips activos. */
|
|
4815
|
+
readonly assigned: {
|
|
4816
|
+
readonly bg: string;
|
|
4817
|
+
readonly on: string;
|
|
4607
4818
|
};
|
|
4608
4819
|
};
|
|
4609
4820
|
|
|
@@ -4649,7 +4860,7 @@ export declare interface NotificationsListResponse {
|
|
|
4649
4860
|
total?: number;
|
|
4650
4861
|
}
|
|
4651
4862
|
|
|
4652
|
-
export declare function NotificationsMenu({ unreadCount, notificationsData, masterBaseUrl, currentPublicationId, gmtRedaction, }: NotificationsMenuProps): JSX.Element;
|
|
4863
|
+
export declare function NotificationsMenu({ unreadCount, notificationsData, masterBaseUrl, currentPublicationId, gmtRedaction, editorialOpportunities, showEditorialOpportunities, copilotSuggestionsHref, onEditorialSeeMore, }: NotificationsMenuProps): JSX.Element;
|
|
4653
4864
|
|
|
4654
4865
|
export declare type NotificationsMenuMessageKey = keyof CmsMessages['notificationsMenu'];
|
|
4655
4866
|
|
|
@@ -4664,6 +4875,22 @@ export declare type NotificationsMenuProps = {
|
|
|
4664
4875
|
currentPublicationId?: number | string;
|
|
4665
4876
|
/** Offset GMT de la publicación (para mostrar las fechas en zona de redacción). */
|
|
4666
4877
|
gmtRedaction?: string | null;
|
|
4878
|
+
/**
|
|
4879
|
+
* Oportunidades editoriales copilot (card de la campanita, NAA-4837). Si se
|
|
4880
|
+
* omite y `showEditorialOpportunities` no es `false`, se usan datos QUEMADOS
|
|
4881
|
+
* temporales; cuando el back libere el bloque, el gestor pasa las reales aquí.
|
|
4882
|
+
*/
|
|
4883
|
+
editorialOpportunities?: EditorialOpportunity[];
|
|
4884
|
+
/** Muestra la card de oportunidades editoriales copilot. Por defecto `true`. */
|
|
4885
|
+
showEditorialOpportunities?: boolean;
|
|
4886
|
+
/**
|
|
4887
|
+
* URL del gestor de sugerencias copilot para el "Ver más" de la card. La arma
|
|
4888
|
+
* el gestor con su deploy (env) + la publicación actual; si se pasa, el "Ver
|
|
4889
|
+
* más" es un enlace real (nueva pestaña). Si no, cae al callback.
|
|
4890
|
+
*/
|
|
4891
|
+
copilotSuggestionsHref?: string;
|
|
4892
|
+
/** Clic en "Ver más" cuando no hay `copilotSuggestionsHref` (fallback). */
|
|
4893
|
+
onEditorialSeeMore?: () => void;
|
|
4667
4894
|
};
|
|
4668
4895
|
|
|
4669
4896
|
/** Topic devuelto por notification/topics (`{ name, description }`). */
|
|
@@ -5619,6 +5846,13 @@ export declare const ptMessages: {
|
|
|
5619
5846
|
preview: string;
|
|
5620
5847
|
help: string;
|
|
5621
5848
|
publication: string;
|
|
5849
|
+
appearance: string;
|
|
5850
|
+
newTheme: string;
|
|
5851
|
+
newThemeSubtitle: string;
|
|
5852
|
+
modeLabel: string;
|
|
5853
|
+
modeLight: string;
|
|
5854
|
+
modeDark: string;
|
|
5855
|
+
classicUnavailable: string;
|
|
5622
5856
|
};
|
|
5623
5857
|
newMenu: {
|
|
5624
5858
|
frequentsTitle: string;
|
|
@@ -5664,6 +5898,15 @@ export declare const ptMessages: {
|
|
|
5664
5898
|
assignedYesterday: string;
|
|
5665
5899
|
assignedOn: string;
|
|
5666
5900
|
expires: string;
|
|
5901
|
+
editorialOpportunityLabel: string;
|
|
5902
|
+
editorialOpportunityText: string;
|
|
5903
|
+
editorialOpportunityTop: string;
|
|
5904
|
+
editorialOpportunityMatch: string;
|
|
5905
|
+
editorialOpportunityTrending: string;
|
|
5906
|
+
editorialOpportunitySeeMoreOpportunities: string;
|
|
5907
|
+
editorialOpportunityHide: string;
|
|
5908
|
+
editorialOpportunityRemindLater: string;
|
|
5909
|
+
editorialOpportunitySeeMore: string;
|
|
5667
5910
|
};
|
|
5668
5911
|
search: {
|
|
5669
5912
|
placeholder: string;
|
|
@@ -5746,6 +5989,18 @@ export declare const ptMessages: {
|
|
|
5746
5989
|
alt: string;
|
|
5747
5990
|
unknownUser: string;
|
|
5748
5991
|
};
|
|
5992
|
+
errorPage: {
|
|
5993
|
+
homeButton: string;
|
|
5994
|
+
notFoundTitle: string;
|
|
5995
|
+
notFoundSubtitle: string;
|
|
5996
|
+
notFoundCode: string;
|
|
5997
|
+
errorLabel: string;
|
|
5998
|
+
copyDetail: string;
|
|
5999
|
+
copyDetailText: string;
|
|
6000
|
+
copied: string;
|
|
6001
|
+
notAllowedTitle: string;
|
|
6002
|
+
notAllowedSubtitle: string;
|
|
6003
|
+
};
|
|
5749
6004
|
};
|
|
5750
6005
|
|
|
5751
6006
|
/** Publicación devuelta por POST /publications/get y POST /publications/default */
|
|
@@ -6339,52 +6594,14 @@ export declare const sizes: {
|
|
|
6339
6594
|
|
|
6340
6595
|
export declare type SourceColors = typeof sourceColors;
|
|
6341
6596
|
|
|
6342
|
-
|
|
6343
|
-
* Colores de marca por fuente de origen (puntos/indicadores de fuente en
|
|
6344
|
-
* filtros y chips). **Valores placeholder**: ajustar a los oficiales cuando se
|
|
6345
|
-
* definan. Semánticos y reutilizables por cualquier gestor.
|
|
6346
|
-
*/
|
|
6347
|
-
export declare const sourceColors: {
|
|
6348
|
-
/** RSS (naranja). */
|
|
6349
|
-
readonly rss: "#FB923C";
|
|
6350
|
-
/** Google Trends (azul). */
|
|
6351
|
-
readonly gtrends: "#4285F4";
|
|
6352
|
-
/** Search Console (verde). */
|
|
6353
|
-
readonly sconsole: "#0F9D58";
|
|
6354
|
-
/** X / Twitter (negro). */
|
|
6355
|
-
readonly x: "#111111";
|
|
6356
|
-
};
|
|
6597
|
+
export declare const sourceColors: Record<"rss" | "gtrends" | "sconsole" | "x", string>;
|
|
6357
6598
|
|
|
6358
6599
|
export declare type StateColors = typeof stateColors;
|
|
6359
6600
|
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
* cualquier gestor (no atados a un componente puntual).
|
|
6365
|
-
*/
|
|
6366
|
-
export declare const stateColors: {
|
|
6367
|
-
/** Activo / publicado (verde). */
|
|
6368
|
-
readonly active: {
|
|
6369
|
-
readonly bg: "#D6F4DE";
|
|
6370
|
-
readonly on: "#1D6B2E";
|
|
6371
|
-
};
|
|
6372
|
-
/** Generando con IA (azul Bluestack tonal). */
|
|
6373
|
-
readonly generating: {
|
|
6374
|
-
readonly bg: "#DCE3FF";
|
|
6375
|
-
readonly on: "#001551";
|
|
6376
|
-
};
|
|
6377
|
-
/** Asignado / en redacción (púrpura, distinto de la familia IA). */
|
|
6378
|
-
readonly assigned: {
|
|
6379
|
-
readonly bg: "#EADDFF";
|
|
6380
|
-
readonly on: "#4F378A";
|
|
6381
|
-
};
|
|
6382
|
-
/** Descartado / archivado (neutral). */
|
|
6383
|
-
readonly discarded: {
|
|
6384
|
-
readonly bg: "#ECEDF6";
|
|
6385
|
-
readonly on: "#43474E";
|
|
6386
|
-
};
|
|
6387
|
-
};
|
|
6601
|
+
export declare const stateColors: Record<"active" | "generating" | "assigned" | "discarded", {
|
|
6602
|
+
bg: string;
|
|
6603
|
+
on: string;
|
|
6604
|
+
}>;
|
|
6388
6605
|
|
|
6389
6606
|
/**
|
|
6390
6607
|
* Arma y envía el formulario POST que abre una ruta del admin viejo en una
|
|
@@ -6652,7 +6869,7 @@ export declare interface ToastOptions {
|
|
|
6652
6869
|
/** Severidad visual de un toast. */
|
|
6653
6870
|
export declare type ToastSeverity = 'success' | 'error' | 'warning' | 'info';
|
|
6654
6871
|
|
|
6655
|
-
export declare function TopBar({ sites, sidebarOpen, onToggleSidebar, notificationUnreadCount, notificationsData, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, newContentGroups, previewFormats, operationPermissions, isAdmin, onNewContentSelect, onPreviewSelect, }: TopBarProps): JSX.Element;
|
|
6872
|
+
export declare function TopBar({ sites, sidebarOpen, onToggleSidebar, notificationUnreadCount, notificationsData, editorialOpportunities, showEditorialOpportunities, copilotSuggestionsHref, onEditorialSeeMore, profile, primaryLogo, brandLogo, selectedPublicationId, getPublicationHref, resolvePublicationImageUrl, profileAvatarOptions, legacyBaseUrl, cmsBaseUrl, legacySession, newContentGroups, previewFormats, operationPermissions, isAdmin, onNewContentSelect, onPreviewSelect, }: TopBarProps): JSX.Element;
|
|
6656
6873
|
|
|
6657
6874
|
export declare type TopBarMessageKey = keyof CmsMessages['topBar'];
|
|
6658
6875
|
|
|
@@ -6664,6 +6881,14 @@ export declare type TopBarProps = {
|
|
|
6664
6881
|
notificationUnreadCount: number;
|
|
6665
6882
|
/** Respuesta cruda de `POST /dashboard/notification` (newsTask/expireTask/videos). */
|
|
6666
6883
|
notificationsData?: DashboardNotificationsResponse | null;
|
|
6884
|
+
/** Oportunidades editoriales copilot (card de la campanita). Si se omite, mock temporal. */
|
|
6885
|
+
editorialOpportunities?: EditorialOpportunity[];
|
|
6886
|
+
/** Muestra la card de oportunidades editoriales copilot. Por defecto `true`. */
|
|
6887
|
+
showEditorialOpportunities?: boolean;
|
|
6888
|
+
/** URL del gestor de sugerencias copilot para el "Ver más" (enlace real). */
|
|
6889
|
+
copilotSuggestionsHref?: string;
|
|
6890
|
+
/** Clic en "Ver más" cuando no hay `copilotSuggestionsHref` (fallback). */
|
|
6891
|
+
onEditorialSeeMore?: () => void;
|
|
6667
6892
|
profile: ProfileGetResponse;
|
|
6668
6893
|
primaryLogo: ReactNode;
|
|
6669
6894
|
brandLogo?: ReactNode;
|
|
@@ -7135,23 +7360,10 @@ export declare type UserStatusAction = 'activate' | 'deactivate';
|
|
|
7135
7360
|
|
|
7136
7361
|
export declare type UserStatusColors = typeof userStatusColors;
|
|
7137
7362
|
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
*/
|
|
7143
|
-
export declare const userStatusColors: {
|
|
7144
|
-
/** Activo: contenedor verde menta. */
|
|
7145
|
-
readonly active: {
|
|
7146
|
-
readonly bg: "#92F7B7";
|
|
7147
|
-
readonly on: "#002112";
|
|
7148
|
-
};
|
|
7149
|
-
/** Inactivo: contenedor neutro. */
|
|
7150
|
-
readonly inactive: {
|
|
7151
|
-
readonly bg: "#E1E2E9";
|
|
7152
|
-
readonly on: "#002112";
|
|
7153
|
-
};
|
|
7154
|
-
};
|
|
7363
|
+
export declare const userStatusColors: Record<"active" | "inactive", {
|
|
7364
|
+
bg: string;
|
|
7365
|
+
on: string;
|
|
7366
|
+
}>;
|
|
7155
7367
|
|
|
7156
7368
|
/** Video del CMS. La forma exacta depende del recurso y del formato pedido. */
|
|
7157
7369
|
export declare interface Video {
|