Task

A default-open task disclosure with supplied item states and file references.

Read project sourcesIn progress
  • Read the launch brieflaunch-brief.md
  • Compare responsibilitiesowners.md

Inspect task progress

Read project sourcesIn progress
  • Read the launch brieflaunch-brief.md
  • Compare responsibilitiesowners.md

Use it for

  • Supply pending, active, and complete items with optional file badges.
  • Use children for additional supplied task content.

Avoid

  • Expecting this display to run tasks or infer their completion.

React package

npm install @noorddev/vlak-react

Load the stylesheet once at your app root, then import the components you use.

import "@noorddev/vlak-react/css";
import { Task } from "@noorddev/vlak-react";

Per-component imports are available at @noorddev/vlak-react/components/task.

Copy the source

npx @noorddev/vlak-cli add task

Adds the component and its dependencies to components/vlak/. Follow the StyleX setup to compile the source in your application.

shadcn registry

npx shadcn add https://vlak.dev/r/task.json

Installs the same source through the shadcn CLI.

import { Task } from "@noorddev/vlak-react";

<Task title="Read sources" items={[{ id: "brief", content: "Read the launch brief", state: "complete", file: "launch-brief.md" }]} />

See the integration example to compose these components with your application's model and data.

Task

A default-open task disclosure with supplied rows and file references.

PropTypeDefaultDescription
titleReactNode
statusReasoningStatusDescribes application-supplied progress, without generating a thinking trace.
statusLabelstring
defaultOpenboolean
onOpenChange(open: boolean) => void
variant"inline" | "panel"An inline disclosure for message activity, or a framed panel.
durationMsnumberOptional elapsed time supplied by the application, in milliseconds.
measureDurationbooleanMeasure this component's streaming interval. Off by default.
autoExpandbooleanOpen when a new streaming interval begins. Manual disclosure remains the default.
autoCollapseDelaynumber | falseClose once after completion unless the reader manually changed the disclosure.
itemsreadonly TaskItem[][]

Also accepts Omit<DetailsHTMLAttributes<HTMLDetailsElement>, "title">.

The ref reaches HTMLDetailsElement.

KeysDoes
TabMoves through the supplied native controls in reading order
Enter, SpaceActivates focused buttons and disclosure summaries
  • Native attributes, className, style, and the forwarded ref reach the outer element.
  • Interactive content requires accessible names; progress text is not announced for every streamed token.

The same styles are available as CSS. Native HTML provides the static presentation; React or application code supplies state updates and actions.

npm install @noorddev/vlak
import "@noorddev/vlak/css";
<details class="rs-task" open><summary>Read sources</summary><ul class="rs-task-list"><li class="rs-task-item">Read launch-brief.md</li></ul></details>

Classes

.rs-task.rs-task-list.rs-task-item.rs-task-active.rs-task-file