Approve a proposed review
Review planProposed
Check the supplied brief before proposing changes.
- Read the current scope and responsibilities.
- Flag decisions without an owner.
- Prepare a draft for review.
A collapsible proposed plan with streaming title treatment, actions, and supporting context.
Check the supplied brief before proposing changes.
Check the supplied brief before proposing changes.
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 { Plan, Button } from "@noorddev/vlak-react";Per-component imports are available at @noorddev/vlak-react/components/plan.
npx @noorddev/vlak-cli add plan
Adds the component and its dependencies to components/vlak/. Follow the StyleX setup to compile the source in your application.
npx shadcn add https://vlak.dev/r/plan.json
Installs the same source through the shadcn CLI.
import { Plan, Button } from "@noorddev/vlak-react";
export function ReviewPlan({ streaming, onApprove }: { streaming: boolean; onApprove: () => void }) {
return <Plan title="Review plan" description="Two steps" streaming={streaming} actions={<Button variant="subtle" disabled={streaming} onClick={onApprove}>Approve plan</Button>}>
<ol><li>Read the brief</li><li>Check owners</li></ol>
</Plan>;
}See the integration example to compose these components with your application's model and data.
A proposed plan with supplied steps and actions. Execution remains application-owned.
| Prop | Type | Default | Description |
|---|---|---|---|
titlerequired | string | ||
description | string | ||
streaming | boolean | false | |
actions | ReactNode | ||
footer | ReactNode | ||
statusLabel | string | ||
defaultOpen | boolean | ||
onOpenChange | (open: boolean) => void | ||
variant | "inline" | "panel" | An inline disclosure for message activity, or a framed panel. | |
durationMs | number | Optional elapsed time supplied by the application, in milliseconds. | |
measureDuration | boolean | Measure this component's streaming interval. Off by default. | |
autoExpand | boolean | Open when a new streaming interval begins. Manual disclosure remains the default. | |
autoCollapseDelay | number | 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 | Moves through the supplied native controls in reading order |
| Enter, Space | Activates focused buttons and disclosure summaries |
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-plan" open><summary>Review plan</summary><ol><li>Read the brief</li><li>Check owners</li></ol></details>