{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "page-detail",
  "title": "Page Detail",
  "description": "A detail page with a breadcrumb, sections, labelled facts and optional technical details.",
  "registryDependencies": [
    "@waimakers/description-list",
    "@waimakers/page-header",
    "@waimakers/section",
    "@waimakers/technical-details"
  ],
  "files": [
    {
      "path": "src/components/ui/page-detail.tsx",
      "content": "import type { ReactNode } from \"react\";\nimport {\n  DescriptionDetails,\n  DescriptionItem,\n  DescriptionList,\n  DescriptionTerm,\n} from \"./description-list\";\nimport {\n  PageHeader,\n  PageHeaderActions,\n  PageHeaderBreadcrumb,\n  PageHeaderDescription,\n  PageHeaderTitle,\n} from \"./page-header\";\nimport { Section, SectionHeader, SectionTitle } from \"./section\";\nimport { TechnicalDetails } from \"./technical-details\";\n\nexport interface PageDetailProps {\n  title: string;\n  description?: string;\n  breadcrumb?: ReactNode;\n  actions?: ReactNode;\n  sectionTitle: string;\n  fields: readonly { label: string; value: ReactNode }[];\n  technicalDetails?: ReactNode;\n  technicalDetailsKey?: string;\n  children?: ReactNode;\n}\n\nexport function PageDetail({\n  title,\n  description,\n  breadcrumb,\n  actions,\n  sectionTitle,\n  fields,\n  technicalDetails,\n  technicalDetailsKey,\n  children,\n}: PageDetailProps) {\n  return (\n    <>\n      <PageHeader>\n        {breadcrumb && <PageHeaderBreadcrumb>{breadcrumb}</PageHeaderBreadcrumb>}\n        <PageHeaderTitle>{title}</PageHeaderTitle>\n        {description && <PageHeaderDescription>{description}</PageHeaderDescription>}\n        {actions && <PageHeaderActions>{actions}</PageHeaderActions>}\n      </PageHeader>\n      {fields.length > 0 && (\n        <Section>\n          <SectionHeader>\n            <SectionTitle>{sectionTitle}</SectionTitle>\n          </SectionHeader>\n          <DescriptionList layout=\"grid-2\">\n            {fields.map((field) => (\n              <DescriptionItem key={field.label}>\n                <DescriptionTerm>{field.label}</DescriptionTerm>\n                <DescriptionDetails>{field.value}</DescriptionDetails>\n              </DescriptionItem>\n            ))}\n          </DescriptionList>\n        </Section>\n      )}\n      {children}\n      {technicalDetails && (\n        <TechnicalDetails storageKey={technicalDetailsKey}>{technicalDetails}</TechnicalDetails>\n      )}\n    </>\n  );\n}\n",
      "type": "registry:ui",
      "target": "components/ui/page-detail.tsx"
    }
  ],
  "type": "registry:block"
}