@pantheon-systems/puck-css 0.7.0 → 0.9.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 (433) hide show
  1. package/dist/agent/useAgentEdit.d.ts.map +1 -1
  2. package/dist/agent/useAgentEdit.js.map +1 -1
  3. package/dist/agent/useAgentTrigger.d.ts.map +1 -1
  4. package/dist/agent/useAgentTrigger.js.map +1 -1
  5. package/dist/auth/AuthGate.d.ts +1 -1
  6. package/dist/auth/AuthGate.d.ts.map +1 -1
  7. package/dist/collaboration/utils/avatarColor.d.ts +2 -8
  8. package/dist/collaboration/utils/avatarColor.d.ts.map +1 -1
  9. package/dist/collaboration/utils/avatarColor.js +4 -31
  10. package/dist/collaboration/utils/avatarColor.js.map +1 -1
  11. package/dist/collaboration/utils/focusHighlightConfig.d.ts.map +1 -1
  12. package/dist/collaboration/utils/focusHighlightConfig.js.map +1 -1
  13. package/dist/collaboration/utils/initials.d.ts +2 -0
  14. package/dist/collaboration/utils/initials.d.ts.map +1 -0
  15. package/dist/collaboration/utils/initials.js +27 -0
  16. package/dist/collaboration/utils/initials.js.map +1 -0
  17. package/dist/collaboration/utils/presenceIdentity.d.ts +29 -0
  18. package/dist/collaboration/utils/presenceIdentity.d.ts.map +1 -0
  19. package/dist/collaboration/utils/presenceIdentity.js +42 -0
  20. package/dist/collaboration/utils/presenceIdentity.js.map +1 -0
  21. package/dist/core/config.d.ts +2 -2
  22. package/dist/core/config.d.ts.map +1 -1
  23. package/dist/core/config.js +1 -1
  24. package/dist/core/config.js.map +1 -1
  25. package/dist/core/types.d.ts +21 -4
  26. package/dist/core/types.d.ts.map +1 -1
  27. package/dist/data/css-queries/css-query-registry.d.ts +11 -0
  28. package/dist/data/css-queries/css-query-registry.d.ts.map +1 -0
  29. package/dist/data/css-queries/css-query-registry.js +28 -0
  30. package/dist/data/css-queries/css-query-registry.js.map +1 -0
  31. package/dist/data/dal/index.d.ts +1 -1
  32. package/dist/data/dal/index.d.ts.map +1 -1
  33. package/dist/data/dal/init.d.ts +5 -0
  34. package/dist/data/dal/init.d.ts.map +1 -1
  35. package/dist/data/dal/init.js +31 -4
  36. package/dist/data/dal/init.js.map +1 -1
  37. package/dist/data/dal/p1-store.d.ts +23 -0
  38. package/dist/data/dal/p1-store.d.ts.map +1 -1
  39. package/dist/data/dal/p1-store.js +14 -1
  40. package/dist/data/dal/p1-store.js.map +1 -1
  41. package/dist/data/page-editor-meta.d.ts.map +1 -1
  42. package/dist/data/page-editor-meta.js +0 -1
  43. package/dist/data/page-editor-meta.js.map +1 -1
  44. package/dist/data/query-provider.d.ts +1 -1
  45. package/dist/data/query-provider.d.ts.map +1 -1
  46. package/dist/data/remote-datasources/fetch-http-json.d.ts.map +1 -1
  47. package/dist/data/remote-datasources/fetch-http-json.js.map +1 -1
  48. package/dist/data/remote-datasources/loader.js +1 -1
  49. package/dist/data/remote-datasources/loader.js.map +1 -1
  50. package/dist/data/resolve-data-templates.d.ts.map +1 -1
  51. package/dist/data/resolve-data-templates.js +26 -4
  52. package/dist/data/resolve-data-templates.js.map +1 -1
  53. package/dist/editor/P1App.d.ts.map +1 -1
  54. package/dist/editor/P1App.js +1 -1
  55. package/dist/editor/P1App.js.map +1 -1
  56. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  57. package/dist/editor/P1PuckProvider.js +174 -57
  58. package/dist/editor/P1PuckProvider.js.map +1 -1
  59. package/dist/editor/aiPanelStore.d.ts +15 -0
  60. package/dist/editor/aiPanelStore.d.ts.map +1 -0
  61. package/dist/editor/aiPanelStore.js +43 -0
  62. package/dist/editor/aiPanelStore.js.map +1 -0
  63. package/dist/editor/components/CollapsibleFieldSection.d.ts +10 -0
  64. package/dist/editor/components/CollapsibleFieldSection.d.ts.map +1 -0
  65. package/dist/editor/components/CollapsibleFieldSection.js +9 -0
  66. package/dist/editor/components/CollapsibleFieldSection.js.map +1 -0
  67. package/dist/editor/components/CollapsibleSection.module.css +70 -0
  68. package/dist/editor/components/CollapsibleSectionHeader.d.ts +20 -0
  69. package/dist/editor/components/CollapsibleSectionHeader.d.ts.map +1 -0
  70. package/dist/editor/components/CollapsibleSectionHeader.js +10 -0
  71. package/dist/editor/components/CollapsibleSectionHeader.js.map +1 -0
  72. package/dist/editor/components/DraggableRow.d.ts +13 -0
  73. package/dist/editor/components/DraggableRow.d.ts.map +1 -0
  74. package/dist/editor/components/DraggableRow.js +20 -0
  75. package/dist/editor/components/DraggableRow.js.map +1 -0
  76. package/dist/editor/components/FieldHelpText.d.ts +6 -0
  77. package/dist/editor/components/FieldHelpText.d.ts.map +1 -0
  78. package/dist/editor/components/FieldHelpText.js +6 -0
  79. package/dist/editor/components/FieldHelpText.js.map +1 -0
  80. package/dist/editor/components/FieldHelpText.module.css +13 -0
  81. package/dist/editor/components/InspectorTabHeader.d.ts +18 -0
  82. package/dist/editor/components/InspectorTabHeader.d.ts.map +1 -0
  83. package/dist/editor/components/InspectorTabHeader.js +16 -0
  84. package/dist/editor/components/InspectorTabHeader.js.map +1 -0
  85. package/dist/editor/components/OutlinePanel.d.ts +10 -0
  86. package/dist/editor/components/OutlinePanel.d.ts.map +1 -0
  87. package/dist/editor/components/OutlinePanel.js +64 -0
  88. package/dist/editor/components/OutlinePanel.js.map +1 -0
  89. package/dist/editor/components/OutlinePanel.module.css +111 -0
  90. package/dist/editor/components/P1InspectorFields.d.ts +16 -0
  91. package/dist/editor/components/P1InspectorFields.d.ts.map +1 -0
  92. package/dist/editor/components/P1InspectorFields.js +61 -0
  93. package/dist/editor/components/P1InspectorFields.js.map +1 -0
  94. package/dist/editor/components/P1TemplateFields.d.ts +11 -0
  95. package/dist/editor/components/P1TemplateFields.d.ts.map +1 -0
  96. package/dist/editor/components/P1TemplateFields.js +52 -0
  97. package/dist/editor/components/P1TemplateFields.js.map +1 -0
  98. package/dist/editor/components/PanelHeader.d.ts +25 -0
  99. package/dist/editor/components/PanelHeader.d.ts.map +1 -0
  100. package/dist/editor/components/PanelHeader.js +12 -0
  101. package/dist/editor/components/PanelHeader.js.map +1 -0
  102. package/dist/editor/components/PanelHeader.module.css +34 -0
  103. package/dist/editor/components/PanelShell.d.ts +10 -0
  104. package/dist/editor/components/PanelShell.d.ts.map +1 -0
  105. package/dist/editor/components/PanelShell.js +7 -0
  106. package/dist/editor/components/PanelShell.js.map +1 -0
  107. package/dist/editor/components/PanelShell.module.css +15 -0
  108. package/dist/editor/components/PreviewPanelOverlay.d.ts +12 -0
  109. package/dist/editor/components/PreviewPanelOverlay.d.ts.map +1 -0
  110. package/dist/editor/components/PreviewPanelOverlay.js +7 -0
  111. package/dist/editor/components/PreviewPanelOverlay.js.map +1 -0
  112. package/dist/editor/components/PublishedStatusBadge.d.ts +1 -1
  113. package/dist/editor/components/PublishedStatusBadge.d.ts.map +1 -1
  114. package/dist/editor/components/VersionBannerOverride.d.ts +5 -1
  115. package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
  116. package/dist/editor/components/VersionBannerOverride.js +24 -7
  117. package/dist/editor/components/VersionBannerOverride.js.map +1 -1
  118. package/dist/editor/components/VersionTimeline.d.ts +20 -0
  119. package/dist/editor/components/VersionTimeline.d.ts.map +1 -0
  120. package/dist/editor/components/VersionTimeline.js +42 -0
  121. package/dist/editor/components/VersionTimeline.js.map +1 -0
  122. package/dist/editor/components/collapsibleSectionContext.d.ts +17 -0
  123. package/dist/editor/components/collapsibleSectionContext.d.ts.map +1 -0
  124. package/dist/editor/components/collapsibleSectionContext.js +13 -0
  125. package/dist/editor/components/collapsibleSectionContext.js.map +1 -0
  126. package/dist/editor/components/componentIconName.d.ts +15 -0
  127. package/dist/editor/components/componentIconName.d.ts.map +1 -0
  128. package/dist/editor/components/componentIconName.js +68 -0
  129. package/dist/editor/components/componentIconName.js.map +1 -0
  130. package/dist/editor/components/connectable.d.ts +1 -1
  131. package/dist/editor/components/connectable.d.ts.map +1 -1
  132. package/dist/editor/components/merge-preview/MergePreviewPanel.d.ts.map +1 -1
  133. package/dist/editor/components/merge-preview/MergePreviewPanel.js.map +1 -1
  134. package/dist/editor/components/merge-preview/MergePreviewRenderer.js +3 -15
  135. package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
  136. package/dist/editor/components/outlineTree.d.ts +68 -0
  137. package/dist/editor/components/outlineTree.d.ts.map +1 -0
  138. package/dist/editor/components/outlineTree.js +72 -0
  139. package/dist/editor/components/outlineTree.js.map +1 -0
  140. package/dist/editor/components/useDragReorder.d.ts +16 -0
  141. package/dist/editor/components/useDragReorder.d.ts.map +1 -0
  142. package/dist/editor/components/useDragReorder.js +35 -0
  143. package/dist/editor/components/useDragReorder.js.map +1 -0
  144. package/dist/editor/index.d.ts +13 -0
  145. package/dist/editor/index.d.ts.map +1 -1
  146. package/dist/editor/index.js +8 -0
  147. package/dist/editor/index.js.map +1 -1
  148. package/dist/editor/plugin/P1Plugin.d.ts +25 -2
  149. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  150. package/dist/editor/plugin/P1Plugin.js +147 -63
  151. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  152. package/dist/editor/plugin/context-sync-key.d.ts +30 -0
  153. package/dist/editor/plugin/context-sync-key.d.ts.map +1 -0
  154. package/dist/editor/plugin/context-sync-key.js +36 -0
  155. package/dist/editor/plugin/context-sync-key.js.map +1 -0
  156. package/dist/editor/plugin/createP1Overrides.d.ts +33 -50
  157. package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
  158. package/dist/editor/plugin/createP1Overrides.js +54 -112
  159. package/dist/editor/plugin/createP1Overrides.js.map +1 -1
  160. package/dist/editor/plugin/document-sync-plugin.d.ts +35 -0
  161. package/dist/editor/plugin/document-sync-plugin.d.ts.map +1 -0
  162. package/dist/editor/plugin/document-sync-plugin.js +130 -0
  163. package/dist/editor/plugin/document-sync-plugin.js.map +1 -0
  164. package/dist/editor/plugin/fieldGuidance.d.ts +45 -0
  165. package/dist/editor/plugin/fieldGuidance.d.ts.map +1 -0
  166. package/dist/editor/plugin/fieldGuidance.js +24 -0
  167. package/dist/editor/plugin/fieldGuidance.js.map +1 -0
  168. package/dist/editor/plugin/mergePreviewPlugin.d.ts.map +1 -1
  169. package/dist/editor/plugin/mergePreviewPlugin.js.map +1 -1
  170. package/dist/editor/plugin/selectHeaderCollaborators.d.ts +12 -0
  171. package/dist/editor/plugin/selectHeaderCollaborators.d.ts.map +1 -0
  172. package/dist/editor/plugin/selectHeaderCollaborators.js +15 -0
  173. package/dist/editor/plugin/selectHeaderCollaborators.js.map +1 -0
  174. package/dist/editor/thumbnails/LiveThumbnail.d.ts +47 -0
  175. package/dist/editor/thumbnails/LiveThumbnail.d.ts.map +1 -0
  176. package/dist/editor/thumbnails/LiveThumbnail.js +120 -0
  177. package/dist/editor/thumbnails/LiveThumbnail.js.map +1 -0
  178. package/dist/editor/thumbnails/ThumbnailCard.d.ts +37 -0
  179. package/dist/editor/thumbnails/ThumbnailCard.d.ts.map +1 -0
  180. package/dist/editor/thumbnails/ThumbnailCard.js +91 -0
  181. package/dist/editor/thumbnails/ThumbnailCard.js.map +1 -0
  182. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts +33 -0
  183. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts.map +1 -0
  184. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js +79 -0
  185. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js.map +1 -0
  186. package/dist/editor/thumbnails/humanizeComponentName.d.ts +18 -0
  187. package/dist/editor/thumbnails/humanizeComponentName.d.ts.map +1 -0
  188. package/dist/editor/thumbnails/humanizeComponentName.js +32 -0
  189. package/dist/editor/thumbnails/humanizeComponentName.js.map +1 -0
  190. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts +15 -0
  191. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts.map +1 -0
  192. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js +19 -0
  193. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js.map +1 -0
  194. package/dist/editor/thumbnails/thumbnailCache.d.ts +39 -0
  195. package/dist/editor/thumbnails/thumbnailCache.d.ts.map +1 -0
  196. package/dist/editor/thumbnails/thumbnailCache.js +97 -0
  197. package/dist/editor/thumbnails/thumbnailCache.js.map +1 -0
  198. package/dist/editor/useDocuments.d.ts.map +1 -1
  199. package/dist/editor/useDocuments.js +27 -15
  200. package/dist/editor/useDocuments.js.map +1 -1
  201. package/dist/editor/useP1Editor.d.ts +15 -13
  202. package/dist/editor/useP1Editor.d.ts.map +1 -1
  203. package/dist/editor/useP1Editor.js +97 -20
  204. package/dist/editor/useP1Editor.js.map +1 -1
  205. package/dist/editor/useP1Overrides.d.ts +1 -1
  206. package/dist/editor/useP1Overrides.d.ts.map +1 -1
  207. package/dist/editor/useP1Overrides.js.map +1 -1
  208. package/dist/editor/useP1Plugin.d.ts +20 -2
  209. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  210. package/dist/editor/useP1Plugin.js +5 -0
  211. package/dist/editor/useP1Plugin.js.map +1 -1
  212. package/dist/editor/useRealtime.d.ts +2 -2
  213. package/dist/editor/useRealtime.d.ts.map +1 -1
  214. package/dist/editor/useRealtime.js.map +1 -1
  215. package/dist/editor/utils/componentRegistry.d.ts +4 -4
  216. package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
  217. package/dist/editor/utils/componentRegistry.js +0 -1
  218. package/dist/editor/utils/componentRegistry.js.map +1 -1
  219. package/dist/editor/utils/puckYjsBinding.d.ts.map +1 -1
  220. package/dist/editor/utils/puckYjsBinding.js +6 -4
  221. package/dist/editor/utils/puckYjsBinding.js.map +1 -1
  222. package/dist/editor/utils/restoreDocumentVersion.d.ts +18 -0
  223. package/dist/editor/utils/restoreDocumentVersion.d.ts.map +1 -0
  224. package/dist/editor/utils/restoreDocumentVersion.js +49 -0
  225. package/dist/editor/utils/restoreDocumentVersion.js.map +1 -0
  226. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts +22 -0
  227. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts.map +1 -0
  228. package/dist/editor/utils/sanitizeRichtextDefaults.js +98 -0
  229. package/dist/editor/utils/sanitizeRichtextDefaults.js.map +1 -0
  230. package/dist/editor/utils/snapshotToPuckData.d.ts +11 -0
  231. package/dist/editor/utils/snapshotToPuckData.d.ts.map +1 -0
  232. package/dist/editor/utils/snapshotToPuckData.js +27 -0
  233. package/dist/editor/utils/snapshotToPuckData.js.map +1 -0
  234. package/dist/editor/utils/syncComponentRegistry.d.ts.map +1 -1
  235. package/dist/editor/utils/syncComponentRegistry.js +32 -6
  236. package/dist/editor/utils/syncComponentRegistry.js.map +1 -1
  237. package/dist/editor/utils/templatePath.d.ts +8 -0
  238. package/dist/editor/utils/templatePath.d.ts.map +1 -0
  239. package/dist/editor/utils/templatePath.js +14 -0
  240. package/dist/editor/utils/templatePath.js.map +1 -0
  241. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +10 -7
  242. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
  243. package/dist/features/content-type-templates/permissions/createPuckPermissions.js +27 -8
  244. package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
  245. package/dist/features/content-type-templates/stores/template-store-api.d.ts.map +1 -1
  246. package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -1
  247. package/dist/features/content-type-templates/ui/ActionBarPinButton.js +1 -1
  248. package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
  249. package/dist/features/content-type-templates/validation/structural-validation.d.ts +4 -4
  250. package/dist/features/content-type-templates/validation/structural-validation.d.ts.map +1 -1
  251. package/dist/features/content-type-templates/validation/structural-validation.js +123 -50
  252. package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
  253. package/dist/index.d.ts +10 -2
  254. package/dist/index.d.ts.map +1 -1
  255. package/dist/index.js +10 -2
  256. package/dist/index.js.map +1 -1
  257. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +1 -3
  258. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
  259. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +2 -2
  260. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -1
  261. package/dist/p1/editor/client.d.ts +1 -1
  262. package/dist/p1/editor/client.d.ts.map +1 -1
  263. package/dist/p1/editor/client.js +3 -3
  264. package/dist/p1/editor/client.js.map +1 -1
  265. package/dist/p1/editor/connect/connect-field-modal.d.ts +1 -1
  266. package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
  267. package/dist/p1/editor/connect/connect-field-modal.js +2 -2
  268. package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
  269. package/dist/p1/editor/connect/connect-preview-config.d.ts +1 -1
  270. package/dist/p1/editor/connect/connect-preview-config.d.ts.map +1 -1
  271. package/dist/p1/editor/connect/field-connect-plugin.js +1 -1
  272. package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
  273. package/dist/p1/editor/editor-preview-resolve.d.ts +7 -1
  274. package/dist/p1/editor/editor-preview-resolve.d.ts.map +1 -1
  275. package/dist/p1/editor/editor-preview-resolve.js +9 -2
  276. package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
  277. package/dist/p1/editor/{hooks.d.ts → hooks/api-hooks.d.ts} +9 -20
  278. package/dist/p1/editor/hooks/api-hooks.d.ts.map +1 -0
  279. package/dist/p1/editor/{hooks.js → hooks/api-hooks.js} +72 -57
  280. package/dist/p1/editor/hooks/api-hooks.js.map +1 -0
  281. package/dist/p1/editor/hooks/index.d.ts +4 -0
  282. package/dist/p1/editor/hooks/index.d.ts.map +1 -0
  283. package/dist/p1/editor/hooks/index.js +4 -0
  284. package/dist/p1/editor/hooks/index.js.map +1 -0
  285. package/dist/p1/editor/hooks/useEditorContext.d.ts +13 -0
  286. package/dist/p1/editor/hooks/useEditorContext.d.ts.map +1 -0
  287. package/dist/p1/editor/hooks/useEditorContext.js +25 -0
  288. package/dist/p1/editor/hooks/useEditorContext.js.map +1 -0
  289. package/dist/p1/editor/hooks/useP1Plugins.d.ts +3 -0
  290. package/dist/p1/editor/hooks/useP1Plugins.d.ts.map +1 -0
  291. package/dist/p1/editor/hooks/useP1Plugins.js +33 -0
  292. package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -0
  293. package/dist/p1/editor/icons/button-block-icon.d.ts +1 -1
  294. package/dist/p1/editor/icons/button-block-icon.d.ts.map +1 -1
  295. package/dist/p1/editor/icons/default-block-icon.d.ts +1 -1
  296. package/dist/p1/editor/icons/default-block-icon.d.ts.map +1 -1
  297. package/dist/p1/editor/icons/divider-block-icon.d.ts +1 -1
  298. package/dist/p1/editor/icons/divider-block-icon.d.ts.map +1 -1
  299. package/dist/p1/editor/icons/grid-block-icon.d.ts +1 -1
  300. package/dist/p1/editor/icons/grid-block-icon.d.ts.map +1 -1
  301. package/dist/p1/editor/icons/heading-block-icon.d.ts +1 -1
  302. package/dist/p1/editor/icons/heading-block-icon.d.ts.map +1 -1
  303. package/dist/p1/editor/icons/image-block-icon.d.ts +1 -1
  304. package/dist/p1/editor/icons/image-block-icon.d.ts.map +1 -1
  305. package/dist/p1/editor/icons/list-block-icon.d.ts +1 -1
  306. package/dist/p1/editor/icons/list-block-icon.d.ts.map +1 -1
  307. package/dist/p1/editor/icons/paragraph-block-icon.d.ts +1 -1
  308. package/dist/p1/editor/icons/paragraph-block-icon.d.ts.map +1 -1
  309. package/dist/p1/editor/icons/quote-block-icon.d.ts +1 -1
  310. package/dist/p1/editor/icons/quote-block-icon.d.ts.map +1 -1
  311. package/dist/p1/editor/icons/spacer-block-icon.d.ts +1 -1
  312. package/dist/p1/editor/icons/spacer-block-icon.d.ts.map +1 -1
  313. package/dist/p1/editor/index.d.ts +2 -2
  314. package/dist/p1/editor/index.d.ts.map +1 -1
  315. package/dist/p1/editor/index.js +2 -2
  316. package/dist/p1/editor/index.js.map +1 -1
  317. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +65 -67
  318. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
  319. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts +4 -4
  320. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts.map +1 -1
  321. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.js.map +1 -1
  322. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts +1 -1
  323. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts.map +1 -1
  324. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js +2 -2
  325. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js.map +1 -1
  326. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts +1 -1
  327. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts.map +1 -1
  328. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js +2 -2
  329. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js.map +1 -1
  330. package/dist/p1/editor/template-autocomplete-layer.d.ts +2 -2
  331. package/dist/p1/editor/template-autocomplete-layer.d.ts.map +1 -1
  332. package/dist/p1/editor/template-autocomplete-layer.js +23 -3
  333. package/dist/p1/editor/template-autocomplete-layer.js.map +1 -1
  334. package/dist/p1/pages/render-client.d.ts +1 -1
  335. package/dist/p1/pages/render-client.d.ts.map +1 -1
  336. package/dist/pds/components/AgentChip.d.ts.map +1 -1
  337. package/dist/pds/components/AgentChip.js +1 -2
  338. package/dist/pds/components/AgentChip.js.map +1 -1
  339. package/dist/pds/components/CreatePageModal.d.ts +10 -1
  340. package/dist/pds/components/CreatePageModal.d.ts.map +1 -1
  341. package/dist/pds/components/CreatePageModal.js +29 -9
  342. package/dist/pds/components/CreatePageModal.js.map +1 -1
  343. package/dist/pds/components/CreatePageModal.module.css +34 -0
  344. package/dist/pds/components/DocStateBadge.d.ts +1 -1
  345. package/dist/pds/components/DocStateBadge.d.ts.map +1 -1
  346. package/dist/pds/components/DocStateBadge.js +1 -1
  347. package/dist/pds/components/DocStateBadge.js.map +1 -1
  348. package/dist/pds/components/LoadingMessage.d.ts +16 -0
  349. package/dist/pds/components/LoadingMessage.d.ts.map +1 -0
  350. package/dist/pds/components/LoadingMessage.js +6 -0
  351. package/dist/pds/components/LoadingMessage.js.map +1 -0
  352. package/dist/pds/components/LoadingMessage.module.css +44 -0
  353. package/dist/pds/components/NavIcon.js +1 -1
  354. package/dist/pds/components/NavIcon.js.map +1 -1
  355. package/dist/pds/components/P1EditorHeader.d.ts +10 -2
  356. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  357. package/dist/pds/components/P1EditorHeader.js +16 -7
  358. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  359. package/dist/pds/components/P1EditorHeader.module.css +113 -35
  360. package/dist/pds/components/P1EditorSubheader.d.ts +1 -2
  361. package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
  362. package/dist/pds/components/P1EditorSubheader.js +10 -21
  363. package/dist/pds/components/P1EditorSubheader.js.map +1 -1
  364. package/dist/pds/components/P1EditorSubheader.module.css +7 -1
  365. package/dist/pds/components/PageNavigator.d.ts.map +1 -1
  366. package/dist/pds/components/PageNavigator.js.map +1 -1
  367. package/dist/pds/components/PresenceStack.d.ts +6 -5
  368. package/dist/pds/components/PresenceStack.d.ts.map +1 -1
  369. package/dist/pds/components/PresenceStack.js +43 -4
  370. package/dist/pds/components/PresenceStack.js.map +1 -1
  371. package/dist/pds/components/PresenceStack.module.css +52 -7
  372. package/dist/pds/components/PublishControl.js +2 -2
  373. package/dist/pds/components/PublishControl.js.map +1 -1
  374. package/dist/pds/components/WorkstreamSwitcher.d.ts +7 -2
  375. package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -1
  376. package/dist/pds/components/WorkstreamSwitcher.js +5 -3
  377. package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
  378. package/dist/pds/index.d.ts +2 -0
  379. package/dist/pds/index.d.ts.map +1 -1
  380. package/dist/pds/index.js +1 -0
  381. package/dist/pds/index.js.map +1 -1
  382. package/dist/pds/theme/pds-core-content.d.ts +1 -1
  383. package/dist/pds/theme/pds-core-content.d.ts.map +1 -1
  384. package/dist/pds/theme/pds-core-content.js +1 -1
  385. package/dist/pds/theme/pds-core-content.js.map +1 -1
  386. package/dist/server.d.ts +4 -1
  387. package/dist/server.d.ts.map +1 -1
  388. package/dist/server.js +4 -1
  389. package/dist/server.js.map +1 -1
  390. package/dist/versioning/components/HistoricalVersionBanner.d.ts +19 -21
  391. package/dist/versioning/components/HistoricalVersionBanner.d.ts.map +1 -1
  392. package/dist/versioning/components/HistoricalVersionBanner.js +7 -19
  393. package/dist/versioning/components/HistoricalVersionBanner.js.map +1 -1
  394. package/dist/versioning/components/ReadOnlyFieldsGuard.d.ts +14 -0
  395. package/dist/versioning/components/ReadOnlyFieldsGuard.d.ts.map +1 -0
  396. package/dist/versioning/components/ReadOnlyFieldsGuard.js +8 -0
  397. package/dist/versioning/components/ReadOnlyFieldsGuard.js.map +1 -0
  398. package/dist/versioning/components/VersionBannerActions.d.ts +15 -0
  399. package/dist/versioning/components/VersionBannerActions.d.ts.map +1 -0
  400. package/dist/versioning/components/VersionBannerActions.js +30 -0
  401. package/dist/versioning/components/VersionBannerActions.js.map +1 -0
  402. package/dist/versioning/components/VersionPublishedBadge.d.ts +1 -1
  403. package/dist/versioning/components/VersionPublishedBadge.d.ts.map +1 -1
  404. package/dist/versioning/components/VersionReadOnlyBanner.d.ts +12 -0
  405. package/dist/versioning/components/VersionReadOnlyBanner.d.ts.map +1 -0
  406. package/dist/versioning/components/VersionReadOnlyBanner.js +5 -0
  407. package/dist/versioning/components/VersionReadOnlyBanner.js.map +1 -0
  408. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts +2 -2
  409. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts.map +1 -1
  410. package/dist/versioning/index.d.ts +4 -0
  411. package/dist/versioning/index.d.ts.map +1 -1
  412. package/dist/versioning/index.js +2 -0
  413. package/dist/versioning/index.js.map +1 -1
  414. package/dist/versioning/utils/formatVersionDate.d.ts +15 -0
  415. package/dist/versioning/utils/formatVersionDate.d.ts.map +1 -0
  416. package/dist/versioning/utils/formatVersionDate.js +41 -0
  417. package/dist/versioning/utils/formatVersionDate.js.map +1 -0
  418. package/dist/versioning/utils/versionKind.d.ts +19 -0
  419. package/dist/versioning/utils/versionKind.d.ts.map +1 -0
  420. package/dist/versioning/utils/versionKind.js +30 -0
  421. package/dist/versioning/utils/versionKind.js.map +1 -0
  422. package/package.json +16 -8
  423. package/src/pds/theme/PuckEditorTheme.css +81 -0
  424. package/src/pds/theme/PuckEditorTheme.test.ts +50 -1
  425. package/src/pds/theme/pds-core-content.ts +1 -1
  426. package/src/pds/theme/pds-core.css +1 -1
  427. package/src/styles.css +693 -29
  428. package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts +0 -15
  429. package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts.map +0 -1
  430. package/dist/features/content-type-templates/editor/useTemplateScaffold.js +0 -29
  431. package/dist/features/content-type-templates/editor/useTemplateScaffold.js.map +0 -1
  432. package/dist/p1/editor/hooks.d.ts.map +0 -1
  433. package/dist/p1/editor/hooks.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import { type DocumentSyncStore } from "./document-sync-plugin.js";
