{% extends "suite/base.html" %} {% block title %}Sources - General Bots Suite{% endblock %} {% block content %}

Sources

Repositories, Apps, Prompts, Templates & MCP Servers

Loading sources...

document.addEventListener('click', function(e) { const categoryItem = e.target.closest('.category-item'); if (categoryItem) { document.querySelectorAll('.category-item').forEach(c => c.classList.remove('active')); categoryItem.classList.add('active'); } }); // View toggle document.addEventListener('click', function(e) { const viewBtn = e.target.closest('.view-btn'); if (viewBtn) { const controls = viewBtn.closest('.view-controls'); controls.querySelectorAll('.view-btn').forEach(b => b.classList.remove('active')); viewBtn.classList.add('active'); const grid = document.querySelector('.prompts-grid, .templates-grid, .servers-grid, .models-grid'); if (grid) { if (viewBtn.title === 'List view') { grid.classList.add('list-view'); } else { grid.classList.remove('list-view'); } } } }); // Keyboard shortcuts document.addEventListener('keydown', function(e) { // Ctrl+K to focus search if ((e.ctrlKey || e.metaKey) && e.key === 'k') { e.preventDefault(); document.querySelector('.search-box input').focus(); } // Tab navigation with number keys if (!e.ctrlKey && !e.metaKey && !e.altKey) { const tabs = document.querySelectorAll('.tab-btn'); const num = parseInt(e.key); if (num >= 1 && num <= tabs.length) { tabs[num - 1].click(); } } }); // HTMX events document.body.addEventListener('htmx:beforeRequest', function(e) { if (e.detail.target.id === 'content-area') { e.detail.target.innerHTML = `

Loading...

`; } }); {% endblock %}