@actuate-media/cms-core 0.55.0 → 0.57.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.
Files changed (51) hide show
  1. package/dist/__tests__/api/page-sections-routes.test.js +97 -0
  2. package/dist/__tests__/api/page-sections-routes.test.js.map +1 -1
  3. package/dist/api/handler-factory.d.ts.map +1 -1
  4. package/dist/api/handler-factory.js +6 -0
  5. package/dist/api/handler-factory.js.map +1 -1
  6. package/dist/api/handlers.d.ts.map +1 -1
  7. package/dist/api/handlers.js +15 -5
  8. package/dist/api/handlers.js.map +1 -1
  9. package/dist/config/types.d.ts +8 -0
  10. package/dist/config/types.d.ts.map +1 -1
  11. package/dist/fields/__tests__/presets.test.d.ts +2 -0
  12. package/dist/fields/__tests__/presets.test.d.ts.map +1 -0
  13. package/dist/fields/__tests__/presets.test.js +29 -0
  14. package/dist/fields/__tests__/presets.test.js.map +1 -0
  15. package/dist/fields/index.d.ts +1 -1
  16. package/dist/fields/index.d.ts.map +1 -1
  17. package/dist/fields/index.js +1 -1
  18. package/dist/fields/index.js.map +1 -1
  19. package/dist/fields/presets.d.ts +11 -0
  20. package/dist/fields/presets.d.ts.map +1 -1
  21. package/dist/fields/presets.js +20 -0
  22. package/dist/fields/presets.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/page-builder/schema.d.ts +4 -4
  28. package/dist/sections/__tests__/sections.test.js +200 -3
  29. package/dist/sections/__tests__/sections.test.js.map +1 -1
  30. package/dist/sections/fields.d.ts +37 -0
  31. package/dist/sections/fields.d.ts.map +1 -0
  32. package/dist/sections/fields.js +50 -0
  33. package/dist/sections/fields.js.map +1 -0
  34. package/dist/sections/helpers.d.ts +69 -8
  35. package/dist/sections/helpers.d.ts.map +1 -1
  36. package/dist/sections/helpers.js +108 -19
  37. package/dist/sections/helpers.js.map +1 -1
  38. package/dist/sections/index.d.ts +4 -3
  39. package/dist/sections/index.d.ts.map +1 -1
  40. package/dist/sections/index.js +3 -2
  41. package/dist/sections/index.js.map +1 -1
  42. package/dist/sections/registry.d.ts +23 -4
  43. package/dist/sections/registry.d.ts.map +1 -1
  44. package/dist/sections/registry.js +70 -4
  45. package/dist/sections/registry.js.map +1 -1
  46. package/dist/sections/types.d.ts +68 -3
  47. package/dist/sections/types.d.ts.map +1 -1
  48. package/dist/sections/validate.d.ts.map +1 -1
  49. package/dist/sections/validate.js +51 -13
  50. package/dist/sections/validate.js.map +1 -1
  51. package/package.json +1 -1
@@ -6,7 +6,7 @@
6
6
  * tests all share ONE implementation. No DOM, React, or Node APIs here —
7
7
  * keep this module isomorphic so it runs in the browser and on the server.
8
8
  */
9
- import { SECTION_TYPES, getSectionType } from './registry.js';
9
+ import { getSectionType } from './registry.js';
10
10
  // ─── ID generation ───────────────────────────────────────────────────
11
11
  let idCounter = 0;
12
12
  /** Generate a unique section id (UUID when available, monotonic fallback). */
@@ -20,7 +20,10 @@ export function generateSectionId() {
20
20
  // ─── Section factory + array helpers ─────────────────────────────────
21
21
  /** Create a fresh section of the given type, seeded with registry defaults. */
22
22
  export function createSection(type) {
23
- const def = SECTION_TYPES[type];
23
+ const def = getSectionType(type);
24
+ if (!def) {
25
+ throw new Error(`createSection: unknown section type "${type}"`);
26
+ }
24
27
  return {
25
28
  id: generateSectionId(),
26
29
  sectionType: type,
@@ -94,35 +97,121 @@ export function updateSectionMeta(sections, id, patch) {
94
97
  return sections.map((s) => (s.id === id ? { ...s, ...patch } : s));
95
98
  }
96
99
  /**
97
- * Normalize arbitrary JSON into a clean `PageSection[]`.
100
+ * Thrown by {@link coerceSections} / {@link coerceSectionsWithReport} when
101
+ * `onUnknown: 'error'` and the input contains unregistered section types.
102
+ * Use it to block a publish/import rather than silently dropping content.
103
+ */
104
+ export class UnknownSectionTypeError extends Error {
105
+ sectionTypes;
106
+ constructor(sectionTypes) {
107
+ super(`Unknown section type(s): ${sectionTypes.join(', ')}. ` +
108
+ 'Register them via `sections.types` in your config, or remove them.');
109
+ this.name = 'UnknownSectionTypeError';
110
+ this.sectionTypes = sectionTypes;
111
+ }
112
+ }
113
+ /** Resolve the effective unknown-type strategy, honoring the legacy flag. */
114
+ function resolveUnknownStrategy(opts) {
115
+ if (opts.onUnknown)
116
+ return opts.onUnknown;
117
+ if (opts.preserveUnknown)
118
+ return 'preserve';
119
+ return 'drop';
120
+ }
121
+ function isProd() {
122
+ // Works in both bundled browser builds and Node; defaults to dev when unset.
123
+ return typeof process !== 'undefined' && process.env?.NODE_ENV === 'production';
124
+ }
125
+ /**
126
+ * Normalize arbitrary JSON into a clean `PageSection[]` and report what
127
+ * happened to entries with an unknown `sectionType`. See
128
+ * {@link CoerceSectionsOptions} for the unknown-type strategy.
98
129
  *
99
- * Drops entries with an unknown `sectionType` (rather than rendering a
100
- * blank), backfills missing ids/names, and coerces visibility. Used when
101
- * reading `data.sections` from the DB and when accepting an AI/agent
130
+ * Used when reading `data.sections` from the DB and when accepting an AI/agent
102
131
  * payload that may be partially shaped.
103
132
  */
104
- export function coerceSections(raw) {
105
- if (!Array.isArray(raw))
106
- return [];
133
+ export function coerceSectionsWithReport(raw, opts = {}) {
134
+ const strategy = resolveUnknownStrategy(opts);
107
135
  const out = [];
108
- for (const item of raw) {
136
+ const dropped = [];
137
+ const preserved = [];
138
+ if (!Array.isArray(raw))
139
+ return { sections: out, dropped, preserved };
140
+ raw.forEach((item, index) => {
109
141
  if (!item || typeof item !== 'object')
110
- continue;
142
+ return;
111
143
  const s = item;
112
144
  const type = String(s.sectionType ?? '');
113
- if (!getSectionType(type))
114
- continue; // drop unknown types instead of rendering blanks
145
+ const content = s.content && typeof s.content === 'object' ? s.content : {};
146
+ const settings = s.settings && typeof s.settings === 'object' ? s.settings : {};
147
+ const id = typeof s.id === 'string' && s.id ? s.id : generateSectionId();
148
+ const internalLabel = typeof s.internalLabel === 'string' ? s.internalLabel : undefined;
149
+ const def = getSectionType(type);
150
+ if (!def) {
151
+ // A blank type is never recoverable — always drop it (it can't render or
152
+ // be re-registered), regardless of strategy.
153
+ if (!type) {
154
+ dropped.push({ sectionType: type, index });
155
+ return;
156
+ }
157
+ if (strategy === 'preserve') {
158
+ preserved.push({ sectionType: type, index });
159
+ out.push({
160
+ id,
161
+ sectionType: type,
162
+ name: typeof s.name === 'string' && s.name ? s.name : type,
163
+ internalLabel,
164
+ visible: s.visible !== false,
165
+ content,
166
+ settings,
167
+ unmanaged: true,
168
+ });
169
+ return;
170
+ }
171
+ // 'drop' and 'error' both record the offender; 'error' throws below.
172
+ dropped.push({ sectionType: type, index });
173
+ if (strategy === 'drop')
174
+ opts.onDrop?.({ sectionType: type, index });
175
+ return;
176
+ }
115
177
  out.push({
116
- id: typeof s.id === 'string' && s.id ? s.id : generateSectionId(),
178
+ id,
117
179
  sectionType: type,
118
- name: typeof s.name === 'string' ? s.name : SECTION_TYPES[type].name,
119
- internalLabel: typeof s.internalLabel === 'string' ? s.internalLabel : undefined,
180
+ name: typeof s.name === 'string' ? s.name : def.name,
181
+ internalLabel,
120
182
  visible: s.visible !== false,
121
- content: s.content && typeof s.content === 'object' ? s.content : {},
122
- settings: s.settings && typeof s.settings === 'object' ? s.settings : {},
183
+ content,
184
+ settings,
123
185
  });
186
+ });
187
+ if (strategy === 'error') {
188
+ const unknownTypes = dropped.filter((d) => d.sectionType).map((d) => d.sectionType);
189
+ if (unknownTypes.length > 0)
190
+ throw new UnknownSectionTypeError([...new Set(unknownTypes)]);
124
191
  }
125
- return out;
192
+ // Dev-only safety net for the common "forgot to register the type" mistake.
193
+ // Suppressed when the caller passed `onDrop` (it owns the signal) or in prod.
194
+ if (strategy === 'drop' && !opts.onDrop && !isProd()) {
195
+ const named = dropped.filter((d) => d.sectionType).map((d) => d.sectionType);
196
+ if (named.length > 0) {
197
+ console.warn(`[actuate] coerceSections dropped ${named.length} section(s) with unknown type(s): ` +
198
+ `${[...new Set(named)].join(', ')}. Register them via \`sections.types\` or pass ` +
199
+ '`{ onUnknown: "preserve" }` to keep them.');
200
+ }
201
+ }
202
+ return { sections: out, dropped, preserved };
203
+ }
204
+ /**
205
+ * Normalize arbitrary JSON into a clean `PageSection[]`.
206
+ *
207
+ * Thin wrapper over {@link coerceSectionsWithReport} that returns just the
208
+ * sections. Backfills missing ids/names and coerces visibility; unknown types
209
+ * are dropped by default (with a dev warning) — pass `{ onUnknown: 'preserve' }`
210
+ * at a persistence boundary to keep them as `unmanaged`, or `{ onUnknown:
211
+ * 'error' }` to block.
212
+ */
213
+ export function coerceSections(raw, opts = {}) {
214
+ return coerceSectionsWithReport(raw, opts).sections;
126
215
  }
127
216
  /**
128
217
  * Build a fully-formed section from a (possibly partial) AI/agent payload:
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAS7D,wEAAwE;AAExE,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IACD,SAAS,IAAI,CAAC,CAAA;IACd,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAA;AACtD,CAAC;AAED,wEAAwE;AAExE,+EAA+E;AAC/E,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,IAAI;QACb,qEAAqE;QACrE,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5C,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;KAC/C,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CACxB,QAAuB,EACvB,OAAoB,EACpB,KAAc;IAEd,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,EAAE,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IACxF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAuB,EAAE,EAAU;IAC/D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,QAAuB,EAAE,EAAU;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAE,CAAA;IAC/B,MAAM,IAAI,GAAgB;QACxB,GAAG,QAAQ;QACX,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,SAAS;QAC/B,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC7C,CAAA;IACD,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAuB,EAAE,EAAU;IACzE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAClC,QAAuB,EACvB,EAAU,EACV,OAAgB;IAEhB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,EAAU,EAAE,OAAe;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAA;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAM,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,QAAuB,EAAE,UAAoB;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAChG,6EAA6E;IAC7E,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAuB,EACvB,EAAU,EACV,KAA8B;IAE9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAuB,EACvB,EAAU,EACV,KAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAuB,EACvB,EAAU,EACV,KAAgD;IAEhD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,GAAG,GAAkB,EAAE,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAC/C,MAAM,CAAC,GAAG,IAA+B,CAAA;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,SAAQ,CAAC,iDAAiD;QACrF,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE;YACjE,WAAW,EAAE,IAAqB;YAClC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAqB,CAAC,CAAC,IAAI;YACrF,aAAa,EAAE,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAChF,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK;YAC5B,OAAO,EACL,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE;YAC1F,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,QAA4B,CAAC,CAAC,CAAC,EAAE;SAC9F,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,QAMI,EAAE;IAEN,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC9D,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK;QAChC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;QACtD,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;KAC1D,CAAA;AACH,CAAC;AAED,wEAAwE;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAC9D,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACvB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAA;IAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,CAAC,GAAG,GAA8B,CAAA;IACxC,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QACtE,CAAC,CAAC,CAAC,CAAC,MAAM;QACV,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACjB,MAAM,IAAI,GAAG,CAAC,GAA2B,EAAW,EAAE,CACpD,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAa,CAAA;IAC5E,OAAO;QACL,MAAM;QACN,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC5C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;QAC1B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;QAClC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC;KACzC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,iBAAiB,EAAE;QAC3B,QAAQ,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC1E,CAAA;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,GAAY;IAC/D,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QACrC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;KACxC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,12 @@
6
6
  * package root) to avoid colliding with the page-builder *tree* model,
7
7
  * which already exports `SectionSettings` / `createSection` from the root.
8
8
  */
9
- export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, } from './registry.js';
10
- export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
9
+ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, getAllSectionTypes, sectionTypeLabel, isKnownSectionType, registerSectionTypes, resetCustomSectionTypes, resolveCustomSectionTypes, } from './registry.js';
10
+ export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, coerceSectionsWithReport, UnknownSectionTypeError, type CoerceSectionsOptions, type CoerceSectionsReport, type UnknownSectionStrategy, type UnknownSectionRef, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
11
11
  export { validateSectionContent } from './validate.js';
12
+ export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, type ResolvedRepeater, type RepeaterRow, } from './fields.js';
12
13
  export { layoutTreeToSections } from './bridge.js';
13
14
  export { collectSectionImageUrls, applyMediaMeta } from './media-enrich.js';
14
15
  export type { MediaMeta } from './media-enrich.js';
15
- export type { SectionTypeId, SectionScope, SectionFieldType, SectionFieldDef, SectionSettings, SectionTypeDef, PageSection, PostHeaderConfig, PostTemplate, SectionValidationIssue, SectionValidationResult, } from './types.js';
16
+ export type { SectionTypeId, SectionScope, SectionFieldType, SectionFieldDef, SectionSettings, SectionTypeDef, CustomSectionTypeInput, SectionsConfig, PageSection, PostHeaderConfig, PostTemplate, SectionValidationIssue, SectionValidationResult, } from './types.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sections/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sections/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,YAAY,CAAA"}
@@ -6,9 +6,10 @@
6
6
  * package root) to avoid colliding with the page-builder *tree* model,
7
7
  * which already exports `SectionSettings` / `createSection` from the root.
8
8
  */
9
- export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, sectionTypeLabel, isKnownSectionType, } from './registry.js';
10
- export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
9
+ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForScope, getAllSectionTypes, sectionTypeLabel, isKnownSectionType, registerSectionTypes, resetCustomSectionTypes, resolveCustomSectionTypes, } from './registry.js';
10
+ export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, coerceSectionsWithReport, UnknownSectionTypeError, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
11
11
  export { validateSectionContent } from './validate.js';
