@prenta/core 0.120.1 → 0.121.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,82 @@
1
1
  # @actuate-media/cms-core
2
2
 
3
+ ## 0.121.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c5a8d16: Close the section-type gaps: pasted widget code, a real video source switch, and a divider
8
+
9
+ The three outstanding gaps against the page-builder handoff's nine section types. The shape of each was decided by the product constraint rather than the drawing: the CMS is for words and images, not design.
10
+
11
+ **`widget-embed` now takes the vendor's snippet.** It used to ask for a provider dropdown, a "Widget ID", and a "Secondary ID / URL" whose meaning changed per provider — so an editor holding an Elfsight snippet had to know its app id lives inside a class name. Now you paste the snippet.
12
+
13
+ The paste is **parsed, never injected**. The provider is identified from the container element, the ids are token-validated, and the renderer builds the mount point itself and loads the vendor script from a URL hardcoded in the renderer — so nothing pasted reaches the page as markup or script. Any `<script>` in a paste is ignored, and because an editor who pasted one reasonably expects it to run, validation now names it and says it will not.
14
+
15
+ Content saved under the old shape keeps rendering, and `migrateContent` regenerates the equivalent snippet so the editor shows the real embed code rather than an empty box. The old `provider`/`widgetId`/`embedUrl` keys are left in place, so a rollback does not lose the widget.
16
+
17
+ **`embed` gets a real source switch** — a YouTube/Vimeo/Loom link, an uploaded MP4/WebM, or a pasted snippet. Hosted video was already supported end to end by the media pipeline; nothing had ever exposed it. Uploaded files render as a plain `<video controls preload="metadata">` with no third party involved. A pasted snippet has only its frame `src` read out of it, and that still has to pass the same provider allowlist.
18
+
19
+ The chosen source is honoured exactly: switching to Uploaded and leaving the file blank renders nothing rather than falling back to a stale provider URL left in `url`. Playing a different video than the one chosen is worse than playing none.
20
+
21
+ **`divider` is added, deliberately bare.** One field: rule, or space. Thickness, colour, width and inset are design decisions and design lives in code — what is left is whether the break reads as a stated separation or simply as room. It carries no background of its own either; a divider that could paint its own band would be a design control wearing a structural label.
22
+
23
+ **Two general mechanisms came with this**, both because the alternative was a lie in the UI:
24
+ - `migrateContent` on a section type definition, applied by `coerceSections` on every read. Must be pure and idempotent.
25
+ - `showWhen` on a field, read through the exported `visibleFields`. The editor uses it to decide what to draw and the validator to decide what to require — if they diverged, a hidden `required` field could block publish with an error pointing at a box that is not on screen.
26
+
27
+ New exports from `@prenta/core/page-sections`: `parseEmbedCode`, `foreignScriptHosts`, `widgetEmbedCodeFrom`, `migrateWidgetEmbedContent`, `parseEmbedIframe`, `resolveVideo`, `isFieldVisible`, `visibleFields`, and the `ResolvedVideo` / `HostedVideo` / `ProviderVideo` types.
28
+
29
+ ### Patch Changes
30
+
31
+ - 02a638d: Make the cms-core suite deterministic
32
+
33
+ Three consecutive runs of the same code failed 3, 2 and 10 tests, in files with nothing to do with each other and which all pass in isolation. Four consecutive runs now pass 2998/2998.
34
+
35
+ **It was never a test bug.** Eight of ten failures were `Test timed out in 5000ms`, and 5s is a bet on machine speed rather than a correctness budget. Every file here builds a full API surface on import — a run reports ~1200s of cumulative import time against ~95s of actual test time — and vitest sizes its worker pool from the core count. On a 32-core machine that is enough parallel import work to starve individual tests past the default.
36
+
37
+ Two changes, both measured rather than guessed:
38
+ - **`testTimeout: 20_000`.** Removes the large majority of the flake on its own. It does not hide a hang — a genuinely stuck test still fails, 15s later.
39
+ - **`maxWorkers: 8`.** Past a point more workers buy nothing, because each re-imports the same graph. Identical wall clock (54–74s either way), a fifth of the cumulative import work, and the residual flake gone.
40
+
41
+ On CI, where runners have a handful of cores, the cap never binds — which is also why CI never saw any of this. The faster the machine, the worse the flake, which is what made it look like a phantom.
42
+
43
+ Also pins `UPSTASH_*` / `KV_*` to empty so a developer with Vercel KV credentials in their environment gets the in-memory rate limiter rather than one whose counters outlive the process. That half is carried over from the earlier rate-limit isolation work; the 429 flood that motivated it is gone, because the four files that provoked it now disable the limiter themselves.
44
+
45
+ ## 0.120.2
46
+
47
+ ### Patch Changes
48
+
49
+ - 7f60722: Patch four runtime dependency advisories
50
+
51
+ Eight open Dependabot alerts, all **runtime** scope, two of them high:
52
+
53
+ | Package | Sev | Was | Now |
54
+ | --------------- | ------ | ------- | ------ |
55
+ | `ip-address` ×3 | high | 10.2.0 | 10.4.0 |
56
+ | `fast-uri` | high | 3.1.4 | 3.1.5 |
57
+ | `undici` ×3 | medium | 6.27.0 | 6.28.0 |
58
+ | `hono` | medium | 4.12.27 | 4.13.0 |
59
+
60
+ **A different failure from the last batch.** The brace-expansion fix corrected
61
+ override _keys_ whose ranges no longer selected the resolved version. Here every
62
+ caret range already permitted the patched release — `^3.1.2` allows 3.1.5 — and
63
+ the lockfile simply had not moved. Raising each floor to the advisory's patched
64
+ version forces resolution and leaves the intent legible in the file: the number
65
+ in the override is now the number the advisory requires, not the number that
66
+ happened to be current when it was written.
67
+
68
+ `undici` had resolved to both 6.27.0 and 6.28.0; only the patched one remains.
69
+
70
+ **The overrides block was audited, not spot-checked.** Every entry was compared
71
+ against what the lockfile actually resolved, allowing for the normal case where
72
+ a package resolves to several majors and each has its own scoped rule. After
73
+ these four, every override is in effect. Two things that audit had to get right
74
+ before its answer meant anything: pnpm echoes the overrides block at the top of
75
+ the lockfile in the same shape as a package entry, so a naive scan reports every
76
+ override key as a resolved version; and an unscoped rule is outranked by any
77
+ scoped rule that selects the same version, so `js-yaml: ^4.2.0` sitting above a
78
+ resolved 3.15.0 is correct rather than stale.
79
+
3
80
  ## 0.120.1
