Release standalone PPT template workflow 0.5.0

This commit is contained in:
2026-10-10 21:02:47 +08:00
commit 4e3271ff62
303 changed files with 190946 additions and 0 deletions
@@ -0,0 +1,77 @@
<!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">&laquo;</button>
<button id="nav-prev" class="nav-btn" type="button" data-i18n-title="nav_prev">&lsaquo;</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">&rsaquo;</button>
<button id="nav-last" class="nav-btn" type="button" data-i18n-title="nav_last">&raquo;</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>