Follow a review
The review checks scope, ownership, and sources.
Reviewing the brief1 of 3 steps
- Read the proposed scope.
Recorded progress · Advancing a step preserves your disclosure choice
A native disclosure for supplied work summaries, with a chevron and 44px control. Panels use a subtle 1px outline and 4px corners.
Checked the proposed scope, owners, and supporting sources.
The review checks scope, ownership, and sources.
Recorded progress · Advancing a step preserves your disclosure choice
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 { Reasoning } from "@noorddev/vlak-react";Per-component imports are available at @noorddev/vlak-react/components/reasoning.
npx @noorddev/vlak-cli add reasoning
Adds the component to components/vlak/. Follow the StyleX setup to compile the source in your application.
npx shadcn add https://vlak.dev/r/reasoning.json
Installs the same source through the shadcn CLI.
import { Reasoning } from "@noorddev/vlak-react";
<Reasoning variant="inline" title="Reviewed the brief" status="complete">
<p>Compared the supplied brief with the previous revision.</p>
</Reasoning>See the integration example to compose these components with your application's model and data.
A native disclosure for a work summary supplied by the application.
| Prop | Type | Default | Description |
|---|---|---|---|
title | ReactNode | "Work summary" | |
status | ReasoningStatus | "complete" | Describes application-supplied progress, without generating a thinking trace. |
statusLabel | string | ||
defaultOpen | boolean | false | |
onOpenChange | (open: boolean) => void | ||
variant | "inline" | "panel" | "panel" | An inline disclosure for message activity, or a framed panel. |
durationMs | number | Optional elapsed time supplied by the application, in milliseconds. | |
measureDuration | boolean | false | Measure this component's streaming interval. Off by default. |
autoExpand | boolean | false | Open when a new streaming interval begins. Manual disclosure remains the default. |
autoCollapseDelay | number | false | false | Close once after completion unless the reader manually changed the disclosure. |
Also accepts Omit<DetailsHTMLAttributes<HTMLDetailsElement>, "title">.
The ref reaches HTMLDetailsElement.
| Keys | Does |
|---|---|
| Tab | Focuses the native summary, then any interactive content in the expanded details. |
| Enter, Space | Toggles the focused summary. In controlled mode, requests the next open value through onOpenChange. |
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-reasoning"><summary class="rs-reasoning-summary"><svg class="rs-reasoning-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m9 6 6 6-6 6" /></svg><span class="rs-reasoning-title">Work summary</span><span class="rs-reasoning-status" role="status" aria-live="polite" aria-atomic="true">Complete</span></summary><div class="rs-reasoning-content"><p>Compared the renewal clause with the notice period.</p></div></details>