Skip to content

finding(docs): 15 component reference pages annotate props with ActionConfig, a type @object-ui/types has never exported — the name needs a ruling before #5867 can cover them #6122

Description

@yinlianghui-tw

Measured by #5867 batch 2 (session session_019b5UBNMtTzKbVtZZGvFuxe) on origin/mainb9c367717, while probing the content/docs/components/** remainder by measurement rather than by eye: all 94 remaining components + plugins + blocks blocks were re-fenced in a throwaway mutation, the gate was run, and the tree restored under a trap.

The measurement

16 references across 15 content/docs/components/** pages name ActionConfig, always in the same position — the type of an event-ish prop inside a documented interface:

onSelect?: string|ActionConfig;// context-menu, menubar, dropdown-menu
onAction?: string|ActionConfig;// toast
onClick: string|ActionConfig;// sonner

The probe measured TS2304: Cannot find name 'ActionConfig'16 times, and an export-surface probe over the built packages/types/dist/index.d.ts reports the name ABSENT. Nothing in packages/*/src declares it either; the closest names are ActionSchema (declared twicecrud.d.ts:64, @deprecated, and ui-action.d.ts:331) and UIActionSchema.

Files: components/{overlay/context-menu, overlay/menubar, overlay/dropdown-menu, feedback/sonner, feedback/toast, form/command, form/radio-group, form/form, form/input-otp, form/button, …}grep -rl ActionConfig content/docs returns 15.

The deciding question, ⛔ not decided here

Which real type did these props mean?

  1. UIActionSchema — the non-deprecated action surface @object-ui/types points new code at;
  2. ActionSchema — what the prose elsewhere uses, but it is @deprecated in crud.d.tsand exists under a second declaration in ui-action.d.ts, so "ActionSchema" is itself ambiguous;
  3. the props take something narrower (an action reference string plus a small config) and the honest answer is a new declared type.

⚠️ Whichever it is, this is one edit repeated 16 times, and the answer decides whether ~5 of the 39 reddening components files can be taken in one batch. Getting it wrong fossilizes a name in 15 reader-facing pages.

Context for #5867's next batch

Of the 94 blocks probed (80 files), 43 blocks in 40 files compile untouched and are the cheap batch; the 51 that red do so almost entirely on three ambient names — SchemaNode (34, exported), ComponentSchema (10, exported) and ActionConfig (16, not exported). The first two are fixed in-batch with the import a reader copying the block needs. This one cannot be.

Two unrelated defects the same probe surfaced, recorded here so they are not lost (each is a one-file fix for whoever takes that file, not a blocker):

  • content/docs/components/feedback/sonner.mdx declares action twice in one interface — TS2300 duplicate identifier / TS2717 conflicting types.
  • content/docs/plugins/plugin-dashboard.mdx:337 does not parse — TS1109: Expression expected — the only syntax-phase failure in the whole probe.

Refs: #5867 (parent lane) · #6107 / #6120 / #6121 (the sibling blockers).

Metadata

Metadata

Labels

documentationImprovements or additions to documentationdomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopm:dispatched

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions