{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "snapp-landing-skeleton", "title": "Snapp Landing Skeleton", "description": "Accessible loading skeleton for the shared Snapp hero, search, and catalogue-card layout.", "registryDependencies": [ "@snapp/snapp-skeleton", "@snapp/snapp-theme", "@snapp/snapp-utils" ], "files": [ { "path": "registry/radix-nova/components/catalogue/landing-skeleton.tsx", "content": "import { Skeleton, SkeletonGroup } from \"@/components/ui/skeleton\"\nimport { cn } from \"@/lib/utils\"\n\ninterface LandingSkeletonProps\n extends Omit, \"children\"> {\n itemCount?: number\n}\n\nfunction LandingSkeleton({\n \"aria-label\": ariaLabel = \"Loading catalogue\",\n className,\n itemCount = 4,\n ...props\n}: LandingSkeletonProps) {\n const itemKeys = Array.from(\n { length: Math.max(0, itemCount) },\n (_, index) => `landing-skeleton-${index}`,\n )\n\n return (\n \n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n\n
\n {itemKeys.map((key) => (\n \n \n \n
\n ))}\n
\n
\n \n \n\n \n
\n \n )\n}\n\nexport { LandingSkeleton }\nexport type { LandingSkeletonProps }\n", "type": "registry:component", "target": "@components/snapp/catalogue/landing-skeleton.tsx" } ], "type": "registry:component" }