docs(plugin-form): state the field-level className rule as contract, not reader count - #5698
Merged
Merged
Conversation
…not reader count (#5131) `packages/plugin-form/README.md`'s "Not a `FormField` key" table claimed a field-level `className` is "read on exactly one pseudo-field, `type: 'section-divider'`". That quantifier holds only for the renderer's explicit read; the same renderer forwards every key it did not destructure, so `className` rides the props spread onto whichever control the field resolves to and lands visibly on built-in controls. The cell now describes the contract (undeclared, promised nothing, honoured by a registered widget only if it spreads its leftover props) instead of counting readers, matching the wording the docs site already ships. The advice in the row is unchanged, and the explicit `section-divider` read is kept, now named as explicit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012u2pRjcqAYtoEjgr3wwhnK
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
os-sales
marked this pull request as ready for review
August 22, 2026 11:58
This was referenced Aug 22, 2026
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.
Fixes #5131
packages/plugin-form/README.md's "Not aFormFieldkey" table said:The quantifier was checked against the source at the branch base (
6c6cee704), not taken from the card. It is wrong for anyone who reads "read" literally:6c6cee704)classNamepackages/components/src/renderers/form/form.tsx:1848-1867(renderFormField,...fieldPropsat:1866)fieldPropsform.tsx:348-388(stripRendererOnlyProps)form.tsx:2326-2327—renderFieldComponent(resolvedType, { ...fieldProps, … })inputbranchform.tsx:3195-3196, then theInputelement at:3251-3267{...inputProps}Inputcomponent itselfpackages/components/src/ui/input.tsx:14-20cn(baseClasses, className)— the authored class is appended, not droppedSo a field-level
classNamedoes visibly land on an ordinary built-in control — the jsdom measurement on the card (PROBE-CLASSappended to the input's class list) is the same fact from the other end. The true half of the old sentence, the renderer's explicit read atform.tsx:1942(className={fp.className}on thesection-dividerbranch), is kept and now named as explicit.The change
One table cell. The advice in the row is unchanged and was never wrong (
span/colSpanfor width,FormSchema.fieldContainerClassfor the grid); only the reader-count claim is replaced by a statement about the contract, in the wording the docs site already ships (content/docs/plugins/plugin-form.mdx, from #5130) — the two sources now agree again.Scope
Exactly the one quantifier at
README.md:227, plus the changeset. No other prose in the file, no other README, no source file. No audit of the rest of the file was performed, and none is claimed.Verification
The diff is markdown only (
packages/plugin-form/README.md+ one.changeset/*.md).ci.ymlandlint.ymlskip their expensive steps on such a diff through their ownDecide whether this change needs a full runstep, whose exclusion list carries**/*.mdand.changeset/**— so what actually judges this PR are the gates that carry no path filter. All four were run locally on the final commit1066b1cdf, quoting each gate's own verdict line:Plus the author-side control-byte scan over the two touched files:
grep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]'→ no match.Declared narrowing. No build and no test was run, and the shared verify lock was not held. The diff changes no byte that a compiler, bundler or test reads — two markdown files, one of them a changeset — so the provable superset of what it can affect is the markdown gate set above. This is a declared narrowing, not a skipped step; CI still runs the full farm.
The changeset carries a
patchon@object-ui/plugin-formrather than empty frontmatter, following the precedent set for the sibling README correction in.changeset/calendar-readme-schema-keys-5045.md:README.mdis in this package'sfiles, so the npm landing page only picks the correction up on a release. No behaviour, export, type ordistbyte changes.Neither
content/docs/**norapps/site/**is touched, soBuild Docsdoes not run on this PR.(Body edited once after creation: the three
InputJSX fragments in the table above were written in angle-bracket form and the body sanitizer deleted them outright, leaving empty backticks. Rewritten as prose names — no other change.)Generated by Claude Code