hypha-debugger 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"hypha-debugger.mjs","sources":["../src/ui/styles.ts","../src/ui/overlay.ts","../src/ui/cursor.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/services/skill.ts","../src/utils/wrap-fn.ts","../src/page-controller/dom-tree.js","../src/page-controller/dom.ts","../src/page-controller/actions.ts","../src/page-controller/page-info.ts","../src/page-controller/index.ts","../src/services/page-controller.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null,"/**\n * @file port from browser-use\n * @see https://github.com/browser-use/browser-use/commits/main/browser_use/dom/dom_tree/index.js\n * @match 0.5.9 d51b6e73daff7165fdd3e44debd667e7f5f7fdc5\n *\n * search @edit for all the changed lines.\n *\n * @edit export\n * @edit add interactiveBlacklist interactiveWhitelist\n * @edit adjustable opacity\n * @edit direct dom ref\n * @edit @workaround input.checked\n * @edit smaller zIndex for highlight\n * @edit no need for xpath\n * @edit add `extra` field for extra data\n * @edit scrollable element detection\n * @edit add `data-browser-use-ignore` attribute\n * @edit improve `sampleRect`, filter out rects with 0 area\n * @edit exclude aria-hidden elements\n * @edit make sure attributes exist for interactive candidates.\n */\n\nexport default (\n\targs = {\n\t\tdoHighlightElements: true,\n\t\tfocusHighlightIndex: -1,\n\t\tviewportExpansion: 0,\n\t\tdebugMode: false,\n\n\t\t/**\n\t\t * @edit\n\t\t */\n\t\t/** @type {Element[]} */\n\t\tinteractiveBlacklist: [],\n\t\t/** @type {Element[]} */\n\t\tinteractiveWhitelist: [],\n\t\thighlightOpacity: 0.1,\n\t\thighlightLabelOpacity: 0.5,\n\t}\n) => {\n\t/**\n\t * @edit\n\t */\n\tconst { interactiveBlacklist, interactiveWhitelist, highlightOpacity, highlightLabelOpacity } =\n\t\targs\n\n\tconst { doHighlightElements, focusHighlightIndex, viewportExpansion, debugMode } = args\n\tlet highlightIndex = 0 // Reset highlight index\n\n\t/**\n\t * @edit add `extra` field for extra data\n\t */\n\tconst extraData = new WeakMap()\n\tfunction addExtraData(element, data) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return\n\t\textraData.set(element, { ...extraData.get(element), ...data })\n\t}\n\n\t// Add caching mechanisms at the top level\n\tconst DOM_CACHE = {\n\t\tboundingRects: new WeakMap(),\n\t\tclientRects: new WeakMap(),\n\t\tcomputedStyles: new WeakMap(),\n\t\tclearCache: () => {\n\t\t\tDOM_CACHE.boundingRects = new WeakMap()\n\t\t\tDOM_CACHE.clientRects = new WeakMap()\n\t\t\tDOM_CACHE.computedStyles = new WeakMap()\n\t\t},\n\t}\n\n\t/**\n\t * Gets the cached bounding rect for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the bounding rect for.\n\t * @returns {DOMRect | null} The cached bounding rect, or null if the element is not found.\n\t */\n\tfunction getCachedBoundingRect(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.boundingRects.has(element)) {\n\t\t\treturn DOM_CACHE.boundingRects.get(element)\n\t\t}\n\n\t\tconst rect = element.getBoundingClientRect()\n\n\t\tif (rect) {\n\t\t\tDOM_CACHE.boundingRects.set(element, rect)\n\t\t}\n\t\treturn rect\n\t}\n\n\t/**\n\t * Gets the cached computed style for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the computed style for.\n\t * @returns {CSSStyleDeclaration | null} The cached computed style, or null if the element is not found.\n\t */\n\tfunction getCachedComputedStyle(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.computedStyles.has(element)) {\n\t\t\treturn DOM_CACHE.computedStyles.get(element)\n\t\t}\n\n\t\tconst style = window.getComputedStyle(element)\n\n\t\tif (style) {\n\t\t\tDOM_CACHE.computedStyles.set(element, style)\n\t\t}\n\t\treturn style\n\t}\n\n\t/**\n\t * Gets the cached client rects for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the client rects for.\n\t * @returns {DOMRectList | null} The cached client rects, or null if the element is not found.\n\t */\n\tfunction getCachedClientRects(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.clientRects.has(element)) {\n\t\t\treturn DOM_CACHE.clientRects.get(element)\n\t\t}\n\n\t\tconst rects = element.getClientRects()\n\n\t\tif (rects) {\n\t\t\tDOM_CACHE.clientRects.set(element, rects)\n\t\t}\n\t\treturn rects\n\t}\n\n\t/**\n\t * Hash map of DOM nodes indexed by their highlight index.\n\t *\n\t * @type {Object<string, any>}\n\t */\n\tconst DOM_HASH_MAP = {}\n\n\tconst ID = { current: 0 }\n\n\tconst HIGHLIGHT_CONTAINER_ID = 'playwright-highlight-container'\n\n\t// Add a WeakMap cache for XPath strings\n\tconst xpathCache = new WeakMap()\n\n\t// // Initialize once and reuse\n\t// const viewportObserver = new IntersectionObserver(\n\t// (entries) => {\n\t// entries.forEach(entry => {\n\t// elementVisibilityMap.set(entry.target, entry.isIntersecting);\n\t// });\n\t// },\n\t// { rootMargin: `${viewportExpansion}px` }\n\t// );\n\n\t/**\n\t * Highlights an element in the DOM and returns the index of the next element.\n\t *\n\t * @param {HTMLElement} element - The element to highlight.\n\t * @param {number} index - The index of the element.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @returns {number} The index of the next element.\n\t */\n\tfunction highlightElement(element, index, parentIframe = null) {\n\t\tif (!element) return index\n\n\t\tconst overlays = []\n\t\t/**\n\t\t * @type {HTMLElement | null}\n\t\t */\n\t\tlet label = null\n\t\tlet labelWidth = 20\n\t\tlet labelHeight = 16\n\t\tlet cleanupFn = null\n\n\t\ttry {\n\t\t\t// Create or get highlight container\n\t\t\tlet container = document.getElementById(HIGHLIGHT_CONTAINER_ID)\n\t\t\tif (!container) {\n\t\t\t\tcontainer = document.createElement('div')\n\t\t\t\tcontainer.id = HIGHLIGHT_CONTAINER_ID\n\t\t\t\tcontainer.style.position = 'fixed'\n\t\t\t\tcontainer.style.pointerEvents = 'none'\n\t\t\t\tcontainer.style.top = '0'\n\t\t\t\tcontainer.style.left = '0'\n\t\t\t\tcontainer.style.width = '100%'\n\t\t\t\tcontainer.style.height = '100%'\n\n\t\t\t\t/**\n\t\t\t\t * @edit smaller zIndex for highlight\n\t\t\t\t */\n\t\t\t\t// Use the maximum valid value in zIndex to ensure the element is not blocked by overlapping elements.\n\t\t\t\t// container.style.zIndex = \"2147483647\";\n\t\t\t\tcontainer.style.zIndex = '2147483640'\n\n\t\t\t\tcontainer.style.backgroundColor = 'transparent'\n\t\t\t\tdocument.body.appendChild(container)\n\t\t\t}\n\n\t\t\t// Get element client rects\n\t\t\tconst rects = element.getClientRects() // Use getClientRects()\n\n\t\t\tif (!rects || rects.length === 0) return index // Exit if no rects\n\n\t\t\t// Generate a color based on the index\n\t\t\tconst colors = [\n\t\t\t\t'#FF0000',\n\t\t\t\t'#00FF00',\n\t\t\t\t'#0000FF',\n\t\t\t\t'#FFA500',\n\t\t\t\t'#800080',\n\t\t\t\t'#008080',\n\t\t\t\t'#FF69B4',\n\t\t\t\t'#4B0082',\n\t\t\t\t'#FF4500',\n\t\t\t\t'#2E8B57',\n\t\t\t\t'#DC143C',\n\t\t\t\t'#4682B4',\n\t\t\t]\n\t\t\tconst colorIndex = index % colors.length\n\t\t\tlet baseColor = colors[colorIndex]\n\n\t\t\t/**\n\t\t\t * @edit adjustable opacity\n\t\t\t */\n\t\t\t// const backgroundColor = baseColor + \"1A\"; // 10% opacity version of the color\n\t\t\tconst backgroundColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\t\t\tbaseColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightLabelOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\n\t\t\t// Get iframe offset if necessary\n\t\t\tlet iframeOffset = { x: 0, y: 0 }\n\t\t\tif (parentIframe) {\n\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe offset\n\t\t\t\tiframeOffset.x = iframeRect.left\n\t\t\t\tiframeOffset.y = iframeRect.top\n\t\t\t}\n\n\t\t\t// Create fragment to hold overlay elements\n\t\t\tconst fragment = document.createDocumentFragment()\n\n\t\t\t// Create highlight overlays for each client rect\n\t\t\tfor (const rect of rects) {\n\t\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\t\tconst overlay = document.createElement('div')\n\t\t\t\toverlay.style.position = 'fixed'\n\t\t\t\toverlay.style.border = `2px solid ${baseColor}`\n\t\t\t\toverlay.style.backgroundColor = backgroundColor\n\t\t\t\toverlay.style.pointerEvents = 'none'\n\t\t\t\toverlay.style.boxSizing = 'border-box'\n\n\t\t\t\tconst top = rect.top + iframeOffset.y\n\t\t\t\tconst left = rect.left + iframeOffset.x\n\n\t\t\t\toverlay.style.top = `${top}px`\n\t\t\t\toverlay.style.left = `${left}px`\n\t\t\t\toverlay.style.width = `${rect.width}px`\n\t\t\t\toverlay.style.height = `${rect.height}px`\n\n\t\t\t\tfragment.appendChild(overlay)\n\t\t\t\toverlays.push({ element: overlay, initialRect: rect }) // Store overlay and its rect\n\t\t\t}\n\n\t\t\t// Create and position a single label relative to the first rect\n\t\t\tconst firstRect = rects[0]\n\t\t\tlabel = document.createElement('div')\n\t\t\tlabel.className = 'playwright-highlight-label'\n\t\t\tlabel.style.position = 'fixed'\n\t\t\tlabel.style.background = baseColor\n\t\t\tlabel.style.color = 'white'\n\t\t\tlabel.style.padding = '1px 4px'\n\t\t\tlabel.style.borderRadius = '4px'\n\t\t\tlabel.style.fontSize = `${Math.min(12, Math.max(8, firstRect.height / 2))}px`\n\t\t\tlabel.textContent = index.toString()\n\n\t\t\tlabelWidth = label.offsetWidth > 0 ? label.offsetWidth : labelWidth // Update actual width if possible\n\t\t\tlabelHeight = label.offsetHeight > 0 ? label.offsetHeight : labelHeight // Update actual height if possible\n\n\t\t\tconst firstRectTop = firstRect.top + iframeOffset.y\n\t\t\tconst firstRectLeft = firstRect.left + iframeOffset.x\n\n\t\t\tlet labelTop = firstRectTop + 2\n\t\t\tlet labelLeft = firstRectLeft + firstRect.width - labelWidth - 2\n\n\t\t\t// Adjust label position if first rect is too small\n\t\t\tif (firstRect.width < labelWidth + 4 || firstRect.height < labelHeight + 4) {\n\t\t\t\tlabelTop = firstRectTop - labelHeight - 2\n\t\t\t\tlabelLeft = firstRectLeft + firstRect.width - labelWidth // Align with right edge\n\t\t\t\tif (labelLeft < iframeOffset.x) labelLeft = firstRectLeft // Prevent going off-left\n\t\t\t}\n\n\t\t\t// Ensure label stays within viewport bounds slightly better\n\t\t\tlabelTop = Math.max(0, Math.min(labelTop, window.innerHeight - labelHeight))\n\t\t\tlabelLeft = Math.max(0, Math.min(labelLeft, window.innerWidth - labelWidth))\n\n\t\t\tlabel.style.top = `${labelTop}px`\n\t\t\tlabel.style.left = `${labelLeft}px`\n\n\t\t\tfragment.appendChild(label)\n\n\t\t\t// Update positions on scroll/resize\n\t\t\tconst updatePositions = () => {\n\t\t\t\tconst newRects = element.getClientRects() // Get fresh rects\n\t\t\t\tlet newIframeOffset = { x: 0, y: 0 }\n\n\t\t\t\tif (parentIframe) {\n\t\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe\n\t\t\t\t\tnewIframeOffset.x = iframeRect.left\n\t\t\t\t\tnewIframeOffset.y = iframeRect.top\n\t\t\t\t}\n\n\t\t\t\t// Update each overlay\n\t\t\t\toverlays.forEach((overlayData, i) => {\n\t\t\t\t\tif (i < newRects.length) {\n\t\t\t\t\t\t// Check if rect still exists\n\t\t\t\t\t\tconst newRect = newRects[i]\n\t\t\t\t\t\tconst newTop = newRect.top + newIframeOffset.y\n\t\t\t\t\t\tconst newLeft = newRect.left + newIframeOffset.x\n\n\t\t\t\t\t\toverlayData.element.style.top = `${newTop}px`\n\t\t\t\t\t\toverlayData.element.style.left = `${newLeft}px`\n\t\t\t\t\t\toverlayData.element.style.width = `${newRect.width}px`\n\t\t\t\t\t\toverlayData.element.style.height = `${newRect.height}px`\n\t\t\t\t\t\toverlayData.element.style.display =\n\t\t\t\t\t\t\tnewRect.width === 0 || newRect.height === 0 ? 'none' : 'block'\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If fewer rects now, hide extra overlays\n\t\t\t\t\t\toverlayData.element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t// If there are fewer new rects than overlays, hide the extras\n\t\t\t\tif (newRects.length < overlays.length) {\n\t\t\t\t\tfor (let i = newRects.length; i < overlays.length; i++) {\n\t\t\t\t\t\toverlays[i].element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Update label position based on the first new rect\n\t\t\t\tif (label && newRects.length > 0) {\n\t\t\t\t\tconst firstNewRect = newRects[0]\n\t\t\t\t\tconst firstNewRectTop = firstNewRect.top + newIframeOffset.y\n\t\t\t\t\tconst firstNewRectLeft = firstNewRect.left + newIframeOffset.x\n\n\t\t\t\t\tlet newLabelTop = firstNewRectTop + 2\n\t\t\t\t\tlet newLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth - 2\n\n\t\t\t\t\tif (firstNewRect.width < labelWidth + 4 || firstNewRect.height < labelHeight + 4) {\n\t\t\t\t\t\tnewLabelTop = firstNewRectTop - labelHeight - 2\n\t\t\t\t\t\tnewLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth\n\t\t\t\t\t\tif (newLabelLeft < newIframeOffset.x) newLabelLeft = firstNewRectLeft\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure label stays within viewport bounds\n\t\t\t\t\tnewLabelTop = Math.max(0, Math.min(newLabelTop, window.innerHeight - labelHeight))\n\t\t\t\t\tnewLabelLeft = Math.max(0, Math.min(newLabelLeft, window.innerWidth - labelWidth))\n\n\t\t\t\t\tlabel.style.top = `${newLabelTop}px`\n\t\t\t\t\tlabel.style.left = `${newLabelLeft}px`\n\t\t\t\t\tlabel.style.display = 'block'\n\t\t\t\t} else if (label) {\n\t\t\t\t\t// Hide label if element has no rects anymore\n\t\t\t\t\tlabel.style.display = 'none'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttleFunction = (func, delay) => {\n\t\t\t\tlet lastCall = 0\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tconst now = performance.now()\n\t\t\t\t\tif (now - lastCall < delay) return\n\t\t\t\t\tlastCall = now\n\t\t\t\t\treturn func(...args)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttledUpdatePositions = throttleFunction(updatePositions, 16) // ~60fps\n\t\t\twindow.addEventListener('scroll', throttledUpdatePositions, true)\n\t\t\twindow.addEventListener('resize', throttledUpdatePositions)\n\n\t\t\t// Add cleanup function\n\t\t\tcleanupFn = () => {\n\t\t\t\twindow.removeEventListener('scroll', throttledUpdatePositions, true)\n\t\t\t\twindow.removeEventListener('resize', throttledUpdatePositions)\n\t\t\t\t// Remove overlay elements if needed\n\t\t\t\toverlays.forEach((overlay) => overlay.element.remove())\n\t\t\t\tif (label) label.remove()\n\t\t\t}\n\n\t\t\t// Then add fragment to container in one operation\n\t\t\tcontainer.appendChild(fragment)\n\n\t\t\treturn index + 1\n\t\t} finally {\n\t\t\t// Store cleanup function for later use\n\t\t\tif (cleanupFn) {\n\t\t\t\t// Keep a reference to cleanup functions in a global array\n\t\t\t\t;(window._highlightCleanupFunctions = window._highlightCleanupFunctions || []).push(\n\t\t\t\t\tcleanupFn\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t// // Add this function to perform cleanup when needed\n\t// function cleanupHighlights() {\n\t// if (window._highlightCleanupFunctions && window._highlightCleanupFunctions.length) {\n\t// window._highlightCleanupFunctions.forEach(fn => fn());\n\t// window._highlightCleanupFunctions = [];\n\t// }\n\n\t// // Also remove the container\n\t// const container = document.getElementById(HIGHLIGHT_CONTAINER_ID);\n\t// if (container) container.remove();\n\t// }\n\n\t/**\n\t * Gets the position of an element in its parent.\n\t *\n\t * @param {HTMLElement} currentElement - The element to get the position for.\n\t * @returns {number} The position of the element in its parent.\n\t */\n\tfunction getElementPosition(currentElement) {\n\t\tif (!currentElement.parentElement) {\n\t\t\treturn 0 // No parent means no siblings\n\t\t}\n\n\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\n\t\tconst siblings = Array.from(currentElement.parentElement.children).filter(\n\t\t\t(sib) => sib.nodeName.toLowerCase() === tagName\n\t\t)\n\n\t\tif (siblings.length === 1) {\n\t\t\treturn 0 // Only element of its type\n\t\t}\n\n\t\tconst index = siblings.indexOf(currentElement) + 1 // 1-based index\n\t\treturn index\n\t}\n\n\tfunction getXPathTree(element, stopAtBoundary = true) {\n\t\tif (xpathCache.has(element)) return xpathCache.get(element)\n\n\t\tconst segments = []\n\t\tlet currentElement = element\n\n\t\twhile (currentElement && currentElement.nodeType === Node.ELEMENT_NODE) {\n\t\t\t// Stop if we hit a shadow root or iframe\n\t\t\tif (\n\t\t\t\tstopAtBoundary &&\n\t\t\t\t(currentElement.parentNode instanceof ShadowRoot ||\n\t\t\t\t\tcurrentElement.parentNode instanceof HTMLIFrameElement)\n\t\t\t) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst position = getElementPosition(currentElement)\n\t\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\t\t\tconst xpathIndex = position > 0 ? `[${position}]` : ''\n\t\t\tsegments.unshift(`${tagName}${xpathIndex}`)\n\n\t\t\tcurrentElement = currentElement.parentNode\n\t\t}\n\n\t\tconst result = segments.join('/')\n\t\txpathCache.set(element, result)\n\t\treturn result\n\t}\n\n\t/**\n\t * @edit scrollable element detection\n\t * Checks if an element is scrollable. if so, return the scrollable distance on each direction (left right top bottom). if not return null.\n\t * @note distance smaller than 4 will be considered as not scrollable.\n\t * @note only check block elements, not inline elements.\n\t */\n\tfunction isScrollableElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn null // Not a valid element\n\t\t}\n\n\t\tconst style = getCachedComputedStyle(element)\n\t\tif (!style) return null\n\n\t\t// Check if the element is a block-level element\n\t\tconst display = style.display\n\t\tif (display === 'inline' || display === 'inline-block') {\n\t\t\treturn null // Not a block-level element\n\t\t}\n\n\t\t// Check overflow properties\n\t\tconst overflowX = style.overflowX\n\t\tconst overflowY = style.overflowY\n\n\t\t// Check scrollable distances\n\t\tconst scrollableX = overflowX === 'auto' || overflowX === 'scroll'\n\t\tconst scrollableY = overflowY === 'auto' || overflowY === 'scroll'\n\n\t\tif (!scrollableX && !scrollableY) {\n\t\t\treturn null // Not scrollable in any direction\n\t\t}\n\n\t\tconst scrollWidth = element.scrollWidth - element.clientWidth\n\t\tconst scrollHeight = element.scrollHeight - element.clientHeight\n\n\t\t// Consider small distances as not scrollable\n\t\tconst threshold = 4\n\n\t\tif (scrollWidth < threshold && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable\n\t\t}\n\n\t\tif (!scrollableY && scrollWidth < threshold) {\n\t\t\treturn null // Not scrollable horizontally\n\t\t}\n\n\t\tif (!scrollableX && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable vertically\n\t\t}\n\n\t\tconst distanceToTop = element.scrollTop\n\t\tconst distanceToLeft = element.scrollLeft\n\t\tconst distanceToRight = element.scrollWidth - element.clientWidth - element.scrollLeft\n\t\tconst distanceToBottom = element.scrollHeight - element.clientHeight - element.scrollTop\n\n\t\tconst scrollData = {\n\t\t\ttop: distanceToTop,\n\t\t\tright: distanceToRight,\n\t\t\tbottom: distanceToBottom,\n\t\t\tleft: distanceToLeft,\n\t\t}\n\n\t\t// Store extra data for the element\n\t\taddExtraData(element, {\n\t\t\tscrollable: true,\n\t\t\tscrollData: scrollData,\n\t\t})\n\n\t\treturn scrollData\n\t}\n\n\t/**\n\t * Checks if a text node is visible.\n\t *\n\t * @param {Text} textNode - The text node to check.\n\t * @returns {boolean} Whether the text node is visible.\n\t */\n\tfunction isTextNodeVisible(textNode) {\n\t\ttry {\n\t\t\t// Special case: when viewportExpansion is -1, consider all text nodes as visible\n\t\t\tif (viewportExpansion === -1) {\n\t\t\t\t// Still check parent visibility for basic filtering\n\t\t\t\tconst parentElement = textNode.parentElement\n\t\t\t\tif (!parentElement) return false\n\n\t\t\t\ttry {\n\t\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t\t})\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(textNode)\n\t\t\tconst rects = range.getClientRects() // Use getClientRects for Range\n\n\t\t\tif (!rects || rects.length === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet isAnyRectVisible = false\n\t\t\tlet isAnyRectInViewport = false\n\n\t\t\tfor (const rect of rects) {\n\t\t\t\t// Check size\n\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\tisAnyRectVisible = true\n\n\t\t\t\t\t// Viewport check for this rect\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(\n\t\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tisAnyRectInViewport = true\n\t\t\t\t\t\tbreak // Found a visible rect in viewport, no need to check others\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!isAnyRectVisible || !isAnyRectInViewport) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check parent visibility\n\t\t\tconst parentElement = textNode.parentElement\n\t\t\tif (!parentElement) return false\n\n\t\t\ttry {\n\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error checking text node visibility:', e)\n\t\t\treturn false\n\t\t}\n\t}\n\n\t/**\n\t * Checks if an element is accepted.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is accepted.\n\t */\n\tfunction isElementAccepted(element) {\n\t\tif (!element || !element.tagName) return false\n\n\t\t// Always accept body and common container elements\n\t\tconst alwaysAccept = new Set([\n\t\t\t'body',\n\t\t\t'div',\n\t\t\t'main',\n\t\t\t'article',\n\t\t\t'section',\n\t\t\t'nav',\n\t\t\t'header',\n\t\t\t'footer',\n\t\t])\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\tif (alwaysAccept.has(tagName)) return true\n\n\t\tconst leafElementDenyList = new Set([\n\t\t\t'svg',\n\t\t\t'script',\n\t\t\t'style',\n\t\t\t'link',\n\t\t\t'meta',\n\t\t\t'noscript',\n\t\t\t'template',\n\t\t])\n\n\t\treturn !leafElementDenyList.has(tagName)\n\t}\n\n\t/**\n\t * Checks if an element is visible.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is visible.\n\t */\n\tfunction isElementVisible(element) {\n\t\tconst style = getCachedComputedStyle(element)\n\t\treturn (\n\t\t\telement.offsetWidth > 0 &&\n\t\t\telement.offsetHeight > 0 &&\n\t\t\tstyle?.visibility !== 'hidden' &&\n\t\t\tstyle?.display !== 'none'\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element is interactive.\n\t *\n\t * lots of comments, and uncommented code - to show the logic of what we already tried\n\t *\n\t * One of the things we tried at the beginning was also to use event listeners, and other fancy class, style stuff -> what actually worked best was just combining most things with computed cursor style :)\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t */\n\tfunction isInteractiveElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * @edit add interactiveBlacklist interactiveWhitelist\n\t\t */\n\t\tif (interactiveBlacklist.includes(element)) {\n\t\t\treturn false // Skip blacklisted elements\n\t\t}\n\t\tif (interactiveWhitelist.includes(element)) {\n\t\t\treturn true // Skip whitelisted elements\n\t\t}\n\n\t\t// Cache the tagName and style lookups\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst style = getCachedComputedStyle(element)\n\n\t\t// Define interactive cursors\n\t\tconst interactiveCursors = new Set([\n\t\t\t'pointer', // Link/clickable elements\n\t\t\t'move', // Movable elements\n\t\t\t'text', // Text selection\n\t\t\t'grab', // Grabbable elements\n\t\t\t'grabbing', // Currently grabbing\n\t\t\t'cell', // Table cell selection\n\t\t\t'copy', // Copy operation\n\t\t\t'alias', // Alias creation\n\t\t\t'all-scroll', // Scrollable content\n\t\t\t'col-resize', // Column resize\n\t\t\t'context-menu', // Context menu available\n\t\t\t'crosshair', // Precise selection\n\t\t\t'e-resize', // East resize\n\t\t\t'ew-resize', // East-west resize\n\t\t\t'help', // Help available\n\t\t\t'n-resize', // North resize\n\t\t\t'ne-resize', // Northeast resize\n\t\t\t'nesw-resize', // Northeast-southwest resize\n\t\t\t'ns-resize', // North-south resize\n\t\t\t'nw-resize', // Northwest resize\n\t\t\t'nwse-resize', // Northwest-southeast resize\n\t\t\t'row-resize', // Row resize\n\t\t\t's-resize', // South resize\n\t\t\t'se-resize', // Southeast resize\n\t\t\t'sw-resize', // Southwest resize\n\t\t\t'vertical-text', // Vertical text selection\n\t\t\t'w-resize', // West resize\n\t\t\t'zoom-in', // Zoom in\n\t\t\t'zoom-out', // Zoom out\n\t\t])\n\n\t\t// Define non-interactive cursors\n\t\tconst nonInteractiveCursors = new Set([\n\t\t\t'not-allowed', // Action not allowed\n\t\t\t'no-drop', // Drop not allowed\n\t\t\t'wait', // Processing\n\t\t\t'progress', // In progress\n\t\t\t'initial', // Initial value\n\t\t\t'inherit', // Inherited value\n\t\t\t//? Let's just include all potentially clickable elements that are not specifically blocked\n\t\t\t// 'none', // No cursor\n\t\t\t// 'default', // Default cursor\n\t\t\t// 'auto', // Browser default\n\t\t])\n\n\t\t/**\n\t\t * Checks if an element has an interactive pointer.\n\t\t *\n\t\t * @param {HTMLElement} element - The element to check.\n\t\t * @returns {boolean} Whether the element has an interactive pointer.\n\t\t */\n\t\tfunction doesElementHaveInteractivePointer(element) {\n\t\t\tif (element.tagName.toLowerCase() === 'html') return false\n\n\t\t\tif (style?.cursor && interactiveCursors.has(style.cursor)) return true\n\n\t\t\treturn false\n\t\t}\n\n\t\tlet isInteractiveCursor = doesElementHaveInteractivePointer(element)\n\n\t\t// Genius fix for almost all interactive elements\n\t\tif (isInteractiveCursor) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveElements = new Set([\n\t\t\t'a', // Links\n\t\t\t'button', // Buttons\n\t\t\t'input', // All input types (text, checkbox, radio, etc.)\n\t\t\t'select', // Dropdown menus\n\t\t\t'textarea', // Text areas\n\t\t\t'details', // Expandable details\n\t\t\t'summary', // Summary element (clickable part of details)\n\t\t\t'label', // Form labels (often clickable)\n\t\t\t'option', // Select options\n\t\t\t'optgroup', // Option groups\n\t\t\t'fieldset', // Form fieldsets (can be interactive with legend)\n\t\t\t'legend', // Fieldset legends\n\t\t])\n\n\t\t// Define explicit disable attributes and properties\n\t\tconst explicitDisableTags = new Set([\n\t\t\t'disabled', // Standard disabled attribute\n\t\t\t// 'aria-disabled', // ARIA disabled state\n\t\t\t'readonly', // Read-only state\n\t\t\t// 'aria-readonly', // ARIA read-only state\n\t\t\t// 'aria-hidden', // Hidden from accessibility\n\t\t\t// 'hidden', // Hidden attribute\n\t\t\t// 'inert', // Inert attribute\n\t\t\t// 'aria-inert', // ARIA inert state\n\t\t\t// 'tabindex=\"-1\"', // Removed from tab order\n\t\t\t// 'aria-hidden=\"true\"' // Hidden from screen readers\n\t\t])\n\n\t\t// handle inputs, select, checkbox, radio, textarea, button and make sure they are not cursor style disabled/not-allowed\n\t\tif (interactiveElements.has(tagName)) {\n\t\t\t// Check for non-interactive cursor\n\t\t\tif (style?.cursor && nonInteractiveCursors.has(style.cursor)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for explicit disable attributes\n\t\t\tfor (const disableTag of explicitDisableTags) {\n\t\t\t\tif (\n\t\t\t\t\telement.hasAttribute(disableTag) ||\n\t\t\t\t\telement.getAttribute(disableTag) === 'true' ||\n\t\t\t\t\telement.getAttribute(disableTag) === ''\n\t\t\t\t) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check for disabled property on form elements\n\t\t\tif (element.disabled) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for readonly property on form elements\n\t\t\tif (element.readOnly) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for inert property\n\t\t\tif (element.inert) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\tconst role = element.getAttribute('role')\n\t\tconst ariaRole = element.getAttribute('aria-role')\n\n\t\t// Check for contenteditable attribute\n\t\tif (element.getAttribute('contenteditable') === 'true' || element.isContentEditable) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Added enhancement to capture dropdown interactive elements\n\t\tif (\n\t\t\telement.classList &&\n\t\t\t(element.classList.contains('button') ||\n\t\t\t\telement.classList.contains('dropdown-toggle') ||\n\t\t\t\telement.getAttribute('data-index') ||\n\t\t\t\telement.getAttribute('data-toggle') === 'dropdown' ||\n\t\t\t\telement.getAttribute('aria-haspopup') === 'true')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveRoles = new Set([\n\t\t\t'button', // Directly clickable element\n\t\t\t// 'link', // Clickable link\n\t\t\t'menu', // Menu container (ARIA menus)\n\t\t\t'menubar', // Menu bar container\n\t\t\t'menuitem', // Clickable menu item\n\t\t\t'menuitemradio', // Radio-style menu item (selectable)\n\t\t\t'menuitemcheckbox', // Checkbox-style menu item (toggleable)\n\t\t\t'radio', // Radio button (selectable)\n\t\t\t'checkbox', // Checkbox (toggleable)\n\t\t\t'tab', // Tab (clickable to switch content)\n\t\t\t'switch', // Toggle switch (clickable to change state)\n\t\t\t'slider', // Slider control (draggable)\n\t\t\t'spinbutton', // Number input with up/down controls\n\t\t\t'combobox', // Dropdown with text input\n\t\t\t'searchbox', // Search input field\n\t\t\t'textbox', // Text input field\n\t\t\t'listbox', // Selectable list\n\t\t\t'option', // Selectable option in a list\n\t\t\t'scrollbar', // Scrollable control\n\t\t])\n\n\t\t// Basic role/attribute checks\n\t\tconst hasInteractiveRole =\n\t\t\tinteractiveElements.has(tagName) ||\n\t\t\t(role && interactiveRoles.has(role)) ||\n\t\t\t(ariaRole && interactiveRoles.has(ariaRole))\n\n\t\tif (hasInteractiveRole) return true\n\n\t\t// check whether element has event listeners by window.getEventListeners\n\t\ttry {\n\t\t\tif (typeof getEventListeners === 'function') {\n\t\t\t\tconst listeners = getEventListeners(element)\n\t\t\t\tconst mouseEvents = ['click', 'mousedown', 'mouseup', 'dblclick']\n\t\t\t\tfor (const eventType of mouseEvents) {\n\t\t\t\t\tif (listeners[eventType] && listeners[eventType].length > 0) {\n\t\t\t\t\t\treturn true // Found a mouse interaction listener\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListeners doesn't work in page.evaluate context)\n\t\t\tconst commonMouseAttrs = ['onclick', 'onmousedown', 'onmouseup', 'ondblclick']\n\t\t\tfor (const attr of commonMouseAttrs) {\n\t\t\t\tif (element.hasAttribute(attr) || typeof element[attr] === 'function') {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t/**\n\t\t * @edit scrollable element detection\n\t\t */\n\t\tif (isScrollableElement(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\t/**\n\t * Checks if an element is the topmost element at its position.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is the topmost element at its position.\n\t */\n\tfunction isTopElement(element) {\n\t\t// Special case: when viewportExpansion is -1, consider all elements as \"top\" elements\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = getCachedClientRects(element) // Replace element.getClientRects()\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\treturn false // No geometry, cannot be top\n\t\t}\n\n\t\tlet isAnyRectInViewport = false\n\t\tfor (const rect of rects) {\n\t\t\t// Use the same logic as isInExpandedViewport check\n\t\t\tif (\n\t\t\t\trect.width > 0 &&\n\t\t\t\trect.height > 0 &&\n\t\t\t\t!(\n\t\t\t\t\t// Only check non-empty rects\n\t\t\t\t\t(\n\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tisAnyRectInViewport = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (!isAnyRectInViewport) {\n\t\t\treturn false // All rects are outside the viewport area\n\t\t}\n\n\t\t// Find the correct document context and root element\n\t\tlet doc = element.ownerDocument\n\n\t\t// If we're in an iframe, elements are considered top by default\n\t\tif (doc !== window.document) {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * @edit improve `sampleRect`, filter out rects with 0 area\n\t\t */\n\t\t// find a rect that has width and height as sample\n\t\tlet rect = Array.from(rects).find((r) => r.width > 0 && r.height > 0)\n\t\tif (!rect) {\n\t\t\treturn false // No valid rect found\n\t\t}\n\n\t\t// For shadow DOM, we need to check within its own root context\n\t\tconst shadowRoot = element.getRootNode()\n\t\tif (shadowRoot instanceof ShadowRoot) {\n\t\t\tconst centerX = rect.left + rect.width / 2\n\t\t\tconst centerY = rect.top + rect.height / 2\n\n\t\t\ttry {\n\t\t\t\tconst topEl = shadowRoot.elementFromPoint(centerX, centerY)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== shadowRoot) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\tconst margin = 5\n\n\t\t// For elements in viewport, check if they're topmost. Do the check in the\n\t\t// center of the element and at the corners to ensure we catch more cases.\n\t\tconst checkPoints = [\n\t\t\t// Initially only this was used, but it was not enough\n\t\t\t{ x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 },\n\t\t\t{ x: rect.left + margin, y: rect.top + margin }, // top left\n\t\t\t// { x: rect.right - margin, y: rect.top + margin }, // top right\n\t\t\t// { x: rect.left + margin, y: rect.bottom - margin }, // bottom left\n\t\t\t{ x: rect.right - margin, y: rect.bottom - margin }, // bottom right\n\t\t]\n\n\t\treturn checkPoints.some(({ x, y }) => {\n\t\t\ttry {\n\t\t\t\tconst topEl = document.elementFromPoint(x, y)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== document.documentElement) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Checks if an element is within the expanded viewport.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @param {number} viewportExpansion - The viewport expansion.\n\t * @returns {boolean} Whether the element is within the expanded viewport.\n\t */\n\tfunction isInExpandedViewport(element, viewportExpansion) {\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = element.getClientRects() // Use getClientRects\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\t// Fallback to getBoundingClientRect if getClientRects is empty,\n\t\t\t// useful for elements like <svg> that might not have client rects but have a bounding box.\n\t\t\tconst boundingRect = getCachedBoundingRect(element)\n\t\t\tif (!boundingRect || boundingRect.width === 0 || boundingRect.height === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn !(\n\t\t\t\tboundingRect.bottom < -viewportExpansion ||\n\t\t\t\tboundingRect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\tboundingRect.right < -viewportExpansion ||\n\t\t\t\tboundingRect.left > window.innerWidth + viewportExpansion\n\t\t\t)\n\t\t}\n\n\t\t// Check if *any* client rect is within the viewport\n\t\tfor (const rect of rects) {\n\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\tif (\n\t\t\t\t!(\n\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn true // Found at least one rect in the viewport\n\t\t\t}\n\t\t}\n\n\t\treturn false // No rects were found in the viewport\n\t}\n\n\t// /**\n\t// * Gets the effective scroll of an element.\n\t// *\n\t// * @param {HTMLElement} element - The element to get the effective scroll for.\n\t// * @returns {Object} The effective scroll of the element.\n\t// */\n\t// function getEffectiveScroll(element) {\n\t// let currentEl = element;\n\t// let scrollX = 0;\n\t// let scrollY = 0;\n\n\t// while (currentEl && currentEl !== document.documentElement) {\n\t// if (currentEl.scrollLeft || currentEl.scrollTop) {\n\t// scrollX += currentEl.scrollLeft;\n\t// scrollY += currentEl.scrollTop;\n\t// }\n\t// currentEl = currentEl.parentElement;\n\t// }\n\n\t// scrollX += window.scrollX;\n\t// scrollY += window.scrollY;\n\n\t// return { scrollX, scrollY };\n\t// }\n\n\t/**\n\t * Checks if an element is an interactive candidate.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is an interactive candidate.\n\t */\n\tfunction isInteractiveCandidate(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\t// Fast-path for common interactive elements\n\t\tconst interactiveElements = new Set([\n\t\t\t'a',\n\t\t\t'button',\n\t\t\t'input',\n\t\t\t'select',\n\t\t\t'textarea',\n\t\t\t'details',\n\t\t\t'summary',\n\t\t\t'label',\n\t\t])\n\n\t\tif (interactiveElements.has(tagName)) return true\n\n\t\t// Quick attribute checks without getting full lists\n\t\tconst hasQuickInteractiveAttr =\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('aria-') ||\n\t\t\telement.hasAttribute('data-action') ||\n\t\t\telement.getAttribute('contenteditable') === 'true'\n\n\t\treturn hasQuickInteractiveAttr\n\t}\n\n\t// --- Define constants for distinct interaction check ---\n\tconst DISTINCT_INTERACTIVE_TAGS = new Set([\n\t\t'a',\n\t\t'button',\n\t\t'input',\n\t\t'select',\n\t\t'textarea',\n\t\t'summary',\n\t\t'details',\n\t\t'label',\n\t\t'option',\n\t])\n\tconst INTERACTIVE_ROLES = new Set([\n\t\t'button',\n\t\t'link',\n\t\t'menuitem',\n\t\t'menuitemradio',\n\t\t'menuitemcheckbox',\n\t\t'radio',\n\t\t'checkbox',\n\t\t'tab',\n\t\t'switch',\n\t\t'slider',\n\t\t'spinbutton',\n\t\t'combobox',\n\t\t'searchbox',\n\t\t'textbox',\n\t\t'listbox',\n\t\t'option',\n\t\t'scrollbar',\n\t])\n\n\t/**\n\t * Heuristically determines if an element should be considered as independently interactive,\n\t * even if it's nested inside another interactive container.\n\t *\n\t * This function helps detect deeply nested actionable elements (e.g., menu items within a button)\n\t * that may not be picked up by strict interactivity checks.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is heuristically interactive.\n\t */\n\tfunction isHeuristicallyInteractive(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\t// Skip non-visible elements early for performance\n\t\tif (!isElementVisible(element)) return false\n\n\t\t// Check for common attributes that often indicate interactivity\n\t\tconst hasInteractiveAttributes =\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\ttypeof element.onclick === 'function'\n\n\t\t// Check for semantic class names suggesting interactivity\n\t\tconst hasInteractiveClass = /\\b(btn|clickable|menu|item|entry|link)\\b/i.test(\n\t\t\telement.className || ''\n\t\t)\n\n\t\t// Determine whether the element is inside a known interactive container\n\t\tconst isInKnownContainer = Boolean(\n\t\t\telement.closest('button,a,[role=\"button\"],.menu,.dropdown,.list,.toolbar')\n\t\t)\n\n\t\t// Ensure the element has at least one visible child (to avoid marking empty wrappers)\n\t\tconst hasVisibleChildren = [...element.children].some(isElementVisible)\n\n\t\t// Avoid highlighting elements whose parent is <body> (top-level wrappers)\n\t\tconst isParentBody = element.parentElement && element.parentElement.isSameNode(document.body)\n\n\t\treturn (\n\t\t\t(isInteractiveElement(element) || hasInteractiveAttributes || hasInteractiveClass) &&\n\t\t\thasVisibleChildren &&\n\t\t\tisInKnownContainer &&\n\t\t\t!isParentBody\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element likely represents a distinct interaction\n\t * separate from its parent (if the parent is also interactive).\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is a distinct interaction.\n\t */\n\tfunction isElementDistinctInteraction(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst role = element.getAttribute('role')\n\n\t\t// Check if it's an iframe - always distinct boundary\n\t\tif (tagName === 'iframe') {\n\t\t\treturn true\n\t\t}\n\n\t\t// Check tag name\n\t\tif (DISTINCT_INTERACTIVE_TAGS.has(tagName)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check interactive roles\n\t\tif (role && INTERACTIVE_ROLES.has(role)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check contenteditable\n\t\tif (element.isContentEditable || element.getAttribute('contenteditable') === 'true') {\n\t\t\treturn true\n\t\t}\n\t\t// Check for common testing/automation attributes\n\t\tif (\n\t\t\telement.hasAttribute('data-testid') ||\n\t\t\telement.hasAttribute('data-cy') ||\n\t\t\telement.hasAttribute('data-test')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\t\t// Check for explicit onclick handler (attribute or property)\n\t\tif (element.hasAttribute('onclick') || typeof element.onclick === 'function') {\n\t\t\treturn true\n\t\t}\n\n\t\t// return false\n\n\t\t// Check for other common interaction event listeners\n\t\ttry {\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListenersForNode doesn't work in page.evaluate context)\n\t\t\tconst commonEventAttrs = [\n\t\t\t\t'onmousedown',\n\t\t\t\t'onmouseup',\n\t\t\t\t'onkeydown',\n\t\t\t\t'onkeyup',\n\t\t\t\t'onsubmit',\n\t\t\t\t'onchange',\n\t\t\t\t'oninput',\n\t\t\t\t'onfocus',\n\t\t\t\t'onblur',\n\t\t\t]\n\t\t\tif (commonEventAttrs.some((attr) => element.hasAttribute(attr))) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t// if the element is not strictly interactive but appears clickable based on heuristic signals\n\t\tif (isHeuristicallyInteractive(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Default to false: if it's interactive but doesn't match above,\n\t\t// assume it triggers the same action as the parent.\n\t\treturn false\n\t}\n\t// --- End distinct interaction check ---\n\n\t/**\n * Handles the logic for deciding whether to highlight an element and performing the highlight.\n * @param {\n {\n tagName: string;\n attributes: Record<string, string>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }} nodeData - The node data object.\n * @param {HTMLElement} node - The node to highlight.\n * @param {HTMLElement | null} parentIframe - The parent iframe node.\n * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n * @returns {boolean} Whether the element was highlighted.\n */\n\tfunction handleHighlighting(nodeData, node, parentIframe, isParentHighlighted) {\n\t\tif (!nodeData.isInteractive) return false // Not interactive, definitely don't highlight\n\n\t\tlet shouldHighlight = false\n\t\tif (!isParentHighlighted) {\n\t\t\t// Parent wasn't highlighted, this interactive node can be highlighted.\n\t\t\tshouldHighlight = true\n\t\t} else {\n\t\t\t// Parent *was* highlighted. Only highlight this node if it represents a distinct interaction.\n\t\t\tif (isElementDistinctInteraction(node)) {\n\t\t\t\tshouldHighlight = true\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (parent highlighted)`);\n\t\t\t\tshouldHighlight = false\n\t\t\t}\n\t\t}\n\n\t\tif (shouldHighlight) {\n\t\t\t// Check viewport status before assigning index and highlighting\n\t\t\tnodeData.isInViewport = isInExpandedViewport(node, viewportExpansion)\n\n\t\t\t// When viewportExpansion is -1, all interactive elements should get a highlight index\n\t\t\t// regardless of viewport status\n\t\t\tif (nodeData.isInViewport || viewportExpansion === -1) {\n\t\t\t\tnodeData.highlightIndex = highlightIndex++\n\n\t\t\t\tif (doHighlightElements) {\n\t\t\t\t\tif (focusHighlightIndex >= 0) {\n\t\t\t\t\t\tif (focusHighlightIndex === nodeData.highlightIndex) {\n\t\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t}\n\t\t\t\t\treturn true // Successfully highlighted\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (outside viewport)`);\n\t\t\t}\n\t\t}\n\n\t\treturn false // Did not highlight\n\t}\n\n\t/**\n\t * Creates a node data object for a given node and its descendants.\n\t *\n\t * @param {HTMLElement} node - The node to process.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n\t * @returns {string | null} The ID of the node data object, or null if the node is not processed.\n\t */\n\tfunction buildDomTree(node, parentIframe = null, isParentHighlighted = false) {\n\t\t// Fast rejection checks first\n\t\tif (\n\t\t\t!node ||\n\t\t\tnode.id === HIGHLIGHT_CONTAINER_ID ||\n\t\t\t(node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE)\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\tif (!node || node.id === HIGHLIGHT_CONTAINER_ID) {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * @edit add `data-browser-use-ignore` attribute\n\t\t */\n\t\tif (node.dataset?.browserUseIgnore === 'true' || node.dataset?.pageAgentIgnore === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t/**\n\t\t * @edit exclude aria-hidden elements\n\t\t */\n\t\tif (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t// Special handling for root node (body)\n\t\tif (node === document.body) {\n\t\t\tconst nodeData = {\n\t\t\t\ttagName: 'body',\n\t\t\t\tattributes: {},\n\t\t\t\txpath: '/body',\n\t\t\t\tchildren: [],\n\t\t\t}\n\n\t\t\t// Process children of body\n\t\t\tfor (const child of node.childNodes) {\n\t\t\t\tconst domElement = buildDomTree(child, parentIframe, false) // Body's children have no highlighted parent initially\n\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = nodeData\n\t\t\treturn id\n\t\t}\n\n\t\t// Early bailout for non-element nodes except text\n\t\tif (node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Process text nodes\n\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\tconst textContent = node.textContent?.trim()\n\t\t\tif (!textContent) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Only check visibility for text nodes that might be visible\n\t\t\tconst parentElement = node.parentElement\n\t\t\tif (!parentElement || parentElement.tagName.toLowerCase() === 'script') {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = {\n\t\t\t\ttype: 'TEXT_NODE',\n\t\t\t\ttext: textContent,\n\t\t\t\tisVisible: isTextNodeVisible(node),\n\t\t\t}\n\t\t\treturn id\n\t\t}\n\n\t\t// Quick checks for element nodes\n\t\tif (node.nodeType === Node.ELEMENT_NODE && !isElementAccepted(node)) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Early viewport check - only filter out elements clearly outside viewport\n\t\t// The getBoundingClientRect() of the Shadow DOM host element may return width/height = 0\n\t\tif (viewportExpansion !== -1 && !node.shadowRoot) {\n\t\t\tconst rect = getCachedBoundingRect(node) // Keep for initial quick check\n\t\t\tconst style = getCachedComputedStyle(node)\n\n\t\t\t// Skip viewport check for fixed/sticky elements as they may appear anywhere\n\t\t\tconst isFixedOrSticky = style && (style.position === 'fixed' || style.position === 'sticky')\n\n\t\t\t// Check if element has actual dimensions using offsetWidth/Height (quick check)\n\t\t\tconst hasSize = node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\t// Use getBoundingClientRect for the quick OUTSIDE check.\n\t\t\t// isInExpandedViewport will do the more accurate check later if needed.\n\t\t\tif (\n\t\t\t\t!rect ||\n\t\t\t\t(!isFixedOrSticky &&\n\t\t\t\t\t!hasSize &&\n\t\t\t\t\t(rect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion))\n\t\t\t) {\n\t\t\t\t// console.log(\"Skipping node outside viewport (quick check):\", node.tagName, rect);\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @type {\n {\n tagName: string;\n attributes: Record<string, string | null>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }\n } nodeData - The node data object.\n */\n\t\tconst nodeData = {\n\t\t\ttagName: node.tagName.toLowerCase(),\n\t\t\tattributes: {},\n\n\t\t\t/**\n\t\t\t * @edit no need for xpath\n\t\t\t */\n\t\t\t// xpath: getXPathTree(node, true),\n\n\t\t\tchildren: [],\n\t\t}\n\n\t\t// Get attributes for interactive elements or potential text containers\n\t\tif (\n\t\t\tisInteractiveCandidate(node) ||\n\t\t\tnode.tagName.toLowerCase() === 'iframe' ||\n\t\t\tnode.tagName.toLowerCase() === 'body'\n\t\t) {\n\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\tfor (const name of attributeNames) {\n\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\tnodeData.attributes[name] = value\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @edit @workaround input.checked\n\t\t\t */\n\t\t\tif (\n\t\t\t\tnode.tagName.toLowerCase() === 'input' &&\n\t\t\t\t(node.type === 'checkbox' || node.type === 'radio')\n\t\t\t) {\n\t\t\t\tnodeData.attributes.checked = node.checked ? 'true' : 'false' // Store as string for consistency\n\t\t\t}\n\t\t}\n\n\t\tlet nodeWasHighlighted = false\n\t\t// Perform visibility, interactivity, and highlighting checks\n\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\tnodeData.isVisible = isElementVisible(node) // isElementVisible uses offsetWidth/Height, which is fine\n\t\t\tif (nodeData.isVisible) {\n\t\t\t\tnodeData.isTopElement = isTopElement(node)\n\n\t\t\t\t// Special handling for ARIA menu containers - check interactivity even if not top element\n\t\t\t\tconst role = node.getAttribute('role')\n\t\t\t\tconst isMenuContainer = role === 'menu' || role === 'menubar' || role === 'listbox'\n\n\t\t\t\tif (nodeData.isTopElement || isMenuContainer) {\n\t\t\t\t\tnodeData.isInteractive = isInteractiveElement(node)\n\t\t\t\t\t// Call the dedicated highlighting function\n\t\t\t\t\tnodeWasHighlighted = handleHighlighting(nodeData, node, parentIframe, isParentHighlighted)\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit direct dom ref\n\t\t\t\t\t */\n\t\t\t\t\tnodeData.ref = node\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit make sure attributes exist for interactive candidates.\n\t\t\t\t\t * @note if the element failed the isInteractiveCandidate, attributes would be empty.\n\t\t\t\t\t */\n\t\t\t\t\tif (nodeData.isInteractive && Object.keys(nodeData.attributes).length === 0) {\n\t\t\t\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\t\t\t\tfor (const name of attributeNames) {\n\t\t\t\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\t\t\t\tnodeData.attributes[name] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Process children, with special handling for iframes and rich text editors\n\t\tif (node.tagName) {\n\t\t\tconst tagName = node.tagName.toLowerCase()\n\n\t\t\t// Handle iframes\n\t\t\tif (tagName === 'iframe') {\n\t\t\t\ttry {\n\t\t\t\t\tconst iframeDoc = node.contentDocument || node.contentWindow?.document\n\t\t\t\t\tif (iframeDoc) {\n\t\t\t\t\t\tfor (const child of iframeDoc.childNodes) {\n\t\t\t\t\t\t\tconst domElement = buildDomTree(child, node, false)\n\t\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.warn('Unable to access iframe:', e)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Handle rich text editors and contenteditable elements\n\t\t\telse if (\n\t\t\t\tnode.isContentEditable ||\n\t\t\t\tnode.getAttribute('contenteditable') === 'true' ||\n\t\t\t\tnode.id === 'tinymce' ||\n\t\t\t\tnode.classList.contains('mce-content-body') ||\n\t\t\t\t(tagName === 'body' && node.getAttribute('data-id')?.startsWith('mce_'))\n\t\t\t) {\n\t\t\t\t// Process all child nodes to capture formatted text\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle shadow DOM\n\t\t\t\tif (node.shadowRoot) {\n\t\t\t\t\tnodeData.shadowRoot = true\n\t\t\t\t\tfor (const child of node.shadowRoot.childNodes) {\n\t\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Handle regular elements\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\t// Pass the highlighted status of the *current* node to its children\n\t\t\t\t\tconst passHighlightStatusToChild = nodeWasHighlighted || isParentHighlighted\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, passHighlightStatusToChild)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Skip empty anchor tags only if they have no dimensions and no children\n\t\tif (nodeData.tagName === 'a' && nodeData.children.length === 0 && !nodeData.attributes.href) {\n\t\t\t// Check if the anchor has actual dimensions\n\t\t\tconst rect = getCachedBoundingRect(node)\n\t\t\tconst hasSize =\n\t\t\t\t(rect && rect.width > 0 && rect.height > 0) || node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\tif (!hasSize) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @edit add `extra` field for extra data\n\t\t */\n\t\tnodeData.extra = extraData.get(node) || null\n\n\t\tconst id = `${ID.current++}`\n\t\tDOM_HASH_MAP[id] = nodeData\n\t\treturn id\n\t}\n\n\tconst rootId = buildDomTree(document.body)\n\n\t// Clear the cache before starting\n\tDOM_CACHE.clearCache()\n\n\treturn { rootId, map: DOM_HASH_MAP }\n}\n",null,null,null,null,null,null,null],"names":["clickElement","STORAGE_KEY","dom.resolveViewportExpansion","dom.cleanUpHighlights","dom.getFlatTree","dom.flatTreeToString","dom.getSelectorMap","dom.getElementTextMap","baseWrapFn"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15]}
1
+ {"version":3,"file":"hypha-debugger.mjs","sources":["../src/ui/styles.ts","../src/ui/overlay.ts","../src/ui/cursor.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/services/skill.ts","../src/utils/wrap-fn.ts","../src/page-controller/dom-tree.js","../src/page-controller/dom.ts","../src/page-controller/actions.ts","../src/page-controller/page-info.ts","../src/page-controller/index.ts","../src/services/page-controller.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null,"/**\n * @file port from browser-use\n * @see https://github.com/browser-use/browser-use/commits/main/browser_use/dom/dom_tree/index.js\n * @match 0.5.9 d51b6e73daff7165fdd3e44debd667e7f5f7fdc5\n *\n * search @edit for all the changed lines.\n *\n * @edit export\n * @edit add interactiveBlacklist interactiveWhitelist\n * @edit adjustable opacity\n * @edit direct dom ref\n * @edit @workaround input.checked\n * @edit smaller zIndex for highlight\n * @edit no need for xpath\n * @edit add `extra` field for extra data\n * @edit scrollable element detection\n * @edit add `data-browser-use-ignore` attribute\n * @edit improve `sampleRect`, filter out rects with 0 area\n * @edit exclude aria-hidden elements\n * @edit make sure attributes exist for interactive candidates.\n */\n\nexport default (\n\targs = {\n\t\tdoHighlightElements: true,\n\t\tfocusHighlightIndex: -1,\n\t\tviewportExpansion: 0,\n\t\tdebugMode: false,\n\n\t\t/**\n\t\t * @edit\n\t\t */\n\t\t/** @type {Element[]} */\n\t\tinteractiveBlacklist: [],\n\t\t/** @type {Element[]} */\n\t\tinteractiveWhitelist: [],\n\t\thighlightOpacity: 0.1,\n\t\thighlightLabelOpacity: 0.5,\n\t}\n) => {\n\t/**\n\t * @edit\n\t */\n\tconst { interactiveBlacklist, interactiveWhitelist, highlightOpacity, highlightLabelOpacity } =\n\t\targs\n\n\tconst { doHighlightElements, focusHighlightIndex, viewportExpansion, debugMode } = args\n\tlet highlightIndex = 0 // Reset highlight index\n\n\t/**\n\t * @edit add `extra` field for extra data\n\t */\n\tconst extraData = new WeakMap()\n\tfunction addExtraData(element, data) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return\n\t\textraData.set(element, { ...extraData.get(element), ...data })\n\t}\n\n\t// Add caching mechanisms at the top level\n\tconst DOM_CACHE = {\n\t\tboundingRects: new WeakMap(),\n\t\tclientRects: new WeakMap(),\n\t\tcomputedStyles: new WeakMap(),\n\t\tclearCache: () => {\n\t\t\tDOM_CACHE.boundingRects = new WeakMap()\n\t\t\tDOM_CACHE.clientRects = new WeakMap()\n\t\t\tDOM_CACHE.computedStyles = new WeakMap()\n\t\t},\n\t}\n\n\t/**\n\t * Gets the cached bounding rect for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the bounding rect for.\n\t * @returns {DOMRect | null} The cached bounding rect, or null if the element is not found.\n\t */\n\tfunction getCachedBoundingRect(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.boundingRects.has(element)) {\n\t\t\treturn DOM_CACHE.boundingRects.get(element)\n\t\t}\n\n\t\tconst rect = element.getBoundingClientRect()\n\n\t\tif (rect) {\n\t\t\tDOM_CACHE.boundingRects.set(element, rect)\n\t\t}\n\t\treturn rect\n\t}\n\n\t/**\n\t * Gets the cached computed style for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the computed style for.\n\t * @returns {CSSStyleDeclaration | null} The cached computed style, or null if the element is not found.\n\t */\n\tfunction getCachedComputedStyle(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.computedStyles.has(element)) {\n\t\t\treturn DOM_CACHE.computedStyles.get(element)\n\t\t}\n\n\t\tconst style = window.getComputedStyle(element)\n\n\t\tif (style) {\n\t\t\tDOM_CACHE.computedStyles.set(element, style)\n\t\t}\n\t\treturn style\n\t}\n\n\t/**\n\t * Gets the cached client rects for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the client rects for.\n\t * @returns {DOMRectList | null} The cached client rects, or null if the element is not found.\n\t */\n\tfunction getCachedClientRects(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.clientRects.has(element)) {\n\t\t\treturn DOM_CACHE.clientRects.get(element)\n\t\t}\n\n\t\tconst rects = element.getClientRects()\n\n\t\tif (rects) {\n\t\t\tDOM_CACHE.clientRects.set(element, rects)\n\t\t}\n\t\treturn rects\n\t}\n\n\t/**\n\t * Hash map of DOM nodes indexed by their highlight index.\n\t *\n\t * @type {Object<string, any>}\n\t */\n\tconst DOM_HASH_MAP = {}\n\n\tconst ID = { current: 0 }\n\n\tconst HIGHLIGHT_CONTAINER_ID = 'playwright-highlight-container'\n\n\t// Add a WeakMap cache for XPath strings\n\tconst xpathCache = new WeakMap()\n\n\t// // Initialize once and reuse\n\t// const viewportObserver = new IntersectionObserver(\n\t// (entries) => {\n\t// entries.forEach(entry => {\n\t// elementVisibilityMap.set(entry.target, entry.isIntersecting);\n\t// });\n\t// },\n\t// { rootMargin: `${viewportExpansion}px` }\n\t// );\n\n\t/**\n\t * Highlights an element in the DOM and returns the index of the next element.\n\t *\n\t * @param {HTMLElement} element - The element to highlight.\n\t * @param {number} index - The index of the element.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @returns {number} The index of the next element.\n\t */\n\tfunction highlightElement(element, index, parentIframe = null) {\n\t\tif (!element) return index\n\n\t\tconst overlays = []\n\t\t/**\n\t\t * @type {HTMLElement | null}\n\t\t */\n\t\tlet label = null\n\t\tlet labelWidth = 20\n\t\tlet labelHeight = 16\n\t\tlet cleanupFn = null\n\n\t\ttry {\n\t\t\t// Create or get highlight container\n\t\t\tlet container = document.getElementById(HIGHLIGHT_CONTAINER_ID)\n\t\t\tif (!container) {\n\t\t\t\tcontainer = document.createElement('div')\n\t\t\t\tcontainer.id = HIGHLIGHT_CONTAINER_ID\n\t\t\t\tcontainer.style.position = 'fixed'\n\t\t\t\tcontainer.style.pointerEvents = 'none'\n\t\t\t\tcontainer.style.top = '0'\n\t\t\t\tcontainer.style.left = '0'\n\t\t\t\tcontainer.style.width = '100%'\n\t\t\t\tcontainer.style.height = '100%'\n\n\t\t\t\t/**\n\t\t\t\t * @edit smaller zIndex for highlight\n\t\t\t\t */\n\t\t\t\t// Use the maximum valid value in zIndex to ensure the element is not blocked by overlapping elements.\n\t\t\t\t// container.style.zIndex = \"2147483647\";\n\t\t\t\tcontainer.style.zIndex = '2147483640'\n\n\t\t\t\tcontainer.style.backgroundColor = 'transparent'\n\t\t\t\tdocument.body.appendChild(container)\n\t\t\t}\n\n\t\t\t// Get element client rects\n\t\t\tconst rects = element.getClientRects() // Use getClientRects()\n\n\t\t\tif (!rects || rects.length === 0) return index // Exit if no rects\n\n\t\t\t// Generate a color based on the index\n\t\t\tconst colors = [\n\t\t\t\t'#FF0000',\n\t\t\t\t'#00FF00',\n\t\t\t\t'#0000FF',\n\t\t\t\t'#FFA500',\n\t\t\t\t'#800080',\n\t\t\t\t'#008080',\n\t\t\t\t'#FF69B4',\n\t\t\t\t'#4B0082',\n\t\t\t\t'#FF4500',\n\t\t\t\t'#2E8B57',\n\t\t\t\t'#DC143C',\n\t\t\t\t'#4682B4',\n\t\t\t]\n\t\t\tconst colorIndex = index % colors.length\n\t\t\tlet baseColor = colors[colorIndex]\n\n\t\t\t/**\n\t\t\t * @edit adjustable opacity\n\t\t\t */\n\t\t\t// const backgroundColor = baseColor + \"1A\"; // 10% opacity version of the color\n\t\t\tconst backgroundColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\t\t\tbaseColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightLabelOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\n\t\t\t// Get iframe offset if necessary\n\t\t\tlet iframeOffset = { x: 0, y: 0 }\n\t\t\tif (parentIframe) {\n\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe offset\n\t\t\t\tiframeOffset.x = iframeRect.left\n\t\t\t\tiframeOffset.y = iframeRect.top\n\t\t\t}\n\n\t\t\t// Create fragment to hold overlay elements\n\t\t\tconst fragment = document.createDocumentFragment()\n\n\t\t\t// Create highlight overlays for each client rect\n\t\t\tfor (const rect of rects) {\n\t\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\t\tconst overlay = document.createElement('div')\n\t\t\t\toverlay.style.position = 'fixed'\n\t\t\t\toverlay.style.border = `2px solid ${baseColor}`\n\t\t\t\toverlay.style.backgroundColor = backgroundColor\n\t\t\t\toverlay.style.pointerEvents = 'none'\n\t\t\t\toverlay.style.boxSizing = 'border-box'\n\n\t\t\t\tconst top = rect.top + iframeOffset.y\n\t\t\t\tconst left = rect.left + iframeOffset.x\n\n\t\t\t\toverlay.style.top = `${top}px`\n\t\t\t\toverlay.style.left = `${left}px`\n\t\t\t\toverlay.style.width = `${rect.width}px`\n\t\t\t\toverlay.style.height = `${rect.height}px`\n\n\t\t\t\tfragment.appendChild(overlay)\n\t\t\t\toverlays.push({ element: overlay, initialRect: rect }) // Store overlay and its rect\n\t\t\t}\n\n\t\t\t// Create and position a single label relative to the first rect\n\t\t\tconst firstRect = rects[0]\n\t\t\tlabel = document.createElement('div')\n\t\t\tlabel.className = 'playwright-highlight-label'\n\t\t\tlabel.style.position = 'fixed'\n\t\t\tlabel.style.background = baseColor\n\t\t\tlabel.style.color = 'white'\n\t\t\tlabel.style.padding = '1px 4px'\n\t\t\tlabel.style.borderRadius = '4px'\n\t\t\tlabel.style.fontSize = `${Math.min(12, Math.max(8, firstRect.height / 2))}px`\n\t\t\tlabel.textContent = index.toString()\n\n\t\t\tlabelWidth = label.offsetWidth > 0 ? label.offsetWidth : labelWidth // Update actual width if possible\n\t\t\tlabelHeight = label.offsetHeight > 0 ? label.offsetHeight : labelHeight // Update actual height if possible\n\n\t\t\tconst firstRectTop = firstRect.top + iframeOffset.y\n\t\t\tconst firstRectLeft = firstRect.left + iframeOffset.x\n\n\t\t\tlet labelTop = firstRectTop + 2\n\t\t\tlet labelLeft = firstRectLeft + firstRect.width - labelWidth - 2\n\n\t\t\t// Adjust label position if first rect is too small\n\t\t\tif (firstRect.width < labelWidth + 4 || firstRect.height < labelHeight + 4) {\n\t\t\t\tlabelTop = firstRectTop - labelHeight - 2\n\t\t\t\tlabelLeft = firstRectLeft + firstRect.width - labelWidth // Align with right edge\n\t\t\t\tif (labelLeft < iframeOffset.x) labelLeft = firstRectLeft // Prevent going off-left\n\t\t\t}\n\n\t\t\t// Ensure label stays within viewport bounds slightly better\n\t\t\tlabelTop = Math.max(0, Math.min(labelTop, window.innerHeight - labelHeight))\n\t\t\tlabelLeft = Math.max(0, Math.min(labelLeft, window.innerWidth - labelWidth))\n\n\t\t\tlabel.style.top = `${labelTop}px`\n\t\t\tlabel.style.left = `${labelLeft}px`\n\n\t\t\tfragment.appendChild(label)\n\n\t\t\t// Update positions on scroll/resize\n\t\t\tconst updatePositions = () => {\n\t\t\t\tconst newRects = element.getClientRects() // Get fresh rects\n\t\t\t\tlet newIframeOffset = { x: 0, y: 0 }\n\n\t\t\t\tif (parentIframe) {\n\t\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe\n\t\t\t\t\tnewIframeOffset.x = iframeRect.left\n\t\t\t\t\tnewIframeOffset.y = iframeRect.top\n\t\t\t\t}\n\n\t\t\t\t// Update each overlay\n\t\t\t\toverlays.forEach((overlayData, i) => {\n\t\t\t\t\tif (i < newRects.length) {\n\t\t\t\t\t\t// Check if rect still exists\n\t\t\t\t\t\tconst newRect = newRects[i]\n\t\t\t\t\t\tconst newTop = newRect.top + newIframeOffset.y\n\t\t\t\t\t\tconst newLeft = newRect.left + newIframeOffset.x\n\n\t\t\t\t\t\toverlayData.element.style.top = `${newTop}px`\n\t\t\t\t\t\toverlayData.element.style.left = `${newLeft}px`\n\t\t\t\t\t\toverlayData.element.style.width = `${newRect.width}px`\n\t\t\t\t\t\toverlayData.element.style.height = `${newRect.height}px`\n\t\t\t\t\t\toverlayData.element.style.display =\n\t\t\t\t\t\t\tnewRect.width === 0 || newRect.height === 0 ? 'none' : 'block'\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If fewer rects now, hide extra overlays\n\t\t\t\t\t\toverlayData.element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t// If there are fewer new rects than overlays, hide the extras\n\t\t\t\tif (newRects.length < overlays.length) {\n\t\t\t\t\tfor (let i = newRects.length; i < overlays.length; i++) {\n\t\t\t\t\t\toverlays[i].element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Update label position based on the first new rect\n\t\t\t\tif (label && newRects.length > 0) {\n\t\t\t\t\tconst firstNewRect = newRects[0]\n\t\t\t\t\tconst firstNewRectTop = firstNewRect.top + newIframeOffset.y\n\t\t\t\t\tconst firstNewRectLeft = firstNewRect.left + newIframeOffset.x\n\n\t\t\t\t\tlet newLabelTop = firstNewRectTop + 2\n\t\t\t\t\tlet newLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth - 2\n\n\t\t\t\t\tif (firstNewRect.width < labelWidth + 4 || firstNewRect.height < labelHeight + 4) {\n\t\t\t\t\t\tnewLabelTop = firstNewRectTop - labelHeight - 2\n\t\t\t\t\t\tnewLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth\n\t\t\t\t\t\tif (newLabelLeft < newIframeOffset.x) newLabelLeft = firstNewRectLeft\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure label stays within viewport bounds\n\t\t\t\t\tnewLabelTop = Math.max(0, Math.min(newLabelTop, window.innerHeight - labelHeight))\n\t\t\t\t\tnewLabelLeft = Math.max(0, Math.min(newLabelLeft, window.innerWidth - labelWidth))\n\n\t\t\t\t\tlabel.style.top = `${newLabelTop}px`\n\t\t\t\t\tlabel.style.left = `${newLabelLeft}px`\n\t\t\t\t\tlabel.style.display = 'block'\n\t\t\t\t} else if (label) {\n\t\t\t\t\t// Hide label if element has no rects anymore\n\t\t\t\t\tlabel.style.display = 'none'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttleFunction = (func, delay) => {\n\t\t\t\tlet lastCall = 0\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tconst now = performance.now()\n\t\t\t\t\tif (now - lastCall < delay) return\n\t\t\t\t\tlastCall = now\n\t\t\t\t\treturn func(...args)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttledUpdatePositions = throttleFunction(updatePositions, 16) // ~60fps\n\t\t\twindow.addEventListener('scroll', throttledUpdatePositions, true)\n\t\t\twindow.addEventListener('resize', throttledUpdatePositions)\n\n\t\t\t// Add cleanup function\n\t\t\tcleanupFn = () => {\n\t\t\t\twindow.removeEventListener('scroll', throttledUpdatePositions, true)\n\t\t\t\twindow.removeEventListener('resize', throttledUpdatePositions)\n\t\t\t\t// Remove overlay elements if needed\n\t\t\t\toverlays.forEach((overlay) => overlay.element.remove())\n\t\t\t\tif (label) label.remove()\n\t\t\t}\n\n\t\t\t// Then add fragment to container in one operation\n\t\t\tcontainer.appendChild(fragment)\n\n\t\t\treturn index + 1\n\t\t} finally {\n\t\t\t// Store cleanup function for later use\n\t\t\tif (cleanupFn) {\n\t\t\t\t// Keep a reference to cleanup functions in a global array\n\t\t\t\t;(window._highlightCleanupFunctions = window._highlightCleanupFunctions || []).push(\n\t\t\t\t\tcleanupFn\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t// // Add this function to perform cleanup when needed\n\t// function cleanupHighlights() {\n\t// if (window._highlightCleanupFunctions && window._highlightCleanupFunctions.length) {\n\t// window._highlightCleanupFunctions.forEach(fn => fn());\n\t// window._highlightCleanupFunctions = [];\n\t// }\n\n\t// // Also remove the container\n\t// const container = document.getElementById(HIGHLIGHT_CONTAINER_ID);\n\t// if (container) container.remove();\n\t// }\n\n\t/**\n\t * Gets the position of an element in its parent.\n\t *\n\t * @param {HTMLElement} currentElement - The element to get the position for.\n\t * @returns {number} The position of the element in its parent.\n\t */\n\tfunction getElementPosition(currentElement) {\n\t\tif (!currentElement.parentElement) {\n\t\t\treturn 0 // No parent means no siblings\n\t\t}\n\n\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\n\t\tconst siblings = Array.from(currentElement.parentElement.children).filter(\n\t\t\t(sib) => sib.nodeName.toLowerCase() === tagName\n\t\t)\n\n\t\tif (siblings.length === 1) {\n\t\t\treturn 0 // Only element of its type\n\t\t}\n\n\t\tconst index = siblings.indexOf(currentElement) + 1 // 1-based index\n\t\treturn index\n\t}\n\n\tfunction getXPathTree(element, stopAtBoundary = true) {\n\t\tif (xpathCache.has(element)) return xpathCache.get(element)\n\n\t\tconst segments = []\n\t\tlet currentElement = element\n\n\t\twhile (currentElement && currentElement.nodeType === Node.ELEMENT_NODE) {\n\t\t\t// Stop if we hit a shadow root or iframe\n\t\t\tif (\n\t\t\t\tstopAtBoundary &&\n\t\t\t\t(currentElement.parentNode instanceof ShadowRoot ||\n\t\t\t\t\tcurrentElement.parentNode instanceof HTMLIFrameElement)\n\t\t\t) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst position = getElementPosition(currentElement)\n\t\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\t\t\tconst xpathIndex = position > 0 ? `[${position}]` : ''\n\t\t\tsegments.unshift(`${tagName}${xpathIndex}`)\n\n\t\t\tcurrentElement = currentElement.parentNode\n\t\t}\n\n\t\tconst result = segments.join('/')\n\t\txpathCache.set(element, result)\n\t\treturn result\n\t}\n\n\t/**\n\t * @edit scrollable element detection\n\t * Checks if an element is scrollable. if so, return the scrollable distance on each direction (left right top bottom). if not return null.\n\t * @note distance smaller than 4 will be considered as not scrollable.\n\t * @note only check block elements, not inline elements.\n\t */\n\tfunction isScrollableElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn null // Not a valid element\n\t\t}\n\n\t\tconst style = getCachedComputedStyle(element)\n\t\tif (!style) return null\n\n\t\t// Check if the element is a block-level element\n\t\tconst display = style.display\n\t\tif (display === 'inline' || display === 'inline-block') {\n\t\t\treturn null // Not a block-level element\n\t\t}\n\n\t\t// Check overflow properties\n\t\tconst overflowX = style.overflowX\n\t\tconst overflowY = style.overflowY\n\n\t\t// Check scrollable distances\n\t\tconst scrollableX = overflowX === 'auto' || overflowX === 'scroll'\n\t\tconst scrollableY = overflowY === 'auto' || overflowY === 'scroll'\n\n\t\tif (!scrollableX && !scrollableY) {\n\t\t\treturn null // Not scrollable in any direction\n\t\t}\n\n\t\tconst scrollWidth = element.scrollWidth - element.clientWidth\n\t\tconst scrollHeight = element.scrollHeight - element.clientHeight\n\n\t\t// Consider small distances as not scrollable\n\t\tconst threshold = 4\n\n\t\tif (scrollWidth < threshold && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable\n\t\t}\n\n\t\tif (!scrollableY && scrollWidth < threshold) {\n\t\t\treturn null // Not scrollable horizontally\n\t\t}\n\n\t\tif (!scrollableX && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable vertically\n\t\t}\n\n\t\tconst distanceToTop = element.scrollTop\n\t\tconst distanceToLeft = element.scrollLeft\n\t\tconst distanceToRight = element.scrollWidth - element.clientWidth - element.scrollLeft\n\t\tconst distanceToBottom = element.scrollHeight - element.clientHeight - element.scrollTop\n\n\t\tconst scrollData = {\n\t\t\ttop: distanceToTop,\n\t\t\tright: distanceToRight,\n\t\t\tbottom: distanceToBottom,\n\t\t\tleft: distanceToLeft,\n\t\t}\n\n\t\t// Store extra data for the element\n\t\taddExtraData(element, {\n\t\t\tscrollable: true,\n\t\t\tscrollData: scrollData,\n\t\t})\n\n\t\treturn scrollData\n\t}\n\n\t/**\n\t * Checks if a text node is visible.\n\t *\n\t * @param {Text} textNode - The text node to check.\n\t * @returns {boolean} Whether the text node is visible.\n\t */\n\tfunction isTextNodeVisible(textNode) {\n\t\ttry {\n\t\t\t// Special case: when viewportExpansion is -1, consider all text nodes as visible\n\t\t\tif (viewportExpansion === -1) {\n\t\t\t\t// Still check parent visibility for basic filtering\n\t\t\t\tconst parentElement = textNode.parentElement\n\t\t\t\tif (!parentElement) return false\n\n\t\t\t\ttry {\n\t\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t\t})\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(textNode)\n\t\t\tconst rects = range.getClientRects() // Use getClientRects for Range\n\n\t\t\tif (!rects || rects.length === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet isAnyRectVisible = false\n\t\t\tlet isAnyRectInViewport = false\n\n\t\t\tfor (const rect of rects) {\n\t\t\t\t// Check size\n\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\tisAnyRectVisible = true\n\n\t\t\t\t\t// Viewport check for this rect\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(\n\t\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tisAnyRectInViewport = true\n\t\t\t\t\t\tbreak // Found a visible rect in viewport, no need to check others\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!isAnyRectVisible || !isAnyRectInViewport) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check parent visibility\n\t\t\tconst parentElement = textNode.parentElement\n\t\t\tif (!parentElement) return false\n\n\t\t\ttry {\n\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error checking text node visibility:', e)\n\t\t\treturn false\n\t\t}\n\t}\n\n\t/**\n\t * Checks if an element is accepted.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is accepted.\n\t */\n\tfunction isElementAccepted(element) {\n\t\tif (!element || !element.tagName) return false\n\n\t\t// Always accept body and common container elements\n\t\tconst alwaysAccept = new Set([\n\t\t\t'body',\n\t\t\t'div',\n\t\t\t'main',\n\t\t\t'article',\n\t\t\t'section',\n\t\t\t'nav',\n\t\t\t'header',\n\t\t\t'footer',\n\t\t])\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\tif (alwaysAccept.has(tagName)) return true\n\n\t\tconst leafElementDenyList = new Set([\n\t\t\t'svg',\n\t\t\t'script',\n\t\t\t'style',\n\t\t\t'link',\n\t\t\t'meta',\n\t\t\t'noscript',\n\t\t\t'template',\n\t\t])\n\n\t\treturn !leafElementDenyList.has(tagName)\n\t}\n\n\t/**\n\t * Checks if an element is visible.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is visible.\n\t */\n\tfunction isElementVisible(element) {\n\t\tconst style = getCachedComputedStyle(element)\n\t\treturn (\n\t\t\telement.offsetWidth > 0 &&\n\t\t\telement.offsetHeight > 0 &&\n\t\t\tstyle?.visibility !== 'hidden' &&\n\t\t\tstyle?.display !== 'none'\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element is interactive.\n\t *\n\t * lots of comments, and uncommented code - to show the logic of what we already tried\n\t *\n\t * One of the things we tried at the beginning was also to use event listeners, and other fancy class, style stuff -> what actually worked best was just combining most things with computed cursor style :)\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t */\n\tfunction isInteractiveElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * @edit add interactiveBlacklist interactiveWhitelist\n\t\t */\n\t\tif (interactiveBlacklist.includes(element)) {\n\t\t\treturn false // Skip blacklisted elements\n\t\t}\n\t\tif (interactiveWhitelist.includes(element)) {\n\t\t\treturn true // Skip whitelisted elements\n\t\t}\n\n\t\t// Cache the tagName and style lookups\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst style = getCachedComputedStyle(element)\n\n\t\t// Define interactive cursors\n\t\tconst interactiveCursors = new Set([\n\t\t\t'pointer', // Link/clickable elements\n\t\t\t'move', // Movable elements\n\t\t\t'text', // Text selection\n\t\t\t'grab', // Grabbable elements\n\t\t\t'grabbing', // Currently grabbing\n\t\t\t'cell', // Table cell selection\n\t\t\t'copy', // Copy operation\n\t\t\t'alias', // Alias creation\n\t\t\t'all-scroll', // Scrollable content\n\t\t\t'col-resize', // Column resize\n\t\t\t'context-menu', // Context menu available\n\t\t\t'crosshair', // Precise selection\n\t\t\t'e-resize', // East resize\n\t\t\t'ew-resize', // East-west resize\n\t\t\t'help', // Help available\n\t\t\t'n-resize', // North resize\n\t\t\t'ne-resize', // Northeast resize\n\t\t\t'nesw-resize', // Northeast-southwest resize\n\t\t\t'ns-resize', // North-south resize\n\t\t\t'nw-resize', // Northwest resize\n\t\t\t'nwse-resize', // Northwest-southeast resize\n\t\t\t'row-resize', // Row resize\n\t\t\t's-resize', // South resize\n\t\t\t'se-resize', // Southeast resize\n\t\t\t'sw-resize', // Southwest resize\n\t\t\t'vertical-text', // Vertical text selection\n\t\t\t'w-resize', // West resize\n\t\t\t'zoom-in', // Zoom in\n\t\t\t'zoom-out', // Zoom out\n\t\t])\n\n\t\t// Define non-interactive cursors\n\t\tconst nonInteractiveCursors = new Set([\n\t\t\t'not-allowed', // Action not allowed\n\t\t\t'no-drop', // Drop not allowed\n\t\t\t'wait', // Processing\n\t\t\t'progress', // In progress\n\t\t\t'initial', // Initial value\n\t\t\t'inherit', // Inherited value\n\t\t\t//? Let's just include all potentially clickable elements that are not specifically blocked\n\t\t\t// 'none', // No cursor\n\t\t\t// 'default', // Default cursor\n\t\t\t// 'auto', // Browser default\n\t\t])\n\n\t\t/**\n\t\t * Checks if an element has an interactive pointer.\n\t\t *\n\t\t * @param {HTMLElement} element - The element to check.\n\t\t * @returns {boolean} Whether the element has an interactive pointer.\n\t\t */\n\t\tfunction doesElementHaveInteractivePointer(element) {\n\t\t\tif (element.tagName.toLowerCase() === 'html') return false\n\n\t\t\tif (style?.cursor && interactiveCursors.has(style.cursor)) return true\n\n\t\t\treturn false\n\t\t}\n\n\t\tlet isInteractiveCursor = doesElementHaveInteractivePointer(element)\n\n\t\t// Genius fix for almost all interactive elements\n\t\tif (isInteractiveCursor) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveElements = new Set([\n\t\t\t'a', // Links\n\t\t\t'button', // Buttons\n\t\t\t'input', // All input types (text, checkbox, radio, etc.)\n\t\t\t'select', // Dropdown menus\n\t\t\t'textarea', // Text areas\n\t\t\t'details', // Expandable details\n\t\t\t'summary', // Summary element (clickable part of details)\n\t\t\t'label', // Form labels (often clickable)\n\t\t\t'option', // Select options\n\t\t\t'optgroup', // Option groups\n\t\t\t'fieldset', // Form fieldsets (can be interactive with legend)\n\t\t\t'legend', // Fieldset legends\n\t\t])\n\n\t\t// Define explicit disable attributes and properties\n\t\tconst explicitDisableTags = new Set([\n\t\t\t'disabled', // Standard disabled attribute\n\t\t\t// 'aria-disabled', // ARIA disabled state\n\t\t\t'readonly', // Read-only state\n\t\t\t// 'aria-readonly', // ARIA read-only state\n\t\t\t// 'aria-hidden', // Hidden from accessibility\n\t\t\t// 'hidden', // Hidden attribute\n\t\t\t// 'inert', // Inert attribute\n\t\t\t// 'aria-inert', // ARIA inert state\n\t\t\t// 'tabindex=\"-1\"', // Removed from tab order\n\t\t\t// 'aria-hidden=\"true\"' // Hidden from screen readers\n\t\t])\n\n\t\t// handle inputs, select, checkbox, radio, textarea, button and make sure they are not cursor style disabled/not-allowed\n\t\tif (interactiveElements.has(tagName)) {\n\t\t\t// Check for non-interactive cursor\n\t\t\tif (style?.cursor && nonInteractiveCursors.has(style.cursor)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for explicit disable attributes\n\t\t\tfor (const disableTag of explicitDisableTags) {\n\t\t\t\tif (\n\t\t\t\t\telement.hasAttribute(disableTag) ||\n\t\t\t\t\telement.getAttribute(disableTag) === 'true' ||\n\t\t\t\t\telement.getAttribute(disableTag) === ''\n\t\t\t\t) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check for disabled property on form elements\n\t\t\tif (element.disabled) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for readonly property on form elements\n\t\t\tif (element.readOnly) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for inert property\n\t\t\tif (element.inert) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\tconst role = element.getAttribute('role')\n\t\tconst ariaRole = element.getAttribute('aria-role')\n\n\t\t// Check for contenteditable attribute\n\t\tif (element.getAttribute('contenteditable') === 'true' || element.isContentEditable) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Added enhancement to capture dropdown interactive elements\n\t\tif (\n\t\t\telement.classList &&\n\t\t\t(element.classList.contains('button') ||\n\t\t\t\telement.classList.contains('dropdown-toggle') ||\n\t\t\t\telement.getAttribute('data-index') ||\n\t\t\t\telement.getAttribute('data-toggle') === 'dropdown' ||\n\t\t\t\telement.getAttribute('aria-haspopup') === 'true')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveRoles = new Set([\n\t\t\t'button', // Directly clickable element\n\t\t\t// 'link', // Clickable link\n\t\t\t'menu', // Menu container (ARIA menus)\n\t\t\t'menubar', // Menu bar container\n\t\t\t'menuitem', // Clickable menu item\n\t\t\t'menuitemradio', // Radio-style menu item (selectable)\n\t\t\t'menuitemcheckbox', // Checkbox-style menu item (toggleable)\n\t\t\t'radio', // Radio button (selectable)\n\t\t\t'checkbox', // Checkbox (toggleable)\n\t\t\t'tab', // Tab (clickable to switch content)\n\t\t\t'switch', // Toggle switch (clickable to change state)\n\t\t\t'slider', // Slider control (draggable)\n\t\t\t'spinbutton', // Number input with up/down controls\n\t\t\t'combobox', // Dropdown with text input\n\t\t\t'searchbox', // Search input field\n\t\t\t'textbox', // Text input field\n\t\t\t'listbox', // Selectable list\n\t\t\t'option', // Selectable option in a list\n\t\t\t'scrollbar', // Scrollable control\n\t\t])\n\n\t\t// Basic role/attribute checks\n\t\tconst hasInteractiveRole =\n\t\t\tinteractiveElements.has(tagName) ||\n\t\t\t(role && interactiveRoles.has(role)) ||\n\t\t\t(ariaRole && interactiveRoles.has(ariaRole))\n\n\t\tif (hasInteractiveRole) return true\n\n\t\t// check whether element has event listeners by window.getEventListeners\n\t\ttry {\n\t\t\tif (typeof getEventListeners === 'function') {\n\t\t\t\tconst listeners = getEventListeners(element)\n\t\t\t\tconst mouseEvents = ['click', 'mousedown', 'mouseup', 'dblclick']\n\t\t\t\tfor (const eventType of mouseEvents) {\n\t\t\t\t\tif (listeners[eventType] && listeners[eventType].length > 0) {\n\t\t\t\t\t\treturn true // Found a mouse interaction listener\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListeners doesn't work in page.evaluate context)\n\t\t\tconst commonMouseAttrs = ['onclick', 'onmousedown', 'onmouseup', 'ondblclick']\n\t\t\tfor (const attr of commonMouseAttrs) {\n\t\t\t\tif (element.hasAttribute(attr) || typeof element[attr] === 'function') {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t/**\n\t\t * @edit scrollable element detection\n\t\t */\n\t\tif (isScrollableElement(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\t/**\n\t * Checks if an element is the topmost element at its position.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is the topmost element at its position.\n\t */\n\tfunction isTopElement(element) {\n\t\t// Special case: when viewportExpansion is -1, consider all elements as \"top\" elements\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = getCachedClientRects(element) // Replace element.getClientRects()\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\treturn false // No geometry, cannot be top\n\t\t}\n\n\t\tlet isAnyRectInViewport = false\n\t\tfor (const rect of rects) {\n\t\t\t// Use the same logic as isInExpandedViewport check\n\t\t\tif (\n\t\t\t\trect.width > 0 &&\n\t\t\t\trect.height > 0 &&\n\t\t\t\t!(\n\t\t\t\t\t// Only check non-empty rects\n\t\t\t\t\t(\n\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tisAnyRectInViewport = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (!isAnyRectInViewport) {\n\t\t\treturn false // All rects are outside the viewport area\n\t\t}\n\n\t\t// Find the correct document context and root element\n\t\tlet doc = element.ownerDocument\n\n\t\t// If we're in an iframe, elements are considered top by default\n\t\tif (doc !== window.document) {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * @edit improve `sampleRect`, filter out rects with 0 area\n\t\t */\n\t\t// find a rect that has width and height as sample\n\t\tlet rect = Array.from(rects).find((r) => r.width > 0 && r.height > 0)\n\t\tif (!rect) {\n\t\t\treturn false // No valid rect found\n\t\t}\n\n\t\t// For shadow DOM, we need to check within its own root context\n\t\tconst shadowRoot = element.getRootNode()\n\t\tif (shadowRoot instanceof ShadowRoot) {\n\t\t\tconst centerX = rect.left + rect.width / 2\n\t\t\tconst centerY = rect.top + rect.height / 2\n\n\t\t\ttry {\n\t\t\t\tconst topEl = shadowRoot.elementFromPoint(centerX, centerY)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== shadowRoot) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\tconst margin = 5\n\n\t\t// For elements in viewport, check if they're topmost. Do the check in the\n\t\t// center of the element and at the corners to ensure we catch more cases.\n\t\tconst checkPoints = [\n\t\t\t// Initially only this was used, but it was not enough\n\t\t\t{ x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 },\n\t\t\t{ x: rect.left + margin, y: rect.top + margin }, // top left\n\t\t\t// { x: rect.right - margin, y: rect.top + margin }, // top right\n\t\t\t// { x: rect.left + margin, y: rect.bottom - margin }, // bottom left\n\t\t\t{ x: rect.right - margin, y: rect.bottom - margin }, // bottom right\n\t\t]\n\n\t\treturn checkPoints.some(({ x, y }) => {\n\t\t\ttry {\n\t\t\t\tconst topEl = document.elementFromPoint(x, y)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== document.documentElement) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Checks if an element is within the expanded viewport.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @param {number} viewportExpansion - The viewport expansion.\n\t * @returns {boolean} Whether the element is within the expanded viewport.\n\t */\n\tfunction isInExpandedViewport(element, viewportExpansion) {\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = element.getClientRects() // Use getClientRects\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\t// Fallback to getBoundingClientRect if getClientRects is empty,\n\t\t\t// useful for elements like <svg> that might not have client rects but have a bounding box.\n\t\t\tconst boundingRect = getCachedBoundingRect(element)\n\t\t\tif (!boundingRect || boundingRect.width === 0 || boundingRect.height === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn !(\n\t\t\t\tboundingRect.bottom < -viewportExpansion ||\n\t\t\t\tboundingRect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\tboundingRect.right < -viewportExpansion ||\n\t\t\t\tboundingRect.left > window.innerWidth + viewportExpansion\n\t\t\t)\n\t\t}\n\n\t\t// Check if *any* client rect is within the viewport\n\t\tfor (const rect of rects) {\n\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\tif (\n\t\t\t\t!(\n\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn true // Found at least one rect in the viewport\n\t\t\t}\n\t\t}\n\n\t\treturn false // No rects were found in the viewport\n\t}\n\n\t// /**\n\t// * Gets the effective scroll of an element.\n\t// *\n\t// * @param {HTMLElement} element - The element to get the effective scroll for.\n\t// * @returns {Object} The effective scroll of the element.\n\t// */\n\t// function getEffectiveScroll(element) {\n\t// let currentEl = element;\n\t// let scrollX = 0;\n\t// let scrollY = 0;\n\n\t// while (currentEl && currentEl !== document.documentElement) {\n\t// if (currentEl.scrollLeft || currentEl.scrollTop) {\n\t// scrollX += currentEl.scrollLeft;\n\t// scrollY += currentEl.scrollTop;\n\t// }\n\t// currentEl = currentEl.parentElement;\n\t// }\n\n\t// scrollX += window.scrollX;\n\t// scrollY += window.scrollY;\n\n\t// return { scrollX, scrollY };\n\t// }\n\n\t/**\n\t * Checks if an element is an interactive candidate.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is an interactive candidate.\n\t */\n\tfunction isInteractiveCandidate(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\t// Fast-path for common interactive elements\n\t\tconst interactiveElements = new Set([\n\t\t\t'a',\n\t\t\t'button',\n\t\t\t'input',\n\t\t\t'select',\n\t\t\t'textarea',\n\t\t\t'details',\n\t\t\t'summary',\n\t\t\t'label',\n\t\t])\n\n\t\tif (interactiveElements.has(tagName)) return true\n\n\t\t// Quick attribute checks without getting full lists\n\t\tconst hasQuickInteractiveAttr =\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('aria-') ||\n\t\t\telement.hasAttribute('data-action') ||\n\t\t\telement.getAttribute('contenteditable') === 'true'\n\n\t\treturn hasQuickInteractiveAttr\n\t}\n\n\t// --- Define constants for distinct interaction check ---\n\tconst DISTINCT_INTERACTIVE_TAGS = new Set([\n\t\t'a',\n\t\t'button',\n\t\t'input',\n\t\t'select',\n\t\t'textarea',\n\t\t'summary',\n\t\t'details',\n\t\t'label',\n\t\t'option',\n\t])\n\tconst INTERACTIVE_ROLES = new Set([\n\t\t'button',\n\t\t'link',\n\t\t'menuitem',\n\t\t'menuitemradio',\n\t\t'menuitemcheckbox',\n\t\t'radio',\n\t\t'checkbox',\n\t\t'tab',\n\t\t'switch',\n\t\t'slider',\n\t\t'spinbutton',\n\t\t'combobox',\n\t\t'searchbox',\n\t\t'textbox',\n\t\t'listbox',\n\t\t'option',\n\t\t'scrollbar',\n\t])\n\n\t/**\n\t * Heuristically determines if an element should be considered as independently interactive,\n\t * even if it's nested inside another interactive container.\n\t *\n\t * This function helps detect deeply nested actionable elements (e.g., menu items within a button)\n\t * that may not be picked up by strict interactivity checks.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is heuristically interactive.\n\t */\n\tfunction isHeuristicallyInteractive(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\t// Skip non-visible elements early for performance\n\t\tif (!isElementVisible(element)) return false\n\n\t\t// Check for common attributes that often indicate interactivity\n\t\tconst hasInteractiveAttributes =\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\ttypeof element.onclick === 'function'\n\n\t\t// Check for semantic class names suggesting interactivity\n\t\tconst hasInteractiveClass = /\\b(btn|clickable|menu|item|entry|link)\\b/i.test(\n\t\t\telement.className || ''\n\t\t)\n\n\t\t// Determine whether the element is inside a known interactive container\n\t\tconst isInKnownContainer = Boolean(\n\t\t\telement.closest('button,a,[role=\"button\"],.menu,.dropdown,.list,.toolbar')\n\t\t)\n\n\t\t// Ensure the element has at least one visible child (to avoid marking empty wrappers)\n\t\tconst hasVisibleChildren = [...element.children].some(isElementVisible)\n\n\t\t// Avoid highlighting elements whose parent is <body> (top-level wrappers)\n\t\tconst isParentBody = element.parentElement && element.parentElement.isSameNode(document.body)\n\n\t\treturn (\n\t\t\t(isInteractiveElement(element) || hasInteractiveAttributes || hasInteractiveClass) &&\n\t\t\thasVisibleChildren &&\n\t\t\tisInKnownContainer &&\n\t\t\t!isParentBody\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element likely represents a distinct interaction\n\t * separate from its parent (if the parent is also interactive).\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is a distinct interaction.\n\t */\n\tfunction isElementDistinctInteraction(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst role = element.getAttribute('role')\n\n\t\t// Check if it's an iframe - always distinct boundary\n\t\tif (tagName === 'iframe') {\n\t\t\treturn true\n\t\t}\n\n\t\t// Check tag name\n\t\tif (DISTINCT_INTERACTIVE_TAGS.has(tagName)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check interactive roles\n\t\tif (role && INTERACTIVE_ROLES.has(role)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check contenteditable\n\t\tif (element.isContentEditable || element.getAttribute('contenteditable') === 'true') {\n\t\t\treturn true\n\t\t}\n\t\t// Check for common testing/automation attributes\n\t\tif (\n\t\t\telement.hasAttribute('data-testid') ||\n\t\t\telement.hasAttribute('data-cy') ||\n\t\t\telement.hasAttribute('data-test')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\t\t// Check for explicit onclick handler (attribute or property)\n\t\tif (element.hasAttribute('onclick') || typeof element.onclick === 'function') {\n\t\t\treturn true\n\t\t}\n\n\t\t// return false\n\n\t\t// Check for other common interaction event listeners\n\t\ttry {\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListenersForNode doesn't work in page.evaluate context)\n\t\t\tconst commonEventAttrs = [\n\t\t\t\t'onmousedown',\n\t\t\t\t'onmouseup',\n\t\t\t\t'onkeydown',\n\t\t\t\t'onkeyup',\n\t\t\t\t'onsubmit',\n\t\t\t\t'onchange',\n\t\t\t\t'oninput',\n\t\t\t\t'onfocus',\n\t\t\t\t'onblur',\n\t\t\t]\n\t\t\tif (commonEventAttrs.some((attr) => element.hasAttribute(attr))) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t// if the element is not strictly interactive but appears clickable based on heuristic signals\n\t\tif (isHeuristicallyInteractive(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Default to false: if it's interactive but doesn't match above,\n\t\t// assume it triggers the same action as the parent.\n\t\treturn false\n\t}\n\t// --- End distinct interaction check ---\n\n\t/**\n * Handles the logic for deciding whether to highlight an element and performing the highlight.\n * @param {\n {\n tagName: string;\n attributes: Record<string, string>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }} nodeData - The node data object.\n * @param {HTMLElement} node - The node to highlight.\n * @param {HTMLElement | null} parentIframe - The parent iframe node.\n * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n * @returns {boolean} Whether the element was highlighted.\n */\n\tfunction handleHighlighting(nodeData, node, parentIframe, isParentHighlighted) {\n\t\tif (!nodeData.isInteractive) return false // Not interactive, definitely don't highlight\n\n\t\tlet shouldHighlight = false\n\t\tif (!isParentHighlighted) {\n\t\t\t// Parent wasn't highlighted, this interactive node can be highlighted.\n\t\t\tshouldHighlight = true\n\t\t} else {\n\t\t\t// Parent *was* highlighted. Only highlight this node if it represents a distinct interaction.\n\t\t\tif (isElementDistinctInteraction(node)) {\n\t\t\t\tshouldHighlight = true\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (parent highlighted)`);\n\t\t\t\tshouldHighlight = false\n\t\t\t}\n\t\t}\n\n\t\tif (shouldHighlight) {\n\t\t\t// Check viewport status before assigning index and highlighting\n\t\t\tnodeData.isInViewport = isInExpandedViewport(node, viewportExpansion)\n\n\t\t\t// When viewportExpansion is -1, all interactive elements should get a highlight index\n\t\t\t// regardless of viewport status\n\t\t\tif (nodeData.isInViewport || viewportExpansion === -1) {\n\t\t\t\tnodeData.highlightIndex = highlightIndex++\n\n\t\t\t\tif (doHighlightElements) {\n\t\t\t\t\tif (focusHighlightIndex >= 0) {\n\t\t\t\t\t\tif (focusHighlightIndex === nodeData.highlightIndex) {\n\t\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t}\n\t\t\t\t\treturn true // Successfully highlighted\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (outside viewport)`);\n\t\t\t}\n\t\t}\n\n\t\treturn false // Did not highlight\n\t}\n\n\t/**\n\t * Creates a node data object for a given node and its descendants.\n\t *\n\t * @param {HTMLElement} node - The node to process.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n\t * @returns {string | null} The ID of the node data object, or null if the node is not processed.\n\t */\n\tfunction buildDomTree(node, parentIframe = null, isParentHighlighted = false) {\n\t\t// Fast rejection checks first\n\t\tif (\n\t\t\t!node ||\n\t\t\tnode.id === HIGHLIGHT_CONTAINER_ID ||\n\t\t\t(node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE)\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\tif (!node || node.id === HIGHLIGHT_CONTAINER_ID) {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * @edit add `data-browser-use-ignore` attribute\n\t\t */\n\t\tif (node.dataset?.browserUseIgnore === 'true' || node.dataset?.pageAgentIgnore === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t/**\n\t\t * @edit exclude aria-hidden elements\n\t\t */\n\t\tif (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t// Special handling for root node (body)\n\t\tif (node === document.body) {\n\t\t\tconst nodeData = {\n\t\t\t\ttagName: 'body',\n\t\t\t\tattributes: {},\n\t\t\t\txpath: '/body',\n\t\t\t\tchildren: [],\n\t\t\t}\n\n\t\t\t// Process children of body\n\t\t\tfor (const child of node.childNodes) {\n\t\t\t\tconst domElement = buildDomTree(child, parentIframe, false) // Body's children have no highlighted parent initially\n\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = nodeData\n\t\t\treturn id\n\t\t}\n\n\t\t// Early bailout for non-element nodes except text\n\t\tif (node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Process text nodes\n\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\tconst textContent = node.textContent?.trim()\n\t\t\tif (!textContent) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Only check visibility for text nodes that might be visible\n\t\t\tconst parentElement = node.parentElement\n\t\t\tif (!parentElement || parentElement.tagName.toLowerCase() === 'script') {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = {\n\t\t\t\ttype: 'TEXT_NODE',\n\t\t\t\ttext: textContent,\n\t\t\t\tisVisible: isTextNodeVisible(node),\n\t\t\t}\n\t\t\treturn id\n\t\t}\n\n\t\t// Quick checks for element nodes\n\t\tif (node.nodeType === Node.ELEMENT_NODE && !isElementAccepted(node)) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Early viewport check - only filter out elements clearly outside viewport\n\t\t// The getBoundingClientRect() of the Shadow DOM host element may return width/height = 0\n\t\tif (viewportExpansion !== -1 && !node.shadowRoot) {\n\t\t\tconst rect = getCachedBoundingRect(node) // Keep for initial quick check\n\t\t\tconst style = getCachedComputedStyle(node)\n\n\t\t\t// Skip viewport check for fixed/sticky elements as they may appear anywhere\n\t\t\tconst isFixedOrSticky = style && (style.position === 'fixed' || style.position === 'sticky')\n\n\t\t\t// Check if element has actual dimensions using offsetWidth/Height (quick check)\n\t\t\tconst hasSize = node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\t// Use getBoundingClientRect for the quick OUTSIDE check.\n\t\t\t// isInExpandedViewport will do the more accurate check later if needed.\n\t\t\tif (\n\t\t\t\t!rect ||\n\t\t\t\t(!isFixedOrSticky &&\n\t\t\t\t\t!hasSize &&\n\t\t\t\t\t(rect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion))\n\t\t\t) {\n\t\t\t\t// console.log(\"Skipping node outside viewport (quick check):\", node.tagName, rect);\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @type {\n {\n tagName: string;\n attributes: Record<string, string | null>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }\n } nodeData - The node data object.\n */\n\t\tconst nodeData = {\n\t\t\ttagName: node.tagName.toLowerCase(),\n\t\t\tattributes: {},\n\n\t\t\t/**\n\t\t\t * @edit no need for xpath\n\t\t\t */\n\t\t\t// xpath: getXPathTree(node, true),\n\n\t\t\tchildren: [],\n\t\t}\n\n\t\t// Get attributes for interactive elements or potential text containers\n\t\tif (\n\t\t\tisInteractiveCandidate(node) ||\n\t\t\tnode.tagName.toLowerCase() === 'iframe' ||\n\t\t\tnode.tagName.toLowerCase() === 'body'\n\t\t) {\n\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\tfor (const name of attributeNames) {\n\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\tnodeData.attributes[name] = value\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @edit @workaround input.checked\n\t\t\t */\n\t\t\tif (\n\t\t\t\tnode.tagName.toLowerCase() === 'input' &&\n\t\t\t\t(node.type === 'checkbox' || node.type === 'radio')\n\t\t\t) {\n\t\t\t\tnodeData.attributes.checked = node.checked ? 'true' : 'false' // Store as string for consistency\n\t\t\t}\n\t\t}\n\n\t\tlet nodeWasHighlighted = false\n\t\t// Perform visibility, interactivity, and highlighting checks\n\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\tnodeData.isVisible = isElementVisible(node) // isElementVisible uses offsetWidth/Height, which is fine\n\t\t\tif (nodeData.isVisible) {\n\t\t\t\tnodeData.isTopElement = isTopElement(node)\n\n\t\t\t\t// Special handling for ARIA menu containers - check interactivity even if not top element\n\t\t\t\tconst role = node.getAttribute('role')\n\t\t\t\tconst isMenuContainer = role === 'menu' || role === 'menubar' || role === 'listbox'\n\n\t\t\t\tif (nodeData.isTopElement || isMenuContainer) {\n\t\t\t\t\tnodeData.isInteractive = isInteractiveElement(node)\n\t\t\t\t\t// Call the dedicated highlighting function\n\t\t\t\t\tnodeWasHighlighted = handleHighlighting(nodeData, node, parentIframe, isParentHighlighted)\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit direct dom ref\n\t\t\t\t\t */\n\t\t\t\t\tnodeData.ref = node\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit make sure attributes exist for interactive candidates.\n\t\t\t\t\t * @note if the element failed the isInteractiveCandidate, attributes would be empty.\n\t\t\t\t\t */\n\t\t\t\t\tif (nodeData.isInteractive && Object.keys(nodeData.attributes).length === 0) {\n\t\t\t\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\t\t\t\tfor (const name of attributeNames) {\n\t\t\t\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\t\t\t\tnodeData.attributes[name] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Process children, with special handling for iframes and rich text editors\n\t\tif (node.tagName) {\n\t\t\tconst tagName = node.tagName.toLowerCase()\n\n\t\t\t// Handle iframes\n\t\t\tif (tagName === 'iframe') {\n\t\t\t\ttry {\n\t\t\t\t\tconst iframeDoc = node.contentDocument || node.contentWindow?.document\n\t\t\t\t\tif (iframeDoc) {\n\t\t\t\t\t\tfor (const child of iframeDoc.childNodes) {\n\t\t\t\t\t\t\tconst domElement = buildDomTree(child, node, false)\n\t\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.warn('Unable to access iframe:', e)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Handle rich text editors and contenteditable elements\n\t\t\telse if (\n\t\t\t\tnode.isContentEditable ||\n\t\t\t\tnode.getAttribute('contenteditable') === 'true' ||\n\t\t\t\tnode.id === 'tinymce' ||\n\t\t\t\tnode.classList.contains('mce-content-body') ||\n\t\t\t\t(tagName === 'body' && node.getAttribute('data-id')?.startsWith('mce_'))\n\t\t\t) {\n\t\t\t\t// Process all child nodes to capture formatted text\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle shadow DOM\n\t\t\t\tif (node.shadowRoot) {\n\t\t\t\t\tnodeData.shadowRoot = true\n\t\t\t\t\tfor (const child of node.shadowRoot.childNodes) {\n\t\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Handle regular elements\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\t// Pass the highlighted status of the *current* node to its children\n\t\t\t\t\tconst passHighlightStatusToChild = nodeWasHighlighted || isParentHighlighted\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, passHighlightStatusToChild)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Skip empty anchor tags only if they have no dimensions and no children\n\t\tif (nodeData.tagName === 'a' && nodeData.children.length === 0 && !nodeData.attributes.href) {\n\t\t\t// Check if the anchor has actual dimensions\n\t\t\tconst rect = getCachedBoundingRect(node)\n\t\t\tconst hasSize =\n\t\t\t\t(rect && rect.width > 0 && rect.height > 0) || node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\tif (!hasSize) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @edit add `extra` field for extra data\n\t\t */\n\t\tnodeData.extra = extraData.get(node) || null\n\n\t\tconst id = `${ID.current++}`\n\t\tDOM_HASH_MAP[id] = nodeData\n\t\treturn id\n\t}\n\n\tconst rootId = buildDomTree(document.body)\n\n\t// Clear the cache before starting\n\tDOM_CACHE.clearCache()\n\n\treturn { rootId, map: DOM_HASH_MAP }\n}\n",null,null,null,null,null,null,null],"names":["clickElement","STORAGE_KEY","dom.resolveViewportExpansion","dom.cleanUpHighlights","dom.getFlatTree","dom.flatTreeToString","dom.getSelectorMap","dom.getElementTextMap","baseWrapFn"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15]}