{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "utils", "dependencies": [ "clsx", "tailwind-merge" ], "files": [ { "path": "src/lib/utils.ts", "content": "import type * as React from \"react\"\nimport { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/**\n * NOTE: React Aria types `className` as a render prop — a function of the component's own state.\n * The kit expresses state through data attributes instead (`data-selected:`, `data-entering:`), so\n * a consumer never needs the function form, and narrowing it keeps a prop type one term wide.\n */\nexport type Styled
= Omit
& { className?: string }\n\n/** NOTE: the same, for a component whose children are composed rather than rendered from state. */\nexport type Composed
= Omit