{"$schema":"https:\/\/ui.particle.academy\/schema\/registry-item.json","name":"cms-page","type":"registry:ui","title":"CmsPage","description":"Renders a published Stages document as a page.","package":"fancy-cms-ui","dependencies":[],"registryDependencies":["document","render"],"files":[{"path":"components\/fancy\/cms-page\/CmsPage.tsx","content":"import { Fragment, type ReactElement } from \"react\";\r\nimport type { PageDoc } from \"..\/document\/types\";\r\nimport { emitDocCss } from \"..\/render\/css\";\r\nimport { RenderNode } from \".\/RenderNode\";\r\nimport { defaultRegistry, type DataContext, type ElementRegistry } from \".\/registry\";\r\n\r\nexport interface CmsPageProps {\r\n  doc: PageDoc;\r\n  registry?: ElementRegistry;\r\n  \/** Data context that `{ $bind: \"\u2026\" }` props + repeaters resolve against. *\/\r\n  data?: DataContext;\r\n  \/** Inject the compiled stylesheet. Set false when the host emits CSS itself. *\/\r\n  includeStyles?: boolean;\r\n}\r\n\r\n\/** Render a full page document: the compiled stylesheet + every section. *\/\r\nexport function CmsPage({\r\n  doc,\r\n  registry = defaultRegistry,\r\n  data,\r\n  includeStyles = true,\r\n}: CmsPageProps): ReactElement {\r\n  return (\r\n    <Fragment>\r\n      {includeStyles ? <style data-cms-styles=\"\">{emitDocCss(doc)}<\/style> : null}\r\n      {doc.sections.map((id) => (\r\n        <RenderNode key={id} doc={doc} id={id} registry={registry} data={data} \/>\r\n      ))}\r\n    <\/Fragment>\r\n  );\r\n}\r\n","type":"registry:ui","target":"components\/fancy\/cms-page\/CmsPage.tsx"}]}