{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "retro-skeleton",
  "title": "RetroSkeleton",
  "description": "A Mac OS 9 styled skeleton loading placeholder with dithered diagonal hatching pattern and optional pulse animation.",
  "registryDependencies": [
    "https://nostalgia-ui.com/r/nostalgia-theme.json"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/retro-skeleton.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface RetroSkeletonProps extends React.ComponentProps<\"div\"> {\n  /** If true, applies a subtle pulse animation (opacity 0.7 to 1.0). Defaults to true. */\n  animate?: boolean\n}\n\nfunction RetroSkeleton(\n  { className, animate = true, children, ...props }: RetroSkeletonProps,\n  ref: React.ForwardedRef<HTMLDivElement>\n) {\n  return (\n    <div\n      ref={ref}\n      className={cn(\n        \"border border-[var(--os9-gray-600)]\",\n        /* Diagonal stripe fill */\n        \"bg-[repeating-linear-gradient(45deg,var(--os9-gray-300),var(--os9-gray-300)_2px,var(--os9-gray-400)_2px,var(--os9-gray-400)_4px)]\",\n        animate && \"retro-skeleton-pulse\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n      {/*\n        Pulse keyframes (kept inline so the component stays self-contained).\n        React 19 hoists this <style> into <head> and dedupes it by `href`, so\n        the skeleton renders as a single element (no stray siblings that\n        break :last-child / space-y-* layouts).\n      */}\n      {animate && (\n        <style href=\"retro-skeleton\" precedence=\"default\">{`\n          @keyframes retro-skeleton-pulse {\n            0%, 100% { opacity: 1; }\n            50% { opacity: 0.7; }\n          }\n          .retro-skeleton-pulse {\n            animation: retro-skeleton-pulse 1.5s ease-in-out infinite;\n          }\n          @media (prefers-reduced-motion: reduce) {\n            .retro-skeleton-pulse { animation: none; }\n          }\n        `}</style>\n      )}\n    </div>\n  )\n}\n\nconst ForwardedRetroSkeleton = React.forwardRef(RetroSkeleton)\nForwardedRetroSkeleton.displayName = \"RetroSkeleton\"\n\nexport { ForwardedRetroSkeleton as RetroSkeleton }\nexport type { RetroSkeletonProps }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}