{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"shimmer","type":"registry:ui","title":"Shimmer","description":"Text with a band of light sweeping across it, for loading and thinking states.","dependencies":["motion@^14.0.0"],"files":[{"path":"components/ui/shimmer.tsx","type":"registry:ui","content":"\"use client\";\n\nimport { motion, useReducedMotion } from \"motion/react\";\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Shimmer({ className, duration = 2, ...props }: React.ComponentProps<\"span\"> & { duration?: number }) {\n  const reduceMotion = useReducedMotion();\n\n  if (reduceMotion) {\n    return <span data-slot=\"shimmer\" className={cn(\"text-muted-foreground\", className)} {...props} />;\n  }\n\n  return (\n    <motion.span\n      data-slot=\"shimmer\"\n      initial={{ backgroundPosition: \"100% center\" }}\n      animate={{ backgroundPosition: \"0% center\" }}\n      transition={{ repeat: Infinity, duration, ease: \"linear\" }}\n      className={cn(\n        \"inline-block bg-size-[250%_100%] bg-clip-text bg-no-repeat text-transparent\",\n        \"[background-image:linear-gradient(90deg,transparent_calc(50%-3rem),var(--foreground),transparent_calc(50%+3rem)),linear-gradient(var(--muted-foreground),var(--muted-foreground))]\",\n        className,\n      )}\n      {...(props as React.ComponentProps<typeof motion.span>)}\n    />\n  );\n}\n\nexport { Shimmer };\n"}]}