Skip to content

finding(components): AccordionItem declares icon and disabled but the accordion renderer reads neither #4652

Description

@yinlianghui

Measured while implementing #4632 (PR #4651). Filed unassigned. Duplicate-searched (keyword + AccordionItem + the renderer path): no open issue covers it.

The finding

The same defect as #4632, one interface up in the same file. packages/types/src/disclosure.ts declares on AccordionItem:

exportinterfaceAccordionItem{value: string;title: string;content: SchemaNode|SchemaNode[];disabled?: boolean;// :39icon?: string;// :43}

packages/components/src/renderers/disclosure/accordion.tsx reads item.value, item.title and item.content — and nothing else:

AccordionItemkey={item.value||index}value={item.value||`item-${index}`}AccordionTrigger{item.title}
... renderChildren(item.content)

Grepping icon and disabled across that renderer returns no item-level read. The Zod mirror packages/types/src/zod/disclosure.zod.ts declares both too, so — as in #4632 — the retirement/wiring has three declaration surfaces, not one.

Impact

Dormant rather than breaking, same shape as #4632: an author who declares either key gets a correctly rendered accordion with the key silently dropped. Nothing goes red.

Unmeasured here (the #4632 seat did not sweep the accordion corpus): whether any catalog entry, docs page or example app authors them. That sweep is part of taking this card, since it is what decides the direction.

Options

Enforce-or-remove, per key, decided by measured pull — the #4632 ruling's framing:

  1. Wire disabled — Radix's accordion item supports it natively, so it is likely a one-prop forward with no edit to the synced ui/ file. Note finding(components): ToggleGroupItem.icon is declared in types but no renderer reads it — authored icons render nothing #4632 measured item-level disabled as established live convention (tabs, select, dropdown-menu, menubar, context-menu, and now toggle-group all forward it), which is real pull for wiring rather than retiring this one.
  2. Retire icon unless the accordion corpus shows pull that toggle-group's did not.

Related class: #4631 (three-surface reconciliation instrument). This is one more measured instance and does not wait for it.

Refs #4632, PR #4651.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions