screenci 0.0.75 → 0.0.78

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 (226) hide show
  1. package/dist/cli.d.ts +62 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +699 -229
  4. package/dist/cli.js.map +1 -1
  5. package/dist/docs/manifest.d.ts +277 -91
  6. package/dist/docs/manifest.d.ts.map +1 -1
  7. package/dist/docs/manifest.js +101 -30
  8. package/dist/docs/manifest.js.map +1 -1
  9. package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts +2 -0
  10. package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts.map +1 -0
  11. package/dist/docs/video-sources/camera-and-zooming.screenci.js +57 -0
  12. package/dist/docs/video-sources/camera-and-zooming.screenci.js.map +1 -0
  13. package/dist/docs/video-sources/installation.screenci.js +19 -10
  14. package/dist/docs/video-sources/installation.screenci.js.map +1 -1
  15. package/dist/docs/video-sources/landing.screenci.js +6 -8
  16. package/dist/docs/video-sources/landing.screenci.js.map +1 -1
  17. package/dist/docs/video-sources/languages.screenci.d.ts +2 -0
  18. package/dist/docs/video-sources/languages.screenci.d.ts.map +1 -0
  19. package/dist/docs/video-sources/languages.screenci.js +68 -0
  20. package/dist/docs/video-sources/languages.screenci.js.map +1 -0
  21. package/dist/docs/video-sources/locator-highlight-animated.screenci.js +4 -5
  22. package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -1
  23. package/dist/docs/video-sources/locator-highlight-still.screenci.js +3 -4
  24. package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -1
  25. package/dist/docs/video-sources/narration.screenci.d.ts +2 -0
  26. package/dist/docs/video-sources/narration.screenci.d.ts.map +1 -0
  27. package/dist/docs/video-sources/narration.screenci.js +71 -0
  28. package/dist/docs/video-sources/narration.screenci.js.map +1 -0
  29. package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts +2 -0
  30. package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts.map +1 -0
  31. package/dist/docs/video-sources/public-urls-and-embeds.screenci.js +60 -0
  32. package/dist/docs/video-sources/public-urls-and-embeds.screenci.js.map +1 -0
  33. package/dist/docs/video-sources/speaking-style.screenci.d.ts +2 -0
  34. package/dist/docs/video-sources/speaking-style.screenci.d.ts.map +1 -0
  35. package/dist/docs/video-sources/speaking-style.screenci.js +76 -0
  36. package/dist/docs/video-sources/speaking-style.screenci.js.map +1 -0
  37. package/dist/docs/video-sources/studio.screenci.js +8 -10
  38. package/dist/docs/video-sources/studio.screenci.js.map +1 -1
  39. package/dist/docs/video-sources/vertical-video.screenci.d.ts +2 -0
  40. package/dist/docs/video-sources/vertical-video.screenci.d.ts.map +1 -0
  41. package/dist/docs/video-sources/vertical-video.screenci.js +58 -0
  42. package/dist/docs/video-sources/vertical-video.screenci.js.map +1 -0
  43. package/dist/docs/videos.d.ts +20 -0
  44. package/dist/docs/videos.d.ts.map +1 -1
  45. package/dist/docs/videos.js +25 -0
  46. package/dist/docs/videos.js.map +1 -1
  47. package/dist/e2e/instrument.e2e.js +60 -1
  48. package/dist/e2e/instrument.e2e.js.map +1 -1
  49. package/dist/e2e/redact.e2e.d.ts +2 -0
  50. package/dist/e2e/redact.e2e.d.ts.map +1 -0
  51. package/dist/e2e/redact.e2e.js +161 -0
  52. package/dist/e2e/redact.e2e.js.map +1 -0
  53. package/dist/index.d.ts +12 -6
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +8 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/src/asset.d.ts +174 -14
  58. package/dist/src/asset.d.ts.map +1 -1
  59. package/dist/src/asset.js +320 -39
  60. package/dist/src/asset.js.map +1 -1
  61. package/dist/src/assetHash.d.ts +27 -0
  62. package/dist/src/assetHash.d.ts.map +1 -0
  63. package/dist/src/assetHash.js +0 -0
  64. package/dist/src/assetHash.js.map +1 -0
  65. package/dist/src/audio.d.ts +20 -1
  66. package/dist/src/audio.d.ts.map +1 -1
  67. package/dist/src/audio.js +126 -24
  68. package/dist/src/audio.js.map +1 -1
  69. package/dist/src/autoZoom.d.ts.map +1 -1
  70. package/dist/src/autoZoom.js +3 -1
  71. package/dist/src/autoZoom.js.map +1 -1
  72. package/dist/src/browserLaunchOptions.d.ts +24 -2
  73. package/dist/src/browserLaunchOptions.d.ts.map +1 -1
  74. package/dist/src/browserLaunchOptions.js +57 -3
  75. package/dist/src/browserLaunchOptions.js.map +1 -1
  76. package/dist/src/builder.d.ts +229 -136
  77. package/dist/src/builder.d.ts.map +1 -1
  78. package/dist/src/builder.js +264 -77
  79. package/dist/src/builder.js.map +1 -1
  80. package/dist/src/callerFile.d.ts +12 -0
  81. package/dist/src/callerFile.d.ts.map +1 -0
  82. package/dist/src/callerFile.js +46 -0
  83. package/dist/src/callerFile.js.map +1 -0
  84. package/dist/src/changeFocus.d.ts.map +1 -1
  85. package/dist/src/changeFocus.js +109 -36
  86. package/dist/src/changeFocus.js.map +1 -1
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/config.js +15 -0
  89. package/dist/src/config.js.map +1 -1
  90. package/dist/src/cue.d.ts +29 -17
  91. package/dist/src/cue.d.ts.map +1 -1
  92. package/dist/src/cue.js +138 -61
  93. package/dist/src/cue.js.map +1 -1
  94. package/dist/src/declare.d.ts +63 -0
  95. package/dist/src/declare.d.ts.map +1 -0
  96. package/dist/src/declare.js +111 -0
  97. package/dist/src/declare.js.map +1 -0
  98. package/dist/src/defaults.d.ts +23 -0
  99. package/dist/src/defaults.d.ts.map +1 -1
  100. package/dist/src/defaults.js +27 -3
  101. package/dist/src/defaults.js.map +1 -1
  102. package/dist/src/events.d.ts +339 -25
  103. package/dist/src/events.d.ts.map +1 -1
  104. package/dist/src/events.js +250 -26
  105. package/dist/src/events.js.map +1 -1
  106. package/dist/src/htmlRasterizer.d.ts +10 -0
  107. package/dist/src/htmlRasterizer.d.ts.map +1 -1
  108. package/dist/src/htmlRasterizer.js +12 -2
  109. package/dist/src/htmlRasterizer.js.map +1 -1
  110. package/dist/src/init.d.ts +2 -0
  111. package/dist/src/init.d.ts.map +1 -1
  112. package/dist/src/init.js +81 -33
  113. package/dist/src/init.js.map +1 -1
  114. package/dist/src/instrument.d.ts.map +1 -1
  115. package/dist/src/instrument.js +164 -8
  116. package/dist/src/instrument.js.map +1 -1
  117. package/dist/src/locales.d.ts.map +1 -1
  118. package/dist/src/locales.js +1 -0
  119. package/dist/src/locales.js.map +1 -1
  120. package/dist/src/localize.d.ts +26 -17
  121. package/dist/src/localize.d.ts.map +1 -1
  122. package/dist/src/localize.js +19 -11
  123. package/dist/src/localize.js.map +1 -1
  124. package/dist/src/localizeRuntime.d.ts +29 -33
  125. package/dist/src/localizeRuntime.d.ts.map +1 -1
  126. package/dist/src/localizeRuntime.js +74 -49
  127. package/dist/src/localizeRuntime.js.map +1 -1
  128. package/dist/src/logger.d.ts +5 -0
  129. package/dist/src/logger.d.ts.map +1 -1
  130. package/dist/src/logger.js +7 -0
  131. package/dist/src/logger.js.map +1 -1
  132. package/dist/src/manualZoom.d.ts.map +1 -1
  133. package/dist/src/manualZoom.js +8 -5
  134. package/dist/src/manualZoom.js.map +1 -1
  135. package/dist/src/narrationVisibility.d.ts +19 -0
  136. package/dist/src/narrationVisibility.d.ts.map +1 -0
  137. package/dist/src/narrationVisibility.js +26 -0
  138. package/dist/src/narrationVisibility.js.map +1 -0
  139. package/dist/src/openBrowser.d.ts +34 -0
  140. package/dist/src/openBrowser.d.ts.map +1 -0
  141. package/dist/src/openBrowser.js +62 -0
  142. package/dist/src/openBrowser.js.map +1 -0
  143. package/dist/src/recordingData.d.ts +27 -0
  144. package/dist/src/recordingData.d.ts.map +1 -1
  145. package/dist/src/recordingSize.d.ts +32 -0
  146. package/dist/src/recordingSize.d.ts.map +1 -0
  147. package/dist/src/recordingSize.js +54 -0
  148. package/dist/src/recordingSize.js.map +1 -0
  149. package/dist/src/redact.d.ts +68 -0
  150. package/dist/src/redact.d.ts.map +1 -0
  151. package/dist/src/redact.js +138 -0
  152. package/dist/src/redact.js.map +1 -0
  153. package/dist/src/redactController.d.ts +61 -0
  154. package/dist/src/redactController.d.ts.map +1 -0
  155. package/dist/src/redactController.js +232 -0
  156. package/dist/src/redactController.js.map +1 -0
  157. package/dist/src/runtimeContext.d.ts +32 -0
  158. package/dist/src/runtimeContext.d.ts.map +1 -1
  159. package/dist/src/runtimeContext.js +21 -0
  160. package/dist/src/runtimeContext.js.map +1 -1
  161. package/dist/src/runtimeMode.d.ts +15 -7
  162. package/dist/src/runtimeMode.d.ts.map +1 -1
  163. package/dist/src/runtimeMode.js +17 -6
  164. package/dist/src/runtimeMode.js.map +1 -1
  165. package/dist/src/screenAudio.d.ts +88 -0
  166. package/dist/src/screenAudio.d.ts.map +1 -0
  167. package/dist/src/screenAudio.js +0 -0
  168. package/dist/src/screenAudio.js.map +1 -0
  169. package/dist/src/screenAudioSink.d.ts +46 -0
  170. package/dist/src/screenAudioSink.d.ts.map +1 -0
  171. package/dist/src/screenAudioSink.js +77 -0
  172. package/dist/src/screenAudioSink.js.map +1 -0
  173. package/dist/src/screenshot.d.ts +27 -29
  174. package/dist/src/screenshot.d.ts.map +1 -1
  175. package/dist/src/screenshot.js +39 -24
  176. package/dist/src/screenshot.js.map +1 -1
  177. package/dist/src/sourceTrim.d.ts +29 -0
  178. package/dist/src/sourceTrim.d.ts.map +1 -0
  179. package/dist/src/sourceTrim.js +76 -0
  180. package/dist/src/sourceTrim.js.map +1 -0
  181. package/dist/src/stillCapture.d.ts +5 -0
  182. package/dist/src/stillCapture.d.ts.map +1 -1
  183. package/dist/src/stillCapture.js +11 -1
  184. package/dist/src/stillCapture.js.map +1 -1
  185. package/dist/src/studio.d.ts +69 -57
  186. package/dist/src/studio.d.ts.map +1 -1
  187. package/dist/src/studio.js +16 -38
  188. package/dist/src/studio.js.map +1 -1
  189. package/dist/src/timelineOffset.d.ts +46 -0
  190. package/dist/src/timelineOffset.d.ts.map +1 -0
  191. package/dist/src/timelineOffset.js +66 -0
  192. package/dist/src/timelineOffset.js.map +1 -0
  193. package/dist/src/titleValidation.d.ts +38 -0
  194. package/dist/src/titleValidation.d.ts.map +1 -1
  195. package/dist/src/titleValidation.js +42 -0
  196. package/dist/src/titleValidation.js.map +1 -1
  197. package/dist/src/types.d.ts +218 -2
  198. package/dist/src/types.d.ts.map +1 -1
  199. package/dist/src/types.js +1 -1
  200. package/dist/src/types.js.map +1 -1
  201. package/dist/src/video.d.ts +74 -60
  202. package/dist/src/video.d.ts.map +1 -1
  203. package/dist/src/video.js +201 -39
  204. package/dist/src/video.js.map +1 -1
  205. package/dist/src/voiceSampleAudio.d.ts +34 -0
  206. package/dist/src/voiceSampleAudio.d.ts.map +1 -0
  207. package/dist/src/voiceSampleAudio.js +105 -0
  208. package/dist/src/voiceSampleAudio.js.map +1 -0
  209. package/dist/src/voices.d.ts +2 -2
  210. package/dist/src/voices.d.ts.map +1 -1
  211. package/dist/src/voices.js +8 -3
  212. package/dist/src/voices.js.map +1 -1
  213. package/dist/src/zoom.d.ts +1 -0
  214. package/dist/src/zoom.d.ts.map +1 -1
  215. package/dist/src/zoom.js +3 -0
  216. package/dist/src/zoom.js.map +1 -1
  217. package/dist/tsconfig.tsbuildinfo +1 -1
  218. package/package.json +3 -2
  219. package/skills/screenci/SKILL.md +2 -2
  220. package/skills/screenci/references/init.md +4 -3
  221. package/skills/screenci/references/record.md +1 -1
  222. package/templates/recordings/assets/logo.png +0 -0
  223. package/dist/docs/video-sources/public-urls.screenci.d.ts +0 -2
  224. package/dist/docs/video-sources/public-urls.screenci.d.ts.map +0 -1
  225. package/dist/docs/video-sources/public-urls.screenci.js +0 -41
  226. package/dist/docs/video-sources/public-urls.screenci.js.map +0 -1
