@prenta/admin 0.94.0 → 0.95.1
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/CHANGELOG.md +55 -0
- package/dist/__tests__/lib/page-editor-service-api.test.js +37 -0
- package/dist/__tests__/lib/page-editor-service-api.test.js.map +1 -1
- package/dist/__tests__/views/page-section-editor.test.js +39 -1
- package/dist/__tests__/views/page-section-editor.test.js.map +1 -1
- package/dist/__tests__/views/post-section-editor.test.js +15 -1
- package/dist/__tests__/views/post-section-editor.test.js.map +1 -1
- package/dist/__tests__/views/section-edit-form.render.test.d.ts +2 -0
- package/dist/__tests__/views/section-edit-form.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/section-edit-form.render.test.js +124 -0
- package/dist/__tests__/views/section-edit-form.render.test.js.map +1 -0
- package/dist/__tests__/views/section-inspector-media.test.js +1 -1
- package/dist/__tests__/views/section-inspector-media.test.js.map +1 -1
- package/dist/__tests__/views/section-inspector-repeater.render.test.js +2 -1
- package/dist/__tests__/views/section-inspector-repeater.render.test.js.map +1 -1
- package/dist/components/CanvasEditTip.js +1 -1
- package/dist/components/CanvasEditTip.js.map +1 -1
- package/dist/prenta-admin.css +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +30 -11
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/page-editor/SectionEditForm.d.ts +42 -0
- package/dist/views/page-editor/SectionEditForm.d.ts.map +1 -0
- package/dist/views/page-editor/SectionEditForm.js +48 -0
- package/dist/views/page-editor/SectionEditForm.js.map +1 -0
- package/dist/views/page-editor/SectionInspector.d.ts +0 -20
- package/dist/views/page-editor/SectionInspector.d.ts.map +1 -1
- package/dist/views/page-editor/SectionInspector.js +5 -223
- package/dist/views/page-editor/SectionInspector.js.map +1 -1
- package/dist/views/page-editor/SectionsPanel.d.ts +10 -1
- package/dist/views/page-editor/SectionsPanel.d.ts.map +1 -1
- package/dist/views/page-editor/SectionsPanel.js +11 -5
- package/dist/views/page-editor/SectionsPanel.js.map +1 -1
- package/dist/views/page-editor/section-fields.d.ts +43 -0
- package/dist/views/page-editor/section-fields.d.ts.map +1 -0
- package/dist/views/page-editor/section-fields.js +236 -0
- package/dist/views/page-editor/section-fields.js.map +1 -0
- package/dist/views/page-editor/sections/ArticleBodySection.js +1 -1
- package/dist/views/page-editor/sections/ArticleBodySection.js.map +1 -1
- package/dist/views/post-editor/PostEditorCanvas.js +1 -1
- package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +15 -10
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/lib/page-editor-service-api.test.ts +44 -0
- package/src/__tests__/views/page-section-editor.test.tsx +58 -1
- package/src/__tests__/views/post-section-editor.test.tsx +29 -1
- package/src/__tests__/views/section-edit-form.render.test.tsx +162 -0
- package/src/__tests__/views/section-inspector-media.test.ts +1 -1
- package/src/__tests__/views/section-inspector-repeater.render.test.tsx +2 -1
- package/src/components/CanvasEditTip.tsx +3 -3
- package/src/views/page-editor/PageSectionEditor.tsx +35 -25
- package/src/views/page-editor/SectionEditForm.tsx +161 -0
- package/src/views/page-editor/SectionInspector.tsx +7 -552
- package/src/views/page-editor/SectionsPanel.tsx +70 -14
- package/src/views/page-editor/section-fields.tsx +563 -0
- package/src/views/page-editor/sections/ArticleBodySection.tsx +1 -1
- package/src/views/post-editor/PostEditorCanvas.tsx +1 -1
- package/src/views/post-editor/PostSectionEditor.tsx +22 -27
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
|
-
import { Eye, EyeOff,
|
|
5
|
-
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors, } from '@dnd-kit/core';
|
|
6
|
-
import { SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable';
|
|
7
|
-
import { CSS } from '@dnd-kit/utilities';
|
|
8
|
-
import { MediaBlock } from '../../components/MediaBlock.js';
|
|
9
|
-
import { ReflowMeter } from '../../components/ReflowMeter.js';
|
|
4
|
+
import { Eye, EyeOff, Lock, X } from 'lucide-react';
|
|
10
5
|
import { InspectorExpandButton, ResizableAside } from '../../components/ui/ResizableAside.js';
|
|
11
|
-
import {
|
|
6
|
+
import { ContentField, FIELD_INPUT, FIELD_LABEL } from './section-fields.js';
|
|
12
7
|
import { RichTextField } from '../../fields/RichTextField.js';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import { blankRepeaterRow, getSectionType, resolveRepeaterField, } from './section-types.js';
|
|
17
|
-
const LABEL = 'text-foreground mb-1 block text-xs font-medium';
|
|
18
|
-
const INPUT = 'border-input bg-input-background text-foreground focus-visible:ring-ring w-full rounded-md border px-2.5 py-1.5 text-sm focus-visible:ring-2 focus-visible:outline-none';
|
|
8
|
+
import { getSectionType } from './section-types.js';
|
|
9
|
+
const LABEL = FIELD_LABEL;
|
|
10
|
+
const INPUT = FIELD_INPUT;
|
|
19
11
|
const INSPECTOR_SHELL = 'prenta-editor-inspector bg-card border-border flex h-full flex-col border-l';
|
|
20
12
|
function InspectorHeaderActions({ onClose, closeLabel = 'Close inspector', }) {
|
|
21
13
|
return (_jsxs("div", { className: "flex shrink-0 items-center gap-0.5", children: [_jsx(InspectorExpandButton, {}), _jsx("button", { type: "button", onClick: onClose, "aria-label": closeLabel, className: "text-muted-foreground hover:text-foreground hover:bg-accent flex h-9 w-9 items-center justify-center rounded-md md:h-7 md:w-7", children: _jsx(X, { className: "h-4 w-4", "aria-hidden": true }) })] }));
|
|
@@ -45,214 +37,4 @@ export function SectionInspector({ section, canEdit, onClose, onContentChange, o
|
|
|
45
37
|
backgroundType: e.target.value,
|
|
46
38
|
}), children: [_jsx("option", { value: "none", children: "White" }), _jsx("option", { value: "solid", children: "Solid color" }), _jsx("option", { value: "gradient", children: "Gradient" })] })] }), section.settings.backgroundType && section.settings.backgroundType !== 'none' && (_jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-bgcolor", children: "Color" }), _jsxs("select", { id: "insp-bgcolor", className: INPUT, value: section.settings.backgroundColor ?? 'purple', onChange: (e) => onSettingsChange({ backgroundColor: e.target.value }), children: [_jsx("option", { value: "purple", children: "Purple" }), _jsx("option", { value: "muted", children: "Light gray" })] })] })), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-pad", children: "Spacing" }), _jsxs("select", { id: "insp-pad", className: INPUT, value: section.settings.paddingY ?? 'lg', onChange: (e) => onSettingsChange({ paddingY: e.target.value }), children: [_jsx("option", { value: "sm", children: "Small" }), _jsx("option", { value: "md", children: "Medium" }), _jsx("option", { value: "lg", children: "Large" }), _jsx("option", { value: "xl", children: "Extra large" })] })] })] }), _jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [_jsx("legend", { className: "text-muted-foreground mb-2 text-[10px] font-medium tracking-wider uppercase", children: "Advanced" }), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-anchor", children: "Anchor ID" }), _jsx("input", { id: "insp-anchor", className: INPUT, placeholder: "e.g. features", value: section.settings.anchorId ?? '', onChange: (e) => onSettingsChange({ anchorId: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-css", children: "CSS class" }), _jsx("input", { id: "insp-css", className: INPUT, placeholder: "custom-class", value: section.settings.cssClass ?? '', onChange: (e) => onSettingsChange({ cssClass: e.target.value }) })] })] })] })] }));
|
|
47
39
|
}
|
|
48
|
-
// ─── Field renderers ─────────────────────────────────────────────────
|
|
49
|
-
/**
|
|
50
|
-
* Field types the reflow guard measures.
|
|
51
|
-
*
|
|
52
|
-
* Text that wraps, and nothing else. A `select` has a fixed set of values the
|
|
53
|
-
* design already accounts for; a `boolean` has no text; `media` wraps nothing.
|
|
54
|
-
*
|
|
55
|
-
* `richText` is excluded deliberately. The probe establishes a baseline by
|
|
56
|
-
* writing the published string into the cloned element, which for rich text
|
|
57
|
-
* would mean injecting stored markup into the DOM — and the whole body is one
|
|
58
|
-
* marker, so a line count across several paragraphs answers no question an
|
|
59
|
-
* editor is asking.
|
|
60
|
-
*/
|
|
61
|
-
const GUARDED_FIELD_TYPES = new Set(['text', 'textarea', 'url']);
|
|
62
|
-
/**
|
|
63
|
-
* Attaches the reflow readout under a field.
|
|
64
|
-
*
|
|
65
|
-
* Renders nothing at all when the guard has no rows — the section may be drawn
|
|
66
|
-
* by a consumer's renderer that carries no `data-cms-field` markers, and an
|
|
67
|
-
* empty row of dots would read as "measured, all fine" rather than "not
|
|
68
|
-
* measured".
|
|
69
|
-
*/
|
|
70
|
-
function FieldReflow({ fieldPath, value }) {
|
|
71
|
-
const ctx = useReflowContext();
|
|
72
|
-
const guard = useReflowGuard({
|
|
73
|
-
canvas: ctx.canvas,
|
|
74
|
-
sectionId: ctx.sectionId ?? '',
|
|
75
|
-
fieldPath,
|
|
76
|
-
value,
|
|
77
|
-
baseline: baselineFieldText(ctx.baseline, ctx.sectionId ?? '', fieldPath),
|
|
78
|
-
enabled: Boolean(ctx.canvas && ctx.sectionId),
|
|
79
|
-
});
|
|
80
|
-
if (guard.rows.length === 0)
|
|
81
|
-
return null;
|
|
82
|
-
return (_jsx(ReflowMeter, { guard: guard, length: value.length, device: ctx.device, onProof: ctx.onProof }));
|
|
83
|
-
}
|
|
84
|
-
function ContentField({ field, value, onChange, onPatch, id: idProp, fieldPath, }) {
|
|
85
|
-
const id = idProp ?? `insp-field-${field.key}`;
|
|
86
|
-
const path = fieldPath ?? field.key;
|
|
87
|
-
const text = typeof value === 'string' ? value : '';
|
|
88
|
-
const guarded = GUARDED_FIELD_TYPES.has(field.type);
|
|
89
|
-
const repeater = resolveRepeaterField(field);
|
|
90
|
-
if (repeater) {
|
|
91
|
-
return (_jsx(RepeaterField, { fieldKey: field.key, label: field.label, repeater: repeater, value: value, onChange: onChange }));
|
|
92
|
-
}
|
|
93
|
-
if (field.type === 'boolean') {
|
|
94
|
-
return _jsx(BooleanField, { id: id, field: field, value: value === true, onChange: onChange });
|
|
95
|
-
}
|
|
96
|
-
if (field.type === 'relationship') {
|
|
97
|
-
return _jsx(RelationshipField, { id: id, field: field, value: value, onChange: onChange });
|
|
98
|
-
}
|
|
99
|
-
if (field.type === 'media') {
|
|
100
|
-
return _jsx(MediaField, { id: id, field: field, value: text, onChange: onChange, onPatch: onPatch });
|
|
101
|
-
}
|
|
102
|
-
if (field.type === 'select') {
|
|
103
|
-
return (_jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: id, children: field.label }), _jsx("select", { id: id, className: INPUT, value: text, onChange: (e) => onChange(e.target.value), children: field.options?.map((o) => (_jsx("option", { value: o.value, children: o.label }, o.value))) })] }));
|
|
104
|
-
}
|
|
105
|
-
if (field.type === 'textarea' || field.type === 'richText') {
|
|
106
|
-
return (_jsxs("div", { children: [_jsxs("label", { className: LABEL, htmlFor: id, children: [field.label, field.required && _jsx("span", { className: "text-destructive ml-0.5", children: "*" })] }), _jsx("textarea", { id: id, className: `${INPUT} resize-y ${field.type === 'richText' ? 'min-h-[140px]' : 'min-h-[72px]'}`, value: text, placeholder: field.placeholder, onChange: (e) => onChange(e.target.value) }), guarded && _jsx(FieldReflow, { fieldPath: path, value: text }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
|
|
107
|
-
}
|
|
108
|
-
return (_jsxs("div", { children: [_jsxs("label", { className: LABEL, htmlFor: id, children: [field.label, field.required && _jsx("span", { className: "text-destructive ml-0.5", children: "*" })] }), _jsx("input", { id: id, type: field.type === 'url' ? 'url' : 'text', className: INPUT, value: text, placeholder: field.placeholder, onChange: (e) => onChange(e.target.value) }), guarded && _jsx(FieldReflow, { fieldPath: path, value: text }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Companion content keys that hold an image field's intrinsic dimensions.
|
|
112
|
-
* Picking from the media library persists width/height alongside the URL so the
|
|
113
|
-
* public renderer can use the CLS-safe `next/image` path without waiting on
|
|
114
|
-
* read-time `/resolve` enrichment. Mirrors the keys the section renderers read:
|
|
115
|
-
* `imageUrl` → `imageWidth` / `imageHeight`; `url` (gallery row) → `width` / `height`.
|
|
116
|
-
*/
|
|
117
|
-
export function companionDimensionKeys(fieldKey) {
|
|
118
|
-
if (fieldKey === 'url')
|
|
119
|
-
return { width: 'width', height: 'height' };
|
|
120
|
-
if (fieldKey.endsWith('Url')) {
|
|
121
|
-
const base = fieldKey.slice(0, -'Url'.length);
|
|
122
|
-
return { width: `${base}Width`, height: `${base}Height` };
|
|
123
|
-
}
|
|
124
|
-
return { width: `${fieldKey}Width`, height: `${fieldKey}Height` };
|
|
125
|
-
}
|
|
126
|
-
function MediaField({ id, field, value, onChange, onPatch, }) {
|
|
127
|
-
return (_jsxs("div", { children: [_jsx("span", { className: LABEL, id: `${id}-label`, children: field.label }), _jsx(MediaBlock, { value: value, label: field.label, onChange: (url, item) => {
|
|
128
|
-
if (!onPatch) {
|
|
129
|
-
onChange(url);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Persist the intrinsic dimensions alongside the URL so the public
|
|
133
|
-
// renderer can use the CLS-safe path without a read-time lookup.
|
|
134
|
-
const { width: wKey, height: hKey } = companionDimensionKeys(field.key);
|
|
135
|
-
const patch = { [field.key]: url };
|
|
136
|
-
if (typeof item?.width === 'number')
|
|
137
|
-
patch[wKey] = item.width;
|
|
138
|
-
if (typeof item?.height === 'number')
|
|
139
|
-
patch[hKey] = item.height;
|
|
140
|
-
// Clearing the slot clears the dimensions with it — leaving them
|
|
141
|
-
// behind would size the next image by the previous one's box.
|
|
142
|
-
if (!url) {
|
|
143
|
-
patch[wKey] = undefined;
|
|
144
|
-
patch[hKey] = undefined;
|
|
145
|
-
}
|
|
146
|
-
onPatch(patch);
|
|
147
|
-
} }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
|
|
148
|
-
}
|
|
149
|
-
function BooleanField({ id, field, value, onChange, }) {
|
|
150
|
-
return (_jsxs("div", { children: [_jsxs("div", { className: "border-border text-foreground flex w-full items-center justify-between rounded-md border px-2.5 py-1.5 text-sm", children: [_jsx("span", { children: field.label }), _jsx(Toggle, { id: id, checked: value, onCheckedChange: (v) => onChange(v), "aria-label": field.label })] }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
|
|
151
|
-
}
|
|
152
|
-
function RelationshipField({ id, field, value, onChange, }) {
|
|
153
|
-
// Stored as an array of slugs; edited as a newline/comma-separated list
|
|
154
|
-
// so authors can hand-pick referenced documents without a live picker.
|
|
155
|
-
const slugs = Array.isArray(value) ? value : [];
|
|
156
|
-
const text = slugs.join('\n');
|
|
157
|
-
return (_jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: id, children: field.label }), _jsx("textarea", { id: id, className: `${INPUT} min-h-[72px] resize-y`, placeholder: "one-slug-per-line", value: text, onChange: (e) => onChange(e.target.value
|
|
158
|
-
.split(/[\n,]/)
|
|
159
|
-
.map((s) => s.trim())
|
|
160
|
-
.filter(Boolean)) }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
|
|
161
|
-
}
|
|
162
|
-
// Field types whose values are short enough to scan in a row header. Long-form
|
|
163
|
-
// fields (textarea, richText) and non-text values (media, url) stay out.
|
|
164
|
-
const SUMMARY_FIELD_TYPES = new Set(['text', 'select']);
|
|
165
|
-
const SUMMARY_MAX_LENGTH = 60;
|
|
166
|
-
/**
|
|
167
|
-
* Derive a scannable one-line summary for a repeater row from its first two
|
|
168
|
-
* short text values — e.g. a pricing row renders as "Pro · $79/mo" instead of
|
|
169
|
-
* "Plan 2". Returns `null` when the row has no usable values yet, so the
|
|
170
|
-
* caller falls back to the positional "Plan 2" label.
|
|
171
|
-
*/
|
|
172
|
-
export function repeaterRowSummary(fields, row) {
|
|
173
|
-
const parts = [];
|
|
174
|
-
for (const field of fields) {
|
|
175
|
-
if (parts.length >= 2)
|
|
176
|
-
break;
|
|
177
|
-
if (!SUMMARY_FIELD_TYPES.has(field.type))
|
|
178
|
-
continue;
|
|
179
|
-
const raw = row[field.key];
|
|
180
|
-
const value = typeof raw === 'string' ? raw.trim() : typeof raw === 'number' ? String(raw) : '';
|
|
181
|
-
if (!value)
|
|
182
|
-
continue;
|
|
183
|
-
if (field.type === 'select') {
|
|
184
|
-
const option = field.options?.find((o) => o.value === value);
|
|
185
|
-
parts.push(option?.label ?? value);
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
parts.push(value);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
if (parts.length === 0)
|
|
192
|
-
return null;
|
|
193
|
-
const joined = parts.join(' · ');
|
|
194
|
-
return joined.length > SUMMARY_MAX_LENGTH
|
|
195
|
-
? `${joined.slice(0, SUMMARY_MAX_LENGTH - 1).trimEnd()}…`
|
|
196
|
-
: joined;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Generic repeater editor: an orderable list of rows, each row a small form of
|
|
200
|
-
* the repeater's sub-fields. Drives the generic `repeater` field type and the
|
|
201
|
-
* `stats` / `gallery` shorthands (resolved upstream to the same row model), so
|
|
202
|
-
* there's one editor for every structured-array field.
|
|
203
|
-
*
|
|
204
|
-
* Rows are stored as a plain array on `content[fieldKey]`. Drag/reorder uses an
|
|
205
|
-
* index-derived row id (`row-0`, `row-1`, …); since every edit commits a fresh
|
|
206
|
-
* array this stays consistent and matches the prior stats/gallery behavior.
|
|
207
|
-
*/
|
|
208
|
-
function RepeaterField({ fieldKey, label, repeater, value, onChange, }) {
|
|
209
|
-
const rows = Array.isArray(value) ? value : [];
|
|
210
|
-
const atCap = typeof repeater.maxRows === 'number' && rows.length >= repeater.maxRows;
|
|
211
|
-
const rowKey = (i) => `row-${i}`;
|
|
212
|
-
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
213
|
-
function commit(next) {
|
|
214
|
-
onChange(next);
|
|
215
|
-
}
|
|
216
|
-
function update(index, patch) {
|
|
217
|
-
commit(rows.map((r, i) => (i === index ? { ...r, ...patch } : r)));
|
|
218
|
-
}
|
|
219
|
-
function remove(index) {
|
|
220
|
-
commit(rows.filter((_, i) => i !== index));
|
|
221
|
-
}
|
|
222
|
-
function add() {
|
|
223
|
-
if (atCap)
|
|
224
|
-
return;
|
|
225
|
-
commit([...rows, blankRepeaterRow(repeater.fields)]);
|
|
226
|
-
}
|
|
227
|
-
function handleDragEnd(event) {
|
|
228
|
-
const { active, over } = event;
|
|
229
|
-
if (!over || active.id === over.id)
|
|
230
|
-
return;
|
|
231
|
-
// Map the dnd id (index-derived rowKey) back to array positions.
|
|
232
|
-
const ids = rows.map((_, i) => rowKey(i));
|
|
233
|
-
const from = ids.indexOf(String(active.id));
|
|
234
|
-
const to = ids.indexOf(String(over.id));
|
|
235
|
-
if (from === -1 || to === -1)
|
|
236
|
-
return;
|
|
237
|
-
const next = rows.slice();
|
|
238
|
-
const [moved] = next.splice(from, 1);
|
|
239
|
-
next.splice(to, 0, moved);
|
|
240
|
-
commit(next);
|
|
241
|
-
}
|
|
242
|
-
const lower = repeater.rowLabel.toLowerCase();
|
|
243
|
-
return (_jsxs("div", { children: [_jsx("span", { className: LABEL, children: label }), rows.length === 0 ? (_jsxs("p", { className: "border-border text-muted-foreground mb-2 rounded-md border border-dashed px-2 py-3 text-center text-xs", children: ["No ", lower, "s yet."] })) : (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: rows.map((_, i) => rowKey(i)), strategy: verticalListSortingStrategy, children: _jsx("div", { className: "space-y-3", children: rows.map((row, i) => (_jsx(SortableRepeaterRow, { id: rowKey(i), index: i, fieldKey: fieldKey, rowLabel: repeater.rowLabel, fields: repeater.fields, row: row, reorderable: rows.length > 1, onPatch: (patch) => update(i, patch), onRemove: () => remove(i) }, rowKey(i)))) }) }) })), _jsxs("button", { type: "button", onClick: add, disabled: atCap, className: "border-border text-foreground hover:bg-accent mt-2 flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed px-2 py-1.5 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Plus, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Add ", lower] }), atCap && (_jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["Maximum of ", repeater.maxRows, " reached."] }))] }));
|
|
244
|
-
}
|
|
245
|
-
function SortableRepeaterRow({ id, index, fieldKey, rowLabel, fields, row, reorderable, onPatch, onRemove, }) {
|
|
246
|
-
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
|
|
247
|
-
id,
|
|
248
|
-
disabled: !reorderable,
|
|
249
|
-
});
|
|
250
|
-
const style = {
|
|
251
|
-
transform: CSS.Transform.toString(transform),
|
|
252
|
-
transition,
|
|
253
|
-
zIndex: isDragging ? 10 : undefined,
|
|
254
|
-
};
|
|
255
|
-
const summary = repeaterRowSummary(fields, row);
|
|
256
|
-
return (_jsxs("div", { ref: setNodeRef, style: style, className: `border-border rounded-md border p-2 ${isDragging ? 'bg-card shadow-md' : ''}`, children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("span", { className: "flex items-center gap-1", children: [reorderable && (_jsx("button", { type: "button", "aria-label": `Drag to reorder ${rowLabel} ${index + 1}`, className: "text-muted-foreground hover:text-foreground cursor-grab touch-none", ...attributes, ...listeners, children: _jsx(GripVertical, { className: "h-3.5 w-3.5", "aria-hidden": true }) })), _jsx("span", { className: "text-muted-foreground max-w-[200px] truncate text-xs", title: summary ? `${rowLabel} ${index + 1}: ${summary}` : undefined, children: summary ?? `${rowLabel} ${index + 1}` })] }), _jsx("button", { type: "button", onClick: onRemove, "aria-label": `Remove ${rowLabel.toLowerCase()} ${index + 1}`, className: "text-muted-foreground hover:text-destructive rounded p-0.5", children: _jsx(X, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] }), _jsx("div", { className: "space-y-2", children: fields.map((sub) => (_jsx(ContentField, { id: `insp-field-${fieldKey}-${index}-${sub.key}`, fieldPath: `${fieldKey}.${index}.${sub.key}`, field: sub, value: row[sub.key], onChange: (v) => onPatch({ [sub.key]: v }), onPatch: (patch) => onPatch(patch) }, sub.key))) })] }));
|
|
257
|
-
}
|
|
258
40
|
//# sourceMappingURL=SectionInspector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionInspector.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionInspector.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SectionInspector.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionInspector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,15 @@ interface SectionsPanelProps {
|
|
|
23
23
|
onDuplicate?: (id: string) => void;
|
|
24
24
|
onRequestDelete?: (id: string) => void;
|
|
25
25
|
onAdd?: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Renders the selected section's editor as the body of its own row.
|
|
28
|
+
*
|
|
29
|
+
* A render prop rather than the form itself, so this list stays a list: it
|
|
30
|
+
* knows how to open a row and nothing about what a section's fields are.
|
|
31
|
+
* Omitted by the structural (template) list, which edits through the docked
|
|
32
|
+
* inspector instead.
|
|
33
|
+
*/
|
|
34
|
+
renderEditor?: (section: PageSection) => React.ReactNode;
|
|
26
35
|
}
|
|
27
36
|
/**
|
|
28
37
|
* Standalone panel — its own aside, header, and width. Used by the post
|
|
@@ -35,6 +44,6 @@ export declare function SectionsPanel(props: SectionsPanelProps): import("react/
|
|
|
35
44
|
* is given, so it works both inside the standalone panel above and inside the
|
|
36
45
|
* editor rail's Sections tab.
|
|
37
46
|
*/
|
|
38
|
-
export declare function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural, onReorder, onDuplicate, onRequestDelete, onAdd, }: SectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural, onReorder, onDuplicate, onRequestDelete, onAdd, renderEditor, }: SectionsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
39
48
|
export {};
|
|
40
49
|
//# sourceMappingURL=SectionsPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SectionsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAGnE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAClB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAA;CACzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAiBtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,UAAkB,EAClB,SAAS,EACT,WAAW,EACX,eAAe,EACf,KAAK,EACL,YAAY,GACb,EAAE,kBAAkB,2CAoEpB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { Copy, Eye, EyeOff, GripVertical, Lock, MoreVertical, Plus, Trash2, } from 'lucide-react';
|
|
3
|
+
import { ChevronDown, Copy, Eye, EyeOff, GripVertical, Lock, MoreVertical, Plus, Trash2, } from 'lucide-react';
|
|
4
4
|
import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors, } from '@dnd-kit/core';
|
|
5
5
|
import { SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable';
|
|
6
6
|
import { CSS } from '@dnd-kit/utilities';
|
|
@@ -20,10 +20,13 @@ export function SectionsPanel(props) {
|
|
|
20
20
|
* is given, so it works both inside the standalone panel above and inside the
|
|
21
21
|
* editor rail's Sections tab.
|
|
22
22
|
*/
|
|
23
|
-
export function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural = false, onReorder, onDuplicate, onRequestDelete, onAdd, }) {
|
|
23
|
+
export function SectionsList({ sections, selectedId, canEdit, onSelect, onToggleVisibility, structural = false, onReorder, onDuplicate, onRequestDelete, onAdd, renderEditor, }) {
|
|
24
24
|
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: sections.length === 0 ? (_jsx("p", { className: "text-muted-foreground px-2 py-6 text-center text-sm", children: structural
|
|
25
25
|
? 'No sections yet. Add one below to get started.'
|
|
26
|
-
: 'This template renders no sections.' })) : structural ? (_jsx(StructuralList, { sections: sections, selectedId: selectedId, canEdit: canEdit, onSelect: onSelect, onReorder: onReorder, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete })) : (_jsx("ul", { className: "space-y-1", children: sections.map((section) =>
|
|
26
|
+
: 'This template renders no sections.' })) : structural ? (_jsx(StructuralList, { sections: sections, selectedId: selectedId, canEdit: canEdit, onSelect: onSelect, onReorder: onReorder, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete })) : (_jsx("ul", { className: "space-y-1", children: sections.map((section) => {
|
|
27
|
+
const open = section.id === selectedId;
|
|
28
|
+
return (_jsxs("li", { children: [_jsx(SectionRow, { section: section, selected: open, canEdit: canEdit, structural: false, expandable: renderEditor !== undefined, onSelect: onSelect, onToggleVisibility: onToggleVisibility }), open && renderEditor && (_jsx("div", { id: `section-editor-${section.id}`, className: "border-border overflow-hidden rounded-b-lg border border-t-0", children: renderEditor(section) }))] }, section.id));
|
|
29
|
+
}) })) }), structural ? (_jsx("div", { className: "border-border border-t p-3", children: _jsxs("button", { type: "button", onClick: onAdd, disabled: !canEdit, className: "border-border text-foreground hover:bg-accent flex w-full items-center justify-center gap-2 rounded-lg border border-dashed px-3 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Plus, { className: "h-4 w-4", "aria-hidden": true }), "Add Section"] }) })) : (_jsx(DesignOwnedNote, {}))] }));
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* Explains the absence of add / reorder / delete. Without it the panel reads
|
|
@@ -51,13 +54,16 @@ function StructuralList({ sections, selectedId, canEdit, onSelect, onReorder, on
|
|
|
51
54
|
}
|
|
52
55
|
return (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: sections.map((s) => s.id), strategy: verticalListSortingStrategy, children: _jsx("ul", { className: "space-y-1", children: sections.map((section) => (_jsx(SortableSectionItem, { section: section, selected: section.id === selectedId, canEdit: canEdit, onSelect: onSelect, onToggleVisibility: onToggleVisibility, onDuplicate: onDuplicate, onRequestDelete: onRequestDelete }, section.id))) }) }) }));
|
|
53
56
|
}
|
|
54
|
-
function SectionRow({ section, selected, canEdit, structural, onSelect, onToggleVisibility, onDuplicate, onRequestDelete, dragHandle, dragging, }) {
|
|
57
|
+
function SectionRow({ section, selected, canEdit, structural, expandable = false, onSelect, onToggleVisibility, onDuplicate, onRequestDelete, dragHandle, dragging, }) {
|
|
55
58
|
// Unmanaged (externally-managed) sections are read-only even in a structural
|
|
56
59
|
// panel: no drag, duplicate, delete, or visibility toggle — only selectable
|
|
57
60
|
// to view the read-only notice.
|
|
58
61
|
const locked = section.unmanaged === true;
|
|
59
62
|
const Icon = sectionIconFor(section.sectionType);
|
|
60
|
-
return (_jsxs("div", { className: `group flex items-center gap-2
|
|
63
|
+
return (_jsxs("div", { className: `group flex items-center gap-2 border px-2 py-2 ${
|
|
64
|
+
// Square off the bottom while the editor is open beneath, so row and
|
|
65
|
+
// form read as one object rather than two stacked cards.
|
|
66
|
+
selected && expandable ? 'rounded-t-lg' : 'rounded-lg'} ${selected ? 'border-primary bg-accent' : 'hover:bg-accent/60 border-transparent'} ${dragging ? 'shadow-md' : ''}`, children: [dragHandle, _jsxs("button", { type: "button", onClick: () => onSelect(section.id), "aria-expanded": expandable ? selected : undefined, "aria-controls": expandable && selected ? `section-editor-${section.id}` : undefined, className: "flex min-w-0 flex-1 items-center gap-2 text-left", children: [_jsx("span", { className: "bg-muted text-muted-foreground flex h-7 w-7 shrink-0 items-center justify-center rounded-md", children: _jsx(Icon, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx("span", { className: `truncate text-sm ${section.visible ? 'text-foreground' : 'text-muted-foreground line-through'}`, children: section.name })] }), locked ? (_jsx("span", { className: "text-muted-foreground shrink-0 p-1", title: "Managed outside the editor \u2014 read-only", "aria-label": `${section.name} is managed outside the editor and is read-only`, children: _jsx(Lock, { className: "h-4 w-4", "aria-hidden": true }) })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => onToggleVisibility(section.id), disabled: !canEdit, "aria-pressed": !section.visible, "aria-label": section.visible ? `Hide ${section.name}` : `Show ${section.name}`, className: "prenta-touch-target text-muted-foreground hover:text-foreground shrink-0 rounded p-1 disabled:opacity-40", children: section.visible ? (_jsx(Eye, { className: "h-4 w-4", "aria-hidden": true })) : (_jsx(EyeOff, { className: "h-4 w-4", "aria-hidden": true })) }), expandable && (_jsx("button", { type: "button", onClick: () => onSelect(section.id), "aria-expanded": selected, "aria-controls": selected ? `section-editor-${section.id}` : undefined, "aria-label": selected ? `Close ${section.name}` : `Edit ${section.name}`, title: "Edit content", className: "prenta-touch-target text-muted-foreground hover:text-foreground shrink-0 rounded p-1", children: _jsx(ChevronDown, { className: `h-4 w-4 transition-transform motion-reduce:transition-none ${selected ? 'rotate-180' : ''}`, "aria-hidden": true }) })), structural && (_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { asChild: true, children: _jsx("button", { type: "button", disabled: !canEdit, "aria-label": `More actions for ${section.name}`, className: "prenta-touch-target text-muted-foreground hover:text-foreground shrink-0 rounded p-1 disabled:opacity-40", children: _jsx(MoreVertical, { className: "h-4 w-4", "aria-hidden": true }) }) }), _jsx(DropdownMenu.Portal, { container: adminPortalContainer(), children: _jsxs(DropdownMenu.Content, { align: "end", sideOffset: 4, className: "border-border bg-popover z-70 min-w-44 rounded-lg border p-1 shadow-md", children: [_jsx(MenuItem, { onSelect: () => onDuplicate?.(section.id), icon: Copy, children: "Duplicate" }), _jsx(DropdownMenu.Separator, { className: "bg-border my-1 h-px" }), _jsx(MenuItem, { onSelect: () => onRequestDelete?.(section.id), icon: Trash2, destructive: true, children: "Delete" })] }) })] }))] }))] }));
|
|
61
67
|
}
|
|
62
68
|
function SortableSectionItem({ section, selected, canEdit, onSelect, onToggleVisibility, onDuplicate, onRequestDelete, }) {
|
|
63
69
|
const locked = section.unmanaged === true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,YAAY,EACZ,IAAI,EAEJ,YAAY,EACZ,IAAI,EACJ,MAAM,GACP,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,GAEX,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,WAAW,EACX,2BAA2B,GAC5B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"SectionsPanel.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type SectionFieldDef } from './section-types.js';
|
|
2
|
+
/** Shared control classes, so every field surface looks identical. */
|
|
3
|
+
export declare const FIELD_LABEL = "text-foreground mb-1 block text-xs font-medium";
|
|
4
|
+
export declare const FIELD_INPUT = "border-input bg-input-background text-foreground focus-visible:ring-ring w-full rounded-md border px-2.5 py-1.5 text-sm focus-visible:ring-2 focus-visible:outline-none";
|
|
5
|
+
export declare function ContentField({ field, value, onChange, onPatch, id: idProp, fieldPath, }: {
|
|
6
|
+
field: SectionFieldDef;
|
|
7
|
+
value: unknown;
|
|
8
|
+
onChange: (v: unknown) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Optional multi-key patch sink — lets media fields persist companion
|
|
11
|
+
* dimension keys (width/height) atomically with the URL.
|
|
12
|
+
*/
|
|
13
|
+
onPatch?: (patch: Record<string, unknown>) => void;
|
|
14
|
+
/** Explicit input id (repeater rows pass a row-scoped id to stay unique). */
|
|
15
|
+
id?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Dotted `data-cms-field` path for the reflow guard. Differs from `field.key`
|
|
18
|
+
* inside a repeater, where the marker is `stats.0.label`. Defaults to the
|
|
19
|
+
* key, which is right for every top-level field.
|
|
20
|
+
*/
|
|
21
|
+
fieldPath?: string;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Companion content keys that hold an image field's intrinsic dimensions.
|
|
25
|
+
* Picking from the media library persists width/height alongside the URL so the
|
|
26
|
+
* public renderer can use the CLS-safe `next/image` path without waiting on
|
|
27
|
+
* read-time `/resolve` enrichment. Mirrors the keys the section renderers read:
|
|
28
|
+
* `imageUrl` → `imageWidth` / `imageHeight`; `url` (gallery row) → `width` / `height`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function companionDimensionKeys(fieldKey: string): {
|
|
31
|
+
width: string;
|
|
32
|
+
height: string;
|
|
33
|
+
};
|
|
34
|
+
type RowRecord = Record<string, unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Derive a scannable one-line summary for a repeater row from its first two
|
|
37
|
+
* short text values — e.g. a pricing row renders as "Pro · $79/mo" instead of
|
|
38
|
+
* "Plan 2". Returns `null` when the row has no usable values yet, so the
|
|
39
|
+
* caller falls back to the positional "Plan 2" label.
|
|
40
|
+
*/
|
|
41
|
+
export declare function repeaterRowSummary(fields: SectionFieldDef[], row: RowRecord): string | null;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=section-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-fields.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/section-fields.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEjG,sEAAsE;AACtE,eAAO,MAAM,WAAW,mDAAmD,CAAA;AAC3E,eAAO,MAAM,WAAW,4KACmJ,CAAA;AAyC3K,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,EAAE,EAAE,MAAM,EACV,SAAS,GACV,EAAE;IACD,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClD,6EAA6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,2CA2FA;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAO1F;AA0HD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAOxC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAoB3F"}
|