mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-06 23:49:41 +02:00
COD-130 session-row ⋯ becomes a context menu
The per-row ⋯ in the session list was a details toggle that did nothing in the Session Manager modal (swallowed by the modal's capture-phase close-on-click). Replace it with a real kebab context menu. - terminal-ui.js: ⋯ now opens _openSessionRowMenu() — a body-anchored popup (fixed-positioned, flips/clamps to viewport, z-index above the modal) with: Resume/Switch-to (live→select tab, closed→resume), Open folder in the file browser (live sessions only — the browser is session-scoped), Copy path (_copyText + toast, when workingDir present), and Show details (the old inline prompt/path panel). Closes on outside-click / Escape / scroll / resize. - panels-ui.js: _loadSessionManagerList scopes its modal-close to the .history-item-main (resume) click, so the ⋯/menu no longer closes the modal. - styles.css: .session-row-menu + .session-row-menu-item. Verified in Chromium on an isolated beta: ⋯ opens the menu with the modal still open; closed rows show Resume/Copy path/Show details, live rows add Switch-to + Open folder; Show details expands inline (modal stays open), Copy path copies the path, Resume closes the modal, Escape closes only the menu. Gates: tsc 0, lint 0, frontend-syntax + public-asset format clean.
This commit is contained in:
@@ -5471,6 +5471,51 @@ kbd {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/* COD-130: per-row ⋯ kebab context menu (appended to <body>, fixed-positioned).
|
||||
z-index must clear the Session Manager modal (.modal is z-index: 1000). */
|
||||
.session-row-menu {
|
||||
position: fixed;
|
||||
z-index: 10010;
|
||||
min-width: 180px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
padding: 4px;
|
||||
background: rgba(22, 22, 28, 0.97);
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.session-row-menu-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 1px;
|
||||
width: 100%;
|
||||
padding: 7px 12px;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: var(--btn-radius);
|
||||
color: var(--text);
|
||||
cursor: pointer;
|
||||
font-size: 0.8rem;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
transition: background var(--transition-smooth);
|
||||
}
|
||||
|
||||
.session-row-menu-item:hover {
|
||||
background: var(--bg-hover);
|
||||
}
|
||||
|
||||
.session-row-menu-sublabel {
|
||||
color: var(--text-muted);
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
.away-digest-ranges {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
Reference in New Issue
Block a user