Add full SolidJS 2 RC and Quoin support to Col MCP#1000000004

merged3
main
codex/solid2-quoin-support
opened3d agobyFFayeque Peerzade

What changed

Col MCP now supports implementing and rendering all 40 public component/provider families in quoin-ui@0.6.0 with its exact Solid 2 peer versions (solid-js, @solidjs/web, and @solidjs/signals at 2.0.0-rc.18). Developers can discover components, retrieve component-scoped API declarations and readable TSX/CSS examples, and render the genuine implementation through MCP Apps or the HTML fallback.

  • Add the Quoin catalog, compatibility guidance, source provenance, documentation snapshots, and usage documentation linked from /docs and the agent guides.
  • Add a Solid adapter to the existing isolated renderer. Bundles retain dependency license notices, authenticate their inputs, and keep executable source out of MCP model text.
  • Correct browser-observed example bugs: Form edits and stale responses, nested menu dismissal, Navigation Menu Escape/hover behavior and mobile sizing, and Toolbar mobile overflow. Vendor implementations remain unchanged.
  • Preserve official Quoin demo styles and theme values instead of applying Col styling. All 33 upstream-backed families retain colors, corners, focus/hover states, and panel presentation. The seven families without upstream demos reuse cited official styles in explicitly authored compositions. Keep only documented viewport/layout adaptations.
  • Preserve exact LF bytes for integrity-checked files on Windows.

The pinned Solid compiler/runtime and Quoin development dependencies build authenticated preview modules; JSDOM supports focused DOM tests. Browser verification uses an external Playwright installation and adds no application dependency.

Type

  • New library
  • Library metadata correction
  • New verified components
  • Bug fix
  • Feature
  • Documentation

Verification

  • I kept this pull request focused.
  • I ran the relevant checks from CONTRIBUTING.md and listed the commands and results below.
  • I reviewed my diff, including AI-generated code, for accidental files, debug output, secrets, and unrelated changes.
  • I checked light and dark modes.
  • I checked mobile layouts.
  • I checked keyboard access and reduced-motion preference.
  • I added screenshots for visible changes.
  • Every added or changed file is 5 MB or less, and this pull request adds 10 MB or less of new data. Attached screenshots use WebP.
  • Usage and setup documentation is linked from /docs; the README and agent guides are updated.
  • I verified generated discovery output, metadata, and agent guides.
  • I linked the resolved issue below.
  • The title describes the shipped change.

Checks ran with checksum-verified Node 24.22.1:

CheckResult
npm testProduction build and 242/242 tests passed; zero failures or skips
npm run typecheckRoot typecheck passed
Strict TypeScript compilation of readable examples40/40 passed
Browser rendering and interaction matrix160/160 passed: 40 families × desktop/mobile × light/dark
Final Drawer/OTP layout rerun8/8 passed after restoring upstream styles
Upstream styling comparison94/94 snapshots matched for all 33 upstream-backed families in both themes, including host OS/preview theme mismatch
Final focused Quoin tests49/49 passed
Actual MCP Apps SDK/widget with real server payloads in a browser test host40/40 rendered; no browser errors or widget error reports
Independent MCP calls120 passed across lookup, Apps, and HTML output
Integrity421 API declaration digests, all 40 bundle/example hashes, and 627 runtime input hashes verified
Standards and Spec review of restorationNo unresolved findings; authored Drawer transition positioning corrected

Browser tests covered visible content, state changes, keyboard behavior, modal focus containment/restoration, nested menus, form validation, scrolling, popup bounds, and frame replacement. Reusable commands are QUOIN_INTERACTIONS=1 node scripts/verify-quoin-browser.mjs and node scripts/verify-quoin-apps-browser.mjs; set PLAYWRIGHT_MODULE and CHROMIUM_EXECUTABLE when using an external installation. The verification report records the detailed evidence and reproduction instructions.

llms.txt and the agent documentation describe the new capability. Library sitemap entries and metadata are generated from the catalog; existing robots rules remain appropriate. The production discovery and library-page tests pass.

Largest new blob: 4,641,511 bytes. Packed Git data relative to origin/main: 2,050,539 bytes.

Limits: browser evidence is Chromium 156 at responsive desktop/mobile widths with keyboard/pointer input and reduced-motion preference. Firefox/WebKit, physical touch devices, screen readers, every prop permutation, SSR/hydration, and third-party MCP-client UIs/CSP policies were not tested. External images remain subject to the receiving client's policy. The MCP Apps evidence uses a local protocol test host, not a third-party client UI.

Library submissions

  • The name and package/source URLs are official.
  • quoin-ui is unique, lowercase, and kebab-case.
  • The description is factual and concise.
  • Categories, SolidJS stack, use cases, and tags are accurate.
  • URLs contain no affiliate or tracking parameters.
  • Every component points to its own pinned official source/API entry. Quoin publishes these references in its repository rather than a separate component documentation site.

Related issue

Closes #68

Updated screenshots below show the restored official demo styling in light/dark desktop/mobile profiles. These supersede the previous Col-styled screenshots. The four optimized WebP attachments total 20,596 bytes. Leave merging to Screen.

Quoin Dialog with restored official demo styling in light mode

Quoin nested Menu with official rounded corners and selection highlights in dark mode

Official Quoin Toolbar styling with responsive preview layout

Official Quoin Navigation Menu styling in a mobile dark preview

Checks

2 successful
All checks passed
e64d25d

Added 3 commits

  • Add full Solid 2 RC and Quoin support to Col MCP751aca7
  • Verify Quoin browser rendering and fix example interactions7702b3e
  • Restore official Quoin demo stylinge64d25d