@pantheon-systems/puck-css 0.4.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/agentPlugin.d.ts +3 -0
- package/dist/agent/agentPlugin.d.ts.map +1 -0
- package/dist/agent/agentPlugin.js +6 -0
- package/dist/agent/agentPlugin.js.map +1 -0
- package/dist/agent/components/AgentActionButton.d.ts +38 -0
- package/dist/agent/components/AgentActionButton.d.ts.map +1 -0
- package/dist/agent/components/AgentActionButton.js +76 -0
- package/dist/agent/components/AgentActionButton.js.map +1 -0
- package/dist/agent/components/AgentActionModal.d.ts +28 -0
- package/dist/agent/components/AgentActionModal.d.ts.map +1 -0
- package/dist/agent/components/AgentActionModal.js +85 -0
- package/dist/agent/components/AgentActionModal.js.map +1 -0
- package/dist/agent/components/AgentStatusPanel.d.ts +27 -0
- package/dist/agent/components/AgentStatusPanel.d.ts.map +1 -0
- package/dist/agent/components/AgentStatusPanel.js +51 -0
- package/dist/agent/components/AgentStatusPanel.js.map +1 -0
- package/dist/agent/components/index.d.ts +12 -0
- package/dist/agent/components/index.d.ts.map +1 -0
- package/dist/agent/components/index.js +9 -0
- package/dist/agent/components/index.js.map +1 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +4 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/useAgentEdit.d.ts +68 -0
- package/dist/agent/useAgentEdit.d.ts.map +1 -0
- package/dist/agent/useAgentEdit.js +125 -0
- package/dist/agent/useAgentEdit.js.map +1 -0
- package/dist/agent/useAgentTrigger.d.ts +69 -0
- package/dist/agent/useAgentTrigger.d.ts.map +1 -0
- package/dist/agent/useAgentTrigger.js +131 -0
- package/dist/agent/useAgentTrigger.js.map +1 -0
- package/dist/auth/AuthGate.d.ts +5 -0
- package/dist/auth/AuthGate.d.ts.map +1 -0
- package/dist/auth/AuthGate.js +17 -0
- package/dist/auth/AuthGate.js.map +1 -0
- package/dist/auth/P1AuthProvider.d.ts +59 -0
- package/dist/auth/P1AuthProvider.d.ts.map +1 -0
- package/dist/auth/P1AuthProvider.js +254 -0
- package/dist/auth/P1AuthProvider.js.map +1 -0
- package/dist/auth/P1LoginPage.d.ts +26 -0
- package/dist/auth/P1LoginPage.d.ts.map +1 -0
- package/dist/auth/P1LoginPage.js +105 -0
- package/dist/auth/P1LoginPage.js.map +1 -0
- package/dist/auth/index.d.ts +14 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +12 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/collaboration/collaborationPlugin.d.ts +3 -0
- package/dist/collaboration/collaborationPlugin.d.ts.map +1 -0
- package/dist/collaboration/collaborationPlugin.js +6 -0
- package/dist/collaboration/collaborationPlugin.js.map +1 -0
- package/dist/collaboration/components/AgentActivityBanner.d.ts +26 -0
- package/dist/collaboration/components/AgentActivityBanner.d.ts.map +1 -0
- package/dist/collaboration/components/AgentActivityBanner.js +50 -0
- package/dist/collaboration/components/AgentActivityBanner.js.map +1 -0
- package/dist/collaboration/components/CollaboratorAvatars.d.ts +25 -0
- package/dist/collaboration/components/CollaboratorAvatars.d.ts.map +1 -0
- package/dist/collaboration/components/CollaboratorAvatars.js +75 -0
- package/dist/collaboration/components/CollaboratorAvatars.js.map +1 -0
- package/dist/collaboration/components/FocusRegionHighlight.d.ts +20 -0
- package/dist/collaboration/components/FocusRegionHighlight.d.ts.map +1 -0
- package/dist/collaboration/components/FocusRegionHighlight.js +35 -0
- package/dist/collaboration/components/FocusRegionHighlight.js.map +1 -0
- package/dist/collaboration/components/PresenceIndicator.d.ts +23 -0
- package/dist/collaboration/components/PresenceIndicator.d.ts.map +1 -0
- package/dist/collaboration/components/PresenceIndicator.js +25 -0
- package/dist/collaboration/components/PresenceIndicator.js.map +1 -0
- package/dist/collaboration/index.d.ts +21 -0
- package/dist/collaboration/index.d.ts.map +1 -0
- package/dist/collaboration/index.js +12 -0
- package/dist/collaboration/index.js.map +1 -0
- package/dist/collaboration/useBranchPresence.d.ts +54 -0
- package/dist/collaboration/useBranchPresence.d.ts.map +1 -0
- package/dist/collaboration/useBranchPresence.js +94 -0
- package/dist/collaboration/useBranchPresence.js.map +1 -0
- package/dist/collaboration/useFocusRegionReporting.d.ts +69 -0
- package/dist/collaboration/useFocusRegionReporting.d.ts.map +1 -0
- package/dist/collaboration/useFocusRegionReporting.js +199 -0
- package/dist/collaboration/useFocusRegionReporting.js.map +1 -0
- package/dist/collaboration/usePresence.d.ts +62 -0
- package/dist/collaboration/usePresence.d.ts.map +1 -0
- package/dist/collaboration/usePresence.js +105 -0
- package/dist/collaboration/usePresence.js.map +1 -0
- package/dist/collaboration/useSitePresence.d.ts +54 -0
- package/dist/collaboration/useSitePresence.d.ts.map +1 -0
- package/dist/collaboration/useSitePresence.js +94 -0
- package/dist/collaboration/useSitePresence.js.map +1 -0
- package/dist/collaboration/utils/avatarColor.d.ts +11 -0
- package/dist/collaboration/utils/avatarColor.d.ts.map +1 -0
- package/dist/collaboration/utils/avatarColor.js +42 -0
- package/dist/collaboration/utils/avatarColor.js.map +1 -0
- package/dist/collaboration/utils/focusHighlightConfig.d.ts +54 -0
- package/dist/collaboration/utils/focusHighlightConfig.d.ts.map +1 -0
- package/dist/collaboration/utils/focusHighlightConfig.js +98 -0
- package/dist/collaboration/utils/focusHighlightConfig.js.map +1 -0
- package/dist/collaboration/utils/focusRegionMap.d.ts +82 -0
- package/dist/collaboration/utils/focusRegionMap.d.ts.map +1 -0
- package/dist/collaboration/utils/focusRegionMap.js +188 -0
- package/dist/collaboration/utils/focusRegionMap.js.map +1 -0
- package/dist/core/FocusHighlightContext.d.ts +54 -0
- package/dist/core/FocusHighlightContext.d.ts.map +1 -0
- package/dist/core/FocusHighlightContext.js +46 -0
- package/dist/core/FocusHighlightContext.js.map +1 -0
- package/dist/core/NotificationContext.d.ts +63 -0
- package/dist/core/NotificationContext.d.ts.map +1 -0
- package/dist/core/NotificationContext.js +194 -0
- package/dist/core/NotificationContext.js.map +1 -0
- package/dist/core/P1PuckContext.d.ts +36 -0
- package/dist/core/P1PuckContext.d.ts.map +1 -0
- package/dist/core/P1PuckContext.js +44 -0
- package/dist/core/P1PuckContext.js.map +1 -0
- package/dist/core/PresenceContext.d.ts +70 -0
- package/dist/core/PresenceContext.d.ts.map +1 -0
- package/dist/core/PresenceContext.js +31 -0
- package/dist/core/PresenceContext.js.map +1 -0
- package/dist/core/config.d.ts +26 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +78 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/featureConfig.d.ts +56 -0
- package/dist/core/featureConfig.d.ts.map +1 -0
- package/dist/core/featureConfig.js +77 -0
- package/dist/core/featureConfig.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/plugin-types.d.ts +30 -0
- package/dist/core/plugin-types.d.ts.map +1 -0
- package/dist/core/plugin-types.js +2 -0
- package/dist/core/plugin-types.js.map +1 -0
- package/dist/core/types.d.ts +710 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils/debounce.d.ts +27 -0
- package/dist/core/utils/debounce.d.ts.map +1 -0
- package/dist/core/utils/debounce.js +77 -0
- package/dist/core/utils/debounce.js.map +1 -0
- package/dist/core/utils/retry.d.ts +57 -0
- package/dist/core/utils/retry.d.ts.map +1 -0
- package/dist/core/utils/retry.js +70 -0
- package/dist/core/utils/retry.js.map +1 -0
- package/dist/core/utils/throttle.d.ts +29 -0
- package/dist/core/utils/throttle.d.ts.map +1 -0
- package/dist/core/utils/throttle.js +66 -0
- package/dist/core/utils/throttle.js.map +1 -0
- package/dist/data/cross-reference-resolve.d.ts +6 -0
- package/dist/data/cross-reference-resolve.d.ts.map +1 -0
- package/dist/data/cross-reference-resolve.js +58 -0
- package/dist/data/cross-reference-resolve.js.map +1 -0
- package/dist/data/cross-reference.d.ts +32 -0
- package/dist/data/cross-reference.d.ts.map +1 -0
- package/dist/data/cross-reference.js +188 -0
- package/dist/data/cross-reference.js.map +1 -0
- package/dist/data/dal/index.d.ts +32 -0
- package/dist/data/dal/index.d.ts.map +1 -0
- package/dist/data/dal/index.js +72 -0
- package/dist/data/dal/index.js.map +1 -0
- package/dist/data/dal/init.d.ts +28 -0
- package/dist/data/dal/init.d.ts.map +1 -0
- package/dist/data/dal/init.js +76 -0
- package/dist/data/dal/init.js.map +1 -0
- package/dist/data/dal/p1-store.d.ts +52 -0
- package/dist/data/dal/p1-store.d.ts.map +1 -0
- package/dist/data/dal/p1-store.js +121 -0
- package/dist/data/dal/p1-store.js.map +1 -0
- package/dist/data/dal/request-auth.d.ts +3 -0
- package/dist/data/dal/request-auth.d.ts.map +1 -0
- package/dist/data/dal/request-auth.js +9 -0
- package/dist/data/dal/request-auth.js.map +1 -0
- package/dist/data/dal/types.d.ts +31 -0
- package/dist/data/dal/types.d.ts.map +1 -0
- package/dist/data/dal/types.js +2 -0
- package/dist/data/dal/types.js.map +1 -0
- package/dist/data/get-page.d.ts +5 -0
- package/dist/data/get-page.d.ts.map +1 -0
- package/dist/data/get-page.js +5 -0
- package/dist/data/get-page.js.map +1 -0
- package/dist/data/page-editor-meta.d.ts +16 -0
- package/dist/data/page-editor-meta.d.ts.map +1 -0
- package/dist/data/page-editor-meta.js +99 -0
- package/dist/data/page-editor-meta.js.map +1 -0
- package/dist/data/page-store.d.ts +65 -0
- package/dist/data/page-store.d.ts.map +1 -0
- package/dist/data/page-store.js +302 -0
- package/dist/data/page-store.js.map +1 -0
- package/dist/data/page-structure.d.ts +13 -0
- package/dist/data/page-structure.d.ts.map +1 -0
- package/dist/data/page-structure.js +95 -0
- package/dist/data/page-structure.js.map +1 -0
- package/dist/data/paths.d.ts +16 -0
- package/dist/data/paths.d.ts.map +1 -0
- package/dist/data/paths.js +36 -0
- package/dist/data/paths.js.map +1 -0
- package/dist/data/query-provider.d.ts +5 -0
- package/dist/data/query-provider.d.ts.map +1 -0
- package/dist/data/query-provider.js +16 -0
- package/dist/data/query-provider.js.map +1 -0
- package/dist/data/remote-datasources/fetch-http-json.d.ts +8 -0
- package/dist/data/remote-datasources/fetch-http-json.d.ts.map +1 -0
- package/dist/data/remote-datasources/fetch-http-json.js +89 -0
- package/dist/data/remote-datasources/fetch-http-json.js.map +1 -0
- package/dist/data/remote-datasources/index.d.ts +5 -0
- package/dist/data/remote-datasources/index.d.ts.map +1 -0
- package/dist/data/remote-datasources/index.js +3 -0
- package/dist/data/remote-datasources/index.js.map +1 -0
- package/dist/data/remote-datasources/loader.d.ts +44 -0
- package/dist/data/remote-datasources/loader.d.ts.map +1 -0
- package/dist/data/remote-datasources/loader.js +126 -0
- package/dist/data/remote-datasources/loader.js.map +1 -0
- package/dist/data/remote-datasources/remote-datasource-registry.d.ts +21 -0
- package/dist/data/remote-datasources/remote-datasource-registry.d.ts.map +1 -0
- package/dist/data/remote-datasources/remote-datasource-registry.js +15 -0
- package/dist/data/remote-datasources/remote-datasource-registry.js.map +1 -0
- package/dist/data/remote-datasources/user-remote-datasource-store.d.ts +14 -0
- package/dist/data/remote-datasources/user-remote-datasource-store.d.ts.map +1 -0
- package/dist/data/remote-datasources/user-remote-datasource-store.js +125 -0
- package/dist/data/remote-datasources/user-remote-datasource-store.js.map +1 -0
- package/dist/data/remote-datasources/user-remote-datasource-types.d.ts +15 -0
- package/dist/data/remote-datasources/user-remote-datasource-types.d.ts.map +1 -0
- package/dist/data/remote-datasources/user-remote-datasource-types.js +2 -0
- package/dist/data/remote-datasources/user-remote-datasource-types.js.map +1 -0
- package/dist/data/resolve-data-templates.d.ts +12 -0
- package/dist/data/resolve-data-templates.d.ts.map +1 -0
- package/dist/data/resolve-data-templates.js +286 -0
- package/dist/data/resolve-data-templates.js.map +1 -0
- package/dist/data/route-templates.d.ts +43 -0
- package/dist/data/route-templates.d.ts.map +1 -0
- package/dist/data/route-templates.js +146 -0
- package/dist/data/route-templates.js.map +1 -0
- package/dist/data/semantic-ops.d.ts +47 -0
- package/dist/data/semantic-ops.d.ts.map +1 -0
- package/dist/data/semantic-ops.js +335 -0
- package/dist/data/semantic-ops.js.map +1 -0
- package/dist/data/styles.d.ts +87 -0
- package/dist/data/styles.d.ts.map +1 -0
- package/dist/data/styles.js +87 -0
- package/dist/data/styles.js.map +1 -0
- package/dist/data/template-autocomplete.d.ts +22 -0
- package/dist/data/template-autocomplete.d.ts.map +1 -0
- package/dist/data/template-autocomplete.js +71 -0
- package/dist/data/template-autocomplete.js.map +1 -0
- package/dist/data/template-functions.d.ts +5 -0
- package/dist/data/template-functions.d.ts.map +1 -0
- package/dist/data/template-functions.js +90 -0
- package/dist/data/template-functions.js.map +1 -0
- package/dist/data/utils.d.ts +3 -0
- package/dist/data/utils.d.ts.map +1 -0
- package/dist/data/utils.js +11 -0
- package/dist/data/utils.js.map +1 -0
- package/dist/editor/P1App.d.ts +14 -0
- package/dist/editor/P1App.d.ts.map +1 -0
- package/dist/editor/P1App.js +138 -0
- package/dist/editor/P1App.js.map +1 -0
- package/dist/editor/P1PuckProvider.d.ts +69 -0
- package/dist/editor/P1PuckProvider.d.ts.map +1 -0
- package/dist/editor/P1PuckProvider.js +1473 -0
- package/dist/editor/P1PuckProvider.js.map +1 -0
- package/dist/editor/components/BranchSelector.d.ts +49 -0
- package/dist/editor/components/BranchSelector.d.ts.map +1 -0
- package/dist/editor/components/BranchSelector.js +55 -0
- package/dist/editor/components/BranchSelector.js.map +1 -0
- package/dist/editor/components/NotificationContainer.d.ts +41 -0
- package/dist/editor/components/NotificationContainer.d.ts.map +1 -0
- package/dist/editor/components/NotificationContainer.js +32 -0
- package/dist/editor/components/NotificationContainer.js.map +1 -0
- package/dist/editor/components/PublishButton.d.ts +52 -0
- package/dist/editor/components/PublishButton.d.ts.map +1 -0
- package/dist/editor/components/PublishButton.js +58 -0
- package/dist/editor/components/PublishButton.js.map +1 -0
- package/dist/editor/components/PublishedStatusBadge.d.ts +6 -0
- package/dist/editor/components/PublishedStatusBadge.d.ts.map +1 -0
- package/dist/editor/components/PublishedStatusBadge.js +25 -0
- package/dist/editor/components/PublishedStatusBadge.js.map +1 -0
- package/dist/editor/components/PuckDataCapture.d.ts +22 -0
- package/dist/editor/components/PuckDataCapture.d.ts.map +1 -0
- package/dist/editor/components/PuckDataCapture.js +30 -0
- package/dist/editor/components/PuckDataCapture.js.map +1 -0
- package/dist/editor/components/PuckDataSynchronizer.d.ts +49 -0
- package/dist/editor/components/PuckDataSynchronizer.d.ts.map +1 -0
- package/dist/editor/components/PuckDataSynchronizer.js +126 -0
- package/dist/editor/components/PuckDataSynchronizer.js.map +1 -0
- package/dist/editor/components/PuckSelectionTracker.d.ts +47 -0
- package/dist/editor/components/PuckSelectionTracker.d.ts.map +1 -0
- package/dist/editor/components/PuckSelectionTracker.js +93 -0
- package/dist/editor/components/PuckSelectionTracker.js.map +1 -0
- package/dist/editor/components/SaveIndicator.d.ts +77 -0
- package/dist/editor/components/SaveIndicator.d.ts.map +1 -0
- package/dist/editor/components/SaveIndicator.js +114 -0
- package/dist/editor/components/SaveIndicator.js.map +1 -0
- package/dist/editor/components/Toast.d.ts +40 -0
- package/dist/editor/components/Toast.d.ts.map +1 -0
- package/dist/editor/components/Toast.js +92 -0
- package/dist/editor/components/Toast.js.map +1 -0
- package/dist/editor/components/VersionBannerOverride.d.ts +10 -0
- package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -0
- package/dist/editor/components/VersionBannerOverride.js +22 -0
- package/dist/editor/components/VersionBannerOverride.js.map +1 -0
- package/dist/editor/components/connectable.d.ts +22 -0
- package/dist/editor/components/connectable.d.ts.map +1 -0
- package/dist/editor/components/connectable.js +84 -0
- package/dist/editor/components/connectable.js.map +1 -0
- package/dist/editor/components/merge-preview/MergePreviewPanel.d.ts +13 -0
- package/dist/editor/components/merge-preview/MergePreviewPanel.d.ts.map +1 -0
- package/dist/editor/components/merge-preview/MergePreviewPanel.js +32 -0
- package/dist/editor/components/merge-preview/MergePreviewPanel.js.map +1 -0
- package/dist/editor/components/merge-preview/MergePreviewRenderer.d.ts +58 -0
- package/dist/editor/components/merge-preview/MergePreviewRenderer.d.ts.map +1 -0
- package/dist/editor/components/merge-preview/MergePreviewRenderer.js +150 -0
- package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -0
- package/dist/editor/components/merge-preview/ScaledContent.d.ts +11 -0
- package/dist/editor/components/merge-preview/ScaledContent.d.ts.map +1 -0
- package/dist/editor/components/merge-preview/ScaledContent.js +31 -0
- package/dist/editor/components/merge-preview/ScaledContent.js.map +1 -0
- package/dist/editor/components/merge-preview/ViewModeSelector.d.ts +8 -0
- package/dist/editor/components/merge-preview/ViewModeSelector.d.ts.map +1 -0
- package/dist/editor/components/merge-preview/ViewModeSelector.js +11 -0
- package/dist/editor/components/merge-preview/ViewModeSelector.js.map +1 -0
- package/dist/editor/components/merge-preview/index.d.ts +12 -0
- package/dist/editor/components/merge-preview/index.d.ts.map +1 -0
- package/dist/editor/components/merge-preview/index.js +9 -0
- package/dist/editor/components/merge-preview/index.js.map +1 -0
- package/dist/editor/composePlugins.d.ts +10 -0
- package/dist/editor/composePlugins.d.ts.map +1 -0
- package/dist/editor/composePlugins.js +47 -0
- package/dist/editor/composePlugins.js.map +1 -0
- package/dist/editor/defaultPlugins.d.ts +3 -0
- package/dist/editor/defaultPlugins.d.ts.map +1 -0
- package/dist/editor/defaultPlugins.js +7 -0
- package/dist/editor/defaultPlugins.js.map +1 -0
- package/dist/editor/icons/GenericThumbnailIcon.d.ts +3 -0
- package/dist/editor/icons/GenericThumbnailIcon.d.ts.map +1 -0
- package/dist/editor/icons/GenericThumbnailIcon.js +5 -0
- package/dist/editor/icons/GenericThumbnailIcon.js.map +1 -0
- package/dist/editor/icons/GripHandleIcon.d.ts +3 -0
- package/dist/editor/icons/GripHandleIcon.d.ts.map +1 -0
- package/dist/editor/icons/GripHandleIcon.js +5 -0
- package/dist/editor/icons/GripHandleIcon.js.map +1 -0
- package/dist/editor/icons/MergePreviewIcon.d.ts +3 -0
- package/dist/editor/icons/MergePreviewIcon.d.ts.map +1 -0
- package/dist/editor/icons/MergePreviewIcon.js +5 -0
- package/dist/editor/icons/MergePreviewIcon.js.map +1 -0
- package/dist/editor/icons/WarningTriangleIcon.d.ts +3 -0
- package/dist/editor/icons/WarningTriangleIcon.d.ts.map +1 -0
- package/dist/editor/icons/WarningTriangleIcon.js +5 -0
- package/dist/editor/icons/WarningTriangleIcon.js.map +1 -0
- package/dist/editor/icons/index.d.ts +5 -0
- package/dist/editor/icons/index.d.ts.map +1 -0
- package/dist/editor/icons/index.js +5 -0
- package/dist/editor/icons/index.js.map +1 -0
- package/dist/editor/index.d.ts +43 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +30 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/plugin/P1Plugin.d.ts +161 -0
- package/dist/editor/plugin/P1Plugin.d.ts.map +1 -0
- package/dist/editor/plugin/P1Plugin.js +358 -0
- package/dist/editor/plugin/P1Plugin.js.map +1 -0
- package/dist/editor/plugin/createP1Overrides.d.ts +161 -0
- package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -0
- package/dist/editor/plugin/createP1Overrides.js +103 -0
- package/dist/editor/plugin/createP1Overrides.js.map +1 -0
- package/dist/editor/plugin/index.d.ts +13 -0
- package/dist/editor/plugin/index.d.ts.map +1 -0
- package/dist/editor/plugin/index.js +10 -0
- package/dist/editor/plugin/index.js.map +1 -0
- package/dist/editor/plugin/mergePreviewPlugin.d.ts +9 -0
- package/dist/editor/plugin/mergePreviewPlugin.d.ts.map +1 -0
- package/dist/editor/plugin/mergePreviewPlugin.js +26 -0
- package/dist/editor/plugin/mergePreviewPlugin.js.map +1 -0
- package/dist/editor/presets.d.ts +8 -0
- package/dist/editor/presets.d.ts.map +1 -0
- package/dist/editor/presets.js +24 -0
- package/dist/editor/presets.js.map +1 -0
- package/dist/editor/useAutoSave.d.ts +37 -0
- package/dist/editor/useAutoSave.d.ts.map +1 -0
- package/dist/editor/useAutoSave.js +118 -0
- package/dist/editor/useAutoSave.js.map +1 -0
- package/dist/editor/useBranches.d.ts +67 -0
- package/dist/editor/useBranches.d.ts.map +1 -0
- package/dist/editor/useBranches.js +78 -0
- package/dist/editor/useBranches.js.map +1 -0
- package/dist/editor/useComponentRegistry.d.ts +31 -0
- package/dist/editor/useComponentRegistry.d.ts.map +1 -0
- package/dist/editor/useComponentRegistry.js +237 -0
- package/dist/editor/useComponentRegistry.js.map +1 -0
- package/dist/editor/useDocuments.d.ts +66 -0
- package/dist/editor/useDocuments.d.ts.map +1 -0
- package/dist/editor/useDocuments.js +112 -0
- package/dist/editor/useDocuments.js.map +1 -0
- package/dist/editor/useMergePreview.d.ts +15 -0
- package/dist/editor/useMergePreview.d.ts.map +1 -0
- package/dist/editor/useMergePreview.js +56 -0
- package/dist/editor/useMergePreview.js.map +1 -0
- package/dist/editor/useP1Editor.d.ts +125 -0
- package/dist/editor/useP1Editor.d.ts.map +1 -0
- package/dist/editor/useP1Editor.js +339 -0
- package/dist/editor/useP1Editor.js.map +1 -0
- package/dist/editor/useP1Overrides.d.ts +52 -0
- package/dist/editor/useP1Overrides.d.ts.map +1 -0
- package/dist/editor/useP1Overrides.js +74 -0
- package/dist/editor/useP1Overrides.js.map +1 -0
- package/dist/editor/useP1Plugin.d.ts +95 -0
- package/dist/editor/useP1Plugin.d.ts.map +1 -0
- package/dist/editor/useP1Plugin.js +112 -0
- package/dist/editor/useP1Plugin.js.map +1 -0
- package/dist/editor/useRealtime.d.ts +148 -0
- package/dist/editor/useRealtime.d.ts.map +1 -0
- package/dist/editor/useRealtime.js +244 -0
- package/dist/editor/useRealtime.js.map +1 -0
- package/dist/editor/utils/buildThumbnailOverride.d.ts +28 -0
- package/dist/editor/utils/buildThumbnailOverride.d.ts.map +1 -0
- package/dist/editor/utils/buildThumbnailOverride.js +39 -0
- package/dist/editor/utils/buildThumbnailOverride.js.map +1 -0
- package/dist/editor/utils/componentRegistry.d.ts +141 -0
- package/dist/editor/utils/componentRegistry.d.ts.map +1 -0
- package/dist/editor/utils/componentRegistry.js +238 -0
- package/dist/editor/utils/componentRegistry.js.map +1 -0
- package/dist/editor/utils/createStablePluginArray.d.ts +27 -0
- package/dist/editor/utils/createStablePluginArray.d.ts.map +1 -0
- package/dist/editor/utils/createStablePluginArray.js +40 -0
- package/dist/editor/utils/createStablePluginArray.js.map +1 -0
- package/dist/editor/utils/path.d.ts +2 -0
- package/dist/editor/utils/path.d.ts.map +1 -0
- package/dist/editor/utils/path.js +20 -0
- package/dist/editor/utils/path.js.map +1 -0
- package/dist/editor/utils/puckYjsBinding.d.ts +66 -0
- package/dist/editor/utils/puckYjsBinding.d.ts.map +1 -0
- package/dist/editor/utils/puckYjsBinding.js +272 -0
- package/dist/editor/utils/puckYjsBinding.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.d.ts +35 -0
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.d.ts.map +1 -0
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js +59 -0
- package/dist/merge/components/conflict-notifications/ConflictNotificationToast.js.map +1 -0
- package/dist/merge/components/conflict-notifications/index.d.ts +10 -0
- package/dist/merge/components/conflict-notifications/index.d.ts.map +1 -0
- package/dist/merge/components/conflict-notifications/index.js +8 -0
- package/dist/merge/components/conflict-notifications/index.js.map +1 -0
- package/dist/merge/components/conflict-notifications/useConflictNotifications.d.ts +69 -0
- package/dist/merge/components/conflict-notifications/useConflictNotifications.d.ts.map +1 -0
- package/dist/merge/components/conflict-notifications/useConflictNotifications.js +151 -0
- package/dist/merge/components/conflict-notifications/useConflictNotifications.js.map +1 -0
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.d.ts +55 -0
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.d.ts.map +1 -0
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js +112 -0
- package/dist/merge/components/conflict-resolution/ComponentConflictGroup.js.map +1 -0
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.d.ts +51 -0
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.d.ts.map +1 -0
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js +75 -0
- package/dist/merge/components/conflict-resolution/PuckFieldResolutionPanel.js.map +1 -0
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.d.ts +37 -0
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.d.ts.map +1 -0
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js +42 -0
- package/dist/merge/components/conflict-resolution/RenderedResolutionPreview.js.map +1 -0
- package/dist/merge/components/conflict-resolution/index.d.ts +12 -0
- package/dist/merge/components/conflict-resolution/index.d.ts.map +1 -0
- package/dist/merge/components/conflict-resolution/index.js +9 -0
- package/dist/merge/components/conflict-resolution/index.js.map +1 -0
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.d.ts +44 -0
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +186 -0
- package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -0
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.d.ts +34 -0
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.js +141 -0
- package/dist/merge/components/merge-resolution/ComponentClickOverlay.js.map +1 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.d.ts +26 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js +167 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionDetail.js.map +1 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionList.d.ts +21 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionList.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionList.js +106 -0
- package/dist/merge/components/merge-resolution/DocumentResolutionList.js.map +1 -0
- package/dist/merge/components/merge-resolution/MergeResolutionPage.d.ts +15 -0
- package/dist/merge/components/merge-resolution/MergeResolutionPage.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/MergeResolutionPage.js +90 -0
- package/dist/merge/components/merge-resolution/MergeResolutionPage.js.map +1 -0
- package/dist/merge/components/merge-resolution/MergeResolutionToolbar.d.ts +26 -0
- package/dist/merge/components/merge-resolution/MergeResolutionToolbar.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/MergeResolutionToolbar.js +23 -0
- package/dist/merge/components/merge-resolution/MergeResolutionToolbar.js.map +1 -0
- package/dist/merge/components/merge-resolution/MergeReviewPage.d.ts +11 -0
- package/dist/merge/components/merge-resolution/MergeReviewPage.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/MergeReviewPage.js +26 -0
- package/dist/merge/components/merge-resolution/MergeReviewPage.js.map +1 -0
- package/dist/merge/components/merge-resolution/ResolutionStrategyPicker.d.ts +16 -0
- package/dist/merge/components/merge-resolution/ResolutionStrategyPicker.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/ResolutionStrategyPicker.js +15 -0
- package/dist/merge/components/merge-resolution/ResolutionStrategyPicker.js.map +1 -0
- package/dist/merge/components/merge-resolution/index.d.ts +20 -0
- package/dist/merge/components/merge-resolution/index.d.ts.map +1 -0
- package/dist/merge/components/merge-resolution/index.js +12 -0
- package/dist/merge/components/merge-resolution/index.js.map +1 -0
- package/dist/merge/index.d.ts +8 -0
- package/dist/merge/index.d.ts.map +1 -0
- package/dist/merge/index.js +6 -0
- package/dist/merge/index.js.map +1 -0
- package/dist/merge/useMergeResolution.d.ts +65 -0
- package/dist/merge/useMergeResolution.d.ts.map +1 -0
- package/dist/merge/useMergeResolution.js +444 -0
- package/dist/merge/useMergeResolution.js.map +1 -0
- package/dist/merge/utils/puckFieldClassifier.d.ts +151 -0
- package/dist/merge/utils/puckFieldClassifier.d.ts.map +1 -0
- package/dist/merge/utils/puckFieldClassifier.js +427 -0
- package/dist/merge/utils/puckFieldClassifier.js.map +1 -0
- package/dist/p1/editor/client.d.ts +17 -0
- package/dist/p1/editor/client.d.ts.map +1 -0
- package/dist/p1/editor/client.js +79 -0
- package/dist/p1/editor/client.js.map +1 -0
- package/dist/p1/editor/connect/connect-field-modal.d.ts +11 -0
- package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -0
- package/dist/p1/editor/connect/connect-field-modal.js +127 -0
- package/dist/p1/editor/connect/connect-field-modal.js.map +1 -0
- package/dist/p1/editor/connect/connect-preview-config.d.ts +7 -0
- package/dist/p1/editor/connect/connect-preview-config.d.ts.map +1 -0
- package/dist/p1/editor/connect/connect-preview-config.js +76 -0
- package/dist/p1/editor/connect/connect-preview-config.js.map +1 -0
- package/dist/p1/editor/connect/field-connect-plugin.d.ts +10 -0
- package/dist/p1/editor/connect/field-connect-plugin.d.ts.map +1 -0
- package/dist/p1/editor/connect/field-connect-plugin.js +46 -0
- package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -0
- package/dist/p1/editor/editor-preview-resolve.d.ts +11 -0
- package/dist/p1/editor/editor-preview-resolve.d.ts.map +1 -0
- package/dist/p1/editor/editor-preview-resolve.js +115 -0
- package/dist/p1/editor/editor-preview-resolve.js.map +1 -0
- package/dist/p1/editor/hooks.d.ts +42 -0
- package/dist/p1/editor/hooks.d.ts.map +1 -0
- package/dist/p1/editor/hooks.js +219 -0
- package/dist/p1/editor/hooks.js.map +1 -0
- package/dist/p1/editor/icons/button-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/button-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/button-block-icon.js +5 -0
- package/dist/p1/editor/icons/button-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/default-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/default-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/default-block-icon.js +5 -0
- package/dist/p1/editor/icons/default-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/divider-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/divider-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/divider-block-icon.js +5 -0
- package/dist/p1/editor/icons/divider-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/grid-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/grid-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/grid-block-icon.js +5 -0
- package/dist/p1/editor/icons/grid-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/heading-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/heading-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/heading-block-icon.js +5 -0
- package/dist/p1/editor/icons/heading-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/image-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/image-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/image-block-icon.js +5 -0
- package/dist/p1/editor/icons/image-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/list-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/list-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/list-block-icon.js +5 -0
- package/dist/p1/editor/icons/list-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/paragraph-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/paragraph-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/paragraph-block-icon.js +5 -0
- package/dist/p1/editor/icons/paragraph-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/quote-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/quote-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/quote-block-icon.js +5 -0
- package/dist/p1/editor/icons/quote-block-icon.js.map +1 -0
- package/dist/p1/editor/icons/spacer-block-icon.d.ts +2 -0
- package/dist/p1/editor/icons/spacer-block-icon.d.ts.map +1 -0
- package/dist/p1/editor/icons/spacer-block-icon.js +5 -0
- package/dist/p1/editor/icons/spacer-block-icon.js.map +1 -0
- package/dist/p1/editor/index.d.ts +9 -0
- package/dist/p1/editor/index.d.ts.map +1 -0
- package/dist/p1/editor/index.js +9 -0
- package/dist/p1/editor/index.js.map +1 -0
- package/dist/p1/editor/json-tree.d.ts +6 -0
- package/dist/p1/editor/json-tree.d.ts.map +1 -0
- package/dist/p1/editor/json-tree.js +64 -0
- package/dist/p1/editor/json-tree.js.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts +11 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +62 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts +23 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.d.ts.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.js +39 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-form-helpers.js.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts +4 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.d.ts.map +1 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.js +72 -0
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.js.map +1 -0
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts +6 -0
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.d.ts.map +1 -0
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js +67 -0
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js.map +1 -0
- package/dist/p1/editor/template-autocomplete-layer.d.ts +11 -0
- package/dist/p1/editor/template-autocomplete-layer.d.ts.map +1 -0
- package/dist/p1/editor/template-autocomplete-layer.js +386 -0
- package/dist/p1/editor/template-autocomplete-layer.js.map +1 -0
- package/dist/p1/pages/add-override-for-template.d.ts +4 -0
- package/dist/p1/pages/add-override-for-template.d.ts.map +1 -0
- package/dist/p1/pages/add-override-for-template.js +47 -0
- package/dist/p1/pages/add-override-for-template.js.map +1 -0
- package/dist/p1/pages/create-page-form.d.ts +2 -0
- package/dist/p1/pages/create-page-form.d.ts.map +1 -0
- package/dist/p1/pages/create-page-form.js +28 -0
- package/dist/p1/pages/create-page-form.js.map +1 -0
- package/dist/p1/pages/create-template-form.d.ts +2 -0
- package/dist/p1/pages/create-template-form.d.ts.map +1 -0
- package/dist/p1/pages/create-template-form.js +36 -0
- package/dist/p1/pages/create-template-form.js.map +1 -0
- package/dist/p1/pages/delete-row-button.d.ts +7 -0
- package/dist/p1/pages/delete-row-button.d.ts.map +1 -0
- package/dist/p1/pages/delete-row-button.js +23 -0
- package/dist/p1/pages/delete-row-button.js.map +1 -0
- package/dist/p1/pages/hooks.d.ts +5 -0
- package/dist/p1/pages/hooks.d.ts.map +1 -0
- package/dist/p1/pages/hooks.js +55 -0
- package/dist/p1/pages/hooks.js.map +1 -0
- package/dist/p1/pages/index.d.ts +7 -0
- package/dist/p1/pages/index.d.ts.map +1 -0
- package/dist/p1/pages/index.js +7 -0
- package/dist/p1/pages/index.js.map +1 -0
- package/dist/p1/pages/render-client.d.ts +6 -0
- package/dist/p1/pages/render-client.d.ts.map +1 -0
- package/dist/p1/pages/render-client.js +7 -0
- package/dist/p1/pages/render-client.js.map +1 -0
- package/dist/p1/pages/structure-page.d.ts +2 -0
- package/dist/p1/pages/structure-page.d.ts.map +1 -0
- package/dist/p1/pages/structure-page.js +46 -0
- package/dist/p1/pages/structure-page.js.map +1 -0
- package/dist/p1/router-context.d.ts +11 -0
- package/dist/p1/router-context.d.ts.map +1 -0
- package/dist/p1/router-context.js +11 -0
- package/dist/p1/router-context.js.map +1 -0
- package/dist/pds/components/AgentChip.d.ts +26 -0
- package/dist/pds/components/AgentChip.d.ts.map +1 -0
- package/dist/pds/components/AgentChip.js +15 -0
- package/dist/pds/components/AgentChip.js.map +1 -0
- package/dist/pds/components/AgentChip.module.css +141 -0
- package/dist/pds/components/DocStateBadge.d.ts +7 -0
- package/dist/pds/components/DocStateBadge.d.ts.map +1 -0
- package/dist/pds/components/DocStateBadge.js +24 -0
- package/dist/pds/components/DocStateBadge.js.map +1 -0
- package/dist/pds/components/NavIcon.d.ts +7 -0
- package/dist/pds/components/NavIcon.d.ts.map +1 -0
- package/dist/pds/components/NavIcon.js +6 -0
- package/dist/pds/components/NavIcon.js.map +1 -0
- package/dist/pds/components/P1EditorHeader.d.ts +41 -0
- package/dist/pds/components/P1EditorHeader.d.ts.map +1 -0
- package/dist/pds/components/P1EditorHeader.js +138 -0
- package/dist/pds/components/P1EditorHeader.js.map +1 -0
- package/dist/pds/components/P1EditorHeader.module.css +253 -0
- package/dist/pds/components/P1EditorSubheader.d.ts +42 -0
- package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -0
- package/dist/pds/components/P1EditorSubheader.js +27 -0
- package/dist/pds/components/P1EditorSubheader.js.map +1 -0
- package/dist/pds/components/P1EditorSubheader.module.css +81 -0
- package/dist/pds/components/PageNavigator.d.ts +38 -0
- package/dist/pds/components/PageNavigator.d.ts.map +1 -0
- package/dist/pds/components/PageNavigator.js +60 -0
- package/dist/pds/components/PageNavigator.js.map +1 -0
- package/dist/pds/components/PageNavigator.module.css +276 -0
- package/dist/pds/components/PresenceStack.d.ts +17 -0
- package/dist/pds/components/PresenceStack.d.ts.map +1 -0
- package/dist/pds/components/PresenceStack.js +14 -0
- package/dist/pds/components/PresenceStack.js.map +1 -0
- package/dist/pds/components/PresenceStack.module.css +48 -0
- package/dist/pds/components/PublishControl.d.ts +15 -0
- package/dist/pds/components/PublishControl.d.ts.map +1 -0
- package/dist/pds/components/PublishControl.js +46 -0
- package/dist/pds/components/PublishControl.js.map +1 -0
- package/dist/pds/components/PublishControl.module.css +36 -0
- package/dist/pds/components/WorkstreamSwitcher.d.ts +26 -0
- package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -0
- package/dist/pds/components/WorkstreamSwitcher.js +134 -0
- package/dist/pds/components/WorkstreamSwitcher.js.map +1 -0
- package/dist/pds/components/WorkstreamSwitcher.module.css +320 -0
- package/dist/pds/index.d.ts +33 -0
- package/dist/pds/index.d.ts.map +1 -0
- package/dist/pds/index.js +46 -0
- package/dist/pds/index.js.map +1 -0
- package/dist/pds/theme/pds-core-content.d.ts +2 -0
- package/dist/pds/theme/pds-core-content.d.ts.map +1 -0
- package/dist/pds/theme/pds-core-content.js +8 -0
- package/dist/pds/theme/pds-core-content.js.map +1 -0
- package/dist/pds/types.d.ts +7 -0
- package/dist/pds/types.d.ts.map +1 -0
- package/dist/pds/types.js +2 -0
- package/dist/pds/types.js.map +1 -0
- package/dist/pds/utils/deriveDocState.d.ts +8 -0
- package/dist/pds/utils/deriveDocState.d.ts.map +1 -0
- package/dist/pds/utils/deriveDocState.js +14 -0
- package/dist/pds/utils/deriveDocState.js.map +1 -0
- package/dist/server.d.ts +23 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +24 -0
- package/dist/server.js.map +1 -0
- package/dist/versioning/components/HistoricalVersionBanner.d.ts +28 -0
- package/dist/versioning/components/HistoricalVersionBanner.d.ts.map +1 -0
- package/dist/versioning/components/HistoricalVersionBanner.js +23 -0
- package/dist/versioning/components/HistoricalVersionBanner.js.map +1 -0
- package/dist/versioning/components/VersionPublishedBadge.d.ts +5 -0
- package/dist/versioning/components/VersionPublishedBadge.d.ts.map +1 -0
- package/dist/versioning/components/VersionPublishedBadge.js +8 -0
- package/dist/versioning/components/VersionPublishedBadge.js.map +1 -0
- package/dist/versioning/components/version-compare/BranchDiffHeader.d.ts +53 -0
- package/dist/versioning/components/version-compare/BranchDiffHeader.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/BranchDiffHeader.js +15 -0
- package/dist/versioning/components/version-compare/BranchDiffHeader.js.map +1 -0
- package/dist/versioning/components/version-compare/BranchMergeCompare.d.ts +43 -0
- package/dist/versioning/components/version-compare/BranchMergeCompare.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/BranchMergeCompare.js +70 -0
- package/dist/versioning/components/version-compare/BranchMergeCompare.js.map +1 -0
- package/dist/versioning/components/version-compare/ComponentNode.d.ts +34 -0
- package/dist/versioning/components/version-compare/ComponentNode.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/ComponentNode.js +40 -0
- package/dist/versioning/components/version-compare/ComponentNode.js.map +1 -0
- package/dist/versioning/components/version-compare/ComponentTree.d.ts +34 -0
- package/dist/versioning/components/version-compare/ComponentTree.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/ComponentTree.js +35 -0
- package/dist/versioning/components/version-compare/ComponentTree.js.map +1 -0
- package/dist/versioning/components/version-compare/DiffHeader.d.ts +45 -0
- package/dist/versioning/components/version-compare/DiffHeader.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/DiffHeader.js +11 -0
- package/dist/versioning/components/version-compare/DiffHeader.js.map +1 -0
- package/dist/versioning/components/version-compare/DocumentDiffList.d.ts +39 -0
- package/dist/versioning/components/version-compare/DocumentDiffList.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/DocumentDiffList.js +32 -0
- package/dist/versioning/components/version-compare/DocumentDiffList.js.map +1 -0
- package/dist/versioning/components/version-compare/PropDiffPanel.d.ts +30 -0
- package/dist/versioning/components/version-compare/PropDiffPanel.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/PropDiffPanel.js +34 -0
- package/dist/versioning/components/version-compare/PropDiffPanel.js.map +1 -0
- package/dist/versioning/components/version-compare/PropDiffRow.d.ts +22 -0
- package/dist/versioning/components/version-compare/PropDiffRow.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/PropDiffRow.js +12 -0
- package/dist/versioning/components/version-compare/PropDiffRow.js.map +1 -0
- package/dist/versioning/components/version-compare/PropValueDisplay.d.ts +36 -0
- package/dist/versioning/components/version-compare/PropValueDisplay.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/PropValueDisplay.js +79 -0
- package/dist/versioning/components/version-compare/PropValueDisplay.js.map +1 -0
- package/dist/versioning/components/version-compare/VersionComparePage.d.ts +34 -0
- package/dist/versioning/components/version-compare/VersionComparePage.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/VersionComparePage.js +61 -0
- package/dist/versioning/components/version-compare/VersionComparePage.js.map +1 -0
- package/dist/versioning/components/version-compare/VisualBranchCompare.d.ts +41 -0
- package/dist/versioning/components/version-compare/VisualBranchCompare.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/VisualBranchCompare.js +84 -0
- package/dist/versioning/components/version-compare/VisualBranchCompare.js.map +1 -0
- package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts +67 -0
- package/dist/versioning/components/version-compare/VisualVersionCompare.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/VisualVersionCompare.js +84 -0
- package/dist/versioning/components/version-compare/VisualVersionCompare.js.map +1 -0
- package/dist/versioning/components/version-compare/index.d.ts +30 -0
- package/dist/versioning/components/version-compare/index.d.ts.map +1 -0
- package/dist/versioning/components/version-compare/index.js +18 -0
- package/dist/versioning/components/version-compare/index.js.map +1 -0
- package/dist/versioning/components/version-history/AgentCheckpointBadge.d.ts +22 -0
- package/dist/versioning/components/version-history/AgentCheckpointBadge.d.ts.map +1 -0
- package/dist/versioning/components/version-history/AgentCheckpointBadge.js +55 -0
- package/dist/versioning/components/version-history/AgentCheckpointBadge.js.map +1 -0
- package/dist/versioning/components/version-history/VersionItem.d.ts +30 -0
- package/dist/versioning/components/version-history/VersionItem.d.ts.map +1 -0
- package/dist/versioning/components/version-history/VersionItem.js +39 -0
- package/dist/versioning/components/version-history/VersionItem.js.map +1 -0
- package/dist/versioning/components/version-history/index.d.ts +10 -0
- package/dist/versioning/components/version-history/index.d.ts.map +1 -0
- package/dist/versioning/components/version-history/index.js +8 -0
- package/dist/versioning/components/version-history/index.js.map +1 -0
- package/dist/versioning/index.d.ts +17 -0
- package/dist/versioning/index.d.ts.map +1 -0
- package/dist/versioning/index.js +10 -0
- package/dist/versioning/index.js.map +1 -0
- package/dist/versioning/useCheckpoints.d.ts +66 -0
- package/dist/versioning/useCheckpoints.d.ts.map +1 -0
- package/dist/versioning/useCheckpoints.js +100 -0
- package/dist/versioning/useCheckpoints.js.map +1 -0
- package/dist/versioning/useVersions.d.ts +81 -0
- package/dist/versioning/useVersions.d.ts.map +1 -0
- package/dist/versioning/useVersions.js +110 -0
- package/dist/versioning/useVersions.js.map +1 -0
- package/dist/versioning/utils/branchDiff.d.ts +136 -0
- package/dist/versioning/utils/branchDiff.d.ts.map +1 -0
- package/dist/versioning/utils/branchDiff.js +172 -0
- package/dist/versioning/utils/branchDiff.js.map +1 -0
- package/dist/versioning/utils/diff.d.ts +63 -0
- package/dist/versioning/utils/diff.d.ts.map +1 -0
- package/dist/versioning/utils/diff.js +318 -0
- package/dist/versioning/utils/diff.js.map +1 -0
- package/dist/versioning/utils/highlightConfig.d.ts +41 -0
- package/dist/versioning/utils/highlightConfig.d.ts.map +1 -0
- package/dist/versioning/utils/highlightConfig.js +130 -0
- package/dist/versioning/utils/highlightConfig.js.map +1 -0
- package/package.json +113 -0
- package/src/pds/theme/PuckEditorTheme.css +277 -0
- package/src/pds/theme/PuckEditorTheme.test.ts +136 -0
- package/src/pds/theme/pds-core-content.ts +7 -0
- package/src/pds/theme/pds-core.css +2 -0
- package/src/styles.css +2366 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useBranchPresence Hook
|
|
3
|
+
*
|
|
4
|
+
* Provides branch-level presence aggregation with polling.
|
|
5
|
+
*/
|
|
6
|
+
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
7
|
+
import { usePresenceContext } from '../core/PresenceContext.js';
|
|
8
|
+
/**
|
|
9
|
+
* Hook for consuming branch-level presence data.
|
|
10
|
+
*
|
|
11
|
+
* @param options - Configuration options
|
|
12
|
+
* @returns Branch presence state and operations
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* function BranchCollaborators() {
|
|
17
|
+
* const { presence, activeDocuments, totalActors } = useBranchPresence();
|
|
18
|
+
*
|
|
19
|
+
* return (
|
|
20
|
+
* <div>
|
|
21
|
+
* <span>{totalActors} collaborators on this branch</span>
|
|
22
|
+
* {activeDocuments.map(doc => (
|
|
23
|
+
* <DocumentBadge key={doc.documentId} path={doc.documentPath} />
|
|
24
|
+
* ))}
|
|
25
|
+
* </div>
|
|
26
|
+
* );
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function useBranchPresence(options = {}) {
|
|
31
|
+
const { pollingInterval = 10000 } = options;
|
|
32
|
+
const { client, siteId, branchId } = usePresenceContext();
|
|
33
|
+
const [presence, setPresence] = useState(null);
|
|
34
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
35
|
+
const [error, setError] = useState(null);
|
|
36
|
+
// Track mounted state to avoid state updates after unmount
|
|
37
|
+
const mountedRef = useRef(true);
|
|
38
|
+
// Ref for fetchPresence to avoid restarting polling interval
|
|
39
|
+
const fetchPresenceRef = useRef(async () => { });
|
|
40
|
+
// Fetch presence data
|
|
41
|
+
const fetchPresence = useCallback(async () => {
|
|
42
|
+
try {
|
|
43
|
+
const branchPresence = await client.presence.getBranchPresence(siteId, branchId);
|
|
44
|
+
if (!mountedRef.current)
|
|
45
|
+
return;
|
|
46
|
+
setPresence(branchPresence);
|
|
47
|
+
setError(null);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (!mountedRef.current)
|
|
51
|
+
return;
|
|
52
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
if (mountedRef.current) {
|
|
56
|
+
setIsLoading(false);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}, [client, siteId, branchId]);
|
|
60
|
+
// Keep ref in sync with callback
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
fetchPresenceRef.current = fetchPresence;
|
|
63
|
+
}, [fetchPresence]);
|
|
64
|
+
// Manual refresh function
|
|
65
|
+
const refresh = useCallback(async () => {
|
|
66
|
+
await fetchPresence();
|
|
67
|
+
}, [fetchPresence]);
|
|
68
|
+
// Initial fetch and polling
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
mountedRef.current = true;
|
|
71
|
+
// Initial fetch
|
|
72
|
+
void fetchPresenceRef.current();
|
|
73
|
+
// Set up polling - use ref to avoid restarting interval when callback changes
|
|
74
|
+
const intervalId = setInterval(() => {
|
|
75
|
+
void fetchPresenceRef.current();
|
|
76
|
+
}, pollingInterval);
|
|
77
|
+
return () => {
|
|
78
|
+
mountedRef.current = false;
|
|
79
|
+
clearInterval(intervalId);
|
|
80
|
+
};
|
|
81
|
+
}, [pollingInterval]);
|
|
82
|
+
// Derived values
|
|
83
|
+
const activeDocuments = presence?.documentSummary ?? [];
|
|
84
|
+
const totalActors = presence?.summary.totalActors ?? 0;
|
|
85
|
+
return {
|
|
86
|
+
presence,
|
|
87
|
+
activeDocuments,
|
|
88
|
+
totalActors,
|
|
89
|
+
isLoading,
|
|
90
|
+
error,
|
|
91
|
+
refresh,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=useBranchPresence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBranchPresence.js","sourceRoot":"","sources":["../../src/collaboration/useBranchPresence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useFocusRegionReporting Hook
|
|
3
|
+
*
|
|
4
|
+
* Manages debounced reporting of focus regions to the backend.
|
|
5
|
+
* Used to inform the server which components a human has selected in the editor,
|
|
6
|
+
* enabling proactive collision detection before actual edits occur.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Options for the useFocusRegionReporting hook.
|
|
10
|
+
*/
|
|
11
|
+
export interface UseFocusRegionReportingOptions {
|
|
12
|
+
/** Whether focus reporting is enabled (default: true) */
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
/** Debounce delay in ms before sending to server (default: 300) */
|
|
15
|
+
debounceMs?: number;
|
|
16
|
+
/** Heartbeat interval in ms to keep focus alive (default: 15000) */
|
|
17
|
+
heartbeatMs?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Optional function to send focus regions via WebSocket.
|
|
20
|
+
* When provided and returns true, HTTP fallback is skipped.
|
|
21
|
+
* When returns false or not provided, falls back to HTTP.
|
|
22
|
+
* @param regions - Focus regions to send
|
|
23
|
+
* @returns true if sent successfully via WebSocket, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
sendViaWebSocket?: (regions: string[]) => boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Return value for the useFocusRegionReporting hook.
|
|
29
|
+
*/
|
|
30
|
+
export interface UseFocusRegionReportingReturn {
|
|
31
|
+
/** Current focus regions (local state) */
|
|
32
|
+
focusRegions: string[];
|
|
33
|
+
/** Set the focus regions - triggers debounced report to server */
|
|
34
|
+
setFocusRegions: (regions: string[]) => void;
|
|
35
|
+
/** Clear all focus regions */
|
|
36
|
+
clearFocus: () => void;
|
|
37
|
+
/** Whether a report is currently in flight */
|
|
38
|
+
isReporting: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Hook for reporting focus regions to the backend.
|
|
42
|
+
*
|
|
43
|
+
* Manages debounced updates, heartbeat keep-alive, and cleanup on unmount.
|
|
44
|
+
* Focus regions tell the server which components the user has selected,
|
|
45
|
+
* allowing agents to avoid editing those regions proactively.
|
|
46
|
+
*
|
|
47
|
+
* @param options - Configuration options
|
|
48
|
+
* @returns Focus state and operations
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* function SelectionReporter() {
|
|
53
|
+
* const { setFocusRegions, clearFocus } = useFocusRegionReporting();
|
|
54
|
+
*
|
|
55
|
+
* // When Puck selection changes
|
|
56
|
+
* useEffect(() => {
|
|
57
|
+
* if (selectedItem) {
|
|
58
|
+
* setFocusRegions([`/content/${selectedItem.index}`]);
|
|
59
|
+
* } else {
|
|
60
|
+
* clearFocus();
|
|
61
|
+
* }
|
|
62
|
+
* }, [selectedItem, setFocusRegions, clearFocus]);
|
|
63
|
+
*
|
|
64
|
+
* return null;
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function useFocusRegionReporting(options?: UseFocusRegionReportingOptions): UseFocusRegionReportingReturn;
|
|
69
|
+
//# sourceMappingURL=useFocusRegionReporting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusRegionReporting.d.ts","sourceRoot":"","sources":["../../src/collaboration/useFocusRegionReporting.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kEAAkE;IAClE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,8BAA8B;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,6BAA6B,CAiM/B"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useFocusRegionReporting Hook
|
|
3
|
+
*
|
|
4
|
+
* Manages debounced reporting of focus regions to the backend.
|
|
5
|
+
* Used to inform the server which components a human has selected in the editor,
|
|
6
|
+
* enabling proactive collision detection before actual edits occur.
|
|
7
|
+
*/
|
|
8
|
+
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
9
|
+
import { usePresenceContext } from '../core/PresenceContext.js';
|
|
10
|
+
/**
|
|
11
|
+
* Hook for reporting focus regions to the backend.
|
|
12
|
+
*
|
|
13
|
+
* Manages debounced updates, heartbeat keep-alive, and cleanup on unmount.
|
|
14
|
+
* Focus regions tell the server which components the user has selected,
|
|
15
|
+
* allowing agents to avoid editing those regions proactively.
|
|
16
|
+
*
|
|
17
|
+
* @param options - Configuration options
|
|
18
|
+
* @returns Focus state and operations
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* function SelectionReporter() {
|
|
23
|
+
* const { setFocusRegions, clearFocus } = useFocusRegionReporting();
|
|
24
|
+
*
|
|
25
|
+
* // When Puck selection changes
|
|
26
|
+
* useEffect(() => {
|
|
27
|
+
* if (selectedItem) {
|
|
28
|
+
* setFocusRegions([`/content/${selectedItem.index}`]);
|
|
29
|
+
* } else {
|
|
30
|
+
* clearFocus();
|
|
31
|
+
* }
|
|
32
|
+
* }, [selectedItem, setFocusRegions, clearFocus]);
|
|
33
|
+
*
|
|
34
|
+
* return null;
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function useFocusRegionReporting(options = {}) {
|
|
39
|
+
const { enabled = true, debounceMs = 300, heartbeatMs = 15000, sendViaWebSocket } = options;
|
|
40
|
+
const { client, siteId, branchId, documentPath, userId } = usePresenceContext();
|
|
41
|
+
// Ref for sendViaWebSocket to avoid callback recreation
|
|
42
|
+
const sendViaWebSocketRef = useRef(sendViaWebSocket);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
sendViaWebSocketRef.current = sendViaWebSocket;
|
|
45
|
+
}, [sendViaWebSocket]);
|
|
46
|
+
// Local state
|
|
47
|
+
const [focusRegions, setFocusRegionsState] = useState([]);
|
|
48
|
+
const [isReporting, setIsReporting] = useState(false);
|
|
49
|
+
// Refs for managing timers and cleanup
|
|
50
|
+
const debounceTimerRef = useRef(null);
|
|
51
|
+
const heartbeatTimerRef = useRef(null);
|
|
52
|
+
const mountedRef = useRef(true);
|
|
53
|
+
const lastReportedRef = useRef(null);
|
|
54
|
+
const focusRegionsRef = useRef([]);
|
|
55
|
+
// Keep ref in sync with state
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
focusRegionsRef.current = focusRegions;
|
|
58
|
+
}, [focusRegions]);
|
|
59
|
+
// Ref for reportFocusRegions to avoid restarting heartbeat interval
|
|
60
|
+
const reportFocusRegionsRef = useRef(async () => { });
|
|
61
|
+
/**
|
|
62
|
+
* Send focus regions to the server.
|
|
63
|
+
* Tries WebSocket first if available, falls back to HTTP.
|
|
64
|
+
*/
|
|
65
|
+
const reportFocusRegions = useCallback(async (regions) => {
|
|
66
|
+
// Deduplicate - don't report if regions haven't changed
|
|
67
|
+
const serialized = JSON.stringify(regions);
|
|
68
|
+
if (serialized === lastReportedRef.current) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Skip if disabled, unmounted, or no document path
|
|
72
|
+
if (!enabled || !mountedRef.current || !documentPath) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
// Try WebSocket first if available, fall back to HTTP
|
|
76
|
+
if (sendViaWebSocketRef.current?.(regions)) {
|
|
77
|
+
lastReportedRef.current = serialized;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// Fall back to HTTP
|
|
81
|
+
try {
|
|
82
|
+
setIsReporting(true);
|
|
83
|
+
await client.presence.updateFocusRegions(siteId, branchId, documentPath, userId, regions);
|
|
84
|
+
lastReportedRef.current = serialized;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Silently handle errors - focus reporting is not critical
|
|
88
|
+
// Log for debugging if needed
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
if (mountedRef.current) {
|
|
92
|
+
setIsReporting(false);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}, [client, siteId, branchId, documentPath, userId, enabled]);
|
|
96
|
+
// Keep ref in sync with callback
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
reportFocusRegionsRef.current = reportFocusRegions;
|
|
99
|
+
}, [reportFocusRegions]);
|
|
100
|
+
/**
|
|
101
|
+
* Set focus regions with debouncing.
|
|
102
|
+
*/
|
|
103
|
+
const setFocusRegions = useCallback((regions) => {
|
|
104
|
+
// Update local state immediately
|
|
105
|
+
setFocusRegionsState(regions);
|
|
106
|
+
if (!enabled) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// Cancel any pending debounced call
|
|
110
|
+
if (debounceTimerRef.current) {
|
|
111
|
+
clearTimeout(debounceTimerRef.current);
|
|
112
|
+
}
|
|
113
|
+
// Schedule debounced report
|
|
114
|
+
debounceTimerRef.current = setTimeout(() => {
|
|
115
|
+
void reportFocusRegions(regions);
|
|
116
|
+
}, debounceMs);
|
|
117
|
+
}, [enabled, debounceMs, reportFocusRegions]);
|
|
118
|
+
/**
|
|
119
|
+
* Clear focus regions.
|
|
120
|
+
*/
|
|
121
|
+
const clearFocus = useCallback(() => {
|
|
122
|
+
setFocusRegionsState([]);
|
|
123
|
+
if (!enabled) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// Cancel any pending debounced call
|
|
127
|
+
if (debounceTimerRef.current) {
|
|
128
|
+
clearTimeout(debounceTimerRef.current);
|
|
129
|
+
}
|
|
130
|
+
// Schedule debounced report
|
|
131
|
+
debounceTimerRef.current = setTimeout(() => {
|
|
132
|
+
void reportFocusRegions([]);
|
|
133
|
+
}, debounceMs);
|
|
134
|
+
}, [enabled, debounceMs, reportFocusRegions]);
|
|
135
|
+
// Heartbeat to keep focus alive
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (!enabled) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
heartbeatTimerRef.current = setInterval(() => {
|
|
141
|
+
// Only send heartbeat if we have focus regions
|
|
142
|
+
if (focusRegionsRef.current.length > 0) {
|
|
143
|
+
// Reset lastReported to force the heartbeat through
|
|
144
|
+
const serialized = JSON.stringify(focusRegionsRef.current);
|
|
145
|
+
if (lastReportedRef.current === serialized) {
|
|
146
|
+
// Same regions - force through by clearing last reported temporarily
|
|
147
|
+
lastReportedRef.current = null;
|
|
148
|
+
}
|
|
149
|
+
void reportFocusRegionsRef.current(focusRegionsRef.current);
|
|
150
|
+
}
|
|
151
|
+
}, heartbeatMs);
|
|
152
|
+
return () => {
|
|
153
|
+
if (heartbeatTimerRef.current) {
|
|
154
|
+
clearInterval(heartbeatTimerRef.current);
|
|
155
|
+
heartbeatTimerRef.current = null;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}, [enabled, heartbeatMs]);
|
|
159
|
+
// Cleanup on unmount
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
mountedRef.current = true;
|
|
162
|
+
return () => {
|
|
163
|
+
mountedRef.current = false;
|
|
164
|
+
// Cancel pending debounced call
|
|
165
|
+
if (debounceTimerRef.current) {
|
|
166
|
+
clearTimeout(debounceTimerRef.current);
|
|
167
|
+
debounceTimerRef.current = null;
|
|
168
|
+
}
|
|
169
|
+
// Cancel heartbeat
|
|
170
|
+
if (heartbeatTimerRef.current) {
|
|
171
|
+
clearInterval(heartbeatTimerRef.current);
|
|
172
|
+
heartbeatTimerRef.current = null;
|
|
173
|
+
}
|
|
174
|
+
// Send final clear (fire-and-forget)
|
|
175
|
+
// Only if we have a document path to clear
|
|
176
|
+
if (enabled && documentPath) {
|
|
177
|
+
// Reset lastReported to ensure the clear goes through
|
|
178
|
+
lastReportedRef.current = null;
|
|
179
|
+
// Try WebSocket first if available
|
|
180
|
+
if (sendViaWebSocketRef.current?.([])) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
// Fall back to HTTP
|
|
184
|
+
void client.presence
|
|
185
|
+
.updateFocusRegions(siteId, branchId, documentPath, userId, [])
|
|
186
|
+
.catch(() => {
|
|
187
|
+
// Ignore errors on unmount
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
}, [client, siteId, branchId, documentPath, userId, enabled]);
|
|
192
|
+
return {
|
|
193
|
+
focusRegions,
|
|
194
|
+
setFocusRegions,
|
|
195
|
+
clearFocus,
|
|
196
|
+
isReporting,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=useFocusRegionReporting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusRegionReporting.js","sourceRoot":"","sources":["../../src/collaboration/useFocusRegionReporting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* usePresence Hook
|
|
3
|
+
*
|
|
4
|
+
* Provides document-level presence information with polling.
|
|
5
|
+
*/
|
|
6
|
+
import type { ActorPresence } from '@pantheon-systems/css-client';
|
|
7
|
+
/**
|
|
8
|
+
* Options for the usePresence hook.
|
|
9
|
+
*/
|
|
10
|
+
export interface UsePresenceOptions {
|
|
11
|
+
/** Polling interval in ms (default: 10000) */
|
|
12
|
+
pollingInterval?: number;
|
|
13
|
+
/** Include self in presence list (default: false) */
|
|
14
|
+
includeSelf?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Return value for the usePresence hook.
|
|
18
|
+
*/
|
|
19
|
+
export interface UsePresenceReturn {
|
|
20
|
+
/** All actors present in the document */
|
|
21
|
+
actors: ActorPresence[];
|
|
22
|
+
/** Actors currently editing */
|
|
23
|
+
editingActors: ActorPresence[];
|
|
24
|
+
/** Human actors only */
|
|
25
|
+
humans: ActorPresence[];
|
|
26
|
+
/** Agent actors only */
|
|
27
|
+
agents: ActorPresence[];
|
|
28
|
+
/** Whether any human is actively editing */
|
|
29
|
+
hasActiveHumans: boolean;
|
|
30
|
+
/** Whether any agent is actively editing */
|
|
31
|
+
hasActiveAgents: boolean;
|
|
32
|
+
/** Loading state */
|
|
33
|
+
isLoading: boolean;
|
|
34
|
+
/** Error state */
|
|
35
|
+
error: Error | null;
|
|
36
|
+
/** Force refresh presence data */
|
|
37
|
+
refresh: () => Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Hook for consuming document-level presence data.
|
|
41
|
+
*
|
|
42
|
+
* @param options - Configuration options
|
|
43
|
+
* @returns Presence state and operations
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* function CollaboratorList() {
|
|
48
|
+
* const { actors, hasActiveAgents } = usePresence();
|
|
49
|
+
*
|
|
50
|
+
* return (
|
|
51
|
+
* <div>
|
|
52
|
+
* {hasActiveAgents && <span>Agents are working...</span>}
|
|
53
|
+
* {actors.map(actor => (
|
|
54
|
+
* <Avatar key={actor.id} name={actor.name} />
|
|
55
|
+
* ))}
|
|
56
|
+
* </div>
|
|
57
|
+
* );
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function usePresence(options?: UsePresenceOptions): UsePresenceReturn;
|
|
62
|
+
//# sourceMappingURL=usePresence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/collaboration/usePresence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,+BAA+B;IAC/B,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,wBAAwB;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,wBAAwB;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,4CAA4C;IAC5C,eAAe,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,kCAAkC;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAyF/E"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* usePresence Hook
|
|
3
|
+
*
|
|
4
|
+
* Provides document-level presence information with polling.
|
|
5
|
+
*/
|
|
6
|
+
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
7
|
+
import { usePresenceContext } from '../core/PresenceContext.js';
|
|
8
|
+
/**
|
|
9
|
+
* Hook for consuming document-level presence data.
|
|
10
|
+
*
|
|
11
|
+
* @param options - Configuration options
|
|
12
|
+
* @returns Presence state and operations
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* function CollaboratorList() {
|
|
17
|
+
* const { actors, hasActiveAgents } = usePresence();
|
|
18
|
+
*
|
|
19
|
+
* return (
|
|
20
|
+
* <div>
|
|
21
|
+
* {hasActiveAgents && <span>Agents are working...</span>}
|
|
22
|
+
* {actors.map(actor => (
|
|
23
|
+
* <Avatar key={actor.id} name={actor.name} />
|
|
24
|
+
* ))}
|
|
25
|
+
* </div>
|
|
26
|
+
* );
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function usePresence(options = {}) {
|
|
31
|
+
const { pollingInterval = 10000, includeSelf = false } = options;
|
|
32
|
+
const { client, siteId, branchId, userId } = usePresenceContext();
|
|
33
|
+
const [actors, setActors] = useState([]);
|
|
34
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
35
|
+
const [error, setError] = useState(null);
|
|
36
|
+
// Track mounted state to avoid state updates after unmount
|
|
37
|
+
const mountedRef = useRef(true);
|
|
38
|
+
// Ref for fetchPresence to avoid restarting polling interval
|
|
39
|
+
const fetchPresenceRef = useRef(async () => { });
|
|
40
|
+
// Fetch presence data
|
|
41
|
+
const fetchPresence = useCallback(async () => {
|
|
42
|
+
try {
|
|
43
|
+
const branchPresence = await client.presence.getBranchPresence(siteId, branchId);
|
|
44
|
+
if (!mountedRef.current)
|
|
45
|
+
return;
|
|
46
|
+
// Filter actors - optionally exclude self
|
|
47
|
+
let filteredActors = branchPresence.actors;
|
|
48
|
+
if (!includeSelf) {
|
|
49
|
+
filteredActors = filteredActors.filter((actor) => actor.actorId !== userId);
|
|
50
|
+
}
|
|
51
|
+
setActors(filteredActors);
|
|
52
|
+
setError(null);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
if (!mountedRef.current)
|
|
56
|
+
return;
|
|
57
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
if (mountedRef.current) {
|
|
61
|
+
setIsLoading(false);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}, [client, siteId, branchId, userId, includeSelf]);
|
|
65
|
+
// Keep ref in sync with callback
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
fetchPresenceRef.current = fetchPresence;
|
|
68
|
+
}, [fetchPresence]);
|
|
69
|
+
// Manual refresh function
|
|
70
|
+
const refresh = useCallback(async () => {
|
|
71
|
+
await fetchPresence();
|
|
72
|
+
}, [fetchPresence]);
|
|
73
|
+
// Initial fetch and polling
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
mountedRef.current = true;
|
|
76
|
+
// Initial fetch
|
|
77
|
+
void fetchPresenceRef.current();
|
|
78
|
+
// Set up polling - use ref to avoid restarting interval when callback changes
|
|
79
|
+
const intervalId = setInterval(() => {
|
|
80
|
+
void fetchPresenceRef.current();
|
|
81
|
+
}, pollingInterval);
|
|
82
|
+
return () => {
|
|
83
|
+
mountedRef.current = false;
|
|
84
|
+
clearInterval(intervalId);
|
|
85
|
+
};
|
|
86
|
+
}, [pollingInterval]);
|
|
87
|
+
// Derived values
|
|
88
|
+
const editingActors = actors.filter((actor) => actor.state === 'editing');
|
|
89
|
+
const humans = actors.filter((actor) => actor.role === 'human');
|
|
90
|
+
const agents = actors.filter((actor) => actor.role === 'agent');
|
|
91
|
+
const hasActiveHumans = humans.some((actor) => actor.state === 'active' || actor.state === 'editing');
|
|
92
|
+
const hasActiveAgents = agents.some((actor) => actor.state === 'active' || actor.state === 'editing');
|
|
93
|
+
return {
|
|
94
|
+
actors,
|
|
95
|
+
editingActors,
|
|
96
|
+
humans,
|
|
97
|
+
agents,
|
|
98
|
+
hasActiveHumans,
|
|
99
|
+
hasActiveAgents,
|
|
100
|
+
isLoading,
|
|
101
|
+
error,
|
|
102
|
+
refresh,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=usePresence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresence.js","sourceRoot":"","sources":["../../src/collaboration/usePresence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSitePresence Hook
|
|
3
|
+
*
|
|
4
|
+
* Provides site-level presence aggregation with polling.
|
|
5
|
+
*/
|
|
6
|
+
import type { SitePresence, BranchPresenceSummary } from '@pantheon-systems/css-client';
|
|
7
|
+
/**
|
|
8
|
+
* Options for the useSitePresence hook.
|
|
9
|
+
*/
|
|
10
|
+
export interface UseSitePresenceOptions {
|
|
11
|
+
/** Polling interval in ms (default: 10000) */
|
|
12
|
+
pollingInterval?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Return value for the useSitePresence hook.
|
|
16
|
+
*/
|
|
17
|
+
export interface UseSitePresenceReturn {
|
|
18
|
+
/** Site presence summary */
|
|
19
|
+
presence: SitePresence | null;
|
|
20
|
+
/** Branches with active collaborators */
|
|
21
|
+
activeBranches: BranchPresenceSummary[];
|
|
22
|
+
/** Total collaborators across site */
|
|
23
|
+
totalActors: number;
|
|
24
|
+
/** Loading state */
|
|
25
|
+
isLoading: boolean;
|
|
26
|
+
/** Error state */
|
|
27
|
+
error: Error | null;
|
|
28
|
+
/** Refresh presence data */
|
|
29
|
+
refresh: () => Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Hook for consuming site-level presence data.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Configuration options
|
|
35
|
+
* @returns Site presence state and operations
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* function SiteCollaborators() {
|
|
40
|
+
* const { presence, activeBranches, totalActors } = useSitePresence();
|
|
41
|
+
*
|
|
42
|
+
* return (
|
|
43
|
+
* <div>
|
|
44
|
+
* <span>{totalActors} collaborators on this site</span>
|
|
45
|
+
* {activeBranches.map(branch => (
|
|
46
|
+
* <BranchBadge key={branch.branchId} name={branch.branchName} />
|
|
47
|
+
* ))}
|
|
48
|
+
* </div>
|
|
49
|
+
* );
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function useSitePresence(options?: UseSitePresenceOptions): UseSitePresenceReturn;
|
|
54
|
+
//# sourceMappingURL=useSitePresence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSitePresence.d.ts","sourceRoot":"","sources":["../../src/collaboration/useSitePresence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,yCAAyC;IACzC,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAyEvB"}
|