screenci 0.0.88 → 0.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/docs/manifest.d.ts +36 -5
  4. package/dist/docs/manifest.d.ts.map +1 -1
  5. package/dist/docs/manifest.js +12 -1
  6. package/dist/docs/manifest.js.map +1 -1
  7. package/dist/docs/video-sources/assets/StyleCard.d.ts +4 -0
  8. package/dist/docs/video-sources/assets/StyleCard.d.ts.map +1 -0
  9. package/dist/docs/video-sources/assets/StyleCard.js +27 -0
  10. package/dist/docs/video-sources/assets/StyleCard.js.map +1 -0
  11. package/dist/docs/video-sources/locator-highlight-animated.screenci.js +2 -15
  12. package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -1
  13. package/dist/docs/video-sources/locator-highlight-still.screenci.js +2 -1
  14. package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -1
  15. package/dist/docs/video-sources/speaking-style.screenci.js +4 -28
  16. package/dist/docs/video-sources/speaking-style.screenci.js.map +1 -1
  17. package/dist/e2e/fixtures/ClientCounter.d.ts +5 -0
  18. package/dist/e2e/fixtures/ClientCounter.d.ts.map +1 -0
  19. package/dist/e2e/fixtures/ClientCounter.js +29 -0
  20. package/dist/e2e/fixtures/ClientCounter.js.map +1 -0
  21. package/dist/e2e/htmlRasterizer.e2e.js +104 -23
  22. package/dist/e2e/htmlRasterizer.e2e.js.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/src/asset.d.ts +50 -85
  28. package/dist/src/asset.d.ts.map +1 -1
  29. package/dist/src/asset.js +116 -278
  30. package/dist/src/asset.js.map +1 -1
  31. package/dist/src/clientOverlay.d.ts +29 -0
  32. package/dist/src/clientOverlay.d.ts.map +1 -0
  33. package/dist/src/clientOverlay.js +82 -0
  34. package/dist/src/clientOverlay.js.map +1 -0
  35. package/dist/src/events.d.ts +6 -4
  36. package/dist/src/events.d.ts.map +1 -1
  37. package/dist/src/events.js.map +1 -1
  38. package/dist/src/hide.d.ts +4 -0
  39. package/dist/src/hide.d.ts.map +1 -1
  40. package/dist/src/hide.js +11 -1
  41. package/dist/src/hide.js.map +1 -1
  42. package/dist/src/htmlRasterizer.d.ts +21 -42
  43. package/dist/src/htmlRasterizer.d.ts.map +1 -1
  44. package/dist/src/htmlRasterizer.js +47 -66
  45. package/dist/src/htmlRasterizer.js.map +1 -1
  46. package/dist/src/init.d.ts.map +1 -1
  47. package/dist/src/init.js +56 -13
  48. package/dist/src/init.js.map +1 -1
  49. package/dist/src/overlayFlush.js +6 -6
  50. package/dist/src/overlayFlush.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +6 -1
  53. package/skills/screenci/references/init.md +8 -1
@@ -20,13 +20,16 @@ export type HtmlRasterizeResult = {
20
20
  height: number;
21
21
  };
22
22
  export type HtmlRasterizeRequest = {
23
+ /** A complete overlay document (`.html` file contents or the bundled `.tsx` host page). */
23
24
  html: string;
24
25
  /** Device scale factor for crisp output. Defaults to {@link DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR}. */
25
26
  deviceScaleFactor?: number;
26
- /** Extra CSS injected into the overlay document `<head>` (already merged with the global default). */
27
- css?: string;
28
- /** Transparent padding (CSS px) added around the overlay content so animations can move beyond it without clipping. */
29
- capturePadding?: number;
27
+ /**
28
+ * Wait for the overlay root to receive child content before measuring its box
29
+ * and screenshotting. Used by `.tsx` page overlays, whose React app mounts
30
+ * asynchronously after the document loads.
31
+ */
32
+ awaitMount?: boolean;
30
33
  };
31
34
  /**
32
35
  * Produces transparent PNG bytes plus the rendered content size. Injectable so
@@ -41,32 +44,20 @@ export declare function setHtmlRasterizer(fn: HtmlRasterizer): void;
41
44
  /** Test hook: re-enable caching after injecting a (counting) rasterizer. */
42
45
  export declare function setOverlayCacheEnabled(enabled: boolean): void;
43
46
  /**
44
- * Sets CSS injected into every HTML/React overlay document. Pass a compiled
45
- * stylesheet (for example Tailwind's output) so overlays can use `className`.
46
- * Per-overlay `css` is appended after this.
47
- */
48
- export declare function setOverlayCss(css: string): void;
49
- /** Merges the global default overlay CSS with a per-overlay override. */
50
- export declare function resolveOverlayCss(css?: string): string;
51
- /**
52
- * The fully resolved inputs that determine a rasterized overlay's bytes. `css`
53
- * is the already-merged stylesheet (see {@link resolveOverlayCss}). Used both
54
- * for the cross-run disk cache key and for in-run de-duplication of identical
55
- * deferred overlays, so both paths key off the exact same string.
47
+ * The fully resolved inputs that determine a rasterized overlay's bytes: the
48
+ * overlay is a complete document, so `html` fully determines the output. Used
49
+ * both for the cross-run disk cache key and for in-run de-duplication of
50
+ * identical deferred overlays, so both paths key off the exact same string.
56
51
  */
57
52
  export type OverlayRasterizeKeyInput = {
58
53
  kind: 'image';
59
54
  deviceScaleFactor: number;
60
- capturePadding: number;
61
- css: string;
62
55
  html: string;
63
56
  } | {
64
57
  kind: 'animation';
65
58
  deviceScaleFactor: number;
66
- capturePadding: number;
67
59
  fps: number;
68
60
  durationMs: number;
69
- css: string;
70
61
  html: string;
71
62
  };
72
63
  /**
@@ -85,15 +76,8 @@ export declare function rasterizeHtmlOverlay(opts: {
85
76
  name: string;
86
77
  html: string;
87
78
  deviceScaleFactor?: number;
88
- css?: string;
89
- capturePadding?: number;
90
- /**
91
- * When `true`, `css` is already merged with the global default (see
92
- * {@link resolveOverlayCss}) and is used verbatim. The deferred flush passes
93
- * the frozen, resolved CSS this way so it is not prefixed with the default a
94
- * second time.
95
- */
96
- cssResolved?: boolean;
79
+ /** Wait for the overlay root to receive child content before capture (a `.tsx` page overlay). */
80
+ awaitMount?: boolean;
97
81
  }): Promise<HtmlRasterizeResult>;
98
82
  export declare const DEFAULT_ANIMATION_FPS = 30;
99
83
  /**
@@ -115,6 +99,7 @@ export type AnimatedHtmlRasterizeResult = {
115
99
  durationMs: number;
116
100
  };
117
101
  export type AnimatedHtmlRasterizeRequest = {
102
+ /** A complete overlay document (`.html` file contents or the bundled `.tsx` host page). */
118
103
  html: string;
119
104
  /** Capture length in milliseconds. */
120
105
  durationMs: number;
@@ -122,10 +107,11 @@ export type AnimatedHtmlRasterizeRequest = {
122
107
  fps: number;
123
108
  /** Device scale factor for crisp output. Defaults to {@link DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR}. */
124
109
  deviceScaleFactor?: number;
125
- /** Extra CSS injected into the overlay document `<head>` (already merged with the global default). */
126
- css?: string;
127
- /** Transparent padding (CSS px) added around the overlay content so the animation can move beyond it without clipping. */
128
- capturePadding?: number;
110
+ /**
111
+ * Wait for the overlay root to receive child content before the first frame.
112
+ * Used by `.tsx` page overlays, whose React app mounts asynchronously.
113
+ */
114
+ awaitMount?: boolean;
129
115
  };
