{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "stepper",
"title": "Stepper",
"description": "A composable vertical stepper component with animated indicators, separators, and size variants.",
"dependencies": [
"lucide-react"
],
"files": [
{
"path": "registry/custom-ui/stepper.tsx",
"content": "\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type StepperSize = \"sm\" | \"default\" | \"lg\";\nexport type StepperStatus = \"complete\" | \"current\" | \"upcoming\";\n\nconst StepperContext = React.createContext<{ size: StepperSize }>({\n size: \"default\",\n});\n\nconst StepperItemContext = React.createContext<{ status: StepperStatus }>({\n status: \"upcoming\",\n});\n\nfunction Stepper({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"ol\"> & { size?: StepperSize }) {\n return (\n \n