@pantheon-systems/puck-css 0.12.0 → 0.14.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/README.md +1 -1
- package/dist/agent/components/AgentActionButton.js +0 -13
- package/dist/agent/components/AgentActionButton.js.map +1 -1
- package/dist/agent/components/AgentActionModal.js +0 -13
- package/dist/agent/components/AgentActionModal.js.map +1 -1
- package/dist/agent/components/AgentStatusPanel.js +0 -10
- package/dist/agent/components/AgentStatusPanel.js.map +1 -1
- package/dist/agent/components/index.js +0 -5
- package/dist/agent/components/index.js.map +1 -1
- package/dist/agent/useAgentEdit.js +0 -12
- package/dist/agent/useAgentEdit.js.map +1 -1
- package/dist/agent/useAgentTrigger.js +0 -29
- package/dist/agent/useAgentTrigger.js.map +1 -1
- package/dist/auth/P1AuthProvider.d.ts +9 -2
- package/dist/auth/P1AuthProvider.d.ts.map +1 -1
- package/dist/auth/P1AuthProvider.js +21 -44
- package/dist/auth/P1AuthProvider.js.map +1 -1
- package/dist/auth/P1LoginPage.js +0 -18
- package/dist/auth/P1LoginPage.js.map +1 -1
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/logout.d.ts +23 -0
- package/dist/auth/logout.d.ts.map +1 -0
- package/dist/auth/logout.js +14 -0
- package/dist/auth/logout.js.map +1 -0
- package/dist/auth/storage-keys.d.ts +5 -0
- package/dist/auth/storage-keys.d.ts.map +1 -0
- package/dist/auth/storage-keys.js +3 -0
- package/dist/auth/storage-keys.js.map +1 -0
- package/dist/collaboration/components/AgentActivityBanner.js +0 -15
- package/dist/collaboration/components/AgentActivityBanner.js.map +1 -1
- package/dist/collaboration/components/CollaboratorAvatars.js +0 -17
- package/dist/collaboration/components/CollaboratorAvatars.js.map +1 -1
- package/dist/collaboration/components/FocusRegionHighlight.js +0 -9
- package/dist/collaboration/components/FocusRegionHighlight.js.map +1 -1
- package/dist/collaboration/components/PresenceIndicator.js +0 -9
- package/dist/collaboration/components/PresenceIndicator.js.map +1 -1
- package/dist/collaboration/useBranchPresence.js +0 -36
- package/dist/collaboration/useBranchPresence.js.map +1 -1
- package/dist/collaboration/useFocusRegionReporting.js +0 -75
- package/dist/collaboration/useFocusRegionReporting.js.map +1 -1
- package/dist/collaboration/usePresence.js +0 -37
- package/dist/collaboration/usePresence.js.map +1 -1
- package/dist/collaboration/useSitePresence.js +0 -36
- package/dist/collaboration/useSitePresence.js.map +1 -1
- package/dist/collaboration/utils/avatarColor.js +0 -3
- package/dist/collaboration/utils/avatarColor.js.map +1 -1
- package/dist/collaboration/utils/focusHighlightConfig.js +0 -61
- package/dist/collaboration/utils/focusHighlightConfig.js.map +1 -1
- package/dist/collaboration/utils/focusRegionMap.js +1 -80
- package/dist/collaboration/utils/focusRegionMap.js.map +1 -1
- package/dist/collaboration/utils/initials.js +0 -14
- package/dist/collaboration/utils/initials.js.map +1 -1
- package/dist/collaboration/utils/presenceIdentity.js +0 -26
- package/dist/collaboration/utils/presenceIdentity.js.map +1 -1
- package/dist/core/FocusHighlightContext.js +0 -31
- package/dist/core/FocusHighlightContext.js.map +1 -1
- package/dist/core/NotificationContext.js +2 -67
- package/dist/core/NotificationContext.js.map +1 -1
- package/dist/core/P1PuckContext.js +0 -31
- package/dist/core/P1PuckContext.js.map +1 -1
- package/dist/core/PresenceContext.js +0 -18
- package/dist/core/PresenceContext.js.map +1 -1
- package/dist/core/config.js +0 -11
- package/dist/core/config.js.map +1 -1
- package/dist/core/featureConfig.js +0 -32
- package/dist/core/featureConfig.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/plugin-types.d.ts +9 -0
- package/dist/core/plugin-types.d.ts.map +1 -1
- package/dist/core/types.d.ts +7 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/debounce.js +0 -18
- package/dist/core/utils/debounce.js.map +1 -1
- package/dist/core/utils/requestError.js +0 -5
- package/dist/core/utils/requestError.js.map +1 -1
- package/dist/core/utils/retry.js +0 -31
- package/dist/core/utils/retry.js.map +1 -1
- package/dist/core/utils/throttle.js +0 -24
- package/dist/core/utils/throttle.js.map +1 -1
- package/dist/data/cross-reference-resolve.js +0 -6
- package/dist/data/cross-reference-resolve.js.map +1 -1
- package/dist/data/cross-reference.js +0 -15
- package/dist/data/cross-reference.js.map +1 -1
- package/dist/data/css-queries/css-query-registry.d.ts +2 -2
- package/dist/data/css-queries/css-query-registry.js +1 -1
- package/dist/data/css-queries/css-query-registry.js.map +1 -1
- package/dist/data/dal/index.js +0 -21
- package/dist/data/dal/index.js.map +1 -1
- package/dist/data/dal/init.js +0 -40
- package/dist/data/dal/init.js.map +1 -1
- package/dist/data/dal/p1-store.d.ts.map +1 -1
- package/dist/data/dal/p1-store.js +11 -41
- package/dist/data/dal/p1-store.js.map +1 -1
- package/dist/data/data-list-block/builtin-components/cards.d.ts +1 -0
- package/dist/data/data-list-block/builtin-components/cards.d.ts.map +1 -1
- package/dist/data/data-list-block/builtin-components/cards.js +16 -16
- package/dist/data/data-list-block/builtin-components/cards.js.map +1 -1
- package/dist/data/data-list-block/builtin-components/listing.d.ts +1 -0
- package/dist/data/data-list-block/builtin-components/listing.d.ts.map +1 -1
- package/dist/data/data-list-block/builtin-components/listing.js +4 -3
- package/dist/data/data-list-block/builtin-components/listing.js.map +1 -1
- package/dist/data/data-list-block/builtin-components/rows.d.ts +1 -0
- package/dist/data/data-list-block/builtin-components/rows.d.ts.map +1 -1
- package/dist/data/data-list-block/builtin-components/rows.js +3 -3
- package/dist/data/data-list-block/builtin-components/rows.js.map +1 -1
- package/dist/data/data-list-block/create-data-list-block.d.ts +1 -0
- package/dist/data/data-list-block/create-data-list-block.d.ts.map +1 -1
- package/dist/data/data-list-block/create-data-list-block.js +7 -11
- package/dist/data/data-list-block/create-data-list-block.js.map +1 -1
- package/dist/data/data-list-block/data-list.css +314 -0
- package/dist/data/data-list-block/utils.js +0 -1
- package/dist/data/data-list-block/utils.js.map +1 -1
- package/dist/data/fields/pds-field-helpers.js +1 -4
- package/dist/data/fields/pds-field-helpers.js.map +1 -1
- package/dist/data/fields/visible-when.js +0 -5
- package/dist/data/fields/visible-when.js.map +1 -1
- package/dist/data/fields.d.ts.map +1 -1
- package/dist/data/fields.js +7 -14
- package/dist/data/fields.js.map +1 -1
- package/dist/data/get-page.js +0 -1
- package/dist/data/get-page.js.map +1 -1
- package/dist/data/page-editor-meta.js +0 -7
- package/dist/data/page-editor-meta.js.map +1 -1
- package/dist/data/page-store.js +0 -32
- package/dist/data/page-store.js.map +1 -1
- package/dist/data/page-structure.js +0 -3
- package/dist/data/page-structure.js.map +1 -1
- package/dist/data/paths.d.ts +6 -0
- package/dist/data/paths.d.ts.map +1 -1
- package/dist/data/paths.js +3 -16
- package/dist/data/paths.js.map +1 -1
- package/dist/data/query-provider.d.ts +14 -0
- package/dist/data/query-provider.d.ts.map +1 -1
- package/dist/data/query-provider.js +20 -9
- package/dist/data/query-provider.js.map +1 -1
- package/dist/data/remote-datasources/fetch-http-json.js +0 -5
- package/dist/data/remote-datasources/fetch-http-json.js.map +1 -1
- package/dist/data/remote-datasources/loader.js +0 -21
- package/dist/data/remote-datasources/loader.js.map +1 -1
- package/dist/data/remote-datasources/remote-datasource-registry.js +0 -4
- package/dist/data/remote-datasources/remote-datasource-registry.js.map +1 -1
- package/dist/data/resolve-data-templates.js +0 -24
- package/dist/data/resolve-data-templates.js.map +1 -1
- package/dist/data/route-templates.js +0 -29
- package/dist/data/route-templates.js.map +1 -1
- package/dist/data/semantic-ops.js +0 -11
- package/dist/data/semantic-ops.js.map +1 -1
- package/dist/data/styles.js +0 -2
- package/dist/data/styles.js.map +1 -1
- package/dist/data/template-autocomplete.js +0 -8
- package/dist/data/template-autocomplete.js.map +1 -1
- package/dist/data/utils.d.ts +16 -0
- package/dist/data/utils.d.ts.map +1 -1
- package/dist/data/utils.js +21 -1
- package/dist/data/utils.js.map +1 -1
- package/dist/editor/P1App.d.ts.map +1 -1
- package/dist/editor/P1App.js +6 -45
- package/dist/editor/P1App.js.map +1 -1
- package/dist/editor/P1PuckProvider.d.ts +1 -1
- package/dist/editor/P1PuckProvider.d.ts.map +1 -1
- package/dist/editor/P1PuckProvider.js +54 -561
- package/dist/editor/P1PuckProvider.js.map +1 -1
- package/dist/editor/aiPanelStore.js +0 -7
- package/dist/editor/aiPanelStore.js.map +1 -1
- package/dist/editor/components/BranchSelector.js +0 -21
- package/dist/editor/components/BranchSelector.js.map +1 -1
- package/dist/editor/components/CollapsibleSectionHeader.js +1 -4
- package/dist/editor/components/CollapsibleSectionHeader.js.map +1 -1
- package/dist/editor/components/DraggableRow.js +0 -1
- package/dist/editor/components/DraggableRow.js.map +1 -1
- package/dist/editor/components/EditorReloadOverlay.d.ts +16 -0
- package/dist/editor/components/EditorReloadOverlay.d.ts.map +1 -0
- package/dist/editor/components/EditorReloadOverlay.js +13 -0
- package/dist/editor/components/EditorReloadOverlay.js.map +1 -0
- package/dist/editor/components/NotificationContainer.js +0 -20
- package/dist/editor/components/NotificationContainer.js.map +1 -1
- package/dist/editor/components/OutlinePanel.js +1 -12
- package/dist/editor/components/OutlinePanel.js.map +1 -1
- package/dist/editor/components/P1InspectorFields.d.ts.map +1 -1
- package/dist/editor/components/P1InspectorFields.js +12 -14
- package/dist/editor/components/P1InspectorFields.js.map +1 -1
- package/dist/editor/components/P1TemplateFields.js +6 -12
- package/dist/editor/components/P1TemplateFields.js.map +1 -1
- package/dist/editor/components/PanelHeader.d.ts.map +1 -1
- package/dist/editor/components/PanelHeader.js +3 -2
- package/dist/editor/components/PanelHeader.js.map +1 -1
- package/dist/editor/components/PublishButton.js +0 -21
- package/dist/editor/components/PublishButton.js.map +1 -1
- package/dist/editor/components/PuckDataCapture.js +0 -14
- package/dist/editor/components/PuckDataCapture.js.map +1 -1
- package/dist/editor/components/PuckDataSynchronizer.js +0 -67
- package/dist/editor/components/PuckDataSynchronizer.js.map +1 -1
- package/dist/editor/components/PuckSelectionTracker.js +0 -62
- package/dist/editor/components/PuckSelectionTracker.js.map +1 -1
- package/dist/editor/components/SaveIndicator.js +0 -41
- package/dist/editor/components/SaveIndicator.js.map +1 -1
- package/dist/editor/components/Toast.js +1 -32
- package/dist/editor/components/Toast.js.map +1 -1
- package/dist/editor/components/VersionBannerOverride.d.ts +7 -1
- package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
- package/dist/editor/components/VersionBannerOverride.js +17 -24
- package/dist/editor/components/VersionBannerOverride.js.map +1 -1
- package/dist/editor/components/collapsibleSectionContext.js +0 -10
- package/dist/editor/components/collapsibleSectionContext.js.map +1 -1
- package/dist/editor/components/componentIconName.js +0 -23
- package/dist/editor/components/componentIconName.js.map +1 -1
- package/dist/editor/components/connectable.js +0 -5
- package/dist/editor/components/connectable.js.map +1 -1
- package/dist/editor/components/merge-preview/MergePreviewRenderer.js +2 -74
- package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
- package/dist/editor/components/merge-preview/ScaledContent.js +0 -6
- package/dist/editor/components/merge-preview/ScaledContent.js.map +1 -1
- package/dist/editor/components/merge-preview/index.js +0 -5
- package/dist/editor/components/merge-preview/index.js.map +1 -1
- package/dist/editor/components/outlineTree.js +0 -31
- package/dist/editor/components/outlineTree.js.map +1 -1
- package/dist/editor/components/useDragReorder.js +0 -1
- package/dist/editor/components/useDragReorder.js.map +1 -1
- package/dist/editor/composePlugins.d.ts +9 -3
- package/dist/editor/composePlugins.d.ts.map +1 -1
- package/dist/editor/composePlugins.js +3 -8
- package/dist/editor/composePlugins.js.map +1 -1
- package/dist/editor/defaultPlugins.d.ts +1 -1
- package/dist/editor/defaultPlugins.d.ts.map +1 -1
- package/dist/editor/defaultPlugins.js +3 -1
- package/dist/editor/defaultPlugins.js.map +1 -1
- package/dist/editor/freshFieldTypes.d.ts +12 -0
- package/dist/editor/freshFieldTypes.d.ts.map +1 -0
- package/dist/editor/freshFieldTypes.js +11 -0
- package/dist/editor/freshFieldTypes.js.map +1 -0
- package/dist/editor/logout-store.d.ts +13 -0
- package/dist/editor/logout-store.d.ts.map +1 -0
- package/dist/editor/logout-store.js +23 -0
- package/dist/editor/logout-store.js.map +1 -0
- package/dist/editor/plugin/P1Plugin.d.ts +16 -3
- package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
- package/dist/editor/plugin/P1Plugin.js +21 -171
- package/dist/editor/plugin/P1Plugin.js.map +1 -1
- package/dist/editor/plugin/context-sync-key.js +0 -19
- package/dist/editor/plugin/context-sync-key.js.map +1 -1
- package/dist/editor/plugin/createP1Overrides.js +1 -49
- package/dist/editor/plugin/createP1Overrides.js.map +1 -1
- package/dist/editor/plugin/document-sync-plugin.js +0 -50
- package/dist/editor/plugin/document-sync-plugin.js.map +1 -1
- package/dist/editor/plugin/fieldGuidance.js +0 -5
- package/dist/editor/plugin/fieldGuidance.js.map +1 -1
- package/dist/editor/plugin/index.js +0 -6
- package/dist/editor/plugin/index.js.map +1 -1
- package/dist/editor/plugin/selectHeaderCollaborators.js +0 -8
- package/dist/editor/plugin/selectHeaderCollaborators.js.map +1 -1
- package/dist/editor/presets.js +2 -2
- package/dist/editor/stablePluginDeps.d.ts +9 -0
- package/dist/editor/stablePluginDeps.d.ts.map +1 -0
- package/dist/editor/stablePluginDeps.js +15 -0
- package/dist/editor/stablePluginDeps.js.map +1 -0
- package/dist/editor/thumbnails/LiveThumbnail.js +1 -49
- package/dist/editor/thumbnails/LiveThumbnail.js.map +1 -1
- package/dist/editor/thumbnails/ThumbnailCard.js +0 -25
- package/dist/editor/thumbnails/ThumbnailCard.js.map +1 -1
- package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js +0 -21
- package/dist/editor/thumbnails/buildLiveThumbnailDrawer.js.map +1 -1
- package/dist/editor/thumbnails/humanizeComponentName.js +0 -17
- package/dist/editor/thumbnails/humanizeComponentName.js.map +1 -1
- package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js +0 -11
- package/dist/editor/thumbnails/resolveLiveThumbnailDrawer.js.map +1 -1
- package/dist/editor/thumbnails/thumbnailCache.js +0 -38
- package/dist/editor/thumbnails/thumbnailCache.js.map +1 -1
- package/dist/editor/useAutoSave.js +0 -32
- package/dist/editor/useAutoSave.js.map +1 -1
- package/dist/editor/useBranches.js +0 -30
- package/dist/editor/useBranches.js.map +1 -1
- package/dist/editor/useComponentRegistry.d.ts +1 -1
- package/dist/editor/useComponentRegistry.js +0 -28
- package/dist/editor/useComponentRegistry.js.map +1 -1
- package/dist/editor/useDocuments.js +0 -51
- package/dist/editor/useDocuments.js.map +1 -1
- package/dist/editor/useMergePreview.js +8 -12
- package/dist/editor/useMergePreview.js.map +1 -1
- package/dist/editor/useP1Editor.d.ts +35 -7
- package/dist/editor/useP1Editor.d.ts.map +1 -1
- package/dist/editor/useP1Editor.js +146 -243
- package/dist/editor/useP1Editor.js.map +1 -1
- package/dist/editor/useP1Overrides.js +15 -50
- package/dist/editor/useP1Overrides.js.map +1 -1
- package/dist/editor/useP1Plugin.d.ts +10 -4
- package/dist/editor/useP1Plugin.d.ts.map +1 -1
- package/dist/editor/useP1Plugin.js +34 -56
- package/dist/editor/useP1Plugin.js.map +1 -1
- package/dist/editor/useRealtime.d.ts +15 -3
- package/dist/editor/useRealtime.d.ts.map +1 -1
- package/dist/editor/useRealtime.js +12 -91
- package/dist/editor/useRealtime.js.map +1 -1
- package/dist/editor/useResponsivePanels.js +2 -35
- package/dist/editor/useResponsivePanels.js.map +1 -1
- package/dist/editor/useSidebarScrollPreservation.js +0 -14
- package/dist/editor/useSidebarScrollPreservation.js.map +1 -1
- package/dist/editor/utils/buildThumbnailOverride.js +0 -9
- package/dist/editor/utils/buildThumbnailOverride.js.map +1 -1
- package/dist/editor/utils/componentRegistry.d.ts +6 -11
- package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
- package/dist/editor/utils/componentRegistry.js +1 -71
- package/dist/editor/utils/componentRegistry.js.map +1 -1
- package/dist/editor/utils/createStablePluginArray.js +0 -27
- package/dist/editor/utils/createStablePluginArray.js.map +1 -1
- package/dist/editor/utils/path.js +0 -6
- package/dist/editor/utils/path.js.map +1 -1
- package/dist/editor/utils/puckYjsBinding.d.ts +1 -1
- package/dist/editor/utils/puckYjsBinding.js +0 -99
- package/dist/editor/utils/puckYjsBinding.js.map +1 -1
- package/dist/editor/utils/restoreDocumentVersion.js +0 -12
- package/dist/editor/utils/restoreDocumentVersion.js.map +1 -1
- package/dist/editor/utils/sanitizeRichtextDefaults.js +0 -26
- package/dist/editor/utils/sanitizeRichtextDefaults.js.map +1 -1
- package/dist/editor/utils/snapshotToPuckData.js +0 -8
- package/dist/editor/utils/snapshotToPuckData.js.map +1 -1
- package/dist/editor/utils/syncComponentRegistry.d.ts +2 -2
- package/dist/editor/utils/syncComponentRegistry.js +1 -76
- package/dist/editor/utils/syncComponentRegistry.js.map +1 -1
- package/dist/editor/utils/syncComponentRegistryWriteOnly.d.ts +7 -7
- package/dist/editor/utils/syncComponentRegistryWriteOnly.js +0 -22
- package/dist/editor/utils/syncComponentRegistryWriteOnly.js.map +1 -1
- package/dist/editor/utils/templatePath.js +0 -5
- package/dist/editor/utils/templatePath.js.map +1 -1
- package/dist/features/content-type-templates/editor/useTemplatePermissions.js +0 -3
- package/dist/features/content-type-templates/editor/useTemplatePermissions.js.map +1 -1
- package/dist/features/content-type-templates/hooks/useTemplateList.js +0 -30
- package/dist/features/content-type-templates/hooks/useTemplateList.js.map +1 -1
- package/dist/features/content-type-templates/index.js +0 -8
- package/dist/features/content-type-templates/index.js.map +1 -1
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js +1 -43
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
- package/dist/features/content-type-templates/permissions/role-permissions.d.ts +8 -0
- package/dist/features/content-type-templates/permissions/role-permissions.d.ts.map +1 -1
- package/dist/features/content-type-templates/permissions/role-permissions.js +3 -29
- package/dist/features/content-type-templates/permissions/role-permissions.js.map +1 -1
- package/dist/features/content-type-templates/permissions/useContentRole.js +0 -24
- package/dist/features/content-type-templates/permissions/useContentRole.js.map +1 -1
- package/dist/features/content-type-templates/permissions/useResolveContentRole.d.ts +5 -5
- package/dist/features/content-type-templates/permissions/useResolveContentRole.js +2 -22
- package/dist/features/content-type-templates/permissions/useResolveContentRole.js.map +1 -1
- package/dist/features/content-type-templates/stores/index.js +0 -5
- package/dist/features/content-type-templates/stores/index.js.map +1 -1
- package/dist/features/content-type-templates/stores/template-store-api.js +0 -14
- package/dist/features/content-type-templates/stores/template-store-api.js.map +1 -1
- package/dist/features/content-type-templates/stores/template-store.d.ts +1 -1
- package/dist/features/content-type-templates/stores/template-store.js +0 -12
- package/dist/features/content-type-templates/stores/template-store.js.map +1 -1
- package/dist/features/content-type-templates/types.js +0 -5
- package/dist/features/content-type-templates/types.js.map +1 -1
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js +12 -21
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js +0 -23
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js.map +1 -1
- package/dist/features/content-type-templates/ui/TemplateSelector.js +0 -19
- package/dist/features/content-type-templates/ui/TemplateSelector.js.map +1 -1
- package/dist/features/content-type-templates/validation/structural-validation.js +0 -40
- package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
- package/dist/features/localization/authority.d.ts +26 -0
- package/dist/features/localization/authority.d.ts.map +1 -0
- package/dist/features/localization/authority.js +17 -0
- package/dist/features/localization/authority.js.map +1 -0
- package/dist/features/localization/index.d.ts +11 -0
- package/dist/features/localization/index.d.ts.map +1 -0
- package/dist/features/localization/index.js +7 -0
- package/dist/features/localization/index.js.map +1 -0
- package/dist/features/localization/prop-target.d.ts +26 -0
- package/dist/features/localization/prop-target.d.ts.map +1 -0
- package/dist/features/localization/prop-target.js +15 -0
- package/dist/features/localization/prop-target.js.map +1 -0
- package/dist/features/localization/puck-overrides.d.ts +12 -0
- package/dist/features/localization/puck-overrides.d.ts.map +1 -0
- package/dist/features/localization/puck-overrides.js +12 -0
- package/dist/features/localization/puck-overrides.js.map +1 -0
- package/dist/features/localization/relation.d.ts +14 -0
- package/dist/features/localization/relation.d.ts.map +1 -0
- package/dist/features/localization/relation.js +7 -0
- package/dist/features/localization/relation.js.map +1 -0
- package/dist/features/localization/translatable.d.ts +24 -0
- package/dist/features/localization/translatable.d.ts.map +1 -0
- package/dist/features/localization/translatable.js +30 -0
- package/dist/features/localization/translatable.js.map +1 -0
- package/dist/features/localization/types.d.ts +17 -0
- package/dist/features/localization/types.d.ts.map +1 -0
- package/dist/features/localization/types.js +2 -0
- package/dist/features/localization/types.js.map +1 -0
- package/dist/features/localization/ui/AuthorityFieldControl.d.ts +32 -0
- package/dist/features/localization/ui/AuthorityFieldControl.d.ts.map +1 -0
- package/dist/features/localization/ui/AuthorityFieldControl.js +36 -0
- package/dist/features/localization/ui/AuthorityFieldControl.js.map +1 -0
- package/dist/features/localization/ui/TranslatabilityToggle.d.ts +17 -0
- package/dist/features/localization/ui/TranslatabilityToggle.d.ts.map +1 -0
- package/dist/features/localization/ui/TranslatabilityToggle.js +16 -0
- package/dist/features/localization/ui/TranslatabilityToggle.js.map +1 -0
- package/dist/features/localization/useLocalizationData.d.ts +37 -0
- package/dist/features/localization/useLocalizationData.d.ts.map +1 -0
- package/dist/features/localization/useLocalizationData.js +88 -0
- package/dist/features/localization/useLocalizationData.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -43
- package/dist/index.js.map +1 -1
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js +0 -19
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js.map +1 -1
- package/dist/merge/components/conflict-notifications/index.js +0 -5
- package/dist/merge/components/conflict-notifications/index.js.map +1 -1
- package/dist/merge/components/conflict-notifications/useConflictNotifications.js +0 -48
- package/dist/merge/components/conflict-notifications/useConflictNotifications.js.map +1 -1
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js +0 -36
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js.map +1 -1
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js +0 -40
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js.map +1 -1
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js +0 -21
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js.map +1 -1
- package/dist/merge/components/conflict-resolution/index.js +0 -5
- package/dist/merge/components/conflict-resolution/index.js.map +1 -1
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +0 -44
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.js +0 -24
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.js.map +1 -1
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.d.ts.map +1 -1
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +6 -31
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -1
- package/dist/merge/components/merge-resolution/index.js +0 -3
- package/dist/merge/components/merge-resolution/index.js.map +1 -1
- package/dist/merge/useMergeResolution.d.ts +1 -1
- package/dist/merge/useMergeResolution.d.ts.map +1 -1
- package/dist/merge/useMergeResolution.js +6 -75
- package/dist/merge/useMergeResolution.js.map +1 -1
- package/dist/merge/utils/namespacePuckData.d.ts.map +1 -1
- package/dist/merge/utils/namespacePuckData.js +8 -8
- package/dist/merge/utils/namespacePuckData.js.map +1 -1
- package/dist/merge/utils/puckFieldClassifier.js +0 -183
- package/dist/merge/utils/puckFieldClassifier.js.map +1 -1
- package/dist/p1/editor/connect/connect-preview-config.js +0 -5
- package/dist/p1/editor/connect/connect-preview-config.js.map +1 -1
- package/dist/p1/editor/connect/field-connect-plugin.js +0 -6
- package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
- package/dist/p1/editor/editor-preview-resolve.js +0 -13
- package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
- package/dist/p1/editor/hooks/api-hooks.js +0 -7
- package/dist/p1/editor/hooks/api-hooks.js.map +1 -1
- package/dist/p1/editor/hooks/useLiveEditorContext.d.ts.map +1 -1
- package/dist/p1/editor/hooks/useLiveEditorContext.js +2 -13
- package/dist/p1/editor/hooks/useLiveEditorContext.js.map +1 -1
- package/dist/p1/editor/hooks/useLiveRemoteDatasources.js +0 -22
- package/dist/p1/editor/hooks/useLiveRemoteDatasources.js.map +1 -1
- package/dist/p1/editor/hooks/useP1Plugins.js +0 -5
- package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -1
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +0 -7
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
- package/dist/p1/editor/template-autocomplete-layer.js +0 -4
- package/dist/p1/editor/template-autocomplete-layer.js.map +1 -1
- package/dist/pds/components/AgentChip.js +0 -3
- package/dist/pds/components/AgentChip.js.map +1 -1
- package/dist/pds/components/CreatePageModal.js +1 -97
- package/dist/pds/components/CreatePageModal.js.map +1 -1
- package/dist/pds/components/LoadingMessage.d.ts.map +1 -1
- package/dist/pds/components/LoadingMessage.js +2 -1
- package/dist/pds/components/LoadingMessage.js.map +1 -1
- package/dist/pds/components/LoadingMessage.module.css +2 -21
- package/dist/pds/components/LoadingOverlay.d.ts +17 -0
- package/dist/pds/components/LoadingOverlay.d.ts.map +1 -0
- package/dist/pds/components/LoadingOverlay.js +7 -0
- package/dist/pds/components/LoadingOverlay.js.map +1 -0
- package/dist/pds/components/LoadingOverlay.module.css +28 -0
- package/dist/pds/components/P1EditorHeader.d.ts +9 -2
- package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorHeader.js +6 -26
- package/dist/pds/components/P1EditorHeader.js.map +1 -1
- package/dist/pds/components/P1EditorHeader.module.css +26 -0
- package/dist/pds/components/PageNavigator.js +0 -16
- package/dist/pds/components/PageNavigator.js.map +1 -1
- package/dist/pds/components/PageNotFound.d.ts +27 -0
- package/dist/pds/components/PageNotFound.d.ts.map +1 -0
- package/dist/pds/components/PageNotFound.js +24 -0
- package/dist/pds/components/PageNotFound.js.map +1 -0
- package/dist/pds/components/PageNotFound.module.css +51 -0
- package/dist/pds/components/PresenceStack.js +0 -9
- package/dist/pds/components/PresenceStack.js.map +1 -1
- package/dist/pds/components/PublishControl.js +0 -6
- package/dist/pds/components/PublishControl.js.map +1 -1
- package/dist/pds/components/WorkstreamSwitcher.js +1 -25
- package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
- package/dist/pds/index.d.ts +4 -0
- package/dist/pds/index.d.ts.map +1 -1
- package/dist/pds/index.js +2 -29
- package/dist/pds/index.js.map +1 -1
- package/dist/pds/theme/pds-core-content.js +0 -5
- package/dist/pds/theme/pds-core-content.js.map +1 -1
- package/dist/pds/utils/deriveDocState.js +0 -1
- package/dist/pds/utils/deriveDocState.js.map +1 -1
- package/dist/pds/utils/deriveLiveDocState.js +0 -13
- package/dist/pds/utils/deriveLiveDocState.js.map +1 -1
- package/dist/registry-sync.js +0 -4
- package/dist/registry-sync.js.map +1 -1
- package/dist/server.js +0 -7
- package/dist/server.js.map +1 -1
- package/dist/versioning/components/ReadOnlyFieldsGuard.js +0 -3
- package/dist/versioning/components/ReadOnlyFieldsGuard.js.map +1 -1
- package/dist/versioning/components/VersionBannerActions.js +0 -1
- package/dist/versioning/components/VersionBannerActions.js.map +1 -1
- package/dist/versioning/components/version-compare/BranchDiffHeader.js +0 -7
- package/dist/versioning/components/version-compare/BranchDiffHeader.js.map +1 -1
- package/dist/versioning/components/version-compare/BranchMergeCompare.js +0 -19
- package/dist/versioning/components/version-compare/BranchMergeCompare.js.map +1 -1
- package/dist/versioning/components/version-compare/ComponentNode.js +0 -8
- package/dist/versioning/components/version-compare/ComponentNode.js.map +1 -1
- package/dist/versioning/components/version-compare/ComponentTree.js +0 -10
- package/dist/versioning/components/version-compare/ComponentTree.js.map +1 -1
- package/dist/versioning/components/version-compare/DiffHeader.js +0 -3
- package/dist/versioning/components/version-compare/DiffHeader.js.map +1 -1
- package/dist/versioning/components/version-compare/DocumentDiffList.js +0 -14
- package/dist/versioning/components/version-compare/DocumentDiffList.js.map +1 -1
- package/dist/versioning/components/version-compare/PropDiffPanel.js +0 -7
- package/dist/versioning/components/version-compare/PropDiffPanel.js.map +1 -1
- package/dist/versioning/components/version-compare/PropDiffRow.js +0 -3
- package/dist/versioning/components/version-compare/PropDiffRow.js.map +1 -1
- package/dist/versioning/components/version-compare/PropValueDisplay.js +0 -22
- package/dist/versioning/components/version-compare/PropValueDisplay.js.map +1 -1
- package/dist/versioning/components/version-compare/VersionComparePage.js +0 -13
- package/dist/versioning/components/version-compare/VersionComparePage.js.map +1 -1
- package/dist/versioning/components/version-compare/VisualBranchCompare.js +0 -17
- package/dist/versioning/components/version-compare/VisualBranchCompare.js.map +1 -1
- package/dist/versioning/components/version-compare/VisualVersionCompare.js +0 -23
- package/dist/versioning/components/version-compare/VisualVersionCompare.js.map +1 -1
- package/dist/versioning/components/version-compare/index.js +0 -5
- package/dist/versioning/components/version-compare/index.js.map +1 -1
- package/dist/versioning/components/version-history/AgentCheckpointBadge.js +0 -14
- package/dist/versioning/components/version-history/AgentCheckpointBadge.js.map +1 -1
- package/dist/versioning/components/version-history/VersionItem.js +0 -7
- package/dist/versioning/components/version-history/VersionItem.js.map +1 -1
- package/dist/versioning/components/version-history/index.js +0 -5
- package/dist/versioning/components/version-history/index.js.map +1 -1
- package/dist/versioning/useCheckpoints.js +0 -28
- package/dist/versioning/useCheckpoints.js.map +1 -1
- package/dist/versioning/useVersions.js +0 -31
- package/dist/versioning/useVersions.js.map +1 -1
- package/dist/versioning/utils/branchDiff.js +0 -93
- package/dist/versioning/utils/branchDiff.js.map +1 -1
- package/dist/versioning/utils/diff.js +0 -79
- package/dist/versioning/utils/diff.js.map +1 -1
- package/dist/versioning/utils/formatVersionDate.js +0 -12
- package/dist/versioning/utils/formatVersionDate.js.map +1 -1
- package/dist/versioning/utils/highlightConfig.js +0 -42
- package/dist/versioning/utils/highlightConfig.js.map +1 -1
- package/dist/versioning/utils/versionKind.js +0 -10
- package/dist/versioning/utils/versionKind.js.map +1 -1
- package/package.json +7 -7
- package/src/data/data-list-block/data-list.css +314 -0
- package/src/pds/theme/PuckEditorTheme.css +5 -5
- package/src/styles.css +1 -1
- package/src/pds/theme/PuckEditorTheme.test.ts +0 -195
- package/src/pds/theme/pds-core-content.ts +0 -8
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useResolveContentRole Hook
|
|
3
|
-
*
|
|
4
|
-
* Auto-detects the user's ContentRole by querying the CSS backend's
|
|
5
|
-
* auth/me endpoint with site context. Falls back to the provided
|
|
6
|
-
* default role if the backend doesn't return role info.
|
|
7
|
-
*
|
|
8
|
-
* CSS backend role mapping:
|
|
9
|
-
* - ADMIN → 'admin'
|
|
10
|
-
* - EDITOR → 'editor'
|
|
11
|
-
* - VIEWER → 'junior-editor' (read-only structural access)
|
|
12
|
-
* - NO_ACCESS → 'junior-editor' (most restrictive)
|
|
13
|
-
*/
|
|
14
1
|
import { useState, useEffect } from 'react';
|
|
15
|
-
function mapCssRoleToContentRole(
|
|
16
|
-
switch (
|
|
2
|
+
function mapCssRoleToContentRole(ccrRole) {
|
|
3
|
+
switch (ccrRole) {
|
|
17
4
|
case 'ADMIN':
|
|
18
5
|
return 'admin';
|
|
19
6
|
case 'EDITOR':
|
|
@@ -24,13 +11,6 @@ function mapCssRoleToContentRole(cssRole) {
|
|
|
24
11
|
return 'junior-editor';
|
|
25
12
|
}
|
|
26
13
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Hook to auto-resolve the user's ContentRole from the CSS backend.
|
|
29
|
-
*
|
|
30
|
-
* Calls GET /api/sites/{siteId}/auth/role (when available) to determine
|
|
31
|
-
* the user's effective role. Falls back to the provided fallbackRole
|
|
32
|
-
* if the endpoint is unavailable or returns an error.
|
|
33
|
-
*/
|
|
34
14
|
export function useResolveContentRole({ baseUrl, siteId, branchId, token, fallbackRole = 'junior-editor', }) {
|
|
35
15
|
const [role, setRole] = useState(fallbackRole);
|
|
36
16
|
const [loading, setLoading] = useState(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResolveContentRole.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/useResolveContentRole.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useResolveContentRole.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/useResolveContentRole.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5C,SAAS,uBAAuB,CAAC,OAAoB;IACnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB;YACE,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC;AAuBD,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,GAAG,eAAe,GACD;IAC7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,YAAY,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,OAAO,GAA2B;oBACtC,aAAa,EAAE,UAAU,KAAK,EAAE;iBACjC,CAAC;gBACF,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,OAAO,cAAc,kBAAkB,CAAC,MAAM,CAAC,aAAa,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EACvG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAC3B,CAAC;gBAEF,IAAI,SAAS;oBAAE,OAAO;gBAEtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+B,CAAC;oBAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAChD,WAAW,CAAC,IAAI,CAAC,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,YAAY,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS;oBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAErD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API-Backed Template Store
|
|
3
|
-
*
|
|
4
|
-
* Production template store implementation using the backend API.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a template store backed by the P1 API.
|
|
8
|
-
*
|
|
9
|
-
* @param client - P1Client instance
|
|
10
|
-
* @param siteId - Site ID
|
|
11
|
-
* @param branchId - Branch ID
|
|
12
|
-
* @returns TemplateStore instance
|
|
13
|
-
*/
|
|
14
1
|
export function createApiTemplateStore(client, siteId, branchId) {
|
|
15
2
|
return {
|
|
16
3
|
async create(params) {
|
|
@@ -23,7 +10,6 @@ export function createApiTemplateStore(client, siteId, branchId) {
|
|
|
23
10
|
return template;
|
|
24
11
|
}
|
|
25
12
|
catch (error) {
|
|
26
|
-
// Return undefined for 404s
|
|
27
13
|
if (error && typeof error === 'object' && 'status' in error && error.status === 404) {
|
|
28
14
|
return undefined;
|
|
29
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-store-api.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-store-api.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store-api.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,sBAAsB,CACpC,MAAgB,EAChB,MAAc,EACd,QAAgB;IAEhB,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,MAA4B;YACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAU;YAClB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEf,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACpF,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI;YACR,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA4B;YACnD,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAU;YACrB,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,WAAmB;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,WAAmB,EACnB,gBAAwB;YAExB,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;QAChI,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,WAAmB;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAmB;YACrC,MAAM,IAAI,KAAK,CAAC,+GAA+G,CAAC,CAAC;QACnI,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Template Store Interface
|
|
3
3
|
*
|
|
4
4
|
* Defines the contract for template storage and retrieval.
|
|
5
|
-
* Implementations can use localStorage,
|
|
5
|
+
* Implementations can use localStorage, backend documents, or a backend API.
|
|
6
6
|
*/
|
|
7
7
|
import type { Template, TemplateSummary, TemplateBinding, CreateTemplateParams, UpdateTemplateParams } from '../types.js';
|
|
8
8
|
/**
|
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Template Store Interface
|
|
3
|
-
*
|
|
4
|
-
* Defines the contract for template storage and retrieval.
|
|
5
|
-
* Implementations can use localStorage, CSS documents, or backend API.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Generate a unique template ID.
|
|
9
|
-
*/
|
|
10
1
|
function generateId() {
|
|
11
2
|
return `tmpl_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
12
3
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Create an in-memory template store for testing and development.
|
|
15
|
-
*/
|
|
16
4
|
export function createInMemoryTemplateStore() {
|
|
17
5
|
const templates = new Map();
|
|
18
6
|
const bindings = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-store.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-store.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/content-type-templates/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/content-type-templates/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
|
-
import { ActionBar, createUsePuck
|
|
3
|
+
import { ActionBar, createUsePuck } from '@puckeditor/core';
|
|
4
4
|
import { Icon } from '@pantheon-systems/pds-toolkit-react';
|
|
5
5
|
import { useP1PuckOptional } from '../../../core/P1PuckContext.js';
|
|
6
6
|
const usePuckState = createUsePuck();
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* `_registry/templates/<name>`). Pinning is a template-authoring capability,
|
|
10
|
-
* so ordinary pages (including template-bound ones) resolve to null.
|
|
11
|
-
*/
|
|
12
|
-
function resolveTemplate(css) {
|
|
13
|
-
const path = css.currentDocument?.path;
|
|
7
|
+
function resolveTemplate(ccr) {
|
|
8
|
+
const path = ccr.currentDocument?.path;
|
|
14
9
|
if (!path)
|
|
15
10
|
return null;
|
|
16
11
|
const match = path.match(/^_registry\/templates\/(.+)$/);
|
|
17
12
|
if (!match)
|
|
18
13
|
return null;
|
|
19
|
-
return
|
|
14
|
+
return ccr.templates.find((t) => t.name === match[1]) ?? null;
|
|
20
15
|
}
|
|
21
16
|
export function ActionBarPinButton() {
|
|
22
|
-
const
|
|
17
|
+
const ccr = useP1PuckOptional();
|
|
23
18
|
const selectedItem = usePuckState((s) => s.selectedItem);
|
|
24
19
|
const rootProps = usePuckState((s) => s.appState?.data?.root?.props);
|
|
25
|
-
const
|
|
26
|
-
const template =
|
|
20
|
+
const dispatch = usePuckState((s) => s.dispatch);
|
|
21
|
+
const template = ccr ? resolveTemplate(ccr) : null;
|
|
27
22
|
const pinMap = rootProps?._pinMap ?? {};
|
|
28
|
-
// Pin state lives in the document's root props (_pinMap) and persists
|
|
29
|
-
// through the normal document autosave.
|
|
30
23
|
const handleTogglePin = useCallback(() => {
|
|
31
|
-
if (!
|
|
24
|
+
if (!ccr || !template || !selectedItem || ccr.isViewingHistoricalVersion)
|
|
32
25
|
return;
|
|
33
26
|
const compId = selectedItem.props.id;
|
|
34
27
|
const newPinned = !pinMap[compId];
|
|
@@ -46,14 +39,12 @@ export function ActionBarPinButton() {
|
|
|
46
39
|
},
|
|
47
40
|
}),
|
|
48
41
|
});
|
|
49
|
-
}, [
|
|
50
|
-
if (!
|
|
42
|
+
}, [ccr, template, selectedItem, pinMap, dispatch]);
|
|
43
|
+
if (!ccr || !template || !selectedItem) {
|
|
51
44
|
return null;
|
|
52
45
|
}
|
|
53
|
-
const isAdmin =
|
|
46
|
+
const isAdmin = ccr.userRole === 'admin';
|
|
54
47
|
const isPinned = pinMap[selectedItem.props.id] ?? false;
|
|
55
|
-
return (_jsx(ActionBar.Action, { label: isPinned ? 'Unpin component' : 'Pin component', onClick: handleTogglePin, active: isPinned,
|
|
56
|
-
// Historical versions are read-only; a toggle there would never persist.
|
|
57
|
-
disabled: !isAdmin || css.isViewingHistoricalVersion, children: _jsx(Icon, { iconName: isPinned ? 'lock' : 'lockOpen', size: "s", "aria-hidden": "true" }) }));
|
|
48
|
+
return (_jsx(ActionBar.Action, { label: isPinned ? 'Unpin component' : 'Pin component', onClick: handleTogglePin, active: isPinned, disabled: !isAdmin || ccr.isViewingHistoricalVersion, children: _jsx(Icon, { iconName: isPinned ? 'lock' : 'lockOpen', size: "s", "aria-hidden": "true" }) }));
|
|
58
49
|
}
|
|
59
50
|
//# sourceMappingURL=ActionBarPinButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionBarPinButton.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/ActionBarPinButton.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"ActionBarPinButton.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/ActionBarPinButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* TemplateDetailsPanel
|
|
4
|
-
*
|
|
5
|
-
* Right-sidebar panel shown when editing a template in the regular editor
|
|
6
|
-
* (template mode — document path `_registry/templates/<name>`). It replaces the
|
|
7
|
-
* default "Page" root fields with a "Template" section exposing the template's
|
|
8
|
-
* Label, Description and URL pattern. Edits **autosave** (debounced) to the
|
|
9
|
-
* template's metadata via `onSave`; the layout itself is saved by the canvas.
|
|
10
|
-
*/
|
|
11
2
|
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
12
|
-
/** Delay after the last keystroke before autosaving the template details. */
|
|
13
3
|
const AUTOSAVE_DEBOUNCE_MS = 600;
|
|
14
4
|
const fieldStyle = {
|
|
15
5
|
display: 'flex',
|
|
@@ -37,10 +27,7 @@ export function TemplateDetailsPanel({ template, onSave, }) {
|
|
|
37
27
|
const [defaultUrlPattern, setDefaultUrlPattern] = useState(template.defaultUrlPattern ?? '');
|
|
38
28
|
const [status, setStatus] = useState('idle');
|
|
39
29
|
const [error, setError] = useState(null);
|
|
40
|
-
// Skip the autosave that the initial mount / template-switch re-sync would
|
|
41
|
-
// otherwise trigger (those aren't user edits).
|
|
42
30
|
const skipNextAutosaveRef = useRef(true);
|
|
43
|
-
// Re-sync the fields when a different template is loaded into the editor.
|
|
44
31
|
useEffect(() => {
|
|
45
32
|
setLabel(template.label ?? '');
|
|
46
33
|
setDescription(template.description ?? '');
|
|
@@ -48,8 +35,6 @@ export function TemplateDetailsPanel({ template, onSave, }) {
|
|
|
48
35
|
setError(null);
|
|
49
36
|
setStatus('idle');
|
|
50
37
|
skipNextAutosaveRef.current = true;
|
|
51
|
-
// Keyed on the template id: switching documents swaps the whole record.
|
|
52
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
53
38
|
}, [template.id]);
|
|
54
39
|
const save = useCallback(async () => {
|
|
55
40
|
setStatus('saving');
|
|
@@ -67,14 +52,8 @@ export function TemplateDetailsPanel({ template, onSave, }) {
|
|
|
67
52
|
setStatus('error');
|
|
68
53
|
}
|
|
69
54
|
}, [label, description, defaultUrlPattern, onSave]);
|
|
70
|
-
// Call the latest `save` via a ref so the autosave effect only depends on the
|
|
71
|
-
// field VALUES. `save`/`onSave` get new identities on every render (onSave is
|
|
72
|
-
// an inline closure upstream); depending on them would re-run the effect each
|
|
73
|
-
// render and create a save → refetch → re-render → save loop.
|
|
74
55
|
const saveRef = useRef(save);
|
|
75
56
|
saveRef.current = save;
|
|
76
|
-
// Debounced autosave on edits. A label is required; we never autosave a blank
|
|
77
|
-
// label (it's the template's human-readable name).
|
|
78
57
|
useEffect(() => {
|
|
79
58
|
if (skipNextAutosaveRef.current) {
|
|
80
59
|
skipNextAutosaveRef.current = false;
|
|
@@ -91,8 +70,6 @@ export function TemplateDetailsPanel({ template, onSave, }) {
|
|
|
91
70
|
display: 'flex',
|
|
92
71
|
flexDirection: 'column',
|
|
93
72
|
gap: 'var(--puck-space-px, 16px)',
|
|
94
|
-
// Match the regular block-edit fields gutter (Puck wraps default fields
|
|
95
|
-
// in `padding: var(--puck-space-px)`; overriding `fields` drops it).
|
|
96
73
|
padding: 'var(--puck-space-px, 16px)',
|
|
97
74
|
}, children: [_jsx("p", { style: {
|
|
98
75
|
margin: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateDetailsPanel.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateDetailsPanel.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TemplateDetailsPanel.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateDetailsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useTemplateList } from '../hooks/useTemplateList.js';
|
|
3
|
-
/**
|
|
4
|
-
* Template selector component for document creation.
|
|
5
|
-
*
|
|
6
|
-
* Displays a list of available templates plus a "Blank Page" option.
|
|
7
|
-
* Uses PDS button and card styles.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```tsx
|
|
11
|
-
* const [selectedTemplate, setSelectedTemplate] = useState<Template | null>(null);
|
|
12
|
-
*
|
|
13
|
-
* <TemplateSelector
|
|
14
|
-
* client={client}
|
|
15
|
-
* siteId={siteId}
|
|
16
|
-
* branchId={branchId}
|
|
17
|
-
* onSelect={setSelectedTemplate}
|
|
18
|
-
* selectedTemplateId={selectedTemplate?.id}
|
|
19
|
-
* />
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
3
|
export function TemplateSelector({ client, siteId, branchId, onSelect, selectedTemplateId, }) {
|
|
23
4
|
const { templates, loading, error } = useTemplateList(client, siteId, branchId);
|
|
24
5
|
if (loading) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateSelector.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateSelector.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateSelector.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateSelector.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAkC9D,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACI;IACtB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,cAAK,SAAS,EAAC,8CAA8C,YAC3D,cAAK,SAAS,EAAC,oCAAoC,qCAE7C,GACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,cAAK,SAAS,EAAC,4CAA4C,YACzD,eAAK,SAAS,EAAC,kCAAkC,aAC/C,uDAAwC,EACxC,sBAAI,KAAK,CAAC,OAAO,GAAK,IAClB,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAK,SAAS,EAAC,yBAAyB,aAEtC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,kBACf,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,SAAS,YAE7E,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,iCAAiC,2BAAiB,EACjE,cAAK,SAAS,EAAC,uCAAuC,oDAEhD,IACF,GACC,EAGR,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACxD,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBACnB,kBAAkB,KAAK,QAAQ,CAAC,EAAE,YAEhD,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,iCAAiC,YAAE,QAAQ,CAAC,KAAK,GAAO,EACtE,QAAQ,CAAC,WAAW,IAAI,CACvB,cAAK,SAAS,EAAC,uCAAuC,YACnD,QAAQ,CAAC,WAAW,GACjB,CACP,IACG,IAbD,QAAQ,CAAC,EAAE,CAcT,CACV,CAAC,IACE,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structural Validation
|
|
3
|
-
*
|
|
4
|
-
* Validates that a document conforms to its template's structural requirements.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Read a component instance's slot id (`props.id`) if it is a string.
|
|
8
|
-
*/
|
|
9
1
|
function slotId(item) {
|
|
10
2
|
const id = item?.props?.id;
|
|
11
3
|
return typeof id === 'string' ? id : undefined;
|
|
12
4
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Read a component instance's type if it is a string.
|
|
15
|
-
*/
|
|
16
5
|
function componentTypeOf(item) {
|
|
17
6
|
const type = item?.type;
|
|
18
7
|
return typeof type === 'string' ? type : undefined;
|
|
19
8
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Pinned slots held by one list, in list order.
|
|
22
|
-
*/
|
|
23
9
|
function pinnedSlotsIn(items, list, pinMap) {
|
|
24
10
|
if (!Array.isArray(items))
|
|
25
11
|
return [];
|
|
@@ -33,9 +19,6 @@ function pinnedSlotsIn(items, list, pinMap) {
|
|
|
33
19
|
}
|
|
34
20
|
return slots;
|
|
35
21
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Every pinned slot a template requires, content first, then zones.
|
|
38
|
-
*/
|
|
39
22
|
function collectPinnedSlots(template) {
|
|
40
23
|
const pinMap = template.root?.props?._pinMap ?? {};
|
|
41
24
|
const slots = pinnedSlotsIn(template.content, 'content', pinMap);
|
|
@@ -44,9 +27,6 @@ function collectPinnedSlots(template) {
|
|
|
44
27
|
}
|
|
45
28
|
return slots;
|
|
46
29
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Slot ids held by one list, in list order.
|
|
49
|
-
*/
|
|
50
30
|
function slotIdsIn(items) {
|
|
51
31
|
if (!Array.isArray(items))
|
|
52
32
|
return [];
|
|
@@ -58,9 +38,6 @@ function slotIdsIn(items) {
|
|
|
58
38
|
}
|
|
59
39
|
return ids;
|
|
60
40
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Index a document's slot ids by the list that holds them.
|
|
63
|
-
*/
|
|
64
41
|
function collectDocumentSlots(data) {
|
|
65
42
|
const byList = new Map();
|
|
66
43
|
byList.set('content', slotIdsIn(data.content));
|
|
@@ -75,10 +52,6 @@ function collectDocumentSlots(data) {
|
|
|
75
52
|
}
|
|
76
53
|
return { all, byList };
|
|
77
54
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Presence: a pinned slot may sit in any list, but its id must appear
|
|
80
|
-
* somewhere in the document.
|
|
81
|
-
*/
|
|
82
55
|
function findMissingSlots(pinnedSlots, documentIds) {
|
|
83
56
|
return pinnedSlots
|
|
84
57
|
.filter((slot) => !documentIds.has(slot.id))
|
|
@@ -88,11 +61,6 @@ function findMissingSlots(pinnedSlots, documentIds) {
|
|
|
88
61
|
componentType: slot.type,
|
|
89
62
|
}));
|
|
90
63
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Order: within each list, the pinned slots found in that list keep the
|
|
93
|
-
* template's relative order. A slot found in a different list than the
|
|
94
|
-
* template placed it in does not advance that list's chain.
|
|
95
|
-
*/
|
|
96
64
|
function findOutOfOrderSlots(pinnedSlots, idsByList) {
|
|
97
65
|
const errors = [];
|
|
98
66
|
for (const list of new Set(pinnedSlots.map((slot) => slot.list))) {
|
|
@@ -119,14 +87,6 @@ function findOutOfOrderSlots(pinnedSlots, idsByList) {
|
|
|
119
87
|
}
|
|
120
88
|
return errors;
|
|
121
89
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Validate that document data conforms to template structure.
|
|
124
|
-
*
|
|
125
|
-
* Conformance resolves by slot-id membership: every pinned slot must be
|
|
126
|
-
* present somewhere in the document, and the pinned slots that share a list
|
|
127
|
-
* must hold the template's relative order there. Components carrying non-slot
|
|
128
|
-
* ids are allowed anywhere. A template with no pinned slots imposes nothing.
|
|
129
|
-
*/
|
|
130
90
|
export function validateStructure(data, template) {
|
|
131
91
|
const pinnedSlots = collectPinnedSlots(template);
|
|
132
92
|
if (pinnedSlots.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-validation.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/validation/structural-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"structural-validation.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/validation/structural-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prop Authority Resolution
|
|
3
|
+
*
|
|
4
|
+
* A prop on a translation is either inherited from the canonical page
|
|
5
|
+
* ('canonical') or owned by the translation ('locale'). That answer comes from
|
|
6
|
+
* three places, in precedence order: the prop's own override, the default its
|
|
7
|
+
* slot's template declares, and a site-wide fallback. The server resolves the
|
|
8
|
+
* same chain when it judges a write, so a client that stops at the override map
|
|
9
|
+
* shows an authority the server disagrees with.
|
|
10
|
+
*/
|
|
11
|
+
import type { AuthorityOverridesResult, PropAuthority } from '@pantheon-systems/css-client';
|
|
12
|
+
/**
|
|
13
|
+
* The authority a slot's props take when no override names them.
|
|
14
|
+
*/
|
|
15
|
+
export declare function slotAuthority(result: AuthorityOverridesResult | null, slotId: string): PropAuthority;
|
|
16
|
+
/**
|
|
17
|
+
* The effective authority of a single prop.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveAuthority(result: AuthorityOverridesResult | null, slotId: string, propName: string): PropAuthority;
|
|
20
|
+
/**
|
|
21
|
+
* Whether moving a prop to `target` needs an override stored, or is reached by
|
|
22
|
+
* dropping the one it has. Storing an override that repeats the slot default
|
|
23
|
+
* would survive a later change to that default and silently pin the prop.
|
|
24
|
+
*/
|
|
25
|
+
export declare function needsOverride(result: AuthorityOverridesResult | null, slotId: string, target: PropAuthority): boolean;
|
|
26
|
+
//# sourceMappingURL=authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../../../src/features/localization/authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAW5F;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,wBAAwB,GAAG,IAAI,EACvC,MAAM,EAAE,MAAM,GACb,aAAa,CAIf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,wBAAwB,GAAG,IAAI,EACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,aAAa,CAGf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,wBAAwB,GAAG,IAAI,EACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACpB,OAAO,CAET"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function isAuthority(value) {
|
|
2
|
+
return value === 'canonical' || value === 'locale';
|
|
3
|
+
}
|
|
4
|
+
export function slotAuthority(result, slotId) {
|
|
5
|
+
const declared = result?.slotDefaults?.[slotId];
|
|
6
|
+
if (isAuthority(declared))
|
|
7
|
+
return declared;
|
|
8
|
+
return isAuthority(result?.defaultAuthority) ? result.defaultAuthority : 'canonical';
|
|
9
|
+
}
|
|
10
|
+
export function resolveAuthority(result, slotId, propName) {
|
|
11
|
+
const override = result?.authorityOverrides?.[slotId]?.[propName];
|
|
12
|
+
return isAuthority(override) ? override : slotAuthority(result, slotId);
|
|
13
|
+
}
|
|
14
|
+
export function needsOverride(result, slotId, target) {
|
|
15
|
+
return slotAuthority(result, slotId) !== target;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../../../src/features/localization/authority.ts"],"names":[],"mappings":"AAkBA,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAC;AACrD,CAAC;AAKD,MAAM,UAAU,aAAa,CAC3B,MAAuC,EACvC,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,WAAW,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3C,OAAO,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;AACvF,CAAC;AAKD,MAAM,UAAU,gBAAgB,CAC9B,MAAuC,EACvC,MAAc,EACd,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAOD,MAAM,UAAU,aAAa,CAC3B,MAAuC,EACvC,MAAc,EACd,MAAqB;IAErB,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization Feature
|
|
3
|
+
*
|
|
4
|
+
* Lets site managers create a locale-tagged translation of an existing page,
|
|
5
|
+
* linked to its canonical document. The per-field controls self-gate on whether
|
|
6
|
+
* the current document is a translation, so they stay inert on canonical pages.
|
|
7
|
+
*/
|
|
8
|
+
import type { P1FeaturePlugin } from '../../core/plugin-types.js';
|
|
9
|
+
export type { LocalizationRelation, CreateTranslationParams, CreateTranslationResult, TranslationVariant, ListTranslationsResult, TranslatablePage, } from './types.js';
|
|
10
|
+
export declare const localizationPlugin: P1FeaturePlugin;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/localization/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,kBAAkB,EAAE,eAIhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/localization/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAWjE,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;CAC1D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prop Addressing
|
|
3
|
+
*
|
|
4
|
+
* Authority, translatability, and change classification are all keyed by the
|
|
5
|
+
* (slotId, propName) pair of a top-level prop on a component. Root props belong
|
|
6
|
+
* to no component, so they key on `__root__`.
|
|
7
|
+
*/
|
|
8
|
+
/** The slot id root props are keyed by. */
|
|
9
|
+
export declare const ROOT_SLOT_ID = "__root__";
|
|
10
|
+
/** A prop, addressed the way the stored maps key it. */
|
|
11
|
+
export interface PropTarget {
|
|
12
|
+
slotId: string;
|
|
13
|
+
propName: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The prop a fields-panel field acts on, or null when the field addresses no
|
|
17
|
+
* prop the stored maps can key.
|
|
18
|
+
*
|
|
19
|
+
* Puck composes a field id as `${slotId}_${fieldType}_${propName}`, using the
|
|
20
|
+
* literal `root` for a root prop, and appends `_${subName}` for each level below
|
|
21
|
+
* the top-level prop — where `name` becomes a path (`meta.title`,
|
|
22
|
+
* `items[0].title`). The maps key on the top-level prop, so a nested subfield
|
|
23
|
+
* has no address of its own and its controls belong on the prop above it.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolvePropTarget(id: string | undefined, fieldType: string | undefined, name: string): PropTarget | null;
|
|
26
|
+
//# sourceMappingURL=prop-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-target.d.ts","sourceRoot":"","sources":["../../../src/features/localization/prop-target.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,IAAI,CAUnB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const ROOT_SLOT_ID = '__root__';
|
|
2
|
+
export function resolvePropTarget(id, fieldType, name) {
|
|
3
|
+
if (!id)
|
|
4
|
+
return null;
|
|
5
|
+
if (name.includes('.') || name.includes('['))
|
|
6
|
+
return null;
|
|
7
|
+
const suffix = `_${fieldType ?? ''}_${name}`;
|
|
8
|
+
if (!id.endsWith(suffix))
|
|
9
|
+
return null;
|
|
10
|
+
const slotId = id.slice(0, -suffix.length);
|
|
11
|
+
if (!slotId)
|
|
12
|
+
return null;
|
|
13
|
+
return { slotId: slotId === 'root' ? ROOT_SLOT_ID : slotId, propName: name };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=prop-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-target.js","sourceRoot":"","sources":["../../../src/features/localization/prop-target.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AAkBvC,MAAM,UAAU,iBAAiB,CAC/B,EAAsB,EACtB,SAA6B,EAC7B,IAAY;IAEZ,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,MAAM,GAAG,IAAI,SAAS,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization Puck Overrides
|
|
3
|
+
*
|
|
4
|
+
* Contributes the per-prop fields-panel controls via the fieldTypes override:
|
|
5
|
+
* a single connected control per field renders the authority break/reset
|
|
6
|
+
* control on a translation and the translatability toggle on the canonical
|
|
7
|
+
* page. It reads the current document and client from P1 context at render
|
|
8
|
+
* time, so the override is inert on documents that are neither.
|
|
9
|
+
*/
|
|
10
|
+
import type { P1FeaturePluginDeps } from '../../core/plugin-types.js';
|
|
11
|
+
export declare function buildLocalizationOverrides(_deps: P1FeaturePluginDeps): Record<string, unknown>;
|
|
12
|
+
//# sourceMappingURL=puck-overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puck-overrides.d.ts","sourceRoot":"","sources":["../../../src/features/localization/puck-overrides.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAatE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB"}
|