4
81
 
5
82
  ### Patch Changes
@@ -21,4 +21,36 @@ export declare const EMBED_PROVIDER_LABEL: Record<EmbedProvider, string>;
21
21
  * URL is not an allowed provider (or is malformed).
22
22
  */
23
23
  export declare function parseEmbed(raw: unknown): ParsedEmbed | null;
24
+ /** A hosted video file the browser plays directly. */
25
+ export interface HostedVideo {
26
+ kind: 'hosted';
27
+ /** Media-library URL of the MP4/WebM. */
28
+ src: string;
29
+ }
30
+ /** A provider video rendered in an iframe. */
31
+ export interface ProviderVideo extends ParsedEmbed {
32
+ kind: 'provider';
33
+ }
34
+ export type ResolvedVideo = HostedVideo | ProviderVideo;
35
+ /**
36
+ * Pull the first `src` out of a pasted iframe snippet.
37
+ *
38
+ * Same contract as the widget section: the paste is READ, never injected. The
39
+ * extracted URL still has to survive {@link parseEmbed}, so a snippet pointing
40
+ * anywhere but YouTube/Vimeo/Loom resolves to nothing, and the iframe the page
41
+ * renders is built here from the provider id — never copied from the paste.
42
+ */
43
+ export declare function parseEmbedIframe(raw: unknown): ParsedEmbed | null;
44
+ /**
45
+ * Resolve `embed` section content to what should actually render.
46
+ *
47
+ * `source` is the editor's stated intent and is honoured exactly — a hosted
48
+ * video with an empty file does NOT quietly fall back to a stale provider URL
49
+ * left in `url` from before the switch, because silently rendering a different
50
+ * video than the one chosen is worse than rendering none.
51
+ *
52
+ * Content saved before the switch existed carries no `source`; it was always a
53
+ * provider link, so a missing `source` reads as `provider`.
54
+ */
55
+ export declare function resolveVideo(content: Record<string, unknown> | undefined): ResolvedVideo | null;
24
56
  //# sourceMappingURL=embed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/sections/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAA;IACvB,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAI9D,CAAA;AAmCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAuB3D"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/sections/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAA;IACvB,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAI9D,CAAA;AAmCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAuB3D;AAID,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa,CAAA;AAEvD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAgB/F"}
