Input OTP

Input OTP demo

Compare a primitive-only implementation with the styled wrapper while keeping the same OTP value contract.

1) Headless primitive (`tngInputOtp`)

Custom slot rendering with primitive state hooks and manual input distribution.

value: —

state: empty

2) Wrapper component (`tng-input-otp`)

Built-in keyboard and paste behavior with straightforward valueChange + complete outputs.

value: —

completed: —