Skip to content

docs(sync): register new components in every docs and playground registry - #447

Merged
IgorShevchik merged 1 commit into
mainfrom
docs/new-component-registries
Aug 20, 2026
Merged

docs(sync): register new components in every docs and playground registry#447
IgorShevchik merged 1 commit into
mainfrom
docs/new-component-registries

Conversation

@IgorShevchik

@IgorShevchik IgorShevchik commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Linked issue

Follow-up to #441 (Splitter) and #443 (ProgressGroup).

Type of change

  • Documentation (updates to the documentation or readme)
  • Chore (updates to the build process or auxiliary tools and libraries)

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.tspages. 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 (@memo need add pages for raw/***.md), and skills/b24-ui-nuxt/references/components.md links to exactly those URLs. Writing the guard below turned up two older instances of the same omission — empty and page-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 demo useNavigation.ts in 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 used iconName: RekaIcon, a name that has never existed in src/runtime/dictionary/icons.tsresolveIcon() 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 mechanically checkable part: page ↔ pages entry in both directions, every iconName: 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

  • Four mutations against the new spec, each red: dropping the splitter route, adding a route with no page behind it, restoring iconName: RekaIcon, renaming the demo page away. Green on the tree as committed.
  • Gate with CI=true: dev:prepare · lint · typecheck · test (6804 passed) · build, plus docs:generate with deploy.yml's env (1259 routes) and demo:generate (87 routes).
  • Both demo pages loaded in a browser off demo:generate's output — the demo app is ssr: false, so a prerendered shell proves nothing: the splitter renders two panel groups, the progress group six segments, no console errors.

Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

Generated by Claude Code

…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.
@IgorShevchik
IgorShevchik merged commit a9d1b95 into main Aug 20, 2026
1 check passed
@IgorShevchik
IgorShevchik deleted the docs/new-component-registries branch August 20, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants