tuil
ReferenceComponentsWorkflow UI

Workflow UI

Bind observable workflow and operation snapshots to guided terminal flows, progress, errors, cancellation, splash state, and contextual help.

View rawEdit

Overview

Bind observable workflow and operation snapshots to guided terminal flows, progress, errors, cancellation, splash state, and contextual help.

Installation

npx @mwillbanks/tuil add workflow operation-list operation-tree splash-screen help-overlay

The CLI writes source-owned components beneath the destination configured in tuil.config.ts; the default import below assumes src/components/tuil.

Loading executable example…

Components and subcomponents

APISignatureDescription
Workflowconstant WorkflowPublic constant Workflow.
Workflow.Headersubcomponent Workflow.HeaderPublic subcomponent Workflow.Header.
Workflow.Bodysubcomponent Workflow.BodyPublic subcomponent Workflow.Body.
Workflow.Footersubcomponent Workflow.FooterPublic subcomponent Workflow.Footer.
Workflow.Progresssubcomponent Workflow.ProgressPublic subcomponent Workflow.Progress.
Workflow.Errorssubcomponent Workflow.ErrorsPublic subcomponent Workflow.Errors.
Workflow.Nextsubcomponent Workflow.NextPublic subcomponent Workflow.Next.
Workflow.Backsubcomponent Workflow.BackPublic subcomponent Workflow.Back.
Workflow.Skipsubcomponent Workflow.SkipPublic subcomponent Workflow.Skip.
Workflow.Cancelsubcomponent Workflow.CancelPublic subcomponent Workflow.Cancel.
OperationListfunction OperationListPublic function OperationList.
OperationTreefunction OperationTreePublic function OperationTree.
SplashScreenfunction SplashScreenPublic function SplashScreen.
HelpOverlayfunction HelpOverlayPublic function HelpOverlay.

Interaction

Controls call the runner's next, back, skip, retry, cancel, and rollback operations with transition locking.

API and events

The runner emits the complete workflow:* lifecycle; operation components reflect operation snapshots and callbacks.

Every interactive component publishes semantic roles, labels, state, and focus identity through the renderer's SemanticRegistry. Callback failures flow to the owning application's error boundary.

Documentation flow diagram. props and runtime state; semantic registration; focus and input routing; callback or state update; rerender; S0 leads to S1; S1 leads to S2; S2 leads to S3
Documentation flow diagram. props and runtime state; semantic registration; focus and input routing; callback or state update; rerender; S0 leads to S1; S1 leads to S2; S2 leads to S3

Example

import type { ComponentProps } from "react";
import { Workflow } from "@/components/tuil/workflows/workflow";

export function Example(props: ComponentProps<typeof Workflow>) {
  return <Workflow {...props} />;
}

Registry-installed components are source-owned: customize the generated file in your application, and use the package reference for the shared runtime contracts.

On this page