@editframe/elements 0.20.4-beta.0 → 0.21.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/DelayedLoadingState.js +0 -27
  2. package/dist/EF_FRAMEGEN.d.ts +5 -3
  3. package/dist/EF_FRAMEGEN.js +50 -11
  4. package/dist/_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js +7 -0
  5. package/dist/elements/ContextProxiesController.js +2 -22
  6. package/dist/elements/EFAudio.js +4 -8
  7. package/dist/elements/EFCaptions.js +59 -84
  8. package/dist/elements/EFImage.js +5 -6
  9. package/dist/elements/EFMedia/AssetIdMediaEngine.js +2 -4
  10. package/dist/elements/EFMedia/AssetMediaEngine.js +35 -30
  11. package/dist/elements/EFMedia/BaseMediaEngine.js +57 -73
  12. package/dist/elements/EFMedia/BufferedSeekingInput.js +134 -76
  13. package/dist/elements/EFMedia/JitMediaEngine.js +9 -19
  14. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +3 -6
  15. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +1 -1
  16. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +1 -1
  17. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +6 -5
  18. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +1 -3
  19. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +1 -1
  20. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +1 -1
  21. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +1 -1
  22. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +4 -16
  23. package/dist/elements/EFMedia/shared/BufferUtils.js +2 -15
  24. package/dist/elements/EFMedia/shared/GlobalInputCache.js +0 -24
  25. package/dist/elements/EFMedia/shared/PrecisionUtils.js +0 -21
  26. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +0 -17
  27. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +1 -10
  28. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.d.ts +29 -0
  29. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +32 -0
  30. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +1 -15
  31. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js +1 -7
  32. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js +8 -5
  33. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js +12 -13
  34. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js +1 -1
  35. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js +134 -70
  36. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +7 -11
  37. package/dist/elements/EFMedia.js +26 -24
  38. package/dist/elements/EFSourceMixin.js +5 -7
  39. package/dist/elements/EFSurface.js +6 -9
  40. package/dist/elements/EFTemporal.js +19 -37
  41. package/dist/elements/EFThumbnailStrip.js +16 -59
  42. package/dist/elements/EFTimegroup.js +95 -90
  43. package/dist/elements/EFVideo.d.ts +6 -2
  44. package/dist/elements/EFVideo.js +142 -107
  45. package/dist/elements/EFWaveform.js +18 -27
  46. package/dist/elements/SampleBuffer.js +2 -5
  47. package/dist/elements/TargetController.js +3 -3
  48. package/dist/elements/durationConverter.js +4 -4
  49. package/dist/elements/updateAnimations.js +14 -35
  50. package/dist/gui/ContextMixin.js +23 -52
  51. package/dist/gui/EFConfiguration.js +7 -7
  52. package/dist/gui/EFControls.js +5 -5
  53. package/dist/gui/EFFilmstrip.js +77 -98
  54. package/dist/gui/EFFitScale.js +5 -6
  55. package/dist/gui/EFFocusOverlay.js +4 -4
  56. package/dist/gui/EFPreview.js +4 -4
  57. package/dist/gui/EFScrubber.js +9 -9
  58. package/dist/gui/EFTimeDisplay.js +5 -5
  59. package/dist/gui/EFToggleLoop.js +4 -4
  60. package/dist/gui/EFTogglePlay.js +5 -5
  61. package/dist/gui/EFWorkbench.js +5 -5
  62. package/dist/gui/TWMixin2.js +1 -1
  63. package/dist/index.d.ts +1 -0
  64. package/dist/otel/BridgeSpanExporter.d.ts +13 -0
  65. package/dist/otel/BridgeSpanExporter.js +87 -0
  66. package/dist/otel/setupBrowserTracing.d.ts +12 -0
  67. package/dist/otel/setupBrowserTracing.js +30 -0
  68. package/dist/otel/tracingHelpers.d.ts +34 -0
  69. package/dist/otel/tracingHelpers.js +113 -0
  70. package/dist/transcoding/cache/RequestDeduplicator.js +0 -21
  71. package/dist/transcoding/cache/URLTokenDeduplicator.js +1 -21
  72. package/dist/transcoding/utils/UrlGenerator.js +2 -19
  73. package/dist/utils/LRUCache.js +6 -53
  74. package/package.json +10 -2
  75. package/src/elements/EFCaptions.browsertest.ts +2 -0
  76. package/src/elements/EFMedia/AssetMediaEngine.ts +65 -37
  77. package/src/elements/EFMedia/BaseMediaEngine.ts +110 -52
  78. package/src/elements/EFMedia/BufferedSeekingInput.ts +218 -101
  79. package/src/elements/EFMedia/audioTasks/makeAudioInputTask.ts +7 -3
  80. package/src/elements/EFMedia/videoTasks/MainVideoInputCache.ts +76 -0
  81. package/src/elements/EFMedia/videoTasks/makeScrubVideoInputTask.ts +16 -10
  82. package/src/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.ts +7 -1
  83. package/src/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.ts +222 -116
  84. package/src/elements/EFMedia.ts +16 -1
  85. package/src/elements/EFTimegroup.browsertest.ts +10 -8
  86. package/src/elements/EFTimegroup.ts +164 -76
  87. package/src/elements/EFVideo.browsertest.ts +19 -27
  88. package/src/elements/EFVideo.ts +203 -101
  89. package/src/otel/BridgeSpanExporter.ts +150 -0
  90. package/src/otel/setupBrowserTracing.ts +68 -0
  91. package/src/otel/tracingHelpers.ts +251 -0
  92. package/types.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { focusContext } from "./focusContext.js";
2
3
  import { focusedElementContext } from "./focusedElementContext.js";
3
4
  import { loopContext, playingContext } from "./playingContext.js";
@@ -14,7 +15,6 @@ import { msToTimeCode } from "../msToTimeCode.js";
14
15
  import { consume } from "@lit/context";
