{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "breadcrumbs",
  "title": "breadcrumbs",
  "description": "breadcrumbs",
  "dependencies": [
    "@heroicons/react",
    "react-aria-components",
    "cn"
  ],
  "registryDependencies": [
    "https://intentui.com/r/primitive",
    "https://intentui.com/r/link"
  ],
  "files": [
    {
      "path": "src/components/ui/breadcrumbs.tsx",
      "content": "\"use client\"\n\nimport { ChevronRightIcon } from \"@heroicons/react/20/solid\"\nimport { createContext, use } from \"react\"\nimport type { BreadcrumbProps, BreadcrumbsProps } from \"react-aria-components/Breadcrumbs\"\nimport { Breadcrumb, Breadcrumbs as BreadcrumbsPrimitive } from \"react-aria-components/Breadcrumbs\"\nimport type { LinkProps } from \"react-aria-components/Link\"\nimport { cn } from \"cn\"\nimport { cx } from \"@/lib/primitive\"\nimport { Link } from \"./link\"\n\nexport type BreadcrumbsContextProps = { separator?: \"chevron\" | \"slash\" | boolean }\nconst BreadcrumbsProvider = createContext<BreadcrumbsContextProps>({\n  separator: \"chevron\",\n})\n\nexport function Breadcrumbs<T extends object>({\n  className,\n  ...props\n}: BreadcrumbsProps<T> & BreadcrumbsContextProps) {\n  return (\n    <BreadcrumbsProvider value={{ separator: props.separator }}>\n      <BreadcrumbsPrimitive {...props} className={cn(\"flex items-center gap-2\", className)} />\n    </BreadcrumbsProvider>\n  )\n}\n\nexport interface BreadcrumbsItemProps extends BreadcrumbProps, BreadcrumbsContextProps {}\n\nexport function BreadcrumbsItem({\n  separator = true,\n  className,\n  ...props\n}: BreadcrumbsItemProps & Partial<Omit<LinkProps, \"className\">>) {\n  const { separator: contextSeparator } = use(BreadcrumbsProvider)\n  separator = contextSeparator ?? separator\n  const separatorValue = separator === true ? \"chevron\" : separator\n\n  return (\n    <Breadcrumb\n      className={cx(\"flex items-center gap-2 text-sm\", className)}\n      data-slot=\"breadcrumb-item\"\n      {...props}\n    >\n      {({ isCurrent }) => (\n        <>\n          <Link\n            className=\"has-data-[slot=icon]:inline-flex has-data-[slot=icon]:items-center has-data-[slot=icon]:gap-x-2 *:data-[slot=icon]:size-5 sm:*:data-[slot=icon]:size-4 *:data-[slot=icon]:text-muted-foreground hover:*:data-[slot=icon]:text-foreground\"\n            {...props}\n          />\n          {!isCurrent && separator !== false && <Separator separator={separatorValue} />}\n        </>\n      )}\n    </Breadcrumb>\n  )\n}\n\nfunction Separator({ separator = \"chevron\" }: { separator?: BreadcrumbsItemProps[\"separator\"] }) {\n  return (\n    <span className=\"*:shrink-0 *:text-muted-foreground *:data-[slot=icon]:size-3.5\">\n      {separator === \"chevron\" && <ChevronRightIcon />}\n      {separator === \"slash\" && <span className=\"text-muted-foreground\">/</span>}\n    </span>\n  )\n}\n\nexport type { BreadcrumbsProps }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}