@fluentui/react-popover 9.9.5 → 9.9.6
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md
CHANGED
@@ -1,12 +1,24 @@
|
|
1
1
|
# Change Log - @fluentui/react-popover
|
2
2
|
|
3
|
-
This log was last generated on
|
3
|
+
This log was last generated on Thu, 02 May 2024 11:31:29 GMT and should not be manually modified.
|
4
4
|
|
5
5
|
<!-- Start content -->
|
6
6
|
|
7
|
+
## [9.9.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-popover_v9.9.6)
|
8
|
+
|
9
|
+
Thu, 02 May 2024 11:31:29 GMT
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-popover_v9.9.5..@fluentui/react-popover_v9.9.6)
|
11
|
+
|
12
|
+
### Patches
|
13
|
+
|
14
|
+
- refactor: use timeout and animation frame utilities ([PR #31168](https://github.com/microsoft/fluentui/pull/31168) by lingfangao@hotmail.com)
|
15
|
+
- Bump @fluentui/react-aria to v9.11.0 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
|
16
|
+
- Bump @fluentui/react-portal to v9.4.22 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
|
17
|
+
- Bump @fluentui/react-tabster to v9.21.0 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
|
18
|
+
|
7
19
|
## [9.9.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-popover_v9.9.5)
|
8
20
|
|
9
|
-
Tue, 23 Apr 2024 08:
|
21
|
+
Tue, 23 Apr 2024 08:17:49 GMT
|
10
22
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-popover_v9.9.4..@fluentui/react-popover_v9.9.5)
|
11
23
|
|
12
24
|
### 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":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fluentui/react-popover",
|
3
|
-
"version": "9.9.
|
3
|
+
"version": "9.9.6",
|
4
4
|
"description": "Popover component for Fluent UI",
|
5
5
|
"main": "lib-commonjs/index.js",
|
6
6
|
"module": "lib/index.js",
|
@@ -37,12 +37,12 @@
|
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
39
|
"@fluentui/keyboard-keys": "^9.0.7",
|
40
|
-
"@fluentui/react-aria": "^9.
|
40
|
+
"@fluentui/react-aria": "^9.11.0",
|
41
41
|
"@fluentui/react-context-selector": "^9.1.58",
|
42
|
-
"@fluentui/react-portal": "^9.4.
|
42
|
+
"@fluentui/react-portal": "^9.4.22",
|
43
43
|
"@fluentui/react-positioning": "^9.14.4",
|
44
44
|
"@fluentui/react-shared-contexts": "^9.17.0",
|
45
|
-
"@fluentui/react-tabster": "^9.
|
45
|
+
"@fluentui/react-tabster": "^9.21.0",
|
46
46
|
"@fluentui/react-theme": "^9.1.19",
|
47
47
|
"@fluentui/react-utilities": "^9.18.7",
|
48
48
|
"@fluentui/react-jsx-runtime": "^9.0.36",
|