{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "breadcrumb",
  "title": "Breadcrumb",
  "description": "이동 경로 — 7종 구성(Link는 Pressable role=link), › 구분자·⋯ 생략 글리프. 현재 페이지는 시각 톤으로만 구분.",
  "dependencies": [
    "@unikit-bridge/ui",
    "class-variance-authority",
    "clsx",
    "tailwind-merge",
    "tailwindcss"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/breadcrumb.tsx",
      "content": "// Breadcrumb — shadcn/ui new-york-v4 breadcrumb 포팅（shadcn-ref/ui/breadcrumb.tsx）.\n// 7종 export. radix Slot·lucide 아이콘 제거.\n// 포팅 판단:\n// - 아이콘: ChevronRightIcon·MoreHorizontalIcon — 브리지 lucide 아이콘 프리미티브\n//   （lucide — primitives 경유）.\n// - BreadcrumbLink는 Pressable role=\"link\" + onPress（무인자）. radix Slot（asChild）은\n//   미지원 — 사용처 라우팅은 onPress에서 호출한다.\n// - BreadcrumbPage의 aria-current는 브리지 계약에 없어 현재 페이지를 시각（색·\n//   굵기）으로만 표현한다. 원본의 role=\"link\"·aria-disabled도 Text 계약에 없어\n//   생략（활성 아닌 링크로 오독 방지）.\n// - 원본 <nav>의 내재 role（navigation）도 BridgeRole에 없어 미지원 — 라벨만\n//   유지. 스크린리더 전용（sr-only） 보조 텍스트는 웹 전용 클래스라 생략하되,\n//   원본처럼 장식 요소（Separator·Ellipsis）에는 aria-hidden을 지정한다.\n// - 웹 전용 토큰（transition·hover·break-words·sm: 반응형）은 web: 접두.\nimport { forwardRef } from \"react\";\nimport {\n  ChevronRightIcon,\n  MoreHorizontalIcon,\n  Pressable,\n  Text,\n  View,\n  type BridgePressableRef,\n  type BridgeTextRef,\n  type BridgeViewRef,\n  type PressableProps,\n  type TextProps,\n  type ViewProps,\n} from \"@unikit-bridge/ui/primitives\";\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst breadcrumbListVariants = cva(\n  // 원본 List 토큰（text-sm text-muted-foreground 포함）. 전경색은 내부 Text에도\n  // 이중 지정돼 있다（§0.5 — 네이티브는 컨테이너 색이 자식으로 상속되지 않는다）.\n  \"flex-row flex-wrap items-center gap-1.5 text-sm text-muted-foreground web:break-words web:sm:gap-2.5\",\n);\nconst breadcrumbItemVariants = cva(\"flex-row items-center gap-1.5\");\n\n// 링크 컨테이너（Pressable） — 투명 배경·무테두리, 전경색은 내부 Text에.\nconst breadcrumbLinkVariants = cva(\"flex-row items-center\");\nconst breadcrumbLinkTextVariants = cva(\n  \"font-sans text-sm text-muted-foreground web:transition-colors web:hover:text-foreground active:text-foreground\",\n);\n\n// 현재 페이지 — 원본 font-normal text-foreground（시각적 구분만）.\nconst breadcrumbPageVariants = cva(\n  \"font-sans text-sm font-normal text-foreground\",\n);\n\nconst breadcrumbSeparatorVariants = cva(\"flex-row items-center\");\nconst breadcrumbSeparatorTextVariants = cva(\n  \"font-sans text-sm leading-none text-muted-foreground\",\n);\nconst breadcrumbEllipsisVariants = cva(\n  \"h-9 w-9 flex-row items-center justify-center\",\n);\nconst breadcrumbEllipsisTextVariants = cva(\n  \"font-sans text-base leading-none text-muted-foreground\",\n);\n\nexport type BreadcrumbProps = ViewProps;\nexport type BreadcrumbListProps = ViewProps;\nexport type BreadcrumbItemProps = ViewProps;\nexport type BreadcrumbLinkProps = PressableProps;\nexport type BreadcrumbPageProps = TextProps;\nexport type BreadcrumbSeparatorProps = ViewProps;\nexport type BreadcrumbEllipsisProps = ViewProps;\n\nconst Breadcrumb = forwardRef<BridgeViewRef, BreadcrumbProps>(\n  ({ className, ...props }, ref) => (\n    <View\n      ref={ref}\n      accessibilityLabel=\"breadcrumb\"\n      className={className}\n      {...props}\n    />\n  ),\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = forwardRef<BridgeViewRef, BreadcrumbListProps>(\n  ({ className, ...props }, ref) => (\n    <View\n      ref={ref}\n      className={cn(breadcrumbListVariants(), className)}\n      {...props}\n    />\n  ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = forwardRef<BridgeViewRef, BreadcrumbItemProps>(\n  ({ className, ...props }, ref) => (\n    <View\n      ref={ref}\n      className={cn(breadcrumbItemVariants(), className)}\n      {...props}\n    />\n  ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = forwardRef<BridgePressableRef, BreadcrumbLinkProps>(\n  ({ className, children, ...props }, ref) => (\n    <Pressable\n      ref={ref}\n      accessibilityRole=\"link\"\n      className={cn(breadcrumbLinkVariants(), className)}\n      {...props}\n    >\n      <Text className={cn(breadcrumbLinkTextVariants())}>{children}</Text>\n    </Pressable>\n  ),\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = forwardRef<BridgeTextRef, BreadcrumbPageProps>(\n  ({ className, ...props }, ref) => (\n    <Text\n      ref={ref}\n      className={cn(breadcrumbPageVariants(), className)}\n      {...props}\n    />\n  ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\n// 구분 아이콘 — children 미지정 시 기본 ChevronRightIcon.\nconst BreadcrumbSeparator = forwardRef<BridgeViewRef, BreadcrumbSeparatorProps>(\n  ({ className, children, ...props }, ref) => (\n    <View\n      ref={ref}\n      aria-hidden\n      className={cn(breadcrumbSeparatorVariants(), className)}\n      {...props}\n    >\n      {children ?? (\n        <ChevronRightIcon className=\"size-3.5 text-muted-foreground\" />\n      )}\n    </View>\n  ),\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\n// 생략 아이콘 — MoreHorizontalIcon.\nconst BreadcrumbEllipsis = forwardRef<BridgeViewRef, BreadcrumbEllipsisProps>(\n  ({ className, ...props }, ref) => (\n    <View\n      ref={ref}\n      aria-hidden\n      className={cn(breadcrumbEllipsisVariants(), className)}\n      {...props}\n    >\n      <MoreHorizontalIcon className=\"size-4 text-muted-foreground\" />\n    </View>\n  ),\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n  Breadcrumb,\n  BreadcrumbList,\n  BreadcrumbItem,\n  BreadcrumbLink,\n  BreadcrumbPage,\n  BreadcrumbSeparator,\n  BreadcrumbEllipsis,\n  breadcrumbListVariants,\n  breadcrumbItemVariants,\n  breadcrumbLinkVariants,\n  breadcrumbLinkTextVariants,\n  breadcrumbPageVariants,\n  breadcrumbSeparatorVariants,\n  breadcrumbSeparatorTextVariants,\n  breadcrumbEllipsisVariants,\n  breadcrumbEllipsisTextVariants,\n};\n",
      "type": "registry:ui",
      "target": "components/unikit/breadcrumb.tsx"
    }
  ],
  "type": "registry:ui"
}
