Files
goose-highlighter/list-manager/list-manager.html
2026-02-05 16:48:53 +03:00

109 lines
4.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=1280" />
<title>Goose Highlighter - List Manager</title>
<link rel="stylesheet" href="list-manager.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
</head>
<body>
<div class="app">
<header class="topbar">
<div class="title">
<img src="../img/logo-outlined.png" alt="Goose Highlighter" />
<div>
<div class="name">Goose Highlighter</div>
<div class="subtitle">List Manager</div>
</div>
</div>
<div class="topbar-actions">
<label class="icon-toggle" title="Toggle dark mode">
<input type="checkbox" class="hidden-toggle" id="themeToggle" />
<i class="toggle-icon theme-icon fa-solid"></i>
</label>
<button id="importListBtn" class="ghost"><i class="fa-solid fa-upload"></i> Import List</button>
<button id="exportListBtn" class="ghost"><i class="fa-solid fa-download"></i> Export List</button>
<button id="newListBtn" class="primary"><i class="fa-solid fa-plus"></i> New List</button>
</div>
<input type="file" id="importFileInput" accept=".json" style="display: none;" />
</header>
<main class="layout">
<section class="panel lists-panel">
<div class="panel-header">
<h2>Lists</h2>
<div class="panel-actions">
<button id="duplicateListBtn"><i class="fa-solid fa-clone"></i> Duplicate</button>
<button id="mergeListsBtn"><i class="fa-solid fa-code-merge"></i> Merge</button>
<button id="deleteListsBtn" class="danger"><i class="fa-solid fa-trash"></i> Delete</button>
</div>
</div>
<div class="panel-actions secondary">
<button id="activateListsBtn"><i class="fa-solid fa-circle-check"></i> Activate</button>
<button id="deactivateListsBtn"><i class="fa-solid fa-circle-xmark"></i> Deactivate</button>
</div>
<div class="list-hint">Drag lists to reorder • Ctrl+Click for multi-select</div>
<div id="listsContainer" class="lists"></div>
</section>
<section class="panel details-panel">
<div class="panel-header compact-header">
<div class="list-title-section">
<h2 id="selectedListName">Selected List</h2>
<button id="editListNameBtn" class="icon-btn" title="Edit list name and colors">
<i class="fa-solid fa-pen"></i>
</button>
</div>
<div class="stats" id="listStats">0 words</div>
</div>
<div class="list-settings collapsed" id="listSettingsPanel">
<input type="text" id="listName" placeholder="List name" />
<div class="color-row">
<label class="compact-label">
<span>BG</span>
<input type="color" id="listBg" />
</label>
<label class="compact-label">
<span>FG</span>
<input type="color" id="listFg" />
</label>
<button id="applyListSettingsBtn" class="compact-btn primary"><i class="fa-solid fa-check"></i></button>
</div>
</div>
<div class="word-controls">
<div class="add-words">
<textarea id="bulkAddWords" placeholder="Paste words here..."></textarea>
<button id="addWordsBtn" class="primary"><i class="fa-solid fa-plus"></i> Add Words</button>
</div>
<div class="row">
<button id="selectAllWordsBtn">Select All</button>
<button id="clearSelectedWordsBtn">Clear</button>
<button id="enableWordsBtn">Enable</button>
<button id="disableWordsBtn">Disable</button>
<button id="deleteWordsBtn" class="danger">Delete</button>
</div>
<div class="row">
<input type="text" id="wordSearch" placeholder="Search words..." />
<select id="targetListSelect"></select>
<button id="moveWordsBtn"><i class="fa-solid fa-arrow-right"></i> Move</button>
<button id="copyWordsBtn"><i class="fa-solid fa-copy"></i> Copy</button>
</div>
<div class="selection-hint">Click to select • Ctrl/Cmd+Click for multi-select • Drag words to lists to copy</div>
</div>
<div id="wordList" class="word-list"></div>
<div id="paginationControls" class="pagination-container"></div>
</section>
</main>
</div>
<script type="module" src="../dist/list-manager/list-manager.js"></script>
</body>
</html>