@pantheon-systems/puck-css 0.8.0 → 0.10.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 (484) hide show
  1. package/README.md +87 -0
  2. package/dist/agent/useAgentEdit.d.ts.map +1 -1
  3. package/dist/agent/useAgentEdit.js.map +1 -1
  4. package/dist/agent/useAgentTrigger.d.ts.map +1 -1
  5. package/dist/agent/useAgentTrigger.js.map +1 -1
  6. package/dist/auth/AuthGate.d.ts +1 -1
  7. package/dist/auth/AuthGate.d.ts.map +1 -1
  8. package/dist/auth/P1AuthProvider.d.ts.map +1 -1
  9. package/dist/auth/P1AuthProvider.js +52 -1
  10. package/dist/auth/P1AuthProvider.js.map +1 -1
  11. package/dist/collaboration/components/CollaboratorAvatars.d.ts.map +1 -1
  12. package/dist/collaboration/components/CollaboratorAvatars.js +1 -1
  13. package/dist/collaboration/components/CollaboratorAvatars.js.map +1 -1
  14. package/dist/collaboration/utils/avatarColor.d.ts +2 -8
  15. package/dist/collaboration/utils/avatarColor.d.ts.map +1 -1
  16. package/dist/collaboration/utils/avatarColor.js +4 -31
  17. package/dist/collaboration/utils/avatarColor.js.map +1 -1
  18. package/dist/collaboration/utils/focusHighlightConfig.d.ts.map +1 -1
  19. package/dist/collaboration/utils/focusHighlightConfig.js.map +1 -1
  20. package/dist/collaboration/utils/initials.d.ts +2 -0
  21. package/dist/collaboration/utils/initials.d.ts.map +1 -0
  22. package/dist/collaboration/utils/initials.js +27 -0
  23. package/dist/collaboration/utils/initials.js.map +1 -0
  24. package/dist/collaboration/utils/presenceIdentity.d.ts +29 -0
  25. package/dist/collaboration/utils/presenceIdentity.d.ts.map +1 -0
  26. package/dist/collaboration/utils/presenceIdentity.js +42 -0
  27. package/dist/collaboration/utils/presenceIdentity.js.map +1 -0
  28. package/dist/core/PuckConfigContext.d.ts +7 -0
  29. package/dist/core/PuckConfigContext.d.ts.map +1 -0
  30. package/dist/core/PuckConfigContext.js +11 -0
  31. package/dist/core/PuckConfigContext.js.map +1 -0
  32. package/dist/core/config.d.ts +1 -1
  33. package/dist/core/config.d.ts.map +1 -1
  34. package/dist/core/config.js.map +1 -1
  35. package/dist/core/index.d.ts +1 -0
  36. package/dist/core/index.d.ts.map +1 -1
  37. package/dist/core/index.js +1 -0
  38. package/dist/core/index.js.map +1 -1
  39. package/dist/core/types.d.ts +36 -3
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/data/collection-operators.d.ts +19 -0
  42. package/dist/data/collection-operators.d.ts.map +1 -0
  43. package/dist/data/collection-operators.js +97 -0
  44. package/dist/data/collection-operators.js.map +1 -0
  45. package/dist/data/css-queries/css-query-registry.d.ts +11 -0
  46. package/dist/data/css-queries/css-query-registry.d.ts.map +1 -0
  47. package/dist/data/css-queries/css-query-registry.js +30 -0
  48. package/dist/data/css-queries/css-query-registry.js.map +1 -0
  49. package/dist/data/dal/index.d.ts +1 -1
  50. package/dist/data/dal/index.d.ts.map +1 -1
  51. package/dist/data/dal/init.d.ts +5 -0
  52. package/dist/data/dal/init.d.ts.map +1 -1
  53. package/dist/data/dal/init.js +31 -4
  54. package/dist/data/dal/init.js.map +1 -1
  55. package/dist/data/dal/p1-store.d.ts +23 -0
  56. package/dist/data/dal/p1-store.d.ts.map +1 -1
  57. package/dist/data/dal/p1-store.js.map +1 -1
  58. package/dist/data/data-list-block/DataListFieldsGrouper.d.ts +7 -0
  59. package/dist/data/data-list-block/DataListFieldsGrouper.d.ts.map +1 -0
  60. package/dist/data/data-list-block/DataListFieldsGrouper.js +72 -0
  61. package/dist/data/data-list-block/DataListFieldsGrouper.js.map +1 -0
  62. package/dist/data/data-list-block/builtin-components/cards.d.ts +8 -0
  63. package/dist/data/data-list-block/builtin-components/cards.d.ts.map +1 -0
  64. package/dist/data/data-list-block/builtin-components/cards.js +35 -0
  65. package/dist/data/data-list-block/builtin-components/cards.js.map +1 -0
  66. package/dist/data/data-list-block/builtin-components/listing.d.ts +8 -0
  67. package/dist/data/data-list-block/builtin-components/listing.d.ts.map +1 -0
  68. package/dist/data/data-list-block/builtin-components/listing.js +11 -0
  69. package/dist/data/data-list-block/builtin-components/listing.js.map +1 -0
  70. package/dist/data/data-list-block/builtin-components/rows.d.ts +8 -0
  71. package/dist/data/data-list-block/builtin-components/rows.d.ts.map +1 -0
  72. package/dist/data/data-list-block/builtin-components/rows.js +9 -0
  73. package/dist/data/data-list-block/builtin-components/rows.js.map +1 -0
  74. package/dist/data/data-list-block/builtin-modes.d.ts +3 -0
  75. package/dist/data/data-list-block/builtin-modes.d.ts.map +1 -0
  76. package/dist/data/data-list-block/builtin-modes.js +53 -0
  77. package/dist/data/data-list-block/builtin-modes.js.map +1 -0
  78. package/dist/data/data-list-block/create-data-list-block.d.ts +3 -0
  79. package/dist/data/data-list-block/create-data-list-block.d.ts.map +1 -0
  80. package/dist/data/data-list-block/create-data-list-block.js +305 -0
  81. package/dist/data/data-list-block/create-data-list-block.js.map +1 -0
  82. package/dist/data/data-list-block/field-groups.d.ts +4 -0
  83. package/dist/data/data-list-block/field-groups.d.ts.map +1 -0
  84. package/dist/data/data-list-block/field-groups.js +28 -0
  85. package/dist/data/data-list-block/field-groups.js.map +1 -0
  86. package/dist/data/data-list-block/index.d.ts +8 -0
  87. package/dist/data/data-list-block/index.d.ts.map +1 -0
  88. package/dist/data/data-list-block/index.js +7 -0
  89. package/dist/data/data-list-block/index.js.map +1 -0
  90. package/dist/data/data-list-block/types.d.ts +53 -0
  91. package/dist/data/data-list-block/types.d.ts.map +1 -0
  92. package/dist/data/data-list-block/types.js +2 -0
  93. package/dist/data/data-list-block/types.js.map +1 -0
  94. package/dist/data/data-list-block/utils.d.ts +14 -0
  95. package/dist/data/data-list-block/utils.d.ts.map +1 -0
  96. package/dist/data/data-list-block/utils.js +65 -0
  97. package/dist/data/data-list-block/utils.js.map +1 -0
  98. package/dist/data/fields/datasource-select-field.d.ts +29 -0
  99. package/dist/data/fields/datasource-select-field.d.ts.map +1 -0
  100. package/dist/data/fields/datasource-select-field.js +40 -0
  101. package/dist/data/fields/datasource-select-field.js.map +1 -0
  102. package/dist/data/fields/field-section.d.ts +11 -0
  103. package/dist/data/fields/field-section.d.ts.map +1 -0
  104. package/dist/data/fields/field-section.js +6 -0
  105. package/dist/data/fields/field-section.js.map +1 -0
  106. package/dist/data/fields/image-position-field.d.ts +28 -0
  107. package/dist/data/fields/image-position-field.d.ts.map +1 -0
  108. package/dist/data/fields/image-position-field.js +69 -0
  109. package/dist/data/fields/image-position-field.js.map +1 -0
  110. package/dist/data/fields/pds-field-helpers.d.ts +34 -0
  111. package/dist/data/fields/pds-field-helpers.d.ts.map +1 -0
  112. package/dist/data/fields/pds-field-helpers.js +55 -0
  113. package/dist/data/fields/pds-field-helpers.js.map +1 -0
  114. package/dist/data/fields/schema-select-field.d.ts +32 -0
  115. package/dist/data/fields/schema-select-field.d.ts.map +1 -0
  116. package/dist/data/fields/schema-select-field.js +134 -0
  117. package/dist/data/fields/schema-select-field.js.map +1 -0
  118. package/dist/data/fields/template-select-field.d.ts +16 -0
  119. package/dist/data/fields/template-select-field.d.ts.map +1 -0
  120. package/dist/data/fields/template-select-field.js +31 -0
  121. package/dist/data/fields/template-select-field.js.map +1 -0
  122. package/dist/data/fields/view-mode-field.d.ts +21 -0
  123. package/dist/data/fields/view-mode-field.d.ts.map +1 -0
  124. package/dist/data/fields/view-mode-field.js +14 -0
  125. package/dist/data/fields/view-mode-field.js.map +1 -0
  126. package/dist/data/fields.d.ts +12 -0
  127. package/dist/data/fields.d.ts.map +1 -1
  128. package/dist/data/fields.js +10 -0
  129. package/dist/data/fields.js.map +1 -1
  130. package/dist/data/page-editor-meta.d.ts.map +1 -1
  131. package/dist/data/page-editor-meta.js +0 -1
  132. package/dist/data/page-editor-meta.js.map +1 -1
  133. package/dist/data/query-provider.d.ts +1 -1
  134. package/dist/data/query-provider.d.ts.map +1 -1
  135. package/dist/data/remote-datasources/fetch-http-json.d.ts.map +1 -1
  136. package/dist/data/remote-datasources/fetch-http-json.js.map +1 -1
  137. package/dist/data/remote-datasources/loader.d.ts.map +1 -1
  138. package/dist/data/remote-datasources/loader.js +3 -1
  139. package/dist/data/remote-datasources/loader.js.map +1 -1
  140. package/dist/data/resolve-data-templates.d.ts.map +1 -1
  141. package/dist/data/resolve-data-templates.js +31 -4
  142. package/dist/data/resolve-data-templates.js.map +1 -1
  143. package/dist/data/schema-heuristics.d.ts +5 -0
  144. package/dist/data/schema-heuristics.d.ts.map +1 -0
  145. package/dist/data/schema-heuristics.js +46 -0
  146. package/dist/data/schema-heuristics.js.map +1 -0
  147. package/dist/editor/P1App.d.ts.map +1 -1
  148. package/dist/editor/P1App.js +1 -1
  149. package/dist/editor/P1App.js.map +1 -1
  150. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  151. package/dist/editor/P1PuckProvider.js +170 -41
  152. package/dist/editor/P1PuckProvider.js.map +1 -1
  153. package/dist/editor/aiPanelStore.d.ts +15 -0
  154. package/dist/editor/aiPanelStore.d.ts.map +1 -0
  155. package/dist/editor/aiPanelStore.js +43 -0
  156. package/dist/editor/aiPanelStore.js.map +1 -0
  157. package/dist/editor/components/CollapsibleFieldSection.d.ts +10 -0
  158. package/dist/editor/components/CollapsibleFieldSection.d.ts.map +1 -0
  159. package/dist/editor/components/CollapsibleFieldSection.js +9 -0
  160. package/dist/editor/components/CollapsibleFieldSection.js.map +1 -0
  161. package/dist/editor/components/CollapsibleSection.module.css +70 -0
  162. package/dist/editor/components/CollapsibleSectionHeader.d.ts +20 -0
  163. package/dist/editor/components/CollapsibleSectionHeader.d.ts.map +1 -0
  164. package/dist/editor/components/CollapsibleSectionHeader.js +10 -0
  165. package/dist/editor/components/CollapsibleSectionHeader.js.map +1 -0
  166. package/dist/editor/components/DraggableRow.d.ts +13 -0
  167. package/dist/editor/components/DraggableRow.d.ts.map +1 -0
  168. package/dist/editor/components/DraggableRow.js +20 -0
  169. package/dist/editor/components/DraggableRow.js.map +1 -0
  170. package/dist/editor/components/FieldHelpText.d.ts +6 -0
  171. package/dist/editor/components/FieldHelpText.d.ts.map +1 -0
  172. package/dist/editor/components/FieldHelpText.js +6 -0
  173. package/dist/editor/components/FieldHelpText.js.map +1 -0
  174. package/dist/editor/components/FieldHelpText.module.css +13 -0
  175. package/dist/editor/components/InspectorTabHeader.js +1 -1
  176. package/dist/editor/components/InspectorTabHeader.js.map +1 -1
  177. package/dist/editor/components/OutlinePanel.d.ts +10 -0
  178. package/dist/editor/components/OutlinePanel.d.ts.map +1 -0
  179. package/dist/editor/components/OutlinePanel.js +64 -0
  180. package/dist/editor/components/OutlinePanel.js.map +1 -0
  181. package/dist/editor/components/OutlinePanel.module.css +111 -0
  182. package/dist/editor/components/P1InspectorFields.d.ts.map +1 -1
  183. package/dist/editor/components/P1InspectorFields.js +24 -5
  184. package/dist/editor/components/P1InspectorFields.js.map +1 -1
  185. package/dist/editor/components/PanelHeader.d.ts +25 -0
  186. package/dist/editor/components/PanelHeader.d.ts.map +1 -0
  187. package/dist/editor/components/PanelHeader.js +12 -0
  188. package/dist/editor/components/PanelHeader.js.map +1 -0
  189. package/dist/editor/components/PanelHeader.module.css +34 -0
  190. package/dist/editor/components/PanelShell.d.ts +10 -0
  191. package/dist/editor/components/PanelShell.d.ts.map +1 -0
  192. package/dist/editor/components/PanelShell.js +7 -0
  193. package/dist/editor/components/PanelShell.js.map +1 -0
  194. package/dist/editor/components/PanelShell.module.css +15 -0
  195. package/dist/editor/components/PreviewPanelOverlay.d.ts +12 -0
  196. package/dist/editor/components/PreviewPanelOverlay.d.ts.map +1 -0
  197. package/dist/editor/components/PreviewPanelOverlay.js +7 -0
  198. package/dist/editor/components/PreviewPanelOverlay.js.map +1 -0
  199. package/dist/editor/components/PublishedStatusBadge.d.ts +1 -1
  200. package/dist/editor/components/PublishedStatusBadge.d.ts.map +1 -1
  201. package/dist/editor/components/VersionBannerOverride.d.ts +5 -1
  202. package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
  203. package/dist/editor/components/VersionBannerOverride.js +54 -5
  204. package/dist/editor/components/VersionBannerOverride.js.map +1 -1
  205. package/dist/editor/components/VersionTimeline.d.ts +20 -0
  206. package/dist/editor/components/VersionTimeline.d.ts.map +1 -0
  207. package/dist/editor/components/VersionTimeline.js +42 -0
  208. package/dist/editor/components/VersionTimeline.js.map +1 -0
  209. package/dist/editor/components/collapsibleSectionContext.d.ts +17 -0
  210. package/dist/editor/components/collapsibleSectionContext.d.ts.map +1 -0
  211. package/dist/editor/components/collapsibleSectionContext.js +13 -0
  212. package/dist/editor/components/collapsibleSectionContext.js.map +1 -0
  213. package/dist/editor/components/componentIconName.d.ts +15 -0
  214. package/dist/editor/components/componentIconName.d.ts.map +1 -0
  215. package/dist/editor/components/componentIconName.js +68 -0
  216. package/dist/editor/components/componentIconName.js.map +1 -0
  217. package/dist/editor/components/connectable.d.ts +1 -1
  218. package/dist/editor/components/connectable.d.ts.map +1 -1
  219. package/dist/editor/components/merge-preview/MergePreviewPanel.d.ts.map +1 -1
  220. package/dist/editor/components/merge-preview/MergePreviewPanel.js.map +1 -1
  221. package/dist/editor/components/merge-preview/MergePreviewRenderer.js +3 -15
  222. package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
  223. package/dist/editor/components/outlineTree.d.ts +68 -0
  224. package/dist/editor/components/outlineTree.d.ts.map +1 -0
  225. package/dist/editor/components/outlineTree.js +72 -0
  226. package/dist/editor/components/outlineTree.js.map +1 -0
  227. package/dist/editor/components/useDragReorder.d.ts +16 -0
  228. package/dist/editor/components/useDragReorder.d.ts.map +1 -0
  229. package/dist/editor/components/useDragReorder.js +35 -0
  230. package/dist/editor/components/useDragReorder.js.map +1 -0
  231. package/dist/editor/index.d.ts +13 -0
  232. package/dist/editor/index.d.ts.map +1 -1
  233. package/dist/editor/index.js +8 -0
  234. package/dist/editor/index.js.map +1 -1
  235. package/dist/editor/plugin/P1Plugin.d.ts +19 -3
  236. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  237. package/dist/editor/plugin/P1Plugin.js +121 -98
  238. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  239. package/dist/editor/plugin/context-sync-key.d.ts.map +1 -1
  240. package/dist/editor/plugin/context-sync-key.js +5 -5
  241. package/dist/editor/plugin/context-sync-key.js.map +1 -1
  242. package/dist/editor/plugin/createP1Overrides.d.ts +31 -43
  243. package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
  244. package/dist/editor/plugin/createP1Overrides.js +47 -43
  245. package/dist/editor/plugin/createP1Overrides.js.map +1 -1
  246. package/dist/editor/plugin/document-sync-plugin.d.ts +23 -5
  247. package/dist/editor/plugin/document-sync-plugin.d.ts.map +1 -1
  248. package/dist/editor/plugin/document-sync-plugin.js +13 -6
  249. package/dist/editor/plugin/document-sync-plugin.js.map +1 -1
  250. package/dist/editor/plugin/fieldGuidance.d.ts +45 -0
  251. package/dist/editor/plugin/fieldGuidance.d.ts.map +1 -0
  252. package/dist/editor/plugin/fieldGuidance.js +24 -0
  253. package/dist/editor/plugin/fieldGuidance.js.map +1 -0
  254. package/dist/editor/plugin/mergePreviewPlugin.d.ts.map +1 -1
  255. package/dist/editor/plugin/mergePreviewPlugin.js.map +1 -1
  256. package/dist/editor/plugin/selectHeaderCollaborators.d.ts +12 -0
  257. package/dist/editor/plugin/selectHeaderCollaborators.d.ts.map +1 -0
  258. package/dist/editor/plugin/selectHeaderCollaborators.js +15 -0
  259. package/dist/editor/plugin/selectHeaderCollaborators.js.map +1 -0
  260. package/dist/editor/thumbnails/LiveThumbnail.d.ts +47 -0
  261. package/dist/editor/thumbnails/LiveThumbnail.d.ts.map +1 -0
  262. package/dist/editor/thumbnails/LiveThumbnail.js +120 -0
  263. package/dist/editor/thumbnails/LiveThumbnail.js.map +1 -0
  264. package/dist/editor/thumbnails/ThumbnailCard.d.ts +37 -0
  265. package/dist/editor/thumbnails/ThumbnailCard.d.ts.map +1 -0
  266. package/dist/editor/thumbnails/ThumbnailCard.js +91 -0
  267. package/dist/editor/thumbnails/ThumbnailCard.js.map +1 -0
  268. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts +33 -0
  269. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.d.ts.map +1 -0
  270. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js +79 -0
  271. package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js.map +1 -0
  272. package/dist/editor/thumbnails/humanizeComponentName.d.ts +18 -0
  273. package/dist/editor/thumbnails/humanizeComponentName.d.ts.map +1 -0
  274. package/dist/editor/thumbnails/humanizeComponentName.js +32 -0
  275. package/dist/editor/thumbnails/humanizeComponentName.js.map +1 -0
  276. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts +15 -0
  277. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.d.ts.map +1 -0
  278. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js +19 -0
  279. package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js.map +1 -0
  280. package/dist/editor/thumbnails/thumbnailCache.d.ts +39 -0
  281. package/dist/editor/thumbnails/thumbnailCache.d.ts.map +1 -0
  282. package/dist/editor/thumbnails/thumbnailCache.js +97 -0
  283. package/dist/editor/thumbnails/thumbnailCache.js.map +1 -0
  284. package/dist/editor/useP1Editor.d.ts +14 -4
  285. package/dist/editor/useP1Editor.d.ts.map +1 -1
  286. package/dist/editor/useP1Editor.js +81 -37
  287. package/dist/editor/useP1Editor.js.map +1 -1
  288. package/dist/editor/useP1Overrides.d.ts +1 -1
  289. package/dist/editor/useP1Overrides.d.ts.map +1 -1
  290. package/dist/editor/useP1Overrides.js.map +1 -1
  291. package/dist/editor/useP1Plugin.d.ts +15 -3
  292. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  293. package/dist/editor/useP1Plugin.js +4 -0
  294. package/dist/editor/useP1Plugin.js.map +1 -1
  295. package/dist/editor/useRealtime.d.ts +2 -2
  296. package/dist/editor/useRealtime.d.ts.map +1 -1
  297. package/dist/editor/useRealtime.js.map +1 -1
  298. package/dist/editor/useResponsivePanels.d.ts +29 -0
  299. package/dist/editor/useResponsivePanels.d.ts.map +1 -0
  300. package/dist/editor/useResponsivePanels.js +175 -0
  301. package/dist/editor/useResponsivePanels.js.map +1 -0
  302. package/dist/editor/useSidebarScrollPreservation.d.ts +10 -0
  303. package/dist/editor/useSidebarScrollPreservation.d.ts.map +1 -0
  304. package/dist/editor/useSidebarScrollPreservation.js +39 -0
  305. package/dist/editor/useSidebarScrollPreservation.js.map +1 -0
  306. package/dist/editor/utils/componentRegistry.d.ts +4 -4
  307. package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
  308. package/dist/editor/utils/componentRegistry.js +0 -1
  309. package/dist/editor/utils/componentRegistry.js.map +1 -1
  310. package/dist/editor/utils/restoreDocumentVersion.d.ts +18 -0
  311. package/dist/editor/utils/restoreDocumentVersion.d.ts.map +1 -0
  312. package/dist/editor/utils/restoreDocumentVersion.js +49 -0
  313. package/dist/editor/utils/restoreDocumentVersion.js.map +1 -0
  314. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts +22 -0
  315. package/dist/editor/utils/sanitizeRichtextDefaults.d.ts.map +1 -0
  316. package/dist/editor/utils/sanitizeRichtextDefaults.js +98 -0
  317. package/dist/editor/utils/sanitizeRichtextDefaults.js.map +1 -0
  318. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +1 -3
  319. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
  320. package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
  321. package/dist/features/content-type-templates/stores/template-store-api.d.ts.map +1 -1
  322. package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -1
  323. package/dist/features/content-type-templates/ui/ActionBarPinButton.js +1 -1
  324. package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
  325. package/dist/index.d.ts +14 -1
  326. package/dist/index.d.ts.map +1 -1
  327. package/dist/index.js +13 -1
  328. package/dist/index.js.map +1 -1
  329. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +1 -3
  330. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
  331. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +2 -2
  332. package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -1
  333. package/dist/p1/editor/client.d.ts +1 -5
  334. package/dist/p1/editor/client.d.ts.map +1 -1
  335. package/dist/p1/editor/client.js +11 -12
  336. package/dist/p1/editor/client.js.map +1 -1
  337. package/dist/p1/editor/connect/connect-field-modal.d.ts +1 -1
  338. package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
  339. package/dist/p1/editor/connect/connect-field-modal.js +1 -1
  340. package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
  341. package/dist/p1/editor/connect/connect-preview-config.d.ts +1 -1
  342. package/dist/p1/editor/connect/connect-preview-config.d.ts.map +1 -1
  343. package/dist/p1/editor/connect/field-connect-plugin.js +1 -1
  344. package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
  345. package/dist/p1/editor/editor-preview-resolve.d.ts +15 -4
  346. package/dist/p1/editor/editor-preview-resolve.d.ts.map +1 -1
  347. package/dist/p1/editor/editor-preview-resolve.js +30 -8
  348. package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
  349. package/dist/p1/editor/hooks/api-hooks.d.ts +4 -4
  350. package/dist/p1/editor/hooks/api-hooks.d.ts.map +1 -1
  351. package/dist/p1/editor/hooks/api-hooks.js +57 -30
  352. package/dist/p1/editor/hooks/api-hooks.js.map +1 -1
  353. package/dist/p1/editor/hooks/index.d.ts +1 -0
  354. package/dist/p1/editor/hooks/index.d.ts.map +1 -1
  355. package/dist/p1/editor/hooks/index.js +1 -0
  356. package/dist/p1/editor/hooks/index.js.map +1 -1
  357. package/dist/p1/editor/hooks/useEditorContext.d.ts +1 -1
  358. package/dist/p1/editor/hooks/useEditorContext.d.ts.map +1 -1
  359. package/dist/p1/editor/hooks/useEditorContext.js +12 -3
  360. package/dist/p1/editor/hooks/useEditorContext.js.map +1 -1
  361. package/dist/p1/editor/hooks/useLiveRemoteDatasources.d.ts +31 -0
  362. package/dist/p1/editor/hooks/useLiveRemoteDatasources.d.ts.map +1 -0
  363. package/dist/p1/editor/hooks/useLiveRemoteDatasources.js +45 -0
  364. package/dist/p1/editor/hooks/useLiveRemoteDatasources.js.map +1 -0
  365. package/dist/p1/editor/hooks/useP1Plugins.d.ts.map +1 -1
  366. package/dist/p1/editor/hooks/useP1Plugins.js +6 -12
  367. package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -1
  368. package/dist/p1/editor/icons/button-block-icon.d.ts +1 -1
  369. package/dist/p1/editor/icons/button-block-icon.d.ts.map +1 -1
  370. package/dist/p1/editor/icons/data-list-block-icon.d.ts +2 -0
  371. package/dist/p1/editor/icons/data-list-block-icon.d.ts.map +1 -0
  372. package/dist/p1/editor/icons/data-list-block-icon.js +5 -0
  373. package/dist/p1/editor/icons/data-list-block-icon.js.map +1 -0
  374. package/dist/p1/editor/icons/default-block-icon.d.ts +1 -1
  375. package/dist/p1/editor/icons/default-block-icon.d.ts.map +1 -1
  376. package/dist/p1/editor/icons/divider-block-icon.d.ts +1 -1
  377. package/dist/p1/editor/icons/divider-block-icon.d.ts.map +1 -1
  378. package/dist/p1/editor/icons/grid-block-icon.d.ts +1 -1
  379. package/dist/p1/editor/icons/grid-block-icon.d.ts.map +1 -1
  380. package/dist/p1/editor/icons/heading-block-icon.d.ts +1 -1
  381. package/dist/p1/editor/icons/heading-block-icon.d.ts.map +1 -1
  382. package/dist/p1/editor/icons/image-block-icon.d.ts +1 -1
  383. package/dist/p1/editor/icons/image-block-icon.d.ts.map +1 -1
  384. package/dist/p1/editor/icons/list-block-icon.d.ts +1 -1
  385. package/dist/p1/editor/icons/list-block-icon.d.ts.map +1 -1
  386. package/dist/p1/editor/icons/paragraph-block-icon.d.ts +1 -1
  387. package/dist/p1/editor/icons/paragraph-block-icon.d.ts.map +1 -1
  388. package/dist/p1/editor/icons/quote-block-icon.d.ts +1 -1
  389. package/dist/p1/editor/icons/quote-block-icon.d.ts.map +1 -1
  390. package/dist/p1/editor/icons/spacer-block-icon.d.ts +1 -1
  391. package/dist/p1/editor/icons/spacer-block-icon.d.ts.map +1 -1
  392. package/dist/p1/editor/index.d.ts +1 -1
  393. package/dist/p1/editor/index.d.ts.map +1 -1
  394. package/dist/p1/editor/index.js +1 -1
  395. package/dist/p1/editor/index.js.map +1 -1
  396. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts +6 -7
  397. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts.map +1 -1
  398. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +77 -73
  399. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
  400. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts +4 -4
  401. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts.map +1 -1
  402. package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.js.map +1 -1
  403. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts +1 -1
  404. package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts.map +1 -1
  405. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js +1 -1
  406. package/dist/p1/editor/remote-datasources/remote-datasource-manager.js.map +1 -1
  407. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts +1 -1
  408. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts.map +1 -1
  409. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js +1 -1
  410. package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js.map +1 -1
  411. package/dist/p1/editor/template-autocomplete-layer.d.ts +2 -2
  412. package/dist/p1/editor/template-autocomplete-layer.d.ts.map +1 -1
  413. package/dist/p1/editor/template-autocomplete-layer.js +23 -3
  414. package/dist/p1/editor/template-autocomplete-layer.js.map +1 -1
  415. package/dist/p1/pages/render-client.d.ts +1 -1
  416. package/dist/p1/pages/render-client.d.ts.map +1 -1
  417. package/dist/p1/pages/render-client.js +2 -1
  418. package/dist/p1/pages/render-client.js.map +1 -1
  419. package/dist/pds/components/AgentChip.d.ts.map +1 -1
  420. package/dist/pds/components/AgentChip.js +1 -2
  421. package/dist/pds/components/AgentChip.js.map +1 -1
  422. package/dist/pds/components/CreatePageModal.d.ts +10 -1
  423. package/dist/pds/components/CreatePageModal.d.ts.map +1 -1
  424. package/dist/pds/components/CreatePageModal.js +29 -9
  425. package/dist/pds/components/CreatePageModal.js.map +1 -1
  426. package/dist/pds/components/CreatePageModal.module.css +34 -0
  427. package/dist/pds/components/DocStateBadge.d.ts +1 -1
  428. package/dist/pds/components/DocStateBadge.d.ts.map +1 -1
  429. package/dist/pds/components/DocStateBadge.js +1 -1
  430. package/dist/pds/components/DocStateBadge.js.map +1 -1
  431. package/dist/pds/components/NavIcon.js +1 -1
  432. package/dist/pds/components/NavIcon.js.map +1 -1
  433. package/dist/pds/components/P1EditorHeader.d.ts +10 -2
  434. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  435. package/dist/pds/components/P1EditorHeader.js +16 -7
  436. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  437. package/dist/pds/components/P1EditorHeader.module.css +113 -35
  438. package/dist/pds/components/P1EditorSubheader.d.ts +1 -4
  439. package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
  440. package/dist/pds/components/P1EditorSubheader.js +10 -21
  441. package/dist/pds/components/P1EditorSubheader.js.map +1 -1
  442. package/dist/pds/components/P1EditorSubheader.module.css +7 -5
  443. package/dist/pds/components/PageNavigator.d.ts.map +1 -1
  444. package/dist/pds/components/PageNavigator.js.map +1 -1
  445. package/dist/pds/components/PresenceStack.d.ts +6 -5
  446. package/dist/pds/components/PresenceStack.d.ts.map +1 -1
  447. package/dist/pds/components/PresenceStack.js +43 -4
  448. package/dist/pds/components/PresenceStack.js.map +1 -1
  449. package/dist/pds/components/PresenceStack.module.css +52 -7
  450. package/dist/pds/components/PublishControl.js +2 -2
  451. package/dist/pds/components/PublishControl.js.map +1 -1
  452. package/dist/pds/components/WorkstreamSwitcher.d.ts +7 -2
  453. package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -1
  454. package/dist/pds/components/WorkstreamSwitcher.js +5 -3
  455. package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
  456. package/dist/server.d.ts +3 -1
  457. package/dist/server.d.ts.map +1 -1
  458. package/dist/server.js +4 -1
  459. package/dist/server.js.map +1 -1
  460. package/dist/versioning/components/HistoricalVersionBanner.d.ts +19 -21
  461. package/dist/versioning/components/HistoricalVersionBanner.d.ts.map +1 -1
  462. package/dist/versioning/components/HistoricalVersionBanner.js +9 -21
  463. package/dist/versioning/components/HistoricalVersionBanner.js.map +1 -1
  464. package/dist/versioning/components/HistoricalVersionBanner.module.css +174 -0
  465. package/dist/versioning/components/VersionBannerActions.d.ts +15 -0
  466. package/dist/versioning/components/VersionBannerActions.d.ts.map +1 -0
  467. package/dist/versioning/components/VersionBannerActions.js +38 -0
  468. package/dist/versioning/components/VersionBannerActions.js.map +1 -0
  469. package/dist/versioning/components/VersionPublishedBadge.d.ts +1 -1
  470. package/dist/versioning/components/VersionPublishedBadge.d.ts.map +1 -1
  471. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts +2 -2
  472. package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts.map +1 -1
  473. package/dist/versioning/utils/formatVersionDate.d.ts +15 -0
  474. package/dist/versioning/utils/formatVersionDate.d.ts.map +1 -0
  475. package/dist/versioning/utils/formatVersionDate.js +41 -0
  476. package/dist/versioning/utils/formatVersionDate.js.map +1 -0
  477. package/dist/versioning/utils/versionKind.d.ts +19 -0
  478. package/dist/versioning/utils/versionKind.d.ts.map +1 -0
  479. package/dist/versioning/utils/versionKind.js +30 -0
  480. package/dist/versioning/utils/versionKind.js.map +1 -0
  481. package/package.json +11 -7
  482. package/src/pds/theme/PuckEditorTheme.css +81 -0
  483. package/src/pds/theme/PuckEditorTheme.test.ts +50 -1
  484. package/src/styles.css +609 -84
