class VoiceControl extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
`;
this.micButton = this.shadowRoot.getElementById('micButton');
this.status = this.shadowRoot.getElementById('status');
this.micButton.addEventListener('click', () => {
this.dispatchEvent(new CustomEvent('voice-toggle'));
});
}
setStatus(text) {
this.status.textContent = text;
}
setRecording(isRecording) {
if (isRecording) {
this.micButton.innerHTML = '';
this.micButton.style.background = '#ef4444';
} else {
this.micButton.innerHTML = '';
this.micButton.style.background = '#6366f1';
}
}
}
customElements.define('voice-control', VoiceControl);