@twick/2d 0.14.0 → 1.14.3

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 (186) hide show
  1. package/LICENSE +21 -21
  2. package/editor/editor/tsconfig.build.tsbuildinfo +1 -1
  3. package/lib/components/Audio.d.ts.map +1 -1
  4. package/lib/components/Audio.js +33 -3
  5. package/lib/components/CodeBlock.d.ts +1 -1
  6. package/lib/components/Img.js +23 -23
  7. package/lib/components/Line.js +31 -31
  8. package/lib/components/Media.d.ts +6 -0
  9. package/lib/components/Media.d.ts.map +1 -1
  10. package/lib/components/Media.js +277 -61
  11. package/lib/components/Node.d.ts +1 -1
  12. package/lib/components/Path.d.ts +1 -1
  13. package/lib/components/SVG.d.ts +1 -1
  14. package/lib/components/Shape.d.ts +1 -1
  15. package/lib/components/Spline.js +25 -25
  16. package/lib/components/Video.d.ts +0 -1
  17. package/lib/components/Video.d.ts.map +1 -1
  18. package/lib/components/Video.js +70 -65
  19. package/lib/tsconfig.build.tsbuildinfo +1 -1
  20. package/package.json +4 -5
  21. package/src/editor/NodeInspectorConfig.tsx +76 -76
  22. package/src/editor/PreviewOverlayConfig.tsx +67 -67
  23. package/src/editor/Provider.tsx +93 -93
  24. package/src/editor/SceneGraphTabConfig.tsx +81 -81
  25. package/src/editor/icons/CircleIcon.tsx +7 -7
  26. package/src/editor/icons/CodeBlockIcon.tsx +8 -8
  27. package/src/editor/icons/CurveIcon.tsx +7 -7
  28. package/src/editor/icons/GridIcon.tsx +7 -7
  29. package/src/editor/icons/IconMap.ts +35 -35
  30. package/src/editor/icons/ImgIcon.tsx +8 -8
  31. package/src/editor/icons/LayoutIcon.tsx +9 -9
  32. package/src/editor/icons/LineIcon.tsx +7 -7
  33. package/src/editor/icons/NodeIcon.tsx +7 -7
  34. package/src/editor/icons/RayIcon.tsx +7 -7
  35. package/src/editor/icons/RectIcon.tsx +7 -7
  36. package/src/editor/icons/ShapeIcon.tsx +7 -7
  37. package/src/editor/icons/TxtIcon.tsx +8 -8
  38. package/src/editor/icons/VideoIcon.tsx +7 -7
  39. package/src/editor/icons/View2DIcon.tsx +10 -10
  40. package/src/editor/index.ts +17 -17
  41. package/src/editor/tree/DetachedRoot.tsx +23 -23
  42. package/src/editor/tree/NodeElement.tsx +74 -74
  43. package/src/editor/tree/TreeElement.tsx +72 -72
  44. package/src/editor/tree/TreeRoot.tsx +10 -10
  45. package/src/editor/tree/ViewRoot.tsx +20 -20
  46. package/src/editor/tree/index.module.scss +38 -38
  47. package/src/editor/tree/index.ts +3 -3
  48. package/src/editor/tsconfig.build.json +5 -5
  49. package/src/editor/tsconfig.json +12 -12
  50. package/src/editor/tsdoc.json +4 -4
  51. package/src/editor/vite-env.d.ts +1 -1
  52. package/src/lib/code/CodeCursor.ts +445 -445
  53. package/src/lib/code/CodeDiffer.ts +78 -78
  54. package/src/lib/code/CodeFragment.ts +97 -97
  55. package/src/lib/code/CodeHighlighter.ts +75 -75
  56. package/src/lib/code/CodeMetrics.ts +47 -47
  57. package/src/lib/code/CodeRange.test.ts +74 -74
  58. package/src/lib/code/CodeRange.ts +216 -216
  59. package/src/lib/code/CodeScope.ts +101 -101
  60. package/src/lib/code/CodeSelection.ts +24 -24
  61. package/src/lib/code/CodeSignal.ts +327 -327
  62. package/src/lib/code/CodeTokenizer.ts +54 -54
  63. package/src/lib/code/DefaultHighlightStyle.ts +98 -98
  64. package/src/lib/code/LezerHighlighter.ts +113 -113
  65. package/src/lib/code/diff.test.ts +311 -311
  66. package/src/lib/code/diff.ts +319 -319
  67. package/src/lib/code/extractRange.ts +126 -126
  68. package/src/lib/code/index.ts +13 -13
  69. package/src/lib/components/Audio.ts +168 -131
  70. package/src/lib/components/Bezier.ts +105 -105
  71. package/src/lib/components/Circle.ts +266 -266
  72. package/src/lib/components/Code.ts +526 -526
  73. package/src/lib/components/CodeBlock.ts +576 -576
  74. package/src/lib/components/CubicBezier.ts +112 -112
  75. package/src/lib/components/Curve.ts +455 -455
  76. package/src/lib/components/Grid.ts +135 -135
  77. package/src/lib/components/Icon.ts +96 -96
  78. package/src/lib/components/Img.ts +319 -319
  79. package/src/lib/components/Knot.ts +157 -157
  80. package/src/lib/components/Latex.ts +122 -122
  81. package/src/lib/components/Layout.ts +1092 -1092
  82. package/src/lib/components/Line.ts +429 -429
  83. package/src/lib/components/Media.ts +576 -346
  84. package/src/lib/components/Node.ts +1940 -1940
  85. package/src/lib/components/Path.ts +137 -137
  86. package/src/lib/components/Polygon.ts +171 -171
  87. package/src/lib/components/QuadBezier.ts +100 -100
  88. package/src/lib/components/Ray.ts +125 -125
  89. package/src/lib/components/Rect.ts +187 -187
  90. package/src/lib/components/Rive.ts +156 -156
  91. package/src/lib/components/SVG.ts +797 -797
  92. package/src/lib/components/Shape.ts +143 -143
  93. package/src/lib/components/Spline.ts +344 -344
  94. package/src/lib/components/Txt.test.tsx +81 -81
  95. package/src/lib/components/Txt.ts +203 -203
  96. package/src/lib/components/TxtLeaf.ts +205 -205
  97. package/src/lib/components/Video.ts +461 -462
  98. package/src/lib/components/View2D.ts +98 -98
  99. package/src/lib/components/__tests__/children.test.tsx +142 -142
  100. package/src/lib/components/__tests__/clone.test.tsx +126 -126
  101. package/src/lib/components/__tests__/generatorTest.ts +28 -28
  102. package/src/lib/components/__tests__/mockScene2D.ts +45 -45
  103. package/src/lib/components/__tests__/query.test.tsx +122 -122
  104. package/src/lib/components/__tests__/state.test.tsx +60 -60
  105. package/src/lib/components/index.ts +28 -28
  106. package/src/lib/components/types.ts +35 -35
  107. package/src/lib/curves/ArcSegment.ts +159 -159
  108. package/src/lib/curves/CircleSegment.ts +77 -77
  109. package/src/lib/curves/CubicBezierSegment.ts +78 -78
  110. package/src/lib/curves/CurveDrawingInfo.ts +11 -11
  111. package/src/lib/curves/CurvePoint.ts +15 -15
  112. package/src/lib/curves/CurveProfile.ts +7 -7
  113. package/src/lib/curves/KnotInfo.ts +10 -10
  114. package/src/lib/curves/LineSegment.ts +62 -62
  115. package/src/lib/curves/Polynomial.ts +355 -355
  116. package/src/lib/curves/Polynomial2D.ts +62 -62
  117. package/src/lib/curves/PolynomialSegment.ts +124 -124
  118. package/src/lib/curves/QuadBezierSegment.ts +64 -64
  119. package/src/lib/curves/Segment.ts +17 -17
  120. package/src/lib/curves/UniformPolynomialCurveSampler.ts +94 -94
  121. package/src/lib/curves/createCurveProfileLerp.ts +471 -471
  122. package/src/lib/curves/getBezierSplineProfile.ts +223 -223
  123. package/src/lib/curves/getCircleProfile.ts +86 -86
  124. package/src/lib/curves/getPathProfile.ts +178 -178
  125. package/src/lib/curves/getPointAtDistance.ts +21 -21
  126. package/src/lib/curves/getPolylineProfile.test.ts +21 -21
  127. package/src/lib/curves/getPolylineProfile.ts +89 -89
  128. package/src/lib/curves/getRectProfile.ts +139 -139
  129. package/src/lib/curves/index.ts +16 -16
  130. package/src/lib/decorators/canvasStyleSignal.ts +16 -16
  131. package/src/lib/decorators/colorSignal.ts +9 -9
  132. package/src/lib/decorators/compound.ts +72 -72
  133. package/src/lib/decorators/computed.ts +18 -18
  134. package/src/lib/decorators/defaultStyle.ts +18 -18
  135. package/src/lib/decorators/filtersSignal.ts +136 -136
  136. package/src/lib/decorators/index.ts +10 -10
  137. package/src/lib/decorators/initializers.ts +32 -32
  138. package/src/lib/decorators/nodeName.ts +13 -13
  139. package/src/lib/decorators/signal.test.ts +90 -90
  140. package/src/lib/decorators/signal.ts +345 -345
  141. package/src/lib/decorators/spacingSignal.ts +15 -15
  142. package/src/lib/decorators/vector2Signal.ts +30 -30
  143. package/src/lib/globals.d.ts +2 -2
  144. package/src/lib/index.ts +8 -8
  145. package/src/lib/jsx-dev-runtime.ts +2 -2
  146. package/src/lib/jsx-runtime.ts +46 -46
  147. package/src/lib/parse-svg-path.d.ts +14 -14
  148. package/src/lib/partials/Filter.ts +180 -180
  149. package/src/lib/partials/Gradient.ts +102 -102
  150. package/src/lib/partials/Pattern.ts +34 -34
  151. package/src/lib/partials/ShaderConfig.ts +117 -117
  152. package/src/lib/partials/index.ts +4 -4
  153. package/src/lib/partials/types.ts +58 -58
  154. package/src/lib/scenes/Scene2D.ts +242 -242
  155. package/src/lib/scenes/index.ts +3 -3
  156. package/src/lib/scenes/makeScene2D.ts +16 -16
  157. package/src/lib/scenes/useScene2D.ts +6 -6
  158. package/src/lib/tsconfig.build.json +5 -5
  159. package/src/lib/tsconfig.json +10 -10
  160. package/src/lib/tsdoc.json +4 -4
  161. package/src/lib/utils/CanvasUtils.ts +306 -306
  162. package/src/lib/utils/diff.test.ts +453 -453
  163. package/src/lib/utils/diff.ts +148 -148
  164. package/src/lib/utils/index.ts +2 -2
  165. package/src/lib/utils/is.ts +11 -11
  166. package/src/lib/utils/makeSignalExtensions.ts +30 -30
  167. package/src/lib/utils/video/declarations.d.ts +1 -1
  168. package/src/lib/utils/video/ffmpeg-client.ts +50 -50
  169. package/src/lib/utils/video/mp4-parser-manager.ts +72 -72
  170. package/src/lib/utils/video/parser/index.ts +1 -1
  171. package/src/lib/utils/video/parser/parser.ts +257 -257
  172. package/src/lib/utils/video/parser/sampler.ts +72 -72
  173. package/src/lib/utils/video/parser/segment.ts +302 -302
  174. package/src/lib/utils/video/parser/sink.ts +29 -29
  175. package/src/lib/utils/video/parser/utils.ts +31 -31
  176. package/src/tsconfig.base.json +19 -19
  177. package/src/tsconfig.build.json +8 -8
  178. package/src/tsconfig.json +5 -5
  179. package/tsconfig.project.json +7 -7
  180. package/lib/components/utils/waitUntil.d.ts +0 -7
  181. package/lib/components/utils/waitUntil.d.ts.map +0 -1
  182. package/lib/components/utils/waitUntil.js +0 -15
  183. package/lib/utils/waitUntil.d.ts +0 -7
  184. package/lib/utils/waitUntil.d.ts.map +0 -1
  185. package/lib/utils/waitUntil.js +0 -15
  186. package/src/lib/utils/waitUntil.ts +0 -18
