Skip to main content
This page documents every prop for the three UI components exported from @claritylabs/cl-pipelines/ui. All components are headless — they render semantic HTML with data-* attributes and accept className props, but ship with no built-in styles.

StatusBanner

StatusBanner is a compound component. Use StatusBanner (or StatusBanner.Root) as the wrapper, then compose the sub-components inside it. The wrapper renders null when status is "idle", "complete", or undefined.

StatusBanner.Root (StatusBanner)

The container element. Renders a <div data-status="..."> when visible.
PipelineStatus | undefined
Controls visibility and the data-status attribute. Renders null for "idle", "complete", and undefined. Visible for "running", "paused", and "error".
string
Error message string. Passed through context to StatusBanner.Description.
LogEntry[]
Log entries. Passed through context to any ProgressLog rendered as a child.
React.ReactNode
required
Sub-components: Indicator, Title, Description, Actions.
string
Class name applied to the root <div>.

StatusBanner.Indicator

An inline element that marks the status visually. Renders a <span data-indicator="..."> by default. Override with render to show a spinner or icon.
string
Class name applied to the <span>.
(status: PipelineStatus) => React.ReactNode
Custom render function. Return any React node — spinner, icon, badge — based on the current status.

StatusBanner.Title

The title line. Renders a <div data-role="title"> with a default text string based on status:
React.ReactNode
Override the default text with any content.
string
Class name applied to the <div>.

StatusBanner.Description

A secondary text line. Renders a <div data-role="description"> showing the error string from the parent Root by default.
React.ReactNode
Override the default (error string) with any content.
string
Class name applied to the <div>.

StatusBanner.Actions

A layout slot for action buttons. Renders a <div data-role="actions">.
React.ReactNode
required
Any React content — typically a RetryButtons component.
string
Class name applied to the <div>.

ProgressLog

Renders a list of LogEntry items. Renders null when entries is undefined or empty. Default list item markup:
LogEntry[] | undefined
The log entries to display. Renders null when undefined or empty.
boolean
When true, shows only the last entry. Useful for compact status lines. Defaults to false.
number
Maximum number of entries to show. Shows the last N entries. Defaults to 10.
string
Class name applied to the <ul> container.
(entry: LogEntry, i: number) => React.ReactNode
Custom render function for each list item. Return your own <li> or any element.

RetryButtons

Renders two buttons: a resume button ("resume" mode) and a restart button ("full" mode). Default labels are “Retry” and “Restart”.
(mode: RetryMode) => void
required
Called with "resume" when the Retry button is clicked, and "full" when the Restart button is clicked.
boolean
Disables both buttons when true. Use this while an async runPipeline call is in flight.
{ resume?: string; full?: string }
Override the default button labels. Defaults to { resume: "Retry", full: "Restart" }.
(mode: RetryMode, onClick: () => void, label: string, disabled: boolean) => React.ReactNode
Custom render function for each button. Return any React node. Called once for "resume" and once for "full".
string
Class name applied to the wrapping <div data-role="retry-buttons">.

Tailwind example

CSS modules example


Full composition example