mirror of
https://github.com/PerpetualSoftware/pad.git
synced 2026-09-25 03:42:06 +00:00
b051b30183
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