Inputs & flows
The generic primitives an experience audit found missing β the building blocks for the lead-magnet calculators, multi-step wizards, list bulk-ops, and impersonation. (Experience-specific compositions β the quiz engine, calculators, pricing table, flag console β stay app-level, built from these.)
- 1ERP
- 2Credentials
- 3Verify
Step 1 β pick your ERP.
Form inputs
Section titled βForm inputsβSlider(@repo/ui/form) β native range tinted to the brand;min/max/step,format. Powers the calculator inputs.NumberStepperβ number input with β/+ steppers, clamped tomin/max.SegmentedControlβ exclusive view/option toggle (radiogroup); the βby status / by assigneeβ pattern.
import { Slider, NumberStepper, SegmentedControl } from '@repo/ui/form';<Slider label="Rate" value={rate} onChange={setRate} min={20} max={80} format={(v) => `$${v}/hr`} /><NumberStepper value={qty} onChange={setQty} min={1} max={50} /><SegmentedControl value={view} onChange={setView} options={[{value:'status',label:'By status'},β¦]} />WizardShell
Section titled βWizardShellβimport WizardShell, { type WizardStep } from '@repo/ui/WizardShell';<WizardShell steps={steps} canAdvance={(i) => validate(i)} onComplete={save} onCancel={close} />Multi-step container: Stepper indicator + active step content + Back/Next/Finish footer, with
canAdvance validation gating. The ERP-connection, provision, and onboarding wizards build on this
(Stepper alone was indicator-only).
BulkActionToolbar
Section titled βBulkActionToolbarβ<BulkActionToolbar count={n} onClear={β¦} noun={['order','orders']}>β¦actionsβ¦</BulkActionToolbar> β
appears when rows are selected; shows the count + clear and hosts bulk actions. For inbox / action-items list ops.
<Banner variant="info|warning|danger|brand|impersonation" action={β¦} onDismiss={β¦}> β full-width
page banner (vs the inline Alert). The impersonation variant is the hazard-tape overlay for
βacting as another orgβ.