{"version":3,"file":"StepIndicator.cjs","sources":["../../../../src/components/navigation/step-indicator/StepIndicator.tsx"],"sourcesContent":["import {\r\n    Children,\r\n    isValidElement,\r\n    memo,\r\n    type ReactElement,\r\n} from 'react'\r\n\r\nimport StepIndicatorItem from '@components/navigation/step-indicator/components/step-indicator-item/StepIndicatorItem.tsx'\r\nimport type { StepIndicatorItemProps } from '@components/navigation/step-indicator/components/step-indicator-item/types/StepIndicatorItem.props.ts'\r\nimport { StepIndicatorContext } from '@components/navigation/step-indicator/context/StepIndicator.context.ts'\r\nimport { STEP_INDICATOR_STYLES } from '@components/navigation/step-indicator/styles/StepIndicator.css.ts'\r\nimport type { StepIndicatorProps } from '@components/navigation/step-indicator/types/StepIndicator.props.ts'\r\nimport type { StepIndicatorCompound } from '@components/navigation/step-indicator/types/StepIndicatorCompound.ts'\r\nimport { cn } from '@utils/cn.ts'\r\n\r\n/**\r\n * Minimal dot-based step progress indicator rendered as a `<nav>` with an\r\n * ordered list. Tracks `currentStep` to derive completed and current states\r\n * for each `StepIndicator.Item`.\r\n *\r\n * Compound slot: `StepIndicator.Item`.\r\n */\r\nconst StepIndicator = memo(\r\n    ({\r\n        'aria-label': ariaLabel,\r\n        children,\r\n        currentStep,\r\n        onStepChange,\r\n        className,\r\n        ref,\r\n        ...props\r\n    }: StepIndicatorProps) => {\r\n        const items = Children.toArray(children).filter(\r\n            (child): child is ReactElement<StepIndicatorItemProps> =>\r\n                isValidElement<StepIndicatorItemProps>(child),\r\n        )\r\n\r\n        return (\r\n            <nav\r\n                ref={ref}\r\n                aria-label={ariaLabel}\r\n                className={cn(STEP_INDICATOR_STYLES.root, className)}\r\n                {...props}\r\n            >\r\n                <ol className={STEP_INDICATOR_STYLES.list}>\r\n                    {items.map((item, index) => {\r\n                        const stepNumber = index + 1\r\n                        const isCurrent = stepNumber === currentStep\r\n                        const isCompleted = stepNumber < currentStep\r\n\r\n                        return (\r\n                            <li key={item.key ?? `${stepNumber}-${item.props.label}`}>\r\n                                <StepIndicatorContext.Provider\r\n                                    value={{\r\n                                        stepNumber,\r\n                                        isCurrent,\r\n                                        isCompleted,\r\n                                        onStepChange,\r\n                                    }}\r\n                                >\r\n                                    <StepIndicatorItem {...item.props} />\r\n                                </StepIndicatorContext.Provider>\r\n                            </li>\r\n                        )\r\n                    })}\r\n                </ol>\r\n            </nav>\r\n        )\r\n    },\r\n) as unknown as StepIndicatorCompound\r\n\r\nStepIndicator.displayName = 'StepIndicator'\r\nStepIndicator.Item = StepIndicatorItem\r\n\r\nexport default StepIndicator\r\n"],"names":["StepIndicator","memo","ariaLabel","children","currentStep","onStepChange","className","ref","props","items","Children","child","isValidElement","jsx","cn","STEP_INDICATOR_STYLES","item","index","stepNumber","isCurrent","isCompleted","StepIndicatorContext","StepIndicatorItem"],"mappings":"yQAsBMA,EAAgBC,EAAAA,KAClB,CAAC,CACG,aAAcC,EACd,SAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,IAAAC,EACA,GAAGC,CAAA,IACmB,CACtB,MAAMC,EAAQC,EAAAA,SAAS,QAAQP,CAAQ,EAAE,OACpCQ,GACGC,EAAAA,eAAuCD,CAAK,CAAA,EAGpD,OACIE,EAAAA,IAAC,MAAA,CACG,IAAAN,EACA,aAAYL,EACZ,UAAWY,EAAAA,GAAGC,wBAAsB,KAAMT,CAAS,EAClD,GAAGE,EAEJ,SAAAK,EAAAA,IAAC,MAAG,UAAWE,EAAAA,sBAAsB,KAChC,SAAAN,EAAM,IAAI,CAACO,EAAMC,IAAU,CACxB,MAAMC,EAAaD,EAAQ,EACrBE,EAAYD,IAAed,EAC3BgB,EAAcF,EAAad,EAEjC,aACK,KAAA,CACG,SAAAS,EAAAA,IAACQ,EAAAA,qBAAqB,SAArB,CACG,MAAO,CACH,WAAAH,EACA,UAAAC,EACA,YAAAC,EACA,aAAAf,CAAA,EAGJ,SAAAQ,EAAAA,IAACS,EAAA,CAAmB,GAAGN,EAAK,KAAA,CAAO,CAAA,CAAA,GATlCA,EAAK,KAAO,GAAGE,CAAU,IAAIF,EAAK,MAAM,KAAK,EAWtD,CAER,CAAC,CAAA,CACL,CAAA,CAAA,CAGZ,CACJ,EAEAhB,EAAc,YAAc,gBAC5BA,EAAc,KAAOsB"}