• Trust CRM
CRM
  • Dashboard
  • Clients
  • Deals
  • Activities
  • Reports
Workspace
  • Mail
  • Calendar
System
  • Settings
  • Changelog
UI
  • Feedback
  • Localization
  • Form
  • Sidebar form
Components
  • Actions
  • Tabs
  • Inputs
  • Pickers
  • Date & time

Feedback

The parts that report state, every one of them composed from the five tones (docs/feedback.md).

The tone vocabulary

One palette per tone, five in all. Every status surface below is derived from this table.

success
success
warning
warning
error
error
info
info
neutral
neutral

Alerts

The kind that stays on the page. Use it for a state worth re-reading; the colour goes on the frame and the body text stays grey.

Account links sync daily at 02:00
Balances and unrealized P/L can be up to a day behind.
Account link complete
Balances were read from three accounts.
Three clients have no risk tolerance set
A proposal cannot be generated without it.
Sync with Meridian Securities failed
Check the link ID. If it persists, add the account again.

Toasts

An alert that walks away. Use it to confirm what just happened, and never to carry information worth re-reading.

Loading

Skeleton when the incoming shape is known, which is the default. A spinner only when it genuinely is not.

Shape known → skeleton
Shape unknown → LoadingState
Loading

Empty states

A first-run empty carries one action that ends the state. A filtered empty carries none, because the way out is already on screen.

First run → with an action
No accounts linked yet
Link an account and the balances, unrealized P/L and allocation appear here.
Nothing matches the filter → no action
No matches
No client matches these filters. Try loosening them.

Async boundaries

One per loading unit. Suspense handles the wait, an error state with a retry handles the failure, and a broken part cannot take the page down with it.

Turn it off, then retry
Not mounted yet
Press Load to mount a 1.2-second fetch wrapped in an AsyncBoundary.