class ClaudeExamples extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.render();
this.setupEventListeners();
}
render() {
this.shadowRoot.innerHTML = `
Try these examples:
`;
}
setupEventListeners() {
const exampleButtons = this.shadowRoot.querySelectorAll('.example-button');
exampleButtons.forEach(button => {
button.addEventListener('click', () => {
const prompt = button.dataset.prompt;
document.dispatchEvent(new CustomEvent('claude-fill-input', {
detail: { prompt }
}));
});
});
// Hide examples after first user message
document.addEventListener('claude-user-message-sent', () => {
const container = this.shadowRoot.getElementById('examplesContainer');
container.classList.add('hidden');
});
// Show examples when starting new chat
document.addEventListener('claude-new-chat', () => {
const container = this.shadowRoot.getElementById('examplesContainer');
container.classList.remove('hidden');
});
}
}
customElements.define('claude-examples', ClaudeExamples);