From 39ec39f175b880be715e02e359b8127dff738538 Mon Sep 17 00:00:00 2001 From: TheFlow Date: Mon, 27 Oct 2025 11:27:15 +1300 Subject: [PATCH] feat(bi): add scrollable modal with fixed header/footer for cost config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enhanced modal UX with proper scroll handling: 1. Modal Structure: - Fixed header (title + description) - Scrollable content area (form fields) - Fixed footer (Cancel + Save buttons) 2. Flexbox Layout: - Container: flex flex-col max-height 90vh - Header/Footer: flex-shrink-0 (stays visible) - Content: flex-1 overflow-y-auto (scrolls) 3. Custom Purple Scrollbar: - WebKit (Chrome/Safari/Edge): 8px width, purple thumb - Firefox: thin scrollbar, purple color scheme - Matches Tractatus theme (#9333ea purple) 4. Responsive Height: - Modal max 90vh ensures it fits any screen - Content area scrolls when form is tall - Header/footer always visible for context Users can now scroll through all 4 severity configurations while always seeing the modal title and action buttons. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- public/js/admin/audit-analytics.js | 39 ++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/public/js/admin/audit-analytics.js b/public/js/admin/audit-analytics.js index ba3924d4..8f2b5ed9 100644 --- a/public/js/admin/audit-analytics.js +++ b/public/js/admin/audit-analytics.js @@ -969,15 +969,15 @@ async function showCostConfigModal() { }; const modal = document.createElement('div'); - modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50'; + modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4'; modal.innerHTML = ` -
-
+