blob: 7d3784c2d4bd588ea1cd79e2b252d06e13e9b75b [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>fidlviz</title>
<link rel="shortcut icon" href="favicon.ico">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="controls-container">
<button id="HelpButton" type="button" class="controls-button">Help</button>
<button id="DebugButton" type="button" class="controls-button">Debug</button>
<button id="ResetButton" type="button" class="controls-button">Reset</button>
<button id="LayoutButton" type="button" class="controls-button">Layout</button>
</div>
<div id="HelpModal" class="modal-container" hidden>
<div id="HelpModalContent" class="modal-box">
<h2>Help</h2>
<p>Welcome to <b>fidlviz</b>, a web app for visualizing the FIDL wire format.</p>
<p>Here are some tips to help you get started:</p>
<ul>
<li>The <b>input</b> editor is on the left. Enter your FIDL data structures there. If you forget the syntax, click the <b>Reset</b> button to get back the example.</li>
<li>The <b>output</b> view is on the right. Initially, this shows bytes. By dragging the slider in the top-right, or using <kbd>Ctrl</kbd><kbd>[</kbd> and <kbd>Ctrl</kbd><kbd>]</kbd>, you can instead view intermediate stages where the input gets <b>lowered</b> to progressively simpler elements.</li>
<li>To <b>highlight</b> something, just click on it. Highlighting input will cause the corresponding output to be highlighted too, and vice versa. Click inside curly braces to highlight all contained fields in different colors.</li>
<li>Hover over underlined regions of the output to reveal explanatory <b>tooltips</b>. When viewing bytes, there are no underlines because everything has a tooltip.</li>
<li>Click the <b>Layout</b> button to switch between the left/right editor layout and the top/bottom one (useful for long lines and narrow windows).</li>
<li>The app <b>autosaves</b> everything to your browser’s local storage. You can always start fresh by clicking the <b>Reset</b> button.</li>
<li>To <b>close</b> this help window, press <kbd>Esc</kbd> or <kbd>Enter</kbd>.</li>
</ul>
<p>Enjoy! If you find a bug, please report it to mkember@google.com.</p>
<hr>
<p><i>If you like <b>fidlviz</b>, you might also like <a href="https://fidlbolt-6jq5tlqt6q-uc.a.run.app/"><b>fidlbolt</b></a></i>.</p>
</div>
</div>
<div class="wrapper">
<div class="heading">
<h1><span class="heading-fidl">fidl</span><span class="heading-viz">viz</span></h1>
</div>
<div id="Container" class="container" hidden>
<div id="SplitContainer" class="split-container split-container--vertical">
<div id="InputPart" class="split-item split-item--first">
<div id="InputEditor" class="editor"></div>
</div>
<div id="Splitter" class="split-splitter split-splitter--vertical"></div>
<div id="OutputPart" class="split-item split-item--second">
<div class="part-header">
<h2 id="OutputTitle" class="part-title">&nbsp;</h2>
<input id="OutputSlider" class="slider"
type="range" min="1" max="8"
value="8" list="Tickmarks">
</div>
<div id="OutputEditor" class="editor"></div>
</div>
</div>
</div>
</div>
<div id="OutputTooltip" class="tooltip" hidden></div>
<datalist id="Tickmarks">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
<option value="4"></option>
<option value="5"></option>
<option value="6"></option>
<option value="7"></option>
<option value="8"></option>
</datalist>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ace.js"></script>
<script src="script.js"></script>
</body>
</html>