Files
SiteCompanion/sitecompanion/popup.html

133 lines
4.9 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SiteCompanion</title>
<link rel="stylesheet" href="popup.css" />
</head>
<body>
<header class="title-block">
<div class="title-line">
<span class="title">SiteCompanion</span>
<span class="subtitle">AI companion for site-bound tasks.</span>
</div>
</header>
<section id="unknownSiteState" class="panel hidden">
<div class="state-body">
<p>This site is not recognized. Paste partial text from the page you want to extract:</p>
<textarea id="partialTextPaste" rows="4" placeholder="Paste some text here..."></textarea>
<div id="minimalExtractStatus" class="helper-text hidden"></div>
<div class="row">
<button id="extractMinimalBtn" class="accent control-btn">Try Extracting Minimal</button>
<button id="extractFullBtn" class="ghost control-btn">Extract Full Text</button>
</div>
</div>
</section>
<section id="extractionReviewState" class="panel hidden">
<div class="state-body">
<p>Review extracted text:</p>
<div id="extractedPreview" class="preview-box"></div>
<div class="field">
<label for="siteNameInput">Site Name</label>
<input type="text" id="siteNameInput" placeholder="Example" />
</div>
<div class="field">
<label for="urlPatternInput">URL Match Pattern</label>
<input type="text" id="urlPatternInput" placeholder="example.com/*" />
</div>
<div class="field">
<label for="workspaceSelect">Workspace</label>
<select id="workspaceSelect"></select>
</div>
<div class="row">
<button id="retryExtractBtn" class="ghost control-btn">Retry</button>
<button id="confirmSiteBtn" class="accent control-btn">Confirm</button>
</div>
</div>
</section>
<section id="normalExecutionState" class="panel">
<div class="workspace-info">
Workspace: <span id="currentWorkspaceName">Global</span>
</div>
<div class="controls-block">
<div class="config-block">
<div class="selector-row">
<div class="field selector-field">
<label for="envSelect">Environment</label>
<select id="envSelect"></select>
</div>
<div class="field selector-field">
<label for="profileSelect">Profile</label>
<select id="profileSelect"></select>
</div>
</div>
<div class="env-profile-summary" id="envProfileSummary">
<div class="env-profile-item">
ENV: <span id="envSummaryValue"></span>
</div>
<div class="env-profile-item">
PROFILE: <span id="profileSummaryValue"></span>
</div>
</div>
<div class="task-row" id="normalTaskRow">
<div class="field inline-field task-field">
<label for="taskSelect">Task</label>
<select id="taskSelect"></select>
</div>
<button id="customTaskBtn" class="ghost control-btn">Custom</button>
<div id="taskActions">
<button id="runBtn" class="accent control-btn">Run</button>
<button
id="abortBtn"
class="ghost stop-btn hidden control-btn"
disabled
>
Stop
</button>
</div>
</div>
<div class="task-row custom-task-row hidden" id="customTaskRow">
<div class="field custom-task-field">
<textarea id="customTaskInput" rows="2" placeholder="Enter temporary custom task..."></textarea>
</div>
<div class="custom-task-actions">
<button id="normalTaskBtn" class="ghost control-btn">Normal</button>
<div id="taskActionsSlot"></div>
</div>
</div>
</div>
</div>
<div class="meta">
<span id="postingCount">Site Text: 0 chars</span>
<span id="promptCount">Total: 0 chars</span>
<span id="status" class="status">Idle</span>
</div>
</section>
<section class="output">
<div id="output" class="output-body" aria-live="polite"></div>
</section>
<footer class="footer">
<div class="footer-left">
<button id="copyRenderedBtn" class="ghost control-btn" type="button">
Copy
</button>
<button id="copyRawBtn" class="ghost control-btn" type="button">
Copy Markdown
</button>
<button id="clearOutputBtn" class="ghost control-btn" type="button">
Clear
</button>
</div>
<button id="settingsBtn" class="link">Settings</button>
</footer>
<script src="popup.js"></script>
</body>
</html>