@@ -8,33 +8,34 @@ var Media_1;
8
8
  import { DependencyContext, PlaybackState, clamp, isReactive, useLogger, useThread, } from '@twick/core';
9
9
  import { computed, initial, nodeName, signal } from '../decorators';
10
10
  import { Rect } from './Rect';
11
- const reactivePlaybackRate = `
12
- The \`playbackRate\` of a \`Video\` cannot be reactive.
13
-
14
- Make sure to use a concrete value and not a function:
15
-
16
- \`\`\`ts wrong
17
- video.playbackRate(() => 7);
18
- \`\`\`
19
-
20
- \`\`\`ts correct
21
- video.playbackRate(7);
22
- \`\`\`
23
-
24
- If you're using a signal, extract its value before passing it to the property:
25
-
26
- \`\`\`ts wrong
27
- video.playbackRate(mySignal);
28
- \`\`\`
29
-
30
- \`\`\`ts correct
31
- video.playbackRate(mySignal());
32
- \`\`\`
11
+ const reactivePlaybackRate = `
12
+ The \`playbackRate\` of a \`Video\` cannot be reactive.
13
+
14
+ Make sure to use a concrete value and not a function:
15
+
16
+ \`\`\`ts wrong
17
+ video.playbackRate(() => 7);
18
+ \`\`\`
19
+
20
+ \`\`\`ts correct
21
+ video.playbackRate(7);
22
+ \`\`\`
23
+
24
+ If you're using a signal, extract its value before passing it to the property:
25
+
26
+ \`\`\`ts wrong
27
+ video.playbackRate(mySignal);
28
+ \`\`\`
29
+
30
+ \`\`\`ts correct
31
+ video.playbackRate(mySignal());
32
+ \`\`\`
33
33
  `;
