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

idlequeued

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.