@prenta/admin 0.98.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/AdminRoot.d.ts.map +1 -1
  3. package/dist/AdminRoot.js +22 -84
  4. package/dist/AdminRoot.js.map +1 -1
  5. package/dist/__tests__/components/breakpoint-controls.render.test.js +4 -4
  6. package/dist/__tests__/components/breakpoint-controls.render.test.js.map +1 -1
  7. package/dist/__tests__/components/seo-score-bands.test.js +0 -3
  8. package/dist/__tests__/components/seo-score-bands.test.js.map +1 -1
  9. package/dist/__tests__/layout/sidebar-posts.test.js +6 -11
  10. package/dist/__tests__/layout/sidebar-posts.test.js.map +1 -1
  11. package/dist/__tests__/layout/sidebar-submenu.render.test.js +3 -2
  12. package/dist/__tests__/layout/sidebar-submenu.render.test.js.map +1 -1
  13. package/dist/__tests__/lib/open-public-site-tab.test.d.ts +2 -0
  14. package/dist/__tests__/lib/open-public-site-tab.test.d.ts.map +1 -0
  15. package/dist/__tests__/lib/open-public-site-tab.test.js +64 -0
  16. package/dist/__tests__/lib/open-public-site-tab.test.js.map +1 -0
  17. package/dist/__tests__/lib/page-editor-service-api.test.js +26 -23
  18. package/dist/__tests__/lib/page-editor-service-api.test.js.map +1 -1
  19. package/dist/__tests__/lib/view-site-chrome.test.d.ts +2 -0
  20. package/dist/__tests__/lib/view-site-chrome.test.d.ts.map +1 -0
  21. package/dist/__tests__/lib/view-site-chrome.test.js +59 -0
  22. package/dist/__tests__/lib/view-site-chrome.test.js.map +1 -0
  23. package/dist/__tests__/router/admin-routes.test.js +4 -0
  24. package/dist/__tests__/router/admin-routes.test.js.map +1 -1
  25. package/dist/__tests__/views/canvas-surface-shared.test.js +0 -16
  26. package/dist/__tests__/views/canvas-surface-shared.test.js.map +1 -1
  27. package/dist/__tests__/views/editor-top-bar.render.test.js +44 -22
  28. package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
  29. package/dist/__tests__/views/page-section-editor.test.js +30 -10
  30. package/dist/__tests__/views/page-section-editor.test.js.map +1 -1
  31. package/dist/__tests__/views/page-tab.render.test.js +0 -1
  32. package/dist/__tests__/views/page-tab.render.test.js.map +1 -1
  33. package/dist/__tests__/views/post-section-editor.test.js +23 -0
  34. package/dist/__tests__/views/post-section-editor.test.js.map +1 -1
  35. package/dist/components/BreakpointPicker.d.ts +3 -2
  36. package/dist/components/BreakpointPicker.d.ts.map +1 -1
  37. package/dist/components/BreakpointPicker.js +5 -3
  38. package/dist/components/BreakpointPicker.js.map +1 -1
  39. package/dist/components/CanvasEditTip.js +1 -1
  40. package/dist/components/CanvasEditTip.js.map +1 -1
  41. package/dist/index.d.ts +1 -4
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/layout/Sidebar.d.ts +3 -4
  46. package/dist/layout/Sidebar.d.ts.map +1 -1
  47. package/dist/layout/Sidebar.js +7 -38
  48. package/dist/layout/Sidebar.js.map +1 -1
  49. package/dist/lib/editor-preview.d.ts +4 -1
  50. package/dist/lib/editor-preview.d.ts.map +1 -1
  51. package/dist/lib/editor-preview.js +4 -1
  52. package/dist/lib/editor-preview.js.map +1 -1
  53. package/dist/lib/open-public-site-tab.d.ts +14 -0
  54. package/dist/lib/open-public-site-tab.d.ts.map +1 -0
  55. package/dist/lib/open-public-site-tab.js +46 -0
  56. package/dist/lib/open-public-site-tab.js.map +1 -0
  57. package/dist/lib/page-editor-service.d.ts +0 -7
  58. package/dist/lib/page-editor-service.d.ts.map +1 -1
  59. package/dist/lib/page-editor-service.js +9 -9
  60. package/dist/lib/page-editor-service.js.map +1 -1
  61. package/dist/lib/view-site-chrome.d.ts +16 -0
  62. package/dist/lib/view-site-chrome.d.ts.map +1 -0
  63. package/dist/lib/view-site-chrome.js +15 -0
  64. package/dist/lib/view-site-chrome.js.map +1 -0
  65. package/dist/prenta-admin.css +1 -1
  66. package/dist/router/admin-routes.d.ts.map +1 -1
  67. package/dist/router/admin-routes.js +0 -2
  68. package/dist/router/admin-routes.js.map +1 -1
  69. package/dist/views/PageEditor.d.ts +2 -2
  70. package/dist/views/PageEditor.js +2 -2
  71. package/dist/views/page-editor/EditorCanvas.d.ts +1 -2
  72. package/dist/views/page-editor/EditorCanvas.d.ts.map +1 -1
  73. package/dist/views/page-editor/EditorCanvas.js +2 -2
  74. package/dist/views/page-editor/EditorCanvas.js.map +1 -1
  75. package/dist/views/page-editor/EditorTopBar.d.ts +13 -17
  76. package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
  77. package/dist/views/page-editor/EditorTopBar.js +19 -21
  78. package/dist/views/page-editor/EditorTopBar.js.map +1 -1
  79. package/dist/views/page-editor/PageSectionEditor.d.ts +1 -7
  80. package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
  81. package/dist/views/page-editor/PageSectionEditor.js +38 -110
  82. package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
  83. package/dist/views/page-editor/StructureNotice.d.ts +2 -5
  84. package/dist/views/page-editor/StructureNotice.d.ts.map +1 -1
  85. package/dist/views/page-editor/StructureNotice.js +6 -10
  86. package/dist/views/page-editor/StructureNotice.js.map +1 -1
  87. package/dist/views/post-editor/PostEditorCanvas.d.ts +1 -3
  88. package/dist/views/post-editor/PostEditorCanvas.d.ts.map +1 -1
  89. package/dist/views/post-editor/PostEditorCanvas.js +3 -3
  90. package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
  91. package/dist/views/post-editor/PostSectionEditor.d.ts +1 -15
  92. package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
  93. package/dist/views/post-editor/PostSectionEditor.js +30 -88
  94. package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
  95. package/package.json +3 -3
  96. package/src/AdminRoot.tsx +18 -138
  97. package/src/__tests__/components/breakpoint-controls.render.test.tsx +6 -4
  98. package/src/__tests__/components/seo-score-bands.test.ts +0 -3
  99. package/src/__tests__/layout/sidebar-posts.test.ts +6 -11
  100. package/src/__tests__/layout/sidebar-submenu.render.test.tsx +3 -2
  101. package/src/__tests__/lib/open-public-site-tab.test.ts +74 -0
  102. package/src/__tests__/lib/page-editor-service-api.test.ts +27 -25
  103. package/src/__tests__/lib/view-site-chrome.test.ts +65 -0
  104. package/src/__tests__/router/admin-routes.test.ts +5 -0
  105. package/src/__tests__/views/canvas-surface-shared.test.ts +0 -19
  106. package/src/__tests__/views/editor-top-bar.render.test.tsx +85 -22
  107. package/src/__tests__/views/page-section-editor.test.tsx +42 -10
  108. package/src/__tests__/views/page-tab.render.test.tsx +0 -1
  109. package/src/__tests__/views/post-section-editor.test.tsx +35 -0
  110. package/src/components/BreakpointPicker.tsx +6 -3
  111. package/src/components/CanvasEditTip.tsx +2 -2
  112. package/src/index.ts +1 -11
  113. package/src/layout/Sidebar.tsx +6 -41
  114. package/src/lib/editor-preview.ts +4 -1
  115. package/src/lib/open-public-site-tab.ts +57 -0
  116. package/src/lib/page-editor-service.ts +9 -16
  117. package/src/lib/view-site-chrome.ts +34 -0
  118. package/src/router/admin-routes.ts +0 -2
  119. package/src/styles/theme.css +4 -4
  120. package/src/views/PageEditor.tsx +2 -2
  121. package/src/views/page-editor/EditorCanvas.tsx +1 -6
  122. package/src/views/page-editor/EditorTopBar.tsx +81 -82
  123. package/src/views/page-editor/PageSectionEditor.tsx +85 -194
  124. package/src/views/page-editor/StructureNotice.tsx +7 -42
  125. package/src/views/post-editor/PostEditorCanvas.tsx +2 -8
  126. package/src/views/post-editor/PostSectionEditor.tsx +66 -138
  127. package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts +0 -2
  128. package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts.map +0 -1
  129. package/dist/__tests__/views/page-builder-block-renderer.render.test.js +0 -48
  130. package/dist/__tests__/views/page-builder-block-renderer.render.test.js.map +0 -1
  131. package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts +0 -2
  132. package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts.map +0 -1
  133. package/dist/__tests__/views/page-builder-form-picker.render.test.js +0 -44
  134. package/dist/__tests__/views/page-builder-form-picker.render.test.js.map +0 -1
  135. package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts +0 -2
  136. package/dist/__tests__/views/page-builder-sections-panel.render.test.d.ts.map +0 -1
  137. package/dist/__tests__/views/page-builder-sections-panel.render.test.js +0 -121
  138. package/dist/__tests__/views/page-builder-sections-panel.render.test.js.map +0 -1
  139. package/dist/__tests__/views/page-builder-seo-panel.render.test.d.ts +0 -2
  140. package/dist/__tests__/views/page-builder-seo-panel.render.test.d.ts.map +0 -1
  141. package/dist/__tests__/views/page-builder-seo-panel.render.test.js +0 -65
  142. package/dist/__tests__/views/page-builder-seo-panel.render.test.js.map +0 -1
  143. package/dist/__tests__/views/page-builder-template-seed.render.test.d.ts +0 -2
  144. package/dist/__tests__/views/page-builder-template-seed.render.test.d.ts.map +0 -1
  145. package/dist/__tests__/views/page-builder-template-seed.render.test.js +0 -48
  146. package/dist/__tests__/views/page-builder-template-seed.render.test.js.map +0 -1
  147. package/dist/__tests__/views/page-templates.render.test.d.ts +0 -2
  148. package/dist/__tests__/views/page-templates.render.test.d.ts.map +0 -1
  149. package/dist/__tests__/views/page-templates.render.test.js +0 -126
  150. package/dist/__tests__/views/page-templates.render.test.js.map +0 -1
  151. package/dist/__tests__/views/use-site-preview.render.test.d.ts +0 -2
  152. package/dist/__tests__/views/use-site-preview.render.test.d.ts.map +0 -1
  153. package/dist/__tests__/views/use-site-preview.render.test.js +0 -120
  154. package/dist/__tests__/views/use-site-preview.render.test.js.map +0 -1
  155. package/dist/hooks/useBuilderState.d.ts +0 -49
  156. package/dist/hooks/useBuilderState.d.ts.map +0 -1
  157. package/dist/hooks/useBuilderState.js +0 -238
  158. package/dist/hooks/useBuilderState.js.map +0 -1
  159. package/dist/views/page-builder/AIBlockAssist.d.ts +0 -9
  160. package/dist/views/page-builder/AIBlockAssist.d.ts.map +0 -1
  161. package/dist/views/page-builder/AIBlockAssist.js +0 -40
  162. package/dist/views/page-builder/AIBlockAssist.js.map +0 -1
  163. package/dist/views/page-builder/AIGenerateDialog.d.ts +0 -8
  164. package/dist/views/page-builder/AIGenerateDialog.d.ts.map +0 -1
  165. package/dist/views/page-builder/AIGenerateDialog.js +0 -173
  166. package/dist/views/page-builder/AIGenerateDialog.js.map +0 -1
  167. package/dist/views/page-builder/BlockEditor.d.ts +0 -11
  168. package/dist/views/page-builder/BlockEditor.d.ts.map +0 -1
  169. package/dist/views/page-builder/BlockEditor.js +0 -159
  170. package/dist/views/page-builder/BlockEditor.js.map +0 -1
  171. package/dist/views/page-builder/BlockPicker.d.ts +0 -7
  172. package/dist/views/page-builder/BlockPicker.d.ts.map +0 -1
  173. package/dist/views/page-builder/BlockPicker.js +0 -103
  174. package/dist/views/page-builder/BlockPicker.js.map +0 -1
  175. package/dist/views/page-builder/BottomBar.d.ts +0 -9
  176. package/dist/views/page-builder/BottomBar.d.ts.map +0 -1
  177. package/dist/views/page-builder/BottomBar.js +0 -13
  178. package/dist/views/page-builder/BottomBar.js.map +0 -1
  179. package/dist/views/page-builder/BuilderSectionsPanel.d.ts +0 -20
  180. package/dist/views/page-builder/BuilderSectionsPanel.d.ts.map +0 -1
  181. package/dist/views/page-builder/BuilderSectionsPanel.js +0 -105
  182. package/dist/views/page-builder/BuilderSectionsPanel.js.map +0 -1
  183. package/dist/views/page-builder/BuilderToolbar.d.ts +0 -21
  184. package/dist/views/page-builder/BuilderToolbar.d.ts.map +0 -1
  185. package/dist/views/page-builder/BuilderToolbar.js +0 -18
  186. package/dist/views/page-builder/BuilderToolbar.js.map +0 -1
  187. package/dist/views/page-builder/ContextPanel.d.ts +0 -20
  188. package/dist/views/page-builder/ContextPanel.d.ts.map +0 -1
  189. package/dist/views/page-builder/ContextPanel.js +0 -43
  190. package/dist/views/page-builder/ContextPanel.js.map +0 -1
  191. package/dist/views/page-builder/DesignScore.d.ts +0 -6
  192. package/dist/views/page-builder/DesignScore.d.ts.map +0 -1
  193. package/dist/views/page-builder/DesignScore.js +0 -93
  194. package/dist/views/page-builder/DesignScore.js.map +0 -1
  195. package/dist/views/page-builder/NodeSettings.d.ts +0 -12
  196. package/dist/views/page-builder/NodeSettings.d.ts.map +0 -1
  197. package/dist/views/page-builder/NodeSettings.js +0 -80
  198. package/dist/views/page-builder/NodeSettings.js.map +0 -1
  199. package/dist/views/page-builder/PageBuilder.d.ts +0 -10
  200. package/dist/views/page-builder/PageBuilder.d.ts.map +0 -1
  201. package/dist/views/page-builder/PageBuilder.js +0 -222
  202. package/dist/views/page-builder/PageBuilder.js.map +0 -1
  203. package/dist/views/page-builder/PageSettings.d.ts +0 -7
  204. package/dist/views/page-builder/PageSettings.d.ts.map +0 -1
  205. package/dist/views/page-builder/PageSettings.js +0 -27
  206. package/dist/views/page-builder/PageSettings.js.map +0 -1
  207. package/dist/views/page-builder/PageTemplates.d.ts +0 -5
  208. package/dist/views/page-builder/PageTemplates.d.ts.map +0 -1
  209. package/dist/views/page-builder/PageTemplates.js +0 -146
  210. package/dist/views/page-builder/PageTemplates.js.map +0 -1
  211. package/dist/views/page-builder/RelationshipField.d.ts +0 -15
  212. package/dist/views/page-builder/RelationshipField.d.ts.map +0 -1
  213. package/dist/views/page-builder/RelationshipField.js +0 -65
  214. package/dist/views/page-builder/RelationshipField.js.map +0 -1
  215. package/dist/views/page-builder/SEOPanel.d.ts +0 -9
  216. package/dist/views/page-builder/SEOPanel.d.ts.map +0 -1
  217. package/dist/views/page-builder/SEOPanel.js +0 -38
  218. package/dist/views/page-builder/SEOPanel.js.map +0 -1
  219. package/dist/views/page-builder/SavedSections.d.ts +0 -6
  220. package/dist/views/page-builder/SavedSections.d.ts.map +0 -1
  221. package/dist/views/page-builder/SavedSections.js +0 -141
  222. package/dist/views/page-builder/SavedSections.js.map +0 -1
  223. package/dist/views/page-builder/TemplatePicker.d.ts +0 -7
  224. package/dist/views/page-builder/TemplatePicker.d.ts.map +0 -1
  225. package/dist/views/page-builder/TemplatePicker.js +0 -68
  226. package/dist/views/page-builder/TemplatePicker.js.map +0 -1
  227. package/dist/views/page-builder/Widgets.d.ts +0 -13
  228. package/dist/views/page-builder/Widgets.d.ts.map +0 -1
  229. package/dist/views/page-builder/Widgets.js +0 -15
  230. package/dist/views/page-builder/Widgets.js.map +0 -1
  231. package/dist/views/page-builder/block-renderers/CTAPreview.d.ts +0 -3
  232. package/dist/views/page-builder/block-renderers/CTAPreview.d.ts.map +0 -1
  233. package/dist/views/page-builder/block-renderers/CTAPreview.js +0 -19
  234. package/dist/views/page-builder/block-renderers/CTAPreview.js.map +0 -1
  235. package/dist/views/page-builder/block-renderers/CardsPreview.d.ts +0 -3
  236. package/dist/views/page-builder/block-renderers/CardsPreview.d.ts.map +0 -1
  237. package/dist/views/page-builder/block-renderers/CardsPreview.js +0 -22
  238. package/dist/views/page-builder/block-renderers/CardsPreview.js.map +0 -1
  239. package/dist/views/page-builder/block-renderers/CodePreview.d.ts +0 -3
  240. package/dist/views/page-builder/block-renderers/CodePreview.d.ts.map +0 -1
  241. package/dist/views/page-builder/block-renderers/CodePreview.js +0 -12
  242. package/dist/views/page-builder/block-renderers/CodePreview.js.map +0 -1
  243. package/dist/views/page-builder/block-renderers/FAQPreview.d.ts +0 -3
  244. package/dist/views/page-builder/block-renderers/FAQPreview.d.ts.map +0 -1
  245. package/dist/views/page-builder/block-renderers/FAQPreview.js +0 -27
  246. package/dist/views/page-builder/block-renderers/FAQPreview.js.map +0 -1
  247. package/dist/views/page-builder/block-renderers/FallbackPreview.d.ts +0 -6
  248. package/dist/views/page-builder/block-renderers/FallbackPreview.d.ts.map +0 -1
  249. package/dist/views/page-builder/block-renderers/FallbackPreview.js +0 -7
  250. package/dist/views/page-builder/block-renderers/FallbackPreview.js.map +0 -1
  251. package/dist/views/page-builder/block-renderers/FormPreview.d.ts +0 -9
  252. package/dist/views/page-builder/block-renderers/FormPreview.d.ts.map +0 -1
  253. package/dist/views/page-builder/block-renderers/FormPreview.js +0 -52
  254. package/dist/views/page-builder/block-renderers/FormPreview.js.map +0 -1
  255. package/dist/views/page-builder/block-renderers/GalleryPreview.d.ts +0 -3
  256. package/dist/views/page-builder/block-renderers/GalleryPreview.d.ts.map +0 -1
  257. package/dist/views/page-builder/block-renderers/GalleryPreview.js +0 -19
  258. package/dist/views/page-builder/block-renderers/GalleryPreview.js.map +0 -1
  259. package/dist/views/page-builder/block-renderers/HeroPreview.d.ts +0 -3
  260. package/dist/views/page-builder/block-renderers/HeroPreview.d.ts.map +0 -1
  261. package/dist/views/page-builder/block-renderers/HeroPreview.js +0 -19
  262. package/dist/views/page-builder/block-renderers/HeroPreview.js.map +0 -1
  263. package/dist/views/page-builder/block-renderers/ImagePreview.d.ts +0 -3
  264. package/dist/views/page-builder/block-renderers/ImagePreview.d.ts.map +0 -1
  265. package/dist/views/page-builder/block-renderers/ImagePreview.js +0 -17
  266. package/dist/views/page-builder/block-renderers/ImagePreview.js.map +0 -1
  267. package/dist/views/page-builder/block-renderers/TextPreview.d.ts +0 -3
  268. package/dist/views/page-builder/block-renderers/TextPreview.d.ts.map +0 -1
  269. package/dist/views/page-builder/block-renderers/TextPreview.js +0 -22
  270. package/dist/views/page-builder/block-renderers/TextPreview.js.map +0 -1
  271. package/dist/views/page-builder/block-renderers/VideoPreview.d.ts +0 -3
  272. package/dist/views/page-builder/block-renderers/VideoPreview.d.ts.map +0 -1
  273. package/dist/views/page-builder/block-renderers/VideoPreview.js +0 -18
  274. package/dist/views/page-builder/block-renderers/VideoPreview.js.map +0 -1
  275. package/dist/views/page-builder/block-renderers/index.d.ts +0 -9
  276. package/dist/views/page-builder/block-renderers/index.d.ts.map +0 -1
  277. package/dist/views/page-builder/block-renderers/index.js +0 -25
  278. package/dist/views/page-builder/block-renderers/index.js.map +0 -1
  279. package/dist/views/page-builder/canvas/BlockRenderer.d.ts +0 -8
  280. package/dist/views/page-builder/canvas/BlockRenderer.d.ts.map +0 -1
  281. package/dist/views/page-builder/canvas/BlockRenderer.js +0 -20
  282. package/dist/views/page-builder/canvas/BlockRenderer.js.map +0 -1
  283. package/dist/views/page-builder/canvas/BuilderCanvas.d.ts +0 -10
  284. package/dist/views/page-builder/canvas/BuilderCanvas.d.ts.map +0 -1
  285. package/dist/views/page-builder/canvas/BuilderCanvas.js +0 -26
  286. package/dist/views/page-builder/canvas/BuilderCanvas.js.map +0 -1
  287. package/dist/views/page-builder/canvas/ColumnRenderer.d.ts +0 -8
  288. package/dist/views/page-builder/canvas/ColumnRenderer.d.ts.map +0 -1
  289. package/dist/views/page-builder/canvas/ColumnRenderer.js +0 -32
  290. package/dist/views/page-builder/canvas/ColumnRenderer.js.map +0 -1
  291. package/dist/views/page-builder/canvas/ContainerRenderer.d.ts +0 -8
  292. package/dist/views/page-builder/canvas/ContainerRenderer.d.ts.map +0 -1
  293. package/dist/views/page-builder/canvas/ContainerRenderer.js +0 -29
  294. package/dist/views/page-builder/canvas/ContainerRenderer.js.map +0 -1
  295. package/dist/views/page-builder/canvas/RowRenderer.d.ts +0 -8
  296. package/dist/views/page-builder/canvas/RowRenderer.d.ts.map +0 -1
  297. package/dist/views/page-builder/canvas/RowRenderer.js +0 -28
  298. package/dist/views/page-builder/canvas/RowRenderer.js.map +0 -1
  299. package/dist/views/page-builder/canvas/SectionRenderer.d.ts +0 -8
  300. package/dist/views/page-builder/canvas/SectionRenderer.d.ts.map +0 -1
  301. package/dist/views/page-builder/canvas/SectionRenderer.js +0 -50
  302. package/dist/views/page-builder/canvas/SectionRenderer.js.map +0 -1
  303. package/dist/views/page-builder/canvas/index.d.ts +0 -3
  304. package/dist/views/page-builder/canvas/index.d.ts.map +0 -1
  305. package/dist/views/page-builder/canvas/index.js +0 -2
  306. package/dist/views/page-builder/canvas/index.js.map +0 -1
  307. package/dist/views/page-editor/PagePreview.d.ts +0 -13
  308. package/dist/views/page-editor/PagePreview.d.ts.map +0 -1
  309. package/dist/views/page-editor/PagePreview.js +0 -46
  310. package/dist/views/page-editor/PagePreview.js.map +0 -1
  311. package/dist/views/page-editor/SitePreviewFrame.d.ts +0 -43
  312. package/dist/views/page-editor/SitePreviewFrame.d.ts.map +0 -1
  313. package/dist/views/page-editor/SitePreviewFrame.js +0 -165
  314. package/dist/views/page-editor/SitePreviewFrame.js.map +0 -1
  315. package/dist/views/page-editor/useSitePreview.d.ts +0 -47
  316. package/dist/views/page-editor/useSitePreview.d.ts.map +0 -1
  317. package/dist/views/page-editor/useSitePreview.js +0 -96
  318. package/dist/views/page-editor/useSitePreview.js.map +0 -1
  319. package/dist/views/post-editor/PostPreview.d.ts +0 -14
  320. package/dist/views/post-editor/PostPreview.d.ts.map +0 -1
  321. package/dist/views/post-editor/PostPreview.js +0 -63
  322. package/dist/views/post-editor/PostPreview.js.map +0 -1
  323. package/src/__tests__/views/page-builder-block-renderer.render.test.tsx +0 -66
  324. package/src/__tests__/views/page-builder-form-picker.render.test.tsx +0 -54
  325. package/src/__tests__/views/page-builder-sections-panel.render.test.tsx +0 -138
  326. package/src/__tests__/views/page-builder-seo-panel.render.test.tsx +0 -77
  327. package/src/__tests__/views/page-builder-template-seed.render.test.tsx +0 -59
  328. package/src/__tests__/views/page-templates.render.test.tsx +0 -182
  329. package/src/__tests__/views/use-site-preview.render.test.tsx +0 -164
  330. package/src/hooks/useBuilderState.ts +0 -361
  331. package/src/views/page-builder/AIBlockAssist.tsx +0 -64
  332. package/src/views/page-builder/AIGenerateDialog.tsx +0 -593
  333. package/src/views/page-builder/BlockEditor.tsx +0 -523
  334. package/src/views/page-builder/BlockPicker.tsx +0 -324
  335. package/src/views/page-builder/BottomBar.tsx +0 -65
  336. package/src/views/page-builder/BuilderSectionsPanel.tsx +0 -304
  337. package/src/views/page-builder/BuilderToolbar.tsx +0 -221
  338. package/src/views/page-builder/ContextPanel.tsx +0 -144
  339. package/src/views/page-builder/DesignScore.tsx +0 -251
  340. package/src/views/page-builder/NodeSettings.tsx +0 -500
  341. package/src/views/page-builder/PageBuilder.tsx +0 -405
  342. package/src/views/page-builder/PageSettings.tsx +0 -162
  343. package/src/views/page-builder/PageTemplates.tsx +0 -435
  344. package/src/views/page-builder/RelationshipField.tsx +0 -113
  345. package/src/views/page-builder/SEOPanel.tsx +0 -222
  346. package/src/views/page-builder/SavedSections.tsx +0 -480
  347. package/src/views/page-builder/TemplatePicker.tsx +0 -197
  348. package/src/views/page-builder/Widgets.tsx +0 -44
  349. package/src/views/page-builder/block-renderers/CTAPreview.tsx +0 -79
  350. package/src/views/page-builder/block-renderers/CardsPreview.tsx +0 -69
  351. package/src/views/page-builder/block-renderers/CodePreview.tsx +0 -46
  352. package/src/views/page-builder/block-renderers/FAQPreview.tsx +0 -87
  353. package/src/views/page-builder/block-renderers/FallbackPreview.tsx +0 -18
  354. package/src/views/page-builder/block-renderers/FormPreview.tsx +0 -117
  355. package/src/views/page-builder/block-renderers/GalleryPreview.tsx +0 -87
  356. package/src/views/page-builder/block-renderers/HeroPreview.tsx +0 -90
  357. package/src/views/page-builder/block-renderers/ImagePreview.tsx +0 -54
  358. package/src/views/page-builder/block-renderers/TextPreview.tsx +0 -81
  359. package/src/views/page-builder/block-renderers/VideoPreview.tsx +0 -73
  360. package/src/views/page-builder/block-renderers/index.ts +0 -34
  361. package/src/views/page-builder/canvas/BlockRenderer.tsx +0 -56
  362. package/src/views/page-builder/canvas/BuilderCanvas.tsx +0 -87
  363. package/src/views/page-builder/canvas/ColumnRenderer.tsx +0 -82
  364. package/src/views/page-builder/canvas/ContainerRenderer.tsx +0 -67
  365. package/src/views/page-builder/canvas/RowRenderer.tsx +0 -68
  366. package/src/views/page-builder/canvas/SectionRenderer.tsx +0 -93
  367. package/src/views/page-builder/canvas/index.ts +0 -2
  368. package/src/views/page-editor/PagePreview.tsx +0 -105
  369. package/src/views/page-editor/SitePreviewFrame.tsx +0 -250
  370. package/src/views/page-editor/useSitePreview.ts +0 -158
  371. package/src/views/post-editor/PostPreview.tsx +0 -125
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useState } from 'react'
4
- import { AlertTriangle, Blocks, Loader2, Lock } from 'lucide-react'
4
+ import { AlertTriangle, Loader2, Lock } from 'lucide-react'
5
5
  import { toast } from 'sonner'
6
6
  import { ConfirmDialog } from '../../components/ui/ConfirmDialog.js'
7
7
  import { useNavigationBlocker } from '../../router/index.js'
@@ -34,11 +34,9 @@ import {
34
34
  type ValidationResult,
35
35
  } from '../../lib/page-editor-service.js'
36
36
  import { MediaPickerModal } from '../../components/MediaPickerModal.js'
37
- import {
38
- buildPublicPreviewUrl,
39
- buildPublicUrl,
40
- createPreviewToken,
41
- } from '../../lib/preview-link.js'
37
+ import { SharePreviewLinkDialog } from '../../components/SharePreviewLinkDialog.js'
38
+ import { openPublicSiteTab } from '../../lib/open-public-site-tab.js'
39
+ import type { ViewSiteIntent } from '../../lib/view-site-chrome.js'
42
40
  import { usePublicSiteUrl } from '../../hooks/usePublicSiteUrl.js'
43
41
  import { DEFAULT_VIEWPORT, type ViewportId } from './viewports.js'
44
42
  import type { Zoom } from '../../lib/breakpoints.js'
@@ -59,12 +57,9 @@ import { EditorTopBar, type SaveState } from './EditorTopBar.js'
59
57
  import { SectionsList } from './SectionsPanel.js'
60
58
  import { EditorCanvas } from './EditorCanvas.js'
61
59
  import { ReflowContext } from './reflow-context.js'
62
- import { SitePreviewFrame } from './SitePreviewFrame.js'
63
- import { useSitePreview } from './useSitePreview.js'
64
60
  import { SectionEditForm } from './SectionEditForm.js'
65
61
  import { PageSettingsModal } from './PageSettingsModal.js'
66
62
  import { ValidationSummary } from './ValidationSummary.js'
67
- import { resolveDefaultSitePreview } from '../../lib/editor-preview.js'
68
63
  import { buildEditorContentHtml } from '../../lib/editor-seo-content.js'
69
64
  import { companionDimensionPaths, inspectorIdFromFieldPath } from '../../lib/preview-bridge.js'
70
65
 
@@ -80,12 +75,6 @@ interface PageSectionEditorProps {
80
75
  config?: any
81
76
  session?: any
82
77
  onNavigate: (path: string) => void
83
- /**
84
- * Open a preview route in a new browser tab. `prepare` runs before the tab
85
- * navigates (used to save an unsaved draft first); returning `false` cancels
86
- * the open. Falls back to in-tab navigation when not provided.
87
- */
88
- onOpenPreview?: (path: string, prepare?: () => Promise<boolean | void> | boolean | void) => void
89
78
  }
90
79
 
91
80
  /**
@@ -137,7 +126,6 @@ export function PageSectionEditor({
137
126
  config,
138
127
  session,
139
128
  onNavigate,
140
- onOpenPreview,
141
129
  }: PageSectionEditorProps) {
142
130
  const [page, setPage] = useState<EditorPage | null>(null)
143
131
  const [loading, setLoading] = useState(true)
@@ -165,8 +153,7 @@ export function PageSectionEditor({
165
153
  const [canvasScale, setCanvasScale] = useState(1)
166
154
  /**
167
155
  * The live canvas surface, for the reflow guard to clone. State rather than a
168
- * ref because the context value has to update when it mounts — the canvas
169
- * unmounts whenever the site-preview frame takes over.
156
+ * ref because the context value has to update when it mounts.
170
157
  */
171
158
  const [canvasEl, setCanvasEl] = useState<HTMLElement | null>(null)
172
159
  /**
@@ -234,6 +221,7 @@ export function PageSectionEditor({
234
221
  const [restoring, setRestoring] = useState(false)
235
222
  const [confirmPublish, setConfirmPublish] = useState(false)
236
223
  const [scheduleOpen, setScheduleOpen] = useState(false)
224
+ const [shareOpen, setShareOpen] = useState(false)
237
225
  const [leaveTarget, setLeaveTarget] = useState<string | null>(null)
238
226
  const [validation, setValidation] = useState<ValidationResult | null>(null)
239
227
 
@@ -415,25 +403,19 @@ export function PageSectionEditor({
415
403
  )
416
404
 
417
405
  // ─── Edit permission ─────────────────────────────────────────────────
418
- /**
419
- * ADR 0002: a Page-Builder-owned page (it has a `_layout`) compiles its
420
- * sections from the builder layout on every save, so editing them here would
421
- * be overwritten. The server independently refuses such edits with 409.
422
- */
423
- const readOnly = page?.builderOwned ?? false
424
406
  /**
425
407
  * The single gate every writing surface reads.
426
408
  *
427
409
  * Hoisted above the callbacks rather than derived at render time, because
428
410
  * the two that were left behind were the ones that mattered: the site
429
411
  * preview's in-place edit handlers close over `canEdit` (the raw role) and
430
- * so kept accepting edits while a past version was under review and while
431
- * a builder-owned page was supposedly read-only. The iframe is a second
432
- * editing surface, and a lock that only covers the rail is not a lock.
412
+ * so kept accepting edits while a past version was under review. The iframe
413
+ * is a second editing surface, and a lock that only covers the rail is not
414
+ * a lock.
433
415
  */
434
- const effectiveCanEdit = canEdit && !readOnly && !reviewing
416
+ const effectiveCanEdit = canEdit && !reviewing
435
417
  /** Restoring is not editing: it is allowed precisely while reviewing. */
436
- const canRestoreVersion = canEdit && !readOnly
418
+ const canRestoreVersion = canEdit
437
419
 
438
420
  // ─── Load ──────────────────────────────────────────────────────────
439
421
  useEffect(() => {
@@ -585,22 +567,6 @@ export function PageSectionEditor({
585
567
  }
586
568
  }, [page, documentId, onNavigate, saveDirectives, acceptPage])
587
569
 
588
- // Inline branded preview — Next builder canvas (same origin as admin), not
589
- // the Astro public apex. "View on site" still uses publicSiteUrl below.
590
- const sitePreview = useSitePreview({
591
- collection: 'pages',
592
- documentId: page?.id,
593
- slug: page?.slug,
594
- path: page?.path,
595
- urlPrefix: '',
596
- dirty,
597
- saveState,
598
- saveDraft: handleSaveDraft,
599
- defaultActive: resolveDefaultSitePreview(config?.admin?.editor, 'pages'),
600
- })
601
-
602
- const sitePreviewAvailable = Boolean(page?.id && page?.slug)
603
-
604
570
  const requestPublish = useCallback(() => {
605
571
  if (!page) return
606
572
  const result = validatePage(page, true)
@@ -803,82 +769,36 @@ export function PageSectionEditor({
803
769
  [dirty, onNavigate],
804
770
  )
805
771
 
806
- const handlePreview = useCallback(() => {
807
- if (!page?.id) {
808
- toast.error('Save the page before previewing')
809
- return
810
- }
811
- const path = `/pages/${page.id}/preview`
812
- // New-tab preview: save first when there are unsaved edits so the preview
813
- // (which reads the persisted document) reflects what's on screen.
814
- if (onOpenPreview) {
815
- onOpenPreview(path, dirty ? handleSaveDraft : undefined)
816
- } else {
817
- guardedNavigate(path)
818
- }
819
- }, [page, dirty, onOpenPreview, handleSaveDraft, guardedNavigate])
820
-
821
- // "View on site": render the draft through the consumer's real public route
822
- // via a signed preview token. The blank tab is opened synchronously inside
823
- // the click (popup-safe), then pointed at the public URL once any unsaved
824
- // draft is persisted and the token is minted.
825
- const handleViewOnSite = useCallback(() => {
826
- if (!page?.id || !page.slug) {
827
- toast.error('Save the page before viewing it on the site')
828
- return
829
- }
830
- // Published → jump straight to the LIVE page: no preview token, no forced
831
- // save. This is the fast "see it live" path. Pending edits stay previewable
832
- // via the eye (canvas) and globe (inline site preview).
833
- if (page.status === 'PUBLISHED') {
834
- window.open(
835
- buildPublicUrl({
836
- siteUrl: publicSiteUrl,
837
- urlPrefix: '',
838
- slug: page.slug,
839
- path: page.path,
840
- }),
841
- '_blank',
842
- 'noopener',
843
- )
844
- return
845
- }
846
- // Not yet public (draft / scheduled / archived) → token-gated preview of
847
- // the current draft through the real front-end.
848
- const tab = window.open('about:blank', '_blank')
849
- if (!tab) {
850
- toast.error('Enable pop-ups for this site to open the preview in a new tab.')
851
- return
852
- }
853
- void (async () => {
854
- try {
855
- if (dirty) {
856
- const ok = await handleSaveDraft()
857
- if (!ok) {
858
- tab.close()
859
- return
860
- }
861
- }
862
- const { token } = await createPreviewToken('pages', page.id!)
863
- const target = buildPublicPreviewUrl({
864
- siteUrl: publicSiteUrl,
865
- urlPrefix: '',
866
- slug: page.slug,
867
- path: page.path,
868
- token,
869
- })
870
- try {
871
- tab.opener = null
872
- } catch {
873
- /* same-origin guard */
874
- }
875
- tab.location.replace(target)
876
- } catch (err) {
877
- tab.close()
878
- toast.error(err instanceof Error ? err.message : 'Failed to open site preview')
772
+ const handleViewOnSite = useCallback(
773
+ (intent: ViewSiteIntent) => {
774
+ if (!page?.id || !page.slug) {
775
+ toast.error('Save the page before viewing it on the site')
776
+ return
879
777
  }
880
- })()
881
- }, [page, dirty, handleSaveDraft, publicSiteUrl])
778
+ void openPublicSiteTab({
779
+ intent,
780
+ siteUrl: publicSiteUrl,
781
+ collection: 'pages',
782
+ documentId: page.id,
783
+ slug: page.slug,
784
+ path: page.path,
785
+ dirty,
786
+ saveDraft: handleSaveDraft,
787
+ }).catch((err) => {
788
+ toast.error(err instanceof Error ? err.message : 'Failed to open the site')
789
+ })
790
+ },
791
+ [page, dirty, handleSaveDraft, publicSiteUrl],
792
+ )
793
+
794
+ const handleShare = useCallback(async () => {
795
+ if (!page?.id) return
796
+ if (dirty) {
797
+ const ok = await handleSaveDraft()
798
+ if (!ok) return
799
+ }
800
+ setShareOpen(true)
801
+ }, [page, dirty, handleSaveDraft])
882
802
 
883
803
  // ─── Render states ───────────────────────────────────────────────────
884
804
  if (loading) {
@@ -911,8 +831,8 @@ export function PageSectionEditor({
911
831
  )
912
832
  }
913
833
 
914
- // `readOnly` / `effectiveCanEdit` / `canRestoreVersion` are computed above,
915
- // with the hooks, so the callbacks defined there share this one gate.
834
+ // `effectiveCanEdit` / `canRestoreVersion` are computed above, with the
835
+ // hooks, so the callbacks defined there share this one gate.
916
836
 
917
837
  // The canvas shows the reviewed snapshot, but `page.sections` stays the
918
838
  // editor's own content throughout — nothing about review mode writes to it.
@@ -951,16 +871,13 @@ export function PageSectionEditor({
951
871
  publishDisabledReason={publishDisabledReason}
952
872
  viewport={viewport}
953
873
  onViewport={setViewport}
954
- {...(sitePreview.active
955
- ? // The site preview is an iframe of the real front end, not a
956
- // scaled canvas — a zoom percentage there would be a lie.
957
- {}
958
- : { zoom, canvasScale, onZoom: setZoom })}
874
+ zoom={zoom}
875
+ canvasScale={canvasScale}
876
+ onZoom={setZoom}
959
877
  onBack={() => guardedNavigate('/pages')}
960
- onPreview={handlePreview}
961
- onViewOnSite={page.id ? handleViewOnSite : undefined}
962
- sitePreview={sitePreview.active}
963
- onToggleSitePreview={page.id && page.slug ? sitePreview.toggle : undefined}
878
+ onViewOnSite={page.id && page.slug ? handleViewOnSite : undefined}
879
+ onShare={page.id ? handleShare : undefined}
880
+ hasPublicSiteUrl={Boolean(publicSiteUrl)}
964
881
  historyOpen={historyOpen}
965
882
  onHistory={page.id ? () => (historyOpen ? closeHistory() : openHistory()) : undefined}
966
883
  onOpenSettings={() => setSettingsOpen(true)}
@@ -982,29 +899,6 @@ export function PageSectionEditor({
982
899
  structuralTypes={structuralTypes}
983
900
  />
984
901
 
985
- {readOnly && (
986
- <div
987
- role="status"
988
- className="border-border bg-accent/40 flex items-center gap-3 border-b px-4 py-2.5"
989
- >
990
- <Blocks className="text-muted-foreground shrink-0" size={16} aria-hidden />
991
- <p className="text-muted-foreground flex-1 text-sm">
992
- This page is built in the{' '}
993
- <span className="text-foreground font-medium">Page Builder</span>. Its sections are
994
- generated from the builder layout and are read-only here.
995
- </p>
996
- {page.id && (
997
- <button
998
- type="button"
999
- onClick={() => guardedNavigate(`/page-builder/${page.id}`)}
1000
- className="bg-primary text-primary-foreground hover:bg-primary/90 shrink-0 rounded-lg px-3 py-1.5 text-sm font-medium transition-colors"
1001
- >
1002
- Open in Page Builder
1003
- </button>
1004
- )}
1005
- </div>
1006
- )}
1007
-
1008
902
  {unmanagedTypes.length > 0 && (
1009
903
  <div
1010
904
  role="status"
@@ -1134,46 +1028,30 @@ export function PageSectionEditor({
1134
1028
  </EditorRail>
1135
1029
 
1136
1030
  <div className="flex-1 overflow-hidden">
1137
- {sitePreview.active ? (
1138
- <SitePreviewFrame
1139
- src={sitePreview.url}
1140
- viewport={viewport}
1141
- reloadKey={sitePreview.reloadKey}
1142
- title={`Site preview: ${page.title || 'Untitled page'}`}
1143
- selectedId={selectedId}
1144
- sections={page.sections}
1145
- suppressSectionsEcho={suppressSectionsEcho}
1146
- onSelectSection={handleSelectSection}
1147
- onCanvasEdit={handleCanvasEdit}
1148
- onCanvasRequestMedia={handleCanvasRequestMedia}
1149
- />
1150
- ) : (
1151
- <EditorCanvas
1152
- sections={canvasSections}
1153
- selectedId={selectedId}
1154
- breakpoint={viewport}
1155
- zoom={zoom}
1156
- onScaleChange={setCanvasScale}
1157
- onCanvasElement={setCanvasEl}
1158
- onSelect={handleSelectSection}
1159
- structuralTypes={structuralTypes}
1160
- sitePreviewAvailable={sitePreviewAvailable && !sitePreview.active}
1161
- reviewing={reviewing}
1162
- changedSectionIds={reviewChangedIds}
1163
- reviewBar={
1164
- reviewVersion ? (
1165
- <ReviewBar
1166
- version={reviewVersion}
1167
- changedCount={reviewChangedIds.size}
1168
- onRestore={() => void handleRestoreVersion(reviewVersion)}
1169
- onBackToCurrent={() => setVersionIndex(0)}
1170
- restoring={restoring}
1171
- canRestore={canRestoreVersion}
1172
- />
1173
- ) : null
1174
- }
1175
- />
1176
- )}
1031
+ <EditorCanvas
1032
+ sections={canvasSections}
1033
+ selectedId={selectedId}
1034
+ breakpoint={viewport}
1035
+ zoom={zoom}
1036
+ onScaleChange={setCanvasScale}
1037
+ onCanvasElement={setCanvasEl}
1038
+ onSelect={handleSelectSection}
1039
+ structuralTypes={structuralTypes}
1040
+ reviewing={reviewing}
1041
+ changedSectionIds={reviewChangedIds}
1042
+ reviewBar={
1043
+ reviewVersion ? (
1044
+ <ReviewBar
1045
+ version={reviewVersion}
1046
+ changedCount={reviewChangedIds.size}
1047
+ onRestore={() => void handleRestoreVersion(reviewVersion)}
1048
+ onBackToCurrent={() => setVersionIndex(0)}
1049
+ restoring={restoring}
1050
+ canRestore={canRestoreVersion}
1051
+ />
1052
+ ) : null
1053
+ }
1054
+ />
1177
1055
  </div>
1178
1056
  </div>
1179
1057
  </ReflowContext.Provider>
@@ -1208,6 +1086,19 @@ export function PageSectionEditor({
1208
1086
  />
1209
1087
  )}
1210
1088
 
1089
+ {page.id && (
1090
+ <SharePreviewLinkDialog
1091
+ collectionSlug="pages"
1092
+ documentId={page.id}
1093
+ documentSlug={page.slug}
1094
+ documentPath={page.path}
1095
+ siteUrl={publicSiteUrl}
1096
+ urlPrefix=""
1097
+ open={shareOpen}
1098
+ onClose={() => setShareOpen(false)}
1099
+ />
1100
+ )}
1101
+
1211
1102
  <ConfirmDialog
1212
1103
  open={leaveTarget !== null}
1213
1104
  onClose={() => setLeaveTarget(null)}
@@ -4,48 +4,12 @@ import { Puzzle } from 'lucide-react'
4
4
 
5
5
  /**
6
6
  * Banner shown above the canvas surface when the document contains section
7
- * types the canvas can only render as placeholders (custom / unmanaged
8
- * types), or when Site preview is available for accurate styling.
7
+ * types the canvas can only render as placeholders (custom / unmanaged types).
9
8
  */
10
- export function StructureNotice({
11
- structuralTypes,
12
- sitePreviewAvailable = false,
13
- }: {
14
- structuralTypes: string[]
15
- /** When true, nudge editors toward the Site preview toggle for WYSIWYG. */
16
- sitePreviewAvailable?: boolean
17
- }) {
18
- if (structuralTypes.length === 0 && !sitePreviewAvailable) return null
19
-
20
- if (structuralTypes.length > 0) {
21
- const count = structuralTypes.length
22
- return (
23
- <div
24
- role="note"
25
- className="border-border bg-card text-muted-foreground mx-auto mb-4 flex w-fit max-w-full items-center gap-2 rounded-lg border px-3 py-1.5 text-xs"
26
- >
27
- <Puzzle className="h-3.5 w-3.5 shrink-0" aria-hidden />
28
- <span>
29
- <span className="text-foreground font-medium">Structure view</span> — {count} custom
30
- section type{count > 1 ? 's' : ''} shown as placeholders.
31
- {sitePreviewAvailable ? (
32
- <>
33
- {' '}
34
- Use <span className="text-foreground font-medium">Site preview</span> for accurate
35
- styling.
36
- </>
37
- ) : (
38
- <>
39
- {' '}
40
- Use <span className="text-foreground font-medium">View on site</span> for the real
41
- design.
42
- </>
43
- )}
44
- </span>
45
- </div>
46
- )
47
- }
9
+ export function StructureNotice({ structuralTypes }: { structuralTypes: string[] }) {
10
+ if (structuralTypes.length === 0) return null
48
11
 
12
+ const count = structuralTypes.length
49
13
  return (
50
14
  <div
51
15
  role="note"
@@ -53,8 +17,9 @@ export function StructureNotice({
53
17
  >
54
18
  <Puzzle className="h-3.5 w-3.5 shrink-0" aria-hidden />
55
19
  <span>
56
- <span className="text-foreground font-medium">Structure preview</span> — use{' '}
57
- <span className="text-foreground font-medium">Site preview</span> for accurate styling.
20
+ <span className="text-foreground font-medium">Structure view</span> — {count} custom section
21
+ type{count > 1 ? 's' : ''} shown as placeholders. Use{' '}
22
+ <span className="text-foreground font-medium">View site</span> for the real design.
58
23
  </span>
59
24
  </div>
60
25
  )
@@ -24,8 +24,6 @@ interface PostEditorCanvasProps {
24
24
  onAddSection?: () => void
25
25
  /** Section types rendered as placeholders — shows the "Structure view" notice. */
26
26
  structuralTypes?: string[]
27
- /** Site preview toggle is available — show WYSIWYG nudge on the canvas. */
28
- sitePreviewAvailable?: boolean
29
27
  }
30
28
 
31
29
  /**
@@ -53,7 +51,6 @@ export function PostEditorCanvas({
53
51
  onCanvasElement,
54
52
  onAddSection,
55
53
  structuralTypes = [],
56
- sitePreviewAvailable = false,
57
54
  }: PostEditorCanvasProps) {
58
55
  const registerRef = useSectionRefs(selectedId)
59
56
 
@@ -67,10 +64,7 @@ export function PostEditorCanvas({
67
64
  chrome={
68
65
  <>
69
66
  {sections.length > 0 && <CanvasEditTip />}
70
- <StructureNotice
71
- structuralTypes={structuralTypes}
72
- sitePreviewAvailable={sitePreviewAvailable}
73
- />
67
+ <StructureNotice structuralTypes={structuralTypes} />
74
68
  </>
75
69
  }
76
70
  >
@@ -109,7 +103,7 @@ function EmptyBody({ onAddSection }: { onAddSection?: () => void }) {
109
103
  </span>
110
104
  <p className="text-muted-foreground text-sm">
111
105
  {onAddSection
112
- ? 'The header is set by the template. Add body sections to build out this post. Hover sections for a light outline, click to open its editor in the section list — or use Site preview to click text and images in place.'
106
+ ? 'The header is set by the template. Add body sections to build out this post. Hover sections for a light outline, click to open its editor in the section list.'
113
107
  : 'This post’s template renders no body sections. Layout is design-owned — sections come from the template in code. Pick a different template in Post settings, or edit the template itself.'}
114
108
  </p>
115
109
  {onAddSection && (