NeuInput envuelve un input nativo de una línea. Su modelo público value pertenece a la aplicación o a FormField; label, hint, size y la presentación opcional de iconos son inputs, no un motor de validación.
Configura el tipo, el tamaño, la etiqueta flotante, el placeholder y el texto de ayuda. Prueba los estados de interacción y validación; el template generado refleja tus ajustes.
Los datos estructurados, callbacks y templates se muestran en los ejemplos y en la API.
El código añade las opciones avanzadas cuando difieren del valor predeterminado. Los datos y valores de esta configuración aparecen en el estado del template.
Template generado. La pestaña Código incluye los imports y el estado.
template.html
<neu-input
[(value)]="text"
label="Nombre del cliente"
type="text"
size="md"
[floatingLabel]="true"
/>
Estos valores corresponden a la vista previa actual. Los handlers, imports de Core y templates completos están en Código.
configured-state.ts
import { signal } from '@angular/core';
export const text = signal("");
Estos inputs requieren un modelo o función, no un checkbox. Modifica el campo del mismo nombre en el componente de Código y enlázalo al template; los datos que ya usa esta vista previa se muestran en el estado anterior.
Disabled elimina el input nativo del foco de teclado y bloquea la edición. Readonly lo mantiene enfocable y legible, pero impide editar; no equivale a disabled. Aquí son inputs directos del componente, fuera de FormField.
Conecta FormField al control y define la validación en el esquema del formulario. En este ejemplo puedes editar, validar y restablecer el mismo campo, incluidos sus estados deshabilitado y de solo lectura.
El esquema de Angular decide la validez; NeuInput solo representa invalid/errors recibidos y un errorMessage explícito. Aplica aria-invalid y enlaza el error visible o la ayuda mediante aria-describedby. La demo muestra el mensaje tras interactuar; no atribuye al componente la validación minLength.
Usa [(value)] para editar en ambos sentidos, o [value] junto con (valueChange) si necesitas un manejador explícito. El evento touch informa de la pérdida de foco; no contiene el valor del campo.
Core asocia la etiqueta al campo nativo, conecta la ayuda y el error y refleja los estados deshabilitado, de solo lectura, obligatorio y no válido. La edición por teclado sigue siendo nativa.
Tu aplicación proporciona una etiqueta clara, reglas de validación y un errorMessage comprensible. Usa valores inputId distintos si asignas los identificadores manualmente.
value admite enlace bidireccional. touch informa de la pérdida de foco. Los inputs configuran el campo y el estado del formulario que muestra; las tablas indican los tipos, valores por defecto y sintaxis.
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
autocomplete
string
'off'
[autocomplete]
Pista nativa de autocompletado del campo de texto.
dirty
boolean
false
[dirty]
Estado dirty aplicado, normalmente aportado por FormField.
disabled
boolean
false
[disabled]
Deshabilita el input nativo y lo retira del foco de teclado.
endIcon
boolean
false
[endIcon]
Activa el slot de icono final proyectado.
errorMessage
string
''
[errorMessage]
Texto de error visible explícito cuando existe estado de error.
errors
readonly ValidationError.WithOptionalFieldTree[]
[]
[errors]
Errores de validación aplicados, normalmente desde el esquema.
floatingLabel
boolean
true
[floatingLabel]
Alterna la presentación de etiqueta flotante o estática.
hidden
boolean
false
[hidden]
Oculta el host del componente.
hint
string
''
[hint]
Texto de ayuda asociado al input nativo si no prevalece un error visible.
icon
string | null
null
[icon]
Clave opcional de icono semántico resuelta por la aplicación.
Tipo nativo de input limitado por NeuInputType público.
Models
Un modelo admite [(propiedad)]="signal" o la pareja [propiedad] y (propiedadChange). Elige una de las dos formas, no ambas.
Nombre
Tipo
Por defecto
Uso en el template
Descripción
value
string
''
[(value)]
Modelo de texto bidireccional propiedad de la aplicación o FormField.
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
touch
void
(touch)="onTouch($event)"
Aviso de ciclo de vida emitido cuando el input nativo pierde foco.
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
[neu-input-start]
Antes del campo
Proyección de contenido
El ejemplo coloca un prefijo y un botón de acción en los slots del campo.
<ng-content select="[neu-input-start]" />
Contexto utilizado: —
[neu-input-end]
Después del campo
Proyección de contenido
El ejemplo coloca un prefijo y un botón de acción en los slots del campo.
<ng-content select="[neu-input-end]" />
Contexto utilizado: —
Ejemplo de uso
Activa las zonas con [startIcon]="true" y [endIcon]="true", y coloca contenido dentro del campo con los selectores neu-input-start y neu-input-end. Los selectores son de proyección; startIcon y endIcon son inputs. El ejemplo muestra unidades decorativas y la etiqueta nombra la moneda. No necesitas un resolver de iconos.
Personalizar contenido
$USD
Public Types
Abre un tipo para consultar su definición y los campos de sus interfaces.
NeuInputType.d.ts
import type { NeuInputType } from '@neural-ui/core/input';
// Declaración pública (solo referencia)
export type NeuInputType = 'text' | 'email' | 'password' | 'tel' | 'url' | 'search';
Los tokens públicos --neu-input-* siguientes personalizan el fondo, el borde y el foco. La tipografía, el radio y los colores compartidos proceden del tema global de Core.
Tokens específicos
Token
Efecto
Estado / variante
Valor / origen
Alternativa
--neu-input-background
Fondo del campo y de su etiqueta flotante.
Superficie del campo
var(--neu-surface)Alternativa del componente
--neu-surface
--neu-input-border
Borde del campo cuando no tiene foco ni error.
Campo válido sin foco
var(--neu-border)Alternativa del componente
--neu-border
--neu-input-focus-border
Borde del campo con foco; el estado de error tiene prioridad.
Foco sin error
var(--neu-primary)Alternativa del componente
--neu-primary
--neu-input-focus-ring
Anillo de foco normal; con error se usa el color de error compartido.
Foco sin error
var(--neu-focus-ring)Alternativa del componente
--neu-focus-ring
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-border-hover
Bordes de controles al pasar el puntero
Compartido con otros consumidores de Core; limita el cambio a un ámbito.
rgba(15, 23, 42, 0.16)
--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-error-text
Texto de error y de Button danger outline/ghost en ambos temas
Compartido con otros consumidores de Core; limita el cambio a un ámbito.
#991b1b
--neu-focus-ring
Anillo normal del foco de teclado
Compartido con otros consumidores de Core; limita el cambio a un ámbito.