.nornir/assets/three-pane-shell.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 380" font-family="ui-sans-serif,system-ui,sans-serif" font-size="13">
<style>
.chip{fill:#12232e;stroke:#6fd3f5;stroke-width:1.5;rx:8;}
.shared{fill:#173b2a;stroke:#7fe0a0;}
.lbl{fill:#dbe9f0;}
.dim{fill:#8fb4c6;font-size:11px;}
.arr{stroke:#6fd3f5;stroke-width:1.5;fill:none;marker-end:url(#a);}
.t{fill:#e8f4fa;font-weight:600;}
</style>
<defs><marker id="a" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 z" fill="#6fd3f5"/></marker></defs>
<rect x="8" y="8" width="704" height="364" rx="10" fill="#0b1620" stroke="#274a5c"/>
<text x="24" y="32" class="t" font-size="15">dwarves-gui — TabbedView (Facet)</text>
<!-- tab bar -->
<rect class="chip" x="24" y="48" width="150" height="34" rx="8"/><text x="99" y="70" class="lbl" text-anchor="middle">Forge (Pipeline)</text>
<rect class="chip" x="190" y="48" width="150" height="34" rx="8"/><text x="265" y="70" class="lbl" text-anchor="middle">Funnel</text>
<rect class="chip" x="356" y="48" width="150" height="34" rx="8"/><text x="431" y="70" class="lbl" text-anchor="middle">Claude 🤖</text>
<!-- panes -->
<rect class="chip shared" x="24" y="140" width="150" height="66" rx="8"/><text x="99" y="166" class="lbl" text-anchor="middle">facett-brokkrview</text><text x="99" y="184" class="dim" text-anchor="middle">shared pane</text>
<rect class="chip" x="190" y="140" width="150" height="66" rx="8"/><text x="265" y="166" class="lbl" text-anchor="middle">nornir-funnel-embed</text><text x="265" y="184" class="dim" text-anchor="middle">thin gRPC · auto-poll</text>
<rect class="chip shared" x="356" y="140" width="150" height="66" rx="8"/><text x="431" y="166" class="lbl" text-anchor="middle">facett-claude</text><text x="431" y="184" class="dim" text-anchor="middle">ClaudePane (Elm)</text>
<line class="arr" x1="99" y1="82" x2="99" y2="140"/>
<line class="arr" x1="265" y1="82" x2="265" y2="140"/>
<line class="arr" x1="431" y1="82" x2="431" y2="140"/>
<!-- backends -->
<rect class="chip" x="190" y="262" width="150" height="60" rx="8"/><text x="265" y="286" class="lbl" text-anchor="middle">nornir-server</text><text x="265" y="304" class="dim" text-anchor="middle">Funnel.Show (warehouse)</text>
<rect class="chip" x="356" y="262" width="200" height="60" rx="8"/><text x="456" y="284" class="lbl" text-anchor="middle">ClaudeTab · ClaudeTransport</text><text x="456" y="302" class="dim" text-anchor="middle">OFFLINE stub — live=shared client TODO</text>
<line class="arr" x1="265" y1="206" x2="265" y2="262"/>
<line class="arr" x1="431" y1="206" x2="431" y2="262"/>
<text x="24" y="352" class="dim">Every pane single-sourced in a shared facett-* crate (Law #1) · driven over state_json/update_json (robot + testmatrix, in code)</text>
</svg>