import {
Stepper,
StepperContent,
StepperDescription,
StepperIndicator,
StepperItem,
StepperNav,
StepperPanel,
StepperSeparator,
StepperTitle,
StepperTrigger,
} from '@/registry/default/ui/stepper';
import { Check, LoaderCircleIcon } from 'lucide-react';
const steps = [
{ title: 'Step 1', description: 'Desc for Step 1' },
{ title: 'Step 2', description: 'Desc for Step 2' },
{ title: 'Step 3', description: 'Desc for Step 3' },
];
export default function Component() {
return (
<Stepper
defaultValue={2}
indicators={{
completed: <Check className="size-4" />,
loading: <LoaderCircleIcon className="size-4 animate-spin" />,
}}
className="space-y-8"
>
<StepperNav>
{steps.map((step, index) => (
<StepperItem key={index} step={index + 1} className="relative">
<StepperTrigger className="flex justify-start gap-1.5">
<StepperIndicator>{index + 1}</StepperIndicator>
<div className="flex flex-col items-start gap-0.5">
<StepperTitle>{step.title}</StepperTitle>
<StepperDescription>{step.description}</StepperDescription>
</div>
</StepperTrigger>
{steps.length > index + 1 && <StepperSeparator className="md:mx-2.5" />}
</StepperItem>
))}
</StepperNav>
<StepperPanel className="text-sm">
{steps.map((step, index) => (
<StepperContent key={index} value={index + 1} className="flex items-center justify-center">
Step {step.title} content
</StepperContent>
))}
</StepperPanel>
</Stepper>
);
}