Overview
The step indicator is currently implemented as an ERB partial at app/views/strata/shared/_step_indicator.html.erb with no backing ViewComponent class. This means host apps must use the render partial: syntax with a locals hash, which is harder to document, test, and extend than a proper ViewComponent.
Current Usage
<%= render partial: "strata/shared/step_indicator", locals: {
steps: [:before_you_start, :personal_info, :contact, :household, :employment, :review, :submit],
current_step: :personal_info,
type: :counters
} %>
Proposed API
<%= render Strata::StepIndicatorComponent.new(
steps: [:before_you_start, :personal_info, :contact],
current_step: :personal_info,
type: :counters,
translation_scope: "strata.application_forms.steps"
) %>
Acceptance Criteria
Context
The step indicator appears on every question page of every multi-step form in the SDK. Converting it to a ViewComponent improves testability, enables slot-based extension, and aligns it with the rest of the SDK's component architecture (TaskListComponent, AccordionComponent, etc.).
Overview
The step indicator is currently implemented as an ERB partial at
app/views/strata/shared/_step_indicator.html.erbwith no backing ViewComponent class. This means host apps must use therender partial:syntax with a locals hash, which is harder to document, test, and extend than a proper ViewComponent.Current Usage
Proposed API
Acceptance Criteria
Strata::StepIndicatorComponentbacked by the existing partial templatesteps,current_step,translation_scope,large_header,header_first,typetranslation_scope; fall back to humanized symboltype: :countersvariantui-kit-components.mdreference to document the component APIrender partial:do not break (deprecated notice in partial is acceptable)Context
The step indicator appears on every question page of every multi-step form in the SDK. Converting it to a ViewComponent improves testability, enables slot-based extension, and aligns it with the rest of the SDK's component architecture (
TaskListComponent,AccordionComponent, etc.).