diff --git a/.changeset/20471-component-row-anchor-quotes.md b/.changeset/20471-component-row-anchor-quotes.md new file mode 100644 index 00000000000..0b337c0f465 --- /dev/null +++ b/.changeset/20471-component-row-anchor-quotes.md @@ -0,0 +1,16 @@ +--- +'@objectstack/spec': patch +--- + +Three `ComponentPropsMap` read-point records now quote the objectui line they cite + +Clause-②: no + +The docblocks of `action:button`, `action:icon` and `element:definition-list` in +`src/ui/component.zod.ts` each quote the first line of the row's props-read site, re-read +against objectui at the pin this package builds against (`a58626c88`): the runner-forward +literal of the two action blocks, and the `readProps` call of the definition list. A pin bump +that moves one of those lines, or changes it, now fails `check:objectui-pin-citations` and +names where the quoted line went, where before only the cited sha was checked. The other +three rows of that section (`action:group`, `action:menu`, `element:repeater`) carry no quote +yet. Comment text only: no schema, key, type or export changes. diff --git a/packages/spec/scripts/check-objectui-pin-citations.ts b/packages/spec/scripts/check-objectui-pin-citations.ts index 475df360041..2d4d3a3975f 100644 --- a/packages/spec/scripts/check-objectui-pin-citations.ts +++ b/packages/spec/scripts/check-objectui-pin-citations.ts @@ -808,11 +808,20 @@ export function verifyAssertion( * `53ded82b` when that docblock's claim about the map renderer was corrected: * the two flatten sites and their whitelist, the renderer's own * `ObjectMapConfigSchema`, the `safeParse` and the spread beside it, and - * `LIST_VIEW_LOCAL_OVERRIDES`. 145 objectui anchors elsewhere in - * `packages/spec/src` still carry none — `--verify-anchors` prints that - * worklist. + * `LIST_VIEW_LOCAL_OVERRIDES`. + * + * The next three are the props-read sites of three `ComponentPropsMap` rows in + * `src/ui/component.zod.ts`, re-read at pin `a58626c88`: the + * `forwarded: ActionDef` literal of `action:button` and of `action:icon`, where + * the keys each row forwards to the runner are enumerated, and the `readProps` + * call of `element:definition-list`, whose type literal is that row's key set. + * The section's other three rows (`action:group`, `action:menu`, + * `element:repeater`) carry none yet: their cited lines do not hold at that + * pin, and a quote goes only beside a line that does. 418 objectui anchors in + * `packages/spec/src` still carry none, read against objectui `a58626c88` — + * `--verify-anchors` prints that worklist. */ -const ASSERTED_ANCHOR_FLOOR = 7; +const ASSERTED_ANCHOR_FLOOR = 10; // --------------------------------------------------------------------------- // self-test — the shapes, not the corpus diff --git a/packages/spec/src/ui/component.zod.ts b/packages/spec/src/ui/component.zod.ts index 83f4be81eb9..5cc2ff2781a 100644 --- a/packages/spec/src/ui/component.zod.ts +++ b/packages/spec/src/ui/component.zod.ts @@ -3418,7 +3418,8 @@ const ACTION_NODE_GUIDANCE = { * hoist makes `schema.params` the same object, so an array here is the input * list and an object is the static values. (A node-level object `params` * outside `properties` is ignored with a development warning.) - * - Forwarded to the runner (`:215-318`): `description`, `target`, `openIn`, + * - Forwarded to the runner (`action-button.tsx:215-318` first line + * `type: schema.actionType,`): `description`, `target`, `openIn`, * `method`, `bodyExtra`, `bodyShape`, `operation`, `patch`, * `confirmText`, `successMessage`, `errorMessage`, `refreshAfter`, * `undoable`, `recordIdField`, `locations`, `toast`, `resultDialog`, @@ -3532,7 +3533,8 @@ export type ActionButtonPropsParsed = z.infer; * `action:button`. `variant` — `:119`, `primary` mapped to `default`, * renderer default `ghost`. * - `params` — `:143-146`, routed exactly as on `action:button`. - * - Forwarded (`:160-211`): `actionType`, `name`, `target`, `openIn`, + * - Forwarded (`action-icon.tsx:160-211` first line + * `type: schema.actionType,`): `actionType`, `name`, `target`, `openIn`, * `method`, `bodyExtra`, `bodyShape`, `operation`, `patch`, * `confirmText`, `successMessage`, `errorMessage`, `refreshAfter`, * `locations`, `toast`, `resultDialog`, `onSuccess`, `objectName`. @@ -3997,7 +3999,8 @@ export type ActionMenuPropsParsed = z.infer; /** * `element:definition-list` — a compact key/value `
` * (`components/src/renderers/basic/data-list.tsx` at the pin). Props are read - * through `readProps` (`:42-47`, `properties` first). Read points: `items` + * through `readProps` (`data-list.tsx:42-47` first line + * `const props = readProps<{`, `properties` first). Read points: `items` * (`:48`), `columns` (`:49`), `inline` (`:63`), and per item `term` (`:66`) and * `description` (`:68`). *