12
+ export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, } from './fields.js';
12
13
  export { layoutTreeToSections } from './bridge.js';
13
14
  export { collectSectionImageUrls, applyMediaMeta } from './media-enrich.js';
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sections/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sections/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EAKvB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GAGjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -7,21 +7,40 @@
7
7
  * gallery nor an AI agent can produce a section without a working renderer
8
8
  * + inspector + schema ("no dead sections").
9
9
  */
10
- import type { SectionScope, SectionTypeDef, SectionTypeId } from './types.js';
10
+ import type { CustomSectionTypeInput, SectionScope, SectionsConfig, SectionTypeDef, SectionTypeId } from './types.js';
11
11
  export declare const SECTION_TYPES: Record<SectionTypeId, SectionTypeDef>;
12
12
  /** Ordered list for the Add Section gallery + discovery endpoints. */
13
13
  export declare const SECTION_TYPE_LIST: SectionTypeDef[];
14
+ /**
15
+ * Register (or replace) config-declared custom section types, application-wide.
16
+ * Built-in types always win on an id collision, so a custom type can never
17
+ * shadow a core type. Invalid entries (missing/blank id) are skipped.
18
+ */
19
+ export declare function registerSectionTypes(inputs: CustomSectionTypeInput[] | undefined): void;
20
+ /** Remove all registered custom types. Called before re-registering at boot. */
21
+ export declare function resetCustomSectionTypes(): void;
22
+ /**
23
+ * Resolve the effective custom section types from `config.sections`, honoring
24
+ * the canonical `sections.types` key and falling back to the deprecated
25
+ * `sections.customTypes` alias. `types` wins outright when present so the
26
+ * precedence is predictable. Both server boot (handler-factory) and admin boot
27
+ * (AdminRoot) call this so the two surfaces never diverge.
28
+ */
29
+ export declare function resolveCustomSectionTypes(sections: SectionsConfig | undefined): CustomSectionTypeInput[] | undefined;
30
+ /** All known section types (built-ins first, then customs in registration order). */
31
+ export declare function getAllSectionTypes(): SectionTypeDef[];
14
32
  export declare function getSectionType(id: string): SectionTypeDef | undefined;
