Components / Work Card

Work Card

The in-feed record of one piece of work that was kicked off: what it is, how far it got at starting, and the way to check both. It resolves in place as evidence arrives and then stays, because the record is the point.

import { WorkCard } from '@layers/ui/work-card'

Rendered stock

House rules

  • It is a RECORD, not an affordance. A dock asks for something and retires the moment it has it; this card appears because the work was already authorized, asks for nothing, and never leaves the feed. The two are opposite objects and must never be the same component - DecisionDock forbids itself from ever being a stream entry, and that ban is what this card exists to satisfy.
  • The five states are statements about the START and nothing else. Starting, Started, Partly started, Not started, Not confirmed. None of them claims the work ran, was charged, or produced anything: those are separate observations with their own evidence, and a caller holding one renders it somewhere else.
  • There is no success treatment, in any state. Green closes a loop and "it started" opens one, so a card that turns green on acceptance is claiming an outcome nobody observed. Started and Starting share the same quiet badge; what changes between them is the word and the spinner.
  • Not confirmed is a first-class state, never dressed as either success or failure. It shares the warning colour with Partly started because both need attention and neither proves a failure, and it keeps its own word because "some of it started" and "we do not know" are different facts.
  • description is REQUIRED, so the card has exactly one anatomy. A title-only variant would give CardHeader a different grid depending on a prop, and the whole job of this card is to resolve without the row it occupies changing shape.
  • The evidence toggle is required and comes first in the footer, so the slot never empties and never moves. It is a true toggle carrying the sheet glyph, the sanctioned icon-plus-text exception, and the label flips View to Hide by itself.
  • The pointer is APPENDED beside the evidence toggle, never in front of it. It arrives when the work names what it produced, and appending it reads as something gained; putting it first would slide the control the reader already knows out from under them at the moment they most want to press something.
  • The pointer is a real anchor with an href, so a middle-click or cmd-click behaves like a link. The card does not intercept the plain click - it hands the event to onOpen, because a design-system card that knew how to navigate would have to know which router it was under.
  • statusLabel overrides the status word and names a STATE, never an action, because it is also what the status region announces. It is also the locale seam: WORK_CARD_STATUS_PRESENTATION is the English default, and a caller with its own reviewed catalog (the workflow action protocol projector) supplies all five words through this prop.
  • The root is never a button. The footer holds the only focus stops, so a card carrying two actions cannot nest them inside a third.

See also