Measured entry
hextaui-auth-otp-verify
A client-side React card for entering and resending a one-time verification code. It ships as a HextaUI shadcn registry block and composes registry button, card, field, OTP input, and select primitives. It also relies on Tailwind classes, React state, Lucide icons, the input-otp and Radix packages, and the @/lib/utils alias.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 68.2 KB (133.6 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 2m 15s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/blocks/auth/auth-otp-verify.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A capable OTP step with useful delivery, resend, loading, and error hooks. It builds and mounts in the prepared harness, but the bare mount fails because it needs a shadcn-style setup, including the shared utility alias and registry primitives. Choose it when that foundation already matches your app.
Use it if
- You already have an OTP backend and need a ready-made verification step with loading and error states.
- Users may switch among email, SMS, or WhatsApp delivery and need the destination displayed safely.
- You want resend cooldown and optional auto-submit behavior exposed through component callbacks.
Skip it if
- You need the component to send or verify codes itself, since all authentication work is delegated to callbacks.
- Your app does not use shadcn-style primitives and you do not want to recreate its registry components, aliases, and theme tokens.
- Your form architecture requires native form submission or externally controlled code state rather than internal component state.
Install
| Declared dependencies | @radix-ui/react-slot, @radix-ui/react-label, @radix-ui/react-separator, input-otp, @radix-ui/react-select |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
For a non-shadcn project, add Tailwind theme tokens, the shared cn utility and @ alias, plus compatible button, card, field, OTP input, and select primitives. Install input-otp, the required Radix packages, and Lucide React, then connect the submit, resend, and delivery callbacks to your authentication service.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/preetsuthar17/HextaUIAlternatives
Other published entries for the auth-form pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- meraki-auth-sign-in-card-with-side-imageminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 18.9KB
- Bare
- pass
- Prov
- NO
- shadcn-block-login-01minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.3KB
- Bare
- fail
- Prov
- NO
- shadcn-block-login-02minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-login-05minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.9KB
- Bare
- fail
- Prov
- NO
- 8bitcn-login-formskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 33.2KB
- Bare
- fail
- Prov
- NO
- 8bitcn-advanced3skeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 33.3KB
- Bare
- fail
- Prov
- NO