@weaverse/react 0.6.5 → 0.6.9
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 +10 -9
- package/dist/index.js +137 -90
- package/dist/index.mjs +133 -86
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
1
2
|
import { WeaverseType, Weaverse } from '@weaverse/core';
|
|
2
3
|
export * from '@weaverse/core';
|
|
3
|
-
import React$1 from 'react';
|
|
4
4
|
|
|
5
|
-
declare
|
|
6
|
-
declare let WeaverseContext:
|
|
7
|
-
declare let WeaverseContextProvider:
|
|
8
|
-
declare let WeaverseContextConsumer:
|
|
9
|
-
declare type WeaverseRootPropsType = {
|
|
10
|
-
context: Weaverse;
|
|
11
|
-
};
|
|
12
|
-
declare const WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
|
|
5
|
+
declare let createRootContext: (configs: WeaverseType) => Weaverse;
|
|
6
|
+
declare let WeaverseContext: react.Context<Weaverse>;
|
|
7
|
+
declare let WeaverseContextProvider: react.Provider<Weaverse>;
|
|
8
|
+
declare let WeaverseContextConsumer: react.Consumer<Weaverse>;
|
|
13
9
|
|
|
14
10
|
interface WeaverseElementProps {
|
|
15
11
|
children?: React.ReactNode;
|
|
16
12
|
}
|
|
13
|
+
declare type WeaverseRootPropsType = {
|
|
14
|
+
context: Weaverse;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
declare let WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
|
|
17
18
|
|
|
18
19
|
export { WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
package/dist/index.js
CHANGED
|
@@ -60,6 +60,10 @@ __export(src_exports, {
|
|
|
60
60
|
});
|
|
61
61
|
module.exports = __toCommonJS(src_exports);
|
|
62
62
|
|
|
63
|
+
// src/context.ts
|
|
64
|
+
var import_core = require("@weaverse/core");
|
|
65
|
+
var import_react5 = require("react");
|
|
66
|
+
|
|
63
67
|
// src/elements/base.tsx
|
|
64
68
|
var import_react = __toESM(require("react"));
|
|
65
69
|
var BaseElement = import_react.default.forwardRef((_a, ref) => {
|
|
@@ -82,7 +86,15 @@ var base_default = BaseElement;
|
|
|
82
86
|
// src/elements/button.tsx
|
|
83
87
|
var React2 = __toESM(require("react"));
|
|
84
88
|
var Button = React2.forwardRef((props, ref) => {
|
|
85
|
-
const _a = props, { buttonType, css } = _a, rest = __objRest(_a, ["buttonType", "css"]);
|
|
89
|
+
const _a = props, { buttonType, css, openInNewTab = false, target = "" } = _a, rest = __objRest(_a, ["buttonType", "css", "openInNewTab", "target"]);
|
|
90
|
+
if (target) {
|
|
91
|
+
return /* @__PURE__ */ React2.createElement("a", {
|
|
92
|
+
href: target,
|
|
93
|
+
target: openInNewTab ? "_blank" : "_self"
|
|
94
|
+
}, /* @__PURE__ */ React2.createElement("button", __spreadValues({
|
|
95
|
+
ref
|
|
96
|
+
}, rest), props.value));
|
|
97
|
+
}
|
|
86
98
|
return /* @__PURE__ */ React2.createElement("button", __spreadValues({
|
|
87
99
|
ref
|
|
88
100
|
}, rest), props.value);
|
|
@@ -117,6 +129,12 @@ var schema2 = {
|
|
|
117
129
|
},
|
|
118
130
|
{
|
|
119
131
|
type: "duplicate"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: "link"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: "color"
|
|
120
138
|
}
|
|
121
139
|
],
|
|
122
140
|
data: {
|
|
@@ -126,7 +144,9 @@ var schema2 = {
|
|
|
126
144
|
fontSize: "13px",
|
|
127
145
|
padding: "10px 15px"
|
|
128
146
|
}
|
|
129
|
-
}
|
|
147
|
+
},
|
|
148
|
+
target: "",
|
|
149
|
+
openInNewTab: false
|
|
130
150
|
}
|
|
131
151
|
};
|
|
132
152
|
var button_default = Button;
|
|
@@ -164,11 +184,20 @@ var container_default = Container;
|
|
|
164
184
|
// src/elements/layout.tsx
|
|
165
185
|
var import_react3 = __toESM(require("react"));
|
|
166
186
|
var Layout = (0, import_react3.forwardRef)((props, ref) => {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
187
|
+
const _a = props, { css, children, rows, gap, rowSize, columns, gridSize } = _a, rest = __objRest(_a, ["css", "children", "rows", "gap", "rowSize", "columns", "gridSize"]);
|
|
188
|
+
return /* @__PURE__ */ import_react3.default.createElement("section", __spreadValues({
|
|
189
|
+
ref,
|
|
190
|
+
style: {
|
|
191
|
+
"--grid-size": gridSize + "px",
|
|
192
|
+
"--rows": rows,
|
|
193
|
+
"--columns": columns,
|
|
194
|
+
"--gap": gap + "px",
|
|
195
|
+
"--row-size": rowSize + "px",
|
|
196
|
+
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
|
|
197
|
+
}
|
|
198
|
+
}, rest), /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
199
|
+
"data-layout-content": true
|
|
200
|
+
}, children));
|
|
172
201
|
});
|
|
173
202
|
var schema4 = {
|
|
174
203
|
title: "Layout",
|
|
@@ -176,20 +205,32 @@ var schema4 = {
|
|
|
176
205
|
data: {
|
|
177
206
|
css: {
|
|
178
207
|
"@desktop": {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
208
|
+
paddingTop: "16px",
|
|
209
|
+
paddingBottom: "16px",
|
|
210
|
+
paddingLeft: "var(--gap)",
|
|
211
|
+
paddingRight: "var(--gap)",
|
|
212
|
+
"> [data-layout-content]": {
|
|
213
|
+
margin: "0 auto",
|
|
214
|
+
display: "grid !important",
|
|
215
|
+
gridTemplateRows: "repeat(var(--rows), var(--row-size))",
|
|
216
|
+
gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
|
|
217
|
+
gap: "var(--gap)",
|
|
218
|
+
maxWidth: "var(--grid-size)"
|
|
219
|
+
}
|
|
187
220
|
},
|
|
188
221
|
"@mobile": {
|
|
189
|
-
|
|
190
|
-
|
|
222
|
+
padding: "0",
|
|
223
|
+
"> [data-layout-content]": {
|
|
224
|
+
display: "flex !important",
|
|
225
|
+
flexDirection: "column"
|
|
226
|
+
}
|
|
191
227
|
}
|
|
192
|
-
}
|
|
228
|
+
},
|
|
229
|
+
gridSize: 1224,
|
|
230
|
+
rows: 12,
|
|
231
|
+
columns: 12,
|
|
232
|
+
gap: 16,
|
|
233
|
+
rowSize: 48
|
|
193
234
|
},
|
|
194
235
|
settings: []
|
|
195
236
|
};
|
|
@@ -251,7 +292,9 @@ var schema6 = {
|
|
|
251
292
|
data: {
|
|
252
293
|
css: {
|
|
253
294
|
"@desktop": {
|
|
254
|
-
|
|
295
|
+
width: "100%",
|
|
296
|
+
height: "100%",
|
|
297
|
+
objectFit: "cover"
|
|
255
298
|
}
|
|
256
299
|
}
|
|
257
300
|
}
|
|
@@ -287,19 +330,9 @@ var elements = {
|
|
|
287
330
|
};
|
|
288
331
|
var elements_default = elements;
|
|
289
332
|
|
|
290
|
-
// src/
|
|
291
|
-
var shortCssObject = (css) => {
|
|
292
|
-
return {
|
|
293
|
-
"@desktop": css[`@desktop`],
|
|
294
|
-
"@mobile": css[`@mobile`]
|
|
295
|
-
};
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
// src/renderer.tsx
|
|
299
|
-
var import_core = require("@weaverse/core");
|
|
300
|
-
var import_react5 = __toESM(require("react"));
|
|
333
|
+
// src/context.ts
|
|
301
334
|
var createRootContext = (configs) => {
|
|
302
|
-
|
|
335
|
+
let rootContext = new import_core.Weaverse(configs);
|
|
303
336
|
Object.keys(elements_default).forEach((key) => {
|
|
304
337
|
rootContext.registerElement(elements_default[key]);
|
|
305
338
|
});
|
|
@@ -308,93 +341,107 @@ var createRootContext = (configs) => {
|
|
|
308
341
|
var WeaverseContext = (0, import_react5.createContext)({});
|
|
309
342
|
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
310
343
|
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
344
|
+
|
|
345
|
+
// src/renderer.tsx
|
|
346
|
+
var import_core2 = require("@weaverse/core");
|
|
347
|
+
var import_react6 = __toESM(require("react"));
|
|
348
|
+
|
|
349
|
+
// src/utils/index.ts
|
|
350
|
+
var shortCssObject = (css) => {
|
|
351
|
+
return {
|
|
352
|
+
"@desktop": css[`@desktop`],
|
|
353
|
+
"@mobile": css[`@mobile`]
|
|
354
|
+
};
|
|
355
|
+
};
|
|
356
|
+
function generateItemClass(instance, stitchesInstance) {
|
|
357
|
+
var _a;
|
|
358
|
+
let { css, className: cls = "" } = instance.data;
|
|
359
|
+
let className = "";
|
|
360
|
+
if (css) {
|
|
361
|
+
let formattedCss = shortCssObject(css);
|
|
362
|
+
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
363
|
+
let { stitchesClass } = instance;
|
|
364
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
365
|
+
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
366
|
+
instance.stitchesClass = newClass;
|
|
367
|
+
}
|
|
368
|
+
return className;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// src/renderer.tsx
|
|
311
372
|
var WeaverseRoot = ({ context }) => {
|
|
312
373
|
var _a;
|
|
313
|
-
let [, setData] = (0,
|
|
314
|
-
(0,
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
context.subscribe(handleUpdate);
|
|
374
|
+
let [, setData] = (0, import_react6.useState)(context.projectData);
|
|
375
|
+
let rootRef = (0, import_react6.useRef)();
|
|
376
|
+
(0, import_react6.useEffect)(() => {
|
|
377
|
+
let update = () => setData({});
|
|
378
|
+
context.subscribe(update);
|
|
319
379
|
if (context.projectData) {
|
|
320
|
-
setTimeout(
|
|
380
|
+
setTimeout(update, 110);
|
|
321
381
|
}
|
|
382
|
+
context.contentRootElement = rootRef.current;
|
|
322
383
|
return () => {
|
|
323
|
-
context.unsubscribe(
|
|
384
|
+
context.unsubscribe(update);
|
|
324
385
|
};
|
|
325
386
|
}, []);
|
|
326
387
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
327
388
|
let themeClass = context.stitchesInstance.theme.className;
|
|
328
|
-
return /* @__PURE__ */
|
|
389
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", __spreadProps(__spreadValues({
|
|
329
390
|
className: `weaverse-content-root ${themeClass}`
|
|
330
|
-
}, eventHandlers),
|
|
391
|
+
}, eventHandlers), {
|
|
392
|
+
ref: rootRef
|
|
393
|
+
}), /* @__PURE__ */ import_react6.default.createElement(WeaverseContextProvider, {
|
|
331
394
|
value: context
|
|
332
|
-
}, /* @__PURE__ */
|
|
333
|
-
|
|
395
|
+
}, /* @__PURE__ */ import_react6.default.createElement(ItemInstance, {
|
|
396
|
+
id: context.projectData.rootId || 0
|
|
334
397
|
})));
|
|
335
398
|
};
|
|
336
|
-
var
|
|
337
|
-
|
|
338
|
-
let [data, setData] = (0,
|
|
339
|
-
let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
itemInstance.subscribe(handleUpdate);
|
|
346
|
-
if (import_core.isBrowser && !itemInstance.ref.current) {
|
|
347
|
-
Object.assign(itemInstance.ref, {
|
|
399
|
+
var ItemComponent = ({ instance }) => {
|
|
400
|
+
let { stitchesInstance, elementInstances } = (0, import_react6.useContext)(WeaverseContext);
|
|
401
|
+
let [data, setData] = (0, import_react6.useState)(instance.data);
|
|
402
|
+
let _a = data, { id, type, childIds = [], css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
403
|
+
(0, import_react6.useEffect)(() => {
|
|
404
|
+
let update = (data2) => setData(__spreadValues({}, data2));
|
|
405
|
+
instance.subscribe(update);
|
|
406
|
+
if (import_core2.isBrowser && !instance.ref.current) {
|
|
407
|
+
Object.assign(instance.ref, {
|
|
348
408
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
349
409
|
});
|
|
350
410
|
}
|
|
351
411
|
return () => {
|
|
352
|
-
|
|
412
|
+
instance.unsubscribe(update);
|
|
353
413
|
};
|
|
354
414
|
}, []);
|
|
355
|
-
let
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
let formattedCss = shortCssObject(css);
|
|
359
|
-
let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
|
|
360
|
-
let { stitchesClass } = itemInstance;
|
|
361
|
-
let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
362
|
-
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
363
|
-
itemInstance.stitchesClass = newClass;
|
|
364
|
-
}
|
|
365
|
-
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
366
|
-
if (element == null ? void 0 : element.Component) {
|
|
367
|
-
let Component = element.Component;
|
|
415
|
+
let Element = elementInstances.get(type || "base");
|
|
416
|
+
if (Element == null ? void 0 : Element.Component) {
|
|
417
|
+
let Component = Element.Component;
|
|
368
418
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
369
|
-
rest.ref =
|
|
419
|
+
rest.ref = instance.ref;
|
|
370
420
|
}
|
|
371
|
-
return /* @__PURE__ */
|
|
421
|
+
return /* @__PURE__ */ import_react6.default.createElement(Component, __spreadValues({
|
|
372
422
|
key: id,
|
|
373
423
|
"data-wv-type": type,
|
|
374
|
-
"data-wv-id": id
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
itemId: childId
|
|
424
|
+
"data-wv-id": id,
|
|
425
|
+
className: generateItemClass(instance, stitchesInstance)
|
|
426
|
+
}, rest), childIds.map((id2) => /* @__PURE__ */ import_react6.default.createElement(ItemInstance, {
|
|
427
|
+
key: id2,
|
|
428
|
+
id: id2
|
|
380
429
|
})));
|
|
381
430
|
}
|
|
382
431
|
return null;
|
|
383
432
|
};
|
|
384
|
-
var
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
let
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
itemInstance,
|
|
393
|
-
elementInstances
|
|
394
|
-
});
|
|
433
|
+
var ItemInstance = ({ id }) => {
|
|
434
|
+
let context = (0, import_react6.useContext)(WeaverseContext);
|
|
435
|
+
let { itemInstances } = context;
|
|
436
|
+
let instance = itemInstances.get(id);
|
|
437
|
+
if (!instance) {
|
|
438
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
439
|
+
style: { display: "none" }
|
|
440
|
+
}, "Item instance ", id, " not found");
|
|
395
441
|
}
|
|
396
|
-
|
|
397
|
-
|
|
442
|
+
return /* @__PURE__ */ import_react6.default.createElement(ItemComponent, {
|
|
443
|
+
instance
|
|
444
|
+
});
|
|
398
445
|
};
|
|
399
446
|
|
|
400
447
|
// src/index.ts
|
package/dist/index.mjs
CHANGED
|
@@ -30,6 +30,10 @@ var __objRest = (source, exclude) => {
|
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
// src/context.ts
|
|
34
|
+
import { Weaverse } from "@weaverse/core";
|
|
35
|
+
import { createContext } from "react";
|
|
36
|
+
|
|
33
37
|
// src/elements/base.tsx
|
|
34
38
|
import React from "react";
|
|
35
39
|
var BaseElement = React.forwardRef((_a, ref) => {
|
|
@@ -52,7 +56,15 @@ var base_default = BaseElement;
|
|
|
52
56
|
// src/elements/button.tsx
|
|
53
57
|
import * as React2 from "react";
|
|
54
58
|
var Button = React2.forwardRef((props, ref) => {
|
|
55
|
-
const _a = props, { buttonType, css } = _a, rest = __objRest(_a, ["buttonType", "css"]);
|
|
59
|
+
const _a = props, { buttonType, css, openInNewTab = false, target = "" } = _a, rest = __objRest(_a, ["buttonType", "css", "openInNewTab", "target"]);
|
|
60
|
+
if (target) {
|
|
61
|
+
return /* @__PURE__ */ React2.createElement("a", {
|
|
62
|
+
href: target,
|
|
63
|
+
target: openInNewTab ? "_blank" : "_self"
|
|
64
|
+
}, /* @__PURE__ */ React2.createElement("button", __spreadValues({
|
|
65
|
+
ref
|
|
66
|
+
}, rest), props.value));
|
|
67
|
+
}
|
|
56
68
|
return /* @__PURE__ */ React2.createElement("button", __spreadValues({
|
|
57
69
|
ref
|
|
58
70
|
}, rest), props.value);
|
|
@@ -87,6 +99,12 @@ var schema2 = {
|
|
|
87
99
|
},
|
|
88
100
|
{
|
|
89
101
|
type: "duplicate"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: "link"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: "color"
|
|
90
108
|
}
|
|
91
109
|
],
|
|
92
110
|
data: {
|
|
@@ -96,7 +114,9 @@ var schema2 = {
|
|
|
96
114
|
fontSize: "13px",
|
|
97
115
|
padding: "10px 15px"
|
|
98
116
|
}
|
|
99
|
-
}
|
|
117
|
+
},
|
|
118
|
+
target: "",
|
|
119
|
+
openInNewTab: false
|
|
100
120
|
}
|
|
101
121
|
};
|
|
102
122
|
var button_default = Button;
|
|
@@ -134,11 +154,20 @@ var container_default = Container;
|
|
|
134
154
|
// src/elements/layout.tsx
|
|
135
155
|
import React4, { forwardRef as forwardRef3 } from "react";
|
|
136
156
|
var Layout = forwardRef3((props, ref) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
157
|
+
const _a = props, { css, children, rows, gap, rowSize, columns, gridSize } = _a, rest = __objRest(_a, ["css", "children", "rows", "gap", "rowSize", "columns", "gridSize"]);
|
|
158
|
+
return /* @__PURE__ */ React4.createElement("section", __spreadValues({
|
|
159
|
+
ref,
|
|
160
|
+
style: {
|
|
161
|
+
"--grid-size": gridSize + "px",
|
|
162
|
+
"--rows": rows,
|
|
163
|
+
"--columns": columns,
|
|
164
|
+
"--gap": gap + "px",
|
|
165
|
+
"--row-size": rowSize + "px",
|
|
166
|
+
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
|
|
167
|
+
}
|
|
168
|
+
}, rest), /* @__PURE__ */ React4.createElement("div", {
|
|
169
|
+
"data-layout-content": true
|
|
170
|
+
}, children));
|
|
142
171
|
});
|
|
143
172
|
var schema4 = {
|
|
144
173
|
title: "Layout",
|
|
@@ -146,20 +175,32 @@ var schema4 = {
|
|
|
146
175
|
data: {
|
|
147
176
|
css: {
|
|
148
177
|
"@desktop": {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
178
|
+
paddingTop: "16px",
|
|
179
|
+
paddingBottom: "16px",
|
|
180
|
+
paddingLeft: "var(--gap)",
|
|
181
|
+
paddingRight: "var(--gap)",
|
|
182
|
+
"> [data-layout-content]": {
|
|
183
|
+
margin: "0 auto",
|
|
184
|
+
display: "grid !important",
|
|
185
|
+
gridTemplateRows: "repeat(var(--rows), var(--row-size))",
|
|
186
|
+
gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
|
|
187
|
+
gap: "var(--gap)",
|
|
188
|
+
maxWidth: "var(--grid-size)"
|
|
189
|
+
}
|
|
157
190
|
},
|
|
158
191
|
"@mobile": {
|
|
159
|
-
|
|
160
|
-
|
|
192
|
+
padding: "0",
|
|
193
|
+
"> [data-layout-content]": {
|
|
194
|
+
display: "flex !important",
|
|
195
|
+
flexDirection: "column"
|
|
196
|
+
}
|
|
161
197
|
}
|
|
162
|
-
}
|
|
198
|
+
},
|
|
199
|
+
gridSize: 1224,
|
|
200
|
+
rows: 12,
|
|
201
|
+
columns: 12,
|
|
202
|
+
gap: 16,
|
|
203
|
+
rowSize: 48
|
|
163
204
|
},
|
|
164
205
|
settings: []
|
|
165
206
|
};
|
|
@@ -221,7 +262,9 @@ var schema6 = {
|
|
|
221
262
|
data: {
|
|
222
263
|
css: {
|
|
223
264
|
"@desktop": {
|
|
224
|
-
|
|
265
|
+
width: "100%",
|
|
266
|
+
height: "100%",
|
|
267
|
+
objectFit: "cover"
|
|
225
268
|
}
|
|
226
269
|
}
|
|
227
270
|
}
|
|
@@ -257,19 +300,9 @@ var elements = {
|
|
|
257
300
|
};
|
|
258
301
|
var elements_default = elements;
|
|
259
302
|
|
|
260
|
-
// src/
|
|
261
|
-
var shortCssObject = (css) => {
|
|
262
|
-
return {
|
|
263
|
-
"@desktop": css[`@desktop`],
|
|
264
|
-
"@mobile": css[`@mobile`]
|
|
265
|
-
};
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
// src/renderer.tsx
|
|
269
|
-
import { isBrowser, Weaverse } from "@weaverse/core";
|
|
270
|
-
import React7, { createContext, useContext, useEffect, useState } from "react";
|
|
303
|
+
// src/context.ts
|
|
271
304
|
var createRootContext = (configs) => {
|
|
272
|
-
|
|
305
|
+
let rootContext = new Weaverse(configs);
|
|
273
306
|
Object.keys(elements_default).forEach((key) => {
|
|
274
307
|
rootContext.registerElement(elements_default[key]);
|
|
275
308
|
});
|
|
@@ -278,93 +311,107 @@ var createRootContext = (configs) => {
|
|
|
278
311
|
var WeaverseContext = createContext({});
|
|
279
312
|
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
280
313
|
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
314
|
+
|
|
315
|
+
// src/renderer.tsx
|
|
316
|
+
import { isBrowser } from "@weaverse/core";
|
|
317
|
+
import React7, { useContext, useEffect, useRef, useState } from "react";
|
|
318
|
+
|
|
319
|
+
// src/utils/index.ts
|
|
320
|
+
var shortCssObject = (css) => {
|
|
321
|
+
return {
|
|
322
|
+
"@desktop": css[`@desktop`],
|
|
323
|
+
"@mobile": css[`@mobile`]
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
function generateItemClass(instance, stitchesInstance) {
|
|
327
|
+
var _a;
|
|
328
|
+
let { css, className: cls = "" } = instance.data;
|
|
329
|
+
let className = "";
|
|
330
|
+
if (css) {
|
|
331
|
+
let formattedCss = shortCssObject(css);
|
|
332
|
+
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
333
|
+
let { stitchesClass } = instance;
|
|
334
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
335
|
+
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
336
|
+
instance.stitchesClass = newClass;
|
|
337
|
+
}
|
|
338
|
+
return className;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// src/renderer.tsx
|
|
281
342
|
var WeaverseRoot = ({ context }) => {
|
|
282
343
|
var _a;
|
|
283
344
|
let [, setData] = useState(context.projectData);
|
|
345
|
+
let rootRef = useRef();
|
|
284
346
|
useEffect(() => {
|
|
285
|
-
let
|
|
286
|
-
|
|
287
|
-
};
|
|
288
|
-
context.subscribe(handleUpdate);
|
|
347
|
+
let update = () => setData({});
|
|
348
|
+
context.subscribe(update);
|
|
289
349
|
if (context.projectData) {
|
|
290
|
-
setTimeout(
|
|
350
|
+
setTimeout(update, 110);
|
|
291
351
|
}
|
|
352
|
+
context.contentRootElement = rootRef.current;
|
|
292
353
|
return () => {
|
|
293
|
-
context.unsubscribe(
|
|
354
|
+
context.unsubscribe(update);
|
|
294
355
|
};
|
|
295
356
|
}, []);
|
|
296
357
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
297
358
|
let themeClass = context.stitchesInstance.theme.className;
|
|
298
|
-
return /* @__PURE__ */ React7.createElement("div", __spreadValues({
|
|
359
|
+
return /* @__PURE__ */ React7.createElement("div", __spreadProps(__spreadValues({
|
|
299
360
|
className: `weaverse-content-root ${themeClass}`
|
|
300
|
-
}, eventHandlers),
|
|
361
|
+
}, eventHandlers), {
|
|
362
|
+
ref: rootRef
|
|
363
|
+
}), /* @__PURE__ */ React7.createElement(WeaverseContextProvider, {
|
|
301
364
|
value: context
|
|
302
|
-
}, /* @__PURE__ */ React7.createElement(
|
|
303
|
-
|
|
365
|
+
}, /* @__PURE__ */ React7.createElement(ItemInstance, {
|
|
366
|
+
id: context.projectData.rootId || 0
|
|
304
367
|
})));
|
|
305
368
|
};
|
|
306
|
-
var
|
|
307
|
-
|
|
308
|
-
let [data, setData] = useState(
|
|
309
|
-
let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
310
|
-
console.log("data", data);
|
|
369
|
+
var ItemComponent = ({ instance }) => {
|
|
370
|
+
let { stitchesInstance, elementInstances } = useContext(WeaverseContext);
|
|
371
|
+
let [data, setData] = useState(instance.data);
|
|
372
|
+
let _a = data, { id, type, childIds = [], css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
311
373
|
useEffect(() => {
|
|
312
|
-
let
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
if (isBrowser && !itemInstance.ref.current) {
|
|
317
|
-
Object.assign(itemInstance.ref, {
|
|
374
|
+
let update = (data2) => setData(__spreadValues({}, data2));
|
|
375
|
+
instance.subscribe(update);
|
|
376
|
+
if (isBrowser && !instance.ref.current) {
|
|
377
|
+
Object.assign(instance.ref, {
|
|
318
378
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
319
379
|
});
|
|
320
380
|
}
|
|
321
381
|
return () => {
|
|
322
|
-
|
|
382
|
+
instance.unsubscribe(update);
|
|
323
383
|
};
|
|
324
384
|
}, []);
|
|
325
|
-
let
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
let formattedCss = shortCssObject(css);
|
|
329
|
-
let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
|
|
330
|
-
let { stitchesClass } = itemInstance;
|
|
331
|
-
let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
332
|
-
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
333
|
-
itemInstance.stitchesClass = newClass;
|
|
334
|
-
}
|
|
335
|
-
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
336
|
-
if (element == null ? void 0 : element.Component) {
|
|
337
|
-
let Component = element.Component;
|
|
385
|
+
let Element = elementInstances.get(type || "base");
|
|
386
|
+
if (Element == null ? void 0 : Element.Component) {
|
|
387
|
+
let Component = Element.Component;
|
|
338
388
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
339
|
-
rest.ref =
|
|
389
|
+
rest.ref = instance.ref;
|
|
340
390
|
}
|
|
341
|
-
return /* @__PURE__ */ React7.createElement(Component,
|
|
391
|
+
return /* @__PURE__ */ React7.createElement(Component, __spreadValues({
|
|
342
392
|
key: id,
|
|
343
393
|
"data-wv-type": type,
|
|
344
|
-
"data-wv-id": id
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
itemId: childId
|
|
394
|
+
"data-wv-id": id,
|
|
395
|
+
className: generateItemClass(instance, stitchesInstance)
|
|
396
|
+
}, rest), childIds.map((id2) => /* @__PURE__ */ React7.createElement(ItemInstance, {
|
|
397
|
+
key: id2,
|
|
398
|
+
id: id2
|
|
350
399
|
})));
|
|
351
400
|
}
|
|
352
401
|
return null;
|
|
353
402
|
};
|
|
354
|
-
var
|
|
355
|
-
itemId
|
|
356
|
-
}) => {
|
|
403
|
+
var ItemInstance = ({ id }) => {
|
|
357
404
|
let context = useContext(WeaverseContext);
|
|
358
|
-
let { itemInstances
|
|
359
|
-
let
|
|
360
|
-
if (
|
|
361
|
-
return /* @__PURE__ */ React7.createElement(
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
});
|
|
405
|
+
let { itemInstances } = context;
|
|
406
|
+
let instance = itemInstances.get(id);
|
|
407
|
+
if (!instance) {
|
|
408
|
+
return /* @__PURE__ */ React7.createElement("div", {
|
|
409
|
+
style: { display: "none" }
|
|
410
|
+
}, "Item instance ", id, " not found");
|
|
365
411
|
}
|
|
366
|
-
|
|
367
|
-
|
|
412
|
+
return /* @__PURE__ */ React7.createElement(ItemComponent, {
|
|
413
|
+
instance
|
|
414
|
+
});
|
|
368
415
|
};
|
|
369
416
|
|
|
370
417
|
// src/index.ts
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.6.
|
|
2
|
+
"version": "0.6.9",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
"name": "@weaverse/react",
|
|
32
32
|
"author": "Weaverse Team",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@weaverse/core": "0.6.
|
|
34
|
+
"@weaverse/core": "0.6.9"
|
|
35
35
|
}
|
|
36
36
|
}
|