@@ -64,18 +64,25 @@ export interface P1OverridesOptions {
64
64
  onPublishError?: (error: Error) => void;
65
65
  /** Whether to show the default Puck publish button */
66
66
  showDefaultPublish?: boolean;
67
+ /** Whether currently viewing a historical version of a document */
68
+ isViewingHistoricalVersion?: boolean;
69
+ /** The historical version being previewed. */
70
+ viewingVersion?: DocumentVersion | null;
67
71
  /**
68
- * Whether currently viewing a historical version (not the latest).
72
+ * Callback to exit version preview and return to the latest version.
73
+ * Wired to the "Back to current version" button in the components/outline overlays.
69
74
  */
70
- isViewingHistoricalVersion?: boolean;
75
+ onReturnToLatest?: () => void;
71
76
  /**
72
- * The historical version being viewed.
77
+ * @deprecated Pass to VersionBannerOverride instead. The banner is no longer
78
+ * rendered by createP1Overrides; this prop is silently ignored.
73
79
  */
74
- viewingVersion?: DocumentVersion | null;
80
+ onRestoreVersion?: (version: DocumentVersion) => Promise<void>;
75
81
  /**
76
- * Callback to return to the latest version.
82
+ * @deprecated Pass to VersionBannerOverride instead. The banner is no longer
83
+ * rendered by createP1Overrides; this prop is silently ignored.
77
84
  */
78
- onReturnToLatest?: () => void;
85
+ canRevert?: boolean;
79
86
  /**
80
87
  * @deprecated Pass syncData to createP1Plugin instead. The plugin renders
81
88
  * inside Puck's context where usePuck() works correctly. Passing these props
@@ -118,46 +125,27 @@ export interface PuckOverrides {
118
125
  }) => React.ReactElement;
119
126
  [key: string]: unknown;
120
127
  }
128
+ interface FieldLabelOverrideProps {
129
+ children?: React.ReactNode;
130
+ icon?: React.ReactNode;
131
+ label: string;
132
+ el?: 'label' | 'div';
133
+ readOnly?: boolean;
134
+ }
121
135
  /**
122
- * Creates Puck overrides for P1 integration.
123
- *
124
- * Adds SaveIndicator and PublishButton to the header actions area.
125
- *
126
- * @example
127
- * ```tsx
128
- * import { createP1Overrides, useP1Puck } from '@pantheon-systems/puck-css';
129
- *
130
- * function Editor() {
131
- * const {
132
- * saveStatus,
133
- * lastSaved,
134
- * saveError,
135
- * saveNow,
136
- * publishDocument,
137
- * } = useP1Puck();
138
- *
139
- * // Preferred: use refs and getters for better performance
140
- * const saveStatusRef = useRef(saveStatus);
141
- * useEffect(() => { saveStatusRef.current = saveStatus; }, [saveStatus]);
142
- *
143
- * const overrides = createP1Overrides({
144
- * getSaveStatus: () => saveStatusRef.current,
145
- * getLastSaved: () => lastSavedRef.current,
146
- * getSaveError: () => saveErrorRef.current,
147
- * onRetrySave: saveNow,
148
- * });
136
+ * Renders an opted-in field group's label row as a disclosure. Puck hands a
137
+ * label override the field's content as `children`, so the group's own label
138
+ * becomes the toggle there is no second header and nothing to suppress.
149
139
  *
150
- * // Legacy: direct values (causes overrides to be recreated on changes)
151
- * const overrides = createP1Overrides({
152
- * saveStatus,
153
- * lastSaved,
154
- * saveError,
155
- * onRetrySave: saveNow,
156
- * });
140
+ * The context is cleared for descendants so a nested group inside a collapsible
141
+ * one keeps its ordinary label.
157
142
  *
158
- * return <Puck overrides={overrides} {...otherProps} />;
159
- * }
160
- * ```
143
+ * Ordinary field labels drop Puck's field-type icon. Its select variant is a
144
+ * chevron, the same glyph the disclosure above uses, so it reads as a group that
145
+ * expands and then does nothing. The label already says what the field is, and
146
+ * the narrow inspector would rather have the space. The read-only lock is a
147
+ * separate slot and survives.
161
148
  */
149
+ export declare function P1FieldLabel(props: FieldLabelOverrideProps): React.ReactElement;
162
150
  export declare function createP1Overrides(options: P1OverridesOptions): PuckOverrides;
163
151
  //# sourceMappingURL=createP1Overrides.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createP1Overrides.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAYtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC;IAElC;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAEzB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8BAA8B;IAC9B,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAC/B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,uDAAuD;IACvD,eAAe,CAAC,EAAE,WAAW,GAAG,qBAAqB,GAAG,OAAO,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC;IAC7E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC;IACxF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAuG5E"}
1
+ {"version":3,"file":"createP1Overrides.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { ActionBar } from '@puckeditor/core';
2
+ /**
3
+ * P1 Puck Overrides
4
+ *
5
+ * Creates Puck overrides for P1 integration, including
6
+ * header actions for save status and publish functionality.
7
+ */
8
+ import React from 'react';
9
+ import { ActionBar, FieldLabel } from '@puckeditor/core';
3
10
  import { SaveIndicator } from '../components/SaveIndicator.js';
4
- import { HistoricalVersionBanner } from '../../versioning/components/HistoricalVersionBanner.js';
5
11
  import { CollaboratorAvatars } from '../../collaboration/components/CollaboratorAvatars.js';
6
12
  import { AgentActivityBanner } from '../../collaboration/components/AgentActivityBanner.js';
7
13
  import { PublishedStatusBadge } from '../components/PublishedStatusBadge.js';
8
14
  import { ActionBarPinButton } from '../../features/content-type-templates/ui/ActionBarPinButton.js';
9
15
  import { P1InspectorFields } from '../components/P1InspectorFields.js';
16
+ import { CollapsibleFieldSection } from '../components/CollapsibleFieldSection.js';
17
+ import { CollapsibleFieldContext } from '../components/collapsibleSectionContext.js';
18
+ import { OutlinePanel } from '../components/OutlinePanel.js';
19
+ import { fieldGuidanceFieldTypes } from './fieldGuidance.js';
10
20
  // NOTE: PuckDataSynchronizer is NOT imported here - it's used in P1Plugin instead
11
21
  // because headerActions renders outside Puck's context where usePuck() doesn't work.
12
22
  // Re-exported for backwards compatibility — implementation lives in utils/templatePath.ts.
@@ -14,46 +24,26 @@ export { templateFromRegistryPath } from '../utils/templatePath.js';
14
24
  // Re-exported for backwards compatibility — implementation lives in components/P1TemplateFields.tsx.
15
25
  export { P1TemplateFields } from '../components/P1TemplateFields.js';
16
26
  /**
17
- * Creates Puck overrides for P1 integration.
18
- *
19
- * Adds SaveIndicator and PublishButton to the header actions area.
20
- *
21
- * @example
22
- * ```tsx
23
- * import { createP1Overrides, useP1Puck } from '@pantheon-systems/puck-css';
27
+ * Renders an opted-in field group's label row as a disclosure. Puck hands a
28
+ * label override the field's content as `children`, so the group's own label
29
+ * becomes the toggle there is no second header and nothing to suppress.
24
30
  *
25
- * function Editor() {
26
- * const {
27
- * saveStatus,
28
- * lastSaved,
29
- * saveError,
30
- * saveNow,
31
- * publishDocument,
32
- * } = useP1Puck();
31
+ * The context is cleared for descendants so a nested group inside a collapsible
32
+ * one keeps its ordinary label.
33
33
  *
34
- * // Preferred: use refs and getters for better performance
35
- * const saveStatusRef = useRef(saveStatus);
36
- * useEffect(() => { saveStatusRef.current = saveStatus; }, [saveStatus]);
37
- *
38
- * const overrides = createP1Overrides({
39
- * getSaveStatus: () => saveStatusRef.current,
40
- * getLastSaved: () => lastSavedRef.current,
41
- * getSaveError: () => saveErrorRef.current,
42
- * onRetrySave: saveNow,
43
- * });
44
- *
45
- * // Legacy: direct values (causes overrides to be recreated on changes)
46
- * const overrides = createP1Overrides({
47
- * saveStatus,
48
- * lastSaved,
49
- * saveError,
50
- * onRetrySave: saveNow,
51
- * });
52
- *
53
- * return <Puck overrides={overrides} {...otherProps} />;
54
- * }
55
- * ```
34
+ * Ordinary field labels drop Puck's field-type icon. Its select variant is a
35
+ * chevron, the same glyph the disclosure above uses, so it reads as a group that
36
+ * expands and then does nothing. The label already says what the field is, and
37
+ * the narrow inspector would rather have the space. The read-only lock is a
38
+ * separate slot and survives.
56
39
  */
40
+ export function P1FieldLabel(props) {
41
+ const collapsible = React.useContext(CollapsibleFieldContext);
42
+ if (collapsible && props.el === 'div') {
43
+ return (_jsx(CollapsibleFieldContext.Provider, { value: null, children: _jsx(CollapsibleFieldSection, { label: props.label, defaultCollapsed: collapsible.defaultCollapsed, count: collapsible.count, children: props.children }) }));
44
+ }
45
+ return _jsx(FieldLabel, { ...props, icon: undefined });
46
+ }
57
47
  export function createP1Overrides(options) {
58
48
  const {
59
49
  // New getter-based API (preferred)
@@ -63,7 +53,7 @@ export function createP1Overrides(options) {
63
53
  // Common options
64
54
  onRetrySave, showDefaultPublish = false,
65
55
  // Deprecated props - kept for type signature compatibility but ignored
66
- syncData: _syncData, dataSyncKey: _dataSyncKey,
56
+ syncData: _syncData, dataSyncKey: _dataSyncKey, onRestoreVersion: _onRestoreVersion, canRevert: _canRevert,
67
57
  // Presence/Agent Features — NOT destructured here.
68
58
  // These are read lazily from `options` in the headerActions render function
69
59
  // so that the Proxy pattern from useP1Overrides provides live values.
@@ -72,6 +62,8 @@ export function createP1Overrides(options) {
72
62
  // Suppress unused variable warnings for deprecated props
73
63
  void _syncData;
74
64
  void _dataSyncKey;
65
+ void _onRestoreVersion;
66
+ void _canRevert;
75
67
  // Determine if using getter API or direct props API
76
68
  const usingGetters = typeof getSaveStatus === 'function';
77
69
  // Build props for SaveIndicator based on which API is being used
@@ -91,6 +83,20 @@ export function createP1Overrides(options) {
91
83
  return {
92
84
  actionBar: ({ label, children }) => (_jsxs(ActionBar, { label: label, children: [children, _jsx(ActionBarPinButton, {})] })),
93
85
  fields: ({ children }) => (_jsx(P1InspectorFields, { children: children })),
86
+ fieldLabel: P1FieldLabel,
87
+ fieldTypes: {
88
+ ...fieldGuidanceFieldTypes,
89
+ // Marks an opted-in object field for P1FieldLabel, which owns the rendering
90
+ // because it is the only override that receives the label. Object fields
91
+ // without `metadata.collapsible` pass through untouched.
92
+ object: ({ field, children, }) => field.metadata?.collapsible ? (_jsx(CollapsibleFieldContext.Provider, { value: {
93
+ defaultCollapsed: field.metadata.defaultCollapsed,
94
+ // Derived from the resolved field set, so omitting a field — how
95
+ // role gating will hide one — moves the count with it.
96
+ count: Object.keys(field.objectFields ?? {}).length,
97
+ }, children: children })) : (_jsx(_Fragment, { children: children })),
98
+ },
99
+ outline: () => _jsx(OutlinePanel, {}),
94
100
  headerActions: ({ children }) => {
95
101
  // Read presence/agent values lazily from options (Proxy) each render
96
102
  // so they reflect the latest state from useP1Overrides' optionsRef.
@@ -102,12 +108,10 @@ export function createP1Overrides(options) {
102
108
  const _onStopAgent = options.onStopAgent;
103
109
  const _showSaveIndicator = options.showSaveIndicator ?? true;
104
110
  const _isViewingHistoricalVersion = options.isViewingHistoricalVersion ?? false;
105
- const _viewingVersion = options.viewingVersion;
106
- const _onReturnToLatest = options.onReturnToLatest;
107
111
  const _publishedStatus = options.publishedStatus;
108
112
  // Find the first active agent for banner display
109
113
  const firstActiveAgent = _activeAgents.find(a => a.state === 'editing') || _activeAgents[0];
110
- return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_showAgentActivityBanner && _isAgentEditing && firstActiveAgent && (_jsx(AgentActivityBanner, { agent: firstActiveAgent, showIdle: true, onStopAgent: _onStopAgent })), _showCollaboratorAvatars && _presence.length > 0 && (_jsx(CollaboratorAvatars, { actors: _presence, maxVisible: 5 })), _isViewingHistoricalVersion && _viewingVersion && _onReturnToLatest ? (_jsx(HistoricalVersionBanner, { version: _viewingVersion, onReturnToLatest: _onReturnToLatest })) : (_jsxs(_Fragment, { children: [_showSaveIndicator && _jsx(SaveIndicator, { ...saveIndicatorProps }), _publishedStatus && (_jsx(PublishedStatusBadge, { status: _publishedStatus }))] })), showDefaultPublish && children] }));
114
+ return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_showAgentActivityBanner && _isAgentEditing && firstActiveAgent && (_jsx(AgentActivityBanner, { agent: firstActiveAgent, showIdle: true, onStopAgent: _onStopAgent })), _showCollaboratorAvatars && _presence.length > 0 && (_jsx(CollaboratorAvatars, { actors: _presence, maxVisible: 5 })), !_isViewingHistoricalVersion && (_jsxs(_Fragment, { children: [_showSaveIndicator && _jsx(SaveIndicator, { ...saveIndicatorProps }), _publishedStatus && (_jsx(PublishedStatusBadge, { status: _publishedStatus }))] })), showDefaultPublish && children] }));
111
115
  },
112
116
  };