2
+ export interface ContextSyncKeyInput {
3
+ remoteSyncKey: string | null;
4
+ viewingVersion: {
5
+ id: string;
6
+ } | null;
7
+ currentDocument: {
8
+ id: string;
9
+ } | null;
10
+ branchId?: string | null;
11
+ /** Omitted by consumers that drive Puck without the document-sync plugin. */
12
+ documentSyncStore?: Pick<DocumentSyncStore, "getAppliedKey">;
13
+ }
14
+ /**
15
+ * Sync key ContextSyncBridge should push into Puck, or null to push nothing.
16
+ *
17
+ * Two mechanisms can replace the whole canvas: this one (a `setData` dispatch)
18
+ * and the document-sync plugin (`setHistories`, which also resets the undo
19
+ * stack). Since Puck now survives document switches, the plugin owns
20
+ * document -> document transitions; this bridge stands down for them. Its
21
+ * dispatch would otherwise land first — before the plugin advances the applied
22
+ * key — and trip useP1Editor's write-back guard on every page switch, burying
23
+ * the real races that warning is there to surface.
24
+ *
25
+ * The doc-latest key still matters when the canvas already shows the document:
26
+ * returning to latest from a historical version reaches this path, and nothing
27
+ * else restores the live data.
28
+ */
29
+ export declare function resolveContextSyncKey({ remoteSyncKey, viewingVersion, currentDocument, branchId, documentSyncStore, }: ContextSyncKeyInput): string | null;
30
+ //# sourceMappingURL=context-sync-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-sync-key.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/context-sync-key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;CAC9D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,aAAa,EACb,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,GAClB,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAkBrC"}
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { documentSyncKey } from "./document-sync-plugin.js";
3
+ /**
4
+ * Sync key ContextSyncBridge should push into Puck, or null to push nothing.
5
+ *
6
+ * Two mechanisms can replace the whole canvas: this one (a `setData` dispatch)
7
+ * and the document-sync plugin (`setHistories`, which also resets the undo
8
+ * stack). Since Puck now survives document switches, the plugin owns
9
+ * document -> document transitions; this bridge stands down for them. Its
10
+ * dispatch would otherwise land first — before the plugin advances the applied
11
+ * key — and trip useP1Editor's write-back guard on every page switch, burying
12
+ * the real races that warning is there to surface.
13
+ *
14
+ * The doc-latest key still matters when the canvas already shows the document:
15
+ * returning to latest from a historical version reaches this path, and nothing
16
+ * else restores the live data.
17
+ */
18
+ export function resolveContextSyncKey({ remoteSyncKey, viewingVersion, currentDocument, branchId, documentSyncStore, }) {
19
+ if (remoteSyncKey)
20
+ return remoteSyncKey;
21
+ if (viewingVersion)
22
+ return `version-${viewingVersion.id}`;
23
+ if (!currentDocument)
24
+ return null;
25
+ if (documentSyncStore) {
26
+ const appliedKey = documentSyncStore.getAppliedKey();
27
+ // A null applied key means the plugin has not observed a document yet, so
28
+ // Puck was mounted with this one and there is no switch to defer to.
29
+ if (appliedKey !== null &&
30
+ appliedKey !== documentSyncKey(branchId, currentDocument.id)) {
31
+ return null;
32
+ }
33
+ }
34
+ return `doc-${currentDocument.id}-latest`;
35
+ }
36
+ //# sourceMappingURL=context-sync-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-sync-key.js","sourceRoot":"","sources":["../../../src/editor/plugin/context-sync-key.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,eAAe,EAA0B,MAAM,2BAA2B,CAAC;AAWpF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,aAAa,EACb,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,GACG;IACpB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,IAAI,cAAc;QAAE,OAAO,WAAW,cAAc,CAAC,EAAE,EAAE,CAAC;IAC1D,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACrD,0EAA0E;QAC1E,qEAAqE;QACrE,IACE,UAAU,KAAK,IAAI;YACnB,UAAU,KAAK,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,EAC5D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,OAAO,eAAe,CAAC,EAAE,SAAS,CAAC;AAC5C,CAAC"}
@@ -7,13 +7,8 @@
7
7
  import React from 'react';
8
8
  import type { Checkpoint, DocumentVersion, PuckData, ActorPresence } from '@pantheon-systems/css-client';
9
9
  import type { SaveStatus } from '../../core/types.js';
10
- import type { TemplateSummary } from '../../features/content-type-templates/types.js';
11
- /**
12
- * Resolve the template being edited from a document path. Templates are stored
13
- * as documents at `_registry/templates/<name>`; returns the matching template
14
- * (by name) or null for ordinary pages.
15
- */
16
- export declare function templateFromRegistryPath(path: string | undefined | null, templates: TemplateSummary[] | undefined): TemplateSummary | null;
10
+ export { templateFromRegistryPath } from '../utils/templatePath.js';
11
+ export { P1TemplateFields } from '../components/P1TemplateFields.js';
17
12
  /**
18
13
  * Options for creating P1 overrides
19
14
  */
@@ -69,18 +64,25 @@ export interface P1OverridesOptions {
69
64
  onPublishError?: (error: Error) => void;
70
65
  /** Whether to show the default Puck publish button */
71
66
  showDefaultPublish?: boolean;
67
+ /** Whether currently viewing a historical version of a document */
68
+ isViewingHistoricalVersion?: boolean;
69
+ /** The historical version being previewed. */
70
+ viewingVersion?: DocumentVersion | null;
72
71
  /**
73
- * Whether currently viewing a historical version (not the latest).
72
+ * Callback to exit version preview and return to the latest version.
73
+ * Wired to the "Back to current version" button in the components/outline overlays.
74
74
  */
75
- isViewingHistoricalVersion?: boolean;
75
+ onReturnToLatest?: () => void;
76
76
  /**
77
- * The historical version being viewed.
77
+ * @deprecated Pass to VersionBannerOverride instead. The banner is no longer
78
+ * rendered by createP1Overrides; this prop is silently ignored.
78
79
  */
79
- viewingVersion?: DocumentVersion | null;
80
+ onRestoreVersion?: (version: DocumentVersion) => Promise<void>;
80
81
  /**
81
- * Callback to return to the latest version.
82
+ * @deprecated Pass to VersionBannerOverride instead. The banner is no longer
83
+ * rendered by createP1Overrides; this prop is silently ignored.
82
84
  */
83
- onReturnToLatest?: () => void;
85
+ canRevert?: boolean;
84
86
  /**
85
87
  * @deprecated Pass syncData to createP1Plugin instead. The plugin renders
86
88
  * inside Puck's context where usePuck() works correctly. Passing these props
@@ -123,46 +125,27 @@ export interface PuckOverrides {
123
125
  }) => React.ReactElement;
124
126
  [key: string]: unknown;
125
127
  }
128
+ interface FieldLabelOverrideProps {
129
+ children?: React.ReactNode;
130
+ icon?: React.ReactNode;
131
+ label: string;
132
+ el?: 'label' | 'div';
133
+ readOnly?: boolean;
134
+ }
126
135
  /**
127
- * Creates Puck overrides for P1 integration.
128
- *
129
- * Adds SaveIndicator and PublishButton to the header actions area.
130
- *
131
- * @example
132
- * ```tsx
133
- * import { createP1Overrides, useP1Puck } from '@pantheon-systems/puck-css';
134
- *
135
- * function Editor() {
136
- * const {
137
- * saveStatus,
138
- * lastSaved,
139
- * saveError,
140
- * saveNow,
141
- * publishDocument,
142
- * } = useP1Puck();
143
- *
144
- * // Preferred: use refs and getters for better performance
145
- * const saveStatusRef = useRef(saveStatus);
146
- * useEffect(() => { saveStatusRef.current = saveStatus; }, [saveStatus]);
147
- *
148
- * const overrides = createP1Overrides({
149
- * getSaveStatus: () => saveStatusRef.current,
150
- * getLastSaved: () => lastSavedRef.current,
151
- * getSaveError: () => saveErrorRef.current,
152
- * onRetrySave: saveNow,
153
- * });
136
+ * Renders an opted-in field group's label row as a disclosure. Puck hands a
137
+ * label override the field's content as `children`, so the group's own label
138
+ * becomes the toggle there is no second header and nothing to suppress.
154
139
  *
155
- * // Legacy: direct values (causes overrides to be recreated on changes)
156
- * const overrides = createP1Overrides({
157
- * saveStatus,
158
- * lastSaved,
159
- * saveError,
160
- * onRetrySave: saveNow,
161
- * });
140
+ * The context is cleared for descendants so a nested group inside a collapsible
141
+ * one keeps its ordinary label.
162
142
  *
163
- * return <Puck overrides={overrides} {...otherProps} />;
164
- * }
165
- * ```
143
+ * Ordinary field labels drop Puck's field-type icon. Its select variant is a
144
+ * chevron, the same glyph the disclosure above uses, so it reads as a group that
145
+ * expands and then does nothing. The label already says what the field is, and
146
+ * the narrow inspector would rather have the space. The read-only lock is a
147
+ * separate slot and survives.
166
148
  */
149
+ export declare function P1FieldLabel(props: FieldLabelOverrideProps): React.ReactElement;
167
150
  export declare function createP1Overrides(options: P1OverridesOptions): PuckOverrides;
168
151
  //# sourceMappingURL=createP1Overrides.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createP1Overrides.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createP1Overrides.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
@@ -1,121 +1,49 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ActionBar, createUsePuck, usePuck } from '@puckeditor/core';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * P1 Puck Overrides
4
+ *
5
+ * Creates Puck overrides for P1 integration, including
6
+ * header actions for save status and publish functionality.
7
+ */
8
+ import React from 'react';
9
+ import { ActionBar, FieldLabel } from '@puckeditor/core';
3
10
  import { SaveIndicator } from '../components/SaveIndicator.js';
4
- import { HistoricalVersionBanner } from '../../versioning/components/HistoricalVersionBanner.js';
5
11
  import { CollaboratorAvatars } from '../../collaboration/components/CollaboratorAvatars.js';
6
12
  import { AgentActivityBanner } from '../../collaboration/components/AgentActivityBanner.js';
7
13
  import { PublishedStatusBadge } from '../components/PublishedStatusBadge.js';
8
14
  import { ActionBarPinButton } from '../../features/content-type-templates/ui/ActionBarPinButton.js';
9
- import { TemplateDetailsPanel } from '../../features/content-type-templates/ui/TemplateDetailsPanel.js';
10
- import { useP1PuckOptional } from '../../core/P1PuckContext.js';
15
+ import { P1InspectorFields } from '../components/P1InspectorFields.js';
16
+ import { CollapsibleFieldSection } from '../components/CollapsibleFieldSection.js';
17
+ import { CollapsibleFieldContext } from '../components/collapsibleSectionContext.js';
18
+ import { OutlinePanel } from '../components/OutlinePanel.js';
19
+ import { fieldGuidanceFieldTypes } from './fieldGuidance.js';
11
20
  // NOTE: PuckDataSynchronizer is NOT imported here - it's used in P1Plugin instead
12
21
  // because headerActions renders outside Puck's context where usePuck() doesn't work.
