ComponentsFlows & wizards

Signer status

E-signature progress for quotes, contracts and offer letters: who signs, in which order, where each person is (sent, viewed, signed, declined) and when — with a segmented summary bar and a reminder action. It shows status from your signing provider; it does not collect signatures (use Signature pad for that).

business/signer-status.tsxtheme · material · accent · density · font

Signatures

1 of 3 signed
  1. Elif SarıClient

    elif@quillfeather.example.com

    Signed
  2. Mert GüneşClient finance

    mert@quillfeather.example.com

    Viewed
  3. Aylin DemirtaşAccount executive

    aylin.demirtas@example.com

    Sent

Installation

$ pnpm add @vamos-ui/react

The whole kit as one package — get updates by bumping the version. Add the styles to globals.css: @import "@vamos-ui/react/styles.css";

Usage

import { SignerStatus } from "@vamos-ui/react/business";

<SignerStatus sequential signers={contract.signers} onRemind={(s) => api.remind(s.id)} />

Examples

Signing order with reminders (contracts)

sequential numbers the signers; onRemind may return a promise — the button spins, then confirms.

Master services agreement · v3

1 of 3 signed
  1. Kaan ToprakVelvet Anchor HotelsSigns 1

    kaan@velvetanchor.example.com

    Signed
  2. Pınar IlgazVelvet Anchor Hotels · FinanceSigns 2

    pinar@velvetanchor.example.com

    Viewed
  3. Defne KayaKiln & Linen · CountersignerSigns 3

    defne.kaya@example.com

    Waiting

Declined (quote)

A decline turns the summary red and shows the signer's note.

Quote Q-2026-0412

Declined by Cem Arıkan
  1. Cem ArıkanLodestar Freight · COO

    “Volume discount on line 4 doesn't match what we agreed on the call.”
    Declined
  2. Tomás HerreraAccount executive

    Signed

API

SignerStatus

PropTypeDefault
signers
{ id, name, email?, role?, status: "waiting" | "sent" | "viewed" | "signed" | "declined", at?, note?, avatarSrc? }.
Signer[]—
sequential
Signers sign in list order: numbered avatars, "Signs 2" for screen readers.
boolean—
title
Region heading; null hides the header and summary bar.
ReactNode | null"Signatures"
onRemind
Adds Remind to sent / viewed rows.
(signer) => void | Promise<void>—
now
Reference time for relative dates (tests, screenshots).
number—
labels
Dictionary namespace "signerStatus": title, summary, declinedSummary, complete, state names, remind, remindName, reminded, order.
Partial<SignerStatusLabels>—