{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "scroll-area",
  "title": "ScrollArea",
  "description": "shadcn/ui(new-york-v4) scroll-area의 유니버설(웹+네이티브 한 벌 소스) 포팅. ScrollView 프리미티브(웹 overflow div / 네이티브 RN ScrollView, ref.scrollTo)를 그대로 소비한다. 수직이 기본이고 horizontal prop으로 가로 축으로 전환한다.",
  "dependencies": [
    "@unikit-bridge/ui"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/scroll-area.tsx",
      "content": "// ScrollArea — shadcn/ui（new-york-v4） scroll-area.tsx 유니버설 포팅 （사이클 40, T-2b）.\n// 원본: shadcn-ref/ui/scroll-area.tsx — radix ScrollArea 엔진을 제거하고 브리지\n// ScrollView 프리미티브（웹 overflow div / 네이티브 RN ScrollView, ref.scrollTo）를\n// 그대로 소비한다. 수직이 기본이고 horizontal prop으로 가로 축으로 전환한다.\n//\n// 포팅 판단（원본 대비 차이）:\n// - 원본의 커스텀 스크롤바（ScrollBarThumb, radix가 스크롤 오프셋뷰포트 크기를\n//   계산해 주는 전제）는 브리지 계약상 재현 불가 — ScrollView의 onScroll이\n//   무인자이고 스크롤 오프셋 읽기 계약이 없다. 판단: 커스텀 바를 포기하고 웹은\n//   브라우저 기본 스크롤바, 네이티브는 OS 스크롤바를 쓴다（표준 동작 유지）.\n// - ScrollBar export는 API 호환을 위해 유지하되 렌더할 것이 없어 null을\n//   반환한다（사용측 코드가 깨지지 않게 하는 셸 — 미사용 권장）.\n// - radix의 Viewport/Corner 내부 구조는 ScrollView 프리미티브가 이미\n//   뷰포트+콘텐츠 컨테이너 이중 구조（contentContainerClassName）로 제공한다.\n// - 원본은 ScrollBar orientation으로 가로 축을 표현했지만, 포팅은 브리지\n//   ScrollView 관행을 따라 ScrollArea 자체의 horizontal prop으로 전환한다.\n// - 원본 뷰포트의 focus-visible 링은 ScrollView 계약에 포커스 개념이 없어\n//   제거했다（스크롤 영역은 포커서블이 아니어도 무방）.\nimport { forwardRef } from \"react\";\nimport {\n  ScrollView,\n  type BridgeScrollViewRef,\n  type BridgeViewRef,\n  type ScrollViewProps,\n  type ViewProps,\n} from \"@unikit-bridge/ui/primitives\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type ScrollAreaProps = ScrollViewProps;\n\nconst ScrollArea = forwardRef<BridgeScrollViewRef, ScrollAreaProps>(\n  ({ className, ...props }, ref) => (\n    <ScrollView\n      ref={ref}\n      className={cn(\"relative\", className)}\n      {...props}\n    />\n  ),\n);\nScrollArea.displayName = \"ScrollArea\";\n\nexport type ScrollBarProps = ViewProps & {\n  /** 원본 호환용 — 포팅에서는 무시된다（위 머리 주석 참조） */\n  orientation?: \"vertical\" | \"horizontal\";\n};\n\n// 커스텀 스크롤바 미지원 셸 — 항상 null을 렌더한다.\nconst ScrollBar = forwardRef<BridgeViewRef, ScrollBarProps>(() => null);\nScrollBar.displayName = \"ScrollBar\";\n\nexport { ScrollArea, ScrollBar };\n",
      "type": "registry:ui",
      "target": "components/ui/scroll-area.tsx"
    }
  ],
  "type": "registry:ui"
}
