@pantheon-systems/puck-css 0.8.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 (356) 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 +1 -1
  22. package/dist/core/config.d.ts.map +1 -1
  23. package/dist/core/config.js.map +1 -1
  24. package/dist/core/types.d.ts +10 -3
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/data/css-queries/css-query-registry.d.ts +11 -0
  27. package/dist/data/css-queries/css-query-registry.d.ts.map +1 -0
  28. package/dist/data/css-queries/css-query-registry.js +28 -0
  29. package/dist/data/css-queries/css-query-registry.js.map +1 -0
  30. package/dist/data/dal/index.d.ts +1 -1
  31. package/dist/data/dal/index.d.ts.map +1 -1
  32. package/dist/data/dal/init.d.ts +5 -0
  33. package/dist/data/dal/init.d.ts.map +1 -1
  34. package/dist/data/dal/init.js +31 -4
  35. package/dist/data/dal/init.js.map +1 -1
  36. package/dist/data/dal/p1-store.d.ts +21 -0
  37. package/dist/data/dal/p1-store.d.ts.map +1 -1
  38. package/dist/data/dal/p1-store.js.map +1 -1
  39. package/dist/data/page-editor-meta.d.ts.map +1 -1
  40. package/dist/data/page-editor-meta.js +0 -1
  41. package/dist/data/page-editor-meta.js.map +1 -1
  42. package/dist/data/query-provider.d.ts +1 -1
  43. package/dist/data/query-provider.d.ts.map +1 -1
  44. package/dist/data/remote-datasources/fetch-http-json.d.ts.map +1 -1
  45. package/dist/data/remote-datasources/fetch-http-json.js.map +1 -1
  46. package/dist/data/remote-datasources/loader.js +1 -1
  47. package/dist/data/remote-datasources/loader.js.map +1 -1
  48. package/dist/data/resolve-data-templates.d.ts.map +1 -1
  49. package/dist/data/resolve-data-templates.js +26 -4
  50. package/dist/data/resolve-data-templates.js.map +1 -1
  51. package/dist/editor/P1App.d.ts.map +1 -1
  52. package/dist/editor/P1App.js +1 -1
  53. package/dist/editor/P1App.js.map +1 -1
  54. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  55. package/dist/editor/P1PuckProvider.js +57 -18
  56. package/dist/editor/P1PuckProvider.js.map +1 -1
  57. package/dist/editor/aiPanelStore.d.ts +15 -0
  58. package/dist/editor/aiPanelStore.d.ts.map +1 -0
  59. package/dist/editor/aiPanelStore.js +43 -0
  60. package/dist/editor/aiPanelStore.js.map +1 -0
  61. package/dist/editor/components/CollapsibleFieldSection.d.ts +10 -0
  62. package/dist/editor/components/CollapsibleFieldSection.d.ts.map +1 -0
  63. package/dist/editor/components/CollapsibleFieldSection.js +9 -0
  64. package/dist/editor/components/CollapsibleFieldSection.js.map +1 -0
  65. package/dist/editor/components/CollapsibleSection.module.css +70 -0
  66. package/dist/editor/components/CollapsibleSectionHeader.d.ts +20 -0
  67. package/dist/editor/components/CollapsibleSectionHeader.d.ts.map +1 -0
  68. package/dist/editor/components/CollapsibleSectionHeader.js +10 -0
  69. package/dist/editor/components/CollapsibleSectionHeader.js.map +1 -0
  70. package/dist/editor/components/DraggableRow.d.ts +13 -0
  71. package/dist/editor/components/DraggableRow.d.ts.map +1 -0
  72. package/dist/editor/components/DraggableRow.js +20 -0
  73. package/dist/editor/components/DraggableRow.js.map +1 -0
  74. package/dist/editor/components/FieldHelpText.d.ts +6 -0
  75. package/dist/editor/components/FieldHelpText.d.ts.map +1 -0
  76. package/dist/editor/components/FieldHelpText.js +6 -0
  77. package/dist/editor/components/FieldHelpText.js.map +1 -0
  78. package/dist/editor/components/FieldHelpText.module.css +13 -0
  79. package/dist/editor/components/InspectorTabHeader.js +1 -1
  80. package/dist/editor/components/InspectorTabHeader.js.map +1 -1
  81. package/dist/editor/components/OutlinePanel.d.ts +10 -0
  82. package/dist/editor/components/OutlinePanel.d.ts.map +1 -0
  83. package/dist/editor/components/OutlinePanel.js +64 -0
  84. package/dist/editor/components/OutlinePanel.js.map +1 -0
  85. package/dist/editor/components/OutlinePanel.module.css +111 -0
  86. package/dist/editor/components/P1InspectorFields.d.ts.map +1 -1
  87. package/dist/editor/components/P1InspectorFields.js +12 -5
  88. package/dist/editor/components/P1InspectorFields.js.map +1 -1
  89. package/dist/editor/components/PanelHeader.d.ts +25 -0
  90. package/dist/editor/components/PanelHeader.d.ts.map +1 -0
  91. package/dist/editor/components/PanelHeader.js +12 -0
  92. package/dist/editor/components/PanelHeader.js.map +1 -0
  93. package/dist/editor/components/PanelHeader.module.css +34 -0
  94. package/dist/editor/components/PanelShell.d.ts +10 -0
  95. package/dist/editor/components/PanelShell.d.ts.map +1 -0
  96. package/dist/editor/components/PanelShell.js +7 -0
  97. package/dist/editor/components/PanelShell.js.map +1 -0
  98. package/dist/editor/components/PanelShell.module.css +15 -0
  99. package/dist/editor/components/PreviewPanelOverlay.d.ts +12 -0
  100. package/dist/editor/components/PreviewPanelOverlay.d.ts.map +1 -0
  101. package/dist/editor/components/PreviewPanelOverlay.js +7 -0
  102. package/dist/editor/components/PreviewPanelOverlay.js.map +1 -0
  103. package/dist/editor/components/PublishedStatusBadge.d.ts +1 -1
  104. package/dist/editor/components/PublishedStatusBadge.d.ts.map +1 -1
  105. package/dist/editor/components/VersionBannerOverride.d.ts +5 -1
  106. package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
  107. package/dist/editor/components/VersionBannerOverride.js +20 -5
  108. package/dist/editor/components/VersionBannerOverride.js.map +1 -1
  109. package/dist/editor/components/VersionTimeline.d.ts +20 -0
  110. package/dist/editor/components/VersionTimeline.d.ts.map +1 -0
  111. package/dist/editor/components/VersionTimeline.js +42 -0
  112. package/dist/editor/components/VersionTimeline.js.map +1 -0
  113. package/dist/editor/components/collapsibleSectionContext.d.ts +17 -0
  114. package/dist/editor/components/collapsibleSectionContext.d.ts.map +1 -0
  115. package/dist/editor/components/collapsibleSectionContext.js +13 -0
  116. package/dist/editor/components/collapsibleSectionContext.js.map +1 -0
  117. package/dist/editor/components/componentIconName.d.ts +15 -0
  118. package/dist/editor/components/componentIconName.d.ts.map +1 -0
  119. package/dist/editor/components/componentIconName.js +68 -0
  120. package/dist/editor/components/componentIconName.js.map +1 -0
  121. package/dist/editor/components/connectable.d.ts +1 -1
  122. package/dist/editor/components/connectable.d.ts.map +1 -1
  123. package/dist/editor/components/merge-preview/MergePreviewPanel.d.ts.map +1 -1
  124. package/dist/editor/components/merge-preview/MergePreviewPanel.js.map +1 -1
  125. package/dist/editor/components/merge-preview/MergePreviewRenderer.js +3 -15
  126. package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
  127. package/dist/editor/components/outlineTree.d.ts +68 -0
  128. package/dist/editor/components/outlineTree.d.ts.map +1 -0
  129. package/dist/editor/components/outlineTree.js +72 -0
  130. package/dist/editor/components/outlineTree.js.map +1 -0
  131. package/dist/editor/components/useDragReorder.d.ts +16 -0
  132. package/dist/editor/components/useDragReorder.d.ts.map +1 -0
  133. package/dist/editor/components/useDragReorder.js +35 -0
  134. package/dist/editor/components/useDragReorder.js.map +1 -0
  135. package/dist/editor/index.d.ts +13 -0
  136. package/dist/editor/index.d.ts.map +1 -1
  137. package/dist/editor/index.js +8 -0
  138. package/dist/editor/index.js.map +1 -1
  139. package/dist/editor/plugin/P1Plugin.d.ts +19 -3
  140. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  141. package/dist/editor/plugin/P1Plugin.js +113 -47
  142. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  143. package/dist/editor/plugin/createP1Overrides.d.ts +31 -43
  144. package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
  145. package/dist/editor/plugin/createP1Overrides.js +47 -43
  146. package/dist/editor/plugin/createP1Overrides.js.map +1 -1
  147. package/dist/editor/plugin/fieldGuidance.d.ts +45 -0
  148. package/dist/editor/plugin/fieldGuidance.d.ts.map +1 -0
  149. package/dist/editor/plugin/fieldGuidance.js +24 -0
  150. package/dist/editor/plugin/fieldGuidance.js.map +1 -0
  151. package/dist/editor/plugin/mergePreviewPlugin.d.ts.map +1 -1
  152. package/dist/editor/plugin/mergePreviewPlugin.js.map +1 -1
  153. package/dist/editor/plugin/selectHeaderCollaborators.d.ts +12 -0
  154. package/dist/editor/plugin/selectHeaderCollaborators.d.ts.map +1 -0
  155. package/dist/editor/plugin/selectHeaderCollaborators.js +15 -0
  156. package/dist/editor/plugin/selectHeaderCollaborators.js.map +1 -0
  157. package/dist/editor/thumbnails/LiveThumbnail.d.ts +47 -0
  158. package/dist/editor/thumbnails/LiveThumbnail.d.ts.map +1 -0
  159. package/dist/editor/thumbnails/LiveThumbnail.js +120 -0
  160. package/dist/editor/thumbnails/LiveThumbnail.js.map +1 -0
  161. package/dist/editor/thumbnails/ThumbnailCard.d.ts +37 -0
  162. package/dist/editor/thumbnails/ThumbnailCard.d.ts.map +1 -0
  163. package/dist/editor/thumbnails/ThumbnailCard.js +91 -0
  164. package/dist/editor/thumbnails/ThumbnailCard.js.map +1 -0
  165. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts +33 -0
  166. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts.map +1 -0
  167. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js +79 -0
  168. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js.map +1 -0
  169. package/dist/editor/thumbnails/humanizeComponentName.d.ts +18 -0
  170. package/dist/editor/thumbnails/humanizeComponentName.d.ts.map +1 -0
  171. package/dist/editor/thumbnails/humanizeComponentName.js +32 -0
  172. package/dist/editor/thumbnails/humanizeComponentName.js.map +1 -0
  173. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts +15 -0
  174. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts.map +1 -0
  175. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js +19 -0
  176. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js.map +1 -0
  177. package/dist/editor/thumbnails/thumbnailCache.d.ts +39 -0
  178. package/dist/editor/thumbnails/thumbnailCache.d.ts.map +1 -0
  179. package/dist/editor/thumbnails/thumbnailCache.js +97 -0
  180. package/dist/editor/thumbnails/thumbnailCache.js.map +1 -0
  181. package/dist/editor/useP1Editor.d.ts +14 -4
  182. package/dist/editor/useP1Editor.d.ts.map +1 -1
  183. package/dist/editor/useP1Editor.js +34 -5
  184. package/dist/editor/useP1Editor.js.map +1 -1
  185. package/dist/editor/useP1Overrides.d.ts +1 -1
  186. package/dist/editor/useP1Overrides.d.ts.map +1 -1
  187. package/dist/editor/useP1Overrides.js.map +1 -1
  188. package/dist/editor/useP1Plugin.d.ts +15 -3
  189. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  190. package/dist/editor/useP1Plugin.js +4 -0
  191. package/dist/editor/useP1Plugin.js.map +1 -1
  192. package/dist/editor/useRealtime.d.ts +2 -2
  193. package/dist/editor/useRealtime.d.ts.map +1 -1
  194. package/dist/editor/useRealtime.js.map +1 -1
  195. package/dist/editor/utils/componentRegistry.d.ts +4 -4
  196. package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
  197. package/dist/editor/utils/componentRegistry.js +0 -1
  198. package/dist/editor/utils/componentRegistry.js.map +1 -1
  199. package/dist/editor/utils/restoreDocumentVersion.d.ts +18 -0
  200. package/dist/editor/utils/restoreDocumentVersion.d.ts.map +1 -0
  201. package/dist/editor/utils/restoreDocumentVersion.js +49 -0
  202. package/dist/editor/utils/restoreDocumentVersion.js.map +1 -0
  203. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts +22 -0
  204. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts.map +1 -0
  205. package/dist/editor/utils/sanitizeRichtextDefaults.js +98 -0
  206. package/dist/editor/utils/sanitizeRichtextDefaults.js.map +1 -0
  207. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +1 -3
  208. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
  209. package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
  210. package/dist/features/content-type-templates/stores/template-store-api.d.ts.map +1 -1
  211. package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -1
  212. package/dist/features/content-type-templates/ui/ActionBarPinButton.js +1 -1
  213. package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
  214. package/dist/index.d.ts +10 -1
  215. package/dist/index.d.ts.map +1 -1
  216. package/dist/index.js +10 -1
  217. package/dist/index.js.map +1 -1
  218. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +1 -3
  219. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
  220. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +2 -2
  221. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -1
  222. package/dist/p1/editor/client.d.ts +1 -1
  223. package/dist/p1/editor/client.d.ts.map +1 -1
  224. package/dist/p1/editor/client.js +2 -2
  225. package/dist/p1/editor/client.js.map +1 -1
  226. package/dist/p1/editor/connect/connect-field-modal.d.ts +1 -1
  227. package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
  228. package/dist/p1/editor/connect/connect-field-modal.js +1 -1
  229. package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
  230. package/dist/p1/editor/connect/connect-preview-config.d.ts +1 -1
  231. package/dist/p1/editor/connect/connect-preview-config.d.ts.map +1 -1
  232. package/dist/p1/editor/connect/field-connect-plugin.js +1 -1
  233. package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
  234. package/dist/p1/editor/editor-preview-resolve.d.ts +7 -1
  235. package/dist/p1/editor/editor-preview-resolve.d.ts.map +1 -1
  236. package/dist/p1/editor/editor-preview-resolve.js +8 -1
  237. package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
  238. package/dist/p1/editor/hooks/api-hooks.d.ts +4 -4
  239. package/dist/p1/editor/hooks/api-hooks.d.ts.map +1 -1
  240. package/dist/p1/editor/hooks/api-hooks.js +57 -30
  241. package/dist/p1/editor/hooks/api-hooks.js.map +1 -1
  242. package/dist/p1/editor/hooks/useEditorContext.d.ts +1 -1
  243. package/dist/p1/editor/hooks/useEditorContext.d.ts.map +1 -1
  244. package/dist/p1/editor/hooks/useEditorContext.js +12 -3
  245. package/dist/p1/editor/hooks/useEditorContext.js.map +1 -1
  246. package/dist/p1/editor/hooks/useP1Plugins.d.ts.map +1 -1
  247. package/dist/p1/editor/hooks/useP1Plugins.js +4 -2
  248. package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -1
  249. package/dist/p1/editor/icons/button-block-icon.d.ts +1 -1
  250. package/dist/p1/editor/icons/button-block-icon.d.ts.map +1 -1
  251. package/dist/p1/editor/icons/default-block-icon.d.ts +1 -1
  252. package/dist/p1/editor/icons/default-block-icon.d.ts.map +1 -1
  253. package/dist/p1/editor/icons/divider-block-icon.d.ts +1 -1
  254. package/dist/p1/editor/icons/divider-block-icon.d.ts.map +1 -1
  255. package/dist/p1/editor/icons/grid-block-icon.d.ts +1 -1
  256. package/dist/p1/editor/icons/grid-block-icon.d.ts.map +1 -1
  257. package/dist/p1/editor/icons/heading-block-icon.d.ts +1 -1
  258. package/dist/p1/editor/icons/heading-block-icon.d.ts.map +1 -1
  259. package/dist/p1/editor/icons/image-block-icon.d.ts +1 -1
  260. package/dist/p1/editor/icons/image-block-icon.d.ts.map +1 -1
  261. package/dist/p1/editor/icons/list-block-icon.d.ts +1 -1
  262. package/dist/p1/editor/icons/list-block-icon.d.ts.map +1 -1
  263. package/dist/p1/editor/icons/paragraph-block-icon.d.ts +1 -1
  264. package/dist/p1/editor/icons/paragraph-block-icon.d.ts.map +1 -1
  265. package/dist/p1/editor/icons/quote-block-icon.d.ts +1 -1
  266. package/dist/p1/editor/icons/quote-block-icon.d.ts.map +1 -1
  267. package/dist/p1/editor/icons/spacer-block-icon.d.ts +1 -1
  268. package/dist/p1/editor/icons/spacer-block-icon.d.ts.map +1 -1
  269. package/dist/p1/editor/index.d.ts +1 -1
  270. package/dist/p1/editor/index.d.ts.map +1 -1
  271. package/dist/p1/editor/index.js +1 -1
  272. package/dist/p1/editor/index.js.map +1 -1
  273. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +65 -67
  274. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
  275. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts +4 -4
  276. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts.map +1 -1
  277. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.js.map +1 -1
  278. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts +1 -1
  279. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts.map +1 -1
  280. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js +1 -1
  281. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js.map +1 -1
  282. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts +1 -1
  283. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts.map +1 -1
  284. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js +1 -1
  285. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js.map +1 -1
  286. package/dist/p1/editor/template-autocomplete-layer.d.ts +2 -2
  287. package/dist/p1/editor/template-autocomplete-layer.d.ts.map +1 -1
  288. package/dist/p1/editor/template-autocomplete-layer.js +23 -3
  289. package/dist/p1/editor/template-autocomplete-layer.js.map +1 -1
  290. package/dist/p1/pages/render-client.d.ts +1 -1
  291. package/dist/p1/pages/render-client.d.ts.map +1 -1
  292. package/dist/pds/components/AgentChip.d.ts.map +1 -1
  293. package/dist/pds/components/AgentChip.js +1 -2
  294. package/dist/pds/components/AgentChip.js.map +1 -1
  295. package/dist/pds/components/CreatePageModal.d.ts +10 -1
  296. package/dist/pds/components/CreatePageModal.d.ts.map +1 -1
  297. package/dist/pds/components/CreatePageModal.js +29 -9
  298. package/dist/pds/components/CreatePageModal.js.map +1 -1
  299. package/dist/pds/components/CreatePageModal.module.css +34 -0
  300. package/dist/pds/components/DocStateBadge.d.ts +1 -1
  301. package/dist/pds/components/DocStateBadge.d.ts.map +1 -1
  302. package/dist/pds/components/DocStateBadge.js +1 -1
  303. package/dist/pds/components/DocStateBadge.js.map +1 -1
  304. package/dist/pds/components/NavIcon.js +1 -1
  305. package/dist/pds/components/NavIcon.js.map +1 -1
  306. package/dist/pds/components/P1EditorHeader.d.ts +10 -2
  307. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  308. package/dist/pds/components/P1EditorHeader.js +16 -7
  309. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  310. package/dist/pds/components/P1EditorHeader.module.css +113 -35
  311. package/dist/pds/components/P1EditorSubheader.d.ts +1 -2
  312. package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
  313. package/dist/pds/components/P1EditorSubheader.js +10 -21
  314. package/dist/pds/components/P1EditorSubheader.js.map +1 -1
  315. package/dist/pds/components/P1EditorSubheader.module.css +7 -1
  316. package/dist/pds/components/PageNavigator.d.ts.map +1 -1
  317. package/dist/pds/components/PageNavigator.js.map +1 -1
  318. package/dist/pds/components/PresenceStack.d.ts +6 -5
  319. package/dist/pds/components/PresenceStack.d.ts.map +1 -1
  320. package/dist/pds/components/PresenceStack.js +43 -4
  321. package/dist/pds/components/PresenceStack.js.map +1 -1
  322. package/dist/pds/components/PresenceStack.module.css +52 -7
  323. package/dist/pds/components/PublishControl.js +2 -2
  324. package/dist/pds/components/PublishControl.js.map +1 -1
  325. package/dist/pds/components/WorkstreamSwitcher.d.ts +7 -2
  326. package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -1
  327. package/dist/pds/components/WorkstreamSwitcher.js +5 -3
  328. package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
  329. package/dist/server.d.ts +3 -1
  330. package/dist/server.d.ts.map +1 -1
  331. package/dist/server.js +4 -1
  332. package/dist/server.js.map +1 -1
  333. package/dist/versioning/components/HistoricalVersionBanner.d.ts +19 -21
  334. package/dist/versioning/components/HistoricalVersionBanner.d.ts.map +1 -1
  335. package/dist/versioning/components/HistoricalVersionBanner.js +7 -19
  336. package/dist/versioning/components/HistoricalVersionBanner.js.map +1 -1
  337. package/dist/versioning/components/VersionBannerActions.d.ts +15 -0
  338. package/dist/versioning/components/VersionBannerActions.d.ts.map +1 -0
  339. package/dist/versioning/components/VersionBannerActions.js +30 -0
  340. package/dist/versioning/components/VersionBannerActions.js.map +1 -0
  341. package/dist/versioning/components/VersionPublishedBadge.d.ts +1 -1
  342. package/dist/versioning/components/VersionPublishedBadge.d.ts.map +1 -1
  343. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts +2 -2
  344. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts.map +1 -1
  345. package/dist/versioning/utils/formatVersionDate.d.ts +15 -0
  346. package/dist/versioning/utils/formatVersionDate.d.ts.map +1 -0
  347. package/dist/versioning/utils/formatVersionDate.js +41 -0
  348. package/dist/versioning/utils/formatVersionDate.js.map +1 -0
  349. package/dist/versioning/utils/versionKind.d.ts +19 -0
  350. package/dist/versioning/utils/versionKind.d.ts.map +1 -0
  351. package/dist/versioning/utils/versionKind.js +30 -0
  352. package/dist/versioning/utils/versionKind.js.map +1 -0
  353. package/package.json +9 -6
  354. package/src/pds/theme/PuckEditorTheme.css +81 -0
  355. package/src/pds/theme/PuckEditorTheme.test.ts +50 -1
  356. package/src/styles.css +517 -32
