Docs Platform
Toast
A viewport of timed rows. The machine owns idle/queued instances and
dismiss-by-id. Duration clocks are S13, not stored as Date. The styled
leaf is ToastProvider (ui/toast-provider);
headless and machine live under toast.
Live machine
The shipped toastMachine with an empty queue. ADD enqueues; the auto-dismiss timers surface as schedule commands in the log rather than running here.
toast · live via createService
Queue empty — send an ADD transition.
States · walked from the machine
Transitions from here · click to send
Context
{
"nextKey": 1,
"toasts": []
}Log · newest first
No events yet — use the component above or send a transition.
Explore the layers
Machine (@grassroot/ui-machines/toast).
Headless:
@grassroot/ui-headless-*/toast. Spec:
packages/ui-headless/core/src/toast/toast.spec.md.
Behaviour contract
Zero S12 bindings. The queue is service-owned. Existing rows are the only live regions; there is no second announcer.
Anatomy
viewport, keyed item / toast /
title / description / close.