siftlode/frontend/src/lib
npeter83 d92e487cf4 feat(ui): unified floating side panels for filters and playlists
Replace the full-height filter rails with one shared floating glass SidePanel
used by Feed, Plex and Playlists. Each collapses to a slim tab beside the nav;
its sections are reorderable "islands" (drag / hide / per-group collapse) with a
per-panel saved layout; the body hides its scrollbar with a soft top/bottom edge
fade. The nav rail becomes a matching floating rounded card.

- New shared SidePanel / PanelGroup / PanelGroups + useScrollFade hook.
- Generalise the feed-only sidebarLayout into a per-panel panelLayout (feed keeps
  its storage key; plex/playlists get their own; persisted per account).
- Lift the Playlists rail to App level (selected playlist is now App state) so it
  floats and collapses like the filter rails; remove the old CollapsedFilterRail.
- The floating top header's fixed offset accounts for the panels' margins.
2026-07-13 05:13:40 +02:00
..
adminUsersTab.ts chore: Phase 1 hygiene — drop unused imports/exports/types (behavior-neutral) 2026-07-11 04:47:08 +02:00
api.ts feat(channel): enrich the About tab + fix the tab-switch header shift 2026-07-12 16:12:39 +02:00
chatDock.ts fix(messages-ui): surface silent send failures, stop scroll/render churn (+cleanup) 2026-07-11 20:16:14 +02:00
descriptionLinks.tsx refactor(player): extract description link-rendering into lib/descriptionLinks 2026-06-29 00:24:49 +02:00
downloads.ts chore(downloads-ui): FE-C4 follow-up cleanup 2026-07-11 17:10:15 +02:00
e2ee.ts fix(deferred): close frontend UI/UX tails from the hygiene sweep 2026-07-12 05:59:25 +02:00
errorDialog.ts chore: Phase 1 hygiene — drop unused imports/exports/types (behavior-neutral) 2026-07-11 04:47:08 +02:00
format.ts chore(plex): dedup frontend formatters + LS key, drop dead wasPlaying pref 2026-07-11 23:10:24 +02:00
hints.ts fix(state): scope all per-account localStorage by account id 2026-07-02 01:45:16 +02:00
history.ts fix(modal): stop Release Notes modal flashing shut on modal-to-modal handoff 2026-07-01 14:27:41 +02:00
messagesSocket.ts fix(deferred): close frontend UI/UX tails from the hygiene sweep 2026-07-12 05:59:25 +02:00
messaging.ts fix(deferred): close frontend UI/UX tails from the hygiene sweep 2026-07-12 05:59:25 +02:00
modules.ts feat(header): floating module header with cyclic nav and shared search 2026-07-13 02:28:06 +02:00
nav.ts feat(downloads): M5 — Download Center frontend 2026-07-03 01:52:58 +02:00
notifications.ts feat(notifications): coalesce identical notifications with a repeat count 2026-07-13 05:13:18 +02:00
onboarding.ts chore: Phase 1 hygiene — drop unused imports/exports/types (behavior-neutral) 2026-07-11 04:47:08 +02:00
pageMeta.ts fix(audit): address /code-review findings 2026-07-12 07:47:07 +02:00
panelLayout.ts feat(ui): unified floating side panels for filters and playlists 2026-07-13 05:13:40 +02:00
plexDetailUi.tsx perf(plex): batch bulk pushes, cache show enrichment; remove dead code + DRY (F6/F8/F10) 2026-07-11 03:10:02 +02:00
releaseNotes.ts chore(release): 0.42.0 — glass-over-image look + Starship/Matrix schemes 2026-07-12 22:28:50 +02:00
storage.ts feat(ui): unified floating side panels for filters and playlists 2026-07-13 05:13:40 +02:00
store.ts feat(frontend): add createStore factory + central localStorage registry 2026-06-26 03:30:19 +02:00
theme.ts feat(glass): user-facing Image-fade slider under Settings > Background image 2026-07-12 22:24:09 +02:00
urlState.ts feat(audit): admin audit log (Notification P3) 2026-07-12 07:32:41 +02:00
useDebounced.ts fix(feed): stop search-box flicker (keepPreviousData + debounced query) 2026-06-29 02:19:18 +02:00
useDismiss.ts refactor(ui): useDismiss hook for outside-click/Escape close 2026-06-29 00:11:44 +02:00
useLiveQuery.ts fix(scheduler): show progress for any running job with reliable live updates 2026-06-19 02:43:46 +02:00
useScrollFade.ts feat(ui): unified floating side panels for filters and playlists 2026-07-13 05:13:40 +02:00
useUndoable.ts feat(playlists): sort + group-by-channel with reusable undo/redo 2026-06-15 21:52:28 +02:00
version.ts refactor(frontend): adopt store/storage helpers; centralize persistence 2026-06-26 03:30:19 +02:00
youtubeErrors.ts chore(channels-ui): Phase 2 #3 frontend cleanup — dedup 403 handler, count cell, LS keys, dead i18n 2026-07-11 18:11:23 +02:00