{"version":3,"sources":["../src/components/Menu/MenuItem/useMenuItem.ts"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { useMenuItemBase_unstable } from '@fluentui/react-menu';\nimport type { ARIAButtonElement } from '@fluentui/react-aria';\n\nimport type { MenuItemProps, MenuItemState } from './MenuItem.types';\nimport { stringifyDataAttribute } from '../../../utils';\n\n/** Returns the state for a MenuItem; adds `focusgroupstart` so the focusgroup polyfill anchors the initial tab stop on the first item. */\nexport const useMenuItem = (props: MenuItemProps, ref: React.Ref<ARIAButtonElement<'div'>>): MenuItemState => {\n  const state: MenuItemState = useMenuItemBase_unstable(props, ref);\n\n  // eslint-disable-next-line react-hooks/immutability -- attribute is mutated to opt into the focusgroup polyfill.\n  state.root.focusgroupstart = '';\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-disabled'] = stringifyDataAttribute(state.disabled);\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-has-submenu'] = stringifyDataAttribute(state.hasSubmenu);\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-submenu-open'] = stringifyDataAttribute(state.submenuOpen);\n\n  return state;\n};\n"],"names":["useMenuItem","props","ref","state","useMenuItemBase_unstable","root","focusgroupstart","stringifyDataAttribute","disabled","hasSubmenu","submenuOpen"],"mappings":"AAAA;;;;;+BAUaA;;;eAAAA;;;2BAP4B;uBAIF;AAGhC,MAAMA,cAAc,CAACC,OAAsBC;IAChD,MAAMC,QAAuBC,IAAAA,mCAAwB,EAACH,OAAOC;IAE7D,iHAAiH;IACjHC,MAAME,IAAI,CAACC,eAAe,GAAG;IAC7B,oDAAoD;IACpDH,MAAME,IAAI,CAAC,gBAAgB,GAAGE,IAAAA,6BAAsB,EAACJ,MAAMK,QAAQ;IACnE,oDAAoD;IACpDL,MAAME,IAAI,CAAC,mBAAmB,GAAGE,IAAAA,6BAAsB,EAACJ,MAAMM,UAAU;IACxE,oDAAoD;IACpDN,MAAME,IAAI,CAAC,oBAAoB,GAAGE,IAAAA,6BAAsB,EAACJ,MAAMO,WAAW;IAE1E,OAAOP;AACT"}