PasswordConfirmInput
v1.0.11Updated 4 Oct 2026Pairs PasswordInput with a confirm field. Forwards all PasswordInput props to the primary field; the confirm field validates equality with a red/green ring + inline match indicator.
Preview
Live · 8 stories▸Why this is recommendedformpasswordconfirmmatch+2
PasswordConfirmInput — stacked.
- ✓Signup forms
- ✓Password reset flows
- ✓Set-new-password screens
- Forwards every PasswordInput prop (rules, generator, meter)
- Equality validation with red/green ring
- Inline match / mismatch indicator under the confirm field
- Stacked or side-by-side layouts
- Optional eye toggle on the confirm field
- i18n: labels prop overrides match/mismatch text, placeholder, and toggle aria-labels
- ✕Login (single field — use Input)
- ✕Single password without confirm (use PasswordInput)
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
passwordPrimary password value
—onPasswordChangePrimary value callback
—confirmConfirm value
—onConfirmChangeConfirm value callback
—passwordOptionsForwarded to PasswordInput
—layoutField layout
—showConfirmToggleEye toggle on confirm
—onValidityChangeValidity + error[] callback
—labelsOverride built-in UI strings (i18n)
—idDOM id of the primary password input (passwordOptions.id wins); FormField clones its field id in, so its label names the first box
—aria-invalidMark the field invalid from outside; the box paints the same destructive state as its own validation, with the alert in its own trailing slot (FormField clones this in from its error prop)
—aria-describedbyId(s) of outside hint or error text, kept alongside the messages the field owns (FormField clones this in)
—aria-requiredMark the input required for assistive tech (FormField clones this in from its required prop)
—aria-labelAccessible name where the layout has no room for a visible `label` — a filter row, a subscribe box beside its button. Prefer `label`: a visible one names the field for everybody. These components destructure a fixed prop set and used to DROP an aria-label a caller wrote, so such a field announced as nothing but its role.
—