{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "brand-tile",
  "title": "Brand Tile",
  "description": "The mark of a known product on a key cap tile, so marks of every shape sit in the same square.",
  "registryDependencies": [
    "https://ui.ndekocode.dev/r/theme.json",
    "https://ui.ndekocode.dev/r/utils.json",
    "https://ui.ndekocode.dev/r/brand-logos.json"
  ],
  "files": [
    {
      "path": "registry/ndeko/ui/brand-tile.tsx",
      "content": "import { BrandLogo, type BrandSlug } from '@/registry/ndeko/lib/brand-logos';\nimport { cn } from '@/registry/ndeko/lib/utils';\n\nexport type BrandTileSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nconst TILE_CLASS: Record<BrandTileSize, string> = {\n  sm: 'size-4 rounded-[4px]',\n  md: 'size-5 rounded-[5px]',\n  lg: 'size-7 rounded-md',\n  xl: 'size-8 rounded-lg',\n  '2xl': 'size-10 rounded-[10px]',\n};\n\nconst MARK_CLASS: Record<BrandTileSize, string> = {\n  sm: 'size-2.5',\n  md: 'size-3',\n  lg: 'size-4',\n  xl: 'size-4',\n  '2xl': 'size-5',\n};\n\ntype BrandTileProps = {\n  brand: BrandSlug;\n  size?: BrandTileSize;\n  /** The accessible name. Without it the tile is decorative, for a row that already names the product. */\n  title?: string;\n  className?: string;\n};\n\n/** The mark of a known product on a key cap tile, so marks of every shape sit in the same square. */\nexport function BrandTile({\n  brand,\n  size = 'md',\n  title,\n  className,\n}: BrandTileProps) {\n  return (\n    <span\n      className={cn(\n        'keycap-3d inline-flex shrink-0 items-center justify-center',\n        TILE_CLASS[size],\n        className\n      )}\n    >\n      <BrandLogo brand={brand} title={title} className={MARK_CLASS[size]} />\n    </span>\n  );\n}\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "primitives",
    "ai"
  ],
  "type": "registry:ui"
}