@@ -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
+ }
@@ -1 +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,CA8FrB"}
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"}
@@ -3,10 +3,10 @@ import { createUsePuck, usePuck } from '@puckeditor/core';
3
3
  import { IconButton } from '@pantheon-systems/pds-toolkit-react';
4
4
  import { useP1PuckOptional } from '../../core/P1PuckContext.js';
5
5
  import { templateFromRegistryPath } from '../utils/templatePath.js';
6
- import { P1TemplateFields } from './P1TemplateFields.js';
7
- import { InspectorTabHeader } from './InspectorTabHeader.js';
8
6
  import { ReadOnlyFieldsGuard } from '../../versioning/components/ReadOnlyFieldsGuard.js';
9
7
  import { VersionReadOnlyBanner } from '../../versioning/components/VersionReadOnlyBanner.js';
8
+ import { P1TemplateFields } from './P1TemplateFields.js';
9
+ import { InspectorTabHeader } from './InspectorTabHeader.js';
10
10
  // Selectors are at module level so the hook identity is stable across renders.
11
11
  const useInspectorPuck = createUsePuck();
12
12
  const useInspectorSelectedType = createUsePuck();
@@ -33,7 +33,12 @@ export function P1InspectorFields({ children, }) {
33
33
  dispatch({ type: 'setUi', ui: { itemSelector: null } });
34
34
  }
