{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "badge",
  "type": "registry:ui",
  "title": "Badge",
  "description": "Displays a badge or a component that looks like a badge.",
  "dependencies": [
    "@radix-ui/react-slot",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@joyco/utils"
  ],
  "files": [
    {
      "path": "components/ui/badge.tsx",
      "content": "import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n  'inline-flex items-center justify-center border font-medium 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] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden font-mono uppercase tracking-wide',\n  {\n    variants: {\n      variant: {\n        default:\n          'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n        secondary:\n          'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n        muted:\n          'border-transparent bg-muted text-muted-foreground [a&]:hover:bg-muted/80',\n        accent:\n          'border-transparent bg-accent text-accent-foreground [a&]:hover:bg-accent/80',\n        card: 'border-transparent bg-card text-card-foreground [a&]:hover:bg-card/90',\n        destructive:\n          'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n        outline:\n          'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n        key: 'bg-accent text-accent-foreground border-2 border-b-4',\n      },\n      size: {\n        default: 'px-2.5 py-1 text-xs',\n        sm: 'px-1.5 py-0.5 text-[10px]',\n      },\n      slicedCorners: {\n        true: '[clip-path:polygon(6px_0%,100%_0%,100%_calc(100%-6px),calc(100%-6px)_100%,0%_100%,0%_6px)]',\n        false: '',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n      size: 'default',\n      slicedCorners: true,\n    },\n  }\n)\n\ntype BadgeProps = React.ComponentProps<'span'> & {\n  asChild?: boolean\n} & VariantProps<typeof badgeVariants>\n\nfunction Badge({\n  className,\n  variant,\n  size,\n  slicedCorners,\n  asChild = false,\n  ...props\n}: BadgeProps) {\n  const Comp = asChild ? Slot : 'span'\n\n  return (\n    <Comp\n      data-slot=\"badge\"\n      className={cn(badgeVariants({ variant, size, slicedCorners }), className)}\n      {...props}\n    />\n  )\n}\n\nexport { Badge, badgeVariants }\nexport type { BadgeProps }\n",
      "type": "registry:ui"
    }
  ]
}