113
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createP1Overrides.js","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,kFAAkF;AAClF,qFAAqF;AAErF,2FAA2F;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,qGAAqG;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAkHrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM;IACJ,mCAAmC;IACnC,aAAa,EACb,YAAY,EACZ,YAAY;IACZ,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe;IAC1B,iBAAiB;IACjB,WAAW,EACX,kBAAkB,GAAG,KAAK;IAC1B,uEAAuE;IACvE,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAE,YAAY;IACzB,mDAAmD;IACnD,4EAA4E;IAC5E,sEAAsE;IACtE,kEAAkE;MACnE,GAAG,OAAO,CAAC;IAEZ,yDAAyD;IACzD,KAAK,SAAS,CAAC;IACf,KAAK,YAAY,CAAC;IAElB,oDAAoD;IACpD,MAAM,YAAY,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;IAEzD,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,YAAY;QACrC,CAAC,CAAC;YACE,SAAS,EAAE,aAAa;YACxB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,WAAW;SACrB;QACH,CAAC,CAAC;YACE,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,WAAW;SACrB,CAAC;IAEN,OAAO;QACL,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAiD,EAAE,EAAE,CAAC,CACjF,MAAC,SAAS,IAAC,KAAK,EAAE,KAAK,aACpB,QAAQ,EACT,KAAC,kBAAkB,KAAG,IACZ,CACb;QACD,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CACvD,KAAC,iBAAiB,cAAE,QAAQ,GAAqB,CAClD;QACD,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9B,qEAAqE;YACrE,oEAAoE;YACpE,MAAM,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,IAAI,KAAK,CAAC;YAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YACzC,MAAM,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,IAAI,KAAK,CAAC;YAC1E,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;YACxD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;YACzC,MAAM,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;YAC7D,MAAM,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,IAAI,KAAK,CAAC;YAChF,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;YAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAEjD,iDAAiD;YACjD,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YAE5F,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAK9D,wBAAwB,IAAI,eAAe,IAAI,gBAAgB,IAAI,CAClE,KAAC,mBAAmB,IAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,QAAC,WAAW,EAAE,YAAY,GAAI,CACrF,EAEA,wBAAwB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACnD,KAAC,mBAAmB,IAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAI,CAC1D,EACA,2BAA2B,IAAI,eAAe,IAAI,iBAAiB,CAAC,CAAC,CAAC,CACrE,KAAC,uBAAuB,IACtB,OAAO,EAAE,eAAe,EACxB,gBAAgB,EAAE,iBAAiB,GACnC,CACH,CAAC,CAAC,CAAC,CACF,8BACG,kBAAkB,IAAI,KAAC,aAAa,OAAK,kBAAkB,GAAI,EAC/D,gBAAgB,IAAI,CACnB,KAAC,oBAAoB,IAAC,MAAM,EAAE,gBAAgB,GAAI,CACnD,IACA,CACJ,EACA,kBAAkB,IAAI,QAAQ,IAC3B,CACP,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createP1Overrides.js","sourceRoot":"","sources":["../../../src/editor/plugin/createP1Overrides.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  import type { Plugin } from "@puckeditor/core";
2
2
  import type { PuckData } from "@pantheon-systems/css-client";
