@scenar/cli 0.10.0 → 0.11.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/example-bundle/assets/index-DxmqjG-8.js +388 -0
- package/example-bundle/assets/style-B2sxnVVZ.css +1 -0
- package/example-bundle/embed.js +1 -1
- package/example-bundle/index.html +2 -2
- package/example-bundle/logo.png +0 -0
- package/example-bundle/pack-manifest.json +33 -9
- package/example-bundle/soundtrack/music.mp3 +0 -0
- package/example-bundle/soundtrack/sfx/click.mp3 +0 -0
- package/example-bundle/soundtrack/sfx/keystroke.mp3 +0 -0
- package/package.json +4 -4
- package/src/__tests__/collect-pack-shots.test.ts +8 -0
- package/src/__tests__/elevenlabs-provider.test.ts +187 -0
- package/src/__tests__/embed-snippet.test.ts +5 -0
- package/src/__tests__/find-authored-soundtrack.test.ts +54 -0
- package/src/__tests__/find-authored-title-cards.test.ts +65 -0
- package/src/__tests__/load-bundle.test.ts +67 -0
- package/src/__tests__/narrate-command.test.ts +65 -1
- package/src/__tests__/narration-cache.test.ts +134 -0
- package/src/__tests__/pack-bundle-contract.test.ts +2 -0
- package/src/__tests__/pack-generate-embed-entry.test.ts +95 -16
- package/src/__tests__/presenter-command.test.ts +366 -0
- package/src/__tests__/render-command.test.ts +11 -0
- package/src/__tests__/render-generate-entry.test.ts +102 -0
- package/src/__tests__/resolve-provider.test.ts +32 -3
- package/src/__tests__/scenario-validator.test.ts +174 -0
- package/src/__tests__/stage-assets.test.ts +269 -0
- package/src/commands/narrate.js +1 -1
- package/src/commands/narrate.js.map +1 -1
- package/src/commands/narrate.ts +1 -1
- package/src/commands/presenter.d.ts +3 -0
- package/src/commands/presenter.d.ts.map +1 -0
- package/src/commands/presenter.js +89 -0
- package/src/commands/presenter.js.map +1 -0
- package/src/commands/presenter.ts +107 -0
- package/src/commands/render.d.ts.map +1 -1
- package/src/commands/render.js +2 -0
- package/src/commands/render.js.map +1 -1
- package/src/commands/render.ts +6 -0
- package/src/embed/embed-snippet.d.ts +5 -0
- package/src/embed/embed-snippet.d.ts.map +1 -1
- package/src/embed/embed-snippet.js +6 -1
- package/src/embed/embed-snippet.js.map +1 -1
- package/src/embed/embed-snippet.ts +6 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/index.ts +2 -0
- package/src/narrate/run-narrate.d.ts +15 -1
- package/src/narrate/run-narrate.d.ts.map +1 -1
- package/src/narrate/run-narrate.js +11 -4
- package/src/narrate/run-narrate.js.map +1 -1
- package/src/narrate/run-narrate.ts +15 -6
- package/src/pack/bundle-contract.d.ts +1 -0
- package/src/pack/bundle-contract.d.ts.map +1 -1
- package/src/pack/bundle-contract.js +3 -0
- package/src/pack/bundle-contract.js.map +1 -1
- package/src/pack/bundle-contract.ts +3 -0
- package/src/pack/collect-pack-shots.d.ts +5 -1
- package/src/pack/collect-pack-shots.d.ts.map +1 -1
- package/src/pack/collect-pack-shots.js +3 -1
- package/src/pack/collect-pack-shots.js.map +1 -1
- package/src/pack/collect-pack-shots.ts +15 -1
- package/src/pack/generate-embed-entry.d.ts +7 -0
- package/src/pack/generate-embed-entry.d.ts.map +1 -1
- package/src/pack/generate-embed-entry.js +102 -7
- package/src/pack/generate-embed-entry.js.map +1 -1
- package/src/pack/generate-embed-entry.ts +107 -7
- package/src/pack/run-pack.d.ts +1 -0
- package/src/pack/run-pack.d.ts.map +1 -1
- package/src/pack/run-pack.js +100 -9
- package/src/pack/run-pack.js.map +1 -1
- package/src/pack/run-pack.ts +133 -9
- package/src/presenter/heygen-client.d.ts +69 -0
- package/src/presenter/heygen-client.d.ts.map +1 -0
- package/src/presenter/heygen-client.js +154 -0
- package/src/presenter/heygen-client.js.map +1 -0
- package/src/presenter/heygen-client.ts +224 -0
- package/src/presenter/run-presenter.d.ts +67 -0
- package/src/presenter/run-presenter.d.ts.map +1 -0
- package/src/presenter/run-presenter.js +348 -0
- package/src/presenter/run-presenter.js.map +1 -0
- package/src/presenter/run-presenter.ts +536 -0
- package/src/render/generate-entry.d.ts +4 -0
- package/src/render/generate-entry.d.ts.map +1 -1
- package/src/render/generate-entry.js +75 -7
- package/src/render/generate-entry.js.map +1 -1
- package/src/render/generate-entry.ts +84 -7
- package/src/render/run-render.d.ts +6 -0
- package/src/render/run-render.d.ts.map +1 -1
- package/src/render/run-render.js +58 -0
- package/src/render/run-render.js.map +1 -1
- package/src/render/run-render.ts +72 -0
- package/src/render/stage-assets.d.ts +44 -0
- package/src/render/stage-assets.d.ts.map +1 -0
- package/src/render/stage-assets.js +91 -0
- package/src/render/stage-assets.js.map +1 -0
- package/src/render/stage-assets.ts +130 -0
- package/src/tts/echogarden.d.ts.map +1 -1
- package/src/tts/echogarden.js +4 -2
- package/src/tts/echogarden.js.map +1 -1
- package/src/tts/echogarden.ts +5 -2
- package/src/tts/edge-tts.d.ts.map +1 -1
- package/src/tts/edge-tts.js +2 -1
- package/src/tts/edge-tts.js.map +1 -1
- package/src/tts/edge-tts.ts +2 -1
- package/src/tts/elevenlabs.d.ts +15 -0
- package/src/tts/elevenlabs.d.ts.map +1 -0
- package/src/tts/elevenlabs.js +73 -0
- package/src/tts/elevenlabs.js.map +1 -0
- package/src/tts/elevenlabs.ts +105 -0
- package/src/tts/openai.d.ts.map +1 -1
- package/src/tts/openai.js +2 -1
- package/src/tts/openai.js.map +1 -1
- package/src/tts/openai.ts +2 -1
- package/src/tts/resolve-provider.d.ts +1 -1
- package/src/tts/resolve-provider.d.ts.map +1 -1
- package/src/tts/resolve-provider.js +10 -3
- package/src/tts/resolve-provider.js.map +1 -1
- package/src/tts/resolve-provider.ts +12 -4
- package/src/tts/types.d.ts +9 -0
- package/src/tts/types.d.ts.map +1 -1
- package/src/tts/types.ts +10 -0
- package/src/util/confirm.d.ts +11 -0
- package/src/util/confirm.d.ts.map +1 -0
- package/src/util/confirm.js +24 -0
- package/src/util/confirm.js.map +1 -0
- package/src/util/confirm.ts +23 -0
- package/src/util/load-bundle.d.ts +17 -1
- package/src/util/load-bundle.d.ts.map +1 -1
- package/src/util/load-bundle.js +19 -11
- package/src/util/load-bundle.js.map +1 -1
- package/src/util/load-bundle.ts +38 -12
- package/src/util/load-ts.d.ts +77 -0
- package/src/util/load-ts.d.ts.map +1 -1
- package/src/util/load-ts.js +125 -0
- package/src/util/load-ts.js.map +1 -1
- package/src/util/load-ts.ts +165 -0
- package/src/util/narration-cache.d.ts +13 -5
- package/src/util/narration-cache.d.ts.map +1 -1
- package/src/util/narration-cache.js +10 -8
- package/src/util/narration-cache.js.map +1 -1
- package/src/util/narration-cache.ts +22 -6
- package/src/util/presenter-cache.d.ts +44 -0
- package/src/util/presenter-cache.d.ts.map +1 -0
- package/src/util/presenter-cache.js +43 -0
- package/src/util/presenter-cache.js.map +1 -0
- package/src/util/presenter-cache.ts +101 -0
- package/src/util/scenario-assets.d.ts +47 -0
- package/src/util/scenario-assets.d.ts.map +1 -0
- package/src/util/scenario-assets.js +71 -0
- package/src/util/scenario-assets.js.map +1 -0
- package/src/util/scenario-assets.ts +111 -0
- package/src/util/soundtrack-assets.d.ts +34 -0
- package/src/util/soundtrack-assets.d.ts.map +1 -0
- package/src/util/soundtrack-assets.js +48 -0
- package/src/util/soundtrack-assets.js.map +1 -0
- package/src/util/soundtrack-assets.ts +69 -0
- package/src/validate/scenario-validator.d.ts.map +1 -1
- package/src/validate/scenario-validator.js +82 -0
- package/src/validate/scenario-validator.js.map +1 -1
- package/src/validate/scenario-validator.ts +110 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/example-bundle/assets/index-DpJUOVBT.js +0 -388
- package/example-bundle/assets/style-ix_q0zsc.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-embed-entry.d.ts","sourceRoot":"","sources":["../../../src/pack/generate-embed-entry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"generate-embed-entry.d.ts","sourceRoot":"","sources":["../../../src/pack/generate-embed-entry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAwVjE;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAMA,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAKhD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,KAAK,UAAQ,GACZ,MAAM,CAmCR"}
|
|
@@ -20,6 +20,11 @@ import { posix } from "node:path";
|
|
|
20
20
|
* selector). The default is light, so existing embeds are unaffected; a host can
|
|
21
21
|
* theme-sync simply by framing `…/?theme=dark`.
|
|
22
22
|
*
|
|
23
|
+
* Captions (`?captions=1`): same frame-time-preference family as `?theme` —
|
|
24
|
+
* enables the player's step captions (narration text as a subtitle overlay,
|
|
25
|
+
* with a CC toggle in the control bar). Absent means off, preserving prior
|
|
26
|
+
* behavior.
|
|
27
|
+
*
|
|
23
28
|
* Capture (`?shot`): with a `shot` query param present, the entry mounts
|
|
24
29
|
* `ScenarioCaptureMount` instead of the playback tree — the TimeSource-driven
|
|
25
30
|
* catch-up mount behind `scenar shoot` (DD-02). The driver installs on
|
|
@@ -51,7 +56,7 @@ export function generateEmbedEntry(input) {
|
|
|
51
56
|
// in-app player wires): step tracking, cursor target, ripple/drag flags, and
|
|
52
57
|
// the viewport transform. Without these, the embed would render content but
|
|
53
58
|
// silently drop every cursor move and mid-step interaction.
|
|
54
|
-
lines.push(`import { useCallback, useRef, useState } from "react";`);
|
|
59
|
+
lines.push(`import { useCallback, useMemo, useRef, useState } from "react";`);
|
|
55
60
|
lines.push(`import { createRoot } from "react-dom/client";`);
|
|
56
61
|
const reactImports = [
|
|
57
62
|
"ScenarioPlayer",
|
|
@@ -62,11 +67,14 @@ export function generateEmbedEntry(input) {
|
|
|
62
67
|
"ViewportTransformLayer",
|
|
63
68
|
"VIEWPORT_TRANSFORM_IDENTITY",
|
|
64
69
|
"ScenarioCaptureMount",
|
|
70
|
+
"applyTitleCards",
|
|
65
71
|
];
|
|
66
72
|
if (input.stage)
|
|
67
73
|
reactImports.push("ScenarioStage");
|
|
68
74
|
if (input.hasNarration)
|
|
69
75
|
reactImports.push("useNarrationManifest");
|
|
76
|
+
if (input.hasPresenter)
|
|
77
|
+
reactImports.push("usePresenterManifest");
|
|
70
78
|
lines.push(`import { ${reactImports.join(", ")} } from "@scenar/react";`);
|
|
71
79
|
lines.push(`import "@scenar/react/theme.css";`);
|
|
72
80
|
lines.push(`import "@scenar/react/styles.css";`);
|
|
@@ -92,6 +100,52 @@ export function generateEmbedEntry(input) {
|
|
|
92
100
|
lines.push(`}`);
|
|
93
101
|
lines.push(``);
|
|
94
102
|
lines.push(`const _steps: any = _findSteps(_stepsModule as unknown as Record<string, unknown>);`);
|
|
103
|
+
// --- Soundtrack resolution (mirror of the CLI's findAuthoredSoundtrack) ---
|
|
104
|
+
// Same runtime-discovery contract as _findSteps: read from the very module
|
|
105
|
+
// the bundle bakes in, so the embed can never disagree with the authored
|
|
106
|
+
// config. Pack copies the referenced assets (music, the built-in SFX set)
|
|
107
|
+
// into the bundle; the sources below point at those copies.
|
|
108
|
+
lines.push(``);
|
|
109
|
+
lines.push(`function _findSoundtrack(mod: Record<string, unknown>): any {`);
|
|
110
|
+
lines.push(` for (const val of Object.values(mod)) {`);
|
|
111
|
+
lines.push(` if (`);
|
|
112
|
+
lines.push(` typeof val === "object" && val !== null && !Array.isArray(val) &&`);
|
|
113
|
+
lines.push(` "soundtrack" in val &&`);
|
|
114
|
+
lines.push(` Array.isArray((val as any).steps) && (val as any).steps.length > 0 &&`);
|
|
115
|
+
lines.push(` typeof (val as any).steps[0] === "object" && (val as any).steps[0] !== null &&`);
|
|
116
|
+
lines.push(` "delayMs" in (val as any).steps[0]`);
|
|
117
|
+
lines.push(` ) return (val as any).soundtrack;`);
|
|
118
|
+
lines.push(` }`);
|
|
119
|
+
lines.push(` return (mod as any)["soundtrack"];`);
|
|
120
|
+
lines.push(`}`);
|
|
121
|
+
lines.push(``);
|
|
122
|
+
lines.push(`const _soundtrack: any = _findSoundtrack(_stepsModule as unknown as Record<string, unknown>);`);
|
|
123
|
+
lines.push(``);
|
|
124
|
+
lines.push(`const _soundtrackSources = {`);
|
|
125
|
+
lines.push(` sfx: { click: "./soundtrack/sfx/click.mp3", keystroke: "./soundtrack/sfx/keystroke.mp3" },`);
|
|
126
|
+
lines.push(`};`);
|
|
127
|
+
// --- Title cards resolution (mirror of the CLI's findAuthoredTitleCards) ---
|
|
128
|
+
// Same runtime-discovery contract as _findSoundtrack. Applied inside
|
|
129
|
+
// _App (the manifest arrives asynchronously and padding must track it);
|
|
130
|
+
// pack copies the referenced logo into the bundle, so the authored
|
|
131
|
+
// relative src resolves against the embed page. Capture mode (?shot)
|
|
132
|
+
// deliberately stays on the AUTHORED steps: shots live on authored
|
|
133
|
+
// steps and cards declare none.
|
|
134
|
+
lines.push(``);
|
|
135
|
+
lines.push(`function _findTitleCards(mod: Record<string, unknown>): any {`);
|
|
136
|
+
lines.push(` for (const val of Object.values(mod)) {`);
|
|
137
|
+
lines.push(` if (`);
|
|
138
|
+
lines.push(` typeof val === "object" && val !== null && !Array.isArray(val) &&`);
|
|
139
|
+
lines.push(` "titleCards" in val &&`);
|
|
140
|
+
lines.push(` Array.isArray((val as any).steps) && (val as any).steps.length > 0 &&`);
|
|
141
|
+
lines.push(` typeof (val as any).steps[0] === "object" && (val as any).steps[0] !== null &&`);
|
|
142
|
+
lines.push(` "delayMs" in (val as any).steps[0]`);
|
|
143
|
+
lines.push(` ) return (val as any).titleCards;`);
|
|
144
|
+
lines.push(` }`);
|
|
145
|
+
lines.push(` return (mod as any)["titleCards"];`);
|
|
146
|
+
lines.push(`}`);
|
|
147
|
+
lines.push(``);
|
|
148
|
+
lines.push(`const _titleCards: any = _findTitleCards(_stepsModule as unknown as Record<string, unknown>);`);
|
|
95
149
|
// --- Narration manifest URL resolver (stable module-level reference) ---
|
|
96
150
|
// The manifest is fetched at runtime from its own relative location so that
|
|
97
151
|
// useNarrationManifest resolves each clip src against it (audio lives under
|
|
@@ -100,6 +154,13 @@ export function generateEmbedEntry(input) {
|
|
|
100
154
|
lines.push(``);
|
|
101
155
|
lines.push(`const _resolveManifestUrl = () => "./narration/manifest.json";`);
|
|
102
156
|
}
|
|
157
|
+
// --- Presenter manifest URL resolver (same contract as narration) ---
|
|
158
|
+
// The clips live under ./presenter/; usePresenterManifest resolves each
|
|
159
|
+
// clip's relative src against the manifest's own location.
|
|
160
|
+
if (input.hasPresenter) {
|
|
161
|
+
lines.push(``);
|
|
162
|
+
lines.push(`const _resolvePresenterManifestUrl = () => "./presenter/manifest.json";`);
|
|
163
|
+
}
|
|
103
164
|
// --- Theme: opt-in dark via ?theme=dark (default light; backward-compatible) ---
|
|
104
165
|
// Read once at module load from the embed's own URL. `theme=dark` adds the
|
|
105
166
|
// `dark` class next to SCENAR_CLASS so the `.scenar.dark` tokens apply; any
|
|
@@ -110,6 +171,19 @@ export function generateEmbedEntry(input) {
|
|
|
110
171
|
lines.push(` catch { return null; }`);
|
|
111
172
|
lines.push(`})();`);
|
|
112
173
|
lines.push(`const _rootClass = _theme === "dark" ? SCENAR_CLASS + " dark" : SCENAR_CLASS;`);
|
|
174
|
+
// --- Captions: opt-in via ?captions=1 (default off; backward-compatible) ---
|
|
175
|
+
// Same family as ?theme: a frame-time presentation preference the host
|
|
176
|
+
// chooses per embed instance (an iframe host writes no JSX, so the player's
|
|
177
|
+
// `captions` prop is reachable only through the URL). Read once at module
|
|
178
|
+
// load; "1" and "true" both enable, anything else (including absent)
|
|
179
|
+
// preserves prior behavior.
|
|
180
|
+
lines.push(``);
|
|
181
|
+
lines.push(`const _captions = (() => {`);
|
|
182
|
+
lines.push(` try {`);
|
|
183
|
+
lines.push(` const v = new URLSearchParams(window.location.search).get("captions");`);
|
|
184
|
+
lines.push(` return v === "1" || v === "true";`);
|
|
185
|
+
lines.push(` } catch { return false; }`);
|
|
186
|
+
lines.push(`})();`);
|
|
113
187
|
// --- Capture mode: ?shot (bare = driver only; ?shot=<name> = auto-walk) ---
|
|
114
188
|
// Read the same way as _theme: once, at module load, outside React. A null
|
|
115
189
|
// value (param absent) means normal playback; "" (bare ?shot) means capture
|
|
@@ -152,11 +226,15 @@ export function generateEmbedEntry(input) {
|
|
|
152
226
|
// `useStepInteractions` reads the current step's `interactions` and drives the
|
|
153
227
|
// cursor / ripple / drag / viewport state, synced to narration duration.
|
|
154
228
|
const manifestExpr = input.hasNarration ? "_manifest" : "undefined";
|
|
229
|
+
const presenterExpr = input.hasPresenter ? "_presenterManifest" : "undefined";
|
|
155
230
|
lines.push(``);
|
|
156
231
|
lines.push(`function _App() {`);
|
|
157
232
|
if (input.hasNarration) {
|
|
158
233
|
lines.push(` const _manifest = useNarrationManifest(${JSON.stringify(input.scenarioId)}, _resolveManifestUrl);`);
|
|
159
234
|
}
|
|
235
|
+
if (input.hasPresenter) {
|
|
236
|
+
lines.push(` const _presenterManifest = usePresenterManifest(${JSON.stringify(input.scenarioId)}, _resolvePresenterManifestUrl);`);
|
|
237
|
+
}
|
|
160
238
|
lines.push(` const _containerRef = useRef<HTMLDivElement>(null);`);
|
|
161
239
|
lines.push(` const _cameraRef = useRef<HTMLDivElement>(null);`);
|
|
162
240
|
lines.push(` const [_stepIndex, _setStepIndex] = useState(0);`);
|
|
@@ -167,27 +245,44 @@ export function generateEmbedEntry(input) {
|
|
|
167
245
|
lines.push(``);
|
|
168
246
|
// Reset the cursor when the step changes so a prior step's target never
|
|
169
247
|
// lingers; the new step's interactions re-set it at their scheduled time.
|
|
170
|
-
|
|
248
|
+
// One handler feeds both step-change callbacks: authored steps deliver
|
|
249
|
+
// data, card steps deliver the card — the wiring needs only the index,
|
|
250
|
+
// and it must track BOTH so card-step interactions (the outro's
|
|
251
|
+
// cursor-clear and viewport-reset housekeeping) reach the scheduler.
|
|
252
|
+
lines.push(` const _handleStepChange = useCallback((_dataOrCard: any, index: number) => {`);
|
|
171
253
|
lines.push(` _setStepIndex(index);`);
|
|
172
254
|
lines.push(` _setCursorTarget(undefined);`);
|
|
173
255
|
lines.push(` }, []);`);
|
|
174
256
|
lines.push(``);
|
|
257
|
+
// Card synthesis: bundle assembly is THE one expansion point. Memoized
|
|
258
|
+
// on the manifests (the only async inputs) so the steps identity stays
|
|
259
|
+
// stable across renders and the interaction scheduler is not re-armed.
|
|
260
|
+
const appliedDeps = [manifestExpr, presenterExpr]
|
|
261
|
+
.filter((expr) => expr !== "undefined")
|
|
262
|
+
.join(", ");
|
|
263
|
+
lines.push(` const _applied = useMemo(`);
|
|
264
|
+
lines.push(` () => applyTitleCards(_steps as any, ${manifestExpr}, _titleCards, ${presenterExpr}),`);
|
|
265
|
+
lines.push(` [${appliedDeps}],`);
|
|
266
|
+
lines.push(` );`);
|
|
267
|
+
lines.push(``);
|
|
175
268
|
lines.push(` useStepInteractions({`);
|
|
176
269
|
lines.push(` stepIndex: _stepIndex,`);
|
|
177
|
-
lines.push(` narrationManifest:
|
|
270
|
+
lines.push(` narrationManifest: _applied.narrationManifest,`);
|
|
178
271
|
lines.push(` containerRef: _containerRef,`);
|
|
179
272
|
lines.push(` cameraRef: _cameraRef,`);
|
|
180
273
|
lines.push(` setCursorTarget: _setCursorTarget,`);
|
|
181
274
|
lines.push(` setShowRipple: _setShowRipple,`);
|
|
182
275
|
lines.push(` setDragging: _setDragging,`);
|
|
183
276
|
lines.push(` setViewportTransform: _setViewport,`);
|
|
184
|
-
lines.push(` steps:
|
|
277
|
+
lines.push(` steps: _applied.steps,`);
|
|
185
278
|
lines.push(` });`);
|
|
186
279
|
lines.push(``);
|
|
187
280
|
lines.push(` const _bundle = {`);
|
|
188
281
|
lines.push(` id: ${JSON.stringify(input.scenarioId)},`);
|
|
189
|
-
lines.push(` steps:
|
|
190
|
-
lines.push(` narrationManifest:
|
|
282
|
+
lines.push(` steps: _applied.steps as any,`);
|
|
283
|
+
lines.push(` narrationManifest: _applied.narrationManifest,`);
|
|
284
|
+
lines.push(` soundtrack: _soundtrack,`);
|
|
285
|
+
lines.push(` presenterManifest: _applied.presenterManifest,`);
|
|
191
286
|
lines.push(` };`);
|
|
192
287
|
const open = input.providersPath ? `<_Providers>` : ``;
|
|
193
288
|
const close = input.providersPath ? `</_Providers>` : ``;
|
|
@@ -205,7 +300,7 @@ export function generateEmbedEntry(input) {
|
|
|
205
300
|
// embedViewport mirrors DemoViewport's numbers on purpose: the bundle
|
|
206
301
|
// announces the exact canonical size it lays out at, so a host can adopt
|
|
207
302
|
// iframe-as-screen scaling (see @scenar/embed's mount).
|
|
208
|
-
lines.push(` <ScenarioPlayer bundle={_bundle} embed embedViewport={{ widthPx: ${input.canonicalWidth}, heightPx: ${input.shellHeight} }} onStepChange={_handleStepChange}>`);
|
|
303
|
+
lines.push(` <ScenarioPlayer bundle={_bundle} embed embedViewport={{ widthPx: ${input.canonicalWidth}, heightPx: ${input.shellHeight} }} captions={_captions} soundtrackSources={_soundtrackSources} onStepChange={_handleStepChange} onCardStepChange={_handleStepChange}>`);
|
|
209
304
|
lines.push(` ${stepRender}`);
|
|
210
305
|
lines.push(` </ScenarioPlayer>`);
|
|
211
306
|
lines.push(` <Cursor target={_cursorTarget} containerRef={_cameraRef} showRipple={_showRipple} isDragging={_dragging} />`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-embed-entry.js","sourceRoot":"","sources":["../../../src/pack/generate-embed-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AA+BlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,uEAAuE;IACvE,6EAA6E;IAC7E,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG;QACnB,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,QAAQ;QACR,qBAAqB;QACrB,wBAAwB;QACxB,6BAA6B;QAC7B,sBAAsB;KACvB,CAAC;IACF,IAAI,KAAK,CAAC,KAAK;QAAE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,YAAY;QAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE5E,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CACR,kDAAkD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CACrF,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,8CAA8C,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAElG,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IAED,kFAAkF;IAClF,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAE5F,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,oCAAoC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,mBAAmB;IACnB,2EAA2E;IAC3E,2CAA2C;IAC3C,+BAA+B;IAC/B,gEAAgE;IAChE,gDAAgD;IAChD,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACpH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,wEAAwE;IACxE,0EAA0E;IAC1E,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,0BAA0B,YAAY,GAAG,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,0BAA0B,YAAY,GAAG,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;QAC5B,CAAC,CAAC,kGAAkG;QACpG,CAAC,CAAC,iEAAiE,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,oEAAoE,KAAK,CAAC,cAAc,kBAAkB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5I,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,sEAAsE;IACtE,yEAAyE;IACzE,wDAAwD;IACxD,KAAK,CAAC,IAAI,CAAC,8EAA8E,KAAK,CAAC,cAAc,eAAe,KAAK,CAAC,WAAW,uCAAuC,CAAC,CAAC;IACtL,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,uHAAuH,CAAC,CAAC;IACpI,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,gCAAgC;IAChC,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;QACxH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IAC9G,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAI7B;IACH,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzE,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,yFAAyF;IACzF,yFAAyF;IACzF,2FAA2F;IAC3F,+FAA+F;CAChG,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,aAAqB,EACrB,KAAK,GAAG,KAAK;IAEb,MAAM,cAAc,GAAG,KAAK;QAC1B,CAAC,CAAC;YACE,cAAc;YACd,GAAG,qBAAqB,CAAC,GAAG,CAC1B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,gBAAgB,KAAK,KAAK,IAAI,IAAI,CAC/E;YACD,qBAAqB;YACrB,GAAG,mBAAmB,CAAC,GAAG,CACxB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACX,aAAa,KAAK,GAAG,CAAC,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1E;YACD,SAAS;SACV;QACH,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,UAAU;QACV,8BAA8B;QAC9B,4EAA4E;QAC5E,uDAAuD;QACvD,cAAc,UAAU,CAAC,UAAU,CAAC,UAAU;QAC9C,aAAa;QACb,0DAA0D;QAC1D,GAAG,cAAc;QACjB,cAAc;QACd,WAAW;QACX,UAAU;QACV,2BAA2B;QAC3B,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,YAAY;QACjF,WAAW;QACX,SAAS;QACT,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate-embed-entry.js","sourceRoot":"","sources":["../../../src/pack/generate-embed-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAiClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,uEAAuE;IACvE,6EAA6E;IAC7E,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG;QACnB,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,QAAQ;QACR,qBAAqB;QACrB,wBAAwB;QACxB,6BAA6B;QAC7B,sBAAsB;QACtB,iBAAiB;KAClB,CAAC;IACF,IAAI,KAAK,CAAC,KAAK;QAAE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,YAAY;QAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,YAAY;QAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE5E,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CACR,kDAAkD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CACrF,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,8CAA8C,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAElG,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC1F,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,qEAAqE;IACrE,wEAAwE;IACxE,mEAAmE;IACnE,qEAAqE;IACrE,mEAAmE;IACnE,gCAAgC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC1F,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IAE5G,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACxF,CAAC;IAED,kFAAkF;IAClF,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAE5F,8EAA8E;IAC9E,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,qEAAqE;IACrE,4BAA4B;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,oCAAoC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,mBAAmB;IACnB,2EAA2E;IAC3E,2CAA2C;IAC3C,+BAA+B;IAC/B,gEAAgE;IAChE,gDAAgD;IAChD,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,qDAAqD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;IACtI,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,gEAAgE;IAChE,qEAAqE;IACrE,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC;SAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,4CAA4C,YAAY,kBAAkB,aAAa,IAAI,CAAC,CAAC;IACxG,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;QAC5B,CAAC,CAAC,kGAAkG;QACpG,CAAC,CAAC,iEAAiE,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,oEAAoE,KAAK,CAAC,cAAc,kBAAkB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5I,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,sEAAsE;IACtE,yEAAyE;IACzE,wDAAwD;IACxD,KAAK,CAAC,IAAI,CAAC,8EAA8E,KAAK,CAAC,cAAc,eAAe,KAAK,CAAC,WAAW,wIAAwI,CAAC,CAAC;IACvR,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,uHAAuH,CAAC,CAAC;IACpI,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,gCAAgC;IAChC,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;QACxH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IAC9G,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAI7B;IACH,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxE,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzE,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,yFAAyF;IACzF,yFAAyF;IACzF,2FAA2F;IAC3F,+FAA+F;CAChG,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,aAAqB,EACrB,KAAK,GAAG,KAAK;IAEb,MAAM,cAAc,GAAG,KAAK;QAC1B,CAAC,CAAC;YACE,cAAc;YACd,GAAG,qBAAqB,CAAC,GAAG,CAC1B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,gBAAgB,KAAK,KAAK,IAAI,IAAI,CAC/E;YACD,qBAAqB;YACrB,GAAG,mBAAmB,CAAC,GAAG,CACxB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACX,aAAa,KAAK,GAAG,CAAC,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1E;YACD,SAAS;SACV;QACH,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,UAAU;QACV,8BAA8B;QAC9B,4EAA4E;QAC5E,uDAAuD;QACvD,cAAc,UAAU,CAAC,UAAU,CAAC,UAAU;QAC9C,aAAa;QACb,0DAA0D;QAC1D,GAAG,cAAc;QACjB,cAAc;QACd,WAAW;QACX,UAAU;QACV,2BAA2B;QAC3B,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,YAAY;QACjF,WAAW;QACX,SAAS;QACT,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -15,6 +15,8 @@ export interface EmbedEntryInput {
|
|
|
15
15
|
scenarioId: string;
|
|
16
16
|
/** Whether the scenario has a narration manifest (+ audio). */
|
|
17
17
|
hasNarration: boolean;
|
|
18
|
+
/** Whether the scenario has a presenter manifest (+ clips). */
|
|
19
|
+
hasPresenter: boolean;
|
|
18
20
|
/** Absolute path to .scenar/providers.tsx, or null if none. */
|
|
19
21
|
providersPath: string | null;
|
|
20
22
|
/** Canonical viewport width in px (children render at this width). */
|
|
@@ -50,6 +52,11 @@ export interface EmbedEntryInput {
|
|
|
50
52
|
* selector). The default is light, so existing embeds are unaffected; a host can
|
|
51
53
|
* theme-sync simply by framing `…/?theme=dark`.
|
|
52
54
|
*
|
|
55
|
+
* Captions (`?captions=1`): same frame-time-preference family as `?theme` —
|
|
56
|
+
* enables the player's step captions (narration text as a subtitle overlay,
|
|
57
|
+
* with a CC toggle in the control bar). Absent means off, preserving prior
|
|
58
|
+
* behavior.
|
|
59
|
+
*
|
|
53
60
|
* Capture (`?shot`): with a `shot` query param present, the entry mounts
|
|
54
61
|
* `ScenarioCaptureMount` instead of the playback tree — the TimeSource-driven
|
|
55
62
|
* catch-up mount behind `scenar shoot` (DD-02). The driver installs on
|
|
@@ -84,7 +91,7 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
84
91
|
// in-app player wires): step tracking, cursor target, ripple/drag flags, and
|
|
85
92
|
// the viewport transform. Without these, the embed would render content but
|
|
86
93
|
// silently drop every cursor move and mid-step interaction.
|
|
87
|
-
lines.push(`import { useCallback, useRef, useState } from "react";`);
|
|
94
|
+
lines.push(`import { useCallback, useMemo, useRef, useState } from "react";`);
|
|
88
95
|
lines.push(`import { createRoot } from "react-dom/client";`);
|
|
89
96
|
const reactImports = [
|
|
90
97
|
"ScenarioPlayer",
|
|
@@ -95,9 +102,11 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
95
102
|
"ViewportTransformLayer",
|
|
96
103
|
"VIEWPORT_TRANSFORM_IDENTITY",
|
|
97
104
|
"ScenarioCaptureMount",
|
|
105
|
+
"applyTitleCards",
|
|
98
106
|
];
|
|
99
107
|
if (input.stage) reactImports.push("ScenarioStage");
|
|
100
108
|
if (input.hasNarration) reactImports.push("useNarrationManifest");
|
|
109
|
+
if (input.hasPresenter) reactImports.push("usePresenterManifest");
|
|
101
110
|
lines.push(`import { ${reactImports.join(", ")} } from "@scenar/react";`);
|
|
102
111
|
lines.push(`import "@scenar/react/theme.css";`);
|
|
103
112
|
lines.push(`import "@scenar/react/styles.css";`);
|
|
@@ -128,6 +137,54 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
128
137
|
lines.push(``);
|
|
129
138
|
lines.push(`const _steps: any = _findSteps(_stepsModule as unknown as Record<string, unknown>);`);
|
|
130
139
|
|
|
140
|
+
// --- Soundtrack resolution (mirror of the CLI's findAuthoredSoundtrack) ---
|
|
141
|
+
// Same runtime-discovery contract as _findSteps: read from the very module
|
|
142
|
+
// the bundle bakes in, so the embed can never disagree with the authored
|
|
143
|
+
// config. Pack copies the referenced assets (music, the built-in SFX set)
|
|
144
|
+
// into the bundle; the sources below point at those copies.
|
|
145
|
+
lines.push(``);
|
|
146
|
+
lines.push(`function _findSoundtrack(mod: Record<string, unknown>): any {`);
|
|
147
|
+
lines.push(` for (const val of Object.values(mod)) {`);
|
|
148
|
+
lines.push(` if (`);
|
|
149
|
+
lines.push(` typeof val === "object" && val !== null && !Array.isArray(val) &&`);
|
|
150
|
+
lines.push(` "soundtrack" in val &&`);
|
|
151
|
+
lines.push(` Array.isArray((val as any).steps) && (val as any).steps.length > 0 &&`);
|
|
152
|
+
lines.push(` typeof (val as any).steps[0] === "object" && (val as any).steps[0] !== null &&`);
|
|
153
|
+
lines.push(` "delayMs" in (val as any).steps[0]`);
|
|
154
|
+
lines.push(` ) return (val as any).soundtrack;`);
|
|
155
|
+
lines.push(` }`);
|
|
156
|
+
lines.push(` return (mod as any)["soundtrack"];`);
|
|
157
|
+
lines.push(`}`);
|
|
158
|
+
lines.push(``);
|
|
159
|
+
lines.push(`const _soundtrack: any = _findSoundtrack(_stepsModule as unknown as Record<string, unknown>);`);
|
|
160
|
+
lines.push(``);
|
|
161
|
+
lines.push(`const _soundtrackSources = {`);
|
|
162
|
+
lines.push(` sfx: { click: "./soundtrack/sfx/click.mp3", keystroke: "./soundtrack/sfx/keystroke.mp3" },`);
|
|
163
|
+
lines.push(`};`);
|
|
164
|
+
|
|
165
|
+
// --- Title cards resolution (mirror of the CLI's findAuthoredTitleCards) ---
|
|
166
|
+
// Same runtime-discovery contract as _findSoundtrack. Applied inside
|
|
167
|
+
// _App (the manifest arrives asynchronously and padding must track it);
|
|
168
|
+
// pack copies the referenced logo into the bundle, so the authored
|
|
169
|
+
// relative src resolves against the embed page. Capture mode (?shot)
|
|
170
|
+
// deliberately stays on the AUTHORED steps: shots live on authored
|
|
171
|
+
// steps and cards declare none.
|
|
172
|
+
lines.push(``);
|
|
173
|
+
lines.push(`function _findTitleCards(mod: Record<string, unknown>): any {`);
|
|
174
|
+
lines.push(` for (const val of Object.values(mod)) {`);
|
|
175
|
+
lines.push(` if (`);
|
|
176
|
+
lines.push(` typeof val === "object" && val !== null && !Array.isArray(val) &&`);
|
|
177
|
+
lines.push(` "titleCards" in val &&`);
|
|
178
|
+
lines.push(` Array.isArray((val as any).steps) && (val as any).steps.length > 0 &&`);
|
|
179
|
+
lines.push(` typeof (val as any).steps[0] === "object" && (val as any).steps[0] !== null &&`);
|
|
180
|
+
lines.push(` "delayMs" in (val as any).steps[0]`);
|
|
181
|
+
lines.push(` ) return (val as any).titleCards;`);
|
|
182
|
+
lines.push(` }`);
|
|
183
|
+
lines.push(` return (mod as any)["titleCards"];`);
|
|
184
|
+
lines.push(`}`);
|
|
185
|
+
lines.push(``);
|
|
186
|
+
lines.push(`const _titleCards: any = _findTitleCards(_stepsModule as unknown as Record<string, unknown>);`);
|
|
187
|
+
|
|
131
188
|
// --- Narration manifest URL resolver (stable module-level reference) ---
|
|
132
189
|
// The manifest is fetched at runtime from its own relative location so that
|
|
133
190
|
// useNarrationManifest resolves each clip src against it (audio lives under
|
|
@@ -137,6 +194,14 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
137
194
|
lines.push(`const _resolveManifestUrl = () => "./narration/manifest.json";`);
|
|
138
195
|
}
|
|
139
196
|
|
|
197
|
+
// --- Presenter manifest URL resolver (same contract as narration) ---
|
|
198
|
+
// The clips live under ./presenter/; usePresenterManifest resolves each
|
|
199
|
+
// clip's relative src against the manifest's own location.
|
|
200
|
+
if (input.hasPresenter) {
|
|
201
|
+
lines.push(``);
|
|
202
|
+
lines.push(`const _resolvePresenterManifestUrl = () => "./presenter/manifest.json";`);
|
|
203
|
+
}
|
|
204
|
+
|
|
140
205
|
// --- Theme: opt-in dark via ?theme=dark (default light; backward-compatible) ---
|
|
141
206
|
// Read once at module load from the embed's own URL. `theme=dark` adds the
|
|
142
207
|
// `dark` class next to SCENAR_CLASS so the `.scenar.dark` tokens apply; any
|
|
@@ -148,6 +213,20 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
148
213
|
lines.push(`})();`);
|
|
149
214
|
lines.push(`const _rootClass = _theme === "dark" ? SCENAR_CLASS + " dark" : SCENAR_CLASS;`);
|
|
150
215
|
|
|
216
|
+
// --- Captions: opt-in via ?captions=1 (default off; backward-compatible) ---
|
|
217
|
+
// Same family as ?theme: a frame-time presentation preference the host
|
|
218
|
+
// chooses per embed instance (an iframe host writes no JSX, so the player's
|
|
219
|
+
// `captions` prop is reachable only through the URL). Read once at module
|
|
220
|
+
// load; "1" and "true" both enable, anything else (including absent)
|
|
221
|
+
// preserves prior behavior.
|
|
222
|
+
lines.push(``);
|
|
223
|
+
lines.push(`const _captions = (() => {`);
|
|
224
|
+
lines.push(` try {`);
|
|
225
|
+
lines.push(` const v = new URLSearchParams(window.location.search).get("captions");`);
|
|
226
|
+
lines.push(` return v === "1" || v === "true";`);
|
|
227
|
+
lines.push(` } catch { return false; }`);
|
|
228
|
+
lines.push(`})();`);
|
|
229
|
+
|
|
151
230
|
// --- Capture mode: ?shot (bare = driver only; ?shot=<name> = auto-walk) ---
|
|
152
231
|
// Read the same way as _theme: once, at module load, outside React. A null
|
|
153
232
|
// value (param absent) means normal playback; "" (bare ?shot) means capture
|
|
@@ -192,11 +271,15 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
192
271
|
// `useStepInteractions` reads the current step's `interactions` and drives the
|
|
193
272
|
// cursor / ripple / drag / viewport state, synced to narration duration.
|
|
194
273
|
const manifestExpr = input.hasNarration ? "_manifest" : "undefined";
|
|
274
|
+
const presenterExpr = input.hasPresenter ? "_presenterManifest" : "undefined";
|
|
195
275
|
lines.push(``);
|
|
196
276
|
lines.push(`function _App() {`);
|
|
197
277
|
if (input.hasNarration) {
|
|
198
278
|
lines.push(` const _manifest = useNarrationManifest(${JSON.stringify(input.scenarioId)}, _resolveManifestUrl);`);
|
|
199
279
|
}
|
|
280
|
+
if (input.hasPresenter) {
|
|
281
|
+
lines.push(` const _presenterManifest = usePresenterManifest(${JSON.stringify(input.scenarioId)}, _resolvePresenterManifestUrl);`);
|
|
282
|
+
}
|
|
200
283
|
lines.push(` const _containerRef = useRef<HTMLDivElement>(null);`);
|
|
201
284
|
lines.push(` const _cameraRef = useRef<HTMLDivElement>(null);`);
|
|
202
285
|
lines.push(` const [_stepIndex, _setStepIndex] = useState(0);`);
|
|
@@ -207,27 +290,44 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
207
290
|
lines.push(``);
|
|
208
291
|
// Reset the cursor when the step changes so a prior step's target never
|
|
209
292
|
// lingers; the new step's interactions re-set it at their scheduled time.
|
|
210
|
-
|
|
293
|
+
// One handler feeds both step-change callbacks: authored steps deliver
|
|
294
|
+
// data, card steps deliver the card — the wiring needs only the index,
|
|
295
|
+
// and it must track BOTH so card-step interactions (the outro's
|
|
296
|
+
// cursor-clear and viewport-reset housekeeping) reach the scheduler.
|
|
297
|
+
lines.push(` const _handleStepChange = useCallback((_dataOrCard: any, index: number) => {`);
|
|
211
298
|
lines.push(` _setStepIndex(index);`);
|
|
212
299
|
lines.push(` _setCursorTarget(undefined);`);
|
|
213
300
|
lines.push(` }, []);`);
|
|
214
301
|
lines.push(``);
|
|
302
|
+
// Card synthesis: bundle assembly is THE one expansion point. Memoized
|
|
303
|
+
// on the manifests (the only async inputs) so the steps identity stays
|
|
304
|
+
// stable across renders and the interaction scheduler is not re-armed.
|
|
305
|
+
const appliedDeps = [manifestExpr, presenterExpr]
|
|
306
|
+
.filter((expr) => expr !== "undefined")
|
|
307
|
+
.join(", ");
|
|
308
|
+
lines.push(` const _applied = useMemo(`);
|
|
309
|
+
lines.push(` () => applyTitleCards(_steps as any, ${manifestExpr}, _titleCards, ${presenterExpr}),`);
|
|
310
|
+
lines.push(` [${appliedDeps}],`);
|
|
311
|
+
lines.push(` );`);
|
|
312
|
+
lines.push(``);
|
|
215
313
|
lines.push(` useStepInteractions({`);
|
|
216
314
|
lines.push(` stepIndex: _stepIndex,`);
|
|
217
|
-
lines.push(` narrationManifest:
|
|
315
|
+
lines.push(` narrationManifest: _applied.narrationManifest,`);
|
|
218
316
|
lines.push(` containerRef: _containerRef,`);
|
|
219
317
|
lines.push(` cameraRef: _cameraRef,`);
|
|
220
318
|
lines.push(` setCursorTarget: _setCursorTarget,`);
|
|
221
319
|
lines.push(` setShowRipple: _setShowRipple,`);
|
|
222
320
|
lines.push(` setDragging: _setDragging,`);
|
|
223
321
|
lines.push(` setViewportTransform: _setViewport,`);
|
|
224
|
-
lines.push(` steps:
|
|
322
|
+
lines.push(` steps: _applied.steps,`);
|
|
225
323
|
lines.push(` });`);
|
|
226
324
|
lines.push(``);
|
|
227
325
|
lines.push(` const _bundle = {`);
|
|
228
326
|
lines.push(` id: ${JSON.stringify(input.scenarioId)},`);
|
|
229
|
-
lines.push(` steps:
|
|
230
|
-
lines.push(` narrationManifest:
|
|
327
|
+
lines.push(` steps: _applied.steps as any,`);
|
|
328
|
+
lines.push(` narrationManifest: _applied.narrationManifest,`);
|
|
329
|
+
lines.push(` soundtrack: _soundtrack,`);
|
|
330
|
+
lines.push(` presenterManifest: _applied.presenterManifest,`);
|
|
231
331
|
lines.push(` };`);
|
|
232
332
|
const open = input.providersPath ? `<_Providers>` : ``;
|
|
233
333
|
const close = input.providersPath ? `</_Providers>` : ``;
|
|
@@ -245,7 +345,7 @@ export function generateEmbedEntry(input: EmbedEntryInput): string {
|
|
|
245
345
|
// embedViewport mirrors DemoViewport's numbers on purpose: the bundle
|
|
246
346
|
// announces the exact canonical size it lays out at, so a host can adopt
|
|
247
347
|
// iframe-as-screen scaling (see @scenar/embed's mount).
|
|
248
|
-
lines.push(` <ScenarioPlayer bundle={_bundle} embed embedViewport={{ widthPx: ${input.canonicalWidth}, heightPx: ${input.shellHeight} }} onStepChange={_handleStepChange}>`);
|
|
348
|
+
lines.push(` <ScenarioPlayer bundle={_bundle} embed embedViewport={{ widthPx: ${input.canonicalWidth}, heightPx: ${input.shellHeight} }} captions={_captions} soundtrackSources={_soundtrackSources} onStepChange={_handleStepChange} onCardStepChange={_handleStepChange}>`);
|
|
249
349
|
lines.push(` ${stepRender}`);
|
|
250
350
|
lines.push(` </ScenarioPlayer>`);
|
|
251
351
|
lines.push(` <Cursor target={_cursorTarget} containerRef={_cameraRef} showRipple={_showRipple} isDragging={_dragging} />`);
|
package/src/pack/run-pack.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface PackResult {
|
|
|
32
32
|
readonly renderFilePath: string;
|
|
33
33
|
readonly providersPath: string | null;
|
|
34
34
|
readonly hasNarration: boolean;
|
|
35
|
+
readonly hasPresenter: boolean;
|
|
35
36
|
/**
|
|
36
37
|
* The declared shot names recorded in scenario.json (empty = the scenario
|
|
37
38
|
* authoritatively declares none), or undefined when the steps module could
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-pack.d.ts","sourceRoot":"","sources":["../../../src/pack/run-pack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-pack.d.ts","sourceRoot":"","sources":["../../../src/pack/run-pack.ts"],"names":[],"mappings":"AAeA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAS5B,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA8K1E"}
|