From 3fc266560a87f2f057ef2106510312d6a33920f6 Mon Sep 17 00:00:00 2001 From: pan-alexey Date: Fri, 5 Dec 2025 12:57:13 +0300 Subject: [PATCH 1/2] Add rootHiddenOutsideElement --- packages/@react-aria/overlays/src/usePopover.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/@react-aria/overlays/src/usePopover.ts b/packages/@react-aria/overlays/src/usePopover.ts index 3263932e978..bda658fed13 100644 --- a/packages/@react-aria/overlays/src/usePopover.ts +++ b/packages/@react-aria/overlays/src/usePopover.ts @@ -62,6 +62,11 @@ export interface AriaPopoverProps extends Omit boolean + + /** + * Nothing will be hidden above this element when a popup is modal. + */ + rootHiddenOutsideElement?: Element } export interface PopoverAria { @@ -89,6 +94,7 @@ export function usePopover(props: AriaPopoverProps, state: OverlayTriggerState): isNonModal, isKeyboardDismissDisabled, shouldCloseOnInteractOutside, + rootHiddenOutsideElement, ...otherProps } = props; @@ -123,7 +129,7 @@ export function usePopover(props: AriaPopoverProps, state: OverlayTriggerState): if (isNonModal) { return keepVisible(groupRef?.current ?? popoverRef.current); } else { - return ariaHideOutside([groupRef?.current ?? popoverRef.current], {shouldUseInert: true}); + return ariaHideOutside([groupRef?.current ?? popoverRef.current], {shouldUseInert: true, root: rootHiddenOutsideElement}); } } }, [isNonModal, state.isOpen, popoverRef, groupRef]); From 7dca51a24315f86d29a24b2d9fbd2598aa21abfb Mon Sep 17 00:00:00 2001 From: pan-alexey Date: Fri, 5 Dec 2025 13:05:06 +0300 Subject: [PATCH 2/2] Lint:fix --- packages/@react-aria/overlays/src/usePopover.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/@react-aria/overlays/src/usePopover.ts b/packages/@react-aria/overlays/src/usePopover.ts index bda658fed13..ef54f3b6704 100644 --- a/packages/@react-aria/overlays/src/usePopover.ts +++ b/packages/@react-aria/overlays/src/usePopover.ts @@ -62,7 +62,6 @@ export interface AriaPopoverProps extends Omit boolean - /** * Nothing will be hidden above this element when a popup is modal. */