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