"use client"; import React from "react"; import { useTheme } from "next-themes"; import { Check } from "lucide-react"; import { cn } from "@/shared/lib/utils"; import { StepperStepProps } from "../types"; interface StepperHeaderProps { steps: StepperStepProps[]; currentStep: number; onStepClick?: (stepNumber: number) => void; } function StepperStep({ description, isActive, isCompleted, stepNumber, title, currentStep, onStepClick, }: StepperStepProps & { currentStep: number; onStepClick?: (stepNumber: number) => void }) { const canClick = stepNumber < currentStep || isCompleted; const handleClick = () => { if (canClick && onStepClick) { onStepClick(stepNumber); } }; return ( <> {/* Layout mobile - vertical avec texte à droite */}
{/* Cercle */}
{isCompleted ? : {stepNumber}}
{/* Contenu textuel à droite */}

{title}

{description}

{/* Layout desktop - horizontal avec texte en bas */}
{/* Cercle */}
{isCompleted ? : {stepNumber}}
{/* Contenu textuel en bas */}

{title}

{description}

); } export function StepperHeader({ steps, currentStep, onStepClick }: StepperHeaderProps) { const { resolvedTheme } = useTheme(); return (
{/* Layout mobile - vertical */}
{steps.map((step, index) => (
{/* Ligne de connexion verticale */} {index < steps.length - 1 && (
)}
))}
{/* Layout desktop - horizontal */}
{steps.map((step, index) => ( {/* Étape */}
{/* Ligne de connexion horizontale */} {index < steps.length - 1 && (
)} ))}
); }