35
35
  if (tab === 'block' && !itemSelector && contentLength > 0) {
36
- dispatch({ type: 'setUi', ui: { itemSelector: { zone: 'default-zone', index: 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
+ });
37
42
  }
38
43
  };
39
44
  const handleCollapse = () => {
@@ -47,8 +52,10 @@ export function P1InspectorFields({ children, }) {
47
52
  }
48
53
  const template = templateFromRegistryPath(css?.currentDocument?.path, css?.templates);
49
54
  if (template && !itemSelector && css?.updateTemplate) {
50
- return _jsx(P1TemplateFields, { children: children });
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 }) }));
51
58
  }
52
- return (_jsxs("div", { className: "p1-inspector-fields", 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 })] }));
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 })] }));
53
60
  }
54
61
  //# sourceMappingURL=P1InspectorFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"P1InspectorFields.js","sourceRoot":"","sources":["../../../src/editor/components/P1InspectorFields.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAE7F,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;AACzC,MAAM,wBAAwB,GAAG,aAAa,EAAE,CAAC;AACjD,MAAM,yBAAyB,GAAG,aAAa,EAAE,CAAC;AAClD,MAAM,wBAAwB,GAAG,aAAa,EAAE,CAAC;AAEjD,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,GAGT;IACC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAEhC,MAAM,YAAY,GAAG,gBAAgB,CACnC,CAAC,CAAC,EAAE,EAAE,CACH,CAAmE,CAAC,QAAQ,EAAE,EAAE;QAC/E,EAAE,YAAY,IAAI,IAAI,CAC3B,CAAC;IACF,MAAM,iBAAiB,GAAG,wBAAwB,CAChD,CAAC,CAAC,EAAE,EAAE,CAAE,CAA4D,CAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAChG,CAAC;IACF,MAAM,aAAa,GAAG,yBAAyB,CAC7C,CAAC,CAAC,EAAE,EAAE,CACH,CAAkE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO;QACzF,EAAE,MAAM,IAAI,CAAC,CAClB,CAAC;IACF,MAAM,mBAAmB,GAAG,wBAAwB,CAClD,CAAC,CAAC,EAAE,EAAE,CACH,CAA0E,CAAC,QAAQ,EAAE,EAAE;QACtF,EAAE,mBAAmB,IAAI,IAAI,CAClC,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvC,MAAM,kBAAkB,GAAG,iBAAiB;QAC1C,CAAC,CAAC,CAAE,MAAM,CAAC,UAAiD,CAAC,iBAAiB,CAAC,EAAE,KAAK,IAAI,iBAAiB,CAAC;QAC5G,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,UAAU,GAAG,GAAG,EAAE,0BAA0B,IAAI,KAAK,CAAC;IAC5D,MAAM,aAAa,GAAG,GAAG,EAAE,cAAc,EAAE,aAAa,IAAI,IAAI,CAAC;IACjE,MAAM,SAAS,GAAqB,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,MAAM,eAAe,GAAG,CAAC,GAAqB,EAAE,EAAE;QAChD,IAAI,GAAG,KAAK,MAAM,IAAI,YAAY,EAAE,CAAC;YACnC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAW,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,YAAY,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC1D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAW,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAW,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAW,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,UAAU,IACT,SAAS,EAAC,sBAAsB,EAChC,QAAQ,EAAC,WAAW,EACpB,IAAI,EAAC,GAAG,EACR,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,yBAAyB,GACnC,GACE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACtF,IAAI,QAAQ,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC;QACrD,OAAO,KAAC,gBAAgB,cAAE,QAAQ,GAAoB,CAAC;IACzD,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,kBAAkB,IACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,cAAc,GAC1B,EACD,UAAU,IAAI,aAAa,KAAK,IAAI,IAAI,CACvC,KAAC,qBAAqB,IAAC,aAAa,EAAE,aAAa,GAAI,CACxD,EACA,SAAS,KAAK,OAAO,IAAI,kBAAkB,IAAI,CAC9C,eAAK,SAAS,EAAC,yBAAyB,gBAAY,yBAAyB,aAC3E,eAAM,SAAS,EAAC,8BAA8B,iBAAa,MAAM,qBAAY,EAC7E,eAAM,SAAS,EAAC,8BAA8B,iBAAa,MAAM,uBAAS,EAC1E,eAAM,SAAS,EAAC,gCAAgC,YAAE,kBAAkB,GAAQ,IACxE,CACP,EACD,KAAC,mBAAmB,IAAC,UAAU,EAAE,UAAU,YACxC,QAAQ,GACW,IAClB,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"P1InspectorFields.js","sourceRoot":"","sources":["../../../src/editor/components/P1InspectorFields.tsx"],"names":[],"mappings":"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"}
