Pathfinderby Commenda
Components

List

Inbox-style record rows with independent destinations and menus.

Import from @commenda/pathfinder/list and load the shared stylesheet once. This component represents inbox/mailroom records, not bullet lists or selection options.

API reference

PropTypeBehavior
labelRequiredstringAccessible list name
itemsRequiredreadonly ListItem[]Stable ID and title; each item has onAction or linkConfig
selectedIdstring|nullThe currently open record
onSelectionChange(id: string) => voidActivation notification; app owns selection
loadingConfigObjectView fieldsAnnounces loading and marks list busy
emptyContentReactNodeDefaults to No items.
paginationConfigObjectView fieldsApp-owned paging with Load more
classNamestringRoot styling
loadingConfigObject fields
FieldTypeRequirement
isLoadingbooleanRequired
labelstringOptional
paginationConfigObject fields
FieldTypeRequirement
hasMorebooleanRequired
isLoadingbooleanRequired
onLoadMore() => voidRequired

Items also accept description, leadingIcon, entityConfig: { label, flag }, timestamp: { label, dateTime? }, unread, pinned, and menuConfig using Dropdown's existing menu groups. linkConfig preserves native link behavior and supports an anchor-compatible render function for Next Link. More is a separate control; it never activates the row.

Titles, entity names, and previews truncate with the full text retained in the DOM and native title. The selected row retains the same font weight. Time and More share reserved space, with menus available on focus and touch.

Loading and empty states

    No messages yet.

      Loading items…

      Paging

      Use server paging for large datasets. List renders the provided page without virtualization; avoid loading an entire unbounded inbox. It does not fetch or automatically advance pages. Read the record component rules.

      Design rules

      Figma guidance and reviewed implementation decisions for this component. Rule IDs remain stable for source comments and AI references.

      Source rules

      RuleContract and provenance
      LIST-001Figma 1101:3: 80px minimum inbox/mailroom rows, stable font weight; selected soft-pearl 300.
      LIST-002Native record link/action and a separate More button. No nested buttons or accidental record activation from its menu.
      LIST-003Application owns paging, selection, and remote state. Timestamp swaps with More without shifting content; touch exposes actions.

      On this page