UNPKG

@mui/utils

Version:
32 lines (31 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = activeElement; /** * Gets the actual active element, traversing through shadow roots if necessary. * * When an element inside a shadow root has focus, `document.activeElement` returns * the shadow host element. This function recursively traverses shadow roots to find * the actual focused element. * * @param root - The document or shadow root to start the search from. * @returns The actual focused element, or null if no element has focus. * * @example * // In a shadow DOM context * const activeElement = getActiveElement(document); * // Returns the actual focused element inside the shadow root * * @example * // Starting from a specific document * const activeElement = getActiveElement(ownerDocument(element)); */ function activeElement(doc) { let element = doc.activeElement; while (element?.shadowRoot?.activeElement != null) { element = element.shadowRoot.activeElement; } return element; }