@weaverse/react 0.7.9 → 0.7.10
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 +7 -2
- package/dist/index.js +144 -185
- package/dist/index.mjs +38 -81
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactElement, ReactNode, CSSProperties } from 'react';
|
|
3
|
-
import { WeaverseType, Weaverse, ElementCSS, WeaverseItemStore } from '@weaverse/core';
|
|
3
|
+
import { ElementsMap, WeaverseType, Weaverse, ElementCSS, WeaverseItemStore } from '@weaverse/core';
|
|
4
4
|
export * from '@weaverse/core';
|
|
5
5
|
|
|
6
|
+
declare const SharedComponents: {
|
|
7
|
+
Placeholder: react.ForwardRefExoticComponent<PlaceholderProps & react.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
};
|
|
9
|
+
declare const Elements: ElementsMap;
|
|
10
|
+
|
|
6
11
|
declare let createRootContext: (configs: WeaverseType) => Weaverse;
|
|
7
12
|
declare let WeaverseContext: react.Context<Weaverse>;
|
|
8
13
|
declare let WeaverseContextProvider: react.Provider<Weaverse>;
|
|
@@ -102,4 +107,4 @@ declare type InstagramMedia = {
|
|
|
102
107
|
|
|
103
108
|
declare let WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element | null;
|
|
104
109
|
|
|
105
|
-
export { ButtonElementProps, ContainerElementProps, CountdownElementProps, CountdownTimeKey, CountdownTimerType, GridContentElementProps, ImageElementProps, InstagramElementProps, InstagramMedia, ItemComponentProps, LayoutElementProps, MapElementProps, PlaceholderProps, TextElementProps, TimerBlockProps, VideoElementProps, WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
|
110
|
+
export { ButtonElementProps, ContainerElementProps, CountdownElementProps, CountdownTimeKey, CountdownTimerType, Elements, GridContentElementProps, ImageElementProps, InstagramElementProps, InstagramMedia, ItemComponentProps, LayoutElementProps, MapElementProps, PlaceholderProps, SharedComponents, TextElementProps, TimerBlockProps, VideoElementProps, WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
27
27
|
// src/index.ts
|
|
28
28
|
var src_exports = {};
|
|
29
29
|
__export(src_exports, {
|
|
30
|
+
Elements: () => Elements,
|
|
31
|
+
SharedComponents: () => SharedComponents,
|
|
30
32
|
WeaverseContext: () => WeaverseContext,
|
|
31
33
|
WeaverseContextConsumer: () => WeaverseContextConsumer,
|
|
32
34
|
WeaverseContextProvider: () => WeaverseContextProvider,
|
|
@@ -35,10 +37,6 @@ __export(src_exports, {
|
|
|
35
37
|
});
|
|
36
38
|
module.exports = __toCommonJS(src_exports);
|
|
37
39
|
|
|
38
|
-
// src/context.ts
|
|
39
|
-
var import_core = require("@weaverse/core");
|
|
40
|
-
var import_react20 = require("react");
|
|
41
|
-
|
|
42
40
|
// src/elements/button.tsx
|
|
43
41
|
var React = __toESM(require("react"));
|
|
44
42
|
var Button = React.forwardRef((props, ref) => {
|
|
@@ -106,14 +104,28 @@ Container.defaultProps = {
|
|
|
106
104
|
var container_default = Container;
|
|
107
105
|
|
|
108
106
|
// src/elements/countdown/index.tsx
|
|
109
|
-
var
|
|
107
|
+
var import_react4 = __toESM(require("react"));
|
|
108
|
+
|
|
109
|
+
// src/context.ts
|
|
110
|
+
var import_core = require("@weaverse/core");
|
|
111
|
+
var import_react2 = require("react");
|
|
112
|
+
var createRootContext = (configs) => {
|
|
113
|
+
let rootContext = new import_core.Weaverse(configs);
|
|
114
|
+
Object.keys(Elements).forEach((key) => {
|
|
115
|
+
rootContext.registerElement(Elements[key]);
|
|
116
|
+
});
|
|
117
|
+
return rootContext;
|
|
118
|
+
};
|
|
119
|
+
var WeaverseContext = (0, import_react2.createContext)({});
|
|
120
|
+
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
121
|
+
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
110
122
|
|
|
111
123
|
// src/elements/countdown/timer-block.tsx
|
|
112
|
-
var
|
|
124
|
+
var import_react3 = __toESM(require("react"));
|
|
113
125
|
function TimerBlock({ value, label }) {
|
|
114
|
-
return /* @__PURE__ */
|
|
126
|
+
return /* @__PURE__ */ import_react3.default.createElement("div", null, /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
115
127
|
className: "wv-countdown-number"
|
|
116
|
-
}, value.toString().padStart(2, "0")), label && /* @__PURE__ */
|
|
128
|
+
}, value.toString().padStart(2, "0")), label && /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
117
129
|
className: "wv-countdown-label"
|
|
118
130
|
}, label));
|
|
119
131
|
}
|
|
@@ -136,9 +148,9 @@ function getTime(_seconds) {
|
|
|
136
148
|
}
|
|
137
149
|
|
|
138
150
|
// src/elements/countdown/index.tsx
|
|
139
|
-
var Countdown = (0,
|
|
151
|
+
var Countdown = (0, import_react4.forwardRef)(
|
|
140
152
|
(props, ref) => {
|
|
141
|
-
const { isDesignMode } = (0,
|
|
153
|
+
const { isDesignMode } = (0, import_react4.useContext)(WeaverseContext);
|
|
142
154
|
let {
|
|
143
155
|
timerType,
|
|
144
156
|
startTime,
|
|
@@ -150,11 +162,11 @@ var Countdown = (0, import_react3.forwardRef)(
|
|
|
150
162
|
showLabel,
|
|
151
163
|
...rest
|
|
152
164
|
} = props;
|
|
153
|
-
const [remaining, setRemaining] =
|
|
165
|
+
const [remaining, setRemaining] = import_react4.default.useState(0);
|
|
154
166
|
if (typeof endTime !== "number") {
|
|
155
167
|
endTime = Number.parseInt(endTime);
|
|
156
168
|
}
|
|
157
|
-
(0,
|
|
169
|
+
(0, import_react4.useEffect)(() => {
|
|
158
170
|
const flag = setInterval(() => {
|
|
159
171
|
const remainingTime = Math.max(
|
|
160
172
|
(timerType === "fixed-time" ? new Date(endTime).getTime() : new Date(startTime).getTime() + periods * 60 * 1e3) - Date.now(),
|
|
@@ -170,16 +182,16 @@ var Countdown = (0, import_react3.forwardRef)(
|
|
|
170
182
|
};
|
|
171
183
|
}, [startTime, endTime, periods, timerType]);
|
|
172
184
|
const timer = getTime(remaining);
|
|
173
|
-
return /* @__PURE__ */
|
|
185
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
174
186
|
ref,
|
|
175
187
|
...rest
|
|
176
188
|
}, times.map((time) => {
|
|
177
|
-
return /* @__PURE__ */
|
|
189
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, {
|
|
178
190
|
key: time
|
|
179
|
-
}, /* @__PURE__ */
|
|
191
|
+
}, /* @__PURE__ */ import_react4.default.createElement(TimerBlock, {
|
|
180
192
|
label: showLabel ? time : "",
|
|
181
193
|
value: timer[time]
|
|
182
|
-
}), time !== "seconds" && /* @__PURE__ */
|
|
194
|
+
}), time !== "seconds" && /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
183
195
|
className: `wv-countdown-number ${showColon ? "" : "hidden"}`
|
|
184
196
|
}, ":"));
|
|
185
197
|
}));
|
|
@@ -221,10 +233,10 @@ Countdown.defaultProps = {
|
|
|
221
233
|
var countdown_default = Countdown;
|
|
222
234
|
|
|
223
235
|
// src/elements/image.tsx
|
|
224
|
-
var
|
|
225
|
-
var Image =
|
|
236
|
+
var import_react5 = __toESM(require("react"));
|
|
237
|
+
var Image = import_react5.default.forwardRef(
|
|
226
238
|
(props, ref) => {
|
|
227
|
-
let { isDesignMode } = (0,
|
|
239
|
+
let { isDesignMode } = (0, import_react5.useContext)(WeaverseContext);
|
|
228
240
|
let {
|
|
229
241
|
src,
|
|
230
242
|
alt,
|
|
@@ -246,12 +258,12 @@ var Image = import_react4.default.forwardRef(
|
|
|
246
258
|
console.log("TODO: click action:", onClickAction);
|
|
247
259
|
}
|
|
248
260
|
};
|
|
249
|
-
return /* @__PURE__ */
|
|
261
|
+
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
250
262
|
ref,
|
|
251
263
|
...rest,
|
|
252
264
|
style,
|
|
253
265
|
onClick: handleClick
|
|
254
|
-
}, /* @__PURE__ */
|
|
266
|
+
}, /* @__PURE__ */ import_react5.default.createElement("img", {
|
|
255
267
|
alt,
|
|
256
268
|
src
|
|
257
269
|
}));
|
|
@@ -278,8 +290,8 @@ Image.defaultProps = {
|
|
|
278
290
|
var image_default = Image;
|
|
279
291
|
|
|
280
292
|
// src/elements/layout.tsx
|
|
281
|
-
var
|
|
282
|
-
var Layout = (0,
|
|
293
|
+
var import_react6 = __toESM(require("react"));
|
|
294
|
+
var Layout = (0, import_react6.forwardRef)((props, ref) => {
|
|
283
295
|
let { children, rows, gap, rowSize, columns, gridSize, ...rest } = props;
|
|
284
296
|
let style = {
|
|
285
297
|
"--grid-size": gridSize + "px",
|
|
@@ -289,11 +301,11 @@ var Layout = (0, import_react5.forwardRef)((props, ref) => {
|
|
|
289
301
|
"--row-size": rowSize + "px",
|
|
290
302
|
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
|
|
291
303
|
};
|
|
292
|
-
return /* @__PURE__ */
|
|
304
|
+
return /* @__PURE__ */ import_react6.default.createElement("section", {
|
|
293
305
|
ref,
|
|
294
306
|
...rest,
|
|
295
307
|
style
|
|
296
|
-
}, /* @__PURE__ */
|
|
308
|
+
}, /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
297
309
|
"data-layout-content": true
|
|
298
310
|
}, children));
|
|
299
311
|
});
|
|
@@ -330,13 +342,13 @@ Layout.defaultProps = {
|
|
|
330
342
|
var layout_default = Layout;
|
|
331
343
|
|
|
332
344
|
// src/elements/map.tsx
|
|
333
|
-
var
|
|
334
|
-
var Map = (0,
|
|
345
|
+
var import_react7 = __toESM(require("react"));
|
|
346
|
+
var Map = (0, import_react7.forwardRef)((props, ref) => {
|
|
335
347
|
let { place, zoom, ...rest } = props;
|
|
336
|
-
return /* @__PURE__ */
|
|
348
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
337
349
|
ref,
|
|
338
350
|
...rest
|
|
339
|
-
}, /* @__PURE__ */
|
|
351
|
+
}, /* @__PURE__ */ import_react7.default.createElement("iframe", {
|
|
340
352
|
loading: "lazy",
|
|
341
353
|
scrolling: "no",
|
|
342
354
|
width: "100%",
|
|
@@ -378,21 +390,21 @@ Text.defaultProps = {
|
|
|
378
390
|
var text_default = Text;
|
|
379
391
|
|
|
380
392
|
// src/elements/video.tsx
|
|
381
|
-
var
|
|
382
|
-
var Video = (0,
|
|
383
|
-
let { isDesignMode } = (0,
|
|
393
|
+
var import_react8 = __toESM(require("react"));
|
|
394
|
+
var Video = (0, import_react8.forwardRef)((props, ref) => {
|
|
395
|
+
let { isDesignMode } = (0, import_react8.useContext)(WeaverseContext);
|
|
384
396
|
let { src, type, controls, poster, autoPlay, loop, muted, ...rest } = props;
|
|
385
|
-
return /* @__PURE__ */
|
|
397
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
386
398
|
ref,
|
|
387
399
|
...rest
|
|
388
|
-
}, /* @__PURE__ */
|
|
400
|
+
}, /* @__PURE__ */ import_react8.default.createElement("video", {
|
|
389
401
|
controls: isDesignMode ? false : controls,
|
|
390
402
|
autoPlay: isDesignMode ? false : autoPlay,
|
|
391
403
|
loop,
|
|
392
404
|
muted: true,
|
|
393
405
|
controlsList: "nodownload",
|
|
394
406
|
disablePictureInPicture: true
|
|
395
|
-
}, /* @__PURE__ */
|
|
407
|
+
}, /* @__PURE__ */ import_react8.default.createElement("source", {
|
|
396
408
|
src,
|
|
397
409
|
type: type || "video/mp4"
|
|
398
410
|
}), "Your browser does not support the video tag."));
|
|
@@ -418,33 +430,33 @@ Video.defaultProps = {
|
|
|
418
430
|
var video_default = Video;
|
|
419
431
|
|
|
420
432
|
// src/elements/instagram.tsx
|
|
421
|
-
var
|
|
433
|
+
var import_react10 = __toESM(require("react"));
|
|
422
434
|
|
|
423
435
|
// src/elements/shared/Placeholder.tsx
|
|
424
|
-
var
|
|
425
|
-
var Placeholder = (0,
|
|
436
|
+
var import_react9 = __toESM(require("react"));
|
|
437
|
+
var Placeholder = (0, import_react9.forwardRef)(
|
|
426
438
|
(props, ref) => {
|
|
427
439
|
let { element, children, ...rest } = props;
|
|
428
|
-
return /* @__PURE__ */
|
|
440
|
+
return /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
429
441
|
"data-wv-type": "placeholder",
|
|
430
442
|
style: { display: "none" },
|
|
431
443
|
ref,
|
|
432
444
|
...rest
|
|
433
|
-
}, /* @__PURE__ */
|
|
445
|
+
}, /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
434
446
|
style: { fontWeight: 600, marginBottom: "10px" }
|
|
435
|
-
}, element), /* @__PURE__ */
|
|
447
|
+
}, element), /* @__PURE__ */ import_react9.default.createElement("div", null, children));
|
|
436
448
|
}
|
|
437
449
|
);
|
|
438
450
|
var Placeholder_default = Placeholder;
|
|
439
451
|
|
|
440
452
|
// src/elements/instagram.tsx
|
|
441
453
|
var INSTAGRAM_API = "https://graph.instagram.com";
|
|
442
|
-
var Instagram = (0,
|
|
454
|
+
var Instagram = (0, import_react10.forwardRef)(
|
|
443
455
|
(props, ref) => {
|
|
444
456
|
let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props;
|
|
445
|
-
let [media, setMedia] = (0,
|
|
446
|
-
let [error, setError] = (0,
|
|
447
|
-
(0,
|
|
457
|
+
let [media, setMedia] = (0, import_react10.useState)([]);
|
|
458
|
+
let [error, setError] = (0, import_react10.useState)(null);
|
|
459
|
+
(0, import_react10.useEffect)(() => {
|
|
448
460
|
if (token) {
|
|
449
461
|
let params = new URLSearchParams({
|
|
450
462
|
access_token: token,
|
|
@@ -461,10 +473,10 @@ var Instagram = (0, import_react9.forwardRef)(
|
|
|
461
473
|
}
|
|
462
474
|
}, [token]);
|
|
463
475
|
if (!token || error) {
|
|
464
|
-
return /* @__PURE__ */
|
|
476
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
465
477
|
ref,
|
|
466
478
|
...rest
|
|
467
|
-
}, /* @__PURE__ */
|
|
479
|
+
}, /* @__PURE__ */ import_react10.default.createElement(Placeholder_default, {
|
|
468
480
|
element: "Instagram"
|
|
469
481
|
}, !token ? "Connect to Instagram to display photos on your site." : "Invalid or expired token!"));
|
|
470
482
|
}
|
|
@@ -472,20 +484,20 @@ var Instagram = (0, import_react9.forwardRef)(
|
|
|
472
484
|
"--wv-ig-images-per-row": imagesPerRow,
|
|
473
485
|
"--wv-ig-images-gap": gap + "px"
|
|
474
486
|
};
|
|
475
|
-
return /* @__PURE__ */
|
|
487
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
476
488
|
ref,
|
|
477
489
|
...rest,
|
|
478
490
|
style
|
|
479
|
-
}, /* @__PURE__ */
|
|
491
|
+
}, /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
480
492
|
className: "wv-ig-media-container"
|
|
481
493
|
}, media.slice(0, numberOfImages).map((item) => {
|
|
482
494
|
let { id, permalink, caption, media_url } = item;
|
|
483
|
-
return /* @__PURE__ */
|
|
495
|
+
return /* @__PURE__ */ import_react10.default.createElement("a", {
|
|
484
496
|
key: id,
|
|
485
497
|
href: permalink,
|
|
486
498
|
target: "_blank",
|
|
487
499
|
rel: "noreferrer"
|
|
488
|
-
}, /* @__PURE__ */
|
|
500
|
+
}, /* @__PURE__ */ import_react10.default.createElement("img", {
|
|
489
501
|
alt: caption,
|
|
490
502
|
src: media_url
|
|
491
503
|
}));
|
|
@@ -520,17 +532,17 @@ Instagram.defaultProps = {
|
|
|
520
532
|
var instagram_default = Instagram;
|
|
521
533
|
|
|
522
534
|
// src/elements/accordion/index.tsx
|
|
523
|
-
var
|
|
524
|
-
var AccordionContext = (0,
|
|
535
|
+
var import_react11 = __toESM(require("react"));
|
|
536
|
+
var AccordionContext = (0, import_react11.createContext)({
|
|
525
537
|
iconName: "arrow",
|
|
526
538
|
active: [],
|
|
527
539
|
setActive: () => {
|
|
528
540
|
}
|
|
529
541
|
});
|
|
530
|
-
var Accordion = (0,
|
|
542
|
+
var Accordion = (0, import_react11.forwardRef)(
|
|
531
543
|
(props, ref) => {
|
|
532
544
|
const { iconName, children, ...rest } = props;
|
|
533
|
-
const [active, setActive] = (0,
|
|
545
|
+
const [active, setActive] = (0, import_react11.useState)([]);
|
|
534
546
|
const setOpenAccordion = (id) => {
|
|
535
547
|
if (active.includes(id)) {
|
|
536
548
|
setActive(active.filter((_id) => _id !== id));
|
|
@@ -538,10 +550,10 @@ var Accordion = (0, import_react10.forwardRef)(
|
|
|
538
550
|
setActive([...active, id]);
|
|
539
551
|
}
|
|
540
552
|
};
|
|
541
|
-
return /* @__PURE__ */
|
|
553
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
542
554
|
ref,
|
|
543
555
|
...rest
|
|
544
|
-
}, /* @__PURE__ */
|
|
556
|
+
}, /* @__PURE__ */ import_react11.default.createElement(AccordionContext.Provider, {
|
|
545
557
|
value: { active, setActive: setOpenAccordion, iconName }
|
|
546
558
|
}, children));
|
|
547
559
|
}
|
|
@@ -559,10 +571,10 @@ Accordion.defaultProps = {
|
|
|
559
571
|
var accordion_default = Accordion;
|
|
560
572
|
|
|
561
573
|
// src/elements/accordion/AccordionWrapper.tsx
|
|
562
|
-
var
|
|
574
|
+
var import_react13 = __toESM(require("react"));
|
|
563
575
|
|
|
564
576
|
// src/elements/accordion/Icon.tsx
|
|
565
|
-
var
|
|
577
|
+
var import_react12 = __toESM(require("react"));
|
|
566
578
|
var ICONS = {
|
|
567
579
|
caret: {
|
|
568
580
|
animationType: "rotate90",
|
|
@@ -619,7 +631,7 @@ var rotateAnimation = {
|
|
|
619
631
|
};
|
|
620
632
|
function Icon(props) {
|
|
621
633
|
let { name, active = false, style, ...rest } = props;
|
|
622
|
-
let { stitchesInstance } = (0,
|
|
634
|
+
let { stitchesInstance } = (0, import_react12.useContext)(WeaverseContext);
|
|
623
635
|
const { animationType, css } = ICONS[name];
|
|
624
636
|
if (active && animationType === "rotate90") {
|
|
625
637
|
style = { ...rotateAnimation, ...style };
|
|
@@ -627,27 +639,27 @@ function Icon(props) {
|
|
|
627
639
|
let { className } = stitchesInstance.css(css)();
|
|
628
640
|
if (active)
|
|
629
641
|
className += " active";
|
|
630
|
-
return /* @__PURE__ */
|
|
642
|
+
return /* @__PURE__ */ import_react12.default.createElement("span", {
|
|
631
643
|
style,
|
|
632
644
|
...rest
|
|
633
|
-
}, /* @__PURE__ */
|
|
645
|
+
}, /* @__PURE__ */ import_react12.default.createElement("i", {
|
|
634
646
|
className
|
|
635
647
|
}));
|
|
636
648
|
}
|
|
637
649
|
var Icon_default = Icon;
|
|
638
650
|
|
|
639
651
|
// src/elements/accordion/AccordionWrapper.tsx
|
|
640
|
-
var AccordionWrapper = (0,
|
|
652
|
+
var AccordionWrapper = (0, import_react13.forwardRef)((props, ref) => {
|
|
641
653
|
const { ["data-wv-id"]: wvId, name, children, ...rest } = props;
|
|
642
|
-
const { iconName, active, setActive } = (0,
|
|
654
|
+
const { iconName, active, setActive } = (0, import_react13.useContext)(AccordionContext);
|
|
643
655
|
const isActive = active.includes(wvId);
|
|
644
|
-
return /* @__PURE__ */
|
|
656
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
645
657
|
ref,
|
|
646
658
|
...rest
|
|
647
|
-
}, /* @__PURE__ */
|
|
659
|
+
}, /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
648
660
|
onClick: () => setActive(wvId),
|
|
649
661
|
className: `wv-acc-header ${isActive ? "active" : ""}`
|
|
650
|
-
}, /* @__PURE__ */
|
|
662
|
+
}, /* @__PURE__ */ import_react13.default.createElement("span", null, name), /* @__PURE__ */ import_react13.default.createElement(Icon_default, {
|
|
651
663
|
className: "wv-acc-icon",
|
|
652
664
|
active: isActive,
|
|
653
665
|
name: iconName
|
|
@@ -683,8 +695,8 @@ AccordionWrapper.defaultProps = {
|
|
|
683
695
|
var AccordionWrapper_default = AccordionWrapper;
|
|
684
696
|
|
|
685
697
|
// src/elements/accordion/AccordionContent.tsx
|
|
686
|
-
var
|
|
687
|
-
var AccordionContent = (0,
|
|
698
|
+
var import_react14 = __toESM(require("react"));
|
|
699
|
+
var AccordionContent = (0, import_react14.forwardRef)(
|
|
688
700
|
(props, ref) => {
|
|
689
701
|
const { rows, columns, gap, rowSize, children, ...rest } = props;
|
|
690
702
|
let style = {
|
|
@@ -695,11 +707,11 @@ var AccordionContent = (0, import_react13.forwardRef)(
|
|
|
695
707
|
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
|
|
696
708
|
"--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
|
|
697
709
|
};
|
|
698
|
-
return /* @__PURE__ */
|
|
710
|
+
return /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
699
711
|
ref,
|
|
700
712
|
...rest,
|
|
701
713
|
style
|
|
702
|
-
},
|
|
714
|
+
}, import_react14.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react14.default.createElement(Placeholder_default, {
|
|
703
715
|
element: "Accordion Content"
|
|
704
716
|
}, "Drag and drop an element here."));
|
|
705
717
|
}
|
|
@@ -727,64 +739,64 @@ AccordionContent.defaultProps = {
|
|
|
727
739
|
var AccordionContent_default = AccordionContent;
|
|
728
740
|
|
|
729
741
|
// src/elements/tab/index.tsx
|
|
730
|
-
var
|
|
742
|
+
var import_react16 = __toESM(require("react"));
|
|
731
743
|
|
|
732
744
|
// src/elements/tab/TabHeaderWrapper.tsx
|
|
733
|
-
var
|
|
745
|
+
var import_react15 = __toESM(require("react"));
|
|
734
746
|
function TabHeader(props) {
|
|
735
747
|
const { wvId } = props;
|
|
736
|
-
const { active, setActive } = (0,
|
|
737
|
-
const { itemInstances } = (0,
|
|
748
|
+
const { active, setActive } = (0, import_react15.useContext)(TabContext);
|
|
749
|
+
const { itemInstances } = (0, import_react15.useContext)(WeaverseContext);
|
|
738
750
|
const instance = itemInstances.get(wvId);
|
|
739
|
-
let [data, setData] = (0,
|
|
740
|
-
(0,
|
|
751
|
+
let [data, setData] = (0, import_react15.useState)(instance.data);
|
|
752
|
+
(0, import_react15.useEffect)(() => {
|
|
741
753
|
let update = (data2) => setData({ ...data2 });
|
|
742
754
|
instance.subscribe(update);
|
|
743
755
|
}, []);
|
|
744
|
-
return /* @__PURE__ */
|
|
756
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
745
757
|
onClick: () => setActive(wvId),
|
|
746
758
|
className: `wv-tab-header${active === wvId ? " active" : ""}`
|
|
747
759
|
}, data.name);
|
|
748
760
|
}
|
|
749
761
|
function TabHeaderWrapper(props) {
|
|
750
|
-
const { itemInstances } = (0,
|
|
762
|
+
const { itemInstances } = (0, import_react15.useContext)(WeaverseContext);
|
|
751
763
|
const instance = itemInstances.get(props.wvId);
|
|
752
764
|
const data = instance.data;
|
|
753
765
|
const childIds = data.childIds;
|
|
754
|
-
return /* @__PURE__ */
|
|
766
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
755
767
|
className: "wv-tab-header-wrapper"
|
|
756
|
-
}, childIds.map((id) => /* @__PURE__ */
|
|
768
|
+
}, childIds.map((id) => /* @__PURE__ */ import_react15.default.createElement(TabHeader, {
|
|
757
769
|
key: id,
|
|
758
770
|
wvId: id
|
|
759
771
|
})));
|
|
760
772
|
}
|
|
761
773
|
|
|
762
774
|
// src/elements/tab/index.tsx
|
|
763
|
-
var TabContext = (0,
|
|
775
|
+
var TabContext = (0, import_react16.createContext)({
|
|
764
776
|
active: null,
|
|
765
777
|
setActive: () => {
|
|
766
778
|
}
|
|
767
779
|
});
|
|
768
|
-
var Tab = (0,
|
|
780
|
+
var Tab = (0, import_react16.forwardRef)((props, ref) => {
|
|
769
781
|
var _a, _b, _c;
|
|
770
782
|
const wvId = props["data-wv-id"];
|
|
771
783
|
const { fullWidthTabHeader, children, ...rest } = props;
|
|
772
|
-
const defaultActive = (_c = (_b = (_a =
|
|
773
|
-
const [active, setActive] = (0,
|
|
784
|
+
const defaultActive = (_c = (_b = (_a = import_react16.default.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
|
|
785
|
+
const [active, setActive] = (0, import_react16.useState)(defaultActive);
|
|
774
786
|
const setOpenTab = (id) => {
|
|
775
787
|
if (id !== active) {
|
|
776
788
|
setActive(id);
|
|
777
789
|
}
|
|
778
790
|
};
|
|
779
|
-
return /* @__PURE__ */
|
|
791
|
+
return /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
780
792
|
ref,
|
|
781
793
|
...rest,
|
|
782
794
|
style: {
|
|
783
795
|
"--tab-width": fullWidthTabHeader ? "100%" : "auto"
|
|
784
796
|
}
|
|
785
|
-
}, /* @__PURE__ */
|
|
797
|
+
}, /* @__PURE__ */ import_react16.default.createElement(TabContext.Provider, {
|
|
786
798
|
value: { active, setActive: setOpenTab }
|
|
787
|
-
}, /* @__PURE__ */
|
|
799
|
+
}, /* @__PURE__ */ import_react16.default.createElement(TabHeaderWrapper, {
|
|
788
800
|
wvId
|
|
789
801
|
}), children));
|
|
790
802
|
});
|
|
@@ -817,10 +829,10 @@ Tab.defaultProps = {
|
|
|
817
829
|
var tab_default = Tab;
|
|
818
830
|
|
|
819
831
|
// src/elements/tab/TabContent.tsx
|
|
820
|
-
var
|
|
821
|
-
var TabContent = (0,
|
|
832
|
+
var import_react17 = __toESM(require("react"));
|
|
833
|
+
var TabContent = (0, import_react17.forwardRef)(
|
|
822
834
|
(props, ref) => {
|
|
823
|
-
const { active } = (0,
|
|
835
|
+
const { active } = (0, import_react17.useContext)(TabContext);
|
|
824
836
|
const wvId = props["data-wv-id"];
|
|
825
837
|
const { rows, columns, gap, rowSize, children, ...rest } = props;
|
|
826
838
|
let style = {
|
|
@@ -832,11 +844,11 @@ var TabContent = (0, import_react16.forwardRef)(
|
|
|
832
844
|
"--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
|
|
833
845
|
"--content-active": active === wvId ? "grid" : "none"
|
|
834
846
|
};
|
|
835
|
-
return /* @__PURE__ */
|
|
847
|
+
return /* @__PURE__ */ import_react17.default.createElement("div", {
|
|
836
848
|
ref,
|
|
837
849
|
...rest,
|
|
838
850
|
style
|
|
839
|
-
},
|
|
851
|
+
}, import_react17.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react17.default.createElement(Placeholder_default, {
|
|
840
852
|
element: "Tab Content"
|
|
841
853
|
}, "Drag and drop an element here."));
|
|
842
854
|
}
|
|
@@ -862,28 +874,28 @@ TabContent.defaultProps = {
|
|
|
862
874
|
var TabContent_default = TabContent;
|
|
863
875
|
|
|
864
876
|
// src/elements/slider/index.tsx
|
|
865
|
-
var
|
|
877
|
+
var import_react18 = __toESM(require("react"));
|
|
866
878
|
var import_carousel = require("nuka-carousel/lib/carousel");
|
|
867
|
-
var Slider = (0,
|
|
868
|
-
const { isDesignMode } = (0,
|
|
879
|
+
var Slider = (0, import_react18.forwardRef)((props, ref) => {
|
|
880
|
+
const { isDesignMode } = (0, import_react18.useContext)(WeaverseContext);
|
|
869
881
|
const { autoplay, delay, children, ...rest } = props;
|
|
870
|
-
return /* @__PURE__ */
|
|
882
|
+
return /* @__PURE__ */ import_react18.default.createElement("div", {
|
|
871
883
|
...rest,
|
|
872
884
|
ref
|
|
873
|
-
}, /* @__PURE__ */
|
|
885
|
+
}, /* @__PURE__ */ import_react18.default.createElement(import_carousel.Carousel, {
|
|
874
886
|
dragging: false,
|
|
875
|
-
renderCenterLeftControls: (props2) => /* @__PURE__ */
|
|
887
|
+
renderCenterLeftControls: (props2) => /* @__PURE__ */ import_react18.default.createElement("button", {
|
|
876
888
|
className: "wv-slider-btn",
|
|
877
889
|
onClick: props2.previousSlide,
|
|
878
890
|
disabled: (isDesignMode || !autoplay) && props2.currentSlide === 0
|
|
879
|
-
}, /* @__PURE__ */
|
|
891
|
+
}, /* @__PURE__ */ import_react18.default.createElement("i", {
|
|
880
892
|
className: "wv-slider-arrow wv-slider-arrow-left"
|
|
881
893
|
})),
|
|
882
|
-
renderCenterRightControls: (props2) => /* @__PURE__ */
|
|
894
|
+
renderCenterRightControls: (props2) => /* @__PURE__ */ import_react18.default.createElement("button", {
|
|
883
895
|
className: "wv-slider-btn",
|
|
884
896
|
onClick: props2.nextSlide,
|
|
885
897
|
disabled: (isDesignMode || !autoplay) && props2.slideCount === props2.currentSlide
|
|
886
|
-
}, /* @__PURE__ */
|
|
898
|
+
}, /* @__PURE__ */ import_react18.default.createElement("i", {
|
|
887
899
|
className: "wv-slider-arrow wv-slider-arrow-right"
|
|
888
900
|
})),
|
|
889
901
|
wrapAround: !isDesignMode,
|
|
@@ -931,10 +943,10 @@ Slider.defaultProps = {
|
|
|
931
943
|
var slider_default = Slider;
|
|
932
944
|
|
|
933
945
|
// src/elements/slider/SliderContent.tsx
|
|
934
|
-
var
|
|
935
|
-
var SliderContent = (0,
|
|
946
|
+
var import_react19 = __toESM(require("react"));
|
|
947
|
+
var SliderContent = (0, import_react19.forwardRef)(
|
|
936
948
|
(props, ref) => {
|
|
937
|
-
const { isDesignMode } = (0,
|
|
949
|
+
const { isDesignMode } = (0, import_react19.useContext)(WeaverseContext);
|
|
938
950
|
const {
|
|
939
951
|
mediaUrl,
|
|
940
952
|
targetLink,
|
|
@@ -960,11 +972,11 @@ var SliderContent = (0, import_react18.forwardRef)(
|
|
|
960
972
|
window.open(targetLink, openInNewTab ? "_blank" : "_self");
|
|
961
973
|
}
|
|
962
974
|
};
|
|
963
|
-
return /* @__PURE__ */
|
|
975
|
+
return /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
964
976
|
...rest,
|
|
965
977
|
style,
|
|
966
978
|
onClick: handleClick
|
|
967
|
-
},
|
|
979
|
+
}, import_react19.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react19.default.createElement(Placeholder_default, {
|
|
968
980
|
element: "Slider Content"
|
|
969
981
|
}, "Drag and drop an element here."));
|
|
970
982
|
}
|
|
@@ -993,44 +1005,10 @@ SliderContent.defaultProps = {
|
|
|
993
1005
|
};
|
|
994
1006
|
var SliderContent_default = SliderContent;
|
|
995
1007
|
|
|
996
|
-
// src/elements/custom-html.tsx
|
|
997
|
-
var import_react19 = __toESM(require("react"));
|
|
998
|
-
var CustomHTML = (0, import_react19.forwardRef)(
|
|
999
|
-
(props, ref) => {
|
|
1000
|
-
const { content, children, ...rest } = props;
|
|
1001
|
-
const { isDesignMode } = (0, import_react19.useContext)(WeaverseContext);
|
|
1002
|
-
const style = {
|
|
1003
|
-
"--pointer-events": isDesignMode ? "none" : "auto"
|
|
1004
|
-
};
|
|
1005
|
-
if (!content)
|
|
1006
|
-
return /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
1007
|
-
ref,
|
|
1008
|
-
...rest
|
|
1009
|
-
}, /* @__PURE__ */ import_react19.default.createElement(Placeholder_default, {
|
|
1010
|
-
element: "Custom HTML"
|
|
1011
|
-
}, "Add your custom HTML code."));
|
|
1012
|
-
return /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
1013
|
-
ref,
|
|
1014
|
-
...rest,
|
|
1015
|
-
style,
|
|
1016
|
-
dangerouslySetInnerHTML: { __html: content }
|
|
1017
|
-
});
|
|
1018
|
-
}
|
|
1019
|
-
);
|
|
1020
|
-
CustomHTML.defaultProps = {
|
|
1021
|
-
content: "",
|
|
1022
|
-
type: "custom.html",
|
|
1023
|
-
css: {
|
|
1024
|
-
"@desktop": {
|
|
1025
|
-
"& > *": {
|
|
1026
|
-
pointerEvents: "var(--pointer-events, unset)"
|
|
1027
|
-
}
|
|
1028
|
-
}
|
|
1029
|
-
}
|
|
1030
|
-
};
|
|
1031
|
-
var custom_html_default = CustomHTML;
|
|
1032
|
-
|
|
1033
1008
|
// src/elements/index.ts
|
|
1009
|
+
var SharedComponents = {
|
|
1010
|
+
Placeholder: Placeholder_default
|
|
1011
|
+
};
|
|
1034
1012
|
var Elements = {
|
|
1035
1013
|
Countdown: {
|
|
1036
1014
|
Component: countdown_default,
|
|
@@ -1095,28 +1073,12 @@ var Elements = {
|
|
|
1095
1073
|
SliderContent: {
|
|
1096
1074
|
Component: SliderContent_default,
|
|
1097
1075
|
type: "slider.content"
|
|
1098
|
-
},
|
|
1099
|
-
CustomHTML: {
|
|
1100
|
-
Component: custom_html_default,
|
|
1101
|
-
type: "custom.html"
|
|
1102
1076
|
}
|
|
1103
1077
|
};
|
|
1104
1078
|
|
|
1105
|
-
// src/context.ts
|
|
1106
|
-
var createRootContext = (configs) => {
|
|
1107
|
-
let rootContext = new import_core.Weaverse(configs);
|
|
1108
|
-
Object.keys(Elements).forEach((key) => {
|
|
1109
|
-
rootContext.registerElement(Elements[key]);
|
|
1110
|
-
});
|
|
1111
|
-
return rootContext;
|
|
1112
|
-
};
|
|
1113
|
-
var WeaverseContext = (0, import_react20.createContext)({});
|
|
1114
|
-
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1115
|
-
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1116
|
-
|
|
1117
1079
|
// src/renderer.tsx
|
|
1118
1080
|
var import_core2 = require("@weaverse/core");
|
|
1119
|
-
var
|
|
1081
|
+
var import_react20 = __toESM(require("react"));
|
|
1120
1082
|
|
|
1121
1083
|
// src/utils/index.ts
|
|
1122
1084
|
function shortCssObject(css) {
|
|
@@ -1126,15 +1088,14 @@ function shortCssObject(css) {
|
|
|
1126
1088
|
};
|
|
1127
1089
|
}
|
|
1128
1090
|
function generateItemClass(instance, stitchesInstance) {
|
|
1129
|
-
var _a
|
|
1091
|
+
var _a;
|
|
1130
1092
|
let { css, className: cls = "" } = instance.data;
|
|
1131
|
-
let defaultCss = ((_c = (_b = (_a = instance.Element) == null ? void 0 : _a.Component) == null ? void 0 : _b.defaultProps) == null ? void 0 : _c.css) || {};
|
|
1132
1093
|
let className = "";
|
|
1133
|
-
if (css
|
|
1134
|
-
let formattedCss = shortCssObject(css
|
|
1094
|
+
if (css) {
|
|
1095
|
+
let formattedCss = shortCssObject(css);
|
|
1135
1096
|
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
1136
1097
|
let { stitchesClass } = instance;
|
|
1137
|
-
let otherClass = (((
|
|
1098
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
1138
1099
|
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
1139
1100
|
instance.stitchesClass = newClass;
|
|
1140
1101
|
}
|
|
@@ -1144,10 +1105,10 @@ function generateItemClass(instance, stitchesInstance) {
|
|
|
1144
1105
|
// src/renderer.tsx
|
|
1145
1106
|
var WeaverseRoot = ({ context }) => {
|
|
1146
1107
|
var _a, _b;
|
|
1147
|
-
let [, setData] = (0,
|
|
1148
|
-
let rootRef = (0,
|
|
1108
|
+
let [, setData] = (0, import_react20.useState)(context.projectData);
|
|
1109
|
+
let rootRef = (0, import_react20.useRef)();
|
|
1149
1110
|
let update = () => setData({});
|
|
1150
|
-
(0,
|
|
1111
|
+
(0, import_react20.useEffect)(() => {
|
|
1151
1112
|
context.subscribe(update);
|
|
1152
1113
|
context.contentRootElement = rootRef.current;
|
|
1153
1114
|
return () => {
|
|
@@ -1156,22 +1117,21 @@ var WeaverseRoot = ({ context }) => {
|
|
|
1156
1117
|
}, []);
|
|
1157
1118
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
1158
1119
|
let themeClass = context.stitchesInstance.theme.className;
|
|
1159
|
-
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */
|
|
1120
|
+
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
1160
1121
|
className: `weaverse-content-root ${themeClass}`,
|
|
1161
1122
|
...eventHandlers,
|
|
1162
1123
|
ref: rootRef
|
|
1163
|
-
}, /* @__PURE__ */
|
|
1124
|
+
}, /* @__PURE__ */ import_react20.default.createElement(WeaverseContextProvider, {
|
|
1164
1125
|
value: context
|
|
1165
|
-
}, /* @__PURE__ */
|
|
1126
|
+
}, /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
|
|
1166
1127
|
id: context.projectData.rootId
|
|
1167
1128
|
}))) : null;
|
|
1168
1129
|
};
|
|
1169
1130
|
var ItemComponent = ({ instance }) => {
|
|
1170
|
-
let { stitchesInstance, elementInstances } = (0,
|
|
1171
|
-
let [data, setData] = (0,
|
|
1131
|
+
let { stitchesInstance, elementInstances } = (0, import_react20.useContext)(WeaverseContext);
|
|
1132
|
+
let [data, setData] = (0, import_react20.useState)(instance.data);
|
|
1172
1133
|
let { id, type, childIds = [], css, className, ...rest } = data;
|
|
1173
|
-
(0,
|
|
1174
|
-
var _a;
|
|
1134
|
+
(0, import_react20.useEffect)(() => {
|
|
1175
1135
|
let update = (data2) => setData({ ...data2 });
|
|
1176
1136
|
instance.subscribe(update);
|
|
1177
1137
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
@@ -1179,10 +1139,7 @@ var ItemComponent = ({ instance }) => {
|
|
|
1179
1139
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
1180
1140
|
});
|
|
1181
1141
|
}
|
|
1182
|
-
(
|
|
1183
|
-
return () => {
|
|
1184
|
-
instance.unsubscribe(update);
|
|
1185
|
-
};
|
|
1142
|
+
return () => instance.unsubscribe(update);
|
|
1186
1143
|
}, []);
|
|
1187
1144
|
let Element = elementInstances.get(type);
|
|
1188
1145
|
if (Element == null ? void 0 : Element.Component) {
|
|
@@ -1190,13 +1147,13 @@ var ItemComponent = ({ instance }) => {
|
|
|
1190
1147
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
1191
1148
|
rest.ref = instance.ref;
|
|
1192
1149
|
}
|
|
1193
|
-
return /* @__PURE__ */
|
|
1150
|
+
return /* @__PURE__ */ import_react20.default.createElement(Component, {
|
|
1194
1151
|
key: id,
|
|
1195
1152
|
"data-wv-type": type,
|
|
1196
1153
|
"data-wv-id": id,
|
|
1197
1154
|
className: generateItemClass(instance, stitchesInstance),
|
|
1198
1155
|
...rest
|
|
1199
|
-
}, childIds.map((id2) => /* @__PURE__ */
|
|
1156
|
+
}, childIds.map((id2) => /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
|
|
1200
1157
|
key: id2,
|
|
1201
1158
|
id: id2
|
|
1202
1159
|
})));
|
|
@@ -1204,15 +1161,15 @@ var ItemComponent = ({ instance }) => {
|
|
|
1204
1161
|
return null;
|
|
1205
1162
|
};
|
|
1206
1163
|
var ItemInstance = ({ id }) => {
|
|
1207
|
-
let context = (0,
|
|
1164
|
+
let context = (0, import_react20.useContext)(WeaverseContext);
|
|
1208
1165
|
let { itemInstances } = context;
|
|
1209
1166
|
let instance = itemInstances.get(id);
|
|
1210
1167
|
if (!instance) {
|
|
1211
|
-
return /* @__PURE__ */
|
|
1168
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
1212
1169
|
style: { display: "none" }
|
|
1213
1170
|
}, "Item instance ", id, " not found");
|
|
1214
1171
|
}
|
|
1215
|
-
return /* @__PURE__ */
|
|
1172
|
+
return /* @__PURE__ */ import_react20.default.createElement(ItemComponent, {
|
|
1216
1173
|
instance
|
|
1217
1174
|
});
|
|
1218
1175
|
};
|
|
@@ -1221,6 +1178,8 @@ var ItemInstance = ({ id }) => {
|
|
|
1221
1178
|
__reExport(src_exports, require("@weaverse/core"), module.exports);
|
|
1222
1179
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1223
1180
|
0 && (module.exports = {
|
|
1181
|
+
Elements,
|
|
1182
|
+
SharedComponents,
|
|
1224
1183
|
WeaverseContext,
|
|
1225
1184
|
WeaverseContextConsumer,
|
|
1226
1185
|
WeaverseContextProvider,
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
// src/context.ts
|
|
2
|
-
import { Weaverse } from "@weaverse/core";
|
|
3
|
-
import { createContext as createContext3 } from "react";
|
|
4
|
-
|
|
5
1
|
// src/elements/button.tsx
|
|
6
2
|
import * as React from "react";
|
|
7
3
|
var Button = React.forwardRef((props, ref) => {
|
|
@@ -71,6 +67,20 @@ var container_default = Container;
|
|
|
71
67
|
// src/elements/countdown/index.tsx
|
|
72
68
|
import React4, { forwardRef as forwardRef3, useContext, useEffect } from "react";
|
|
73
69
|
|
|
70
|
+
// src/context.ts
|
|
71
|
+
import { Weaverse } from "@weaverse/core";
|
|
72
|
+
import { createContext } from "react";
|
|
73
|
+
var createRootContext = (configs) => {
|
|
74
|
+
let rootContext = new Weaverse(configs);
|
|
75
|
+
Object.keys(Elements).forEach((key) => {
|
|
76
|
+
rootContext.registerElement(Elements[key]);
|
|
77
|
+
});
|
|
78
|
+
return rootContext;
|
|
79
|
+
};
|
|
80
|
+
var WeaverseContext = createContext({});
|
|
81
|
+
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
82
|
+
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
83
|
+
|
|
74
84
|
// src/elements/countdown/timer-block.tsx
|
|
75
85
|
import React3 from "react";
|
|
76
86
|
function TimerBlock({ value, label }) {
|
|
@@ -483,8 +493,8 @@ Instagram.defaultProps = {
|
|
|
483
493
|
var instagram_default = Instagram;
|
|
484
494
|
|
|
485
495
|
// src/elements/accordion/index.tsx
|
|
486
|
-
import React12, { createContext, forwardRef as forwardRef10, useState as useState2 } from "react";
|
|
487
|
-
var AccordionContext =
|
|
496
|
+
import React12, { createContext as createContext2, forwardRef as forwardRef10, useState as useState2 } from "react";
|
|
497
|
+
var AccordionContext = createContext2({
|
|
488
498
|
iconName: "arrow",
|
|
489
499
|
active: [],
|
|
490
500
|
setActive: () => {
|
|
@@ -690,7 +700,7 @@ AccordionContent.defaultProps = {
|
|
|
690
700
|
var AccordionContent_default = AccordionContent;
|
|
691
701
|
|
|
692
702
|
// src/elements/tab/index.tsx
|
|
693
|
-
import React17, { createContext as
|
|
703
|
+
import React17, { createContext as createContext3, forwardRef as forwardRef13, useState as useState4 } from "react";
|
|
694
704
|
|
|
695
705
|
// src/elements/tab/TabHeaderWrapper.tsx
|
|
696
706
|
import React16, { useContext as useContext6, useEffect as useEffect3, useState as useState3 } from "react";
|
|
@@ -723,7 +733,7 @@ function TabHeaderWrapper(props) {
|
|
|
723
733
|
}
|
|
724
734
|
|
|
725
735
|
// src/elements/tab/index.tsx
|
|
726
|
-
var TabContext =
|
|
736
|
+
var TabContext = createContext3({
|
|
727
737
|
active: null,
|
|
728
738
|
setActive: () => {
|
|
729
739
|
}
|
|
@@ -956,44 +966,10 @@ SliderContent.defaultProps = {
|
|
|
956
966
|
};
|
|
957
967
|
var SliderContent_default = SliderContent;
|
|
958
968
|
|
|
959
|
-
// src/elements/custom-html.tsx
|
|
960
|
-
import React21, { forwardRef as forwardRef17, useContext as useContext10 } from "react";
|
|
961
|
-
var CustomHTML = forwardRef17(
|
|
962
|
-
(props, ref) => {
|
|
963
|
-
const { content, children, ...rest } = props;
|
|
964
|
-
const { isDesignMode } = useContext10(WeaverseContext);
|
|
965
|
-
const style = {
|
|
966
|
-
"--pointer-events": isDesignMode ? "none" : "auto"
|
|
967
|
-
};
|
|
968
|
-
if (!content)
|
|
969
|
-
return /* @__PURE__ */ React21.createElement("div", {
|
|
970
|
-
ref,
|
|
971
|
-
...rest
|
|
972
|
-
}, /* @__PURE__ */ React21.createElement(Placeholder_default, {
|
|
973
|
-
element: "Custom HTML"
|
|
974
|
-
}, "Add your custom HTML code."));
|
|
975
|
-
return /* @__PURE__ */ React21.createElement("div", {
|
|
976
|
-
ref,
|
|
977
|
-
...rest,
|
|
978
|
-
style,
|
|
979
|
-
dangerouslySetInnerHTML: { __html: content }
|
|
980
|
-
});
|
|
981
|
-
}
|
|
982
|
-
);
|
|
983
|
-
CustomHTML.defaultProps = {
|
|
984
|
-
content: "",
|
|
985
|
-
type: "custom.html",
|
|
986
|
-
css: {
|
|
987
|
-
"@desktop": {
|
|
988
|
-
"& > *": {
|
|
989
|
-
pointerEvents: "var(--pointer-events, unset)"
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
};
|
|
994
|
-
var custom_html_default = CustomHTML;
|
|
995
|
-
|
|
996
969
|
// src/elements/index.ts
|
|
970
|
+
var SharedComponents = {
|
|
971
|
+
Placeholder: Placeholder_default
|
|
972
|
+
};
|
|
997
973
|
var Elements = {
|
|
998
974
|
Countdown: {
|
|
999
975
|
Component: countdown_default,
|
|
@@ -1058,28 +1034,12 @@ var Elements = {
|
|
|
1058
1034
|
SliderContent: {
|
|
1059
1035
|
Component: SliderContent_default,
|
|
1060
1036
|
type: "slider.content"
|
|
1061
|
-
},
|
|
1062
|
-
CustomHTML: {
|
|
1063
|
-
Component: custom_html_default,
|
|
1064
|
-
type: "custom.html"
|
|
1065
1037
|
}
|
|
1066
1038
|
};
|
|
1067
1039
|
|
|
1068
|
-
// src/context.ts
|
|
1069
|
-
var createRootContext = (configs) => {
|
|
1070
|
-
let rootContext = new Weaverse(configs);
|
|
1071
|
-
Object.keys(Elements).forEach((key) => {
|
|
1072
|
-
rootContext.registerElement(Elements[key]);
|
|
1073
|
-
});
|
|
1074
|
-
return rootContext;
|
|
1075
|
-
};
|
|
1076
|
-
var WeaverseContext = createContext3({});
|
|
1077
|
-
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1078
|
-
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1079
|
-
|
|
1080
1040
|
// src/renderer.tsx
|
|
1081
1041
|
import { isBrowser } from "@weaverse/core";
|
|
1082
|
-
import
|
|
1042
|
+
import React21, { useContext as useContext10, useEffect as useEffect4, useRef, useState as useState5 } from "react";
|
|
1083
1043
|
|
|
1084
1044
|
// src/utils/index.ts
|
|
1085
1045
|
function shortCssObject(css) {
|
|
@@ -1089,15 +1049,14 @@ function shortCssObject(css) {
|
|
|
1089
1049
|
};
|
|
1090
1050
|
}
|
|
1091
1051
|
function generateItemClass(instance, stitchesInstance) {
|
|
1092
|
-
var _a
|
|
1052
|
+
var _a;
|
|
1093
1053
|
let { css, className: cls = "" } = instance.data;
|
|
1094
|
-
let defaultCss = ((_c = (_b = (_a = instance.Element) == null ? void 0 : _a.Component) == null ? void 0 : _b.defaultProps) == null ? void 0 : _c.css) || {};
|
|
1095
1054
|
let className = "";
|
|
1096
|
-
if (css
|
|
1097
|
-
let formattedCss = shortCssObject(css
|
|
1055
|
+
if (css) {
|
|
1056
|
+
let formattedCss = shortCssObject(css);
|
|
1098
1057
|
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
1099
1058
|
let { stitchesClass } = instance;
|
|
1100
|
-
let otherClass = (((
|
|
1059
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
1101
1060
|
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
1102
1061
|
instance.stitchesClass = newClass;
|
|
1103
1062
|
}
|
|
@@ -1119,22 +1078,21 @@ var WeaverseRoot = ({ context }) => {
|
|
|
1119
1078
|
}, []);
|
|
1120
1079
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
1121
1080
|
let themeClass = context.stitchesInstance.theme.className;
|
|
1122
|
-
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */
|
|
1081
|
+
return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React21.createElement("div", {
|
|
1123
1082
|
className: `weaverse-content-root ${themeClass}`,
|
|
1124
1083
|
...eventHandlers,
|
|
1125
1084
|
ref: rootRef
|
|
1126
|
-
}, /* @__PURE__ */
|
|
1085
|
+
}, /* @__PURE__ */ React21.createElement(WeaverseContextProvider, {
|
|
1127
1086
|
value: context
|
|
1128
|
-
}, /* @__PURE__ */
|
|
1087
|
+
}, /* @__PURE__ */ React21.createElement(ItemInstance, {
|
|
1129
1088
|
id: context.projectData.rootId
|
|
1130
1089
|
}))) : null;
|
|
1131
1090
|
};
|
|
1132
1091
|
var ItemComponent = ({ instance }) => {
|
|
1133
|
-
let { stitchesInstance, elementInstances } =
|
|
1092
|
+
let { stitchesInstance, elementInstances } = useContext10(WeaverseContext);
|
|
1134
1093
|
let [data, setData] = useState5(instance.data);
|
|
1135
1094
|
let { id, type, childIds = [], css, className, ...rest } = data;
|
|
1136
1095
|
useEffect4(() => {
|
|
1137
|
-
var _a;
|
|
1138
1096
|
let update = (data2) => setData({ ...data2 });
|
|
1139
1097
|
instance.subscribe(update);
|
|
1140
1098
|
if (isBrowser && !instance.ref.current) {
|
|
@@ -1142,10 +1100,7 @@ var ItemComponent = ({ instance }) => {
|
|
|
1142
1100
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
1143
1101
|
});
|
|
1144
1102
|
}
|
|
1145
|
-
(
|
|
1146
|
-
return () => {
|
|
1147
|
-
instance.unsubscribe(update);
|
|
1148
|
-
};
|
|
1103
|
+
return () => instance.unsubscribe(update);
|
|
1149
1104
|
}, []);
|
|
1150
1105
|
let Element = elementInstances.get(type);
|
|
1151
1106
|
if (Element == null ? void 0 : Element.Component) {
|
|
@@ -1153,13 +1108,13 @@ var ItemComponent = ({ instance }) => {
|
|
|
1153
1108
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
1154
1109
|
rest.ref = instance.ref;
|
|
1155
1110
|
}
|
|
1156
|
-
return /* @__PURE__ */
|
|
1111
|
+
return /* @__PURE__ */ React21.createElement(Component, {
|
|
1157
1112
|
key: id,
|
|
1158
1113
|
"data-wv-type": type,
|
|
1159
1114
|
"data-wv-id": id,
|
|
1160
1115
|
className: generateItemClass(instance, stitchesInstance),
|
|
1161
1116
|
...rest
|
|
1162
|
-
}, childIds.map((id2) => /* @__PURE__ */
|
|
1117
|
+
}, childIds.map((id2) => /* @__PURE__ */ React21.createElement(ItemInstance, {
|
|
1163
1118
|
key: id2,
|
|
1164
1119
|
id: id2
|
|
1165
1120
|
})));
|
|
@@ -1167,15 +1122,15 @@ var ItemComponent = ({ instance }) => {
|
|
|
1167
1122
|
return null;
|
|
1168
1123
|
};
|
|
1169
1124
|
var ItemInstance = ({ id }) => {
|
|
1170
|
-
let context =
|
|
1125
|
+
let context = useContext10(WeaverseContext);
|
|
1171
1126
|
let { itemInstances } = context;
|
|
1172
1127
|
let instance = itemInstances.get(id);
|
|
1173
1128
|
if (!instance) {
|
|
1174
|
-
return /* @__PURE__ */
|
|
1129
|
+
return /* @__PURE__ */ React21.createElement("div", {
|
|
1175
1130
|
style: { display: "none" }
|
|
1176
1131
|
}, "Item instance ", id, " not found");
|
|
1177
1132
|
}
|
|
1178
|
-
return /* @__PURE__ */
|
|
1133
|
+
return /* @__PURE__ */ React21.createElement(ItemComponent, {
|
|
1179
1134
|
instance
|
|
1180
1135
|
});
|
|
1181
1136
|
};
|
|
@@ -1183,6 +1138,8 @@ var ItemInstance = ({ id }) => {
|
|
|
1183
1138
|
// src/index.ts
|
|
1184
1139
|
export * from "@weaverse/core";
|
|
1185
1140
|
export {
|
|
1141
|
+
Elements,
|
|
1142
|
+
SharedComponents,
|
|
1186
1143
|
WeaverseContext,
|
|
1187
1144
|
WeaverseContextConsumer,
|
|
1188
1145
|
WeaverseContextProvider,
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.7.
|
|
2
|
+
"version": "0.7.10",
|
|
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.10",
|
|
35
35
|
"nuka-carousel": "^5.3.0"
|
|
36
36
|
}
|
|
37
37
|
}
|