class AppHeader extends HTMLElement { constructor() { super(); this.attachShadow({ mode: 'open' }); } connectedCallback() { this.render(); this.setupEventListeners(); } render() { this.shadowRoot.innerHTML = `
Claude AI Chat
Powered by Puter.js
`; } setupEventListeners() { // App title click - new chat const appTitle = this.shadowRoot.querySelector('.app-title'); appTitle.addEventListener('click', () => { if (window.claudeApp) { window.claudeApp.newChat(); } }); // Model selector change const modelSelector = this.shadowRoot.querySelector('.model-selector'); // Set initial value if (window.claudeApp) { modelSelector.value = window.claudeApp.selectedModel; } modelSelector.addEventListener('change', (e) => { if (window.claudeApp) { window.claudeApp.changeModel(e.target.value); } }); // Update model selector when app state changes if (window.claudeApp) { const originalChangeModel = window.claudeApp.changeModel.bind(window.claudeApp); window.claudeApp.changeModel = (newModel) => { originalChangeModel(newModel); modelSelector.value = newModel; }; } } } customElements.define('app-header', AppHeader);