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

Dialog

Presenta una tarea en un diálogo modal con redimensión y maximización opcionales.

Categoría
Capas y diálogos
Import
@neural-ui/core/modal
Selector
neu-dialog
import { NeuDialogComponent } from '@neural-ui/core/modal';

Uso

La aplicación gestiona open. Conéctalo y acepta closeRequested aplicando false cuando proceda cerrar. opened y closed informan de transiciones, no sustituyen open. Proyecta el contenido y los espacios de cabecera o pie disponibles. Mantén un activador con nombre para recuperar el foco. Bloquear el cierre automático no debe eliminar una acción explícita para terminar.

Ejemplos

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

Ejemplos

Eventos: 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

Eventos: 0

template.html
<button
    neu-button
    (neuClick)="open.set(true)"
  >
    {{ t('Open example', 'Abrir ejemplo') }}</button
  ><neu-dialog
    [maximized]="undefined"
    [responsive]="true"
    [restoreFocus]="true"
    [open]="open()"
    [size]="'md'"
    [disableClose]="false"
    [draggable]="false"
    [resizable]="false"
    [maximizable]="false"
    [layout]="'auto'"
    (closeRequested)="open.set(false); record('closeRequested', $event)"
    (maximizedChange)="onMaximizedChange($event)"
  (opened)="record('opened')"
    (closed)="record('closed')"
  [maximizeLabel]="'Maximizar'"
  [resizeLabel]="'Redimensionar'"
  [restoreLabel]="'Restaurar'"
  [title]="'Revisar cambios'"
><p>
      {{
        t(
          'Review the content, then close to return to the trigger.',
          'Revisa el contenido y cierra para regresar al activador.'
        )
      }}
    </p>
    <button
      neu-button
      variant="ghost"
      (neuClick)="nestedOpen.set(true)"
    >
      {{ t('Open nested dialog', 'Abrir diálogo anidado') }}
    </button>
    <neu-dialog
      [open]="nestedOpen()"
      [title]="t('Confirm details', 'Confirmar detalles')"
      (closeRequested)="
        nestedOpen.set(false); record('nestedCloseRequested', $event)
      "
    >
      <p>
        {{
          t(
            'Close this dialog to return to the parent.',
            'Cierra este diálogo para volver al padre.'
          )
        }}
      </p>
      <div neu-dialog-footer>
        <button
          neu-button
          (neuClick)="nestedOpen.set(false)"
        >
          {{ t('Return', 'Volver') }}
        </button>
      </div>
    </neu-dialog>
    <div neu-dialog-footer>
      <button
        neu-button
        variant="outline"
        (neuClick)="open.set(false)"
      >
        {{ t('Done', 'Terminar') }}
      </button>
    </div></neu-dialog
  >

Estado y eventos

La aplicación gestiona open. Conéctalo y acepta closeRequested aplicando false cuando proceda cerrar. opened y closed informan de transiciones, no sustituyen open. Proyecta el contenido y los espacios de cabecera o pie disponibles. Mantén un activador con nombre para recuperar el foco. Bloquear el cierre automático no debe eliminar una acción explícita para terminar.

Accesibilidad y teclado

Tab permanece en la superficie modal. Escape solicita cerrar cuando está habilitado. El cierre devuelve el foco al activador; Sidebar persistente es navegación de la página, no una tarea modal.

Tecla
Acción
Tab En modo modal, recorre los controles de la superficie. Una Sidebar persistente sigue el orden normal de la página.
Shift + Tab Recorre el foco en sentido inverso; en modo modal permanece dentro de la superficie.
Escape Solicita cerrar cuando está habilitado; al cerrar, el foco vuelve al activador.

API

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

Inputs

Configura el componente con [propiedad]="valor". Tu aplicación proporciona estos valores; el componente no debe reemplazar el estado que le pasas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
disableClosebooleanfalse[disableClose]Impide cerrar automáticamente con Escape o el fondo; conserva una acción explícita para terminar.
draggablebooleanfalse[draggable]Permite arrastrar el diálogo por la cabecera.
layoutNeuDialogLayout'auto'[layout]Estrategia de altura del panel: auto se adapta al contenido; viewport utiliza la altura disponible del viewport.
maximizablebooleanfalse[maximizable]Muestra la acción de maximizar/restaurar el diálogo.
maximizedboolean | undefinedundefined[maximized]Estado maximizado aplicado; undefined permite que el diálogo lo gestione localmente.
maximizeLabelstring'Maximize dialog'[maximizeLabel]Etiqueta accesible de la acción correspondiente de la ventana.
openbooleanfalse[open]Visibilidad gestionada por la aplicación. Aplica false al aceptar una solicitud de cierre.
resizablebooleanfalse[resizable]Permite ajuste vertical manual cuando autoResize está desactivado.
resizeLabelstring'Resize dialog'[resizeLabel]Etiqueta accesible de la acción correspondiente de la ventana.
responsivebooleantrue[responsive]Habilita el diseño adaptable del diálogo en pantallas estrechas.
restoreFocusbooleantrue[restoreFocus]Devuelve el foco al activador original al cerrar.
restoreLabelstring'Restore dialog'[restoreLabel]Etiqueta accesible de la acción correspondiente de la ventana.
sizeNeuDialogSize'md'[size]Tamaño del panel: sm, md, lg, xl o full.
titlestring''[title]Título visible opcional sobre el contenido proyectado.

Outputs

Escucha un evento con (evento)="handler($event)". La tabla indica qué datos recibe tu función y cómo utilizarlos.

Nombre
Valor emitido
Uso en el template
Descripción
closedvoid(closed)="onClosed($event)"Informa del cierre de este componente. El tipo indica los datos emitidos.
closeRequestedNeuCloseRequest(closeRequested)="onCloseRequested($event)"Solicita cerrar con el motivo y evento original. La aplicación acepta aplicando open=false.
maximizedChangeboolean(maximizedChange)="onMaximizedChange($event)"Propone el próximo estado maximizado; aplícalo si controlas maximized.
openedvoid(opened)="onOpened($event)"Informa de la apertura de este componente. El tipo indica los datos emitidos.

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.

Nombre
Mecanismo
Contrato
*

Contenido proyectado

Ver ejemplo
Proyección de contenido

Contenido proporcionado por la aplicación.

<ng-content />

Contexto utilizado: —

[neu-dialog-footer]Ver ejemplo Proyección de contenido<ng-content select="[neu-dialog-footer]" />

Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.

Contenido proyectado

*

Contenido proyectado

Eventos: 0

[neu-dialog-footer]

[neu-dialog-footer]

[neu-dialog-footer]

Eventos: 0

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
Sin datos