@editframe/react 0.7.0-beta.11 → 0.7.0-beta.15

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.
@@ -0,0 +1,3 @@
1
+ import { EFTimegroup as EFTimegroupElement } from '../../../elements/src';
2
+
3
+ export declare const EFTimegroup: import('../create-component.ts').ReactWebComponent<EFTimegroupElement, {}>;
@@ -0,0 +1,9 @@
1
+ export { EFAudio } from './elements/EFAudio.ts';
2
+ export { EFCaptions, EFCaptionsActiveWord } from './elements/EFCaptions.ts';
3
+ export { EFImage } from './elements/EFImage.ts';
4
+ export { EFTimegroup } from './elements/EFTimegroup.ts';
5
+ export { EFVideo } from './elements/EFVideo.ts';
6
+ export { EFWaveform } from './elements/EFWaveform.ts';
7
+ export { EFWorkbench } from './gui/EFWorkbench.ts';
8
+ export { EFFilmstrip } from './gui/EFFilmstrip.ts';
9
+ export { useTimingInfo } from './hooks/useTimingInfo.ts';
package/package.json CHANGED
@@ -1,16 +1,12 @@
1
1
  {
2
2
  "name": "@editframe/react",
3
- "version": "0.7.0-beta.11",
3
+ "version": "0.7.0-beta.15",
4
4
  "description": "",
5
5
  "exports": {
6
6
  ".": {
7
7
  "import": {
8
- "default": "./dist/index.js",
9
- "types": "./dist/packages/react/src/index.d.ts"
10
- },
11
- "require": {
12
- "default": "./dist/index.cjs",
13
- "types": "./dist/packages/react/src/index.d.ts"
8
+ "types": "./dist/packages/react/src/index.d.ts",
9
+ "default": "./dist/index.js"
14
10
  }
15
11
  }
16
12
  },
@@ -23,16 +19,18 @@
23
19
  "author": "",
24
20
  "license": "UNLICENSED",
25
21
  "dependencies": {
26
- "@editframe/elements": "0.7.0-beta.11",
22
+ "@editframe/elements": "0.7.0-beta.15",
27
23
  "@lit/react": "^1.0.5",
28
24
  "debug": "^4.3.5",
29
25
  "react": "^18.3.0",
30
26
  "react-dom": "^18.3.0"
31
27
  },
32
28
  "devDependencies": {
29
+ "@types/node": "^22.0.0",
33
30
  "@types/react": "^18.3.0",
34
31
  "@types/react-dom": "^18.3.0",
35
32
  "rollup-plugin-tsconfig-paths": "^1.5.2",
33
+ "typescript": "^5.5.4",
36
34
  "vite-plugin-dts": "^3.9.1",
37
35
  "vite-tsconfig-paths": "^4.3.2"
38
36
  }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { createComponent } from "../create-component";
2
+ import { createComponent } from "../create-component.ts";
3
3
  import { EFTimegroup as EFTimegroupElement } from "@editframe/elements";
4
4
 
5
5
  export const EFTimegroup = createComponent({
@@ -1,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- /**
4
- * @license
5
- * Copyright 2018 Google LLC
6
- * SPDX-License-Identifier: BSD-3-Clause
7
- */
8
- const reservedReactProperties = /* @__PURE__ */ new Set([
9
- "id",
10
- "children",
11
- "localName",
12
- "ref",
13
- "style",
14
- "className"
15
- ]);
16
- const listenedEvents = /* @__PURE__ */ new WeakMap();
17
- const addOrUpdateEventListener = (node, event, listener) => {
18
- let events = listenedEvents.get(node);
19
- if (events === void 0) {
20
- listenedEvents.set(node, events = /* @__PURE__ */ new Map());
21
- }
22
- let handler = events.get(event);
23
- if (listener !== void 0) {
24
- if (handler === void 0) {
25
- events.set(event, handler = { handleEvent: listener });
26
- node.addEventListener(event, handler);
27
- } else {
28
- handler.handleEvent = listener;
29
- }
30
- } else if (handler !== void 0) {
31
- events.delete(event);
32
- node.removeEventListener(event, handler);
33
- }
34
- };
35
- const setProperty = (node, name, value, old, events) => {
36
- const event = events?.[name];
37
- if (event !== void 0) {
38
- if (value !== old) {
39
- addOrUpdateEventListener(node, event, value);
40
- }
41
- return;
42
- }
43
- node[name] = value;
44
- if ((value === void 0 || value === null) && name in HTMLElement.prototype) {
45
- node.removeAttribute(name);
46
- }
47
- };
48
- const createComponent = ({
49
- react: React,
50
- tagName,
51
- elementClass,
52
- events,
53
- displayName
54
- }) => {
55
- const eventProps = new Set(Object.keys(events ?? {}));
56
- {
57
- for (const p of reservedReactProperties) {
58
- if (p in elementClass.prototype && !(p in HTMLElement.prototype)) {
59
- console.warn(
60
- `${tagName} contains property ${p} which is a React reserved property. It will be used by React and not set on the element.`
61
- );
62
- }
63
- }
64
- }
65
- const ReactComponent = React.forwardRef((props, ref) => {
66
- const prevElemPropsRef = React.useRef(/* @__PURE__ */ new Map());
67
- const elementRef = React.useRef(null);
68
- const reactProps = {};
69
- const elementProps = {};
70
- for (const [k, v] of Object.entries(props)) {
71
- if (reservedReactProperties.has(k)) {
72
- reactProps[k === "className" ? "class" : k] = v;
73
- continue;
74
- }
75
- if (eventProps.has(k) || k in elementClass.prototype) {
76
- elementProps[k] = v;
77
- continue;
78
- }
79
- reactProps[k] = v;
80
- }
81
- {
82
- React.useLayoutEffect(() => {
83
- if (elementRef.current === null) {
84
- return;
85
- }
86
- const newElemProps = /* @__PURE__ */ new Map();
87
- for (const key in elementProps) {
88
- setProperty(
89
- elementRef.current,
90
- key,
91
- props[key],
92
- prevElemPropsRef.current.get(key),
93
- events
94
- );
95
- prevElemPropsRef.current.delete(key);
96
- newElemProps.set(key, props[key]);
97
- }
98
- for (const [key, value] of prevElemPropsRef.current) {
99
- setProperty(elementRef.current, key, void 0, value, events);
100
- }
101
- prevElemPropsRef.current = newElemProps;
102
- });
103
- React.useLayoutEffect(() => {
104
- elementRef.current?.removeAttribute("defer-hydration");
105
- }, []);
106
- }
107
- {
108
- reactProps.suppressHydrationWarning = true;
109
- }
110
- return React.createElement(tagName, {
111
- ...reactProps,
112
- ref: React.useCallback(
113
- (node) => {
114
- elementRef.current = node;
115
- if (typeof ref === "function") {
116
- ref(node);
117
- } else if (ref !== null) {
118
- ref.current = node;
119
- }
120
- },
121
- [ref]
122
- )
123
- });
124
- });
125
- ReactComponent.displayName = displayName ?? elementClass.name;
126
- return ReactComponent;
127
- };
128
- exports.createComponent = createComponent;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFAudio = react.createComponent({
7
- tagName: "ef-audio",
8
- elementClass: elements.EFAudio,
9
- react: React
10
- });
11
- exports.EFAudio = EFAudio;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFCaptions = react.createComponent({
7
- tagName: "ef-captions",
8
- elementClass: elements.EFCaptions,
9
- react: React
10
- });
11
- const EFCaptionsActiveWord = react.createComponent({
12
- tagName: "ef-captions-active-word",
13
- elementClass: elements.EFCaptionsActiveWord,
14
- react: React
15
- });
16
- exports.EFCaptions = EFCaptions;
17
- exports.EFCaptionsActiveWord = EFCaptionsActiveWord;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFImage = react.createComponent({
7
- tagName: "ef-image",
8
- elementClass: elements.EFImage,
9
- react: React
10
- });
11
- exports.EFImage = EFImage;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const createComponent = require("../create-component.cjs");
5
- const elements = require("@editframe/elements");
6
- const EFTimegroup = createComponent.createComponent({
7
- tagName: "ef-timegroup",
8
- elementClass: elements.EFTimegroup,
9
- react: React
10
- });
11
- exports.EFTimegroup = EFTimegroup;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFVideo = react.createComponent({
7
- tagName: "ef-video",
8
- elementClass: elements.EFVideo,
9
- react: React
10
- });
11
- exports.EFVideo = EFVideo;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFWaveform = react.createComponent({
7
- tagName: "ef-waveform",
8
- elementClass: elements.EFWaveform,
9
- react: React
10
- });
11
- exports.EFWaveform = EFWaveform;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFFilmstrip = react.createComponent({
7
- tagName: "ef-filmstrip",
8
- elementClass: elements.EFFilmstrip,
9
- react: React
10
- });
11
- exports.EFFilmstrip = EFFilmstrip;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const react = require("@lit/react");
5
- const elements = require("@editframe/elements");
6
- const EFWorkbench = react.createComponent({
7
- tagName: "ef-workbench",
8
- elementClass: elements.EFWorkbench,
9
- react: React
10
- });
11
- exports.EFWorkbench = EFWorkbench;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- class CurrentTimeController {
5
- constructor(host, setCurrentTime) {
6
- this.host = host;
7
- this.setCurrentTime = setCurrentTime;
8
- this.host.addController(this);
9
- }
10
- hostDisconnected() {
11
- this.host.removeController(this);
12
- }
13
- hostUpdated() {
14
- this.setCurrentTime({
15
- ownCurrentTimeMs: this.host.ownCurrentTimeMs,
16
- durationMs: this.host.durationMs,
17
- percentComplete: this.host.ownCurrentTimeMs / this.host.durationMs
18
- });
19
- }
20
- }
21
- const useTimingInfo = (timegroupRef = React.useRef(null)) => {
22
- const [timeInfo, setTimeInfo] = React.useState({
23
- ownCurrentTimeMs: 0,
24
- durationMs: 0,
25
- percentComplete: 0
26
- });
27
- React.useEffect(() => {
28
- if (!timegroupRef.current) {
29
- throw new Error("Timegroup ref not set");
30
- }
31
- new CurrentTimeController(timegroupRef.current, setTimeInfo);
32
- }, [timegroupRef.current]);
33
- return { ...timeInfo, ref: timegroupRef };
34
- };
35
- exports.useTimingInfo = useTimingInfo;
package/dist/index.cjs DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const EFAudio = require("./elements/EFAudio.cjs");
4
- const EFCaptions = require("./elements/EFCaptions.cjs");
5
- const EFImage = require("./elements/EFImage.cjs");
6
- const EFTimegroup = require("./elements/EFTimegroup.cjs");
7
- const EFVideo = require("./elements/EFVideo.cjs");
8
- const EFWaveform = require("./elements/EFWaveform.cjs");
9
- const EFWorkbench = require("./gui/EFWorkbench.cjs");
10
- const EFFilmstrip = require("./gui/EFFilmstrip.cjs");
11
- const useTimingInfo = require("./hooks/useTimingInfo.cjs");
12
- exports.EFAudio = EFAudio.EFAudio;
13
- exports.EFCaptions = EFCaptions.EFCaptions;
14
- exports.EFCaptionsActiveWord = EFCaptions.EFCaptionsActiveWord;
15
- exports.EFImage = EFImage.EFImage;
16
- exports.EFTimegroup = EFTimegroup.EFTimegroup;
17
- exports.EFVideo = EFVideo.EFVideo;
18
- exports.EFWaveform = EFWaveform.EFWaveform;
19
- exports.EFWorkbench = EFWorkbench.EFWorkbench;
20
- exports.EFFilmstrip = EFFilmstrip.EFFilmstrip;
21
- exports.useTimingInfo = useTimingInfo.useTimingInfo;
@@ -1,3 +0,0 @@
1
- import { EFTimegroup as EFTimegroupElement } from '../../../elements/src';
2
-
3
- export declare const EFTimegroup: import('../create-component').ReactWebComponent<EFTimegroupElement, {}>;
@@ -1,9 +0,0 @@
1
- export { EFAudio } from './elements/EFAudio';
2
- export { EFCaptions, EFCaptionsActiveWord } from './elements/EFCaptions';
3
- export { EFImage } from './elements/EFImage';
4
- export { EFTimegroup } from './elements/EFTimegroup';
5
- export { EFVideo } from './elements/EFVideo';
6
- export { EFWaveform } from './elements/EFWaveform';
7
- export { EFWorkbench } from './gui/EFWorkbench';
8
- export { EFFilmstrip } from './gui/EFFilmstrip';
9
- export { useTimingInfo } from './hooks/useTimingInfo';