screenci 0.0.43 → 0.0.45

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 (161) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +74 -195
  3. package/dist/cli.d.ts +20 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +685 -464
  6. package/dist/cli.js.map +1 -1
  7. package/dist/docs/manifest.d.ts +521 -0
  8. package/dist/docs/manifest.d.ts.map +1 -0
  9. package/dist/docs/manifest.js +237 -0
  10. package/dist/docs/manifest.js.map +1 -0
  11. package/dist/docs/video-sources/camera-and-zooming.video.d.ts +2 -0
  12. package/dist/docs/video-sources/camera-and-zooming.video.d.ts.map +1 -0
  13. package/dist/docs/video-sources/camera-and-zooming.video.js +37 -0
  14. package/dist/docs/video-sources/camera-and-zooming.video.js.map +1 -0
  15. package/dist/docs/video-sources/ci-setup.video.d.ts +2 -0
  16. package/dist/docs/video-sources/ci-setup.video.d.ts.map +1 -0
  17. package/dist/docs/video-sources/ci-setup.video.js +37 -0
  18. package/dist/docs/video-sources/ci-setup.video.js.map +1 -0
  19. package/dist/docs/video-sources/cli.video.d.ts +2 -0
  20. package/dist/docs/video-sources/cli.video.d.ts.map +1 -0
  21. package/dist/docs/video-sources/cli.video.js +37 -0
  22. package/dist/docs/video-sources/cli.video.js.map +1 -0
  23. package/dist/docs/video-sources/docs-shared.d.ts +5 -0
  24. package/dist/docs/video-sources/docs-shared.d.ts.map +1 -0
  25. package/dist/docs/video-sources/docs-shared.js +14 -0
  26. package/dist/docs/video-sources/docs-shared.js.map +1 -0
  27. package/dist/docs/video-sources/generating-videos.video.d.ts +2 -0
  28. package/dist/docs/video-sources/generating-videos.video.d.ts.map +1 -0
  29. package/dist/docs/video-sources/generating-videos.video.js +37 -0
  30. package/dist/docs/video-sources/generating-videos.video.js.map +1 -0
  31. package/dist/docs/video-sources/installation.video.d.ts +2 -0
  32. package/dist/docs/video-sources/installation.video.d.ts.map +1 -0
  33. package/dist/docs/video-sources/installation.video.js +26 -0
  34. package/dist/docs/video-sources/installation.video.js.map +1 -0
  35. package/dist/docs/video-sources/narration-and-localization.video.d.ts +2 -0
  36. package/dist/docs/video-sources/narration-and-localization.video.d.ts.map +1 -0
  37. package/dist/docs/video-sources/narration-and-localization.video.js +40 -0
  38. package/dist/docs/video-sources/narration-and-localization.video.js.map +1 -0
  39. package/dist/docs/video-sources/public-urls-and-embeds.video.d.ts +2 -0
  40. package/dist/docs/video-sources/public-urls-and-embeds.video.d.ts.map +1 -0
  41. package/dist/docs/video-sources/public-urls-and-embeds.video.js +37 -0
  42. package/dist/docs/video-sources/public-urls-and-embeds.video.js.map +1 -0
  43. package/dist/docs/video-sources/record-and-publish.video.d.ts +2 -0
  44. package/dist/docs/video-sources/record-and-publish.video.d.ts.map +1 -0
  45. package/dist/docs/video-sources/record-and-publish.video.js +37 -0
  46. package/dist/docs/video-sources/record-and-publish.video.js.map +1 -0
  47. package/dist/docs/video-sources/run-and-debug-videos.video.d.ts +2 -0
  48. package/dist/docs/video-sources/run-and-debug-videos.video.d.ts.map +1 -0
  49. package/dist/docs/video-sources/run-and-debug-videos.video.js +37 -0
  50. package/dist/docs/video-sources/run-and-debug-videos.video.js.map +1 -0
  51. package/dist/docs/video-sources/write-video-scripts.video.d.ts +2 -0
  52. package/dist/docs/video-sources/write-video-scripts.video.d.ts.map +1 -0
  53. package/dist/docs/video-sources/write-video-scripts.video.js +40 -0
  54. package/dist/docs/video-sources/write-video-scripts.video.js.map +1 -0
  55. package/dist/docs/videos.d.ts +56 -0
  56. package/dist/docs/videos.d.ts.map +1 -0
  57. package/dist/docs/videos.js +37 -0
  58. package/dist/docs/videos.js.map +1 -0
  59. package/dist/index.d.ts +4 -10
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -6
  62. package/dist/index.js.map +1 -1
  63. package/dist/src/asset.d.ts.map +1 -1
  64. package/dist/src/asset.js +3 -4
  65. package/dist/src/asset.js.map +1 -1
  66. package/dist/src/autoZoom.d.ts +3 -33
  67. package/dist/src/autoZoom.d.ts.map +1 -1
  68. package/dist/src/autoZoom.js +46 -51
  69. package/dist/src/autoZoom.js.map +1 -1
  70. package/dist/src/changeFocus.d.ts.map +1 -1
  71. package/dist/src/changeFocus.js +5 -5
  72. package/dist/src/changeFocus.js.map +1 -1
  73. package/dist/src/config.d.ts +5 -7
  74. package/dist/src/config.d.ts.map +1 -1
  75. package/dist/src/config.js +41 -71
  76. package/dist/src/config.js.map +1 -1
  77. package/dist/src/cue.d.ts +13 -26
  78. package/dist/src/cue.d.ts.map +1 -1
  79. package/dist/src/cue.js +70 -101
  80. package/dist/src/cue.js.map +1 -1
  81. package/dist/src/customVoiceRef.d.ts +3 -0
  82. package/dist/src/customVoiceRef.d.ts.map +1 -0
  83. package/dist/src/customVoiceRef.js +7 -0
  84. package/dist/src/customVoiceRef.js.map +1 -0
  85. package/dist/src/defaults.d.ts +5 -9
  86. package/dist/src/defaults.d.ts.map +1 -1
  87. package/dist/src/defaults.js +11 -9
  88. package/dist/src/defaults.js.map +1 -1
  89. package/dist/src/events.d.ts +7 -6
  90. package/dist/src/events.d.ts.map +1 -1
  91. package/dist/src/events.js +17 -0
  92. package/dist/src/events.js.map +1 -1
  93. package/dist/src/fileSystemName.d.ts +2 -0
  94. package/dist/src/fileSystemName.d.ts.map +1 -0
  95. package/dist/src/fileSystemName.js +44 -0
  96. package/dist/src/fileSystemName.js.map +1 -0
  97. package/dist/src/hide.d.ts +1 -1
  98. package/dist/src/hide.d.ts.map +1 -1
  99. package/dist/src/hide.js +12 -15
  100. package/dist/src/hide.js.map +1 -1
  101. package/dist/src/instrument.d.ts +1 -0
  102. package/dist/src/instrument.d.ts.map +1 -1
  103. package/dist/src/instrument.js +33 -17
  104. package/dist/src/instrument.js.map +1 -1
  105. package/dist/src/manualZoom.d.ts.map +1 -1
  106. package/dist/src/manualZoom.js +13 -13
  107. package/dist/src/manualZoom.js.map +1 -1
  108. package/dist/src/mouse.d.ts.map +1 -1
  109. package/dist/src/mouse.js +4 -1
  110. package/dist/src/mouse.js.map +1 -1
  111. package/dist/src/recording.d.ts +2 -2
  112. package/dist/src/recording.d.ts.map +1 -1
  113. package/dist/src/runtimeContext.d.ts +81 -0
  114. package/dist/src/runtimeContext.d.ts.map +1 -0
  115. package/dist/src/runtimeContext.js +95 -0
  116. package/dist/src/runtimeContext.js.map +1 -0
  117. package/dist/src/runtimeMode.d.ts +8 -0
  118. package/dist/src/runtimeMode.d.ts.map +1 -0
  119. package/dist/src/runtimeMode.js +22 -0
  120. package/dist/src/runtimeMode.js.map +1 -0
  121. package/dist/src/titleValidation.d.ts +3 -0
  122. package/dist/src/titleValidation.d.ts.map +1 -0
  123. package/dist/src/titleValidation.js +19 -0
  124. package/dist/src/titleValidation.js.map +1 -0
  125. package/dist/src/types.d.ts +27 -15
  126. package/dist/src/types.d.ts.map +1 -1
  127. package/dist/src/types.js.map +1 -1
  128. package/dist/src/video.d.ts +6 -1
  129. package/dist/src/video.d.ts.map +1 -1
  130. package/dist/src/video.js +94 -46
  131. package/dist/src/video.js.map +1 -1
  132. package/dist/src/voices.d.ts +8 -11
  133. package/dist/src/voices.d.ts.map +1 -1
  134. package/dist/src/voices.js +13 -8
  135. package/dist/src/voices.js.map +1 -1
  136. package/dist/src/zoom.d.ts +1 -1
  137. package/dist/src/zoom.d.ts.map +1 -1
  138. package/dist/test-fixtures/record-all-or-nothing.config.d.ts +8 -0
  139. package/dist/test-fixtures/record-all-or-nothing.config.d.ts.map +1 -0
  140. package/dist/test-fixtures/record-all-or-nothing.config.js +7 -0
  141. package/dist/test-fixtures/record-all-or-nothing.config.js.map +1 -0
  142. package/dist/test-fixtures/record-upload-all-or-nothing.config.d.ts +8 -0
  143. package/dist/test-fixtures/record-upload-all-or-nothing.config.d.ts.map +1 -0
  144. package/dist/test-fixtures/record-upload-all-or-nothing.config.js +7 -0
  145. package/dist/test-fixtures/record-upload-all-or-nothing.config.js.map +1 -0
  146. package/dist/test-fixtures/record-upload.config.d.ts +5 -0
  147. package/dist/test-fixtures/record-upload.config.d.ts.map +1 -0
  148. package/dist/test-fixtures/record-upload.config.js +4 -0
  149. package/dist/test-fixtures/record-upload.config.js.map +1 -0
  150. package/dist/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +3 -2
  152. package/skills/screenci/SKILL.md +6 -1
  153. package/skills/screenci/references/init.md +10 -12
  154. package/dist/src/reporter.d.ts +0 -9
  155. package/dist/src/reporter.d.ts.map +0 -1
  156. package/dist/src/reporter.js +0 -50
  157. package/dist/src/reporter.js.map +0 -1
  158. package/dist/src/sanitize.d.ts +0 -5
  159. package/dist/src/sanitize.d.ts.map +0 -1
  160. package/dist/src/sanitize.js +0 -11
  161. package/dist/src/sanitize.js.map +0 -1
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Source of truth for ScreenCI docs information architecture.
3
+ * Slugs are web-facing and stable even if source filenames change.
4
+ */
5
+ export const docsManifest = [
6
+ {
7
+ source: 'installation.md',
8
+ slug: 'docs',
9
+ section: 'Getting Started',
10
+ order: 1,
11
+ navLabel: 'Installation',
12
+ title: 'Installation',
13
+ description: 'Install ScreenCI, initialize a project, run the starter video locally, and record your first final video.',
14
+ prev: null,
15
+ next: 'docs/write-video-scripts',
16
+ },
17
+ {
18
+ source: 'write-video-scripts.md',
19
+ slug: 'docs/write-video-scripts',
20
+ section: 'Getting Started',
21
+ order: 2,
22
+ navLabel: 'Write video scripts',
23
+ title: 'Write Video Scripts',
24
+ description: 'Author .video.ts files with Playwright-like APIs, ScreenCI narration and camera helpers, and workflow-aware pacing.',
25
+ prev: 'docs',
26
+ next: 'docs/generating-videos',
27
+ },
28
+ {
29
+ source: 'generating-videos.md',
30
+ slug: 'docs/generating-videos',
31
+ section: 'Getting Started',
32
+ order: 3,
33
+ navLabel: 'Generating videos',
34
+ title: 'Generating Videos',
35
+ description: 'Use Playwright codegen and AI-assisted workflows to generate a first ScreenCI draft, then refine it into a real video script.',
36
+ prev: 'docs/write-video-scripts',
37
+ next: 'docs/run-and-debug-videos',
38
+ },
39
+ {
40
+ source: 'run-and-debug-videos.md',
41
+ slug: 'docs/run-and-debug-videos',
42
+ section: 'Getting Started',
43
+ order: 4,
44
+ navLabel: 'Run and debug videos',
45
+ title: 'Run and Debug Videos',
46
+ description: 'Use screenci test to iterate locally, inspect failures, and debug pacing, selectors, and visible state before recording.',
47
+ prev: 'docs/generating-videos',
48
+ next: 'docs/record-and-publish',
49
+ },
50
+ {
51
+ source: 'record-and-publish.md',
52
+ slug: 'docs/record-and-publish',
53
+ section: 'Getting Started',
54
+ order: 5,
55
+ navLabel: 'Record and publish',
56
+ title: 'Record and Publish',
57
+ description: 'Record the final browser session with screenci record, upload the results, and understand how published outputs behave.',
58
+ prev: 'docs/run-and-debug-videos',
59
+ next: 'docs/ci-setup',
60
+ },
61
+ {
62
+ source: 'ci-setup.md',
63
+ slug: 'docs/ci-setup',
64
+ section: 'Getting Started',
65
+ order: 6,
66
+ navLabel: 'CI setup',
67
+ title: 'CI Setup',
68
+ description: 'Understand the generated GitHub Actions workflow, required secrets, and how to keep CI recordings deterministic.',
69
+ prev: 'docs/record-and-publish',
70
+ next: 'docs/screenci-vs-playwright',
71
+ },
72
+ {
73
+ source: 'screenci-vs-playwright.md',
74
+ slug: 'docs/screenci-vs-playwright',
75
+ section: 'Getting Started',
76
+ order: 7,
77
+ navLabel: 'ScreenCI vs Playwright',
78
+ title: 'ScreenCI vs Playwright',
79
+ description: 'See what stays the same from Playwright, what ScreenCI adds for polished video authoring, and when to use each tool.',
80
+ prev: 'docs/ci-setup',
81
+ next: 'docs/guides/narration-and-localization',
82
+ },
83
+ {
84
+ source: 'narration-and-localization.md',
85
+ slug: 'docs/guides/narration-and-localization',
86
+ section: 'Guides',
87
+ order: 1,
88
+ navLabel: 'Narration and localization',
89
+ title: 'Narration and Localization',
90
+ description: 'Create spoken cues, overlap narration with visible UI motion, and keep multi-language variants consistent and type-safe.',
91
+ prev: 'docs/screenci-vs-playwright',
92
+ next: 'docs/guides/camera-and-zooming',
93
+ },
94
+ {
95
+ source: 'camera-and-zooming.md',
96
+ slug: 'docs/guides/camera-and-zooming',
97
+ section: 'Guides',
98
+ order: 2,
99
+ navLabel: 'Camera and zooming',
100
+ title: 'Camera and Zooming',
101
+ description: 'Choose between autoZoom and manual framing, and use camera direction to guide attention without making the video frantic.',
102
+ prev: 'docs/guides/narration-and-localization',
103
+ next: 'docs/guides/assets-and-overlays',
104
+ },
105
+ {
106
+ source: 'assets-and-overlays.md',
107
+ slug: 'docs/guides/assets-and-overlays',
108
+ section: 'Guides',
109
+ order: 3,
110
+ navLabel: 'Assets and overlays',
111
+ title: 'Assets and Overlays',
112
+ description: 'Add intro clips, corner logos, transition assets, and timed overlays to ScreenCI recordings.',
113
+ prev: 'docs/guides/camera-and-zooming',
114
+ next: 'docs/guides/public-urls-and-embeds',
115
+ },
116
+ {
117
+ source: 'public-urls-and-embeds.md',
118
+ slug: 'docs/guides/public-urls-and-embeds',
119
+ section: 'Guides',
120
+ order: 4,
121
+ navLabel: 'Public URLs and embeds',
122
+ title: 'Public URLs and Embeds',
123
+ description: 'Enable public delivery for a video, understand stable language-specific URLs, and embed ScreenCI outputs in other sites.',
124
+ prev: 'docs/guides/assets-and-overlays',
125
+ next: 'docs/guides/update-screenci',
126
+ },
127
+ {
128
+ source: 'update-screenci.md',
129
+ slug: 'docs/guides/update-screenci',
130
+ section: 'Guides',
131
+ order: 5,
132
+ navLabel: 'Update ScreenCI',
133
+ title: 'Update ScreenCI',
134
+ description: 'Upgrade the screenci package, refresh Playwright when needed, and verify that existing videos still behave as expected.',
135
+ prev: 'docs/guides/public-urls-and-embeds',
136
+ next: 'docs/reference/cli',
137
+ },
138
+ {
139
+ source: 'cli.md',
140
+ slug: 'docs/reference/cli',
141
+ section: 'Reference',
142
+ order: 1,
143
+ navLabel: 'CLI',
144
+ title: 'CLI',
145
+ description: 'Command reference for screenci init, test, record, project info, and public delivery commands.',
146
+ prev: 'docs/guides/update-screenci',
147
+ next: 'docs/reference/configuration',
148
+ },
149
+ {
150
+ source: 'configuration.md',
151
+ slug: 'docs/reference/configuration',
152
+ section: 'Reference',
153
+ order: 2,
154
+ navLabel: 'Configuration',
155
+ title: 'Configuration',
156
+ description: 'Configure project identity, file locations, rendering defaults, upload behavior, and Playwright integration in screenci.config.ts.',
157
+ prev: 'docs/reference/cli',
158
+ next: 'docs/reference/video-authoring-api-overview',
159
+ },
160
+ {
161
+ source: 'video-authoring-api-overview.md',
162
+ slug: 'docs/reference/video-authoring-api-overview',
163
+ section: 'Reference',
164
+ order: 3,
165
+ navLabel: 'Video authoring API overview',
166
+ title: 'Video Authoring API Overview',
167
+ description: 'Human-curated reference for the main ScreenCI authoring primitives, with minimal examples and links into the full typedoc.',
168
+ prev: 'docs/reference/configuration',
169
+ next: 'docs/reference/public-delivery-api',
170
+ },
171
+ {
172
+ source: 'public-delivery-api.md',
173
+ slug: 'docs/reference/public-delivery-api',
174
+ section: 'Reference',
175
+ order: 4,
176
+ navLabel: 'Public delivery API',
177
+ title: 'Public Delivery API',
178
+ description: 'Technical reference for the unauthenticated endpoints that serve published videos, thumbnails, subtitles, and metadata.',
179
+ prev: 'docs/reference/video-authoring-api-overview',
180
+ next: 'docs/reference/api',
181
+ },
182
+ ];
183
+ export const docsSections = ['Getting Started', 'Guides', 'Reference'];
184
+ export function getDocBySlug(slug) {
185
+ return docsManifest.find((entry) => entry.slug === slug);
186
+ }
187
+ export function getOutputPathFromSlug(slug) {
188
+ if (slug === 'docs')
189
+ return 'index.md';
190
+ return `${slug.replace(/^docs\//, '')}.md`;
191
+ }
192
+ export function getGeneratedDocsManifest() {
193
+ return docsManifest.map((entry) => ({
194
+ ...entry,
195
+ outputPath: getOutputPathFromSlug(entry.slug),
196
+ }));
197
+ }
198
+ function toSidebarItem(entry) {
199
+ return {
200
+ label: entry.navLabel,
201
+ slug: entry.slug,
202
+ };
203
+ }
204
+ export function getDocsSidebarConfig(typedocSidebarGroup) {
205
+ return docsSections.map((section) => {
206
+ const items = docsManifest
207
+ .filter((entry) => entry.section === section)
208
+ .sort((a, b) => a.order - b.order)
209
+ .map(toSidebarItem);
210
+ if (section === 'Reference' && typedocSidebarGroup) {
211
+ items.push(typedocSidebarGroup);
212
+ }
213
+ return {
214
+ label: section,
215
+ items,
216
+ };
217
+ });
218
+ }
219
+ export function getPrevNextLinkConfig(slug) {
220
+ if (!slug)
221
+ return false;
222
+ if (slug === 'docs/reference/api') {
223
+ return {
224
+ label: 'Full API Reference',
225
+ link: '/docs/reference/api',
226
+ };
227
+ }
228
+ const entry = getDocBySlug(slug);
229
+ if (!entry) {
230
+ throw new Error(`Unknown docs slug in prev/next config: ${slug}`);
231
+ }
232
+ return {
233
+ label: entry.title,
234
+ link: `/${entry.slug}`,
235
+ };
236
+ }
237
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../docs/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=camera-and-zooming.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-and-zooming.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/camera-and-zooming.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { clickContentLink, openSourceDetails, waitForDocHeading, } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video walks through the two camera styles covered in the Camera and Zooming guide.',
9
+ source: 'The page includes the complete ScreenCI script used for this walkthrough.',
10
+ focus: 'The manual zoom section shows when to take exact control over framing instead of following the interaction automatically.',
11
+ next: 'The related reference page for authoring helpers is linked from the end of the guide.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('Camera and zooming guide', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/guides/camera-and-zooming');
19
+ await waitForDocHeading(page, 'Camera and Zooming');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.focus();
28
+ await zoomTo(page.getByRole('heading', { name: 'Manual zoom' }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await clickContentLink(page, 'Video Authoring API Overview');
34
+ });
35
+ await waitForDocHeading(page, 'Video Authoring API Overview');
36
+ });
37
+ //# sourceMappingURL=camera-and-zooming.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-and-zooming.video.js","sourceRoot":"","sources":["../../../docs/video-sources/camera-and-zooming.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,yFAAyF;gBAC3F,MAAM,EACJ,2EAA2E;gBAC7E,KAAK,EACH,2HAA2H;gBAC7H,IAAI,EAAE,uFAAuF;aAC9F;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnD,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAClD,MAAM,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;IAChE,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,gBAAgB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;AAC/D,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ci-setup.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-setup.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/ci-setup.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { clickContentLink, openSourceDetails, waitForDocHeading, } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video highlights the default GitHub Actions recording workflow described in the CI Setup page.',
9
+ source: 'The source details let you compare the final walkthrough with the authoring script.',
10
+ focus: 'Further down, the guide explains how to keep CI recordings deterministic and repeatable.',
11
+ next: 'The related publishing guide for public delivery is linked at the end of the page.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('CI setup guide', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/ci-setup');
19
+ await waitForDocHeading(page, 'CI Setup');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.focus();
28
+ await zoomTo(page.getByRole('heading', { name: 'Keep recordings deterministic' }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await clickContentLink(page, 'Public URLs and Embeds');
34
+ });
35
+ await waitForDocHeading(page, 'Public URLs and Embeds');
36
+ });
37
+ //# sourceMappingURL=ci-setup.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-setup.video.js","sourceRoot":"","sources":["../../../docs/video-sources/ci-setup.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,qGAAqG;gBACvG,MAAM,EACJ,qFAAqF;gBACvF,KAAK,EACH,0FAA0F;gBAC5F,IAAI,EAAE,oFAAoF;aAC3F;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzC,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACjC,MAAM,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,MAAM,CACV,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CACrE,CAAA;IACD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/cli.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { clickContentLink, openSourceDetails, waitForDocHeading, } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video introduces the CLI reference and the most common ScreenCI commands.',
9
+ source: 'The page includes the ScreenCI source used to walk through the reference.',
10
+ focus: 'One of the key command sections covers screenci test and the normal local iteration loop.',
11
+ next: 'When the guide is done, it links back to the Record and Publish workflow.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('CLI reference walkthrough', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/reference/cli');
19
+ await waitForDocHeading(page, 'CLI');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.focus();
28
+ await zoomTo(page.getByRole('heading', { name: /screenci test \[playwrightArgs/ }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await clickContentLink(page, 'Record and Publish');
34
+ });
35
+ await waitForDocHeading(page, 'Record and Publish');
36
+ });
37
+ //# sourceMappingURL=cli.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.video.js","sourceRoot":"","sources":["../../../docs/video-sources/cli.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,gFAAgF;gBAClF,MAAM,EACJ,2EAA2E;gBAC7E,KAAK,EACH,2FAA2F;gBAC7F,IAAI,EAAE,2EAA2E;aAClF;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACpD,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACtC,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,MAAM,CACV,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CACtE,CAAA;IACD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;AACrD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { Page } from '@playwright/test';
2
+ export declare function waitForDocHeading(page: Page, name: string): Promise<void>;
3
+ export declare function openSourceDetails(page: Page): Promise<void>;
4
+ export declare function clickContentLink(page: Page, name: string): Promise<void>;
5
+ //# sourceMappingURL=docs-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-shared.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/docs-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE5C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAE/D;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,iBAEjD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAM9D"}
@@ -0,0 +1,14 @@
1
+ export async function waitForDocHeading(page, name) {
2
+ await page.getByRole('heading', { level: 1, name }).first().waitFor();
3
+ }
4
+ export async function openSourceDetails(page) {
5
+ await page.getByText('Show source').first().click();
6
+ }
7
+ export async function clickContentLink(page, name) {
8
+ await page
9
+ .locator('.sl-markdown-content')
10
+ .getByRole('link', { name, exact: true })
11
+ .first()
12
+ .click();
13
+ }
14
+ //# sourceMappingURL=docs-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-shared.js","sourceRoot":"","sources":["../../../docs/video-sources/docs-shared.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,IAAY;IAC9D,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU;IAChD,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAA;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAU,EAAE,IAAY;IAC7D,MAAM,IAAI;SACP,OAAO,CAAC,sBAAsB,CAAC;SAC/B,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACxC,KAAK,EAAE;SACP,KAAK,EAAE,CAAA;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generating-videos.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generating-videos.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/generating-videos.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { clickContentLink, openSourceDetails, waitForDocHeading, } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video shows how the Generating Videos guide covers source based, URL based, and codegen driven starting points.',
9
+ source: 'The embedded source shows the exact ScreenCI script behind this documentation walkthrough.',
10
+ section: 'One of the core sections focuses on generating videos directly from source code in the same repository.',
11
+ next: 'From here, the next step is learning how to run and debug the draft locally.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('Generating videos guide', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/generating-videos');
19
+ await waitForDocHeading(page, 'Generating Videos');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.section();
28
+ await zoomTo(page.getByRole('heading', { name: 'AI generation based on source code' }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await clickContentLink(page, 'Run and Debug Videos');
34
+ });
35
+ await waitForDocHeading(page, 'Run and Debug Videos');
36
+ });
37
+ //# sourceMappingURL=generating-videos.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generating-videos.video.js","sourceRoot":"","sources":["../../../docs/video-sources/generating-videos.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,sHAAsH;gBACxH,MAAM,EACJ,4FAA4F;gBAC9F,OAAO,EACL,yGAAyG;gBAC3G,IAAI,EAAE,8EAA8E;aACrF;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC1C,MAAM,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;IACzB,MAAM,MAAM,CACV,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC,CAC1E,CAAA;IACD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;AACvD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=installation.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/installation.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { autoZoom, createNarration, hide, video, voices } from 'screenci';
2
+ import { waitForDocHeading } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video shows how to get started with ScreenCI [pronounce: screen see eye].',
9
+ docs: 'You can find the documentation linked right on the front page.',
10
+ },
11
+ },
12
+ },
13
+ });
14
+ video('How to get started', async ({ page }) => {
15
+ await hide(async () => {
16
+ await page.goto('https://screenci.com');
17
+ await page.getByText('ScreenCI').first().waitFor();
18
+ });
19
+ await narration.intro();
20
+ await narration.docs();
21
+ await autoZoom(async () => {
22
+ await page.getByRole('link', { name: 'View Documentation' }).click();
23
+ });
24
+ await waitForDocHeading(page, 'Installation');
25
+ });
26
+ //# sourceMappingURL=installation.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation.video.js","sourceRoot":"","sources":["../../../docs/video-sources/installation.video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,gFAAgF;gBAClF,IAAI,EAAE,gEAAgE;aACvE;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7C,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IAEtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=narration-and-localization.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narration-and-localization.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/narration-and-localization.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { openSourceDetails, waitForDocHeading } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video introduces the Narration and Localization guide for cue based speech and multi language output.',
9
+ source: 'The source block shows how the guide video itself uses narration cues and typed source.',
10
+ focus: 'One of the most important sections explains how to overlap spoken cues with visible motion.',
11
+ next: 'The next guide expands from narration into camera movement and zooming.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('Narration and localization guide', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/guides/narration-and-localization');
19
+ await waitForDocHeading(page, 'Narration and Localization');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.focus();
28
+ await zoomTo(page.getByRole('heading', { name: 'Timing modes' }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await page
34
+ .getByRole('link', { name: 'Camera and zooming', exact: true })
35
+ .first()
36
+ .click();
37
+ });
38
+ await waitForDocHeading(page, 'Camera and Zooming');
39
+ });
40
+ //# sourceMappingURL=narration-and-localization.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narration-and-localization.video.js","sourceRoot":"","sources":["../../../docs/video-sources/narration-and-localization.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEpE,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,4GAA4G;gBAC9G,MAAM,EACJ,yFAAyF;gBAC3F,KAAK,EACH,6FAA6F;gBAC/F,IAAI,EAAE,yEAAyE;aAChF;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,kCAAkC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;QAC1D,MAAM,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI;aACP,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC9D,KAAK,EAAE;aACP,KAAK,EAAE,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;AACrD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=public-urls-and-embeds.video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-urls-and-embeds.video.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/public-urls-and-embeds.video.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { autoZoom, createNarration, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
2
+ import { clickContentLink, openSourceDetails, waitForDocHeading, } from './docs-shared';
3
+ const narration = createNarration({
4
+ voice: { name: voices.Sophie },
5
+ languages: {
6
+ en: {
7
+ cues: {
8
+ intro: 'This video shows how the Public URLs and Embeds guide explains stable published delivery links.',
9
+ source: 'The source details make it easy to compare the written guide with the authored walkthrough.',
10
+ focus: 'The embed example is the core section when you want to place a public ScreenCI video into another site.',
11
+ next: 'The page links directly to the endpoint level Public Delivery API reference.',
12
+ },
13
+ },
14
+ },
15
+ });
16
+ video('Public URLs and embeds guide', async ({ page }) => {
17
+ await hide(async () => {
18
+ await page.goto('/docs/guides/public-urls-and-embeds');
19
+ await waitForDocHeading(page, 'Public URLs and Embeds');
20
+ });
21
+ await narration.intro();
22
+ await narration.source.start();
23
+ await autoZoom(async () => {
24
+ await openSourceDetails(page);
25
+ });
26
+ await narration.source.end();
27
+ await narration.focus();
28
+ await zoomTo(page.getByRole('heading', { name: 'Typical embed' }));
29
+ await page.waitForTimeout(700);
30
+ await resetZoom();
31
+ await narration.next();
32
+ await autoZoom(async () => {
33
+ await clickContentLink(page, 'Public Delivery API');
34
+ });
35
+ await waitForDocHeading(page, 'Public Delivery API');
36
+ });
37
+ //# sourceMappingURL=public-urls-and-embeds.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-urls-and-embeds.video.js","sourceRoot":"","sources":["../../../docs/video-sources/public-urls-and-embeds.video.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE;QACT,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,KAAK,EACH,iGAAiG;gBACnG,MAAM,EACJ,6FAA6F;gBAC/F,KAAK,EACH,yGAAyG;gBAC3G,IAAI,EAAE,8EAA8E;aACrF;SACF;KACF;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACvD,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;QACtD,MAAM,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;AACtD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=record-and-publish.video.d.ts.map