@@ -0,0 +1,111 @@
1
+ import { ScreenciError } from './errors.js';
2
+ import { isStudioMarker, } from './studio.js';
3
+ import { supportedLanguages } from './voices.js';
4
+ const DEFAULT_KEY = 'default';
5
+ const LANGUAGE_KEYS = new Set(supportedLanguages);
6
+ /** Whether a top-level object key denotes a language (or the `default` fallback). */
7
+ export function isLanguageKey(key) {
8
+ return key === DEFAULT_KEY || LANGUAGE_KEYS.has(key);
9
+ }
10
+ /**
11
+ * Normalizes a {@link FeatureArg} into a {@link NormalizedFeature}. Pure; the
12
+ * single source of truth for the array / content-major / language-major split,
13
+ * unit-tested directly.
14
+ *
15
+ * @param feature label used in error messages, e.g. `'narration'`.
16
+ */
17
+ export function normalizeFeature(feature, arg) {
18
+ if (isStudioMarker(arg)) {
19
+ if (arg.seed === undefined && arg.names.length === 0) {
20
+ throw new ScreenciError(`${feature}(studio()) needs names: studio() with no keys is only valid ` +
21
+ `for video.languages(studio()). Pass studio(['name', ...]) to declare ` +
22
+ `${feature} names, or studio({ name: value }) to also seed them.`);
23
+ }
24
+ if (arg.seed === undefined) {
25
+ const studioNames = [...arg.names];
26
+ assertUniqueNames(feature, studioNames);
27
+ return {
28
+ names: studioNames,
29
+ studioNames,
30
+ codeNames: [],
31
+ shared: {},
32
+ byLang: {},
33
+ languages: [],
34
+ };
35
+ }
36
+ // Seeded: normalize the seed object exactly like a code-owned declaration,
37
+ // then re-tag every resolved name as Studio-owned. The shared/byLang values
38
+ // are the web app's starting point; a seed never clobbers a Studio edit.
39
+ const inner = normalizeFeature(feature, arg.seed);
40
+ return { ...inner, studioNames: inner.names, codeNames: [] };
41
+ }
42
+ if (Array.isArray(arg)) {
43
+ throw new ScreenciError(`${feature}([...]) bare arrays are no longer Studio-owned. Wrap the names ` +
44
+ `with studio([...]) to defer them to the web app, e.g. ` +
45
+ `video.${feature}(studio(${JSON.stringify(arg)})).`);
46
+ }
47
+ const obj = arg;
48
+ const keys = Object.keys(obj);
49
+ const languageMajor = keys.length > 0 && keys.every(isLanguageKey);
50
+ if (languageMajor) {
51
+ const shared = obj[DEFAULT_KEY] ?? {};
52
+ const byLang = {};
53
+ for (const key of keys) {
54
+ if (key === DEFAULT_KEY)
55
+ continue;
56
+ byLang[key] = obj[key];
57
+ }
58
+ const codeNames = collectNames(shared, byLang);
59
+ return {
60
+ names: codeNames,
61
+ studioNames: [],
62
+ codeNames,
63
+ shared,
64
+ byLang,
65
+ languages: Object.keys(byLang),
66
+ };
67
+ }
68
+ // Content-major: a flat shared map. No key may collide with a language code or
69
+ // `default`, else the disambiguation rule would have read it as language-major.
70
+ for (const key of keys) {
71
+ if (isLanguageKey(key)) {
72
+ throw new ScreenciError(`${feature} name "${key}" collides with a language code or "default". ` +
73
+ `Content names cannot be language codes; rename it, or use the ` +
74
+ `language-major form (every key a language) for per-language values.`);
75
+ }
76
+ }
77
+ const shared = obj;
78
+ const codeNames = Object.keys(shared);
79
+ return {
80
+ names: codeNames,
81
+ studioNames: [],
82
+ codeNames,
83
+ shared,
84
+ byLang: {},
85
+ languages: [],
86
+ };
87
+ }
88
+ /** Shared keys first, then any names that appear only in a per-language override. */
89
+ function collectNames(shared, byLang) {
90
+ const names = [...Object.keys(shared)];
91
+ const seen = new Set(names);
92
+ for (const entries of Object.values(byLang)) {
93
+ for (const name of Object.keys(entries)) {
94
+ if (!seen.has(name)) {
95
+ seen.add(name);
96
+ names.push(name);
97
+ }
98
+ }
99
+ }
100
+ return names;
101
+ }
102
+ function assertUniqueNames(feature, names) {
103
+ const seen = new Set();
104
+ for (const name of names) {
105
+ if (seen.has(name)) {
106
+ throw new ScreenciError(`Duplicate ${feature} name "${name}".`);
107
+ }
108
+ seen.add(name);
109
+ }
110
+ }
111
+ //# sourceMappingURL=declare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare.js","sourceRoot":"","sources":["../../src/declare.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,28 @@
1
1
  import type { AspectRatio, AutoZoomOptions, FPS, Quality, RecordUploadPolicy, RecordOptions, VideoEncoderPreset } from './types.js';
