@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,64 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * OutlinePanel
4
+ *
5
+ * The page's block structure, replacing Puck's stock LayerTree at the `outline`
6
+ * override key.
7
+ *
8
+ */
9
+ import React from 'react';
10
+ import { createUsePuck } from '@puckeditor/core';
11
+ import { Icon } from '@pantheon-systems/pds-toolkit-react';
12
+ import { useP1PuckOptional } from '../../core/P1PuckContext.js';
13
+ import { GripHandleIcon } from '../icons/index.js';
14
+ import { DraggableRow } from './DraggableRow.js';
15
+ import { PanelShell } from './PanelShell.js';
16
+ import { PreviewPanelOverlay } from './PreviewPanelOverlay.js';
17
+ import { flattenOutline, resolveDrop, ROOT_ZONE } from './outlineTree.js';
18
+ import { getIconForComponent } from './componentIconName.js';
19
+ import { useDragReorder } from './useDragReorder.js';
20
+ import styles from './OutlinePanel.module.css';
21
+ const usePuckOutline = createUsePuck();
22
+ export function OutlinePanel() {
23
+ const p1Puck = useP1PuckOptional();
24
+ const isViewingHistoricalVersion = p1Puck?.isViewingHistoricalVersion ?? false;
25
+ const viewingVersion = p1Puck?.viewingVersion ?? null;
26
+ const returnToLatest = p1Puck?.returnToLatest ?? (() => { });
27
+ const content = usePuckOutline((s) => s.appState.data.content);
28
+ const config = usePuckOutline((s) => s.config);
29
+ const itemSelector = usePuckOutline((s) => s.appState.ui.itemSelector);
30
+ const dispatch = usePuckOutline((s) => s.dispatch);
31
+ const rows = React.useMemo(() => flattenOutline(content, config), [content, config]);
32
+ const isSelected = (row) => !!itemSelector &&
33
+ itemSelector.index === row.index &&
34
+ (itemSelector.zone ?? ROOT_ZONE) === row.zone;
35
+ const select = (row) => {
36
+ dispatch({ type: 'setUi', ui: { itemSelector: { index: row.index, zone: row.zone } } });
37
+ };
38
+ const remove = (row) => {
39
+ dispatch({ type: 'remove', index: row.index, zone: row.zone });
40
+ };
41
+ const { dropTargetId, getDragHandlers } = useDragReorder({
42
+ getId: (row) => row.id,
43
+ onReorder: (source, target) => {
44
+ const move = resolveDrop(source, target);
45
+ if (move) {
46
+ dispatch({
47
+ type: 'reorder',
48
+ sourceIndex: move.sourceIndex,
49
+ destinationIndex: move.destinationIndex,
50
+ destinationZone: move.zone,
51
+ });
52
+ }
53
+ },
54
+ });
55
+ return (_jsx(PreviewPanelOverlay, { isViewingHistoricalVersion: isViewingHistoricalVersion, versionNumber: viewingVersion?.versionNumber ?? undefined, onExitPreview: returnToLatest, children: _jsx(PanelShell, { title: "Outline", children: rows.length === 0 ? (_jsx("div", { className: styles.empty, children: "No blocks yet. Add one from the Blocks panel." })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.eyebrow, children: "Page structure" }), rows.map((row) => (_jsxs(DraggableRow, { depth: row.depth, isSelected: isSelected(row), isDropTarget: dropTargetId === row.id, onSelect: () => select(row), dragHandlers: getDragHandlers(row), children: [_jsx("span", { className: styles.grip, "aria-hidden": "true", children: _jsx(GripHandleIcon, {}) }), _jsx("span", { className: styles.icon, "aria-hidden": "true", children: _jsx(Icon, { iconName: getIconForComponent(row.type, row.label), size: "s" }) }), _jsx("span", { className: styles.label, children: row.label }), _jsx("button", { type: "button", className: styles.delete, "aria-label": `Delete ${row.label}`,
56
+ // stopPropagation on both onClick and onKeyDown: the row div's
57
+ // onKeyDown fires on Space/Enter bubbling up from this button,
58
+ // which would call select(row) for a block being deleted.
59
+ onClick: (e) => {
60
+ e.stopPropagation();
61
+ remove(row);
62
+ }, onKeyDown: (e) => e.stopPropagation(), children: _jsx(Icon, { iconName: "trash", size: "s" }) })] }, row.id)))] })) }) }));
63
+ }
64
+ //# sourceMappingURL=OutlinePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutlinePanel.js","sourceRoot":"","sources":["../../../src/editor/components/OutlinePanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Outline panel
3
+ */
4
+
5
+ .eyebrow {
6
+ padding: 4px 6px 10px;
7
+ font-size: var(--pds-typography-size-xs, 0.75rem);
8
+ font-weight: var(--pds-typography-fw-semibold, 600);
9
+ letter-spacing: 0.12em;
10
+ text-transform: uppercase;
11
+ color: var(--pds-color-foreground-default-secondary, var(--puck-css-text-secondary));
12
+ }
13
+
14
+ .row {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: var(--pds-spacing-xs, 0.5rem);
18
+ width: 100%;
19
+ margin-bottom: 2px;
20
+ padding: var(--pds-spacing-xs, 0.5rem) var(--pds-spacing-s, 0.75rem);
21
+ border: 1px solid transparent;
22
+ border-radius: 9px;
23
+ background: transparent;
24
+ font: inherit;
25
+ text-align: left;
26
+ cursor: pointer;
27
+ }
28
+
29
+ .row:hover {
30
+ background: var(--pds-color-interactive-background-hover, var(--puck-css-bg-secondary));
31
+ }
32
+
33
+ .row:focus-visible {
34
+ outline: 2px solid var(--pds-color-interactive-focus, var(--puck-css-primary));
35
+ outline-offset: 2px;
36
+ }
37
+
38
+ .rowSelected,
39
+ .rowSelected:hover {
40
+ background: var(--pds-color-interactive-background-selected, var(--puck-css-bg-secondary));
41
+ border-color: var(--pds-color-border-hover, var(--puck-css-border));
42
+ }
43
+
44
+ .rowDropTarget {
45
+ background: var(--pds-color-panel-sunken-background, var(--puck-css-bg-secondary));
46
+ }
47
+
48
+ .label {
49
+ flex: 1;
50
+ min-width: 0;
51
+ overflow: hidden;
52
+ white-space: nowrap;
53
+ text-overflow: ellipsis;
54
+ font-family: var(--pds-typography-ff-compact, 'Inter Tight', 'Inter', sans-serif);
55
+ font-size: var(--pds-typography-size-s, 0.875rem);
56
+ font-weight: var(--pds-typography-fw-semibold, 600);
57
+ color: var(--pds-color-foreground-default, var(--puck-css-text));
58
+ }
59
+
60
+ .icon {
61
+ display: inline-flex;
62
+ flex-shrink: 0;
63
+ color: var(--pds-color-foreground-default-secondary, var(--puck-css-text-secondary));
64
+ }
65
+
66
+ .rowSelected .icon {
67
+ color: var(--pds-color-interactive-focus, var(--puck-css-primary));
68
+ }
69
+
70
+ .grip {
71
+ display: inline-flex;
72
+ flex-shrink: 0;
73
+ cursor: grab;
74
+ color: var(--pds-color-foreground-default-secondary, var(--puck-css-text-secondary));
75
+ }
76
+
77
+ /* Hidden until the row is hovered or something inside it has focus — so the
78
+ affordance stays reachable by keyboard, not just by pointer. */
79
+ .delete {
80
+ display: inline-flex;
81
+ flex-shrink: 0;
82
+ padding: 2px;
83
+ border: none;
84
+ border-radius: 4px;
85
+ background: none;
86
+ cursor: pointer;
87
+ opacity: 0;
88
+ color: var(--pds-color-foreground-default-secondary, var(--puck-css-text-secondary));
89
+ }
90
+
91
+ .row:hover .delete,
92
+ .row:focus-within .delete,
93
+ .delete:focus-visible {
94
+ opacity: 1;
95
+ }
96
+
97
+ .delete:hover {
98
+ color: var(--pds-color-status-critical-foreground);
99
+ }
100
+
101
+ .delete:focus-visible {
102
+ outline: 2px solid var(--pds-color-interactive-focus, var(--puck-css-primary));
103
+ outline-offset: 1px;
104
+ }
105
+
106
+ .empty {
107
+ padding: 40px var(--pds-spacing-l, 1.5rem);
108
+ text-align: center;
109
+ font-size: var(--pds-typography-size-s, 0.875rem);
110
+ color: var(--pds-color-foreground-default-secondary, var(--puck-css-text-secondary));
111
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * P1InspectorFields
3
+ *
4
+ * Orchestrates the right inspector panel's fields override:
5
+ * - Page / Blocks tab header (tab mirrors Puck's itemSelector state)
6
+ * - Read-only banner + interaction guard when viewing a historical version
7
+ * - Delegates to P1TemplateFields when editing a template document
8
+ *
9
+ * Reads P1 context via useP1PuckOptional() and Puck state via createUsePuck().
10
+ * Placed in the `fields` override so it always runs inside Puck's component tree.
11
+ */
12
+ import React from 'react';
13
+ export declare function P1InspectorFields({ children, }: {
14
+ children: React.ReactNode;
15
+ }): React.ReactElement;
16
+ //# sourceMappingURL=P1InspectorFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P1InspectorFields.d.ts","sourceRoot":"","sources":["../../../src/editor/components/P1InspectorFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAyGrB"}
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createUsePuck, usePuck } from '@puckeditor/core';
3
+ import { IconButton } from '@pantheon-systems/pds-toolkit-react';
4
+ import { useP1PuckOptional } from '../../core/P1PuckContext.js';
5
+ import { templateFromRegistryPath } from '../utils/templatePath.js';
6
+ import { ReadOnlyFieldsGuard } from '../../versioning/components/ReadOnlyFieldsGuard.js';
7
+ import { VersionReadOnlyBanner } from '../../versioning/components/VersionReadOnlyBanner.js';
8
+ import { P1TemplateFields } from './P1TemplateFields.js';
9
+ import { InspectorTabHeader } from './InspectorTabHeader.js';
10
+ // Selectors are at module level so the hook identity is stable across renders.
11
+ const useInspectorPuck = createUsePuck();
12
+ const useInspectorSelectedType = createUsePuck();
13
+ const useInspectorContentLength = createUsePuck();
14
+ const useInspectorRightVisible = createUsePuck();
15
+ export function P1InspectorFields({ children, }) {
16
+ const css = useP1PuckOptional();
17
+ const itemSelector = useInspectorPuck((s) => s.appState?.ui
18
+ ?.itemSelector ?? null);
19
+ const selectedBlockType = useInspectorSelectedType((s) => s.selectedItem?.type ?? null);
20
+ const contentLength = useInspectorContentLength((s) => s.appState?.data?.content
21
+ ?.length ?? 0);
22
+ const rightSideBarVisible = useInspectorRightVisible((s) => s.appState?.ui
23
+ ?.rightSideBarVisible ?? true);
24
+ const { dispatch, config } = usePuck();
25
+ const selectedBlockLabel = selectedBlockType
26
+ ? (config.components[selectedBlockType]?.label ?? selectedBlockType)
27
+ : null;
28
+ const isReadOnly = css?.isViewingHistoricalVersion ?? false;
29
+ const versionNumber = css?.viewingVersion?.versionNumber ?? null;
30
+ const activeTab = itemSelector ? 'block' : 'page';
31
+ const handleTabChange = (tab) => {
32
+ if (tab === 'page' && itemSelector) {
33
+ dispatch({ type: 'setUi', ui: { itemSelector: null } });
34
+ }
35
+ if (tab === 'block' && !itemSelector && contentLength > 0) {
36
+ // Puck indexes the root zone as `rootDroppableId` (`root:default-zone`);
37
+ // the bare zone name resolves to no zone, so getItem() selects nothing.
38
+ dispatch({
39
+ type: 'setUi',
40
+ ui: { itemSelector: { zone: 'root:default-zone', index: 0 } },
41
+ });
42
+ }
43
+ };
44
+ const handleCollapse = () => {
45
+ dispatch({ type: 'setUi', ui: { rightSideBarVisible: false } });
46
+ };
47
+ const handleReopen = () => {
48
+ dispatch({ type: 'setUi', ui: { rightSideBarVisible: true } });
49
+ };
50
+ if (!rightSideBarVisible) {
51
+ return (_jsx("div", { className: "p1-inspector-reopen-strip", children: _jsx(IconButton, { ariaLabel: "Open inspector panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, onClick: handleReopen, className: "p1-inspector-reopen-btn" }) }));
52
+ }
53
+ const template = templateFromRegistryPath(css?.currentDocument?.path, css?.templates);
54
+ if (template && !itemSelector && css?.updateTemplate) {
55
+ // Guarded like the main return — without this, template fields stay editable
56
+ // while viewing a read-only historical version.
57
+ return (_jsx(ReadOnlyFieldsGuard, { isReadOnly: isReadOnly, children: _jsx(P1TemplateFields, { children: children }) }));
58
+ }
59
+ return (_jsxs("div", { className: `p1-inspector-fields${isReadOnly ? ' p1-inspector-fields--readonly' : ''}`, children: [_jsx(InspectorTabHeader, { activeTab: activeTab, onTabChange: handleTabChange, isReadOnly: isReadOnly, rightSideBarVisible: rightSideBarVisible, onCollapse: handleCollapse }), isReadOnly && versionNumber !== null && (_jsx(VersionReadOnlyBanner, { versionNumber: versionNumber })), activeTab === 'block' && selectedBlockLabel && (_jsxs("div", { className: "p1-inspector-breadcrumb", "aria-label": "Selected block location", children: [_jsx("span", { className: "p1-inspector-breadcrumb__sep", "aria-hidden": "true", children: "Page" }), _jsx("span", { className: "p1-inspector-breadcrumb__sep", "aria-hidden": "true", children: "\u203A" }), _jsx("span", { className: "p1-inspector-breadcrumb__block", children: selectedBlockLabel })] })), _jsx(ReadOnlyFieldsGuard, { isReadOnly: isReadOnly, children: children })] }));
60
+ }
61
+ //# sourceMappingURL=P1InspectorFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P1InspectorFields.js","sourceRoot":"","sources":["../../../src/editor/components/P1InspectorFields.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * Right-sidebar fields override for template documents. When editing a template
4
+ * (`_registry/templates/<name>`) with the root selected, replaces the default
5
+ * "Page" root fields with the Template details panel (Label / Description / URL
6
+ * pattern). Otherwise renders Puck's default fields unchanged.
7
+ */
8
+ export declare function P1TemplateFields({ children }: {
9
+ children: React.ReactNode;
10
+ }): React.ReactElement;
11
+ //# sourceMappingURL=P1TemplateFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P1TemplateFields.d.ts","sourceRoot":"","sources":["../../../src/editor/components/P1TemplateFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA+ChG"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { createUsePuck, usePuck } from '@puckeditor/core';
3
+ import { useP1PuckOptional } from '../../core/P1PuckContext.js';
4
+ import { TemplateDetailsPanel } from '../../features/content-type-templates/ui/TemplateDetailsPanel.js';
5
+ import { templateFromRegistryPath } from '../utils/templatePath.js';
6
+ const useTemplateFieldsPuck = createUsePuck();
7
+ /**
8
+ * Right-sidebar fields override for template documents. When editing a template
9
+ * (`_registry/templates/<name>`) with the root selected, replaces the default
10
+ * "Page" root fields with the Template details panel (Label / Description / URL
11
+ * pattern). Otherwise renders Puck's default fields unchanged.
12
+ */
13
+ export function P1TemplateFields({ children }) {
14
+ const css = useP1PuckOptional();
15
+ const itemSelector = useTemplateFieldsPuck((s) => s.appState?.ui?.itemSelector);
16
+ const { dispatch } = usePuck();
17
+ const template = templateFromRegistryPath(css?.currentDocument?.path, css?.templates);
18
+ if (template && !itemSelector && css?.updateTemplate) {
19
+ const updateTemplate = css.updateTemplate;
20
+ return (_jsx(TemplateDetailsPanel, { template: template, onSave: async (details) => {
21
+ await updateTemplate(template.id, {
22
+ label: details.label,
23
+ description: details.description,
24
+ defaultUrlPattern: details.defaultUrlPattern,
25
+ });
26
+ dispatch({
27
+ type: 'setData',
28
+ data: (prev) => {
29
+ const root = (prev.root ?? {});
30
+ const props = (root.props ?? {});
31
+ return {
32
+ ...prev,
33
+ root: {
34
+ ...root,
35
+ props: {
36
+ ...props,
37
+ _template: {
38
+ ...(props._template ?? {}),
39
+ label: details.label,
40
+ description: details.description,
41
+ defaultUrlPattern: details.defaultUrlPattern,
42
+ },
43
+ },
44
+ },
45
+ };
46
+ },
47
+ });
48
+ } }));
49
+ }
50
+ return _jsx(_Fragment, { children: children });
51
+ }
52
+ //# sourceMappingURL=P1TemplateFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P1TemplateFields.js","sourceRoot":"","sources":["../../../src/editor/components/P1TemplateFields.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,qBAAqB,GAAG,aAAa,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAiC;IAC1E,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,qBAAqB,CACxC,CAAC,CAAC,EAAE,EAAE,CACH,CAAmE,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAClG,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAEtF,IAAI,QAAQ,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,OAAO,CACL,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACxB,MAAM,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;iBAC7C,CAAC,CAAC;gBACH,QAAQ,CAAC;oBACP,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,CAAC,IAA6B,EAAE,EAAE;wBACtC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;wBAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;wBAC5D,OAAO;4BACL,GAAG,IAAI;4BACP,IAAI,EAAE;gCACJ,GAAG,IAAI;gCACP,KAAK,EAAE;oCACL,GAAG,KAAK;oCACR,SAAS,EAAE;wCACT,GAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAA6B;wCACvD,KAAK,EAAE,OAAO,CAAC,KAAK;wCACpB,WAAW,EAAE,OAAO,CAAC,WAAW;wCAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;qCAC7C;iCACF;6BACF;yBACF,CAAC;oBACJ,CAAC;iBACO,CAAC,CAAC;YACd,CAAC,GACD,CACH,CAAC;IACJ,CAAC;IACD,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * PanelHeader
3
+ *
4
+ * The heading every left-rail panel wears: title, an optional actions slot, a
5
+ * collapse button, and the rule beneath. Blocks, Outline, Version history and
6
+ * Data sources all render it, so their headings stay identical by construction
7
+ * instead of by three hand-rolled copies drifting apart — which is exactly what
8
+ * had happened (styles.css defined .css-plugin-panel-header twice, with
9
+ * different padding).
10
+ *
11
+ * Collapsing is built in rather than a required prop: all four panels want the
12
+ * same dispatch, and every one of them renders inside Puck's context. Pass
13
+ * `onCollapse` only for work that must happen *in addition*.
14
+ */
15
+ import React from 'react';
16
+ export interface PanelHeaderProps {
17
+ /** Panel name, rendered as the heading. */
18
+ title: string;
19
+ /** Extra work to run after collapsing. The collapse itself is built in. */
20
+ onCollapse?: () => void;
21
+ /** Optional controls rendered between the title and the collapse button. */
22
+ actions?: React.ReactNode;
23
+ }
24
+ export declare function PanelHeader({ title, onCollapse, actions, }: PanelHeaderProps): React.ReactElement;
25
+ //# sourceMappingURL=PanelHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PanelHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,UAAU,EACV,OAAO,GACR,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAoBvC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconButton } from '@pantheon-systems/pds-toolkit-react';
3
+ import { usePuck } from '@puckeditor/core';
4
+ import styles from './PanelHeader.module.css';
5
+ export function PanelHeader({ title, onCollapse, actions, }) {
6
+ const { dispatch } = usePuck();
7
+ return (_jsxs("div", { className: styles.header, children: [_jsx("span", { className: styles.title, children: title }), actions, _jsx(IconButton, { ariaLabel: "Collapse panel", iconName: "anglesLeft", size: "s", hasTooltip: true, hasBorder: false, onClick: () => {
8
+ dispatch({ type: 'setUi', ui: { leftSideBarVisible: false } });
9
+ onCollapse?.();
10
+ } })] }));
11
+ }
12
+ //# sourceMappingURL=PanelHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../../src/editor/components/PanelHeader.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAW9C,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,UAAU,EACV,OAAO,GACU;IACjB,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/B,OAAO,CACL,eAAK,SAAS,EAAE,MAAM,CAAC,MAAM,aAC3B,eAAM,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAQ,EAC5C,OAAO,EACR,KAAC,UAAU,IACT,SAAS,EAAC,gBAAgB,EAC1B,QAAQ,EAAC,YAAY,EACrB,IAAI,EAAC,GAAG,EACR,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,GAAG,EAAE;oBACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC/D,UAAU,EAAE,EAAE,CAAC;gBACjB,CAAC,GACD,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Panel heading
3
+ *
4
+ * One heading for every left-rail panel: Blocks, Outline, Version history,
5
+ * Data sources. Geometry mirrors the prototype's `.panel-header`
6
+ * (p1-responsive/editor/editor.css:230).
7
+ */
8
+
9
+ .header {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: 8px;
13
+ padding: 10px 12px;
14
+ border-bottom: 1px solid var(--pds-color-border-default, var(--puck-css-border));
15
+ flex: none;
16
+ }
17
+
18
+ .title {
19
+ flex: 1;
20
+ min-width: 0;
21
+ overflow: hidden;
22
+ white-space: nowrap;
23
+ text-overflow: ellipsis;
24
+ font-family: var(--pds-typography-ff-compact, 'Inter Tight', 'Inter', sans-serif);
25
+ font-size: 14px;
26
+ font-weight: 700;
27
+ line-height: 1.2;
28
+ color: var(--pds-color-foreground-default, var(--puck-css-text));
29
+ }
30
+
31
+ /* Trailing controls never shrink when the title is long. */
32
+ .header > *:not(.title) {
33
+ flex-shrink: 0;
34
+ }
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface PanelShellProps {
3
+ title: string;
4
+ onCollapse?: () => void;
5
+ actions?: React.ReactNode;
6
+ children: React.ReactNode;
7
+ testId?: string;
8
+ }
9
+ export declare function PanelShell({ title, onCollapse, actions, children, testId, }: PanelShellProps): React.ReactElement;
10
+ //# sourceMappingURL=PanelShell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelShell.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PanelShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAOtC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PanelHeader } from './PanelHeader.js';
3
+ import styles from './PanelShell.module.css';
4
+ export function PanelShell({ title, onCollapse, actions, children, testId, }) {
5
+ return (_jsxs("div", { className: styles.shell, "data-testid": testId, children: [_jsx(PanelHeader, { title: title, onCollapse: onCollapse, actions: actions }), _jsx("div", { className: styles.body, children: children })] }));
6
+ }
7
+ //# sourceMappingURL=PanelShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelShell.js","sourceRoot":"","sources":["../../../src/editor/components/PanelShell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAU7C,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,GACU;IAChB,OAAO,CACL,eAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBAAe,MAAM,aAC/C,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,EACvE,cAAK,SAAS,EAAE,MAAM,CAAC,IAAI,YAAG,QAAQ,GAAO,IACzC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ .shell {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ overflow: hidden;
6
+ }
7
+
8
+ .body {
9
+ flex: 1;
10
+ overflow-y: auto;
11
+ overflow-x: hidden;
12
+ padding: 12px;
13
+ font-size: 13px;
14
+ color: var(--pds-color-foreground-default, var(--puck-css-text));
15
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface PreviewPanelOverlayProps {
3
+ children: React.ReactNode;
4
+ /** Whether a historical version is currently being previewed. */
5
+ isViewingHistoricalVersion?: boolean;
6
+ /** Version number being previewed — shown in the overlay label. */
7
+ versionNumber?: number;
8
+ /** Called when the user clicks "Back to current version". */
9
+ onExitPreview?: () => void;
10
+ }
11
+ export declare function PreviewPanelOverlay({ children, isViewingHistoricalVersion, versionNumber, onExitPreview, }: PreviewPanelOverlayProps): React.ReactElement;
12
+ //# sourceMappingURL=PreviewPanelOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewPanelOverlay.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PreviewPanelOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iEAAiE;IACjE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,0BAAkC,EAClC,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAkC/C"}
@@ -0,0 +1,7 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ export function PreviewPanelOverlay({ children, isViewingHistoricalVersion = false, versionNumber, onExitPreview, }) {
3
+ return (_jsxs("div", { className: `css-preview-panel-overlay__wrapper${isViewingHistoricalVersion ? ' css-preview-panel-overlay__wrapper--readonly' : ''}`, children: [isViewingHistoricalVersion && (_jsxs("div", { className: "css-preview-panel-overlay", "aria-live": "polite", children: [_jsx("div", { className: "css-preview-panel-overlay__label-wrap", children: _jsxs("p", { className: "css-preview-panel-overlay__label", children: ["You're viewing", versionNumber != null ? ` v${versionNumber}` : ' a historical version', "."] }) }), _jsx("div", { className: "css-preview-panel-overlay__btn-wrap", children: _jsx("button", { type: "button", className: "css-preview-panel-overlay__btn", onClick: onExitPreview, disabled: !onExitPreview, children: "Back to current version" }) })] })), _jsx("div", { className: isViewingHistoricalVersion
4
+ ? 'css-preview-panel-overlay__content css-preview-panel-overlay__content--dimmed'
5
+ : 'css-preview-panel-overlay__content', "aria-hidden": isViewingHistoricalVersion ? true : undefined, children: children })] }));
6
+ }
7
+ //# sourceMappingURL=PreviewPanelOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewPanelOverlay.js","sourceRoot":"","sources":["../../../src/editor/components/PreviewPanelOverlay.tsx"],"names":[],"mappings":";AAYA,MAAM,UAAU,mBAAmB,CAAC,EAClC,QAAQ,EACR,0BAA0B,GAAG,KAAK,EAClC,aAAa,EACb,aAAa,GACY;IACzB,OAAO,CACL,eAAK,SAAS,EAAE,qCAAqC,0BAA0B,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,EAAE,aACrI,0BAA0B,IAAI,CAC7B,eAAK,SAAS,EAAC,2BAA2B,eAAW,QAAQ,aAC3D,cAAK,SAAS,EAAC,uCAAuC,YACpD,aAAG,SAAS,EAAC,kCAAkC,+BACzB,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,uBAAuB,SACxF,GACA,EACN,cAAK,SAAS,EAAC,qCAAqC,YAClD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,aAAa,wCAGjB,GACL,IACF,CACP,EACD,cACE,SAAS,EACP,0BAA0B;oBACxB,CAAC,CAAC,+EAA+E;oBACjF,CAAC,CAAC,oCAAoC,iBAE7B,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,YAEzD,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -2,5 +2,5 @@ export interface PublishedStatusBadgeProps {
2
2
  status: "published" | "unpublished-changes" | "draft";
3
3
  className?: string;
4
4
  }
5
- export declare function PublishedStatusBadge({ status, className, }: PublishedStatusBadgeProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function PublishedStatusBadge({ status, className, }: PublishedStatusBadgeProps): import("react").JSX.Element;
6
6
  //# sourceMappingURL=PublishedStatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublishedStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PublishedStatusBadge.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,WAAW,GAAG,qBAAqB,GAAG,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,2CAmB3B"}
1
+ {"version":3,"file":"PublishedStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PublishedStatusBadge.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,WAAW,GAAG,qBAAqB,GAAG,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,+BAmB3B"}
@@ -5,6 +5,10 @@ export interface VersionBannerOverrideProps {
5
5
  versions: DocumentVersion[];
6
6
  selectedVersionId?: string;
7
7
  onVersionSelect?: (version: DocumentVersion) => void;
8
+ onRestoreVersion?: (version: DocumentVersion) => Promise<void>;
9
+ canRevert?: boolean;
10
+ /** The currently filtered version list (from the panel filter). Steppers navigate within this list. */
11
+ filteredVersions?: DocumentVersion[];
8
12
  }
9
- export declare function VersionBannerOverride({ children, versions, selectedVersionId, onVersionSelect, }: VersionBannerOverrideProps): React.ReactElement;
13
+ export declare function VersionBannerOverride({ children, versions, selectedVersionId, onVersionSelect, onRestoreVersion, canRevert, filteredVersions, }: VersionBannerOverrideProps): React.ReactElement;
10
14
  //# sourceMappingURL=VersionBannerOverride.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionBannerOverride.d.ts","sourceRoot":"","sources":["../../../src/editor/components/VersionBannerOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,eAAe,GAChB,EAAE,0BAA0B,GAAG,KAAK,CAAC,YAAY,CAwEjD"}
1
+ {"version":3,"file":"VersionBannerOverride.d.ts","sourceRoot":"","sources":["../../../src/editor/components/VersionBannerOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uGAAuG;IACvG,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAiB,EACjB,gBAAgB,GACjB,EAAE,0BAA0B,GAAG,KAAK,CAAC,YAAY,CAgFjD"}
@@ -1,18 +1,35 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
2
3
  import { Icon } from '@pantheon-systems/pds-toolkit-react';
3
4
  import { useP1Puck } from '../../core/P1PuckContext.js';
4
- import { WarningTriangleIcon } from '../icons/WarningTriangleIcon.js';
5
- export function VersionBannerOverride({ children, versions, selectedVersionId, onVersionSelect, }) {
5
+ import { HistoricalVersionBanner } from '../../versioning/components/HistoricalVersionBanner.js';
6
+ export function VersionBannerOverride({ children, versions, selectedVersionId, onVersionSelect, onRestoreVersion, canRevert = false, filteredVersions, }) {
6
7
  const p1Context = useP1Puck();
8
+ // versions are newest-first from the API; index 0 is always the current (latest) version.
7
9
  const isViewingOld = !!selectedVersionId && versions.length > 0 && selectedVersionId !== versions[0]?.id;
8
- const hasDocument = p1Context.currentDocument !== null;
10
+ const viewingVersion = versions.find(v => v.id === selectedVersionId);
11
+ // While a switch is loading the next document, currentDocument is null but
12
+ // the empty state must not flash over the still-visible previous canvas.
13
+ const hasOrIsLoadingDocument = p1Context.currentDocument !== null || p1Context.documentLoading;
9
14
  const isReturning = p1Context.isReturningToLatest;
10
- return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [isViewingOld && (_jsxs("div", { className: "pds-section-message pds-section-message--warning", role: "status", style: { borderRadius: 0, flexShrink: 0 }, children: [_jsxs("div", { className: "pds-section-message__content", children: [_jsx("div", { className: "pds-section-message__icon", children: _jsx(WarningTriangleIcon, {}) }), _jsx("div", { className: "pds-section-message__text", children: _jsx("div", { className: "pds-section-message__message", children: _jsx("p", { children: "Viewing a previous version" }) }) })] }), _jsx("div", { className: "pds-section-message__actions", children: _jsx("button", { type: "button", className: "pds-button pds-button--sm pds-button--secondary pds-section-message__cta", onClick: () => versions[0] && onVersionSelect?.(versions[0]), disabled: isReturning, "aria-busy": isReturning, children: isReturning ? 'Returning…' : 'Return to current' }) })] })), _jsxs("div", { style: { flex: 1, minHeight: 0, position: 'relative' }, children: [_jsx("div", { style: {
15
+ // Stepper: navigate within the filtered list (falls back to full list if not provided).
16
+ // Newest-first: lower index = newer, higher index = older.
17
+ const stepList = filteredVersions ?? versions;
18
+ const currentIdx = selectedVersionId ? stepList.findIndex(v => v.id === selectedVersionId) : -1;
19
+ const hasPrevious = currentIdx !== -1 && currentIdx < stepList.length - 1;
20
+ const hasNext = currentIdx > 0;
21
+ // Always provide callbacks when previewing so buttons render (disabled state controls usability).
22
+ const handlePrevious = useCallback(() => { const t = stepList[currentIdx + 1]; if (hasPrevious && t)
23
+ onVersionSelect?.(t); }, [stepList, currentIdx, hasPrevious, onVersionSelect]);
24
+ const handleNext = useCallback(() => { const t = stepList[currentIdx - 1]; if (hasNext && t)
25
+ onVersionSelect?.(t); }, [stepList, currentIdx, hasNext, onVersionSelect]);
26
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [isViewingOld && (_jsx(HistoricalVersionBanner, { version: viewingVersion, onReturnToLatest: () => { if (versions[0])
27
+ onVersionSelect?.(versions[0]); }, onRestoreVersion: onRestoreVersion, canRevert: canRevert, isReturning: isReturning, onPrevious: handlePrevious, onNext: handleNext, hasPrevious: hasPrevious, hasNext: hasNext })), _jsxs("div", { style: { flex: 1, minHeight: 0, position: 'relative' }, children: [_jsx("div", { style: {
11
28
  height: '100%',
12
29
  opacity: isReturning ? 0.5 : 1,
13
30
  transition: 'opacity 120ms ease',
14
31
  pointerEvents: isReturning ? 'none' : undefined,
15
- }, children: children }), !hasDocument && (_jsxs("div", { style: {
32
+ }, children: children }), !hasOrIsLoadingDocument && (_jsxs("div", { style: {
16
33
  position: 'absolute',
17
34
  inset: 0,
18
35
  zIndex: 10,
@@ -22,7 +39,7 @@ export function VersionBannerOverride({ children, versions, selectedVersionId, o
22
39
  justifyContent: 'center',
23
40
  gap: '1rem',
24
41
  color: 'var(--pds-color-text-subtle)',
25
- backgroundColor: 'white',
26
- }, children: [_jsx(Icon, { iconName: "userAstronaut", iconSize: '3xl', "aria-hidden": "true" }), _jsx("p", { style: { margin: 0, fontFamily: 'Poppins, sans-serif', fontSize: '1rem' }, children: "Choose a page from the menu above" })] }))] })] }));
42
+ backgroundColor: 'var(--pds-color-bg-default, white)',
43
+ }, children: [_jsx(Icon, { iconName: "userAstronaut", size: "3xl", "aria-hidden": "true" }), _jsx("p", { style: { margin: 0, fontFamily: 'Poppins, sans-serif', fontSize: '1rem' }, children: "Choose a page from the menu above" })] }))] })] }));
27
44
  }
28
45
  //# sourceMappingURL=VersionBannerOverride.js.map