@actuate-media/cms-admin 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useState } from 'react';
4
- import { Eye, EyeOff, Lock, Plus, X } from 'lucide-react';
4
+ import { Eye, EyeOff, GripVertical, Lock, Plus, X } from 'lucide-react';
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';
5
8
  import { MediaPickerModal } from '../../components/MediaPickerModal.js';
6
- import { getSectionType } from './section-types.js';
9
+ import { blankRepeaterRow, getSectionType, resolveRepeaterField, } from './section-types.js';
7
10
  const LABEL = 'text-foreground mb-1 block text-xs font-medium';
8
11
  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';
9
12
  export function SectionInspector({ section, canEdit, onClose, onContentChange, onSettingsChange, onMetaChange, onToggleVisibility, }) {
@@ -20,21 +23,19 @@ export function SectionInspector({ section, canEdit, onClose, onContentChange, o
20
23
  // Unmanaged sections (no registered type) are read-only: show why instead of
21
24
  // editable controls, so the externally-managed content is never altered here.
22
25
  if (section.unmanaged) {
23
- return (_jsxs("aside", { role: "dialog", "aria-label": `${section.name} (read-only)`, className: "bg-card border-border flex h-full w-80 shrink-0 flex-col border-l", children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-4 py-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-foreground truncate text-sm font-medium", children: section.name }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Managed outside the editor" })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close inspector", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded p-1", children: _jsx(X, { className: "h-4 w-4", "aria-hidden": true }) })] }), _jsx("div", { className: "flex-1 space-y-3 overflow-y-auto p-4", children: _jsxs("div", { className: "border-border bg-muted text-muted-foreground space-y-2 rounded-md border p-3 text-sm", children: [_jsxs("p", { className: "text-foreground flex items-center gap-2 font-medium", children: [_jsx(Lock, { size: 14, "aria-hidden": true }), " Read-only section"] }), _jsxs("p", { children: ["The section type", ' ', _jsx("code", { className: "bg-background rounded px-1 py-0.5 text-xs", children: section.sectionType }), ' ', "isn't registered in this CMS, so it can't be edited here. It is preserved exactly as-is on every save."] }), _jsxs("p", { children: ["Edit it in your seed script or code, or register it via", ' ', _jsx("code", { className: "bg-background rounded px-1 py-0.5 text-xs", children: "sections.customTypes" }), ' ', "in your config to make it editable."] })] }) })] }));
26
+ return (_jsxs("aside", { role: "dialog", "aria-label": `${section.name} (read-only)`, className: "bg-card border-border flex h-full w-80 shrink-0 flex-col border-l", children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-4 py-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-foreground truncate text-sm font-medium", children: section.name }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Managed outside the editor" })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close inspector", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded p-1", children: _jsx(X, { className: "h-4 w-4", "aria-hidden": true }) })] }), _jsx("div", { className: "flex-1 space-y-3 overflow-y-auto p-4", children: _jsxs("div", { className: "border-border bg-muted text-muted-foreground space-y-2 rounded-md border p-3 text-sm", children: [_jsxs("p", { className: "text-foreground flex items-center gap-2 font-medium", children: [_jsx(Lock, { size: 14, "aria-hidden": true }), " Read-only section"] }), _jsxs("p", { children: ["The section type", ' ', _jsx("code", { className: "bg-background rounded px-1 py-0.5 text-xs", children: section.sectionType }), ' ', "isn't registered in this CMS, so it can't be edited here. It is preserved exactly as-is on every save."] }), _jsxs("p", { children: ["Edit it in your seed script or code, or register it via", ' ', _jsx("code", { className: "bg-background rounded px-1 py-0.5 text-xs", children: "sections.types" }), " in your config to make it editable."] })] }) })] }));
24
27
  }
25
28
  return (_jsxs("aside", { role: "dialog", "aria-label": `Edit ${section.name}`, className: "bg-card border-border flex h-full w-80 shrink-0 flex-col border-l", children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-4 py-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-foreground truncate text-sm font-medium", children: section.name }), _jsx("p", { className: "text-muted-foreground text-xs", children: def?.name ?? 'Section' })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close inspector", className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded p-1", children: _jsx(X, { className: "h-4 w-4", "aria-hidden": true }) })] }), _jsxs("div", { className: "flex-1 space-y-6 overflow-y-auto p-4", children: [!canEdit && (_jsx("p", { className: "border-border bg-muted text-muted-foreground rounded-md border p-2 text-xs", children: "You have read-only access to this page." })), _jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [_jsx("legend", { className: "text-muted-foreground mb-2 text-[10px] font-semibold tracking-wider uppercase", children: "Content" }), def?.fields.map((field) => (_jsx(ContentField, { field: field, value: section.content[field.key], onChange: (v) => onContentChange({ [field.key]: v }) }, field.key)))] }), _jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [_jsx("legend", { className: "text-muted-foreground mb-2 text-[10px] font-semibold tracking-wider uppercase", children: "Section settings" }), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-name", children: "Section name" }), _jsx("input", { id: "insp-name", className: INPUT, value: section.name, onChange: (e) => onMetaChange({ name: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-internal", children: "Internal label" }), _jsx("input", { id: "insp-internal", className: INPUT, placeholder: "Team-only note (optional)", value: section.internalLabel ?? '', onChange: (e) => onMetaChange({ internalLabel: e.target.value }) })] }), _jsxs("button", { type: "button", onClick: onToggleVisibility, disabled: !canEdit, "aria-pressed": !section.visible, className: "border-border text-foreground hover:bg-accent flex w-full items-center justify-between rounded-md border px-2.5 py-1.5 text-sm disabled:opacity-50", children: [_jsxs("span", { className: "flex items-center gap-2", children: [section.visible ? (_jsx(Eye, { className: "h-4 w-4", "aria-hidden": true })) : (_jsx(EyeOff, { className: "h-4 w-4", "aria-hidden": true })), section.visible ? 'Visible on page' : 'Hidden from page'] }), _jsx("span", { className: "text-muted-foreground text-xs", children: section.visible ? 'Hide' : 'Show' })] })] }), _jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [_jsx("legend", { className: "text-muted-foreground mb-2 text-[10px] font-semibold tracking-wider uppercase", children: "Appearance" }), _jsxs("div", { children: [_jsx("label", { className: LABEL, htmlFor: "insp-bg", children: "Background" }), _jsxs("select", { id: "insp-bg", className: INPUT, value: section.settings.backgroundType ?? 'none', onChange: (e) => onSettingsChange({
26
29
  backgroundType: e.target.value,
27
30
  }), 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-semibold 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 }) })] })] })] })] }));
28
31
  }
29
32
  // ─── Field renderers ─────────────────────────────────────────────────
30
- function ContentField({ field, value, onChange, }) {
31
- const id = `insp-field-${field.key}`;
33
+ function ContentField({ field, value, onChange, id: idProp, }) {
34
+ const id = idProp ?? `insp-field-${field.key}`;
32
35
  const text = typeof value === 'string' ? value : '';
33
- if (field.type === 'stats') {
34
- return _jsx(StatsField, { label: field.label, value: value, onChange: onChange });
35
- }
36
- if (field.type === 'gallery') {
37
- return _jsx(GalleryField, { label: field.label, value: value, onChange: onChange });
36
+ const repeater = resolveRepeaterField(field);
37
+ if (repeater) {
38
+ return (_jsx(RepeaterField, { fieldKey: field.key, label: field.label, repeater: repeater, value: value, onChange: onChange }));
38
39
  }
39
40
  if (field.type === 'boolean') {
40
41
  return _jsx(BooleanField, { id: id, field: field, value: value === true, onChange: onChange });
@@ -73,31 +74,63 @@ function RelationshipField({ id, field, value, onChange, }) {
73
74
  .map((s) => s.trim())
74
75
  .filter(Boolean)) }), field.help && _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: field.help })] }));
75
76
  }
