- Name
name- Kind
- property
- Type
string- Requirement
- required
DocsAPI referenceUI machinesquestionnaire
questionnaire machine
The public state machine contract for @grassroot/ui-machines/questionnaire. The machine owns behaviour; the matching headless layer owns composition.
@grassroot/ui-machines/questionnaire
Package
Service example
questionnaire.tsts
import { createService } from "@grassroot/statechart";import { questionnaireMachine } from "@grassroot/ui-machines/questionnaire"; const service = createService(questionnaireMachine, { input: {} });service.start();service.send({ type: "…" });service.stop();13 of 13
Exports
QuestionnaireAnswer
typeQuestionnaireAnswerts
type QuestionnaireAnswer = { readonly name: string; readonly values: readonly string[]; readonly skipped?: boolean;};Name
Kind
Type
Requirement
nameproperty
stringrequired
skippedproperty
booleanoptional
valuesproperty
readonly string[]required
- Name
skipped- Kind
- property
- Type
boolean- Requirement
- optional
- Name
values- Kind
- property
- Type
readonly string[]- Requirement
- required
QuestionnaireChoice
typeQuestionnaireChoicets
type QuestionnaireChoice = { readonly value: string; readonly disabled?: boolean;};Name
Kind
Type
Requirement
disabledproperty
booleanoptional
valueproperty
stringrequired
- Name
disabled- Kind
- property
- Type
boolean- Requirement
- optional
- Name
value- Kind
- property
- Type
string- Requirement
- required
QuestionnaireCommand
typeQuestionnaireCommandts
type QuestionnaireCommand = CommandObject & ({ readonly type: "ITEM_CHANGE_REQUEST"; readonly item: string; readonly reason: QuestionnaireReason;} | { readonly type: "ANSWERS_CHANGE_REQUEST"; readonly answers: readonly QuestionnaireAnswer[]; readonly reason: QuestionnaireReason;} | { readonly type: "SUBMIT_REQUEST"; readonly answers: readonly QuestionnaireAnswer[]; readonly reason: QuestionnaireReason;});QuestionnaireContext
typeQuestionnaireContextts
type QuestionnaireContext = { readonly item?: string; readonly answers: readonly QuestionnaireAnswer[]; readonly itemMode: BindingMode; readonly answersMode: BindingMode;};Name
Kind
Type
Requirement
answersproperty
readonly QuestionnaireAnswer[]required
answersModeproperty
BindingModerequired
itemproperty
stringoptional
itemModeproperty
BindingModerequired
- Name
answers- Kind
- property
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
answersMode- Kind
- property
- Type
BindingMode- Requirement
- required
- Name
item- Kind
- property
- Type
string- Requirement
- optional
- Name
itemMode- Kind
- property
- Type
BindingMode- Requirement
- required
QuestionnaireDiagnosticCodests
export declare const QuestionnaireDiagnosticCodes: readonly DiagnosticCatalogueEntry[];QuestionnaireEvent
typeQuestionnaireEventts
type QuestionnaireEvent = { readonly type: "GO_TO"; readonly item: string; readonly reason: QuestionnaireReason;} | { readonly type: "SET_ANSWER"; readonly name: string; readonly values: readonly string[]; readonly reason: QuestionnaireReason;} | { readonly type: "TOGGLE_CHOICE"; readonly name: string; readonly value: string; readonly reason: QuestionnaireReason;} | { readonly type: "NEXT"; readonly reason: QuestionnaireReason;} | { readonly type: "PREVIOUS"; readonly reason: QuestionnaireReason;} | { readonly type: "SKIP"; readonly reason: QuestionnaireReason;} | { readonly type: "SUBMIT"; readonly reason: QuestionnaireReason;} | { readonly type: "RESET";};QuestionnaireInput
typeQuestionnaireInputts
type QuestionnaireInput = { readonly items: readonly QuestionnaireItem[]; readonly item?: string; readonly defaultItem?: string; readonly answers?: readonly QuestionnaireAnswer[]; readonly defaultAnswers?: readonly QuestionnaireAnswer[]; readonly shortcuts?: "letters" | "numbers";};Name
Kind
Type
Requirement
answersproperty
readonly QuestionnaireAnswer[]optional
defaultAnswersproperty
readonly QuestionnaireAnswer[]optional
defaultItemproperty
stringoptional
itemproperty
stringoptional
itemsproperty
readonly QuestionnaireItem[]required
shortcutsproperty
"letters" | "numbers"optional
- Name
answers- Kind
- property
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
defaultAnswers- Kind
- property
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
defaultItem- Kind
- property
- Type
string- Requirement
- optional
- Name
item- Kind
- property
- Type
string- Requirement
- optional
- Name
items- Kind
- property
- Type
readonly QuestionnaireItem[]- Requirement
- required
- Name
shortcuts- Kind
- property
- Type
"letters" | "numbers"- Requirement
- optional
QuestionnaireItem
typeQuestionnaireItemts
type QuestionnaireItem = { readonly name: string; readonly choices?: readonly QuestionnaireChoice[]; readonly multiple?: boolean; readonly required?: boolean; readonly disabled?: boolean; readonly skippable?: boolean;};Name
Kind
Type
Requirement
choicesproperty
readonly QuestionnaireChoice[]optional
disabledproperty
booleanoptional
multipleproperty
booleanoptional
nameproperty
stringrequired
requiredproperty
booleanoptional
skippableproperty
booleanoptional
- Name
choices- Kind
- property
- Type
readonly QuestionnaireChoice[]- Requirement
- optional
- Name
disabled- Kind
- property
- Type
boolean- Requirement
- optional
- Name
multiple- Kind
- property
- Type
boolean- Requirement
- optional
- Name
name- Kind
- property
- Type
string- Requirement
- required
- Name
required- Kind
- property
- Type
boolean- Requirement
- optional
- Name
skippable- Kind
- property
- Type
boolean- Requirement
- optional
questionnaireMachine
valuequestionnaireMachinets
export declare const questionnaireMachine: Machine<QuestionnaireInput, "ready", QuestionnaireContext, QuestionnaireEvent, QuestionnaireCommand>;QuestionnaireReason
typeQuestionnaireReasonts
type QuestionnaireReason = "pointer" | "keyboard" | "programmatic";questionnaireReplaySequencets
export declare const questionnaireReplaySequence: readonly QuestionnaireEvent[];questionnaireSelectors
valuequestionnaireSelectorsts
export declare const questionnaireSelectors: { item: (snapshot: QuestionnaireSnapshot) => string | undefined; answers: (snapshot: QuestionnaireSnapshot) => readonly QuestionnaireAnswer[];};Name
Kind
Type
Requirement
answersproperty
(snapshot: QuestionnaireSnapshot) => readonly QuestionnaireAnswer[]required
itemproperty
(snapshot: QuestionnaireSnapshot) => string | undefinedrequired
- Name
answers- Kind
- property
- Type
(snapshot: QuestionnaireSnapshot) => readonly QuestionnaireAnswer[]- Requirement
- required
- Name
item- Kind
- property
- Type
(snapshot: QuestionnaireSnapshot) => string | undefined- Requirement
- required
QuestionnaireSnapshotts
type QuestionnaireSnapshot = Snapshot<"ready", QuestionnaireContext>;