{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "badge",
  "title": "Badge",
  "author": "andongmin94",
  "description": "A compact label for statuses, categories, and metadata.",
  "files": [
    {
      "path": "src/components/ui/badge.tsx",
      "content": "import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n  \"inline-flex items-center justify-center rounded-base border-2 border-border px-2.5 py-0.5 text-xs font-base w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] overflow-hidden\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-main text-main-foreground\",\n        neutral: \"bg-secondary-background text-foreground\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  },\n);\n\nfunction Badge({\n  className,\n  variant,\n  asChild = false,\n  render,\n  children,\n  ...props\n}: React.ComponentProps<\"span\"> &\n  VariantProps<typeof badgeVariants> & {\n    asChild?: boolean;\n    render?: React.ReactElement;\n  }) {\n  const child = asChild\n    ? (React.Children.toArray(children).find(React.isValidElement) as React.ReactElement)\n    : render;\n  const badgeClassName = cn(badgeVariants({ variant }), className);\n\n  if (React.isValidElement(child)) {\n    const childElement = child as React.ReactElement<Record<string, unknown>>;\n\n    return React.cloneElement(childElement, {\n      ...props,\n      ...childElement.props,\n      \"data-slot\": \"badge\",\n      className: cn(badgeClassName, childElement.props.className as string),\n    });\n  }\n\n  return (\n    <span data-slot=\"badge\" className={badgeClassName} {...props}>\n      {children}\n    </span>\n  );\n}\n\nexport { Badge, badgeVariants };\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "data-display",
    "status"
  ],
  "type": "registry:ui"
}