78 lines
4.3 KiB
HTML
78 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title data-i18n="page_title">PPT Master - Live Preview</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<div id="panel-left">
|
|
<div class="panel-header" data-i18n="panel_slides">Slides</div>
|
|
<div id="slide-list"></div>
|
|
</div>
|
|
<div id="panel-center">
|
|
<div id="slide-nav">
|
|
<button id="nav-first" class="nav-btn" type="button" data-i18n-title="nav_first">«</button>
|
|
<button id="nav-prev" class="nav-btn" type="button" data-i18n-title="nav_prev">‹</button>
|
|
<div id="nav-label">
|
|
<span id="nav-counter">— / —</span>
|
|
<span id="nav-name"></span>
|
|
</div>
|
|
<button id="nav-next" class="nav-btn" type="button" data-i18n-title="nav_next">›</button>
|
|
<button id="nav-last" class="nav-btn" type="button" data-i18n-title="nav_last">»</button>
|
|
</div>
|
|
<div id="svg-container">
|
|
<div id="rubber-band-overlay"></div>
|
|
<div id="svg-placeholder" data-i18n="placeholder_select_slide">Select a slide on the left to begin</div>
|
|
<div id="svg-content" style="display:none;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="panel-right">
|
|
<div class="lang-select">
|
|
<button id="btn-lang-toggle" class="lang-select-btn" type="button" title="Switch language" aria-haspopup="listbox" aria-expanded="false"><span id="lang-current"></span><span class="lang-caret" aria-hidden="true">▾</span></button>
|
|
<ul id="lang-menu" class="lang-menu" role="listbox" hidden>
|
|
<li role="option" tabindex="0" aria-selected="false" data-lang="zh">中文</li>
|
|
<li role="option" tabindex="0" aria-selected="false" data-lang="zh-TW">繁體中文</li>
|
|
<li role="option" tabindex="0" aria-selected="false" data-lang="en">English</li>
|
|
<li role="option" tabindex="0" aria-selected="false" data-lang="ja">日本語</li>
|
|
</ul>
|
|
</div>
|
|
<div class="panel-header" data-i18n="panel_edit_annotate">Edit / Annotate</div>
|
|
<div id="pending-status" class="pending-status"></div>
|
|
<div id="selection-info">
|
|
<div class="section-label" data-i18n="label_selected_element">Selected element</div>
|
|
<div id="selected-element" class="empty" data-i18n="empty_selected_element">Click an element on the slide to select it</div>
|
|
<div id="element-props" style="display:none;"></div>
|
|
</div>
|
|
<div id="annotation-input" style="display:none;">
|
|
<div class="section-label" data-i18n="label_edit_instruction">Edit instruction</div>
|
|
<div id="annotation-quick-actions"></div>
|
|
<textarea id="annotation-text" data-i18n-placeholder="placeholder_annotation" placeholder="Describe how the AI should modify this element..."></textarea>
|
|
<button id="btn-add-annotation" data-i18n="btn_add_annotation">Add annotation</button>
|
|
</div>
|
|
<div id="annotation-list">
|
|
<div class="section-label" data-i18n="label_annotations_on_slide">Annotations on this slide</div>
|
|
<div id="annotations"></div>
|
|
</div>
|
|
<div id="preview-actions">
|
|
<button id="btn-undo" class="btn-undo" data-i18n="btn_undo" disabled>Undo</button>
|
|
<button id="btn-save" class="btn-save" data-i18n="btn_submit_annotations">Submit annotations</button>
|
|
<button id="btn-exit-preview" class="btn-exit-preview" data-i18n="btn_exit_preview">Exit preview</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="modal-overlay" style="display:none;">
|
|
<div id="modal">
|
|
<div id="modal-message"></div>
|
|
<div id="modal-buttons">
|
|
<button id="modal-confirm" data-i18n="modal_submit">Submit</button>
|
|
<button id="modal-cancel" data-i18n="modal_cancel">Cancel</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="/static/app.js"></script>
|
|
</body>
|
|
</html>
|