Files
PaperClipAI/ui
DottaandClaude Opus 4.8 b0199e5951 feat(ui): RequestCollapsedSidebar route-request component (PAP-10645)
Task 5 of the collapsible sidebar plan (PAP-10638, plan §7).

Add the generic route-requested collapse mechanism on top of the state
model from PAP-10642. <RequestCollapsedSidebar/> is an effect-only
component: while mounted it sets routeRequestsCollapsed in SidebarContext,
defaulting the app sidebar to collapsed (still peek-able) — the "this
route brings its own sidebar, keep the app one out of the way" case.

- Precedence is enforced by SidebarContext: an explicit user pin
  (collapsed or expanded) always wins over the route request.
- Unmounting (navigating away from the route) clears the request via the
  effect cleanup, restoring the global default. A user pin persists.

Chose the effect-component form over route `handle` metadata because the
app uses JSX <Routes>/<Route> rather than object route config, so a
component drops cleanly into any page/plugin route's element tree.

Out of scope (follow-up): showing the plugin routeSidebar and the
collapsed app rail simultaneously — Layout still shows one or the other.

Component test covers: requests collapsed while mounted, user pin
overrides, unmount restores default, and pin persists across navigation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 16:35:10 +00:00
..

@paperclipai/ui

Published static assets for the Paperclip board UI.

What gets published

The npm package contains the production build under dist/. It does not ship the UI source tree or workspace-only dependencies.

Storybook

Storybook config, stories, and fixtures live under ui/storybook/.

pnpm --filter @paperclipai/ui storybook
pnpm --filter @paperclipai/ui build-storybook

Typical use

Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.