@weaverse/react 0.7.16 → 0.7.18
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 +8 -3
- package/dist/index.js +70 -20
- package/dist/index.mjs +70 -20
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactElement, ReactNode, CSSProperties } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { WeaverseElement, WeaverseType, Weaverse, ElementCSS, WeaverseItemStore } from '@weaverse/core';
|
|
4
4
|
export * from '@weaverse/core';
|
|
5
5
|
|
|
6
6
|
declare const SharedComponents: {
|
|
7
7
|
Placeholder: react.ForwardRefExoticComponent<PlaceholderProps & react.RefAttributes<HTMLDivElement>>;
|
|
8
8
|
};
|
|
9
|
-
declare const Elements:
|
|
9
|
+
declare const Elements: Record<string, WeaverseElement>;
|
|
10
10
|
|
|
11
11
|
declare let createRootContext: (configs: WeaverseType) => Weaverse;
|
|
12
12
|
declare let WeaverseContext: react.Context<Weaverse>;
|
|
@@ -55,7 +55,12 @@ interface GridContentElementProps extends WeaverseElementProps {
|
|
|
55
55
|
gap: number;
|
|
56
56
|
rowSize: number;
|
|
57
57
|
}
|
|
58
|
-
interface
|
|
58
|
+
interface BackgroundDataProps {
|
|
59
|
+
backgroundColor?: string;
|
|
60
|
+
backgroundImage?: string;
|
|
61
|
+
objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
|
|
62
|
+
}
|
|
63
|
+
interface LayoutElementProps extends BackgroundDataProps, GridContentElementProps {
|
|
59
64
|
gridSize: number;
|
|
60
65
|
}
|
|
61
66
|
interface MapElementProps extends WeaverseElementProps {
|
package/dist/index.js
CHANGED
|
@@ -299,7 +299,18 @@ var image_default = Image;
|
|
|
299
299
|
// src/elements/layout.tsx
|
|
300
300
|
var import_react6 = __toESM(require("react"));
|
|
301
301
|
var Layout = (0, import_react6.forwardRef)((props, ref) => {
|
|
302
|
-
let {
|
|
302
|
+
let {
|
|
303
|
+
children,
|
|
304
|
+
rows,
|
|
305
|
+
gap,
|
|
306
|
+
rowSize,
|
|
307
|
+
columns,
|
|
308
|
+
gridSize,
|
|
309
|
+
backgroundColor,
|
|
310
|
+
backgroundImage,
|
|
311
|
+
objectFit,
|
|
312
|
+
...rest
|
|
313
|
+
} = props;
|
|
303
314
|
let style = {
|
|
304
315
|
"--grid-size": gridSize + "px",
|
|
305
316
|
"--rows": rows,
|
|
@@ -312,10 +323,30 @@ var Layout = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
312
323
|
ref,
|
|
313
324
|
...rest,
|
|
314
325
|
style
|
|
315
|
-
}, /* @__PURE__ */ import_react6.default.createElement(
|
|
326
|
+
}, /* @__PURE__ */ import_react6.default.createElement(LayoutBackground, {
|
|
327
|
+
imgUrl: backgroundImage,
|
|
328
|
+
bgColor: backgroundColor,
|
|
329
|
+
objectFit
|
|
330
|
+
}), /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
316
331
|
"data-layout-content": true
|
|
317
332
|
}, children));
|
|
318
333
|
});
|
|
334
|
+
var LayoutBackground = (props) => {
|
|
335
|
+
let { bgColor, imgUrl, objectFit } = props;
|
|
336
|
+
let style = {
|
|
337
|
+
["--bg-color"]: bgColor,
|
|
338
|
+
["--object-fit"]: objectFit
|
|
339
|
+
};
|
|
340
|
+
return imgUrl || bgColor ? /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
341
|
+
"data-wv-bg": true,
|
|
342
|
+
style
|
|
343
|
+
}, imgUrl && /* @__PURE__ */ import_react6.default.createElement("img", {
|
|
344
|
+
width: "100%",
|
|
345
|
+
height: "100%",
|
|
346
|
+
"data-blink-src": imgUrl,
|
|
347
|
+
alt: "wv-layout-background"
|
|
348
|
+
})) : null;
|
|
349
|
+
};
|
|
319
350
|
var css5 = {
|
|
320
351
|
"@desktop": {
|
|
321
352
|
paddingTop: "16px",
|
|
@@ -339,6 +370,18 @@ var css5 = {
|
|
|
339
370
|
}
|
|
340
371
|
}
|
|
341
372
|
};
|
|
373
|
+
var permanentCss = {
|
|
374
|
+
"@desktop": {
|
|
375
|
+
"[data-wv-bg]": {
|
|
376
|
+
position: "absolute",
|
|
377
|
+
inset: 0,
|
|
378
|
+
backgroundColor: "var(--bg-color)"
|
|
379
|
+
},
|
|
380
|
+
img: {
|
|
381
|
+
objectFit: "var(--object-fit, cover)"
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
};
|
|
342
385
|
Layout.defaultProps = {
|
|
343
386
|
gridSize: 1224,
|
|
344
387
|
rows: 12,
|
|
@@ -449,7 +492,7 @@ var Placeholder = (0, import_react9.forwardRef)(
|
|
|
449
492
|
(props, ref) => {
|
|
450
493
|
let { element, children, ...rest } = props;
|
|
451
494
|
return /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
452
|
-
"data-wv-
|
|
495
|
+
"data-wv-placeholder": true,
|
|
453
496
|
style: { display: "none" },
|
|
454
497
|
ref,
|
|
455
498
|
...rest
|
|
@@ -575,7 +618,8 @@ var Elements = {
|
|
|
575
618
|
Layout: {
|
|
576
619
|
Component: layout_default,
|
|
577
620
|
type: "layout",
|
|
578
|
-
defaultCss: css5
|
|
621
|
+
defaultCss: css5,
|
|
622
|
+
permanentCss
|
|
579
623
|
},
|
|
580
624
|
Map: {
|
|
581
625
|
Component: map_default,
|
|
@@ -638,39 +682,42 @@ var WeaverseRoot = ({ context }) => {
|
|
|
638
682
|
var _a, _b;
|
|
639
683
|
let [, setData] = (0, import_react11.useState)(context.projectData);
|
|
640
684
|
let rootRef = (0, import_react11.useRef)();
|
|
641
|
-
let
|
|
685
|
+
let renderRoot = () => setData({});
|
|
642
686
|
(0, import_react11.useEffect)(() => {
|
|
643
|
-
context.subscribe(
|
|
687
|
+
context.subscribe(renderRoot);
|
|
644
688
|
context.contentRootElement = rootRef.current;
|
|
645
689
|
return () => {
|
|
646
|
-
context.unsubscribe(
|
|
690
|
+
context.unsubscribe(renderRoot);
|
|
647
691
|
};
|
|
648
692
|
}, []);
|
|
649
693
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
650
694
|
let themeClass = context.stitchesInstance.theme.className;
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
695
|
+
if ((_b = context.projectData) == null ? void 0 : _b.rootId) {
|
|
696
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
697
|
+
className: `weaverse-content-root ${themeClass}`,
|
|
698
|
+
...eventHandlers,
|
|
699
|
+
ref: rootRef
|
|
700
|
+
}, /* @__PURE__ */ import_react11.default.createElement(WeaverseContextProvider, {
|
|
701
|
+
value: context
|
|
702
|
+
}, /* @__PURE__ */ import_react11.default.createElement(ItemInstance, {
|
|
703
|
+
id: context.projectData.rootId
|
|
704
|
+
})));
|
|
705
|
+
}
|
|
706
|
+
return null;
|
|
660
707
|
};
|
|
661
708
|
var ItemComponent = ({ instance }) => {
|
|
662
709
|
let { stitchesInstance, elementInstances } = (0, import_react11.useContext)(WeaverseContext);
|
|
663
710
|
let [data, setData] = (0, import_react11.useState)(instance.data);
|
|
664
711
|
let { id, type, childIds = [], css: css10, className, ...rest } = data;
|
|
665
712
|
(0, import_react11.useEffect)(() => {
|
|
666
|
-
let
|
|
667
|
-
instance.subscribe(
|
|
713
|
+
let render = (data2) => setData({ ...data2 });
|
|
714
|
+
instance.subscribe(render);
|
|
668
715
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
669
716
|
Object.assign(instance.ref, {
|
|
670
717
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
671
718
|
});
|
|
672
719
|
}
|
|
673
|
-
return () => instance.unsubscribe(
|
|
720
|
+
return () => instance.unsubscribe(render);
|
|
674
721
|
}, []);
|
|
675
722
|
let Element = elementInstances.get(type);
|
|
676
723
|
if (Element == null ? void 0 : Element.Component) {
|
|
@@ -688,8 +735,10 @@ var ItemComponent = ({ instance }) => {
|
|
|
688
735
|
key: id2,
|
|
689
736
|
id: id2
|
|
690
737
|
})));
|
|
738
|
+
} else {
|
|
739
|
+
console.log(`Unknown element: ${type}`);
|
|
740
|
+
return null;
|
|
691
741
|
}
|
|
692
|
-
return null;
|
|
693
742
|
};
|
|
694
743
|
var ItemInstance = ({ id }) => {
|
|
695
744
|
let context = (0, import_react11.useContext)(WeaverseContext);
|
|
@@ -701,6 +750,7 @@ var ItemInstance = ({ id }) => {
|
|
|
701
750
|
}, "Item instance ", id, " not found");
|
|
702
751
|
}
|
|
703
752
|
return /* @__PURE__ */ import_react11.default.createElement(ItemComponent, {
|
|
753
|
+
key: id,
|
|
704
754
|
instance
|
|
705
755
|
});
|
|
706
756
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -260,7 +260,18 @@ var image_default = Image;
|
|
|
260
260
|
// src/elements/layout.tsx
|
|
261
261
|
import React6, { forwardRef as forwardRef4 } from "react";
|
|
262
262
|
var Layout = forwardRef4((props, ref) => {
|
|
263
|
-
let {
|
|
263
|
+
let {
|
|
264
|
+
children,
|
|
265
|
+
rows,
|
|
266
|
+
gap,
|
|
267
|
+
rowSize,
|
|
268
|
+
columns,
|
|
269
|
+
gridSize,
|
|
270
|
+
backgroundColor,
|
|
271
|
+
backgroundImage,
|
|
272
|
+
objectFit,
|
|
273
|
+
...rest
|
|
274
|
+
} = props;
|
|
264
275
|
let style = {
|
|
265
276
|
"--grid-size": gridSize + "px",
|
|
266
277
|
"--rows": rows,
|
|
@@ -273,10 +284,30 @@ var Layout = forwardRef4((props, ref) => {
|
|
|
273
284
|
ref,
|
|
274
285
|
...rest,
|
|
275
286
|
style
|
|
276
|
-
}, /* @__PURE__ */ React6.createElement(
|
|
287
|
+
}, /* @__PURE__ */ React6.createElement(LayoutBackground, {
|
|
288
|
+
imgUrl: backgroundImage,
|
|
289
|
+
bgColor: backgroundColor,
|
|
290
|
+
objectFit
|
|
291
|
+
}), /* @__PURE__ */ React6.createElement("div", {
|
|
277
292
|
"data-layout-content": true
|
|
278
293
|
}, children));
|
|
279
294
|
});
|
|
295
|
+
var LayoutBackground = (props) => {
|
|
296
|
+
let { bgColor, imgUrl, objectFit } = props;
|
|
297
|
+
let style = {
|
|
298
|
+
["--bg-color"]: bgColor,
|
|
299
|
+
["--object-fit"]: objectFit
|
|
300
|
+
};
|
|
301
|
+
return imgUrl || bgColor ? /* @__PURE__ */ React6.createElement("div", {
|
|
302
|
+
"data-wv-bg": true,
|
|
303
|
+
style
|
|
304
|
+
}, imgUrl && /* @__PURE__ */ React6.createElement("img", {
|
|
305
|
+
width: "100%",
|
|
306
|
+
height: "100%",
|
|
307
|
+
"data-blink-src": imgUrl,
|
|
308
|
+
alt: "wv-layout-background"
|
|
309
|
+
})) : null;
|
|
310
|
+
};
|
|
280
311
|
var css5 = {
|
|
281
312
|
"@desktop": {
|
|
282
313
|
paddingTop: "16px",
|
|
@@ -300,6 +331,18 @@ var css5 = {
|
|
|
300
331
|
}
|
|
301
332
|
}
|
|
302
333
|
};
|
|
334
|
+
var permanentCss = {
|
|
335
|
+
"@desktop": {
|
|
336
|
+
"[data-wv-bg]": {
|
|
337
|
+
position: "absolute",
|
|
338
|
+
inset: 0,
|
|
339
|
+
backgroundColor: "var(--bg-color)"
|
|
340
|
+
},
|
|
341
|
+
img: {
|
|
342
|
+
objectFit: "var(--object-fit, cover)"
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
};
|
|
303
346
|
Layout.defaultProps = {
|
|
304
347
|
gridSize: 1224,
|
|
305
348
|
rows: 12,
|
|
@@ -410,7 +453,7 @@ var Placeholder = forwardRef8(
|
|
|
410
453
|
(props, ref) => {
|
|
411
454
|
let { element, children, ...rest } = props;
|
|
412
455
|
return /* @__PURE__ */ React10.createElement("div", {
|
|
413
|
-
"data-wv-
|
|
456
|
+
"data-wv-placeholder": true,
|
|
414
457
|
style: { display: "none" },
|
|
415
458
|
ref,
|
|
416
459
|
...rest
|
|
@@ -536,7 +579,8 @@ var Elements = {
|
|
|
536
579
|
Layout: {
|
|
537
580
|
Component: layout_default,
|
|
538
581
|
type: "layout",
|
|
539
|
-
defaultCss: css5
|
|
582
|
+
defaultCss: css5,
|
|
583
|
+
permanentCss
|
|
540
584
|
},
|
|
541
585
|
Map: {
|
|
542
586
|
Component: map_default,
|
|
@@ -599,39 +643,42 @@ var WeaverseRoot = ({ context }) => {
|
|
|
599
643
|
var _a, _b;
|
|
600
644
|
let [, setData] = useState2(context.projectData);
|
|
601
645
|
let rootRef = useRef();
|
|
602
|
-
let
|
|
646
|
+
let renderRoot = () => setData({});
|
|
603
647
|
useEffect3(() => {
|
|
604
|
-
context.subscribe(
|
|
648
|
+
context.subscribe(renderRoot);
|
|
605
649
|
context.contentRootElement = rootRef.current;
|
|
606
650
|
return () => {
|
|
607
|
-
context.unsubscribe(
|
|
651
|
+
context.unsubscribe(renderRoot);
|
|
608
652
|
};
|
|
609
653
|
}, []);
|
|
610
654
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
611
655
|
let themeClass = context.stitchesInstance.theme.className;
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
656
|
+
if ((_b = context.projectData) == null ? void 0 : _b.rootId) {
|
|
657
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
658
|
+
className: `weaverse-content-root ${themeClass}`,
|
|
659
|
+
...eventHandlers,
|
|
660
|
+
ref: rootRef
|
|
661
|
+
}, /* @__PURE__ */ React12.createElement(WeaverseContextProvider, {
|
|
662
|
+
value: context
|
|
663
|
+
}, /* @__PURE__ */ React12.createElement(ItemInstance, {
|
|
664
|
+
id: context.projectData.rootId
|
|
665
|
+
})));
|
|
666
|
+
}
|
|
667
|
+
return null;
|
|
621
668
|
};
|
|
622
669
|
var ItemComponent = ({ instance }) => {
|
|
623
670
|
let { stitchesInstance, elementInstances } = useContext3(WeaverseContext);
|
|
624
671
|
let [data, setData] = useState2(instance.data);
|
|
625
672
|
let { id, type, childIds = [], css: css10, className, ...rest } = data;
|
|
626
673
|
useEffect3(() => {
|
|
627
|
-
let
|
|
628
|
-
instance.subscribe(
|
|
674
|
+
let render = (data2) => setData({ ...data2 });
|
|
675
|
+
instance.subscribe(render);
|
|
629
676
|
if (isBrowser && !instance.ref.current) {
|
|
630
677
|
Object.assign(instance.ref, {
|
|
631
678
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
632
679
|
});
|
|
633
680
|
}
|
|
634
|
-
return () => instance.unsubscribe(
|
|
681
|
+
return () => instance.unsubscribe(render);
|
|
635
682
|
}, []);
|
|
636
683
|
let Element = elementInstances.get(type);
|
|
637
684
|
if (Element == null ? void 0 : Element.Component) {
|
|
@@ -649,8 +696,10 @@ var ItemComponent = ({ instance }) => {
|
|
|
649
696
|
key: id2,
|
|
650
697
|
id: id2
|
|
651
698
|
})));
|
|
699
|
+
} else {
|
|
700
|
+
console.log(`Unknown element: ${type}`);
|
|
701
|
+
return null;
|
|
652
702
|
}
|
|
653
|
-
return null;
|
|
654
703
|
};
|
|
655
704
|
var ItemInstance = ({ id }) => {
|
|
656
705
|
let context = useContext3(WeaverseContext);
|
|
@@ -662,6 +711,7 @@ var ItemInstance = ({ id }) => {
|
|
|
662
711
|
}, "Item instance ", id, " not found");
|
|
663
712
|
}
|
|
664
713
|
return /* @__PURE__ */ React12.createElement(ItemComponent, {
|
|
714
|
+
key: id,
|
|
665
715
|
instance
|
|
666
716
|
});
|
|
667
717
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.7.
|
|
2
|
+
"version": "0.7.18",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"name": "@weaverse/react",
|
|
32
32
|
"author": "Weaverse Team",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@weaverse/core": "0.7.
|
|
34
|
+
"@weaverse/core": "0.7.18",
|
|
35
35
|
"nuka-carousel": "^5.4.0"
|
|
36
36
|
}
|
|
37
37
|
}
|