{"version":3,"file":"AppNaviDropdownMenuButton.cjs","sources":["../../../src/components/AppNavi/AppNaviDropdownMenuButton.tsx"],"sourcesContent":["import {\n  Children,\n  type FC,\n  Fragment,\n  type PropsWithChildren,\n  type ReactElement,\n  type ReactNode,\n  cloneElement,\n  isValidElement,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { DropdownMenuButton, DropdownMenuGroup } from '../Dropdown'\n\ntype Props = PropsWithChildren<{\n  /** 引き金となるボタンラベル */\n  label: ReactNode\n  onOpen?: () => void\n  onClose?: () => void\n}>\n\nconst classNameGenerator = tv({\n  slots: {\n    trigger: [\n      'smarthr-ui-AppNavi-dropdownMenuButton',\n      [\n        '[&_.smarthr-ui-DropdownMenuButton-trigger]:shr-border-none',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger]:shr-px-0.5',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger]:shr-text-grey',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger]:shr-rounded-none',\n      ],\n      [\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:shr-relative',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:shr-text-black',\n      ],\n      [\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-content-[\"\"]',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-absolute',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-bottom-0',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-inset-x-0',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-h-0.25',\n        '[&_.smarthr-ui-DropdownMenuButton-trigger:has([aria-current])]:after:shr-bg-main',\n      ],\n    ],\n    actionItem: [\n      // HINT: DropdownMenuButton内で設定されるclassNameより優先度を上げる必要がある\n      '[&&]:aria-current-page:shr-bg-grey-9 [&&]:aria-current-page:shr-font-bold',\n      '[&&]:hover:shr-bg-head-darken',\n    ],\n  },\n})\nconst { trigger, actionItem } = classNameGenerator()\n\nconst renderItemList = (children: ReactNode) =>\n  Children.map(children, (item): ReactNode => {\n    if (!isValidElement(item)) {\n      return null\n    }\n\n    if (item.type === Fragment) {\n      return renderItemList(item.props.children)\n    }\n\n    if (item.type === DropdownMenuGroup) {\n      return (\n        <DropdownMenuGroup {...item.props}>{renderItemList(item.props.children)}</DropdownMenuGroup>\n      )\n    }\n\n    return cloneElement(item as ReactElement, {\n      className: actionItem({ className: item.props.className }),\n    })\n  })\n\nexport const AppNaviDropdownMenuButton: FC<Props> = ({ label, onOpen, onClose, children }) => (\n  <DropdownMenuButton\n    trigger={\n      <>\n        {label}\n        {/* has([aria-current=\"page\"]) を書くために複製 */}\n        <span hidden>{children}</span>\n      </>\n    }\n    onOpen={onOpen}\n    onClose={onClose}\n    className={trigger()}\n  >\n    {renderItemList(children)}\n  </DropdownMenuButton>\n)\n"],"names":["tv","Children","isValidElement","Fragment","DropdownMenuGroup","_jsx","cloneElement","DropdownMenuButton","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE;YACP,uCAAuC;AACvC,YAAA;gBACE,4DAA4D;gBAC5D,uDAAuD;gBACvD,0DAA0D;gBAC1D,6DAA6D;AAC9D,aAAA;AACD,YAAA;gBACE,6EAA6E;gBAC7E,+EAA+E;AAChF,aAAA;AACD,YAAA;gBACE,uFAAuF;gBACvF,mFAAmF;gBACnF,mFAAmF;gBACnF,oFAAoF;gBACpF,iFAAiF;gBACjF,kFAAkF;AACnF,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE;;YAEV,2EAA2E;YAC3E,+BAA+B;AAChC,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AACF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE;AAEpD,MAAM,cAAc,GAAG,CAAC,QAAmB,KACzCC,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,KAAe;AACzC,IAAA,IAAI,CAACC,oBAAc,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,IAAI,CAAC,IAAI,KAAKC,cAAQ,EAAE;QAC1B,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5C;AAEA,IAAA,IAAI,IAAI,CAAC,IAAI,KAAKC,0EAAiB,EAAE;AACnC,QAAA,QACEC,cAAA,CAACD,0EAAiB,OAAK,IAAI,CAAC,KAAK,EAAA,QAAA,EAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAA,CAAqB;IAEhG;IAEA,OAAOE,kBAAY,CAAC,IAAoB,EAAE;AACxC,QAAA,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AAC3D,KAAA,CAAC;AACJ,CAAC,CAAC;AAEG,MAAM,yBAAyB,GAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MACvFD,cAAA,CAACE,4EAAkB,EAAA,EACjB,OAAO,EACLC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,KAAK,EAENJ,yBAAM,MAAM,EAAA,IAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAC7B,EAEL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,OAAO,EAAE,EAAA,QAAA,EAEnB,cAAc,CAAC,QAAQ,CAAC,EAAA,CACN;;;;"}