Components
Seat billing overview
Explain how active and invited members contribute to an annual workspace total.
On this page
Purpose and composition
Explain how active and invited members contribute to an annual workspace total.
Use to clarify the model; the screenshot is not a real subscription or invoice.
Anatomy
| Part | Responsibility |
|---|---|
| Plan | Annual price and active label |
| Metrics | Seats, annual total and renewal |
| History | Sample invoice rows |
| Explanation | What counts as a seat and owner-only management |
Configuration and variants
| Input / variant | Contract |
|---|---|
| seat count | Active or Invited source team members |
| price | 99 USD per seat/year source configuration |
| total | Seat count × seatPrice |
| actions | Manage billing/Check seat count emit local toast |
States and feedback
| State | Visible / behavioral result |
|---|---|
| Current demo | Static active plan |
| History | Static paid sample rows |
| Phone | Metrics and cards stack |
Interaction and responsive behavior
- Removing a member is described as releasing a seat; access changes do not affect price.
- Review team link navigates to team.
- Hosted billing buttons do not call Stripe.
Accessibility contract
- Metric labels and text accompany numeric values.
- History is source div rows rather than a table.
Known implementation limits
No live owner gate, checkout, portal or subscription status is connected to this component. Renewal and invoice dates are samples.
Composition example
<BillingSettings onToast={notifyPrototype} />Source references
| File | Responsibility |
|---|---|
| components/views/billing-settings.tsx | BillingSettings |
| lib/mock-data.ts | billingPlan and teamMembers |
| lib/server/billing/summary.ts | Separate future owner-only DTO |
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.
Related topics
Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0