(() => { var elementInternalsMap = (() => { var __commonJS = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports); // lib/gather-internals/main.js var require_main = __commonJS((exports, module) => { walkTree(); module.exports = elementInternalsMap; }); // lib/core/utils/is-valid-custom-element-name.js var reservedNames = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; var validLocalNameRegex = /^(?:[A-Za-z][^\0\t\n\f\r\u0020/>]*|[:_\u0080-\u{10FFFF}][A-Za-z0-9-.:_\u0080-\u{10FFFF}]*)$/u; var alphaLowerRegex = /[a-z]/; var alphaUpperRegex = /[A-Z]/; function isValidCustomElementName(nodeName) { return !reservedNames.includes(nodeName) && validLocalNameRegex.test(nodeName) && alphaLowerRegex.test(nodeName[0]) && !alphaUpperRegex.test(nodeName) && nodeName.includes("-"); } // lib/core/utils/get-element-internals.js var propNames = ["_internals", "internals", "internals_"]; var symbolNames = ["internals", "privateInternals"]; function getElementInternals(node) { if (!isValidCustomElementName(node.nodeName.toLowerCase())) { return; } const mapInternals = globalThis._elementInternals?.get(node); if (mapInternals) { return mapInternals; } if (!("ElementInternals" in window)) { return; } for (const propName of propNames) { if (Object.getOwnPropertyDescriptor(node, propName)?.get) { continue; } if (node[propName] instanceof window.ElementInternals) { return node[propName]; } } const ownSymbols = Object.getOwnPropertySymbols(node); if (!ownSymbols.length) { return; } for (const symbolName of symbolNames) { const symbol = ownSymbols.find((s) => s.description === symbolName); if (symbol) { if (Object.getOwnPropertyDescriptor(node, symbol)?.get) { continue; } if (node[symbol] instanceof window.ElementInternals) { return node[symbol]; } } } } // lib/core/utils/escape-selector.js function escapeSelector(value) { const string = String(value); const length = string.length; let index = -1; let codeUnit; let result = ""; const firstCodeUnit = string.charCodeAt(0); while (++index < length) { codeUnit = string.charCodeAt(index); if (codeUnit == 0) { result += "\uFFFD"; continue; } if (codeUnit >= 1 && codeUnit <= 31 || codeUnit == 127 || index == 0 && codeUnit >= 48 && codeUnit <= 57 || index == 1 && codeUnit >= 48 && codeUnit <= 57 && firstCodeUnit == 45) { result += "\\" + codeUnit.toString(16) + " "; continue; } if (index == 0 && length == 1 && codeUnit == 45) { result += "\\" + string.charAt(index); continue; } if (codeUnit >= 128 || codeUnit == 45 || codeUnit == 95 || codeUnit >= 48 && codeUnit <= 57 || codeUnit >= 65 && codeUnit <= 90 || codeUnit >= 97 && codeUnit <= 122) { result += string.charAt(index); continue; } result += "\\" + string.charAt(index); } return result; } var escape_selector_default = escapeSelector; // lib/core/utils/get-shadow-selector.js function getShadowSelector(generateSelector, elm, options = {}) { if (!elm) { return ""; } let doc = elm.getRootNode && elm.getRootNode() || document; if (doc.nodeType !== 11) { return generateSelector(elm, options, doc); } const stack = []; while (doc.nodeType === 11) { if (!doc.host) { return ""; } stack.unshift({elm, doc}); elm = doc.host; doc = elm.getRootNode(); } stack.unshift({elm, doc}); return stack.map((item) => generateSelector(item.elm, options, item.doc)); } // lib/core/utils/get-ancestry.js function generateAncestry(node) { const nodeName = escape_selector_default(node.nodeName.toLowerCase()); const parentElement = node.parentElement; const parentNode = node.parentNode; let nthChild = ""; if (nodeName !== "head" && nodeName !== "body" && parentNode?.children.length > 1) { const index = Array.prototype.indexOf.call(parentNode.children, node) + 1; nthChild = `:nth-child(${index})`; } if (!parentElement) { return nodeName + nthChild; } return generateAncestry(parentElement) + " > " + nodeName + nthChild; } function getAncestry(elm, options) { return getShadowSelector(generateAncestry, elm, options); } // lib/core/utils/is-shadow-root.js var possibleShadowRoots = [ "article", "aside", "blockquote", "body", "div", "footer", "h1", "h2", "h3", "h4", "h5", "h6", "header", "main", "nav", "p", "section", "span" ]; function isShadowRoot(node) { if (node.shadowRoot) { const nodeName = node.nodeName.toLowerCase(); if (possibleShadowRoots.includes(nodeName) || isValidCustomElementName(nodeName)) { return true; } } return false; } var is_shadow_root_default = isShadowRoot; // lib/gather-internals/walk-tree.js var elementInternalsMap = []; var ariaPropRegex = /^aria[A-Z]/; var propsToCapture = ["role", "labels", "form"]; function walkTree(tree = document.body) { const treeWalker = document.createTreeWalker(tree, globalThis.NodeFilter.SHOW_ELEMENT, null, false); let node = treeWalker.currentNode; while (node) { const elementInternals = getElementInternals(node); if (elementInternals) { const ancestry = getAncestry(node); const internals = {}; for (const prop in elementInternals) { if (!ariaPropRegex.test(prop) && !propsToCapture.includes(prop)) { continue; } try { const value = elementInternals[prop]; if (value === null) { continue; } if (value instanceof globalThis.HTMLElement) { internals[prop] = value.isConnected ? {type: "HTMLElement", value: getAncestry(value)} : void 0; } else if (Array.isArray(value) || value instanceof globalThis.NodeList) { const array = Array.from(value).filter((n) => n.isConnected); internals[prop] = array.length ? {type: "NodeList", value: array.map((n) => getAncestry(n))} : void 0; } else if (typeof value === "string") { internals[prop] = value; } } catch { } } elementInternalsMap.push({ ancestry, internals }); } if (is_shadow_root_default(node)) { walkTree(node.shadowRoot); } node = treeWalker.nextNode(); } } return require_main(); })(); return elementInternalsMap; })();