Add pending apps and frontend components

- apps/captain-mobile: Mobile API service
- apps/flow-ui: Flow UI application
- apps/mindlink: Mindlink application
- apps/storage: Storage API and workers
- apps/tzzr-cli: TZZR CLI tool
- deck-frontend/backups: Historical TypeScript versions
- hst-frontend: Standalone HST frontend

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
ARCHITECT
2026-01-16 18:26:59 +00:00
parent 17506aaee2
commit 9b244138b5
177 changed files with 15063 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
/* === GRAPH VIEW === */
.graph-view {
width: 100%;
height: 100%;
position: relative;
display: none;
}
#graph-svg { width: 100%; height: 100%; display: block; }
.node { cursor: pointer; }
.node text { fill: var(--text-muted); pointer-events: none; font-size: 11px; }
.node.selected circle { stroke: var(--accent); stroke-width: 4; }
.link { stroke-opacity: 0.5; }
.graph-controls { position: absolute; top: 16px; right: 16px; display: flex; gap: 6px; }
.graph-sidebar {
position: absolute;
top: 16px;
left: 16px;
width: 210px;
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: 10px;
padding: 14px;
font-size: 0.8em;
max-height: calc(100% - 32px);
overflow-y: auto;
}
.graph-sidebar h4 {
color: var(--text-muted);
margin: 12px 0 8px;
font-size: 0.85em;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.graph-sidebar h4:first-child { margin-top: 0; }
.graph-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.graph-stat {
background: var(--bg-card);
padding: 10px;
border-radius: 8px;
text-align: center;
}
.graph-stat-val { font-size: 1.4em; font-weight: 700; color: var(--accent); }
.graph-stat-label { font-size: 0.7em; color: var(--text-muted); margin-top: 3px; }
.graph-filters { display: flex; flex-wrap: wrap; gap: 5px; }
.graph-filter {
padding: 5px 10px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 5px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
transition: all 0.15s ease;
font-size: 0.85em;
}
.graph-filter:hover { border-color: var(--accent); }
.graph-filter.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.graph-filter .dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.graph-slider { width: 100%; margin: 6px 0; accent-color: var(--accent); }
.graph-legend {
position: absolute;
bottom: 16px;
left: 16px;
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: 8px;
padding: 10px 14px;
font-size: 0.75em;
}
.legend-item { display: flex; align-items: center; margin: 4px 0; color: var(--text-muted); }
.legend-color { width: 12px; height: 12px; border-radius: 50%; margin-right: 10px; flex-shrink: 0; }