Sonarist project

Sonarist / Design system

Documentation v1.0.0 · Work in progress · UI prototype with separate server foundations

Design system contents

Patterns

Work across companies and products

Choose the work context without mistaking presentation scope for authorization.

On this page

User goal

Choose the work context without mistaking presentation scope for authorization.

Workflow

Workflow
StepExpected behavior
1Open the centered Sonarist navigation trigger.
2Choose a primary view or Unified inbox.
3Choose a company or its nested product when a narrower queue is needed.
4Scope selection opens that scope in Needs reply; it does not retain the previous queue.
5Read the scope label and queue count before acting.

Decision and composition rules

  • Hierarchy is workspace > company > product > inbox.
  • Conversation scope resolves through inbox/product/company helpers.
  • Needs-attention counts include pending screening and needs reply.

Edge cases and recovery

  • Unknown scoped IDs currently fall back to unified context in the client route reader.
  • Server route shape validation is not record existence or authorization validation.
  • Future authenticated endpoints must supply authorized records before rendering.

Persistence boundary

The demonstrated frontend uses local React state or static fixtures. Read the readiness topic before connecting these actions to authenticated persistence. A visible toast, badge or timer is not a server acknowledgement.

Source references

Source references
FileResponsibility
components/app-header.tsxNavigation hierarchy
lib/routes.tsRoute composition
components/helpdesk-app.tsxScope route parsing

Examples from the app

Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.

Workspace Navigation · Screen · Light · Desktop · Open · 2880 × 2000 px
Product Inbox · Screen · Light · Desktop · 2880 × 2000 px

Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0