Progress Steps
manifest-ui/progress-stepsFreeBlock
Progress indicator with horizontal or vertical layout and step statuses.
Install it
npx shadcn@latest add https://ui.manifest.build/r/progress-steps.jsonSource
1'use client'23import { cn } from '@/lib/utils'4import { Check } from 'lucide-react'5import { demoProgressSteps } from './demo/status'67/**8 * Represents an individual step in the progress tracker.9 * @interface Step10 * @property {string} [label] - Display text for the step11 * @property {"completed" | "current" | "pending"} [status] - Current status of the step12 */13export interface Step {14 label?: string15 status?: 'completed' | 'current' | 'pending'16}1718/**19 * ═══════════════════════════════════════════════════════════════════════════20 * ProgressStepsProps21 * ═══════════════════════════════════════════════════════════════════════════22 *23 * Props for the ProgressSteps component, which displays a visual progress24 * tracker showing sequential steps with completion states.25 */26export interface ProgressStepsProps {27 data?: {28 /** Array of steps to display with their labels and status. */29 steps?: Step[]30 }31}323334/**35 * A progress stepper component showing sequential step status.36 * Displays steps with completed, current, and pending states.37 *38 * Features:39 * - Three step states: completed, current, pending40 * - Check icon for completed steps41 * - Responsive horizontal/vertical layout42 * - Connected step indicators43 *44 * @component45 * @example46 * ```tsx47 * <ProgressSteps48 * data={{49 * steps: [50 * { label: "Order received", status: "completed" },51 * { label: "Processing", status: "completed" },52 * { label: "Shipping", status: "current" },53 * { label: "Delivery", status: "pending" }54 * ]55 * }}56 * />57 * ```58 */59export function ProgressSteps({ data }: ProgressStepsProps) {60 const resolved: NonNullable<ProgressStepsProps['data']> = data ?? { steps: demoProgressSteps }61 const steps = resolved.steps ?? []62 return (63 <div className="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-2 bg-card rounded-lg p-4">64 {steps.map((step, index) => {65 const stepStatus = step.status ?? 'pending'66 return (67 <div key={index} className="flex items-center gap-2">68 <div className="flex items-center gap-2">69 <div70 className={cn(71// … truncated
What it pulls in
npm packages
Files it writes
More from Manifest UI
All 32 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Amount Inputamount-input | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Chat Conversationchat-conversation | Manifest UI | Blocks | Free | 1 dep · 3 files | |
| Contact Formcontact-form | Manifest UI | Blocks | Free | 1 dep · 3 files | |
| Date & Time Pickerdate-time-picker | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Cardevent-card | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Confirmationevent-confirmation | Manifest UI | Blocks | Free | 1 dep · 2 files | |
| Event Detailevent-detail | Manifest UI | Blocks | Free | 3 deps · 2 files | |
| Event Listevent-list | Manifest UI | Blocks | Free | 3 deps · 2 files |
