import addStyle from "../lib/addStyle"; class Clipboard extends HTMLElement { connectedCallback() { addStyle(` .notebook-clipboard-content { position: relative !important; overflow: auto !important; } .notebook-clipboard { position: absolute !important; right: 0 !important; top: 0 !important; animation: fade-out 200ms both; } .notebook-clipboard-button { position: relative; padding: 0 !important; margin: 8px !important; opacity: 0.4; }`); this.innerHTML = `
${this.innerHTML}
`; this.querySelector(".notebook-clipboard-button")?.addEventListener( "click", (event: Event) => { const el = event.currentTarget as HTMLElement; const content = el.parentElement?.previousElementSibling?.textContent || ""; navigator.clipboard.writeText(content); } ); } } export default Clipboard;