Repository navigation
fix: docs: accuracy review of every docs page against 3.0 (props, samples, nav gaps) + guard tests - #125
Merged
Conversation
Contributor
|
Site preview: https://pr-125.codeatlas-ui.pages.dev |
mvilacad
force-pushed
the
fix/123-docs-accuracy-review-of-every-docs
branch
from
October 15, 2026 04:26
fc2283f to
4c08f23
Compare
mvilacad
marked this pull request as ready for review
October 15, 2026 04:26
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.
Closes #123
Every page in
site/src/content/docs/**was checked against the 3.0.0 source, the generated manifest (dist/components.json) and the CLI. Two guard tests now keep it that way.Guards (test first)
packages/ui/tests/docs-accuracy.test.ts<Props>row names a prop the component lacks, a documented default differs from the source, a code fence imports a name the entry point does not export, a sample passes an undeclared prop, a/docs/link or#anchoris dead, a<Props>literal is not valid JS (breaks the MDX build), an exported component is never mentionedbutton.mdx, unescaped quote): fails with it, passes without.packages/ui/tests/docs-samples.test.ts+scripts/check-docs-samples.tssveltefence that imports the package does not compile undersvelte-checkagainstdisttypes (unknown export, wrong prop value, TS in a plain script, unclosed block)<Props>takes afor="Component[, Component]"attribute (orfor="none"for tables that do not describe a component); without it the guard infers the component from the title or the page name.Inaccuracies fixed (page | what was wrong)
Getting started
latest,X.Y.Z-beta.Nas dist-tagbeta, any other prerelease id as its own tag). Optional-peer table missedaxe-core,@resvg/resvg-js+png-to-ico(caBrandPlugin),typescript(migrate),@sveltejs/kit,astro. No section describedinit: added flags (--write,--dir), thecreate/ok/diff/patch/manual/skiplines, exit codes, final messages. The files table was wrong (vite.config.tsandapp.htmlare only patched;skipwhen missing;manualwhen no viewport meta). Astro section did not match whatinitwrites.defaultStylelisted 4 of 9 styles;density,controlRadius,border,elevation,typography,motion,noiseundocumented;ThemeOptionsimported from the root (not loadable in Node config) instead of/viteand/astro;DESIGN_STYLESandmergeThemenot described.og.imageTypeand thetwitter.cardfallback missing;caBrandPluginoptions (mark,theme,outDir,base,manifestFile,name) undocumented, andoutDiris emptied first; missing imports in the vite sample; dev warnings incomplete.short_namedefault, per-icontype,extra, and the real tagsappleMetaemits.onback, press-scale (Button only).defineTheme(...)as the theme.--ca-motion-scale; dead anchor#skip-link.pagination.nextPagedoes not exist (pagination.next); unclosed<I18nProvider>sample.Row;migratecoverage (.js, defaultsrc, GlassCard/GlassSurface/Row codemod) and--dir,guides.json,search_tokens60-match cap.pagerprop andCodeTabs.tabsmissing;DocsNavitem shape.Surfaces, layout, foundation
radiusdefault documented as'lg'(source:undefined, falls back to--ca-radius-lg);liquidalso uses the blur tiers;glowis transparent undersolid/flat;interactiveneeds a link/button or role; forced-colors exception forghost; no mention of the 3.0 solid default.interactivemissing from passed-through props;autois opaque under solid, glass under liquid; demo wording ("backlit halo", "gradient overlay").valueis''when closed; demo citedGlassSurface/GlassCard.material="liquid"or"glass".onNavigaterow wrong (panel items are plain links; it fires on module switch);defaultModuleand stored module; panel skipped for a module with fewer than two destinations; code samples missinglang="ts"and theSiteHeaderimport;PanelNavItem,SectionGroupundocumented.gap/maxWidthdefaults were literals (source:undefined);titlerenders the page<h1>.--ca-glass-bg, blurred only under glass/frosted.--ca-font-scale, kit does not load Inter/JetBrains Mono,--ca-font-displaydefault; "soft warm shadows" and "glass relies on inset highlights" were 2.x claims; materials presented everything as Liquid Glass.FormPage(removed; the component isAppForm).Inputs
childrenmissing;loadingdescription wrong; an unescaped quote in a Props string broke the MDX build.hourCycle,fixedWeeks,closeOnRangeSelectwere attributed to every component.variant,aria-label, itemdescriptionundocumented; claimed roving focus (native radios).ariaLabel; toggle-group | undefineditemsin sample, roving focus only in single mode; export-menu |labeldefault,columnssemantics.leading / trailing,PhoneField.*,CepField.*rows combined several props in one name.Display, feedback, navigation
SimpleTable; cards below 600px of the table width (not 900px), captions fromthead; image |srcset/sizesare forwarded native attributes, not props.User/usersundeclared in samples;DataTableToolbar,DataTablePagination,DataTableColumnHeader,DataTableColumnToggle,DataTableFacetedFilterundocumented.role="alert"with polite live region; badge | missingIconButtonimport,role="status"label; divider | recommendedRow; notification-bell |onReadonly for unread items; pagination | keyboard andaria-current; scroll-area | viewport is focusable; tooltip | focus, Escape, touch, 300ms skip window; duplicateordervalues.aria-modal(nativeshowModal), split breakpoint 900px,LayerChange/LayerInfo/LayerKindandonLayerChangeundocumented; sheet | 768px (is 900px); alert-dialog | initial focus, "rethrown"; drawer | missingButtonimport; progress, skeleton, toast |aria-valuemin, "rather than", a fence with two<script>blocks.scrollFocusablemissing,clipboard/longpressevents; menu |DropdownMenuLabelonly in a demo; tabs |TabsListundocumented, automatic activation; stepper | bubbles are buttons; breadcrumb, command-palette, popover, navigation/drawer | behavior and layer notes.New pages (exported components with no docs)
Kbd,FilterGroup,SettingItem,Lightbox,ErrorPage,AuthLayout+AuthCard,LiquidGlass. The nav is derived from the collection, so they appear with no list to edit. Mentions added forPanelNavItem,SectionGroup,DropdownMenuLabel, theDataTable*parts.Core:
packages/uiKpiCardrendered the deprecatedGlassCard(every KPI card logged the[ca-ui]deprecation warning). NowCard elevation={3}. Test first:KpiCard.svelte.test.ts"is built on Card" failed (.ca-glass-cardpresent), passes after. Patch changeset.FilterGrouplabel used--ca-text-hint; the new route axe spec failedcolor-contrastin dark mode on a custom preset (4.11:1). Now--ca-text-secondary. Test first:contrast.test.ts"label role is not the hint role" failed, plus a 4.5:1 check per preset and scheme on every surface (172 pass). Patch changeset.Sheetdoc comment said 768px (CSS is 900px); it feeds the manifest.scripts/check-docs-samples.ts,tests/docs-accuracy.test.ts,tests/docs-samples.test.ts.Site:
site/and configradio/Cards.svelte.biome.jsonand.gitignoreignoresite/.cache(sample extraction output).Verification
bun run validate: ok (21.7s).Not done
KpiCardandFilterGroupare regenerated on CI (bun run test:vrt:update), the only place they are rendered.SwatchGroup(landing branch site: landing scroll jump in theme section, livelier hero app, sketchbook polish #122) is not inmain; the coverage guard will require its page when it lands.Rowkeepsalign="start"as a deliberate legacy default;--ca-elevation-*tokens are missing fromdist/tokens.json;Rail,Panel,BottomNav,MobileHeaderhave no props tables.