F1 component kit/Forms and editing/Stepper and step railPhone

Stepper and step rail

F1 variant17 · stepper

The six import steps with done / current / error / locked, and the step rail's second job: the long-form section nav for the 130 A03 pages (scroll-spy, an error count per section, jump to the first error).

Covers: stepper primitive, stepper designer, step-rail primitive, step-rail designer. Exports: Stepper, SectionNav.

Whole page:CompactComfortableLaravel · navyDTC · midnight green
AnatomyStatesDensityEN · 中文Edge casesContract

Anatomy

The component as it sits in the product: English, compact, real data shapes.

Upload
Map columns
3Preview
4Confirm
5Progress
6Result

States

6 states, left to right, top to bottom. A mock poll never finishes, so each state is drawn on purpose.

step 1
1Upload
2Map columns
3Preview
4Confirm
5Progress
6Result
step 3 current
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
step 3 error
Upload
Map columns
Preview
4Confirm
5Progress
6Result
later steps locked
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
all done
Upload
Map columns
Preview
Confirm
Progress
Result
section nav (long form)
BasicsNames (EN / CN)2ProductionLinks and blockersValidation
Long-form mode: scroll-spy, error count per section, ⌥↓ jumps to the first error.

Density

Compact (2b ultra, the default) and comfortable, side by side. Same markup, only the density tokens change.

compact · default · data-density=compact
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
comfortable · data-density=comfortable
Upload
Map columns
3Preview
4Confirm
5Progress
6Result

English · 中文

Staff pick en or cn (T001 Q25). Labels arrive localised; CJK falls back to PingFang SC / Noto Sans SC.

en
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
中文 · lang=zh-Hans
上传
映射列
3预览
4确认
5进度
6结果

Long string · permission denied

The long-string case (PL-063) and what a role without the permission sees (the server decides; T003).

long string
Upload
Map the supplier's columns onto fabric-code fields
3Preview
4Confirm
5Progress
6Result
permission denied
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
Confirm is not available to your roleYou can prepare the preview; a full admin confirms (import fabric codes).

Both apps

One @rj/admin-kit component, two themes: the Laravel admin (navy pinned) and the DTC admin (kit v4 Midnight green), by token swap only.

Laravel admin · :root
Upload
Map columns
3Preview
4Confirm
5Progress
6Result
DTC admin · data-theme=dtc
Upload
Map columns
3Preview
4Confirm
5Progress
6Result

Contract

The @rj/admin-kit API for this family. Mirrored in CONTRACT.md.

Export
Stepper · @rj/admin-kit
Props
steps · current · errorAt · locked
States
done · current · error · locked
shadcn / Radix
none
Accessibility
ol with aria-current=step
Phone variant
compact “Step 3 of 6” title + bar
Export
SectionNav · @rj/admin-kit
Props
sections {id, label, errors} · active
States
active · done · errors
Package underneath
IntersectionObserver (scroll-spy)
Accessibility
nav of in-page links; ⌥↓ jumps to the first error