diff --git a/.changeset/cyan-onions-juggle.md b/.changeset/cyan-onions-juggle.md new file mode 100644 index 000000000..e8d00433b --- /dev/null +++ b/.changeset/cyan-onions-juggle.md @@ -0,0 +1,5 @@ +--- +'@lion/overlays': patch +--- + +Only set inert when placementMode is global, otherwise events are broken inside local overlay content diff --git a/packages/overlays/src/OverlayController.js b/packages/overlays/src/OverlayController.js index 6f6ec0588..405e6453f 100644 --- a/packages/overlays/src/OverlayController.js +++ b/packages/overlays/src/OverlayController.js @@ -1013,7 +1013,7 @@ export class OverlayController extends EventTargetShim { this._containFocusHandler = containFocus(this.contentNode); this.__hasActiveTrapsKeyboardFocus = true; if (this.manager) { - this.manager.informTrapsKeyboardFocusGotEnabled(); + this.manager.informTrapsKeyboardFocusGotEnabled(this.placementMode); } } diff --git a/packages/overlays/src/OverlaysManager.js b/packages/overlays/src/OverlaysManager.js index 5144255e5..8d67ab04a 100644 --- a/packages/overlays/src/OverlaysManager.js +++ b/packages/overlays/src/OverlaysManager.js @@ -153,8 +153,11 @@ export class OverlaysManager { }); } - informTrapsKeyboardFocusGotEnabled() { - if (this.siblingsInert === false) { + /** + * @param {'local' | 'global' | undefined} placementMode + */ + informTrapsKeyboardFocusGotEnabled(placementMode) { + if (this.siblingsInert === false && placementMode === 'global') { if (OverlaysManager.__globalRootNode) { setSiblingsInert(this.globalRootNode); }