Scale preview stories to every eligible library and component (#64)#66

merged
main
capy/preview-coverage
opened3d agobyFFayeque Peerzade

Ships the component-preview coverage campaign for issue #64: preview stories now span every eligible library and component — 580 stories across 14 libraries (from 42), with 2,320 static preview pages and 580 rendered screenshots.

Coverage

LibraryCoverageNotes
radix-ui30/30rendered from the radix-ui package
shadcn-ui65/65vendored registry recipes; Toast, Typeset, and Questionnaire implemented in-module where the registry has no recipe
base-ui37/37
react-aria54/54
ark-ui52/52
mantine178/178core plus charts, dates, schedule, notifications, and the extension stack
mui114/128the other 14 are MUI X Pro/Premium under commercial licenses — explicit gaps, never faked
headless-ui16/16
intent-ui6/6open-source library components only
reui6/6free MIT components on the real dnd-kit / headless-tree engines
elevenlabs-ui6/6deterministic still frames where the real parts are rAF/WebGL animations
starwind-ui6/6
webcoreui4/4
web-awesome6/6MIT Core web components in React

react-bits (MIT + Commons Clause) and Aceternity UI (proprietary Aceternity License) forbid source redistribution, so their components stay preview-unavailable with documentation links. Every shipped story sits behind a recorded granted reuse permission naming the library's actual license page.

Gates

  • scripts/check-story.mjs validates each story batch: permission record, documented component names, scenes, render-key ↔ story parity, and installed dependencies.
  • A catalogue-wide coverage test requires every documented component to have either a story or a named, justified gap.
  • npm test green end to end: build (2,320 static preview pages) → 580 screenshots → themed-render and MCP Apps widget verifications → 143/143 tests.

Integration notes

  • Story runs land as per-library modules merged in data/preview-stories and components/preview-stories; large libraries arrive in batches under one slug.
  • Library stylesheets (Mantine stack, webcoreui Sass, Web Awesome) load with the preview routes only. webcoreui's one upstream type bug is kept out of the compile by a narrow local barrel (lib/webcoreui-react.ts).
  • MUI X community packages plus @mui/x-chat back the mui stories; Pro/Premium imports are gated by license.
  • The screenshot renderer waits on the themed canvas and fonts rather than network quiet (third-party assets can stall networkidle forever), and falls back to a viewport capture with a loud log if one full-page capture misbehaves.
  • Merged origin/main in; the tool layer keeps main's per-component verification/install/dependency anatomy and adds the preview payload and image blocks on top.
  • The /mcp answer anatomy and the docs agents guide document the preview payload (themed URL, screenshot, rendered source, explicit gaps).
  • The screenshot renderer waits on rendered state (themed canvas + fonts) instead of network quiet, so third-party assets can never stall a capture.
FFayeque Peerzadeopened·3d ago