13
- // Module-level usePuck hook for reading the current selection inside the fields override.
14
- const useOverridesPuck = createUsePuck();
15
- /**
16
- * Resolve the template being edited from a document path. Templates are stored
17
- * as documents at `_registry/templates/<name>`; returns the matching template
18
- * (by name) or null for ordinary pages.
19
- */
20
- export function templateFromRegistryPath(path, templates) {
21
- if (!path || !templates)
22
- return null;
23
- const match = path.match(/^_registry\/templates\/(.+)$/);
24
- if (!match)
25
- return null;
26
- return templates.find((t) => t.name === match[1]) ?? null;
27
- }
28
- /**
29
- * Right-sidebar fields override. In template mode (editing a template document)
30
- * with the root selected, it replaces the default "Page" root fields with the
31
- * "Template" details panel (Label / Description / URL pattern). Otherwise it
32
- * renders Puck's default fields unchanged.
33
- */
34
- function P1TemplateFields({ children }) {
35
- const css = useP1PuckOptional();
36
- const itemSelector = useOverridesPuck((s) => s.appState?.ui?.itemSelector);
37
- const { dispatch } = usePuck();
38
- const template = templateFromRegistryPath(css?.currentDocument?.path, css?.templates);
39
- // Only override the ROOT fields (nothing selected) while editing a template.
40
- if (template && !itemSelector && css?.updateTemplate) {
41
- const updateTemplate = css.updateTemplate;
42
- return (_jsx(TemplateDetailsPanel, { template: template, onSave: async (details) => {
43
- // Metadata-only PATCH; the layout is persisted by the canvas autosave.
44
- await updateTemplate(template.id, {
45
- label: details.label,
46
- description: details.description,
47
- defaultUrlPattern: details.defaultUrlPattern,
48
- });
49
- // Mirror the saved metadata into the live Puck root props
50
- // (root.props._template) so the canvas autosave writes the same
51
- // metadata the PATCH persisted.
52
- dispatch({
53
- type: 'setData',
54
- data: (prev) => {
55
- const root = (prev.root ?? {});
56
- const props = (root.props ?? {});
57
- return {
58
- ...prev,
59
- root: {
60
- ...root,
61
- props: {
62
- ...props,
63
- _template: {
64
- ...(props._template ?? {}),
65
- label: details.label,
66
- description: details.description,
67
- defaultUrlPattern: details.defaultUrlPattern,
68
- },
69
- },
70
- },
71
- };
72
- },
73
- });
74
- } }));
75
- }
76
- return _jsx(_Fragment, { children: children });
77
- }
22
+ // Re-exported for backwards compatibility implementation lives in utils/templatePath.ts.
23
+ export { templateFromRegistryPath } from '../utils/templatePath.js';
24
+ // Re-exported for backwards compatibility — implementation lives in components/P1TemplateFields.tsx.
25
+ export { P1TemplateFields } from '../components/P1TemplateFields.js';
78
26
  /**
79
- * Creates Puck overrides for P1 integration.
80
- *
81
- * Adds SaveIndicator and PublishButton to the header actions area.
82
- *
83
- * @example
84
- * ```tsx
85
- * import { createP1Overrides, useP1Puck } from '@pantheon-systems/puck-css';
86
- *
87
- * function Editor() {
88
- * const {
89
- * saveStatus,
90
- * lastSaved,
91
- * saveError,
92
- * saveNow,
93
- * publishDocument,
94
- * } = useP1Puck();
95
- *
96
- * // Preferred: use refs and getters for better performance
97
- * const saveStatusRef = useRef(saveStatus);
98
- * useEffect(() => { saveStatusRef.current = saveStatus; }, [saveStatus]);
27
+ * Renders an opted-in field group's label row as a disclosure. Puck hands a
28
+ * label override the field's content as `children`, so the group's own label
29
+ * becomes the toggle there is no second header and nothing to suppress.
99
30
  *
100
- * const overrides = createP1Overrides({
101
- * getSaveStatus: () => saveStatusRef.current,
102
- * getLastSaved: () => lastSavedRef.current,
103
- * getSaveError: () => saveErrorRef.current,
104
- * onRetrySave: saveNow,
105
- * });
31
+ * The context is cleared for descendants so a nested group inside a collapsible
32
+ * one keeps its ordinary label.
106
33
  *
107
- * // Legacy: direct values (causes overrides to be recreated on changes)
108
- * const overrides = createP1Overrides({
109
- * saveStatus,
110
- * lastSaved,
111
- * saveError,
112
- * onRetrySave: saveNow,
113
- * });
114
- *
115
- * return <Puck overrides={overrides} {...otherProps} />;
116
- * }
117
- * ```
34
+ * Ordinary field labels drop Puck's field-type icon. Its select variant is a
35
+ * chevron, the same glyph the disclosure above uses, so it reads as a group that
36
+ * expands and then does nothing. The label already says what the field is, and
37
+ * the narrow inspector would rather have the space. The read-only lock is a
38
+ * separate slot and survives.
118
39
  */
