2.9.1 [design] Archived work items view + Restore UX
Estimate: 60m · Type: design
Design the archived work items view + Restore UX — the durable surface that replaces the transient Undo toast (WorkItemActionsMenu.tsx:20: "the only restore path until an archived-items view ships"). Produce/extend the design/work-items/ THREE-file asset set (notes + *.mock.html + .png) — this is the design gate for 2.9.3.
Decide placement (rung 1 = Jira). Jira surfaces archived work in a dedicated, admin-gated Archived issues view with single + bulk Restore. Decide where Motir's lives and JUSTIFY from the mirror + the shipped /issues navigator (app/(authed)/issues/_components/IssueFilterBar.tsx / IssueAppliedFilterBar / IssueListPager): a dedicated route (e.g. /issues/archived), a navigator filter/segment ("Archived"), or a project-settings page. Do not improvise — settle it here with a one-line rationale.
Design the surface:
- A FLAT, paginated list of archived items (Motir's archive is single-node "Linear shape" — children stay live — so archived items do NOT form a tree). Reuse the issues-list row vocabulary (key, type glyph, title, status) + show when/who archived (from the
archivedrevision). - A per-row Restore affordance + its confirm/feedback (Restore is reversible → an inline action with a success toast, mirroring the archive Undo, is appropriate; design it).
- Empty state (no archived items), loading, and pagination controls (reuse
IssueListPager). - Access: who can SEE the view vs who can RESTORE. Restore is gated
assertCanEditin the shipped service (workItemsService.unarchiveWorkItem); decide whether viewing iscanBrowsewhile Restore stayscanEdit(recommended, matches archive'scanEditgate) and design the non-editor state.
Acceptance criteria
design/work-items/three files updated together (notes + newarchived.mock.html(or extension) + regenerated.png).- Notes specify: the placement decision + rationale, the flat-list row anatomy (incl. archived-by/at), the Restore affordance + feedback, empty/loading/pagination states, the view-vs-restore access decision, and all
--el-*colour + shape tokens and exact copy (i18n keys).
Context refs
components/issues/actions/WorkItemActionsMenu.tsx(archive + Undo restore today)app/(authed)/issues/_components/(IssueFilterBar,IssueAppliedFilterBar,IssueListPager) — the navigator to fitdesign/work-items/design-notes.md+list.mock.html(the active-list design to mirror)lib/services/workItemsService.tsunarchiveWorkItem(theassertCanEditgate +unarchivedrevision)