Files
PaperClipAI/doc
DottaandClaude Opus 4.8 fc5d173685 feat(ui): collapse-the-sidebar takeover model (settings + plugin routeSidebar) (PAP-10695)
Takeover routes no longer replace the main app sidebar. Instead the host
collapses the app <Sidebar/> to its 64px rail (still peek-able) and renders the
contextual sidebar in a second pane: [ rail ][ secondary ~240px ][ content ].
User-pin precedence (pin > route request > default) is preserved by the existing
SidebarContext.

- New SecondarySidebar.tsx: fixed w-60, full-height, bordered, scrollable pane.
- Layout.tsx: always render <Sidebar/> in SidebarShell; compute one
  secondarySidebar/hasSecondarySidebar resolver (settings | plugin routeSidebar);
  drive routeRequestsCollapsed via effect; render SecondarySidebar on desktop and
  generalize the mobile off-canvas drawer to the contextual sidebar.
- Unit tests: settings + plugin routes keep <Sidebar/> AND show the contextual
  sidebar in the secondary pane AND fire the collapse request; plain route does
  not force collapse.
- E2E (tests/e2e/sidebar-takeover.spec.ts): rail + secondary pane coexist on
  /<prefix>/company/settings and an explicit expanded pin overrides the
  route-driven collapse.
- Plugin docs (SPEC, authoring guide, SDK README): routeSidebar now coexists with
  a collapsed app rail and plugins must not mount RequestCollapsedSidebar.

Note: Layout.tsx/Layout.test.tsx in this shared worktree also carry concurrent
PAP-10676 peek-suppression refinements that were interleaved with these edits.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:10:41 +00:00
..
2026-03-10 14:43:34 -05:00
2026-02-16 14:25:00 -06:00