Keep parent popovers open when a nested one opens (#213)

Opening a popover, dropdown menu, select or combobox closed every
other open one, including the popover it sits in. Only close the
ones that don't contain the source, like native popover=auto.

Co-authored-by: grugbraindev <178141691+grugbraindev@users.noreply.github.com>
This commit is contained in:
Grug
2026-10-23 14:52:16 +08:00
committed by GitHub
co-authored by grugbraindev
parent a834708080
commit 7bc046c7e7
4 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -507,7 +507,7 @@
if (!root.contains(event.target)) root.close(false);
};
const handleDocumentPopover = (event) => {
if (event.detail.source !== root) root.close(false);
if (!root.contains(event.detail.source)) root.close(false);
};
state.input.addEventListener('focus', handleInputFocus);
+1 -1
View File
@@ -165,7 +165,7 @@
};
const handleDocumentPopover = (event) => {
if (event.detail.source !== root) root.close(false);
if (!root.contains(event.detail.source)) root.close(false);
};
state.trigger.addEventListener('click', handleTriggerClick);
+1 -1
View File
@@ -60,7 +60,7 @@
};
const handleDocumentPopover = (event) => {
if (event.detail.source !== popoverComponent) {
if (!popoverComponent.contains(event.detail.source)) {
closePopover(false);
}
};
+1 -1
View File
@@ -373,7 +373,7 @@
if (!root.contains(event.target)) root.close(false);
};
const handleDocumentPopover = (event) => {
if (event.detail.source !== root) root.close(false);
if (!root.contains(event.detail.source)) root.close(false);
};
state.trigger.addEventListener('keydown', handleTriggerKeydown);