{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "empty-state",
  "title": "Empty State",
  "description": "What an empty list or page says: a title, one line on what goes here, and one action.",
  "registryDependencies": [
    "https://sproutboat.com/ikada/r/theme.json",
    "https://sproutboat.com/ikada/r/cn.json"
  ],
  "files": [
    {
      "path": "registry/ikada/ui/empty-state.tsx",
      "content": "\"use client\";\n\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { cn } from \"@/components/ikada/lib/cn\";\n\nexport interface EmptyStateProps extends Omit<ComponentProps<\"div\">, \"title\"> {\n  /** Icon above the title, drawn on a soft tile. */\n  icon?: ReactNode;\n  /** What is empty, as a short heading. */\n  title: ReactNode;\n  /** One line: what this list will hold or what to do next. */\n  description?: ReactNode;\n  /** One action. A second one means the empty state is saying too much. */\n  action?: ReactNode;\n  /** Heading level of the title. */\n  as?: \"h2\" | \"h3\" | \"h4\";\n}\n\n/** What an empty list or page says: a title, one line on what goes here, and one action. */\nexport function EmptyState({\n  icon,\n  title,\n  description,\n  action,\n  as: Heading = \"h3\",\n  className,\n  ref,\n  ...props\n}: EmptyStateProps) {\n  return (\n    <div\n      data-slot=\"empty-state\"\n      ref={ref}\n      className={cn(\"mx-auto flex max-w-sm flex-col items-center gap-3 px-4 py-8 text-center\", className)}\n      {...props}\n    >\n      {icon ? (\n        <span\n          aria-hidden=\"true\"\n          className=\"grid size-10 place-items-center rounded-lg bg-well text-fg-muted [&>svg]:size-5\"\n        >\n          {icon}\n        </span>\n      ) : null}\n      <div className=\"flex flex-col gap-1\">\n        <Heading className=\"text-balance break-words text-sb-md font-semibold\">{title}</Heading>\n        {description ? <p className=\"break-words text-pretty text-sb-base text-fg-muted\">{description}</p> : null}\n      </div>\n      {action ? <div className=\"mt-1\">{action}</div> : null}\n    </div>\n  );\n}\n",
      "type": "registry:ui",
      "target": "@components/ikada/empty-state.tsx"
    }
  ],
  "categories": [
    "feedback",
    "data-display"
  ],
  "type": "registry:ui"
}