chore: bump fumadocs to 16.11, fumadocs-mdx to 15, shiki to 4 - #1493
chore: bump fumadocs to 16.11, fumadocs-mdx to 15, shiki to 4#1493franky47 wants to merge 18 commits into
Conversation
Second pass of the dependency bump, covering the fumadocs-coupled set. fumadocs-mdx 13 to 15 brings the entry-files layout (collections/server imports, toFumadocsSource) and the lastModified plugin. fumadocs-ui 16.11 dropped its container utility override (restored locally, the site layouts rely on it for centering), defaults the theme switch to light-dark (system mode restored), takes sidebar banner as a ReactNode instead of a component, and requires loose page content to sit in a DocsPage slot (playground demos). Visual parity checked against production with Playwright screenshots across 9 pages in both themes.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Workspace-scoped runs (the CI way) resolve paths from knip.json, not tsconfig, so the new collections/* alias needs mirroring there.
The Linting job installs with --ignore-scripts, so the .source folder the collections alias points at never exists there; knip then reads collections/server as an unlisted bare dependency.
The container utility left preset.css in fumadocs-ui 16.2 (it still ships in preset-legacy.css) and the theme switch default changed in 16.7 — both surfaced here only because of the 16.0.4 jump. Also document the CI ordering dependency between fumadocs-mdx generation and the docs knip run.
fumadocs-ui 16.11 positions the docs sidebar and TOC with sticky inside a grid that must grow with the page, but our global html/body height: 100% capped the body at the viewport, freezing both in place — min-height keeps the sticky-footer flex layout working while letting the grid stretch. The new TOC styles (normal and clerk) both draw an SVG thumb that bends around indentation; a local StraightTOC swaps the list for the classic straight rail while reusing the upstream sticky container and scroll area.
The classic TOC items carried a prose class that styles inline code (border, background, mono sizing); adopt the exact 16.0.4 item classes including the per-depth padding steps.
fumadocs-ui 16.11 caps DocsPage children at 900px but start-aligns them in the main grid area, leaving the slack on the right; centering the children restores the balanced look aligned with the search bar.
The DocsPage wrapper the demos now need brought the docs template with it: a 900px child cap, a reserved 268px TOC column (via the empty-TOC placeholder), and prev/next pager cards. Playground pages were full-bleed and pager-less in production, so lift the cap, disable the TOC slot, and drop the pager there.
fumadocs-ui exposes it as the thumbBox option on the TOC item list; production (16.0.4) had no such marker.
commit: |
Tooling for the one-off prod-vs-preview screenshot audit, swept in by accident; it lives outside the repo.
The bespoke straight-rail TOC dropped the scroll-position highlight; the stock component tracks it properly, and the curved rail is acceptable. The mobile popover keeps thumbBox disabled.
Production never had the system option — an early screenshot misread suggested it did. fumadocs 16.11 defaults to light-dark, so the override goes away entirely.
Swept in by a broad git add; tool-local state, not source.
Both were added while chasing implicit-any errors that only appeared locally and no longer reproduce from a clean state (stale .next typegen); nuqs and fumadocs types flow correctly without them.
# Conflicts: # pnpm-lock.yaml
Dependency bump: fumadocs-core/ui 16.0.4 to 16.11.5, fumadocs-mdx 13.0.2 to 15.2.0 (two majors), shiki + @shikijs/transformers 3 to 4 (aligned with the shiki fumadocs now ships).
The mdx 13→15 migration: collections import from the generated
collections/serverentry (toFumadocsSource()replacescreateMDXSource),lastModifiedTime: 'git'becomes thelastModifiedplugin, anddefineDocsis exported whole instead of destructured so the generator emits a docs collection with its meta attached. next.config was already ESM.fumadocs-ui 16.11 came with behavioural changes the diff adapts to:
containerutility override; the site layouts rely on it for centering, so globals.css now provides it (same values: centered, 1400px cap on 2xl).mode: 'light-dark-system'restores the system option.sidebar.banneris a ReactNode now, not a component — passing the function crashed RSC serialization at build time.DocsPageslot: the playground demo pages rendered as a collapsed grid without it.Markdownmoved fromfumadocs-core/contenttofumadocs-core/content/md.Visual regression pass: Playwright screenshots of 9 pages (landing, docs, playground, blog, stats, changelog) in light and dark, compared against production nuqs.dev. All at parity after the fixes above. Two pre-existing artifacts confirmed identical on prod: the degraded v2.9.0 changelog entry (its DTO has unrecognized
labelskeys) and the lowercase compact-number suffixes on /stats (Vercel's ICU renders115m, local Node115M— runtime, not code).Still deferred: lucide-react 1.x (drops brand icons used on the conf pages), @types/node (pinned to the repo's Node 24), express 5 (e2e infra).