{"version":3,"file":"VerticalStepItem.cjs","sources":["../../../src/components/Stepper/VerticalStepItem.tsx"],"sourcesContent":["import { type FC, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Heading } from '../Heading'\nimport { Section } from '../SectioningContent'\n\nimport { StepCounter } from './StepCounter'\n\nimport type { VerticalStep } from './types'\n\nconst classNameGenerator = tv({\n  slots: {\n    wrapper: 'shr-group/stepItem',\n    section: 'shr-flex shr-gap-1',\n    // StepCounterの中心に揃えるため、0.25remとborder分の1px paddingを追加している\n    headingWrapper: 'shr-flex shr-items-center shr-gap-1 shr-py-[calc(0.25rem_+_1px)]',\n    heading: 'shr-inline-block',\n    body: [\n      // (stepCounter + :after) + (body > inner) という構造\n      'shr-flex shr-grow shr-flex-col',\n      'forced-colors:before:shr-bg-[ButtonBorder]',\n    ],\n    inner: 'shr-grow shr-pb-1.5 shr-pt-0.5',\n    stepCounter: [\n      // stepCounter の after 疑似要素がステップを繋ぐ線\n      'after:shr-relative after:shr-mx-1 after:shr-block after:shr-h-full after:shr-w-[theme(borderWidth.2)] after:shr-bg-border after:shr-content-[\"\"]',\n      // 最後のステップの線を消す\n      'group-last/stepItem:after:shr-bg-transparent',\n    ],\n  },\n  variants: {\n    status: {\n      completed: {\n        stepCounter: ['after:shr-bg-main', 'forced-colors:after:shr-bg-[Highlight]'],\n      },\n      closed: {},\n    },\n    current: {\n      true: {\n        heading: 'shr-font-bold',\n      },\n      false: {},\n    },\n  },\n  compoundVariants: [\n    {\n      status: ['completed', 'closed'],\n      current: false,\n      className: {\n        heading: 'shr-text-grey',\n      },\n    },\n  ],\n})\n\ntype Props = VerticalStep & {\n  /** ステップ数 */\n  stepNumber: number\n  /** 現在地かどうか */\n  current: boolean\n}\n\nexport const VerticalStepItem: FC<Props> = ({ stepNumber, label, status, children, current }) => {\n  const classNames = useMemo(() => {\n    const { wrapper, section, headingWrapper, heading, body, inner, stepCounter } =\n      classNameGenerator({\n        status: typeof status === 'object' ? status.type : status,\n        current,\n      })\n\n    return {\n      wrapper: wrapper(),\n      section: section(),\n      headingWrapper: headingWrapper(),\n      heading: heading(),\n      body: body(),\n      inner: inner(),\n      stepCounter: stepCounter(),\n    }\n  }, [current, status])\n\n  return (\n    <li aria-current={current ? 'step' : undefined} className={classNames.wrapper}>\n      <Section className={classNames.section}>\n        <div className={classNames.stepCounter}>\n          <StepCounter status={status} current={current} stepNumber={stepNumber} />\n        </div>\n        <div className={classNames.body}>\n          <div className={classNames.headingWrapper}>\n            <Heading type=\"sectionTitle\" className={classNames.heading}>\n              {label}\n            </Heading>\n          </div>\n          <div className={classNames.inner}>{children}</div>\n        </div>\n      </Section>\n    </li>\n  )\n}\n"],"names":["tv","useMemo","_jsx","_jsxs","Section","StepCounter","Heading"],"mappings":";;;;;;;;;;;;AAUA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,OAAO,EAAE,oBAAoB;;AAE7B,QAAA,cAAc,EAAE,kEAAkE;AAClF,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,IAAI,EAAE;;YAEJ,gCAAgC;YAChC,4CAA4C;AAC7C,SAAA;AACD,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,WAAW,EAAE;;YAEX,kJAAkJ;;YAElJ,8CAA8C;AAC/C,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE;AACT,gBAAA,WAAW,EAAE,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;AAC7E,aAAA;AACD,YAAA,MAAM,EAAE,EAAE;AACX,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,eAAe;AACzB,aAAA;AACD,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC/B,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,SAAS,EAAE;AACT,gBAAA,OAAO,EAAE,eAAe;AACzB,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AASK,MAAM,gBAAgB,GAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAI;AAC9F,IAAA,MAAM,UAAU,GAAGC,aAAO,CAAC,MAAK;AAC9B,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAC3E,kBAAkB,CAAC;AACjB,YAAA,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM;YACzD,OAAO;AACR,SAAA,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,OAAO,EAAE;YAClB,OAAO,EAAE,OAAO,EAAE;YAClB,cAAc,EAAE,cAAc,EAAE;YAChC,OAAO,EAAE,OAAO,EAAE;YAClB,IAAI,EAAE,IAAI,EAAE;YACZ,KAAK,EAAE,KAAK,EAAE;YACd,WAAW,EAAE,WAAW,EAAE;SAC3B;AACH,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAErB,QACEC,uCAAkB,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAA,QAAA,EAC3EC,eAAA,CAACC,sDAAO,EAAA,EAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAA,QAAA,EAAA,CACpCF,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,WAAW,EAAA,QAAA,EACpCA,eAACG,0CAAW,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAAA,CACrE,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,QAAA,EAAA,CAC7BD,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,cAAc,EAAA,QAAA,EACvCA,eAACI,kCAAO,EAAA,EAAC,IAAI,EAAC,cAAc,EAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAA,QAAA,EACvD,KAAK,EAAA,CACE,EAAA,CACN,EACNJ,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAO,CAAA,EAAA,CAC9C,CAAA,EAAA,CACE,EAAA,CACP;AAET;;;;"}