@@ -75,4 +75,46 @@ export function parseEmbed(raw) {
75
75
  }
76
76
  return null;
77
77
  }
78
+ /**
79
+ * Pull the first `src` out of a pasted iframe snippet.
80
+ *
81
+ * Same contract as the widget section: the paste is READ, never injected. The
82
+ * extracted URL still has to survive {@link parseEmbed}, so a snippet pointing
83
+ * anywhere but YouTube/Vimeo/Loom resolves to nothing, and the iframe the page
84
+ * renders is built here from the provider id — never copied from the paste.
85
+ */
86
+ export function parseEmbedIframe(raw) {
87
+ if (typeof raw !== 'string')
88
+ return null;
89
+ const m = /<iframe\b[^>]*\bsrc\s*=\s*["']([^"']+)["']/i.exec(raw);
90
+ if (!m)
91
+ return null;
92
+ const src = m[1].trim();
93
+ return parseEmbed(src.startsWith('//') ? `https:${src}` : src);
94
+ }
95
+ /**
96
+ * Resolve `embed` section content to what should actually render.
97
+ *
98
+ * `source` is the editor's stated intent and is honoured exactly — a hosted
99
+ * video with an empty file does NOT quietly fall back to a stale provider URL
100
+ * left in `url` from before the switch, because silently rendering a different
101
+ * video than the one chosen is worse than rendering none.
102
+ *
103
+ * Content saved before the switch existed carries no `source`; it was always a
104
+ * provider link, so a missing `source` reads as `provider`.
105
+ */
106
+ export function resolveVideo(content) {
107
+ const c = content ?? {};
108
+ const source = typeof c.source === 'string' && c.source ? c.source : 'provider';
109
+ if (source === 'hosted') {
110
+ const src = typeof c.videoUrl === 'string' ? c.videoUrl.trim() : '';
111
+ return src ? { kind: 'hosted', src } : null;
112
+ }
113
+ if (source === 'embed') {
114
+ const parsed = parseEmbedIframe(c.embedCode);
115
+ return parsed ? { kind: 'provider', ...parsed } : null;
116
+ }
117
+ const parsed = parseEmbed(c.url);
118
+ return parsed ? { kind: 'provider', ...parsed } : null;
119
+ }
78
120
  //# sourceMappingURL=embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/sections/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/sections/embed.ts"],"names":[],"mappings":"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"}
@@ -34,4 +34,19 @@ export declare function isRepeaterField(field: SectionFieldDef): boolean;
34
34
  export type RepeaterRow = Record<string, unknown>;
35
35
  /** Build a blank row seeded with empty values for each sub-field. */
36
36
  export declare function blankRepeaterRow(fields: SectionFieldDef[]): RepeaterRow;
37
+ /**
38
+ * Whether a field applies, given the section's current content.
39
+ *
40
+ * The single source of truth for `showWhen`. The editor uses it to decide what
41
+ * to draw and the validator to decide what to require — if they diverged, a
42
+ * `required` field the editor never showed could block publish with an error
43
+ * pointing at a box that is not on screen.
44
+ *
45
+ * A field with no `showWhen` always applies. A `showWhen` naming a field that
46
+ * holds no value falls back to the empty string, so a rule can list `''` to
47
+ * cover "not chosen yet".
48
+ */
49
+ export declare function isFieldVisible(field: SectionFieldDef, content: Record<string, unknown> | undefined): boolean;
50
+ /** The fields that apply to this content, in declaration order. */
51
+ export declare function visibleFields(fields: SectionFieldDef[], content: Record<string, unknown> | undefined): SectionFieldDef[];
37
52
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/sections/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAI7C,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAS/C,CAAA;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAYpF;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEjD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAIvE"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/sections/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAI7C,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAS/C,CAAA;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAYpF;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEjD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAIvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,OAAO,CAKT;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,eAAe,EAAE,CAEnB"}
@@ -47,4 +47,27 @@ export function blankRepeaterRow(fields) {
47
47
  row[f.key] = f.type === 'boolean' ? false : '';
48
48
  return row;
49
49
  }
