/** * Chevron Down Icon Web Component * A downward pointing chevron */ class ChevronDownIcon 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") || "24"; } get color() { return this.getAttribute("color") || "currentColor"; } get strokeWidth() { return this.getAttribute("stroke-width") || "2"; } render() { this.shadowRoot.innerHTML = ` `; } } customElements.define("chevron-down-icon", ChevronDownIcon);