mosaic-machine
Installation
SKILL.md
Mosaic Machine
XState-first rule: Before designing any library feature or changing any API, look up how XState v5 handles the same pattern and align to it. Never invent new API shapes.
Core imports live in packages/ui/src/mosaic/machine/.
import { setup } from './setup'; // primary: pre-binds TContext + TEvent
import { createActor, mockActor } from './createActor';
import { useMachine, useActor, useSelector } from './useMachine';
// Lower-level (only when not using setup):
import { createMachine } from './createMachine';
import { assign } from './assign';
setup<TContext, TEvent>() returns { createMachine, assign, fromPromise }. Use fromPromise for promise-based invoke configurations — it carries the resolved type to e.output in onDone.actions.