feat(browser-extension): add web page clipping functionality

- Updated manifest to v1.1.0 with additional permissions (scripting, host_permissions)
- Added web clipping context menu items (Clip Full Page, Clip Selection)
- Enhanced background.js with PDF conversion using Chrome's printToPDF API
- Updated content.js to capture full page HTML and selected content
- Added new capture.js script for page capture utilities
- Enhanced popup UI with mode toggle between "Send URL" and "Clip Page"
- Added support for clipping full pages or selected content to PDF
- Updated CSS for new mode buttons and clip section layout

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-13 23:21:08 +00:00
parent 8d91b135a0
commit f7280be523
7 changed files with 830 additions and 31 deletions
+27 -1
View File
@@ -27,8 +27,16 @@
<button id="save-config" class="btn btn-primary">Save Configuration</button>
</div>
<div id="mode-section" class="section hidden">
<h2>Select Mode</h2>
<div class="mode-buttons">
<button id="mode-url" class="btn btn-mode active">Send URL</button>
<button id="mode-clip" class="btn btn-mode">Clip Page</button>
</div>
</div>
<div id="send-section" class="section hidden">
<h2>Send File to DocuElevate</h2>
<h2>Send URL to DocuElevate</h2>
<div class="info-box">
<p><strong>Current URL:</strong></p>
<p id="current-url" class="url-display"></p>
@@ -41,6 +49,24 @@
<button id="show-config" class="btn btn-secondary">Change Settings</button>
</div>
<div id="clip-section" class="section hidden">
<h2>Clip Web Page</h2>
<div class="info-box">
<p><strong>Page Title:</strong></p>
<p id="page-title" class="url-display"></p>
</div>
<div class="form-group">
<label for="clip-filename">Filename (optional):</label>
<input type="text" id="clip-filename" placeholder="Leave blank to use page title">
<small>Will be saved as PDF</small>
</div>
<div class="clip-buttons">
<button id="clip-full-page" class="btn btn-primary">Clip Full Page</button>
<button id="clip-selection" class="btn btn-primary">Clip Selection</button>
</div>
<button id="show-config-from-clip" class="btn btn-secondary">Change Settings</button>
</div>
<div id="status-section" class="section hidden">
<div id="status-message"></div>
</div>