50
+ /**
51
+ * Whether a field applies, given the section's current content.
52
+ *
53
+ * The single source of truth for `showWhen`. The editor uses it to decide what
54
+ * to draw and the validator to decide what to require — if they diverged, a
55
+ * `required` field the editor never showed could block publish with an error
56
+ * pointing at a box that is not on screen.
57
+ *
58
+ * A field with no `showWhen` always applies. A `showWhen` naming a field that
59
+ * holds no value falls back to the empty string, so a rule can list `''` to
60
+ * cover "not chosen yet".
61
+ */
62
+ export function isFieldVisible(field, content) {
63
+ const rule = field.showWhen;
64
+ if (!rule)
65
+ return true;
66
+ const raw = content?.[rule.field];
67
+ return rule.equals.includes(typeof raw === 'string' ? raw : '');
68
+ }
69
+ /** The fields that apply to this content, in declaration order. */
70
+ export function visibleFields(fields, content) {
71
+ return fields.filter((f) => isFieldVisible(f, content));
72
+ }
50
73
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/sections/fields.ts"],"names":[],"mappings":"AAWA,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;IAC1E,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;IAC1E,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;CAC3D,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C;QACE,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,wCAAwC;KAC/C;IACD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;CACnD,CAAA;AAYD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM;YAC1C,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACvD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;IACtF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,OAAO,oBAAoB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;AAC7C,CAAC;AAKD,qEAAqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACxD,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/sections/fields.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"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"}
@@ -244,7 +244,9 @@ export function coerceSectionsWithReport(raw, opts = {}) {
244
244
  name: typeof s.name === 'string' ? s.name : def.name,
245
245
  internalLabel,
246
246
  visible: s.visible !== false,
247
- content,
247
+ // Forward-migrate content saved under an earlier field shape. Runs on
248
+ // every read, so the hook must be idempotent (see `migrateContent`).
249
+ content: def.migrateContent ? def.migrateContent(content) : content,
248
250
  settings,
249
251
  });
250
252
  });
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/sections/helpers.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,13 @@ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForSco
10
10
  export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, getContentAtPath, setContentAtPath, updateSectionContentAtPath, updateSectionSettings, updateSectionMeta, coerceSections, coerceSectionsWithReport, UnknownSectionTypeError, type CoerceSectionsOptions, type CoerceSectionsReport, type UnknownSectionStrategy, type UnknownSectionRef, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
11
11
  export { defineSectionTypes, validateSectionTypeInputs, SECTION_FIELD_TYPES } from './define.js';
12
12
  export { validateSectionContent } from './validate.js';
13
- export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, type ResolvedRepeater, type RepeaterRow, } from './fields.js';
13
+ export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, isFieldVisible, visibleFields, type ResolvedRepeater, type RepeaterRow, } from './fields.js';
14
14
  export { layoutTreeToSections } from './bridge.js';
15
15
  export { collectSectionImageUrls, applyMediaMeta, featuredImageUrl } from './media-enrich.js';
16
16
  export type { MediaMeta } from './media-enrich.js';
