@editframe/react 0.47.2 → 0.48.1
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.
- package/dist/components/TimeDisplay.js +1 -2
- package/dist/components/TimeDisplay.js.map +1 -1
- package/dist/components/TimelineRoot.js +1 -2
- package/dist/components/TimelineRoot.js.map +1 -1
- package/dist/elements/Audio.js +1 -2
- package/dist/elements/Audio.js.map +1 -1
- package/dist/elements/Captions.js +1 -2
- package/dist/elements/Captions.js.map +1 -1
- package/dist/elements/Image.js +1 -2
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/PanZoom.js +1 -2
- package/dist/elements/PanZoom.js.map +1 -1
- package/dist/elements/Surface.js +1 -2
- package/dist/elements/Surface.js.map +1 -1
- package/dist/elements/Text.js +1 -2
- package/dist/elements/Text.js.map +1 -1
- package/dist/elements/Timegroup.js +1 -2
- package/dist/elements/Timegroup.js.map +1 -1
- package/dist/elements/Video.js +1 -2
- package/dist/elements/Video.js.map +1 -1
- package/dist/elements/Waveform.js +1 -2
- package/dist/elements/Waveform.js.map +1 -1
- package/dist/gui/Configuration.js +1 -2
- package/dist/gui/Configuration.js.map +1 -1
- package/dist/gui/Controls.js +1 -2
- package/dist/gui/Controls.js.map +1 -1
- package/dist/gui/EFDial.js +1 -2
- package/dist/gui/EFDial.js.map +1 -1
- package/dist/gui/EFResizableBox.js +1 -2
- package/dist/gui/EFResizableBox.js.map +1 -1
- package/dist/gui/EFTransformHandles.js +1 -2
- package/dist/gui/EFTransformHandles.js.map +1 -1
- package/dist/gui/Filmstrip.js +1 -2
- package/dist/gui/Filmstrip.js.map +1 -1
- package/dist/gui/FitScale.js +1 -2
- package/dist/gui/FitScale.js.map +1 -1
- package/dist/gui/FocusOverlay.js +1 -2
- package/dist/gui/FocusOverlay.js.map +1 -1
- package/dist/gui/OverlayItem.js +1 -2
- package/dist/gui/OverlayItem.js.map +1 -1
- package/dist/gui/OverlayLayer.js +1 -2
- package/dist/gui/OverlayLayer.js.map +1 -1
- package/dist/gui/Pause.js +1 -2
- package/dist/gui/Pause.js.map +1 -1
- package/dist/gui/Play.js +1 -2
- package/dist/gui/Play.js.map +1 -1
- package/dist/gui/Preview.js +1 -2
- package/dist/gui/Preview.js.map +1 -1
- package/dist/gui/Scrubber.js +2 -3
- package/dist/gui/Scrubber.js.map +1 -1
- package/dist/gui/ThumbnailStrip.js +1 -2
- package/dist/gui/ThumbnailStrip.js.map +1 -1
- package/dist/gui/TimelineRuler.js +2 -3
- package/dist/gui/TimelineRuler.js.map +1 -1
- package/dist/gui/ToggleLoop.js +1 -2
- package/dist/gui/ToggleLoop.js.map +1 -1
- package/dist/gui/TogglePlay.js +1 -2
- package/dist/gui/TogglePlay.js.map +1 -1
- package/dist/gui/TrimHandles.js +1 -2
- package/dist/gui/TrimHandles.js.map +1 -1
- package/dist/gui/Workbench.js +1 -2
- package/dist/gui/Workbench.js.map +1 -1
- package/dist/hooks/create-element.d.ts +2 -3
- package/dist/hooks/create-element.js +6 -7
- package/dist/hooks/create-element.js.map +1 -1
- package/dist/hooks/useMediaInfo.js +1 -2
- package/dist/hooks/useMediaInfo.js.map +1 -1
- package/dist/hooks/usePanZoomTransform.d.ts +0 -1
- package/dist/hooks/usePanZoomTransform.js +1 -2
- package/dist/hooks/usePanZoomTransform.js.map +1 -1
- package/dist/hooks/useRenderData.js +1 -2
- package/dist/hooks/useRenderData.js.map +1 -1
- package/dist/hooks/useTimingInfo.d.ts +2 -2
- package/dist/hooks/useTimingInfo.js +1 -2
- package/dist/hooks/useTimingInfo.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/r3f/CompositionCanvas.d.ts +2 -3
- package/dist/r3f/CompositionCanvas.js +2 -3
- package/dist/r3f/CompositionCanvas.js.map +1 -1
- package/dist/r3f/OffscreenCompositionCanvas.d.ts +2 -3
- package/dist/r3f/OffscreenCompositionCanvas.js +1 -2
- package/dist/r3f/OffscreenCompositionCanvas.js.map +1 -1
- package/dist/r3f/index.js +1 -2
- package/dist/r3f/renderOffscreen.d.ts +0 -1
- package/dist/r3f/renderOffscreen.js +4 -5
- package/dist/r3f/renderOffscreen.js.map +1 -1
- package/dist/server.js +1 -2
- package/package.json +3 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThumbnailStrip.js","names":["EFThumbnailStripElement"],"sources":["../../src/gui/ThumbnailStrip.tsx"],"
|
|
1
|
+
{"version":3,"file":"ThumbnailStrip.js","names":["EFThumbnailStripElement"],"sources":["../../src/gui/ThumbnailStrip.tsx"],"mappings":";;;;AAIA,MAAa,iBAAiB,gBAAgB;CAC5C,SAAS;CACT,cAAcA;CACd,OAAO;CACR,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { createComponent } from "../hooks/create-element.js";
|
|
|
2
2
|
import { EFTimelineRuler } from "@editframe/elements";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
|
|
6
5
|
//#region src/gui/TimelineRuler.tsx
|
|
7
6
|
const BaseTimelineRuler = createComponent({
|
|
8
7
|
tagName: "ef-timeline-ruler",
|
|
@@ -11,7 +10,7 @@ const BaseTimelineRuler = createComponent({
|
|
|
11
10
|
displayName: "TimelineRuler"
|
|
12
11
|
});
|
|
13
12
|
const TimelineRuler = React.forwardRef((props, ref) => {
|
|
14
|
-
const { scrollContainerRef
|
|
13
|
+
const { scrollContainerRef, ...restProps } = props;
|
|
15
14
|
const elementRef = React.useRef(null);
|
|
16
15
|
React.useLayoutEffect(() => {
|
|
17
16
|
if (elementRef.current && scrollContainerRef?.current) elementRef.current.scrollContainerElement = scrollContainerRef.current;
|
|
@@ -27,7 +26,7 @@ const TimelineRuler = React.forwardRef((props, ref) => {
|
|
|
27
26
|
});
|
|
28
27
|
});
|
|
29
28
|
TimelineRuler.displayName = "TimelineRuler";
|
|
30
|
-
|
|
31
29
|
//#endregion
|
|
32
30
|
export { TimelineRuler };
|
|
31
|
+
|
|
33
32
|
//# sourceMappingURL=TimelineRuler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimelineRuler.js","names":[],"sources":["../../src/gui/TimelineRuler.tsx"],"
|
|
1
|
+
{"version":3,"file":"TimelineRuler.js","names":[],"sources":["../../src/gui/TimelineRuler.tsx"],"mappings":";;;;;AAaA,MAAM,oBAAoB,gBAAqC;CAC7D,SAAS;CACT,cAAc;CACd,OAAO;CACP,aAAa;CACd,CAAC;AAEF,MAAa,gBAAgB,MAAM,YAAiD,OAAO,QAAQ;CACjG,MAAM,EAAE,oBAAoB,GAAG,cAAc;CAC7C,MAAM,aAAa,MAAM,OAA+B,KAAK;AAE7D,OAAM,sBAAsB;AAC1B,MAAI,WAAW,WAAW,oBAAoB,QAC3C,YAAW,QAAgB,yBAAyB,mBAAmB;WAC/D,WAAW,QACnB,YAAW,QAAgB,yBAAyB;IAEtD,CAAC,oBAAoB,QAAQ,CAAC;AAEjC,QACE,oBAAC,mBAAD;EACE,GAAK;EACL,MAAM,SAAS;AACb,cAAW,UAAU;AACrB,OAAI,OAAO,QAAQ,WAAY,KAAI,KAAK;YAC/B,IAAK,KAAI,UAAU;;EAE9B,CAAA;EAEJ;AAEF,cAAc,cAAc"}
|
package/dist/gui/ToggleLoop.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { createComponent } from "../hooks/create-element.js";
|
|
2
2
|
import { EFToggleLoop } from "@editframe/elements";
|
|
3
3
|
import React from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/gui/ToggleLoop.ts
|
|
6
5
|
const ToggleLoop = createComponent({
|
|
7
6
|
tagName: "ef-toggle-loop",
|
|
8
7
|
elementClass: EFToggleLoop,
|
|
9
8
|
react: React
|
|
10
9
|
});
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
11
|
export { ToggleLoop };
|
|
12
|
+
|
|
14
13
|
//# sourceMappingURL=ToggleLoop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleLoop.js","names":["EFToggleLoopElement"],"sources":["../../src/gui/ToggleLoop.ts"],"
|
|
1
|
+
{"version":3,"file":"ToggleLoop.js","names":["EFToggleLoopElement"],"sources":["../../src/gui/ToggleLoop.ts"],"mappings":";;;;AAIA,MAAa,aAAa,gBAAgB;CACxC,SAAS;CACT,cAAcA;CACd,OAAO;CACR,CAAC"}
|
package/dist/gui/TogglePlay.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { createComponent } from "../hooks/create-element.js";
|
|
2
2
|
import { EFTogglePlay } from "@editframe/elements";
|
|
3
3
|
import React from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/gui/TogglePlay.ts
|
|
6
5
|
const TogglePlay = createComponent({
|
|
7
6
|
tagName: "ef-toggle-play",
|
|
8
7
|
elementClass: EFTogglePlay,
|
|
9
8
|
react: React
|
|
10
9
|
});
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
11
|
export { TogglePlay };
|
|
12
|
+
|
|
14
13
|
//# sourceMappingURL=TogglePlay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TogglePlay.js","names":["EFTogglePlayElement"],"sources":["../../src/gui/TogglePlay.ts"],"
|
|
1
|
+
{"version":3,"file":"TogglePlay.js","names":["EFTogglePlayElement"],"sources":["../../src/gui/TogglePlay.ts"],"mappings":";;;;AAIA,MAAa,aAAa,gBAAgB;CACxC,SAAS;CACT,cAAcA;CACd,OAAO;CACR,CAAC"}
|
package/dist/gui/TrimHandles.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createComponent } from "../hooks/create-element.js";
|
|
2
2
|
import { EFTrimHandles } from "@editframe/elements";
|
|
3
3
|
import React from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/gui/TrimHandles.ts
|
|
6
5
|
const TrimHandles = createComponent({
|
|
7
6
|
tagName: "ef-trim-handles",
|
|
@@ -12,7 +11,7 @@ const TrimHandles = createComponent({
|
|
|
12
11
|
onTrimChangeEnd: "trim-change-end"
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
|
-
|
|
16
14
|
//#endregion
|
|
17
15
|
export { TrimHandles };
|
|
16
|
+
|
|
18
17
|
//# sourceMappingURL=TrimHandles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrimHandles.js","names":["EFTrimHandlesElement"],"sources":["../../src/gui/TrimHandles.ts"],"
|
|
1
|
+
{"version":3,"file":"TrimHandles.js","names":["EFTrimHandlesElement"],"sources":["../../src/gui/TrimHandles.ts"],"mappings":";;;;AAIA,MAAa,cAAc,gBAAgB;CACzC,SAAS;CACT,cAAcA;CACd,OAAO;CACP,QAAQ;EACN,cAAc;EACd,iBAAiB;EAClB;CACF,CAAC"}
|
package/dist/gui/Workbench.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { createComponent } from "../hooks/create-element.js";
|
|
2
2
|
import { EFWorkbench } from "@editframe/elements";
|
|
3
3
|
import React from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/gui/Workbench.ts
|
|
6
5
|
const Workbench = createComponent({
|
|
7
6
|
tagName: "ef-workbench",
|
|
8
7
|
elementClass: EFWorkbench,
|
|
9
8
|
react: React
|
|
10
9
|
});
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
11
|
export { Workbench };
|
|
12
|
+
|
|
14
13
|
//# sourceMappingURL=Workbench.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workbench.js","names":["EFWorkbenchElement"],"sources":["../../src/gui/Workbench.ts"],"
|
|
1
|
+
{"version":3,"file":"Workbench.js","names":["EFWorkbenchElement"],"sources":["../../src/gui/Workbench.ts"],"mappings":";;;;AAIA,MAAa,YAAY,gBAAgB;CACvC,SAAS;CACT,cAAcA;CACd,OAAO;CACR,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/hooks/create-element.d.ts
|
|
4
|
-
|
|
5
4
|
/**
|
|
6
5
|
* Branded string that carries the DOM event type at the type level.
|
|
7
6
|
* At runtime it's just a string (the DOM event name).
|
|
8
7
|
*/
|
|
9
|
-
type EventName<T
|
|
10
|
-
__eventType?: T
|
|
8
|
+
type EventName<T extends Event = Event> = string & {
|
|
9
|
+
__eventType?: T;
|
|
11
10
|
};
|
|
12
11
|
type EventNames = Record<string, EventName>;
|
|
13
12
|
type EventListeners<E extends EventNames> = { [K in keyof E]?: (e: E[K] extends EventName<infer T> ? T : Event) => void };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/create-element.ts
|
|
4
3
|
let isomorphicEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
|
|
5
4
|
const reservedReactProperties = new Set([
|
|
@@ -36,11 +35,11 @@ function setProperty(node, name, value, old, events) {
|
|
|
36
35
|
node[name] = value;
|
|
37
36
|
if ((value === void 0 || value === null) && name in HTMLElement.prototype) node.removeAttribute(name);
|
|
38
37
|
}
|
|
39
|
-
function createComponent({ react: React
|
|
38
|
+
function createComponent({ react: React, tagName, elementClass, events, displayName }) {
|
|
40
39
|
const eventProps = new Set(Object.keys(events ?? {}));
|
|
41
|
-
const ReactComponent = React
|
|
42
|
-
const elementRef = React
|
|
43
|
-
const prevPropsRef = React
|
|
40
|
+
const ReactComponent = React.forwardRef((props, ref) => {
|
|
41
|
+
const elementRef = React.useRef(null);
|
|
42
|
+
const prevPropsRef = React.useRef(/* @__PURE__ */ new Map());
|
|
44
43
|
const reactProps = { suppressHydrationWarning: true };
|
|
45
44
|
const elementProps = {};
|
|
46
45
|
for (const [k, v] of Object.entries(props)) {
|
|
@@ -66,7 +65,7 @@ function createComponent({ react: React$1, tagName, elementClass, events, displa
|
|
|
66
65
|
prevPropsRef.current = newProps;
|
|
67
66
|
elementRef.current.removeAttribute("defer-hydration");
|
|
68
67
|
}, [props]);
|
|
69
|
-
return React
|
|
68
|
+
return React.createElement(tagName, {
|
|
70
69
|
...reactProps,
|
|
71
70
|
ref: (node) => {
|
|
72
71
|
elementRef.current = node;
|
|
@@ -78,7 +77,7 @@ function createComponent({ react: React$1, tagName, elementClass, events, displa
|
|
|
78
77
|
ReactComponent.displayName = displayName ?? elementClass.name;
|
|
79
78
|
return ReactComponent;
|
|
80
79
|
}
|
|
81
|
-
|
|
82
80
|
//#endregion
|
|
83
81
|
export { createComponent };
|
|
82
|
+
|
|
84
83
|
//# sourceMappingURL=create-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-element.js","names":[
|
|
1
|
+
{"version":3,"file":"create-element.js","names":[],"sources":["../../src/hooks/create-element.ts"],"mappings":";;AAEA,IAAI,mBAAmB,OAAO,WAAW,cAAc,MAAM,kBAAkB,MAAM;AAMrF,MAAM,0BAA0B,IAAI,IAAI;CAAC;CAAY;CAAa;CAAO;CAAS;CAAY,CAAC;AAC/F,MAAM,iCAAiB,IAAI,SAAoD;AAqC/E,SAAS,yBAAyB,MAAe,OAAe,UAAgC;CAC9F,IAAI,SAAS,eAAe,IAAI,KAAK;AACrC,KAAI,CAAC,QAAQ;AACX,2BAAS,IAAI,KAAK;AAClB,iBAAe,IAAI,MAAM,OAAO;;CAElC,IAAI,UAAU,OAAO,IAAI,MAAM;AAE/B,KAAI,SACF,KAAI,CAAC,SAAS;AACZ,YAAU,EAAE,aAAa,UAAU;AACnC,SAAO,IAAI,OAAO,QAAQ;AAC1B,OAAK,iBAAiB,OAAO,QAAQ;OAErC,SAAQ,cAAc;UAEf,SAAS;AAClB,SAAO,OAAO,MAAM;AACpB,OAAK,oBAAoB,OAAO,QAAQ;;;AAI5C,SAAS,YACP,MACA,MACA,OACA,KACA,QACA;CACA,MAAM,QAAQ,SAAS;AACvB,KAAI,OAAO;AACT,MAAI,UAAU,IAAK,0BAAyB,MAAM,OAAO,MAA6B;AACtF;;AAEF,MAAK,QAAmB;AACxB,MAAK,UAAU,KAAA,KAAa,UAAU,SAAS,QAAQ,YAAY,UACjE,MAAK,gBAAgB,KAAK;;AAI9B,SAAgB,gBAAkE,EAChF,OAAO,OACP,SACA,cACA,QACA,eACyC;CACzC,MAAM,aAAa,IAAI,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC;CAErD,MAAM,iBAAiB,MAAM,YAAqC,OAAO,QAAQ;EAC/E,MAAM,aAAa,MAAM,OAAiB,KAAK;EAC/C,MAAM,eAAe,MAAM,uBAAO,IAAI,KAAsB,CAAC;EAE7D,MAAM,aAAsC,EAC1C,0BAA0B,MAC3B;EACD,MAAM,eAAwC,EAAE;AAEhD,OAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,MAAM,EAAE;AAC1C,OAAI,wBAAwB,IAAI,EAAE,EAAE;AAClC,eAAW,MAAM,cAAc,UAAU,KAAK;AAC9C;;AAEF,OAAI,WAAW,IAAI,EAAE,IAAI,KAAK,aAAa,WAAW;AACpD,iBAAa,KAAK;AAClB;;AAEF,cAAW,KAAK;;AAGlB,yBAAuB;AACrB,OAAI,CAAC,WAAW,QAAS;GACzB,MAAM,2BAAW,IAAI,KAAsB;AAC3C,QAAK,MAAM,OAAO,cAAc;AAC9B,gBACE,WAAW,SACX,KACA,MAAM,MACN,aAAa,QAAQ,IAAI,IAAI,EAC7B,OACD;AACD,iBAAa,QAAQ,OAAO,IAAI;AAChC,aAAS,IAAI,KAAK,MAAM,KAA2B;;AAErD,QAAK,MAAM,CAAC,KAAK,UAAU,aAAa,QACtC,aAAY,WAAW,SAAS,KAAK,KAAA,GAAW,OAAO,OAAO;AAEhE,gBAAa,UAAU;AAGvB,cAAW,QAAQ,gBAAgB,kBAAkB;KACpD,CAAC,MAAM,CAAC;AAEX,SAAO,MAAM,cAAc,SAAS;GAClC,GAAG;GACH,MAAM,SAAY;AAChB,eAAW,UAAU;AACrB,QAAI,OAAO,QAAQ,WAAY,KAAI,KAAK;aAC/B,IAAK,KAAI,UAAU;;GAE/B,CAAC;GACF;AAEF,gBAAe,cAAc,eAAe,aAAa;AACzD,QAAO"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/useMediaInfo.ts
|
|
4
3
|
var MediaInfoController = class {
|
|
5
4
|
#isConnected = false;
|
|
@@ -53,7 +52,7 @@ const useMediaInfo = (mediaRef) => {
|
|
|
53
52
|
}, [mediaRef.current]);
|
|
54
53
|
return mediaInfo;
|
|
55
54
|
};
|
|
56
|
-
|
|
57
55
|
//#endregion
|
|
58
56
|
export { useMediaInfo };
|
|
57
|
+
|
|
59
58
|
//# sourceMappingURL=useMediaInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaInfo.js","names":["
|
|
1
|
+
{"version":3,"file":"useMediaInfo.js","names":["#isConnected","#lastIntrinsicDurationMs","#updateReactState"],"sources":["../../src/hooks/useMediaInfo.ts"],"mappings":";;AAaA,IAAa,sBAAb,MAA+D;CAC7D,eAAe;CACf,2BAA+C,KAAA;CAE/C,YACE,MACA,cACA;AAFQ,OAAA,OAAA;AACA,OAAA,eAAA;AAER,OAAK,KAAK,cAAc,KAAK;;CAG/B,gBAAsB;AACpB,QAAA,cAAoB;;CAGtB,mBAAyB;AACvB,QAAA,cAAoB;AACpB,OAAK,KAAK,iBAAiB,KAAK;;CAGlC,cAAoB;AAClB,MAAI,CAAC,MAAA,YAAmB;EAExB,MAAM,sBAAsB,KAAK,KAAK;AAEtC,MAAI,wBAAwB,MAAA,yBAA+B;AACzD,SAAA,0BAAgC;AAChC,SAAA,kBAAwB;;;CAI5B,oBAA0B;EACxB,MAAM,sBAAsB,KAAK,KAAK;AACtC,OAAK,aAAa;GAChB;GACA,SAAS,wBAAwB,KAAA;GAClC,CAAC;;CAGJ,UAAgB;AACd,QAAA,kBAAwB;;;AAI5B,MAAa,gBAAgB,aAAmD;CAC9E,MAAM,CAAC,WAAW,gBAAgB,SAAoB;EACpD,qBAAqB,KAAA;EACrB,SAAS;EACV,CAAC;AAEF,iBAAgB;AACd,MAAI,CAAC,SAAS,QAAS;EAEvB,MAAM,aAAa,IAAI,oBAAoB,SAAS,SAAS,aAAa;AAE1E,MAAI,SAAS,QAAQ,aAAa;AAChC,cAAW,eAAe;AAC1B,cAAW,SAAS;;AAGtB,eAAa;AACX,cAAW,kBAAkB;;IAE9B,CAAC,SAAS,QAAQ,CAAC;AAEtB,QAAO"}
|
|
@@ -2,7 +2,6 @@ import { PanZoomTransform } from "@editframe/elements";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/usePanZoomTransform.d.ts
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* Hook to get PanZoom transform values from a PanZoom element ref.
|
|
8
7
|
* Listens to transform-changed events to keep transform values in sync.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/usePanZoomTransform.ts
|
|
4
3
|
/**
|
|
5
4
|
* Hook to get PanZoom transform values from a PanZoom element ref.
|
|
@@ -43,7 +42,7 @@ function usePanZoomTransform(panZoomRef) {
|
|
|
43
42
|
}, [panZoomRef]);
|
|
44
43
|
return transform;
|
|
45
44
|
}
|
|
46
|
-
|
|
47
45
|
//#endregion
|
|
48
46
|
export { usePanZoomTransform };
|
|
47
|
+
|
|
49
48
|
//# sourceMappingURL=usePanZoomTransform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePanZoomTransform.js","names":[],"sources":["../../src/hooks/usePanZoomTransform.ts"],"
|
|
1
|
+
{"version":3,"file":"usePanZoomTransform.js","names":[],"sources":["../../src/hooks/usePanZoomTransform.ts"],"mappings":";;;;;;;;;;;;;;AAeA,SAAgB,oBACd,YACkB;CAClB,MAAM,CAAC,WAAW,gBAAgB,SAA2B;EAC3D,OAAO;EACP,GAAG;EACH,GAAG;EACJ,CAAC;AAEF,iBAAgB;EACd,MAAM,UAAU,WAAW;AAC3B,MAAI,CAAC,QACH;AAIF,eAAa;GACX,OAAO,QAAQ,SAAS;GACxB,GAAG,QAAQ,KAAK;GAChB,GAAG,QAAQ,KAAK;GACjB,CAAC;EAGF,MAAM,0BAA0B,MAAa;GAC3C,MAAM,cAAc;AACpB,OAAI,YAAY,OACd,cAAa,YAAY,OAAO;OAGhC,cAAa;IACX,OAAO,QAAQ,SAAS;IACxB,GAAG,QAAQ,KAAK;IAChB,GAAG,QAAQ,KAAK;IACjB,CAAC;;AAIN,UAAQ,iBAAiB,qBAAqB,uBAAuB;AAErE,eAAa;AACX,WAAQ,oBAAoB,qBAAqB,uBAAuB;;IAEzE,CAAC,WAAW,CAAC;AAEhB,QAAO"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { getRenderData } from "@editframe/elements";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/hooks/useRenderData.ts
|
|
5
4
|
function useRenderData() {
|
|
6
5
|
return useMemo(() => getRenderData(), []);
|
|
7
6
|
}
|
|
8
|
-
|
|
9
7
|
//#endregion
|
|
10
8
|
export { useRenderData };
|
|
9
|
+
|
|
11
10
|
//# sourceMappingURL=useRenderData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRenderData.js","names":[],"sources":["../../src/hooks/useRenderData.ts"],"
|
|
1
|
+
{"version":3,"file":"useRenderData.js","names":[],"sources":["../../src/hooks/useRenderData.ts"],"mappings":";;;AAGA,SAAgB,gBAA4C;AAC1D,QAAO,cAAc,eAAkB,EAAE,EAAE,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EFTimegroup } from "@editframe/elements";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _$react from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/useTimingInfo.d.ts
|
|
5
5
|
declare const useTimingInfo: (timegroupRef?: React.RefObject<EFTimegroup | null>) => {
|
|
6
|
-
ref:
|
|
6
|
+
ref: _$react.RefObject<EFTimegroup | null>;
|
|
7
7
|
ownCurrentTimeMs: number;
|
|
8
8
|
durationMs: number;
|
|
9
9
|
percentComplete: number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/useTimingInfo.ts
|
|
4
3
|
var CurrentTimeController = class {
|
|
5
4
|
#isConnected = false;
|
|
@@ -60,7 +59,7 @@ const useTimingInfo = (timegroupRef = useRef(null)) => {
|
|
|
60
59
|
ref: timegroupRef
|
|
61
60
|
};
|
|
62
61
|
};
|
|
63
|
-
|
|
64
62
|
//#endregion
|
|
65
63
|
export { useTimingInfo };
|
|
64
|
+
|
|
66
65
|
//# sourceMappingURL=useTimingInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTimingInfo.js","names":["
|
|
1
|
+
{"version":3,"file":"useTimingInfo.js","names":["#isConnected","#lastOwnCurrentTimeMs","#lastDurationMs","#updateReactState"],"sources":["../../src/hooks/useTimingInfo.ts"],"mappings":";;AAUA,IAAM,wBAAN,MAA0D;CACxD,eAAe;CACf,wBAAwB;CACxB,kBAAkB;CAElB,YACE,MAIA,gBACA;AALQ,OAAA,OAAA;AAIA,OAAA,iBAAA;AAER,OAAK,KAAK,cAAc,KAAK;;CAG/B,gBAAsB;AACpB,QAAA,cAAoB;;CAGtB,mBAAyB;AACvB,QAAA,cAAoB;AACpB,OAAK,KAAK,iBAAiB,KAAK;;CAGlC,cAAoB;AAClB,MAAI,CAAC,MAAA,YAAmB;EAExB,MAAM,EAAE,kBAAkB,eAAe,KAAK;AAE9C,MAAI,qBAAqB,MAAA,wBAA8B,eAAe,MAAA,gBAAsB;AAC1F,SAAA,uBAA6B;AAC7B,SAAA,iBAAuB;AACvB,SAAA,kBAAwB;;;CAI5B,oBAA0B;EACxB,MAAM,EAAE,kBAAkB,eAAe,KAAK;AAC9C,OAAK,eAAe;GAClB;GACA;GACA,iBAAiB,aAAa,IAAI,mBAAmB,aAAa;GACnE,CAAC;;CAGJ,UAAgB;AACd,QAAA,kBAAwB;;;AAI5B,MAAa,iBACX,eAAoD,OAAoB,KAAK,KAC1E;CACH,MAAM,CAAC,UAAU,eAAe,SAAmB;EACjD,kBAAkB;EAClB,YAAY;EACZ,iBAAiB;EAClB,CAAC;AAEF,iBAAgB;AACd,MAAI,CAAC,aAAa,QAChB,OAAM,IAAI,MAAM,wBAAwB;EAG1C,MAAM,aAAa,IAAI,sBAAsB,aAAa,SAAS,YAAY;AAE/E,MAAI,aAAa,QAAQ,aAAa;AACpC,cAAW,eAAe;AAC1B,cAAW,SAAS;;AAGtB,eAAa;AACX,cAAW,kBAAkB;;IAE9B,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAO;EAAE,GAAG;EAAU,KAAK;EAAc"}
|
package/dist/index.js
CHANGED
|
@@ -34,5 +34,4 @@ import { useMediaInfo } from "./hooks/useMediaInfo.js";
|
|
|
34
34
|
import { usePanZoomTransform } from "./hooks/usePanZoomTransform.js";
|
|
35
35
|
import { useRenderData } from "./hooks/useRenderData.js";
|
|
36
36
|
import { elementNeedsFitScale, needsFitScale } from "@editframe/elements";
|
|
37
|
-
|
|
38
|
-
export { Audio, Captions, CaptionsActiveWord, CaptionsAfterActiveWord, CaptionsBeforeActiveWord, CaptionsSegment, Configuration, Controls, Dial, Filmstrip, FitScale, FocusOverlay, Image, OverlayItem, OverlayLayer, PanZoom, Pause, Play, Preview, ResizableBox, Scrubber, Surface, Text, TextSegment, ThumbnailStrip, TimeDisplay, Timegroup, TimelineRoot, TimelineRuler, ToggleLoop, TogglePlay, TransformHandles, TrimHandles, Video, Waveform, Workbench, elementNeedsFitScale, needsFitScale, useMediaInfo, usePanZoomTransform, useRenderData, useTimingInfo };
|
|
37
|
+
export { Audio, Captions, CaptionsActiveWord, CaptionsAfterActiveWord, CaptionsBeforeActiveWord, CaptionsSegment, Configuration, Controls, Dial, Filmstrip, FitScale, FocusOverlay, Image, OverlayItem, OverlayLayer, PanZoom, Pause, Play, Preview, ResizableBox, Scrubber, Surface, Text, TextSegment, ThumbnailStrip, TimeDisplay, Timegroup, TimelineRoot, TimelineRuler, ToggleLoop, TogglePlay, TransformHandles, TrimHandles, Video, Waveform, Workbench, elementNeedsFitScale, needsFitScale, useMediaInfo, usePanZoomTransform, useRenderData, useTimingInfo };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import { CanvasProps } from "@react-three/fiber";
|
|
4
4
|
|
|
5
5
|
//#region src/r3f/CompositionCanvas.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Hook to read the current composition time inside an R3F scene.
|
|
9
8
|
* Must be used within a `<CompositionCanvas>`.
|
|
@@ -26,7 +25,7 @@ declare function CompositionCanvas({
|
|
|
26
25
|
containerClassName,
|
|
27
26
|
gl: glProp,
|
|
28
27
|
...canvasProps
|
|
29
|
-
}: CompositionCanvasProps): react_jsx_runtime0.JSX.Element;
|
|
28
|
+
}: CompositionCanvasProps): _$react_jsx_runtime0.JSX.Element;
|
|
30
29
|
//#endregion
|
|
31
30
|
export { CompositionCanvas, CompositionCanvasProps, useCompositionTime };
|
|
32
31
|
//# sourceMappingURL=CompositionCanvas.d.ts.map
|
|
@@ -2,7 +2,6 @@ import { createContext, useContext, useEffect, useLayoutEffect, useRef, useState
|
|
|
2
2
|
import { flushSync } from "react-dom";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Canvas, useFrame, useThree } from "@react-three/fiber";
|
|
5
|
-
|
|
6
5
|
//#region src/r3f/CompositionCanvas.tsx
|
|
7
6
|
const CompositionTimeContext = createContext({
|
|
8
7
|
timeMs: 0,
|
|
@@ -31,7 +30,7 @@ function InvalidateOnTimeChange({ timeMs }) {
|
|
|
31
30
|
}, [timeMs, invalidate]);
|
|
32
31
|
return null;
|
|
33
32
|
}
|
|
34
|
-
function CompositionCanvas({ children, containerStyle, containerClassName, gl: glProp
|
|
33
|
+
function CompositionCanvas({ children, containerStyle, containerClassName, gl: glProp, ...canvasProps }) {
|
|
35
34
|
const [timeMs, setTimeMs] = useState(0);
|
|
36
35
|
const [durationMs, setDurationMs] = useState(0);
|
|
37
36
|
const containerRef = useRef(null);
|
|
@@ -89,7 +88,7 @@ function CompositionCanvas({ children, containerStyle, containerClassName, gl: g
|
|
|
89
88
|
})
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
|
-
|
|
93
91
|
//#endregion
|
|
94
92
|
export { CompositionCanvas, useCompositionTime };
|
|
93
|
+
|
|
95
94
|
//# sourceMappingURL=CompositionCanvas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositionCanvas.js","names":[],"sources":["../../src/r3f/CompositionCanvas.tsx"],"
|
|
1
|
+
{"version":3,"file":"CompositionCanvas.js","names":[],"sources":["../../src/r3f/CompositionCanvas.tsx"],"mappings":";;;;;AA4BA,MAAM,yBAAyB,cAG5B;CAAE,QAAQ;CAAG,YAAY;CAAG,CAAC;;;;;;;AAQhC,SAAgB,qBAAqB;AACnC,QAAO,WAAW,uBAAuB;;AAK3C,SAAS,SAAS;CAChB,MAAM,EAAE,OAAO,UAAU;AACzB,gBAAe;AACb,KAAG,YAAY,CAAC,QAAQ;GACxB;AACF,QAAO;;AAKT,SAAS,uBAAuB,EAAE,UAA8B;CAC9D,MAAM,EAAE,eAAe,UAAU;AAGjC,uBAAsB;AACpB,cAAY;IACX,CAAC,QAAQ,WAAW,CAAC;AACxB,QAAO;;AAYT,SAAgB,kBAAkB,EAChC,UACA,gBACA,oBACA,IAAI,QACJ,GAAG,eACsB;CACzB,MAAM,CAAC,QAAQ,aAAa,SAAS,EAAE;CACvC,MAAM,CAAC,YAAY,iBAAiB,SAAS,EAAE;CAC/C,MAAM,eAAe,OAAuB,KAAK;AAEjD,iBAAgB;EACd,MAAM,KAAK,aAAa;AACxB,MAAI,CAAC,GAAI;EAGT,MAAM,KAAK,GAAG,QAAQ,eAAe;AASrC,MAAI,CAAC,IAAI;AACP,WAAQ,KACN,mGAED;AACD;;AAGF,MAAI,GAAG,WAAY,eAAc,GAAG,WAAW;AAc/C,SAZgB,GAAG,gBAAgB,EAAE,kBAAkB,YAAY,UAAU;AAM3E,mBAAgB;AACd,cAAU,iBAAiB;AAC3B,kBAAc,IAAI;KAClB;IACF;IAGD,EAAE,CAAC;CAGN,MAAM,WACJ,OAAO,WAAW,WACd;EAAE,uBAAuB;EAAM,GAAG;EAAQ,GACzC,UAAU,EAAE,uBAAuB,MAAM;AAEhD,QACE,oBAAC,OAAD;EACE,KAAK;EACL,WAAW;EACX,OAAO;GACL,UAAU;GACV,OAAO;GACP,OAAO;GACP,QAAQ;GACR,GAAG;GACJ;YAED,oBAAC,QAAD;GACE,WAAU;GACV,IAAI;GASJ,QAAQ,EAAE,YAAY,MAAM;GAC5B,GAAI;GACJ,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ,GAAG,YAAY;IAAO;aAE9D,qBAAC,uBAAuB,UAAxB;IAAiC,OAAO;KAAE;KAAQ;KAAY;cAA9D;KACE,oBAAC,QAAD,EAAU,CAAA;KACV,oBAAC,wBAAD,EAAgC,QAAU,CAAA;KACzC;KAC+B;;GAC3B,CAAA;EACL,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import { CanvasProps } from "@react-three/fiber";
|
|
4
4
|
|
|
5
5
|
//#region src/r3f/OffscreenCompositionCanvas.d.ts
|
|
6
|
-
|
|
7
6
|
interface OffscreenCompositionCanvasProps {
|
|
8
7
|
/** Web worker that will handle R3F rendering */
|
|
9
8
|
worker: Worker;
|
|
@@ -22,7 +21,7 @@ declare function OffscreenCompositionCanvas({
|
|
|
22
21
|
containerStyle,
|
|
23
22
|
containerClassName,
|
|
24
23
|
canvasProps
|
|
25
|
-
}: OffscreenCompositionCanvasProps): react_jsx_runtime0.JSX.Element;
|
|
24
|
+
}: OffscreenCompositionCanvasProps): _$react_jsx_runtime0.JSX.Element;
|
|
26
25
|
//#endregion
|
|
27
26
|
export { OffscreenCompositionCanvas, OffscreenCompositionCanvasProps };
|
|
28
27
|
//# sourceMappingURL=OffscreenCompositionCanvas.d.ts.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from "react";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Canvas } from "@react-three/offscreen";
|
|
4
|
-
|
|
5
4
|
//#region src/r3f/OffscreenCompositionCanvas.tsx
|
|
6
5
|
function waitForBitmap(worker, requestId) {
|
|
7
6
|
return new Promise((resolve, reject) => {
|
|
@@ -113,7 +112,7 @@ function OffscreenCompositionCanvas({ worker, fallback, containerStyle, containe
|
|
|
113
112
|
})]
|
|
114
113
|
});
|
|
115
114
|
}
|
|
116
|
-
|
|
117
115
|
//#endregion
|
|
118
116
|
export { OffscreenCompositionCanvas };
|
|
117
|
+
|
|
119
118
|
//# sourceMappingURL=OffscreenCompositionCanvas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffscreenCompositionCanvas.js","names":["OffscreenCanvas"],"sources":["../../src/r3f/OffscreenCompositionCanvas.tsx"],"
|
|
1
|
+
{"version":3,"file":"OffscreenCompositionCanvas.js","names":["OffscreenCanvas"],"sources":["../../src/r3f/OffscreenCompositionCanvas.tsx"],"mappings":";;;;AAgDA,SAAS,cAAc,QAAgB,WAAyC;AAC9E,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,UAAU,iBAAiB;AAC/B,UAAO,oBAAoB,WAAW,QAAQ;AAC9C,0BAAO,IAAI,MAAM,0DAA0D,YAAY,CAAC;KACvF,IAAK;EAER,MAAM,WAAW,MAAoB;AACnC,OAAI,EAAE,KAAK,SAAS,mBAAmB,EAAE,KAAK,cAAc,WAAW;AACrE,iBAAa,QAAQ;AACrB,WAAO,oBAAoB,WAAW,QAAQ;AAC9C,YAAQ,EAAE,KAAK,OAAO;cACb,EAAE,KAAK,SAAS,SAAS;AAClC,iBAAa,QAAQ;AACrB,WAAO,oBAAoB,WAAW,QAAQ;AAC9C,2BAAO,IAAI,MAAM,8CAA8C,EAAE,KAAK,UAAU,CAAC;;;AAIrF,SAAO,iBAAiB,WAAW,QAAQ;GAC3C;;AAKJ,SAAgB,2BAA2B,EACzC,QACA,UACA,gBACA,oBACA,eACkC;CAClC,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,mBAAmB,OAA0B,KAAK;CACxD,MAAM,CAAC,YAAY,iBAAiB,SAAS;EAAE,OAAO;EAAG,QAAQ;EAAG,CAAC;AAIrE,iBAAgB;EACd,MAAM,YAAY,aAAa;AAC/B,MAAI,CAAC,UAAW;EAEhB,MAAM,WAAW,IAAI,gBAAgB,YAAY;AAC/C,QAAK,MAAM,SAAS,SAAS;IAC3B,MAAM,EAAE,OAAO,WAAW,MAAM;AAChC,kBAAc;KAAE;KAAO;KAAQ,CAAC;;IAElC;AAEF,WAAS,QAAQ,UAAU;AAC3B,eAAa,SAAS,YAAY;IACjC,EAAE,CAAC;AAIN,iBAAgB;EACd,MAAM,YAAY,aAAa;AAC/B,MAAI,CAAC,UAAW;EAGhB,MAAM,KAAK,UAAU,QAAQ,eAAe;AAE5C,MAAI,CAAC,IAAI;AACP,WAAQ,KACN,qHAED;AACD;;AAGF,MAAI,CAAC,GAAG,cAAc;AACpB,WAAQ,KAAK,8EAA8E;AAC3F;;EAGF,IAAI,gBAAgB;AAwCpB,SAtCgB,GAAG,aAAa,OAAO,EAAE,kBAAkB,iBAAiB;GAC1E,MAAM,YAAY;AAGlB,UAAO,YAAY;IACjB,MAAM;IACN,QAAQ;IACR;IACA;IACD,CAAC;AAEF,OAAI;IAEF,MAAM,SAAS,MAAM,cAAc,QAAQ,UAAU;IAGrD,MAAM,gBAAgB,iBAAiB;AACvC,QAAI,eAAe;KACjB,MAAM,MAAM,cAAc,WAAW,KAAK;AAC1C,SAAI,KAAK;AAEP,UAAI,cAAc,UAAU,OAAO,SAAS,cAAc,WAAW,OAAO,QAAQ;AAClF,qBAAc,QAAQ,OAAO;AAC7B,qBAAc,SAAS,OAAO;;AAIhC,UAAI,UAAU,QAAQ,GAAG,EAAE;;AAI7B,YAAO,OAAO;;YAET,OAAO;AACd,YAAQ,MAAM,oDAAoD,MAAM;;IAE1E;IAGD,CAAC,OAAO,CAAC;AAIZ,QACE,qBAAC,OAAD;EACE,KAAK;EACL,WAAW;EACX,OAAO;GACL,UAAU;GACV,OAAO;GACP,OAAO;GACP,QAAQ;GACR,GAAG;GACJ;YATH,CAYE,oBAACA,QAAD;GACU;GACE;GACV,GAAI;GACJ,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ,GAAG,aAAa;IAAO;GAC/D,CAAA,EAGF,oBAAC,UAAD;GACE,KAAK;GACL,0BAAuB;GACvB,OAAO,EAAE,SAAS,QAAQ;GAC1B,OAAO,WAAW;GAClB,QAAQ,WAAW;GACnB,CAAA,CACE"}
|
package/dist/r3f/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { OffscreenCompositionCanvas } from "./OffscreenCompositionCanvas.js";
|
|
2
2
|
import { CompositionCanvas, useCompositionTime } from "./CompositionCanvas.js";
|
|
3
3
|
import { renderOffscreen } from "./renderOffscreen.js";
|
|
4
|
-
|
|
5
|
-
export { CompositionCanvas, OffscreenCompositionCanvas, renderOffscreen, useCompositionTime };
|
|
4
|
+
export { CompositionCanvas, OffscreenCompositionCanvas, renderOffscreen, useCompositionTime };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import "react";
|
|
2
2
|
import { createEvents, createRoot } from "@react-three/fiber";
|
|
3
3
|
import * as THREE from "three";
|
|
4
|
-
|
|
5
4
|
//#region src/r3f/renderOffscreen.ts
|
|
6
5
|
const EVENTS = {
|
|
7
6
|
onClick: ["click", false],
|
|
@@ -159,11 +158,11 @@ function renderOffscreen(children) {
|
|
|
159
158
|
frameloop: "demand",
|
|
160
159
|
...props,
|
|
161
160
|
onCreated: (state) => {
|
|
162
|
-
if (props.eventPrefix) state.setEvents({ compute: (event, state
|
|
161
|
+
if (props.eventPrefix) state.setEvents({ compute: (event, state) => {
|
|
163
162
|
const x = event[props.eventPrefix + "X"];
|
|
164
163
|
const y = event[props.eventPrefix + "Y"];
|
|
165
|
-
state
|
|
166
|
-
state
|
|
164
|
+
state.pointer.set(x / state.size.width * 2 - 1, -(y / state.size.height) * 2 + 1);
|
|
165
|
+
state.raycaster.setFromCamera(state.pointer, state.camera);
|
|
167
166
|
} });
|
|
168
167
|
}
|
|
169
168
|
});
|
|
@@ -285,7 +284,7 @@ function renderOffscreen(children) {
|
|
|
285
284
|
}
|
|
286
285
|
};
|
|
287
286
|
}
|
|
288
|
-
|
|
289
287
|
//#endregion
|
|
290
288
|
export { renderOffscreen };
|
|
289
|
+
|
|
291
290
|
//# sourceMappingURL=renderOffscreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderOffscreen.js","names":["timeStore: TimeStore","root: ReconcilerRoot<HTMLCanvasElement> | null","offscreenCanvas: OffscreenCanvas | null","size: Size","emitter: Emitter<Record<any, unknown>>","state","e: any"],"sources":["../../src/r3f/renderOffscreen.ts"],"sourcesContent":["/**\n * Worker-side entry point for offscreen R3F rendering.\n *\n * This extends @react-three/offscreen's render() function with:\n * - Time synchronization store for composition time\n * - Frame rendering + pixel capture pipeline\n * - Support for deterministic frame-by-frame rendering\n *\n * Based on @react-three/offscreen render.ts but extended for Editframe's needs.\n */\n\nimport * as React from \"react\";\nimport { useSyncExternalStore } from \"react\";\n// @ts-ignore\nimport * as THREE from \"three\";\nimport type { Emitter } from \"mitt\";\nimport {\n createRoot,\n createEvents,\n ReconcilerRoot,\n Size,\n RootState,\n EventManager,\n Events,\n} from \"@react-three/fiber\";\nimport type { RenderFramePayload } from \"./worker-protocol\";\n\ntype R3FStore = Parameters<typeof createEvents>[0];\ntype DomEvent = PointerEvent | MouseEvent | WheelEvent;\n\n/* ━━ Event handling (from @react-three/offscreen) ━━━━━━━━━━━━━━━━━━━━━ */\n\nconst EVENTS = {\n onClick: [\"click\", false],\n onContextMenu: [\"contextmenu\", false],\n onDoubleClick: [\"dblclick\", false],\n onWheel: [\"wheel\", true],\n onPointerDown: [\"pointerdown\", true],\n onPointerUp: [\"pointerup\", true],\n onPointerLeave: [\"pointerleave\", true],\n onPointerMove: [\"pointermove\", true],\n onPointerCancel: [\"pointercancel\", true],\n onLostPointerCapture: [\"lostpointercapture\", true],\n} as const;\n\nfunction createPointerEvents(emitter: Emitter<Record<any, unknown>>) {\n return (store: R3FStore): EventManager<HTMLElement> => {\n const { handlePointer } = createEvents(store);\n\n return {\n priority: 1,\n enabled: true,\n compute(event, state) {\n state.pointer.set(\n (event.offsetX / state.size.width) * 2 - 1,\n -(event.offsetY / state.size.height) * 2 + 1,\n );\n state.raycaster.setFromCamera(state.pointer, state.camera);\n },\n\n connected: undefined,\n handlers: Object.keys(EVENTS).reduce(\n (acc, key) => ({ ...acc, [key]: handlePointer(key) }),\n {},\n ) as unknown as Events,\n connect: (target) => {\n const { set, events } = store.getState();\n events.disconnect?.();\n set((state) => ({ events: { ...state.events, connected: target } }));\n Object.entries(events?.handlers ?? []).forEach(([name, event]) => {\n const [eventName] = EVENTS[name as keyof typeof EVENTS];\n emitter.on(eventName as any, event as any);\n });\n },\n disconnect: () => {\n const { set, events } = store.getState();\n if (events.connected) {\n Object.entries(events.handlers ?? []).forEach(([name, event]) => {\n const [eventName] = EVENTS[name as keyof typeof EVENTS];\n emitter.off(eventName as any, event as any);\n });\n set((state) => ({\n events: { ...state.events, connected: undefined },\n }));\n }\n },\n };\n };\n}\n\n/* ━━ Time synchronization store ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\ninterface TimeStore {\n timeMs: number;\n durationMs: number;\n listeners: Set<() => void>;\n update(timeMs: number, durationMs: number): void;\n}\n\nconst timeStore: TimeStore = {\n timeMs: 0,\n durationMs: 0,\n listeners: new Set(),\n update(timeMs: number, durationMs: number) {\n this.timeMs = timeMs;\n this.durationMs = durationMs;\n this.listeners.forEach((l) => l());\n },\n};\n\n/**\n * Hook to read composition time inside R3F scenes running in a worker.\n * Must be used within a scene rendered by renderOffscreen().\n */\nexport function useCompositionTime() {\n const timeMs = useSyncExternalStore(\n (callback) => {\n timeStore.listeners.add(callback);\n return () => timeStore.listeners.delete(callback);\n },\n () => timeStore.timeMs,\n );\n\n const durationMs = useSyncExternalStore(\n (callback) => {\n timeStore.listeners.add(callback);\n return () => timeStore.listeners.delete(callback);\n },\n () => timeStore.durationMs,\n );\n\n return { timeMs, durationMs };\n}\n\n/* ━━ Worker entry point ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n/**\n * Render a React Three Fiber scene in a web worker with offscreen canvas.\n *\n * This extends @react-three/offscreen's render() with Editframe-specific features:\n * - Time synchronization via timeStore and useCompositionTime hook\n * - Frame-by-frame rendering on demand (renderFrame message)\n * - Pixel capture and transfer back to main thread via ImageBitmap\n *\n * @param children - React node containing the R3F scene\n *\n * @example\n * ```typescript\n * // worker.ts\n * import { renderOffscreen } from '@editframe/react/r3f';\n * import { MyScene } from './MyScene';\n *\n * renderOffscreen(<MyScene />);\n * ```\n */\nexport function renderOffscreen(children: React.ReactNode) {\n let root: ReconcilerRoot<HTMLCanvasElement> | null = null;\n let offscreenCanvas: OffscreenCanvas | null = null;\n let size: Size = { width: 0, height: 0, top: 0, left: 0 };\n let dpr = 1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handlers = new Map<any, Set<any>>();\n const emitter: Emitter<Record<any, unknown>> = {\n all: new Map(),\n on(type: any, handler: any) {\n const s = handlers.get(type) ?? new Set();\n s.add(handler);\n handlers.set(type, s);\n },\n off(type: any, handler: any) {\n handlers.get(type)?.delete(handler);\n },\n emit(type: any, event?: any) {\n handlers.get(type)?.forEach((h: any) => h(event));\n handlers.get(\"*\")?.forEach((h: any) => h(type, event));\n },\n };\n\n /* ━━ Init handler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handleInit = (payload: any) => {\n const { props, drawingSurface: canvas, width, top, left, height, pixelRatio } = payload;\n\n console.log(\"[renderOffscreen] Init received\", {\n width,\n height,\n pixelRatio,\n });\n\n try {\n // Unmount root if already mounted\n if (root) {\n root.unmount();\n }\n\n offscreenCanvas = canvas;\n\n // Shim the canvas into a fake window/document\n Object.assign(canvas, {\n pageXOffset: left,\n pageYOffset: top,\n clientLeft: left,\n clientTop: top,\n clientWidth: width,\n clientHeight: height,\n style: { touchAction: \"none\" },\n ownerDocument: canvas,\n documentElement: canvas,\n getBoundingClientRect() {\n return size;\n },\n setAttribute() {},\n setPointerCapture() {},\n releasePointerCapture() {},\n addEventListener(event: string, callback: () => void) {\n emitter.on(event, callback);\n },\n removeEventListener(event: string, callback: () => void) {\n emitter.off(event, callback);\n },\n });\n\n // Create react-three-fiber root\n root = createRoot(canvas);\n\n // Configure root\n root.configure({\n events: createPointerEvents(emitter),\n size: (size = { width, height, top, left }),\n dpr: (dpr = Math.min(Math.max(1, pixelRatio), 2)),\n frameloop: \"demand\", // Critical: only render when invalidated\n ...props,\n onCreated: (state: RootState) => {\n if (props.eventPrefix) {\n state.setEvents({\n compute: (event: DomEvent, state: RootState) => {\n const x = event[(props.eventPrefix + \"X\") as keyof DomEvent] as number;\n const y = event[(props.eventPrefix + \"Y\") as keyof DomEvent] as number;\n state.pointer.set((x / state.size.width) * 2 - 1, -(y / state.size.height) * 2 + 1);\n state.raycaster.setFromCamera(state.pointer, state.camera);\n },\n });\n }\n },\n });\n\n // Render children once\n console.log(\"[renderOffscreen] Rendering children\");\n root.render(children);\n console.log(\"[renderOffscreen] Init complete\");\n } catch (e: any) {\n console.error(\"[renderOffscreen] Init error:\", e);\n postMessage({ type: \"error\", payload: e?.message });\n }\n\n // Shim window to the canvas from here on\n (self as any).window = canvas;\n };\n\n /* ━━ Resize handler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handleResize = ({ width, height, top, left }: Size) => {\n if (!root) return;\n root.configure({ size: (size = { width, height, top, left }), dpr });\n };\n\n /* ━━ Event handler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handleEvents = (payload: any) => {\n emitter.emit(payload.eventName, {\n ...payload,\n preventDefault() {},\n stopPropagation() {},\n });\n };\n\n /* ━━ Props handler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handleProps = (payload: any) => {\n if (!root) return;\n if (payload.dpr) dpr = payload.dpr;\n root.configure({ size, dpr, ...payload });\n };\n\n /* ━━ Frame rendering + pixel capture ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handleRenderFrame = async ({ timeMs, durationMs, requestId }: RenderFramePayload) => {\n console.log(\"[renderOffscreen] Render frame\", { timeMs, requestId });\n\n try {\n // 1. Update time store (triggers React re-render via useSyncExternalStore)\n timeStore.update(timeMs, durationMs);\n\n // 2. Force R3F to process the state change and render synchronously\n const state = (root as any)?.store?.getState?.();\n if (!state) {\n throw new Error(\"[renderOffscreen] No R3F root state available\");\n }\n\n if (state?.gl && state?.scene && state?.camera) {\n // Mark as needing render\n state.invalidate();\n\n // Synchronous render (bypasses RAF)\n state.gl.render(state.scene, state.camera);\n\n // GPU sync - ensure all WebGL commands complete\n state.gl.getContext().finish();\n } else {\n throw new Error(\"[renderOffscreen] Missing gl/scene/camera in state\");\n }\n\n // 3. Capture pixels without clearing the canvas\n if (!offscreenCanvas) {\n throw new Error(\"[renderOffscreen] No offscreen canvas available\");\n }\n\n const bitmap = await createImageBitmap(offscreenCanvas);\n console.log(\"[renderOffscreen] Bitmap created\", {\n width: bitmap.width,\n height: bitmap.height,\n });\n\n // 4. Transfer back to main thread (zero-copy transfer)\n (self as any).postMessage({ type: \"frameRendered\", requestId, bitmap }, [bitmap]);\n } catch (e: any) {\n console.error(\"[renderOffscreen] Frame render error:\", e);\n postMessage({\n type: \"error\",\n message: e?.message || \"Unknown error in handleRenderFrame\",\n });\n }\n };\n\n /* ━━ Message routing ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n const handlerMap = {\n resize: handleResize,\n init: handleInit,\n dom_events: handleEvents,\n props: handleProps,\n renderFrame: handleRenderFrame,\n };\n\n self.onmessage = (event) => {\n const { type, payload } = event.data;\n const handler = handlerMap[type as keyof typeof handlerMap];\n if (handler) handler(payload);\n };\n\n /* ━━ Three.js shims for worker environment ━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n // Override ImageLoader to use fetch + createImageBitmap instead of DOM Image\n (THREE.ImageLoader.prototype as any).load = function (\n url: string,\n onLoad: (img: ImageBitmap) => void,\n _onProgress: () => void,\n onError: (e: Error) => void,\n ) {\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n const cached = THREE.Cache.get(url);\n\n if (cached !== undefined) {\n this.manager.itemStart(url);\n if (onLoad) onLoad(cached);\n this.manager.itemEnd(url);\n return cached;\n }\n\n const manager = this.manager;\n fetch(url)\n .then((res) => res.blob())\n .then((res) =>\n createImageBitmap(res, {\n premultiplyAlpha: \"none\",\n colorSpaceConversion: \"none\",\n }),\n )\n .then((bitmap) => {\n THREE.Cache.add(url, bitmap);\n if (onLoad) onLoad(bitmap);\n manager.itemEnd(url);\n })\n .catch(onError);\n\n return {};\n };\n\n /* ━━ DOM shims for worker environment ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */\n\n (self as any).window = {};\n (self as any).document = {};\n (self as any).Image = class {\n height = 1;\n width = 1;\n set onload(callback: any) {\n callback(true);\n }\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderOffscreen.js","names":[],"sources":["../../src/r3f/renderOffscreen.ts"],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -7,5 +7,4 @@ import { Timegroup } from "./elements/Timegroup.js";
|
|
|
7
7
|
import { Video } from "./elements/Video.js";
|
|
8
8
|
import { Waveform } from "./elements/Waveform.js";
|
|
9
9
|
import { PanZoom } from "./elements/PanZoom.js";
|
|
10
|
-
|
|
11
|
-
export { Audio, Captions, CaptionsActiveWord, CaptionsAfterActiveWord, CaptionsBeforeActiveWord, CaptionsSegment, Image, PanZoom, Surface, Text, TextSegment, Timegroup, Video, Waveform };
|
|
10
|
+
export { Audio, Captions, CaptionsActiveWord, CaptionsAfterActiveWord, CaptionsBeforeActiveWord, CaptionsSegment, Image, PanZoom, Surface, Text, TextSegment, Timegroup, Video, Waveform };
|