@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,73 +1,38 @@
1
- /**
2
- * useP1Overrides Hook
3
- *
4
- * Creates referentially stable Puck overrides for P1 integration.
5
- * Internally reads getters and callbacks from P1PuckProvider context
6
- * and wires them to createP1Overrides with correct options.
7
- */
8
1
  import { useRef, useMemo } from 'react';
9
2
  import { useP1Puck } from '../core/P1PuckContext.js';
10
3
  import { createP1Overrides } from './plugin/createP1Overrides.js';
11
- /**
12
- * Creates referentially stable Puck overrides for P1 integration.
13
- *
14
- * Reads stable getters and callbacks from P1PuckProvider context and
15
- * wires them to createP1Overrides. Uses a Proxy pattern to keep the
16
- * overrides object referentially stable across re-renders.
17
- *
18
- * Must be used inside a P1PuckProvider.
19
- *
20
- * @param options - Optional customization
21
- * @returns Stable PuckOverrides instance
22
- *
23
- * @example
24
- * ```tsx
25
- * function Editor() {
26
- * const overrides = useP1Overrides({
27
- * onPublishSuccess: (cp) => console.log('Published:', cp.name),
28
- * });
29
- * return <Puck overrides={overrides} config={config} data={data} />;
30
- * }
31
- * ```
32
- */
33
4
  export function useP1Overrides(options = {}) {
34
- const css = useP1Puck();
35
- // Build the full overrides options from context + consumer options
36
- const fc = css.featureConfig;
5
+ const ccr = useP1Puck();
6
+ const fc = ccr.featureConfig;
37
7
  const overridesOptions = {
38
- // Use getter-based API for performance (avoids overrides recreation)
39
- getSaveStatus: css.getSaveStatus,
40
- getLastSaved: css.getLastSaved,
41
- getSaveError: css.getSaveError,
42
- onRetrySave: css.saveNow,
8
+ getSaveStatus: ccr.getSaveStatus,
9
+ getLastSaved: ccr.getLastSaved,
10
+ getSaveError: ccr.getSaveError,
11
+ onRetrySave: ccr.saveNow,
43
12
  showDefaultPublish: options.showDefaultPublish,
44
13
  showSaveIndicator: fc?.enableAutoSave ?? true,
45
- isViewingHistoricalVersion: css.isViewingHistoricalVersion,
46
- viewingVersion: css.viewingVersion,
47
- onReturnToLatest: css.returnToLatest,
48
- // Presence/Agent features — gated by featureConfig flags
14
+ isViewingHistoricalVersion: ccr.isViewingHistoricalVersion,
15
+ viewingVersion: ccr.viewingVersion,
16
+ onReturnToLatest: ccr.returnToLatest,
49
17
  showCollaboratorAvatars: options.showCollaboratorAvatars
50
- ?? ((fc?.enableCollaboratorAvatars ?? true) && css.presence !== null),
51
- presence: (fc?.enableCollaboratorAvatars ?? true) ? css.presence?.actors : undefined,
18
+ ?? ((fc?.enableCollaboratorAvatars ?? true) && ccr.presence !== null),
19
+ presence: (fc?.enableCollaboratorAvatars ?? true) ? ccr.presence?.actors : undefined,
52
20
  showAgentActivityBanner: options.showAgentActivityBanner
53
- ?? ((fc?.enableAgentBanner ?? true) && css.hasActiveAgents),
21
+ ?? ((fc?.enableAgentBanner ?? true) && ccr.hasActiveAgents),
54
22
  activeAgents: (fc?.enableAgentBanner ?? true)
55
- ? css.presence?.agents?.filter(a => a.state === 'editing')
23
+ ? ccr.presence?.agents?.filter(a => a.state === 'editing')
56
24
  : undefined,
57
- isAgentEditing: (fc?.enableAgentBanner ?? true) && css.hasActiveAgents,
58
- onStopAgent: options.onStopAgent ?? css.stopAgent,
25
+ isAgentEditing: (fc?.enableAgentBanner ?? true) && ccr.hasActiveAgents,
26
+ onStopAgent: options.onStopAgent ?? ccr.stopAgent,
59
27
  publishedStatus: options.publishedStatus,
60
28
  };
61
- // Store options in a ref updated each render
62
29
  const optionsRef = useRef(overridesOptions);
63
30
  optionsRef.current = overridesOptions;
64
- // Create a stable Proxy-backed options object
65
31
  const stableOptions = useMemo(() => new Proxy({}, {
66
32
  get(_target, prop) {
67
33
  return optionsRef.current[prop];
68
34
  },
69
35
  }), []);
70
- // Create overrides once with stable proxy options
71
36
  const overrides = useMemo(() => createP1Overrides(stableOptions), [stableOptions]);
72
37
  return overrides;
73
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Overrides.js","sourceRoot":"","sources":["../../src/editor/useP1Overrides.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAuBlE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IAExB,mEAAmE;IACnE,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;IAE7B,MAAM,gBAAgB,GAAuB;QAC3C,qEAAqE;QACrE,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,WAAW,EAAE,GAAG,CAAC,OAAO;QACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,iBAAiB,EAAE,EAAE,EAAE,cAAc,IAAI,IAAI;QAC7C,0BAA0B,EAAE,GAAG,CAAC,0BAA0B;QAC1D,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,gBAAgB,EAAE,GAAG,CAAC,cAAc;QACpC,yDAAyD;QACzD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;eACnD,CAAC,CAAC,EAAE,EAAE,yBAAyB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;QACvE,QAAQ,EAAE,CAAC,EAAE,EAAE,yBAAyB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS;QACpF,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;eACnD,CAAC,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC;QAC7D,YAAY,EAAE,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC;YAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;YAC1D,CAAC,CAAC,SAAS;QACb,cAAc,EAAE,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe;QACtE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS;QACjD,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;IAEF,6CAA6C;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,UAAU,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAEtC,8CAA8C;IAC9C,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CACH,IAAI,KAAK,CAAC,EAAwB,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,IAAY;YACvB,OAAQ,UAAU,CAAC,OAA8C,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,kDAAkD;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEnF,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"useP1Overrides.js","sourceRoot":"","sources":["../../src/editor/useP1Overrides.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA6ClE,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IAGxB,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;IAE7B,MAAM,gBAAgB,GAAuB;QAE3C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,WAAW,EAAE,GAAG,CAAC,OAAO;QACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,iBAAiB,EAAE,EAAE,EAAE,cAAc,IAAI,IAAI;QAC7C,0BAA0B,EAAE,GAAG,CAAC,0BAA0B;QAC1D,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,gBAAgB,EAAE,GAAG,CAAC,cAAc;QAEpC,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;eACnD,CAAC,CAAC,EAAE,EAAE,yBAAyB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;QACvE,QAAQ,EAAE,CAAC,EAAE,EAAE,yBAAyB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS;QACpF,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;eACnD,CAAC,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC;QAC7D,YAAY,EAAE,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC;YAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;YAC1D,CAAC,CAAC,SAAS;QACb,cAAc,EAAE,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe;QACtE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS;QACjD,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;IAGF,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,UAAU,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAGtC,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CACH,IAAI,KAAK,CAAC,EAAwB,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,IAAY;YACvB,OAAQ,UAAU,CAAC,OAA8C,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC,EACJ,EAAE,CACH,CAAC;IAGF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEnF,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * useP1Plugin Hook
3
3
  *
4
- * Creates a referentially stable CSS plugin instance for Puck.
4
+ * Creates a referentially stable P1 plugin instance for Puck.
5
5
  * Internally reads context values and wires them through a Proxy pattern
6
6
  * so the plugin object never changes identity, avoiding Puck re-renders.
7
7
  */
@@ -80,7 +80,11 @@ export interface UseP1PluginOptions {
80
80
  /** Currently authenticated user */
81
81
  currentUser?: CurrentUser;
82
82
  /** Callback when user logs out */
83
- onLogout?: () => void;
83
+ onLogout?: () => void | Promise<void>;
84
+ /** Message shown in the header when a logout attempt failed. */
85
+ logoutError?: string | null;
86
+ /** True while a logout is in flight; disables the menu item. */
87
+ isLoggingOut?: boolean;
84
88
  /** Callback for Compare with Live action */
85
89
  onCompareWithLive?: () => void;
86
90
  /** Callback for the publish action. When omitted, context's publishDocument is used. */
@@ -98,7 +102,7 @@ export interface UseP1PluginOptions {
98
102
  documentSyncStore?: Pick<DocumentSyncStore, 'getAppliedKey'>;
99
103
  }
100
104
  /**
101
- * Creates a referentially stable CSS plugin for Puck.
105
+ * Creates a referentially stable P1 plugin for Puck.
102
106
  *
103
107
  * Reads branches, documents, and other state from P1PuckProvider context.
104
108
  * The returned plugin object is stable across re-renders — it uses a Proxy
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,10 @@
1
- /**
2
- * useP1Plugin Hook
3
- *
4
- * Creates a referentially stable CSS plugin instance for Puck.
5
- * Internally reads context values and wires them through a Proxy pattern
6
- * so the plugin object never changes identity, avoiding Puck re-renders.
7
- */
8
- import { useRef, useMemo } from 'react';
1
+ import { useRef, useMemo, useState, useEffect } from 'react';
9
2
  import { useP1Puck } from '../core/P1PuckContext.js';
10
3
  import { createP1Plugin } from './plugin/P1Plugin.js';
11
- /**
12
- * Creates a referentially stable CSS plugin for Puck.
13
- *
14
- * Reads branches, documents, and other state from P1PuckProvider context.
15
- * The returned plugin object is stable across re-renders — it uses a Proxy
16
- * pattern to always delegate to the latest options without changing identity.
17
- *
18
- * Must be used inside a P1PuckProvider.
19
- *
20
- * @param options - Optional customization (selection tracking, version display, etc.)
21
- * @returns A stable PuckPlugin instance
22
- *
23
- * @example
24
- * ```tsx
25
- * function Editor() {
26
- * const plugin = useP1Plugin();
27
- * return <Puck plugins={[plugin]} config={config} data={data} />;
28
- * }
29
- * ```
30
- */
4
+ import { createLogoutStore } from './logout-store.js';
31
5
  export function useP1Plugin(options = {}) {
32
- const css = useP1Puck();
33
- const fc = css.featureConfig ?? {
6
+ const ccr = useP1Puck();
7
+ const fc = ccr.featureConfig ?? {
34
8
  enableBranchSelector: true,
35
9
  enableDocumentBrowser: true,
36
10
  enableVersionHistory: true,
@@ -44,27 +18,32 @@ export function useP1Plugin(options = {}) {
44
18
  presenceEnabled: true,
45
19
  agentModeEnabled: false,
46
20
  };
47
- // Build the full plugin options from context + consumer options,
48
- // gating features by the resolved featureConfig flags.
21
+ const [logoutStore] = useState(createLogoutStore);
22
+ useEffect(() => {
23
+ logoutStore.set({
24
+ isLoggingOut: options.isLoggingOut ?? false,
25
+ error: options.logoutError ?? null,
26
+ });
27
+ }, [logoutStore, options.isLoggingOut, options.logoutError]);
49
28
  const pluginOptions = {
50
- branches: fc.enableBranchSelector ? css.branches : [],
51
- currentBranch: fc.enableBranchSelector ? css.currentBranch : null,
52
- onBranchSwitch: fc.enableBranchSelector ? css.switchBranch : () => { },
53
- getHasUnsavedChanges: css.getHasUnsavedChanges,
54
- documents: fc.enableDocumentBrowser ? css.documents : [],
55
- selectedDocumentPath: options.selectedDocumentPath ?? css.currentDocument?.path ?? null,
29
+ branches: fc.enableBranchSelector ? ccr.branches : [],
30
+ currentBranch: fc.enableBranchSelector ? ccr.currentBranch : null,
31
+ onBranchSwitch: fc.enableBranchSelector ? ccr.switchBranch : () => { },
32
+ getHasUnsavedChanges: ccr.getHasUnsavedChanges,
33
+ documents: fc.enableDocumentBrowser ? ccr.documents : [],
34
+ selectedDocumentPath: options.selectedDocumentPath ?? ccr.currentDocument?.path ?? null,
56
35
  onDocumentSelect: fc.enableDocumentBrowser
57
- ? (options.onDocumentSelect ?? css.loadDocument) : undefined,
36
+ ? (options.onDocumentSelect ?? ccr.loadDocument) : undefined,
58
37
  onDocumentCreate: fc.enableDocumentBrowser
59
- ? (options.onDocumentCreate ?? css.createDocument) : undefined,
38
+ ? (options.onDocumentCreate ?? ccr.createDocument) : undefined,
60
39
  onGenerateWithAI: options.onGenerateWithAI,
61
40
  showAIPanelToggle: options.showAIPanelToggle,
62
- templates: css.templates,
63
- templatesLoading: css.templatesLoading,
64
- onCreateTemplate: css.createTemplate,
41
+ templates: ccr.templates,
42
+ templatesLoading: ccr.templatesLoading,
43
+ onCreateTemplate: ccr.createTemplate,
65
44
  onDocumentDelete: fc.enableDocumentBrowser
66
- ? (options.onDocumentDelete ?? css.deleteDocument) : undefined,
67
- documentsLoading: css.documentsLoading,
45
+ ? (options.onDocumentDelete ?? ccr.deleteDocument) : undefined,
46
+ documentsLoading: ccr.documentsLoading,
68
47
  versions: fc.enableVersionHistory ? options.versions : undefined,
69
48
  versionsLoading: fc.enableVersionHistory ? options.versionsLoading : false,
70
49
  publishedStatus: options.publishedStatus,
@@ -72,30 +51,25 @@ export function useP1Plugin(options = {}) {
72
51
  onVersionSelect: fc.enableVersionHistory ? options.onVersionSelect : undefined,
73
52
  onRestoreVersion: fc.enableVersionHistory ? options.onRestoreVersion : undefined,
74
53
  canRevert: fc.enableVersionHistory ? (options.canRevert ?? false) : false,
75
- // Context-based sync is the default — no need for getter or legacy sync
76
54
  useContextSync: true,
77
55
  documentSyncStore: options.documentSyncStore,
78
- // Selection tracking
79
56
  onSelectionChange: options.onSelectionChange,
80
- // Merge comparison — gated by enableMergeControl
81
57
  puckConfig: options.puckConfig,
82
58
  onCompareWithLive: fc.enableMergeControl ? options.onCompareWithLive : undefined,
83
- // Presence/Agent features — gated by featureConfig flags
84
59
  showPresenceIndicator: fc.enableCollaboratorAvatars
85
60
  ? options.showPresenceIndicator : false,
86
61
  presence: fc.enableCollaboratorAvatars
87
- ? (options.presence ?? css.presence?.actors) : undefined,
62
+ ? (options.presence ?? ccr.presence?.actors) : undefined,
88
63
  showAgentActivity: fc.enableAgentBanner ? options.showAgentActivity : false,
89
64
  activeAgents: fc.enableAgentBanner
90
- ? (options.activeAgents ?? css.presence?.agents?.filter(a => a.state === 'editing'))
65
+ ? (options.activeAgents ?? ccr.presence?.agents?.filter(a => a.state === 'editing'))
91
66
  : undefined,
92
67
  showAgentActions: options.showAgentActions,
93
68
  availableAgents: options.availableAgents,
94
69
  onAgentAction: options.onAgentAction,
95
- onStopAgent: css.stopAgent,
70
+ onStopAgent: ccr.stopAgent,
96
71
  showFocusRegions: fc.enableFocusHighlighting ? options.showFocusRegions : false,
97
72
  agentEditingRegions: options.agentEditingRegions,
98
- // P1 Editor Header / Subheader
99
73
  siteName: options.siteName,
100
74
  siteMenuItems: options.siteMenuItems,
101
75
  siteId: options.siteId,
@@ -103,21 +77,19 @@ export function useP1Plugin(options = {}) {
103
77
  logoUrl: options.logoUrl,
104
78
  currentUser: options.currentUser,
105
79
  onLogout: options.onLogout,
80
+ logoutStore,
106
81
  onPublish: fc.enablePublishButton ? options.onPublish : undefined,
107
82
  onReviewAndPublish: options.onReviewAndPublish,
108
83
  onCreateWorkstream: options.onCreateWorkstream,
109
84
  onCreateBranch: options.onCreateBranch,
110
85
  };
111
- // Store options in a ref updated each render
112
86
  const optionsRef = useRef(pluginOptions);
113
87
  optionsRef.current = pluginOptions;
114
- // Create a stable Proxy-backed options object that always reads from the ref
115
88
  const stableOptions = useMemo(() => new Proxy({}, {
116
89
  get(_target, prop) {
117
90
  return optionsRef.current[prop];
118
91
  },
119
92
  }), []);
120
- // Create plugin once with stable proxy options
121
93
  const plugin = useMemo(() => createP1Plugin(stableOptions), [stableOptions]);
122
94
  return plugin;
123
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Phase 3.2: useRealtime Hook
3
3
  *
4
4
  * React hook for real-time collaborative editing with Puck.
5
- * Manages WebSocket connection and Yjs CRDT synchronization.
5
+ * Manages WebSocket connection and real-time document synchronization.
6
6
  */
7
7
  import type { PuckData, ActorPresence, ActorState, PublishResult } from '@pantheon-systems/css-client';
8
8
  /**
@@ -33,7 +33,7 @@ export interface UseRealtimeParams {
33
33
  * Initial data to seed the Y.Doc with before connecting.
34
34
  * When provided, the Y.Doc will be populated with this data before
35
35
  * the WebSocket connects, allowing the server to send only a delta
36
- * instead of the full CRDT state. This eliminates the redundant
36
+ * instead of the full document state. This eliminates the redundant
37
37
  * full-doc re-render on page load.
38
38
  *
39
39
  * Tracked via ref (not in effect deps) to avoid triggering reconnection
@@ -65,6 +65,18 @@ export interface UseRealtimeParams {
65
65
  * Called after the local Y.Doc is cleared, before automatic reconnection.
66
66
  */
67
67
  onServerReload?: () => void;
68
+ /**
69
+ * Callback when the server closes with code 4002 (client lineage diverged).
70
+ * Reconnection is halted; caller should reseed from REST and reconnect.
71
+ */
72
+ onBaselineReset?: () => void;
73
+ /**
74
+ * External reset key: incrementing this tears down the current client and
75
+ * builds a fresh one with a new Y.Doc. Owned by the caller so that the REST
76
+ * refetch can complete and update `initialData` BEFORE the new client seeds
77
+ * its Y.Doc — preventing the new client from reseeding stale in-memory data.
78
+ */
79
+ resetKey?: number;
68
80
  }
69
81
  /**
70
82
  * Return value from the useRealtime hook.
@@ -113,7 +125,7 @@ export interface UseRealtimeReturn {
113
125
  waitForDelivery: () => Promise<void>;
114
126
  /**
115
127
  * Request the server to publish the current document via WebSocket.
116
- * The Durable Object handles flush + publish internally, eliminating
128
+ * The server handles flush + publish internally, eliminating
117
129
  * client-side orchestration and race conditions.
118
130
  * @returns Promise that resolves with the publish result
119
131
  * @throws Error if not connected or if timeout expires
@@ -1 +1 @@
1
- {"version":3,"file":"useRealtime.d.ts","sourceRoot":"","sources":["../../src/editor/useRealtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMvG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE9B,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAErD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE3E;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IAErG,qFAAqF;IACrF,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IAEnC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAEjD;;;OAGG;IACH,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAE5C;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAyPxE"}
1
+ {"version":3,"file":"useRealtime.d.ts","sourceRoot":"","sources":["../../src/editor/useRealtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMvG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE9B,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAErD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE3E;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IAErG,qFAAqF;IACrF,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IAEnC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAEjD;;;OAGG;IACH,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAE5C;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAuQxE"}
@@ -1,67 +1,23 @@
1
- /**
2
- * Phase 3.2: useRealtime Hook
3
- *
4
- * React hook for real-time collaborative editing with Puck.
5
- * Manages WebSocket connection and Yjs CRDT synchronization.
6
- */
7
1
  import { useState, useEffect, useLayoutEffect, useRef, useCallback } from 'react';
8
2
  import { RealtimeClient } from '@pantheon-systems/css-client';
9
3
  import { createPuckYjsBinding, } from './utils/puckYjsBinding.js';
10
- /**
11
- * Hook for real-time collaborative editing with Puck.
12
- *
13
- * @example
14
- * ```tsx
15
- * function Editor() {
16
- * const realtime = useRealtime({
17
- * baseUrl: 'wss://api.example.com',
18
- * siteId: 'site-123',
19
- * branchId: 'branch-456',
20
- * documentPath: 'pages/home',
21
- * actorId: 'user-789',
22
- * actorType: 'user',
23
- * enabled: true,
24
- * onRemoteUpdate: (data) => setPuckData(data),
25
- * });
26
- *
27
- * return (
28
- * <Puck
29
- * data={puckData}
30
- * onChange={(data) => {
31
- * setPuckData(data);
32
- * realtime.applyLocalChange(data);
33
- * }}
34
- * />
35
- * );
36
- * }
37
- * ```
38
- */
39
4
  export function useRealtime(params) {
40
- const { baseUrl, apiKey, tokenRefresher, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled = true, onRemoteUpdate, onPresenceUpdate, onFocusRegionBroadcast, onServerReload, } = params;
5
+ const { baseUrl, apiKey, tokenRefresher, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled = true, onRemoteUpdate, onPresenceUpdate, onFocusRegionBroadcast, onServerReload, onBaselineReset, resetKey = 0, } = params;
41
6
  const [connected, setConnected] = useState(false);
42
7
  const [error, setError] = useState(null);
43
8
  const [presenceViaWebSocket, setPresenceViaWebSocket] = useState(false);
44
- // Track the document path that the active connection is bound to.
45
- // Captured at connection time, cleared on disconnect. Used to prevent
46
- // cross-document state bleed: callers can compare this against their
47
- // current document path before sending data through the binding.
48
9
  const connectedDocumentPathRef = useRef(null);
49
- // Refs to avoid recreating callbacks
50
10
  const clientRef = useRef(null);
51
11
  const bindingRef = useRef(null);
52
12
  const onRemoteUpdateRef = useRef(onRemoteUpdate);
53
13
  const onPresenceUpdateRef = useRef(onPresenceUpdate);
54
14
  const onFocusRegionBroadcastRef = useRef(onFocusRegionBroadcast);
55
15
  const onServerReloadRef = useRef(onServerReload);
56
- // Keep tokenRefresher in a ref so the RealtimeClient always calls the
57
- // latest version without needing to be recreated on reference changes.
16
+ const onBaselineResetRef = useRef(onBaselineReset);
58
17
  const tokenRefresherRef = useRef(tokenRefresher);
59
18
  tokenRefresherRef.current = tokenRefresher;
60
19
  const initialDataRef = useRef(params.initialData);
61
- // Keep ref in sync but do NOT add to effect deps — changing data
62
- // during editing must not trigger a WebSocket reconnection.
63
20
  initialDataRef.current = params.initialData;
64
- // Keep callback refs up to date
65
21
  useEffect(() => {
66
22
  onRemoteUpdateRef.current = onRemoteUpdate;
67
23
  }, [onRemoteUpdate]);
@@ -74,12 +30,9 @@ export function useRealtime(params) {
74
30
  useEffect(() => {
75
31
  onServerReloadRef.current = onServerReload;
76
32
  }, [onServerReload]);
77
- // Eagerly clean up binding and client refs when dependencies change.
78
- // useLayoutEffect cleanup runs BEFORE regular useEffect callbacks (including
79
- // children's effects like PuckDataSynchronizer). This prevents a race condition
80
- // where PuckDataSynchronizer dispatches setData during a document switch, Puck
81
- // fires onChange, and saveData sends data through a stale binding that still
82
- // points to the previous document's Y.Doc — causing cross-document state bleed.
33
+ useEffect(() => {
34
+ onBaselineResetRef.current = onBaselineReset;
35
+ }, [onBaselineReset]);
83
36
  useLayoutEffect(() => {
84
37
  return () => {
85
38
  connectedDocumentPathRef.current = null;
@@ -88,22 +41,14 @@ export function useRealtime(params) {
88
41
  clientRef.current?.disconnect();
89
42
  clientRef.current = null;
90
43
  };
91
- }, [baseUrl, apiKey, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled]);
92
- // Effect to manage connection lifecycle
44
+ }, [baseUrl, apiKey, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled, resetKey]);
93
45
  useEffect(() => {
94
- // Don't connect if disabled, no document path, or missing required params
95
46
  if (!enabled || !documentPath || !branchId || !siteId) {
96
47
  return;
97
48
  }
98
- // Create new client
99
- // NOTE: We don't use RealtimeClient.onUpdate because it would cause double callbacks.
100
- // The Puck-Yjs binding observer already handles remote updates properly by checking
101
- // transaction origin to distinguish local vs remote changes.
102
49
  const client = new RealtimeClient({
103
50
  baseUrl,
104
51
  apiKey,
105
- // Use ref-wrapped refresher so the client always calls the latest version
106
- // without needing to be recreated when the function reference changes.
107
52
  tokenRefresher: tokenRefresherRef.current
108
53
  ? () => {
109
54
  const refresher = tokenRefresherRef.current;
@@ -111,26 +56,14 @@ export function useRealtime(params) {
111
56
  }
112
57
  : undefined,
113
58
  onConnect: () => {
114
- // Guard: ignore callbacks from stale clients.
115
- // When dependencies change, the old client is destroyed and a new one
116
- // created. The old WebSocket's close event fires asynchronously and may
117
- // arrive AFTER the new client has already connected. Without this guard,
118
- // the stale onDisconnect would overwrite the new client's connection
119
- // state (connectedDocumentPathRef, connected, presenceViaWebSocket),
120
- // permanently breaking sync in one direction and corrupting presence.
121
59
  if (clientRef.current !== client)
122
60
  return;
123
- // Capture the document path this connection is bound to.
124
- // documentPath here is from the effect closure — it's the value
125
- // that was current when this effect ran, which is the document
126
- // the WebSocket was created for.
127
61
  connectedDocumentPathRef.current = documentPath;
128
62
  setConnected(true);
129
63
  setPresenceViaWebSocket(true);
130
64
  setError(null);
131
65
  },
132
66
  onDisconnect: () => {
133
- // Guard: ignore callbacks from stale clients (see onConnect comment).
134
67
  if (clientRef.current !== client)
135
68
  return;
136
69
  connectedDocumentPathRef.current = null;
@@ -140,7 +73,6 @@ export function useRealtime(params) {
140
73
  onError: (err) => {
141
74
  setError(err);
142
75
  },
143
- // onUpdate intentionally omitted - binding handles this
144
76
  onPresenceUpdate: (actors) => {
145
77
  onPresenceUpdateRef.current?.(actors);
146
78
  },
@@ -150,24 +82,20 @@ export function useRealtime(params) {
150
82
  onServerReload: () => {
151
83
  onServerReloadRef.current?.();
152
84
  },
85
+ onBaselineReset: () => {
86
+ if (clientRef.current !== client)
87
+ return;
88
+ onBaselineResetRef.current?.();
89
+ },
153
90
  });
154
91
  clientRef.current = client;
155
- // Create Puck-Yjs binding - this is the ONLY place that calls onRemoteUpdate
156
- // The binding observes Yjs changes and filters out local changes (origin === 'local')
157
92
  const binding = createPuckYjsBinding(client.getYDoc(), (data) => {
158
93
  onRemoteUpdateRef.current?.(data);
159
94
  });
160
95
  bindingRef.current = binding;
161
- // Seed Y.Doc with initial REST data before connecting.
162
- // This populates the client's Y.Doc so the server can send a delta
163
- // instead of the full CRDT state on initial connect.
164
- // Safe because:
165
- // - applyLocalChange uses LOCAL_ORIGIN (observer ignores local changes)
166
- // - this.ws is null at this point (update listener won't try to send)
167
96
  if (initialDataRef.current) {
168
97
  binding.applyLocalChange(initialDataRef.current);
169
98
  }
170
- // Connect to the document session
171
99
  client.connect({
172
100
  siteId,
173
101
  branchId,
@@ -176,7 +104,6 @@ export function useRealtime(params) {
176
104
  actorType,
177
105
  sessionId,
178
106
  });
179
- // Cleanup on unmount or when dependencies change
180
107
  return () => {
181
108
  connectedDocumentPathRef.current = null;
182
109
  binding.destroy();
@@ -186,8 +113,7 @@ export function useRealtime(params) {
186
113
  setConnected(false);
187
114
  setPresenceViaWebSocket(false);
188
115
  };
189
- }, [baseUrl, apiKey, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled]);
190
- // Apply local change function
116
+ }, [baseUrl, apiKey, siteId, branchId, documentPath, actorId, actorType, sessionId, enabled, resetKey]);
191
117
  const applyLocalChange = useCallback((data, puckActions) => {
192
118
  if (bindingRef.current) {
193
119
  if (puckActions && puckActions.length > 0 && clientRef.current) {
@@ -196,7 +122,6 @@ export function useRealtime(params) {
196
122
  bindingRef.current.applyLocalChange(data);
197
123
  }
198
124
  }, [connected]);
199
- // Get current snapshot from Yjs document
200
125
  const getSnapshot = useCallback(() => {
201
126
  if (clientRef.current) {
202
127
  const snapshot = clientRef.current.getSnapshot();
@@ -206,27 +131,23 @@ export function useRealtime(params) {
206
131
  }
207
132
  return null;
208
133
  }, []);
209
- // Send focus regions update to server
210
134
  const sendFocusRegions = useCallback((regions) => {
211
135
  if (clientRef.current) {
212
136
  return clientRef.current.sendFocusRegions(regions);
213
137
  }
214
138
  return false;
215
139
  }, []);
216
- // Send presence heartbeat to server
217
140
  const sendHeartbeat = useCallback((state) => {
218
141
  if (clientRef.current) {
219
142
  clientRef.current.sendHeartbeat(state);
220
143
  }
221
144
  }, []);
222
- // Wait for delivery acknowledgment from server
223
145
  const waitForDelivery = useCallback(() => {
224
146
  if (clientRef.current) {
225
147
  return clientRef.current.waitForDelivery();
226
148
  }
227
149
  return Promise.reject(new Error('Not connected'));
228
150
  }, []);
229
- // Request publish via WebSocket (DO handles flush + publish)
230
151
  const requestPublish = useCallback(() => {
231
152
  if (clientRef.current) {
232
153
  return clientRef.current.requestPublish();
@@ -1 +1 @@
1
- {"version":3,"file":"useRealtime.js","sourceRoot":"","sources":["../../src/editor/useRealtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRealtime.js","sourceRoot":"","sources":["../../src/editor/useRealtime.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EACL,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AAsLnC,MAAM,UAAU,WAAW,CAAC,MAAyB;IACnD,MAAM,EACJ,OAAO,EACP,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,GAAG,IAAI,EACd,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,QAAQ,GAAG,CAAC,GACb,GAAG,MAAM,CAAC;IAEX,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAMxE,MAAM,wBAAwB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAG7D,MAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAiD,IAAI,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,yBAAyB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAGnD,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAE3C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAGlD,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;IAG5C,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAC7C,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,OAAO,GAAG,gBAAgB,CAAC;IACjD,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,yBAAyB,CAAC,OAAO,GAAG,sBAAsB,CAAC;IAC7D,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAC7C,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;IAC/C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAQtB,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;YACxC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YAChC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAGxG,SAAS,CAAC,GAAG,EAAE;QAEb,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAMD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO;YACP,MAAM;YAGN,cAAc,EAAE,iBAAiB,CAAC,OAAO;gBACvC,CAAC,CAAC,GAAG,EAAE;oBACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC;oBAC5C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,GAAG,EAAE;gBAQd,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM;oBAAE,OAAO;gBAMzC,wBAAwB,CAAC,OAAO,GAAG,YAAY,CAAC;gBAChD,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;gBAEjB,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM;oBAAE,OAAO;gBACzC,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACf,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC3B,mBAAmB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,sBAAsB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;gBAChD,yBAAyB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC7D,CAAC;YACD,cAAc,EAAE,GAAG,EAAE;gBACnB,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YAChC,CAAC;YACD,eAAe,EAAE,GAAG,EAAE;gBAEpB,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM;oBAAE,OAAO;gBAGzC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YACjC,CAAC;SACF,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAI3B,MAAM,OAAO,GAAG,oBAAoB,CAClC,MAAM,CAAC,OAAO,EAAE,EAChB,CAAC,IAAqB,EAAE,EAAE;YACxB,iBAAiB,CAAC,OAAO,EAAE,CAAC,IAA2B,CAAC,CAAC;QAC3D,CAAC,CACF,CAAC;QACF,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAQ7B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAqC,CAAC,CAAC;QACjF,CAAC;QAGD,MAAM,CAAC,OAAO,CAAC;YACb,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,OAAO;YACP,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QAGH,OAAO,GAAG,EAAE;YACV,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;YACxC,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAGxG,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,IAAc,EAAE,WAAwD,EAAE,EAAE;QAChH,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC/D,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAkC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAGhB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAoB,EAAE;QACpD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,QAA+B,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,OAAiB,EAAW,EAAE;QAClE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAkB,EAAQ,EAAE;QAC7D,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,eAAe,GAAG,WAAW,CAAC,GAAkB,EAAE;QACtD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,cAAc,GAAG,WAAW,CAAC,GAA2B,EAAE;QAC9D,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,WAAW;QACX,KAAK;QACL,gBAAgB;QAChB,aAAa;QACb,oBAAoB;QACpB,qBAAqB,EAAE,wBAAwB,CAAC,OAAO;QACvD,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}