Phase 9 used `h-[calc(100vh-320px)] min-h-[320px]` on the thread wrapper because `@tanstack/react-virtual` needs an explicit height for its virtual scroll root. The calc was brittle — any change to TopStrip or input bar sizing broke the math and let the thread overflow or collapse below 320px. Phase 16a replaces the calc with a pure flex chain: - PersonalAssistant forks its root column: when a conversation is active it renders a `flex-1 min-h-0` child that centers the message list at max-w-[760px] and delegates scroll to the list's own internal virtual scroller. When no conversation is active the old `overflow-auto` wrapper remains so the greeting and empty state still scroll. - ChatMessageList's root becomes `flex min-h-0 flex-1 flex-col`, and its inner scroll div becomes `flex-1 min-h-0 overflow-auto`. The virtualizer now measures the actual flex-derived height, which tracks input-bar size changes automatically. Tests: src/components/frame/ + src/components/assistant/ + ChatMessageList.test — 109 passed (6 todo). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| components.json | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
@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.
Typical use
Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.