package components import "strconv" // StepInfo represents a single step in the stepper type StepInfo struct { Number int Label string } // OnboardingStepper renders a 3-step progress indicator // currentStep: 1-indexed current step number // steps: slice of step labels (e.g., []string{"Welcome", "Learn", "Get Started"}) templ OnboardingStepper(currentStep int, steps []string) { @stepperStyles()
for i, label := range steps { @stepperItem(i+1, label, currentStep) if i < len(steps)-1 { @stepperLine(i+1 < currentStep) } }
} // stepperItem renders a single step circle with label templ stepperItem(stepNum int, label string, currentStep int) {
if stepNum < currentStep { } else { { strconv.Itoa(stepNum) } }
{ label }
} // stepperLine renders the connecting line between steps templ stepperLine(completed bool) {
} // ProgressDots renders a compact dot-based progress indicator templ ProgressDots(current int, total int) {
for i := 1; i <= total; i++ {
}
} templ stepperStyles() { }