130
116
  /**
131
117
  * Produces the encoded overlay clip bytes plus the rendered content size.
@@ -150,14 +136,7 @@ export declare function rasterizeAnimatedHtmlOverlay(opts: {
150
136
  durationMs: number;
151
137
  fps?: number;
152
138
  deviceScaleFactor?: number;
153
- css?: string;
154
- capturePadding?: number;
155
- /**
156
- * When `true`, `css` is already merged with the global default (see
157
- * {@link resolveOverlayCss}) and is used verbatim. The deferred flush passes
158
- * the frozen, resolved CSS this way so it is not prefixed with the default a
159
- * second time.
160
- */
161
- cssResolved?: boolean;
139
+ /** Wait for the overlay root to receive child content before the first frame (a `.tsx` page overlay). */
140
+ awaitMount?: boolean;
162
141
  }): Promise<AnimatedHtmlRasterizeResult>;
163
142
  //# sourceMappingURL=htmlRasterizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"htmlRasterizer.d.ts","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htmlRasterizer.d.ts","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"AAaA;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAA;AAQtD,eAAO,MAAM,mCAAmC,IAAI,CAAA;AAOpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAO/D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAG1D;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE7D;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAChC;IACE,IAAI,EAAE,OAAO,CAAA;IACb,iBAAiB,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAEL;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAMxE;AA6HD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iGAAiG;IACjG,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwB/B;AAID,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYzE;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,4BAA4B,KAClC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAK/D,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAG1E;AA0ND;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA6BvC"}
@@ -25,9 +25,10 @@ export const OVERLAY_CACHE_DIR_NAME = '.overlay-cache';
25
25
  // content is bounded by the off-screen page viewport, so the screenshot stays
26
26
  // well under GPU texture limits.
27
27
  export const DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR = 2;
28
- // Bump when anything that affects rasterized output changes (the HTML wrapper,
29
- // screenshot options, default density) so stale cache entries are invalidated.
30
- const RASTERIZE_CACHE_VERSION = 2;
28
+ // Bump when anything that affects rasterized output changes (the capture-root
29
+ // selection, screenshot options, default density) so stale cache entries are
30
+ // invalidated.
31
+ const RASTERIZE_CACHE_VERSION = 4;
31
32
  let rasterizer = playwrightHtmlRasterizer;
32
33
  // Cache only the real (browser) rasterizer. Injected rasterizers are used by
33
34
  // tests, where caching across a shared tmp dir would leak between cases.
