customElements.define( "z-component", class extends HTMLElement { constructor() { super(); this.attachShadow({ mode: 'open' }); } connectedCallback() { const type = this.getAttribute('type'); const template = document.getElementById(`--${type}`); const node = document.importNode(template.content, true); this.shadowRoot.appendChild(node); } } );