import { HTMLAttributes, ReactNode } from 'react'
export enum StepperV2StepStatus {
DEFAULT = 'default',
COMPLETED = 'completed',
CURRENT = 'current',
PENDING = 'pending',
DISABLED = 'disabled',
SKIPPED = 'skipped',
}
export type StepperV2InteractionState =
| 'default'
| 'hover'
| 'focus'
| 'disabled'
export enum StepperV2Type {
HORIZONTAL = 'horizontal',
VERTICAL = 'vertical',
}
export type StepperV2Props = {
steps: StepperV2Step[]
onStepClick?: (stepIndex: number) => void
/**
* Called when a substep is clicked. The substepIndex is **1-based** (starts at 1).
* @param stepId - The id of the parent step
* @param substepIndex - The 1-based index of the substep (e.g., 1 for first substep)
*/
onSubstepClick?: (stepId: number, substepIndex: number) => void
clickable?: boolean
stepperType?: StepperV2Type
} & Omit, 'className' | 'style' | 'id'>
export type StepperV2SubStep = {
id: number
title: string
status?: StepperV2StepStatus
disabled?: boolean
}
export type StepperV2Step = {
id: number
title: string
status?: StepperV2StepStatus
disabled?: boolean
description?: string
icon?: ReactNode
substeps?: StepperV2SubStep[]
isExpandable?: boolean
isExpanded?: boolean
} & Omit, 'className' | 'style' | 'id'>
export type StepperV2StepProps = {
step: StepperV2Step
stepIndex: number
isCompleted: boolean
isCurrent: boolean
isLast: boolean
isFirst: boolean
onClick?: (stepIndex: number) => void
/**
* Called when a substep is clicked. The substepIndex is **1-based** (starts at 1).
* @param stepIndex - The index of the parent step
* @param substepIndex - The 1-based index of the substep (e.g., 1 for first substep)
*/
onSubstepClick?: (stepIndex: number, substepIndex: number) => void
clickable?: boolean
currentSubsteps?: Record
onKeyDown?: (event: React.KeyboardEvent, stepIndex: number) => void
}