import { Color } from '@ionic/core'; /** * Step status. */ export type StepStatus = 'pending' | 'current' | 'completed' | 'error'; /** * Single step configuration. */ export interface StepMetadata { /** Unique step identifier */ value: string; /** Step label */ label?: string; /** Step description/subtitle */ description?: string; /** Step icon (overrides number) */ icon?: string; /** Step status */ status?: StepStatus; /** Whether step is optional */ optional?: boolean; /** Whether step is editable (can go back) */ editable?: boolean; /** Whether step is disabled */ disabled?: boolean; /** Reactive content key for label */ contentKey?: string; /** Component class name for content lookup */ contentClass?: string; /** Fallback for label */ contentFallback?: string; } /** * Metadata for the stepper component. */ export interface StepperMetadata { /** Step items */ steps: StepMetadata[]; /** Current step value */ currentStep?: string; /** Current step index (alternative to currentStep) */ currentIndex?: number; /** Stepper orientation */ orientation?: 'horizontal' | 'vertical'; /** Linear mode (must complete in order) */ linear?: boolean; /** Stepper color */ color?: Color; /** Show step numbers */ showNumbers?: boolean; /** Connector line style */ connectorStyle?: 'solid' | 'dashed' | 'none'; /** Unique token identifier */ token?: string; } /** * Event emitted when step changes. */ export interface StepChangeEvent { /** New step */ step: StepMetadata; /** New step index */ index: number; /** Previous step index */ previousIndex: number; }