docs(sync): register new components in every docs and playground registry - #447
Merged
Conversation
…stry Splitter (#441) and ProgressGroup (#443) each shipped with `src/`, tests, a docs page and the nuxt playground, and each was missing four further registries. None of them can fail a build, which is why both passed the full gate twice. - `docs/nuxt.config.ts` → `pages`: neither route was listed. The page still prerenders, because the crawler follows the sidebar link, so nothing looked wrong — but that array is the declared list the `/raw/<page>.md` routes are generated from, and `skills/b24-ui-nuxt/references/components.md` links to exactly those URLs. `empty` and `page-card-group` had been missing longer; both are registered here too. - `playgrounds/demo`: no page for either component, so the Demo link the docs page is supposed to carry had nothing to point at. Both pages are written the way the other 79 are — `<PlaygroundPage>` with `#controls`, the theme's variants driven through `<Matrix>` — rather than copied from the nuxt playground, which is a scratch page with a different job. - `useNavigation.ts` in the demo playground: both names added in place. - The Demo link itself, on both docs pages. Also on those pages: `description:` was Nuxt UI's sentence verbatim on Splitter and near-verbatim on ProgressGroup, both rewritten; `keywords:` added; and Splitter's Reka link used `iconName: RekaIcon`, a name that has never existed in `src/runtime/dictionary/icons.ts`. `resolveIcon()` returns `undefined` for it and the template renders the link with no icon, silently — the convention on the other 34 pages is an avatar, `/b24ui/avatar/rekaui.svg`, and that is what it uses now. `test/utils/docs-component-registries.spec.ts` holds the part of this that is mechanically checkable: page ↔ `pages` entry in both directions, every `iconName:` resolvable in the dictionary, every Demo link and every demo nav entry resolving to a file that exists. It cannot demand a demo page per component (33 of 120 pages carry no Demo link by choice) or tell a rewritten description from a copied one; those stay in the checklist that `.sync/PORTING.md` §6 now spells out for the next component. Verified: four mutations against the new spec — dropping the `splitter` route, adding a route with no page behind it, restoring `iconName: RekaIcon`, renaming the demo page away — each red, and the tree green. Both demo pages loaded in a browser off `demo:generate`'s output: the splitter renders two panel groups, the progress group six segments, no console errors.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Follow-up to #441 (Splitter) and #443 (ProgressGroup).
Type of change
Description
Splitter and ProgressGroup each shipped with
src/, tests, a docs page and the nuxt playground — and each was missing four further registries. None of them can fail a build, which is why both ports passed the full gate twice with the gaps in place.docs/nuxt.config.ts→pages. Neither route was listed. The page still prerenders, because the crawler follows the sidebar link, so nothing looked wrong. But that array is the declared list the/raw/<page>.mdroutes are generated from (@memo need add pages for raw/***.md), andskills/b24-ui-nuxt/references/components.mdlinks to exactly those URLs. Writing the guard below turned up two older instances of the same omission —emptyandpage-card-group— both registered here as well.playgrounds/demo. No page for either component, so the Demo link a docs page is supposed to carry had nothing to point at. Both are written the way the other 79 demo pages are —<PlaygroundPage>with#controls, the theme's variants driven through<Matrix>— rather than copied over from the nuxt playground, which is a scratch page with a different job. Both names added to the demouseNavigation.tsin place, and the Demo link added to both docs pages.Front matter.
description:was Nuxt UI's sentence verbatim on Splitter and near-verbatim on ProgressGroup; both rewritten,keywords:added. Splitter's Reka link usediconName: RekaIcon, a name that has never existed insrc/runtime/dictionary/icons.ts—resolveIcon()returnsundefinedfor it and the template renders the link with no icon, silently. The convention on the other 34 pages is an avatar,/b24ui/avatar/rekaui.svg, and that is what it uses now.test/utils/docs-component-registries.spec.tsholds the mechanically checkable part: page ↔pagesentry in both directions, everyiconName:on a component page resolvable in the dictionary, every Demo link and every demo nav entry resolving to a file that exists. It deliberately does not demand a demo page per component — 33 of 120 pages carry no Demo link by choice — and it cannot tell a rewritten description from a copied one. Those stay checklist items, which.sync/PORTING.md§6 now spells out as eleven places a new component has to appear.Verification
splitterroute, adding a route with no page behind it, restoringiconName: RekaIcon, renaming the demo page away. Green on the tree as committed.CI=true:dev:prepare·lint·typecheck·test(6804 passed) ·build, plusdocs:generatewithdeploy.yml's env (1259 routes) anddemo:generate(87 routes).demo:generate's output — the demo app isssr: false, so a prerendered shell proves nothing: the splitter renders two panel groups, the progress group six segments, no console errors.Checklist
Generated by Claude Code