File size: 1,976 Bytes
3f69d52
 
 
 
 
 
 
85c57f8
 
3f69d52
 
 
 
 
85c57f8
f391b17
3f69d52
f391b17
3f69d52
 
 
85c57f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3f69d52
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!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>