{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb",
"type": "registry:ui",
"title": "Breadcrumb",
"files": [
{
"path": "ui/breadcrumb.tsrx",
"type": "registry:ui",
"target": "components/ui/breadcrumb.tsrx",
"content": "// Base UI base breadcrumb — class strings from the maintainer-supplied radix source, verbatim.\n// Six of the seven parts are plain host elements with no primitive underneath and no state\n// attributes, so they carry across unchanged and there is no dialect to get wrong.\n//\n// `BreadcrumbLink` IS MISSING ITS ESCAPE HATCH, and unlike badge that costs something real: the\n// `asChild` branch is how a router's Link gets plugged in, which is most of what this family is\n// for. It is still left out, for the same reason:\n//\n// radix `asChild` swaps in `Slot`, a pure prop-merger\n// React Aria routes through RAC's own `Link` primitive with a `render` prop\n// Base UI has neither — no Slot, and no Link primitive\n//\n// Base UI's house convention is a `render` ELEMENT prop backed by `useRender`, and this base\n// already relies on it where a real primitive offers it (see pagination). But breadcrumb has no\n// primitive, so nothing here settles whether upstream's Base UI breadcrumb implements `render`\n// itself, and an API shape is not something a later commit can quietly correct — adding it is\n// additive, shipping the wrong spelling is breaking.\n//\n// Until then a router link still works, it just has to carry the classes itself:\n//\n// \n// Home\n// \n//\n// which loses only the `data-slot=\"breadcrumb-link\"` hook.\nimport { ChevronRightIcon, MoreHorizontalIcon } from '@octanejs/lucide';\nimport { type OctaneNode } from 'octane';\n\nimport { cn } from '@/lib/utils';\n\ntype Props = { className?: string } & Record;\n\nexport function Breadcrumb({ className, ...props }: Props) @{\n\t\n}\n\nexport function BreadcrumbList({ className, ...props }: Props) @{\n\t\n}\n\nexport function BreadcrumbItem({ className, ...props }: Props) @{\n\t\n}\n\nexport interface BreadcrumbLinkProps extends Props {\n\t/**\n * NOT SUPPORTED in this base — see the header. Declared as `never` so markup carrying it over\n * from the radix base fails to compile instead of silently rendering the anchor AND the child,\n * which nests one link inside another.\n */\n\tasChild?: never;\n}\n\nexport function BreadcrumbLink({ className, ...props }: BreadcrumbLinkProps) @{\n\t\n}\n\nexport function BreadcrumbPage({ className, ...props }: Props) @{\n\t\n}\n\nexport function BreadcrumbSeparator(props: Props & { children?: OctaneNode }) @{\n\tconst { className, children: _children, ...rest } = props;\n\n\t