{"version":3,"sources":["../src/use-steps.ts"],"sourcesContent":["import { useState } from \"react\"\n\nexport type UseStepsProps = {\n  index?: number\n  count?: number\n}\n\nexport type StepStatus = \"complete\" | \"active\" | \"incomplete\"\n\nexport function useSteps(props: UseStepsProps = {}) {\n  const { index = 0, count } = props\n\n  const [activeStep, setActiveStep] = useState(index)\n\n  const maxStep = typeof count === \"number\" ? count - 1 : 0\n  const activeStepPercent = activeStep / maxStep\n\n  return {\n    activeStep,\n    setActiveStep,\n    activeStepPercent,\n    isActiveStep(step: number) {\n      return step === activeStep\n    },\n    isCompleteStep(step: number) {\n      return step < activeStep\n    },\n    isIncompleteStep(step: number) {\n      return step > activeStep\n    },\n    getStatus(step: number): StepStatus {\n      if (step < activeStep) return \"complete\"\n      if (step > activeStep) return \"incomplete\"\n      return \"active\"\n    },\n    goToNext() {\n      setActiveStep((step) => {\n        return typeof count === \"number\" ? Math.min(count, step + 1) : step + 1\n      })\n    },\n    goToPrevious() {\n      setActiveStep((step) => Math.max(0, step - 1))\n    },\n  }\n}\n\nexport type UseStepsReturn = ReturnType<typeof useSteps>\n"],"mappings":";;;AAAA,SAAS,gBAAgB;AASlB,SAAS,SAAS,QAAuB,CAAC,GAAG;AAClD,QAAM,EAAE,QAAQ,GAAG,MAAM,IAAI;AAE7B,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,QAAM,UAAU,OAAO,UAAU,WAAW,QAAQ,IAAI;AACxD,QAAM,oBAAoB,aAAa;AAEvC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,MAAc;AACzB,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,eAAe,MAAc;AAC3B,aAAO,OAAO;AAAA,IAChB;AAAA,IACA,iBAAiB,MAAc;AAC7B,aAAO,OAAO;AAAA,IAChB;AAAA,IACA,UAAU,MAA0B;AAClC,UAAI,OAAO;AAAY,eAAO;AAC9B,UAAI,OAAO;AAAY,eAAO;AAC9B,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AACT,oBAAc,CAAC,SAAS;AACtB,eAAO,OAAO,UAAU,WAAW,KAAK,IAAI,OAAO,OAAO,CAAC,IAAI,OAAO;AAAA,MACxE,CAAC;AAAA,IACH;AAAA,IACA,eAAe;AACb,oBAAc,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC;AAAA,IAC/C;AAAA,EACF;AACF;","names":[]}