chrome:shell.skip

generated:catalog.entry.input-otp.title

generated:catalog.entry.input-otp.description

@xngui/components/input-otp
@xngui/components/input-otp

chrome:demo.section

chrome:demo.preview

demo-preview:input-otp.enter-code-sent

demo-preview:hints.category.navigation:
Tab
demo-preview:hints.category.focus:
Focus
demo-preview:hints.category.shortcuts:
TypePaste
demo-preview:projection.slots-label:
[xStart] [xEnd]
import { Component } from '@angular/core';
import { XForm } from '@xngui/components/form';
import { XFormField } from '@xngui/components/form-field';
import { XInputOtp } from '@xngui/components/input-otp';
 
@Component({
selector: 'app-example',
imports: [XForm, XFormField, XInputOtp],
templateUrl: './input-otp.component.html',
})
export class ExampleComponent {}

chrome:demo.events.title

chrome:demo.events.empty

chrome:demo.api.title

x-input-otp

chrome:demo.api.col.property
chrome:demo.api.col.type
chrome:demo.api.col.default
chrome:demo.api.col.description
length
number
6
Number of digit cells.
size
XSize
—
Visual size tier — falls back to XConfigService when unset.
density
XDensity
—
Spacing offsets — orthogonal to `size`; falls back to XConfigService when unset.
look
XFormLook
—
Field chrome — outline, fill, flat, or none; falls back to XForm then XConfigService.
disabled
boolean
false
Prevents interaction and sets `aria-disabled` on the digit inputs.
readonly
boolean
false
Value-only input — user cannot change when true.
invalid
boolean
false
Marks the control invalid for styling and ARIA.
required
boolean
false
Marks the control as required for validation and ARIA.
name
string
''
Native form control `name` attribute.
controlId
string
—
Native `id` on the first digit; falls back to `name`, then a generated id.
ariaLabel
string
—
Accessible name for the digit group when no visible label is provided.