{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "qr-code",
  "title": "QR Code",
  "description": "A responsive SVG QR code with scan-safe contrast, quiet zones, error correction, accessible labels, and optional logos.",
  "dependencies": [
    "qrcode.react"
  ],
  "files": [
    {
      "path": "registry/rivetui/components/qr-code/qr-code.tsx",
      "content": "\"use client\";\n\nimport { QRCodeSVG } from \"qrcode.react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\ntype QRCodeLogo = {\n  crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n  opacity?: number;\n  size?: number;\n  src: string;\n};\n\ntype QRCodeProps = Omit<\n  React.ComponentProps<typeof QRCodeSVG>,\n  \"bgColor\" | \"fgColor\" | \"imageSettings\" | \"level\" | \"marginSize\" | \"size\"\n> & {\n  background?: string;\n  foreground?: string;\n  level?: \"L\" | \"M\" | \"Q\" | \"H\";\n  logo?: QRCodeLogo;\n  quietZone?: number;\n  size?: number;\n};\n\nconst QRCode = React.forwardRef<SVGSVGElement, QRCodeProps>(function QRCode(\n  {\n    \"aria-label\": ariaLabel,\n    background = \"#FFFFFF\",\n    className,\n    foreground = \"#000000\",\n    level,\n    logo,\n    quietZone = 4,\n    size = 192,\n    style,\n    title,\n    ...props\n  },\n  forwardedRef,\n) {\n  const logoSize = logo\n    ? Math.min(logo.size ?? Math.round(size * 0.18), Math.floor(size * 0.25))\n    : undefined;\n\n  return (\n    <QRCodeSVG\n      ref={forwardedRef}\n      data-slot=\"qr-code\"\n      role=\"img\"\n      aria-label={ariaLabel ?? title ?? \"QR code\"}\n      bgColor={background}\n      fgColor={foreground}\n      level={level ?? (logo ? \"H\" : \"M\")}\n      marginSize={quietZone}\n      size={size}\n      title={title}\n      imageSettings={\n        logo && logoSize\n          ? {\n              src: logo.src,\n              width: logoSize,\n              height: logoSize,\n              excavate: true,\n              opacity: logo.opacity,\n              crossOrigin: logo.crossOrigin,\n            }\n          : undefined\n      }\n      className={cn(\"block shrink-0\", className)}\n      style={{ width: size, height: \"auto\", maxWidth: \"100%\", ...style }}\n      {...props}\n    />\n  );\n});\n\nexport type { QRCodeLogo, QRCodeProps };\nexport { QRCode };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}