- Extension DOM mode: auth-context serializer — inlines CSS + images as data URLs, freezes form state, masks [data-dp-mask], strips scripts (R3 client) - API: extractDataUrls rewrites large inline resources into content-addressed assets (R3 server; verified 939KB inline -> 82-byte row + served asset) - Lead-gate steps: config on step, player overlay form blocks advance, submits to leads endpoint (editor toggle + MCP set_lead_gate) - Step-guide export (v2 slice): authed markdown + public HTML at /p/:token/guide - Video export (v3 slice, v0): ffmpeg slideshow of image steps + optional narration mux; DOM rasterization deferred to Chromium service (R4) - Editor: reorder arrows, embed-code copy, guide link, video export - REST reorder endpoint; MCP surface now 13 tools (export_guide, set_lead_gate, render_video) - ffmpeg added to runtime image E2E verified incl. R3 extraction round-trip, lead_gate in public JSON, guide renders, MCP agent exported guide + rendered video.
27 lines
1.3 KiB
HTML
27 lines
1.3 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head><meta charset="utf-8">
|
|
<style>
|
|
body { font: 13px system-ui, sans-serif; width: 280px; padding: 14px; color: #0f172a; }
|
|
input { width: 100%; margin: 4px 0 8px; padding: 6px 8px; border: 1px solid #e2e8f0; border-radius: 6px; box-sizing: border-box; }
|
|
button { width: 100%; margin-top: 6px; padding: 8px; border: 1px solid #e2e8f0; border-radius: 6px; background: #fff; cursor: pointer; }
|
|
button.primary { background: #2563eb; color: #fff; border-color: #2563eb; }
|
|
#status { color: #64748b; margin: 8px 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<label>Platform URL <input id="base" placeholder="https://demo.example.com"></label>
|
|
<label>API key <input id="key" type="password" placeholder="dp_..."></label>
|
|
<label>Capture mode
|
|
<select id="mode" style="width:100%;margin:4px 0 8px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:6px">
|
|
<option value="screenshot">Screenshot (works everywhere)</option>
|
|
<option value="dom">DOM (editable, web apps)</option>
|
|
</select>
|
|
</label>
|
|
<div id="status">Not recording.</div>
|
|
<button id="start" class="primary">Start recording this tab</button>
|
|
<button id="finish" hidden>Finish & upload</button>
|
|
<button id="discard" hidden>Discard</button>
|
|
<script src="popup.js"></script>
|
|
</body>
|
|
</html>
|