{"version":3,"file":"index.cjs","sources":["../../../../src/components/multi-step-cards/index.tsx"],"sourcesContent":["import React, { type ReactNode, useMemo } from \"react\";\nimport type { ReactElement } from \"react\";\nimport { matchChildByType, mergedCva } from \"../../utils/components\";\nimport { StepCard, type StepCardProps } from \"./step-card\";\nimport { NextStepPreview, type NextStepPreviewProps } from \"./step-preview\";\n\nexport * from \"./step-card\";\nexport * from \"./step-preview\";\nexport * from \"./next-button\";\n\nconst rootStyles = mergedCva([\n    \"cui-w-full\",\n    \"cui-max-w-xl\",\n    \"cui-flex\",\n    \"cui-flex-col\",\n]);\n\nconst stepsPreviewContainerStyles = mergedCva([\n    \"cui-mt-20\",\n    \"min-h-fit\",\n    \"w-full\",\n    \"max-w-xl\",\n]);\n\nexport interface MultiStepCardsProps {\n    children: ReactNode | ReactNode[];\n    activeStep?: number;\n    className?: {\n        root?: string;\n        stepsPreviewContainer?: string;\n        stepPreview?: NextStepPreviewProps[\"className\"];\n    };\n    messages: {\n        step?: string;\n    };\n}\n\nexport const MultiStepCards = ({\n    children,\n    activeStep,\n    className,\n    messages,\n}: MultiStepCardsProps): ReactElement => {\n    const childSteps = useMemo(\n        () =>\n            React.Children.toArray(children).filter((child) =>\n                matchChildByType(child, StepCard),\n            ),\n        [children],\n    );\n    const stepsCount = useMemo(() => childSteps.length, [childSteps.length]);\n    const finalActiveStep = useMemo(() => {\n        if (!activeStep) return 0;\n        if (activeStep < 0) return 0;\n        if (activeStep + 1 > stepsCount) return stepsCount - 1;\n\n        return activeStep;\n    }, [activeStep, stepsCount]);\n    const derivedStepsTitles = useMemo(\n        () =>\n            childSteps.map(\n                (child) =>\n                    ((child as ReactElement).props as StepCardProps).title,\n            ),\n        [childSteps],\n    );\n\n    return (\n        <div className={rootStyles({ className: className?.root })}>\n            {childSteps[finalActiveStep]}\n            <div\n                className={stepsPreviewContainerStyles({\n                    className: className?.stepsPreviewContainer,\n                })}\n            >\n                {!!derivedStepsTitles[finalActiveStep + 1] && (\n                    <NextStepPreview\n                        step={`${messages.step} ${finalActiveStep + 2}`}\n                        title={derivedStepsTitles[finalActiveStep + 1]}\n                    />\n                )}\n                {!!derivedStepsTitles[finalActiveStep + 2] && (\n                    <NextStepPreview\n                        step={`${messages.step} ${finalActiveStep + 3}`}\n                        title={derivedStepsTitles[finalActiveStep + 2]}\n                    />\n                )}\n            </div>\n        </div>\n    );\n};\n"],"names":["mergedCva","useMemo","matchChildByType","StepCard","NextStepPreview"],"mappings":";;;;;;;;AAUA,MAAM,aAAaA,oBAAU,CAAA;AAAA,EACzB,YAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AACJ,CAAC,CAAA,CAAA;AAED,MAAM,8BAA8BA,oBAAU,CAAA;AAAA,EAC1C,WAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AACJ,CAAC,CAAA,CAAA;AAeM,MAAM,iBAAiB,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AACJ,CAAyC,KAAA;AACrC,EAAA,MAAM,UAAa,GAAAC,aAAA;AAAA,IACf,MACI,KAAA,CAAM,QAAS,CAAA,OAAA,CAAQ,QAAQ,CAAE,CAAA,MAAA;AAAA,MAAO,CAAC,KAAA,KACrCC,2BAAiB,CAAA,KAAA,EAAOC,cAAQ,CAAA;AAAA,KACpC;AAAA,IACJ,CAAC,QAAQ,CAAA;AAAA,GACb,CAAA;AACA,EAAM,MAAA,UAAA,GAAaF,cAAQ,MAAM,UAAA,CAAW,QAAQ,CAAC,UAAA,CAAW,MAAM,CAAC,CAAA,CAAA;AACvE,EAAM,MAAA,eAAA,GAAkBA,cAAQ,MAAM;AAClC,IAAA,IAAI,CAAC,UAAA;AAAY,MAAO,OAAA,CAAA,CAAA;AACxB,IAAA,IAAI,UAAa,GAAA,CAAA;AAAG,MAAO,OAAA,CAAA,CAAA;AAC3B,IAAA,IAAI,aAAa,CAAI,GAAA,UAAA;AAAY,MAAA,OAAO,UAAa,GAAA,CAAA,CAAA;AAErD,IAAO,OAAA,UAAA,CAAA;AAAA,GACR,EAAA,CAAC,UAAY,EAAA,UAAU,CAAC,CAAA,CAAA;AAC3B,EAAA,MAAM,kBAAqB,GAAAA,aAAA;AAAA,IACvB,MACI,UAAW,CAAA,GAAA;AAAA,MACP,CAAC,KACK,KAAA,KAAA,CAAuB,KAAwB,CAAA,KAAA;AAAA,KACzD;AAAA,IACJ,CAAC,UAAU,CAAA;AAAA,GACf,CAAA;AAEA,EAAA,uBACK,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,UAAA,CAAW,EAAE,SAAA,EAAW,SAAW,EAAA,IAAA,EAAM,CAAA,EAAA,EACpD,UAAW,CAAA,eAAe,CAC3B,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,WAAW,2BAA4B,CAAA;AAAA,QACnC,WAAW,SAAW,EAAA,qBAAA;AAAA,OACzB,CAAA;AAAA,KAAA;AAAA,IAEA,CAAC,CAAC,kBAAmB,CAAA,eAAA,GAAkB,CAAC,CACrC,oBAAA,KAAA,CAAA,aAAA;AAAA,MAACG,uBAAA;AAAA,MAAA;AAAA,QACG,MAAM,CAAG,EAAA,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,CAAA,CAAA;AAAA,QAC7C,KAAA,EAAO,kBAAmB,CAAA,eAAA,GAAkB,CAAC,CAAA;AAAA,OAAA;AAAA,KACjD;AAAA,IAEH,CAAC,CAAC,kBAAmB,CAAA,eAAA,GAAkB,CAAC,CACrC,oBAAA,KAAA,CAAA,aAAA;AAAA,MAACA,uBAAA;AAAA,MAAA;AAAA,QACG,MAAM,CAAG,EAAA,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,CAAA,CAAA;AAAA,QAC7C,KAAA,EAAO,kBAAmB,CAAA,eAAA,GAAkB,CAAC,CAAA;AAAA,OAAA;AAAA,KACjD;AAAA,GAGZ,CAAA,CAAA;AAER;;;;;;;"}