15
33
  /**
16
34
  * Section types available in a given editor context, in registry order.
17
35
  *
18
36
  * The Page editor passes `'page'`, the Post editor + Post Template editor
19
37
  * pass `'post'`, so each Add Section gallery shows only the types that make
20
- * sense (and have a working renderer) for that surface.
38
+ * sense (and have a working renderer) for that surface. Config-declared custom
39
+ * types that include the scope are included.
21
40
  */
22
41
  export declare function getSectionTypesForScope(scope: SectionScope): SectionTypeDef[];
23
42
  /** Human label for a section type id, with a graceful fallback. */
24
43
  export declare function sectionTypeLabel(id: string): string;
25
- /** True when `id` is a registered, renderable section type. */
26
- export declare function isKnownSectionType(id: string): id is SectionTypeId;
44
+ /** True when `id` is a registered, renderable section type (built-in or custom). */
45
+ export declare function isKnownSectionType(id: string): boolean;
27
46
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sections/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAmB,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI9F,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,cAAc,CAyV/D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAY7C,CAAA;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAE7E;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,aAAa,CAElE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sections/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,cAAc,CAyV/D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAY7C,CAAA;AAmCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,SAAS,GAAG,IAAI,CAOvF;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,cAAc,GAAG,SAAS,GACnC,sBAAsB,EAAE,GAAG,SAAS,CAGtC;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAE7E;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -357,24 +357,90 @@ export const SECTION_TYPE_LIST = [
357
357
  SECTION_TYPES['related-posts'],
358
358
  SECTION_TYPES.gallery,
359
359
  ];
