@prenta/admin 1.17.11 → 1.17.12

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @actuate-media/cms-admin
2
2
 
3
+ ## 1.17.12
4
+
5
+ ### Patch Changes
6
+
7
+ - 3b2cd30: An Article Body section that uses the post's Body field edits that field directly, labeled as shared with post settings, instead of the unused custom-copy box.
8
+
3
9
  ## 1.17.11
4
10
 
5
11
  ### Patch Changes
@@ -4,6 +4,9 @@ import { afterEach, describe, expect, it, vi } from 'vitest';
4
4
  import { cleanup, fireEvent, render, screen } from '@testing-library/react';
5
5
  import { SectionEditForm } from '../../views/page-editor/SectionEditForm.js';
6
6
  import { SectionsList } from '../../views/page-editor/SectionsPanel.js';
7
+ vi.mock('../../fields/RichTextField.js', () => ({
8
+ RichTextField: ({ label, value, onChange, helpText, }) => (_jsxs("label", { children: [label, _jsx("textarea", { "aria-label": label, value: value ?? '', onChange: (e) => onChange(e.target.value) }), helpText ? _jsx("span", { children: helpText }) : null] })),
9
+ }));
7
10
  afterEach(cleanup);
8
11
  function section(over = {}) {
9
12
  return {
@@ -67,6 +70,39 @@ describe('SectionEditForm — content only', () => {
67
70
  expect(screen.getByText(/Managed outside the editor/i)).toBeTruthy();
68
71
  expect(screen.queryByLabelText('Section name')).toBeNull();
69
72
  });
73
+ it('edits the post Body field when an article body uses that source (#519)', () => {
74
+ const onPostBodyChange = vi.fn();
75
+ const { onContentChange } = renderForm({
76
+ section: section({
77
+ sectionType: 'article-body',
78
+ name: 'Article Body',
79
+ content: { source: 'field', body: '<p>custom</p>', width: 'normal', showToc: false },
80
+ }),
81
+ postBody: '<p>Hello</p>',
82
+ onPostBodyChange,
83
+ });
84
+ expect(screen.getByLabelText('Post body field')).toBeTruthy();
85
+ expect(screen.getByText(/Shared with post settings/i)).toBeTruthy();
86
+ expect(screen.queryByLabelText('Custom body')).toBeNull();
87
+ fireEvent.change(screen.getByLabelText('Post body field'), {
88
+ target: { value: '<p>Next</p>' },
89
+ });
90
+ expect(onPostBodyChange).toHaveBeenCalledWith('<p>Next</p>');
91
+ expect(onContentChange).not.toHaveBeenCalled();
92
+ });
93
+ it('keeps Custom body when the article body source is custom copy', () => {
94
+ renderForm({
95
+ section: section({
96
+ sectionType: 'article-body',
97
+ name: 'Article Body',
98
+ content: { source: 'override', body: '<p>Only here</p>' },
99
+ }),
100
+ postBody: '<p>Hello</p>',
101
+ onPostBodyChange: vi.fn(),
102
+ });
103
+ expect(screen.queryByLabelText('Post body field')).toBeNull();
104
+ expect(screen.getByLabelText('Custom body')).toBeTruthy();
105
+ });
70
106
  it('disables every control for a read-only user', () => {
71
107
  renderForm({ canEdit: false });
72
108
  // Asserted on the fieldset, not the input: a disabled ancestor fieldset is
@@ -1 +1 @@
1
- {"version":3,"file":"section-edit-form.render.test.js","sourceRoot":"","sources":["../../../src/__tests__/views/section-edit-form.render.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"section-edit-form.render.test.js","sourceRoot":"","sources":["../../../src/__tests__/views/section-edit-form.render.test.tsx"],"names":[],"mappings":"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"}
@@ -48,6 +48,6 @@ export function SectionEditForm({ section, canEdit, onContentChange, onMetaChang
48
48
  // The validator reads the same helper, so it can never require a field the
49
49
  // editor is not drawing.
50
50
  const contentFields = visibleFields(def?.fields ?? [], section.content).filter((f) => !(editPostBodyField && f.key === 'body')) ?? [];
51
- return (_jsxs("div", { className: "border-border bg-muted/40 border-t px-3 py-3.5", children: [_jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [editPostBodyField && (_jsx(RichTextField, { label: "Body", value: postBody ?? '', onChange: onPostBodyChange, className: "[&_.ProseMirror]:min-h-[240px]", helpText: "Main article copy \u2014 rendered in the canvas preview and on the live site." })), contentFields.map((field) => (_jsx(ContentField, { id: `sec-${section.id}-${field.key}`, field: field, value: section.content[field.key], onChange: (v) => onContentChange({ [field.key]: v }), onPatch: (patch) => onContentChange(patch) }, field.key))), contentFields.length === 0 && !editPostBodyField && (_jsx("p", { className: "text-muted-foreground text-xs", children: "This section has no editable content \u2014 it is rendered entirely from the template." })), _jsxs("details", { className: "group", children: [_jsx("summary", { className: "text-muted-foreground hover:text-foreground cursor-pointer list-none text-[11px] font-medium tracking-wider uppercase", children: "Section settings" }), _jsxs("div", { className: "mt-2.5 space-y-3", children: [_jsxs("div", { children: [_jsx("label", { className: FIELD_LABEL, htmlFor: `sec-${section.id}-name`, children: "Section name" }), _jsx("input", { id: `sec-${section.id}-name`, className: FIELD_INPUT, value: section.name, onChange: (e) => onMetaChange({ name: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { className: FIELD_LABEL, htmlFor: `sec-${section.id}-internal`, children: "Internal label" }), _jsx("input", { id: `sec-${section.id}-internal`, className: FIELD_INPUT, placeholder: "Team-only note (optional)", value: section.internalLabel ?? '', onChange: (e) => onMetaChange({ internalLabel: e.target.value }) })] })] })] })] }), _jsxs("p", { className: "text-muted-foreground mt-3 flex items-start gap-1.5 text-[11px] leading-relaxed", children: [_jsx(Lock, { className: "mt-0.5 h-3 w-3 shrink-0", "aria-hidden": true }), _jsxs("span", { children: ["Background, spacing and layout come from the template.", ' ', _jsxs("a", { href: "https://github.com/actuate-media/prenta/blob/main/docs/design-owned-sections.md", target: "_blank", rel: "noopener noreferrer", className: "text-brand inline-flex items-center gap-0.5 hover:underline", children: ["Why", _jsx(ExternalLink, { className: "h-2.5 w-2.5", "aria-hidden": true })] })] })] })] }));
51
+ return (_jsxs("div", { className: "border-border bg-muted/40 border-t px-3 py-3.5", children: [_jsxs("fieldset", { disabled: !canEdit, className: "space-y-3", children: [editPostBodyField && (_jsx(RichTextField, { label: "Post body field", value: postBody ?? '', onChange: onPostBodyChange, className: "[&_.ProseMirror]:min-h-[240px]", helpText: "Shared with post settings. Edits here change the post's Body field, which the canvas and the live site both render." })), contentFields.map((field) => (_jsx(ContentField, { id: `sec-${section.id}-${field.key}`, field: field, value: section.content[field.key], onChange: (v) => onContentChange({ [field.key]: v }), onPatch: (patch) => onContentChange(patch) }, field.key))), contentFields.length === 0 && !editPostBodyField && (_jsx("p", { className: "text-muted-foreground text-xs", children: "This section has no editable content \u2014 it is rendered entirely from the template." })), _jsxs("details", { className: "group", children: [_jsx("summary", { className: "text-muted-foreground hover:text-foreground cursor-pointer list-none text-[11px] font-medium tracking-wider uppercase", children: "Section settings" }), _jsxs("div", { className: "mt-2.5 space-y-3", children: [_jsxs("div", { children: [_jsx("label", { className: FIELD_LABEL, htmlFor: `sec-${section.id}-name`, children: "Section name" }), _jsx("input", { id: `sec-${section.id}-name`, className: FIELD_INPUT, value: section.name, onChange: (e) => onMetaChange({ name: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { className: FIELD_LABEL, htmlFor: `sec-${section.id}-internal`, children: "Internal label" }), _jsx("input", { id: `sec-${section.id}-internal`, className: FIELD_INPUT, placeholder: "Team-only note (optional)", value: section.internalLabel ?? '', onChange: (e) => onMetaChange({ internalLabel: e.target.value }) })] })] })] })] }), _jsxs("p", { className: "text-muted-foreground mt-3 flex items-start gap-1.5 text-[11px] leading-relaxed", children: [_jsx(Lock, { className: "mt-0.5 h-3 w-3 shrink-0", "aria-hidden": true }), _jsxs("span", { children: ["Background, spacing and layout come from the template.", ' ', _jsxs("a", { href: "https://github.com/actuate-media/prenta/blob/main/docs/design-owned-sections.md", target: "_blank", rel: "noopener noreferrer", className: "text-brand inline-flex items-center gap-0.5 hover:underline", children: ["Why", _jsx(ExternalLink, { className: "h-2.5 w-2.5", "aria-hidden": true })] })] })] })] }));
52
52
  }
53
53
  //# sourceMappingURL=SectionEditForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionEditForm.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionEditForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SectionEditForm.js","sourceRoot":"","sources":["../../../src/views/page-editor/SectionEditForm.tsx"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export function SectionInspector({ section, canEdit, onClose, onContentChange, o
38
38
  if (section.unmanaged) {
39
39
  return (_jsxs(ResizableAside, { role: "dialog", "aria-label": `${section.name} (read-only)`, className: INSPECTOR_SHELL, children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-6 py-4", 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(InspectorHeaderActions, { onClose: onClose })] }), _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."] })] }) })] }));
40
40
  }
41
- return (_jsxs(ResizableAside, { role: "dialog", "aria-label": `Edit ${section.name}`, className: INSPECTOR_SHELL, children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-6 py-4", 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(InspectorHeaderActions, { onClose: onClose })] }), _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-medium tracking-wider uppercase", children: "Content" }), editPostBodyField && (_jsx(RichTextField, { label: "Body", value: postBody ?? '', onChange: onPostBodyChange, className: "[&_.ProseMirror]:min-h-[240px]", helpText: "Main article copy \u2014 rendered in the canvas preview and on the live site." })), contentFields.map((field) => (_jsx(ContentField, { field: field, value: section.content[field.key], onChange: (v) => onContentChange({ [field.key]: v }), onPatch: (patch) => onContentChange(patch) }, field.key)))] }), _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: "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 }) })] }), showVisibilityToggle && (_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-medium 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({
41
+ return (_jsxs(ResizableAside, { role: "dialog", "aria-label": `Edit ${section.name}`, className: INSPECTOR_SHELL, children: [_jsxs("div", { className: "border-border flex items-center justify-between border-b px-6 py-4", 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(InspectorHeaderActions, { onClose: onClose })] }), _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-medium tracking-wider uppercase", children: "Content" }), editPostBodyField && (_jsx(RichTextField, { label: "Post body field", value: postBody ?? '', onChange: onPostBodyChange, className: "[&_.ProseMirror]:min-h-[240px]", helpText: "Shared with post settings. Edits here change the post's Body field, which the canvas and the live site both render." })), contentFields.map((field) => (_jsx(ContentField, { field: field, value: section.content[field.key], onChange: (v) => onContentChange({ [field.key]: v }), onPatch: (patch) => onContentChange(patch) }, field.key)))] }), _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: "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 }) })] }), showVisibilityToggle && (_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-medium 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({
42
42
  backgroundType: e.target.value,
43
43
  }), 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 }) })] })] })] })] }));
