Files
pad/web/src/lib
xarmian b051b30183 feat(web): per-item reorder context menu in all views (IDEA-1898) (#768)
Add a small kebab menu to the top-right of each item with manual reorder
actions — move to top / up / down / move to bottom — as a menu-driven
counterpart to drag-to-reorder. Works on touch (board drag is disabled on
mobile) and in long lists where dragging is painful.

- New lib/collections/reorder.ts: pure, collision-safe dense-reindex helper
  (+ unit tests) shared by every surface.
- New ItemActionsMenu.svelte: small dropdown portaled to <body> so it
  escapes the content-visibility paint-clipping on virtualized rows;
  positions on-screen on any viewport; aria-haspopup/expanded + arrow-key
  nav + focus return; close-on-pick concurrency guard.
- Wire into ItemCard (opt-in onReorderItem/reorderDisabledDirs props),
  ListView, BoardView (lane-relative; menu enabled on mobile where drag is
  off), ChildItems (own optimistic reorder + update loop), and TableView
  (now honors manual sort_order + onReorder + an actions column; a
  column-header sort transparently hides the menu).

Gate everywhere mirrors the drag gate: canEdit && manual sort && !search.
Read-only/aggregation views (share pages, starred, tags, role board) pass
no callback, so no menu renders there.

Claude-Session: https://claude.ai/code/session_01HxBkAMiFBtCRJ2tKSCt3ST
2026-06-27 18:10:00 -05:00
..
2026-03-26 01:52:36 +00:00