|
13 | 13 | </head> |
14 | 14 | <body> |
15 | 15 | <div id="app"> |
| 16 | + <!-- Title Bar (drag region) --> |
| 17 | + <div class="titlebar"> |
| 18 | + <img src="assets/logo.png" alt="LOGAN" class="titlebar-logo" id="logo" title="Open LOGAN on GitHub"> |
| 19 | + <span class="titlebar-text">LOGAN</span> |
| 20 | + <div class="titlebar-spacer"></div> |
| 21 | + <div id="window-controls" class="window-controls hidden"> |
| 22 | + <button id="btn-win-minimize" class="window-control-btn" title="Minimize">—</button> |
| 23 | + <button id="btn-win-maximize" class="window-control-btn" title="Maximize">□</button> |
| 24 | + <button id="btn-win-close" class="window-control-btn close" title="Close">✕</button> |
| 25 | + </div> |
| 26 | + </div> |
16 | 27 | <!-- Toolbar --> |
17 | 28 | <div class="toolbar"> |
18 | 29 | <div class="toolbar-left"> |
19 | | - <img src="assets/logo.png" alt="LOGAN" class="toolbar-logo" id="logo" title="Open LOGAN on GitHub"> |
20 | | - <div class="separator"></div> |
21 | 30 | <button id="btn-open-file" class="toolbar-btn" title="Open file"> |
22 | 31 | <span class="icon">📂</span> Open File |
23 | 32 | </button> |
|
45 | 54 | <button id="btn-json-format" class="toolbar-btn" title="Format & highlight JSON in logs">JSON</button> |
46 | 55 | </div> |
47 | 56 | <div class="toolbar-right"> |
| 57 | + <button id="btn-terminal-toggle" class="toolbar-btn small" title="Toggle Terminal (Ctrl+`)">⌨</button> |
48 | 58 | <button id="btn-settings" class="toolbar-btn small" title="Settings">⚙</button> |
49 | 59 | <button id="btn-help" class="toolbar-btn small" title="Keyboard shortcuts & help (F1)">ⓘ</button> |
50 | 60 | <button id="btn-toggle-sidebar" class="toolbar-btn small" title="Toggle sidebar">☰</button> |
|
194 | 204 | <span class="section-toggle">▼</span> |
195 | 205 | </div> |
196 | 206 | <div class="section-content"> |
| 207 | + <div id="highlight-groups-bar" class="highlight-groups-bar"> |
| 208 | + <div id="highlight-groups-chips" class="highlight-groups-chips"></div> |
| 209 | + <div class="highlight-groups-actions"> |
| 210 | + <button id="btn-save-highlight-group" class="highlight-group-btn" title="Save current highlights as a group">Save</button> |
| 211 | + <button id="btn-delete-highlight-group" class="highlight-group-btn danger" title="Delete active group" style="display:none">Del</button> |
| 212 | + </div> |
| 213 | + </div> |
197 | 214 | <div id="highlights-list" class="highlights-content"> |
198 | 215 | <p class="placeholder">No highlight rules</p> |
199 | 216 | </div> |
200 | 217 | <button id="btn-add-highlight" class="add-btn">+ Add Highlight Rule</button> |
201 | 218 | </div> |
202 | 219 | </div> |
203 | 220 |
|
204 | | - <!-- Terminal Section --> |
205 | | - <div class="sidebar-section" id="section-terminal"> |
206 | | - <div class="section-header" data-section="terminal"> |
207 | | - <span class="section-title">Terminal</span> |
208 | | - <button id="btn-terminal-toggle" class="section-btn" title="Toggle Terminal (Ctrl+`)">⌨</button> |
209 | | - </div> |
210 | | - <div id="terminal-panel" class="terminal-section-content hidden"> |
211 | | - <div id="terminal-resize-handle" class="terminal-resize-handle"></div> |
212 | | - <div id="terminal-container" class="terminal-container"></div> |
213 | | - </div> |
214 | | - </div> |
215 | 221 | </aside> |
216 | 222 |
|
217 | 223 | <!-- Sidebar Resize Handle --> |
218 | 224 | <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> |
219 | 225 |
|
| 226 | + <!-- Terminal Overlay (Quake-style drop-down) --> |
| 227 | + <div id="terminal-overlay" class="terminal-overlay hidden"> |
| 228 | + <div id="terminal-panel" class="terminal-drop-panel"> |
| 229 | + <div id="terminal-container" class="terminal-container"></div> |
| 230 | + <div id="terminal-resize-handle" class="terminal-resize-handle-bottom"></div> |
| 231 | + </div> |
| 232 | + </div> |
| 233 | + |
220 | 234 | <!-- Log Viewer --> |
221 | 235 | <main class="log-viewer"> |
222 | 236 | <div id="editor-container" class="editor-container"> |
@@ -289,20 +303,28 @@ <h3>Filter Settings</h3> |
289 | 303 | <label class="checkbox-label"><input type="checkbox" name="level" value="info" checked> Info</label> |
290 | 304 | <label class="checkbox-label"><input type="checkbox" name="level" value="debug"> Debug</label> |
291 | 305 | <label class="checkbox-label"><input type="checkbox" name="level" value="trace"> Trace</label> |
| 306 | + <label class="checkbox-label"><input type="checkbox" name="level" value="other" checked> Other</label> |
292 | 307 | </div> |
293 | 308 | </div> |
294 | 309 | <div class="filter-group"> |
295 | 310 | <label for="include-patterns">Include Patterns (one per line)</label> |
296 | 311 | <textarea id="include-patterns" class="filter-textarea" placeholder="e.g., error\nfailed"></textarea> |
| 312 | + <div class="context-lines-row"> |
| 313 | + <label for="basic-context-lines">Context lines around matches:</label> |
| 314 | + <input type="number" id="basic-context-lines" class="context-lines-input" value="0" min="0" max="50"> |
| 315 | + </div> |
297 | 316 | </div> |
298 | 317 | <div class="filter-group"> |
299 | 318 | <label for="exclude-patterns">Exclude Patterns (one per line)</label> |
300 | 319 | <textarea id="exclude-patterns" class="filter-textarea" placeholder="e.g., heartbeat\nhealth"></textarea> |
301 | 320 | </div> |
302 | 321 | <div class="filter-group"> |
303 | | - <label class="checkbox-label"> |
304 | | - <input type="checkbox" id="collapse-duplicates"> Collapse duplicate lines |
305 | | - </label> |
| 322 | + <div class="checkbox-group"> |
| 323 | + <label class="checkbox-label"><input type="checkbox" id="filter-match-case"> Match Case</label> |
| 324 | + <label class="checkbox-label"><input type="checkbox" id="filter-exact-match"> Exact Match</label> |
| 325 | + |
| 326 | + |
| 327 | + </div> |
306 | 328 | </div> |
307 | 329 | </div> |
308 | 330 | <div class="modal-footer"> |
@@ -602,6 +624,13 @@ <h3>Settings</h3> |
602 | 624 | <button class="modal-close" data-modal="settings-modal">×</button> |
603 | 625 | </div> |
604 | 626 | <div class="modal-body"> |
| 627 | + <div class="settings-group"> |
| 628 | + <label for="theme-select">Theme</label> |
| 629 | + <select id="theme-select" class="settings-select"> |
| 630 | + <option value="dark">Dark</option> |
| 631 | + <option value="paper">Paper (Eye Comfort)</option> |
| 632 | + </select> |
| 633 | + </div> |
605 | 634 | <div class="settings-group"> |
606 | 635 | <label for="scroll-speed">Scroll Speed</label> |
607 | 636 | <div class="slider-container"> |
@@ -630,6 +659,13 @@ <h3>Settings</h3> |
630 | 659 | </label> |
631 | 660 | <p class="hint">Automatically run analysis when a file is opened</p> |
632 | 661 | </div> |
| 662 | + <div class="settings-group"> |
| 663 | + <label>Sidebar Sections</label> |
| 664 | + <div class="settings-checkboxes" id="sidebar-section-toggles"> |
| 665 | + <!-- Populated dynamically from renderer.ts --> |
| 666 | + </div> |
| 667 | + <p class="hint">Toggle visibility of sidebar sections</p> |
| 668 | + </div> |
633 | 669 | </div> |
634 | 670 | <div class="modal-footer"> |
635 | 671 | <button id="btn-reset-settings" class="secondary-btn">Reset to Defaults</button> |
|
0 commit comments