- Name
service- Kind
- parameter
- Type
WizardService- Requirement
- required
DocsAPI referenceHeadlesswizard
wizard headless API
The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.
19 of 19
@grassroot/ui-headless-core/wizard
Core connector and vanilla API
connectWizard
functionconnectWizardts
declare function connectWizard(service: WizardService, scope: PartScope, options?: WizardConnectOptions): WizardApi;Name
Kind
Type
Requirement
serviceparameter
WizardServicerequired
scopeparameter
PartScoperequired
optionsparameter
WizardConnectOptionsoptional
returnreturn value
WizardApin/a
- Name
scope- Kind
- parameter
- Type
PartScope- Requirement
- required
- Name
options- Kind
- parameter
- Type
WizardConnectOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
WizardApi- Requirement
- n/a
mountWizard
functionmountWizardts
declare function mountWizard(container: HTMLElement, options: MountWizardOptions): WizardMount;Name
Kind
Type
Requirement
containerparameter
HTMLElementrequired
optionsparameter
MountWizardOptionsrequired
returnreturn value
WizardMountn/a
- Name
container- Kind
- parameter
- Type
HTMLElement- Requirement
- required
- Name
options- Kind
- parameter
- Type
MountWizardOptions- Requirement
- required
- Name
return- Kind
- return value
- Type
WizardMount- Requirement
- n/a
MountWizardOptions
interfaceMountWizardOptionsts
interface MountWizardOptions extends WizardInput, WizardConnectOptions {}runWizardCommand
functionrunWizardCommandts
declare function runWizardCommand(command: WizardCommand, options?: WizardConnectOptions): void;Name
Kind
Type
Requirement
commandparameter
WizardCommandrequired
optionsparameter
WizardConnectOptionsoptional
returnreturn value
voidn/a
- Name
command- Kind
- parameter
- Type
WizardCommand- Requirement
- required
- Name
options- Kind
- parameter
- Type
WizardConnectOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
void- Requirement
- n/a
wizardAnatomy
valuewizardAnatomyts
export declare const wizardAnatomy: { readonly scope: "wizard"; readonly parts: readonly ["root", "rail", "tab", "panel", "back", "next"];};Name
Kind
Type
Requirement
partsproperty
readonly ["root", "rail", "tab", "panel", "back", "next"]required
scopeproperty
"wizard"required
- Name
parts- Kind
- property
- Type
readonly ["root", "rail", "tab", "panel", "back", "next"]- Requirement
- required
- Name
scope- Kind
- property
- Type
"wizard"- Requirement
- required
WizardApi
interfaceWizardApits
interface WizardApi { rootProps(): PartProps; railProps(): PartProps; tabProps(index: number): PartProps; panelProps(): PartProps; backProps(): PartProps; nextProps(): PartProps; readonly current: number; destroy(): void;}Name
Kind
Type
Requirement
backPropsmethod
() => PartPropsrequired
currentproperty
numberrequired
destroymethod
() => voidrequired
nextPropsmethod
() => PartPropsrequired
panelPropsmethod
() => PartPropsrequired
railPropsmethod
() => PartPropsrequired
rootPropsmethod
() => PartPropsrequired
tabPropsmethod
(index: number) => PartPropsrequired
- Name
backProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
current- Kind
- property
- Type
number- Requirement
- required
- Name
destroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
nextProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
panelProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
railProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
rootProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
tabProps- Kind
- method
- Type
(index: number) => PartProps- Requirement
- required
WizardConnectOptions
interfaceWizardConnectOptionsts
interface WizardConnectOptions { readonly onStepChange?: (index: number) => void; readonly onFinish?: () => void; readonly messages?: Partial<WizardMessages>;}Name
Kind
Type
Requirement
messagesproperty
Partial<WizardMessages>optional
onFinishproperty
() => voidoptional
onStepChangeproperty
(index: number) => voidoptional
- Name
messages- Kind
- property
- Type
Partial<WizardMessages>- Requirement
- optional
- Name
onFinish- Kind
- property
- Type
() => void- Requirement
- optional
- Name
onStepChange- Kind
- property
- Type
(index: number) => void- Requirement
- optional
wizardMessages
valuewizardMessagests
export declare const wizardMessages: WizardMessages;WizardMessages
typeWizardMessagests
type WizardMessages = Pick<MessageTable, "progress">;WizardMount
interfaceWizardMountts
interface WizardMount { readonly service: WizardService; readonly connector: WizardApi; readonly root: HTMLElement; destroy(): void;}Name
Kind
Type
Requirement
connectorproperty
WizardApirequired
destroymethod
() => voidrequired
rootproperty
HTMLElementrequired
serviceproperty
WizardServicerequired
- Name
connector- Kind
- property
- Type
WizardApi- Requirement
- required
- Name
destroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
root- Kind
- property
- Type
HTMLElement- Requirement
- required
- Name
service- Kind
- property
- Type
WizardService- Requirement
- required
WizardPart
typeWizardPartts
type WizardPart = (typeof wizardAnatomy.parts)[number];WizardService
typeWizardServicets
type WizardService = Service<WizardInput, "ready", WizardContext, WizardEvent, WizardCommand>;Framework adapters
Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
React imports
@grassroot/ui-headless-react/wizardts
import { Root } from "@grassroot/ui-headless-react/wizard";Vue imports
@grassroot/ui-headless-vue/wizardts
<script setup lang="ts">import { Root } from "@grassroot/ui-headless-vue/wizard";</script>Angular imports
@grassroot/ui-headless-angular/wizardts
import { GrWizardRoot } from "@grassroot/ui-headless-angular/wizard";Svelte imports
@grassroot/ui-headless-svelte/wizardts
<script lang="ts"> import { Root } from "@grassroot/ui-headless-svelte/wizard";</script>Solid imports
@grassroot/ui-headless-solid/wizardts
import { Root } from "@grassroot/ui-headless-solid/wizard";@grassroot/ui-headless-react/wizard
React adapter
Root
valueRootts
export declare const Root: import("react").ForwardRefExoticComponent<WizardRootProps & import("react").RefAttributes<HTMLDivElement>>;Name
Kind
Type
Requirement
propsparameter
Prequired
returnreturn value
ReactNoden/a
- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
useWizard
functionuseWizardts
declare function useWizard(input: WizardInput, options?: WizardOptions): { service: WizardService; connector: WizardApi; snapshot: WizardSnapshot;};Name
Kind
Type
Requirement
inputparameter
WizardInputrequired
optionsparameter
WizardOptionsoptional
returnreturn value
{
service: WizardService;
connector: WizardApi;
snapshot: WizardSnapshot;
}n/a
- Name
input- Kind
- parameter
- Type
WizardInput- Requirement
- required
- Name
options- Kind
- parameter
- Type
WizardOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
{ service: WizardService; connector: WizardApi; snapshot: WizardSnapshot; }- Requirement
- n/a
WizardRootProps
interfaceWizardRootPropsts
interface WizardRootProps extends HTMLAttributes<HTMLDivElement>, WizardInput { readonly labels?: readonly string[]; readonly onStepChange?: (index: number) => void; readonly onFinish?: () => void; readonly children?: ReactNode;}Name
Kind
Type
Requirement
childrenproperty
ReactNodeoptional
labelsproperty
readonly string[]optional
onFinishproperty
() => voidoptional
onStepChangeproperty
(index: number) => voidoptional
- Name
children- Kind
- property
- Type
ReactNode- Requirement
- optional
- Name
labels- Kind
- property
- Type
readonly string[]- Requirement
- optional
- Name
onFinish- Kind
- property
- Type
() => void- Requirement
- optional
- Name
onStepChange- Kind
- property
- Type
(index: number) => void- Requirement
- optional
@grassroot/ui-headless-vue/wizard
Vue adapter
Root
valueRootts
export declare const Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ stepCount: { type: NumberConstructor; required: true; }; step: NumberConstructor; defaultStep: NumberConstructor; labels: PropType<readonly string[]>;}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any;}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { stepChange: (_value: number) => true; finish: () => true;}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ stepCount: { type: NumberConstructor; required: true; }; step: NumberConstructor; defaultStep: NumberConstructor; labels: PropType<readonly string[]>;}>> & Readonly<{ onFinish?: (() => any) | undefined; onStepChange?: ((_value: number) => any) | undefined;}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;@grassroot/ui-headless-angular/wizard
Angular adapter
GrWizardRoot
classGrWizardRootts
export declare class GrWizardRoot implements OnDestroy { readonly stepCount: import("@angular/core").InputSignal<number>; readonly step: import("@angular/core").InputSignal<number | undefined>; readonly defaultStep: import("@angular/core").InputSignal<number | undefined>; readonly stepChange: import("@angular/core").OutputEmitterRef<number>; readonly finish: import("@angular/core").OutputEmitterRef<void>; private readonly host; private readonly parts; private last; private readonly store; constructor(); private apply; private render; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrWizardRoot, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GrWizardRoot, "gr-wizard-root", never, { "stepCount": { "alias": "stepCount"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "defaultStep": { "alias": "defaultStep"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "finish": "finish"; }, never, never, true, never>;}Name
Kind
Type
Requirement
applyproperty
anyrequired
defaultStepproperty
import("@angular/core").InputSignal<number | undefined>required
finishproperty
import("@angular/core").OutputEmitterRef<void>required
hostproperty
anyrequired
lastproperty
anyrequired
ngOnDestroymethod
() => voidrequired
ɵcmpproperty
i0.ɵɵComponentDeclaration<GrWizardRoot, "gr-wizard-root", never, { "stepCount": { "alias": "stepCount"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "defaultStep": { "alias": "defaultStep"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "finish": "finish"; }, never, never, true, never>required
ɵfacproperty
i0.ɵɵFactoryDeclaration<GrWizardRoot, never>required
partsproperty
anyrequired
renderproperty
anyrequired
stepproperty
import("@angular/core").InputSignal<number | undefined>required
stepChangeproperty
import("@angular/core").OutputEmitterRef<number>required
stepCountproperty
import("@angular/core").InputSignal<number>required
storeproperty
anyrequired
- Name
apply- Kind
- property
- Type
any- Requirement
- required
- Name
defaultStep- Kind
- property
- Type
import("@angular/core").InputSignal<number | undefined>- Requirement
- required
- Name
finish- Kind
- property
- Type
import("@angular/core").OutputEmitterRef<void>- Requirement
- required
- Name
host- Kind
- property
- Type
any- Requirement
- required
- Name
last- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵcmp- Kind
- property
- Type
i0.ɵɵComponentDeclaration<GrWizardRoot, "gr-wizard-root", never, { "stepCount": { "alias": "stepCount"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "defaultStep": { "alias": "defaultStep"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "finish": "finish"; }, never, never, true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrWizardRoot, never>- Requirement
- required
- Name
parts- Kind
- property
- Type
any- Requirement
- required
- Name
render- Kind
- property
- Type
any- Requirement
- required
- Name
step- Kind
- property
- Type
import("@angular/core").InputSignal<number | undefined>- Requirement
- required
- Name
stepChange- Kind
- property
- Type
import("@angular/core").OutputEmitterRef<number>- Requirement
- required
- Name
stepCount- Kind
- property
- Type
import("@angular/core").InputSignal<number>- Requirement
- required
- Name
store- Kind
- property
- Type
any- Requirement
- required
@grassroot/ui-headless-svelte/wizard
Svelte adapter
Root
valueRootts
export declare const Root: LegacyComponentType;Name
Kind
Type
Requirement
argsparameter
Parameters<Component<Record<string, any>>>optional
returnreturn value
ReturnType<Component<Record<string, any>, Record<string, any>>>n/a
- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
@grassroot/ui-headless-solid/wizard
Solid adapter
Root
functionRootts
export declare function Root(props: WizardInput & { labels?: readonly string[]; onStepChange?: (value: number) => void; onFinish?: () => void; children?: JSX.Element;}): JSX.Element;Name
Kind
Type
Requirement
propsparameter
WizardInput & {
labels?: readonly string[];
onStepChange?: (value: number) => void;
onFinish?: () => void;
children?: JSX.Element;
}required
returnreturn value
JSX.Elementn/a
- Name
props- Kind
- parameter
- Type
WizardInput & { labels?: readonly string[]; onStepChange?: (value: number) => void; onFinish?: () => void; children?: JSX.Element; }- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a