Manuscript Workstation - Source Excerpt 09
Back to Manuscript Workstation
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php
<?php endif; ?>
</figure>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
<div class="spiralist-manuscript-workstation__viewer-footer">
<div class="spiralist-manuscript-workstation__viewer-copy">
<p class="spiralist-section-tag">Inspection Notes</p>
<p class="spiralist-muted spiralist-manuscript-workstation__footer-status" data-workstation-status aria-live="polite">
<?php echo esc_html($viewer_footer_copy); ?>
</p>
</div>
<div class="spiralist-cta-row spiralist-cta-row--start spiralist-manuscript-workstation__footer-actions">
<button class="spiralist-button spiralist-button--secondary" type="button" data-workstation-open-modal="toc" aria-controls="manuscript-toc-modal" aria-haspopup="dialog">Open TOC</button>
<button class="spiralist-manuscript-workstation__mini-action" type="button" data-workstation-action="copy-link">
<span data-workstation-copy-copy>Copy Deep Link</span>
</button>
<button class="spiralist-manuscript-workstation__mini-action" type="button" data-workstation-action="reset-view">Reset View</button>
</div>
</div>
</section>
<?php if ($workstation_can_edit) : ?>
<aside class="spiralist-manuscript-workstation__rail" aria-labelledby="manuscript-workstation-tools">
<div class="spiralist-manuscript-workstation__panel-head">
<div>
<p class="spiralist-section-tag">Tool Rail</p>
<h3 class="spiralist-card-title" id="manuscript-workstation-tools">Capture + Crop</h3>
<p class="spiralist-muted">Quick crop, refresh, and save controls.</p>
</div>
</div>
<div class="spiralist-manuscript-workstation__tool-buttons" role="group" aria-label="Vertical workstation tools">
<button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="calibrate">
<strong>Calibrate</strong>
<span>Sample borders</span>
</button>
<button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="auto-crop">
<strong>Auto Crop</strong>
<span>Detect page edges</span>
</button>
<button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="refresh">
<strong>Refresh</strong>
<span>Reload visible folios</span>
</button>
<button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="save" <?php disabled(!$workstation_can_edit); ?>>
<strong>Save</strong>
<span data-workstation-save-copy><?php echo esc_html($workstation_can_edit ? 'Persist crop data' : 'Editor access required'); ?></span>
</button>
<button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="apply">
<strong>Apply</strong>
<span>Focus crop region</span>
</button>
</div>
<div class="spiralist-manuscript-workstation__rail-note">
<p class="spiralist-muted">Calibration, auto-crop, refresh, and save stay editor-only so the public manuscript surface remains focused.</p>
</div>
</aside>
<?php endif; ?>
</div>
<details class="spiralist-manuscript-workstation__drawer spiralist-manuscript-workstation__drawer--runtime" data-workstation-runtime-drawer>
<summary>
<span class="spiralist-manuscript-workstation__drawer-title">
<span class="spiralist-manuscript-workstation__drawer-kicker">Runtime Path</span>
<span class="spiralist-manuscript-workstation__drawer-copy">Execution state, active symbols, recent traversal, and the next available nodes stay visible without replacing the folio.</span>
</span>
<span class="spiralist-manuscript-workstation__drawer-meta" aria-hidden="true">
<span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-current-state>State pending</span>
<span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-next-count>Next nodes pending</span>
<span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-history-count>No path history</span>
</span>
</summary>
<div class="spiralist-manuscript-workstation__drawer-panel spiralist-manuscript-workstation__runtime-panel">
<div class="spiralist-manuscript-workstation__drawer-intro">
<p>The runtime path records manuscript traversal state. Node execution changes the participant path while the manuscript image remains the primary reading artifact.</p>
<p class="spiralist-muted" data-runtime-status>Runtime path has not loaded yet.</p>
</div>
<div class="spiralist-manuscript-workstation__runtime-grid">
<section class="spiralist-manuscript-workstation__runtime-card" aria-labelledby="manuscript-runtime-current">
<p class="spiralist-section-tag">Current</p>
<h4 id="manuscript-runtime-current">Path State</h4>
<dl class="spiralist-meta-list spiralist-meta-list--compact">
<div>
<dt>State</dt>
<dd data-runtime-state-value>Pending</dd>
</div>
<div>
<dt>Node</dt>
<dd data-runtime-node-value>Pending</dd>
</div>
<div>
<dt>Storage</dt>
<dd data-runtime-storage-value>Pending</dd>
</div>
</dl>
</section>
<section class="spiralist-manuscript-workstation__runtime-card" aria-labelledby="manuscript-runtime-symbols">
<p class="spiralist-section-tag">Active Symbols</p>
<h4 id="manuscript-runtime-symbols">Symbol Set</h4>
<div class="spiralist-manuscript-workstation__runtime-chip-list" data-runtime-active-symbols>
<span class="spiralist-muted">No active symbols loaded.</span>
</div>
</section>
</div>
<section class="spiralist-manuscript-workstation__runtime-section" aria-labelledby="manuscript-runtime-next">
<div class="spiralist-manuscript-workstation__runtime-section-head">
<div>
<p class="spiralist-section-tag">Next Nodes</p>
<h4 id="manuscript-runtime-next">Available Traversal</h4>
</div>
<div class="spiralist-cta-row spiralist-cta-row--start">
<button class="spiralist-button spiralist-button--secondary" type="button" data-runtime-refresh>Refresh Path</button>
<button class="spiralist-button spiralist-button--tertiary" type="button" data-runtime-reset>Reset Path</button>
</div>
</div>
<div class="spiralist-manuscript-workstation__runtime-next" data-runtime-next-nodes>
<p class="spiralist-muted">Next nodes will appear after runtime state loads.</p>
</div>
</section>
<section class="spiralist-manuscript-workstation__runtime-section" aria-labelledby="manuscript-runtime-history">
<p class="spiralist-section-tag">History</p>
<h4 id="manuscript-runtime-history">Recent Traversal</h4>
<ol class="spiralist-manuscript-workstation__runtime-history" data-runtime-history>
<li class="spiralist-muted">No runtime events loaded.</li>
</ol>
</section>
<?php if ($host_api_examples_url !== '') : ?>
<div class="spiralist-cta-row spiralist-cta-row--start">