Files
astrolabe-nvc/index.html

154 lines
6.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Astrolabe - Vega-Lite Snippet Manager</title>
<link rel="stylesheet" href="src/styles.css">
<!-- Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.47.0/min/vs/loader.js"></script>
</head>
<body>
<!-- Header -->
<div class="header">
<div class="header-left">
<span class="header-icon">🔭</span>
<span class="header-title">Astrolabe</span>
</div>
<div class="header-links">
<span class="header-link" id="import-link">Import</span>
<span class="header-link" id="export-link">Export</span>
<span class="header-link" id="help-link">Help</span>
<input type="file" id="import-file-input" accept=".json" style="display: none;" />
</div>
</div>
<div class="app-container">
<!-- Toggle Button Strip -->
<div class="toggle-strip">
<button class="toggle-btn active" id="toggle-snippet-panel" title="Toggle Snippets Panel">
📄
</button>
<button class="toggle-btn active" id="toggle-editor-panel" title="Toggle Editor Panel">
✏️
</button>
<button class="toggle-btn active" id="toggle-preview-panel" title="Toggle Preview Panel">
👁️
</button>
</div>
<div class="main-panels">
<!-- Snippet Library Panel -->
<div class="panel snippet-panel" id="snippet-panel">
<div class="panel-header">
Snippets
</div>
<div class="sort-controls">
<span class="sort-label">Sort by:</span>
<button class="sort-btn active" data-sort="modified">
<span class="sort-text">Modified</span>
<span class="sort-arrow"></span>
</button>
<button class="sort-btn" data-sort="created">
<span class="sort-text">Created</span>
<span class="sort-arrow"></span>
</button>
<button class="sort-btn" data-sort="name">
<span class="sort-text">Name</span>
<span class="sort-arrow"></span>
</button>
</div>
<div class="search-controls">
<input type="text" id="snippet-search" placeholder="Search snippets..." />
<button class="search-clear-btn" id="search-clear" title="Clear search">×</button>
</div>
<div class="panel-content">
<ul class="snippet-list">
<!-- Dynamically populated by renderSnippetList() -->
</ul>
<div class="placeholder">
Click to select a snippet
</div>
<div class="snippet-meta" id="snippet-meta" style="display: none;">
<div class="meta-header">Name</div>
<input type="text" id="snippet-name" placeholder="Snippet name..." />
<div class="meta-header">Comment</div>
<textarea id="snippet-comment" placeholder="Add a comment..." rows="3"></textarea>
<div class="meta-info">
<div class="meta-info-item">
<span class="meta-info-label">Created:</span>
<span id="snippet-created"></span>
</div>
<div class="meta-info-item">
<span class="meta-info-label">Modified:</span>
<span id="snippet-modified"></span>
</div>
</div>
<div class="meta-actions">
<button class="meta-btn" id="duplicate-btn">Duplicate</button>
<button class="meta-btn delete-btn" id="delete-btn">Delete</button>
</div>
</div>
<div class="storage-monitor" id="storage-monitor">
<div class="storage-info">
<span class="storage-label">Storage:</span>
<span class="storage-text" id="storage-text">0 KB / 5 MB</span>
</div>
<div class="storage-bar">
<div class="storage-fill" id="storage-fill"></div>
</div>
</div>
</div>
</div>
<!-- Resize Handle 1 -->
<div class="resize-handle" id="resize-handle-1"></div>
<!-- Editor Panel -->
<div class="panel editor-panel" id="editor-panel">
<div class="panel-header">
<span>Editor</span>
<div class="editor-controls">
<button class="action-btn publish-btn" id="publish-btn">Publish</button>
<button class="action-btn revert-btn" id="revert-btn">Revert</button>
<span class="view-label">View:</span>
<div class="view-toggle-group">
<button class="view-toggle-btn active" id="view-draft">Draft</button>
<button class="view-toggle-btn" id="view-published">Published</button>
</div>
</div>
</div>
<div class="panel-content">
<div id="monaco-editor" style="height: 100%; width: 100%;"></div>
</div>
</div>
<!-- Resize Handle 2 -->
<div class="resize-handle" id="resize-handle-2"></div>
<!-- Preview Panel -->
<div class="panel preview-panel" id="preview-panel">
<div class="panel-header">
Preview
</div>
<div class="panel-content">
<div id="vega-preview" style="height: 100%; width: 100%; overflow: auto;"></div>
</div>
</div>
</div>
</div>
<script src="src/js/config.js"></script>
<script src="src/js/snippet-manager.js"></script>
<script src="src/js/panel-manager.js"></script>
<script src="src/js/editor.js"></script>
<script src="src/js/app.js"></script>
</body>
</html>