46 lines
3.2 KiB
HTML
46 lines
3.2 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; media-src 'none'; connect-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'">
|
|
<title>XZBT 0.1</title>
|
|
<style>/*__XZBT_STYLES__*/</style>
|
|
</head>
|
|
<body>
|
|
<header class="app-header">
|
|
<div class="brand"><h1>XZBT</h1><span id="runtime-version"></span></div>
|
|
<div class="status-cluster" role="status" aria-live="polite">
|
|
<span id="app-status">Starting…</span><span id="storage-status">Checking storage…</span>
|
|
</div>
|
|
</header>
|
|
<main>
|
|
<aside class="sidebar" aria-labelledby="library-title">
|
|
<div class="section-heading"><h2 id="library-title">Exhibit library</h2><button id="import-button" class="primary" type="button">Import files</button></div>
|
|
<input id="import-files" type="file" accept=".xzbt,application/json" multiple hidden>
|
|
<div id="drop-zone" class="drop-zone">Drop .xzbt files here</div>
|
|
<p id="empty-state" class="empty">No exhibits loaded.</p>
|
|
<div id="library-list" class="exhibit-list"></div>
|
|
</aside>
|
|
<section class="workspace">
|
|
<section class="stage" aria-live="polite">
|
|
<div id="stage-empty" class="stage-card"><span class="eyebrow">Runtime ready</span><h2>Select an exhibit</h2><p>Import declarative XZBT 0.1 documents, then activate one from the library. Exhibits run without adding subject-specific code to this runtime.</p></div>
|
|
<div id="stage-active" class="stage-card" hidden>
|
|
<span class="eyebrow">Active exhibit</span><h2 id="active-name"></h2>
|
|
<dl class="runtime-readout"><div><dt>Exhibit ID</dt><dd id="active-id"></dd></div><div><dt>Resolved seed</dt><dd id="active-seed"></dd></div><div style="grid-column:1/-1"><dt>Deterministic visual-stream preview</dt><dd id="active-sequence"></dd></div></dl>
|
|
<p>The common grammar resolves stored parameters, mutable state, signals, bindings, actions, and temporary overrides. Audio and visual engines attach in later phases.</p>
|
|
<section class="grammar-panel" aria-labelledby="configuration-title"><h3 id="configuration-title">Parameters</h3><div id="configuration"></div></section>
|
|
<section class="grammar-panel" aria-labelledby="values-title"><h3 id="values-title">Resolved values</h3><ul id="resolved-values" class="resolved-values"></ul><p>Generated condition: <output id="condition-result">n/a</output></p></section>
|
|
<button id="deactivate-button" type="button">Deactivate</button>
|
|
</div>
|
|
</section>
|
|
<section class="diagnostics-panel" aria-labelledby="diagnostics-title">
|
|
<div class="section-heading"><h2 id="diagnostics-title">Diagnostics <span id="diagnostic-count" class="count">0</span></h2><button id="clear-diagnostics" type="button">Clear</button></div>
|
|
<p id="diagnostics-empty" class="empty">No diagnostics yet.</p><ol id="diagnostic-list" class="diagnostic-list"></ol>
|
|
</section>
|
|
</section>
|
|
</main>
|
|
<script>/*__XZBT_SCRIPT__*/</script>
|
|
</body>
|
|
</html>
|