@@ -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,CA0EjD"}
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,15 +1,30 @@
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;
10
+ const viewingVersion = versions.find(v => v.id === selectedVersionId);
8
11
  // While a switch is loading the next document, currentDocument is null but
9
12
  // the empty state must not flash over the still-visible previous canvas.
10
13
  const hasOrIsLoadingDocument = p1Context.currentDocument !== null || p1Context.documentLoading;
11
14
  const isReturning = p1Context.isReturningToLatest;
12
- 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: {
13
28
  height: '100%',
14
29
  opacity: isReturning ? 0.5 : 1,
15
30
  transition: 'opacity 120ms ease',
@@ -24,7 +39,7 @@ export function VersionBannerOverride({ children, versions, selectedVersionId, o
24
39
  justifyContent: 'center',
25
40
  gap: '1rem',
26
41
  color: 'var(--pds-color-text-subtle)',
27
- backgroundColor: 'white',
28
- }, 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" })] }))] })] }));
29
44
  }
30
45
  //# sourceMappingURL=VersionBannerOverride.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionBannerOverride.js","sourceRoot":"","sources":["../../../src/editor/components/VersionBannerOverride.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAStE,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,eAAe,GACY;IAC3B,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,CAAC,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzG,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,sBAAsB,GAAG,SAAS,CAAC,eAAe,KAAK,IAAI,IAAI,SAAS,CAAC,eAAe,CAAC;IAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAElD,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aACrE,YAAY,IAAI,CACf,eAAK,SAAS,EAAC,kDAAkD,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aACvH,eAAK,SAAS,EAAC,8BAA8B,aAC3C,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,mBAAmB,KAAG,GACnB,EACN,cAAK,SAAS,EAAC,2BAA2B,YACxC,cAAK,SAAS,EAAC,8BAA8B,YAC3C,qDAAiC,GAC7B,GACF,IACF,EACN,cAAK,SAAS,EAAC,8BAA8B,YAC3C,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0EAA0E,EACpF,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC5D,QAAQ,EAAE,WAAW,eACV,WAAW,YAErB,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,GAC1C,GACL,IACF,CACP,EAKD,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,aACzD,cACE,KAAK,EAAE;4BACL,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC9B,UAAU,EAAE,oBAAoB;4BAChC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;yBAChD,YAEA,QAAQ,GACL,EACL,CAAC,sBAAsB,IAAI,CAC1B,eACE,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAU;4BACpB,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,MAAM;4BACf,aAAa,EAAE,QAAQ;4BACvB,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,QAAQ;4BACxB,GAAG,EAAE,MAAM;4BACX,KAAK,EAAE,8BAA8B;4BACrC,eAAe,EAAE,OAAO;yBACzB,aAED,KAAC,IAAI,IAAC,QAAQ,EAAC,eAAe,EAAC,QAAQ,EAAE,KAAc,iBAAc,MAAM,GAAG,EAC9E,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,kDAExE,IACA,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"VersionBannerOverride.js","sourceRoot":"","sources":["../../../src/editor/components/VersionBannerOverride.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAajG,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAS,GAAG,KAAK,EACjB,gBAAgB,GACW;IAC3B,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,0FAA0F;IAC1F,MAAM,YAAY,GAAG,CAAC,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzG,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC;IACtE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,sBAAsB,GAAG,SAAS,CAAC,eAAe,KAAK,IAAI,IAAI,SAAS,CAAC,eAAe,CAAC;IAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAElD,wFAAwF;IACxF,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,gBAAgB,IAAI,QAAQ,CAAC;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;IAC/B,kGAAkG;IAClG,MAAM,cAAc,GAAG,WAAW,CAChC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,IAAI,CAAC;QAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzF,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CACrD,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAC5B,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrF,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CACjD,CAAC;IAEF,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aACrE,YAAY,IAAI,CACf,KAAC,uBAAuB,IACtB,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;oBAAE,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5E,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,CACH,EAKD,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,aACzD,cACE,KAAK,EAAE;4BACL,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC9B,UAAU,EAAE,oBAAoB;4BAChC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;yBAChD,YAEA,QAAQ,GACL,EACL,CAAC,sBAAsB,IAAI,CAC1B,eACE,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAU;4BACpB,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,MAAM;4BACf,aAAa,EAAE,QAAQ;4BACvB,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,QAAQ;4BACxB,GAAG,EAAE,MAAM;4BACX,KAAK,EAAE,8BAA8B;4BACrC,eAAe,EAAE,oCAAoC;yBACtD,aAED,KAAC,IAAI,IAAC,QAAQ,EAAC,eAAe,EAAC,IAAI,EAAC,KAAK,iBAAa,MAAM,GAAG,EAC/D,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,kDAExE,IACA,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { DocumentVersion } from '@pantheon-systems/css-client';
3
+ import type { CurrentUser } from '../../pds/components/P1EditorHeader.js';
4
+ export interface VersionTimelineProps {
5
+ dayGroups: {
6
+ label: string;
7
+ versions: DocumentVersion[];
8
+ }[];
9
+ /** Full version list — used to look up revert-source version numbers. */
10
+ allVersions: DocumentVersion[];
11
+ selectedVersionId?: string;
12
+ currentVersionId?: string;
13
+ isPreviewing: boolean;
14
+ unpublishedCount: number;
15
+ currentUser?: CurrentUser;
16
+ resolveAuthorName?: (id: string, type: 'user' | 'agent') => string | undefined;
17
+ onVersionSelect?: (version: DocumentVersion) => void;
18
+ }
19
+ export declare function VersionTimeline({ dayGroups, allVersions, selectedVersionId, currentVersionId, isPreviewing, unpublishedCount, currentUser, resolveAuthorName, onVersionSelect, }: VersionTimelineProps): React.ReactElement;
20
+ //# sourceMappingURL=VersionTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionTimeline.d.ts","sourceRoot":"","sources":["../../../src/editor/components/VersionTimeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;KAAE,EAAE,CAAC;IAC5D,yEAAyE;IACzE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAkF3C"}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { formatVersionDate } from '../../versioning/utils/formatVersionDate.js';
3
+ import { versionKinds, VERSION_KIND_META } from '../../versioning/utils/versionKind.js';
4
+ export function VersionTimeline({ dayGroups, allVersions, selectedVersionId, currentVersionId, isPreviewing, unpublishedCount, currentUser, resolveAuthorName, onVersionSelect, }) {
5
+ return (_jsx("div", { className: "css-plugin-version-groups", children: dayGroups.map((group) => (_jsxs("div", { className: "css-plugin-version-day-group", children: [_jsx("div", { className: "css-plugin-version-day-header", children: group.label }), _jsx("ul", { className: "css-plugin-version-list css-plugin-version-list--timeline", children: group.versions.map((version) => {
6
+ const isCurrent = version.id === currentVersionId;
7
+ const isSelected = version.id === selectedVersionId;
8
+ const kinds = versionKinds(version, currentVersionId);
9
+ const primaryKind = kinds[0];
10
+ const authorName = resolveAuthorName?.(version.createdById, version.createdByType)
11
+ ?? (version.createdById === currentUser?.id
12
+ ? (currentUser?.name ?? currentUser?.email ?? 'You')
13
+ : version.createdByType === 'agent'
14
+ ? version.createdById
15
+ : 'User');
16
+ return (_jsxs("li", { className: [
17
+ 'css-plugin-version-item',
18
+ 'css-plugin-version-row',
19
+ isCurrent ? 'css-plugin-version-row--current' : '',
20
+ isCurrent && isPreviewing ? 'css-plugin-version-row--exits-preview' : '',
21
+ isSelected ? 'css-plugin-version-item--selected css-plugin-version-row--selected' : '',
22
+ ].filter(Boolean).join(' '), onClick: () => {
23
+ if (isCurrent) {
24
+ if (isPreviewing)
25
+ onVersionSelect?.(version);
26
+ return;
27
+ }
28
+ onVersionSelect?.(version);
29
+ }, children: [_jsx("span", { className: [
30
+ 'css-plugin-version-dot',
31
+ primaryKind !== 'autosave' ? `css-plugin-version-dot--${primaryKind}` : '',
32
+ ].filter(Boolean).join(' '), "aria-hidden": "true" }), _jsxs("div", { className: "css-plugin-version-content", children: [_jsxs("div", { className: "css-plugin-version-meta", children: [_jsxs("span", { className: "css-plugin-version-number", children: ["v", version.versionNumber] }), kinds.filter(k => VERSION_KIND_META[k].tag).map(k => (_jsx("span", { className: [
33
+ 'css-plugin-version-kind-tag',
34
+ `css-plugin-version-kind-tag--${k}`,
35
+ VERSION_KIND_META[k].badgeClass,
36
+ ].filter(Boolean).join(' '), children: VERSION_KIND_META[k].tag }, k)))] }), _jsxs("div", { className: "css-plugin-version-byline", children: [formatVersionDate(version.createdAt), " \u00B7 ", authorName] }), version.source === 'revert' && version.sourceVersionId && (() => {
37
+ const sourceVer = allVersions.find(v => v.id === version.sourceVersionId);
38
+ return sourceVer ? (_jsxs("div", { className: "css-plugin-version-revert-source", children: ["Reverted to v", sourceVer.versionNumber] })) : null;
39
+ })(), isCurrent && unpublishedCount > 0 && (_jsxs("span", { className: "css-plugin-version-unpublished", children: [unpublishedCount, " unpublished change", unpublishedCount === 1 ? '' : 's'] }))] })] }, version.id));
40
+ }) })] }, group.label))) }));
41
+ }
42
+ //# sourceMappingURL=VersionTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionTimeline.js","sourceRoot":"","sources":["../../../src/editor/components/VersionTimeline.tsx"],"names":[],"mappings":"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"}