Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

NotificationCenter

Mantén una bandeja de notificaciones con contadores y acciones de lectura o limpieza.

Categoría
Estados y avisos
Import
@neural-ui/core/notification-center
Selector
neu-notification-center
import { NeuNotificationCenterComponent } from '@neural-ui/core/notification-center';

Uso

Coloca NotificationCenter donde se pueda acceder a la bandeja e inyecta NeuNotificationService. push devuelve un id; remove elimina un aviso, markAllRead limpia el contador y clearAll vacía la bandeja. duration se expresa en milisegundos; 0 conserva la notificación. Cada demo utiliza un servicio local para no compartir mensajes.

Ejemplos

Prueba esta interacción gestionada por la aplicación. Código incluye los eventos y los datos iniciales.

Ejemplos

Mensajes: 0 · No leídos: 0

Prueba y configura

Cambia las opciones públicas, prueba el resultado y consulta el template actualizado. Código contiene la implementación ejecutable completa.

Prueba y configura

Mensajes: 0 · No leídos: 0

template.html
<div class="remaining-actions">
  <button neu-button (neuClick)="show()">
    {{ t("Add message", "Añadir mensaje") }}</button
  ><button neu-button variant="outline" (neuClick)="service.clearAll()">
    {{ t("Clear all", "Limpiar todo") }}</button
  ><button neu-button variant="ghost" (neuClick)="service.markAllRead()">
    {{ t("Mark all read", "Marcar todo leído") }}
  </button>
</div>
<neu-notification-center />
notification.ts
this.service.push({
  "tone": "info",
  "message": "Tu informe está listo",
  "title": "Área de trabajo",
  "duration": 0
});

Estado y eventos

Coloca NotificationCenter donde se pueda acceder a la bandeja e inyecta NeuNotificationService. push devuelve un id; remove elimina un aviso, markAllRead limpia el contador y clearAll vacía la bandeja. duration se expresa en milisegundos; 0 conserva la notificación. Cada demo utiliza un servicio local para no compartir mensajes.

Accesibilidad y teclado

Tab alcanza la campana. Intro abre la bandeja; Escape cierra y devuelve el foco. Leer, limpiar y cerrar son botones normales.

Tecla
Acción
Tab Recorre la campana y las acciones disponibles de leer, limpiar y cerrar.
Enter En la campana, abre la bandeja; en un botón de acción, ejecuta esa acción.
Space En la campana, abre la bandeja; en un botón de acción, ejecuta esa acción.
Escape Cierra la bandeja y restablece el foco.

API

Inputs, modelos y Outputs se extraen del paquete Core instalado. Los tipos públicos enlazan a sus definiciones. Los Templates incluyen ejemplos ejecutables.

Templates

ng-content proyecta contenido dentro del componente. Los inputs TemplateRef reciben un template; las directivas ng-template identifican templates con un contexto tipado. Una directiva compartida en el entrypoint no es necesariamente un slot de este componente.

Este componente no expone proyección de contenido ni templates públicos de personalización.

Configuración pública

Nombre
Contrato
NeuNotificationServiceexport declare class NeuNotificationService { clearAll(): void; markAllRead(): void; push(opts: Partial<NeuNotificationOptions> & Pick<NeuNotificationOptions, 'message'>): string; remove(id: string): void; readonly notifications: import("@angular/core").WritableSignal<NeuNotification[]>; readonly unreadCount: import("@angular/core").Signal<number>; }

Public Types

Abre un tipo para consultar su definición y los campos de sus interfaces.

Estilos y tokens

Usa los tokens públicos de la referencia. El diseño del contenedor pertenece a tu aplicación; comprueba el resultado en modo claro y oscuro y en espacios estrechos.

Tokens específicos

Este componente utiliza tokens compartidos del tema en lugar de tokens específicos.

Tokens compartidos utilizados

Sobrescríbelos en un contenedor local para afectar a este ejemplo. Una modificación en :root afecta a los demás componentes que utilizan el mismo token.

Token
Efecto aquí
Otros efectos
Valor / alternativa
--neu-error Color del campo no válido o de la acción de peligro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #dc2626
--neu-focus-ring Anillo normal del foco de teclado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 0 0 var(--neu-focus-ring-width) rgba(0, 122, 255, 0.15)
--neu-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-primary-dark Tono oscuro de marca; texto de Button outline y ghost en el tema claro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #005fcc
--neu-primary-light Tono claro de marca; texto de Button outline y ghost en el tema oscuro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #339dff
--neu-surface Superficie principal del campo, cabecera o control Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-surface-2 Superficies secundarias y filas alternas Compartido con otros consumidores de Core; limita el cambio a un ámbito. #f1f5f9
--neu-text Color del texto principal y de los iconos que lo heredan Compartido con otros consumidores de Core; limita el cambio a un ámbito. #0f172a