{
  "name": "breadcrumb",
  "type": "registry:ui",
  "title": "Breadcrumb",
  "description": "Breadcrumb shows the current resource within a hierarchy and links back to its parent levels.",
  "registryDependencies": [
    "@siteplane/base"
  ],
  "dependencies": [
    "@base-ui/react@1.5.0",
    "lucide-react@1.18.0"
  ],
  "files": [
    {
      "path": "src/components/ui/breadcrumb.tsx",
      "type": "registry:ui",
      "content": "\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport function Breadcrumb({\n  ...props\n}: React.ComponentProps<\"nav\">): React.ReactElement {\n  return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nexport function BreadcrumbList({\n  className,\n  ...props\n}: React.ComponentProps<\"ol\">): React.ReactElement {\n  return (\n    <ol\n      className={cn(\n        \"wrap-break-word flex flex-wrap items-center gap-1.5 text-muted-foreground text-sm sm:gap-2.5\",\n        className,\n      )}\n      data-slot=\"breadcrumb-list\"\n      {...props}\n    />\n  );\n}\n\nexport function BreadcrumbItem({\n  className,\n  ...props\n}: React.ComponentProps<\"li\">): React.ReactElement {\n  return (\n    <li\n      className={cn(\"inline-flex items-center gap-1.5\", className)}\n      data-slot=\"breadcrumb-item\"\n      {...props}\n    />\n  );\n}\n\nexport function BreadcrumbLink({\n  className,\n  render,\n  ...props\n}: useRender.ComponentProps<\"a\">): React.ReactElement {\n  const defaultProps = {\n    className: cn(\"transition-colors hover:text-foreground\", className),\n    \"data-slot\": \"breadcrumb-link\",\n  };\n\n  return useRender({\n    defaultTagName: \"a\",\n    props: mergeProps<\"a\">(defaultProps, props),\n    render,\n  });\n}\n\nexport function BreadcrumbPage({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">): React.ReactElement {\n  return (\n    <span\n      aria-current=\"page\"\n      className={cn(\"font-normal text-foreground\", className)}\n      data-slot=\"breadcrumb-page\"\n      {...props}\n    />\n  );\n}\n\nexport function BreadcrumbSeparator({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"li\">): React.ReactElement {\n  return (\n    <li\n      aria-hidden=\"true\"\n      className={cn(\"opacity-80 [&>svg]:size-4\", className)}\n      data-slot=\"breadcrumb-separator\"\n      role=\"presentation\"\n      {...props}\n    >\n      {children ?? <ChevronRightIcon />}\n    </li>\n  );\n}\n\nexport function BreadcrumbEllipsis({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">): React.ReactElement {\n  return (\n    <span\n      aria-hidden=\"true\"\n      className={className}\n      data-slot=\"breadcrumb-ellipsis\"\n      role=\"presentation\"\n      {...props}\n    >\n      <MoreHorizontalIcon className=\"size-4\" />\n      <span className=\"sr-only\">More</span>\n    </span>\n  );\n}\n"
    }
  ],
  "categories": [
    "navigation"
  ],
  "docs": "# Breadcrumb\n\n> Siteplane UI release `0.1.1`.\n\n## Public Purpose\n\nBreadcrumb shows the current resource within a hierarchy and provides short\nlinks back to its parent levels.\n\n## Import\n\n`import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from \"@/components/ui/breadcrumb\";`\n\n## Public API\n\n- `Breadcrumb` renders the named navigation landmark and\n  `BreadcrumbList` contains its ordered items.\n- Use `BreadcrumbLink` for parent destinations and `BreadcrumbPage` for the\n  current, non-interactive page.\n- `BreadcrumbSeparator` and `BreadcrumbEllipsis` are decorative.\n- Compose an ellipsis menu with the canonical `Menu` primitives when hidden\n  levels need to remain reachable.\n\n## Public Motion\n\n- Breadcrumb itself has no mount or exit animation.\n- An ellipsis menu uses Menu motion; Breadcrumb adds no local motion values.\n\n## Public Accessibility\n\n- Keep the navigation landmark label and `aria-current=\"page\"` semantics.\n- Every parent link needs a real destination.\n- Separators and ellipsis glyphs must not be announced as navigation targets.\n- An ellipsis menu must remain keyboard and focus accessible through Menu.\n\n## Public Agent Guidance\n\n- Use Breadcrumb for hierarchy, not primary navigation, tabs, steps, filters, or\n  process status.\n- Preserve native landmark, current-page, separator, ellipsis, and slot\n  attributes.\n- Use existing Breadcrumb parts instead of wrapper primitives.\n\n## Public Links\n\n- [Documentation and preview](https://ui.siteplane.io/docs/components/navigation/breadcrumb)\n\n- [Registry source](https://ui.siteplane.io/r/breadcrumb.json)\n",
  "meta": {
    "siteplane:agentContractVersion": 1,
    "siteplane:docs": "https://ui.siteplane.io/docs/components/navigation/breadcrumb",
    "siteplane:releaseVersion": "0.1.1",
    "siteplane:sourceOwned": true
  },
  "devDependencies": []
}
