{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "primitive",
  "title": "primitive",
  "description": "primitive",
  "dependencies": [
    "react-aria-components",
    "tailwind-merge"
  ],
  "files": [
    {
      "path": "src/lib/primitive.ts",
      "content": "'use client'\n\nimport { composeRenderProps } from 'react-aria-components/composeRenderProps'\nimport { type ClassNameValue, twMerge } from 'tailwind-merge'\n\ntype Render<T> = string | ((v: T) => string) | undefined\n\ntype CxArgs<T> = [...ClassNameValue[], Render<T>] | [[...ClassNameValue[], Render<T>]]\n\nexport function cx<T = unknown>(...args: CxArgs<T>): string | ((v: T) => string) {\n  const flat = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as [\n    ...ClassNameValue[],\n    Render<T>,\n  ]\n\n  const fixed = twMerge(...(flat.slice(0, -1) as ClassNameValue[]))\n\n  return composeRenderProps(flat[flat.length - 1] as Render<T>, (cn) => twMerge(fixed, cn))\n}\n",
      "type": "registry:lib"
    }
  ],
  "type": "registry:lib"
}