SaaS.Dev

Slots

Every named slot on a derived screen, what it binds, and which Components may fill it, with the leaseclock.com example for each.

A slot is one named part of a derived screen that a Component may fill. In the design, the rest of the screen keeps deriving, and a slot never widens what the reader may do.

No served screen has a slot today. The one part that derives from column types is a list toolbar, and it appears only in static mock screens.

SlotBindsMay holdOn leaseclock.com
list.toolbarthe list's Noun, its search query and its filtersCallToActiona status filter over active, renewed and terminated
list.emptythe list's Noun and the reader's create grantCallToAction"Add your first lease", calling Lease.create
record.headerthe record and its lifecycle stateStateBadgeactive, renewed or terminated beside Maya Ortiz
record.asidethe record and its ActionsTimeline, ActionStatuseach renewal of the lease, oldest first
record.actionsthe record and the Verbs the reader may call on itVerbSheet, ApprovalSheetLease.renew with its fields and button
record.tabthe record and one Noun that points at itDataTable, Timelinea Leases tab on each Property record page
form.afterthe form's Noun and its unsaved valuesa Component the Startup writesRenewalPreview: the date the first reminder goes out
dashboard.sectionthe Dashboard's scopeMetricTile, UsageMeter, PendingFeedleases ending in the next 60 days

Fill a slot

In the design, the App file names the Component for each slot, per Noun. Every other part of the Lease screens keeps deriving.

apps/app/app.mdx
---
kind: saas
nouns: [Property, Lease]
slots:
  Lease:
    record.header: StateBadge
    list.empty: CallToAction
    form.after: RenewalPreview
---

A Component in record.actions calls Verbs through the reader's Permissions, so it shows no button the derived screen would leave out. Screens the definition cannot derive covers screens no slot can reach.