components/elements/StepTracker/StepTracker.jsxjavascript
import "./StepTracker.scss";

/**
 * Horizontal dot progress indicator ("stepTracker" element type): one circle
 * per step, connected by a line, the current step filled solid.
 *
 * @param {Object} props
 * @param {number} props.total - Total number of steps.
 * @param {number} props.current - Current step, 1-based.
 */
export const StepTracker = ({ total, current }) => {
  const steps = Array.from({ length: total }, (_, index) => index + 1);

  return (
    <div className="step-tracker">
      {steps.map((step) => (
        <span
          key={step}
          className={`step-tracker__step${step === current ? " step-tracker__step--current" : ""}`}>
          {step}
        </span>
      ))}
    </div>
  );
};