3
3
  export interface DocumentSyncSnapshot {
4
- /** Identity of the loaded document (e.g. `${branchId}:${documentId}`) */
4
+ /**
5
+ * Identity of the document this data actually *is* (`${branchId}:${documentId}`),
6
+ * derived from the payload's own origin. It must never be built from the live
7
+ * branchId: that flips the moment a switch starts, so it names the document
8
+ * being requested rather than the one in hand, and publishing a new key beside
9
+ * the outgoing branch's data made the canvas render a branch behind.
10
+ */
5
11
  syncKey: string | null;
6
12
  data: PuckData | null;
7
13
  }
@@ -9,11 +15,23 @@ export interface DocumentSyncStore {
9
15
  publish(snapshot: DocumentSyncSnapshot): void;
10
16
  subscribe(onChange: VoidFunction): VoidFunction;
11
17
  getSnapshot(): DocumentSyncSnapshot;
12
- /** Records which document the Puck canvas currently shows; null before the first */
13
- markApplied(syncKey: string | null): void;
14
- /** Sync key of the document the canvas shows, or null before the first one */
15
- getAppliedKey(): string | null;
18
+ /** Records which document the Puck canvas currently shows */
19
+ markApplied(syncKey: string): void;
20
+ /** Sync key of the document the canvas shows; BLANK_SYNC_KEY before the first */
21
+ getAppliedKey(): string;
16
22
  }
