{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "kbd",
  "title": "Kbd",
  "description": "키보드 키 표시 — Kbd + KbdGroup(묶음). 원본 토큰 유지, 이중 지정(View+Text).",
  "dependencies": [
    "@unikit-bridge/ui",
    "class-variance-authority",
    "clsx",
    "tailwind-merge",
    "tailwindcss"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/kbd.tsx",
      "content": "// Kbd — shadcn/ui new-york-v4 kbd 포팅（shadcn-ref/ui/kbd.tsx）. Kbd·KbdGroup 2종.\n// 포팅 판단:\n// - <kbd> 요소는 브리지 계약에 없어 View（배경·크기） + 내부 Text（글자）의\n//   이중 지정으로 재현한다. children은 문자열（\"⌘\", \"Ctrl\", \"K\" 등）을 권장한다.\n// - 원본의 svg·tooltip 연동 셀렉터（［&_svg］·［［data-slot=tooltip-content］_&］）는\n//   아이콘·툴팁 미지원 포팅이라 소실.\n// - pointer-events-none·select-none은 웹 전용 접두. KbdGroup의 원본이 <div>가\n//   아니라 <kbd>를 다시 쓰는 업스트림 특성은 View로 정리했다.\nimport { forwardRef } from \"react\";\nimport {\n  Text,\n  View,\n  type BridgeViewRef,\n  type ViewProps,\n} from \"@unikit-bridge/ui/primitives\";\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\n// View（컨테이너） — 원본 토큰 그대로（h-5 min-w-5 px-1 rounded-sm bg-muted）.\nconst kbdVariants = cva(\n  \"flex-row h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 web:pointer-events-none web:select-none\",\n);\n\n// 내부 Text\nconst kbdTextVariants = cva(\n  \"font-sans text-xs font-medium text-muted-foreground\",\n);\n\n// 키 조합 그룹 — Kbd 여러 개를 묶는 인라인 컨테이너（원본 inline-flex gap-1）.\n// w-fit은 uniwind 미지원 — tabs.tsx와 동일하게 self-start（교차축 시작 정렬로\n// 내용 폭 수축）로 치환해 양쪽 플랫폼 폭을 맞춘다（M-2）.\nconst kbdGroupVariants = cva(\"flex-row self-start items-center gap-1\");\n\nexport type KbdProps = ViewProps;\nexport type KbdGroupProps = ViewProps;\n\nconst Kbd = forwardRef<BridgeViewRef, KbdProps>(\n  ({ className, children, ...props }, ref) => (\n    <View\n      ref={ref}\n      className={cn(kbdVariants(), className)}\n      {...props}\n    >\n      <Text className={cn(kbdTextVariants())}>{children}</Text>\n    </View>\n  ),\n);\nKbd.displayName = \"Kbd\";\n\nconst KbdGroup = forwardRef<BridgeViewRef, KbdGroupProps>(\n  ({ className, ...props }, ref) => (\n    <View\n      ref={ref}\n      className={cn(kbdGroupVariants(), className)}\n      {...props}\n    />\n  ),\n);\nKbdGroup.displayName = \"KbdGroup\";\n\nexport { Kbd, KbdGroup, kbdVariants, kbdTextVariants, kbdGroupVariants };\n",
      "type": "registry:ui",
      "target": "components/unikit/kbd.tsx"
    }
  ],
  "type": "registry:ui"
}
