@pantheon-systems/puck-css 0.6.0 → 0.8.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/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/types.d.ts +17 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/data/dal/p1-store.d.ts +2 -0
- package/dist/data/dal/p1-store.d.ts.map +1 -1
- package/dist/data/dal/p1-store.js +14 -1
- package/dist/data/dal/p1-store.js.map +1 -1
- package/dist/editor/P1PuckProvider.d.ts.map +1 -1
- package/dist/editor/P1PuckProvider.js +177 -42
- package/dist/editor/P1PuckProvider.js.map +1 -1
- package/dist/editor/components/InspectorTabHeader.d.ts +18 -0
- package/dist/editor/components/InspectorTabHeader.d.ts.map +1 -0
- package/dist/editor/components/InspectorTabHeader.js +16 -0
- package/dist/editor/components/InspectorTabHeader.js.map +1 -0
- package/dist/editor/components/P1InspectorFields.d.ts +16 -0
- package/dist/editor/components/P1InspectorFields.d.ts.map +1 -0
- package/dist/editor/components/P1InspectorFields.js +54 -0
- package/dist/editor/components/P1InspectorFields.js.map +1 -0
- package/dist/editor/components/P1TemplateFields.d.ts +11 -0
- package/dist/editor/components/P1TemplateFields.d.ts.map +1 -0
- package/dist/editor/components/P1TemplateFields.js +52 -0
- package/dist/editor/components/P1TemplateFields.js.map +1 -0
- package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
- package/dist/editor/components/VersionBannerOverride.js +10 -2
- package/dist/editor/components/VersionBannerOverride.js.map +1 -1
- package/dist/editor/plugin/P1Plugin.d.ts +7 -0
- package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
- package/dist/editor/plugin/P1Plugin.js +36 -18
- package/dist/editor/plugin/P1Plugin.js.map +1 -1
- package/dist/editor/plugin/context-sync-key.d.ts +30 -0
- package/dist/editor/plugin/context-sync-key.d.ts.map +1 -0
- package/dist/editor/plugin/context-sync-key.js +36 -0
- package/dist/editor/plugin/context-sync-key.js.map +1 -0
- package/dist/editor/plugin/createP1Overrides.d.ts +2 -7
- package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
- package/dist/editor/plugin/createP1Overrides.js +8 -70
- package/dist/editor/plugin/createP1Overrides.js.map +1 -1
- package/dist/editor/plugin/document-sync-plugin.d.ts +35 -0
- package/dist/editor/plugin/document-sync-plugin.d.ts.map +1 -0
- package/dist/editor/plugin/document-sync-plugin.js +130 -0
- package/dist/editor/plugin/document-sync-plugin.js.map +1 -0
- package/dist/editor/useComponentRegistry.d.ts +2 -5
- package/dist/editor/useComponentRegistry.d.ts.map +1 -1
- package/dist/editor/useComponentRegistry.js +3 -172
- package/dist/editor/useComponentRegistry.js.map +1 -1
- package/dist/editor/useDocuments.d.ts.map +1 -1
- package/dist/editor/useDocuments.js +27 -15
- package/dist/editor/useDocuments.js.map +1 -1
- package/dist/editor/useP1Editor.d.ts +1 -9
- package/dist/editor/useP1Editor.d.ts.map +1 -1
- package/dist/editor/useP1Editor.js +65 -17
- package/dist/editor/useP1Editor.js.map +1 -1
- package/dist/editor/useP1Plugin.d.ts +6 -0
- package/dist/editor/useP1Plugin.d.ts.map +1 -1
- package/dist/editor/useP1Plugin.js +1 -0
- package/dist/editor/useP1Plugin.js.map +1 -1
- package/dist/editor/utils/componentRegistry.d.ts +22 -2
- package/dist/editor/utils/componentRegistry.d.ts.map +1 -1
- package/dist/editor/utils/componentRegistry.js +9 -2
- package/dist/editor/utils/componentRegistry.js.map +1 -1
- package/dist/editor/utils/puckYjsBinding.d.ts.map +1 -1
- package/dist/editor/utils/puckYjsBinding.js +6 -4
- package/dist/editor/utils/puckYjsBinding.js.map +1 -1
- package/dist/editor/utils/snapshotToPuckData.d.ts +11 -0
- package/dist/editor/utils/snapshotToPuckData.d.ts.map +1 -0
- package/dist/editor/utils/snapshotToPuckData.js +27 -0
- package/dist/editor/utils/snapshotToPuckData.js.map +1 -0
- package/dist/editor/utils/syncComponentRegistry.d.ts +29 -0
- package/dist/editor/utils/syncComponentRegistry.d.ts.map +1 -0
- package/dist/editor/utils/syncComponentRegistry.js +238 -0
- package/dist/editor/utils/syncComponentRegistry.js.map +1 -0
- package/dist/editor/utils/syncComponentRegistryWriteOnly.d.ts +24 -0
- package/dist/editor/utils/syncComponentRegistryWriteOnly.d.ts.map +1 -0
- package/dist/editor/utils/syncComponentRegistryWriteOnly.js +41 -0
- package/dist/editor/utils/syncComponentRegistryWriteOnly.js.map +1 -0
- package/dist/editor/utils/templatePath.d.ts +8 -0
- package/dist/editor/utils/templatePath.d.ts.map +1 -0
- package/dist/editor/utils/templatePath.js +14 -0
- package/dist/editor/utils/templatePath.js.map +1 -0
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +9 -4
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js +27 -8
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
- package/dist/features/content-type-templates/validation/structural-validation.d.ts +4 -4
- package/dist/features/content-type-templates/validation/structural-validation.d.ts.map +1 -1
- package/dist/features/content-type-templates/validation/structural-validation.js +123 -50
- package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/p1/editor/client.js +1 -1
- package/dist/p1/editor/client.js.map +1 -1
- package/dist/p1/editor/connect/connect-field-modal.js +1 -1
- package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
- package/dist/p1/editor/editor-preview-resolve.js +1 -1
- package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
- package/dist/p1/editor/{hooks.d.ts → hooks/api-hooks.d.ts} +5 -16
- package/dist/p1/editor/hooks/api-hooks.d.ts.map +1 -0
- package/dist/p1/editor/{hooks.js → hooks/api-hooks.js} +33 -45
- package/dist/p1/editor/hooks/api-hooks.js.map +1 -0
- package/dist/p1/editor/hooks/index.d.ts +4 -0
- package/dist/p1/editor/hooks/index.d.ts.map +1 -0
- package/dist/p1/editor/hooks/index.js +4 -0
- package/dist/p1/editor/hooks/index.js.map +1 -0
- package/dist/p1/editor/hooks/useEditorContext.d.ts +13 -0
- package/dist/p1/editor/hooks/useEditorContext.d.ts.map +1 -0
- package/dist/p1/editor/hooks/useEditorContext.js +16 -0
- package/dist/p1/editor/hooks/useEditorContext.js.map +1 -0
- package/dist/p1/editor/hooks/useP1Plugins.d.ts +3 -0
- package/dist/p1/editor/hooks/useP1Plugins.d.ts.map +1 -0
- package/dist/p1/editor/hooks/useP1Plugins.js +31 -0
- package/dist/p1/editor/hooks/useP1Plugins.js.map +1 -0
- package/dist/p1/editor/index.d.ts +1 -1
- package/dist/p1/editor/index.d.ts.map +1 -1
- package/dist/p1/editor/index.js +1 -1
- package/dist/p1/editor/index.js.map +1 -1
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.js +1 -1
- package/dist/p1/editor/remote-datasources/remote-datasource-manager.js.map +1 -1
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js +1 -1
- package/dist/p1/editor/remote-datasources/template-preview-params-toolbar.js.map +1 -1
- package/dist/pds/components/LoadingMessage.d.ts +16 -0
- package/dist/pds/components/LoadingMessage.d.ts.map +1 -0
- package/dist/pds/components/LoadingMessage.js +6 -0
- package/dist/pds/components/LoadingMessage.js.map +1 -0
- package/dist/pds/components/LoadingMessage.module.css +44 -0
- package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorHeader.js +1 -1
- package/dist/pds/components/P1EditorHeader.js.map +1 -1
- package/dist/pds/components/P1EditorHeader.module.css +2 -4
- package/dist/pds/components/P1EditorSubheader.module.css +5 -2
- package/dist/pds/index.d.ts +2 -0
- package/dist/pds/index.d.ts.map +1 -1
- package/dist/pds/index.js +1 -0
- package/dist/pds/index.js.map +1 -1
- package/dist/pds/theme/pds-core-content.d.ts +1 -1
- package/dist/pds/theme/pds-core-content.d.ts.map +1 -1
- package/dist/pds/theme/pds-core-content.js +3 -2
- package/dist/pds/theme/pds-core-content.js.map +1 -1
- package/dist/registry-sync.d.ts +7 -0
- package/dist/registry-sync.d.ts.map +1 -0
- package/dist/registry-sync.js +8 -0
- package/dist/registry-sync.js.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/versioning/components/ReadOnlyFieldsGuard.d.ts +14 -0
- package/dist/versioning/components/ReadOnlyFieldsGuard.d.ts.map +1 -0
- package/dist/versioning/components/ReadOnlyFieldsGuard.js +8 -0
- package/dist/versioning/components/ReadOnlyFieldsGuard.js.map +1 -0
- package/dist/versioning/components/VersionReadOnlyBanner.d.ts +12 -0
- package/dist/versioning/components/VersionReadOnlyBanner.d.ts.map +1 -0
- package/dist/versioning/components/VersionReadOnlyBanner.js +5 -0
- package/dist/versioning/components/VersionReadOnlyBanner.js.map +1 -0
- package/dist/versioning/index.d.ts +4 -0
- package/dist/versioning/index.d.ts.map +1 -1
- package/dist/versioning/index.js +2 -0
- package/dist/versioning/index.js.map +1 -1
- package/package.json +14 -4
- package/src/pds/theme/pds-core-content.ts +3 -2
- package/src/pds/theme/pds-core.css +3 -2
- package/src/styles.css +179 -0
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts +0 -15
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts.map +0 -1
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js +0 -29
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js.map +0 -1
- package/dist/p1/editor/hooks.d.ts.map +0 -1
- package/dist/p1/editor/hooks.js.map +0 -1
|
@@ -9,177 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { useState, useEffect } from 'react';
|
|
11
11
|
import { useP1Puck } from '../core/P1PuckContext.js';
|
|
12
|
-
import { extractDescriptors
|
|
13
|
-
import {
|
|
14
|
-
// =============================================================================
|
|
15
|
-
// Registry path helpers
|
|
16
|
-
// =============================================================================
|
|
17
|
-
const REGISTRY_PREFIX = '_registry/';
|
|
18
|
-
const COMPONENT_PREFIX = '_registry/components/';
|
|
19
|
-
const INDEX_PATH = '_registry/index';
|
|
20
|
-
function componentPath(name) {
|
|
21
|
-
return `${COMPONENT_PREFIX}${name}`;
|
|
22
|
-
}
|
|
23
|
-
async function runRegistration(client, siteId, branchId, descriptors) {
|
|
24
|
-
// Step 1: List all existing registry documents
|
|
25
|
-
const existingDocs = (await client.documents.list(siteId, branchId, {
|
|
26
|
-
pathPrefix: REGISTRY_PREFIX,
|
|
27
|
-
}));
|
|
28
|
-
// Step 2: Build lookup maps for existing component docs
|
|
29
|
-
const docByName = new Map();
|
|
30
|
-
let indexDoc;
|
|
31
|
-
for (const doc of existingDocs) {
|
|
32
|
-
if (doc.path === INDEX_PATH) {
|
|
33
|
-
indexDoc = doc;
|
|
34
|
-
}
|
|
35
|
-
else if (doc.path.startsWith(COMPONENT_PREFIX)) {
|
|
36
|
-
const name = doc.path.slice(COMPONENT_PREFIX.length);
|
|
37
|
-
docByName.set(name, doc);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Step 3: Resolve stored hashes — fast path (from index) or legacy (per-component).
|
|
41
|
-
//
|
|
42
|
-
// Fast path: if the index version has a `hashes` map, read all hashes from it
|
|
43
|
-
// in a single request instead of fetching each component version individually.
|
|
44
|
-
// This collapses N simultaneous getLatest calls (one per component) into 1.
|
|
45
|
-
//
|
|
46
|
-
// Legacy fallback: index exists but has no `hashes` field (written by an older
|
|
47
|
-
// version of this hook), or no index exists yet. Falls back to per-component
|
|
48
|
-
// fetches so existing registries continue to work on the first run after deploy.
|
|
49
|
-
const storedHashByName = new Map();
|
|
50
|
-
let gotHashesFromIndex = false;
|
|
51
|
-
if (indexDoc !== undefined) {
|
|
52
|
-
try {
|
|
53
|
-
const indexVersion = await client.versions.getLatest(siteId, branchId, indexDoc.id);
|
|
54
|
-
const indexSnapshot = indexVersion.snapshot;
|
|
55
|
-
if (indexSnapshot.hashes !== undefined && typeof indexSnapshot.hashes === 'object') {
|
|
56
|
-
for (const [name, hash] of Object.entries(indexSnapshot.hashes)) {
|
|
57
|
-
if (typeof hash === 'string') {
|
|
58
|
-
storedHashByName.set(name, hash);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
gotHashesFromIndex = true;
|
|
62
|
-
console.debug('[useComponentRegistry] Fast path: loaded', storedHashByName.size, 'hashes from index');
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
console.debug('[useComponentRegistry] Index exists but has no hashes field (legacy format) — falling back to per-component fetch');
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
console.debug('[useComponentRegistry] Index version fetch failed — falling back to per-component fetch:', err);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
console.debug('[useComponentRegistry] No index document found — will create one after registration');
|
|
74
|
-
}
|
|
75
|
-
if (!gotHashesFromIndex) {
|
|
76
|
-
// Legacy path: fetch each component version individually to get stored hash.
|
|
77
|
-
console.debug('[useComponentRegistry] Legacy path: fetching', docByName.size, 'component versions individually');
|
|
78
|
-
await Promise.all(Array.from(docByName.entries()).map(async ([name, doc]) => {
|
|
79
|
-
try {
|
|
80
|
-
const version = await client.versions.getLatest(siteId, branchId, doc.id);
|
|
81
|
-
const snapshot = version.snapshot;
|
|
82
|
-
if (typeof snapshot.descriptorHash === 'string') {
|
|
83
|
-
storedHashByName.set(name, snapshot.descriptorHash);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// Version fetch failure → treat as hash mismatch, will overwrite
|
|
88
|
-
}
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
// Step 4: Write only changed/new descriptors
|
|
92
|
-
let registered = 0;
|
|
93
|
-
let skipped = 0;
|
|
94
|
-
await Promise.all(descriptors.map(async (descriptor) => {
|
|
95
|
-
const storedHash = storedHashByName.get(descriptor.name);
|
|
96
|
-
const existingDoc = docByName.get(descriptor.name);
|
|
97
|
-
// Skip only when the hash is unchanged AND the component document still
|
|
98
|
-
// exists on this branch. A hash-only check is unsafe: the index can drift
|
|
99
|
-
// out of sync with on-disk component docs (e.g. a partial historical
|
|
100
|
-
// write, an out-of-band deletion, or branch CoW interactions where the
|
|
101
|
-
// index was inherited but its referenced component docs were not). In
|
|
102
|
-
// that case the index reports a matching hash for a name whose document
|
|
103
|
-
// is missing, and the registry stays permanently stuck at fewer
|
|
104
|
-
// components than the running config defines. Requiring `existingDoc`
|
|
105
|
-
// forces the missing component through the create path on the next run,
|
|
106
|
-
// which self-heals the desync and rewrites the index from the full
|
|
107
|
-
// descriptor set.
|
|
108
|
-
if (existingDoc !== undefined && storedHash === descriptor.descriptorHash) {
|
|
109
|
-
skipped++;
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
let docId;
|
|
113
|
-
if (existingDoc === undefined) {
|
|
114
|
-
try {
|
|
115
|
-
const newDoc = await client.documents.create({
|
|
116
|
-
siteId,
|
|
117
|
-
branchId,
|
|
118
|
-
path: componentPath(descriptor.name),
|
|
119
|
-
});
|
|
120
|
-
docId = newDoc.id;
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
if (err instanceof ConflictError) {
|
|
124
|
-
const existing = await client.documents.getByPath(siteId, componentPath(descriptor.name));
|
|
125
|
-
docId = existing.id;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
throw err;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
docId = existingDoc.id;
|
|
134
|
-
}
|
|
135
|
-
await client.versions.create(siteId, {
|
|
136
|
-
documentId: docId,
|
|
137
|
-
branchId,
|
|
138
|
-
snapshot: descriptor,
|
|
139
|
-
});
|
|
140
|
-
registered++;
|
|
141
|
-
}));
|
|
142
|
-
console.debug('[useComponentRegistry] Registration complete:', 'registered =', registered, 'skipped =', skipped, 'total =', descriptors.length, '| gotHashesFromIndex =', gotHashesFromIndex);
|
|
143
|
-
// Detect hash instability: if we got hashes from the index but still had to register
|
|
144
|
-
// components, log which components had mismatched hashes.
|
|
145
|
-
if (gotHashesFromIndex && registered > 0) {
|
|
146
|
-
const changed = descriptors.filter(d => storedHashByName.get(d.name) !== d.descriptorHash);
|
|
147
|
-
console.warn('[useComponentRegistry] Hash mismatch detected for', changed.length, 'component(s) despite index being present.', 'These components will trigger a full re-registration on every load if their hashes are unstable:', changed.map(d => ({ name: d.name, stored: storedHashByName.get(d.name), computed: d.descriptorHash })));
|
|
148
|
-
}
|
|
149
|
-
// Step 5: Write index when something changed, index doesn't exist yet, OR the existing
|
|
150
|
-
// index lacks the `hashes` field (legacy format). The third condition promotes legacy
|
|
151
|
-
// indexes to the fast-path format so that the next startup can skip per-component fetches.
|
|
152
|
-
const indexNeedsWrite = registered > 0 || indexDoc === undefined || !gotHashesFromIndex;
|
|
153
|
-
console.debug('[useComponentRegistry] indexNeedsWrite =', indexNeedsWrite, '(registered > 0:', registered > 0, ', no indexDoc:', indexDoc === undefined, ', legacy format:', !gotHashesFromIndex, ')');
|
|
154
|
-
if (indexNeedsWrite) {
|
|
155
|
-
const index = buildRegistryIndex(descriptors, siteId, branchId);
|
|
156
|
-
let indexDocId;
|
|
157
|
-
if (indexDoc === undefined) {
|
|
158
|
-
try {
|
|
159
|
-
const newIndexDoc = await client.documents.create({ siteId, branchId, path: INDEX_PATH });
|
|
160
|
-
indexDocId = newIndexDoc.id;
|
|
161
|
-
}
|
|
162
|
-
catch (err) {
|
|
163
|
-
if (err instanceof ConflictError) {
|
|
164
|
-
const existing = await client.documents.getByPath(siteId, INDEX_PATH);
|
|
165
|
-
indexDocId = existing.id;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
throw err;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
indexDocId = indexDoc.id;
|
|
174
|
-
}
|
|
175
|
-
await client.versions.create(siteId, {
|
|
176
|
-
documentId: indexDocId,
|
|
177
|
-
branchId,
|
|
178
|
-
snapshot: index,
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
return { registered, skipped, total: descriptors.length };
|
|
182
|
-
}
|
|
12
|
+
import { extractDescriptors } from './utils/componentRegistry.js';
|
|
13
|
+
import { syncComponentRegistry, } from './utils/syncComponentRegistry.js';
|
|
183
14
|
// =============================================================================
|
|
184
15
|
// Hook
|
|
185
16
|
// =============================================================================
|
|
@@ -197,7 +28,7 @@ export function useComponentRegistry(options) {
|
|
|
197
28
|
let cancelled = false;
|
|
198
29
|
setStatus('registering');
|
|
199
30
|
const descriptors = extractDescriptors(puckConfig, upstreamPuckConfig);
|
|
200
|
-
|
|
31
|
+
syncComponentRegistry(client, siteId, branchId, descriptors)
|
|
201
32
|
.then((registrationResult) => {
|
|
202
33
|
if (cancelled)
|
|
203
34
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComponentRegistry.js","sourceRoot":"","sources":["../../src/editor/useComponentRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"useComponentRegistry.js","sourceRoot":"","sources":["../../src/editor/useComponentRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,qBAAqB,GAEtB,MAAM,kCAAkC,CAAC;AAyB1C,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuC,MAAM,CAAC,CAAC;IACnF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,SAAS,CAAC,aAAa,CAAC,CAAC;QAEzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEvE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;aACzD,IAAI,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC3B,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,CAAC,YAAY,CAAC,CAAC;YACxB,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC9B,YAAY,EAAE,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,SAAS;gBAAE,OAAO;YACtB,MAAM,iBAAiB,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,SAAS,CAAC,OAAO,CAAC,CAAC;YACnB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC7B,wEAAwE;YACxE,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;QACJ,8BAA8B;QAC9B,yFAAyF;QACzF,8EAA8E;QAC9E,kGAAkG;QAClG,qFAAqF;QACrF,+FAA+F;QAC/F,0FAA0F;QAC1F,iFAAiF;QACjF,6FAA6F;QAC7F,6FAA6F;QAC7F,+FAA+F;QAC/F,0DAA0D;QAC1D,qEAAqE;IACrE,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocuments.d.ts","sourceRoot":"","sources":["../../src/editor/useDocuments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IAC1B;;OAEG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,CACN,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACxE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;CACnD;AAUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"useDocuments.d.ts","sourceRoot":"","sources":["../../src/editor/useDocuments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IAC1B;;OAEG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,CACN,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,QAAQ,EACtB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACxE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;CACnD;AAUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,GAAG,kBAAkB,CAqIzC"}
|
|
@@ -73,20 +73,28 @@ export function useDocuments({ client, siteId, branchId, }) {
|
|
|
73
73
|
}, [refresh, branchId]);
|
|
74
74
|
// Create a new document
|
|
75
75
|
const create = useCallback(async (path, initialData, options) => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
// Template pages get their initial version built by the backend from the
|
|
77
|
+
// template, which preserves each component's durable slot id. A
|
|
78
|
+
// client-built snapshot would be layered on top as a second version and
|
|
79
|
+
// bury those ids, so it is rejected here.
|
|
80
|
+
if (options?.templateId) {
|
|
81
|
+
if (initialData !== undefined) {
|
|
82
|
+
throw new Error('Cannot supply initialData when creating a document from a template; the backend builds the initial version from the template.');
|
|
83
|
+
}
|
|
84
|
+
const doc = await client.documents.create({
|
|
85
|
+
siteId,
|
|
86
|
+
branchId,
|
|
87
|
+
path,
|
|
81
88
|
templateId: options.templateId,
|
|
82
89
|
templateVersion: options.templateVersion ?? 1,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
+
...(options.title ? { title: options.title } : {}),
|
|
91
|
+
});
|
|
92
|
+
await refresh();
|
|
93
|
+
return doc;
|
|
94
|
+
}
|
|
95
|
+
// Blank pages build their initial version on the client. A title seeds
|
|
96
|
+
// root.props.title (the same field Puck's root "title" input
|
|
97
|
+
// reads/writes) so it persists in the initial snapshot.
|
|
90
98
|
const baseData = initialData ?? DEFAULT_PUCK_DATA;
|
|
91
99
|
const data = options?.title
|
|
92
100
|
? {
|
|
@@ -97,12 +105,16 @@ export function useDocuments({ client, siteId, branchId, }) {
|
|
|
97
105
|
},
|
|
98
106
|
}
|
|
99
107
|
: baseData;
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
// Create the document and its initial version in a SINGLE call by passing
|
|
109
|
+
// the content inline as `snapshot`. Previously this was two calls
|
|
110
|
+
// (documents.create with no snapshot, then a separate versions.create),
|
|
111
|
+
// which produced two version rows for a brand-new page.
|
|
112
|
+
const doc = await client.documents.create({
|
|
113
|
+
siteId,
|
|
102
114
|
branchId,
|
|
115
|
+
path,
|
|
103
116
|
snapshot: data,
|
|
104
117
|
});
|
|
105
|
-
// Refresh the list
|
|
106
118
|
await refresh();
|
|
107
119
|
return doc;
|
|
108
120
|
}, [client, siteId, branchId, refresh]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocuments.js","sourceRoot":"","sources":["../../src/editor/useDocuments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAmDjE;;GAEG;AACH,MAAM,iBAAiB,GAAa;IAClC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACW;IACnB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,8EAA8E;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAS,QAAQ,CAAC,CAAC;IAEjD,kDAAkD;IAClD,kFAAkF;IAClF,4DAA4D;IAC5D,IAAI,QAAQ,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;QACzC,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;QACnC,8DAA8D;QAC9D,0EAA0E;QAC1E,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC5C,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,wBAAwB;IACxB,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EACH,IAAY,EACZ,WAAsB,EACtB,OAA2E,EACxD,EAAE;QACrB,
|
|
1
|
+
{"version":3,"file":"useDocuments.js","sourceRoot":"","sources":["../../src/editor/useDocuments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useP1Editor Hook
|
|
3
|
-
*
|
|
4
|
-
* All-in-one hook for setting up a P1-enabled Puck editor.
|
|
5
|
-
* Composes useP1Plugin and useP1Overrides internally, handles
|
|
6
|
-
* document loading, version management, historical version protection,
|
|
7
|
-
* and provides everything needed to render <Puck>.
|
|
8
|
-
*/
|
|
9
1
|
import type { ThumbnailMap } from './utils/buildThumbnailOverride.js';
|
|
10
2
|
import type { UseP1PluginOptions } from './useP1Plugin.js';
|
|
11
3
|
import type { UseP1OverridesOptions } from './useP1Overrides.js';
|
|
@@ -93,7 +85,7 @@ export interface UseP1EditorReturn {
|
|
|
93
85
|
loading: boolean;
|
|
94
86
|
/** Error from document loading, if any */
|
|
95
87
|
error: Error | null;
|
|
96
|
-
/** React key — pass directly as `<Puck key={puckKey} {...puckProps} />` to force clean remount on document
|
|
88
|
+
/** React key — pass directly as `<Puck key={puckKey} {...puckProps} />` to force a clean remount on role change (document switches sync in place) */
|
|
97
89
|
puckKey: string;
|
|
98
90
|
/** Props to spread onto <Puck> */
|
|
99
91
|
puckProps: PuckProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useP1Editor.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useP1Editor.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
/**
|
|
2
3
|
* useP1Editor Hook
|
|
3
4
|
*
|
|
@@ -14,6 +15,7 @@ import { useVersions } from '../versioning/useVersions.js';
|
|
|
14
15
|
import { useComponentRegistry } from './useComponentRegistry.js';
|
|
15
16
|
import { useP1Auth } from '../auth/index.js';
|
|
16
17
|
import { buildThumbnailOverride } from './utils/buildThumbnailOverride.js';
|
|
18
|
+
import { createDocumentSyncStore, createDocumentSyncPlugin, documentSyncKey, } from './plugin/document-sync-plugin.js';
|
|
17
19
|
/**
|
|
18
20
|
* All-in-one hook for setting up a P1-enabled Puck editor.
|
|
19
21
|
*
|
|
@@ -207,7 +209,13 @@ export function useP1Editor(options) {
|
|
|
207
209
|
void refreshVersions();
|
|
208
210
|
consumerOnPublishSuccessRef.current?.(checkpoint);
|
|
209
211
|
}, [css, refreshVersions]);
|
|
212
|
+
// Pushes freshly loaded documents into the live Puck instance, replacing
|
|
213
|
+
// the remount-on-document-switch behavior the old document-scoped puckKey
|
|
214
|
+
// provided (see document-sync-plugin.tsx). Handed to the P1 plugin as well
|
|
215
|
+
// so its context sync defers document switches to this store.
|
|
216
|
+
const [documentSyncStore] = useState(createDocumentSyncStore);
|
|
210
217
|
const p1Plugin = useP1Plugin({
|
|
218
|
+
documentSyncStore,
|
|
211
219
|
onSelectionChange: handleSelectionChange,
|
|
212
220
|
currentUser: user ? { id: user.id, name: user.name, email: user.email, avatar: user.picture } : undefined,
|
|
213
221
|
onLogout: logout,
|
|
@@ -234,32 +242,64 @@ export function useP1Editor(options) {
|
|
|
234
242
|
// =========================================================================
|
|
235
243
|
const additionalPluginsRef = useRef(additionalPlugins);
|
|
236
244
|
additionalPluginsRef.current = additionalPlugins;
|
|
245
|
+
const documentSyncPlugin = useMemo(() => createDocumentSyncPlugin(documentSyncStore), [documentSyncStore]);
|
|
246
|
+
// Read through a ref so a publish happens once per settled load, not on
|
|
247
|
+
// every safeData edit.
|
|
248
|
+
const safeDataRef = useRef(css.safeData);
|
|
249
|
+
safeDataRef.current = css.safeData;
|
|
250
|
+
const currentDocumentId = css.currentDocument?.id;
|
|
251
|
+
useEffect(() => {
|
|
252
|
+
if (loading || error || !currentDocumentId)
|
|
253
|
+
return;
|
|
254
|
+
documentSyncStore.publish({
|
|
255
|
+
syncKey: documentSyncKey(css.branchId, currentDocumentId),
|
|
256
|
+
data: safeDataRef.current,
|
|
257
|
+
});
|
|
258
|
+
}, [loading, error, css.branchId, currentDocumentId, documentSyncStore]);
|
|
237
259
|
const pluginCount = additionalPlugins?.length ?? 0;
|
|
238
260
|
const plugins = useMemo(() => {
|
|
239
|
-
const result = [p1Plugin];
|
|
261
|
+
const result = [p1Plugin, documentSyncPlugin];
|
|
240
262
|
if (additionalPluginsRef.current) {
|
|
241
263
|
result.push(...additionalPluginsRef.current);
|
|
242
264
|
}
|
|
243
265
|
return result;
|
|
244
|
-
}, [p1Plugin, pluginCount]);
|
|
266
|
+
}, [p1Plugin, documentSyncPlugin, pluginCount]);
|
|
245
267
|
// =========================================================================
|
|
246
|
-
// Stable onChange (disabled for historical versions
|
|
268
|
+
// Stable onChange (disabled for historical versions, guarded across
|
|
269
|
+
// document switches)
|
|
247
270
|
// =========================================================================
|
|
248
271
|
const isViewingHistoricalRef = useRef(css.isViewingHistoricalVersion);
|
|
249
272
|
isViewingHistoricalRef.current = css.isViewingHistoricalVersion;
|
|
273
|
+
// With Puck surviving document switches, onChange can fire while the canvas
|
|
274
|
+
// still shows the previous document but css already targets the new one
|
|
275
|
+
// (load in flight, or loaded but not yet pushed by the sync plugin). Saving
|
|
276
|
+
// then would write the old page's content into the new page — drop instead.
|
|
277
|
+
const saveTargetKeyRef = useRef(null);
|
|
278
|
+
saveTargetKeyRef.current = css.currentDocument?.id
|
|
279
|
+
? documentSyncKey(css.branchId, css.currentDocument.id)
|
|
280
|
+
: null;
|
|
250
281
|
const onChange = useCallback((data) => {
|
|
251
|
-
if (
|
|
252
|
-
|
|
282
|
+
if (isViewingHistoricalRef.current)
|
|
283
|
+
return;
|
|
284
|
+
const appliedKey = documentSyncStore.getAppliedKey();
|
|
285
|
+
if (appliedKey !== null && appliedKey !== saveTargetKeyRef.current) {
|
|
286
|
+
console.warn('[useP1Editor] save SKIPPED: canvas/document mismatch during switch.', 'canvas:', appliedKey, 'target:', saveTargetKeyRef.current);
|
|
287
|
+
return;
|
|
253
288
|
}
|
|
254
|
-
|
|
289
|
+
css.saveData(data);
|
|
290
|
+
}, [css.saveData, documentSyncStore]);
|
|
255
291
|
// =========================================================================
|
|
256
292
|
// Permissions (read-only for historical versions)
|
|
257
293
|
// =========================================================================
|
|
258
294
|
const permissions = useMemo(() => {
|
|
259
295
|
if (css.isViewingHistoricalVersion) {
|
|
260
|
-
|
|
296
|
+
// Omit edit:false so page/root fields are never locked by Puck's own
|
|
297
|
+
// readonly rendering. Interaction is blocked by ReadOnlyFieldsGuard
|
|
298
|
+
// (inert attribute) instead, which also covers root fields without
|
|
299
|
+
// requiring resolvePermissions on config.root.
|
|
300
|
+
return { delete: false, drag: false, duplicate: false, insert: false };
|
|
261
301
|
}
|
|
262
|
-
return
|
|
302
|
+
return { delete: true, drag: true, duplicate: true, edit: true, insert: true };
|
|
263
303
|
}, [css.isViewingHistoricalVersion]);
|
|
264
304
|
// =========================================================================
|
|
265
305
|
// Stable merged overrides
|
|
@@ -302,15 +342,15 @@ export function useP1Editor(options) {
|
|
|
302
342
|
// =========================================================================
|
|
303
343
|
// Assemble puckProps
|
|
304
344
|
// =========================================================================
|
|
305
|
-
// Key that forces Puck to remount on
|
|
345
|
+
// Key that forces Puck to remount on role change (let puck internally manage the change on document change),
|
|
306
346
|
// ensuring clean undo history, sidebar state, and fresh permission cache.
|
|
307
347
|
// Puck caches resolvePermissions results per component instance — the
|
|
308
348
|
// cache is only invalidated when component data changes, not when the
|
|
309
349
|
// resolver function changes. Including userRole in the key forces a
|
|
310
350
|
// clean remount with an empty cache when roles switch.
|
|
311
|
-
const puckKey = `css-${css.
|
|
351
|
+
const puckKey = `css-${css.userRole}`;
|
|
312
352
|
// Read persisted sidebar visibility from localStorage each time the Puck instance
|
|
313
|
-
// changes (puckKey changes on
|
|
353
|
+
// changes (puckKey changes on role switch). The value is passed as the
|
|
314
354
|
// initial `ui` prop so Puck never initializes with wrong defaults.
|
|
315
355
|
const initialSidebarUi = useMemo(() => {
|
|
316
356
|
try {
|
|
@@ -350,11 +390,19 @@ export function useP1Editor(options) {
|
|
|
350
390
|
const resolver = resolvePermsRef.current;
|
|
351
391
|
if (!resolver)
|
|
352
392
|
return params.permissions;
|
|
353
|
-
const basePerms = resolver({ type: name }, {});
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
393
|
+
const basePerms = resolver({ type: name, props: data?.props }, {});
|
|
394
|
+
// Template-authoring mode: the context resolver only sees a
|
|
395
|
+
// metadata summary (no pins), so the document's live _pinMap is the
|
|
396
|
+
// pin source. On a bound page the resolver reads the live template
|
|
397
|
+
// and already governs pins, so the page's own snapshot pinMap is
|
|
398
|
+
// ignored — otherwise a stale pin would stay locked after the
|
|
399
|
+
// template unpins it.
|
|
400
|
+
if (isTemplateMode) {
|
|
401
|
+
const pinMap = (params.appState?.data?.root?.props?._pinMap ?? {});
|
|
402
|
+
const compId = data?.props?.id;
|
|
403
|
+
if (compId && pinMap[compId]) {
|
|
404
|
+
return { ...basePerms, drag: false, delete: false };
|
|
405
|
+
}
|
|
358
406
|
}
|
|
359
407
|
return basePerms;
|
|
360
408
|
},
|
|
@@ -377,7 +425,7 @@ export function useP1Editor(options) {
|
|
|
377
425
|
plugins,
|
|
378
426
|
overrides: mergedOverrides,
|
|
379
427
|
...(Object.keys(initialSidebarUi).length > 0 ? { ui: initialSidebarUi } : {}),
|
|
380
|
-
|
|
428
|
+
permissions,
|
|
381
429
|
onAction: css.handleAction,
|
|
382
430
|
}), [configWithPermissions, css.safeData, onChange, plugins, mergedOverrides, initialSidebarUi, permissions, css.handleAction]);
|
|
383
431
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useP1Editor.js","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useP1Editor.js","sourceRoot":"","sources":["../../src/editor/useP1Editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* so the plugin object never changes identity, avoiding Puck re-renders.
|
|
7
7
|
*/
|
|
8
8
|
import type { PuckPlugin } from './plugin/P1Plugin.js';
|
|
9
|
+
import type { DocumentSyncStore } from './plugin/document-sync-plugin.js';
|
|
9
10
|
import type { DocumentVersion, ActorPresence, RegisteredAgent } from '@pantheon-systems/css-client';
|
|
10
11
|
import type { SiteMenuItem, CurrentUser } from '../pds/components/P1EditorHeader.js';
|
|
11
12
|
/**
|
|
@@ -78,6 +79,11 @@ export interface UseP1PluginOptions {
|
|
|
78
79
|
onCreateWorkstream?: () => void;
|
|
79
80
|
/** Called when the user creates a new workstream. Receives the branch name. */
|
|
80
81
|
onCreateBranch?: (name: string) => Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Document-sync store shared with the document-sync plugin, so context-based
|
|
84
|
+
* sync can leave document switches to it.
|
|
85
|
+
*/
|
|
86
|
+
documentSyncStore?: Pick<DocumentSyncStore, 'getAppliedKey'>;
|
|
81
87
|
}
|
|
82
88
|
/**
|
|
83
89
|
* Creates a referentially stable CSS plugin for Puck.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,7 @@ export function useP1Plugin(options = {}) {
|
|
|
70
70
|
onVersionSelect: fc.enableVersionHistory ? options.onVersionSelect : undefined,
|
|
71
71
|
// Context-based sync is the default — no need for getter or legacy sync
|
|
72
72
|
useContextSync: true,
|
|
73
|
+
documentSyncStore: options.documentSyncStore,
|
|
73
74
|
// Selection tracking
|
|
74
75
|
onSelectionChange: options.onSelectionChange,
|
|
75
76
|
// Merge comparison — gated by enableMergeControl
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
|