{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "shimmer-skeleton",
  "title": "Shimmer Skeleton",
  "description": "A subtle shimmer skeleton for loading cards, lists, and table rows.",
  "dependencies": [
    "motion"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/corr/components/shimmer-skeleton.tsx",
      "content": "\"use client\"\n\nimport { motion, useReducedMotion } from \"motion/react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ShimmerBlock({ className }: { className?: string }) {\n  const reduceMotion = useReducedMotion()\n\n  return (\n    <div\n      className={cn(\"relative overflow-hidden rounded-md bg-muted\", className)}\n    >\n      <motion.div\n        aria-hidden=\"true\"\n        className=\"absolute inset-y-0 -left-1/2 w-1/2 bg-gradient-to-r from-transparent via-background/55 to-transparent\"\n        animate={reduceMotion ? undefined : { x: [\"0%\", \"320%\"] }}\n        transition={{\n          duration: 1.6,\n          ease: \"easeInOut\",\n          repeat: reduceMotion ? 0 : Infinity,\n        }}\n      />\n    </div>\n  )\n}\n\nexport function ShimmerSkeletonBox({ className }: { className?: string }) {\n  return <ShimmerBlock className={className} />\n}\n\nexport function ShimmerSkeleton({\n  lines = 3,\n  avatar = false,\n  className,\n}: {\n  lines?: number\n  avatar?: boolean\n  className?: string\n}) {\n  return (\n    <div className={cn(\"flex w-full gap-3\", className)} aria-hidden=\"true\">\n      {avatar ? (\n        <ShimmerBlock className=\"size-10 shrink-0 rounded-full\" />\n      ) : null}\n      <div className=\"min-w-0 flex-1 space-y-2\">\n        {Array.from({ length: lines }).map((_, index) => (\n          <ShimmerBlock\n            key={index}\n            className={cn(\"h-3\", index === lines - 1 ? \"w-2/3\" : \"w-full\")}\n          />\n        ))}\n      </div>\n    </div>\n  )\n}\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}