{"version":3,"file":"Stepper.cjs","sources":["../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import { type FC, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { HorizontalStepItem } from './HorizontalStepItem'\nimport { VerticalStepItem } from './VerticalStepItem'\n\nimport type {\n  HorizontalStepper as HStepperProps,\n  Step,\n  VerticalStepper as VStepperProps,\n} from './types'\n\ntype Props = HStepperProps | VStepperProps\n\nconst classNameGenerator = tv({\n  base: ['smarthr-ui-Stepper', 'shr-my-0 shr-list-none shr-ps-0'],\n  variants: {\n    type: {\n      // ステップ見出しの左右パディングをネガティブマージンで消し込んでいてる\n      horizontal: '-shr-mx-0.75 shr-flex',\n      vertical: '',\n    },\n  },\n})\n\nexport const Stepper: FC<Props> = ({ type, steps, activeIndex, className, ...rest }) => {\n  const isHorizontal = type === 'horizontal'\n  const ItemComponent = isHorizontal ? HorizontalStepItem : VerticalStepItem\n\n  const actualClassName = useMemo(() => classNameGenerator({ type, className }), [type, className])\n\n  return (\n    <ol {...rest} className={actualClassName}>\n      {steps.map((step, index) => (\n        <StepItem\n          key={index}\n          Component={ItemComponent}\n          activeIndex={activeIndex}\n          index={index}\n          step={step}\n          // 装飾上、horizontalの場合、前のステップが完了しているかどうかチェックする必要がある\n          previousStepStatus={isHorizontal ? steps[index - 1]?.status : undefined}\n        />\n      ))}\n    </ol>\n  )\n}\n\nconst StepItem: FC<\n  Pick<Props, 'activeIndex'> & {\n    Component: typeof HorizontalStepItem | typeof VerticalStepItem\n    step: Step\n    previousStepStatus: Step['status'] | undefined\n    index: number\n  }\n> = ({ Component, step, previousStepStatus, index, activeIndex }) => {\n  const isPrevStepCompleted = useMemo(() => {\n    if (!previousStepStatus) return false\n\n    const statusType =\n      typeof previousStepStatus === 'object' ? previousStepStatus.type : previousStepStatus\n\n    return statusType === 'completed'\n  }, [previousStepStatus])\n\n  return (\n    <Component\n      {...step}\n      isPrevStepCompleted={isPrevStepCompleted}\n      stepNumber={index + 1}\n      current={index === activeIndex}\n    />\n  )\n}\n"],"names":["tv","HorizontalStepItem","VerticalStepItem","useMemo","_jsx"],"mappings":";;;;;;;;AAcA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;AAC/D,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;;AAEJ,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEK,MAAM,OAAO,GAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,KAAI;AACrF,IAAA,MAAM,YAAY,GAAG,IAAI,KAAK,YAAY;IAC1C,MAAM,aAAa,GAAG,YAAY,GAAGC,wDAAkB,GAAGC,oDAAgB;IAE1E,MAAM,eAAe,GAAGC,aAAO,CAAC,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAEjG,IAAA,QACEC,cAAA,CAAA,IAAA,EAAA,EAAA,GAAQ,IAAI,EAAE,SAAS,EAAE,eAAe,EAAA,QAAA,EACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACrBA,eAAC,QAAQ,EAAA,EAEP,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI;;YAEV,kBAAkB,EAAE,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAA,EANlE,KAAK,CAOV,CACH,CAAC,EAAA,CACC;AAET;AAEA,MAAM,QAAQ,GAOV,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAI;AAClE,IAAA,MAAM,mBAAmB,GAAGD,aAAO,CAAC,MAAK;AACvC,QAAA,IAAI,CAAC,kBAAkB;AAAE,YAAA,OAAO,KAAK;AAErC,QAAA,MAAM,UAAU,GACd,OAAO,kBAAkB,KAAK,QAAQ,GAAG,kBAAkB,CAAC,IAAI,GAAG,kBAAkB;QAEvF,OAAO,UAAU,KAAK,WAAW;AACnC,IAAA,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAExB,QACEC,eAAC,SAAS,EAAA,EAAA,GACJ,IAAI,EACR,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,KAAK,GAAG,CAAC,EACrB,OAAO,EAAE,KAAK,KAAK,WAAW,EAAA,CAC9B;AAEN,CAAC;;;;"}