@fluentui/react-popover 9.9.5 → 9.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        package/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,12 +1,40 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log - @fluentui/react-popover
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            This log was last generated on  
     | 
| 
      
 3 
     | 
    
         
            +
            This log was last generated on Mon, 06 May 2024 12:48:54 GMT and should not be manually modified.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            <!-- Start content -->
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
            ## [9.9.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-popover_v9.9.7)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Mon, 06 May 2024 12:48:54 GMT 
         
     | 
| 
      
 10 
     | 
    
         
            +
            [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-popover_v9.9.6..@fluentui/react-popover_v9.9.7)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ### Patches
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            - Bump @fluentui/react-aria to v9.11.1 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 15 
     | 
    
         
            +
            - Bump @fluentui/react-context-selector to v9.1.59 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 16 
     | 
    
         
            +
            - Bump @fluentui/react-portal to v9.4.23 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 17 
     | 
    
         
            +
            - Bump @fluentui/react-positioning to v9.14.5 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 18 
     | 
    
         
            +
            - Bump @fluentui/react-shared-contexts to v9.18.0 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 19 
     | 
    
         
            +
            - Bump @fluentui/react-tabster to v9.21.1 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 20 
     | 
    
         
            +
            - Bump @fluentui/react-utilities to v9.18.8 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 21 
     | 
    
         
            +
            - Bump @fluentui/react-jsx-runtime to v9.0.37 ([PR #31271](https://github.com/microsoft/fluentui/pull/31271) by beachball)
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            ## [9.9.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-popover_v9.9.6)
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Thu, 02 May 2024 11:36:36 GMT 
         
     | 
| 
      
 26 
     | 
    
         
            +
            [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-popover_v9.9.5..@fluentui/react-popover_v9.9.6)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            ### Patches
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            - refactor: use timeout and animation frame utilities ([PR #31168](https://github.com/microsoft/fluentui/pull/31168) by lingfangao@hotmail.com)
         
     | 
| 
      
 31 
     | 
    
         
            +
            - Bump @fluentui/react-aria to v9.11.0 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
         
     | 
| 
      
 32 
     | 
    
         
            +
            - Bump @fluentui/react-portal to v9.4.22 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
         
     | 
| 
      
 33 
     | 
    
         
            +
            - Bump @fluentui/react-tabster to v9.21.0 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       7 
35 
     | 
    
         
             
            ## [9.9.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-popover_v9.9.5)
         
     | 
| 
       8 
36 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            Tue, 23 Apr 2024 08: 
     | 
| 
      
 37 
     | 
    
         
            +
            Tue, 23 Apr 2024 08:17:49 GMT 
         
     | 
| 
       10 
38 
     | 
    
         
             
            [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-popover_v9.9.4..@fluentui/react-popover_v9.9.5)
         
     | 
| 
       11 
39 
     | 
    
         | 
| 
       12 
40 
     | 
    
         
             
            ### Patches
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import * as React from 'react';
         
     | 
| 
       2 
     | 
    
         
            -
            import { useControllableState, useEventCallback, useOnClickOutside, useOnScrollOutside, elementContains } from '@fluentui/react-utilities';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { useControllableState, useEventCallback, useOnClickOutside, useOnScrollOutside, elementContains, useTimeout } from '@fluentui/react-utilities';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { usePositioning, resolvePositioningShorthand, mergeArrowOffset, usePositioningMouseTarget } from '@fluentui/react-positioning';
         
     | 
| 
       5 
5 
     | 
    
         
             
            import { useFocusFinders } from '@fluentui/react-tabster';
         
     | 
| 
         @@ -40,9 +40,9 @@ import { popoverSurfaceBorderRadius } from './constants'; 
     | 
|
| 
       40 
40 
     | 
    
         
             
                    popoverSurface = children[0];
         
     | 
| 
       41 
41 
     | 
    
         
             
                }
         
     | 
| 
       42 
42 
     | 
    
         
             
                const [open, setOpenState] = useOpenState(initialState);
         
     | 
| 
       43 
     | 
    
         
            -
                const  
     | 
| 
      
 43 
     | 
    
         
            +
                const [setOpenTimeout, clearOpenTimeout] = useTimeout();
         
     | 
| 
       44 
44 
     | 
    
         
             
                const setOpen = useEventCallback((e, shouldOpen)=>{
         
     | 
| 
       45 
     | 
    
         
            -
                     
     | 
| 
      
 45 
     | 
    
         
            +
                    clearOpenTimeout();
         
     | 
| 
       46 
46 
     | 
    
         
             
                    if (!(e instanceof Event) && e.persist) {
         
     | 
| 
       47 
47 
     | 
    
         
             
                        // < React 17 still uses pooled synthetic events
         
     | 
| 
       48 
48 
     | 
    
         
             
                        e.persist();
         
     | 
| 
         @@ -52,20 +52,13 @@ import { popoverSurfaceBorderRadius } from './constants'; 
     | 
|
| 
       52 
52 
     | 
    
         
             
                        // FIXME leaking Node timeout type
         
     | 
| 
       53 
53 
     | 
    
         
             
                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment
         
     | 
| 
       54 
54 
     | 
    
         
             
                        // @ts-ignore
         
     | 
| 
       55 
     | 
    
         
            -
                         
     | 
| 
      
 55 
     | 
    
         
            +
                        setOpenTimeout(()=>{
         
     | 
| 
       56 
56 
     | 
    
         
             
                            setOpenState(e, shouldOpen);
         
     | 
| 
       57 
57 
     | 
    
         
             
                        }, (_props_mouseLeaveDelay = props.mouseLeaveDelay) !== null && _props_mouseLeaveDelay !== void 0 ? _props_mouseLeaveDelay : 500);
         
     | 
| 
       58 
58 
     | 
    
         
             
                    } else {
         
     | 
| 
       59 
59 
     | 
    
         
             
                        setOpenState(e, shouldOpen);
         
     | 
| 
       60 
60 
     | 
    
         
             
                    }
         
     | 
| 
       61 
61 
     | 
    
         
             
                });
         
     | 
| 
       62 
     | 
    
         
            -
                // Clear timeout on unmount
         
     | 
| 
       63 
     | 
    
         
            -
                // Setting state after a component unmounts can cause memory leaks
         
     | 
| 
       64 
     | 
    
         
            -
                React.useEffect(()=>{
         
     | 
| 
       65 
     | 
    
         
            -
                    return ()=>{
         
     | 
| 
       66 
     | 
    
         
            -
                        clearTimeout(setOpenTimeoutRef.current);
         
     | 
| 
       67 
     | 
    
         
            -
                    };
         
     | 
| 
       68 
     | 
    
         
            -
                }, []);
         
     | 
| 
       69 
62 
     | 
    
         
             
                const toggleOpen = React.useCallback((e)=>{
         
     | 
| 
       70 
63 
     | 
    
         
             
                    setOpen(e, !open);
         
     | 
| 
       71 
64 
     | 
    
         
             
                }, [
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["usePopover.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n  useControllableState,\n  useEventCallback,\n  useOnClickOutside,\n  useOnScrollOutside,\n  elementContains,\n} from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n  usePositioning,\n  resolvePositioningShorthand,\n  mergeArrowOffset,\n  usePositioningMouseTarget,\n} from '@fluentui/react-positioning';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { arrowHeights } from '../PopoverSurface/index';\nimport type { OpenPopoverEvents, PopoverProps, PopoverState } from './Popover.types';\nimport { popoverSurfaceBorderRadius } from './constants';\n\n/**\n * Create the state required to render Popover.\n *\n * The returned state can be modified with hooks such as usePopoverStyles,\n * before being passed to renderPopover_unstable.\n *\n * @param props - props from this instance of Popover\n */\nexport const usePopover_unstable = (props: PopoverProps): PopoverState => {\n  const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n  const initialState = {\n    size: 'medium',\n    contextTarget,\n    setContextTarget,\n    ...props,\n  } as const;\n\n  const children = React.Children.toArray(props.children) as React.ReactElement[];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (children.length === 0) {\n      // eslint-disable-next-line no-console\n      console.warn('Popover must contain at least one child');\n    }\n\n    if (children.length > 2) {\n      // eslint-disable-next-line no-console\n      console.warn('Popover must contain at most two children');\n    }\n  }\n\n  let popoverTrigger: React.ReactElement | undefined = undefined;\n  let popoverSurface: React.ReactElement | undefined = undefined;\n  if (children.length === 2) {\n    popoverTrigger = children[0];\n    popoverSurface = children[1];\n  } else if (children.length === 1) {\n    popoverSurface = children[0];\n  }\n\n  const [open, setOpenState] = useOpenState(initialState);\n\n  const setOpenTimeoutRef = React.useRef(0);\n\n  const setOpen = useEventCallback((e: OpenPopoverEvents, shouldOpen: boolean) => {\n    clearTimeout(setOpenTimeoutRef.current);\n    if (!(e instanceof Event) && e.persist) {\n      // < React 17 still uses pooled synthetic events\n      e.persist();\n    }\n\n    if (e.type === 'mouseleave') {\n      // FIXME leaking Node timeout type\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      setOpenTimeoutRef.current = setTimeout(() => {\n        setOpenState(e, shouldOpen);\n      }, props.mouseLeaveDelay ?? 500);\n    } else {\n      setOpenState(e, shouldOpen);\n    }\n  });\n\n  // Clear timeout on unmount\n  // Setting state after a component unmounts can cause memory leaks\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(setOpenTimeoutRef.current);\n    };\n  }, []);\n\n  const toggleOpen = React.useCallback<PopoverState['toggleOpen']>(\n    e => {\n      setOpen(e, !open);\n    },\n    [setOpen, open],\n  );\n\n  const positioningRefs = usePopoverRefs(initialState);\n  const { targetDocument } = useFluent();\n\n  useOnClickOutside({\n    contains: elementContains,\n    element: targetDocument,\n    callback: ev => setOpen(ev, false),\n    refs: [positioningRefs.triggerRef, positioningRefs.contentRef],\n    disabled: !open,\n    disabledFocusOnIframe: !(props.closeOnIframeFocus ?? true),\n  });\n\n  // only close on scroll for context, or when closeOnScroll is specified\n  const closeOnScroll = initialState.openOnContext || initialState.closeOnScroll;\n  useOnScrollOutside({\n    contains: elementContains,\n    element: targetDocument,\n    callback: ev => setOpen(ev, false),\n    refs: [positioningRefs.triggerRef, positioningRefs.contentRef],\n    disabled: !open || !closeOnScroll,\n  });\n\n  const { findFirstFocusable } = useFocusFinders();\n\n  React.useEffect(() => {\n    if (props.unstable_disableAutoFocus) {\n      return;\n    }\n\n    if (open && positioningRefs.contentRef.current) {\n      const containerTabIndex = positioningRefs.contentRef.current.getAttribute('tabIndex') ?? undefined;\n      const firstFocusable = isNaN(containerTabIndex)\n        ? findFirstFocusable(positioningRefs.contentRef.current)\n        : positioningRefs.contentRef.current;\n      firstFocusable?.focus();\n    }\n  }, [findFirstFocusable, open, positioningRefs.contentRef, props.unstable_disableAutoFocus]);\n\n  return {\n    ...initialState,\n    ...positioningRefs,\n    // eslint-disable-next-line deprecation/deprecation\n    inertTrapFocus: props.inertTrapFocus ?? (props.legacyTrapFocus === undefined ? false : !props.legacyTrapFocus),\n    popoverTrigger,\n    popoverSurface,\n    open,\n    setOpen,\n    toggleOpen,\n    setContextTarget,\n    contextTarget,\n    inline: props.inline ?? false,\n  };\n};\n\n/**\n * Creates and manages the Popover open state\n */\nfunction useOpenState(\n  state: Pick<PopoverState, 'setContextTarget' | 'onOpenChange'> & Pick<PopoverProps, 'open' | 'defaultOpen'>,\n) {\n  const onOpenChange: PopoverState['onOpenChange'] = useEventCallback((e, data) => state.onOpenChange?.(e, data));\n\n  const [open, setOpenState] = useControllableState({\n    state: state.open,\n    defaultState: state.defaultOpen,\n    initialState: false,\n  });\n  state.open = open !== undefined ? open : state.open;\n  const setContextTarget = state.setContextTarget;\n\n  const setOpen = React.useCallback(\n    (e: OpenPopoverEvents, shouldOpen: boolean) => {\n      if (shouldOpen && e.type === 'contextmenu') {\n        setContextTarget(e as React.MouseEvent);\n      }\n\n      if (!shouldOpen) {\n        setContextTarget(undefined);\n      }\n\n      setOpenState(shouldOpen);\n      onOpenChange?.(e, { open: shouldOpen });\n    },\n    [setOpenState, onOpenChange, setContextTarget],\n  );\n\n  return [open, setOpen] as const;\n}\n\n/**\n * Creates and sets the necessary trigger, target and content refs used by Popover\n */\nfunction usePopoverRefs(\n  state: Pick<PopoverState, 'size' | 'contextTarget'> &\n    Pick<PopoverProps, 'positioning' | 'openOnContext' | 'withArrow'>,\n) {\n  const positioningOptions = {\n    position: 'above' as const,\n    align: 'center' as const,\n    arrowPadding: 2 * popoverSurfaceBorderRadius,\n    target: state.openOnContext ? state.contextTarget : undefined,\n    ...resolvePositioningShorthand(state.positioning),\n  };\n\n  // no reason to render arrow when covering the target\n  if (positioningOptions.coverTarget) {\n    state.withArrow = false;\n  }\n\n  if (state.withArrow) {\n    positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeights[state.size]);\n  }\n\n  const { targetRef: triggerRef, containerRef: contentRef, arrowRef } = usePositioning(positioningOptions);\n\n  return {\n    triggerRef,\n    contentRef,\n    arrowRef,\n  } as const;\n}\n"],"names":["React","useControllableState","useEventCallback","useOnClickOutside","useOnScrollOutside","elementContains","useFluent_unstable","useFluent","usePositioning","resolvePositioningShorthand","mergeArrowOffset","usePositioningMouseTarget","useFocusFinders","arrowHeights","popoverSurfaceBorderRadius","usePopover_unstable","props","contextTarget","setContextTarget","initialState","size","children","Children","toArray","process","env","NODE_ENV","length","console","warn","popoverTrigger","undefined","popoverSurface","open","setOpenState","useOpenState","setOpenTimeoutRef","useRef","setOpen","e","shouldOpen","clearTimeout","current","Event","persist","type","setTimeout","mouseLeaveDelay","useEffect","toggleOpen","useCallback","positioningRefs","usePopoverRefs","targetDocument","contains","element","callback","ev","refs","triggerRef","contentRef","disabled","disabledFocusOnIframe","closeOnIframeFocus","closeOnScroll","openOnContext","findFirstFocusable","unstable_disableAutoFocus","containerTabIndex","getAttribute","firstFocusable","isNaN","focus","inertTrapFocus","legacyTrapFocus","inline","state","onOpenChange","data","defaultState","defaultOpen","positioningOptions","position","align","arrowPadding","target","positioning","coverTarget","withArrow","offset","targetRef","containerRef","arrowRef"],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["usePopover.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n  useControllableState,\n  useEventCallback,\n  useOnClickOutside,\n  useOnScrollOutside,\n  elementContains,\n  useTimeout,\n} from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n  usePositioning,\n  resolvePositioningShorthand,\n  mergeArrowOffset,\n  usePositioningMouseTarget,\n} from '@fluentui/react-positioning';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { arrowHeights } from '../PopoverSurface/index';\nimport type { OpenPopoverEvents, PopoverProps, PopoverState } from './Popover.types';\nimport { popoverSurfaceBorderRadius } from './constants';\n\n/**\n * Create the state required to render Popover.\n *\n * The returned state can be modified with hooks such as usePopoverStyles,\n * before being passed to renderPopover_unstable.\n *\n * @param props - props from this instance of Popover\n */\nexport const usePopover_unstable = (props: PopoverProps): PopoverState => {\n  const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n  const initialState = {\n    size: 'medium',\n    contextTarget,\n    setContextTarget,\n    ...props,\n  } as const;\n\n  const children = React.Children.toArray(props.children) as React.ReactElement[];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (children.length === 0) {\n      // eslint-disable-next-line no-console\n      console.warn('Popover must contain at least one child');\n    }\n\n    if (children.length > 2) {\n      // eslint-disable-next-line no-console\n      console.warn('Popover must contain at most two children');\n    }\n  }\n\n  let popoverTrigger: React.ReactElement | undefined = undefined;\n  let popoverSurface: React.ReactElement | undefined = undefined;\n  if (children.length === 2) {\n    popoverTrigger = children[0];\n    popoverSurface = children[1];\n  } else if (children.length === 1) {\n    popoverSurface = children[0];\n  }\n\n  const [open, setOpenState] = useOpenState(initialState);\n\n  const [setOpenTimeout, clearOpenTimeout] = useTimeout();\n  const setOpen = useEventCallback((e: OpenPopoverEvents, shouldOpen: boolean) => {\n    clearOpenTimeout();\n    if (!(e instanceof Event) && e.persist) {\n      // < React 17 still uses pooled synthetic events\n      e.persist();\n    }\n\n    if (e.type === 'mouseleave') {\n      // FIXME leaking Node timeout type\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      setOpenTimeout(() => {\n        setOpenState(e, shouldOpen);\n      }, props.mouseLeaveDelay ?? 500);\n    } else {\n      setOpenState(e, shouldOpen);\n    }\n  });\n\n  const toggleOpen = React.useCallback<PopoverState['toggleOpen']>(\n    e => {\n      setOpen(e, !open);\n    },\n    [setOpen, open],\n  );\n\n  const positioningRefs = usePopoverRefs(initialState);\n  const { targetDocument } = useFluent();\n\n  useOnClickOutside({\n    contains: elementContains,\n    element: targetDocument,\n    callback: ev => setOpen(ev, false),\n    refs: [positioningRefs.triggerRef, positioningRefs.contentRef],\n    disabled: !open,\n    disabledFocusOnIframe: !(props.closeOnIframeFocus ?? true),\n  });\n\n  // only close on scroll for context, or when closeOnScroll is specified\n  const closeOnScroll = initialState.openOnContext || initialState.closeOnScroll;\n  useOnScrollOutside({\n    contains: elementContains,\n    element: targetDocument,\n    callback: ev => setOpen(ev, false),\n    refs: [positioningRefs.triggerRef, positioningRefs.contentRef],\n    disabled: !open || !closeOnScroll,\n  });\n\n  const { findFirstFocusable } = useFocusFinders();\n\n  React.useEffect(() => {\n    if (props.unstable_disableAutoFocus) {\n      return;\n    }\n\n    if (open && positioningRefs.contentRef.current) {\n      const containerTabIndex = positioningRefs.contentRef.current.getAttribute('tabIndex') ?? undefined;\n      const firstFocusable = isNaN(containerTabIndex)\n        ? findFirstFocusable(positioningRefs.contentRef.current)\n        : positioningRefs.contentRef.current;\n      firstFocusable?.focus();\n    }\n  }, [findFirstFocusable, open, positioningRefs.contentRef, props.unstable_disableAutoFocus]);\n\n  return {\n    ...initialState,\n    ...positioningRefs,\n    // eslint-disable-next-line deprecation/deprecation\n    inertTrapFocus: props.inertTrapFocus ?? (props.legacyTrapFocus === undefined ? false : !props.legacyTrapFocus),\n    popoverTrigger,\n    popoverSurface,\n    open,\n    setOpen,\n    toggleOpen,\n    setContextTarget,\n    contextTarget,\n    inline: props.inline ?? false,\n  };\n};\n\n/**\n * Creates and manages the Popover open state\n */\nfunction useOpenState(\n  state: Pick<PopoverState, 'setContextTarget' | 'onOpenChange'> & Pick<PopoverProps, 'open' | 'defaultOpen'>,\n) {\n  const onOpenChange: PopoverState['onOpenChange'] = useEventCallback((e, data) => state.onOpenChange?.(e, data));\n\n  const [open, setOpenState] = useControllableState({\n    state: state.open,\n    defaultState: state.defaultOpen,\n    initialState: false,\n  });\n  state.open = open !== undefined ? open : state.open;\n  const setContextTarget = state.setContextTarget;\n\n  const setOpen = React.useCallback(\n    (e: OpenPopoverEvents, shouldOpen: boolean) => {\n      if (shouldOpen && e.type === 'contextmenu') {\n        setContextTarget(e as React.MouseEvent);\n      }\n\n      if (!shouldOpen) {\n        setContextTarget(undefined);\n      }\n\n      setOpenState(shouldOpen);\n      onOpenChange?.(e, { open: shouldOpen });\n    },\n    [setOpenState, onOpenChange, setContextTarget],\n  );\n\n  return [open, setOpen] as const;\n}\n\n/**\n * Creates and sets the necessary trigger, target and content refs used by Popover\n */\nfunction usePopoverRefs(\n  state: Pick<PopoverState, 'size' | 'contextTarget'> &\n    Pick<PopoverProps, 'positioning' | 'openOnContext' | 'withArrow'>,\n) {\n  const positioningOptions = {\n    position: 'above' as const,\n    align: 'center' as const,\n    arrowPadding: 2 * popoverSurfaceBorderRadius,\n    target: state.openOnContext ? state.contextTarget : undefined,\n    ...resolvePositioningShorthand(state.positioning),\n  };\n\n  // no reason to render arrow when covering the target\n  if (positioningOptions.coverTarget) {\n    state.withArrow = false;\n  }\n\n  if (state.withArrow) {\n    positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeights[state.size]);\n  }\n\n  const { targetRef: triggerRef, containerRef: contentRef, arrowRef } = usePositioning(positioningOptions);\n\n  return {\n    triggerRef,\n    contentRef,\n    arrowRef,\n  } as const;\n}\n"],"names":["React","useControllableState","useEventCallback","useOnClickOutside","useOnScrollOutside","elementContains","useTimeout","useFluent_unstable","useFluent","usePositioning","resolvePositioningShorthand","mergeArrowOffset","usePositioningMouseTarget","useFocusFinders","arrowHeights","popoverSurfaceBorderRadius","usePopover_unstable","props","contextTarget","setContextTarget","initialState","size","children","Children","toArray","process","env","NODE_ENV","length","console","warn","popoverTrigger","undefined","popoverSurface","open","setOpenState","useOpenState","setOpenTimeout","clearOpenTimeout","setOpen","e","shouldOpen","Event","persist","type","mouseLeaveDelay","toggleOpen","useCallback","positioningRefs","usePopoverRefs","targetDocument","contains","element","callback","ev","refs","triggerRef","contentRef","disabled","disabledFocusOnIframe","closeOnIframeFocus","closeOnScroll","openOnContext","findFirstFocusable","useEffect","unstable_disableAutoFocus","current","containerTabIndex","getAttribute","firstFocusable","isNaN","focus","inertTrapFocus","legacyTrapFocus","inline","state","onOpenChange","data","defaultState","defaultOpen","positioningOptions","position","align","arrowPadding","target","positioning","coverTarget","withArrow","offset","targetRef","containerRef","arrowRef"],"mappings":"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"}
         
     | 
| 
         @@ -44,9 +44,9 @@ const usePopover_unstable = (props)=>{ 
     | 
|
| 
       44 
44 
     | 
    
         
             
                    popoverSurface = children[0];
         
     | 
| 
       45 
45 
     | 
    
         
             
                }
         
     | 
| 
       46 
46 
     | 
    
         
             
                const [open, setOpenState] = useOpenState(initialState);
         
     | 
| 
       47 
     | 
    
         
            -
                const  
     | 
| 
      
 47 
     | 
    
         
            +
                const [setOpenTimeout, clearOpenTimeout] = (0, _reactutilities.useTimeout)();
         
     | 
| 
       48 
48 
     | 
    
         
             
                const setOpen = (0, _reactutilities.useEventCallback)((e, shouldOpen)=>{
         
     | 
| 
       49 
     | 
    
         
            -
                     
     | 
| 
      
 49 
     | 
    
         
            +
                    clearOpenTimeout();
         
     | 
| 
       50 
50 
     | 
    
         
             
                    if (!(e instanceof Event) && e.persist) {
         
     | 
| 
       51 
51 
     | 
    
         
             
                        // < React 17 still uses pooled synthetic events
         
     | 
| 
       52 
52 
     | 
    
         
             
                        e.persist();
         
     | 
| 
         @@ -56,20 +56,13 @@ const usePopover_unstable = (props)=>{ 
     | 
|
| 
       56 
56 
     | 
    
         
             
                        // FIXME leaking Node timeout type
         
     | 
| 
       57 
57 
     | 
    
         
             
                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment
         
     | 
| 
       58 
58 
     | 
    
         
             
                        // @ts-ignore
         
     | 
| 
       59 
     | 
    
         
            -
                         
     | 
| 
      
 59 
     | 
    
         
            +
                        setOpenTimeout(()=>{
         
     | 
| 
       60 
60 
     | 
    
         
             
                            setOpenState(e, shouldOpen);
         
     | 
| 
       61 
61 
     | 
    
         
             
                        }, (_props_mouseLeaveDelay = props.mouseLeaveDelay) !== null && _props_mouseLeaveDelay !== void 0 ? _props_mouseLeaveDelay : 500);
         
     | 
| 
       62 
62 
     | 
    
         
             
                    } else {
         
     | 
| 
       63 
63 
     | 
    
         
             
                        setOpenState(e, shouldOpen);
         
     | 
| 
       64 
64 
     | 
    
         
             
                    }
         
     | 
| 
       65 
65 
     | 
    
         
             
                });
         
     | 
| 
       66 
     | 
    
         
            -
                // Clear timeout on unmount
         
     | 
| 
       67 
     | 
    
         
            -
                // Setting state after a component unmounts can cause memory leaks
         
     | 
| 
       68 
     | 
    
         
            -
                _react.useEffect(()=>{
         
     | 
| 
       69 
     | 
    
         
            -
                    return ()=>{
         
     | 
| 
       70 
     | 
    
         
            -
                        clearTimeout(setOpenTimeoutRef.current);
         
     | 
| 
       71 
     | 
    
         
            -
                    };
         
     | 
| 
       72 
     | 
    
         
            -
                }, []);
         
     | 
| 
       73 
66 
     | 
    
         
             
                const toggleOpen = _react.useCallback((e)=>{
         
     | 
| 
       74 
67 
     | 
    
         
             
                    setOpen(e, !open);
         
     | 
| 
       75 
68 
     | 
    
         
             
                }, [
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["usePopover.js"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useEventCallback, useOnClickOutside, useOnScrollOutside, elementContains } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { usePositioning, resolvePositioningShorthand, mergeArrowOffset, usePositioningMouseTarget } from '@fluentui/react-positioning';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { arrowHeights } from '../PopoverSurface/index';\nimport { popoverSurfaceBorderRadius } from './constants';\n/**\n * Create the state required to render Popover.\n *\n * The returned state can be modified with hooks such as usePopoverStyles,\n * before being passed to renderPopover_unstable.\n *\n * @param props - props from this instance of Popover\n */ export const usePopover_unstable = (props)=>{\n    const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n    const initialState = {\n        size: 'medium',\n        contextTarget,\n        setContextTarget,\n        ...props\n    };\n    const children = React.Children.toArray(props.children);\n    if (process.env.NODE_ENV !== 'production') {\n        if (children.length === 0) {\n            // eslint-disable-next-line no-console\n            console.warn('Popover must contain at least one child');\n        }\n        if (children.length > 2) {\n            // eslint-disable-next-line no-console\n            console.warn('Popover must contain at most two children');\n        }\n    }\n    let popoverTrigger = undefined;\n    let popoverSurface = undefined;\n    if (children.length === 2) {\n        popoverTrigger = children[0];\n        popoverSurface = children[1];\n    } else if (children.length === 1) {\n        popoverSurface = children[0];\n    }\n    const [open, setOpenState] = useOpenState(initialState);\n    const setOpenTimeoutRef = React.useRef(0);\n    const setOpen = useEventCallback((e, shouldOpen)=>{\n        clearTimeout(setOpenTimeoutRef.current);\n        if (!(e instanceof Event) && e.persist) {\n            // < React 17 still uses pooled synthetic events\n            e.persist();\n        }\n        if (e.type === 'mouseleave') {\n            var _props_mouseLeaveDelay;\n            // FIXME leaking Node timeout type\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore\n            setOpenTimeoutRef.current = setTimeout(()=>{\n                setOpenState(e, shouldOpen);\n            }, (_props_mouseLeaveDelay = props.mouseLeaveDelay) !== null && _props_mouseLeaveDelay !== void 0 ? _props_mouseLeaveDelay : 500);\n        } else {\n            setOpenState(e, shouldOpen);\n        }\n    });\n    // Clear timeout on unmount\n    // Setting state after a component unmounts can cause memory leaks\n    React.useEffect(()=>{\n        return ()=>{\n            clearTimeout(setOpenTimeoutRef.current);\n        };\n    }, []);\n    const toggleOpen = React.useCallback((e)=>{\n        setOpen(e, !open);\n    }, [\n        setOpen,\n        open\n    ]);\n    const positioningRefs = usePopoverRefs(initialState);\n    const { targetDocument } = useFluent();\n    var _props_closeOnIframeFocus;\n    useOnClickOutside({\n        contains: elementContains,\n        element: targetDocument,\n        callback: (ev)=>setOpen(ev, false),\n        refs: [\n            positioningRefs.triggerRef,\n            positioningRefs.contentRef\n        ],\n        disabled: !open,\n        disabledFocusOnIframe: !((_props_closeOnIframeFocus = props.closeOnIframeFocus) !== null && _props_closeOnIframeFocus !== void 0 ? _props_closeOnIframeFocus : true)\n    });\n    // only close on scroll for context, or when closeOnScroll is specified\n    const closeOnScroll = initialState.openOnContext || initialState.closeOnScroll;\n    useOnScrollOutside({\n        contains: elementContains,\n        element: targetDocument,\n        callback: (ev)=>setOpen(ev, false),\n        refs: [\n            positioningRefs.triggerRef,\n            positioningRefs.contentRef\n        ],\n        disabled: !open || !closeOnScroll\n    });\n    const { findFirstFocusable } = useFocusFinders();\n    React.useEffect(()=>{\n        if (props.unstable_disableAutoFocus) {\n            return;\n        }\n        if (open && positioningRefs.contentRef.current) {\n            var _positioningRefs_contentRef_current_getAttribute;\n            const containerTabIndex = (_positioningRefs_contentRef_current_getAttribute = positioningRefs.contentRef.current.getAttribute('tabIndex')) !== null && _positioningRefs_contentRef_current_getAttribute !== void 0 ? _positioningRefs_contentRef_current_getAttribute : undefined;\n            const firstFocusable = isNaN(containerTabIndex) ? findFirstFocusable(positioningRefs.contentRef.current) : positioningRefs.contentRef.current;\n            firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n        }\n    }, [\n        findFirstFocusable,\n        open,\n        positioningRefs.contentRef,\n        props.unstable_disableAutoFocus\n    ]);\n    var _props_inertTrapFocus, _props_inline;\n    return {\n        ...initialState,\n        ...positioningRefs,\n        // eslint-disable-next-line deprecation/deprecation\n        inertTrapFocus: (_props_inertTrapFocus = props.inertTrapFocus) !== null && _props_inertTrapFocus !== void 0 ? _props_inertTrapFocus : props.legacyTrapFocus === undefined ? false : !props.legacyTrapFocus,\n        popoverTrigger,\n        popoverSurface,\n        open,\n        setOpen,\n        toggleOpen,\n        setContextTarget,\n        contextTarget,\n        inline: (_props_inline = props.inline) !== null && _props_inline !== void 0 ? _props_inline : false\n    };\n};\n/**\n * Creates and manages the Popover open state\n */ function useOpenState(state) {\n    const onOpenChange = useEventCallback((e, data)=>{\n        var _state_onOpenChange;\n        return (_state_onOpenChange = state.onOpenChange) === null || _state_onOpenChange === void 0 ? void 0 : _state_onOpenChange.call(state, e, data);\n    });\n    const [open, setOpenState] = useControllableState({\n        state: state.open,\n        defaultState: state.defaultOpen,\n        initialState: false\n    });\n    state.open = open !== undefined ? open : state.open;\n    const setContextTarget = state.setContextTarget;\n    const setOpen = React.useCallback((e, shouldOpen)=>{\n        if (shouldOpen && e.type === 'contextmenu') {\n            setContextTarget(e);\n        }\n        if (!shouldOpen) {\n            setContextTarget(undefined);\n        }\n        setOpenState(shouldOpen);\n        onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {\n            open: shouldOpen\n        });\n    }, [\n        setOpenState,\n        onOpenChange,\n        setContextTarget\n    ]);\n    return [\n        open,\n        setOpen\n    ];\n}\n/**\n * Creates and sets the necessary trigger, target and content refs used by Popover\n */ function usePopoverRefs(state) {\n    const positioningOptions = {\n        position: 'above',\n        align: 'center',\n        arrowPadding: 2 * popoverSurfaceBorderRadius,\n        target: state.openOnContext ? state.contextTarget : undefined,\n        ...resolvePositioningShorthand(state.positioning)\n    };\n    // no reason to render arrow when covering the target\n    if (positioningOptions.coverTarget) {\n        state.withArrow = false;\n    }\n    if (state.withArrow) {\n        positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeights[state.size]);\n    }\n    const { targetRef: triggerRef, containerRef: contentRef, arrowRef } = usePositioning(positioningOptions);\n    return {\n        triggerRef,\n        contentRef,\n        arrowRef\n    };\n}\n"],"names":["usePopover_unstable","props","contextTarget","setContextTarget","usePositioningMouseTarget","initialState","size","children","React","Children","toArray","process","env","NODE_ENV","length","console","warn","popoverTrigger","undefined","popoverSurface","open","setOpenState","useOpenState","setOpenTimeoutRef","useRef","setOpen","useEventCallback","e","shouldOpen","clearTimeout","current","Event","persist","type","_props_mouseLeaveDelay","setTimeout","mouseLeaveDelay","useEffect","toggleOpen","useCallback","positioningRefs","usePopoverRefs","targetDocument","useFluent","_props_closeOnIframeFocus","useOnClickOutside","contains","elementContains","element","callback","ev","refs","triggerRef","contentRef","disabled","disabledFocusOnIframe","closeOnIframeFocus","closeOnScroll","openOnContext","useOnScrollOutside","findFirstFocusable","useFocusFinders","unstable_disableAutoFocus","_positioningRefs_contentRef_current_getAttribute","containerTabIndex","getAttribute","firstFocusable","isNaN","focus","_props_inertTrapFocus","_props_inline","inertTrapFocus","legacyTrapFocus","inline","state","onOpenChange","data","_state_onOpenChange","call","useControllableState","defaultState","defaultOpen","positioningOptions","position","align","arrowPadding","popoverSurfaceBorderRadius","target","resolvePositioningShorthand","positioning","coverTarget","withArrow","offset","mergeArrowOffset","arrowHeights","targetRef","containerRef","arrowRef","usePositioning"],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["usePopover.js"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useEventCallback, useOnClickOutside, useOnScrollOutside, elementContains, useTimeout } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { usePositioning, resolvePositioningShorthand, mergeArrowOffset, usePositioningMouseTarget } from '@fluentui/react-positioning';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { arrowHeights } from '../PopoverSurface/index';\nimport { popoverSurfaceBorderRadius } from './constants';\n/**\n * Create the state required to render Popover.\n *\n * The returned state can be modified with hooks such as usePopoverStyles,\n * before being passed to renderPopover_unstable.\n *\n * @param props - props from this instance of Popover\n */ export const usePopover_unstable = (props)=>{\n    const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n    const initialState = {\n        size: 'medium',\n        contextTarget,\n        setContextTarget,\n        ...props\n    };\n    const children = React.Children.toArray(props.children);\n    if (process.env.NODE_ENV !== 'production') {\n        if (children.length === 0) {\n            // eslint-disable-next-line no-console\n            console.warn('Popover must contain at least one child');\n        }\n        if (children.length > 2) {\n            // eslint-disable-next-line no-console\n            console.warn('Popover must contain at most two children');\n        }\n    }\n    let popoverTrigger = undefined;\n    let popoverSurface = undefined;\n    if (children.length === 2) {\n        popoverTrigger = children[0];\n        popoverSurface = children[1];\n    } else if (children.length === 1) {\n        popoverSurface = children[0];\n    }\n    const [open, setOpenState] = useOpenState(initialState);\n    const [setOpenTimeout, clearOpenTimeout] = useTimeout();\n    const setOpen = useEventCallback((e, shouldOpen)=>{\n        clearOpenTimeout();\n        if (!(e instanceof Event) && e.persist) {\n            // < React 17 still uses pooled synthetic events\n            e.persist();\n        }\n        if (e.type === 'mouseleave') {\n            var _props_mouseLeaveDelay;\n            // FIXME leaking Node timeout type\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore\n            setOpenTimeout(()=>{\n                setOpenState(e, shouldOpen);\n            }, (_props_mouseLeaveDelay = props.mouseLeaveDelay) !== null && _props_mouseLeaveDelay !== void 0 ? _props_mouseLeaveDelay : 500);\n        } else {\n            setOpenState(e, shouldOpen);\n        }\n    });\n    const toggleOpen = React.useCallback((e)=>{\n        setOpen(e, !open);\n    }, [\n        setOpen,\n        open\n    ]);\n    const positioningRefs = usePopoverRefs(initialState);\n    const { targetDocument } = useFluent();\n    var _props_closeOnIframeFocus;\n    useOnClickOutside({\n        contains: elementContains,\n        element: targetDocument,\n        callback: (ev)=>setOpen(ev, false),\n        refs: [\n            positioningRefs.triggerRef,\n            positioningRefs.contentRef\n        ],\n        disabled: !open,\n        disabledFocusOnIframe: !((_props_closeOnIframeFocus = props.closeOnIframeFocus) !== null && _props_closeOnIframeFocus !== void 0 ? _props_closeOnIframeFocus : true)\n    });\n    // only close on scroll for context, or when closeOnScroll is specified\n    const closeOnScroll = initialState.openOnContext || initialState.closeOnScroll;\n    useOnScrollOutside({\n        contains: elementContains,\n        element: targetDocument,\n        callback: (ev)=>setOpen(ev, false),\n        refs: [\n            positioningRefs.triggerRef,\n            positioningRefs.contentRef\n        ],\n        disabled: !open || !closeOnScroll\n    });\n    const { findFirstFocusable } = useFocusFinders();\n    React.useEffect(()=>{\n        if (props.unstable_disableAutoFocus) {\n            return;\n        }\n        if (open && positioningRefs.contentRef.current) {\n            var _positioningRefs_contentRef_current_getAttribute;\n            const containerTabIndex = (_positioningRefs_contentRef_current_getAttribute = positioningRefs.contentRef.current.getAttribute('tabIndex')) !== null && _positioningRefs_contentRef_current_getAttribute !== void 0 ? _positioningRefs_contentRef_current_getAttribute : undefined;\n            const firstFocusable = isNaN(containerTabIndex) ? findFirstFocusable(positioningRefs.contentRef.current) : positioningRefs.contentRef.current;\n            firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n        }\n    }, [\n        findFirstFocusable,\n        open,\n        positioningRefs.contentRef,\n        props.unstable_disableAutoFocus\n    ]);\n    var _props_inertTrapFocus, _props_inline;\n    return {\n        ...initialState,\n        ...positioningRefs,\n        // eslint-disable-next-line deprecation/deprecation\n        inertTrapFocus: (_props_inertTrapFocus = props.inertTrapFocus) !== null && _props_inertTrapFocus !== void 0 ? _props_inertTrapFocus : props.legacyTrapFocus === undefined ? false : !props.legacyTrapFocus,\n        popoverTrigger,\n        popoverSurface,\n        open,\n        setOpen,\n        toggleOpen,\n        setContextTarget,\n        contextTarget,\n        inline: (_props_inline = props.inline) !== null && _props_inline !== void 0 ? _props_inline : false\n    };\n};\n/**\n * Creates and manages the Popover open state\n */ function useOpenState(state) {\n    const onOpenChange = useEventCallback((e, data)=>{\n        var _state_onOpenChange;\n        return (_state_onOpenChange = state.onOpenChange) === null || _state_onOpenChange === void 0 ? void 0 : _state_onOpenChange.call(state, e, data);\n    });\n    const [open, setOpenState] = useControllableState({\n        state: state.open,\n        defaultState: state.defaultOpen,\n        initialState: false\n    });\n    state.open = open !== undefined ? open : state.open;\n    const setContextTarget = state.setContextTarget;\n    const setOpen = React.useCallback((e, shouldOpen)=>{\n        if (shouldOpen && e.type === 'contextmenu') {\n            setContextTarget(e);\n        }\n        if (!shouldOpen) {\n            setContextTarget(undefined);\n        }\n        setOpenState(shouldOpen);\n        onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {\n            open: shouldOpen\n        });\n    }, [\n        setOpenState,\n        onOpenChange,\n        setContextTarget\n    ]);\n    return [\n        open,\n        setOpen\n    ];\n}\n/**\n * Creates and sets the necessary trigger, target and content refs used by Popover\n */ function usePopoverRefs(state) {\n    const positioningOptions = {\n        position: 'above',\n        align: 'center',\n        arrowPadding: 2 * popoverSurfaceBorderRadius,\n        target: state.openOnContext ? state.contextTarget : undefined,\n        ...resolvePositioningShorthand(state.positioning)\n    };\n    // no reason to render arrow when covering the target\n    if (positioningOptions.coverTarget) {\n        state.withArrow = false;\n    }\n    if (state.withArrow) {\n        positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeights[state.size]);\n    }\n    const { targetRef: triggerRef, containerRef: contentRef, arrowRef } = usePositioning(positioningOptions);\n    return {\n        triggerRef,\n        contentRef,\n        arrowRef\n    };\n}\n"],"names":["usePopover_unstable","props","contextTarget","setContextTarget","usePositioningMouseTarget","initialState","size","children","React","Children","toArray","process","env","NODE_ENV","length","console","warn","popoverTrigger","undefined","popoverSurface","open","setOpenState","useOpenState","setOpenTimeout","clearOpenTimeout","useTimeout","setOpen","useEventCallback","e","shouldOpen","Event","persist","type","_props_mouseLeaveDelay","mouseLeaveDelay","toggleOpen","useCallback","positioningRefs","usePopoverRefs","targetDocument","useFluent","_props_closeOnIframeFocus","useOnClickOutside","contains","elementContains","element","callback","ev","refs","triggerRef","contentRef","disabled","disabledFocusOnIframe","closeOnIframeFocus","closeOnScroll","openOnContext","useOnScrollOutside","findFirstFocusable","useFocusFinders","useEffect","unstable_disableAutoFocus","current","_positioningRefs_contentRef_current_getAttribute","containerTabIndex","getAttribute","firstFocusable","isNaN","focus","_props_inertTrapFocus","_props_inline","inertTrapFocus","legacyTrapFocus","inline","state","onOpenChange","data","_state_onOpenChange","call","useControllableState","defaultState","defaultOpen","positioningOptions","position","align","arrowPadding","popoverSurfaceBorderRadius","target","resolvePositioningShorthand","positioning","coverTarget","withArrow","offset","mergeArrowOffset","arrowHeights","targetRef","containerRef","arrowRef","usePositioning"],"mappings":";;;;+BAciBA;;;eAAAA;;;;iEAdM;gCACoG;qCAC3E;kCACyD;8BACzE;uBACH;2BACc;AAQhC,MAAMA,sBAAsB,CAACC;IACpC,MAAM,CAACC,eAAeC,iBAAiB,GAAGC,IAAAA,2CAAyB;IACnE,MAAMC,eAAe;QACjBC,MAAM;QACNJ;QACAC;QACA,GAAGF,KAAK;IACZ;IACA,MAAMM,WAAWC,OAAMC,QAAQ,CAACC,OAAO,CAACT,MAAMM,QAAQ;IACtD,IAAII,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACvC,IAAIN,SAASO,MAAM,KAAK,GAAG;YACvB,sCAAsC;YACtCC,QAAQC,IAAI,CAAC;QACjB;QACA,IAAIT,SAASO,MAAM,GAAG,GAAG;YACrB,sCAAsC;YACtCC,QAAQC,IAAI,CAAC;QACjB;IACJ;IACA,IAAIC,iBAAiBC;IACrB,IAAIC,iBAAiBD;IACrB,IAAIX,SAASO,MAAM,KAAK,GAAG;QACvBG,iBAAiBV,QAAQ,CAAC,EAAE;QAC5BY,iBAAiBZ,QAAQ,CAAC,EAAE;IAChC,OAAO,IAAIA,SAASO,MAAM,KAAK,GAAG;QAC9BK,iBAAiBZ,QAAQ,CAAC,EAAE;IAChC;IACA,MAAM,CAACa,MAAMC,aAAa,GAAGC,aAAajB;IAC1C,MAAM,CAACkB,gBAAgBC,iBAAiB,GAAGC,IAAAA,0BAAU;IACrD,MAAMC,UAAUC,IAAAA,gCAAgB,EAAC,CAACC,GAAGC;QACjCL;QACA,IAAI,CAAEI,CAAAA,aAAaE,KAAI,KAAMF,EAAEG,OAAO,EAAE;YACpC,gDAAgD;YAChDH,EAAEG,OAAO;QACb;QACA,IAAIH,EAAEI,IAAI,KAAK,cAAc;YACzB,IAAIC;YACJ,kCAAkC;YAClC,6DAA6D;YAC7D,aAAa;YACbV,eAAe;gBACXF,aAAaO,GAAGC;YACpB,GAAG,AAACI,CAAAA,yBAAyBhC,MAAMiC,eAAe,AAAD,MAAO,QAAQD,2BAA2B,KAAK,IAAIA,yBAAyB;QACjI,OAAO;YACHZ,aAAaO,GAAGC;QACpB;IACJ;IACA,MAAMM,aAAa3B,OAAM4B,WAAW,CAAC,CAACR;QAClCF,QAAQE,GAAG,CAACR;IAChB,GAAG;QACCM;QACAN;KACH;IACD,MAAMiB,kBAAkBC,eAAejC;IACvC,MAAM,EAAEkC,cAAc,EAAE,GAAGC,IAAAA,uCAAS;IACpC,IAAIC;IACJC,IAAAA,iCAAiB,EAAC;QACdC,UAAUC,+BAAe;QACzBC,SAASN;QACTO,UAAU,CAACC,KAAKrB,QAAQqB,IAAI;QAC5BC,MAAM;YACFX,gBAAgBY,UAAU;YAC1BZ,gBAAgBa,UAAU;SAC7B;QACDC,UAAU,CAAC/B;QACXgC,uBAAuB,CAAE,CAAA,AAACX,CAAAA,4BAA4BxC,MAAMoD,kBAAkB,AAAD,MAAO,QAAQZ,8BAA8B,KAAK,IAAIA,4BAA4B,IAAG;IACtK;IACA,uEAAuE;IACvE,MAAMa,gBAAgBjD,aAAakD,aAAa,IAAIlD,aAAaiD,aAAa;IAC9EE,IAAAA,kCAAkB,EAAC;QACfb,UAAUC,+BAAe;QACzBC,SAASN;QACTO,UAAU,CAACC,KAAKrB,QAAQqB,IAAI;QAC5BC,MAAM;YACFX,gBAAgBY,UAAU;YAC1BZ,gBAAgBa,UAAU;SAC7B;QACDC,UAAU,CAAC/B,QAAQ,CAACkC;IACxB;IACA,MAAM,EAAEG,kBAAkB,EAAE,GAAGC,IAAAA,6BAAe;IAC9ClD,OAAMmD,SAAS,CAAC;QACZ,IAAI1D,MAAM2D,yBAAyB,EAAE;YACjC;QACJ;QACA,IAAIxC,QAAQiB,gBAAgBa,UAAU,CAACW,OAAO,EAAE;YAC5C,IAAIC;YACJ,MAAMC,oBAAoB,AAACD,CAAAA,mDAAmDzB,gBAAgBa,UAAU,CAACW,OAAO,CAACG,YAAY,CAAC,WAAU,MAAO,QAAQF,qDAAqD,KAAK,IAAIA,mDAAmD5C;YACxQ,MAAM+C,iBAAiBC,MAAMH,qBAAqBN,mBAAmBpB,gBAAgBa,UAAU,CAACW,OAAO,IAAIxB,gBAAgBa,UAAU,CAACW,OAAO;YAC7II,mBAAmB,QAAQA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeE,KAAK;QACxF;IACJ,GAAG;QACCV;QACArC;QACAiB,gBAAgBa,UAAU;QAC1BjD,MAAM2D,yBAAyB;KAClC;IACD,IAAIQ,uBAAuBC;IAC3B,OAAO;QACH,GAAGhE,YAAY;QACf,GAAGgC,eAAe;QAClB,mDAAmD;QACnDiC,gBAAgB,AAACF,CAAAA,wBAAwBnE,MAAMqE,cAAc,AAAD,MAAO,QAAQF,0BAA0B,KAAK,IAAIA,wBAAwBnE,MAAMsE,eAAe,KAAKrD,YAAY,QAAQ,CAACjB,MAAMsE,eAAe;QAC1MtD;QACAE;QACAC;QACAM;QACAS;QACAhC;QACAD;QACAsE,QAAQ,AAACH,CAAAA,gBAAgBpE,MAAMuE,MAAM,AAAD,MAAO,QAAQH,kBAAkB,KAAK,IAAIA,gBAAgB;IAClG;AACJ;AACA;;CAEC,GAAG,SAAS/C,aAAamD,KAAK;IAC3B,MAAMC,eAAe/C,IAAAA,gCAAgB,EAAC,CAACC,GAAG+C;QACtC,IAAIC;QACJ,OAAO,AAACA,CAAAA,sBAAsBH,MAAMC,YAAY,AAAD,MAAO,QAAQE,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBC,IAAI,CAACJ,OAAO7C,GAAG+C;IAC/I;IACA,MAAM,CAACvD,MAAMC,aAAa,GAAGyD,IAAAA,oCAAoB,EAAC;QAC9CL,OAAOA,MAAMrD,IAAI;QACjB2D,cAAcN,MAAMO,WAAW;QAC/B3E,cAAc;IAClB;IACAoE,MAAMrD,IAAI,GAAGA,SAASF,YAAYE,OAAOqD,MAAMrD,IAAI;IACnD,MAAMjB,mBAAmBsE,MAAMtE,gBAAgB;IAC/C,MAAMuB,UAAUlB,OAAM4B,WAAW,CAAC,CAACR,GAAGC;QAClC,IAAIA,cAAcD,EAAEI,IAAI,KAAK,eAAe;YACxC7B,iBAAiByB;QACrB;QACA,IAAI,CAACC,YAAY;YACb1B,iBAAiBe;QACrB;QACAG,aAAaQ;QACb6C,iBAAiB,QAAQA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAa9C,GAAG;YACxER,MAAMS;QACV;IACJ,GAAG;QACCR;QACAqD;QACAvE;KACH;IACD,OAAO;QACHiB;QACAM;KACH;AACL;AACA;;CAEC,GAAG,SAASY,eAAemC,KAAK;IAC7B,MAAMQ,qBAAqB;QACvBC,UAAU;QACVC,OAAO;QACPC,cAAc,IAAIC,qCAA0B;QAC5CC,QAAQb,MAAMlB,aAAa,GAAGkB,MAAMvE,aAAa,GAAGgB;QACpD,GAAGqE,IAAAA,6CAA2B,EAACd,MAAMe,WAAW,CAAC;IACrD;IACA,qDAAqD;IACrD,IAAIP,mBAAmBQ,WAAW,EAAE;QAChChB,MAAMiB,SAAS,GAAG;IACtB;IACA,IAAIjB,MAAMiB,SAAS,EAAE;QACjBT,mBAAmBU,MAAM,GAAGC,IAAAA,kCAAgB,EAACX,mBAAmBU,MAAM,EAAEE,mBAAY,CAACpB,MAAMnE,IAAI,CAAC;IACpG;IACA,MAAM,EAAEwF,WAAW7C,UAAU,EAAE8C,cAAc7C,UAAU,EAAE8C,QAAQ,EAAE,GAAGC,IAAAA,gCAAc,EAAChB;IACrF,OAAO;QACHhC;QACAC;QACA8C;IACJ;AACJ"}
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@fluentui/react-popover",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "9.9. 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "9.9.7",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Popover component for Fluent UI",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "main": "lib-commonjs/index.js",
         
     | 
| 
       6 
6 
     | 
    
         
             
              "module": "lib/index.js",
         
     | 
| 
         @@ -37,15 +37,15 @@ 
     | 
|
| 
       37 
37 
     | 
    
         
             
              },
         
     | 
| 
       38 
38 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       39 
39 
     | 
    
         
             
                "@fluentui/keyboard-keys": "^9.0.7",
         
     | 
| 
       40 
     | 
    
         
            -
                "@fluentui/react-aria": "^9. 
     | 
| 
       41 
     | 
    
         
            -
                "@fluentui/react-context-selector": "^9.1. 
     | 
| 
       42 
     | 
    
         
            -
                "@fluentui/react-portal": "^9.4. 
     | 
| 
       43 
     | 
    
         
            -
                "@fluentui/react-positioning": "^9.14. 
     | 
| 
       44 
     | 
    
         
            -
                "@fluentui/react-shared-contexts": "^9. 
     | 
| 
       45 
     | 
    
         
            -
                "@fluentui/react-tabster": "^9. 
     | 
| 
      
 40 
     | 
    
         
            +
                "@fluentui/react-aria": "^9.11.1",
         
     | 
| 
      
 41 
     | 
    
         
            +
                "@fluentui/react-context-selector": "^9.1.59",
         
     | 
| 
      
 42 
     | 
    
         
            +
                "@fluentui/react-portal": "^9.4.23",
         
     | 
| 
      
 43 
     | 
    
         
            +
                "@fluentui/react-positioning": "^9.14.5",
         
     | 
| 
      
 44 
     | 
    
         
            +
                "@fluentui/react-shared-contexts": "^9.18.0",
         
     | 
| 
      
 45 
     | 
    
         
            +
                "@fluentui/react-tabster": "^9.21.1",
         
     | 
| 
       46 
46 
     | 
    
         
             
                "@fluentui/react-theme": "^9.1.19",
         
     | 
| 
       47 
     | 
    
         
            -
                "@fluentui/react-utilities": "^9.18. 
     | 
| 
       48 
     | 
    
         
            -
                "@fluentui/react-jsx-runtime": "^9.0. 
     | 
| 
      
 47 
     | 
    
         
            +
                "@fluentui/react-utilities": "^9.18.8",
         
     | 
| 
      
 48 
     | 
    
         
            +
                "@fluentui/react-jsx-runtime": "^9.0.37",
         
     | 
| 
       49 
49 
     | 
    
         
             
                "@griffel/react": "^1.5.14",
         
     | 
| 
       50 
50 
     | 
    
         
             
                "@swc/helpers": "^0.5.1"
         
     | 
| 
       51 
51 
     | 
    
         
             
              },
         
     |