40
+ export function P1FieldLabel(props) {
41
+ const collapsible = React.useContext(CollapsibleFieldContext);
42
+ if (collapsible && props.el === 'div') {
43
+ return (_jsx(CollapsibleFieldContext.Provider, { value: null, children: _jsx(CollapsibleFieldSection, { label: props.label, defaultCollapsed: collapsible.defaultCollapsed, count: collapsible.count, children: props.children }) }));
44
+ }
45
+ return _jsx(FieldLabel, { ...props, icon: undefined });
46
+ }
119
47
  export function createP1Overrides(options) {
120
48
  const {
121
49
  // New getter-based API (preferred)
@@ -125,7 +53,7 @@ export function createP1Overrides(options) {
125
53
  // Common options
126
54
  onRetrySave, showDefaultPublish = false,
127
55
  // Deprecated props - kept for type signature compatibility but ignored
128
- syncData: _syncData, dataSyncKey: _dataSyncKey,
56
+ syncData: _syncData, dataSyncKey: _dataSyncKey, onRestoreVersion: _onRestoreVersion, canRevert: _canRevert,
129
57
  // Presence/Agent Features — NOT destructured here.
130
58
  // These are read lazily from `options` in the headerActions render function
131
59
  // so that the Proxy pattern from useP1Overrides provides live values.
@@ -134,6 +62,8 @@ export function createP1Overrides(options) {
134
62
  // Suppress unused variable warnings for deprecated props
135
63
  void _syncData;
136
64
  void _dataSyncKey;
65
+ void _onRestoreVersion;
66
+ void _canRevert;
137
67
  // Determine if using getter API or direct props API
138
68
  const usingGetters = typeof getSaveStatus === 'function';
139
69
  // Build props for SaveIndicator based on which API is being used
@@ -152,7 +82,21 @@ export function createP1Overrides(options) {
152
82
  };
153
83
  return {
154
84
  actionBar: ({ label, children }) => (_jsxs(ActionBar, { label: label, children: [children, _jsx(ActionBarPinButton, {})] })),
155
- fields: ({ children }) => (_jsx(P1TemplateFields, { children: children })),
85
+ fields: ({ children }) => (_jsx(P1InspectorFields, { children: children })),
86
+ fieldLabel: P1FieldLabel,
87
+ fieldTypes: {
88
+ ...fieldGuidanceFieldTypes,
89
+ // Marks an opted-in object field for P1FieldLabel, which owns the rendering
90
+ // because it is the only override that receives the label. Object fields
91
+ // without `metadata.collapsible` pass through untouched.
92
+ object: ({ field, children, }) => field.metadata?.collapsible ? (_jsx(CollapsibleFieldContext.Provider, { value: {
93
+ defaultCollapsed: field.metadata.defaultCollapsed,
94
+ // Derived from the resolved field set, so omitting a field — how
95
+ // role gating will hide one — moves the count with it.
96
+ count: Object.keys(field.objectFields ?? {}).length,
97
+ }, children: children })) : (_jsx(_Fragment, { children: children })),
98
+ },
99
+ outline: () => _jsx(OutlinePanel, {}),
156
100
  headerActions: ({ children }) => {
157
101
  // Read presence/agent values lazily from options (Proxy) each render
158
102
  // so they reflect the latest state from useP1Overrides' optionsRef.
@@ -164,12 +108,10 @@ export function createP1Overrides(options) {
164
108
  const _onStopAgent = options.onStopAgent;
165
109
  const _showSaveIndicator = options.showSaveIndicator ?? true;
166
110
  const _isViewingHistoricalVersion = options.isViewingHistoricalVersion ?? false;
167
- const _viewingVersion = options.viewingVersion;
168
- const _onReturnToLatest = options.onReturnToLatest;
169
111
  const _publishedStatus = options.publishedStatus;
170
112
  // Find the first active agent for banner display
171
113
  const firstActiveAgent = _activeAgents.find(a => a.state === 'editing') || _activeAgents[0];
172
- return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_showAgentActivityBanner && _isAgentEditing && firstActiveAgent && (_jsx(AgentActivityBanner, { agent: firstActiveAgent, showIdle: true, onStopAgent: _onStopAgent })), _showCollaboratorAvatars && _presence.length > 0 && (_jsx(CollaboratorAvatars, { actors: _presence, maxVisible: 5 })), _isViewingHistoricalVersion && _viewingVersion && _onReturnToLatest ? (_jsx(HistoricalVersionBanner, { version: _viewingVersion, onReturnToLatest: _onReturnToLatest })) : (_jsxs(_Fragment, { children: [_showSaveIndicator && _jsx(SaveIndicator, { ...saveIndicatorProps }), _publishedStatus && (_jsx(PublishedStatusBadge, { status: _publishedStatus }))] })), showDefaultPublish && children] }));
114
+ return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_showAgentActivityBanner && _isAgentEditing && firstActiveAgent && (_jsx(AgentActivityBanner, { agent: firstActiveAgent, showIdle: true, onStopAgent: _onStopAgent })), _showCollaboratorAvatars && _presence.length > 0 && (_jsx(CollaboratorAvatars, { actors: _presence, maxVisible: 5 })), !_isViewingHistoricalVersion && (_jsxs(_Fragment, { children: [_showSaveIndicator && _jsx(SaveIndicator, { ...saveIndicatorProps }), _publishedStatus && (_jsx(PublishedStatusBadge, { status: _publishedStatus }))] })), showDefaultPublish && children] }));
173
115
  },
