Files
PaperClipAI/ui/src
DottaandPaperclip 0581aa1256 Rework workspace browser to match PAP-10508 design (PAP-10511)
Addresses UXDesigner review against the approved design spec:

- Placement: move the discovery affordance into a calm action row at the
  bottom of IssueWorkspaceCard ("Browse files…" + "Open file by path…"),
  removing the orphaned button between Artifacts and Tabs. The existing
  top-right toolbar / `g f` entry stays as the secondary affordance.
- Single sheet, two modes: opening a result from browse now shows a
  "← Back to files" affordance (and a separate × close) in the view header,
  with Esc returning to the list. Browse state is URL-backed (`browse=1`,
  `q`) via FileViewerContext (open(...{fromBrowse}), openBrowse, backToFiles).
- Remove the Recent/All toggle: empty query → Recently changed (silent
  fallback to full listing when git change-tracking is unavailable);
  populated query → Files matching. Search field accepts `path:line` and
  Enter opens the highlighted row or the typed path.
- Mobile (<sm) two-line rows (basename / dirname, no timestamp, 44px tap
  targets); desktop single-line with dir-truncate. Recently-changed shows
  relative timestamps; search results omit them to maximise path width.
- Keyboard: listbox/option roles, ↑/↓ + Enter, aria-activedescendant,
  combobox search field.
- Align unavailable copy with describeDenial (remote / cleaned-up);
  debounce 150ms; documented the 100-row cap.
- Stories now render the real FileViewerSheet / IssueWorkspaceCard for
  truthful light+dark, desktop+360px, view-mode, and placement captures.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-09 21:35:48 +00:00
..
2026-05-06 06:30:44 -05:00