34
34
  let Media = Media_1 = class Media extends Rect {
35
35
  constructor(props) {
36
36
  super(props);
37
37
  this.lastTime = -1;
38
+ this.isSchedulingPlay = false;
38
39
  if (!this.awaitCanPlay()) {
39
40
  this.scheduleSeek(this.time());
40
41
  }
@@ -42,7 +43,10 @@ let Media = Media_1 = class Media extends Rect {
42
43
  this.play();
43
44
  }
44
45
  this.volume = props.volume ?? 1;
45
- this.setVolume(this.volume);
46
+ // Only set volume immediately if media is ready
47
+ if (!this.awaitCanPlay()) {
48
+ this.setVolume(this.volume);
49
+ }
46
50
  }
47
51
  isPlaying() {
48
52
  return this.playing();
@@ -51,16 +55,33 @@ let Media = Media_1 = class Media extends Rect {
51
55
  return this.clampTime(this.time());
52
56
  }
53
57
  getDuration() {
54
- return this.mediaElement().duration;
58
+ try {
59
+ const mElement = this.mediaElement();
60
+ const isVideo = (mElement instanceof HTMLVideoElement);
61
+ const isAudio = (mElement instanceof HTMLAudioElement);
62
+ return (this.isIOS() && (isVideo || isAudio)) ? 2 /** dummy duration for iOS */ : mElement.duration;
63
+ }
64
+ catch (error) {
65
+ // If media element is not ready yet, return a default duration
66
+ return 0;
67
+ }
55
68
  }
56
69
  getVolume() {
57
70
  return this.volume;
58
71
  }
59
72
  getUrl() {
60
- return this.mediaElement().src;
73
+ try {
74
+ return this.mediaElement().src;
75
+ }
76
+ catch (error) {
77
+ // If media element is not ready yet, return the src signal value
78
+ return this.src();
79
+ }
61
80
  }
62
81
  dispose() {
63
- this.pause();
82
+ // Set playing state to false without trying to access media element
83
+ this.playing(false);
84
+ this.time.save();
64
85
  this.remove();
65
86
  super.dispose();
66
87
  }
@@ -68,33 +89,47 @@ let Media = Media_1 = class Media extends Rect {
68
89
  return this.clampTime(this.time()) / this.getDuration();
69
90
  }
70
91
  setCurrentTime(value) {
71
- const media = this.mediaElement();
72
- if (media.readyState < 2)
73
- return;
74
- media.currentTime = value;
75
- this.lastTime = value;
76
- if (media.seeking) {
77
- DependencyContext.collectPromise(new Promise(resolve => {
78
- const listener = () => {
79
- resolve();
80
- media.removeEventListener('seeked', listener);
81
- };
82
- media.addEventListener('seeked', listener);
83
- }));
92
+ try {
93
+ const media = this.mediaElement();
94
+ if (media.readyState < 2)
95
+ return;
96
+ media.currentTime = value;
97
+ this.lastTime = value;
98
+ if (media.seeking) {
99
+ DependencyContext.collectPromise(new Promise(resolve => {
100
+ const listener = () => {
101
+ resolve();
102
+ media.removeEventListener('seeked', listener);
103
+ };
104
+ media.addEventListener('seeked', listener);
105
+ }));
106
+ }
107
+ }
108
+ catch (error) {
109
+ // If media element is not ready yet, just update the lastTime
110
+ this.lastTime = value;
84
111
  }
85
112
  }
86
113
  setVolume(volume) {
87
114
  if (volume < 0) {
88
115
  console.warn(`volumes cannot be negative - the value will be clamped to 0.`);
89
116
  }
90
- const media = this.mediaElement();
91
- media.volume = Math.min(Math.max(volume, 0), 1);
92
- if (volume > 1) {
93
- if (this.allowVolumeAmplificationInPreview()) {
94
- this.amplify(media, volume);
95
- return;
117
+ // Store the volume value
118
+ this.volume = volume;
119
+ try {
120
+ const media = this.mediaElement();
121
+ media.volume = Math.min(Math.max(volume, 0), 1);
122
+ if (volume > 1) {
123
+ if (this.allowVolumeAmplificationInPreview()) {
124
+ this.amplify(media, volume);
125
+ return;
126
+ }
127
+ console.warn(`you have set the volume of node ${this.key} to ${volume} - your video will be exported with the correct volume, but the browser does not support volumes higher than 1 by default. To enable volume amplification in the preview, set the "allowVolumeAmplificationInPreview" of your <Video/> or <Audio/> tag to true. Note that amplification for previews will not work if you use autoplay within the player due to browser autoplay policies: https://developer.chrome.com/blog/autoplay/#webaudio.`);
96
128
  }
97
- console.warn(`you have set the volume of node ${this.key} to ${volume} - your video will be exported with the correct volume, but the browser does not support volumes higher than 1 by default. To enable volume amplification in the preview, set the "allowVolumeAmplificationInPreview" of your <Video/> or <Audio/> tag to true. Note that amplification for previews will not work if you use autoplay within the player due to browser autoplay policies: https://developer.chrome.com/blog/autoplay/#webaudio.`);
129
+ }
130
+ catch (error) {
131
+ // If media element is not ready yet, just store the volume
132
+ // It will be applied when the media becomes available via collectAsyncResources
98
133
  }
99
134
  }
100
135
  amplify(node, volume) {
@@ -148,12 +183,22 @@ let Media = Media_1 = class Media extends Rect {
148
183
  }
149
184
  }
150
185
  scheduleSeek(time) {
151
- this.waitForCanPlay(this.mediaElement(), () => {
152
- const media = this.mediaElement();
153
- // Wait until the media is ready to seek again as
154
- // setting the time before the video doesn't work reliably.
155
- media.currentTime = time;
156
- });
186
+ // Defer the media element access to avoid immediate async property access
187
+ setTimeout(() => {
188
+ try {
189
+ const media = this.mediaElement();
190
+ // Use the existing waitForCanPlay method which handles readiness properly
191
+ this.waitForCanPlay(media, () => {
192
+ // Wait until the media is ready to seek again as
193
+ // setting the time before the video doesn't work reliably.
194
+ media.currentTime = time;
195
+ });
196
+ }
197
+ catch (error) {
198
+ // If media element is not ready yet, retry after a longer delay
199
+ setTimeout(() => this.scheduleSeek(time), 50);
200
+ }
201
+ }, 0);
157
202
  }
158
203
  /**
159
204
  * Waits for the canplay event to be fired before calling onCanPlay.
@@ -163,20 +208,28 @@ let Media = Media_1 = class Media extends Rect {
163
208
  * @returns
164
209
  */
165
210
  waitForCanPlay(media, onCanPlay) {
166
- if (media.readyState >= 2) {
211
+ // Be more strict - require readyState >= 3 (HAVE_FUTURE_DATA) for better reliability
212
+ if (media.readyState >= 3) {
167
213
  onCanPlay();
168
214
  return;
169
215
  }
170
216
  const onCanPlayWrapper = () => {
171
217
  onCanPlay();
172
218
  media.removeEventListener('canplay', onCanPlayWrapper);
219
+ media.removeEventListener('canplaythrough', onCanPlayWrapper);
173
220
  };
174
221
  const onError = () => {
175
222
  const reason = this.getErrorReason(media.error?.code);
176
- console.log(`ERROR: Error loading video: ${this.src()}, ${reason}`);
223
+ const srcValue = this.src();
224
+ console.log(`ERROR: Error loading video: src="${srcValue}", ${reason}`);
225
+ console.log(`Media element src: "${media.src}"`);
177
226
  media.removeEventListener('error', onError);
227
+ media.removeEventListener('canplay', onCanPlayWrapper);
228
+ media.removeEventListener('canplaythrough', onCanPlayWrapper);
178
229
  };
230
+ // Listen for both canplay and canplaythrough events
179
231
  media.addEventListener('canplay', onCanPlayWrapper);
232
+ media.addEventListener('canplaythrough', onCanPlayWrapper);
180
233
  media.addEventListener('error', onError);
181
234
  }
182
235
  /**
@@ -190,17 +243,151 @@ let Media = Media_1 = class Media extends Rect {
190
243
  this.view().playbackState() === PlaybackState.Rendering);
191
244
  }
192
245
  play() {
193
- const time = useThread().time;
194
- const start = time();
195
- const offset = this.time();
196
- const playbackRate = this.playbackRate();
246
+ console.log('=== Media.play() called ===');
247
+ // Set the playing state first
197
248
  this.playing(true);
198
- this.time(() => this.clampTime(offset + (time() - start) * playbackRate));
249
+ // Schedule the actual play operation for when media is ready
250
+ this.schedulePlay();
251
+ }
252
+ schedulePlay() {
253
+ // Prevent recursive calls
254
+ if (this.isSchedulingPlay) {
255
+ return;
256
+ }
257
+ this.isSchedulingPlay = true;
258
+ // Check if thread context is available before accessing it
259
+ let timeFunction = null;
260
+ try {
261
+ const time = useThread().time;
262
+ timeFunction = time;
263
+ }
264
+ catch (error) {
265
+ // Reset flag and use simple play without thread time
266
+ this.isSchedulingPlay = false;
267
+ this.simplePlay();
268
+ return;
269
+ }
270
+ // We need to wait for the media to be ready before we can play it
271
+ // Use a setTimeout to defer the operation and avoid immediate async property access
272
+ setTimeout(() => {
273
+ // Check if we're still supposed to be playing (avoid race conditions)
274
+ const isPlaying = this.playing();
275
+ if (!isPlaying) {
276
+ this.isSchedulingPlay = false;
277
+ return;
278
+ }
279
+ // Add another timeout to further defer media element access
280
+ setTimeout(() => {
281
+ try {
282
+ const media = this.mediaElement();
283
+ // Always use waitForCanPlay to ensure media is ready
284
+ this.waitForCanPlay(media, () => {
285
+ // Double-check we're still playing before calling actuallyPlay
286
+ if (this.playing() && timeFunction) {
287
+ this.actuallyPlay(media, timeFunction);
288
+ }
289
+ // Reset the flag when done
290
+ this.isSchedulingPlay = false;
291
+ });
292
+ }
293
+ catch (error) {
294
+ // Reset flag before retry
295
+ this.isSchedulingPlay = false;
296
+ // If media is not ready yet, retry after a longer delay
297
+ setTimeout(() => this.schedulePlay(), 100);
298
+ }
299
+ }, 10);
300
+ }, 0);
301
+ }
302
+ simplePlay() {
303
+ setTimeout(() => {
304
+ try {
305
+ const media = this.mediaElement();
306
+ // Guard against undefined src
307
+ if (!media.src || media.src.includes('undefined')) {
308
+ return;
309
+ }
310
+ if (media.paused && this.playing()) {
311
+ media.playbackRate = this.playbackRate();
312
+ const playPromise = media.play();
313
+ if (playPromise !== undefined) {
314
+ playPromise.then(() => {
315
+ console.log('Simple play started successfully');
316
+ }).catch(error => {
317
+ if (error.name !== 'AbortError') {
318
+ console.warn('Error in simple play:', error);
319
+ }
320
+ this.playing(false);
321
+ });
322
+ }
323
+ }
324
+ }
325
+ catch (error) {
326
+ // Stop retries for errors
327
+ return;
328
+ }
329
+ }, 10);
330
+ }
331
+ actuallyPlay(media, timeFunction) {
332
+ console.log('=== actuallyPlay called ===');
333
+ console.log('Media element:', media);
334
+ console.log('Media src:', media.src);
335
+ console.log('Media paused:', media.paused);
336
+ console.log('Media readyState:', media.readyState);
337
+ // Make sure we're still supposed to be playing
338
+ if (!this.playing()) {
339
+ console.log('Playing state is false, aborting actuallyPlay');
340
+ return;
341
+ }
342
+ // Set playback rate on media element
343
+ media.playbackRate = this.playbackRate();
344
+ // Ensure the media is ready to play
345
+ if (media.paused) {
346
+ console.log('Media is paused, calling play()');
347
+ // Start playing the media element
348
+ const playPromise = media.play();
349
+ if (playPromise !== undefined) {
350
+ playPromise.then(() => {
351
+ console.log('Media play() promise resolved - should be playing now');
352
+ console.log('Post-play media paused:', media.paused);
353
+ console.log('Post-play media currentTime:', media.currentTime);
354
+ }).catch(error => {
355
+ // Don't warn about AbortError - it's normal when play() is interrupted by pause()
356
+ if (error.name !== 'AbortError') {
357
+ console.warn('Error playing media:', error);
358
+ }
359
+ this.playing(false);
360
+ });
361
+ }
362
+ }
363
+ else {
364
+ console.log('Media is already playing');
365
+ }
366
+ // Set up time synchronization
367
+ const start = timeFunction();
368
+ const offset = media.currentTime;
369
+ // Update time signal
370
+ this.time(() => {
371
+ const newTime = this.clampTime(offset + (timeFunction() - start) * this.playbackRate());
372
+ return newTime;
373
+ });
199
374
  }
200
375
  pause() {
376
+ // Set the playing state first
201
377
  this.playing(false);
202
378
  this.time.save();
203
- this.mediaElement().pause();
379
+ // Try to pause the media element if it's available
380
+ // Use setTimeout to defer access and avoid async property issues
381
+ setTimeout(() => {
382
+ try {
383
+ const media = this.mediaElement();
384
+ media.pause();
385
+ }
386
+ catch (error) {
387
+ // If media element is not ready yet, just update the state
388
+ // The media won't be playing anyway if it's not ready
389
+ }
390
+ }, 0);
204
391
  }
205
392
  clampTime(time) {
206
393
  const duration = this.getDuration();
@@ -212,6 +399,26 @@ let Media = Media_1 = class Media extends Rect {
212
399
  collectAsyncResources() {
213
400
  super.collectAsyncResources();
214
401
  this.seekedMedia();
402
+ // Ensure volume is set when media becomes available
403
+ this.setVolume(this.volume);
404
+ }
405
+ autoPlayBasedOnTwick() {
406
+ // Auto-start/stop playback based on Twick's playback state
407
+ const playbackState = this.view().playbackState();
408
+ // console.log('autoPlayBasedOnTwick called:', {
409
+ // playbackState,
410
+ // currentlyPlaying: this.playing(),
411
+ // shouldAutoPlay: (playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing(),
412
+ // shouldAutoPause: playbackState === PlaybackState.Paused && this.playing()
413
+ // });
414
+ if ((playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing()) {
415
+ console.log('Auto-starting media playback via play() method');
416
+ this.play(); // Call the full play() method instead of just setting playing(true)
417
+ }
418
+ else if (playbackState === PlaybackState.Paused && this.playing()) {
419
+ console.log('Auto-pausing media playback via pause() method');
420
+ this.pause(); // Call the full pause() method
421
+ }
215
422
  }
216
423
  getErrorReason(errCode) {
217
424
  let reason;
@@ -235,9 +442,18 @@ let Media = Media_1 = class Media extends Rect {
235
442
  }
236
443
  return reason;
237
444
  }
445
+ // Helper method to check if running on iOS
446
+ isIOS() {
447
+ if (typeof navigator === 'undefined')
448
+ return false;
449
+ const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) ||
450
+ (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
451
+ return isIos;
452
+ }
238
453
  };
239
454
  Media.amplificationPool = {};
240
455
  __decorate([
456
+ initial(''),
241
457
  signal()
242
458
  ], Media.prototype, "src", void 0);
243
459
  __decorate([
@@ -274,4 +490,4 @@ Media = Media_1 = __decorate([
274
490
  nodeName('Media')
275
491
  ], Media);
276
492
  export { Media };
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBMkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFJdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxT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
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBNkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFKTCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBSy9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJ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
@@ -232,7 +232,7 @@ export declare class Node implements Promisable<Node> {
232
232
  readonly composite: SimpleSignal<boolean, this>;
233
233
  readonly compositeOperation: SimpleSignal<GlobalCompositeOperation, this>;
234
234
  private readonly compositeOverride;
235
- protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | ThreadGenerator | Promisable<any>, void, any>;
235
+ protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void | ThreadGenerator | Promise<any> | Promisable<any>, void, any>;
236
236
  /**
237
237
  * Represents the opacity of this node in the range 0-1.
238
238
  *
@@ -14,7 +14,7 @@ export declare class Path extends Curve {
14
14
  protected childrenBBox(): BBox;
15
15
  protected lineWidthCoefficient(): number;
16
16
  protected processSubpath(path: Path2D, startPoint: Vector2 | null, endPoint: Vector2 | null): void;
17
- protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | import("@twick/core").ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
17
+ protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | import("@twick/core").ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
18
18
  drawOverlay(context: CanvasRenderingContext2D, matrix: DOMMatrix): void;
19
19
  }
20
20
  //# sourceMappingURL=Path.d.ts.map
@@ -98,7 +98,7 @@ export declare class SVG extends Shape {
98
98
  * @param timing - The timing function.
99
99
  */
100
100
  protected generateTransformer(from: Node, to: Node, duration: number, timing: TimingFunction): Generator<ThreadGenerator>;
101
- protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
101
+ protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
102
102
  private wrapperScale;
103
103
  /**
104
104
  * Get the current `SVGDocument`.
@@ -35,6 +35,6 @@ export declare abstract class Shape extends Layout {
35
35
  protected getPath(): Path2D;
36
36
  protected getRipplePath(): Path2D;
37
37
  protected drawRipple(context: CanvasRenderingContext2D): void;
38
- ripple(duration?: number): Generator<void | Promise<any> | import("@twick/core").ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
38
+ ripple(duration?: number): Generator<void | import("@twick/core").ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
39
39
  }
40
40
  //# sourceMappingURL=Shape.d.ts.map
@@ -10,31 +10,31 @@ import { computed, initial, signal } from '../decorators';
10
10
  import { arc, bezierCurveTo, drawLine, drawPivot, lineTo, moveTo, quadraticCurveTo, } from '../utils';
11
11
  import { Curve } from './Curve';
12
12
  import { Knot } from './Knot';
13
- const splineWithInsufficientKnots = `
14
- The spline won't be visible unless you specify at least two knots:
15
-
16
- \`\`\`tsx
17
- <Spline
18
- stroke="#fff"
19
- lineWidth={8}
20
- points={[
21
- [100, 0],
22
- [0, 0],
23
- [0, 100],
24
- ]}
25
- />
26
- \`\`\`
27
-
28
- For more control over the knot handles, you can alternatively provide the knots
29
- as children to the spline using the \`Knot\` component:
30
-
31
- \`\`\`tsx
32
- <Spline stroke="#fff" lineWidth={8}>
33
- <Knot x={100} endHandle={[-50, 0]} />
34
- <Knot />
35
- <Knot y={100} startHandle={[-100, 50]} />
36
- </Spline>
37
- \`\`\`
13
+ const splineWithInsufficientKnots = `
14
+ The spline won't be visible unless you specify at least two knots:
15
+
16
+ \`\`\`tsx
17
+ <Spline
18
+ stroke="#fff"
19
+ lineWidth={8}
20
+ points={[
21
+ [100, 0],
22
+ [0, 0],
23
+ [0, 100],
24
+ ]}
25
+ />
26
+ \`\`\`
27
+
28
+ For more control over the knot handles, you can alternatively provide the knots
29
+ as children to the spline using the \`Knot\` component:
30
+
31
+ \`\`\`tsx
32
+ <Spline stroke="#fff" lineWidth={8}>
33
+ <Knot x={100} endHandle={[-50, 0]} />
34
+ <Knot />
35
+ <Knot y={100} startHandle={[-100, 50]} />
36
+ </Spline>
37
+ \`\`\`
38
38
  `;
39
39
  /**
40
40
  * A node for drawing a smooth line through a number of points.
@@ -65,6 +65,5 @@ export declare class Video extends Media {
65
65
  remove(): this;
66
66
  private handleUnknownFileType;
67
67
  private detectFileType;
68
- waitForMetadata(): Generator<void, void, unknown>;
69
68
  }
70
69
  //# sourceMappingURL=Video.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAG9B,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;CACzD;AAED,qBACa,KAAM,SAAQ,KAAK;IAC9B;;;;;;OAMG;IACH,SAEwB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;;OAQG;IACH,SAEwB,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,SAEwB,OAAO,EAAE,YAAY,CAC3C,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,EAChC,IAAI,CACL,CAAC;IAEK,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CACvD;IACZ,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAEb;gBAEV,KAAK,EAAE,UAAU;cAIjB,WAAW,IAAI,iBAAiB,CAAC,aAAa,CAAC;IAalE,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,OAAO,CAAC,KAAK;IAoFb,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAoBzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAgC7C,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;cAE/B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;cAcjD,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;cA8BzC,YAAY;cA4CH,IAAI,CAAC,OAAO,EAAE,wBAAwB;cAwB5C,SAAS;IAQZ,MAAM;IAMtB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;IAmEd,eAAe;CAcxB"}
1
+ {"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;CACzD;AAED,qBACa,KAAM,SAAQ,KAAK;IAC9B;;;;;;OAMG;IACH,SAEwB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;;OAQG;IACH,SAEwB,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,SAEwB,OAAO,EAAE,YAAY,CAC3C,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,EAChC,IAAI,CACL,CAAC;IAEK,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CACvD;IACZ,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAEb;gBAEV,KAAK,EAAE,UAAU;cAIjB,WAAW,IAAI,iBAAiB,CAAC,aAAa,CAAC;IAalE,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,OAAO,CAAC,KAAK;IAuFb,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAoBzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAiC7C,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;cAE/B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;cAcjD,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;cA8BzC,YAAY;cA4CH,IAAI,CAAC,OAAO,EAAE,wBAAwB;cA2B5C,SAAS;IAgBZ,MAAM;IAMtB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;CAkEvB"}