174
116
  };
175
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createP1Overrides.js","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createP1Overrides.js","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { Plugin } from "@puckeditor/core";
2
+ import type { PuckData } from "@pantheon-systems/css-client";
3
+ export interface DocumentSyncSnapshot {
4
+ /** Identity of the loaded document (e.g. `${branchId}:${documentId}`) */
5
+ syncKey: string | null;
6
+ data: PuckData | null;
7
+ }
8
+ export interface DocumentSyncStore {
9
+ publish(snapshot: DocumentSyncSnapshot): void;
10
+ subscribe(onChange: VoidFunction): VoidFunction;
11
+ getSnapshot(): DocumentSyncSnapshot;
12
+ /** Records which document the Puck canvas currently shows; null before the first */
13
+ markApplied(syncKey: string | null): void;
14
+ /** Sync key of the document the canvas shows, or null before the first one */
15
+ getAppliedKey(): string | null;
16
+ }
17
+ /**
18
+ * Sync-key format for a loaded document. Shared so the publisher
19
+ * (useP1Editor) and readers of the applied key (ContextSyncBridge, the
20
+ * write-back guard) can never disagree about what identifies a document.
21
+ */
22
+ export declare function documentSyncKey(branchId: string | null | undefined, documentId: string): string;
23
+ /**
24
+ * Guarantee a complete PuckData shape before handing data to Puck. Puck's
25
+ * walkAppState reads data.root.props while rebuilding indexes, so a page whose
26
+ * root or content hasn't settled yet (as can happen mid document-switch) would
27
+ * otherwise crash with "Cannot read properties of undefined (reading 'props')".
28
+ * Settled data passes through by reference unchanged; a non-object (a bug
29
+ * upstream — data should already be parsed) collapses to a blank page rather
30
+ * than being spread character-by-character.
31
+ */
32
+ export declare function normalizeSyncData(data: PuckData): PuckData;
33
+ export declare function createDocumentSyncStore(): DocumentSyncStore;
34
+ export declare function createDocumentSyncPlugin(store: DocumentSyncStore): Plugin;
35
+ //# sourceMappingURL=document-sync-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-sync-plugin.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IAChD,WAAW,IAAI,oBAAoB,CAAC;IACpC,oFAAoF;IACpF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;CAChC;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAW1D;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAwB3D;AAwED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYzE"}
@@ -0,0 +1,130 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Document-sync plugin
5
+ *
6
+ * Lets a single mounted <Puck> instance follow document switches instead of
7
+ * being remounted via a React key (which tears down the preview iframe and
8
+ * re-parses all canvas styles). useP1Editor publishes the freshly loaded
9
+ * document into a DocumentSyncStore; a headless component inside the Puck
10
+ * tree picks it up and replaces editor state through the history API.
11
+ *
12
+ * A single history.setHistories([{ state }]) call does everything atomically:
13
+ * it dispatches the new state into Puck and replaces the undo stack, so
14
+ * undo can never resurrect the previous document. The state passed omits
15
+ * `indexes` on purpose — Puck's set action only re-runs walkAppState (which
16
+ * rebuilds the node/zone indexes for the new content) when indexes are absent.
17
+ */
18
+ import { useEffect, useSyncExternalStore } from "react";
19
+ import { useGetPuck } from "@puckeditor/core";
20
+ const EMPTY_SNAPSHOT = { syncKey: null, data: null };
21
+ /**
22
+ * Sync-key format for a loaded document. Shared so the publisher
23
+ * (useP1Editor) and readers of the applied key (ContextSyncBridge, the
24
+ * write-back guard) can never disagree about what identifies a document.
25
+ */
26
+ export function documentSyncKey(branchId, documentId) {
27
+ return `${branchId ?? ""}:${documentId}`;
28
+ }
29
+ /**
30
+ * Guarantee a complete PuckData shape before handing data to Puck. Puck's
31
+ * walkAppState reads data.root.props while rebuilding indexes, so a page whose
32
+ * root or content hasn't settled yet (as can happen mid document-switch) would
33
+ * otherwise crash with "Cannot read properties of undefined (reading 'props')".
34
+ * Settled data passes through by reference unchanged; a non-object (a bug
35
+ * upstream — data should already be parsed) collapses to a blank page rather
36
+ * than being spread character-by-character.
37
+ */
38
+ export function normalizeSyncData(data) {
39
+ if (!data || typeof data !== "object" || Array.isArray(data)) {
40
+ return { content: [], root: { props: {} } };
41
+ }
42
+ if (data.content && data.root?.props)
43
+ return data;
44
+ const root = data.root ?? { props: {} };
45
+ return {
46
+ ...data,
47
+ content: data.content ?? [],
48
+ root: { ...root, props: root.props ?? {} },
49
+ };
50
+ }
51
+ export function createDocumentSyncStore() {
52
+ let snapshot = EMPTY_SNAPSHOT;
53
+ let appliedKey = null;
54
+ const listeners = new Set();
55
+ return {
56
+ publish(next) {
57
+ snapshot = next;
58
+ for (const listener of listeners)
59
+ listener();
60
+ },
61
+ subscribe(onChange) {
62
+ listeners.add(onChange);
63
+ return () => listeners.delete(onChange);
64
+ },
65
+ getSnapshot() {
66
+ return snapshot;
67
+ },
68
+ markApplied(syncKey) {
69
+ appliedKey = syncKey;
70
+ },
71
+ getAppliedKey() {
72
+ return appliedKey;
73
+ },
74
+ };
75
+ }
76
+ function DocumentSync({ store }) {
77
+ const snapshot = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
78
+ // Puck state is read imperatively at push time rather than subscribed to —
79
+ // subscribing to appState would re-run this component on every keystroke.
80
+ const getPuck = useGetPuck();
81
+ useEffect(() => {
82
+ const { syncKey, data } = snapshot;
83
+ if (!syncKey || !data)
84
+ return;
85
+ const appliedKey = store.getAppliedKey();
86
+ if (appliedKey === syncKey)
87
+ return;
88
+ if (appliedKey === null) {
89
+ // First document observed: Puck was mounted with it, nothing to push.
90
+ store.markApplied(syncKey);
91
+ return;
92
+ }
93
+ const { appState, history } = getPuck();
94
+ // Omit indexes so Puck re-runs walkAppState for the new content.
95
+ const { indexes: _indexes, ...rest } = appState;
96
+ // Marked before dispatching, and rolled back if the dispatch fails. Puck's
97
+ // onChange is a store subscriber, so it fires synchronously inside
98
+ // setHistories: the echo has to find the new document already applied, or
99
+ // useP1Editor's write-back guard reports a race on every switch. A failed
100
+ // dispatch must not leave the key advanced either — the canvas would still
101
+ // hold the old document and the guard would wave through a save that writes
102
+ // it into the new one.
103
+ store.markApplied(syncKey);
104
+ try {
105
+ history.setHistories([
106
+ {
107
+ state: {
108
+ ...rest,
109
+ data: normalizeSyncData(data),
110
+ ui: { ...rest.ui, itemSelector: null },
111
+ },
112
+ },
113
+ ]);
114
+ }
115
+ catch (err) {
116
+ store.markApplied(appliedKey);
117
+ throw err;
118
+ }
119
+ }, [snapshot, getPuck, store]);
120
+ return null;
121
+ }
122
+ export function createDocumentSyncPlugin(store) {
123
+ return {
124
+ name: "p1-document-sync",
125
+ overrides: {
126
+ puck: ({ children }) => (_jsxs(_Fragment, { children: [_jsx(DocumentSync, { store: store }), children] })),
127
+ },
128
+ };
129
+ }
130
+ //# sourceMappingURL=document-sync-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-sync-plugin.js","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"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"}