feat: add tags/labels for saved items

- Add free-form tags per item: chip display with remove, inline add (comma-separated, grid view only), and a toolbar tag-filter popover listing every tag in use
- Search now also matches tags; tags sync across devices like every other item field
- Fix Firefox manifest.json compliance for AMO submission: replace the placeholder gecko id with a real UUID, add the now-required data_collection_permissions (bookmarksInfo, since synced items are personal browsing/bookmark data), and bump strict_min_version to 140.0 (142.0 for gecko_android) to match
- Add description.md (elevator pitch / short / detailed descriptions for store listings), PRIVACY.md, and .gitignore for the dist/ packaging output
- Reword all em-dash punctuation across docs and code comments per user preference
This commit is contained in:
2026-07-14 12:44:17 +10:00
parent c5bd7e38bf
commit 232524ad97
10 changed files with 446 additions and 49 deletions
+10 -2
View File
@@ -16,7 +16,7 @@
</header>
<div class="toolbar">
<input id="search" type="text" placeholder="Search your shelf…" autocomplete="off" />
<input id="search" type="text" placeholder="Search title, site, or tag…" autocomplete="off" />
<div class="control-group" role="group" aria-label="Sort by">
<label for="sortSelect" class="sr-only">Sort by</label>
@@ -35,6 +35,14 @@
<button id="showArchivedBtn" class="ghost-btn">Show archived</button>
<div class="tags-wrap">
<button id="tagsBtn" class="toggle-btn" title="Filter by tag" aria-haspopup="true" aria-expanded="false">🏷</button>
<div id="tagsPanel" class="tags-panel" hidden>
<div id="tagsList" class="tags-list"></div>
<p class="settings-hint" id="tagsEmptyHint" hidden>No tags yet. Add one from any card in grid view.</p>
</div>
</div>
<div class="settings-wrap">
<button id="settingsBtn" class="toggle-btn" title="Settings" aria-haspopup="true" aria-expanded="false"></button>
<div id="settingsPanel" class="settings-panel" hidden>
@@ -77,7 +85,7 @@
<option value="months">months</option>
</select>
</div>
<p class="settings-hint">Archive anything you want to keep — this only removes items you never got back to.</p>
<p class="settings-hint">Archive anything you want to keep. This only removes items you never got back to.</p>
<p class="settings-error" id="autoDeleteError" hidden>Must be longer than the reminder period above, so you're always warned first.</p>
<hr class="settings-divider" />