Lists

Browse surfaces — filters, density, empty/loading/error states baked into compounds.

Data surfaces · fixture-only

Object explorer

ObjectList + ListSurface for registry-driven tables with consistent row chrome.

Workshop: /objects, /projects, /files — all list routes should use these compounds.

Fixture data only — behaviour matches production chrome

Empty registry

Show EmptyState inside ListSurface when count is zero — never a bare "No results".

Workshop: New client instances with no seeded modules.

Fixture data only — behaviour matches production chrome

Filter chips

Popover/toggle chips for list filters (S12).

ListRowDensity

HoverCard preview + context menu on dense rows.

ListSurface states

loading · empty · error · ready

Loading

Empty

No customers yet

Create your first record.

Error

Ready

Populated list body

ObjectRow + ObjectTile

ProjectList

FileList

ObjectList (table)

NameStatus
Acme CorpActive