@editframe/elements 0.32.0-beta.1 → 0.33.0-beta

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 (44) hide show
  1. package/dist/canvas/EFCanvas.d.ts +4 -4
  2. package/dist/canvas/EFCanvasItem.d.ts +4 -4
  3. package/dist/elements/EFAudio.d.ts +4 -4
  4. package/dist/elements/EFCaptions.d.ts +12 -12
  5. package/dist/elements/EFImage.d.ts +7 -7
  6. package/dist/elements/EFMedia.d.ts +4 -4
  7. package/dist/elements/EFPanZoom.d.ts +4 -4
  8. package/dist/elements/EFSurface.d.ts +6 -6
  9. package/dist/elements/EFText.d.ts +4 -4
  10. package/dist/elements/EFTextSegment.d.ts +4 -4
  11. package/dist/elements/EFThumbnailStrip.d.ts +6 -6
  12. package/dist/elements/EFTimegroup.d.ts +4 -4
  13. package/dist/elements/EFVideo.d.ts +6 -6
  14. package/dist/elements/EFWaveform.d.ts +4 -4
  15. package/dist/getRenderInfo.d.ts +4 -4
  16. package/dist/gui/EFActiveRootTemporal.d.ts +4 -4
  17. package/dist/gui/EFConfiguration.d.ts +4 -4
  18. package/dist/gui/EFControls.d.ts +2 -2
  19. package/dist/gui/EFDial.d.ts +4 -4
  20. package/dist/gui/EFFilmstrip.d.ts +4 -4
  21. package/dist/gui/EFFitScale.d.ts +3 -3
  22. package/dist/gui/EFFocusOverlay.d.ts +6 -6
  23. package/dist/gui/EFOverlayItem.d.ts +4 -4
  24. package/dist/gui/EFOverlayLayer.d.ts +4 -4
  25. package/dist/gui/EFPause.d.ts +4 -4
  26. package/dist/gui/EFPlay.d.ts +4 -4
  27. package/dist/gui/EFPreview.d.ts +4 -4
  28. package/dist/gui/EFResizableBox.d.ts +4 -4
  29. package/dist/gui/EFScrubber.d.ts +4 -4
  30. package/dist/gui/EFTimeDisplay.d.ts +4 -4
  31. package/dist/gui/EFTimelineRuler.d.ts +4 -4
  32. package/dist/gui/EFToggleLoop.d.ts +4 -4
  33. package/dist/gui/EFTogglePlay.d.ts +4 -4
  34. package/dist/gui/EFTransformHandles.d.ts +4 -4
  35. package/dist/gui/EFWorkbench.d.ts +6 -6
  36. package/dist/gui/hierarchy/EFHierarchy.d.ts +4 -4
  37. package/dist/gui/hierarchy/EFHierarchyItem.d.ts +2 -2
  38. package/dist/gui/timeline/EFTimeline.d.ts +2 -2
  39. package/dist/gui/timeline/TrimHandles.d.ts +4 -4
  40. package/dist/gui/tree/EFTree.d.ts +4 -4
  41. package/dist/gui/tree/EFTreeItem.d.ts +4 -4
  42. package/dist/preview/previewSettings.js +5 -0
  43. package/dist/preview/previewSettings.js.map +1 -1
  44. package/package.json +2 -2
@@ -2,9 +2,9 @@ import { TemporalMixinInterface } from "../elements/EFTemporal.js";
2
2
  import { CanvasElementData } from "./api/types.js";
3
3
  import { SelectionContext } from "./selection/selectionContext.js";
4
4
  import { PanZoomTransform } from "../elements/EFPanZoom.js";
5
- import * as lit17 from "lit";
5
+ import * as lit33 from "lit";
6
6
  import { LitElement } from "lit";
7
- import * as lit_html15 from "lit-html";
7
+ import * as lit_html32 from "lit-html";
8
8
 
9
9
  //#region src/canvas/EFCanvas.d.ts
10
10
  declare const EFCanvas_base: typeof LitElement;
@@ -84,7 +84,7 @@ declare const EFCanvas_base: typeof LitElement;
84
84
  * Manages existing elements (EF* elements, divs, etc.) and provides selection functionality.
85
85
  */
