/** * Arrow Button Component * A CTA link with a circular arrow icon * Uses a slot for the button text content */ class ArrowButton extends HTMLElement { static get observedAttributes() { return ["href"]; } constructor() { super(); this.attachShadow({ mode: "open" }); } connectedCallback() { this.render(); } attributeChangedCallback() { this.render(); } get href() { return this.getAttribute("href") || "#"; } render() { this.shadowRoot.innerHTML = ` `; } } customElements.define("arrow-button", ArrowButton);