@@ -40,24 +41,6 @@ export function setHtmlRasterizer(fn) {
40
41
  export function setOverlayCacheEnabled(enabled) {
41
42
  cacheEnabled = enabled;
42
43
  }
43
- // CSS injected into every overlay document, on top of the minimal reset. Set it
44
- // once (e.g. to your compiled Tailwind stylesheet) so overlays can be styled
45
- // with `className`. Per-overlay `css` is merged on top of this.
46
- let defaultOverlayCss = '';
47
- /**
48
- * Sets CSS injected into every HTML/React overlay document. Pass a compiled
49
- * stylesheet (for example Tailwind's output) so overlays can use `className`.
50
- * Per-overlay `css` is appended after this.
51
- */
52
- export function setOverlayCss(css) {
53
- defaultOverlayCss = css;
54
- }
55
- /** Merges the global default overlay CSS with a per-overlay override. */
56
- export function resolveOverlayCss(css) {
57
- return [defaultOverlayCss, css]
58
- .filter((part) => part !== undefined && part.length > 0)
59
- .join('\n');
60
- }
61
44
  /**
62
45
  * Content hash that uniquely identifies a rasterized overlay's output. The
63
46
  * single source of truth for both the on-disk cache key and the in-run dedupe
@@ -65,24 +48,21 @@ export function resolveOverlayCss(css) {
65
48
  */
66
49
  export function overlayInputHash(input) {
67
50
  const body = input.kind === 'image'
68
- ? `${RASTERIZE_CACHE_VERSION} ${input.deviceScaleFactor} ${input.capturePadding} ${input.css} ${input.html}`
69
- : `${RASTERIZE_CACHE_VERSION} anim ${input.deviceScaleFactor} ${input.capturePadding} ${input.fps} ${input.durationMs} ${input.css} ${input.html}`;
51
+ ? `${RASTERIZE_CACHE_VERSION} ${input.deviceScaleFactor} ${input.html}`
52
+ : `${RASTERIZE_CACHE_VERSION} anim ${input.deviceScaleFactor} ${input.fps} ${input.durationMs} ${input.html}`;
70
53
  return createHash('sha256').update(body).digest('hex');
71
54
  }
72
- function wrapOverlayHtml(html, options = {}) {
73
- const { css, capturePadding } = options;
74
- // capturePadding is transparent padding on the root, so the captured box (the
75
- // element/clip bounding box) grows by it on every side. Animations can then
76
- // translate/scale/rotate within that margin without being clipped, replacing
77
- // the manual "stage" wrapper.
78
- const padding = capturePadding !== undefined && capturePadding > 0
79
- ? `;padding:${capturePadding}px`
80
- : '';
81
- const userStyle = css !== undefined && css.length > 0 ? `<style>${css}</style>` : '';
82
- return ('<!doctype html><html><head><meta charset="utf-8"><style>' +
83
- 'html,body{margin:0;padding:0;background:transparent}' +
84
- `#${OVERLAY_ROOT_ID}{display:inline-block${padding}}` +
85
- `</style>${userStyle}</head><body><div id="${OVERLAY_ROOT_ID}">${html}</div></body></html>`);
55
+ /**
56
+ * Wait for the overlay root to receive child content. `.tsx` page overlays mount
57
+ * their React app asynchronously after `load`, so the root is empty until the
58
+ * mount commits; measuring or screenshotting before then would capture an empty
59
+ * box.
60
+ */
61
+ async function waitForOverlayMount(page) {
62
+ await page.waitForFunction((id) => {
63
+ const root = document.getElementById(id);
64
+ return root !== null && root.childElementCount > 0;
65
+ }, OVERLAY_ROOT_ID, { timeout: 30_000 });
86
66
  }
87
67
  async function playwrightHtmlRasterizer(request) {
88
68
  const page = getRuntimePage();
@@ -100,13 +80,15 @@ async function playwrightHtmlRasterizer(request) {
100
80
  });
101
81
  try {
102
82
  const overlayPage = await overlayContext.newPage();
103
- await overlayPage.setContent(wrapOverlayHtml(request.html, {
104
- ...(request.css !== undefined && { css: request.css }),
105
- ...(request.capturePadding !== undefined && {
106
- capturePadding: request.capturePadding,
107
- }),
108
- }), { waitUntil: 'load' });
109
- const root = overlayPage.locator(`#${OVERLAY_ROOT_ID}`);
83
+ // The overlay html is a complete document (a .html file or the bundled .tsx
84
+ // host page), loaded as-is.
85
+ await overlayPage.setContent(request.html, { waitUntil: 'load' });
86
+ if (request.awaitMount === true)
87
+ await waitForOverlayMount(overlayPage);
88
+ const rootLocator = overlayPage.locator(`#${OVERLAY_ROOT_ID}`);
89
+ const root = (await rootLocator.count()) > 0
90
+ ? rootLocator
91
+ : overlayPage.locator('body');
110
92
  const box = await root.boundingBox();
111
93
  const buffer = await root.screenshot({ omitBackground: true, type: 'png' });
112
94
  return {
@@ -129,12 +111,11 @@ function sanitizeName(name) {
129
111
  * and survives across runs. Rendering an overlay launches a browser context, so
130
112
  * skipping unchanged ones speeds up the author loop noticeably.
131
113
  */
132
- async function renderOverlay(recordingDir, deviceScaleFactor, html, css, capturePadding) {
114
+ async function renderOverlay(recordingDir, deviceScaleFactor, html, awaitMount) {
133
115
  const request = {
134
116
  html,
135
117
  deviceScaleFactor,
136
- ...(css.length > 0 && { css }),
137
- ...(capturePadding > 0 && { capturePadding }),
118
+ ...(awaitMount && { awaitMount: true }),
138
119
  };
139
120
  if (!cacheEnabled) {
140
121
  return rasterizer(request);
@@ -142,8 +123,6 @@ async function renderOverlay(recordingDir, deviceScaleFactor, html, css, capture
142
123
  const inputHash = overlayInputHash({
143
124
  kind: 'image',
144
125
  deviceScaleFactor,
145
- capturePadding,
146
- css,
147
126
  html,
148
127
  });
149
128
  const cacheDir = join(dirname(recordingDir), OVERLAY_CACHE_DIR_NAME);
@@ -171,8 +150,7 @@ export async function rasterizeHtmlOverlay(opts) {
171
150
  throw new Error('[screenci] Cannot write a generated overlay: no active recording directory.');
172
151
  }
173
152
  const deviceScaleFactor = opts.deviceScaleFactor ?? DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR;
174
- const css = opts.cssResolved === true ? (opts.css ?? '') : resolveOverlayCss(opts.css);
175
- const { buffer, width, height } = await renderOverlay(recordingDir, deviceScaleFactor, opts.html, css, opts.capturePadding ?? 0);
153
+ const { buffer, width, height } = await renderOverlay(recordingDir, deviceScaleFactor, opts.html, opts.awaitMount ?? false);
176
154
  const fileHash = createHash('sha256').update(buffer).digest('hex');
177
155
  const dir = join(recordingDir, 'generated');
178
156
  mkdirSync(dir, { recursive: true });
@@ -208,7 +186,14 @@ export function setAnimatedHtmlRasterizer(fn) {
208
186
  // metadata-only label) so the renderer's CUDA graph never range-converts it and
209
187
  // the alpha reaches full opacity — the same recipe NarrationRenderer uses for
210
188
  // its shape mask (a limited-range matte caps opacity at ~92%).
211
- const ANIMATION_FILTER_COMPLEX = '[0:v]pad=ceil(iw/2)*2:ceil(ih/2)*2:0:0:color=black@0,split=2[a][b];' +
189
+ //
190
+ // The leading `format=rgba` normalizes every frame to a 4-channel format up
191
+ // front. Chromium picks a PNG color type per frame from its content, so an
192
+ // animation that becomes fully opaque (or fully transparent) on some frames
193
+ // emits those as 3-channel RGB. Without this, the pixel format would change
194
+ // mid-stream and `alphaextract` would fail to reconfigure ("Error reinitializing
195
+ // filters"), aborting the encode. Forcing rgba guarantees a stable alpha plane.
196
+ const ANIMATION_FILTER_COMPLEX = '[0:v]format=rgba,pad=ceil(iw/2)*2:ceil(ih/2)*2:0:0:color=black@0,split=2[a][b];' +
212
197
  '[a]format=yuv420p[col];' +
213
198
  '[b]alphaextract,scale=in_range=full:out_range=full,format=yuv420p,setparams=range=tv[alp]';
214
199
  async function captureAnimationFrames(request) {
@@ -228,13 +213,15 @@ async function captureAnimationFrames(request) {
228
213
  // Install a virtual clock at t=0 before loading so the animation starts from
229
214
  // its first frame; advancing the clock deterministically samples each frame.
230
215
  await overlayPage.clock.install({ time: 0 });
231
- await overlayPage.setContent(wrapOverlayHtml(request.html, {
232
- ...(request.css !== undefined && { css: request.css }),
233
- ...(request.capturePadding !== undefined && {
234
- capturePadding: request.capturePadding,
235
- }),
236
- }), { waitUntil: 'load' });
237
- const root = overlayPage.locator(`#${OVERLAY_ROOT_ID}`);
216
+ // The overlay html is a complete document (a .html file or the bundled .tsx
217
+ // host page), loaded as-is.
218
+ await overlayPage.setContent(request.html, { waitUntil: 'load' });
219
+ if (request.awaitMount === true)
220
+ await waitForOverlayMount(overlayPage);
221
+ const rootLocator = overlayPage.locator(`#${OVERLAY_ROOT_ID}`);
222
+ const root = (await rootLocator.count()) > 0
223
+ ? rootLocator
224
+ : overlayPage.locator('body');
238
225
  const box = await root.boundingBox();
239
226
  // Capture a fixed clip (the initial layout box) for every frame so the
240
227
  // encoded stream has constant dimensions. Animate transform/opacity rather
@@ -340,10 +327,8 @@ async function renderAnimatedOverlay(recordingDir, request) {
340
327
  const inputHash = overlayInputHash({
341
328
  kind: 'animation',
342
329
  deviceScaleFactor,
343
- capturePadding: request.capturePadding ?? 0,
344
330
  fps: request.fps,
345
331
  durationMs: request.durationMs,
346
- css: request.css ?? '',
347
332
  html: request.html,
348
333
  });
349
334
  const cacheDir = join(dirname(recordingDir), OVERLAY_CACHE_DIR_NAME);
@@ -375,16 +360,12 @@ export async function rasterizeAnimatedHtmlOverlay(opts) {
375
360
  const deviceScaleFactor = opts.deviceScaleFactor ?? DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR;
376
361
  // Validate sampling parameters up front (also exercised by the real capture).
377
362
  framesForDuration(opts.durationMs, fps);
378
- const css = opts.cssResolved === true ? (opts.css ?? '') : resolveOverlayCss(opts.css);
379
363
  const { buffer, width, height } = await renderAnimatedOverlay(recordingDir, {
380
364
  html: opts.html,
381
365
  durationMs: opts.durationMs,
382
366
  fps,
383
367
  deviceScaleFactor,
384
- ...(css.length > 0 && { css }),
385
- ...(opts.capturePadding !== undefined && {
386
- capturePadding: opts.capturePadding,
387
- }),
368
+ ...(opts.awaitMount === true && { awaitMount: true }),
388
369
  });
389
370
  const fileHash = createHash('sha256').update(buffer).digest('hex');
390
371
  const dir = join(recordingDir, 'generated');
@@ -1 +1 @@
1
- {"version":3,"file":"htmlRasterizer.js","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htmlRasterizer.js","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
package/dist/src/init.js CHANGED
@@ -773,18 +773,47 @@ async function readCurrentScreenciVersion() {
773
773
  }
774
774
  return 'latest';
775
775
  }
776
+ // Binary overlay / audio media that ScreenCI uploads to the backend on first
777
+ // record and reuses on later runs. Only true binary formats are listed: HTML,
778
+ // TSX, and SVG overlay sources under recordings/assets/ are editable text and
779
+ // must stay committed, so we ignore by extension instead of the whole folder.
780
+ // Keep in sync with the overlay (.png/.mp4) and audio (see audio.ts) file
781
+ // formats ScreenCI supports.
782
+ const IGNORED_ASSET_MEDIA_EXTENSIONS = [
783
+ // Images
784
+ 'png',
785
+ 'jpg',
786
+ 'jpeg',
787
+ 'gif',
788
+ 'webp',
789
+ // Video
790
+ 'mp4',
791
+ 'mov',
792
+ 'webm',
793
+ // Audio
794
+ 'mp3',
795
+ 'wav',
796
+ 'm4a',
797
+ 'aac',
798
+ 'ogg',
799
+ 'flac',
800
+ 'opus',
801
+ ];
776
802
  export function generateGitignore(packageManager = 'npm') {
777
803
  const yarnSection = packageManager === 'yarn' ? '\n# Yarn\n.yarn/\n' : '';
804
+ const assetMediaRules = IGNORED_ASSET_MEDIA_EXTENSIONS.map((extension) => `recordings/assets/**/*.${extension}`).join('\n');
778
805
  return `# ScreenCI
779
806
  .screenci
780
807
  .playwright-cli/
781
808
  .env
782
809
 
783
- # Video asset media (overlays, audio, narration clips). These are uploaded to
784
- # the ScreenCI backend on first record and reused on later runs (CI included),
785
- # so the large media files do not need to be committed. Delete this rule if you
786
- # prefer to commit them.
787
- recordings/assets/
810
+ # Video asset media under recordings/assets/: image, video, and audio overlay
811
+ # and soundtrack files. These binary files are uploaded to the ScreenCI backend
812
+ # on first record and reused on later runs (CI included), so the large media do
813
+ # not need to be committed. HTML, TSX, and SVG overlay sources under
814
+ # recordings/assets/ are text and stay committed. Delete these rules to commit
815
+ # the media too.
816
+ ${assetMediaRules}
788
817
 
789
818
  # Playwright
790
819
  node_modules/
@@ -1074,15 +1103,17 @@ function Highlight() {
1074
1103
  width: '100%',
1075
1104
  height: '100%',
1076
1105
  boxSizing: 'border-box',
1077
- border: '4px solid #ec4899',
1078
- borderRadius: '12px',
1079
- animation: 'screenci-highlight 1s ease-in-out infinite',
1106
+ border: '3px solid #ec4899',
1107
+ borderRadius: '14px',
1108
+ boxShadow:
1109
+ '0 0 0 4px rgba(236, 72, 153, 0.18), 0 12px 30px rgba(236, 72, 153, 0.28)',
1110
+ animation: 'screenci-highlight 1.4s ease-in-out infinite',
1080
1111
  }}
1081
1112
  >
1082
1113
  <style>{\`
1083
1114
  @keyframes screenci-highlight {
1084
- 0%, 100% { opacity: 1; }
1085
- 50% { opacity: 0.35; }
1115
+ 0%, 100% { transform: scale(1); opacity: 1; }
1116
+ 50% { transform: scale(1.03); opacity: 0.55; }
1086
1117
  }
1087
1118
  \`}</style>
1088
1119
  </div>
@@ -1149,7 +1180,9 @@ screenshot
1149
1180
  box-sizing: border-box;
1150
1181
  border: 3px solid #ec4899;
1151
1182
  border-radius: 14px;
1152
- box-shadow: 0 0 0 6px rgba(236, 72, 153, 0.18);
1183
+ box-shadow:
1184
+ 0 0 0 6px rgba(236, 72, 153, 0.16),
1185
+ 0 14px 34px rgba(236, 72, 153, 0.26);
1153
1186
  }
1154
1187
  \`,
1155
1188
  over: target,
@@ -1186,7 +1219,8 @@ function Ring() {
1186
1219
  boxSizing: 'border-box',
1187
1220
  border: '3px solid #ec4899',
1188
1221
  borderRadius: '14px',
1189
- boxShadow: '0 0 0 6px rgba(236, 72, 153, 0.18)',
1222
+ boxShadow:
1223
+ '0 0 0 6px rgba(236, 72, 153, 0.16), 0 14px 34px rgba(236, 72, 153, 0.26)',
1190
1224
  }}
1191
1225
  />
1192
1226
  )
@@ -1391,6 +1425,14 @@ export async function runInit(projectNameArg, options) {
1391
1425
  await writeFile(resolve(islandDir, 'README.md'), generateIslandReadme(projectName, packageManager));
1392
1426
  await writeInitGitignore(islandDir, packageManager);
1393
1427
  await writeFile(resolve(islandDir, 'recordings', 'example.screenci.ts'), generateExampleVideo());
1428
+ // With React overlays enabled, also scaffold a code-defined overlay video:
1429
+ // an animated highlight ring drawn from a React element (`.tsx`). It carries
1430
+ // a distinct title so it coexists with the base example above, and shows the
1431
+ // programmatic overlay path the plain logo example does not. Skipped under
1432
+ // `--no-react` so nothing depends on a package the user opted out of.
1433
+ if (shouldAddReactOverlays) {
1434
+ await writeFile(resolve(islandDir, 'recordings', 'example-overlays.screenci.tsx'), generateReactExampleVideo());
1435
+ }
1394
1436
  // Also scaffold a screenshot example: a branded still that rings one element.
1395
1437
  // With React overlays it renders the ring from a React element (`.tsx`);
1396
1438
  // under `--no-react` it uses a plain HTML/CSS overlay (`.ts`), so the example
@@ -1569,7 +1611,8 @@ export default defineConfig({
1569
1611
  screenshot: { margin: 64 },
1570
1612
  output: {
1571
1613
  background: {
1572
- backgroundCss: 'linear-gradient(135deg, #fdf2f8 0%, #ede9fe 100%)',
1614
+ backgroundCss:
1615
+ 'linear-gradient(160deg, #fce7f3 0%, #ede9fe 50%, #e0e7ff 100%)',
1573
1616
  },
1574
1617
  },
1575
1618
  recording: {