@weaverse/react 0.3.2 → 0.3.5
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/index.d.ts +5 -3
- package/dist/index.js +105 -80
- package/dist/index.mjs +99 -65
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { WeaverseType, Weaverse } from '@weaverse/core';
|
|
2
|
+
export * from '@weaverse/core';
|
|
2
3
|
|
|
3
4
|
declare const createRootContext: (configs: WeaverseType) => Weaverse;
|
|
4
|
-
declare
|
|
5
|
+
declare type WeaverseRootPropsType = {
|
|
5
6
|
context: Weaverse;
|
|
6
7
|
defaultData: any;
|
|
7
|
-
}
|
|
8
|
+
};
|
|
9
|
+
declare const WeaverseRoot: ({ context, defaultData, }: WeaverseRootPropsType) => JSX.Element;
|
|
8
10
|
|
|
9
|
-
export { WeaverseRoot, createRootContext };
|
|
11
|
+
export { WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,6 @@ var __spreadValues = (a, b) => {
|
|
|
21
21
|
return a;
|
|
22
22
|
};
|
|
23
23
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
24
|
var __objRest = (source, exclude) => {
|
|
26
25
|
var target = {};
|
|
27
26
|
for (var prop in source)
|
|
@@ -38,22 +37,17 @@ var __export = (target, all) => {
|
|
|
38
37
|
for (var name in all)
|
|
39
38
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
40
39
|
};
|
|
41
|
-
var
|
|
42
|
-
if (
|
|
43
|
-
for (let key of __getOwnPropNames(
|
|
44
|
-
if (!__hasOwnProp.call(
|
|
45
|
-
__defProp(
|
|
40
|
+
var __copyProps = (to, from, except, desc) => {
|
|
41
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
42
|
+
for (let key of __getOwnPropNames(from))
|
|
43
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
44
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
46
45
|
}
|
|
47
|
-
return
|
|
48
|
-
};
|
|
49
|
-
var __toESM = (module2, isNodeMode) => {
|
|
50
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
46
|
+
return to;
|
|
51
47
|
};
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
48
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
49
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
50
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
57
51
|
|
|
58
52
|
// src/index.ts
|
|
59
53
|
var src_exports = {};
|
|
@@ -61,31 +55,7 @@ __export(src_exports, {
|
|
|
61
55
|
WeaverseRoot: () => WeaverseRoot,
|
|
62
56
|
createRootContext: () => createRootContext
|
|
63
57
|
});
|
|
64
|
-
|
|
65
|
-
// src/renderer.tsx
|
|
66
|
-
var React5 = __toESM(require("react"));
|
|
67
|
-
var import_core = require("@weaverse/core");
|
|
68
|
-
|
|
69
|
-
// src/elements/button.tsx
|
|
70
|
-
var React = __toESM(require("react"));
|
|
71
|
-
var Button = React.forwardRef((props, ref) => {
|
|
72
|
-
let [count, setCount] = React.useState(0);
|
|
73
|
-
return /* @__PURE__ */ React.createElement("button", __spreadProps(__spreadValues({
|
|
74
|
-
ref
|
|
75
|
-
}, props), {
|
|
76
|
-
onClick: () => setCount(count + 1)
|
|
77
|
-
}), "Test Button ", count);
|
|
78
|
-
});
|
|
79
|
-
Button.defaultProps = {
|
|
80
|
-
style: {
|
|
81
|
-
borderRadius: "9999px",
|
|
82
|
-
fontSize: "13px",
|
|
83
|
-
padding: "10px 15px"
|
|
84
|
-
},
|
|
85
|
-
type: "button",
|
|
86
|
-
tag: "button"
|
|
87
|
-
};
|
|
88
|
-
var button_default = Button;
|
|
58
|
+
module.exports = __toCommonJS(src_exports);
|
|
89
59
|
|
|
90
60
|
// src/elements/base.tsx
|
|
91
61
|
var import_react = __toESM(require("react"));
|
|
@@ -96,30 +66,63 @@ var BaseElement = import_react.default.forwardRef((_a, ref) => {
|
|
|
96
66
|
}, props), children);
|
|
97
67
|
});
|
|
98
68
|
BaseElement.defaultProps = {
|
|
99
|
-
type: "base",
|
|
100
69
|
tag: "div",
|
|
101
70
|
style: {}
|
|
102
71
|
};
|
|
72
|
+
var schema = {
|
|
73
|
+
type: "base"
|
|
74
|
+
};
|
|
103
75
|
var base_default = BaseElement;
|
|
104
76
|
|
|
105
|
-
// src/elements/
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
77
|
+
// src/elements/button.tsx
|
|
78
|
+
var React2 = __toESM(require("react"));
|
|
79
|
+
var Button = React2.forwardRef((props, ref) => {
|
|
80
|
+
let [count, setCount] = React2.useState(0);
|
|
81
|
+
return /* @__PURE__ */ React2.createElement("button", __spreadProps(__spreadValues({
|
|
82
|
+
ref
|
|
83
|
+
}, props), {
|
|
84
|
+
onClick: () => setCount(count + 1)
|
|
85
|
+
}), "Test Button ", count);
|
|
86
|
+
});
|
|
87
|
+
Button.defaultProps = {
|
|
111
88
|
style: {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
89
|
+
borderRadius: "9999px",
|
|
90
|
+
fontSize: "13px",
|
|
91
|
+
padding: "10px 15px"
|
|
92
|
+
}
|
|
116
93
|
};
|
|
94
|
+
var schema2 = {
|
|
95
|
+
title: "Button",
|
|
96
|
+
type: "button",
|
|
97
|
+
properties: {
|
|
98
|
+
label: {
|
|
99
|
+
type: "string",
|
|
100
|
+
title: "Label",
|
|
101
|
+
default: "Button"
|
|
102
|
+
},
|
|
103
|
+
onClick: {
|
|
104
|
+
type: "string",
|
|
105
|
+
title: "On Click",
|
|
106
|
+
default: "() => {}"
|
|
107
|
+
},
|
|
108
|
+
style: {
|
|
109
|
+
type: "object",
|
|
110
|
+
title: "Style",
|
|
111
|
+
default: {
|
|
112
|
+
borderRadius: "9999px",
|
|
113
|
+
fontSize: "13px",
|
|
114
|
+
padding: "10px 15px"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var button_default = Button;
|
|
117
120
|
|
|
118
121
|
// src/elements/text.tsx
|
|
119
|
-
var
|
|
120
|
-
var Text =
|
|
122
|
+
var React3 = __toESM(require("react"));
|
|
123
|
+
var Text = React3.forwardRef((props, ref) => {
|
|
121
124
|
let _a = props, { children } = _a, rest = __objRest(_a, ["children"]);
|
|
122
|
-
return /* @__PURE__ */
|
|
125
|
+
return /* @__PURE__ */ React3.createElement("span", __spreadProps(__spreadValues({
|
|
123
126
|
ref
|
|
124
127
|
}, rest), {
|
|
125
128
|
contentEditable: true,
|
|
@@ -128,33 +131,47 @@ var Text = React4.forwardRef((props, ref) => {
|
|
|
128
131
|
});
|
|
129
132
|
Text.defaultProps = {
|
|
130
133
|
style: {},
|
|
131
|
-
type: "text",
|
|
132
134
|
tag: "span"
|
|
133
135
|
};
|
|
136
|
+
var schema3 = {
|
|
137
|
+
type: "text"
|
|
138
|
+
};
|
|
134
139
|
var text_default = Text;
|
|
135
140
|
|
|
136
141
|
// src/elements/index.ts
|
|
137
142
|
var elements = {
|
|
138
|
-
Button:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
Button: {
|
|
144
|
+
Component: button_default,
|
|
145
|
+
schema: schema2
|
|
146
|
+
},
|
|
147
|
+
BaseElement: {
|
|
148
|
+
Component: base_default,
|
|
149
|
+
schema
|
|
150
|
+
},
|
|
151
|
+
Text: {
|
|
152
|
+
Component: text_default,
|
|
153
|
+
schema: schema3
|
|
154
|
+
}
|
|
142
155
|
};
|
|
143
156
|
var elements_default = elements;
|
|
144
157
|
|
|
145
158
|
// src/renderer.tsx
|
|
159
|
+
var import_core = require("@weaverse/core");
|
|
160
|
+
var React4 = __toESM(require("react"));
|
|
146
161
|
var createRootContext = (configs) => {
|
|
147
162
|
const rootContext = new import_core.Weaverse(configs);
|
|
148
163
|
Object.keys(elements_default).forEach((key) => {
|
|
149
|
-
|
|
150
|
-
((_b = (_a = elements_default[key]) == null ? void 0 : _a.defaultProps) == null ? void 0 : _b.type) && rootContext.registerElement(elements_default[key].defaultProps.type, elements_default[key]);
|
|
164
|
+
rootContext.registerElement(elements_default[key]);
|
|
151
165
|
});
|
|
152
166
|
return rootContext;
|
|
153
167
|
};
|
|
154
|
-
var WeaverseRoot = ({
|
|
168
|
+
var WeaverseRoot = ({
|
|
169
|
+
context,
|
|
170
|
+
defaultData
|
|
171
|
+
}) => {
|
|
155
172
|
var _a, _b, _c;
|
|
156
|
-
let [, setData] =
|
|
157
|
-
|
|
173
|
+
let [, setData] = React4.useState(context.projectData);
|
|
174
|
+
React4.useEffect(() => {
|
|
158
175
|
let handleUpdate = () => {
|
|
159
176
|
setData(__spreadValues({}, context.projectData));
|
|
160
177
|
};
|
|
@@ -169,45 +186,48 @@ var WeaverseRoot = ({ context, defaultData }) => {
|
|
|
169
186
|
context.initProjectItemData();
|
|
170
187
|
}
|
|
171
188
|
let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
|
|
172
|
-
return /* @__PURE__ */
|
|
189
|
+
return /* @__PURE__ */ React4.createElement("div", __spreadValues({
|
|
173
190
|
className: `weaverse-root`,
|
|
174
191
|
id: "weaverse-root"
|
|
175
|
-
}, handleProps), /* @__PURE__ */
|
|
192
|
+
}, handleProps), /* @__PURE__ */ React4.createElement(RenderItem, {
|
|
176
193
|
itemId: context.projectData.rootId || 0,
|
|
177
194
|
context
|
|
178
195
|
}));
|
|
179
196
|
};
|
|
180
197
|
var Item = ({ itemInstance, elementInstances, context }) => {
|
|
181
|
-
let [data, setData] =
|
|
198
|
+
let [data, setData] = React4.useState(itemInstance.data);
|
|
182
199
|
let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
183
|
-
|
|
200
|
+
React4.useEffect(() => {
|
|
184
201
|
let handleUpdate = (update) => {
|
|
185
202
|
setData(__spreadValues({}, update));
|
|
186
203
|
};
|
|
187
204
|
itemInstance.subscribe(handleUpdate);
|
|
188
|
-
if (!itemInstance.ref.current
|
|
189
|
-
Object.assign(itemInstance.ref, {
|
|
205
|
+
if (import_core.isBrowser && !itemInstance.ref.current) {
|
|
206
|
+
Object.assign(itemInstance.ref, {
|
|
207
|
+
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
208
|
+
});
|
|
190
209
|
}
|
|
191
210
|
return () => {
|
|
192
211
|
itemInstance.unsubscribe(handleUpdate);
|
|
193
212
|
};
|
|
194
213
|
}, []);
|
|
195
|
-
let realClassName = className
|
|
214
|
+
let realClassName = className;
|
|
196
215
|
if (css) {
|
|
197
216
|
let selector = context.stitchesInstance.css(css)().className;
|
|
198
|
-
realClassName
|
|
217
|
+
realClassName = realClassName ? `${selector} ${realClassName}` : selector;
|
|
199
218
|
}
|
|
200
|
-
let
|
|
201
|
-
if (Component) {
|
|
219
|
+
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
220
|
+
if (element == null ? void 0 : element.Component) {
|
|
221
|
+
let Component = element.Component;
|
|
202
222
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
203
223
|
rest.ref = itemInstance.ref;
|
|
204
224
|
}
|
|
205
|
-
return /* @__PURE__ */
|
|
225
|
+
return /* @__PURE__ */ React4.createElement(Component, __spreadProps(__spreadValues({
|
|
206
226
|
key: id,
|
|
207
227
|
"data-wv-id": id
|
|
208
228
|
}, rest), {
|
|
209
229
|
className: realClassName
|
|
210
|
-
}), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */
|
|
230
|
+
}), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React4.createElement(RenderItem, {
|
|
211
231
|
key: childId,
|
|
212
232
|
itemId: childId,
|
|
213
233
|
context
|
|
@@ -215,19 +235,24 @@ var Item = ({ itemInstance, elementInstances, context }) => {
|
|
|
215
235
|
}
|
|
216
236
|
return null;
|
|
217
237
|
};
|
|
218
|
-
var RenderItem = ({
|
|
238
|
+
var RenderItem = ({
|
|
239
|
+
itemId,
|
|
240
|
+
context
|
|
241
|
+
}) => {
|
|
219
242
|
let { itemInstances, elementInstances } = context;
|
|
220
243
|
let itemInstance = itemInstances.get(itemId);
|
|
221
244
|
if (itemInstance) {
|
|
222
|
-
return /* @__PURE__ */
|
|
245
|
+
return /* @__PURE__ */ React4.createElement(Item, {
|
|
223
246
|
itemInstance,
|
|
224
247
|
elementInstances,
|
|
225
248
|
context
|
|
226
249
|
});
|
|
227
250
|
}
|
|
228
|
-
return /* @__PURE__ */
|
|
251
|
+
return /* @__PURE__ */ React4.createElement(React4.Fragment, null);
|
|
229
252
|
};
|
|
230
|
-
|
|
253
|
+
|
|
254
|
+
// src/index.ts
|
|
255
|
+
__reExport(src_exports, require("@weaverse/core"), module.exports);
|
|
231
256
|
// Annotate the CommonJS export names for ESM import in node:
|
|
232
257
|
0 && (module.exports = {
|
|
233
258
|
WeaverseRoot,
|
package/dist/index.mjs
CHANGED
|
@@ -30,15 +30,28 @@ var __objRest = (source, exclude) => {
|
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
// src/
|
|
34
|
-
import
|
|
35
|
-
|
|
33
|
+
// src/elements/base.tsx
|
|
34
|
+
import React from "react";
|
|
35
|
+
var BaseElement = React.forwardRef((_a, ref) => {
|
|
36
|
+
var _b = _a, { tag, children } = _b, props = __objRest(_b, ["tag", "children"]);
|
|
37
|
+
return React.createElement(tag, __spreadValues({
|
|
38
|
+
ref
|
|
39
|
+
}, props), children);
|
|
40
|
+
});
|
|
41
|
+
BaseElement.defaultProps = {
|
|
42
|
+
tag: "div",
|
|
43
|
+
style: {}
|
|
44
|
+
};
|
|
45
|
+
var schema = {
|
|
46
|
+
type: "base"
|
|
47
|
+
};
|
|
48
|
+
var base_default = BaseElement;
|
|
36
49
|
|
|
37
50
|
// src/elements/button.tsx
|
|
38
|
-
import * as
|
|
39
|
-
var Button =
|
|
40
|
-
let [count, setCount] =
|
|
41
|
-
return /* @__PURE__ */
|
|
51
|
+
import * as React2 from "react";
|
|
52
|
+
var Button = React2.forwardRef((props, ref) => {
|
|
53
|
+
let [count, setCount] = React2.useState(0);
|
|
54
|
+
return /* @__PURE__ */ React2.createElement("button", __spreadProps(__spreadValues({
|
|
42
55
|
ref
|
|
43
56
|
}, props), {
|
|
44
57
|
onClick: () => setCount(count + 1)
|
|
@@ -49,45 +62,40 @@ Button.defaultProps = {
|
|
|
49
62
|
borderRadius: "9999px",
|
|
50
63
|
fontSize: "13px",
|
|
51
64
|
padding: "10px 15px"
|
|
52
|
-
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var schema2 = {
|
|
68
|
+
title: "Button",
|
|
53
69
|
type: "button",
|
|
54
|
-
|
|
70
|
+
properties: {
|
|
71
|
+
label: {
|
|
72
|
+
type: "string",
|
|
73
|
+
title: "Label",
|
|
74
|
+
default: "Button"
|
|
75
|
+
},
|
|
76
|
+
onClick: {
|
|
77
|
+
type: "string",
|
|
78
|
+
title: "On Click",
|
|
79
|
+
default: "() => {}"
|
|
80
|
+
},
|
|
81
|
+
style: {
|
|
82
|
+
type: "object",
|
|
83
|
+
title: "Style",
|
|
84
|
+
default: {
|
|
85
|
+
borderRadius: "9999px",
|
|
86
|
+
fontSize: "13px",
|
|
87
|
+
padding: "10px 15px"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
55
91
|
};
|
|
56
92
|
var button_default = Button;
|
|
57
93
|
|
|
58
|
-
// src/elements/base.tsx
|
|
59
|
-
import React2 from "react";
|
|
60
|
-
var BaseElement = React2.forwardRef((_a, ref) => {
|
|
61
|
-
var _b = _a, { tag, children } = _b, props = __objRest(_b, ["tag", "children"]);
|
|
62
|
-
return React2.createElement(tag, __spreadValues({
|
|
63
|
-
ref
|
|
64
|
-
}, props), children);
|
|
65
|
-
});
|
|
66
|
-
BaseElement.defaultProps = {
|
|
67
|
-
type: "base",
|
|
68
|
-
tag: "div",
|
|
69
|
-
style: {}
|
|
70
|
-
};
|
|
71
|
-
var base_default = BaseElement;
|
|
72
|
-
|
|
73
|
-
// src/elements/grid.tsx
|
|
74
|
-
import React3 from "react";
|
|
75
|
-
function Grid(props) {
|
|
76
|
-
return /* @__PURE__ */ React3.createElement("div", __spreadValues({}, props));
|
|
77
|
-
}
|
|
78
|
-
Grid.defaultProps = {
|
|
79
|
-
style: {
|
|
80
|
-
display: "grid",
|
|
81
|
-
gridTemplate: "1fr / 1fr"
|
|
82
|
-
},
|
|
83
|
-
type: "grid"
|
|
84
|
-
};
|
|
85
|
-
|
|
86
94
|
// src/elements/text.tsx
|
|
87
|
-
import * as
|
|
88
|
-
var Text =
|
|
95
|
+
import * as React3 from "react";
|
|
96
|
+
var Text = React3.forwardRef((props, ref) => {
|
|
89
97
|
let _a = props, { children } = _a, rest = __objRest(_a, ["children"]);
|
|
90
|
-
return /* @__PURE__ */
|
|
98
|
+
return /* @__PURE__ */ React3.createElement("span", __spreadProps(__spreadValues({
|
|
91
99
|
ref
|
|
92
100
|
}, rest), {
|
|
93
101
|
contentEditable: true,
|
|
@@ -96,33 +104,50 @@ var Text = React4.forwardRef((props, ref) => {
|
|
|
96
104
|
});
|
|
97
105
|
Text.defaultProps = {
|
|
98
106
|
style: {},
|
|
99
|
-
type: "text",
|
|
100
107
|
tag: "span"
|
|
101
108
|
};
|
|
109
|
+
var schema3 = {
|
|
110
|
+
type: "text"
|
|
111
|
+
};
|
|
102
112
|
var text_default = Text;
|
|
103
113
|
|
|
104
114
|
// src/elements/index.ts
|
|
105
115
|
var elements = {
|
|
106
|
-
Button:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
Button: {
|
|
117
|
+
Component: button_default,
|
|
118
|
+
schema: schema2
|
|
119
|
+
},
|
|
120
|
+
BaseElement: {
|
|
121
|
+
Component: base_default,
|
|
122
|
+
schema
|
|
123
|
+
},
|
|
124
|
+
Text: {
|
|
125
|
+
Component: text_default,
|
|
126
|
+
schema: schema3
|
|
127
|
+
}
|
|
110
128
|
};
|
|
111
129
|
var elements_default = elements;
|
|
112
130
|
|
|
113
131
|
// src/renderer.tsx
|
|
132
|
+
import {
|
|
133
|
+
isBrowser,
|
|
134
|
+
Weaverse
|
|
135
|
+
} from "@weaverse/core";
|
|
136
|
+
import * as React4 from "react";
|
|
114
137
|
var createRootContext = (configs) => {
|
|
115
138
|
const rootContext = new Weaverse(configs);
|
|
116
139
|
Object.keys(elements_default).forEach((key) => {
|
|
117
|
-
|
|
118
|
-
((_b = (_a = elements_default[key]) == null ? void 0 : _a.defaultProps) == null ? void 0 : _b.type) && rootContext.registerElement(elements_default[key].defaultProps.type, elements_default[key]);
|
|
140
|
+
rootContext.registerElement(elements_default[key]);
|
|
119
141
|
});
|
|
120
142
|
return rootContext;
|
|
121
143
|
};
|
|
122
|
-
var WeaverseRoot = ({
|
|
144
|
+
var WeaverseRoot = ({
|
|
145
|
+
context,
|
|
146
|
+
defaultData
|
|
147
|
+
}) => {
|
|
123
148
|
var _a, _b, _c;
|
|
124
|
-
let [, setData] =
|
|
125
|
-
|
|
149
|
+
let [, setData] = React4.useState(context.projectData);
|
|
150
|
+
React4.useEffect(() => {
|
|
126
151
|
let handleUpdate = () => {
|
|
127
152
|
setData(__spreadValues({}, context.projectData));
|
|
128
153
|
};
|
|
@@ -137,45 +162,48 @@ var WeaverseRoot = ({ context, defaultData }) => {
|
|
|
137
162
|
context.initProjectItemData();
|
|
138
163
|
}
|
|
139
164
|
let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
|
|
140
|
-
return /* @__PURE__ */
|
|
165
|
+
return /* @__PURE__ */ React4.createElement("div", __spreadValues({
|
|
141
166
|
className: `weaverse-root`,
|
|
142
167
|
id: "weaverse-root"
|
|
143
|
-
}, handleProps), /* @__PURE__ */
|
|
168
|
+
}, handleProps), /* @__PURE__ */ React4.createElement(RenderItem, {
|
|
144
169
|
itemId: context.projectData.rootId || 0,
|
|
145
170
|
context
|
|
146
171
|
}));
|
|
147
172
|
};
|
|
148
173
|
var Item = ({ itemInstance, elementInstances, context }) => {
|
|
149
|
-
let [data, setData] =
|
|
174
|
+
let [data, setData] = React4.useState(itemInstance.data);
|
|
150
175
|
let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
151
|
-
|
|
176
|
+
React4.useEffect(() => {
|
|
152
177
|
let handleUpdate = (update) => {
|
|
153
178
|
setData(__spreadValues({}, update));
|
|
154
179
|
};
|
|
155
180
|
itemInstance.subscribe(handleUpdate);
|
|
156
|
-
if (!itemInstance.ref.current
|
|
157
|
-
Object.assign(itemInstance.ref, {
|
|
181
|
+
if (isBrowser && !itemInstance.ref.current) {
|
|
182
|
+
Object.assign(itemInstance.ref, {
|
|
183
|
+
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
184
|
+
});
|
|
158
185
|
}
|
|
159
186
|
return () => {
|
|
160
187
|
itemInstance.unsubscribe(handleUpdate);
|
|
161
188
|
};
|
|
162
189
|
}, []);
|
|
163
|
-
let realClassName = className
|
|
190
|
+
let realClassName = className;
|
|
164
191
|
if (css) {
|
|
165
192
|
let selector = context.stitchesInstance.css(css)().className;
|
|
166
|
-
realClassName
|
|
193
|
+
realClassName = realClassName ? `${selector} ${realClassName}` : selector;
|
|
167
194
|
}
|
|
168
|
-
let
|
|
169
|
-
if (Component) {
|
|
195
|
+
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
196
|
+
if (element == null ? void 0 : element.Component) {
|
|
197
|
+
let Component = element.Component;
|
|
170
198
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
171
199
|
rest.ref = itemInstance.ref;
|
|
172
200
|
}
|
|
173
|
-
return /* @__PURE__ */
|
|
201
|
+
return /* @__PURE__ */ React4.createElement(Component, __spreadProps(__spreadValues({
|
|
174
202
|
key: id,
|
|
175
203
|
"data-wv-id": id
|
|
176
204
|
}, rest), {
|
|
177
205
|
className: realClassName
|
|
178
|
-
}), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */
|
|
206
|
+
}), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React4.createElement(RenderItem, {
|
|
179
207
|
key: childId,
|
|
180
208
|
itemId: childId,
|
|
181
209
|
context
|
|
@@ -183,18 +211,24 @@ var Item = ({ itemInstance, elementInstances, context }) => {
|
|
|
183
211
|
}
|
|
184
212
|
return null;
|
|
185
213
|
};
|
|
186
|
-
var RenderItem = ({
|
|
214
|
+
var RenderItem = ({
|
|
215
|
+
itemId,
|
|
216
|
+
context
|
|
217
|
+
}) => {
|
|
187
218
|
let { itemInstances, elementInstances } = context;
|
|
188
219
|
let itemInstance = itemInstances.get(itemId);
|
|
189
220
|
if (itemInstance) {
|
|
190
|
-
return /* @__PURE__ */
|
|
221
|
+
return /* @__PURE__ */ React4.createElement(Item, {
|
|
191
222
|
itemInstance,
|
|
192
223
|
elementInstances,
|
|
193
224
|
context
|
|
194
225
|
});
|
|
195
226
|
}
|
|
196
|
-
return /* @__PURE__ */
|
|
227
|
+
return /* @__PURE__ */ React4.createElement(React4.Fragment, null);
|
|
197
228
|
};
|
|
229
|
+
|
|
230
|
+
// src/index.ts
|
|
231
|
+
export * from "@weaverse/core";
|
|
198
232
|
export {
|
|
199
233
|
WeaverseRoot,
|
|
200
234
|
createRootContext
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.3.
|
|
2
|
+
"version": "0.3.5",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"start": "npm run dev",
|
|
18
18
|
"dev": "tsup src/index.ts --format esm,cjs --dts --outDir dist --watch --external react",
|
|
19
|
-
"build": "tsup src/index.ts --format esm,cjs --dts --outDir dist --external react"
|
|
19
|
+
"build": "tsup src/index.ts --format esm,cjs --dts --outDir dist --external react",
|
|
20
|
+
"prepublish": "npm run build"
|
|
20
21
|
},
|
|
21
22
|
"peerDependencies": {
|
|
22
23
|
"react": ">=16.8.0",
|
|
@@ -24,13 +25,12 @@
|
|
|
24
25
|
},
|
|
25
26
|
"prettier": {
|
|
26
27
|
"printWidth": 80,
|
|
27
|
-
"semi":
|
|
28
|
-
"singleQuote": true
|
|
29
|
-
"trailingComma": "es5"
|
|
28
|
+
"semi": false,
|
|
29
|
+
"singleQuote": true
|
|
30
30
|
},
|
|
31
31
|
"name": "@weaverse/react",
|
|
32
32
|
"author": "Weaverse Team",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@weaverse/core": "^0.3.
|
|
34
|
+
"@weaverse/core": "^0.3.4"
|
|
35
35
|
}
|
|
36
36
|
}
|