Skip to content

finding(components): ui:breadcrumb reads neither separator nor maxItemsseparator is documented as "Custom separator" on the page #6646

Description

@claude

Observed while wiring objectui#5931 (PR #6644), which repaired the icon key on the same renderer. Filed unassigned, not fixed there — a different key, out of that card's fence.

Measured

BreadcrumbSchema declares both (packages/types/src/navigation.ts, mirrored in packages/types/src/zod/navigation.zod.ts):

  • separator?: string@default '/'
  • maxItems?: number — "Maximum items to display before collapsing"

packages/components/src/renderers/data-display/breadcrumb.tsx reads neither: grep -c 'schema.separator' and grep -c maxItems are both 0 on the file. It always renders the bare BreadcrumbSeparator, which falls back to shadcn's ChevronRight, and it never collapses.

A repo-wide git grep 'schema.separator|\.maxItems' -- packages/ finds one unrelated hit (core/src/protocols/DndProtocol.ts, a drop-zone attribute). Nothing reads either breadcrumb key.

Why separator is the sharper half

It is not merely declared — it is advertised to authors in the component's own documentation, content/docs/components/data-display/breadcrumb.mdx:

  separator?: string;             // Custom separator

So an author reading the page, writing "separator": "/", and seeing a chevron has no way to tell the key from a typo. maxItems is the quieter half: declared in the type only, never documented, never authored by a fixture.

There is a second, smaller inconsistency worth noting while someone is in there: there are TWO BreadcrumbSchema declarations in packages/typesnavigation.ts (the one index.ts re-exports, carrying maxItems) and data-display.ts (carrying only items/separator). Only the first is exported.

Not decided here

This is the ADR-0049 enforce-or-remove shape: either the renderer honours the two keys, or they leave the type, the Zod mirror and the docs page. Removing a documented key is a retirement and needs a maintainer's call, so nothing was stripped.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatchedpriority:p2

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions