@pantheon-systems/puck-css 0.11.1 → 0.13.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 (492) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/components/AgentActionButton.js +0 -13
  3. package/dist/agent/components/AgentActionButton.js.map +1 -1
  4. package/dist/agent/components/AgentActionModal.js +0 -13
  5. package/dist/agent/components/AgentActionModal.js.map +1 -1
  6. package/dist/agent/components/AgentStatusPanel.js +0 -10
  7. package/dist/agent/components/AgentStatusPanel.js.map +1 -1
  8. package/dist/agent/components/index.js +0 -5
  9. package/dist/agent/components/index.js.map +1 -1
  10. package/dist/agent/useAgentEdit.js +0 -12
  11. package/dist/agent/useAgentEdit.js.map +1 -1
  12. package/dist/agent/useAgentTrigger.js +0 -29
  13. package/dist/agent/useAgentTrigger.js.map +1 -1
  14. package/dist/auth/P1AuthProvider.d.ts +9 -2
  15. package/dist/auth/P1AuthProvider.d.ts.map +1 -1
  16. package/dist/auth/P1AuthProvider.js +21 -44
  17. package/dist/auth/P1AuthProvider.js.map +1 -1
  18. package/dist/auth/P1LoginPage.js +0 -18
  19. package/dist/auth/P1LoginPage.js.map +1 -1
  20. package/dist/auth/index.d.ts +2 -0
  21. package/dist/auth/index.d.ts.map +1 -1
  22. package/dist/auth/index.js +1 -9
  23. package/dist/auth/index.js.map +1 -1
  24. package/dist/auth/logout.d.ts +23 -0
  25. package/dist/auth/logout.d.ts.map +1 -0
  26. package/dist/auth/logout.js +14 -0
  27. package/dist/auth/logout.js.map +1 -0
  28. package/dist/auth/storage-keys.d.ts +5 -0
  29. package/dist/auth/storage-keys.d.ts.map +1 -0
  30. package/dist/auth/storage-keys.js +3 -0
  31. package/dist/auth/storage-keys.js.map +1 -0
  32. package/dist/collaboration/components/AgentActivityBanner.js +0 -15
  33. package/dist/collaboration/components/AgentActivityBanner.js.map +1 -1
  34. package/dist/collaboration/components/CollaboratorAvatars.js +0 -17
  35. package/dist/collaboration/components/CollaboratorAvatars.js.map +1 -1
  36. package/dist/collaboration/components/FocusRegionHighlight.js +0 -9
  37. package/dist/collaboration/components/FocusRegionHighlight.js.map +1 -1
  38. package/dist/collaboration/components/PresenceIndicator.js +0 -9
  39. package/dist/collaboration/components/PresenceIndicator.js.map +1 -1
  40. package/dist/collaboration/useBranchPresence.js +0 -36
  41. package/dist/collaboration/useBranchPresence.js.map +1 -1
  42. package/dist/collaboration/useFocusRegionReporting.js +0 -75
  43. package/dist/collaboration/useFocusRegionReporting.js.map +1 -1
  44. package/dist/collaboration/usePresence.js +0 -37
  45. package/dist/collaboration/usePresence.js.map +1 -1
  46. package/dist/collaboration/useSitePresence.js +0 -36
  47. package/dist/collaboration/useSitePresence.js.map +1 -1
  48. package/dist/collaboration/utils/avatarColor.js +0 -3
  49. package/dist/collaboration/utils/avatarColor.js.map +1 -1
  50. package/dist/collaboration/utils/focusHighlightConfig.js +0 -61
  51. package/dist/collaboration/utils/focusHighlightConfig.js.map +1 -1
  52. package/dist/collaboration/utils/focusRegionMap.js +1 -80
  53. package/dist/collaboration/utils/focusRegionMap.js.map +1 -1
  54. package/dist/collaboration/utils/initials.js +0 -14
  55. package/dist/collaboration/utils/initials.js.map +1 -1
  56. package/dist/collaboration/utils/presenceIdentity.js +0 -26
  57. package/dist/collaboration/utils/presenceIdentity.js.map +1 -1
  58. package/dist/core/FocusHighlightContext.js +0 -31
  59. package/dist/core/FocusHighlightContext.js.map +1 -1
  60. package/dist/core/NotificationContext.js +2 -67
  61. package/dist/core/NotificationContext.js.map +1 -1
  62. package/dist/core/P1PuckContext.js +0 -31
  63. package/dist/core/P1PuckContext.js.map +1 -1
  64. package/dist/core/PresenceContext.js +0 -18
  65. package/dist/core/PresenceContext.js.map +1 -1
  66. package/dist/core/config.d.ts +9 -0
  67. package/dist/core/config.d.ts.map +1 -1
  68. package/dist/core/config.js +6 -2
  69. package/dist/core/config.js.map +1 -1
  70. package/dist/core/featureConfig.js +0 -32
  71. package/dist/core/featureConfig.js.map +1 -1
  72. package/dist/core/types.d.ts +18 -5
  73. package/dist/core/types.d.ts.map +1 -1
  74. package/dist/core/types.js +0 -3
  75. package/dist/core/types.js.map +1 -1
  76. package/dist/core/utils/debounce.js +0 -18
  77. package/dist/core/utils/debounce.js.map +1 -1
  78. package/dist/core/utils/requestError.d.ts +7 -0
  79. package/dist/core/utils/requestError.d.ts.map +1 -0
  80. package/dist/core/utils/requestError.js +7 -0
  81. package/dist/core/utils/requestError.js.map +1 -0
  82. package/dist/core/utils/retry.js +0 -31
  83. package/dist/core/utils/retry.js.map +1 -1
  84. package/dist/core/utils/throttle.js +0 -24
  85. package/dist/core/utils/throttle.js.map +1 -1
  86. package/dist/data/cross-reference-resolve.js +0 -6
  87. package/dist/data/cross-reference-resolve.js.map +1 -1
  88. package/dist/data/cross-reference.js +0 -15
  89. package/dist/data/cross-reference.js.map +1 -1
  90. package/dist/data/css-queries/css-query-registry.d.ts +2 -2
  91. package/dist/data/css-queries/css-query-registry.js +1 -1
  92. package/dist/data/css-queries/css-query-registry.js.map +1 -1
  93. package/dist/data/dal/index.js +0 -21
  94. package/dist/data/dal/index.js.map +1 -1
  95. package/dist/data/dal/init.d.ts.map +1 -1
  96. package/dist/data/dal/init.js +4 -39
  97. package/dist/data/dal/init.js.map +1 -1
  98. package/dist/data/dal/p1-store.d.ts +1 -1
  99. package/dist/data/dal/p1-store.d.ts.map +1 -1
  100. package/dist/data/dal/p1-store.js +50 -38
  101. package/dist/data/dal/p1-store.js.map +1 -1
  102. package/dist/data/data-list-block/create-data-list-block.js +0 -7
  103. package/dist/data/data-list-block/create-data-list-block.js.map +1 -1
  104. package/dist/data/data-list-block/utils.js +0 -1
  105. package/dist/data/data-list-block/utils.js.map +1 -1
  106. package/dist/data/fields/pds-field-helpers.js +1 -4
  107. package/dist/data/fields/pds-field-helpers.js.map +1 -1
  108. package/dist/data/fields/visible-when.js +0 -5
  109. package/dist/data/fields/visible-when.js.map +1 -1
  110. package/dist/data/fields.d.ts.map +1 -1
  111. package/dist/data/fields.js +1 -3
  112. package/dist/data/fields.js.map +1 -1
  113. package/dist/data/get-page.js +0 -1
  114. package/dist/data/get-page.js.map +1 -1
  115. package/dist/data/page-editor-meta.js +0 -7
  116. package/dist/data/page-editor-meta.js.map +1 -1
  117. package/dist/data/page-store.js +0 -32
  118. package/dist/data/page-store.js.map +1 -1
  119. package/dist/data/page-structure.js +0 -3
  120. package/dist/data/page-structure.js.map +1 -1
  121. package/dist/data/paths.js +0 -16
  122. package/dist/data/paths.js.map +1 -1
  123. package/dist/data/remote-datasources/fetch-http-json.js +0 -5
  124. package/dist/data/remote-datasources/fetch-http-json.js.map +1 -1
  125. package/dist/data/remote-datasources/loader.js +0 -21
  126. package/dist/data/remote-datasources/loader.js.map +1 -1
  127. package/dist/data/remote-datasources/remote-datasource-registry.js +0 -4
  128. package/dist/data/remote-datasources/remote-datasource-registry.js.map +1 -1
  129. package/dist/data/resolve-data-templates.js +0 -24
  130. package/dist/data/resolve-data-templates.js.map +1 -1
  131. package/dist/data/route-templates.js +0 -29
  132. package/dist/data/route-templates.js.map +1 -1
  133. package/dist/data/semantic-ops.js +0 -11
  134. package/dist/data/semantic-ops.js.map +1 -1
  135. package/dist/data/styles.js +0 -2
  136. package/dist/data/styles.js.map +1 -1
  137. package/dist/data/template-autocomplete.js +0 -8
  138. package/dist/data/template-autocomplete.js.map +1 -1
  139. package/dist/data/utils.d.ts +2 -0
  140. package/dist/data/utils.d.ts.map +1 -1
  141. package/dist/data/utils.js +3 -1
  142. package/dist/data/utils.js.map +1 -1
  143. package/dist/editor/P1App.d.ts.map +1 -1
  144. package/dist/editor/P1App.js +6 -45
  145. package/dist/editor/P1App.js.map +1 -1
  146. package/dist/editor/P1PuckProvider.d.ts +1 -1
  147. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  148. package/dist/editor/P1PuckProvider.js +63 -548
  149. package/dist/editor/P1PuckProvider.js.map +1 -1
  150. package/dist/editor/aiPanelStore.js +0 -7
  151. package/dist/editor/aiPanelStore.js.map +1 -1
  152. package/dist/editor/components/BranchSelector.js +0 -21
  153. package/dist/editor/components/BranchSelector.js.map +1 -1
  154. package/dist/editor/components/CollapsibleSectionHeader.js +1 -4
  155. package/dist/editor/components/CollapsibleSectionHeader.js.map +1 -1
  156. package/dist/editor/components/DraggableRow.js +0 -1
  157. package/dist/editor/components/DraggableRow.js.map +1 -1
  158. package/dist/editor/components/EditorReloadOverlay.d.ts +16 -0
  159. package/dist/editor/components/EditorReloadOverlay.d.ts.map +1 -0
  160. package/dist/editor/components/EditorReloadOverlay.js +13 -0
  161. package/dist/editor/components/EditorReloadOverlay.js.map +1 -0
  162. package/dist/editor/components/NotificationContainer.js +0 -20
  163. package/dist/editor/components/NotificationContainer.js.map +1 -1
  164. package/dist/editor/components/OutlinePanel.js +1 -12
  165. package/dist/editor/components/OutlinePanel.js.map +1 -1
  166. package/dist/editor/components/P1InspectorFields.d.ts.map +1 -1
  167. package/dist/editor/components/P1InspectorFields.js +12 -14
  168. package/dist/editor/components/P1InspectorFields.js.map +1 -1
  169. package/dist/editor/components/P1TemplateFields.js +6 -12
  170. package/dist/editor/components/P1TemplateFields.js.map +1 -1
  171. package/dist/editor/components/PanelHeader.d.ts.map +1 -1
  172. package/dist/editor/components/PanelHeader.js +3 -2
  173. package/dist/editor/components/PanelHeader.js.map +1 -1
  174. package/dist/editor/components/PublishButton.js +0 -21
  175. package/dist/editor/components/PublishButton.js.map +1 -1
  176. package/dist/editor/components/PuckDataCapture.js +0 -14
  177. package/dist/editor/components/PuckDataCapture.js.map +1 -1
  178. package/dist/editor/components/PuckDataSynchronizer.js +0 -67
  179. package/dist/editor/components/PuckDataSynchronizer.js.map +1 -1
  180. package/dist/editor/components/PuckSelectionTracker.js +0 -62
  181. package/dist/editor/components/PuckSelectionTracker.js.map +1 -1
  182. package/dist/editor/components/SaveIndicator.js +0 -41
  183. package/dist/editor/components/SaveIndicator.js.map +1 -1
  184. package/dist/editor/components/Toast.js +1 -32
  185. package/dist/editor/components/Toast.js.map +1 -1
  186. package/dist/editor/components/VersionBannerOverride.js +2 -14
  187. package/dist/editor/components/VersionBannerOverride.js.map +1 -1
  188. package/dist/editor/components/collapsibleSectionContext.js +0 -10
  189. package/dist/editor/components/collapsibleSectionContext.js.map +1 -1
  190. package/dist/editor/components/componentIconName.js +0 -23
  191. package/dist/editor/components/componentIconName.js.map +1 -1
  192. package/dist/editor/components/connectable.js +0 -5
  193. package/dist/editor/components/connectable.js.map +1 -1
  194. package/dist/editor/components/merge-preview/MergePreviewRenderer.js +2 -74
  195. package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
  196. package/dist/editor/components/merge-preview/ScaledContent.js +0 -6
  197. package/dist/editor/components/merge-preview/ScaledContent.js.map +1 -1
  198. package/dist/editor/components/merge-preview/index.js +0 -5
  199. package/dist/editor/components/merge-preview/index.js.map +1 -1
  200. package/dist/editor/components/outlineTree.js +0 -31
  201. package/dist/editor/components/outlineTree.js.map +1 -1
  202. package/dist/editor/components/useDragReorder.js +0 -1
  203. package/dist/editor/components/useDragReorder.js.map +1 -1
  204. package/dist/editor/defaultPlugins.d.ts +1 -1
  205. package/dist/editor/defaultPlugins.js +1 -1
  206. package/dist/editor/logout-store.d.ts +13 -0
  207. package/dist/editor/logout-store.d.ts.map +1 -0
  208. package/dist/editor/logout-store.js +23 -0
  209. package/dist/editor/logout-store.js.map +1 -0
  210. package/dist/editor/plugin/P1Plugin.d.ts +6 -3
  211. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  212. package/dist/editor/plugin/P1Plugin.js +20 -170
  213. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  214. package/dist/editor/plugin/context-sync-key.js +0 -19
  215. package/dist/editor/plugin/context-sync-key.js.map +1 -1
  216. package/dist/editor/plugin/createP1Overrides.js +1 -49
  217. package/dist/editor/plugin/createP1Overrides.js.map +1 -1
  218. package/dist/editor/plugin/document-sync-plugin.js +0 -50
  219. package/dist/editor/plugin/document-sync-plugin.js.map +1 -1
  220. package/dist/editor/plugin/fieldGuidance.js +0 -5
  221. package/dist/editor/plugin/fieldGuidance.js.map +1 -1
  222. package/dist/editor/plugin/index.js +0 -6
  223. package/dist/editor/plugin/index.js.map +1 -1
  224. package/dist/editor/plugin/selectHeaderCollaborators.js +0 -8
  225. package/dist/editor/plugin/selectHeaderCollaborators.js.map +1 -1
  226. package/dist/editor/presets.js +2 -2
  227. package/dist/editor/thumbnails/LiveThumbnail.js +1 -49
  228. package/dist/editor/thumbnails/LiveThumbnail.js.map +1 -1
  229. package/dist/editor/thumbnails/ThumbnailCard.js +0 -25
  230. package/dist/editor/thumbnails/ThumbnailCard.js.map +1 -1
  231. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js +0 -21
  232. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js.map +1 -1
  233. package/dist/editor/thumbnails/humanizeComponentName.js +0 -17
  234. package/dist/editor/thumbnails/humanizeComponentName.js.map +1 -1
  235. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js +0 -11
  236. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js.map +1 -1
  237. package/dist/editor/thumbnails/thumbnailCache.js +0 -38
  238. package/dist/editor/thumbnails/thumbnailCache.js.map +1 -1
  239. package/dist/editor/useAutoSave.js +0 -32
  240. package/dist/editor/useAutoSave.js.map +1 -1
  241. package/dist/editor/useBranches.js +0 -30
  242. package/dist/editor/useBranches.js.map +1 -1
  243. package/dist/editor/useComponentRegistry.d.ts +1 -1
  244. package/dist/editor/useComponentRegistry.js +0 -28
  245. package/dist/editor/useComponentRegistry.js.map +1 -1
  246. package/dist/editor/useDocuments.js +0 -51
  247. package/dist/editor/useDocuments.js.map +1 -1
  248. package/dist/editor/useMergePreview.js +8 -12
  249. package/dist/editor/useMergePreview.js.map +1 -1
  250. package/dist/editor/useP1Editor.d.ts +27 -7
  251. package/dist/editor/useP1Editor.d.ts.map +1 -1
  252. package/dist/editor/useP1Editor.js +107 -233
  253. package/dist/editor/useP1Editor.js.map +1 -1
  254. package/dist/editor/useP1Overrides.js +15 -50
  255. package/dist/editor/useP1Overrides.js.map +1 -1
  256. package/dist/editor/useP1Plugin.d.ts +7 -3
  257. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  258. package/dist/editor/useP1Plugin.js +28 -56
  259. package/dist/editor/useP1Plugin.js.map +1 -1
  260. package/dist/editor/useRealtime.d.ts +15 -3
  261. package/dist/editor/useRealtime.d.ts.map +1 -1
  262. package/dist/editor/useRealtime.js +12 -91
  263. package/dist/editor/useRealtime.js.map +1 -1
  264. package/dist/editor/useResponsivePanels.js +2 -35
  265. package/dist/editor/useResponsivePanels.js.map +1 -1
  266. package/dist/editor/useSidebarScrollPreservation.js +0 -14
  267. package/dist/editor/useSidebarScrollPreservation.js.map +1 -1
  268. package/dist/editor/utils/buildThumbnailOverride.js +0 -9
  269. package/dist/editor/utils/buildThumbnailOverride.js.map +1 -1
  270. package/dist/editor/utils/componentRegistry.d.ts +6 -11
  271. package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
  272. package/dist/editor/utils/componentRegistry.js +1 -71
  273. package/dist/editor/utils/componentRegistry.js.map +1 -1
  274. package/dist/editor/utils/createStablePluginArray.js +0 -27
  275. package/dist/editor/utils/createStablePluginArray.js.map +1 -1
  276. package/dist/editor/utils/path.js +0 -6
  277. package/dist/editor/utils/path.js.map +1 -1
  278. package/dist/editor/utils/puckYjsBinding.d.ts +1 -1
  279. package/dist/editor/utils/puckYjsBinding.js +0 -99
  280. package/dist/editor/utils/puckYjsBinding.js.map +1 -1
  281. package/dist/editor/utils/restoreDocumentVersion.js +0 -12
  282. package/dist/editor/utils/restoreDocumentVersion.js.map +1 -1
  283. package/dist/editor/utils/sanitizeRichtextDefaults.js +0 -26
  284. package/dist/editor/utils/sanitizeRichtextDefaults.js.map +1 -1
  285. package/dist/editor/utils/snapshotToPuckData.js +0 -8
  286. package/dist/editor/utils/snapshotToPuckData.js.map +1 -1
  287. package/dist/editor/utils/syncComponentRegistry.d.ts +2 -2
  288. package/dist/editor/utils/syncComponentRegistry.js +1 -76
  289. package/dist/editor/utils/syncComponentRegistry.js.map +1 -1
  290. package/dist/editor/utils/syncComponentRegistryWriteOnly.d.ts +7 -7
  291. package/dist/editor/utils/syncComponentRegistryWriteOnly.js +0 -22
  292. package/dist/editor/utils/syncComponentRegistryWriteOnly.js.map +1 -1
  293. package/dist/editor/utils/templatePath.js +0 -5
  294. package/dist/editor/utils/templatePath.js.map +1 -1
  295. package/dist/features/content-type-templates/editor/useTemplatePermissions.js +0 -3
  296. package/dist/features/content-type-templates/editor/useTemplatePermissions.js.map +1 -1
  297. package/dist/features/content-type-templates/hooks/useTemplateList.d.ts.map +1 -1
  298. package/dist/features/content-type-templates/hooks/useTemplateList.js +1 -29
  299. package/dist/features/content-type-templates/hooks/useTemplateList.js.map +1 -1
  300. package/dist/features/content-type-templates/index.js +0 -8
  301. package/dist/features/content-type-templates/index.js.map +1 -1
  302. package/dist/features/content-type-templates/permissions/createPuckPermissions.js +1 -43
  303. package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
  304. package/dist/features/content-type-templates/permissions/role-permissions.d.ts +1 -0
  305. package/dist/features/content-type-templates/permissions/role-permissions.d.ts.map +1 -1
  306. package/dist/features/content-type-templates/permissions/role-permissions.js +1 -28
  307. package/dist/features/content-type-templates/permissions/role-permissions.js.map +1 -1
  308. package/dist/features/content-type-templates/permissions/useContentRole.js +0 -24
  309. package/dist/features/content-type-templates/permissions/useContentRole.js.map +1 -1
  310. package/dist/features/content-type-templates/permissions/useResolveContentRole.d.ts +5 -5
  311. package/dist/features/content-type-templates/permissions/useResolveContentRole.js +2 -22
  312. package/dist/features/content-type-templates/permissions/useResolveContentRole.js.map +1 -1
  313. package/dist/features/content-type-templates/stores/index.js +0 -5
  314. package/dist/features/content-type-templates/stores/index.js.map +1 -1
  315. package/dist/features/content-type-templates/stores/template-store-api.js +0 -14
  316. package/dist/features/content-type-templates/stores/template-store-api.js.map +1 -1
  317. package/dist/features/content-type-templates/stores/template-store.d.ts +1 -1
  318. package/dist/features/content-type-templates/stores/template-store.js +0 -12
  319. package/dist/features/content-type-templates/stores/template-store.js.map +1 -1
  320. package/dist/features/content-type-templates/types.d.ts +2 -1
  321. package/dist/features/content-type-templates/types.d.ts.map +1 -1
  322. package/dist/features/content-type-templates/types.js +0 -5
  323. package/dist/features/content-type-templates/types.js.map +1 -1
  324. package/dist/features/content-type-templates/ui/ActionBarPinButton.js +12 -21
  325. package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
  326. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js +0 -23
  327. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js.map +1 -1
  328. package/dist/features/content-type-templates/ui/TemplateSelector.js +0 -19
  329. package/dist/features/content-type-templates/ui/TemplateSelector.js.map +1 -1
  330. package/dist/features/content-type-templates/validation/structural-validation.js +0 -40
  331. package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
  332. package/dist/index.d.ts +6 -4
  333. package/dist/index.d.ts.map +1 -1
  334. package/dist/index.js +2 -43
  335. package/dist/index.js.map +1 -1
  336. package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js +0 -19
  337. package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js.map +1 -1
  338. package/dist/merge/components/conflict-notifications/index.js +0 -5
  339. package/dist/merge/components/conflict-notifications/index.js.map +1 -1
  340. package/dist/merge/components/conflict-notifications/useConflictNotifications.js +0 -48
  341. package/dist/merge/components/conflict-notifications/useConflictNotifications.js.map +1 -1
  342. package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js +0 -36
  343. package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js.map +1 -1
  344. package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js +0 -40
  345. package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js.map +1 -1
  346. package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js +0 -21
  347. package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js.map +1 -1
  348. package/dist/merge/components/conflict-resolution/index.js +0 -5
  349. package/dist/merge/components/conflict-resolution/index.js.map +1 -1
  350. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +0 -44
  351. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
  352. package/dist/merge/components/merge-resolution/ComponentClickOverlay.js +0 -24
  353. package/dist/merge/components/merge-resolution/ComponentClickOverlay.js.map +1 -1
  354. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.d.ts.map +1 -1
  355. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +6 -31
  356. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -1
  357. package/dist/merge/components/merge-resolution/index.js +0 -3
  358. package/dist/merge/components/merge-resolution/index.js.map +1 -1
  359. package/dist/merge/useMergeResolution.d.ts +1 -1
  360. package/dist/merge/useMergeResolution.d.ts.map +1 -1
  361. package/dist/merge/useMergeResolution.js +6 -75
  362. package/dist/merge/useMergeResolution.js.map +1 -1
  363. package/dist/merge/utils/namespacePuckData.d.ts.map +1 -1
  364. package/dist/merge/utils/namespacePuckData.js +8 -8
  365. package/dist/merge/utils/namespacePuckData.js.map +1 -1
  366. package/dist/merge/utils/puckFieldClassifier.js +0 -183
  367. package/dist/merge/utils/puckFieldClassifier.js.map +1 -1
  368. package/dist/p1/editor/connect/connect-preview-config.js +0 -5
  369. package/dist/p1/editor/connect/connect-preview-config.js.map +1 -1
  370. package/dist/p1/editor/connect/field-connect-plugin.d.ts +8 -2
  371. package/dist/p1/editor/connect/field-connect-plugin.d.ts.map +1 -1
  372. package/dist/p1/editor/connect/field-connect-plugin.js +6 -2
  373. package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
  374. package/dist/p1/editor/editor-preview-resolve.js +0 -13
  375. package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
  376. package/dist/p1/editor/hooks/api-hooks.js +0 -7
  377. package/dist/p1/editor/hooks/api-hooks.js.map +1 -1
  378. package/dist/p1/editor/hooks/index.d.ts +1 -0
  379. package/dist/p1/editor/hooks/index.d.ts.map +1 -1
  380. package/dist/p1/editor/hooks/index.js +1 -0
  381. package/dist/p1/editor/hooks/index.js.map +1 -1
  382. package/dist/p1/editor/hooks/useLiveEditorContext.d.ts +24 -0
  383. package/dist/p1/editor/hooks/useLiveEditorContext.d.ts.map +1 -0
  384. package/dist/p1/editor/hooks/useLiveEditorContext.js +24 -0
  385. package/dist/p1/editor/hooks/useLiveEditorContext.js.map +1 -0
  386. package/dist/p1/editor/hooks/useLiveRemoteDatasources.d.ts +11 -7
  387. package/dist/p1/editor/hooks/useLiveRemoteDatasources.d.ts.map +1 -1
  388. package/dist/p1/editor/hooks/useLiveRemoteDatasources.js +4 -35
  389. package/dist/p1/editor/hooks/useLiveRemoteDatasources.js.map +1 -1
  390. package/dist/p1/editor/hooks/useP1Plugins.d.ts +5 -0
  391. package/dist/p1/editor/hooks/useP1Plugins.d.ts.map +1 -1
  392. package/dist/p1/editor/hooks/useP1Plugins.js +5 -18
  393. package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -1
  394. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +0 -7
  395. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
  396. package/dist/p1/editor/template-autocomplete-layer.js +0 -4
  397. package/dist/p1/editor/template-autocomplete-layer.js.map +1 -1
  398. package/dist/pds/components/AgentChip.js +0 -3
  399. package/dist/pds/components/AgentChip.js.map +1 -1
  400. package/dist/pds/components/CreatePageModal.js +1 -97
  401. package/dist/pds/components/CreatePageModal.js.map +1 -1
  402. package/dist/pds/components/LoadingMessage.d.ts.map +1 -1
  403. package/dist/pds/components/LoadingMessage.js +2 -1
  404. package/dist/pds/components/LoadingMessage.js.map +1 -1
  405. package/dist/pds/components/LoadingMessage.module.css +2 -21
  406. package/dist/pds/components/LoadingOverlay.d.ts +17 -0
  407. package/dist/pds/components/LoadingOverlay.d.ts.map +1 -0
  408. package/dist/pds/components/LoadingOverlay.js +7 -0
  409. package/dist/pds/components/LoadingOverlay.js.map +1 -0
  410. package/dist/pds/components/LoadingOverlay.module.css +28 -0
  411. package/dist/pds/components/P1EditorHeader.d.ts +9 -2
  412. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  413. package/dist/pds/components/P1EditorHeader.js +6 -26
  414. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  415. package/dist/pds/components/P1EditorHeader.module.css +26 -0
  416. package/dist/pds/components/PageNavigator.js +0 -16
  417. package/dist/pds/components/PageNavigator.js.map +1 -1
  418. package/dist/pds/components/PresenceStack.js +0 -9
  419. package/dist/pds/components/PresenceStack.js.map +1 -1
  420. package/dist/pds/components/PublishControl.js +0 -6
  421. package/dist/pds/components/PublishControl.js.map +1 -1
  422. package/dist/pds/components/WorkstreamSwitcher.js +1 -25
  423. package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
  424. package/dist/pds/index.d.ts +2 -0
  425. package/dist/pds/index.d.ts.map +1 -1
  426. package/dist/pds/index.js +1 -29
  427. package/dist/pds/index.js.map +1 -1
  428. package/dist/pds/theme/pds-core-content.js +0 -5
  429. package/dist/pds/theme/pds-core-content.js.map +1 -1
  430. package/dist/pds/utils/deriveDocState.js +0 -1
  431. package/dist/pds/utils/deriveDocState.js.map +1 -1
  432. package/dist/pds/utils/deriveLiveDocState.js +0 -13
  433. package/dist/pds/utils/deriveLiveDocState.js.map +1 -1
  434. package/dist/registry-sync.js +0 -4
  435. package/dist/registry-sync.js.map +1 -1
  436. package/dist/server.js +0 -7
  437. package/dist/server.js.map +1 -1
  438. package/dist/versioning/components/ReadOnlyFieldsGuard.js +0 -3
  439. package/dist/versioning/components/ReadOnlyFieldsGuard.js.map +1 -1
  440. package/dist/versioning/components/VersionBannerActions.js +0 -1
  441. package/dist/versioning/components/VersionBannerActions.js.map +1 -1
  442. package/dist/versioning/components/version-compare/BranchDiffHeader.js +0 -7
  443. package/dist/versioning/components/version-compare/BranchDiffHeader.js.map +1 -1
  444. package/dist/versioning/components/version-compare/BranchMergeCompare.js +0 -19
  445. package/dist/versioning/components/version-compare/BranchMergeCompare.js.map +1 -1
  446. package/dist/versioning/components/version-compare/ComponentNode.js +0 -8
  447. package/dist/versioning/components/version-compare/ComponentNode.js.map +1 -1
  448. package/dist/versioning/components/version-compare/ComponentTree.js +0 -10
  449. package/dist/versioning/components/version-compare/ComponentTree.js.map +1 -1
  450. package/dist/versioning/components/version-compare/DiffHeader.js +0 -3
  451. package/dist/versioning/components/version-compare/DiffHeader.js.map +1 -1
  452. package/dist/versioning/components/version-compare/DocumentDiffList.js +0 -14
  453. package/dist/versioning/components/version-compare/DocumentDiffList.js.map +1 -1
  454. package/dist/versioning/components/version-compare/PropDiffPanel.js +0 -7
  455. package/dist/versioning/components/version-compare/PropDiffPanel.js.map +1 -1
  456. package/dist/versioning/components/version-compare/PropDiffRow.js +0 -3
  457. package/dist/versioning/components/version-compare/PropDiffRow.js.map +1 -1
  458. package/dist/versioning/components/version-compare/PropValueDisplay.js +0 -22
  459. package/dist/versioning/components/version-compare/PropValueDisplay.js.map +1 -1
  460. package/dist/versioning/components/version-compare/VersionComparePage.js +0 -13
  461. package/dist/versioning/components/version-compare/VersionComparePage.js.map +1 -1
  462. package/dist/versioning/components/version-compare/VisualBranchCompare.js +0 -17
  463. package/dist/versioning/components/version-compare/VisualBranchCompare.js.map +1 -1
  464. package/dist/versioning/components/version-compare/VisualVersionCompare.js +0 -23
  465. package/dist/versioning/components/version-compare/VisualVersionCompare.js.map +1 -1
  466. package/dist/versioning/components/version-compare/index.js +0 -5
  467. package/dist/versioning/components/version-compare/index.js.map +1 -1
  468. package/dist/versioning/components/version-history/AgentCheckpointBadge.js +0 -14
  469. package/dist/versioning/components/version-history/AgentCheckpointBadge.js.map +1 -1
  470. package/dist/versioning/components/version-history/VersionItem.js +0 -7
  471. package/dist/versioning/components/version-history/VersionItem.js.map +1 -1
  472. package/dist/versioning/components/version-history/index.js +0 -5
  473. package/dist/versioning/components/version-history/index.js.map +1 -1
  474. package/dist/versioning/useCheckpoints.js +0 -28
  475. package/dist/versioning/useCheckpoints.js.map +1 -1
  476. package/dist/versioning/useVersions.js +0 -31
  477. package/dist/versioning/useVersions.js.map +1 -1
  478. package/dist/versioning/utils/branchDiff.js +0 -93
  479. package/dist/versioning/utils/branchDiff.js.map +1 -1
  480. package/dist/versioning/utils/diff.js +0 -79
  481. package/dist/versioning/utils/diff.js.map +1 -1
  482. package/dist/versioning/utils/formatVersionDate.js +0 -12
  483. package/dist/versioning/utils/formatVersionDate.js.map +1 -1
  484. package/dist/versioning/utils/highlightConfig.js +0 -42
  485. package/dist/versioning/utils/highlightConfig.js.map +1 -1
  486. package/dist/versioning/utils/versionKind.js +0 -10
  487. package/dist/versioning/utils/versionKind.js.map +1 -1
  488. package/package.json +7 -7
  489. package/src/pds/theme/PuckEditorTheme.css +23 -5
  490. package/src/styles.css +1 -1
  491. package/src/pds/theme/PuckEditorTheme.test.ts +0 -186
  492. package/src/pds/theme/pds-core-content.ts +0 -8
@@ -1,16 +1,9 @@
1
1
  "use client";
2
- /**
3
- * useP1Editor Hook
4
- *
5
- * All-in-one hook for setting up a P1-enabled Puck editor.
6
- * Composes useP1Plugin and useP1Overrides internally, handles
7
- * document loading, version management, historical version protection,
8
- * and provides everything needed to render <Puck>.
9
- */
10
2
  import { useState, useEffect, useRef, useMemo, useCallback } from 'react';
11
3
  import { useP1Puck } from '../core/P1PuckContext.js';
12
4
  import { useVersions } from '../versioning/useVersions.js';
13
5
  import { useP1Auth } from '../auth/index.js';
6
+ import { isDocumentGoneError } from '../data/utils.js';
14
7
  import { useP1Plugin } from './useP1Plugin.js';
15
8
  import { useP1Overrides } from './useP1Overrides.js';
16
9
  import { useComponentRegistry } from './useComponentRegistry.js';
@@ -20,67 +13,35 @@ import { restoreDocumentVersion } from './utils/restoreDocumentVersion.js';
20
13
  import { initialPanelUi } from './useResponsivePanels.js';
21
14
  import { createDocumentSyncStore, createDocumentSyncPlugin, documentSyncKey, BLANK_SYNC_KEY, } from './plugin/document-sync-plugin.js';
22
15
  import { resolveLiveThumbnailDrawer } from './thumbnails/resolveLiveThumbnailDrawer.js';
23
- /**
24
- * All-in-one hook for setting up a P1-enabled Puck editor.
25
- *
26
- * Handles document loading, version management, plugin/overrides creation,
27
- * safe data, historical version protection, and plugin array assembly.
28
- * Returns everything needed to render <Puck> with minimal boilerplate.
29
- *
30
- * Must be used inside a P1PuckProvider.
31
- *
32
- * @param options - Editor configuration
33
- * @returns Loading state, puck props, and P1 context
34
- *
35
- * @example
36
- * ```tsx
37
- * function Editor() {
38
- * const { loading, error, puckProps } = useP1Editor({
39
- * documentPath: '/home',
40
- * puckConfig: config,
41
- * });
42
- *
43
- * if (loading) return <Loading />;
44
- * if (error) return <Error error={error} />;
45
- *
46
- * return <Puck {...puckProps} />;
47
- * }
48
- * ```
49
- */
50
16
  export function useP1Editor(options) {
51
17
  const { documentPath, puckConfig, additionalPlugins, additionalOverrides, thumbnails, liveThumbnailDrawer, overrideOptions, pluginOptions, onSelectionChange, onDocumentNotFound, } = options;
52
- const css = useP1Puck();
18
+ const ccr = useP1Puck();
53
19
  const { user, logout } = useP1Auth();
54
- // =========================================================================
55
- // Document Loading
56
- // =========================================================================
57
20
  const [loading, setLoading] = useState(true);
58
21
  const [error, setError] = useState(null);
59
22
  const [needsRedirect, setNeedsRedirect] = useState(false);
60
23
  const loadedPathRef = useRef(null);
61
- // Reset loaded path when branch changes so document reloads on the new branch
62
- const prevBranchRef = useRef(css.branchId);
63
- if (prevBranchRef.current !== css.branchId) {
64
- prevBranchRef.current = css.branchId;
24
+ const loadedBranchRef = useRef(null);
25
+ const prevBranchRef = useRef(ccr.branchId);
26
+ if (prevBranchRef.current !== ccr.branchId) {
27
+ prevBranchRef.current = ccr.branchId;
65
28
  loadedPathRef.current = null;
66
29
  }
67
- // Keep callback in a ref so the effect doesn't re-run when it changes
68
30
  const onDocumentNotFoundRef = useRef(onDocumentNotFound);
69
31
  onDocumentNotFoundRef.current = onDocumentNotFound;
70
32
  useEffect(() => {
71
- // Wait for branch resolution before loading documents
72
- if (!css.branchId)
33
+ if (!ccr.branchId)
73
34
  return;
74
- // Skip if already loaded this path on this branch
75
35
  if (loadedPathRef.current === documentPath)
76
36
  return;
77
37
  let cancelled = false;
78
38
  setLoading(true);
79
39
  setError(null);
80
- css.loadDocument(documentPath)
40
+ ccr.loadDocument(documentPath)
81
41
  .then(() => {
82
42
  if (!cancelled) {
83
43
  loadedPathRef.current = documentPath;
44
+ loadedBranchRef.current = ccr.branchId;
84
45
  setNeedsRedirect(false);
85
46
  setLoading(false);
86
47
  }
@@ -89,26 +50,28 @@ export function useP1Editor(options) {
89
50
  if (cancelled)
90
51
  return;
91
52
  const loadErr = err instanceof Error ? err : new Error(String(err));
92
- // Give the consumer a chance to handle the error (e.g. auto-create)
53
+ if (isDocumentGoneError(loadErr)) {
54
+ setNeedsRedirect(true);
55
+ return;
56
+ }
93
57
  if (onDocumentNotFoundRef.current) {
94
58
  try {
95
59
  const shouldRetry = await onDocumentNotFoundRef.current(documentPath, loadErr);
96
60
  if (!cancelled && shouldRetry) {
97
- await css.loadDocument(documentPath);
61
+ await ccr.loadDocument(documentPath);
98
62
  if (!cancelled) {
99
63
  loadedPathRef.current = documentPath;
64
+ loadedBranchRef.current = ccr.branchId;
100
65
  setNeedsRedirect(false);
101
66
  setLoading(false);
102
- void css.refreshDocuments();
67
+ void ccr.refreshDocuments();
103
68
  }
104
69
  return;
105
70
  }
106
71
  }
107
72
  catch {
108
- // callback itself failed — fall through to unload
109
73
  }
110
74
  }
111
- // Unload the editor; recovery effect will set an error if no docs exist
112
75
  if (!cancelled) {
113
76
  setNeedsRedirect(true);
114
77
  }
@@ -116,67 +79,48 @@ export function useP1Editor(options) {
116
79
  return () => {
117
80
  cancelled = true;
118
81
  };
119
- }, [documentPath, css.branchId, css.loadDocument]);
120
- // Recovery: document not found on this branch unload the editor and let
121
- // the preview empty state guide the user to pick a page.
82
+ }, [documentPath, ccr.branchId, ccr.loadDocument]);
83
+ const branchBootError = ccr.branchId ? null : ccr.branchResolutionError ?? null;
122
84
  useEffect(() => {
123
85
  if (!needsRedirect)
124
86
  return;
125
- if (css.documentsLoading)
87
+ if (ccr.documentsLoading)
126
88
  return;
127
89
  setNeedsRedirect(false);
128
- if (css.documents.length === 0) {
129
- setError(new Error('No documents found on this branch'));
90
+ if (ccr.documents.length === 0) {
91
+ setError(ccr.documentsError ?? new Error('No documents found on this branch'));
130
92
  }
131
93
  setLoading(false);
132
- }, [needsRedirect, css.documentsLoading, css.documents.length]);
133
- // =========================================================================
134
- // Version Management
135
- // =========================================================================
94
+ }, [needsRedirect, ccr.documentsLoading, ccr.documents.length, ccr.documentsError]);
136
95
  const { versions, loading: versionsLoading, refresh: refreshVersions, } = useVersions({
137
- client: css.client,
138
- siteId: css.siteId,
139
- branchId: css.branchId,
140
- documentId: css.currentDocument?.id ?? null,
96
+ client: ccr.client,
97
+ siteId: ccr.siteId,
98
+ branchId: ccr.branchId,
99
+ documentId: ccr.currentDocument?.id ?? null,
141
100
  });
142
- // Refresh versions when document changes; also reset eager-version flag so a
143
- // stale post-publish signal from the previous document never fires on the new one.
144
101
  useEffect(() => {
145
102
  needsVersionRef.current = false;
146
- if (css.currentDocument?.id)
103
+ if (ccr.currentDocument?.id)
147
104
  void refreshVersions();
148
- }, [css.currentDocument?.id, refreshVersions]);
149
- // Refresh versions after a successful save so the publish badge reflects the
150
- // new unpublished draft (publishedStatus flips 'published' → 'unpublished-changes').
151
- // Without this the badge would keep reading "Live" after an edit on the Live branch.
105
+ }, [ccr.currentDocument?.id, refreshVersions]);
152
106
  useEffect(() => {
153
- if (css.saveStatus === 'saved')
107
+ if (ccr.saveStatus === 'saved')
154
108
  void refreshVersions();
155
- }, [css.saveStatus, refreshVersions]);
156
- // Select a version — latest returns to live editing, others load historical
109
+ }, [ccr.saveStatus, refreshVersions]);
157
110
  const handleVersionSelect = useCallback((version) => {
158
111
  const latestVersion = versions[0];
159
112
  if (latestVersion && version.id === latestVersion.id) {
160
- void css.returnToLatest();
113
+ void ccr.returnToLatest();
161
114
  }
162
115
  else {
163
- void css.loadVersion(version);
116
+ void ccr.loadVersion(version);
164
117
  }
165
- }, [versions, css.loadVersion, css.returnToLatest]);
166
- // Revert to a prior version.
167
- const handleRestoreVersion = useCallback((version) => restoreDocumentVersion(version, css, refreshVersions, () => { }), [css, refreshVersions]);
168
- // =========================================================================
169
- // Published Status (derived from version data)
170
- // =========================================================================
171
- // The backend includes isPublished on each DocumentVersion via an EXISTS
172
- // subquery against checkpoint_documents. No additional API calls needed.
173
- const currentVersionId = css.viewingVersion?.id ?? versions[0]?.id;
118
+ }, [versions, ccr.loadVersion, ccr.returnToLatest]);
119
+ const handleRestoreVersion = useCallback((version) => restoreDocumentVersion(version, ccr, refreshVersions, () => { }), [ccr, refreshVersions]);
120
+ const currentVersionId = ccr.viewingVersion?.id ?? versions[0]?.id;
174
121
  const currentVersionIsPublished = versions.find(v => v.id === currentVersionId)?.isPublished ?? false;
175
122
  const hasPublishedVersion = versions.some(v => v.isPublished);
176
- // Look up the current document from the branch document list, which includes
177
- // inherited and isPublished fields from the branch-level listing endpoint.
178
- // css.currentDocument comes from the site-level getByPath endpoint and lacks these.
179
- const branchDocument = css.documents.find(d => d.id === css.currentDocument?.id);
123
+ const branchDocument = ccr.documents.find(d => d.id === ccr.currentDocument?.id);
180
124
  const inheritedAndPublished = branchDocument?.inherited && branchDocument?.isPublished;
181
125
  const publishedStatus = versionsLoading
182
126
  ? undefined
@@ -187,60 +131,58 @@ export function useP1Editor(options) {
187
131
  : hasPublishedVersion
188
132
  ? 'unpublished-changes'
189
133
  : 'draft';
190
- // =========================================================================
191
- // Focus Region Reporting (outgoing — report local selection to server)
192
- // =========================================================================
193
- // Report selection changes to the presence system via WebSocket.
194
- // Wraps the consumer's onSelectionChange so both reporting and
195
- // the consumer callback are called.
196
134
  const onSelectionChangeRef = useRef(onSelectionChange);
197
135
  onSelectionChangeRef.current = onSelectionChange;
198
136
  const handleSelectionChange = useCallback((path, itemId) => {
199
- // Report to presence system via WebSocket (instant broadcast to other clients)
200
137
  const regions = path ? [path] : [];
201
- css.sendFocusRegions(regions);
202
- // Forward to consumer callback
138
+ ccr.sendFocusRegions(regions);
203
139
  onSelectionChangeRef.current?.(path, itemId);
204
- }, [css.sendFocusRegions]);
205
- // =========================================================================
206
- // Component Registry (runs at editor startup, writes descriptors to P1 backend)
207
- // =========================================================================
140
+ }, [ccr.sendFocusRegions]);
208
141
  useComponentRegistry({ puckConfig });
209
- // =========================================================================
210
- // Plugin & Overrides (composed hooks)
211
- // =========================================================================
212
- // Set true after a successful publish; the next onChange fires the eager
213
- // version create and clears this immediately.
214
142
  const needsVersionRef = useRef(false);
215
- const eagerVersionParamsRef = useRef({ siteId: css.siteId, branchId: css.branchId, documentId: css.currentDocument?.id ?? null });
216
- eagerVersionParamsRef.current = { siteId: css.siteId, branchId: css.branchId, documentId: css.currentDocument?.id ?? null };
217
- // Wrap publish to refresh version list and call consumer callback after success.
143
+ const eagerVersionParamsRef = useRef({ siteId: ccr.siteId, branchId: ccr.branchId, documentId: ccr.currentDocument?.id ?? null });
144
+ eagerVersionParamsRef.current = { siteId: ccr.siteId, branchId: ccr.branchId, documentId: ccr.currentDocument?.id ?? null };
218
145
  const consumerOnPublishSuccessRef = useRef(overrideOptions?.onPublishSuccess);
219
146
  consumerOnPublishSuccessRef.current = overrideOptions?.onPublishSuccess;
220
147
  const handlePublish = useCallback(async () => {
221
- const checkpoint = await css.publishDocument();
148
+ const checkpoint = await ccr.publishDocument();
222
149
  needsVersionRef.current = true;
223
150
  void refreshVersions();
224
151
  consumerOnPublishSuccessRef.current?.(checkpoint);
225
- }, [css, refreshVersions]);
226
- const canRevert = css.userRole === 'admin' || css.userRole === 'editor';
227
- // Pushes freshly loaded documents into the live Puck instance, replacing
228
- // the remount-on-document-switch behavior the old document-scoped puckKey
229
- // provided (see document-sync-plugin.tsx). Handed to the P1 plugin as well
230
- // so its context sync defers document switches to this store.
152
+ }, [ccr, refreshVersions]);
153
+ const canRevert = ccr.userRole === 'admin' || ccr.userRole === 'editor' || ccr.userRole === 'author';
231
154
  const [documentSyncStore] = useState(createDocumentSyncStore);
155
+ const [logoutError, setLogoutError] = useState(null);
156
+ const [isLoggingOut, setIsLoggingOut] = useState(false);
157
+ const handleLogout = useCallback(async () => {
158
+ setIsLoggingOut(true);
159
+ setLogoutError(null);
160
+ try {
161
+ const outcome = await logout();
162
+ if (outcome.status === 'error') {
163
+ setLogoutError(outcome.message);
164
+ setIsLoggingOut(false);
165
+ }
166
+ }
167
+ catch (err) {
168
+ setLogoutError(err instanceof Error ? err.message : 'Logout failed');
169
+ setIsLoggingOut(false);
170
+ }
171
+ }, [logout]);
232
172
  const p1Plugin = useP1Plugin({
233
173
  documentSyncStore,
234
174
  onSelectionChange: handleSelectionChange,
235
- currentUser: user ? { id: css.userId, name: user.name, email: user.email, avatar: user.picture } : undefined,
236
- onLogout: logout,
175
+ currentUser: user ? { id: ccr.userId, name: user.name, email: user.email, avatar: user.picture } : undefined,
176
+ onLogout: handleLogout,
177
+ logoutError,
178
+ isLoggingOut,
237
179
  puckConfig,
238
180
  ...pluginOptions,
239
181
  onPublish: handlePublish,
240
182
  versions,
241
183
  versionsLoading,
242
184
  publishedStatus,
243
- selectedVersionId: css.viewingVersion?.id ?? undefined,
185
+ selectedVersionId: ccr.viewingVersion?.id ?? undefined,
244
186
  onVersionSelect: handleVersionSelect,
245
187
  onRestoreVersion: handleRestoreVersion,
246
188
  canRevert,
@@ -254,11 +196,7 @@ export function useP1Editor(options) {
254
196
  publishedStatus,
255
197
  ...(overrideOptions?.onPublishSuccess ? { onPublishSuccess: wrappedOnPublishSuccess } : {}),
256
198
  });
257
- // =========================================================================
258
- // Stable plugin array
259
- // =========================================================================
260
199
  if (process.env.NODE_ENV === "development") {
261
- // eslint-disable-next-line react-hooks/rules-of-hooks
262
200
  const prev = useRef(additionalPlugins);
263
201
  if (prev.current !== additionalPlugins) {
264
202
  const countChanged = (prev.current?.length ?? 0) !== (additionalPlugins?.length ?? 0);
@@ -273,43 +211,27 @@ export function useP1Editor(options) {
273
211
  additionalPluginsRef.current = additionalPlugins;
274
212
  const pluginCount = additionalPlugins?.length ?? 0;
275
213
  const documentSyncPlugin = useMemo(() => createDocumentSyncPlugin(documentSyncStore), [documentSyncStore]);
276
- // Publish the loaded document into the live Puck instance.
277
- //
278
- // Both the key and the data come from the payload's own origin, so a key can
279
- // never be paired with a different document's data. Keying off the live
280
- // branchId instead published the incoming branch's key beside the outgoing
281
- // branch's data the instant a switch began; the plugin applied that pairing,
282
- // recorded the new key as applied, and then ignored the correct document when
283
- // it arrived under the same key — leaving the canvas a workstream behind.
284
- //
285
- // safeData is read directly rather than through a ref: it only advances when
286
- // the provider loads a document (saveData deliberately never touches
287
- // currentData), so it cannot re-fire on every keystroke.
288
- const currentDocumentId = css.currentDocument?.id;
289
- const origin = css.currentDataOrigin;
214
+ const currentDocumentId = ccr.currentDocument?.id;
215
+ const origin = ccr.currentDataOrigin;
290
216
  useEffect(() => {
291
217
  if (loading || error || !origin)
292
218
  return;
293
- // Historical versions sync through ContextSyncBridge, which does not reset
294
- // the undo stack.
295
219
  if (origin.historical)
296
220
  return;
297
- // Mid-switch the payload still belongs to the outgoing branch or document.
298
- // Withholding it keeps the applied key naming what the canvas really shows.
299
- if (origin.branchId !== css.branchId)
221
+ if (origin.branchId !== ccr.branchId)
300
222
  return;
301
223
  if (origin.documentId !== currentDocumentId)
302
224
  return;
303
225
  documentSyncStore.publish({
304
226
  syncKey: documentSyncKey(origin.branchId, origin.documentId),
305
- data: css.safeData,
227
+ data: ccr.safeData,
306
228
  });
307
229
  }, [
308
230
  loading,
309
231
  error,
310
232
  origin,
311
- css.safeData,
312
- css.branchId,
233
+ ccr.safeData,
234
+ ccr.branchId,
313
235
  currentDocumentId,
314
236
  documentSyncStore,
315
237
  ]);
@@ -320,30 +242,20 @@ export function useP1Editor(options) {
320
242
  }
321
243
  return result;
322
244
  }, [p1Plugin, documentSyncPlugin, pluginCount]);
323
- // =========================================================================
324
- // Stable onChange (disabled for historical versions, guarded across
325
- // document switches)
326
- // =========================================================================
327
- const isViewingHistoricalRef = useRef(css.isViewingHistoricalVersion);
328
- isViewingHistoricalRef.current = css.isViewingHistoricalVersion;
329
- // With Puck surviving document switches, onChange can fire while the canvas
330
- // still shows the previous document but css already targets the new one
331
- // (load in flight, or loaded but not yet pushed by the sync plugin). Saving
332
- // then would write the old page's content into the new page — drop instead.
245
+ const isViewingHistoricalRef = useRef(ccr.isViewingHistoricalVersion);
246
+ isViewingHistoricalRef.current = ccr.isViewingHistoricalVersion;
333
247
  const saveTargetKeyRef = useRef(null);
334
- saveTargetKeyRef.current = css.currentDocument?.id
335
- ? documentSyncKey(css.branchId, css.currentDocument.id)
248
+ saveTargetKeyRef.current = ccr.currentDocument?.id
249
+ ? documentSyncKey(ccr.branchId, ccr.currentDocument.id)
336
250
  : null;
337
251
  const eagerVersionHandler = useMemo(() => makeEagerVersionHandler(needsVersionRef, () => eagerVersionParamsRef.current, {
338
- createVersion: (siteId, params) => css.client.versions.create(siteId, params),
252
+ createVersion: (siteId, params) => ccr.client.versions.create(siteId, params),
339
253
  refreshVersions,
340
- }), [css.client, refreshVersions]);
341
- const { saveData } = css;
254
+ }), [ccr.client, refreshVersions]);
255
+ const { saveData } = ccr;
342
256
  const onChange = useCallback((data) => {
343
257
  if (isViewingHistoricalRef.current)
344
258
  return;
345
- // The blank sentinel stays permissive so a consumer running without the
346
- // document-sync plugin is not frozen read-only.
347
259
  const appliedKey = documentSyncStore.getAppliedKey();
348
260
  if (appliedKey !== BLANK_SYNC_KEY && appliedKey !== saveTargetKeyRef.current) {
349
261
  console.warn('[useP1Editor] save SKIPPED: canvas/document mismatch during switch.', 'canvas:', appliedKey, 'target:', saveTargetKeyRef.current);
@@ -352,44 +264,21 @@ export function useP1Editor(options) {
352
264
  eagerVersionHandler(data);
353
265
  saveData(data);
354
266
  }, [saveData, documentSyncStore, eagerVersionHandler]);
355
- // =========================================================================
356
- // Permissions (read-only for historical versions)
357
- // =========================================================================
358
267
  const permissions = useMemo(() => {
359
- if (css.isViewingHistoricalVersion) {
360
- // Omit edit:false so page/root fields are never locked by Puck's own
361
- // readonly rendering. Interaction is blocked by ReadOnlyFieldsGuard
362
- // (inert attribute) instead, which also covers root fields without
363
- // requiring resolvePermissions on config.root.
268
+ if (ccr.isViewingHistoricalVersion) {
364
269
  return { delete: false, drag: false, duplicate: false, insert: false };
365
270
  }
366
271
  return { delete: true, drag: true, duplicate: true, edit: true, insert: true };
367
- }, [css.isViewingHistoricalVersion]);
368
- // =========================================================================
369
- // Stable merged overrides
370
- // =========================================================================
371
- // Merge additional overrides (e.g. from media plugins) with P1 overrides.
372
- // Uses ref pattern to keep the merge stable — only recomputes when
373
- // p1Overrides changes, not when additionalOverrides reference changes
374
- // (which would happen every render if the consumer doesn't memoize).
272
+ }, [ccr.isViewingHistoricalVersion]);
375
273
  const additionalOverridesRef = useRef(additionalOverrides);
376
274
  additionalOverridesRef.current = additionalOverrides;
377
- // Thumbnail override — built from the thumbnails map and merged between
378
- // p1Overrides and additionalOverrides so the site can still fully override
379
- // componentItem if needed.
380
275
  const thumbnailsRef = useRef(thumbnails);
381
276
  thumbnailsRef.current = thumbnails;
382
- // Live thumbnail drawer — default ON for every consumer. Uses raw puckConfig
383
- // (not configWithPermissions) so previews show all components regardless of
384
- // role. Because useMemo deps on p1Overrides (stable after mount), changes to
385
- // puckConfig or liveThumbnailDrawer after mount are not picked up.
386
277
  const puckConfigRef = useRef(puckConfig);
387
278
  puckConfigRef.current = puckConfig;
388
279
  const liveThumbnailDrawerRef = useRef(liveThumbnailDrawer);
389
280
  liveThumbnailDrawerRef.current = liveThumbnailDrawer;
390
281
  const mergedOverrides = useMemo(() => {
391
- // Layer order (last wins):
392
- // p1Overrides → liveThumbnailDrawer → thumbnailOverride → additionalOverrides
393
282
  const layers = [
394
283
  p1Overrides,
395
284
  resolveLiveThumbnailDrawer(puckConfigRef.current, liveThumbnailDrawerRef.current),
@@ -413,33 +302,14 @@ export function useP1Editor(options) {
413
302
  }
414
303
  return merged;
415
304
  }, [p1Overrides]);
416
- // =========================================================================
417
- // Assemble puckProps
418
- // =========================================================================
419
- // Key that forces Puck to remount on role change (let puck internally manage the change on document change),
420
- // ensuring clean undo history, sidebar state, and fresh permission cache.
421
- // Puck caches resolvePermissions results per component instance — the
422
- // cache is only invalidated when component data changes, not when the
423
- // resolver function changes. Including userRole in the key forces a
424
- // clean remount with an empty cache when roles switch.
425
- const puckKey = `css-${css.userRole}`;
426
- // Sidebar visibility for the initial mount. puckKey is the dependency on
427
- // purpose even though it is not read here: a new key remounts Puck, which
428
- // re-reads this as its initial `ui`, so the budget must be applied again.
429
- // eslint-disable-next-line react-hooks/exhaustive-deps
305
+ const puckKey = `p1-${ccr.userRole}`;
430
306
  const initialSidebarUi = useMemo(() => initialPanelUi(), [puckKey]);
431
- // Focus highlighting is handled via direct DOM manipulation in
432
- // PresenceFocusBridge (P1App.tsx) no config wrapping needed.
433
- // Inject per-component resolvePermissions into the Puck config.
434
- // Puck doesn't have a top-level resolvePermissions prop — permissions
435
- // must be resolved per-component via config[type].resolvePermissions.
436
- const resolvePermsRef = useRef(css.resolvePermissions);
437
- resolvePermsRef.current = css.resolvePermissions;
438
- // Template mode: editing a template document (path `_registry/templates/<name>`).
439
- const isTemplateMode = /^_registry\/templates\//.test(css.currentDocument?.path ?? '');
307
+ const resolvePermsRef = useRef(ccr.resolvePermissions);
308
+ resolvePermsRef.current = ccr.resolvePermissions;
309
+ const isTemplateMode = /^_registry\/templates\//.test(ccr.currentDocument?.path ?? '');
440
310
  const configWithPermissions = useMemo(() => {
441
311
  let cfg = puckConfig;
442
- if (css.resolvePermissions) {
312
+ if (ccr.resolvePermissions) {
443
313
  const components = (cfg.components ?? {});
444
314
  const wrapped = {};
445
315
  for (const [name, comp] of Object.entries(components)) {
@@ -450,12 +320,6 @@ export function useP1Editor(options) {
450
320
  if (!resolver)
451
321
  return params.permissions;
452
322
  const basePerms = resolver({ type: name, props: data?.props }, {});
453
- // Template-authoring mode: the context resolver only sees a
454
- // metadata summary (no pins), so the document's live _pinMap is the
455
- // pin source. On a bound page the resolver reads the live template
456
- // and already governs pins, so the page's own snapshot pinMap is
457
- // ignored — otherwise a stale pin would stay locked after the
458
- // template unpins it.
459
323
  if (isTemplateMode) {
460
324
  const pinMap = (params.appState?.data?.root?.props?._pinMap ?? {});
461
325
  const compId = data?.props?.id;
@@ -469,31 +333,41 @@ export function useP1Editor(options) {
469
333
  }
470
334
  cfg = { ...cfg, components: wrapped };
471
335
  }
472
- // In template mode, relabel the right-sidebar root header "Page" -> "Template".
473
- // Puck derives that heading from `config.root.label` (no override hook exists).
474
336
  if (isTemplateMode) {
475
337
  const root = (cfg.root ?? {});
476
338
  cfg = { ...cfg, root: { ...root, label: 'Template' } };
477
339
  }
478
340
  return cfg;
479
- }, [puckConfig, !!css.resolvePermissions, isTemplateMode]);
341
+ }, [puckConfig, !!ccr.resolvePermissions, isTemplateMode]);
480
342
  const puckProps = useMemo(() => ({
481
343
  config: configWithPermissions,
482
- data: css.safeData,
344
+ data: ccr.safeData,
483
345
  onChange,
484
346
  plugins,
485
347
  overrides: mergedOverrides,
486
348
  ui: initialSidebarUi,
487
349
  permissions,
488
- onAction: css.handleAction,
489
- }), [configWithPermissions, css.safeData, onChange, plugins, mergedOverrides, initialSidebarUi, permissions, css.handleAction]);
350
+ onAction: ccr.handleAction,
351
+ }), [configWithPermissions, ccr.safeData, onChange, plugins, mergedOverrides, initialSidebarUi, permissions, ccr.handleAction]);
352
+ const inFlight = branchBootError === null && loading;
353
+ const lastGoodRef = useRef(null);
354
+ const settled = loadedPathRef.current === documentPath && loadedBranchRef.current === ccr.branchId;
355
+ if (settled && !inFlight && !error && !branchBootError) {
356
+ lastGoodRef.current = { puckKey, puckProps };
357
+ }
358
+ const retained = lastGoodRef.current;
359
+ const hasContent = retained !== null;
360
+ const reloadKind = loadedBranchRef.current !== null && loadedBranchRef.current !== ccr.branchId
361
+ ? 'branch'
362
+ : 'document';
490
363
  return {
491
- loading,
492
- error,
493
- puckKey,
494
- puckProps,
495
- css,
496
- /** @deprecated No longer emitted — editor now shows an empty state when a document is not found on the current branch. */
364
+ loading: inFlight && !hasContent,
365
+ reloading: inFlight && hasContent ? reloadKind : null,
366
+ hasContent,
367
+ error: error ?? branchBootError,
368
+ puckKey: retained?.puckKey ?? puckKey,
369
+ puckProps: retained?.puckProps ?? puckProps,
370
+ css: ccr,
497
371
  redirectPath: null,
498
372
  };
499
373
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Editor.js","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useP1Editor.js","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"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"}