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

SplitButton

Combina un botón principal con un desplegable de acciones secundarias.

Categoría
Acciones
Import
@neural-ui/core/split-button
Selector
neu-split-button
import { NeuSplitButtonComponent } from '@neural-ui/core/split-button';

Uso

primaryClick activa la acción principal; actionClick identifica una secundaria por id. actions admite entradas disabled o divisores. loading evita activaciones duplicadas mientras haya trabajo pendiente. El Template sustituye el contenido de la acción secundaria, no el desplegable ni su teclado.

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
<neu-split-button
  [actions]="actions()"
  [disabled]="false"
  [loading]="false"
  [size]="'md'"
  [variant]="'solid'"
  [tone]="'brand'"
  (primaryClick)="record('primaryClick')"
  (actionClick)="record('actionClick', $event.id)"
  [actionsAriaLabel]="'Acciones de guardado'"
  [label]="'Guardar'"
  [moreActionsAriaLabel]="'Más acciones'"
></neu-split-button>

Estado y eventos

primaryClick activa la acción principal; actionClick identifica una secundaria por id. actions admite entradas disabled o divisores. loading evita activaciones duplicadas mientras haya trabajo pendiente. El Template sustituye el contenido de la acción secundaria, no el desplegable ni su teclado.

Accesibilidad y teclado

Tab alcanza la acción principal y el activador. Intro/Espacio abre el menú; las flechas lo recorren y Escape lo cierra.

Tecla
Acción
Tab Recorre el activador y las acciones nativas disponibles.
Enter Abre el menú desde su activador o ejecuta la acción habilitada enfocada.
Space Abre el menú desde su activador o ejecuta la acción habilitada enfocada.
Arrow keys Mueve el foco entre las acciones disponibles según la orientación del menú.
Home Enfoca la primera acción disponible del menú.
End Enfoca la última acción disponible del menú.
Escape Cierra el menú de acciones y devuelve el foco 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
actionsNeuSplitButtonAction[][][actions]Acciones secundarias con ids estables, etiquetas y marcas disabled/divider opcionales.
actionsAriaLabelstring'Actions'[actionsAriaLabel]Nombre accesible del menú de acciones secundarias o su activador.
disabledbooleanfalse[disabled]Impide interactuar con este control.
labelstring''[label]Etiqueta visible que identifica el campo o la acción.
loadingbooleanfalse[loading]Muestra el estado de carga mientras la aplicación proporciona datos.
moreActionsAriaLabelstring'More options'[moreActionsAriaLabel]Nombre accesible del menú de acciones secundarias o su activador.
sizeNeuButtonSize'md'[size]Tamaño del control. El tipo indica la escala o unidad numérica admitida.
toneNeuButtonTone'brand'[tone]Color semántico de la acción, como brand, neutral, success, warning o danger.
variantNeuButtonVariant'solid'[variant]Apariencia del botón, como solid, outline o ghost; consulta el tipo para todos los valores admitidos.

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
actionClickNeuSplitButtonAction(actionClick)="onActionClick($event)"Emite el objeto de la acción secundaria activada.
closedvoid(closed)="onClosed($event)"Informa del cierre de este componente. El tipo indica los datos emitidos.
openedvoid(opened)="onOpened($event)"Informa de la apertura de este componente. El tipo indica los datos emitidos.
primaryClickMouseEvent(primaryClick)="onPrimaryClick($event)"Emite el evento nativo de la acción del botón principal.

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
NeuSplitButtonItemDirectiveVer ejemplo Directiva pública de templateng-template[neuSplitButtonItem]

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

NeuSplitButtonItemDirective

NeuSplitButtonItemDirective

NeuSplitButtonItemDirective

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

Token
Efecto
Estado / variante
Valor / origen
Alternativa
--neu-split-button-primary-divider Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.25)Declaración raízSin alias de token

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-border Bordes normales de controles y celdas Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.08)
--neu-radius Radio de las esquinas del control Compartido con otros consumidores de Core; limita el cambio a un ámbito. 8px
--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
--neu-text-disabled Texto de los controles deshabilitados Compartido con otros consumidores de Core; limita el cambio a un ámbito. #64748b
--neu-font-sans Tipografía del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif
--neu-shadow-lg Elevación de la superficie o capa Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 10px 30px rgba(15, 23, 42, 0.1), 0 4px 8px rgba(15, 23, 42, 0.04)