23
+ /**
24
+ * Applied key while Puck still shows the blank data it mounted with.
25
+ *
26
+ * A distinct sentinel rather than null because "no document yet" and "the
27
+ * document Puck was mounted with" are different states, and conflating them
28
+ * dropped the first real payload: Puck mounts with empty data and the branch is
29
+ * restored from storage after mount, so the assumption that the first observed
30
+ * document was already on the canvas never held.
31
+ *
32
+ * Contains no colon, so it can never collide with a documentSyncKey.
33
+ */
34
+ export declare const BLANK_SYNC_KEY = "blank";
17
35
  /**
18
36
  * Sync-key format for a loaded document. Shared so the publisher
19
37
  * (useP1Editor) and readers of the applied key (ContextSyncBridge, the
@@ -1 +1 @@
1
- {"version":3,"file":"document-sync-plugin.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IAChD,WAAW,IAAI,oBAAoB,CAAC;IACpC,oFAAoF;IACpF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;CAChC;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAW1D;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAwB3D;AAwED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYzE"}
1
+ {"version":3,"file":"document-sync-plugin.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IAChD,WAAW,IAAI,oBAAoB,CAAC;IACpC,6DAA6D;IAC7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iFAAiF;IACjF,aAAa,IAAI,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,UAAU,CAAC;AAItC;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAW1D;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAwB3D;AAmED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYzE"}
@@ -17,6 +17,18 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
17
17
  */