86
86
  declare class EFCanvas extends EFCanvas_base {
87
- static styles: lit17.CSSResult[];
87
+ static styles: lit33.CSSResult[];
88
88
  panZoomTransform?: PanZoomTransform;
89
89
  elementIdAttribute: string;
90
90
  enableTransformHandles: boolean;
@@ -299,7 +299,7 @@ declare class EFCanvas extends EFCanvas_base {
299
299
  * Cleanup transform handles.
300
300
  */
301
301
  private cleanupTransformHandles;
302
- render(): lit_html15.TemplateResult<1>;
302
+ render(): lit_html32.TemplateResult<1>;
303
303
  }
304
304
  declare global {
305
305
  interface HTMLElementTagNameMap {
@@ -1,6 +1,6 @@
1
- import * as lit18 from "lit";
1
+ import * as lit34 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html16 from "lit-html";
3
+ import * as lit_html33 from "lit-html";
4
4
 
5
5
  //#region src/canvas/EFCanvasItem.d.ts
6
6
 
@@ -28,7 +28,7 @@ import * as lit_html16 from "lit-html";
28
28
  * ```
29
29
  */
30
30
  declare class EFCanvasItem extends LitElement {
31
- static styles: lit18.CSSResult;
31
+ static styles: lit34.CSSResult;
32
32
  id: string;
33
33
  private canvas;
34
34
  private api;
@@ -43,7 +43,7 @@ declare class EFCanvasItem extends LitElement {
43
43
  * Unregister this element from the canvas.
44
44
  */
45
45
  private unregister;
46
- render(): lit_html16.TemplateResult<1>;
46
+ render(): lit_html33.TemplateResult<1>;
47
47
  }
48
48
  declare global {
49
49
  interface HTMLElementTagNameMap {
@@ -2,8 +2,8 @@ import { MediaEngine } from "../transcoding/types/index.js";
2
2
  import { EFMedia } from "./EFMedia.js";
3
3
  import * as _lit_task8 from "@lit/task";
4
4
  import { Task } from "@lit/task";
5
- import * as lit_html37 from "lit-html";
6
- import * as lit_html_directives_ref_js3 from "lit-html/directives/ref.js";
5
+ import * as lit_html1 from "lit-html";
6
+ import * as lit_html_directives_ref_js1 from "lit-html/directives/ref.js";
7
7
 
8
8
  //#region src/elements/EFAudio.d.ts
9
9
  declare const EFAudio_base: typeof EFMedia;
@@ -18,9 +18,9 @@ declare class EFAudio extends EFAudio_base {
18
18
  * @domAttribute "volume"
19
19
  */
20
20
  volume: number;
21
- audioElementRef: lit_html_directives_ref_js3.Ref<HTMLAudioElement>;
21
+ audioElementRef: lit_html_directives_ref_js1.Ref<HTMLAudioElement>;
22
22
  protected updated(changedProperties: Map<PropertyKey, unknown>): void;
23
- render(): lit_html37.TemplateResult<1>;
23
+ render(): lit_html1.TemplateResult<1>;
24
24
  frameTask: Task<readonly [_lit_task8.TaskStatus, _lit_task8.TaskStatus, _lit_task8.TaskStatus, _lit_task8.TaskStatus], void>;
25
25
  /**
26
26
  * Legacy getter for fragment index task (maps to audioSegmentIdTask)
@@ -4,9 +4,9 @@ import { FetchMixinInterface } from "./FetchMixin.js";
4
4
  import { EFVideo } from "./EFVideo.js";
5
5
  import { EFAudio } from "./EFAudio.js";
6
6
  import { Task, TaskStatus } from "@lit/task";
7
- import * as lit25 from "lit";
7
+ import * as lit3 from "lit";
8
8
  import { LitElement, PropertyValueMap } from "lit";
9
- import * as lit_html22 from "lit-html";
9
+ import * as lit_html3 from "lit-html";
10
10
 
11
11
  //#region src/elements/EFCaptions.d.ts
12
12
  interface WordSegment {
@@ -25,8 +25,8 @@ interface Caption {
25
25
  }
26
26
  declare const EFCaptionsActiveWord_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
27
27
  declare class EFCaptionsActiveWord extends EFCaptionsActiveWord_base {
28
- static styles: lit25.CSSResult[];
29
- render(): lit_html22.TemplateResult<1> | undefined;
28
+ static styles: lit3.CSSResult[];
29
+ render(): lit_html3.TemplateResult<1> | undefined;
30
30
  wordStartMs: number;
31
31
  wordEndMs: number;
32
32
  wordText: string;
@@ -38,8 +38,8 @@ declare class EFCaptionsActiveWord extends EFCaptionsActiveWord_base {
38
38
  }
39
39
  declare const EFCaptionsSegment_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
40
40
  declare class EFCaptionsSegment extends EFCaptionsSegment_base {
41
- static styles: lit25.CSSResult[];
42
- render(): lit_html22.TemplateResult<1> | undefined;
41
+ static styles: lit3.CSSResult[];
42
+ render(): lit_html3.TemplateResult<1> | undefined;
43
43
  segmentStartMs: number;
44
44
  segmentEndMs: number;
45
45
  segmentText: string;
@@ -49,8 +49,8 @@ declare class EFCaptionsSegment extends EFCaptionsSegment_base {
49
49
  get durationMs(): number;
50
50
  }
51
51
  declare class EFCaptionsBeforeActiveWord extends EFCaptionsSegment {
52
- static styles: lit25.CSSResult[];
53
- render(): lit_html22.TemplateResult<1> | undefined;
52
+ static styles: lit3.CSSResult[];
53
+ render(): lit_html3.TemplateResult<1> | undefined;
54
54
  hidden: boolean;
55
55
  segmentText: string;
56
56
  segmentStartMs: number;
@@ -60,8 +60,8 @@ declare class EFCaptionsBeforeActiveWord extends EFCaptionsSegment {
60
60
  get durationMs(): number;
61
61
  }
62
62
  declare class EFCaptionsAfterActiveWord extends EFCaptionsSegment {
63
- static styles: lit25.CSSResult[];
64
- render(): lit_html22.TemplateResult<1> | undefined;
63
+ static styles: lit3.CSSResult[];
64
+ render(): lit_html3.TemplateResult<1> | undefined;
65
65
  hidden: boolean;
66
66
  segmentText: string;
67
67
  segmentStartMs: number;
@@ -73,7 +73,7 @@ declare class EFCaptionsAfterActiveWord extends EFCaptionsSegment {
73
73
  declare const EFCaptions_base: (new (...args: any[]) => EFSourceMixinInterface) & (new (...args: any[]) => TemporalMixinInterface) & (new (...args: any[]) => FetchMixinInterface) & typeof LitElement;
74
74
  declare class EFCaptions extends EFCaptions_base {
75
75
  #private;
76
- static styles: lit25.CSSResult[];
76
+ static styles: lit3.CSSResult[];
77
77
  targetSelector: string;
78
78
  set target(value: string);
79
79
  wordStyle: string;
@@ -96,7 +96,7 @@ declare class EFCaptions extends EFCaptions_base {
96
96
  segmentContainers: HTMLCollectionOf<EFCaptionsSegment>;
97
97
  beforeActiveWordContainers: HTMLCollectionOf<EFCaptionsBeforeActiveWord>;
98
98
  afterActiveWordContainers: HTMLCollectionOf<EFCaptionsAfterActiveWord>;
99
- render(): lit_html22.TemplateResult<1>;
99
+ render(): lit_html3.TemplateResult<1>;
100
100
  transcriptionsPath(): string | null;
101
101
  captionsPath(): string | null;
102
102
  protected md5SumLoader: Task<readonly [string, typeof fetch], any>;
@@ -3,21 +3,21 @@ import { TemporalMixinInterface } from "./EFTemporal.js";
3
3
  import { FetchMixinInterface } from "./FetchMixin.js";
4
4
  import * as _lit_task0 from "@lit/task";
5
5
  import { Task } from "@lit/task";
6
- import * as lit38 from "lit";
6
+ import * as lit0 from "lit";
7
7
  import { LitElement } from "lit";
8
- import * as lit_html36 from "lit-html";
9
- import * as lit_html_directives_ref_js1 from "lit-html/directives/ref.js";
8
+ import * as lit_html0 from "lit-html";
9
+ import * as lit_html_directives_ref_js0 from "lit-html/directives/ref.js";
10
10
 
11
11
  //#region src/elements/EFImage.d.ts
12
12
  declare const EFImage_base: (new (...args: any[]) => TemporalMixinInterface) & (new (...args: any[]) => EFSourceMixinInterface) & (new (...args: any[]) => FetchMixinInterface) & typeof LitElement;
13
13
  declare class EFImage extends EFImage_base {
14
14
  #private;
15
- static styles: lit38.CSSResult[];
16
- imageRef: lit_html_directives_ref_js1.Ref<HTMLImageElement>;
17
- canvasRef: lit_html_directives_ref_js1.Ref<HTMLCanvasElement>;
15
+ static styles: lit0.CSSResult[];
16
+ imageRef: lit_html_directives_ref_js0.Ref<HTMLImageElement>;
17
+ canvasRef: lit_html_directives_ref_js0.Ref<HTMLCanvasElement>;
18
18
  set assetId(value: string | null);
19
19
  get assetId(): string | null;
20
- render(): lit_html36.TemplateResult<1>;
20
+ render(): lit_html0.TemplateResult<1>;
21
21
  private isDirectUrl;
22
22
  assetPath(): string;
23
23
  get hasOwnDuration(): boolean;
@@ -9,9 +9,9 @@ import { AudioBufferState } from "./EFMedia/audioTasks/makeAudioBufferTask.js";
9
9
  import { ControllableInterface } from "../gui/Controllable.js";
10
10
  import { UrlGenerator } from "../transcoding/utils/UrlGenerator.js";
11
11
  import * as _lit_task0 from "@lit/task";
12
- import * as lit39 from "lit";
12
+ import * as lit1 from "lit";
13
13
  import { LitElement, PropertyValueMap } from "lit";
14
- import * as mediabunny2 from "mediabunny";
14
+ import * as mediabunny0 from "mediabunny";
15
15
 
16
16
  //#region src/elements/EFMedia.d.ts
17
17
  declare global {
@@ -34,7 +34,7 @@ declare class EFMedia extends EFMedia_base {
34
34
  */
35
35
  get requiredTracks(): "audio" | "video" | "both";
36
36
  static get observedAttributes(): string[];
37
- static styles: lit39.CSSResult[];
37
+ static styles: lit1.CSSResult[];
38
38
  /**
39
39
  * Duration in milliseconds for audio buffering ahead of current time
40
40
  * @domAttribute "audio-buffer-duration"
@@ -83,7 +83,7 @@ declare class EFMedia extends EFMedia_base {
83
83
  audioInitSegmentFetchTask: _lit_task0.Task<readonly [MediaEngine | undefined], ArrayBuffer | undefined>;
84
84
  audioSegmentFetchTask: _lit_task0.Task<readonly [MediaEngine | undefined, number | undefined], ArrayBuffer | undefined>;
85
85
  audioInputTask: InputTask;
86
- audioSeekTask: _lit_task0.Task<readonly [number, BufferedSeekingInput | undefined], mediabunny2.VideoSample | undefined>;
86
+ audioSeekTask: _lit_task0.Task<readonly [number, BufferedSeekingInput | undefined], mediabunny0.VideoSample | undefined>;
87
87
  audioBufferTask: _lit_task0.Task<readonly [number], AudioBufferState>;
88
88
  byteTimeDomainTask: _lit_task0.Task<readonly [number], Uint8Array<ArrayBufferLike> | null>;
89
89
  frequencyDataTask: _lit_task0.Task<readonly [number], Uint8Array<ArrayBufferLike> | null>;
@@ -1,6 +1,6 @@
1
- import * as lit16 from "lit";
1
+ import * as lit32 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html14 from "lit-html";
3
+ import * as lit_html31 from "lit-html";
4
4
 
5
5
  //#region src/elements/EFPanZoom.d.ts
6
6
  interface PanZoomTransform {
@@ -9,7 +9,7 @@ interface PanZoomTransform {
9
9
  scale: number;
10
10
  }
11
11
  declare class EFPanZoom extends LitElement {
12
- static styles: lit16.CSSResult[];
12
+ static styles: lit32.CSSResult[];
13
13
  x: number;
14
14
  y: number;
15
15
  scale: number;
@@ -89,7 +89,7 @@ declare class EFPanZoom extends LitElement {
89
89
  * @param padding - Padding factor (0-1), e.g., 0.1 = 10% padding on each side. Default: 0.05
90
90
  */
91
91
  fitToContent(padding?: number): void;
92
- render(): lit_html14.TemplateResult<1>;
92
+ render(): lit_html31.TemplateResult<1>;
93
93
  }
94
94
  //#endregion
95
95
  export { EFPanZoom, PanZoomTransform };
@@ -1,18 +1,18 @@
1
1
  import { ContextMixinInterface } from "../gui/ContextMixin.js";
2
2
  import { Task } from "@lit/task";
3
- import * as lit14 from "lit";
3
+ import * as lit30 from "lit";
4
4
  import { LitElement } from "lit";
5
- import * as lit_html12 from "lit-html";
6
- import * as lit_html_directives_ref1 from "lit-html/directives/ref";
5
+ import * as lit_html29 from "lit-html";
6
+ import * as lit_html_directives_ref3 from "lit-html/directives/ref";
7
7
 
8
8
  //#region src/elements/EFSurface.d.ts
9
9
  declare class EFSurface extends LitElement {
10
10
  #private;
11
- static styles: lit14.CSSResult[];
12
- canvasRef: lit_html_directives_ref1.Ref<HTMLCanvasElement>;
11
+ static styles: lit30.CSSResult[];
12
+ canvasRef: lit_html_directives_ref3.Ref<HTMLCanvasElement>;
13
13
  targetElement: ContextMixinInterface | null;
14
14
  target: string;
15
- render(): lit_html12.TemplateResult<1>;
15
+ render(): lit_html29.TemplateResult<1>;
16
16
  get rootTimegroup(): any;
17
17
  get currentTimeMs(): number;
18
18
  get durationMs(): number;
@@ -1,14 +1,14 @@
1
1
  import { TemporalMixinInterface } from "./EFTemporal.js";
2
2
  import { EFTextSegment } from "./EFTextSegment.js";
3
- import * as lit30 from "lit";
3
+ import * as lit8 from "lit";
4
4
  import { LitElement, PropertyValueMap } from "lit";
5
- import * as lit_html27 from "lit-html";
5
+ import * as lit_html8 from "lit-html";
6
6
 
7
7
  //#region src/elements/EFText.d.ts
8
8
  type SplitMode = "line" | "word" | "char";
9
9
  declare const EFText_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
10
10
  declare class EFText extends EFText_base {
11
- static styles: lit30.CSSResult[];
11
+ static styles: lit8.CSSResult[];
12
12
  split: SplitMode;
13
13
  private validateSplit;
14
14
  staggerMs?: number;
@@ -19,7 +19,7 @@ declare class EFText extends EFText_base {
19
19
  private _textContent;
20
20
  private _templateElement;
21
21
  private _segmentsReadyResolvers;
22
- render(): lit_html27.TemplateResult<1>;
22
+ render(): lit_html8.TemplateResult<1>;
23
23
  set textContent(value: string | null);
24
24
  get textContent(): string;
25
25
  /**
@@ -1,12 +1,12 @@
1
1
  import { TemporalMixinInterface } from "./EFTemporal.js";
2
- import * as lit31 from "lit";
2
+ import * as lit9 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html28 from "lit-html";
4
+ import * as lit_html9 from "lit-html";
5
5
 
6
6
  //#region src/elements/EFTextSegment.d.ts
7
7
  declare const EFTextSegment_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
8
8
  declare class EFTextSegment extends EFTextSegment_base {
9
- static styles: lit31.CSSResult[];
9
+ static styles: lit9.CSSResult[];
10
10
  /**
11
11
  * Registers animation styles that should be shared across all text segments.
12
12
  * This is the correct way to inject animation styles for segments - not via innerHTML.
@@ -32,7 +32,7 @@ declare class EFTextSegment extends EFTextSegment_base {
32
32
  * @param id The identifier of the stylesheet to remove
33
33
  */
34
34
  static unregisterAnimations(id: string): void;
35
- render(): lit_html28.TemplateResult<1>;
35
+ render(): lit_html9.TemplateResult<1>;
36
36
  private setCSSVariables;
37
37
  protected firstUpdated(): void;
38
38
  protected updated(): void;
@@ -1,14 +1,14 @@
1
1
  import { EFVideo } from "./EFVideo.js";
2
2
  import { EFTimegroup } from "./EFTimegroup.js";
3
- import * as lit15 from "lit";
3
+ import * as lit31 from "lit";
4
4
  import { LitElement } from "lit";
5
- import * as lit_html13 from "lit-html";
6
- import * as lit_html_directives_ref2 from "lit-html/directives/ref";
5
+ import * as lit_html30 from "lit-html";
6
+ import * as lit_html_directives_ref4 from "lit-html/directives/ref";
7
7
 
8
8
  //#region src/elements/EFThumbnailStrip.d.ts
9
9
  declare class EFThumbnailStrip extends LitElement {
10
- static styles: lit15.CSSResult[];
11
- canvasRef: lit_html_directives_ref2.Ref<HTMLCanvasElement>;
10
+ static styles: lit31.CSSResult[];
11
+ canvasRef: lit_html_directives_ref4.Ref<HTMLCanvasElement>;
12
12
  target: string;
13
13
  thumbnailWidth: number;
14
14
  gap: number;
@@ -155,7 +155,7 @@ declare class EFThumbnailStrip extends LitElement {
155
155
  * Invalidate all cached thumbnails for this element.
156
156
  */
157
157
  invalidateAll(): void;
158
- render(): lit_html13.TemplateResult<1>;
158
+ render(): lit_html30.TemplateResult<1>;
159
159
  }
160
160
  declare global {
161
161
  interface HTMLElementTagNameMap {
@@ -5,9 +5,9 @@ import { ElementPositionInfo } from "./ElementPositionInfo.js";
5
5
  import { CaptureBatchOptions, CaptureOptions } from "../preview/renderTimegroupToCanvas.js";
6
6
  import { RenderToVideoOptions } from "../preview/renderTimegroupToVideo.js";
7
7
  import { Task } from "@lit/task";
8
- import * as lit37 from "lit";
8
+ import * as lit0 from "lit";
9
9
  import { LitElement, PropertyValues } from "lit";
10
- import * as lit_html35 from "lit-html";
10
+ import * as lit_html0 from "lit-html";
11
11
 
12
12
  //#region src/elements/EFTimegroup.d.ts
13
13
 
@@ -51,7 +51,7 @@ declare const EFTimegroup_base: (new (...args: any[]) => TemporalMixinInterface)
51
51
  declare class EFTimegroup extends EFTimegroup_base {
52
52
  #private;
53
53
  static get observedAttributes(): string[];
54
- static styles: lit37.CSSResult;
54
+ static styles: lit0.CSSResult;
55
55
  /** @internal */
56
56
  _timeGroupContext: this;
57
57
  /** @internal */
@@ -206,7 +206,7 @@ declare class EFTimegroup extends EFTimegroup_base {
206
206
  removeFrameTask(callback: FrameTaskCallback): void;
207
207
  /** @internal */
208
208
  saveTimeToLocalStorage(time: number): void;
209
- render(): lit_html35.TemplateResult<1>;
209
+ render(): lit_html0.TemplateResult<1>;
210
210
  /** @internal */
211
211
  loadTimeFromLocalStorage(): number | undefined;
212
212
  connectedCallback(): void;
@@ -5,11 +5,11 @@ import { MediaBufferState } from "./EFMedia/shared/BufferUtils.js";
5
5
  import { EFMedia } from "./EFMedia.js";
6
6
  import { VideoBufferState } from "./EFMedia/videoTasks/makeVideoBufferTask.js";
7
7
  import { Task } from "@lit/task";
8
- import * as lit24 from "lit";
8
+ import * as lit2 from "lit";
9
9
  import { PropertyValueMap } from "lit";
10
10
  import * as mediabunny0 from "mediabunny";
11
- import * as lit_html21 from "lit-html";
12
- import * as lit_html_directives_ref3 from "lit-html/directives/ref";
11
+ import * as lit_html2 from "lit-html";
12
+ import * as lit_html_directives_ref0 from "lit-html/directives/ref";
13
13
 
14
14
  //#region src/elements/EFVideo.d.ts
15
15
  declare global {
@@ -27,8 +27,8 @@ interface LoadingState {
27
27
 
28
28
  declare const EFVideo_base: typeof EFMedia;
29
29
  declare class EFVideo extends EFVideo_base {
30
- static styles: lit24.CSSResult[];
31
- canvasRef: lit_html_directives_ref3.Ref<HTMLCanvasElement>;
30
+ static styles: lit2.CSSResult[];
31
+ canvasRef: lit_html_directives_ref0.Ref<HTMLCanvasElement>;
32
32
  /**
33
33
  * Duration in milliseconds for video buffering ahead of current time
34
34
  * @domAttribute "video-buffer-duration"
@@ -66,7 +66,7 @@ declare class EFVideo extends EFVideo_base {
66
66
  };
67
67
  constructor();
68
68
  protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
69
- render(): lit_html21.TemplateResult<1>;
69
+ render(): lit_html2.TemplateResult<1>;
70
70
  get canvasElement(): HTMLCanvasElement | undefined;
71
71
  frameTask: Task<readonly [number], void>;
72
72
  /**
@@ -3,21 +3,21 @@ import { EFVideo } from "./EFVideo.js";
3
3
  import { EFAudio } from "./EFAudio.js";
4
4
  import { TargetController } from "./TargetController.js";
5
5
  import { Task } from "@lit/task";
6
- import * as lit32 from "lit";
6
+ import * as lit10 from "lit";
7
7
  import { LitElement, PropertyValueMap } from "lit";
8
8
  import { Ref } from "lit/directives/ref.js";
9
- import * as lit_html29 from "lit-html";
9
+ import * as lit_html10 from "lit-html";
10
10
 
11
11
  //#region src/elements/EFWaveform.d.ts
12
12
  declare const EFWaveform_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
13
13
  declare class EFWaveform extends EFWaveform_base {
14
- static styles: lit32.CSSResult;
14
+ static styles: lit10.CSSResult;
15
15
  canvasRef: Ref<HTMLCanvasElement>;
16
16
  private ctx;
17
17
  private styleObserver;
18
18
  private resizeObserver?;
19
19
  private mutationObserver?;
20
- render(): lit_html29.TemplateResult<1>;
20
+ render(): lit_html10.TemplateResult<1>;
21
21
  mode: "roundBars" | "bars" | "bricks" | "line" | "curve" | "pixel" | "wave" | "spikes";
22
22
  color: string;
23
23
  target: string;
@@ -21,20 +21,20 @@ declare const RenderInfo: z.ZodObject<{
21
21
  efImage: string[];
22
22
  }>;
23
23
  }, "strip", z.ZodTypeAny, {
24
+ durationMs: number;
25
+ fps: number;
24
26
  width: number;
25
27
  height: number;
26
- fps: number;
27
- durationMs: number;
28
28
  assets: {
29
29
  efMedia: Record<string, any>;
30
30
  efCaptions: string[];
31
31
  efImage: string[];
32
32
  };
33
33
  }, {
34
+ durationMs: number;
35
+ fps: number;
34
36
  width: number;
35
37
  height: number;
36
- fps: number;
37
- durationMs: number;
38
38
  assets: {
39
39
  efMedia: Record<string, any>;
40
40
  efCaptions: string[];
@@ -1,6 +1,6 @@
1
- import * as lit8 from "lit";
1
+ import * as lit24 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html7 from "lit-html";
3
+ import * as lit_html24 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFActiveRootTemporal.d.ts
6
6
 
@@ -14,7 +14,7 @@ import * as lit_html7 from "lit-html";
14
14
  * ```
15
15
  */
16
16
  declare class EFActiveRootTemporal extends LitElement {
17
- static styles: lit8.CSSResult;
17
+ static styles: lit24.CSSResult;
18
18
  /**
19
19
  * Canvas element ID or selector to bind to.
20
20
  * If not specified, will search for the nearest ef-canvas ancestor.
@@ -38,7 +38,7 @@ declare class EFActiveRootTemporal extends LitElement {
38
38
  * Remove event listener.
39
39
  */
40
40
  private removeListener;
41
- render(): lit_html7.TemplateResult<1>;
41
+ render(): lit_html24.TemplateResult<1>;
42
42
  }
43
43
  declare global {
44
44
  interface HTMLElementTagNameMap {
@@ -1,10 +1,10 @@
1
- import * as lit33 from "lit";
1
+ import * as lit11 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html30 from "lit-html";
3
+ import * as lit_html11 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFConfiguration.d.ts
6
6
  declare class EFConfiguration extends LitElement {
7
- static styles: lit33.CSSResult[];
7
+ static styles: lit11.CSSResult[];
8
8
  efConfiguration: this;
9
9
  apiHost?: string;
10
10
  signingURL: string;
@@ -15,7 +15,7 @@ declare class EFConfiguration extends LitElement {
15
15
  * - "jit": Force JitMediaEngine for all sources (uses /api/v1/transcode/* URLs)
16
16
  */
17
17
  mediaEngine?: "cloud" | "local" | "jit";
18
- render(): lit_html30.TemplateResult<1>;
18
+ render(): lit_html11.TemplateResult<1>;
19
19
  }
20
20
  declare global {
21
21
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { TemporalMixinInterface } from "../elements/EFTemporal.js";
2
2
  import { ControllableInterface } from "./Controllable.js";
3
3
  import { FocusContext } from "./focusContext.js";
4
- import * as lit10 from "lit";
4
+ import * as lit26 from "lit";
5
5
  import { LitElement, PropertyValueMap } from "lit";
6
6
 
7
7
  //#region src/gui/EFControls.d.ts
@@ -26,7 +26,7 @@ import { LitElement, PropertyValueMap } from "lit";
26
26
  */
27
27
  declare class EFControls extends LitElement {
28
28
  #private;
29
- static styles: lit10.CSSResult;
29
+ static styles: lit26.CSSResult;
30
30
  createRenderRoot(): this;
31
31
  /**
32
32
  * The ID of the ef-preview element to control
@@ -1,6 +1,6 @@
1
- import * as lit9 from "lit";
1
+ import * as lit25 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html8 from "lit-html";
3
+ import * as lit_html25 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFDial.d.ts
6
6
  interface DialChangeDetail {
@@ -13,12 +13,12 @@ declare class EFDial extends LitElement {
13
13
  private isDragging;
14
14
  private dragStartAngle;
15
15
  private dragStartValue;
16
- static styles: lit9.CSSResult;
16
+ static styles: lit25.CSSResult;
17
17
  private getAngleFromPoint;
18
18
  private handlePointerDown;
19
19
  private handlePointerMove;
20
20
  private handlePointerUp;
21
- render(): lit_html8.TemplateResult<1>;
21
+ render(): lit_html25.TemplateResult<1>;
22
22
  }
23
23
  //#endregion
24
24
  export { DialChangeDetail, EFDial };
@@ -1,7 +1,7 @@
1
1
  import { TemporalMixinInterface } from "../elements/EFTemporal.js";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html33 from "lit-html";
4
- import * as lit_html_directives_ref4 from "lit-html/directives/ref";
3
+ import * as lit_html14 from "lit-html";
4
+ import * as lit_html_directives_ref0 from "lit-html/directives/ref";
5
5
 
6
6
  //#region src/gui/EFFilmstrip.d.ts
7
7
  declare const EFFilmstrip_base: typeof LitElement;
@@ -18,10 +18,10 @@ declare class EFFilmstrip extends EFFilmstrip_base {
18
18
  get targetTemporal(): TemporalMixinInterface | null;
19
19
  get hideSelectors(): string[] | undefined;
20
20
  get showSelectors(): string[] | undefined;
21
- timelineRef: lit_html_directives_ref4.Ref<HTMLElement>;
21
+ timelineRef: lit_html_directives_ref0.Ref<HTMLElement>;
22
22
  connectedCallback(): void;
23
23
  protected willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
24
- render(): lit_html33.TemplateResult<1>;
24
+ render(): lit_html14.TemplateResult<1>;
25
25
  }
26
26
  declare global {
27
27
  interface HTMLElementTagNameMap {
@@ -1,10 +1,10 @@
1
1
  import { LitElement } from "lit";
2
- import * as lit_html_directives_ref0 from "lit-html/directives/ref";
2
+ import * as lit_html_directives_ref1 from "lit-html/directives/ref";
3
3
 
4
4
  //#region src/gui/EFFitScale.d.ts
5
5
  declare class EFFitScale extends LitElement {
6
- containerRef: lit_html_directives_ref0.Ref<HTMLDivElement>;
7
- contentRef: lit_html_directives_ref0.Ref<HTMLSlotElement>;
6
+ containerRef: lit_html_directives_ref1.Ref<HTMLDivElement>;
7
+ contentRef: lit_html_directives_ref1.Ref<HTMLSlotElement>;
8
8
  createRenderRoot(): this;
9
9
  uniqueId: string;
10
10
  private scale;
@@ -1,16 +1,16 @@
1
- import * as lit11 from "lit";
1
+ import * as lit27 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html9 from "lit-html";
4
- import * as lit_html_directives_ref_js0 from "lit-html/directives/ref.js";
3
+ import * as lit_html26 from "lit-html";
4
+ import * as lit_html_directives_ref_js3 from "lit-html/directives/ref.js";
5
5
 
6
6
  //#region src/gui/EFFocusOverlay.d.ts
7
7
  declare class EFFocusOverlay extends LitElement {
8
- static styles: lit11.CSSResult;
8
+ static styles: lit27.CSSResult;
9
9
  focusedElement?: HTMLElement | null;
10
- overlay: lit_html_directives_ref_js0.Ref<HTMLDivElement>;
10
+ overlay: lit_html_directives_ref_js3.Ref<HTMLDivElement>;
11
11
  private animationFrame?;
12
12
  drawOverlay: () => void;
13
- render(): lit_html9.TemplateResult<1>;
13
+ render(): lit_html26.TemplateResult<1>;
14
14
  connectedCallback(): void;
15
15
  disconnectedCallback(): void;
16
16
  protected updated(): void;
@@ -1,6 +1,6 @@
1
- import * as lit20 from "lit";
1
+ import * as lit36 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html18 from "lit-html";
3
+ import * as lit_html35 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFOverlayItem.d.ts
6
6
  /**
@@ -23,7 +23,7 @@ interface OverlayItemPosition {
23
23
  * ensures transforms are applied before positions are read.
24
24
  */
25
25
  declare class EFOverlayItem extends LitElement {
26
- static styles: lit20.CSSResult[];
26
+ static styles: lit36.CSSResult[];
27
27
  elementId?: string;
28
28
  target?: HTMLElement | string;
29
29
  private currentPosition;
@@ -36,7 +36,7 @@ declare class EFOverlayItem extends LitElement {
36
36
  updatePosition(): void;
37
37
  connectedCallback(): void;
38
38
  disconnectedCallback(): void;
39
- render(): lit_html18.TemplateResult<1>;
39
+ render(): lit_html35.TemplateResult<1>;
40
40
  }
41
41
  declare global {
42
42
  interface HTMLElementTagNameMap {
@@ -1,8 +1,8 @@
1
1
  import { PanZoomTransform } from "../elements/EFPanZoom.js";
2
2
  import { EFOverlayItem } from "./EFOverlayItem.js";
3
- import * as lit19 from "lit";
3
+ import * as lit35 from "lit";
4
4
  import { LitElement } from "lit";
5
- import * as lit_html17 from "lit-html";
5
+ import * as lit_html34 from "lit-html";
6
6
 
7
7
  //#region src/gui/EFOverlayLayer.d.ts
8
8
 
@@ -26,7 +26,7 @@ import * as lit_html17 from "lit-html";
26
26
  * 2. EFOverlayItem can use this rect for coordinate calculations
27
27
  */
28
28
  declare class EFOverlayLayer extends LitElement {
29
- static styles: lit19.CSSResult[];
29
+ static styles: lit35.CSSResult[];
30
30
  panZoomTransformFromContext?: PanZoomTransform;
31
31
  /**
32
32
  * Pan/zoom transform as fallback for when context or sibling PanZoom is not available.
@@ -58,7 +58,7 @@ declare class EFOverlayLayer extends LitElement {
58
58
  connectedCallback(): void;
59
59
  disconnectedCallback(): void;
60
60
  updated(): void;
61
- render(): lit_html17.TemplateResult<1>;
61
+ render(): lit_html34.TemplateResult<1>;
62
62
  }
63
63
  declare global {
64
64
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit4 from "lit";
2
+ import * as lit20 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html3 from "lit-html";
4
+ import * as lit_html20 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFPause.d.ts
7
7
  declare const EFPause_base: (new (...args: any[]) => {
@@ -10,13 +10,13 @@ declare const EFPause_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFPause extends EFPause_base {
13
- static styles: lit4.CSSResult[];
13
+ static styles: lit20.CSSResult[];
14
14
  playing: boolean;
15
15
  get efContext(): ControllableInterface | null;
16
16
  connectedCallback(): void;
17
17
  disconnectedCallback(): void;
18
18
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
19
- render(): lit_html3.TemplateResult<1>;
19
+ render(): lit_html20.TemplateResult<1>;
20
20
  handleClick: () => void;
21
21
  }
22
22
  declare global {
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit3 from "lit";
2
+ import * as lit19 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html2 from "lit-html";
4
+ import * as lit_html19 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFPlay.d.ts
7
7
  declare const EFPlay_base: (new (...args: any[]) => {
@@ -10,13 +10,13 @@ declare const EFPlay_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFPlay extends EFPlay_base {
13
- static styles: lit3.CSSResult[];
13
+ static styles: lit19.CSSResult[];
14
14
  playing: boolean;
15
15
  get efContext(): ControllableInterface | null;
16
16
  connectedCallback(): void;
17
17
  disconnectedCallback(): void;
18
18
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
19
- render(): lit_html2.TemplateResult<1>;
19
+ render(): lit_html19.TemplateResult<1>;
20
20
  handleClick: () => void;
21
21
  }
22
22
  declare global {
@@ -1,19 +1,19 @@
1
1
  import { ContextMixinInterface } from "./ContextMixin.js";
2
- import * as lit35 from "lit";
2
+ import * as lit13 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html32 from "lit-html";
4
+ import * as lit_html13 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFPreview.d.ts
7
7
  declare const EFPreview_base: (new (...args: any[]) => ContextMixinInterface) & typeof LitElement;
8
8
  declare class EFPreview extends EFPreview_base {
9
- static styles: lit35.CSSResult[];
9
+ static styles: lit13.CSSResult[];
10
10
  focusedElement?: HTMLElement;
11
11
  /**
12
12
  * Find the closest temporal element (timegroup, video, audio, etc.)
13
13
  */
14
14
  private findClosestTemporal;
15
15
  constructor();
16
- render(): lit_html32.TemplateResult<1>;
16
+ render(): lit_html13.TemplateResult<1>;
17
17
  }
18
18
  declare global {
19
19
  interface HTMLElementTagNameMap {
@@ -1,6 +1,6 @@
1
- import * as lit13 from "lit";
1
+ import * as lit29 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html11 from "lit-html";
3
+ import * as lit_html28 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFResizableBox.d.ts
6
6
  interface BoxBounds {
@@ -21,7 +21,7 @@ declare class EFResizableBox extends LitElement {
21
21
  private resizeStartCorner;
22
22
  private resizeStartSize;
23
23
  private resizeStartPosition;
24
- static styles: lit13.CSSResult;
24
+ static styles: lit29.CSSResult;
25
25
  private resizeObserver?;
26
26
  connectedCallback(): void;
27
27
  disconnectedCallback(): void;
@@ -30,7 +30,7 @@ declare class EFResizableBox extends LitElement {
30
30
  private handlePointerUp;
31
31
  private cleanup;
32
32
  private dispatchBoundsChange;
33
- render(): lit_html11.TemplateResult<1>;
33
+ render(): lit_html28.TemplateResult<1>;
34
34
  }
35
35
  //#endregion
36
36
  export { BoxBounds, EFResizableBox };
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit6 from "lit";
2
+ import * as lit22 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html5 from "lit-html";
4
+ import * as lit_html22 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFScrubber.d.ts
7
7
  declare const EFScrubber_base: (new (...args: any[]) => {
@@ -10,7 +10,7 @@ declare const EFScrubber_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFScrubber extends EFScrubber_base {
13
- static styles: lit6.CSSResult[];
13
+ static styles: lit22.CSSResult[];
14
14
  playing: boolean;
15
15
  contextCurrentTimeMs: number;
16
16
  contextDurationMs: number;
@@ -50,7 +50,7 @@ declare class EFScrubber extends EFScrubber_base {
50
50
  private boundHandlePointerUp;
51
51
  private boundHandlePointerCancel;
52
52
  private boundHandleContextMenu;
53
- render(): lit_html5.TemplateResult<1>;
53
+ render(): lit_html22.TemplateResult<1>;
54
54
  connectedCallback(): void;
55
55
  disconnectedCallback(): void;
56
56
  }
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit7 from "lit";
2
+ import * as lit23 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html6 from "lit-html";
4
+ import * as lit_html23 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFTimeDisplay.d.ts
7
7
  declare const EFTimeDisplay_base: (new (...args: any[]) => {
@@ -10,11 +10,11 @@ declare const EFTimeDisplay_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFTimeDisplay extends EFTimeDisplay_base {
13
- static styles: lit7.CSSResult;
13
+ static styles: lit23.CSSResult;
14
14
  currentTimeMs: number;
15
15
  durationMs: number;
16
16
  private formatTime;
17
- render(): lit_html6.TemplateResult<1>;
17
+ render(): lit_html23.TemplateResult<1>;
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { TimelineState } from "./timeline/timelineStateContext.js";
2
- import * as lit21 from "lit";
2
+ import * as lit37 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html19 from "lit-html";
4
+ import * as lit_html36 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFTimelineRuler.d.ts
7
7
  /**
@@ -25,7 +25,7 @@ declare function calculatePixelsPerFrame(frameIntervalMs: number, pixelsPerMs: n
25
25
  */
26
26
  declare function shouldShowFrameMarkers(pixelsPerFrame: number, minSpacing?: number): boolean;
27
27
  declare class EFTimelineRuler extends LitElement {
28
- static styles: lit21.CSSResult[];
28
+ static styles: lit37.CSSResult[];
29
29
  durationMs: number;
30
30
  contextDurationMs: number;
31
31
  timelineState?: TimelineState;
@@ -59,7 +59,7 @@ declare class EFTimelineRuler extends LitElement {
59
59
  private calculateLabelInterval;
60
60
  private getVisibleLabels;
61
61
  private renderCanvas;
62
- render(): lit_html19.TemplateResult<1>;
62
+ render(): lit_html36.TemplateResult<1>;
63
63
  }
64
64
  declare global {
65
65
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit5 from "lit";
2
+ import * as lit21 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html4 from "lit-html";
4
+ import * as lit_html21 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFToggleLoop.d.ts
7
7
  declare const EFToggleLoop_base: (new (...args: any[]) => {
@@ -10,9 +10,9 @@ declare const EFToggleLoop_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFToggleLoop extends EFToggleLoop_base {
13
- static styles: lit5.CSSResult[];
13
+ static styles: lit21.CSSResult[];
14
14
  get context(): ControllableInterface | null;
15
- render(): lit_html4.TemplateResult<1>;
15
+ render(): lit_html21.TemplateResult<1>;
16
16
  }
17
17
  declare global {
18
18
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit2 from "lit";
2
+ import * as lit18 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html1 from "lit-html";
4
+ import * as lit_html18 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFTogglePlay.d.ts
7
7
  declare const EFTogglePlay_base: (new (...args: any[]) => {
@@ -10,12 +10,12 @@ declare const EFTogglePlay_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFTogglePlay extends EFTogglePlay_base {
13
- static styles: lit2.CSSResult[];
13
+ static styles: lit18.CSSResult[];
14
14
  playing: boolean;
15
15
  get efContext(): ControllableInterface | null;
16
16
  connectedCallback(): void;
17
17
  disconnectedCallback(): void;
18
- render(): lit_html1.TemplateResult<1>;
18
+ render(): lit_html18.TemplateResult<1>;
19
19
  togglePlay: () => void;
20
20
  private getPlaybackController;
21
21
  }
@@ -1,7 +1,7 @@
1
1
  import { PanZoomTransform } from "../elements/EFPanZoom.js";
2
- import * as lit12 from "lit";
2
+ import * as lit28 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html10 from "lit-html";
4
+ import * as lit_html27 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFTransformHandles.d.ts
7
7
  interface TransformBounds {
@@ -49,7 +49,7 @@ declare class EFTransformHandles extends LitElement {
49
49
  * Note: Not a @state() property to avoid re-renders during interaction.
50
50
  */
51
51
  private initialBounds;
52
- static styles: lit12.CSSResult;
52
+ static styles: lit28.CSSResult;
53
53
  private resizeObserver?;
54
54
  /**
55
55
  * Single source of truth for zoom scale.
@@ -79,7 +79,7 @@ declare class EFTransformHandles extends LitElement {
79
79
  private handleMouseMove;
80
80
  private handleMouseUp;
81
81
  private cleanup;
82
- render(): lit_html10.TemplateResult<1>;
82
+ render(): lit_html27.TemplateResult<1>;
83
83
  }
84
84
  declare global {
85
85
  interface HTMLElementTagNameMap {
@@ -1,14 +1,14 @@
1
1
  import { ContextMixinInterface } from "./ContextMixin.js";
2
2
  import { RenderToVideoOptions } from "../preview/renderTimegroupToVideo.js";
3
- import * as lit34 from "lit";
3
+ import * as lit12 from "lit";
4
4
  import { LitElement, PropertyValueMap } from "lit";
5
- import * as lit_html31 from "lit-html";
6
- import * as lit_html_directives_ref_js0 from "lit-html/directives/ref.js";
5
+ import * as lit_html12 from "lit-html";
6
+ import * as lit_html_directives_ref_js2 from "lit-html/directives/ref.js";
7
7
 
8
8
  //#region src/gui/EFWorkbench.d.ts
9
9
  declare const EFWorkbench_base: (new (...args: any[]) => ContextMixinInterface) & typeof LitElement;
10
10
  declare class EFWorkbench extends EFWorkbench_base {
11
- static styles: lit34.CSSResult[];
11
+ static styles: lit12.CSSResult[];
12
12
  rendering: boolean;
13
13
  private panZoomTransform;
14
14
  private isExporting;
@@ -60,7 +60,7 @@ declare class EFWorkbench extends EFWorkbench_base {
60
60
  private canvasPreviewResult;
61
61
  private canvasAnimationFrame;
62
62
  private boundHandleTransformChanged;
63
- focusOverlay: lit_html_directives_ref_js0.Ref<HTMLDivElement>;
63
+ focusOverlay: lit_html_directives_ref_js2.Ref<HTMLDivElement>;
64
64
  handleStageWheel(event: WheelEvent): void;
65
65
  connectedCallback(): void;
66
66
  disconnectedCallback(): void;
@@ -193,7 +193,7 @@ declare class EFWorkbench extends EFWorkbench_base {
193
193
  updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
194
194
  drawOverlays: () => void;
195
195
  private renderPlaybackStats;
196
- render(): lit_html31.TemplateResult<1>;
196
+ render(): lit_html12.TemplateResult<1>;
197
197
  }
198
198
  declare global {
199
199
  interface HTMLElementTagNameMap {
@@ -1,12 +1,12 @@
1
1
  import { SelectionContext } from "../../canvas/selection/selectionContext.js";
2
- import * as lit36 from "lit";
2
+ import * as lit14 from "lit";
3
3
  import { LitElement, PropertyValues } from "lit";
4
- import * as lit_html34 from "lit-html";
4
+ import * as lit_html15 from "lit-html";
5
5
 
6
6
  //#region src/gui/hierarchy/EFHierarchy.d.ts
7
7
  declare const EFHierarchy_base: typeof LitElement;
8
8
  declare class EFHierarchy extends EFHierarchy_base {
9
- static styles: lit36.CSSResult[];
9
+ static styles: lit14.CSSResult[];
10
10
  target: string;
11
11
  header: string;
12
12
  showHeader: boolean;
@@ -53,7 +53,7 @@ declare class EFHierarchy extends EFHierarchy_base {
53
53
  private autoSelectFirstRootTimegroup;
54
54
  private setupSelectionListener;
55
55
  private removeSelectionListener;
56
- render(): lit_html34.TemplateResult<1>;
56
+ render(): lit_html15.TemplateResult<1>;
57
57
  }
58
58
  declare global {
59
59
  interface HTMLElementTagNameMap {
@@ -4,13 +4,13 @@ import { EFAudio } from "../../elements/EFAudio.js";
4
4
  import { EFTimegroup } from "../../elements/EFTimegroup.js";
5
5
  import { EFImage } from "../../elements/EFImage.js";
6
6
  import { HierarchyContext } from "./hierarchyContext.js";
7
- import * as lit0 from "lit";
7
+ import * as lit15 from "lit";
8
8
  import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";
9
9
 
10
10
  //#region src/gui/hierarchy/EFHierarchyItem.d.ts
11
11
  declare const EFHierarchyItem_base: typeof LitElement;
12
12
  declare class EFHierarchyItem<ElementType extends HTMLElement = HTMLElement> extends EFHierarchyItem_base {
13
- static styles: lit0.CSSResult[];
13
+ static styles: lit15.CSSResult[];
14
14
  hierarchyContext?: HierarchyContext;
15
15
  canvasSelectionContext?: SelectionContext;
16
16
  element: ElementType;
@@ -1,7 +1,7 @@
1
1
  import { TemporalMixinInterface } from "../../elements/EFTemporal.js";
2
2
  import { SelectionContext } from "../../canvas/selection/selectionContext.js";
3
3
  import { TimelineState } from "./timelineStateContext.js";
4
- import * as lit22 from "lit";
4
+ import * as lit38 from "lit";
5
5
  import { LitElement, PropertyValues, TemplateResult } from "lit";
6
6
 
7
7
  //#region src/gui/timeline/EFTimeline.d.ts
@@ -14,7 +14,7 @@ declare const EFTimeline_base: typeof LitElement;
14
14
  */
15
15
  declare class EFTimeline extends EFTimeline_base {
16
16
  #private;
17
- static styles: lit22.CSSResult[];
17
+ static styles: lit38.CSSResult[];
18
18
  /**
19
19
  * Target element ID or "selection" to derive from canvas selection.
20
20
  *
@@ -1,6 +1,6 @@
1
- import * as lit23 from "lit";
1
+ import * as lit39 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html20 from "lit-html";
3
+ import * as lit_html37 from "lit-html";
4
4
 
5
5
  //#region src/gui/timeline/TrimHandles.d.ts
6
6
  interface TrimChangeDetail {
@@ -11,7 +11,7 @@ interface TrimChangeDetail {
11
11
  }
12
12
  declare const EFTrimHandles_base: typeof LitElement;
13
13
  declare class EFTrimHandles extends EFTrimHandles_base {
14
- static styles: lit23.CSSResult[];
14
+ static styles: lit39.CSSResult[];
15
15
  elementId: string;
16
16
  pixelsPerMs: number;
17
17
  trimStartMs: number;
@@ -24,7 +24,7 @@ declare class EFTrimHandles extends EFTrimHandles_base {
24
24
  private handlePointerDown;
25
25
  private handlePointerMove;
26
26
  private handlePointerUp;
27
- render(): lit_html20.TemplateResult<1>;
27
+ render(): lit_html37.TemplateResult<1>;
28
28
  }
29
29
  declare global {
30
30
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { TreeItem } from "./treeContext.js";
2
- import * as lit0 from "lit";
2
+ import * as lit16 from "lit";
3
3
  import { LitElement, PropertyValues } from "lit";
4
- import * as lit_html0 from "lit-html";
4
+ import * as lit_html16 from "lit-html";
5
5
 
6
6
  //#region src/gui/tree/EFTree.d.ts
7
7
 
@@ -28,7 +28,7 @@ import * as lit_html0 from "lit-html";
28
28
  * ```
29
29
  */
30
30
  declare class EFTree extends LitElement {
31
- static styles: lit0.CSSResult;
31
+ static styles: lit16.CSSResult;
32
32
  /** Tree items to display */
33
33
  items: TreeItem[];
34
34
  /** Optional header text */
@@ -47,7 +47,7 @@ declare class EFTree extends LitElement {
47
47
  protected willUpdate(changedProperties: PropertyValues): void;
48
48
  protected updated(changedProperties: PropertyValues): void;
49
49
  connectedCallback(): void;
50
- render(): lit_html0.TemplateResult<1>;
50
+ render(): lit_html16.TemplateResult<1>;
51
51
  }
52
52
  declare global {
53
53
  interface HTMLElementTagNameMap {
@@ -1,7 +1,7 @@
1
1
  import { TreeContext, TreeItem } from "./treeContext.js";
2
- import * as lit1 from "lit";
2
+ import * as lit17 from "lit";
3
3
  import { LitElement, nothing } from "lit";
4
- import * as lit_html0 from "lit-html";
4
+ import * as lit_html17 from "lit-html";
5
5
 
6
6
  //#region src/gui/tree/EFTreeItem.d.ts
7
7
 
@@ -17,7 +17,7 @@ import * as lit_html0 from "lit-html";
17
17
  * @fires tree-item-click - When item is clicked (for selection)
18
18
  */
19
19
  declare class EFTreeItem extends LitElement {
20
- static styles: lit1.CSSResult;
20
+ static styles: lit17.CSSResult;
21
21
  treeContext?: TreeContext;
22
22
  item: TreeItem;
23
23
  private localExpanded;
@@ -26,7 +26,7 @@ declare class EFTreeItem extends LitElement {
26
26
  get hasChildren(): boolean;
27
27
  private handleClick;
28
28
  private handleExpandClick;
29
- render(): lit_html0.TemplateResult<1> | typeof nothing;
29
+ render(): lit_html17.TemplateResult<1> | typeof nothing;
30
30
  }
31
31
  declare global {
32
32
  interface HTMLElementTagNameMap {
@@ -48,8 +48,13 @@ function setPreviewPresentationMode(mode) {
48
48
  /**
49
49
  * Get the current render mode for HTML-to-canvas capture.
50
50
  * Defaults to "native" if available, otherwise "foreignObject".
51
+ *
52
+ * Checks EF_NATIVE_RENDER URL parameter to force native mode when set.
51
53
  */
52
54
  function getRenderMode() {
55
+ try {
56
+ if (new URLSearchParams(window.location.search).get("EF_NATIVE_RENDER") === "1") return isNativeCanvasApiAvailable() ? "native" : "foreignObject";
57
+ } catch {}
53
58
  try {
54
59
  const stored = localStorage.getItem(STORAGE_KEY_RENDER_MODE);
55
60
  if (stored === "foreignObject" || stored === "native") return stored;
@@ -1 +1 @@
1
- {"version":3,"file":"previewSettings.js","names":["_nativeApiAvailable: boolean | null","VALID_NUMERIC_SCALES: number[]"],"sources":["../../src/preview/previewSettings.ts"],"sourcesContent":["/**\n * Preview settings module with localStorage persistence.\n * Manages configuration for the preview rendering system.\n */\n\nconst STORAGE_KEY_NATIVE_CANVAS_API = \"ef-preview-native-canvas-api-enabled\";\nconst STORAGE_KEY_PRESENTATION_MODE = \"ef-preview-presentation-mode\";\nconst STORAGE_KEY_RENDER_MODE = \"ef-preview-render-mode\";\nconst STORAGE_KEY_RESOLUTION_SCALE = \"ef-preview-resolution-scale\";\nconst STORAGE_KEY_SHOW_STATS = \"ef-preview-show-stats\";\n\n/**\n * Render mode for HTML-to-canvas capture operations.\n * - \"foreignObject\": SVG foreignObject serialization (fallback, works everywhere)\n * - \"native\": Chrome's experimental drawElementImage API (fastest when available)\n */\nexport type RenderMode = \"foreignObject\" | \"native\";\n\n/**\n * Preview resolution scale factor.\n * Controls how much to reduce the preview render resolution for better performance.\n * - 1: Full resolution (default)\n * - 0.75: 3/4 resolution\n * - 0.5: Half resolution\n * - 0.25: Quarter resolution\n * - \"auto\": Adaptive resolution that scales down during motion to prevent dropped frames,\n * and renders at full resolution when at rest\n */\nexport type PreviewResolutionScale = 1 | 0.75 | 0.5 | 0.25 | \"auto\";\n\n/**\n * Preview presentation mode determines how content is rendered in the workbench.\n * - \"clone\": Show a clone with computed styles applied (alias for \"computed\")\n * - \"dom\": Show the original DOM content directly (alias for \"original\")\n * - \"original\": Show the original DOM content directly\n * - \"computed\": Show a clone with computed styles applied\n * - \"canvas\": Render to canvas using the active rendering path\n */\nexport type PreviewPresentationMode = \"original\" | \"computed\" | \"canvas\" | \"clone\" | \"dom\";\n\n/**\n * Cached detection result for native HTML-in-Canvas API availability.\n * This is separate from the user preference - it detects browser capability.\n */\nlet _nativeApiAvailable: boolean | null = null;\n\n/**\n * Detect if the native HTML-in-Canvas API (drawElementImage) is available in this browser.\n * This checks browser capability, not user preference.\n * \n * The API is available in Chrome Canary with chrome://flags/#canvas-draw-element\n * @see https://github.com/WICG/html-in-canvas\n */\nexport function isNativeCanvasApiAvailable(): boolean {\n if (_nativeApiAvailable === null) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n _nativeApiAvailable = ctx !== null && \"drawElementImage\" in ctx;\n }\n return _nativeApiAvailable;\n}\n\n/**\n * Check if the native Canvas API is enabled by the user.\n * Returns true only if:\n * 1. The API is available in the browser\n * 2. The user has not explicitly disabled it\n * \n * Default is enabled when available (opt-out model).\n */\nexport function isNativeCanvasApiEnabled(): boolean {\n if (!isNativeCanvasApiAvailable()) {\n return false;\n }\n \n try {\n const stored = localStorage.getItem(STORAGE_KEY_NATIVE_CANVAS_API);\n // Default to true (enabled) when available, unless explicitly disabled\n if (stored === null) {\n return true;\n }\n return stored === \"true\";\n } catch {\n // localStorage not available (e.g., private browsing)\n return true;\n }\n}\n\n/**\n * Set whether the native Canvas API should be used (when available).\n * Persists to localStorage and dispatches a change event.\n */\nexport function setNativeCanvasApiEnabled(enabled: boolean): void {\n try {\n localStorage.setItem(STORAGE_KEY_NATIVE_CANVAS_API, String(enabled));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { nativeCanvasApiEnabled: enabled }\n }));\n}\n\n/**\n * Get the current raw user preference (ignoring availability).\n * Returns null if no preference is set.\n */\nexport function getNativeCanvasApiPreference(): boolean | null {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_NATIVE_CANVAS_API);\n if (stored === null) {\n return null;\n }\n return stored === \"true\";\n } catch {\n return null;\n }\n}\n\n/**\n * Subscribe to preview settings changes.\n * @returns Unsubscribe function\n */\nexport function onPreviewSettingsChanged(\n callback: (detail: PreviewSettingsChangedDetail) => void\n): () => void {\n const handler = (event: Event) => {\n callback((event as CustomEvent).detail);\n };\n window.addEventListener(\"ef-preview-settings-changed\", handler);\n return () => window.removeEventListener(\"ef-preview-settings-changed\", handler);\n}\n\n/**\n * Detail object for preview settings change events.\n */\nexport interface PreviewSettingsChangedDetail {\n nativeCanvasApiEnabled?: boolean;\n presentationMode?: PreviewPresentationMode;\n renderMode?: RenderMode;\n resolutionScale?: PreviewResolutionScale;\n showStats?: boolean;\n}\n\n/**\n * Get the current preview presentation mode.\n * Defaults to \"original\" if not set.\n */\nexport function getPreviewPresentationMode(): PreviewPresentationMode {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_PRESENTATION_MODE);\n if (stored === \"original\" || stored === \"computed\" || stored === \"canvas\") {\n return stored;\n }\n return \"original\";\n } catch {\n return \"original\";\n }\n}\n\n/**\n * Set the preview presentation mode.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setPreviewPresentationMode(mode: PreviewPresentationMode): void {\n try {\n localStorage.setItem(STORAGE_KEY_PRESENTATION_MODE, mode);\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { presentationMode: mode }\n }));\n}\n\n/**\n * Get the current render mode for HTML-to-canvas capture.\n * Defaults to \"native\" if available, otherwise \"foreignObject\".\n */\nexport function getRenderMode(): RenderMode {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_RENDER_MODE);\n if (stored === \"foreignObject\" || stored === \"native\") {\n return stored;\n }\n // Default: prefer native if available, otherwise foreignObject\n return isNativeCanvasApiAvailable() ? \"native\" : \"foreignObject\";\n } catch {\n return isNativeCanvasApiAvailable() ? \"native\" : \"foreignObject\";\n }\n}\n\n/**\n * Set the render mode for HTML-to-canvas capture.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setRenderMode(mode: RenderMode): void {\n try {\n localStorage.setItem(STORAGE_KEY_RENDER_MODE, mode);\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { renderMode: mode }\n }));\n}\n\n/**\n * Valid numeric resolution scale values.\n */\nconst VALID_NUMERIC_SCALES: number[] = [1, 0.75, 0.5, 0.25];\n\n/**\n * Get the current preview resolution scale.\n * Defaults to 1 (full resolution) if not set.\n */\nexport function getPreviewResolutionScale(): PreviewResolutionScale {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_RESOLUTION_SCALE);\n if (stored !== null) {\n // Check for \"auto\" string first\n if (stored === \"auto\") {\n return \"auto\";\n }\n // Then check numeric values\n const parsed = parseFloat(stored);\n if (VALID_NUMERIC_SCALES.includes(parsed)) {\n return parsed as PreviewResolutionScale;\n }\n }\n return 1;\n } catch {\n return 1;\n }\n}\n\n/**\n * Set the preview resolution scale.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setPreviewResolutionScale(scale: PreviewResolutionScale): void {\n try {\n localStorage.setItem(STORAGE_KEY_RESOLUTION_SCALE, String(scale));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { resolutionScale: scale }\n }));\n}\n\n/**\n * Get whether performance stats should be shown.\n * Defaults to false (stats hidden by default).\n */\nexport function getShowStats(): boolean {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_SHOW_STATS);\n return stored === \"true\";\n } catch {\n return false;\n }\n}\n\n/**\n * Set whether performance stats should be shown.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setShowStats(enabled: boolean): void {\n try {\n localStorage.setItem(STORAGE_KEY_SHOW_STATS, String(enabled));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { showStats: enabled }\n }));\n}\n\n"],"mappings":";AAMA,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,yBAAyB;;;;;AAmC/B,IAAIA,sBAAsC;;;;;;;;AAS1C,SAAgB,6BAAsC;AACpD,KAAI,wBAAwB,MAAM;EAEhC,MAAM,MADS,SAAS,cAAc,SAAS,CAC5B,WAAW,KAAK;AACnC,wBAAsB,QAAQ,QAAQ,sBAAsB;;AAE9D,QAAO;;;;;;AA2FT,SAAgB,6BAAsD;AACpE,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,8BAA8B;AAClE,MAAI,WAAW,cAAc,WAAW,cAAc,WAAW,SAC/D,QAAO;AAET,SAAO;SACD;AACN,SAAO;;;;;;;AAQX,SAAgB,2BAA2B,MAAqC;AAC9E,KAAI;AACF,eAAa,QAAQ,+BAA+B,KAAK;SACnD;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,kBAAkB,MAAM,EACnC,CAAC,CAAC;;;;;;AAOL,SAAgB,gBAA4B;AAC1C,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,wBAAwB;AAC5D,MAAI,WAAW,mBAAmB,WAAW,SAC3C,QAAO;AAGT,SAAO,4BAA4B,GAAG,WAAW;SAC3C;AACN,SAAO,4BAA4B,GAAG,WAAW;;;;;;;AAQrD,SAAgB,cAAc,MAAwB;AACpD,KAAI;AACF,eAAa,QAAQ,yBAAyB,KAAK;SAC7C;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,YAAY,MAAM,EAC7B,CAAC,CAAC;;;;;AAML,MAAMC,uBAAiC;CAAC;CAAG;CAAM;CAAK;CAAK;;;;;AAM3D,SAAgB,4BAAoD;AAClE,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,6BAA6B;AACjE,MAAI,WAAW,MAAM;AAEnB,OAAI,WAAW,OACb,QAAO;GAGT,MAAM,SAAS,WAAW,OAAO;AACjC,OAAI,qBAAqB,SAAS,OAAO,CACvC,QAAO;;AAGX,SAAO;SACD;AACN,SAAO;;;;;;;AAQX,SAAgB,0BAA0B,OAAqC;AAC7E,KAAI;AACF,eAAa,QAAQ,8BAA8B,OAAO,MAAM,CAAC;SAC3D;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,iBAAiB,OAAO,EACnC,CAAC,CAAC;;;;;;AAOL,SAAgB,eAAwB;AACtC,KAAI;AAEF,SADe,aAAa,QAAQ,uBAAuB,KACzC;SACZ;AACN,SAAO;;;;;;;AAQX,SAAgB,aAAa,SAAwB;AACnD,KAAI;AACF,eAAa,QAAQ,wBAAwB,OAAO,QAAQ,CAAC;SACvD;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,WAAW,SAAS,EAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"previewSettings.js","names":["_nativeApiAvailable: boolean | null","VALID_NUMERIC_SCALES: number[]"],"sources":["../../src/preview/previewSettings.ts"],"sourcesContent":["/**\n * Preview settings module with localStorage persistence.\n * Manages configuration for the preview rendering system.\n */\n\nconst STORAGE_KEY_NATIVE_CANVAS_API = \"ef-preview-native-canvas-api-enabled\";\nconst STORAGE_KEY_PRESENTATION_MODE = \"ef-preview-presentation-mode\";\nconst STORAGE_KEY_RENDER_MODE = \"ef-preview-render-mode\";\nconst STORAGE_KEY_RESOLUTION_SCALE = \"ef-preview-resolution-scale\";\nconst STORAGE_KEY_SHOW_STATS = \"ef-preview-show-stats\";\n\n/**\n * Render mode for HTML-to-canvas capture operations.\n * - \"foreignObject\": SVG foreignObject serialization (fallback, works everywhere)\n * - \"native\": Chrome's experimental drawElementImage API (fastest when available)\n */\nexport type RenderMode = \"foreignObject\" | \"native\";\n\n/**\n * Preview resolution scale factor.\n * Controls how much to reduce the preview render resolution for better performance.\n * - 1: Full resolution (default)\n * - 0.75: 3/4 resolution\n * - 0.5: Half resolution\n * - 0.25: Quarter resolution\n * - \"auto\": Adaptive resolution that scales down during motion to prevent dropped frames,\n * and renders at full resolution when at rest\n */\nexport type PreviewResolutionScale = 1 | 0.75 | 0.5 | 0.25 | \"auto\";\n\n/**\n * Preview presentation mode determines how content is rendered in the workbench.\n * - \"clone\": Show a clone with computed styles applied (alias for \"computed\")\n * - \"dom\": Show the original DOM content directly (alias for \"original\")\n * - \"original\": Show the original DOM content directly\n * - \"computed\": Show a clone with computed styles applied\n * - \"canvas\": Render to canvas using the active rendering path\n */\nexport type PreviewPresentationMode = \"original\" | \"computed\" | \"canvas\" | \"clone\" | \"dom\";\n\n/**\n * Cached detection result for native HTML-in-Canvas API availability.\n * This is separate from the user preference - it detects browser capability.\n */\nlet _nativeApiAvailable: boolean | null = null;\n\n/**\n * Detect if the native HTML-in-Canvas API (drawElementImage) is available in this browser.\n * This checks browser capability, not user preference.\n * \n * The API is available in Chrome Canary with chrome://flags/#canvas-draw-element\n * @see https://github.com/WICG/html-in-canvas\n */\nexport function isNativeCanvasApiAvailable(): boolean {\n if (_nativeApiAvailable === null) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n _nativeApiAvailable = ctx !== null && \"drawElementImage\" in ctx;\n }\n return _nativeApiAvailable;\n}\n\n/**\n * Check if the native Canvas API is enabled by the user.\n * Returns true only if:\n * 1. The API is available in the browser\n * 2. The user has not explicitly disabled it\n * \n * Default is enabled when available (opt-out model).\n */\nexport function isNativeCanvasApiEnabled(): boolean {\n if (!isNativeCanvasApiAvailable()) {\n return false;\n }\n \n try {\n const stored = localStorage.getItem(STORAGE_KEY_NATIVE_CANVAS_API);\n // Default to true (enabled) when available, unless explicitly disabled\n if (stored === null) {\n return true;\n }\n return stored === \"true\";\n } catch {\n // localStorage not available (e.g., private browsing)\n return true;\n }\n}\n\n/**\n * Set whether the native Canvas API should be used (when available).\n * Persists to localStorage and dispatches a change event.\n */\nexport function setNativeCanvasApiEnabled(enabled: boolean): void {\n try {\n localStorage.setItem(STORAGE_KEY_NATIVE_CANVAS_API, String(enabled));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { nativeCanvasApiEnabled: enabled }\n }));\n}\n\n/**\n * Get the current raw user preference (ignoring availability).\n * Returns null if no preference is set.\n */\nexport function getNativeCanvasApiPreference(): boolean | null {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_NATIVE_CANVAS_API);\n if (stored === null) {\n return null;\n }\n return stored === \"true\";\n } catch {\n return null;\n }\n}\n\n/**\n * Subscribe to preview settings changes.\n * @returns Unsubscribe function\n */\nexport function onPreviewSettingsChanged(\n callback: (detail: PreviewSettingsChangedDetail) => void\n): () => void {\n const handler = (event: Event) => {\n callback((event as CustomEvent).detail);\n };\n window.addEventListener(\"ef-preview-settings-changed\", handler);\n return () => window.removeEventListener(\"ef-preview-settings-changed\", handler);\n}\n\n/**\n * Detail object for preview settings change events.\n */\nexport interface PreviewSettingsChangedDetail {\n nativeCanvasApiEnabled?: boolean;\n presentationMode?: PreviewPresentationMode;\n renderMode?: RenderMode;\n resolutionScale?: PreviewResolutionScale;\n showStats?: boolean;\n}\n\n/**\n * Get the current preview presentation mode.\n * Defaults to \"original\" if not set.\n */\nexport function getPreviewPresentationMode(): PreviewPresentationMode {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_PRESENTATION_MODE);\n if (stored === \"original\" || stored === \"computed\" || stored === \"canvas\") {\n return stored;\n }\n return \"original\";\n } catch {\n return \"original\";\n }\n}\n\n/**\n * Set the preview presentation mode.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setPreviewPresentationMode(mode: PreviewPresentationMode): void {\n try {\n localStorage.setItem(STORAGE_KEY_PRESENTATION_MODE, mode);\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { presentationMode: mode }\n }));\n}\n\n/**\n * Get the current render mode for HTML-to-canvas capture.\n * Defaults to \"native\" if available, otherwise \"foreignObject\".\n * \n * Checks EF_NATIVE_RENDER URL parameter to force native mode when set.\n */\nexport function getRenderMode(): RenderMode {\n // Check URL parameter first (CLI flag override)\n try {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get(\"EF_NATIVE_RENDER\") === \"1\") {\n // Force native mode if available, otherwise fall back to foreignObject\n return isNativeCanvasApiAvailable() ? \"native\" : \"foreignObject\";\n }\n } catch {\n // URL parsing failed, continue with normal logic\n }\n\n try {\n const stored = localStorage.getItem(STORAGE_KEY_RENDER_MODE);\n if (stored === \"foreignObject\" || stored === \"native\") {\n return stored;\n }\n // Default: prefer native if available, otherwise foreignObject\n return isNativeCanvasApiAvailable() ? \"native\" : \"foreignObject\";\n } catch {\n return isNativeCanvasApiAvailable() ? \"native\" : \"foreignObject\";\n }\n}\n\n/**\n * Set the render mode for HTML-to-canvas capture.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setRenderMode(mode: RenderMode): void {\n try {\n localStorage.setItem(STORAGE_KEY_RENDER_MODE, mode);\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { renderMode: mode }\n }));\n}\n\n/**\n * Valid numeric resolution scale values.\n */\nconst VALID_NUMERIC_SCALES: number[] = [1, 0.75, 0.5, 0.25];\n\n/**\n * Get the current preview resolution scale.\n * Defaults to 1 (full resolution) if not set.\n */\nexport function getPreviewResolutionScale(): PreviewResolutionScale {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_RESOLUTION_SCALE);\n if (stored !== null) {\n // Check for \"auto\" string first\n if (stored === \"auto\") {\n return \"auto\";\n }\n // Then check numeric values\n const parsed = parseFloat(stored);\n if (VALID_NUMERIC_SCALES.includes(parsed)) {\n return parsed as PreviewResolutionScale;\n }\n }\n return 1;\n } catch {\n return 1;\n }\n}\n\n/**\n * Set the preview resolution scale.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setPreviewResolutionScale(scale: PreviewResolutionScale): void {\n try {\n localStorage.setItem(STORAGE_KEY_RESOLUTION_SCALE, String(scale));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { resolutionScale: scale }\n }));\n}\n\n/**\n * Get whether performance stats should be shown.\n * Defaults to false (stats hidden by default).\n */\nexport function getShowStats(): boolean {\n try {\n const stored = localStorage.getItem(STORAGE_KEY_SHOW_STATS);\n return stored === \"true\";\n } catch {\n return false;\n }\n}\n\n/**\n * Set whether performance stats should be shown.\n * Persists to localStorage and dispatches a change event.\n */\nexport function setShowStats(enabled: boolean): void {\n try {\n localStorage.setItem(STORAGE_KEY_SHOW_STATS, String(enabled));\n } catch {\n // localStorage not available\n }\n \n // Dispatch event so components can react to the change\n window.dispatchEvent(new CustomEvent(\"ef-preview-settings-changed\", {\n detail: { showStats: enabled }\n }));\n}\n\n"],"mappings":";AAMA,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,yBAAyB;;;;;AAmC/B,IAAIA,sBAAsC;;;;;;;;AAS1C,SAAgB,6BAAsC;AACpD,KAAI,wBAAwB,MAAM;EAEhC,MAAM,MADS,SAAS,cAAc,SAAS,CAC5B,WAAW,KAAK;AACnC,wBAAsB,QAAQ,QAAQ,sBAAsB;;AAE9D,QAAO;;;;;;AA2FT,SAAgB,6BAAsD;AACpE,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,8BAA8B;AAClE,MAAI,WAAW,cAAc,WAAW,cAAc,WAAW,SAC/D,QAAO;AAET,SAAO;SACD;AACN,SAAO;;;;;;;AAQX,SAAgB,2BAA2B,MAAqC;AAC9E,KAAI;AACF,eAAa,QAAQ,+BAA+B,KAAK;SACnD;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,kBAAkB,MAAM,EACnC,CAAC,CAAC;;;;;;;;AASL,SAAgB,gBAA4B;AAE1C,KAAI;AAEF,MADkB,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAC/C,IAAI,mBAAmB,KAAK,IAExC,QAAO,4BAA4B,GAAG,WAAW;SAE7C;AAIR,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,wBAAwB;AAC5D,MAAI,WAAW,mBAAmB,WAAW,SAC3C,QAAO;AAGT,SAAO,4BAA4B,GAAG,WAAW;SAC3C;AACN,SAAO,4BAA4B,GAAG,WAAW;;;;;;;AAQrD,SAAgB,cAAc,MAAwB;AACpD,KAAI;AACF,eAAa,QAAQ,yBAAyB,KAAK;SAC7C;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,YAAY,MAAM,EAC7B,CAAC,CAAC;;;;;AAML,MAAMC,uBAAiC;CAAC;CAAG;CAAM;CAAK;CAAK;;;;;AAM3D,SAAgB,4BAAoD;AAClE,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,6BAA6B;AACjE,MAAI,WAAW,MAAM;AAEnB,OAAI,WAAW,OACb,QAAO;GAGT,MAAM,SAAS,WAAW,OAAO;AACjC,OAAI,qBAAqB,SAAS,OAAO,CACvC,QAAO;;AAGX,SAAO;SACD;AACN,SAAO;;;;;;;AAQX,SAAgB,0BAA0B,OAAqC;AAC7E,KAAI;AACF,eAAa,QAAQ,8BAA8B,OAAO,MAAM,CAAC;SAC3D;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,iBAAiB,OAAO,EACnC,CAAC,CAAC;;;;;;AAOL,SAAgB,eAAwB;AACtC,KAAI;AAEF,SADe,aAAa,QAAQ,uBAAuB,KACzC;SACZ;AACN,SAAO;;;;;;;AAQX,SAAgB,aAAa,SAAwB;AACnD,KAAI;AACF,eAAa,QAAQ,wBAAwB,OAAO,QAAQ,CAAC;SACvD;AAKR,QAAO,cAAc,IAAI,YAAY,+BAA+B,EAClE,QAAQ,EAAE,WAAW,SAAS,EAC/B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@editframe/elements",
3
- "version": "0.32.0-beta.1",
3
+ "version": "0.33.0-beta",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -13,7 +13,7 @@
13
13
  "license": "UNLICENSED",
14
14
  "dependencies": {
15
15
  "@bramus/style-observer": "^1.3.0",
16
- "@editframe/assets": "0.32.0-beta.1",
16
+ "@editframe/assets": "0.33.0-beta",
17
17
  "@lit/context": "^1.1.6",
18
18
  "@lit/task": "^1.0.3",
19
19
  "@opentelemetry/api": "^1.9.0",