{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "utils",
  "type": "registry:lib",
  "title": "Class names",
  "description": "Cn(): clsx plus tailwind-merge, taught Iris UI's theme names.",
  "categories": [
    "foundation"
  ],
  "dependencies": [
    "clsx",
    "tailwind-merge"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "src/lib/utils.ts",
      "content": "import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/** tailwind-merge taught Iris UI's theme names (src/styles/theme.css), so `cn(\"rounded-control\", \"rounded-full\")` keeps the\n *  last radius and `cn(\"text-sm\", \"text-ink\")` keeps both. */\nconst twMerge = extendTailwindMerge({\n  extend: {\n    theme: {\n      radius: [\"chip\", \"control\", \"button\", \"card\", \"panel\", \"window\", \"surface\"],\n      shadow: [\"hairline\", \"btn\", \"inset-field\", \"card\", \"raised\", \"overlay\", \"resting\", \"floating\", \"thumb\"],\n      leading: [\"body\", \"display\"],\n      tracking: [\"body\", \"display\"],\n      ease: [\"enter\", \"standard\", \"exit\", \"spring\", \"out-strong\", \"in-out-strong\", \"link\"],\n      spacing: [\"control-sm\", \"control-md\", \"control-lg\"],\n    },\n    classGroups: {\n      duration: [{ duration: [\"instant\", \"fast\", \"standard\", \"considered\", \"spring\"] }],\n    },\n  },\n});\n\n/** Merge class names, letting later Tailwind classes win over conflicting earlier ones. */\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n",
      "type": "registry:lib",
      "target": "@components/iris/lib/utils.ts"
    }
  ],
  "docs": "Docs and live preview: https://irisui.dev/components/utils",
  "meta": {
    "kind": "lib",
    "docs": "https://irisui.dev/components/utils"
  }
}
