Docs Platform
Gantt
An interaction shell over bars. You supply the range and the bar geometry, and scheduling, critical path and calendar maths are yours too. The machine only handles what happens when someone interacts with a bar.
Live machine
The shipped ganttMachine. GRAB opens a draft range, NUDGE/DRAG move it, and only DROP emits the range-change request.
gantt · live via createService
States · walked from the machine
Transitions from here · click to send
Context
{
"focusedId": null,
"activeId": null,
"originStart": null,
"originEnd": null,
"draftStart": null,
"draftEnd": null,
"reason": null
}Log · newest first
No events yet — use the component above or send a transition.
Explore the layers
Machine (@grassroot/ui-machines/gantt).
Headless: five adapters plus mountGantt.
Spec: packages/ui-headless/core/src/gantt/gantt.spec.md.
Behaviour contract
Bars are opaque IDs. Adopting-host paint uses the idle host range.
Angular parts bind barId directly (no selector alias) to
avoid NG0950.