360
+ // ─── Custom (config-declared) section types ──────────────────────────
361
+ //
362
+ // A consumer declares extra section types in `actuate.config.ts` under
363
+ // `sections.types` (or the deprecated `sections.customTypes` alias). They are
364
+ // merged into the built-in registry at
365
+ // runtime so the Add Section gallery, the field-driven inspector, coerce, and
366
+ // validation all treat them as first-class, editable types. The map is a
367
+ // module-level singleton populated once at boot (server: handler-factory;
368
+ // admin: AdminRoot), mirroring how cms-core's runtime config and
369
+ // sections-react's renderer overrides are registered.
370
+ const customSectionTypes = new Map();
371
+ const CUSTOM_DEFAULT_SETTINGS = { backgroundType: 'none', paddingY: 'lg' };
372
+ /** Normalize a serializable custom-type input into a full {@link SectionTypeDef}. */
373
+ function normalizeCustomType(input) {
374
+ return {
375
+ id: input.id,
376
+ name: input.name,
377
+ icon: input.icon ?? 'puzzle',
378
+ description: input.description ?? '',
379
+ category: input.category ?? 'content',
380
+ accent: input.accent ?? 'blue',
381
+ scope: input.scope,
382
+ defaultContent: input.defaultContent ? { ...input.defaultContent } : {},
383
+ defaultSettings: input.defaultSettings
384
+ ? { ...input.defaultSettings }
385
+ : { ...CUSTOM_DEFAULT_SETTINGS },
386
+ fields: input.fields ?? [],
387
+ };
388
+ }
389
+ /**
390
+ * Register (or replace) config-declared custom section types, application-wide.
391
+ * Built-in types always win on an id collision, so a custom type can never
392
+ * shadow a core type. Invalid entries (missing/blank id) are skipped.
393
+ */
394
+ export function registerSectionTypes(inputs) {
395
+ if (!Array.isArray(inputs))
396
+ return;
397
+ for (const input of inputs) {
398
+ if (!input || typeof input.id !== 'string' || !input.id.trim())
399
+ continue;
400
+ if (input.id in SECTION_TYPES)
401
+ continue; // never shadow a built-in
402
+ customSectionTypes.set(input.id, normalizeCustomType(input));
403
+ }
404
+ }
405
+ /** Remove all registered custom types. Called before re-registering at boot. */
406
+ export function resetCustomSectionTypes() {
407
+ customSectionTypes.clear();
408
+ }
409
+ /**
410
+ * Resolve the effective custom section types from `config.sections`, honoring
411
+ * the canonical `sections.types` key and falling back to the deprecated
412
+ * `sections.customTypes` alias. `types` wins outright when present so the
413
+ * precedence is predictable. Both server boot (handler-factory) and admin boot
414
+ * (AdminRoot) call this so the two surfaces never diverge.
415
+ */
416
+ export function resolveCustomSectionTypes(sections) {
417
+ if (!sections)
418
+ return undefined;
419
+ return sections.types ?? sections.customTypes;
420
+ }
421
+ /** All known section types (built-ins first, then customs in registration order). */
422
+ export function getAllSectionTypes() {
423
+ return [...SECTION_TYPE_LIST, ...customSectionTypes.values()];
424
+ }
360
425
  export function getSectionType(id) {
361
- return SECTION_TYPES[id];
426
+ return SECTION_TYPES[id] ?? customSectionTypes.get(id);
362
427
  }
