mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-25 04:20:02 +00:00
The two UI packages are adapters over different headless primitive libraries: base-ui wraps @base-ui/react, radix-ui wraps @radix-ui/*. They are meant to be alternatives. Every app here had been pulling from both. Each package builds its own React contexts, so a provider from one is invisible to a consumer from the other. insights-docs, pulsar-docs and zen-docs mounted RootProvider and the CSS preset from base-ui but took DocsLayout and the MDX map from radix-ui, so the layout's search trigger read radix's SearchContext default -- enabled:false, setOpenSearch a no-op. Search was dead on those three sites and nothing said so. apps/docs was consistent in its app code (layout, provider, MDX map, CSS all base-ui) but 28 hand-written MDX pages and the two resolveAlias entries reached for radix Callout, Card, Files and Tabs, which loaded the whole second library alongside the first. Tabs was the visible cost: the nested-tabs check compares against the context of its own copy, so a radix Tab inside a base-ui Tabs could not see its parent and drew a second frame. Every generated page already imported base-ui tabs. Callout, Card and Files are byte-identical across the two packages, so this moves no pixels; Tabs gains the nesting the rest of the site has. Nothing in apps/ imports docs-ui now, and its dependency entry goes with it. The registry generator still names both -- it publishes both.