{{ currentZoomLevel }}
@if (savedLayouts.length > 0) { } @if (savedLayouts.length > 0) { }
@if (showHelp) {
Keyboard & Mouse Shortcuts
Mouse
ClickSelect node, open detail panel
Right-clickHighlight entire subtree downward
{{ isMac ? '⌘' : 'Ctrl' }}+ClickFocus mode: show node, direct children, and paths to roots
{{ isMac ? '⌘⇧' : 'Ctrl+Shift' }}+ClickDeep focus: show node, all descendants to leaves, and paths to roots
Shift+ClickHighlight parent path only (no "also satisfies")
{{ isMac ? '⌥' : 'Alt' }}+ClickHighlight "also satisfies" links for a node
Click backgroundExit focus mode or close detail panel
Drag nodeReposition (saved across sessions)
Keyboard
+ =Zoom in
-Zoom out
0Fit graph to screen
{{ isMac ? '⌘Z' : 'Ctrl+Z' }}Undo last canvas action
EscExit focus mode
Graph
Solid linesParent-child relationships
Dashed purple"Also satisfies" links
Red dotFewer than 2 quality gates pass
Orange dot2 of 3 quality gates pass
Green dotAll quality gates pass
} @if (showCreatePillar) {
}
@if (loading) {
Loading requirements graph...
} @if (!loading && treeData.length === 0 && !showCreatePillar) {
No requirements yet
Create a pillar to get started
}
@if (showSaveLayout) {
Save Current Layout
} @if (showManageLayouts) {
Manage Layouts
@for (layout of savedLayouts; track layout.id) {
{{ layout.name }}{{ layout.is_default ? ' (default)' : '' }} {{ layout.updated_at | date:'short' }} @if (layout.description) { {{ layout.description }} }
@if (!layout.is_default) { }
} @empty {
No saved layouts
}
} @if (detailOpen && selectedNode) { }