2
2
  export declare const DEFAULT_ZOOM_OPTIONS: Required<AutoZoomOptions>;
3
+ /**
4
+ * Comfort-band inset used when a plain interaction (click, tap, hover, fill, ...)
5
+ * scrolls a target into view WITHOUT zooming. Placement uses the single unified
6
+ * direction-aware comfort band shared by every focus operation: the target is
7
+ * moved the MINIMUM needed to bring it into the band, so a target reached by
8
+ * scrolling down rests near the bottom, one reached by scrolling up rests near
9
+ * the top, and an already-comfortable target is not moved at all. `0` reveals the
10
+ * target at the nearest edge (pure minimal reveal), `1` collapses the band so it
11
+ * always centers, and `0.2` keeps a comfortable margin at the framing edges. An
12
+ * explicit per-interaction `autoZoomOptions: { centering }` overrides this value
13
+ * and is itself run through the band (so it stays direction-aware).
14
+ */
15
+ export declare const DEFAULT_SCROLL_CENTERING = 0.2;
16
+ /**
17
+ * Comfort-band inset used when `autoZoom` frames the interacted element (as
18
+ * opposed to `zoomTo`, which centers at `1`). Placement uses the same
19
+ * direction-aware comfort band as every other focus operation: the target is
20
+ * moved only as far as needed to enter the band, so it settles slightly toward
21
+ * the edge it came from rather than dead center. `0.6` keeps auto-zoom framing
22
+ * tight while leaving a little breathing room on the entering side. Override per
23
+ * zoom with `autoZoomOptions: { centering }`.
24
+ */
25
+ export declare const DEFAULT_AUTO_ZOOM_CENTERING = 0.6;
3
26
  /**
4
27
  * Default cursor move duration for click-like actions, in milliseconds.
5
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,GAAG,EACH,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAQnB,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,eAAe,CAQ1D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAY,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAoB,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAAiB,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,IAAI,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAAQ,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAuB,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAAkC,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAuB,CAAA;AAErD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAe,CAAA;AAEpD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAe,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAA2B,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAKnC,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,GAAG,EACH,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAQnB,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,eAAe,CAS1D,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAY,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAoB,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAAiB,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,IAAI,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAAQ,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAuB,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAAkC,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAuB,CAAA;AAErD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAe,CAAA;AAEpD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAe,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAA2B,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAKnC,CAAA"}
@@ -6,13 +6,37 @@
6
6
  // - README.md
7
7
  export const DEFAULT_ZOOM_OPTIONS = {
8
8
  easing: 'ease-out',
9
- duration: 900,
10
- amount: 0.65,
9
+ duration: 750,
10
+ zoomOutDuration: 600,
11
+ amount: 0.72,
11
12
  padding: 0.2,
12
13
  centering: 1,
13
14
  preZoomDelay: 0,
14
- postZoomDelay: 300,
15
+ postZoomDelay: 200,
15
16
  };
17
+ /**
18
+ * Comfort-band inset used when a plain interaction (click, tap, hover, fill, ...)
19
+ * scrolls a target into view WITHOUT zooming. Placement uses the single unified
20
+ * direction-aware comfort band shared by every focus operation: the target is
21
+ * moved the MINIMUM needed to bring it into the band, so a target reached by
22
+ * scrolling down rests near the bottom, one reached by scrolling up rests near
23
+ * the top, and an already-comfortable target is not moved at all. `0` reveals the
24
+ * target at the nearest edge (pure minimal reveal), `1` collapses the band so it
25
+ * always centers, and `0.2` keeps a comfortable margin at the framing edges. An
26
+ * explicit per-interaction `autoZoomOptions: { centering }` overrides this value
27
+ * and is itself run through the band (so it stays direction-aware).
28
+ */
29
+ export const DEFAULT_SCROLL_CENTERING = 0.2;
30
+ /**
31
+ * Comfort-band inset used when `autoZoom` frames the interacted element (as
32
+ * opposed to `zoomTo`, which centers at `1`). Placement uses the same
33
+ * direction-aware comfort band as every other focus operation: the target is
34
+ * moved only as far as needed to enter the band, so it settles slightly toward
35
+ * the edge it came from rather than dead center. `0.6` keeps auto-zoom framing
36
+ * tight while leaving a little breathing room on the entering side. Override per
37
+ * zoom with `autoZoomOptions: { centering }`.
38
+ */
39
+ export const DEFAULT_AUTO_ZOOM_CENTERING = 0.6;
16
40
  /**
17
41
  * Default cursor move duration for click-like actions, in milliseconds.
18
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAUA,aAAa;AACb,4EAA4E;AAC5E,wBAAwB;AACxB,0BAA0B;AAC1B,+BAA+B;AAC/B,cAAc;AACd,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,GAAG;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAW,GAAG,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB,MAAM,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,OAAO,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAQ,EAAE,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW,cAAc,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuB,aAAa,CAAA;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAW,MAAM,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAW,MAAM,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB,MAAM,CAAA;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,eAAe;IACxB,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,qBAAqB;CAC/B,CAAA"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAUA,aAAa;AACb,4EAA4E;AAC5E,wBAAwB;AACxB,0BAA0B;AAC1B,+BAA+B;AAC/B,cAAc;AACd,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,GAAG;IACb,eAAe,EAAE,GAAG;IACpB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,GAAG;CACnB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAW,GAAG,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB,MAAM,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,OAAO,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAQ,EAAE,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW,cAAc,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuB,aAAa,CAAA;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAW,MAAM,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAW,MAAM,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB,MAAM,CAAA;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,eAAe;IACxB,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,qBAAqB;CAC/B,CAAA"}