{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "empty-state",
  "title": "Empty State",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-react/components/empty-state/empty-state.tsx",
      "content": "import * as React from 'react'\nimport type { LucideIcon } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\nexport interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {\n  /** Lucide icon component rendered above the title. */\n  icon?: LucideIcon\n  title?: string\n  description?: string\n  role?: 'status' | 'alert'\n  headingTag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n}\n\nconst EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n  ({ className, icon: Icon, title, description, role = 'status', headingTag: Heading = 'h3', children, ...props }, ref) => (\n    <div\n      ref={ref}\n      className={cn('flex flex-col items-center py-12 text-center', className)}\n      role={role}\n      aria-live=\"polite\"\n      {...props}\n    >\n      {Icon ? <Icon className=\"text-muted-foreground mx-auto mb-3 size-10\" aria-hidden=\"true\" /> : null}\n      {title ? <Heading className=\"text-foreground font-medium\">{title}</Heading> : null}\n      {description ? <p className=\"text-muted-foreground mt-1 max-w-sm text-sm\">{description}</p> : null}\n      {children}\n    </div>\n  ),\n)\nEmptyState.displayName = 'EmptyState'\n\nexport { EmptyState }\n",
      "type": "registry:ui",
      "target": "~/components/ui/empty-state/empty-state.tsx"
    },
    {
      "path": "packages/registry-react/components/empty-state/index.ts",
      "content": "export { EmptyState, type EmptyStateProps } from './empty-state'\n",
      "type": "registry:ui",
      "target": "~/components/ui/empty-state/index.ts"
    }
  ],
  "dependencies": [
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Centered placeholder with icon, headline, supporting text, and one or two actions. Drop into empty lists, blank dashboards, and unauthenticated views — the standard \"nothing here yet\" pattern.",
  "categories": [
    "feedback"
  ]
}