DocsAPI referenceUI machinestoast

toast machine

The public state machine contract for @grassroot/ui-machines/toast. The machine owns behaviour; the matching headless layer owns composition.

@grassroot/ui-machines/toast

Package

17 exports
View source packages/ui-machines/src/toast/index.ts

Service example

toast.tsts
import { createService } from "@grassroot/statechart";
import { toastMachine } from "@grassroot/ui-machines/toast";
const service = createService(toastMachine, { input: {} });
service.start();
service.send({ type: "…" });
service.stop();

Exports

DeclarationView source
TOAST_DEFAULT_DURATIONts
export declare const TOAST_DEFAULT_DURATION: 4000;
DeclarationView source
TOAST_DEFAULT_VARIANTts
export declare const TOAST_DEFAULT_VARIANT: "info";
DeclarationView source
TOAST_DISMISS_KEY_PREFIXts
export declare const TOAST_DISMISS_KEY_PREFIX: "toast.dismiss.";
DeclarationView source
ToastCommandts
type ToastCommand = ScheduleCommand<ToastEvent> | CancelCommand;
DeclarationView source
ToastContextts
type ToastContext = {
readonly nextKey: number;
readonly toasts: readonly ToastRecord[];
};
Name
Kind
Type
Requirement
nextKey
property
number
required
toasts
property
readonly ToastRecord[]
required
Name
nextKey
Kind
property
Type
number
Requirement
required
Name
toasts
Kind
property
Type
readonly ToastRecord[]
Requirement
required
DeclarationView source
ToastDiagnosticCodests
export declare const ToastDiagnosticCodes: readonly DiagnosticCatalogueEntry[];

toastDismissKey

function
DeclarationView source
toastDismissKeyts
declare function toastDismissKey(instanceKey: string): string;
Name
Kind
Type
Requirement
instanceKey
parameter
string
required
return
return value
string
n/a
Name
instanceKey
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
string
Requirement
n/a

ToastEvent

type
DeclarationView source
ToastEventts
type ToastEvent = {
readonly type: "ADD";
readonly id: string;
readonly variant?: ToastVariant;
readonly duration?: number;
} | {
readonly type: "DISMISS";
readonly id: string;
} | {
readonly type: "DISMISS_INSTANCE";
readonly instanceKey: string;
};

ToastInput

type

No S12 bindings — the queue is service-owned.

DeclarationView source
ToastInputts
type ToastInput = {};

toastMachine

value
DeclarationView source
toastMachinets
export declare const toastMachine: ToastMachine;
DeclarationView source
ToastMachinets
type ToastMachine = Machine<ToastInput, ToastStateValue, ToastContext, ToastEvent, ToastCommand>;
DeclarationView source
ToastRecordts
type ToastRecord = {
readonly instanceKey: string;
readonly id: string;
readonly variant: ToastVariant;
readonly duration: number;
};
Name
Kind
Type
Requirement
duration
property
number
required
id
property
string
required
instanceKey
property
string
required
variant
property
ToastVariant
required
Name
duration
Kind
property
Type
number
Requirement
required
Name
id
Kind
property
Type
string
Requirement
required
Name
instanceKey
Kind
property
Type
string
Requirement
required
Name
variant
Kind
property
Type
ToastVariant
Requirement
required
DeclarationView source
toastReplaySequencets
export declare const toastReplaySequence: readonly ToastEvent[];
DeclarationView source
toastSelectorsts
export declare const toastSelectors: {
toasts: (snapshot: ToastSnapshot) => readonly ToastRecord[];
nextKey: (snapshot: ToastSnapshot) => number;
ids: (snapshot: ToastSnapshot) => string[];
instanceKeys: (snapshot: ToastSnapshot) => string[];
empty: (snapshot: ToastSnapshot) => boolean;
};
Name
Kind
Type
Requirement
empty
property
(snapshot: ToastSnapshot) => boolean
required
ids
property
(snapshot: ToastSnapshot) => string[]
required
instanceKeys
property
(snapshot: ToastSnapshot) => string[]
required
nextKey
property
(snapshot: ToastSnapshot) => number
required
toasts
property
(snapshot: ToastSnapshot) => readonly ToastRecord[]
required
Name
empty
Kind
property
Type
(snapshot: ToastSnapshot) => boolean
Requirement
required
Name
ids
Kind
property
Type
(snapshot: ToastSnapshot) => string[]
Requirement
required
Name
instanceKeys
Kind
property
Type
(snapshot: ToastSnapshot) => string[]
Requirement
required
Name
nextKey
Kind
property
Type
(snapshot: ToastSnapshot) => number
Requirement
required
Name
toasts
Kind
property
Type
(snapshot: ToastSnapshot) => readonly ToastRecord[]
Requirement
required
DeclarationView source
ToastSnapshotts
type ToastSnapshot = Snapshot<ToastStateValue, ToastContext>;
DeclarationView source
ToastStateValuets
type ToastStateValue = "idle" | "queued";
DeclarationView source
ToastVariantts
type ToastVariant = "info" | "success" | "warning" | "error";