@weaverse/react 0.6.24 → 0.6.26
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 -2
- package/dist/index.js +57 -23
- package/dist/index.mjs +61 -27
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -18,8 +18,9 @@ declare type WeaverseRootPropsType = {
|
|
|
18
18
|
declare type ItemComponentProps = {
|
|
19
19
|
instance: InstanceType<typeof WeaverseItemStore>;
|
|
20
20
|
};
|
|
21
|
-
interface PlaceholderProps
|
|
21
|
+
interface PlaceholderProps {
|
|
22
22
|
element: string;
|
|
23
|
+
children: ReactElement | ReactElement[] | ReactNode | ReactNode[];
|
|
23
24
|
}
|
|
24
25
|
interface ButtonElementProps extends WeaverseElementProps {
|
|
25
26
|
value: string;
|
|
@@ -33,6 +34,11 @@ interface ContainerElementProps extends WeaverseElementProps {
|
|
|
33
34
|
interface ImageElementProps extends WeaverseElementProps {
|
|
34
35
|
src: string;
|
|
35
36
|
alt: string;
|
|
37
|
+
objectFit: 'contain' | 'cover';
|
|
38
|
+
objectPosition: 'left' | 'right' | 'top' | 'bottom' | 'center' | 'center left' | 'center right' | 'top left' | 'top right' | 'bottom left' | 'bottom right';
|
|
39
|
+
onClickAction: 'none' | 'open-lightbox' | 'open-link';
|
|
40
|
+
linkTo?: string;
|
|
41
|
+
openLinkInNewTab?: boolean;
|
|
36
42
|
}
|
|
37
43
|
interface LayoutElementProps extends WeaverseElementProps {
|
|
38
44
|
gridSize: number;
|
|
@@ -87,6 +93,6 @@ declare type InstagramMedia = {
|
|
|
87
93
|
caption: string;
|
|
88
94
|
};
|
|
89
95
|
|
|
90
|
-
declare let WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
|
|
96
|
+
declare let WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element | null;
|
|
91
97
|
|
|
92
98
|
export { ButtonElementProps, ContainerElementProps, CountdownElementProps, CountdownTimeKey, ImageElementProps, InstagramElementProps, InstagramMedia, ItemComponentProps, LayoutElementProps, MapElementProps, PlaceholderProps, TextElementProps, TimerBlockProps, VideoElementProps, WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
package/dist/index.js
CHANGED
|
@@ -241,23 +241,58 @@ var countdown_default = Countdown;
|
|
|
241
241
|
// src/elements/image.tsx
|
|
242
242
|
var import_react4 = __toESM(require("react"));
|
|
243
243
|
var Image = import_react4.default.forwardRef((props, ref) => {
|
|
244
|
-
let
|
|
245
|
-
|
|
244
|
+
let { isDesignMode } = (0, import_react4.useContext)(WeaverseContext);
|
|
245
|
+
let _a = props, {
|
|
246
|
+
src,
|
|
247
|
+
alt,
|
|
248
|
+
objectFit,
|
|
249
|
+
objectPosition,
|
|
250
|
+
onClickAction,
|
|
251
|
+
openLinkInNewTab
|
|
252
|
+
} = _a, rest = __objRest(_a, [
|
|
253
|
+
"src",
|
|
254
|
+
"alt",
|
|
255
|
+
"objectFit",
|
|
256
|
+
"objectPosition",
|
|
257
|
+
"onClickAction",
|
|
258
|
+
"openLinkInNewTab"
|
|
259
|
+
]);
|
|
260
|
+
let style = {
|
|
261
|
+
"--wv-img-object-fit": objectFit,
|
|
262
|
+
"--wv-img-object-position": objectPosition
|
|
263
|
+
};
|
|
264
|
+
let handleClick = () => {
|
|
265
|
+
if (isDesignMode) {
|
|
266
|
+
return console.log("Click action:", onClickAction);
|
|
267
|
+
}
|
|
268
|
+
if (onClickAction) {
|
|
269
|
+
console.log("TODO: click action:", onClickAction);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", __spreadProps(__spreadValues({
|
|
246
273
|
ref
|
|
247
|
-
}, rest),
|
|
274
|
+
}, rest), {
|
|
275
|
+
style,
|
|
276
|
+
onClick: handleClick
|
|
277
|
+
}), /* @__PURE__ */ import_react4.default.createElement("img", {
|
|
248
278
|
alt,
|
|
249
279
|
src
|
|
250
280
|
}));
|
|
251
281
|
});
|
|
252
282
|
Image.defaultProps = {
|
|
253
283
|
src: "https://ucarecdn.com/1cdc9d39-ca62-492e-8ec7-f1a86b241a90/",
|
|
254
|
-
alt: "
|
|
284
|
+
alt: "Image alt text",
|
|
285
|
+
objectFit: "cover",
|
|
286
|
+
objectPosition: "center",
|
|
287
|
+
onClickAction: "open-lightbox",
|
|
288
|
+
openLinkInNewTab: false,
|
|
255
289
|
css: {
|
|
256
290
|
"@desktop": {
|
|
257
291
|
img: {
|
|
258
292
|
width: "100%",
|
|
259
293
|
height: "100%",
|
|
260
|
-
objectFit: "cover"
|
|
294
|
+
objectFit: "var(--wv-img-object-fit, cover)",
|
|
295
|
+
objectPosition: "var(--wv-img-object-position, center)"
|
|
261
296
|
}
|
|
262
297
|
}
|
|
263
298
|
}
|
|
@@ -434,10 +469,9 @@ var Placeholder_default = Placeholder;
|
|
|
434
469
|
// src/elements/instagram.tsx
|
|
435
470
|
var INSTAGRAM_API = "https://graph.instagram.com";
|
|
436
471
|
var Instagram = (0, import_react9.forwardRef)((props, ref) => {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
let { isDesignMode } = (0, import_react9.useContext)(WeaverseContext);
|
|
472
|
+
let _a = props, { token, username, numberOfImages, imagesPerRow, gap } = _a, rest = __objRest(_a, ["token", "username", "numberOfImages", "imagesPerRow", "gap"]);
|
|
473
|
+
let [media, setMedia] = (0, import_react9.useState)([]);
|
|
474
|
+
let [error, setError] = (0, import_react9.useState)(null);
|
|
441
475
|
(0, import_react9.useEffect)(() => {
|
|
442
476
|
if (token) {
|
|
443
477
|
let params = new URLSearchParams({
|
|
@@ -463,7 +497,7 @@ var Instagram = (0, import_react9.forwardRef)((props, ref) => {
|
|
|
463
497
|
}
|
|
464
498
|
let style = {
|
|
465
499
|
"--wv-ig-images-per-row": imagesPerRow,
|
|
466
|
-
"--wv-ig-images-gap": gap
|
|
500
|
+
"--wv-ig-images-gap": gap + "px"
|
|
467
501
|
};
|
|
468
502
|
return /* @__PURE__ */ import_react9.default.createElement("div", __spreadProps(__spreadValues({
|
|
469
503
|
ref
|
|
@@ -472,15 +506,15 @@ var Instagram = (0, import_react9.forwardRef)((props, ref) => {
|
|
|
472
506
|
}), /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
473
507
|
className: "wv-ig-media-container"
|
|
474
508
|
}, media.slice(0, numberOfImages).map((item) => {
|
|
475
|
-
let
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
},
|
|
482
|
-
alt:
|
|
483
|
-
src:
|
|
509
|
+
let { id, permalink, caption, media_url } = item;
|
|
510
|
+
return /* @__PURE__ */ import_react9.default.createElement("a", {
|
|
511
|
+
key: id,
|
|
512
|
+
href: permalink,
|
|
513
|
+
target: "_blank",
|
|
514
|
+
rel: "noreferrer"
|
|
515
|
+
}, /* @__PURE__ */ import_react9.default.createElement("img", {
|
|
516
|
+
alt: caption,
|
|
517
|
+
src: media_url
|
|
484
518
|
}));
|
|
485
519
|
})));
|
|
486
520
|
});
|
|
@@ -725,7 +759,7 @@ function generateItemClass(instance, stitchesInstance) {
|
|
|
725
759
|
|
|
726
760
|
// src/renderer.tsx
|
|
727
761
|
var WeaverseRoot = ({ context }) => {
|
|
728
|
-
var _a;
|
|
762
|
+
var _a, _b;
|
|
729
763
|
let [, setData] = (0, import_react14.useState)(context.projectData);
|
|
730
764
|
let rootRef = (0, import_react14.useRef)();
|
|
731
765
|
(0, import_react14.useEffect)(() => {
|
|
@@ -741,15 +775,15 @@ var WeaverseRoot = ({ context }) => {
|
|
|
741
775
|
}, []);
|
|
742
776
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
743
777
|
let themeClass = context.stitchesInstance.theme.className;
|
|
744
|
-
return /* @__PURE__ */ import_react14.default.createElement("div", __spreadProps(__spreadValues({
|
|
778
|
+
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react14.default.createElement("div", __spreadProps(__spreadValues({
|
|
745
779
|
className: `weaverse-content-root ${themeClass}`
|
|
746
780
|
}, eventHandlers), {
|
|
747
781
|
ref: rootRef
|
|
748
782
|
}), /* @__PURE__ */ import_react14.default.createElement(WeaverseContextProvider, {
|
|
749
783
|
value: context
|
|
750
784
|
}, /* @__PURE__ */ import_react14.default.createElement(ItemInstance, {
|
|
751
|
-
id: context.projectData.rootId
|
|
752
|
-
})));
|
|
785
|
+
id: context.projectData.rootId
|
|
786
|
+
}))) : null;
|
|
753
787
|
};
|
|
754
788
|
var ItemComponent = ({ instance }) => {
|
|
755
789
|
let { stitchesInstance, elementInstances } = (0, import_react14.useContext)(WeaverseContext);
|
package/dist/index.mjs
CHANGED
|
@@ -209,25 +209,60 @@ Countdown.defaultProps = {
|
|
|
209
209
|
var countdown_default = Countdown;
|
|
210
210
|
|
|
211
211
|
// src/elements/image.tsx
|
|
212
|
-
import React5 from "react";
|
|
212
|
+
import React5, { useContext as useContext2 } from "react";
|
|
213
213
|
var Image = React5.forwardRef((props, ref) => {
|
|
214
|
-
let
|
|
215
|
-
|
|
214
|
+
let { isDesignMode } = useContext2(WeaverseContext);
|
|
215
|
+
let _a = props, {
|
|
216
|
+
src,
|
|
217
|
+
alt,
|
|
218
|
+
objectFit,
|
|
219
|
+
objectPosition,
|
|
220
|
+
onClickAction,
|
|
221
|
+
openLinkInNewTab
|
|
222
|
+
} = _a, rest = __objRest(_a, [
|
|
223
|
+
"src",
|
|
224
|
+
"alt",
|
|
225
|
+
"objectFit",
|
|
226
|
+
"objectPosition",
|
|
227
|
+
"onClickAction",
|
|
228
|
+
"openLinkInNewTab"
|
|
229
|
+
]);
|
|
230
|
+
let style = {
|
|
231
|
+
"--wv-img-object-fit": objectFit,
|
|
232
|
+
"--wv-img-object-position": objectPosition
|
|
233
|
+
};
|
|
234
|
+
let handleClick = () => {
|
|
235
|
+
if (isDesignMode) {
|
|
236
|
+
return console.log("Click action:", onClickAction);
|
|
237
|
+
}
|
|
238
|
+
if (onClickAction) {
|
|
239
|
+
console.log("TODO: click action:", onClickAction);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
return /* @__PURE__ */ React5.createElement("div", __spreadProps(__spreadValues({
|
|
216
243
|
ref
|
|
217
|
-
}, rest),
|
|
244
|
+
}, rest), {
|
|
245
|
+
style,
|
|
246
|
+
onClick: handleClick
|
|
247
|
+
}), /* @__PURE__ */ React5.createElement("img", {
|
|
218
248
|
alt,
|
|
219
249
|
src
|
|
220
250
|
}));
|
|
221
251
|
});
|
|
222
252
|
Image.defaultProps = {
|
|
223
253
|
src: "https://ucarecdn.com/1cdc9d39-ca62-492e-8ec7-f1a86b241a90/",
|
|
224
|
-
alt: "
|
|
254
|
+
alt: "Image alt text",
|
|
255
|
+
objectFit: "cover",
|
|
256
|
+
objectPosition: "center",
|
|
257
|
+
onClickAction: "open-lightbox",
|
|
258
|
+
openLinkInNewTab: false,
|
|
225
259
|
css: {
|
|
226
260
|
"@desktop": {
|
|
227
261
|
img: {
|
|
228
262
|
width: "100%",
|
|
229
263
|
height: "100%",
|
|
230
|
-
objectFit: "cover"
|
|
264
|
+
objectFit: "var(--wv-img-object-fit, cover)",
|
|
265
|
+
objectPosition: "var(--wv-img-object-position, center)"
|
|
231
266
|
}
|
|
232
267
|
}
|
|
233
268
|
}
|
|
@@ -335,9 +370,9 @@ Text.defaultProps = {
|
|
|
335
370
|
var text_default = Text;
|
|
336
371
|
|
|
337
372
|
// src/elements/video.tsx
|
|
338
|
-
import React9, { forwardRef as forwardRef7, useContext as
|
|
373
|
+
import React9, { forwardRef as forwardRef7, useContext as useContext3 } from "react";
|
|
339
374
|
var Video = forwardRef7((props, ref) => {
|
|
340
|
-
let { isDesignMode } =
|
|
375
|
+
let { isDesignMode } = useContext3(WeaverseContext);
|
|
341
376
|
let _a = props, { src, type, controls, poster, autoPlay, loop, muted } = _a, rest = __objRest(_a, ["src", "type", "controls", "poster", "autoPlay", "loop", "muted"]);
|
|
342
377
|
return /* @__PURE__ */ React9.createElement("div", __spreadValues({
|
|
343
378
|
ref
|
|
@@ -374,7 +409,7 @@ Video.defaultProps = {
|
|
|
374
409
|
var video_default = Video;
|
|
375
410
|
|
|
376
411
|
// src/elements/instagram.tsx
|
|
377
|
-
import React11, { forwardRef as forwardRef9,
|
|
412
|
+
import React11, { forwardRef as forwardRef9, useEffect as useEffect2, useState } from "react";
|
|
378
413
|
|
|
379
414
|
// src/elements/shared/Placeholder.tsx
|
|
380
415
|
import React10, { forwardRef as forwardRef8 } from "react";
|
|
@@ -404,10 +439,9 @@ var Placeholder_default = Placeholder;
|
|
|
404
439
|
// src/elements/instagram.tsx
|
|
405
440
|
var INSTAGRAM_API = "https://graph.instagram.com";
|
|
406
441
|
var Instagram = forwardRef9((props, ref) => {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
let { isDesignMode } = useContext3(WeaverseContext);
|
|
442
|
+
let _a = props, { token, username, numberOfImages, imagesPerRow, gap } = _a, rest = __objRest(_a, ["token", "username", "numberOfImages", "imagesPerRow", "gap"]);
|
|
443
|
+
let [media, setMedia] = useState([]);
|
|
444
|
+
let [error, setError] = useState(null);
|
|
411
445
|
useEffect2(() => {
|
|
412
446
|
if (token) {
|
|
413
447
|
let params = new URLSearchParams({
|
|
@@ -433,7 +467,7 @@ var Instagram = forwardRef9((props, ref) => {
|
|
|
433
467
|
}
|
|
434
468
|
let style = {
|
|
435
469
|
"--wv-ig-images-per-row": imagesPerRow,
|
|
436
|
-
"--wv-ig-images-gap": gap
|
|
470
|
+
"--wv-ig-images-gap": gap + "px"
|
|
437
471
|
};
|
|
438
472
|
return /* @__PURE__ */ React11.createElement("div", __spreadProps(__spreadValues({
|
|
439
473
|
ref
|
|
@@ -442,15 +476,15 @@ var Instagram = forwardRef9((props, ref) => {
|
|
|
442
476
|
}), /* @__PURE__ */ React11.createElement("div", {
|
|
443
477
|
className: "wv-ig-media-container"
|
|
444
478
|
}, media.slice(0, numberOfImages).map((item) => {
|
|
445
|
-
let
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
},
|
|
452
|
-
alt:
|
|
453
|
-
src:
|
|
479
|
+
let { id, permalink, caption, media_url } = item;
|
|
480
|
+
return /* @__PURE__ */ React11.createElement("a", {
|
|
481
|
+
key: id,
|
|
482
|
+
href: permalink,
|
|
483
|
+
target: "_blank",
|
|
484
|
+
rel: "noreferrer"
|
|
485
|
+
}, /* @__PURE__ */ React11.createElement("img", {
|
|
486
|
+
alt: caption,
|
|
487
|
+
src: media_url
|
|
454
488
|
}));
|
|
455
489
|
})));
|
|
456
490
|
});
|
|
@@ -695,7 +729,7 @@ function generateItemClass(instance, stitchesInstance) {
|
|
|
695
729
|
|
|
696
730
|
// src/renderer.tsx
|
|
697
731
|
var WeaverseRoot = ({ context }) => {
|
|
698
|
-
var _a;
|
|
732
|
+
var _a, _b;
|
|
699
733
|
let [, setData] = useState3(context.projectData);
|
|
700
734
|
let rootRef = useRef();
|
|
701
735
|
useEffect3(() => {
|
|
@@ -711,15 +745,15 @@ var WeaverseRoot = ({ context }) => {
|
|
|
711
745
|
}, []);
|
|
712
746
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
713
747
|
let themeClass = context.stitchesInstance.theme.className;
|
|
714
|
-
return /* @__PURE__ */ React15.createElement("div", __spreadProps(__spreadValues({
|
|
748
|
+
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React15.createElement("div", __spreadProps(__spreadValues({
|
|
715
749
|
className: `weaverse-content-root ${themeClass}`
|
|
716
750
|
}, eventHandlers), {
|
|
717
751
|
ref: rootRef
|
|
718
752
|
}), /* @__PURE__ */ React15.createElement(WeaverseContextProvider, {
|
|
719
753
|
value: context
|
|
720
754
|
}, /* @__PURE__ */ React15.createElement(ItemInstance, {
|
|
721
|
-
id: context.projectData.rootId
|
|
722
|
-
})));
|
|
755
|
+
id: context.projectData.rootId
|
|
756
|
+
}))) : null;
|
|
723
757
|
};
|
|
724
758
|
var ItemComponent = ({ instance }) => {
|
|
725
759
|
let { stitchesInstance, elementInstances } = useContext5(WeaverseContext);
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.6.
|
|
2
|
+
"version": "0.6.26",
|
|
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.26"
|
|
35
35
|
}
|
|
36
36
|
}
|