{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "skeleton",
  "title": "skeleton",
  "description": "skeleton",
  "dependencies": [
    "tailwind-merge"
  ],
  "files": [
    {
      "path": "src/components/ui/skeleton.tsx",
      "content": "import { twMerge } from 'tailwind-merge'\n\nexport interface SkeletonProps extends React.ComponentProps<'div'> {\n  isLoading?: boolean\n}\n\nexport function Skeleton({ ref, isLoading = false, className, ...props }: SkeletonProps) {\n  return (\n    <div\n      data-slot=\"skeleton\"\n      data-loading={isLoading ? '' : undefined}\n      ref={ref}\n      className={twMerge(\n        isLoading\n          ? [\n              'pointer-events-none',\n              '[&>*>*>:not(:has(*))]:animate-pulse [&>*>*>:not(:has(*))]:select-none [&>*>*>:not(:has(*))]:rounded-lg [&>*>*>:not(:has(*))]:bg-secondary [&>*>*>:not(:has(*))]:text-transparent [&>*>*>:not(:has(*))]:shadow-none [&>*>*>:not(:has(*))]:[-webkit-box-decoration-break:clone] [&>*>*>:not(:has(*))]:[box-decoration-break:clone]',\n              '**:data-[slot=avatar]:animate-pulse **:data-[slot=avatar]:bg-secondary **:data-[slot=avatar]:outline-none [&_[data-slot=avatar]_img]:bg-transparent [&_img]:animate-pulse [&_img]:border-0 [&_img]:bg-secondary [&_img]:text-transparent [&_img]:shadow-none [&_img]:[content-visibility:hidden]',\n              '[&>*>*>*_:not(:has(*)):not(:empty)]:animate-pulse [&>*>*>*_:not(:has(*)):not(:empty)]:select-none [&>*>*>*_:not(:has(*)):not(:empty)]:rounded-md [&>*>*>*_:not(:has(*)):not(:empty)]:bg-secondary [&>*>*>*_:not(:has(*)):not(:empty)]:text-transparent [&>*>*>*_:not(:has(*)):not(:empty)]:shadow-none',\n            ]\n          : 'shrink-0',\n        className\n      )}\n      {...props}\n    />\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}