18
18
  import { useEffect, useSyncExternalStore } from "react";
19
19
  import { useGetPuck } from "@puckeditor/core";
20
+ /**
21
+ * Applied key while Puck still shows the blank data it mounted with.
22
+ *
23
+ * A distinct sentinel rather than null because "no document yet" and "the
24
+ * document Puck was mounted with" are different states, and conflating them
25
+ * dropped the first real payload: Puck mounts with empty data and the branch is
26
+ * restored from storage after mount, so the assumption that the first observed
27
+ * document was already on the canvas never held.
28
+ *
29
+ * Contains no colon, so it can never collide with a documentSyncKey.
30
+ */
31
+ export const BLANK_SYNC_KEY = "blank";
20
32
  const EMPTY_SNAPSHOT = { syncKey: null, data: null };
21
33
  /**
22
34
  * Sync-key format for a loaded document. Shared so the publisher
@@ -50,7 +62,7 @@ export function normalizeSyncData(data) {
50
62
  }
51
63
  export function createDocumentSyncStore() {
52
64
  let snapshot = EMPTY_SNAPSHOT;
53
- let appliedKey = null;
65
+ let appliedKey = BLANK_SYNC_KEY;
54
66
  const listeners = new Set();
55
67
  return {
56
68
  publish(next) {
@@ -85,11 +97,6 @@ function DocumentSync({ store }) {
85
97
  const appliedKey = store.getAppliedKey();
86
98
  if (appliedKey === syncKey)
87
99
  return;
88
- if (appliedKey === null) {
89
- // First document observed: Puck was mounted with it, nothing to push.
90
- store.markApplied(syncKey);
91
- return;
92
- }
93
100
  const { appState, history } = getPuck();
94
101
  // Omit indexes so Puck re-runs walkAppState for the new content.
95
102
  const { indexes: _indexes, ...rest } = appState;
@@ -1 +1 @@
1
- {"version":3,"file":"document-sync-plugin.js","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-sync-plugin.js","sourceRoot":"","sources":["../../../src/editor/plugin/document-sync-plugin.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Per-field help text, rendered under the input.
3
+ *
4
+ * Opt in with Puck's per-field `metadata`, the same extension point the
5
+ * collapsible section uses:
6
+ *
7
+ * metadata: { help: 'Always shown.', helpWhenEmpty: 'Shown while empty.' }
8
+ *
9
+ * `helpWhenEmpty` is how an inheriting field says where its value comes from,
10
+ * since a field is inheriting exactly while it is empty. Fields without either
11
+ * key render unchanged.
12
+ *
13
+ * These are `fieldTypes` overrides, so Puck hands us its own field renderer as
14
+ * `children` — the help is appended after it rather than replacing it. Note the
15
+ * side effect of registering a type here: Puck subscribes to the value of every
16
+ * field of that type, which is what makes the empty/authored switch work.
17
+ */
18
+ import React from 'react';
19
+ export interface FieldGuidanceMetadata {
20
+ help?: string;
21
+ helpWhenEmpty?: string;
22
+ }
23
+ interface GuidedFieldProps {
24
+ field: {
25
+ metadata?: FieldGuidanceMetadata;
26
+ };
27
+ value: unknown;
28
+ children: React.ReactNode;
29
+ }
30
+ declare function WithHelpText({ field, value, children }: GuidedFieldProps): React.ReactElement;
31
+ /**
32
+ * The field types help text is wired for. Select is included for the fields
33
+ * whose fallback is a fixed default rather than another prop — it has no
34
+ * `placeholder` to show one in, so the help line carries it alone.
35
+ */
36
+ export declare const fieldGuidanceFieldTypes: {
37
+ text: typeof WithHelpText;
38
+ textarea: typeof WithHelpText;
39
+ select: typeof WithHelpText;
40
+ };
41
+ export declare function createFieldGuidanceOverrides(): {
42
+ fieldTypes: typeof fieldGuidanceFieldTypes;
43
+ };
44
+ export {};
45
+ //# sourceMappingURL=fieldGuidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldGuidance.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/fieldGuidance.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC;IAC5C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CActF;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;CAInC,CAAC;AAEF,wBAAgB,4BAA4B,IAAI;IAC9C,UAAU,EAAE,OAAO,uBAAuB,CAAC;CAC5C,CAEA"}
@@ -0,0 +1,24 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { FieldHelpText } from '../components/FieldHelpText.js';
3
+ function WithHelpText({ field, value, children }) {
4
+ const { help, helpWhenEmpty } = field.metadata ?? {};
5
+ const text = value === undefined || value === null || value === '' ? helpWhenEmpty ?? help : help;
6
+ if (!text) {
7
+ return _jsx(_Fragment, { children: children });
8
+ }
9
+ return (_jsxs(_Fragment, { children: [children, _jsx(FieldHelpText, { children: text })] }));
10
+ }
11
+ /**
12
+ * The field types help text is wired for. Select is included for the fields
13
+ * whose fallback is a fixed default rather than another prop — it has no
14
+ * `placeholder` to show one in, so the help line carries it alone.
15
+ */
16
+ export const fieldGuidanceFieldTypes = {
17
+ text: WithHelpText,
18
+ textarea: WithHelpText,
19
+ select: WithHelpText,
20
+ };
21
+ export function createFieldGuidanceOverrides() {
22
+ return { fieldTypes: fieldGuidanceFieldTypes };
23
+ }
24
+ //# sourceMappingURL=fieldGuidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldGuidance.js","sourceRoot":"","sources":["../../../src/editor/plugin/fieldGuidance.tsx"],"names":[],"mappings":";AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAa/D,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAoB;IAChE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAElG,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACzB,CAAC;IAED,OAAO,CACL,8BACG,QAAQ,EACT,KAAC,aAAa,cAAE,IAAI,GAAiB,IACpC,CACJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF,MAAM,UAAU,4BAA4B;IAG1C,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergePreviewPlugin.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/mergePreviewPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IAEnD,MAAM,EAAE,GAAG,CAAC;IAEZ,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAyDD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,UAAU,CAYZ"}
1
+ {"version":3,"file":"mergePreviewPlugin.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/mergePreviewPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IAEnD,MAAM,EAAE,GAAG,CAAC;IAEZ,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAyDD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,UAAU,CAYZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergePreviewPlugin.js","sourceRoot":"","sources":["../../../src/editor/plugin/mergePreviewPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAiBhE,SAAS,0BAA0B,CAAC,EAClC,MAAM,EACN,gBAAgB,GACgB;IAChC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,GACnF,eAAe,EAAE,CAAC;IAEpB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,YAAG,SAAS,EAAC,4BAA4B,0EAErC,IACA,CACP,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,YAAG,SAAS,EAAC,8BAA8B,yCAAwB,IAC/D,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,aAAG,SAAS,EAAC,4BAA4B,4CACX,KAAK,CAAC,OAAO,IACvC,IACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,KAAC,gBAAgB,KAAG;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,CACZ,KAAC,0BAA0B,IACzB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAC1C,CACH;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mergePreviewPlugin.js","sourceRoot":"","sources":["../../../src/editor/plugin/mergePreviewPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAkBhE,SAAS,0BAA0B,CAAC,EAClC,MAAM,EACN,gBAAgB,GACgB;IAChC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,GACnF,eAAe,EAAE,CAAC;IAEpB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,YAAG,SAAS,EAAC,4BAA4B,0EAErC,IACA,CACP,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,YAAG,SAAS,EAAC,8BAA8B,yCAAwB,IAC/D,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,4BAA4B,8BAAmB,EAC7D,aAAG,SAAS,EAAC,4BAA4B,4CACX,KAAK,CAAC,OAAO,IACvC,IACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,KAAC,gBAAgB,KAAG;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,CACZ,KAAC,0BAA0B,IACzB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAC1C,CACH;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Selects the human collaborators shown as avatars in the editor header.
3
+ *
4
+ * Agents are deliberately excluded — they render as chips in the subheader.
5
+ *
6
+ */
7
+ import type { ActorPresence } from '@pantheon-systems/css-client';
8
+ export interface HeaderPresenceState {
9
+ humans?: ActorPresence[];
10
+ }
11
+ export declare function selectHeaderCollaborators(presence: HeaderPresenceState | null | undefined, _hasActiveHumans: boolean, humanPresenceCount: number): ActorPresence[];
12
+ //# sourceMappingURL=selectHeaderCollaborators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectHeaderCollaborators.d.ts","sourceRoot":"","sources":["../../../src/editor/plugin/selectHeaderCollaborators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,EAChD,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,MAAM,GACzB,aAAa,EAAE,CAMjB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Selects the human collaborators shown as avatars in the editor header.
3
+ *
4
+ * Agents are deliberately excluded — they render as chips in the subheader.
5
+ *
6
+ */
7
+ export function selectHeaderCollaborators(presence, _hasActiveHumans, humanPresenceCount) {
8
+ const humans = presence?.humans ?? [];
9
+ // humanPresenceCount is the fresher of the two signals on a mid-session
10
+ // departure, so it still guards against a stale presence getter.
11
+ if (humanPresenceCount <= 0 || humans.length === 0)
12
+ return [];
13
+ return humans;
14
+ }
15
+ //# sourceMappingURL=selectHeaderCollaborators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectHeaderCollaborators.js","sourceRoot":"","sources":["../../../src/editor/plugin/selectHeaderCollaborators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,UAAU,yBAAyB,CACvC,QAAgD,EAChD,gBAAyB,EACzB,kBAA0B;IAE1B,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACtC,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,kBAAkB,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * LiveThumbnail
3
+ *
4
+ * Renders a real, scaled-down preview of a single Puck component using the
5
+ * component's own `defaultProps`, via Puck's <Render>. The preview is clipped
6
+ * to a fixed height and made non-interactive so it reads as a static thumbnail
7
+ * inside the visual component sidebar.
8
+ *
9
+ * Rendering is cached (see thumbnailCache): on a miss we render live and
10
+ * capture the resulting HTML; on a hit we re-inject the cached HTML instead of
11
+ * re-rendering the component. The cache survives editor remounts within a
12
+ * page load, avoiding re-rendering identical previews on every document
13
+ * switch.
14
+ *
15
+ * The initial capture happens right after the component's first commit, but a
16
+ * component that renders its own content asynchronously (e.g. after a fetch,
17
+ * in its own effect) may still be showing a loading state at that point. A
18
+ * MutationObserver keeps watching the live render and re-captures on every
19
+ * DOM change, so the cache converges on the settled output instead of
20
+ * permanently freezing whatever was on screen first.
21
+ *
22
+ * The config handed to Puck's <Render> has its `root` swapped for a
23
+ * pass-through: this preview is a single component, not a page, so it must
24
+ * not run the site's real page-root wrapper (e.g. a title `<h1>`) — that
25
+ * wrapper reflects the actual document currently open in the editor, not
26
+ * this isolated stub, and would otherwise leak into every preview.
27
+ *
28
+ * Unlike the exploratory spike this does NOT self-measure its height — grid
29
+ * cards want a uniform, fixed size, so we clip overflow instead.
30
+ */
31
+ import React from 'react';
32
+ type RenderConfig = any;
33
+ export interface LiveThumbnailProps {
34
+ /** The Puck config the component belongs to. */
35
+ config: RenderConfig;
36
+ /** Component key to preview (e.g. "HeroBlock"). */
37
+ name: string;
38
+ /** Zoom factor applied to the live render. Lower = more fits. */
39
+ scale?: number;
40
+ /** Fixed height of the clipped preview box, in pixels. */
41
+ height?: number;
42
+ }
43
+ declare function LiveThumbnailImpl({ config, name, scale, height }: LiveThumbnailProps): React.JSX.Element;
44
+ /** Memoized so re-expanding a category doesn't re-render existing previews. */
45
+ export declare const LiveThumbnail: React.MemoExoticComponent<typeof LiveThumbnailImpl>;
46
+ export {};
47
+ //# sourceMappingURL=LiveThumbnail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveThumbnail.d.ts","sourceRoot":"","sources":["../../../src/editor/thumbnails/LiveThumbnail.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,YAAY,GAAG,GAAG,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iBAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAW,EAAE,MAAiC,EAAE,EAAE,kBAAkB,qBAiG9G;AAED,+EAA+E;AAC/E,eAAO,MAAM,aAAa,qDAAgC,CAAC"}