You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(react-pages): scope the react-only half of the page to the react tier (#13955)
`content/docs/ui/pages.mdx` routes BOTH source-authoring tiers to
`content/docs/ui/react-pages.mdx` (links at :66, :116, :295). On that page only
the first two sections are tier-neutral; everything from `## What is in scope`
down was react-only material carrying no tier marking, so an `html`-tier reader
arriving from any of those links read it as their own. That is the mechanism
behind the naming trap closed earlier with one sentence; this closes the rest of
the class the same way -- marking, not a split.
Nine react-only sections were audited against source. Seven were actively
misleading, and all seven are consequences of one fact the page already states
twice up top: an `html` page's source is parsed, never executed.
- the closure-scope table is the react runtime's injected scope; an html page
has none (`parse.ts` never evaluates)
- `on[A-Z]` attributes are a hard `forbidden-attr` on html, so the callback
wiring has no counterpart; the `type` -> `specType` rescue is the react
runtime's, and `object-chart` declares no `type` input in the manifest
- `block` is not one of the 57 manifest keys, so `<Block>` is not a tag an
html page may write
- `useAdapter` and hooks exist only where the source runs
- the accepted-source-shapes verdicts INVERT: the html grammar is
`document := element`, so `function Page() {}` and `() => ...` fail
`no-root` and the prescribed `export default Page;` fix is `multiple-roots`
- html errors are save-time diagnostics, not a React error panel
- the `record:*` withdrawal is react-only (`validateReactPageProps` skips
every page whose `kind !== 'react'`), and `record:details` /
`record:related_list` are registered html tags
Two sections inside that run are both-tier and are marked as such rather than
swept up: `## Styling`'s Tailwind rule and `## How you check your work`'s three
commands. That is why a single marker at the top of the run would have been
wrong.
Each marker is one bold lead-in naming the tier and then the html counterpart --
the existing convention, with "On this tier" spelled as "On the `react` tier" so
it cannot be read as either. The three bare occurrences already on the page were
normalised to match; the page now contains none. The `record:*` heading is
retitled with its explicit anchor preserved.
`pages.mdx:295` no longer claims the page covers both tiers "in full" -- it
never did, and the audit makes the gap explicit.
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments