chrome:shell.skip

generated:catalog.entry.input.title

generated:catalog.entry.input.description

@xngui/components/input
@xngui/components/input

chrome:demo.section

chrome:demo.preview

demo-preview:input.spellcheck-hint

demo-preview:hints.category.navigation:
Tab
demo-preview:hints.category.focus:
Focus
demo-preview:hints.category.shortcuts:
Type
demo-preview:hints.category.timing:
Blur
demo-preview:projection.slots-label:
[xStart] [xEnd]
import { form, validate } from '@angular/forms/signals';
import { XForm } from '@xngui/components/form';
import { XFormField } from '@xngui/components/form-field';
import { XInput } from '@xngui/components/input';
 
private readonly model = signal({ username: '' });
 
protected readonly demoForm = form(this.model, (path) => {
syncDemoStringLength(path.username, () => this.controlState());
validate(path.username, ({ value }) => demoStringFieldErrors(this.controlState(), value));
});

chrome:demo.events.title

chrome:demo.events.empty

chrome:demo.api.title

x-input

chrome:demo.api.col.property
chrome:demo.api.col.type
chrome:demo.api.col.default
chrome:demo.api.col.description
size
XSize
—
Visual size tier — falls back to parent `x-form` then XConfigService when unset.
density
XDensity
—
Spacing offsets — orthogonal to `size`; falls back to parent `x-form` then XConfigService when unset.
type
XInputType
'text'
Native input `type` (password → `x-password-input`; search → `x-search-input`).
placeholder
string
''
Placeholder text shown when the control is empty.
autocomplete
XAutocomplete
—
Native `autocomplete` hint for the control.
look
XFormLook
—
Field chrome — outline, fill, flat, or none; falls back to parent `x-form` then XConfigService.
clearable
boolean
false
Shows a clear button when the control has a value.
mask
XTextMaskInput
—
As-you-type mask — preset (`phone`, `date`, …), Maskito options, or config with `unmask`. Model value stays unmasked (digits-only for presets).
inputMode
string
—
Native `inputmode` hint for mobile keyboards.
spellcheck
boolean
—
Native `spellcheck` attribute.
enterKeyHint
string
—
Native `enterkeyhint` for the virtual keyboard action key.
inputPattern
string
—
Native HTML `pattern` attribute (Signal Forms validators use a separate `pattern` API).
controlId
string
—
Native `id` on the control; falls back to `name`, then a generated id.
disabled
boolean
false
Kept in sync by `[formField]`; set directly for standalone use.
readonly
boolean
false
Prevents editing while keeping the control focusable.
invalid
boolean
false
Marks the control invalid — display timing defers to ancestor `x-form-field` when wrapped.
required
boolean
false
Sets the native `required` attribute and `aria-required`.
minLength
number
—
Native `minlength` constraint for validation.
maxLength
number
—
Native `maxlength` constraint for validation.
name
string
''
Form control name — used as `name` on the native element and for id fallback.
role
string
—
Custom ARIA `role` — use when composing combobox or similar patterns.
ariaExpanded
boolean
—
ARIA `aria-expanded` — for combobox/popup compositions.
ariaControls
string
—
ARIA `aria-controls` — id of the controlled popup listbox.
ariaAutocomplete
string
—
ARIA `aria-autocomplete` — list, inline, both, or none.
ariaActiveDescendant
string
—
ARIA `aria-activedescendant` — id of the focused option in a listbox.
ariaLabel
string
—
Accessible name when no visible label is provided.