1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-22 03:05:32 +02:00
archivr/frontend
TheGeneralist 4d14ed3a32
feat: multi-select entry rows (shift/ctrl+click, mobile checkbox)
- App: replace single selectedEntryUid with selectedUids Set; anchor stored
  as UID so shift+click range is stable across search/filter reloads
- Shift+click: range-select from UID anchor resolved against current entries;
  falls back to single-select if anchor was evicted
- Ctrl/Cmd+click: toggle individual entry in selection
- Plain click: single-select (existing ContextRail behaviour unchanged)
- onMouseDown preventDefault when shift held to suppress browser text selection
- selectedUids pruned to visible entries on loadEntries (size >= 2 only;
  single-select persists across search/filter)
- Auto-snap effect: drives selectedEntryUid from selectedUids so URL sync,
  detail panel, and back/forward navigation stay correct
- EntriesView: passes selectedUids + onRowClick; computes isSelected /
  isMultiSelected per row
- EntryRow: mobile-only checkbox column (pointer:coarse media query);
  uses <button aria-pressed> with aria-label for assistive tech; onKeyDown
  stopPropagation so Space/Enter on the button don't bubble to the row handler
- CSS: is-multi-selected style; col-check hidden by default, shown on coarse
  pointer; custom checkbox button with checked state and tick mark
2026-07-14 15:37:10 +02:00
..
.storybook feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
src feat: multi-select entry rows (shift/ctrl+click, mobile checkbox) 2026-07-14 15:37:10 +02:00
bun.lock feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
index.html feat(ui): rewrite frontend in React with Vite 2026-06-24 12:24:34 +02:00
package.json feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
vite.config.js feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00