15
16
  import { LitElement, css, html, nothing } from "lit";
16
17
  import { customElement, eventOptions, property, state } from "lit/decorators.js";
17
- import _decorate from "@oxc-project/runtime/helpers/decorate";
18
18
  import { createRef, ref } from "lit/directives/ref.js";
19
19
  import { styleMap } from "lit/directives/style-map.js";
20
20
  var ElementFilmstripController = class {
@@ -33,7 +33,7 @@ var ElementFilmstripController = class {
33
33
  this.filmstrip.requestUpdate();
34
34
  }
35
35
  };
36
- const CommonEffectKeys = new Set([
36
+ var CommonEffectKeys = new Set([
37
37
  "offset",
38
38
  "easing",
39
39
  "composite",
@@ -98,15 +98,13 @@ var FilmstripItem = class extends TWMixin(LitElement) {
98
98
  return html``;
99
99
  }
100
100
  animations() {
101
- const animations = this.element.getAnimations();
102
- return animations.map((animation) => {
101
+ return this.element.getAnimations().map((animation) => {
103
102
  const effect = animation.effect;
104
103
  if (!(effect instanceof KeyframeEffect)) return nothing;
105
104
  const start = effect.getTiming().delay ?? 0;
106
105
  const duration = effect.getTiming().duration;
107
106
  if (duration === null) return nothing;
108
- const keyframes = effect.getKeyframes();
109
- const firstKeyframe = keyframes[0];
107
+ const firstKeyframe = effect.getKeyframes()[0];
110
108
  if (!firstKeyframe) return nothing;
111
109
  const properties = new Set(Object.keys(firstKeyframe));
112
110
  for (const key of CommonEffectKeys) properties.delete(key);
@@ -136,35 +134,34 @@ var FilmstripItem = class extends TWMixin(LitElement) {
136
134
  super.update(changedProperties);
137
135
  }
138
136
  };
139
- _decorate([consume({
137
+ __decorate([consume({
140
138
  context: focusContext,
141
139
  subscribe: true
142
140
  })], FilmstripItem.prototype, "focusContext", void 0);
143
- _decorate([consume({
141
+ __decorate([consume({
144
142
  context: focusedElementContext,
145
143
  subscribe: true
146
144
  })], FilmstripItem.prototype, "focusedElement", void 0);
147
- _decorate([property({
145
+ __decorate([property({
148
146
  type: Object,
149
147
  attribute: false
150
148
  })], FilmstripItem.prototype, "element", void 0);
151
- _decorate([property({ type: Number })], FilmstripItem.prototype, "pixelsPerMs", void 0);
152
- let EFAudioFilmstrip = class EFAudioFilmstrip$1 extends FilmstripItem {
149
+ __decorate([property({ type: Number })], FilmstripItem.prototype, "pixelsPerMs", void 0);
150
+ var EFAudioFilmstrip = class EFAudioFilmstrip$1 extends FilmstripItem {
153
151
  contents() {
154
152
  return html``;
155
153
  }
156
154
  };
157
- EFAudioFilmstrip = _decorate([customElement("ef-audio-filmstrip")], EFAudioFilmstrip);
158
- let EFVideoFilmstrip = class EFVideoFilmstrip$1 extends FilmstripItem {
155
+ EFAudioFilmstrip = __decorate([customElement("ef-audio-filmstrip")], EFAudioFilmstrip);
156
+ var EFVideoFilmstrip = class EFVideoFilmstrip$1 extends FilmstripItem {
159
157
  contents() {
160
158
  return html` 📼 `;
161
159
  }
162
160
  };
163
- EFVideoFilmstrip = _decorate([customElement("ef-video-filmstrip")], EFVideoFilmstrip);
164
- let EFCaptionsFilmstrip = class EFCaptionsFilmstrip$1 extends FilmstripItem {
161
+ EFVideoFilmstrip = __decorate([customElement("ef-video-filmstrip")], EFVideoFilmstrip);
162
+ var EFCaptionsFilmstrip = class EFCaptionsFilmstrip$1 extends FilmstripItem {
165
163
  render() {
166
- const captions = this.element;
167
- const captionsData = captions.unifiedCaptionsDataTask.value;
164
+ const captionsData = this.element.unifiedCaptionsDataTask.value;
168
165
  return html`<div style=${styleMap(this.gutterStyles)}>
169
166
  <div
170
167
  class="bg-slate-300 relative"
@@ -190,10 +187,7 @@ let EFCaptionsFilmstrip = class EFCaptionsFilmstrip$1 extends FilmstripItem {
190
187
  renderCaptionsData(captionsData) {
191
188
  if (!captionsData) return html``;
192
189
  const captions = this.element;
193
- const rootTimegroup = captions.rootTimegroup;
194
- const currentTimeMs = rootTimegroup?.currentTimeMs || 0;
195
- const captionsLocalTimeMs = currentTimeMs - captions.startTimeMs;
196
- const captionsLocalTimeSec = captionsLocalTimeMs / 1e3;
190
+ const captionsLocalTimeSec = ((captions.rootTimegroup?.currentTimeMs || 0) - captions.startTimeMs) / 1e3;
197
191
  const segmentElements = captionsData.segments.map((segment) => {
198
192
  const isActive = captionsLocalTimeSec >= segment.start && captionsLocalTimeSec < segment.end;
199
193
  return html`<div
@@ -215,8 +209,8 @@ let EFCaptionsFilmstrip = class EFCaptionsFilmstrip$1 extends FilmstripItem {
215
209
  return super.renderChildren();
216
210
  }
217
211
  };
218
- EFCaptionsFilmstrip = _decorate([customElement("ef-captions-filmstrip")], EFCaptionsFilmstrip);
219
- let EFCaptionsActiveWordFilmstrip = class EFCaptionsActiveWordFilmstrip$1 extends FilmstripItem {
212
+ EFCaptionsFilmstrip = __decorate([customElement("ef-captions-filmstrip")], EFCaptionsFilmstrip);
213
+ var EFCaptionsActiveWordFilmstrip = class EFCaptionsActiveWordFilmstrip$1 extends FilmstripItem {
220
214
  get captionsTrackStyles() {
221
215
  const parentCaptions = this.element.closest("ef-captions");
222
216
  return {
@@ -233,10 +227,7 @@ let EFCaptionsActiveWordFilmstrip = class EFCaptionsActiveWordFilmstrip$1 extend
233
227
  🗣️ Active Word
234
228
  </div>
235
229
  </div>`;
236
- const rootTimegroup = parentCaptions.rootTimegroup;
237
- const currentTimeMs = rootTimegroup?.currentTimeMs || 0;
238
- const captionsLocalTimeMs = currentTimeMs - parentCaptions.startTimeMs;
239
- const captionsLocalTimeSec = captionsLocalTimeMs / 1e3;
230
+ const captionsLocalTimeSec = ((parentCaptions.rootTimegroup?.currentTimeMs || 0) - parentCaptions.startTimeMs) / 1e3;
240
231
  return html`<div style=${styleMap(this.captionsTrackStyles)}>
241
232
  <div class="bg-slate-300 relative border border-slate-500 h-[1.1rem] mb-[1px] w-full">
242
233
  ${captionsData.word_segments.map((word) => {
@@ -258,8 +249,8 @@ let EFCaptionsActiveWordFilmstrip = class EFCaptionsActiveWordFilmstrip$1 extend
258
249
  </div>`;
259
250
  }
260
251
  };
261
- EFCaptionsActiveWordFilmstrip = _decorate([customElement("ef-captions-active-word-filmstrip")], EFCaptionsActiveWordFilmstrip);
262
- let EFCaptionsSegmentFilmstrip = class EFCaptionsSegmentFilmstrip$1 extends FilmstripItem {
252
+ EFCaptionsActiveWordFilmstrip = __decorate([customElement("ef-captions-active-word-filmstrip")], EFCaptionsActiveWordFilmstrip);
253
+ var EFCaptionsSegmentFilmstrip = class EFCaptionsSegmentFilmstrip$1 extends FilmstripItem {
263
254
  get captionsTrackStyles() {
264
255
  const parentCaptions = this.element.closest("ef-captions");
265
256
  return {
@@ -276,10 +267,7 @@ let EFCaptionsSegmentFilmstrip = class EFCaptionsSegmentFilmstrip$1 extends Film
276
267
  📄 Segment
277
268
  </div>
278
269
  </div>`;
279
- const rootTimegroup = parentCaptions.rootTimegroup;
280
- const currentTimeMs = rootTimegroup?.currentTimeMs || 0;
281
- const captionsLocalTimeMs = currentTimeMs - parentCaptions.startTimeMs;
282
- const captionsLocalTimeSec = captionsLocalTimeMs / 1e3;
270
+ const captionsLocalTimeSec = ((parentCaptions.rootTimegroup?.currentTimeMs || 0) - parentCaptions.startTimeMs) / 1e3;
283
271
  return html`<div style=${styleMap(this.captionsTrackStyles)}>
284
272
  <div class="bg-slate-300 relative border border-slate-500 h-[1.1rem] mb-[1px] w-full">
285
273
  ${captionsData.segments.map((segment) => {
@@ -301,8 +289,8 @@ let EFCaptionsSegmentFilmstrip = class EFCaptionsSegmentFilmstrip$1 extends Film
301
289
  </div>`;
302
290
  }
303
291
  };
304
- EFCaptionsSegmentFilmstrip = _decorate([customElement("ef-captions-segment-filmstrip")], EFCaptionsSegmentFilmstrip);
305
- let EFCaptionsBeforeWordFilmstrip = class EFCaptionsBeforeWordFilmstrip$1 extends FilmstripItem {
292
+ EFCaptionsSegmentFilmstrip = __decorate([customElement("ef-captions-segment-filmstrip")], EFCaptionsSegmentFilmstrip);
293
+ var EFCaptionsBeforeWordFilmstrip = class EFCaptionsBeforeWordFilmstrip$1 extends FilmstripItem {
306
294
  get captionsTrackStyles() {
307
295
  const parentCaptions = this.element.closest("ef-captions");
308
296
  return {
@@ -319,10 +307,7 @@ let EFCaptionsBeforeWordFilmstrip = class EFCaptionsBeforeWordFilmstrip$1 extend
319
307
  ⬅️ Before
320
308
  </div>
321
309
  </div>`;
322
- const rootTimegroup = parentCaptions.rootTimegroup;
323
- const currentTimeMs = rootTimegroup?.currentTimeMs || 0;
324
- const captionsLocalTimeMs = currentTimeMs - parentCaptions.startTimeMs;
325
- const captionsLocalTimeSec = captionsLocalTimeMs / 1e3;
310
+ const captionsLocalTimeSec = ((parentCaptions.rootTimegroup?.currentTimeMs || 0) - parentCaptions.startTimeMs) / 1e3;
326
311
  return html`<div style=${styleMap(this.captionsTrackStyles)}>
327
312
  <div class="bg-slate-300 relative border border-slate-500 h-[1.1rem] mb-[1px] w-full">
328
313
  ${captionsData.word_segments.map((word) => {
@@ -344,8 +329,8 @@ let EFCaptionsBeforeWordFilmstrip = class EFCaptionsBeforeWordFilmstrip$1 extend
344
329
  </div>`;
345
330
  }
346
331
  };
347
- EFCaptionsBeforeWordFilmstrip = _decorate([customElement("ef-captions-before-word-filmstrip")], EFCaptionsBeforeWordFilmstrip);
348
- let EFCaptionsAfterWordFilmstrip = class EFCaptionsAfterWordFilmstrip$1 extends FilmstripItem {
332
+ EFCaptionsBeforeWordFilmstrip = __decorate([customElement("ef-captions-before-word-filmstrip")], EFCaptionsBeforeWordFilmstrip);
333
+ var EFCaptionsAfterWordFilmstrip = class EFCaptionsAfterWordFilmstrip$1 extends FilmstripItem {
349
334
  get captionsTrackStyles() {
350
335
  const parentCaptions = this.element.closest("ef-captions");
351
336
  return {
@@ -362,10 +347,7 @@ let EFCaptionsAfterWordFilmstrip = class EFCaptionsAfterWordFilmstrip$1 extends
362
347
  ➡️ After
363
348
  </div>
364
349
  </div>`;
365
- const rootTimegroup = parentCaptions.rootTimegroup;
366
- const currentTimeMs = rootTimegroup?.currentTimeMs || 0;
367
- const captionsLocalTimeMs = currentTimeMs - parentCaptions.startTimeMs;
368
- const captionsLocalTimeSec = captionsLocalTimeMs / 1e3;
350
+ const captionsLocalTimeSec = ((parentCaptions.rootTimegroup?.currentTimeMs || 0) - parentCaptions.startTimeMs) / 1e3;
369
351
  return html`<div style=${styleMap(this.captionsTrackStyles)}>
370
352
  <div class="bg-slate-300 relative border border-slate-500 h-[1.1rem] mb-[1px] w-full">
371
353
  ${captionsData.word_segments.map((word) => {
@@ -387,8 +369,8 @@ let EFCaptionsAfterWordFilmstrip = class EFCaptionsAfterWordFilmstrip$1 extends
387
369
  </div>`;
388
370
  }
389
371
  };
390
- EFCaptionsAfterWordFilmstrip = _decorate([customElement("ef-captions-after-word-filmstrip")], EFCaptionsAfterWordFilmstrip);
391
- let EFWaveformFilmstrip = class EFWaveformFilmstrip$1 extends FilmstripItem {
372
+ EFCaptionsAfterWordFilmstrip = __decorate([customElement("ef-captions-after-word-filmstrip")], EFCaptionsAfterWordFilmstrip);
373
+ var EFWaveformFilmstrip = class EFWaveformFilmstrip$1 extends FilmstripItem {
392
374
  contents() {
393
375
  return html` 🌊 `;
394
376
  }
@@ -396,14 +378,14 @@ let EFWaveformFilmstrip = class EFWaveformFilmstrip$1 extends FilmstripItem {
396
378
  return nothing;
397
379
  }
398
380
  };
399
- EFWaveformFilmstrip = _decorate([customElement("ef-waveform-filmstrip")], EFWaveformFilmstrip);
400
- let EFImageFilmstrip = class EFImageFilmstrip$1 extends FilmstripItem {
381
+ EFWaveformFilmstrip = __decorate([customElement("ef-waveform-filmstrip")], EFWaveformFilmstrip);
382
+ var EFImageFilmstrip = class EFImageFilmstrip$1 extends FilmstripItem {
401
383
  contents() {
402
384
  return html` 🖼️ `;
403
385
  }
404
386
  };
405
- EFImageFilmstrip = _decorate([customElement("ef-image-filmstrip")], EFImageFilmstrip);
406
- let EFTimegroupFilmstrip = class EFTimegroupFilmstrip$1 extends FilmstripItem {
387
+ EFImageFilmstrip = __decorate([customElement("ef-image-filmstrip")], EFImageFilmstrip);
388
+ var EFTimegroupFilmstrip = class EFTimegroupFilmstrip$1 extends FilmstripItem {
407
389
  contents() {
408
390
  return html`
409
391
  <span>TIME GROUP</span>
@@ -412,8 +394,8 @@ let EFTimegroupFilmstrip = class EFTimegroupFilmstrip$1 extends FilmstripItem {
412
394
  `;
413
395
  }
414
396
  };
415
- EFTimegroupFilmstrip = _decorate([customElement("ef-timegroup-filmstrip")], EFTimegroupFilmstrip);
416
- let EFHTMLFilmstrip = class EFHTMLFilmstrip$1 extends FilmstripItem {
397
+ EFTimegroupFilmstrip = __decorate([customElement("ef-timegroup-filmstrip")], EFTimegroupFilmstrip);
398
+ var EFHTMLFilmstrip = class EFHTMLFilmstrip$1 extends FilmstripItem {
417
399
  contents() {
418
400
  return html`
419
401
  <span>${this.element.tagName}</span>
@@ -421,8 +403,8 @@ let EFHTMLFilmstrip = class EFHTMLFilmstrip$1 extends FilmstripItem {
421
403
  `;
422
404
  }
423
405
  };
424
- EFHTMLFilmstrip = _decorate([customElement("ef-html-filmstrip")], EFHTMLFilmstrip);
425
- let EFHierarchyItem = class EFHierarchyItem$1 extends TWMixin(LitElement) {
406
+ EFHTMLFilmstrip = __decorate([customElement("ef-html-filmstrip")], EFHTMLFilmstrip);
407
+ var EFHierarchyItem = class EFHierarchyItem$1 extends TWMixin(LitElement) {
426
408
  constructor(..._args2) {
427
409
  super(..._args2);
428
410
  this.element = new EFTimegroup();
@@ -464,17 +446,17 @@ let EFHierarchyItem = class EFHierarchyItem$1 extends TWMixin(LitElement) {
464
446
  return renderHierarchyChildren(Array.from(this.element.children));
465
447
  }
466
448
  };
467
- _decorate([property({
449
+ __decorate([property({
468
450
  type: Object,
469
451
  attribute: false
470
452
  })], EFHierarchyItem.prototype, "element", void 0);
471
- _decorate([consume({ context: focusContext })], EFHierarchyItem.prototype, "focusContext", void 0);
472
- _decorate([consume({
453
+ __decorate([consume({ context: focusContext })], EFHierarchyItem.prototype, "focusContext", void 0);
454
+ __decorate([consume({
473
455
  context: focusedElementContext,
474
456
  subscribe: true
475
457
  })], EFHierarchyItem.prototype, "focusedElement", void 0);
476
- EFHierarchyItem = _decorate([customElement("ef-hierarchy-item")], EFHierarchyItem);
477
- let EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem$1 extends EFHierarchyItem {
458
+ EFHierarchyItem = __decorate([customElement("ef-hierarchy-item")], EFHierarchyItem);
459
+ var EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem$1 extends EFHierarchyItem {
478
460
  get icon() {
479
461
  return "🕒";
480
462
  }
@@ -482,8 +464,8 @@ let EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem$1 extends EFHierar
482
464
  return this.element.mode ?? "(no mode)";
483
465
  }
484
466
  };
485
- EFTimegroupHierarchyItem = _decorate([customElement("ef-timegroup-hierarchy-item")], EFTimegroupHierarchyItem);
486
- let EFAudioHierarchyItem = class EFAudioHierarchyItem$1 extends EFHierarchyItem {
467
+ EFTimegroupHierarchyItem = __decorate([customElement("ef-timegroup-hierarchy-item")], EFTimegroupHierarchyItem);
468
+ var EFAudioHierarchyItem = class EFAudioHierarchyItem$1 extends EFHierarchyItem {
487
469
  get icon() {
488
470
  return "🔊";
489
471
  }
@@ -491,8 +473,8 @@ let EFAudioHierarchyItem = class EFAudioHierarchyItem$1 extends EFHierarchyItem
491
473
  return this.element.src ?? "(no src)";
492
474
  }
493
475
  };
494
- EFAudioHierarchyItem = _decorate([customElement("ef-audio-hierarchy-item")], EFAudioHierarchyItem);
495
- let EFVideoHierarchyItem = class EFVideoHierarchyItem$1 extends EFHierarchyItem {
476
+ EFAudioHierarchyItem = __decorate([customElement("ef-audio-hierarchy-item")], EFAudioHierarchyItem);
477
+ var EFVideoHierarchyItem = class EFVideoHierarchyItem$1 extends EFHierarchyItem {
496
478
  get icon() {
497
479
  return "📼";
498
480
  }
@@ -500,20 +482,20 @@ let EFVideoHierarchyItem = class EFVideoHierarchyItem$1 extends EFHierarchyItem
500
482
  return this.element.src ?? "(no src)";
501
483
  }
502
484
  };
503
- EFVideoHierarchyItem = _decorate([customElement("ef-video-hierarchy-item")], EFVideoHierarchyItem);
504
- let EFCaptionsHierarchyItem = class EFCaptionsHierarchyItem$1 extends EFHierarchyItem {
485
+ EFVideoHierarchyItem = __decorate([customElement("ef-video-hierarchy-item")], EFVideoHierarchyItem);
486
+ var EFCaptionsHierarchyItem = class EFCaptionsHierarchyItem$1 extends EFHierarchyItem {
505
487
  get icon() {
506
488
  return "📝 Captions";
507
489
  }
508
490
  };
509
- EFCaptionsHierarchyItem = _decorate([customElement("ef-captions-hierarchy-item")], EFCaptionsHierarchyItem);
510
- let EFCaptionsActiveWordHierarchyItem = class EFCaptionsActiveWordHierarchyItem$1 extends EFHierarchyItem {
491
+ EFCaptionsHierarchyItem = __decorate([customElement("ef-captions-hierarchy-item")], EFCaptionsHierarchyItem);
492
+ var EFCaptionsActiveWordHierarchyItem = class EFCaptionsActiveWordHierarchyItem$1 extends EFHierarchyItem {
511
493
  get icon() {
512
494
  return "🗣️ Active Word";
513
495
  }
514
496
  };
515
- EFCaptionsActiveWordHierarchyItem = _decorate([customElement("ef-captions-active-word-hierarchy-item")], EFCaptionsActiveWordHierarchyItem);
516
- let EFWaveformHierarchyItem = class EFWaveformHierarchyItem$1 extends EFHierarchyItem {
497
+ EFCaptionsActiveWordHierarchyItem = __decorate([customElement("ef-captions-active-word-hierarchy-item")], EFCaptionsActiveWordHierarchyItem);
498
+ var EFWaveformHierarchyItem = class EFWaveformHierarchyItem$1 extends EFHierarchyItem {
517
499
  get icon() {
518
500
  return "🌊";
519
501
  }
@@ -521,8 +503,8 @@ let EFWaveformHierarchyItem = class EFWaveformHierarchyItem$1 extends EFHierarch
521
503
  return nothing;
522
504
  }
523
505
  };
524
- EFWaveformHierarchyItem = _decorate([customElement("ef-waveform-hierarchy-item")], EFWaveformHierarchyItem);
525
- let EFImageHierarchyItem = class EFImageHierarchyItem$1 extends EFHierarchyItem {
506
+ EFWaveformHierarchyItem = __decorate([customElement("ef-waveform-hierarchy-item")], EFWaveformHierarchyItem);
507
+ var EFImageHierarchyItem = class EFImageHierarchyItem$1 extends EFHierarchyItem {
526
508
  get icon() {
527
509
  return "🖼️";
528
510
  }
@@ -530,14 +512,14 @@ let EFImageHierarchyItem = class EFImageHierarchyItem$1 extends EFHierarchyItem
530
512
  return this.element.src ?? "(no src)";
531
513
  }
532
514
  };
533
- EFImageHierarchyItem = _decorate([customElement("ef-image-hierarchy-item")], EFImageHierarchyItem);
534
- let EFHTMLHierarchyItem = class EFHTMLHierarchyItem$1 extends EFHierarchyItem {
515
+ EFImageHierarchyItem = __decorate([customElement("ef-image-hierarchy-item")], EFImageHierarchyItem);
516
+ var EFHTMLHierarchyItem = class EFHTMLHierarchyItem$1 extends EFHierarchyItem {
535
517
  get icon() {
536
518
  return html`<code>${`<${this.element.tagName.toLowerCase()}>`}</code>`;
537
519
  }
538
520
  };
539
- EFHTMLHierarchyItem = _decorate([customElement("ef-html-hierarchy-item")], EFHTMLHierarchyItem);
540
- const renderHierarchyChildren = (children) => {
521
+ EFHTMLHierarchyItem = __decorate([customElement("ef-html-hierarchy-item")], EFHTMLHierarchyItem);
522
+ var renderHierarchyChildren = (children) => {
541
523
  return children.map((child) => {
542
524
  if (child instanceof HTMLElement && child.dataset?.efHidden) return nothing;
543
525
  if (child instanceof EFTimegroup) return html`<ef-timegroup-hierarchy-item
@@ -566,7 +548,7 @@ const renderHierarchyChildren = (children) => {
566
548
  ></ef-html-hierarchy-item>`;
567
549
  });
568
550
  };
569
- const renderFilmstripChildren = (children, pixelsPerMs) => {
551
+ var renderFilmstripChildren = (children, pixelsPerMs) => {
570
552
  return children.map((child) => {
571
553
  if (child instanceof HTMLElement && child.dataset?.efHidden) return nothing;
572
554
  if (child instanceof EFTimegroup) return html`<ef-timegroup-filmstrip
@@ -616,7 +598,7 @@ const renderFilmstripChildren = (children, pixelsPerMs) => {
616
598
  ></ef-html-filmstrip>`;
617
599
  });
618
600
  };
619
- let EFFilmstrip = class EFFilmstrip$1 extends TWMixin(LitElement) {
601
+ var EFFilmstrip = class EFFilmstrip$1 extends TWMixin(LitElement) {
620
602
  constructor(..._args3) {
621
603
  super(..._args3);
622
604
  this.pixelsPerMs = .04;
@@ -668,9 +650,7 @@ let EFFilmstrip = class EFFilmstrip$1 extends TWMixin(LitElement) {
668
650
  #handleKeyPress = (event) => {
669
651
  if (event.key === " ") {
670
652
  const [target] = event.composedPath();
671
- const interactiveSelector = "input, textarea, button, select, a, [contenteditable]";
672
- const closestInteractive = target?.closest(interactiveSelector);
673
- if (closestInteractive) return;
653
+ if (target?.closest("input, textarea, button, select, a, [contenteditable]")) return;
674
654
  event.preventDefault();
675
655
  if (this.#contextElement) this.#contextElement.playing = !this.#contextElement.playing;
676
656
  }
@@ -707,8 +687,7 @@ let EFFilmstrip = class EFFilmstrip$1 extends TWMixin(LitElement) {
707
687
  if (!gutter) return;
708
688
  const rect = gutter.getBoundingClientRect();
709
689
  if (this.targetTimegroup) {
710
- const layerX = e.pageX - rect.left + gutter.scrollLeft;
711
- const scrubTimeMs = layerX / this.pixelsPerMs;
690
+ const scrubTimeMs = (e.pageX - rect.left + gutter.scrollLeft) / this.pixelsPerMs;
712
691
  this.targetTimegroup.currentTimeMs = scrubTimeMs;
713
692
  }
714
693
  }
@@ -816,32 +795,32 @@ let EFFilmstrip = class EFFilmstrip$1 extends TWMixin(LitElement) {
816
795
  super.willUpdate(changedProperties);
817
796
  }
818
797
  };
819
- _decorate([property({ type: Number })], EFFilmstrip.prototype, "pixelsPerMs", void 0);
820
- _decorate([state()], EFFilmstrip.prototype, "scrubbing", void 0);
821
- _decorate([state()], EFFilmstrip.prototype, "timelineScrolltop", void 0);
822
- _decorate([consume({
798
+ __decorate([property({ type: Number })], EFFilmstrip.prototype, "pixelsPerMs", void 0);
799
+ __decorate([state()], EFFilmstrip.prototype, "scrubbing", void 0);
800
+ __decorate([state()], EFFilmstrip.prototype, "timelineScrolltop", void 0);
801
+ __decorate([consume({
823
802
  context: playingContext,
824
803
  subscribe: true
825
804
  }), state()], EFFilmstrip.prototype, "playing", void 0);
826
- _decorate([consume({
805
+ __decorate([consume({
827
806
  context: loopContext,
828
807
  subscribe: true
829
808
  }), state()], EFFilmstrip.prototype, "loop", void 0);
830
- _decorate([state()], EFFilmstrip.prototype, "currentTimeMs", void 0);
831
- _decorate([property({
809
+ __decorate([state()], EFFilmstrip.prototype, "currentTimeMs", void 0);
810
+ __decorate([property({
832
811
  type: Boolean,
833
812
  reflect: true,
834
813
  attribute: "auto-scale"
835
814
  })], EFFilmstrip.prototype, "autoScale", void 0);
836
- _decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "syncGutterScroll", null);
837
- _decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "syncHierarchyScroll", null);
838
- _decorate([eventOptions({ capture: false })], EFFilmstrip.prototype, "scrub", null);
839
- _decorate([eventOptions({ capture: false })], EFFilmstrip.prototype, "startScrub", null);
840
- _decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "scrollScrub", null);
841
- _decorate([property({ type: String })], EFFilmstrip.prototype, "target", void 0);
842
- _decorate([consume({
815
+ __decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "syncGutterScroll", null);
816
+ __decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "syncHierarchyScroll", null);
817
+ __decorate([eventOptions({ capture: false })], EFFilmstrip.prototype, "scrub", null);
818
+ __decorate([eventOptions({ capture: false })], EFFilmstrip.prototype, "startScrub", null);
819
+ __decorate([eventOptions({ passive: false })], EFFilmstrip.prototype, "scrollScrub", null);
820
+ __decorate([property({ type: String })], EFFilmstrip.prototype, "target", void 0);
821
+ __decorate([consume({
843
822
  context: targetTimegroupContext,
844
823
  subscribe: true
845
824
  }), state()], EFFilmstrip.prototype, "targetTimegroup", void 0);
846
- EFFilmstrip = _decorate([customElement("ef-filmstrip")], EFFilmstrip);
825
+ EFFilmstrip = __decorate([customElement("ef-filmstrip")], EFFilmstrip);
847
826
  export { EFFilmstrip };
@@ -1,8 +1,8 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { LitElement } from "lit";
2
3
  import { customElement, state } from "lit/decorators.js";
3
- import _decorate from "@oxc-project/runtime/helpers/decorate";
4
4
  import { createRef } from "lit/directives/ref.js";
5
- let EFFitScale = class EFFitScale$1 extends LitElement {
5
+ var EFFitScale = class EFFitScale$1 extends LitElement {
6
6
  constructor(..._args) {
7
7
  super(..._args);
8
8
  this.containerRef = createRef();
@@ -91,9 +91,8 @@ let EFFitScale = class EFFitScale$1 extends LitElement {
91
91
  const contentHeight = this.contentChild.clientHeight;
92
92
  const containerRatio = containerWidth / containerHeight;
93
93
  const contentRatio = contentWidth / contentHeight;
94
- const scale = containerRatio > contentRatio ? containerHeight / contentHeight : containerWidth / contentWidth;
95
94
  return {
96
- scale,
95
+ scale: containerRatio > contentRatio ? containerHeight / contentHeight : containerWidth / contentWidth,
97
96
  containerWidth,
98
97
  containerHeight,
99
98
  contentWidth,
@@ -110,6 +109,6 @@ let EFFitScale = class EFFitScale$1 extends LitElement {
110
109
  if (this.animationFrameId) cancelAnimationFrame(this.animationFrameId);
111
110
  }
112
111
  };
113
- _decorate([state()], EFFitScale.prototype, "scale", void 0);
114
- EFFitScale = _decorate([customElement("ef-fit-scale")], EFFitScale);
112
+ __decorate([state()], EFFitScale.prototype, "scale", void 0);
113
+ EFFitScale = __decorate([customElement("ef-fit-scale")], EFFitScale);
115
114
  export { EFFitScale };
@@ -1,10 +1,10 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { focusedElementContext } from "./focusedElementContext.js";
2
3
  import { consume } from "@lit/context";
3
4
  import { LitElement, css, html } from "lit";
4
5
  import { customElement } from "lit/decorators.js";
5
- import _decorate from "@oxc-project/runtime/helpers/decorate";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
- let EFFocusOverlay = class EFFocusOverlay$1 extends LitElement {
7
+ var EFFocusOverlay = class EFFocusOverlay$1 extends LitElement {
8
8
  constructor(..._args) {
9
9
  super(..._args);
10
10
  this.overlay = createRef();
@@ -58,9 +58,9 @@ let EFFocusOverlay = class EFFocusOverlay$1 extends LitElement {
58
58
  this.drawOverlay();
59
59
  }
60
60
  };
61
- _decorate([consume({
61
+ __decorate([consume({
62
62
  context: focusedElementContext,
63
63
  subscribe: true
64
64
  })], EFFocusOverlay.prototype, "focusedElement", void 0);
65
- EFFocusOverlay = _decorate([customElement("ef-focus-overlay")], EFFocusOverlay);
65
+ EFFocusOverlay = __decorate([customElement("ef-focus-overlay")], EFFocusOverlay);
66
66
  export { EFFocusOverlay };
@@ -1,3 +1,4 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { focusedElementContext } from "./focusedElementContext.js";
2
3
  import { ContextMixin } from "./ContextMixin.js";
3
4
  import { EFTargetable } from "../elements/TargetController.js";
@@ -5,8 +6,7 @@ import { TWMixin } from "./TWMixin2.js";
5
6
  import { provide } from "@lit/context";
6
7
  import { LitElement, css, html } from "lit";
7
8
  import { customElement } from "lit/decorators.js";
8
- import _decorate from "@oxc-project/runtime/helpers/decorate";
9
- let EFPreview = class EFPreview$1 extends EFTargetable(ContextMixin(TWMixin(LitElement))) {
9
+ var EFPreview = class EFPreview$1 extends EFTargetable(ContextMixin(TWMixin(LitElement))) {
10
10
  static {
11
11
  this.styles = [css`
12
12
  :host {
@@ -33,6 +33,6 @@ let EFPreview = class EFPreview$1 extends EFTargetable(ContextMixin(TWMixin(LitE
33
33
  return html`<slot></slot>`;
34
34
  }
35
35
  };
36
- _decorate([provide({ context: focusedElementContext })], EFPreview.prototype, "focusedElement", void 0);
37
- EFPreview = _decorate([customElement("ef-preview")], EFPreview);
36
+ __decorate([provide({ context: focusedElementContext })], EFPreview.prototype, "focusedElement", void 0);
37
+ EFPreview = __decorate([customElement("ef-preview")], EFPreview);
38
38
  export { EFPreview };
@@ -1,13 +1,13 @@
1
1
  import { currentTimeContext } from "./currentTimeContext.js";
2
2
  import { durationContext } from "./durationContext.js";
3
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
3
4
  import { efContext } from "./efContext.js";
4
5
  import { playingContext } from "./playingContext.js";
5
6
  import { consume } from "@lit/context";
6
7
  import { LitElement, css, html } from "lit";
7
8
  import { customElement, state } from "lit/decorators.js";
8
- import _decorate from "@oxc-project/runtime/helpers/decorate";
9
9
  import { ref } from "lit/directives/ref.js";
10
- let EFScrubber = class EFScrubber$1 extends LitElement {
10
+ var EFScrubber = class EFScrubber$1 extends LitElement {
11
11
  constructor(..._args) {
12
12
  super(..._args);
13
13
  this.playing = false;
@@ -109,23 +109,23 @@ let EFScrubber = class EFScrubber$1 extends LitElement {
109
109
  window.removeEventListener("pointermove", this.boundHandlePointerMove);
110
110
  }
111
111
  };
112
- _decorate([consume({
112
+ __decorate([consume({
113
113
  context: efContext,
114
114
  subscribe: true
115
115
  })], EFScrubber.prototype, "context", void 0);
116
- _decorate([consume({
116
+ __decorate([consume({
117
117
  context: playingContext,
118
118
  subscribe: true
119
119
  })], EFScrubber.prototype, "playing", void 0);
120
- _decorate([consume({
120
+ __decorate([consume({
121
121
  context: currentTimeContext,
122
122
  subscribe: true
123
123
  })], EFScrubber.prototype, "currentTimeMs", void 0);
124
- _decorate([consume({
124
+ __decorate([consume({
125
125
  context: durationContext,
126
126
  subscribe: true
127
127
  })], EFScrubber.prototype, "durationMs", void 0);
128
- _decorate([state()], EFScrubber.prototype, "scrubProgress", void 0);
129
- _decorate([state()], EFScrubber.prototype, "isMoving", void 0);
130
- EFScrubber = _decorate([customElement("ef-scrubber")], EFScrubber);
128
+ __decorate([state()], EFScrubber.prototype, "scrubProgress", void 0);
129
+ __decorate([state()], EFScrubber.prototype, "isMoving", void 0);
130
+ EFScrubber = __decorate([customElement("ef-scrubber")], EFScrubber);
131
131
  export { EFScrubber };
@@ -1,10 +1,10 @@
1
1
  import { currentTimeContext } from "./currentTimeContext.js";
2
2
  import { durationContext } from "./durationContext.js";
3
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
3
4
  import { consume } from "@lit/context";
4
5
  import { LitElement, css, html } from "lit";
5
6
  import { customElement } from "lit/decorators.js";
6
- import _decorate from "@oxc-project/runtime/helpers/decorate";
7
- let EFTimeDisplay = class EFTimeDisplay$1 extends LitElement {
7
+ var EFTimeDisplay = class EFTimeDisplay$1 extends LitElement {
8
8
  constructor(..._args) {
9
9
  super(..._args);
10
10
  this.currentTimeMs = NaN;
@@ -38,13 +38,13 @@ let EFTimeDisplay = class EFTimeDisplay$1 extends LitElement {
38
38
  `;
39
39
  }
40
40
  };
41
- _decorate([consume({
41
+ __decorate([consume({
42
42
  context: currentTimeContext,
43
43
  subscribe: true
44
44
  })], EFTimeDisplay.prototype, "currentTimeMs", void 0);
45
- _decorate([consume({
45
+ __decorate([consume({
46
46
  context: durationContext,
47
47
  subscribe: true
48
48
  })], EFTimeDisplay.prototype, "durationMs", void 0);
49
- EFTimeDisplay = _decorate([customElement("ef-time-display")], EFTimeDisplay);
49
+ EFTimeDisplay = __decorate([customElement("ef-time-display")], EFTimeDisplay);
50
50
  export { EFTimeDisplay };
@@ -1,9 +1,9 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { efContext } from "./efContext.js";
2
3
  import { consume } from "@lit/context";
3
4
  import { LitElement, css, html } from "lit";
4
5
  import { customElement } from "lit/decorators.js";
5
- import _decorate from "@oxc-project/runtime/helpers/decorate";
6
- let EFToggleLoop = class EFToggleLoop$1 extends LitElement {
6
+ var EFToggleLoop = class EFToggleLoop$1 extends LitElement {
7
7
  static {
8
8
  this.styles = [css`
9
9
  :host {}
@@ -17,6 +17,6 @@ let EFToggleLoop = class EFToggleLoop$1 extends LitElement {
17
17
  `;
18
18
  }
19
19
  };
20
- _decorate([consume({ context: efContext })], EFToggleLoop.prototype, "context", void 0);
21
- EFToggleLoop = _decorate([customElement("ef-toggle-loop")], EFToggleLoop);
20
+ __decorate([consume({ context: efContext })], EFToggleLoop.prototype, "context", void 0);
21
+ EFToggleLoop = __decorate([customElement("ef-toggle-loop")], EFToggleLoop);
22
22
  export { EFToggleLoop };
@@ -1,10 +1,10 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
1
2
  import { efContext } from "./efContext.js";
2
3
  import { playingContext } from "./playingContext.js";
3
4
  import { consume } from "@lit/context";
4
5
  import { LitElement, css, html } from "lit";
5
6
  import { customElement } from "lit/decorators.js";
6
- import _decorate from "@oxc-project/runtime/helpers/decorate";
7
- let EFTogglePlay = class EFTogglePlay$1 extends LitElement {
7
+ var EFTogglePlay = class EFTogglePlay$1 extends LitElement {
8
8
  constructor(..._args) {
9
9
  super(..._args);
10
10
  this.playing = false;
@@ -34,13 +34,13 @@ let EFTogglePlay = class EFTogglePlay$1 extends LitElement {
34
34
  else this.context.play();
35
35
  }
36
36
  };
37
- _decorate([consume({
37
+ __decorate([consume({
38
38
  context: efContext,
39
39
  subscribe: true
40
40
  })], EFTogglePlay.prototype, "context", void 0);
41
- _decorate([consume({
41
+ __decorate([consume({
42
42
  context: playingContext,
43
43
  subscribe: true
44
44
  })], EFTogglePlay.prototype, "playing", void 0);
45
- EFTogglePlay = _decorate([customElement("ef-toggle-play")], EFTogglePlay);
45
+ EFTogglePlay = __decorate([customElement("ef-toggle-play")], EFTogglePlay);
46
46
  export { EFTogglePlay };