Skip to content

Status ​

Summarize a result or show progress. Use one leading Summary; its children are inline prose, never headings or tables.

tsx
import { DemoBlock } from '../shared/intelligent-ui.tsx';
import { ui } from '../shared/intelligent-ui-tree.ts';

export default function StatusDemo() {
    return (
        <DemoBlock
            nodes={[
                ui('Summary', { tone: 'warning', badge: '1 failing' }, 'The release build passed, one smoke test failed'),
                ui('Callout', { tone: 'info', title: 'Retried once' }, 'The test failed again on a clean runner.'),
                ui('Progress', { value: 312, max: 500 }, 'Tests run'),
                ui(
                    'Steps',
                    {},
                    ui('Step', { state: 'done' }, 'Build'),
                    ui('Step', { state: 'failed', detail: 'login.spec.ts' }, 'Smoke tests'),
                    ui('Step', { state: 'pending' }, 'Publish')
                ),
                ui('Tag', { tone: 'danger' }, 'blocking')
            ]}
        />
    );
}
ui
<Summary tone="warning" badge="1 failing">The release build passed, one smoke test failed</Summary>
<Callout tone="info" title="Retried once">The test failed again on a clean runner.</Callout>
<Progress value={312} max={500}>Tests run</Progress>
<Steps>
<Step state="done">Build</Step>
<Step state="failed" detail="login.spec.ts">Smoke tests</Step>
<Step state="pending">Publish</Step>
</Steps>
<Tag tone="danger">blocking</Tag>

Every tone is a UiTone: neutral, info, success, warning or danger. Tone expresses meaning; the agent never infers it from a number going up.

Summary ​

The result in one sentence. Its children are the sentence. The first Summary heads the block and names it for a screen reader; a later one is a subheading.

PropTypeRequiredNotes
toneUiToneNoGives the sentence an icon
badgestringNoA short label beside it, as a pill

Callout ​

A note that needs attention. Its children are the note.

PropTypeRequiredNotes
toneUiToneYesThe surface and icon
titlestringNoA line above the note

Tag ​

A short status label. Its children are the label. A Tag may stand inside text.

PropTypeRequiredNotes
toneUiToneNo

Progress ​

Progress with a label. Its children are the label. Without value the progress is indeterminate; without max the value reads as a percentage.

PropTypeRequiredNotes
valuenumberNoZero or more
maxnumberNoAbove zero

Steps and Step ​

An ordered sequence. Steps has no props and holds only Step. A Step stands only inside Steps; its children are the step's label.

PropTypeRequiredNotes
statestringYesdone, running, pending, failed or skipped
detailstringNoFaint text beside the label, such as a file or a time

Licenses and third-party notices are listed in each package.