philipgreat's picture
Add controlled TeaQL query console and WebResponse facets
85c57f8 verified
Raw
History Blame Contribute Delete
1.98 kB
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="data:," />
<title>TeaQL Browser SQLite</title>
<script type="module" crossorigin src="/assets/index-DTZ5iA72.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-inj2slTy.css">
</head>
<body>
<main>
<p class="eyebrow">TEAQL TYPESCRIPT RUNTIME</p>
<h1>Browser-local Data Service</h1>
<p>Write the same generated Q API used by an application. Peggy parses it into a controlled AST; no arbitrary JavaScript is evaluated.</p>
<p><strong>Everything runs in this browser.</strong> There is no application backend and no server-side business database.</p>
<div class="controls">
<label><input id="persist" type="checkbox" /> Persist locally with OPFS <span id="opfs-note"></span></label>
<button id="reset">Reset demo data</button>
</div>
<p id="status">Starting SQLite/WASM…</p>
<section class="query-panel">
<div class="query-toolbar">
<label for="preset">Example</label>
<select id="preset">
<option value="facet">Rows + relation facet</option>
<option value="filter">String filter</option>
<option value="all">Bounded list</option>
</select>
<button id="run" class="run">Run query</button>
</div>
<textarea id="query" spellcheck="false" aria-label="TeaQL query"></textarea>
<p class="hint">Accepted input is the generated TypeScript Q API. Execution, imports, assignments, and browser APIs are not part of the grammar.</p>
</section>
<section class="response-panel">
<div class="response-heading">
<h2>Web Response</h2>
<span>data · metadata · facets</span>
</div>
<pre id="result"></pre>
</section>
</main>
</body>
</html>