Skip to main content

Design system components

TransformingActionInput

Marketing entry-point input that morphs between surface modes, from a prompt bar into a chat handoff; pairs with ChatWidget.

Status: beta. Group: form. Markdown version: /design-system/components/transforming-action-input.md

When to use

Marketing entry-point input that morphs between surface modes (prompt bar into chat handoff). Pairs with ChatWidget.

When not to use

The contract records no forbidden uses.

Look-alikes

The contract names no look-alike with a deciding condition.

Props

TransformingActionInput props
PropTypeDefaultDescriptionRequired
initialMode"button" | "input"buttonInitial surface mode before transformation.No
valuestringnoneOptional controlled value.No
defaultValuestring""Default value when uncontrolled.No
disabledbooleanfalseDisabled state for both button and input.No
actionLabelKeystringtransformingActionInput.triggerTranslation key for the trigger label.No
inputLabelKeystringtransformingActionInput.labelTranslation key for the input label.No
helperTextKeystringtransformingActionInput.helperTranslation key for helper text below the input.No
placeholderKeystringtransformingActionInput.placeholderTranslation key for the placeholder.No
onChange(value: string) => voidnoneTriggered when value changes.No
onSubmit(value: string) => voidnoneTriggered on submit in input mode.No
stayInInputModebooleanfalseWhen true, retains the input after submit instead of returning to button mode.No
classNamestring""Optional className passthrough.No

Variants

  • Allowed initialMode values: button, input (default button).

Invalid combinations

  • MUST NOT: value and defaultValue set together. value makes the component controlled and defaultValue uncontrolled; pass one, not both.

Keyboard

The contract records no keyboard interaction.

Rules

Every item under When not to use is a MUST NOT. MUST and SHOULD follow RFC 2119.

TransformingActionInput rules
LevelRuleHow it is checked
MUST NOTvalue and defaultValue set together. value makes the component controlled and defaultValue uncontrolled; pass one, not both.Checked by the MCP tool validate_component_usage.
MUSTRequired stories produce no axe violations at the configured severity.Automated by npm run test:stories:matrix:ci. WCAG 2.5.8.
MUSTThe accessibility tree (role, name, state) matches the committed snapshot for every required story.Automated by npm run test:stories:matrix:ci. WCAG 1.3.1, 4.1.2.
MUSTThe component remains legible and operable under a real browser forced-colors: active pass.Automated by npm run test:stories:hc.
MUSTA human completed an end-to-end accessibility review of this component.Manual review, last on 2026-05-28.
MUST NOTMaintainers: Do not bypass design tokens or skip forced-colors verification at beta.Release review; not machine-checked.

Install and import

  • In-repo only. TransformingActionInput is not exported from @digitaltableteur/react, so there is no public import path.