{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "breadcrumbs",
  "title": "breadcrumbs",
  "description": "breadcrumbs",
  "dependencies": [
    "@heroicons/react",
    "react-aria-components",
    "tailwind-merge"
  ],
  "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 { twJoin, twMerge } from 'tailwind-merge'\nimport { cx } from '@/lib/primitive'\nimport { Link } from './link'\n\ntype BreadcrumbsContextProps = { separator?: 'chevron' | 'slash' | boolean }\nconst BreadcrumbsProvider = createContext<BreadcrumbsContextProps>({\n  separator: 'chevron',\n})\n\nconst Breadcrumbs = <T extends object>({\n  className,\n  ...props\n}: BreadcrumbsProps<T> & BreadcrumbsContextProps) => {\n  return (\n    <BreadcrumbsProvider value={{ separator: props.separator }}>\n      <BreadcrumbsPrimitive {...props} className={twMerge('flex items-center gap-2', className)} />\n    </BreadcrumbsProvider>\n  )\n}\n\ninterface BreadcrumbsItemProps extends BreadcrumbProps, BreadcrumbsContextProps {}\n\nconst 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={twJoin(\n              'has-data-[slot=icon]:inline-flex has-data-[slot=icon]:items-center has-data-[slot=icon]:gap-x-2',\n              '*:data-[slot=icon]:size-5 sm:*:data-[slot=icon]:size-4',\n              '*:data-[slot=icon]:text-muted-fg hover:*:data-[slot=icon]:text-fg'\n            )}\n            {...props}\n          />\n          {!isCurrent && separator !== false && <Separator separator={separatorValue} />}\n        </>\n      )}\n    </Breadcrumb>\n  )\n}\n\nconst Separator = ({\n  separator = 'chevron',\n}: {\n  separator?: BreadcrumbsItemProps['separator']\n}) => {\n  return (\n    <span className=\"*:shrink-0 *:text-muted-fg *:data-[slot=icon]:size-3.5\">\n      {separator === 'chevron' && <ChevronRightIcon />}\n      {separator === 'slash' && <span className=\"text-muted-fg\">/</span>}\n    </span>\n  )\n}\n\nexport type { BreadcrumbsItemProps, BreadcrumbsProps }\nexport { Breadcrumbs, BreadcrumbsItem }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}