76
- function GalleryField({ label, value, onChange, }) {
77
+ /**
78
+ * Generic repeater editor: an orderable list of rows, each row a small form of
79
+ * the repeater's sub-fields. Drives the generic `repeater` field type and the
80
+ * `stats` / `gallery` shorthands (resolved upstream to the same row model), so
81
+ * there's one editor for every structured-array field.
82
+ *
83
+ * Rows are stored as a plain array on `content[fieldKey]`. Drag/reorder uses an
84
+ * index-derived row id (`row-0`, `row-1`, …); since every edit commits a fresh
85
+ * array this stays consistent and matches the prior stats/gallery behavior.
86
+ */
87
+ function RepeaterField({ fieldKey, label, repeater, value, onChange, }) {
77
88
  const rows = Array.isArray(value) ? value : [];
78
- function update(index, patch) {
79
- onChange(rows.map((r, i) => (i === index ? { ...r, ...patch } : r)));
80
- }
81
- function remove(index) {
82
- onChange(rows.filter((_, i) => i !== index));
83
- }
84
- function add() {
85
- onChange([...rows, { url: '', alt: '', caption: '' }]);
89
+ const atCap = typeof repeater.maxRows === 'number' && rows.length >= repeater.maxRows;
90
+ const rowKey = (i) => `row-${i}`;
91
+ const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
92
+ function commit(next) {
93
+ onChange(next);
86
94
  }
87
- return (_jsxs("div", { children: [_jsx("span", { className: LABEL, children: label }), _jsx("div", { className: "space-y-3", children: rows.map((row, i) => (_jsxs("div", { className: "border-border rounded-md border p-2", children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("span", { className: "text-muted-foreground text-xs", children: ["Image ", i + 1] }), _jsx("button", { type: "button", onClick: () => remove(i), "aria-label": `Remove image ${i + 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 }) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("input", { className: INPUT, placeholder: "Image URL (https://\u2026)", value: row.url ?? '', onChange: (e) => update(i, { url: e.target.value }), "aria-label": `Image ${i + 1} URL` }), _jsx("input", { className: INPUT, placeholder: "Alt text (for accessibility)", value: row.alt ?? '', onChange: (e) => update(i, { alt: e.target.value }), "aria-label": `Image ${i + 1} alt text` })] })] }, i))) }), _jsxs("button", { type: "button", onClick: add, 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", children: [_jsx(Plus, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Add image"] })] }));
88
- }
89
- function StatsField({ label, value, onChange, }) {
90
- const rows = Array.isArray(value) ? value : [];
91
95
  function update(index, patch) {
92
- const next = rows.map((r, i) => (i === index ? { ...r, ...patch } : r));
93
- onChange(next);
96
+ commit(rows.map((r, i) => (i === index ? { ...r, ...patch } : r)));
94
97
  }
95
98
  function remove(index) {
96
- onChange(rows.filter((_, i) => i !== index));
99
+ commit(rows.filter((_, i) => i !== index));
97
100
  }
98
101
  function add() {
99
- onChange([...rows, { value: '', label: '', description: '' }]);
102
+ if (atCap)
103
+ return;
104
+ commit([...rows, blankRepeaterRow(repeater.fields)]);
105
+ }
106
+ function handleDragEnd(event) {
107
+ const { active, over } = event;
108
+ if (!over || active.id === over.id)
109
+ return;
110
+ // Map the dnd id (index-derived rowKey) back to array positions.
111
+ const ids = rows.map((_, i) => rowKey(i));
112
+ const from = ids.indexOf(String(active.id));
113
+ const to = ids.indexOf(String(over.id));
114
+ if (from === -1 || to === -1)
115
+ return;
116
+ const next = rows.slice();
117
+ const [moved] = next.splice(from, 1);
118
+ next.splice(to, 0, moved);
119
+ commit(next);
100
120
  }
101
- return (_jsxs("div", { children: [_jsx("span", { className: LABEL, children: label }), _jsx("div", { className: "space-y-3", children: rows.map((row, i) => (_jsxs("div", { className: "border-border rounded-md border p-2", children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("span", { className: "text-muted-foreground text-xs", children: ["Stat ", i + 1] }), _jsx("button", { type: "button", onClick: () => remove(i), "aria-label": `Remove stat ${i + 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 }) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("input", { className: INPUT, placeholder: "Value (e.g. 99.99%)", value: row.value ?? '', onChange: (e) => update(i, { value: e.target.value }), "aria-label": `Stat ${i + 1} value` }), _jsx("input", { className: INPUT, placeholder: "Label (e.g. Uptime)", value: row.label ?? '', onChange: (e) => update(i, { label: e.target.value }), "aria-label": `Stat ${i + 1} label` })] })] }, i))) }), _jsxs("button", { type: "button", onClick: add, 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", children: [_jsx(Plus, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Add stat"] })] }));
121
+ const lower = repeater.rowLabel.toLowerCase();
122
+ 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."] }))] }));
123
+ }
124
+ function SortableRepeaterRow({ id, index, fieldKey, rowLabel, fields, row, reorderable, onPatch, onRemove, }) {
125
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
126
+ id,
127
+ disabled: !reorderable,
128
+ });
129
+ const style = {
130
+ transform: CSS.Transform.toString(transform),
131
+ transition,
132
+ zIndex: isDragging ? 10 : undefined,
133
+ };
134
+ 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 }) })), _jsxs("span", { className: "text-muted-foreground text-xs", children: [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-${fieldKey}-${index}-${sub.key}`, field: sub, value: row[sub.key], onChange: (v) => onPatch({ [sub.key]: v }) }, sub.key))) })] }));
102
135
  }
103
136
  //# 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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"}
@@ -6,6 +6,6 @@
6
6
  * of truth. This module re-exports them to preserve the historical import
7
7
  * path (`../views/page-editor/section-types.js`) used across the editor.
8
8
  */
9
- export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, } from '@actuate-media/cms-core/page-sections';
10
- export type { SectionTypeId, SectionScope, SectionFieldType, SectionFieldDef, SectionSettings, SectionTypeDef, PostHeaderConfig, PostTemplate, } from '@actuate-media/cms-core/page-sections';
9
+ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, resolveRepeaterField, isRepeaterField, blankRepeaterRow, } from '@actuate-media/cms-core/page-sections';
10
+ export type { SectionTypeId, SectionScope, SectionFieldType, SectionFieldDef, SectionSettings, SectionTypeDef, ResolvedRepeater, RepeaterRow, PostHeaderConfig, PostTemplate, } from '@actuate-media/cms-core/page-sections';
11
11
  //# sourceMappingURL=section-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"section-types.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/section-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAA;AAE9C,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"section-types.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/section-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,uCAAuC,CAAA;AAE9C,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACb,MAAM,uCAAuC,CAAA"}
@@ -6,5 +6,5 @@
6
6
  * of truth. This module re-exports them to preserve the historical import
7
7
  * path (`../views/page-editor/section-types.js`) used across the editor.
8
8
  */
9
- export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, } from '@actuate-media/cms-core/page-sections';
9
+ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, resolveRepeaterField, isRepeaterField, blankRepeaterRow, } from '@actuate-media/cms-core/page-sections';
10
10
  //# sourceMappingURL=section-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"section-types.js","sourceRoot":"","sources":["../../../src/views/page-editor/section-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"section-types.js","sourceRoot":"","sources":["../../../src/views/page-editor/section-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,uCAAuC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cms-admin",
3
- "version": "0.39.0",
3
+ "version": "0.40.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/actuate-media/actuatecms.git",
@@ -88,7 +88,7 @@
88
88
  "tailwindcss": "^4.0.0",
89
89
  "typescript": "^5.7.0",
90
90
  "vitest": "^4.1.0",
91
- "@actuate-media/cms-core": "0.56.0",
91
+ "@actuate-media/cms-core": "0.57.0",
92
92
  "@actuate-media/component-blocks": "0.2.0"
93
93
  },
94
94
  "scripts": {
package/src/AdminRoot.tsx CHANGED
@@ -8,6 +8,8 @@ import { cmsApi, ensureCsrfToken } from './lib/api.js'
8
8
  import {
9
9
  registerSectionTypes,
10
10
  resetCustomSectionTypes,
11
+ resolveCustomSectionTypes,
12
+ type CustomSectionTypeInput,
11
13
  } from '@actuate-media/cms-core/page-sections'
12
14
  import { Dashboard } from './views/Dashboard.js'
13
15
  import { CollectionList } from './views/CollectionList.js'
@@ -159,12 +161,29 @@ function AdminShell({
159
161
  }
160
162
  }, [session])
161
163
 
162
- // Register config-declared custom section types into the client registry so
163
- // the Page/Post editors recognize them (Add Section gallery + field-driven
164
- // inspector). Reset first so a config change never leaves stale types.
164
+ // Make the Page/Post editors aware of custom section types (Add Section
165
+ // gallery + field-driven inspector) without a separately bundled registry.
166
+ //
167
+ // 1. Register config-declared types synchronously so the editor has them on
168
+ // first paint and as the offline fallback when the API can't be reached.
169
+ // 2. Then load the authoritative list from `/page-sections/types`, which the
170
+ // server builds by merging built-ins + every config-declared custom type
171
+ // it knows about. This is the single source of truth, so admin and server
172
+ // can never drift. Built-ins are skipped on registration (compiled in),
173
+ // so this only (re)adds custom types.
165
174
  useEffect(() => {
166
175
  resetCustomSectionTypes()
167
- registerSectionTypes(config?.sections?.customTypes)
176
+ registerSectionTypes(resolveCustomSectionTypes(config?.sections))
177
+
178
+ let cancelled = false
179
+ void cmsApi<CustomSectionTypeInput[]>('/page-sections/types').then((res) => {
180
+ if (cancelled || !Array.isArray(res.data)) return
181
+ resetCustomSectionTypes()
182
+ registerSectionTypes(res.data)
183
+ })
184
+ return () => {
185
+ cancelled = true
186
+ }
168
187
  }, [config])
169
188
 
170
189
  const shortcuts = useMemo(
@@ -220,7 +220,7 @@ function rowToEditorPage(doc: DocumentApiRow): EditorPage {
220
220
  status: doc.status ?? 'DRAFT',
221
221
  // Preserve unknown (externally-managed) sections so the editor can show
222
222
  // them read-only and round-trip them on save instead of dropping them.
223
- sections: coerceSectionsCore(data.sections, { preserveUnknown: true }),
223
+ sections: coerceSectionsCore(data.sections, { onUnknown: 'preserve' }),
224
224
  seoTitle: typeof data.metaTitle === 'string' ? data.metaTitle : '',
225
225
  seoDescription: typeof data.metaDescription === 'string' ? data.metaDescription : '',
226
226
  publishedAt: doc.publishedAt ?? null,