/** * Clipboard Icon Web Component * A clipboard/document icon */ class ClipboardIcon extends HTMLElement { static get observedAttributes() { return ["size", "color", "stroke-width"]; } constructor() { super(); this.attachShadow({ mode: "open" }); } connectedCallback() { this.render(); } attributeChangedCallback() { this.render(); } get size() { return this.getAttribute("size") || "32"; } get color() { return this.getAttribute("color") || "currentColor"; } get strokeWidth() { return this.getAttribute("stroke-width") || "1"; } render() { this.shadowRoot.innerHTML = ` `; } } customElements.define("clipboard-icon", ClipboardIcon);