build69
build69  /  Components  /  Text Inputs  /  EmailInput

EmailInput

v1.0.6Updated 27 Aug 2026

Validated email field with leading mail icon, trailing status pill, RFC 5322 regex, optional domain allowlist / blocklist, Levenshtein typo suggestions against 17 common providers ("Did you mean gmail.com?"), and server-

Preview

Live · 10 stories
DefaultOpen ↗
Why this is recommendedformemailvalidationtypo+4

The default, out-of-the-box EmailInput.

Recommended for+14
  • Signup forms
  • Work-email-only company signups
  • Disposable-inbox blocking
  • Email change flows
Tags+6
formemailvalidationtyporfc5322allowlistblocklistdefault
Features+4
  • RFC 5322 simplified regex validation
  • Domain allowlist + blocklist
  • Levenshtein typo suggestions against 17 common providers
  • Server-side error injection
  • validateOn: on-blur (default) / on-change / on-submit
  • onValidityChange callback
  • i18n: labels prop overrides the typo-suggestion chip strings; validation messages overridable via errorMessages
Not recommended for−2
  • Free-text fields (use Input)
  • Multi-recipient inputs (use TagInput)

Install

Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.

get_registry_item({ name: "EmailInput" })

Usage

import { EmailInput } from '@/components/inputs/email-input';

<EmailInput
  label="Work email"
  value={email}
  onValueChange={setEmail}
  onValidityChange={setValid}
  blockedDomains={['mailinator.com', 'tempmail.io']}
  suggestCorrections
  required
/>

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

PropTypeRequired
value

Controlled value

string
onValueChange

Value change callback

function
onValidityChange

Validity + error[] callback

function
allowedDomains

Domain allowlist

string[]
blockedDomains

Domain blocklist (throwaway providers)

string[]
suggestCorrections

Show "Did you mean…" typo fixes

boolean
validateOn

Validation timing

'on-blur' | 'on-change' | 'on-submit'
serverError

Forced server-side error

string
required

Required field

boolean
labels

Override the built-in UI strings — the "Did you mean {suggestion}?" typo chip and its Apply action (i18n). Merged over DEFAULT_EMAIL_INPUT_LABELS; validation messages stay on errorMessages.

Partial<EmailInputLabels>

Related