返回 ppt-master
index.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title data-i18n="page_title">PPT Master - Live Preview</title>
7 <link rel="stylesheet" href="/static/style.css">
8 </head>
9 <body>
10 <div id="app">
11 <div id="panel-left">
12 <div class="panel-header" data-i18n="panel_slides">Slides</div>
13 <div id="slide-list"></div>
14 </div>
15 <div id="panel-center">
16 <div id="slide-nav">
17 <button id="nav-first" class="nav-btn" type="button" data-i18n-title="nav_first">&laquo;</button>
18 <button id="nav-prev" class="nav-btn" type="button" data-i18n-title="nav_prev">&lsaquo;</button>
19 <div id="nav-label">
20 <span id="nav-counter">— / —</span>
21 <span id="nav-name"></span>
22 </div>
23 <button id="nav-next" class="nav-btn" type="button" data-i18n-title="nav_next">&rsaquo;</button>
24 <button id="nav-last" class="nav-btn" type="button" data-i18n-title="nav_last">&raquo;</button>
25 </div>
26 <div id="svg-container">
27 <div id="rubber-band-overlay"></div>
28 <div id="svg-placeholder" data-i18n="placeholder_select_slide">Select a slide on the left to begin</div>
29 <div id="svg-content" style="display:none;"></div>
30 </div>
31 </div>
32 <div id="panel-right">
33 <div class="lang-select">
34 <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>
35 <ul id="lang-menu" class="lang-menu" role="listbox" hidden>
36 <li role="option" tabindex="0" aria-selected="false" data-lang="zh">中文</li>
37 <li role="option" tabindex="0" aria-selected="false" data-lang="en">English</li>
38 <li role="option" tabindex="0" aria-selected="false" data-lang="ja">日本語</li>
39 </ul>
40 </div>
41 <div class="panel-header" data-i18n="panel_edit_annotate">Edit / Annotate</div>
42 <div id="pending-status" class="pending-status"></div>
43 <div id="selection-info">
44 <div class="section-label" data-i18n="label_selected_element">Selected element</div>
45 <div id="selected-element" class="empty" data-i18n="empty_selected_element">Click an element on the slide to select it</div>
46 <div id="element-props" style="display:none;"></div>
47 </div>
48 <div id="annotation-input" style="display:none;">
49 <div class="section-label" data-i18n="label_edit_instruction">Edit instruction</div>
50 <div id="annotation-quick-actions"></div>
51 <textarea id="annotation-text" data-i18n-placeholder="placeholder_annotation" placeholder="Describe how the AI should modify this element..."></textarea>
52 <button id="btn-add-annotation" data-i18n="btn_add_annotation">Add annotation</button>
53 </div>
54 <div id="annotation-list">
55 <div class="section-label" data-i18n="label_annotations_on_slide">Annotations on this slide</div>
56 <div id="annotations"></div>
57 </div>
58 <div id="preview-actions">
59 <button id="btn-undo" class="btn-undo" data-i18n="btn_undo" disabled>Undo</button>
60 <button id="btn-save" class="btn-save" data-i18n="btn_submit_annotations">Submit annotations</button>
61 <button id="btn-exit-preview" class="btn-exit-preview" data-i18n="btn_exit_preview">Exit preview</button>
62 </div>
63 </div>
64 </div>
65 <div id="modal-overlay" style="display:none;">
66 <div id="modal">
67 <div id="modal-message"></div>
68 <div id="modal-buttons">
69 <button id="modal-confirm" data-i18n="modal_submit">Submit</button>
70 <button id="modal-cancel" data-i18n="modal_cancel">Cancel</button>
71 </div>
72 </div>
73 </div>
74 <script src="/static/app.js"></script>
75 </body>
76 </html>
77
77 lines HTML