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

MenuButton

Abre un menú de acciones desde un botón, con gestión de foco y un control de apertura personalizable.

Categoría
Navegación
Import
@neural-ui/core/menu
Selector
neu-menu-button
import { NeuMenuButtonComponent } from '@neural-ui/core/menu';

Uso

Proporciona items y la etiqueta del botón. disabled impide abrirlo. El panel usa el mismo modelo que Menu: grupos anidados, acciones opcionales, entradas desactivadas y separadores. El control predeterminado es un botón neutro compacto; el contenido proyectado sustituye la etiqueta visible y conserva la relación del botón nativo con el menú.

Ejemplos

Prueba la interacción y abre Código para ver la implementación completa.

Ejemplos

Seleccionado: — · itemClick: 0 · Acciones: 0

Prueba y configura

Cambia las opciones, prueba el resultado y consulta el template actualizado. Abre Código para ver el modelo de datos y la implementación completa.

Prueba y configura

Seleccionado: — · itemClick: 0 · Acciones: 0

Las opciones de Core actualizan este template. Los iconos, contadores y acciones desactivadas pertenecen al modelo de datos que se muestra en Código.

template.html
<neu-menu-button
  [items]="items"
  label="Acciones"
  [disabled]="false"
  (itemClick)="selectItem($event)"
  (openChange)="open.set($event)"
/>

Datos y contenido

openChange comunica el estado real del panel: es un Output, no un Input open. El command de una hoja se ejecuta antes de emitir itemClick y cerrar el panel. Un clic exterior o Escape también lo cierran. neuMenuItem personaliza los elementos del panel; el contenido proyectado normal personaliza el botón.

Accesibilidad y teclado

Intro, Espacio o flecha abajo abren y enfocan la primera acción disponible; flecha arriba permite abrir en la última. Dentro del panel se usa el teclado de Menu. Escape devuelve el foco al botón. El contenido del botón debe tener un nombre claro y no contener otro botón o enlace.

Tecla
Acción
Tab Enfoca el activador habilitado.
Enter Abre el menú desde el activador; dentro del menú, activa la acción enfocada.
Space Abre el menú desde el activador; dentro del menú, activa la acción enfocada.
ArrowDown Desde el activador, abre en la primera acción disponible; dentro, pasa a la siguiente acción.
ArrowUp Desde el activador, abre en la última acción disponible; dentro, pasa a la acción anterior.
ArrowRight / ArrowLeft Recorre los grupos del menú según la dirección del texto.
Home / End Accede a la primera o última acción disponible del nivel actual.
Escape Cierra el menú emergente y devuelve el foco al activador.

API

Inputs y Outputs corresponden al paquete instalado. Los tipos con nombre enlazan a sus definiciones. Cada Template/proyección disponible tiene un ejemplo ejecutable.

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
disabledbooleanfalse[disabled]Desactiva el botón/navegación. Los estados disabled de cada elemento pertenecen a items.
itemsNeuMenuItem[][][items]Datos de acciones con claves únicas; children crea grupos. Core no modifica el array.
labelstring'Menu'[label]Texto visible predeterminado del botón cuando no se proyecta contenido.

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
itemClickNeuMenuItem(itemClick)="onItemClick($event)"Emite la hoja/acción activada. El command opcional se ejecuta antes; las entradas desactivadas no se activan.
openChangeboolean(openChange)="onOpenChange($event)"Comunica el estado real del panel: true al abrir, false al cerrar.

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
ng-template[neuMenuItem] Proyección de contenido<ng-content select="ng-template[neuMenuItem]" />
*

Contenido proyectado

Ver ejemplo
Proyección de contenido

Contenido proporcionado por la aplicación.

<ng-content />

Contexto utilizado: —

NeuMenuItemDirectiveVer ejemplo Directiva pública de templateng-template[neuMenuItem]

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

Contenido del botón

*

Contenido del botón

Seleccionado: — · itemClick: 0 · Acciones: 0

Contenido del menú

NeuMenuItemDirective

Contenido del menú

Seleccionado: — · itemClick: 0 · Acciones: 0

Public Types

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

Estilos y tokens

Utiliza los tokens públicos disponibles. La resolución de iconos y el diseño que rodea al ejemplo pertenecen a la aplicación. Comprueba ambos temas y pantallas estrechas.

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