From bfdc156bd696604b9156cb9c413ac5733d39f099 Mon Sep 17 00:00:00 2001 From: Sudhir Verma <9924513+sudhirverma@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:40:56 +0530 Subject: [PATCH 1/4] fix(daemon): correct dashboard modal button placement and spacing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address UX review findings (design review doc, AAP-80841/ANSTRAT-2262): - Separate Cancel from the primary action in all 3 modals so a mis-click can't fire Save/Apply. - Add an X close button to the Add/Edit Provider wizard modal. - Engine picker is single-select — clicking a tile now advances directly instead of requiring a redundant Next click. - Replace the dual-list's shared middle Add/Remove column with per-row Add/Remove/Configure actions. - Remove the duplicate 'Back to Models tab' button (dead code path) and fix the mislabeled footer button when Configure Model is opened from the Models tab. - Change input focus color from brand red to blue so a focused field is never mistaken for a validation error. - Mark the one required field (Provider Name) and label Base URL optional. PF6 migration and branding are explicitly out of scope per team decision (dashboard is intentionally RHDS + Alpine; native UI config will move to the Portal). --- packages/daemon/static/index.html | 154 ++++++++++++++---------------- 1 file changed, 72 insertions(+), 82 deletions(-) diff --git a/packages/daemon/static/index.html b/packages/daemon/static/index.html index 345ef67..b7074ae 100644 --- a/packages/daemon/static/index.html +++ b/packages/daemon/static/index.html @@ -128,7 +128,8 @@ font-family: 'Red Hat Text', sans-serif; border: 1px solid #d2d2d2; border-radius: 3px; background: #fff; } - input:focus, select:focus, textarea:focus { outline: none; border-color: #ee0000; box-shadow: 0 0 0 1px #ee0000; } + /* Focus uses blue, not the brand/error red, so a focused field is never mistaken for a validation error. */ + input:focus, select:focus, textarea:focus { outline: none; border-color: #06c; box-shadow: 0 0 0 1px #06c; } /* Modal */ .modal-backdrop { @@ -153,6 +154,8 @@ border-top: 1px solid #d2d2d2; display: flex; justify-content: flex-end; gap: var(--rh-space-sm); align-items: center; } + /* Keeps Cancel/dismiss clearly separated from the primary action so a mis-click can't fire it. */ + .footer-dismiss { margin-right: auto; } /* Step indicators */ .step-indicators { display: flex; gap: 8px; align-items: center; } @@ -177,8 +180,9 @@ .engine-tile .tile-name { font-weight: 600; font-size: 0.9rem; margin-bottom: 2px; } .engine-tile .tile-hint { font-size: 0.75rem; color: #6a6e73; } - /* Dual list model selector */ - .dual-list { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--rh-space-sm); min-height: 350px; } + /* Dual list model selector — each row carries its own Add/Remove/Configure action + (no shared middle column) so the action is right where the user is looking. */ + .dual-list { display: grid; grid-template-columns: 1fr 1fr; gap: var(--rh-space-sm); min-height: 350px; } .dual-list-panel { border: 1px solid #d2d2d2; border-radius: 3px; overflow-y: auto; max-height: 400px; } @@ -187,16 +191,12 @@ color: #6a6e73; position: sticky; top: 0; z-index: 1; border-bottom: 1px solid #d2d2d2; } - .dual-list-actions { - display: flex; flex-direction: column; justify-content: center; gap: var(--rh-space-sm); - } .model-item { display: flex; align-items: center; gap: 8px; - padding: 8px 12px; border-bottom: 1px solid #f0f0f0; cursor: pointer; + padding: 8px 12px; border-bottom: 1px solid #f0f0f0; font-size: 0.85rem; } .model-item:hover { background: #f8f8f8; } - .model-item.selected { background: #e7f1fa; } .model-item .model-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Inline param editor */ @@ -896,14 +896,17 @@

Pending MCP tool approvals

-