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