{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "icon",
  "title": "Icon",
  "description": "Displays an icon.",
  "registryDependencies": [
    "https://blok.sitecore.com/r/theme.json"
  ],
  "files": [
    {
      "path": "src/components/ui/icon.tsx",
      "content": "import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { SVGProps } from \"react\";\n\nconst iconVariants = cva(\"inline-flex items-center justify-center\", {\n  variants: {\n    variant: {\n      default: \"\",\n      subtle: \"p-1 rounded-md bg-primary-bg\",\n      filled: \"p-1 rounded-md bg-primary-fg text-background\",\n    },\n    colorScheme: {\n      primary: \"text-primary-fg\",\n      neutral: \"text-neutral-fg\",\n      success: \"text-success-fg\",\n      danger: \"text-danger-fg\",\n      warning: \"text-warning-fg\",\n      yellow: \"text-yellow-800 dark:text-yellow-200\",\n      teal: \"text-teal-800 dark:text-teal-200\",\n      cyan: \"text-cyan-800 dark:text-cyan-200\",\n      blue: \"text-blue-800 dark:text-blue-200\",\n      purple: \"text-info-fg\",\n      pink: \"text-pink-800 dark:text-pink-200\",\n    },\n  },\n  compoundVariants: [\n    {\n      variant: \"subtle\",\n      colorScheme: \"primary\",\n      class: \"bg-primary-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"neutral\",\n      class: \"bg-neutral-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"success\",\n      class: \"bg-success-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"danger\",\n      class: \"bg-danger-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"warning\",\n      class: \"bg-warning-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"yellow\",\n      class: \"bg-yellow-100 dark:text-yellow-800\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"teal\",\n      class: \"bg-teal-100 dark:bg-teal-800\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"cyan\",\n      class: \"bg-cyan-100 dark:bg-cyan-800\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"blue\",\n      class: \"bg-blue-100 dark:bg-blue-800\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"purple\",\n      class: \"bg-info-bg\",\n    },\n    {\n      variant: \"subtle\",\n      colorScheme: \"pink\",\n      class: \"bg-pink-100 dark:bg-pink-800\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"primary\",\n      class: \"bg-primary-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"neutral\",\n      class: \"bg-neutral-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"success\",\n      class: \"bg-success-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"danger\",\n      class: \"bg-danger-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"warning\",\n      class: \"bg-warning-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"yellow\",\n      class:\n        \"bg-yellow-800 dark:bg-yellow-200 text-background dark:text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"teal\",\n      class:\n        \"bg-teal-800 dark:bg-teal-200 text-background dark:text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"cyan\",\n      class:\n        \"bg-cyan-800 dark:bg-cyan-200 text-background dark:text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"blue\",\n      class:\n        \"bg-blue-800 dark:bg-blue-200 text-background dark:text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"purple\",\n      class: \"bg-info-fg text-background\",\n    },\n    {\n      variant: \"filled\",\n      colorScheme: \"pink\",\n      class:\n        \"bg-pink-800 dark:bg-pink-200 text-background dark:text-background\",\n    },\n  ],\n  defaultVariants: {\n    variant: \"default\",\n    colorScheme: \"primary\",\n  },\n});\n\nconst iconSize = {\n  default: \"size-6\",\n  sm: \"size-4\",\n  md: \"size-5\",\n  lg: \"size-7\",\n  xl: \"size-9\",\n  xxl: \"size-11\",\n} as const;\n\ntype IconsProps = SVGProps<SVGSVGElement> & {\n  path: string;\n  title?: string;\n  fill?: string;\n  className?: string;\n  size?: keyof typeof iconSize;\n} & VariantProps<typeof iconVariants>;\n\nfunction Icon({\n  path,\n  title,\n  variant,\n  size = \"default\",\n  colorScheme,\n  className,\n  fill = \"currentColor\",\n  ...props\n}: IconsProps) {\n  return (\n    <span className={cn(iconVariants({ variant, colorScheme }), className)}>\n      <svg\n        viewBox=\"0 0 24 24\"\n        aria-label={title}\n        className={iconSize[size]}\n        fill={fill}\n        {...props}\n      >\n        <path d={path} />\n      </svg>\n    </span>\n  );\n}\n\nexport { Icon, iconVariants };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}