class CustomTemplateCard extends HTMLElement { constructor() { super(); this.attachShadow({ mode: 'open' }); } connectedCallback() { const name = this.getAttribute('name') || ''; const status = this.getAttribute('status') || ''; const category = this.getAttribute('category') || ''; const language = this.getAttribute('language') || ''; this.shadowRoot.innerHTML = `

${name.replace(/_/g, ' ')}

${this.getCategoryName(category)} ${language}
${this.getStatusName(status)}
`; } getStatusClass(status) { switch(status) { case 'approved': return 'badge-approved'; case 'pending': return 'badge-pending'; case 'rejected': return 'badge-rejected'; default: return 'bg-gray-100 text-gray-800'; } } getStatusName(status) { switch(status) { case 'approved': return 'Approved'; case 'pending': return 'Pending'; case 'rejected': return 'Rejected'; default: return status; } } getCategoryClass(category) { switch(category) { case 'transactional': return 'badge-transactional'; case 'marketing': return 'badge-marketing'; case 'seasonal': return 'badge-seasonal'; default: return 'bg-gray-100 text-gray-800'; } } getCategoryName(category) { switch(category) { case 'transactional': return 'Transactional'; case 'marketing': return 'Marketing'; case 'seasonal': return 'Seasonal'; default: return category; } } } customElements.define('custom-template-card', CustomTemplateCard);