docs: draw every panel screen in the accepted redesign direction

Stage 2 of the panel redesign. Direction C (Bulma) is the base — the
important things in view, details one or two clicks away — with A's
postal signature (postmark verdict, numbered mono section heads, the
stamp's perforated edge) and B's icons. 29 screens under
docs/assets/panel-redesign/panel/, linked into a click-through.

Overview keeps verdicts only; the process, socket and interface tables
move to a new Server > Health page. The own password becomes Account,
queues are drawn as tables (needs postqueue -j), and Inbound gets its
own Log and Queue. Every page is one of three layouts, so none picks
its own width.

Pages are built from panel/src fragments by panel/build.py so the navbar
lives in one place; the built HTML is committed. The cover sheet now
leads with the screen map and keeps the three stage-1 directions below.

Mockups only; internal/web is untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
mix
2026-09-21 19:11:15 +03:00
co-authored by Claude Fable 5.1
parent 2b69605cf9
commit d1f22fbcc8
62 changed files with 4786 additions and 5 deletions
@@ -0,0 +1,41 @@
<!-- title: shop-team · Users | section: server | page: users -->
<div class="sp-head">
<div class="sp-grow">
<p class="sp-kicker"><a href="users.html">Users</a> /</p>
<h1 class="title is-3">shop-team</h1>
<p class="sp-lead">The same form, empty, creates a new user.</p>
</div>
<a class="button is-danger is-light" href="user-delete.html"><i class="ti ti-trash"></i>Delete user</a>
</div>
<form class="sp-form" method="post" action="users.html">
<div class="columns">
<div class="column is-6">
<div class="box">
<div class="sp-box-head"><span class="sp-no">01</span><h2>Sign-in</h2></div>
<div class="sp-box-body">
<div class="field"><label class="label" for="username">Username</label><div class="control"><input class="input" id="username" name="username" value="shop-team" autocomplete="username" spellcheck="false" required></div></div>
<div class="field"><label class="label" for="password">Password</label><div class="control"><input class="input" id="password" name="password" type="password" autocomplete="new-password"></div>
<p class="help">Leave empty to keep the current one.</p></div>
<div class="field"><label class="label" for="role">Role</label>
<div class="control"><div class="select is-fullwidth"><select id="role" name="role"><option selected>Domain administrator</option><option>Global administrator</option></select></div></div>
<p class="help">A global administrator sees everything, including Inbound and Server. The only global administrator cannot be demoted or deleted.</p></div>
</div>
</div>
</div>
<div class="column is-6">
<div class="box">
<div class="sp-box-head"><span class="sp-no">02</span><h2>Assigned domains</h2><div class="sp-end">Required for a domain administrator</div></div>
<div class="sp-box-body">
<div class="field"><label class="checkbox"><input type="checkbox" name="domain_ids"> example.org</label></div>
<div class="field"><label class="checkbox"><input type="checkbox" name="domain_ids" checked> shop.example.org</label></div>
<div class="field"><label class="checkbox"><input type="checkbox" name="domain_ids"> notify.acme.io</label></div>
</div>
</div>
</div>
</div>
<div class="buttons">
<button type="submit" class="button is-primary">Save user</button>
<a class="button is-text" href="users.html">Cancel</a>
</div>
</form>