fix(rtime): remove empty shell subnav + compact mobile tab/stats bars

Shell subnav now skips rendering when module has no outputPaths/subPageInfos
(rTime uses internal tab-bar). Mobile CSS tightened: smaller tabs, condensed
stats-bar, skill legend hidden on narrow screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-04-15 10:30:29 -04:00
parent 9002e0ffb3
commit a5aeb9fef5
2 changed files with 14 additions and 0 deletions

View File

@ -4407,6 +4407,14 @@ const CSS_TEXT = `
.exec-step-checklist input[type="checkbox"] { accent-color: #8b5cf6; }
@media (max-width: 768px) {
.tab-bar { gap: 0; }
.tab { padding: 0.45rem 1rem; font-size: 0.82rem; }
.stats-bar { padding: 0.35rem 0.75rem; gap: 0.75rem; }
.stat { font-size: 0.75rem; }
.stat-value { font-size: 0.85rem; }
.skill-bar { min-width: 80px; max-width: 160px; }
.skill-legend { gap: 0.5rem; }
.skill-legend-item { font-size: 0.68rem; }
#canvas-view { flex-direction: column; }
.pool-panel {
width: 100% !important; min-width: unset;
@ -4426,6 +4434,9 @@ const CSS_TEXT = `
.task-edit-panel { width: 95vw; }
}
@media (max-width: 640px) {
.tab { padding: 0.4rem 0.75rem; font-size: 0.78rem; }
.stats-bar { padding: 0.3rem 0.5rem; gap: 0.5rem; }
.skill-legend { display: none; }
.pool-panel.collapsed { width: 100% !important; }
}
`;

View File

@ -2323,6 +2323,9 @@ function renderModuleSubNav(moduleId: string, spaceSlug: string, modules: Module
}
}
// Skip subnav when there are no navigable items (module uses internal tabs)
if (items.length === 0 && !mod.externalApp) return '';
const base = (isSubdomain ?? IS_PRODUCTION) ? `/${escapeAttr(moduleId)}` : `/${escapeAttr(spaceSlug)}/${escapeAttr(moduleId)}`;
const minimizeBtn = `<button class="rapp-minimize-btn" id="header-minimize-btn" title="Minimize headers"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg></button>`;