17
- export { parseEmbed, EMBED_PROVIDER_LABEL } from './embed.js';
18
- export type { EmbedProvider, ParsedEmbed } from './embed.js';
19
- export { parseWidgetEmbed, safeWidgetToken, parseMinHeightPx, WIDGET_PROVIDER_LABEL, WIDGET_MIN_HEIGHT_OPTIONS, REVIEWS_WIDGET_PROVIDERS, parseWidgetAggregateRating, extractAggregateRatingFromSections, } from './widget-embed.js';
17
+ export { parseEmbed, parseEmbedIframe, resolveVideo, EMBED_PROVIDER_LABEL } from './embed.js';
18
+ export type { EmbedProvider, ParsedEmbed, ResolvedVideo, HostedVideo, ProviderVideo, } from './embed.js';
19
+ export { parseWidgetEmbed, parseEmbedCode, foreignScriptHosts, widgetEmbedCodeFrom, migrateWidgetEmbedContent, safeWidgetToken, parseMinHeightPx, WIDGET_PROVIDER_LABEL, WIDGET_MIN_HEIGHT_OPTIONS, REVIEWS_WIDGET_PROVIDERS, parseWidgetAggregateRating, extractAggregateRatingFromSections, } from './widget-embed.js';
20
20
  export type { WidgetProvider, ParsedWidgetEmbed, SchemaAggregateRating } from './widget-embed.js';
21
21
  export type { SectionTypeId, SectionScope, SectionFieldType, SectionFieldDef, SectionSettings, SectionTypeDef, CustomSectionTypeInput, SectionsConfig, PageSection, PostHeaderConfig, PostTemplate, SectionValidationIssue, SectionValidationResult, } from './types.js';
22
22
  export { BACKGROUND_PRESETS, backgroundPreset, isDarkBackground, type BackgroundPreset, } from './background-presets.js';
@@ -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,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,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,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,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEhG,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,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC7F,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE5D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEjG,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;AAEnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,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,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,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,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC7F,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC7F,YAAY,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEjG,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;AAEnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAA"}
@@ -10,10 +10,10 @@ export { SECTION_TYPES, SECTION_TYPE_LIST, getSectionType, getSectionTypesForSco
10
10
  export { generateSectionId, createSection, buildSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, setSectionVisibility, moveSection, reorderSections, updateSectionContent, getContentAtPath, setContentAtPath, updateSectionContentAtPath, updateSectionSettings, updateSectionMeta, coerceSections, coerceSectionsWithReport, UnknownSectionTypeError, defaultPostHeader, coercePostHeader, computeReadingTime, createPostTemplate, coercePostTemplate, } from './helpers.js';
11
11
  export { defineSectionTypes, validateSectionTypeInputs, SECTION_FIELD_TYPES } from './define.js';
12
12
  export { validateSectionContent } from './validate.js';
13
- export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, } from './fields.js';
13
+ export { STATS_ROW_FIELDS, GALLERY_ROW_FIELDS, resolveRepeaterField, isRepeaterField, blankRepeaterRow, isFieldVisible, visibleFields, } from './fields.js';
14
14
  export { layoutTreeToSections } from './bridge.js';
15
15
  export { collectSectionImageUrls, applyMediaMeta, featuredImageUrl } from './media-enrich.js';
16
- export { parseEmbed, EMBED_PROVIDER_LABEL } from './embed.js';
17
- export { parseWidgetEmbed, safeWidgetToken, parseMinHeightPx, WIDGET_PROVIDER_LABEL, WIDGET_MIN_HEIGHT_OPTIONS, REVIEWS_WIDGET_PROVIDERS, parseWidgetAggregateRating, extractAggregateRatingFromSections, } from './widget-embed.js';
16
+ export { parseEmbed, parseEmbedIframe, resolveVideo, EMBED_PROVIDER_LABEL } from './embed.js';
17
+ export { parseWidgetEmbed, parseEmbedCode, foreignScriptHosts, widgetEmbedCodeFrom, migrateWidgetEmbedContent, safeWidgetToken, parseMinHeightPx, WIDGET_PROVIDER_LABEL, WIDGET_MIN_HEIGHT_OPTIONS, REVIEWS_WIDGET_PROVIDERS, parseWidgetAggregateRating, extractAggregateRatingFromSections, } from './widget-embed.js';
18
18
  export { BACKGROUND_PRESETS, backgroundPreset, isDarkBackground, } from './background-presets.js';
19
19
  //# 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,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,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,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,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEhG,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,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG7F,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,mBAAmB,CAAA;AAmB1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,yBAAyB,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,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,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,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,aAAa,GAGd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG7F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAS7F,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,mBAAmB,CAAA;AAmB1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,yBAAyB,CAAA"}
