{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "page-header",
  "title": "Page Header",
  "description": "A consistent page header with title, description and actions.",
  "registryDependencies": [
    "@nx-ui/utils"
  ],
  "files": [
    {
      "path": "components/blocks/page-header.tsx",
      "content": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * PageHeader — the standard nx page header: a title with optional description on\n * the left and right-aligned actions, above a divider. Stacks vertically on\n * small screens and sits on one row (actions bottom-aligned) from `sm` up.\n * `children` render beneath the title/description row for anything extra (tabs,\n * filters, a search bar).\n */\nfunction PageHeader({\n  title,\n  description,\n  actions,\n  children,\n  className,\n  ...props\n}: Omit<React.ComponentProps<\"div\">, \"title\"> & {\n  title: React.ReactNode\n  description?: React.ReactNode\n  actions?: React.ReactNode\n}) {\n  return (\n    <div\n      data-slot=\"page-header\"\n      className={cn(\n        \"flex flex-col gap-4 border-b border-border pb-5\",\n        className\n      )}\n      {...props}\n    >\n      <div className=\"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between\">\n        <div className=\"flex flex-col gap-1\">\n          <h1 className=\"text-display-xs font-semibold text-foreground\">\n            {title}\n          </h1>\n          {description ? (\n            <p className=\"text-md text-muted-foreground\">{description}</p>\n          ) : null}\n        </div>\n        {actions ? (\n          <div className=\"flex shrink-0 flex-wrap items-center gap-3\">\n            {actions}\n          </div>\n        ) : null}\n      </div>\n      {children}\n    </div>\n  )\n}\n\nexport { PageHeader }\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:block"
}