44
44
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prenta/admin",
3
- "version": "1.17.11",
3
+ "version": "1.17.12",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -99,15 +99,15 @@
99
99
  "tailwindcss": "^4.0.0",
100
100
  "typescript": "^5.7.0",
101
101
  "vitest": "^4.1.0",
102
- "@prenta/component-blocks": "0.3.1",
103
102
  "@prenta/core": "7.5.2",
104
103
  "@prenta/plugin-ai": "3.0.1",
104
+ "@prenta/component-blocks": "0.3.1",
105
105
  "@prenta/plugin-blocks": "0.2.1",
106
106
  "@prenta/plugin-commerce": "0.2.3",
107
- "@prenta/plugin-media": "0.2.1",
108
107
  "@prenta/plugin-forms": "0.1.1",
109
- "@prenta/plugin-seo": "1.0.1",
110
108
  "@prenta/plugin-navigation": "0.3.1",
109
+ "@prenta/plugin-seo": "1.0.1",
110
+ "@prenta/plugin-media": "0.2.1",
111
111
  "@prenta/sections-react": "0.17.54"
112
112
  },
113
113
  "scripts": {
@@ -5,6 +5,26 @@ import { SectionEditForm } from '../../views/page-editor/SectionEditForm.js'
5
5
  import { SectionsList } from '../../views/page-editor/SectionsPanel.js'
6
6
  import type { PageSection } from '../../lib/page-editor-service.js'
7
7
 
8
+ vi.mock('../../fields/RichTextField.js', () => ({
9
+ RichTextField: ({
10
+ label,
11
+ value,
12
+ onChange,
13
+ helpText,
14
+ }: {
15
+ label: string
16
+ value?: string
17
+ onChange: (value: string) => void
18
+ helpText?: string
19
+ }) => (
20
+ <label>
21
+ {label}
22
+ <textarea aria-label={label} value={value ?? ''} onChange={(e) => onChange(e.target.value)} />
23
+ {helpText ? <span>{helpText}</span> : null}
24
+ </label>
25
+ ),
26
+ }))
27
+
8
28
  afterEach(cleanup)
9
29
 
10
30
  function section(over: Partial<PageSection> = {}): PageSection {
@@ -85,6 +105,41 @@ describe('SectionEditForm — content only', () => {
85
105
  expect(screen.queryByLabelText('Section name')).toBeNull()
86
106
  })
87
107
 
108
+ it('edits the post Body field when an article body uses that source (#519)', () => {
109
+ const onPostBodyChange = vi.fn()
110
+ const { onContentChange } = renderForm({
111
+ section: section({
112
+ sectionType: 'article-body',
113
+ name: 'Article Body',
114
+ content: { source: 'field', body: '<p>custom</p>', width: 'normal', showToc: false },
115
+ }),
116
+ postBody: '<p>Hello</p>',
117
+ onPostBodyChange,
118
+ })
119
+ expect(screen.getByLabelText('Post body field')).toBeTruthy()
120
+ expect(screen.getByText(/Shared with post settings/i)).toBeTruthy()
121
+ expect(screen.queryByLabelText('Custom body')).toBeNull()
122
+ fireEvent.change(screen.getByLabelText('Post body field'), {
123
+ target: { value: '<p>Next</p>' },
124
+ })
125
+ expect(onPostBodyChange).toHaveBeenCalledWith('<p>Next</p>')
126
+ expect(onContentChange).not.toHaveBeenCalled()
127
+ })
128
+
129
+ it('keeps Custom body when the article body source is custom copy', () => {
130
+ renderForm({
131
+ section: section({
132
+ sectionType: 'article-body',
133
+ name: 'Article Body',
134
+ content: { source: 'override', body: '<p>Only here</p>' },
135
+ }),
136
+ postBody: '<p>Hello</p>',
137
+ onPostBodyChange: vi.fn(),
138
+ })
139
+ expect(screen.queryByLabelText('Post body field')).toBeNull()
140
+ expect(screen.getByLabelText('Custom body')).toBeTruthy()
141
+ })
142
+
88
143
  it('disables every control for a read-only user', () => {
89
144
  renderForm({ canEdit: false })
90
145
  // Asserted on the fieldset, not the input: a disabled ancestor fieldset is
@@ -90,11 +90,11 @@ export function SectionEditForm({
90
90
  <fieldset disabled={!canEdit} className="space-y-3">
91
91
  {editPostBodyField && (
92
92
  <RichTextField
93
- label="Body"
93
+ label="Post body field"
94
94
  value={postBody ?? ''}
95
95
  onChange={onPostBodyChange}
96
96
  className="[&_.ProseMirror]:min-h-[240px]"
97
- helpText="Main article copy — rendered in the canvas preview and on the live site."
97
+ helpText="Shared with post settings. Edits here change the post's Body field, which the canvas and the live site both render."
98
98
  />
99
99
  )}
100
100
 
@@ -148,11 +148,11 @@ export function SectionInspector({
148
148
  </legend>
149
149
  {editPostBodyField && (
150
150
  <RichTextField
151
- label="Body"
151
+ label="Post body field"
152
152
  value={postBody ?? ''}
153
153
  onChange={onPostBodyChange}
154
154
  className="[&_.ProseMirror]:min-h-[240px]"
155
- helpText="Main article copy — rendered in the canvas preview and on the live site."
155
+ helpText="Shared with post settings. Edits here change the post's Body field, which the canvas and the live site both render."
156
156
  />
157
157
  )}
158
158
  {contentFields.map((field) => (