{"version":3,"sources":["../src/step-status.tsx"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport type { StepContext } from \"./step\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx, runIfFunc } from \"@yamada-ui/utils\"\nimport { useStepContext } from \"./step\"\nimport { useStepperContext } from \"./use-stepper\"\n\nexport type StepStatusProps = {\n  [key in \"active\" | \"complete\" | \"incomplete\"]?:\n    | ((props: Omit<StepContext, \"status\">) => ReactNode)\n    | ReactNode\n}\n\nexport const StepStatus = forwardRef<StepStatusProps, \"div\">(\n  (\n    {\n      className,\n      active = <StepNumber />,\n      complete = <StepIcon />,\n      incomplete = <StepNumber />,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useStepperContext()\n    const { status, ...props } = useStepContext()\n\n    const css: CSSUIObject = { ...styles.status }\n\n    let component: null | ReactNode = null\n\n    switch (status) {\n      case \"complete\":\n        component = runIfFunc(complete, props)\n\n        break\n      case \"incomplete\":\n        component = runIfFunc(incomplete, props)\n\n        break\n      case \"active\":\n        component = runIfFunc(active, props)\n\n        break\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-step__status\", className)}\n        data-status={status}\n        __css={css}\n        {...rest}\n      >\n        {component ? component : null}\n      </ui.div>\n    )\n  },\n)\n\nStepStatus.displayName = \"StepStatus\"\nStepStatus.__ui__ = \"StepStatus\"\n\nexport interface StepNumberProps extends HTMLUIProps {}\n\nexport const StepNumber = forwardRef<StepNumberProps, \"div\">(\n  ({ className, children, ...rest }, ref) => {\n    const { styles } = useStepperContext()\n    const { index, status } = useStepContext()\n\n    const css: CSSUIObject = { ...styles.number }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-step__number\", className)}\n        data-status={status}\n        __css={css}\n        {...rest}\n      >\n        {children || index + 1}\n      </ui.div>\n    )\n  },\n)\n\nStepNumber.displayName = \"StepNumber\"\nStepNumber.__ui__ = \"StepNumber\"\n\nexport interface StepIconProps extends IconProps {}\n\nexport const StepIcon = forwardRef<StepIconProps, \"svg\">(\n  ({ className, ...rest }, ref) => {\n    const { styles } = useStepperContext()\n    const { status } = useStepContext()\n\n    const as = status === \"complete\" ? CheckIcon : undefined\n\n    const css: CSSUIObject = { ...styles.icon }\n\n    return (\n      <Icon\n        ref={ref}\n        as={as}\n        className={cx(\"ui-step__icon\", className)}\n        data-status={status}\n        __css={css}\n        {...rest}\n      />\n    )\n  },\n)\n\nStepIcon.displayName = \"StepIcon\"\nStepIcon.__ui__ = \"StepIcon\"\n\nconst CheckIcon = (props: ComponentProps<\"svg\">) => {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      fill=\"currentColor\"\n      height=\"1em\"\n      stroke=\"currentColor\"\n      strokeWidth=\"0\"\n      viewBox=\"0 0 20 20\"\n      width=\"1em\"\n      {...props}\n    >\n      <path\n        clipRule=\"evenodd\"\n        d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n        fillRule=\"evenodd\"\n      />\n    </svg>\n  )\n}\n"],"mappings":";;;;;;;;;AAIA,SAAS,YAAY,UAAU;AAC/B,SAAS,YAAY;AACrB,SAAS,IAAI,iBAAiB;AAcf;AAJR,IAAM,aAAa;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,SAAS,oBAAC,cAAW;AAAA,IACrB,WAAW,oBAAC,YAAS;AAAA,IACrB,aAAa,oBAAC,cAAW;AAAA,IACzB,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,OAAO,IAAI,kBAAkB;AACrC,UAAM,EAAE,QAAQ,GAAG,MAAM,IAAI,eAAe;AAE5C,UAAM,MAAmB,EAAE,GAAG,OAAO,OAAO;AAE5C,QAAI,YAA8B;AAElC,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,oBAAY,UAAU,UAAU,KAAK;AAErC;AAAA,MACF,KAAK;AACH,oBAAY,UAAU,YAAY,KAAK;AAEvC;AAAA,MACF,KAAK;AACH,oBAAY,UAAU,QAAQ,KAAK;AAEnC;AAAA,IACJ;AAEA,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,mBAAmB,SAAS;AAAA,QAC1C,eAAa;AAAA,QACb,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,sBAAY,YAAY;AAAA;AAAA,IAC3B;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AACzB,WAAW,SAAS;AAIb,IAAM,aAAa;AAAA,EACxB,CAAC,EAAE,WAAW,UAAU,GAAG,KAAK,GAAG,QAAQ;AACzC,UAAM,EAAE,OAAO,IAAI,kBAAkB;AACrC,UAAM,EAAE,OAAO,OAAO,IAAI,eAAe;AAEzC,UAAM,MAAmB,EAAE,GAAG,OAAO,OAAO;AAE5C,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,mBAAmB,SAAS;AAAA,QAC1C,eAAa;AAAA,QACb,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,sBAAY,QAAQ;AAAA;AAAA,IACvB;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AACzB,WAAW,SAAS;AAIb,IAAM,WAAW;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ;AAC/B,UAAM,EAAE,OAAO,IAAI,kBAAkB;AACrC,UAAM,EAAE,OAAO,IAAI,eAAe;AAElC,UAAM,KAAK,WAAW,aAAa,YAAY;AAE/C,UAAM,MAAmB,EAAE,GAAG,OAAO,KAAK;AAE1C,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW,GAAG,iBAAiB,SAAS;AAAA,QACxC,eAAa;AAAA,QACb,OAAO;AAAA,QACN,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;AACvB,SAAS,SAAS;AAElB,IAAM,YAAY,CAAC,UAAiC;AAClD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,QAAO;AAAA,MACP,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,OAAM;AAAA,MACL,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,GAAE;AAAA,UACF,UAAS;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}