Manages the timing of when field-level validation error messages are displayed, deferring visibility until the user has stopped typing or left the field. ## Key Components ### `UseDeferredErrorResult` Interface describing the hook's return value: - `error` — The validation message to render, or `undefined` when suppressed (user is still typing) or the field is valid - `onBlur` — Callback to attach to the field's `onBlur` event; immediately reveals the error and keeps validation live going forward ### `useDeferredError(error, value, delay?)` Hook that controls error reveal timing with two trigger paths: - **Blur/touch** — Revealing immediately when the field loses focus (`onBlur`), and remaining live thereafter - **Idle timer** — Revealing after `delay` ms (default `1500`) of no value changes; every keystroke resets the countdown Once a field is touched, the error stays reactive. If the error clears (field becomes valid), it disappears immediately regardless of touch/pause state. ## Usage Example ```typescript import { useDeferredError } from './use-deferred-error' function EmailField({ value, onChange, validationError }) { const { error, onBlur } = useDeferredError(validationError, value) return (