@pantheon-systems/puck-css 0.4.1 → 0.4.3
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 +3 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -6
- package/dist/core/config.js.map +1 -1
- package/dist/core/featureConfig.d.ts +2 -0
- package/dist/core/featureConfig.d.ts.map +1 -1
- package/dist/core/featureConfig.js +4 -0
- package/dist/core/featureConfig.js.map +1 -1
- package/dist/core/types.d.ts +58 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/data/dal/index.d.ts +5 -1
- package/dist/data/dal/index.d.ts.map +1 -1
- package/dist/data/dal/index.js +22 -1
- package/dist/data/dal/index.js.map +1 -1
- package/dist/data/dal/init.d.ts.map +1 -1
- package/dist/data/dal/init.js +22 -14
- package/dist/data/dal/init.js.map +1 -1
- package/dist/data/dal/p1-store.d.ts +15 -1
- package/dist/data/dal/p1-store.d.ts.map +1 -1
- package/dist/data/dal/p1-store.js +51 -5
- package/dist/data/dal/p1-store.js.map +1 -1
- package/dist/data/dal/types.d.ts +13 -1
- package/dist/data/dal/types.d.ts.map +1 -1
- package/dist/data/page-store.d.ts +17 -2
- package/dist/data/page-store.d.ts.map +1 -1
- package/dist/data/page-store.js +47 -5
- package/dist/data/page-store.js.map +1 -1
- package/dist/editor/P1App.d.ts.map +1 -1
- package/dist/editor/P1App.js +1 -1
- package/dist/editor/P1App.js.map +1 -1
- package/dist/editor/P1PuckProvider.d.ts.map +1 -1
- package/dist/editor/P1PuckProvider.js +175 -66
- package/dist/editor/P1PuckProvider.js.map +1 -1
- package/dist/editor/plugin/P1Plugin.d.ts +22 -1
- package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
- package/dist/editor/plugin/P1Plugin.js +72 -21
- package/dist/editor/plugin/P1Plugin.js.map +1 -1
- package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
- package/dist/editor/plugin/createP1Overrides.js +4 -1
- package/dist/editor/plugin/createP1Overrides.js.map +1 -1
- package/dist/editor/useDocuments.d.ts +4 -1
- package/dist/editor/useDocuments.d.ts.map +1 -1
- package/dist/editor/useDocuments.js +5 -2
- package/dist/editor/useDocuments.js.map +1 -1
- package/dist/editor/useP1Editor.d.ts +12 -0
- package/dist/editor/useP1Editor.d.ts.map +1 -1
- package/dist/editor/useP1Editor.js +40 -5
- package/dist/editor/useP1Editor.js.map +1 -1
- package/dist/editor/useP1Plugin.d.ts +5 -1
- package/dist/editor/useP1Plugin.d.ts.map +1 -1
- package/dist/editor/useP1Plugin.js +4 -0
- package/dist/editor/useP1Plugin.js.map +1 -1
- package/dist/editor/useRealtime.d.ts +9 -4
- package/dist/editor/useRealtime.d.ts.map +1 -1
- package/dist/editor/useRealtime.js +11 -6
- package/dist/editor/useRealtime.js.map +1 -1
- package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts +20 -0
- package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts.map +1 -0
- package/dist/features/content-type-templates/editor/useTemplateEditor.js +62 -0
- package/dist/features/content-type-templates/editor/useTemplateEditor.js.map +1 -0
- package/dist/features/content-type-templates/editor/useTemplatePermissions.d.ts +7 -0
- package/dist/features/content-type-templates/editor/useTemplatePermissions.d.ts.map +1 -0
- package/dist/features/content-type-templates/editor/useTemplatePermissions.js +12 -0
- package/dist/features/content-type-templates/editor/useTemplatePermissions.js.map +1 -0
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts +19 -0
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts.map +1 -0
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js +37 -0
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js.map +1 -0
- package/dist/features/content-type-templates/hooks/useTemplateList.d.ts +41 -0
- package/dist/features/content-type-templates/hooks/useTemplateList.d.ts.map +1 -0
- package/dist/features/content-type-templates/hooks/useTemplateList.js +72 -0
- package/dist/features/content-type-templates/hooks/useTemplateList.js.map +1 -0
- package/dist/features/content-type-templates/index.d.ts +18 -0
- package/dist/features/content-type-templates/index.d.ts.map +1 -0
- package/dist/features/content-type-templates/index.js +13 -0
- package/dist/features/content-type-templates/index.js.map +1 -0
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +68 -0
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -0
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js +90 -0
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -0
- package/dist/features/content-type-templates/permissions/role-permissions.d.ts +49 -0
- package/dist/features/content-type-templates/permissions/role-permissions.d.ts.map +1 -0
- package/dist/features/content-type-templates/permissions/role-permissions.js +79 -0
- package/dist/features/content-type-templates/permissions/role-permissions.js.map +1 -0
- package/dist/features/content-type-templates/permissions/useContentRole.d.ts +37 -0
- package/dist/features/content-type-templates/permissions/useContentRole.d.ts.map +1 -0
- package/dist/features/content-type-templates/permissions/useContentRole.js +34 -0
- package/dist/features/content-type-templates/permissions/useContentRole.js.map +1 -0
- package/dist/features/content-type-templates/permissions/useResolveContentRole.d.ts +38 -0
- package/dist/features/content-type-templates/permissions/useResolveContentRole.d.ts.map +1 -0
- package/dist/features/content-type-templates/permissions/useResolveContentRole.js +83 -0
- package/dist/features/content-type-templates/permissions/useResolveContentRole.js.map +1 -0
- package/dist/features/content-type-templates/stores/index.d.ts +9 -0
- package/dist/features/content-type-templates/stores/index.d.ts.map +1 -0
- package/dist/features/content-type-templates/stores/index.js +8 -0
- package/dist/features/content-type-templates/stores/index.js.map +1 -0
- package/dist/features/content-type-templates/stores/template-store-api.d.ts +17 -0
- package/dist/features/content-type-templates/stores/template-store-api.d.ts.map +1 -0
- package/dist/features/content-type-templates/stores/template-store-api.js +56 -0
- package/dist/features/content-type-templates/stores/template-store-api.js.map +1 -0
- package/dist/features/content-type-templates/stores/template-store.d.ts +54 -0
- package/dist/features/content-type-templates/stores/template-store.d.ts.map +1 -0
- package/dist/features/content-type-templates/stores/template-store.js +80 -0
- package/dist/features/content-type-templates/stores/template-store.js.map +1 -0
- package/dist/features/content-type-templates/types.d.ts +114 -0
- package/dist/features/content-type-templates/types.d.ts.map +1 -0
- package/dist/features/content-type-templates/types.js +7 -0
- package/dist/features/content-type-templates/types.js.map +1 -0
- package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts +3 -0
- package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js +77 -0
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts +18 -0
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js +167 -0
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js.map +1 -0
- package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts +18 -0
- package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/TemplatePinPanel.js +11 -0
- package/dist/features/content-type-templates/ui/TemplatePinPanel.js.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateSelector.d.ts +41 -0
- package/dist/features/content-type-templates/ui/TemplateSelector.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateSelector.js +32 -0
- package/dist/features/content-type-templates/ui/TemplateSelector.js.map +1 -0
- package/dist/features/content-type-templates/ui/dataToTemplate.d.ts +25 -0
- package/dist/features/content-type-templates/ui/dataToTemplate.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/dataToTemplate.js +37 -0
- package/dist/features/content-type-templates/ui/dataToTemplate.js.map +1 -0
- package/dist/features/content-type-templates/validation/structural-validation.d.ts +29 -0
- package/dist/features/content-type-templates/validation/structural-validation.d.ts.map +1 -0
- package/dist/features/content-type-templates/validation/structural-validation.js +69 -0
- package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
- package/dist/p1/editor/connect/connect-field-modal.js +23 -1
- package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
- package/dist/p1/editor/connect/field-connect-plugin.d.ts.map +1 -1
- package/dist/p1/editor/connect/field-connect-plugin.js +2 -6
- package/dist/p1/editor/connect/field-connect-plugin.js.map +1 -1
- package/dist/p1/pages/conflict-resolution-panel.d.ts +17 -0
- package/dist/p1/pages/conflict-resolution-panel.d.ts.map +1 -0
- package/dist/p1/pages/conflict-resolution-panel.js +74 -0
- package/dist/p1/pages/conflict-resolution-panel.js.map +1 -0
- package/dist/p1/pages/content-type-template-list.d.ts +7 -0
- package/dist/p1/pages/content-type-template-list.d.ts.map +1 -0
- package/dist/p1/pages/content-type-template-list.js +108 -0
- package/dist/p1/pages/content-type-template-list.js.map +1 -0
- package/dist/p1/pages/create-content-type-form.d.ts +7 -0
- package/dist/p1/pages/create-content-type-form.d.ts.map +1 -0
- package/dist/p1/pages/create-content-type-form.js +102 -0
- package/dist/p1/pages/create-content-type-form.js.map +1 -0
- package/dist/p1/pages/create-page-form.d.ts +8 -1
- package/dist/p1/pages/create-page-form.d.ts.map +1 -1
- package/dist/p1/pages/create-page-form.js +67 -8
- package/dist/p1/pages/create-page-form.js.map +1 -1
- package/dist/p1/pages/create-template-form.d.ts +6 -1
- package/dist/p1/pages/create-template-form.d.ts.map +1 -1
- package/dist/p1/pages/create-template-form.js +61 -15
- package/dist/p1/pages/create-template-form.js.map +1 -1
- package/dist/p1/pages/hooks.d.ts +6 -1
- package/dist/p1/pages/hooks.d.ts.map +1 -1
- package/dist/p1/pages/hooks.js +13 -2
- package/dist/p1/pages/hooks.js.map +1 -1
- package/dist/p1/pages/index.d.ts +5 -0
- package/dist/p1/pages/index.d.ts.map +1 -1
- package/dist/p1/pages/index.js +5 -0
- package/dist/p1/pages/index.js.map +1 -1
- package/dist/p1/pages/migration-conflict-queue.d.ts +8 -0
- package/dist/p1/pages/migration-conflict-queue.d.ts.map +1 -0
- package/dist/p1/pages/migration-conflict-queue.js +62 -0
- package/dist/p1/pages/migration-conflict-queue.js.map +1 -0
- package/dist/p1/pages/migration-preview-panel.d.ts +12 -0
- package/dist/p1/pages/migration-preview-panel.d.ts.map +1 -0
- package/dist/p1/pages/migration-preview-panel.js +157 -0
- package/dist/p1/pages/migration-preview-panel.js.map +1 -0
- package/dist/p1/pages/migration-status-panel.d.ts +7 -0
- package/dist/p1/pages/migration-status-panel.d.ts.map +1 -0
- package/dist/p1/pages/migration-status-panel.js +198 -0
- package/dist/p1/pages/migration-status-panel.js.map +1 -0
- package/dist/p1/pages/structure-page.d.ts.map +1 -1
- package/dist/p1/pages/structure-page.js +75 -18
- package/dist/p1/pages/structure-page.js.map +1 -1
- package/dist/p1/pages/structure-tabs.d.ts +11 -0
- package/dist/p1/pages/structure-tabs.d.ts.map +1 -0
- package/dist/p1/pages/structure-tabs.js +45 -0
- package/dist/p1/pages/structure-tabs.js.map +1 -0
- package/dist/pds/components/P1EditorHeader.d.ts +8 -9
- package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorHeader.js +20 -52
- package/dist/pds/components/P1EditorHeader.js.map +1 -1
- package/dist/pds/components/P1EditorHeader.module.css +43 -17
- package/dist/pds/components/P1EditorSubheader.d.ts +10 -1
- package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorSubheader.js +4 -3
- package/dist/pds/components/P1EditorSubheader.js.map +1 -1
- package/dist/pds/components/P1EditorSubheader.module.css +31 -2
- package/dist/pds/components/PageNavigator.d.ts +7 -2
- package/dist/pds/components/PageNavigator.d.ts.map +1 -1
- package/dist/pds/components/PageNavigator.js +28 -7
- package/dist/pds/components/PageNavigator.js.map +1 -1
- package/dist/pds/components/PageNavigator.module.css +70 -0
- package/dist/pds/components/PublishControl.d.ts +4 -1
- package/dist/pds/components/PublishControl.d.ts.map +1 -1
- package/dist/pds/components/PublishControl.js +27 -10
- package/dist/pds/components/PublishControl.js.map +1 -1
- package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -1
- package/dist/pds/components/WorkstreamSwitcher.js +8 -3
- package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
- package/dist/pds/components/WorkstreamSwitcher.module.css +12 -2
- package/package.json +16 -16
- package/src/styles.css +364 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* TemplateManagerOverlay
|
|
4
|
+
*
|
|
5
|
+
* Full-screen overlay for managing content type templates.
|
|
6
|
+
* Provides a list view of templates and a Puck-based editor for
|
|
7
|
+
* creating and editing templates.
|
|
8
|
+
*/
|
|
9
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
10
|
+
import { createPortal } from 'react-dom';
|
|
11
|
+
import { useTemplateList } from '../hooks/useTemplateList.js';
|
|
12
|
+
import { scaffoldFromTemplate } from '../editor/useTemplateScaffold.js';
|
|
13
|
+
import { TemplatePinPanel } from './TemplatePinPanel.js';
|
|
14
|
+
import { dataToCreateParams, dataToUpdateParams } from './dataToTemplate.js';
|
|
15
|
+
export function TemplateManagerOverlay({ client, siteId, branchId, puckConfig, onClose, }) {
|
|
16
|
+
const { templates, loading, refresh } = useTemplateList(client, siteId, branchId);
|
|
17
|
+
const [mode, setMode] = useState('list');
|
|
18
|
+
const [editingTemplate, setEditingTemplate] = useState(null);
|
|
19
|
+
const [saving, setSaving] = useState(false);
|
|
20
|
+
const [error, setError] = useState(null);
|
|
21
|
+
// Editor state
|
|
22
|
+
const [editorData, setEditorData] = useState({
|
|
23
|
+
content: [],
|
|
24
|
+
root: { props: {} },
|
|
25
|
+
});
|
|
26
|
+
const [pinMap, setPinMap] = useState(new Map());
|
|
27
|
+
const [metadata, setMetadata] = useState({
|
|
28
|
+
name: '',
|
|
29
|
+
label: '',
|
|
30
|
+
description: '',
|
|
31
|
+
});
|
|
32
|
+
const handleCreate = useCallback(() => {
|
|
33
|
+
setMode('create');
|
|
34
|
+
setEditingTemplate(null);
|
|
35
|
+
setEditorData({ content: [], root: { props: {} } });
|
|
36
|
+
setPinMap(new Map());
|
|
37
|
+
setMetadata({ name: '', label: '', description: '' });
|
|
38
|
+
setError(null);
|
|
39
|
+
}, []);
|
|
40
|
+
const handleEdit = useCallback((template) => {
|
|
41
|
+
setMode('edit');
|
|
42
|
+
setEditingTemplate(template);
|
|
43
|
+
const data = scaffoldFromTemplate(template);
|
|
44
|
+
setEditorData(data);
|
|
45
|
+
const newPinMap = new Map();
|
|
46
|
+
data.content.forEach((comp, idx) => {
|
|
47
|
+
const compId = comp.props.id;
|
|
48
|
+
newPinMap.set(compId, (template.components ?? [])[idx]?.pinned ?? false);
|
|
49
|
+
});
|
|
50
|
+
setPinMap(newPinMap);
|
|
51
|
+
setMetadata({
|
|
52
|
+
name: template.name,
|
|
53
|
+
label: template.label,
|
|
54
|
+
description: template.description ?? '',
|
|
55
|
+
defaultUrlPattern: template.defaultUrlPattern ?? '',
|
|
56
|
+
});
|
|
57
|
+
setError(null);
|
|
58
|
+
}, []);
|
|
59
|
+
const handleDelete = useCallback(async (templateId) => {
|
|
60
|
+
if (!window.confirm('Delete this template? Documents using it will not be affected.'))
|
|
61
|
+
return;
|
|
62
|
+
try {
|
|
63
|
+
await client.templates.delete(siteId, branchId, templateId);
|
|
64
|
+
await refresh();
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
setError(err instanceof Error ? err.message : 'Failed to delete template');
|
|
68
|
+
}
|
|
69
|
+
}, [client, siteId, branchId, refresh]);
|
|
70
|
+
const handleSave = useCallback(async () => {
|
|
71
|
+
if (!metadata.name.trim() || !metadata.label.trim()) {
|
|
72
|
+
setError('Name and label are required');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const pattern = metadata.defaultUrlPattern?.trim() ?? '';
|
|
76
|
+
if (pattern && !pattern.startsWith('/')) {
|
|
77
|
+
setError('URL pattern must start with /');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (pattern && /[?#]/.test(pattern)) {
|
|
81
|
+
setError('URL pattern must not contain ? or #');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (saving)
|
|
85
|
+
return;
|
|
86
|
+
setSaving(true);
|
|
87
|
+
setError(null);
|
|
88
|
+
try {
|
|
89
|
+
if (mode === 'create') {
|
|
90
|
+
const params = dataToCreateParams(editorData, pinMap, metadata);
|
|
91
|
+
await client.templates.create(siteId, branchId, params);
|
|
92
|
+
}
|
|
93
|
+
else if (editingTemplate) {
|
|
94
|
+
const params = dataToUpdateParams(editorData, pinMap, metadata);
|
|
95
|
+
await client.templates.update(siteId, branchId, editingTemplate.id, params);
|
|
96
|
+
}
|
|
97
|
+
await refresh();
|
|
98
|
+
setMode('list');
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
setError(err instanceof Error ? err.message : 'Failed to save template');
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
setSaving(false);
|
|
105
|
+
}
|
|
106
|
+
}, [mode, editingTemplate, editorData, pinMap, metadata, client, siteId, branchId, refresh]);
|
|
107
|
+
const handleCancel = useCallback(() => {
|
|
108
|
+
setMode('list');
|
|
109
|
+
setEditingTemplate(null);
|
|
110
|
+
setError(null);
|
|
111
|
+
}, []);
|
|
112
|
+
const handleTogglePin = useCallback((componentId, pinned) => {
|
|
113
|
+
setPinMap((prev) => {
|
|
114
|
+
const next = new Map(prev);
|
|
115
|
+
next.set(componentId, pinned);
|
|
116
|
+
return next;
|
|
117
|
+
});
|
|
118
|
+
}, []);
|
|
119
|
+
const handlePuckChange = useCallback((data) => {
|
|
120
|
+
const d = data;
|
|
121
|
+
setEditorData(d);
|
|
122
|
+
// Preserve pin state for existing components, default new ones to unpinned
|
|
123
|
+
setPinMap((prev) => {
|
|
124
|
+
const next = new Map();
|
|
125
|
+
for (const comp of d.content) {
|
|
126
|
+
const id = comp.props.id;
|
|
127
|
+
next.set(id, prev.get(id) ?? false);
|
|
128
|
+
}
|
|
129
|
+
return next;
|
|
130
|
+
});
|
|
131
|
+
}, []);
|
|
132
|
+
// Close on Escape
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
const handler = (e) => {
|
|
135
|
+
if (e.key === 'Escape') {
|
|
136
|
+
if (mode === 'list')
|
|
137
|
+
onClose();
|
|
138
|
+
else
|
|
139
|
+
handleCancel();
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
window.addEventListener('keydown', handler);
|
|
143
|
+
return () => window.removeEventListener('keydown', handler);
|
|
144
|
+
}, [mode, onClose, handleCancel]);
|
|
145
|
+
const components = editorData.content.map((c) => ({
|
|
146
|
+
id: c.props.id,
|
|
147
|
+
type: c.type,
|
|
148
|
+
}));
|
|
149
|
+
const overlay = (_jsxs("div", { className: "template-manager-overlay", role: "dialog", "aria-label": "Template Manager", children: [_jsxs("div", { className: "template-manager-overlay__header", children: [_jsx("h2", { className: "template-manager-overlay__title", children: mode === 'list' ? 'Manage Templates' : mode === 'create' ? 'New Template' : `Edit: ${editingTemplate?.label}` }), _jsx("button", { type: "button", className: "template-manager-overlay__close", onClick: mode === 'list' ? onClose : handleCancel, "aria-label": "Close template manager", children: mode === 'list' ? '×' : '← Back' })] }), error && (_jsx("div", { role: "alert", className: "template-manager-overlay__error", children: error })), mode === 'list' ? (_jsxs("div", { className: "template-manager-overlay__list", children: [_jsx("button", { type: "button", className: "pds-button pds-button--primary", onClick: handleCreate, children: "+ New Template" }), loading ? (_jsx("div", { className: "template-manager-overlay__loading", children: "Loading templates..." })) : templates.length === 0 ? (_jsx("div", { className: "template-manager-overlay__empty", children: "No templates yet. Create one to get started." })) : (_jsx("ul", { className: "template-manager-overlay__template-list", children: templates.map((t) => (_jsxs("li", { className: "template-manager-overlay__template-item", children: [_jsxs("div", { className: "template-manager-overlay__template-info", children: [_jsx("span", { className: "template-manager-overlay__template-label", children: t.label || t.name }), _jsxs("span", { className: "template-manager-overlay__template-meta", children: [(t.components ?? []).length, " component", (t.components ?? []).length !== 1 ? 's' : '', " \u00B7 v", t.version] })] }), _jsxs("div", { className: "template-manager-overlay__template-actions", children: [_jsx("button", { type: "button", className: "pds-button pds-button--secondary pds-button--sm", onClick: () => handleEdit(t), children: "Edit" }), _jsx("button", { type: "button", className: "pds-button pds-button--critical-secondary pds-button--sm", onClick: () => handleDelete(t.id), "aria-label": `Delete ${t.label}`, children: "Delete" })] })] }, t.id))) }))] })) : (_jsxs("div", { className: "template-manager-overlay__editor", children: [_jsxs("div", { className: "template-manager-overlay__editor-sidebar", children: [_jsxs("div", { className: "template-manager-overlay__metadata", children: [_jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Name" }), _jsx("input", { type: "text", value: metadata.name, onChange: (e) => setMetadata((m) => ({ ...m, name: e.target.value })), placeholder: "blog-post", disabled: mode === 'edit', className: "template-manager-overlay__input" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Label" }), _jsx("input", { type: "text", value: metadata.label, onChange: (e) => setMetadata((m) => ({ ...m, label: e.target.value })), placeholder: "Blog Post", className: "template-manager-overlay__input" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Description" }), _jsx("textarea", { value: metadata.description, onChange: (e) => setMetadata((m) => ({ ...m, description: e.target.value })), placeholder: "Optional description", rows: 2, className: "template-manager-overlay__textarea" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Default URL pattern" }), _jsx("input", { type: "text", value: metadata.defaultUrlPattern ?? '', onChange: (e) => setMetadata((m) => ({ ...m, defaultUrlPattern: e.target.value })), placeholder: "/blog/:year/:month/:slug", className: "template-manager-overlay__input" })] })] }), _jsx(TemplatePinPanel, { components: components, pinMap: pinMap, onTogglePin: handleTogglePin }), _jsxs("div", { className: "template-manager-overlay__save-actions", children: [_jsx("button", { type: "button", className: "pds-button pds-button--primary", onClick: handleSave, disabled: saving, children: saving ? 'Saving...' : mode === 'create' ? 'Create Template' : 'Save Changes' }), _jsx("button", { type: "button", className: "pds-button pds-button--secondary", onClick: handleCancel, children: "Cancel" })] })] }), _jsx("div", { className: "template-manager-overlay__editor-canvas", children: _jsx(PuckEditor, { config: puckConfig, data: editorData, onChange: handlePuckChange }) })] }))] }));
|
|
150
|
+
return createPortal(overlay, document.body);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Wrapper that lazily loads and renders Puck for template editing.
|
|
154
|
+
*/
|
|
155
|
+
function PuckEditor({ config, data, onChange, }) {
|
|
156
|
+
const [Puck, setPuck] = useState(null);
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
import('@puckeditor/core').then((mod) => {
|
|
159
|
+
setPuck(() => mod.Puck);
|
|
160
|
+
});
|
|
161
|
+
}, []);
|
|
162
|
+
if (!Puck) {
|
|
163
|
+
return _jsx("div", { className: "template-manager-overlay__puck-loading", children: "Loading editor..." });
|
|
164
|
+
}
|
|
165
|
+
return _jsx(Puck, { config: config, data: data, onChange: onChange });
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=TemplateManagerOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateManagerOverlay.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateManagerOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TemplatePinPanel
|
|
3
|
+
*
|
|
4
|
+
* Displays a list of components in the template editor with pin toggles.
|
|
5
|
+
* Admins use this to mark which components are "pinned" (locked in position).
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
export interface TemplatePinPanelComponent {
|
|
9
|
+
id: string;
|
|
10
|
+
type: string;
|
|
11
|
+
}
|
|
12
|
+
export interface TemplatePinPanelProps {
|
|
13
|
+
components: TemplatePinPanelComponent[];
|
|
14
|
+
pinMap: Map<string, boolean>;
|
|
15
|
+
onTogglePin: (componentId: string, pinned: boolean) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function TemplatePinPanel({ components, pinMap, onTogglePin, }: TemplatePinPanelProps): React.ReactElement;
|
|
18
|
+
//# sourceMappingURL=TemplatePinPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplatePinPanel.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplatePinPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,MAAM,EACN,WAAW,GACZ,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAgC5C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function TemplatePinPanel({ components, pinMap, onTogglePin, }) {
|
|
3
|
+
if (components.length === 0) {
|
|
4
|
+
return (_jsx("div", { className: "template-pin-panel template-pin-panel--empty", children: _jsx("p", { children: "No components added yet. Drag components into the canvas to build your template." }) }));
|
|
5
|
+
}
|
|
6
|
+
return (_jsxs("div", { className: "template-pin-panel", children: [_jsx("div", { className: "template-pin-panel__header", children: "Components" }), _jsx("ul", { className: "template-pin-panel__list", children: components.map((comp) => {
|
|
7
|
+
const isPinned = pinMap.get(comp.id) ?? false;
|
|
8
|
+
return (_jsxs("li", { className: "template-pin-panel__item", children: [_jsx("span", { className: "template-pin-panel__type", children: comp.type }), _jsxs("label", { className: "template-pin-panel__pin-label", children: [_jsx("input", { type: "checkbox", checked: isPinned, onChange: (e) => onTogglePin(comp.id, e.target.checked) }), "Pinned"] })] }, comp.id));
|
|
9
|
+
}) })] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=TemplatePinPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplatePinPanel.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplatePinPanel.tsx"],"names":[],"mappings":";AAoBA,MAAM,UAAU,gBAAgB,CAAC,EAC/B,UAAU,EACV,MAAM,EACN,WAAW,GACW;IACtB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,cAAK,SAAS,EAAC,8CAA8C,YAC3D,2GAAuF,GACnF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,cAAK,SAAS,EAAC,4BAA4B,2BAAiB,EAC5D,aAAI,SAAS,EAAC,0BAA0B,YACrC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;oBAC9C,OAAO,CACL,cAAkB,SAAS,EAAC,0BAA0B,aACpD,eAAM,SAAS,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC7D,iBAAO,SAAS,EAAC,+BAA+B,aAC9C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACvD,cAEI,KATD,IAAI,CAAC,EAAE,CAUX,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TemplateSelector Component
|
|
3
|
+
*
|
|
4
|
+
* UI for selecting a template when creating a new document.
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import type { P1Client } from '@pantheon-systems/css-client';
|
|
8
|
+
import type { Template } from '../types.js';
|
|
9
|
+
export interface TemplateSelectorProps {
|
|
10
|
+
/** P1Client instance */
|
|
11
|
+
client: P1Client;
|
|
12
|
+
/** Site ID */
|
|
13
|
+
siteId: string;
|
|
14
|
+
/** Branch ID */
|
|
15
|
+
branchId: string;
|
|
16
|
+
/** Callback when template is selected (null for blank page) */
|
|
17
|
+
onSelect: (template: Template | null) => void;
|
|
18
|
+
/** Currently selected template ID */
|
|
19
|
+
selectedTemplateId?: string | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Template selector component for document creation.
|
|
23
|
+
*
|
|
24
|
+
* Displays a list of available templates plus a "Blank Page" option.
|
|
25
|
+
* Uses PDS button and card styles.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const [selectedTemplate, setSelectedTemplate] = useState<Template | null>(null);
|
|
30
|
+
*
|
|
31
|
+
* <TemplateSelector
|
|
32
|
+
* client={client}
|
|
33
|
+
* siteId={siteId}
|
|
34
|
+
* branchId={branchId}
|
|
35
|
+
* onSelect={setSelectedTemplate}
|
|
36
|
+
* selectedTemplateId={selectedTemplate?.id}
|
|
37
|
+
* />
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function TemplateSelector({ client, siteId, branchId, onSelect, selectedTemplateId, }: TemplateSelectorProps): React.ReactElement;
|
|
41
|
+
//# sourceMappingURL=TemplateSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateSelector.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateSelector.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACnB,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAgE5C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTemplateList } from '../hooks/useTemplateList.js';
|
|
3
|
+
/**
|
|
4
|
+
* Template selector component for document creation.
|
|
5
|
+
*
|
|
6
|
+
* Displays a list of available templates plus a "Blank Page" option.
|
|
7
|
+
* Uses PDS button and card styles.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const [selectedTemplate, setSelectedTemplate] = useState<Template | null>(null);
|
|
12
|
+
*
|
|
13
|
+
* <TemplateSelector
|
|
14
|
+
* client={client}
|
|
15
|
+
* siteId={siteId}
|
|
16
|
+
* branchId={branchId}
|
|
17
|
+
* onSelect={setSelectedTemplate}
|
|
18
|
+
* selectedTemplateId={selectedTemplate?.id}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function TemplateSelector({ client, siteId, branchId, onSelect, selectedTemplateId, }) {
|
|
23
|
+
const { templates, loading, error } = useTemplateList(client, siteId, branchId);
|
|
24
|
+
if (loading) {
|
|
25
|
+
return (_jsx("div", { className: "template-selector template-selector--loading", children: _jsx("div", { className: "template-selector__loading-message", children: "Loading templates..." }) }));
|
|
26
|
+
}
|
|
27
|
+
if (error) {
|
|
28
|
+
return (_jsx("div", { className: "template-selector template-selector--error", children: _jsxs("div", { className: "template-selector__error-message", children: [_jsx("strong", { children: "Error loading templates" }), _jsx("p", { children: error.message })] }) }));
|
|
29
|
+
}
|
|
30
|
+
return (_jsx("div", { className: "template-selector", children: _jsxs("div", { className: "template-selector__grid", children: [_jsx("button", { type: "button", className: "template-selector__option pds-button pds-button--subtle", onClick: () => onSelect(null), "aria-pressed": selectedTemplateId === null || selectedTemplateId === undefined, children: _jsxs("div", { className: "template-selector__option-content", children: [_jsx("div", { className: "template-selector__option-label", children: "Blank Page" }), _jsx("div", { className: "template-selector__option-description", children: "Start from scratch with no template" })] }) }), templates.filter((t) => !t.deprecated).map((template) => (_jsx("button", { type: "button", className: "template-selector__option pds-button pds-button--subtle", onClick: () => onSelect(template), "aria-pressed": selectedTemplateId === template.id, children: _jsxs("div", { className: "template-selector__option-content", children: [_jsx("div", { className: "template-selector__option-label", children: template.label }), template.description && (_jsx("div", { className: "template-selector__option-description", children: template.description }))] }) }, template.id)))] }) }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=TemplateSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateSelector.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateSelector.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAe9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACI;IACtB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,cAAK,SAAS,EAAC,8CAA8C,YAC3D,cAAK,SAAS,EAAC,oCAAoC,qCAE7C,GACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,cAAK,SAAS,EAAC,4CAA4C,YACzD,eAAK,SAAS,EAAC,kCAAkC,aAC/C,uDAAwC,EACxC,sBAAI,KAAK,CAAC,OAAO,GAAK,IAClB,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAK,SAAS,EAAC,yBAAyB,aAEtC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,kBACf,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,SAAS,YAE7E,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,iCAAiC,2BAAiB,EACjE,cAAK,SAAS,EAAC,uCAAuC,oDAEhD,IACF,GACC,EAGR,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACxD,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBACnB,kBAAkB,KAAK,QAAQ,CAAC,EAAE,YAEhD,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,iCAAiC,YAAE,QAAQ,CAAC,KAAK,GAAO,EACtE,QAAQ,CAAC,WAAW,IAAI,CACvB,cAAK,SAAS,EAAC,uCAAuC,YACnD,QAAQ,CAAC,WAAW,GACjB,CACP,IACG,IAbD,QAAQ,CAAC,EAAE,CAcT,CACV,CAAC,IACE,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert Puck data + pin map to template creation/update params.
|
|
3
|
+
*/
|
|
4
|
+
import type { CreateTemplateParams, UpdateTemplateParams } from '../types.js';
|
|
5
|
+
interface PuckComponent {
|
|
6
|
+
type: string;
|
|
7
|
+
props: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
interface PuckDataShape {
|
|
10
|
+
content: PuckComponent[];
|
|
11
|
+
root: {
|
|
12
|
+
props: Record<string, unknown>;
|
|
13
|
+
};
|
|
14
|
+
zones?: Record<string, PuckComponent[]>;
|
|
15
|
+
}
|
|
16
|
+
export interface TemplateMetadataInput {
|
|
17
|
+
name: string;
|
|
18
|
+
label: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
defaultUrlPattern?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function dataToCreateParams(data: PuckDataShape, pinMap: Map<string, boolean>, metadata: TemplateMetadataInput): CreateTemplateParams;
|
|
23
|
+
export declare function dataToUpdateParams(data: PuckDataShape, pinMap: Map<string, boolean>, metadata: Partial<TemplateMetadataInput>): UpdateTemplateParams;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=dataToTemplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataToTemplate.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/dataToTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAqB,MAAM,aAAa,CAAC;AAEjG,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,qBAAqB,GAC9B,oBAAoB,CAiBtB;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACvC,oBAAoB,CAgBtB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert Puck data + pin map to template creation/update params.
|
|
3
|
+
*/
|
|
4
|
+
export function dataToCreateParams(data, pinMap, metadata) {
|
|
5
|
+
const components = data.content.map((comp) => {
|
|
6
|
+
const { id: _id, ...defaultProps } = comp.props;
|
|
7
|
+
return {
|
|
8
|
+
type: comp.type,
|
|
9
|
+
pinned: pinMap.get(comp.props.id) ?? false,
|
|
10
|
+
defaultProps,
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
name: metadata.name,
|
|
15
|
+
label: metadata.label,
|
|
16
|
+
description: metadata.description,
|
|
17
|
+
defaultUrlPattern: metadata.defaultUrlPattern,
|
|
18
|
+
components,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function dataToUpdateParams(data, pinMap, metadata) {
|
|
22
|
+
const components = data.content.map((comp) => {
|
|
23
|
+
const { id: _id, ...defaultProps } = comp.props;
|
|
24
|
+
return {
|
|
25
|
+
type: comp.type,
|
|
26
|
+
pinned: pinMap.get(comp.props.id) ?? false,
|
|
27
|
+
defaultProps,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
label: metadata.label,
|
|
32
|
+
description: metadata.description,
|
|
33
|
+
defaultUrlPattern: metadata.defaultUrlPattern,
|
|
34
|
+
components,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=dataToTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataToTemplate.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/dataToTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAA4B,EAC5B,QAA+B;IAE/B,MAAM,UAAU,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAY,CAAC,IAAI,KAAK;YACpD,YAAY;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAA4B,EAC5B,QAAwC;IAExC,MAAM,UAAU,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAY,CAAC,IAAI,KAAK;YACpD,YAAY;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates that a document conforms to its template's structural requirements.
|
|
5
|
+
*/
|
|
6
|
+
import type { Data } from '@puckeditor/core';
|
|
7
|
+
import type { Template } from '../types.js';
|
|
8
|
+
export type ValidationErrorCode = 'MISSING_PINNED_COMPONENT' | 'PINNED_COMPONENT_OUT_OF_ORDER' | 'UNEXPECTED_COMPONENT_AT_PINNED_SLOT';
|
|
9
|
+
export interface ValidationError {
|
|
10
|
+
code: ValidationErrorCode;
|
|
11
|
+
message: string;
|
|
12
|
+
componentType?: string;
|
|
13
|
+
expectedIndex?: number;
|
|
14
|
+
actualIndex?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ValidationResult {
|
|
17
|
+
valid: boolean;
|
|
18
|
+
errors: ValidationError[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate that document data conforms to template structure.
|
|
22
|
+
*
|
|
23
|
+
* A document conforms if:
|
|
24
|
+
* - All pinned components from template are present
|
|
25
|
+
* - Pinned components appear in the same relative order
|
|
26
|
+
* - Extra non-pinned components are allowed
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateStructure(data: Data, template: Template): ValidationResult;
|
|
29
|
+
//# sourceMappingURL=structural-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structural-validation.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/validation/structural-validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,+BAA+B,GAC/B,qCAAqC,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,CA2DlF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates that a document conforms to its template's structural requirements.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Validate that document data conforms to template structure.
|
|
8
|
+
*
|
|
9
|
+
* A document conforms if:
|
|
10
|
+
* - All pinned components from template are present
|
|
11
|
+
* - Pinned components appear in the same relative order
|
|
12
|
+
* - Extra non-pinned components are allowed
|
|
13
|
+
*/
|
|
14
|
+
export function validateStructure(data, template) {
|
|
15
|
+
const errors = [];
|
|
16
|
+
const pinnedComponents = (template.components ?? []).filter((c) => c.pinned);
|
|
17
|
+
if (pinnedComponents.length === 0) {
|
|
18
|
+
// No structural requirements
|
|
19
|
+
return { valid: true, errors: [] };
|
|
20
|
+
}
|
|
21
|
+
// Build a list of pinned component types in template order
|
|
22
|
+
const expectedTypes = pinnedComponents.map((c) => c.type);
|
|
23
|
+
const documentTypes = data.content.map((c) => c.type);
|
|
24
|
+
const foundIndices = [];
|
|
25
|
+
const usedIndices = new Set();
|
|
26
|
+
for (const expectedType of expectedTypes) {
|
|
27
|
+
let idx = -1;
|
|
28
|
+
for (let j = 0; j < documentTypes.length; j++) {
|
|
29
|
+
if (documentTypes[j] === expectedType && !usedIndices.has(j)) {
|
|
30
|
+
idx = j;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (idx !== -1)
|
|
35
|
+
usedIndices.add(idx);
|
|
36
|
+
foundIndices.push(idx);
|
|
37
|
+
}
|
|
38
|
+
// Check for missing components and order
|
|
39
|
+
for (let i = 0; i < expectedTypes.length; i++) {
|
|
40
|
+
const expectedType = expectedTypes[i];
|
|
41
|
+
const foundIndex = foundIndices[i];
|
|
42
|
+
if (foundIndex === undefined || foundIndex === -1) {
|
|
43
|
+
errors.push({
|
|
44
|
+
code: 'MISSING_PINNED_COMPONENT',
|
|
45
|
+
message: `Missing required pinned component: ${expectedType}`,
|
|
46
|
+
componentType: expectedType,
|
|
47
|
+
expectedIndex: i,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const prevIndex = foundIndices[i - 1];
|
|
52
|
+
if (i > 0 && prevIndex !== undefined && prevIndex !== -1 && foundIndex < prevIndex) {
|
|
53
|
+
// Current component found before previous one - out of order
|
|
54
|
+
errors.push({
|
|
55
|
+
code: 'PINNED_COMPONENT_OUT_OF_ORDER',
|
|
56
|
+
message: `Pinned component out of order: ${expectedType}`,
|
|
57
|
+
componentType: expectedType,
|
|
58
|
+
expectedIndex: i,
|
|
59
|
+
actualIndex: foundIndex,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
valid: errors.length === 0,
|
|
66
|
+
errors,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=structural-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structural-validation.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/validation/structural-validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,QAAkB;IAC9D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,6BAA6B;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,GAAG,CAAC,CAAC;gBACR,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,yCAAyC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,sCAAsC,YAAY,EAAE;gBAC7D,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;gBACnF,6DAA6D;gBAC7D,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,+BAA+B;oBACrC,OAAO,EAAE,kCAAkC,YAAY,EAAE;oBACzD,aAAa,EAAE,YAAY;oBAC3B,aAAa,EAAE,CAAC;oBAChB,WAAW,EAAE,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { P1App } from './editor/P1App.js';
|
|
7
7
|
export type { P1AppProps } from './editor/P1App.js';
|
|
8
|
-
export { createP1Config, createNextConfig, createNextContentClient } from './core/config.js';
|
|
8
|
+
export { createP1Config, createNextConfig, createNextContentClient, PRODUCTION_BASE_URL } from './core/config.js';
|
|
9
9
|
export type { P1Config } from './core/config.js';
|
|
10
10
|
export { toP1Path } from './editor/utils/path.js';
|
|
11
11
|
export { P1AuthProvider, useP1Auth, DEMO_USERS, P1LoginPage, } from './auth/index.js';
|
|
@@ -118,4 +118,11 @@ export { Connectable, renderItemTemplate } from './editor/components/connectable
|
|
|
118
118
|
export type { ConnectableItem, ConnectedItem } from './editor/components/connectable.js';
|
|
119
119
|
export { EditorClient, createRemoteDatasourceExplorerPlugin, createFieldConnectPlugin, wrapConfigForEditorPreview, createPreviewResolvePlugin, buildConnectPreviewConfig, ConnectPreviewHitStyles, ConnectFieldModal, TemplateAutocompleteLayer, useRemoteDatasources, useResolvePreview, usePublish, useSaveRemoteDatasource, useRemoveRemoteDatasource, useSavePreviewMeta, useLoadPageData, useEditorContext, useRemoteDatasourceContext, useP1Plugins, } from './p1/editor/index.js';
|
|
120
120
|
export { RenderClient, CreatePageForm, CreateTemplateForm, AddOverrideForTemplate, DeleteStructureRowButton, useCreateStructure, useDeleteStructurePage, } from './p1/pages/index.js';
|
|
121
|
+
export type { ContentRole, TemplateMetadata, TemplateComponent, Template, TemplateBinding, CreateTemplateParams, UpdateTemplateParams, TemplateDocument, TemplateStore, ComponentPermissions, UseContentRoleReturn, } from './features/content-type-templates/index.js';
|
|
122
|
+
export { createInMemoryTemplateStore, createApiTemplateStore, getPermissionsForRole, canPerformStructuralAction, canEditProps, canOverrideUrl, mergePermissions, useContentRole, useResolveContentRole, mapCssRoleToContentRole, } from './features/content-type-templates/index.js';
|
|
123
|
+
export { scaffoldFromTemplate } from './features/content-type-templates/editor/useTemplateScaffold.js';
|
|
124
|
+
export { useTemplateEditor } from './features/content-type-templates/editor/useTemplateEditor.js';
|
|
125
|
+
export { useTemplatePermissions } from './features/content-type-templates/editor/useTemplatePermissions.js';
|
|
126
|
+
export { validateStructure } from './features/content-type-templates/validation/structural-validation.js';
|
|
127
|
+
export type { ValidationError, ValidationResult } from './features/content-type-templates/validation/structural-validation.js';
|
|
121
128
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
// High-level API
|
|
7
7
|
export { P1App } from './editor/P1App.js';
|
|
8
|
-
export { createP1Config, createNextConfig, createNextContentClient } from './core/config.js';
|
|
8
|
+
export { createP1Config, createNextConfig, createNextContentClient, PRODUCTION_BASE_URL } from './core/config.js';
|
|
9
9
|
export { toP1Path } from './editor/utils/path.js';
|
|
10
10
|
// Auth
|
|
11
11
|
export { P1AuthProvider, useP1Auth, DEMO_USERS, P1LoginPage, } from './auth/index.js';
|
|
@@ -106,4 +106,9 @@ export { Connectable, renderItemTemplate } from './editor/components/connectable
|
|
|
106
106
|
export { EditorClient, createRemoteDatasourceExplorerPlugin, createFieldConnectPlugin, wrapConfigForEditorPreview, createPreviewResolvePlugin, buildConnectPreviewConfig, ConnectPreviewHitStyles, ConnectFieldModal, TemplateAutocompleteLayer, useRemoteDatasources, useResolvePreview, usePublish, useSaveRemoteDatasource, useRemoveRemoteDatasource, useSavePreviewMeta, useLoadPageData, useEditorContext, useRemoteDatasourceContext, useP1Plugins, } from './p1/editor/index.js';
|
|
107
107
|
// P1 Client SDK — Pages
|
|
108
108
|
export { RenderClient, CreatePageForm, CreateTemplateForm, AddOverrideForTemplate, DeleteStructureRowButton, useCreateStructure, useDeleteStructurePage, } from './p1/pages/index.js';
|
|
109
|
+
export { createInMemoryTemplateStore, createApiTemplateStore, getPermissionsForRole, canPerformStructuralAction, canEditProps, canOverrideUrl, mergePermissions, useContentRole, useResolveContentRole, mapCssRoleToContentRole, } from './features/content-type-templates/index.js';
|
|
110
|
+
export { scaffoldFromTemplate } from './features/content-type-templates/editor/useTemplateScaffold.js';
|
|
111
|
+
export { useTemplateEditor } from './features/content-type-templates/editor/useTemplateEditor.js';
|
|
112
|
+
export { useTemplatePermissions } from './features/content-type-templates/editor/useTemplatePermissions.js';
|
|
113
|
+
export { validateStructure } from './features/content-type-templates/validation/structural-validation.js';
|
|
109
114
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|