{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "skeleton",
  "title": "Skeleton",
  "description": "Shimmering placeholder; static under reduced motion.",
  "dependencies": [],
  "registryDependencies": [
    "@hjconsult/lib",
    "@hjconsult/styles"
  ],
  "files": [
    {
      "path": "src/components/skeleton/index.tsx",
      "content": "import type { ComponentPropsWithoutRef, Ref } from 'react'\nimport { cn } from '../../lib'\n\nexport interface SkeletonProps extends ComponentPropsWithoutRef<'div'> {\n  shape?: 'rect' | 'circle' | 'text'\n  ref?: Ref<HTMLDivElement>\n}\n\n/**\n * Loading placeholder with a shimmer sweep (static under reduced motion). Size it with\n * `className`; mark the loading container `aria-busy` rather than labelling each skeleton.\n */\nexport function Skeleton({ shape = 'rect', className, ...props }: SkeletonProps) {\n  return (\n    <div\n      aria-hidden=\"true\"\n      className={cn(\n        'hj-skeleton relative isolate overflow-hidden bg-surface-raised',\n        'after:absolute after:inset-0 after:-translate-x-full after:bg-linear-to-r after:from-transparent after:via-glass after:to-transparent',\n        'motion-safe:after:animate-[hj-shimmer_var(--hj-skeleton-duration)_ease-in-out_infinite]',\n        shape === 'circle' && 'rounded-full',\n        shape === 'rect' && 'rounded-lg',\n        shape === 'text' && 'h-[1em] w-full rounded-sm',\n        className,\n      )}\n      {...props}\n    />\n  )\n}\n",
      "type": "registry:ui",
      "target": "hj/components/skeleton/index.tsx"
    }
  ],
  "cssVars": {},
  "type": "registry:ui"
}