function inspectElement(node, { open = false, showData = true } = {}) {
const attrs = Array.from(node.attributes).map(
({ name, value }) =>
htl.html` ${name}${
value ? htl.html`=<span class="hljs-string">"${value}"</span>` : ""
}`
);
const data =
showData && node.__data__ !== undefined
? htl.html` <span class="hljs-comment">${inspectData(
node.__data__
)}</span>`
: "";
const tag = htl.html`<span class="hljs-name">
<${node.tagName.toLowerCase()} ${attrs}>${data}
</span>`;
return node.children.length
? htl.html`
<details style=${styles} open=${open}>
<summary style=${{ cursor: "pointer" }}>${tag}</summary>
<div style=${indent}>
${Array.from(node.children).map((node) =>
inspectElement(node, { open })
)}
</div>
</div>`
: htl.html`
<div style=${{ ...styles, ...indent }}>
${tag}
</div>`;
}