363
428
  /**
364
429
  * Section types available in a given editor context, in registry order.
365
430
  *
366
431
  * The Page editor passes `'page'`, the Post editor + Post Template editor
367
432
  * pass `'post'`, so each Add Section gallery shows only the types that make
368
- * sense (and have a working renderer) for that surface.
433
+ * sense (and have a working renderer) for that surface. Config-declared custom
434
+ * types that include the scope are included.
369
435
  */
370
436
  export function getSectionTypesForScope(scope) {
371
- return SECTION_TYPE_LIST.filter((def) => def.scope.includes(scope));
437
+ return getAllSectionTypes().filter((def) => def.scope.includes(scope));
372
438
  }
373
439
  /** Human label for a section type id, with a graceful fallback. */
374
440
  export function sectionTypeLabel(id) {
375
441
  return getSectionType(id)?.name ?? 'Section';
376
442
  }
377
- /** True when `id` is a registered, renderable section type. */
443
+ /** True when `id` is a registered, renderable section type (built-in or custom). */
378
444
  export function isKnownSectionType(id) {
379
445
  return getSectionType(id) !== undefined;
380
446
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/sections/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/sections/registry.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export type SectionTypeId = 'hero' | 'text' | 'feature' | 'stats' | 'cta' | 'for
29
29
  /** Where a section type may be used. Drives the Add Section gallery filter. */
30
30
  export type SectionScope = 'page' | 'post';
31
31
  /** Field kinds the inspector + validator understand. */
32
- export type SectionFieldType = 'text' | 'textarea' | 'richText' | 'url' | 'media' | 'select' | 'boolean' | 'color' | 'relationship' | 'stats' | 'gallery';
32
+ export type SectionFieldType = 'text' | 'textarea' | 'richText' | 'url' | 'media' | 'select' | 'boolean' | 'color' | 'relationship' | 'repeater' | 'stats' | 'gallery';
33
33
  export interface SectionFieldDef {
34
34
  /** key into `PageSection.content` */
35
35
  key: string;
@@ -46,6 +46,18 @@ export interface SectionFieldDef {
46
46
  /** marks the field required for publish-time validation */
47
47
  required?: boolean;
48
48
  help?: string;
49
+ /**
50
+ * Sub-field schema for `type: 'repeater'`. Each row of the stored array is an
51
+ * object keyed by these sub-fields. Sub-fields use the same {@link SectionFieldDef}
52
+ * shape (so a row can contain text, media, select, boolean, etc.).
53
+ */
54
+ fields?: SectionFieldDef[];
55
+ /** Singular noun for a repeater row in the editor (e.g. "Plan", "Tier"). Defaults to "Item". */
56
+ rowLabel?: string;
57
+ /** Minimum rows a repeater should have (advisory, surfaced as a warning). */
58
+ minRows?: number;
59
+ /** Maximum rows a repeater allows (the editor disables "Add" at the cap). */
60
+ maxRows?: number;
49
61
  }
50
62
  export interface SectionSettings {
51
63
  backgroundType?: 'none' | 'solid' | 'gradient';
@@ -71,10 +83,18 @@ export interface SectionTypeDef {
71
83
  /** content fields shown in the inspector, in order */
72
84
  fields: SectionFieldDef[];
73
85
  }
74
- /** A single section on a page. Persisted in `data.sections[]`. */
86
+ /**
87
+ * A single section on a page. Persisted in `data.sections[]`.
88
+ *
89
+ * `sectionType` is a free string (not the built-in {@link SectionTypeId}
90
+ * union) because a page may carry config-declared custom types
91
+ * (see {@link CustomSectionTypeInput}) or sections authored entirely outside
92
+ * the editor (seed/code-owned). The latter are flagged {@link unmanaged} so
93
+ * the editor preserves them on save and shows them read-only.
94
+ */
75
95
  export interface PageSection {
76
96
  id: string;
77
- sectionType: SectionTypeId;
97
+ sectionType: string;
78
98
  /** Editor-facing display name (defaults to the type name). */
79
99
  name: string;
80
100
  /** Optional internal-only label for the team. */
@@ -82,6 +102,51 @@ export interface PageSection {
82
102
  visible: boolean;
83
103
  content: Record<string, unknown>;
84
104
  settings: SectionSettings;
105
+ /**
106
+ * True when this section's `sectionType` has no registered definition
107
+ * (neither a built-in nor a config-declared custom type). Such sections are
108
+ * preserved verbatim through read/save and rendered read-only in the editor
109
+ * so externally-managed content is never silently dropped.
110
+ */
111
+ unmanaged?: boolean;
112
+ }
113
+ /**
114
+ * Serializable shape a consumer declares in `actuate.config.ts` under
115
+ * `sections.types` to teach the CMS about a custom section type.
116
+ *
117
+ * It is the JSON-safe subset of {@link SectionTypeDef} (no React renderer —
118
+ * the public site registers that separately via `registerSectionRenderer`
119
+ * from `@actuate-media/sections-react`). `registerSectionTypes` fills in any
120
+ * omitted presentation fields with sensible defaults so the Add Section
121
+ * gallery and the field-driven inspector work without extra config.
122
+ */
123
+ export interface CustomSectionTypeInput {
124
+ id: string;
125
+ name: string;
126
+ scope: SectionScope[];
127
+ fields: SectionFieldDef[];
128
+ icon?: string;
129
+ description?: string;
130
+ category?: SectionTypeDef['category'];
131
+ accent?: SectionTypeDef['accent'];
132
+ defaultContent?: Record<string, unknown>;
133
+ defaultSettings?: SectionSettings;
134
+ }
135
+ /** Site-wide section configuration declared on `ActuateCMSConfig.sections`. */
136
+ export interface SectionsConfig {
137
+ /**
138
+ * Custom section types recognized + made editable in the admin editor.
139
+ * Canonical key — declared in `actuate.config.ts` under `sections.types`.
140
+ * The public site registers the matching renderer separately via
141
+ * `registerSectionRenderer` from `@actuate-media/sections-react`.
142
+ */
143
+ types?: CustomSectionTypeInput[];
144
+ /**
145
+ * @deprecated Back-compat alias for {@link types}. Prefer `sections.types`.
146
+ * When `types` is present it wins and this is ignored; otherwise this is
147
+ * used so configs written before the rename keep working.
148
+ */
149
+ customTypes?: CustomSectionTypeInput[];
85
150
  }
86
151
  /** A structured validation finding for a single section. */
87
152
  export interface SectionValidationIssue {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sections/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sections/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sections/validate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAe1E;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,eAAe,GAC1B,uBAAuB,CAgEzB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sections/validate.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAe1E;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,eAAe,GAC1B,uBAAuB,CAoDzB"}