@@ -1 +1 @@
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,CAqkB/D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAgB7C,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"}
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;AAKnB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,cAAc,CAkoB/D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAiB7C,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"}
@@ -1,3 +1,4 @@
1
+ import { migrateWidgetEmbedContent } from './widget-embed.js';
1
2
  const BASE_SETTINGS = { backgroundType: 'none', paddingY: 'lg' };
2
3
  export const SECTION_TYPES = {
3
4
  hero: {
@@ -446,24 +447,58 @@ export const SECTION_TYPES = {
446
447
  id: 'embed',
447
448
  name: 'Video / Embed',
448
449
  icon: 'play-circle',
449
- description: 'Embed a YouTube, Vimeo, or Loom video in a fixed-ratio, lazy-loaded frame.',
450
+ description: 'A video from YouTube/Vimeo/Loom, an uploaded file, or a pasted embed — in a fixed-ratio, lazy-loaded frame.',
450
451
  category: 'media',
451
452
  accent: 'pink',
452
453
  scope: ['page', 'post'],
453
454
  defaultContent: {
455
+ source: 'provider',
454
456
  url: '',
457
+ videoUrl: '',
458
+ embedCode: '',
455
459
  title: '',
456
460
  ratio: '16:9',
457
461
  caption: '',
458
462
  },
459
463
  defaultSettings: { ...BASE_SETTINGS },
460
464
  fields: [
465
+ {
466
+ key: 'source',
467
+ label: 'Video source',
468
+ type: 'select',
469
+ options: [
470
+ { label: 'Link — YouTube, Vimeo or Loom', value: 'provider' },
471
+ { label: 'Uploaded file — MP4 or WebM', value: 'hosted' },
472
+ { label: 'Embed code — paste a snippet', value: 'embed' },
473
+ ],
474
+ },
461
475
  {
462
476
  key: 'url',
463
477
  label: 'Video URL',
464
478
  type: 'url',
465
479
  required: true,
466
480
  help: 'Paste a YouTube, Vimeo, or Loom link. Other providers are not allowed.',
481
+ // Content saved before the switch existed has no `source` key, and it
482
+ // was always a provider link — so '' must resolve to this field or an
483
+ // existing video would lose its URL box.
484
+ showWhen: { field: 'source', equals: ['provider', ''] },
485
+ },
486
+ {
487
+ key: 'videoUrl',
488
+ label: 'Video file',
489
+ type: 'media',
490
+ required: true,
491
+ help: 'An MP4 or WebM from the media library. Plays inline with the browser’s own controls.',
492
+ showWhen: { field: 'source', equals: ['hosted'] },
493
+ },
494
+ {
495
+ key: 'embedCode',
496
+ label: 'Embed code',
497
+ type: 'textarea',
498
+ required: true,
499
+ placeholder: '<iframe src="https://player.vimeo.com/video/…" …></iframe>',
500
+ help: 'Paste the snippet your provider gave you. Only the video URL is read out of it, and only YouTube, Vimeo and Loom are allowed — the frame is built here, so nothing you paste is executed.',
501
+ showWhen: { field: 'source', equals: ['embed'] },
467
502
  },
468
503
  {
469
504
  key: 'title',
@@ -496,42 +531,33 @@ export const SECTION_TYPES = {
496
531
  id: 'widget-embed',
497
532
  name: 'Third-Party Widget',
498
533
  icon: 'puzzle',
499
- description: 'Lazy-loaded reviews, chat, or scheduling widget (Elfsight, Trustpilot, Calendly) with a reserved min-height to prevent CLS.',
534
+ description: 'Paste the embed code from Elfsight, Trustpilot or Calendly. Loads lazily, with a reserved min-height to prevent CLS.',
500
535
  category: 'media',
501
536
  accent: 'pink',
502
537
  scope: ['page'],
503
538
  defaultContent: {
504
- provider: 'elfsight',
505
- widgetId: '',
506
- embedUrl: '',
539
+ embedCode: '',
507
540
  minHeight: '280',
508
541
  title: 'Customer reviews',
509
542
  requireConsent: 'true',
510
543
  },
511
544
  defaultSettings: { ...BASE_SETTINGS },
545
+ // Content saved before this section took pasted snippets keeps its
546
+ // `provider`/`widgetId`/`embedUrl` keys and still renders; this fills in the
547
+ // equivalent embed code so the editor shows the real embed, not a blank box.
548
+ migrateContent: migrateWidgetEmbedContent,
512
549
  fields: [
513
550
  {
514
- key: 'provider',
515
- label: 'Provider',
516
- type: 'select',
517
- required: true,
518
- options: [
519
- { label: 'Elfsight', value: 'elfsight' },
520
- { label: 'Trustpilot', value: 'trustpilot' },
521
- { label: 'Calendly', value: 'calendly' },
522
- ],
523
- },
524
- {
525
- key: 'widgetId',
526
- label: 'Widget ID',
527
- type: 'text',
528
- help: 'Elfsight app id, or Trustpilot template id. Leave blank for Calendly.',
529
- },
530
- {
531
- key: 'embedUrl',
532
- label: 'Secondary ID / URL',
533
- type: 'text',
534
- help: 'Trustpilot business unit id, or a https://calendly.com/… scheduling URL.',
551
+ key: 'embedCode',
552
+ label: 'Embed code',
553
+ type: 'textarea',
554
+ // Deliberately NOT `required`: the widget-parse check below already
555
+ // refuses a section with no working configuration, and it accepts
556
+ // legacy content that has ids but no pasted snippet. A `required` flag
557
+ // here would report "Embed code is required" against a widget that is
558
+ // configured and rendering.
559
+ placeholder: '<script src="https://static.elfsight.com/platform/platform.js" async></script>\n<div class="elfsight-app-…" data-elfsight-app-lazy></div>',
560
+ help: 'Paste the snippet your provider gave you, exactly as-is. Supported: Elfsight, Trustpilot, Calendly. The code is read, never run — we take the widget id out of it and load the provider ourselves.',
535
561
  },
536
562
  {
537
563
  key: 'minHeight',
@@ -577,6 +603,40 @@ export const SECTION_TYPES = {
577
603
  },
578
604
  ],
579
605
  },
606
+ /**
607
+ * A break between sections — and deliberately nothing more.
608
+ *
609
+ * The obvious temptation is thickness, colour, width and inset controls.
610
+ * Those are design decisions, and design is owned by code here: the CMS owns
611
+ * words and images. What is left for an editor is genuinely editorial —
612
+ * whether the break reads as a stated separation (a rule) or simply as room
613
+ * to breathe (space). How either one LOOKS is the design system's business.
614
+ */
615
+ divider: {
616
+ id: 'divider',
617
+ name: 'Divider',
618
+ icon: 'minus',
619
+ description: 'A break between sections — a rule, or space alone. How it looks is design-owned.',
620
+ category: 'layout',
621
+ accent: 'blue',
622
+ scope: ['page', 'post'],
623
+ defaultContent: { variant: 'line' },
624
+ // No background or padding of its own: a divider that could paint its own
625
+ // band would be a design control wearing a structural label.
626
+ defaultSettings: { backgroundType: 'none', paddingY: 'sm' },
627
+ fields: [
628
+ {
629
+ key: 'variant',
630
+ label: 'Break',
631
+ type: 'select',
632
+ help: 'A rule states the separation; space just gives the page room.',
633
+ options: [
634
+ { label: 'Rule — a visible line', value: 'line' },
635
+ { label: 'Space — whitespace only', value: 'space' },
636
+ ],
637
+ },
638
+ ],
639
+ },
580
640
  };
581
641
  /** Ordered list for the Add Section gallery + discovery endpoints. */
582
642
  export const SECTION_TYPE_LIST = [
@@ -595,6 +655,7 @@ export const SECTION_TYPE_LIST = [
595
655
  SECTION_TYPES.gallery,
596
656
  SECTION_TYPES.embed,
597
657
  SECTION_TYPES['widget-embed'],
658
+ SECTION_TYPES.divider,
598
659
  ];
599
660
  // ─── Custom (config-declared) section types ──────────────────────────
600
661
  //