Files
specgraph/public/index.html
2025-10-31 15:49:53 +01:00

64 lines
2.6 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SpecGraph - OpenAPI Endpoint Graph</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.css" />
<link rel="stylesheet" href="/styles.css" />
</head>
<body>
<div id="app">
<div id="left-pane">
<div class="tabs">
<button class="tab active" data-tab="yaml">OpenAPI YAML</button>
<button class="tab disabled" data-tab="form" id="form-tab">Form</button>
<div class="spacer"></div>
<button id="render-btn" title="Parse and render graph">Render</button>
</div>
<div class="tab-panels">
<div class="tab-panel" data-panel="yaml">
<textarea id="yaml-input"></textarea>
<div id="error" class="error" aria-live="polite"></div>
</div>
<div class="tab-panel hidden" data-panel="form">
<div class="form-header">
<label for="server-select">Server:</label>
<select id="server-select"></select>
</div>
<div class="headers-bar">
<div class="headers-controls">
<span>Headers</span>
<button id="add-header-btn" type="button">Add header</button>
</div>
<div id="headers-list"></div>
</div>
<div id="operations"></div>
</div>
</div>
</div>
<div id="right-pane">
<div class="pane-header">
<h2>Graph Visualization</h2>
<div style="display: flex; align-items: center; gap: 12px;">
<label for="graph-type-select" style="font-size: 12px; color: #666;">Type:</label>
<select id="graph-type-select" style="padding: 4px 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 12px;">
<option value="endpoints">Endpoint Graph</option>
<option value="erd">ERD (Schema Relationships)</option>
</select>
</div>
<div id="meta"></div>
</div>
<div id="graph"></div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/yaml/yaml.min.js"></script>
<script src="/graph.js"></script>
<script src="/app.js"></script>
</body>
</html>