{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "breadcrumb",
  "title": "Breadcrumb",
  "description": "Navigation breadcrumbs for page hierarchy.",
  "dependencies": [
    "@base-ui/react@^1.4.1"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/new-york-v4/ui/breadcrumb.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"@/lib/utils\"\nimport { IconPlaceholder } from \"@/components/icon-placeholder\"\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        \"flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground 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  asChild = false,\n  children,\n  ...props\n}: useRender.ComponentProps<\"a\"> & {\n  asChild?: boolean\n}): React.ReactElement {\n  const renderValue =\n    render ??\n    (asChild && React.isValidElement(children)\n      ? (children as React.ReactElement<Record<string, unknown>>)\n      : undefined)\n  const defaultProps = {\n    children: asChild && React.isValidElement(children) ? undefined : children,\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: renderValue,\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 ?? (\n        <IconPlaceholder\n          lucide=\"ArrowRight\"\n          tabler=\"IconArrowRight\"\n          hugeicons=\"ArrowRight01Icon\"\n          phosphor=\"ArrowRightIcon\"\n          remixicon=\"RiArrowRightLine\"\n        />\n      )}\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      <IconPlaceholder\n        lucide=\"Ellipsis\"\n        tabler=\"IconDots\"\n        hugeicons=\"MoreHorizontalIcon\"\n        phosphor=\"DotsThreeIcon\"\n        remixicon=\"RiMoreLine\"\n        className=\"size-4\"\n      />\n      <span className=\"sr-only\">More</span>\n    </span>\n  )\n}\n",
      "type": "registry:ui",
      "target": "@ui/breadcrumb.tsx"
    }
  ],
  "type": "registry:ui"
}