Tokens
Colours, type scale and radii. Everything is a CSS variable, so light, dark and any accent re-theme every component at once.
Icons
One line-icon set. Add a path to Icon.tsx and it is available everywhere by name.
Chip
Small status or tag pill with an optional icon. Tones come from the token set.
<Chip>Verified</Chip>
Props
StatusChip
Maps a domain value (stage, priority, payment, account) to a tone and icon in one place, so a status looks identical on every screen.
<StatusChip />
Props
Avatar and AvatarStack
Initial avatar with a stable colour per name, and an overlapping stack with a +N overflow.
<AvatarStack />
Props
Form fields
Input, Textarea, Select, Checkbox, Toggle, Segmented and FileDrop. Labels, hints and errors are wired for screen readers.
Banner
Inline message with a tone, icon, title, body and optional action.
<Banner>Closed automatically when you approved it.</Banner>
Props
EmptyState, Skeleton, ProgressBar
The three states every list needs: nothing here, loading, and progress.
<ProgressBar />
Props
Modal
Native dialog: focus is trapped, Esc and backdrop click close it.
Toast
Call useToast() anywhere under the provider.
Tabs
Pill tabs with icons and counts. Controlled or uncontrolled.
Stepper
Shows where a record is in a workflow, such as Requested → Approved → Paid.
- Requested
- Approved
- Paid
<Stepper />
Props
KpiTile
Headline number with a tag, in white, accent or black.
<KpiTile />
Props
BarChart
Simple accessible bars. The highest bar takes the accent.
<BarChart />
Props
DataTable
Sortable columns, row selection, a bulk-action bar and row click. Click headers, tick rows.
| Status | ||||
|---|---|---|---|---|
| JJames Brown | Meridial | $600 | To be paid | |
| SSara Lin | Halcyon | $480 | Paid | |
| OOmar Reyes | Northwind | $360 | Requested | |
| EElena Voss | Meridial | $400 | To be paid |
<DataTable />
Props
Timeline (audit log)
System entries are locked and cannot be changed. Notes can be edited or deleted.
Payment request sent: $150, WO-1043
Payment request approved. Amount and split edited
Payout went through the Meridial portal, ref TX-48213
CountdownPill
Red when overdue, accent under 24 hours, neutral otherwise.
<CountdownPill />
Props
AccountRow
Account list row with company, email, and Working, Verified or Terminated status.
<AccountRow />
Props
TaskCard
Manual tasks have a checkbox. Auto tasks are created by events, show what closes them, and link to the page where the action happens.
<TaskCard />
Props
Auto task lifecycle (live)
Click the button: the review task leaves, and the follow-on task is created by a rule, with motion. This is the feel every event-driven change should have.
Review payment request, $600
MoneyInput
Amount, currency and the rate you type. Shows what it counts as in your main currency.
SplitEditor
Divide a payment between parties, each tagged Own or Bill, with a live check that it adds up.
ProofAttachment
Proof of payment is optional: a message, a file, or both.
ApprovalBar
Request → approve → paid, with the actions that apply at each stage. Locked once paid or rejected.
- Requested
- Approved
- Paid
AccountPicker + VariableTextEditor
Create one task for many accounts. Variables like {account} are filled in per account in the preview.
TimerWidget
Counts from a start timestamp, so the server is the source of truth.
AppShell
The two-panel layout: cream working panel on the left with navigation, charcoal context panel on the right.
Working Accounts
6 working • 3 verified • 1 terminated