{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "rich-text",
  "title": "Rich Text",
  "description": "An inline text primitive with a rich gradient surface and configurable color treatment.",
  "dependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/clover-ui/rich-text.tsx",
      "content": "import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type RichTextColor =\n  | \"default\"\n  | \"blue\"\n  | \"purple\"\n  | \"pink\"\n  | \"red\"\n  | \"orange\"\n  | \"yellow\"\n  | \"green\"\n  | \"teal\"\n  | \"cyan\"\n  | \"indigo\"\n  | \"violet\"\n  | \"rose\"\n  | \"amber\"\n  | \"lime\"\n  | \"sky\"\n  | \"slate\"\n  | \"gray\"\n  | \"zinc\"\n  | \"neutral\"\n  | \"stone\"\n  | \"fuchsia\"\n  | \"emerald\"\n  | \"accent\";\n\nexport interface RichTextProps extends React.HTMLAttributes<HTMLSpanElement> {\n  children: React.ReactNode;\n  color?: RichTextColor;\n}\n\nconst colorMap: Record<RichTextColor, string> = {\n  default: \"from-zinc-900 to-zinc-600 dark:from-zinc-100 dark:to-zinc-400\",\n  emerald: \"from-emerald-500 to-emerald-700 dark:from-emerald-300 dark:to-emerald-500\",\n  accent: \"from-[#c4cb00] to-[#7f8400] dark:from-[#f4f98a] dark:to-[#e1e900]\",\n  blue: \"from-blue-500 to-blue-700 dark:from-blue-300 dark:to-blue-500\",\n  purple: \"from-purple-500 to-purple-700 dark:from-purple-300 dark:to-purple-500\",\n  pink: \"from-pink-500 to-pink-700 dark:from-pink-300 dark:to-pink-500\",\n  red: \"from-red-500 to-red-700 dark:from-red-300 dark:to-red-500\",\n  orange: \"from-orange-500 to-orange-700 dark:from-orange-300 dark:to-orange-500\",\n  yellow: \"from-yellow-500 to-yellow-700 dark:from-yellow-300 dark:to-yellow-500\",\n  green: \"from-green-500 to-green-700 dark:from-green-300 dark:to-green-500\",\n  teal: \"from-teal-500 to-teal-700 dark:from-teal-300 dark:to-teal-500\",\n  cyan: \"from-cyan-500 to-cyan-700 dark:from-cyan-300 dark:to-cyan-500\",\n  indigo: \"from-indigo-500 to-indigo-700 dark:from-indigo-300 dark:to-indigo-500\",\n  violet: \"from-violet-500 to-violet-700 dark:from-violet-300 dark:to-violet-500\",\n  rose: \"from-rose-500 to-rose-700 dark:from-rose-300 dark:to-rose-500\",\n  amber: \"from-amber-500 to-amber-700 dark:from-amber-300 dark:to-amber-500\",\n  lime: \"from-lime-500 to-lime-700 dark:from-lime-300 dark:to-lime-500\",\n  sky: \"from-sky-500 to-sky-700 dark:from-sky-300 dark:to-sky-500\",\n  slate: \"from-slate-500 to-slate-700 dark:from-slate-300 dark:to-slate-500\",\n  gray: \"from-gray-500 to-gray-700 dark:from-gray-300 dark:to-gray-500\",\n  zinc: \"from-zinc-500 to-zinc-700 dark:from-zinc-300 dark:to-zinc-500\",\n  neutral: \"from-neutral-500 to-neutral-700 dark:from-neutral-300 dark:to-neutral-500\",\n  stone: \"from-stone-500 to-stone-700 dark:from-stone-300 dark:to-stone-500\",\n  fuchsia: \"from-fuchsia-500 to-fuchsia-700 dark:from-fuchsia-300 dark:to-fuchsia-500\",\n};\n\nconst textShadowMap: Record<RichTextColor, string> = {\n  default: \"[text-shadow:0_1px_0_rgb(255,255,255)] dark:[text-shadow:0_1px_0_rgb(0,0,0)]\",\n  emerald: \"[text-shadow:0_1px_0_var(--color-emerald-800)]\",\n  blue: \"[text-shadow:0_1px_0_var(--color-blue-800)]\",\n  purple: \"[text-shadow:0_1px_0_var(--color-purple-800)]\",\n  pink: \"[text-shadow:0_1px_0_var(--color-pink-800)]\",\n  red: \"[text-shadow:0_1px_0_var(--color-red-800)]\",\n  orange: \"[text-shadow:0_1px_0_var(--color-orange-800)]\",\n  yellow: \"[text-shadow:0_1px_0_var(--color-yellow-800)]\",\n  green: \"[text-shadow:0_1px_0_var(--color-green-800)]\",\n  teal: \"[text-shadow:0_1px_0_var(--color-teal-800)]\",\n  cyan: \"[text-shadow:0_1px_0_var(--color-cyan-800)]\",\n  indigo: \"[text-shadow:0_1px_0_var(--color-indigo-800)]\",\n  violet: \"[text-shadow:0_1px_0_var(--color-violet-800)]\",\n  rose: \"[text-shadow:0_1px_0_var(--color-rose-800)]\",\n  amber: \"[text-shadow:0_1px_0_var(--color-amber-800)]\",\n  lime: \"[text-shadow:0_1px_0_var(--color-lime-800)]\",\n  sky: \"[text-shadow:0_1px_0_var(--color-sky-800)]\",\n  slate: \"[text-shadow:0_1px_0_var(--color-slate-800)]\",\n  gray: \"[text-shadow:0_1px_0_var(--color-gray-800)]\",\n  zinc: \"[text-shadow:0_1px_0_var(--color-zinc-800)]\",\n  neutral: \"[text-shadow:0_1px_0_var(--color-neutral-800)]\",\n  stone: \"[text-shadow:0_1px_0_var(--color-stone-800)]\",\n  fuchsia: \"[text-shadow:0_1px_0_var(--color-fuchsia-800)]\",\n  accent: \"[text-shadow:0_1px_0_#5c6000]\",\n};\n\nfunction RichText({ children, color = \"default\", className, ...props }: RichTextProps) {\n  return (\n    <span\n      className={cn(\n        \"inline-block bg-linear-to-b bg-clip-text font-semibold text-transparent\",\n        colorMap[color],\n        textShadowMap[color],\n        className,\n      )}\n      {...props}\n    >\n      {children}\n    </span>\n  );\n}\n\nRichText.displayName = \"RichText\";\n\nexport { RichText };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}