{"version":3,"sources":["../src/components/AvatarGroup/AvatarGroupPopover/useAvatarGroupPopover.ts"],"sourcesContent":["'use client';\n\nimport { mergeCallbacks, slot, useControllableState } from '@fluentui/react-utilities';\nimport { useAvatarGroupPopoverBase_unstable } from '@fluentui/react-avatar';\nimport type { AvatarGroupPopoverBaseProps } from '@fluentui/react-avatar';\n\nimport { PopoverSurface } from '../../Popover/PopoverSurface/PopoverSurface';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport type { AvatarGroupPopoverProps, AvatarGroupPopoverState } from './AvatarGroupPopover.types';\n\n/**\n * Returns the state for an AvatarGroupPopover component.\n *\n * The design-agnostic base hook from `@fluentui/react-avatar` drives the\n * triggerButton content (the overflow count / indicator) and the overflow\n * list. Open/close behavior is delegated to the headless `Popover` wrapper, so\n * the popover-behavior props are surfaced on `state.popover` rather than wired\n * into a v9 Popover slot.\n */\nexport const useAvatarGroupPopover = (props: AvatarGroupPopoverProps): AvatarGroupPopoverState => {\n  const {\n    open,\n    defaultOpen,\n    onOpenChange,\n    openOnHover,\n    openOnContext,\n    mouseLeaveDelay,\n    positioning,\n    withArrow,\n    trapFocus,\n  } = props;\n\n  const baseState = useAvatarGroupPopoverBase_unstable(props as unknown as AvatarGroupPopoverBaseProps);\n\n  const [popoverOpen, setPopoverOpen] = useControllableState({\n    state: open,\n    defaultState: defaultOpen,\n    initialState: false,\n  });\n\n  const triggerButton = baseState.triggerButton;\n\n  // eslint-disable-next-line eqeqeq\n  if (baseState.layout !== 'pie' && baseState.indicator === 'icon' && triggerButton.children == null) {\n    // eslint-disable-next-line react-hooks/immutability\n    triggerButton.children = '...';\n  }\n\n  const handleOpenChange = mergeCallbacks(onOpenChange, (_event, data) => setPopoverOpen(data.open));\n\n  return {\n    count: baseState.count,\n    indicator: baseState.indicator,\n    layout: baseState.layout,\n    popoverOpen,\n\n    components: {\n      triggerButton: 'button',\n      tooltip: Tooltip,\n      content: 'ul',\n      popoverSurface: PopoverSurface,\n    },\n    triggerButton,\n    tooltip: slot.always(props.tooltip, {\n      defaultProps: baseState.tooltip,\n      elementType: Tooltip,\n    }),\n    content: baseState.content,\n    popoverSurface: slot.always(props.popoverSurface, {\n      defaultProps: { 'aria-label': 'Overflow', tabIndex: 0 },\n      elementType: PopoverSurface,\n    }),\n\n    popover: {\n      open: popoverOpen,\n      onOpenChange: handleOpenChange,\n      openOnHover,\n      openOnContext,\n      mouseLeaveDelay,\n      positioning,\n      withArrow,\n      trapFocus,\n    },\n  };\n};\n"],"names":["useAvatarGroupPopover","props","open","defaultOpen","onOpenChange","openOnHover","openOnContext","mouseLeaveDelay","positioning","withArrow","trapFocus","baseState","useAvatarGroupPopoverBase_unstable","popoverOpen","setPopoverOpen","useControllableState","state","defaultState","initialState","triggerButton","layout","indicator","children","handleOpenChange","mergeCallbacks","_event","data","count","components","tooltip","Tooltip","content","popoverSurface","PopoverSurface","slot","always","defaultProps","elementType","tabIndex","popover"],"mappings":"AAAA;;;;;+BAmBaA;;;eAAAA;;;gCAjB8C;6BACR;gCAGpB;yBACP;AAYjB,MAAMA,wBAAwB,CAACC;IACpC,MAAM,EACJC,IAAI,EACJC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,SAAS,EACTC,SAAS,EACV,GAAGT;IAEJ,MAAMU,YAAYC,IAAAA,+CAAkC,EAACX;IAErD,MAAM,CAACY,aAAaC,eAAe,GAAGC,IAAAA,oCAAoB,EAAC;QACzDC,OAAOd;QACPe,cAAcd;QACde,cAAc;IAChB;IAEA,MAAMC,gBAAgBR,UAAUQ,aAAa;IAE7C,kCAAkC;IAClC,IAAIR,UAAUS,MAAM,KAAK,SAAST,UAAUU,SAAS,KAAK,UAAUF,cAAcG,QAAQ,IAAI,MAAM;QAClG,oDAAoD;QACpDH,cAAcG,QAAQ,GAAG;IAC3B;IAEA,MAAMC,mBAAmBC,IAAAA,8BAAc,EAACpB,cAAc,CAACqB,QAAQC,OAASZ,eAAeY,KAAKxB,IAAI;IAEhG,OAAO;QACLyB,OAAOhB,UAAUgB,KAAK;QACtBN,WAAWV,UAAUU,SAAS;QAC9BD,QAAQT,UAAUS,MAAM;QACxBP;QAEAe,YAAY;YACVT,eAAe;YACfU,SAASC,gBAAO;YAChBC,SAAS;YACTC,gBAAgBC,8BAAc;QAChC;QACAd;QACAU,SAASK,oBAAI,CAACC,MAAM,CAAClC,MAAM4B,OAAO,EAAE;YAClCO,cAAczB,UAAUkB,OAAO;YAC/BQ,aAAaP,gBAAO;QACtB;QACAC,SAASpB,UAAUoB,OAAO;QAC1BC,gBAAgBE,oBAAI,CAACC,MAAM,CAAClC,MAAM+B,cAAc,EAAE;YAChDI,cAAc;gBAAE,cAAc;gBAAYE,UAAU;YAAE;YACtDD,aAAaJ,8BAAc;QAC7B;QAEAM,SAAS;YACPrC,MAAMW;YACNT,cAAcmB;YACdlB;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;IACF;AACF"}