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

Terminal

Recoge comandos y muestra la salida de terminal gestionada por la aplicación.

Categoría
Diseño y contenido
Import
@neural-ui/core/terminal
Selector
neu-terminal
import { NeuTerminalComponent } from '@neural-ui/core/terminal';

Uso

Terminal es una interfaz de comandos, no una consola del sistema operativo. Define welcomeMessage y prompt, procesa commandSubmit y añade las respuestas a output. Cada línea admite output, info o error. response añade una cadena cuando cambia; output es la opción más clara para respuestas repetidas y registros gestionados por la aplicación. readonly mantiene la entrada visible, pero impide editar comandos; disabled la mantiene visible pero no disponible.

Ejemplos

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

Ejemplos

Escribe help o status y pulsa Intro. Usa ↑ / ↓ para recuperar comandos. Se procesan localmente; no se ejecuta código de sistema.

Sesión local

Bienvenido. Escribe help para empezar.

commandSubmit: —

Prueba y configura

Cambia las opciones, prueba el resultado y consulta el template actualizado. Código contiene el ejemplo ejecutable completo.

Prueba y configura

Escribe help o status y pulsa Intro. Usa ↑ / ↓ para recuperar comandos. Se procesan localmente; no se ejecuta código de sistema.

Sesión local

Bienvenido. Escribe help para empezar.

commandSubmit: —

Template generado con tus opciones actuales. Abre Código para consultar el ejemplo completo.

template.html
<neu-terminal
  prompt="$"
  [output]="output()"
  [response]="undefined"
  [readonly]="false"
  [disabled]="false"
  (commandSubmit)="handleCommand($event)"
  [ariaLabel]="'Terminal de ejemplo'"
  [inputAriaLabel]="'Comando del terminal'"
  [welcomeMessage]="'Bienvenido. Escribe help para empezar.'"
/>

Datos y contenido

commandSubmit comunica el comando enviado. La aplicación decide su significado y proporciona output; Core nunca lo evalúa ni ejecuta. El ejemplo procesa help y status de forma síncrona. Arriba/abajo recuperan comandos anteriores. Reiniciar crea una nueva sesión del ejemplo. No hay Templates disponibles.

Accesibilidad y teclado

Asigna nombres accesibles distintos al terminal y a su entrada. Tab accede al campo, Intro envía el comando y arriba/abajo recorren el historial. La salida se anuncia como un registro no intrusivo. No uses este procesador de ejemplo para ejecutar entradas no confiables.

Tecla
Acción
Tab Accede al campo de comandos y a las acciones disponibles.
Enter Envía el comando desde el campo de entrada.
ArrowUp Recupera el comando anterior del historial.
ArrowDown Recupera el siguiente comando del historial.

API

Inputs y Outputs corresponden al paquete instalado. Los tipos con nombre enlazan a sus definiciones. Cada Template disponible tiene un ejemplo con Demo y Código.

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
ariaLabelstring'Terminal'[ariaLabel]Etiqueta de región del componente. Tradúcela para tu aplicación.
disabledbooleanfalse[disabled]Deshabilita la entrada de comandos visible.
inputAriaLabelstring'Terminal command'[inputAriaLabel]Etiqueta de entrada de comandos. Tradúcela para tu aplicación.
outputreadonly NeuTerminalLine[][][output]Líneas de la aplicación con text y tipo output/info/error opcional.
promptstring'$'[prompt]Prefijo visible junto a la entrada de comandos.
readonlybooleanfalse[readonly]Mantiene el campo visible y de solo lectura; no se envían comandos.
responsestring | undefinedundefined[response]Añade una respuesta cuando cambia esta cadena.
welcomeMessagestring''[welcomeMessage]Mensaje informativo inicial.

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
commandSubmitNeuTerminalCommand(commandSubmit)="onCommandSubmit($event)"Comunica un comando enviado; Core no lo ejecuta.

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.

Public Types

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

Estilos y tokens

Personaliza los tokens públicos disponibles y comprueba ambos temas. Las ilustraciones y el estado de los ejemplos no son Inputs de Core.

Tokens específicos

Token
Efecto
Estado / variante
Valor / origen
Alternativa
--neu-terminal-bg Valor del tema heredado que utiliza este componente Superficie del campo #0f172aDeclaración raízSin alias de token
--neu-terminal-border Valor del tema heredado que utiliza este componente Superficie del campo #334155Declaración raízSin alias de token
--neu-terminal-error Valor del tema heredado que utiliza este componente Superficie del campo #fca5a5Declaración raízSin alias de token
--neu-terminal-font Tipografía del texto Superficie del campo ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospaceDeclaración raízSin alias de token
--neu-terminal-muted Valor del tema heredado que utiliza este componente Superficie del campo #94a3b8Declaración raízSin alias de token
--neu-terminal-prompt Valor del tema heredado que utiliza este componente Superficie del campo #38bdf8Declaración raízSin alias de token
--neu-terminal-text Valor del tema heredado que utiliza este componente Superficie del campo #e2e8f0Declaració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-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-radius-lg Radio de esquina Compartido con otros consumidores de Core; limita el cambio a un ámbito. 12px