/// import { Cell, Default, handler, recipe, str } from "commontools"; interface CounterState { value: Default; } interface IncrementEvent { amount?: number; } const increment = handler( (event: IncrementEvent | undefined, context: { value: Cell }) => { const amount = typeof event?.amount === "number" ? event.amount : 1; context.value.set((context.value.get() ?? 0) + amount); }, ); export const simpleCounter = recipe( "Simple Counter", ({ value }) => { return { label: str`Counter value: ${value}`, value, increment: increment({ value }), }; }, );