import { Meta, Stories, StoryObj, ArgTypes, Primary, Subtitle } from "@storybook/blocks";
import * as StepperStories from "./src/stepper.stories";
import * as StepperContentStories from "./src/stepper-content.stories";
import packageInfo from "./package.json";
Stepper
Version {packageInfo.version}
Showcase
Properties
Stepper
Stepper.Content
Installation
Via NPM
Add the dependency to your consumer app like "@purpurds/stepper": "x.y.z"
From outside the monorepo (build-time)
To install this package, you need to setup access to the artifactory. Click here to go to the guide on how to do that.
In MyApp.tsx
import "@purpurds/tokens/index.css";
and
import "@purpurds/stepper/styles";
In MyComponent.tsx
The user of this stepper has to provide a handler for when a step has been clicked. This handler will be called with the index of the step.
The consumer then has to set which step is current and send it back to the Stepper.
The Stepper also takes two labels.
The scrollButtonLabels is for explaining the scroll buttons that are visible when there is horizontal overflow when displaying the steps to screen readers.
The completedStepLabel is for screen readers to read that a step is completed, the label is prepended to the step label.
Example of handler and content rendering.
import { Stepper } from "@purpurds/stepper";
const scrollLabels: ScrollButtonLabels = {
leftScrollButtonText: "Scroll left",
rightScrollButtonText: "Scroll right",
};
export const MyComponent = () => {
const [currentStep, setCurrentStep] = useState<number>(0);
return (
<>
<Stepper
data-testid="stepper"
variant="primary"
scrollButtonLabels={scrollLabels}
completedStepLabel="Completed step"
currentStepIndex={currentStep}
onStepChange={setCurrentStep}
>
<Stepper.Content finished label="Step 1">
This is the content in step 1
</Stepper.Content>
<Stepper.Content label="Step 2">
This is the content in step 2
</Stepper.Content>
<Stepper.Content disabled label="Step 3">
This is the content in step 3
</Stepper.Content>
</Stepper>
</>
);
};