{"version":3,"file":"StepStatusIcon.cjs","sources":["../../../src/components/Stepper/StepStatusIcon.tsx"],"sourcesContent":["import { type ComponentProps, type FC, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../intl'\nimport { FaCircleCheckIcon, FaCircleXmarkIcon } from '../Icon'\n\nimport type { Step } from './types'\n\nconst classNameGenerator = tv({\n  base: [\n    'shr-rounded-full shr-bg-white shr-shadow-[0_0_0_theme(borderWidth.2)_theme(colors.white)]',\n    'forced-colors:shr-bg-[CanvasText] forced-colors:shr-fill-[Canvas] forced-colors:shr-shadow-[0_0_0_theme(borderWidth.2)_Canvas]',\n  ],\n  variants: {\n    status: {\n      completed: [\n        'shr-text-main',\n        'forced-colors:shr-bg-[Canvas] forced-colors:shr-fill-[Highlight]',\n      ],\n      closed: ['shr-text-grey', 'forced-colors:shr-bg-[Canvas] forced-colors:shr-fill-[GrayText]'],\n    },\n  },\n})\n\ntype StatusProps = { status?: Step['status'] }\ntype AbstractProps = ComponentProps<typeof FaCircleCheckIcon>\ntype Props = AbstractProps & StatusProps\ntype ActualProps = AbstractProps & Required<StatusProps>\n\nexport const StepStatusIcon: FC<Props> = (props) =>\n  props.status ? <ActualStepStatusIcon {...(props as ActualProps)} /> : null\n\nconst ICON_MAPPER = {\n  completed: {\n    alt: <Localizer id=\"smarthr-ui/StepStatusIcon/completedAlt\" defaultText=\"完了\" />,\n    Component: FaCircleCheckIcon,\n  },\n  closed: {\n    alt: <Localizer id=\"smarthr-ui/StepStatusIcon/closedAlt\" defaultText=\"中断\" />,\n    Component: FaCircleXmarkIcon,\n  },\n}\n\nconst ActualStepStatusIcon: FC<ActualProps> = ({ status, className, ...rest }) => {\n  const actualStatus = useMemo(() => {\n    const isObject = typeof status === 'object'\n    const statusType = isObject ? status.type : status\n    const { alt, Component } = ICON_MAPPER[statusType]\n\n    return {\n      type: statusType,\n      text: isObject ? status.text || alt : alt,\n      Component,\n    }\n  }, [status])\n\n  const actualClassName = useMemo(\n    () => classNameGenerator({ status: actualStatus.type, className }),\n    [actualStatus.type, className],\n  )\n  const Component = actualStatus.Component\n\n  return <Component {...rest} alt={actualStatus.text} className={actualClassName} />\n}\n"],"names":["tv","_jsx","Localizer","FaCircleCheckIcon","FaCircleXmarkIcon","useMemo"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,IAAI,EAAE;QACJ,2FAA2F;QAC3F,gIAAgI;AACjI,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE;gBACT,eAAe;gBACf,kEAAkE;AACnE,aAAA;AACD,YAAA,MAAM,EAAE,CAAC,eAAe,EAAE,iEAAiE,CAAC;AAC7F,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAOK,MAAM,cAAc,GAAc,CAAC,KAAK,KAC7C,KAAK,CAAC,MAAM,GAAGC,cAAA,CAAC,oBAAoB,EAAA,EAAA,GAAM,KAAqB,GAAI,GAAG;AAExE,MAAM,WAAW,GAAG;AAClB,IAAA,SAAS,EAAE;QACT,GAAG,EAAEA,cAAA,CAACC,wBAAS,EAAA,EAAC,EAAE,EAAC,wCAAwC,EAAC,WAAW,EAAC,cAAI,EAAA,CAAG;AAC/E,QAAA,SAAS,EAAEC,wCAAiB;AAC7B,KAAA;AACD,IAAA,MAAM,EAAE;QACN,GAAG,EAAEF,cAAA,CAACC,wBAAS,EAAA,EAAC,EAAE,EAAC,qCAAqC,EAAC,WAAW,EAAC,cAAI,EAAA,CAAG;AAC5E,QAAA,SAAS,EAAEE,wCAAiB;AAC7B,KAAA;CACF;AAED,MAAM,oBAAoB,GAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,KAAI;AAC/E,IAAA,MAAM,YAAY,GAAGC,aAAO,CAAC,MAAK;AAChC,QAAA,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ;AAC3C,QAAA,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM;QAClD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC;QAElD,OAAO;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,GAAG,GAAG;YACzC,SAAS;SACV;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,MAAM,eAAe,GAAGA,aAAO,CAC7B,MAAM,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAClE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAC/B;AACD,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS;AAExC,IAAA,OAAOJ,cAAA,CAAC,SAAS,EAAA,EAAA,GAAK,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,GAAI;AACpF,CAAC;;;;"}