A pattern-masked text field — 9/A/* slots with literal separators, masked and raw value on every change, and caret-preserving edits in the middle of the string.
npx shadcn@latest add @zyeon/masked-inputZyeon UI limits how often it can be asked, and Masked Input hasn't had its turn. Its source will show here once it has.