/**
* ProcessTimeline — a domain-neutral process-status component: an ordered set
* of lifecycle steps, each `complete`, `current`, `upcoming`, `blocked`, or
* `skipped`. It generalizes the app-local "how it works" / progress-tracker /
* run-lifecycle markup found across products into one shared primitive.
*
* Data in via `items`, selection out via `onItemSelect` — the component fetches
* nothing and knows no routes, statuses, or labels beyond the five generic
* lifecycle positions. Callers map their own domain state to these.
*
* Choosing: ProcessTimeline is for a fixed, ordered process whose steps carry a
* lifecycle status. For a chronological stream of past events use ActivityFeed
* (or Timeline for a styled event rail); for a navigable wizard/pipeline with
* per-step content and click-through use Stepper.
*
* Accessibility:
* - semantic `
` / `
` ordering
* - the current step carries `aria-current="step"`
* - status is never color-only: every marker has a default icon (shape) and
* each item a visually-hidden status label (overridable via `statusLabels`)
* - interactive items are real `