Map keys 0–9 to destinations, inspect files before deciding, and preview PDF/RAW/ZIP/video with an OLED dark UI polish plus demo seed and tests.
76 lines
3.7 KiB
HTML
76 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>SwipeAnything</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,600;0,9..40,700;1,9..40,400&family=IBM+Plex+Mono:wght@400;600;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<header>
|
|
<h1>SwipeAnything</h1>
|
|
<div class="header-actions">
|
|
<button type="button" class="icon-link" id="shortcutsLink" title="Keyboard shortcuts (Shift+?)" aria-haspopup="dialog" aria-controls="shortcutsModal">?</button>
|
|
<button type="button" class="icon-link" id="detailsLink" title="File details (i)" aria-haspopup="dialog" aria-controls="detailsSheet">Details</button>
|
|
<button type="button" class="icon-link" id="rescanLink">Rescan</button>
|
|
<button type="button" class="icon-link" id="emptyTrashLink" hidden>Empty trash</button>
|
|
<a class="icon-link" href="settings.html">Settings</a>
|
|
</div>
|
|
</header>
|
|
<div class="source-label" id="sourceLabel"></div>
|
|
<div class="progress-track">
|
|
<div class="progress-fill" id="progressFill" role="progressbar" aria-label="Review progress" aria-valuemin="0" aria-valuemax="0" aria-valuenow="0" style="width:0%"></div>
|
|
</div>
|
|
<div class="stats" id="statsLine"></div>
|
|
<div class="deck" id="deck"></div>
|
|
<div class="actions-row" id="actionsRow"></div>
|
|
<div class="organize-row" id="organizeRow" hidden></div>
|
|
<div id="liveRegion" class="sr-only" aria-live="polite" aria-atomic="true"></div>
|
|
</div>
|
|
|
|
<div id="detailsSheet" class="details-sheet" hidden aria-hidden="true">
|
|
<button type="button" class="details-backdrop" id="detailsBackdrop" aria-label="Close details"></button>
|
|
<aside class="details-panel" role="dialog" aria-modal="true" aria-labelledby="detailsTitle">
|
|
<div class="details-header">
|
|
<h2 id="detailsTitle">Details</h2>
|
|
<div class="details-header-actions">
|
|
<button type="button" class="icon-link" id="detailsCopyPath" hidden>Copy path</button>
|
|
<button type="button" class="icon-link" id="detailsReveal" hidden>Reveal</button>
|
|
<button type="button" class="icon-link" id="detailsClose" aria-label="Hide details">✕</button>
|
|
</div>
|
|
</div>
|
|
<dl class="details-list" id="detailsList"></dl>
|
|
<div class="details-status" id="detailsStatus"></div>
|
|
<p class="details-hint">Press <kbd>i</kbd> or Esc to close</p>
|
|
</aside>
|
|
</div>
|
|
|
|
<div id="shortcutsModal" class="modal" hidden aria-hidden="true">
|
|
<div class="modal-card" role="dialog" aria-modal="true" aria-labelledby="shortcutsTitle">
|
|
<div class="modal-header">
|
|
<h2 id="shortcutsTitle">Shortcuts</h2>
|
|
<button type="button" class="icon-link modal-close" id="shortcutsClose" aria-label="Close shortcuts help">✕</button>
|
|
</div>
|
|
<dl class="shortcut-list" id="shortcutList">
|
|
<div><dt>→</dt><dd>Keep</dd></div>
|
|
<div><dt>←</dt><dd>Reject (to trash)</dd></div>
|
|
<div><dt>↓</dt><dd>Skip / next</dd></div>
|
|
<div><dt>↑</dt><dd>Undo / go back</dd></div>
|
|
<div><dt>i</dt><dd>Toggle file details</dd></div>
|
|
<div><dt>Space</dt><dd>Skip / next</dd></div>
|
|
<div><dt>Ctrl/Cmd+Z</dt><dd>Undo</dd></div>
|
|
<div><dt>Shift+?</dt><dd>Toggle this help</dd></div>
|
|
<div><dt>Esc</dt><dd>Close details / help</dd></div>
|
|
</dl>
|
|
<p class="modal-hint" id="shortcutHint">Drag the card left or right, or use the buttons below. Number keys move into organize folders when configured in Settings.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|