Sonarist project

Sonarist / Design system

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

Design system contents

Components

Person and product-relationship editor

Keep a lightweight contact record with optional per-product customer/prospect context.

On this page

Purpose and composition

Keep a lightweight contact record with optional per-product customer/prospect context.

Use a keyed remount when switching edited people so draft state stays correct.

Anatomy

Anatomy
PartResponsibility
FieldsName, organization, primary/additional email and owner
Product togglesRelationship inclusion
Relationship fieldsKind, prospect stage and follow-up
FooterCancel, Add/Save person

Configuration and variants

Configuration and variants
Input / variantContract
personOptional; seeds draft on mount
onSaveReturns normalized Contact
minimum gateNonblank name/email
defaultsFirst teammate owner; new violet avatar; No organization fallback

States and feedback

States and feedback
StateVisible / behavioral result
NewBlank contact draft
ExistingPreserves ID/color/Kit metadata
Product selectedRelationship controls appear
CustomerStage select disabled
ProspectStage selectable

Interaction and responsive behavior

  • New IDs use Date.now; initials derive first/last words.
  • Emails trim and lowercase.
  • Only first additional email seeds the editor.
  • Product relationship toggles remove or append local relation.

Accessibility contract

  • Visible labels wrap controls.
  • Product inclusion uses native checkbox.
  • Follow-up field relies on placeholder instead of a dedicated visible label.

Known implementation limits

Simple presence checks do not validate deliverability or duplicate contacts. Saving may collapse multiple additional emails to one.

Composition example

<PersonEditorDialog open person={person} onClose={close} onSave={saveLocalPerson} />

Source references

Source references
FileResponsibility
components/views/person-editor-dialog.tsxPersonEditorDialog

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.

Person Editor · Component detail · Light · Desktop · Full Content · 1152 × 1976 px

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