v1.0.0
12 Sep 2026First release.
Added
- Real
<input>boxes, so password managers can fill them, withautocomplete="one-time-code"on the first for iOS and the WebOTP API for Chrome on Android. - The whole code dropped into one box — what Dashlane, 1Password and some Android keyboards do — is spread across the rest.
- Paste that understands a message: "Your verification code is 123-456" becomes
123456, wherever in the group it is pasted. - Arabic-Indic, Persian, Devanagari, Bengali and full-width digits read as digits.
- Numeric, alphanumeric and alphabetic modes, a rule of your own, and folding to upper case.
- Keyboard: type forward, backspace clears then steps back, arrows, Home and End, and select-all.
- A labelled group with "Digit 3 of 6" on each box and a live region announcing progress and completion.
reject()to mark a failed attempt, announce it and put the cursor back at the start.- Masking for PINs, separators (
123–456) that are decoration rather than value, autofocus, disabled and invalid states. - A hidden input carrying the whole code, so a plain form posts one field.
- React, Vue, Svelte and
<dx-otp>entries; the React field renders as a plain input on a server. - Theming through CSS variables,
classNameson every part,theme: 'auto', and a@layer devixstylesheet. - 3.0 kB gzip, zero dependencies.