@weaverse/react 0.7.6 → 0.7.7

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.
Files changed (3) hide show
  1. package/dist/index.js +193 -113
  2. package/dist/index.mjs +175 -95
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -37,7 +37,7 @@ module.exports = __toCommonJS(src_exports);
37
37
 
38
38
  // src/context.ts
39
39
  var import_core = require("@weaverse/core");
40
- var import_react19 = require("react");
40
+ var import_react20 = require("react");
41
41
 
42
42
  // src/elements/button.tsx
43
43
  var React = __toESM(require("react"));
@@ -426,27 +426,10 @@ var import_react9 = __toESM(require("react"));
426
426
  var import_react8 = __toESM(require("react"));
427
427
  var Placeholder = (0, import_react8.forwardRef)(
428
428
  (props, ref) => {
429
- let { element, children, style: newStyle, ...rest } = props;
430
- let defaultStyle = {
431
- position: "absolute",
432
- height: "calc(100% - 20px)",
433
- width: "calc(100% - 20px)",
434
- display: "flex",
435
- flexDirection: "column",
436
- alignItems: "center",
437
- justifyContent: "center",
438
- pointerEvents: "none",
439
- zIndex: 1,
440
- color: "#374151",
441
- backgroundColor: "#F9FAFB",
442
- border: "1px dashed #0F71FF",
443
- borderRadius: 4,
444
- margin: 10
445
- };
446
- const style = { ...defaultStyle, ...newStyle };
429
+ let { element, children, ...rest } = props;
447
430
  return /* @__PURE__ */ import_react8.default.createElement("div", {
448
431
  "data-wv-type": "placeholder",
449
- style,
432
+ style: { display: "none" },
450
433
  ref,
451
434
  ...rest
452
435
  }, /* @__PURE__ */ import_react8.default.createElement("div", {
@@ -541,78 +524,169 @@ var instagram_default = Instagram;
541
524
  // src/elements/accordion/index.tsx
542
525
  var import_react10 = __toESM(require("react"));
543
526
  var AccordionContext = (0, import_react10.createContext)({
544
- active: null,
527
+ iconName: "arrow",
528
+ active: [],
545
529
  setActive: () => {
546
530
  }
547
531
  });
548
532
  var Accordion = (0, import_react10.forwardRef)(
549
533
  (props, ref) => {
550
- const { items, children, ...rest } = props;
551
- const [active, setActive] = (0, import_react10.useState)(null);
534
+ const { iconName, children, ...rest } = props;
535
+ const [active, setActive] = (0, import_react10.useState)([]);
552
536
  const setOpenAccordion = (id) => {
553
- if (id === active) {
554
- setActive(null);
537
+ if (active.includes(id)) {
538
+ setActive(active.filter((_id) => _id !== id));
555
539
  } else {
556
- setActive(id);
540
+ setActive([...active, id]);
557
541
  }
558
542
  };
559
543
  return /* @__PURE__ */ import_react10.default.createElement("div", {
560
544
  ref,
561
545
  ...rest
562
546
  }, /* @__PURE__ */ import_react10.default.createElement(AccordionContext.Provider, {
563
- value: { active, setActive: setOpenAccordion }
547
+ value: { active, setActive: setOpenAccordion, iconName }
564
548
  }, children));
565
549
  }
566
550
  );
567
551
  Accordion.defaultProps = {
552
+ iconName: "arrow",
568
553
  css: {
569
554
  "@desktop": {
570
555
  display: "flex",
571
556
  flexDirection: "column",
572
- gap: 4,
573
- ".wv-accordion-header": {
574
- borderRadius: 4,
575
- padding: 12,
576
- marginBottom: 4,
577
- border: "1px solid #76A9FA",
578
- "&.active": {
579
- color: "blue"
580
- },
581
- '&.active + [data-wv-type="accordion.content"]': {
582
- maxHeight: "var(--max-height, inherit)"
583
- }
584
- }
557
+ gap: 4
585
558
  }
586
559
  }
587
560
  };
588
561
  var accordion_default = Accordion;
589
562
 
590
563
  // src/elements/accordion/AccordionWrapper.tsx
564
+ var import_react12 = __toESM(require("react"));
565
+
566
+ // src/elements/accordion/Icon.tsx
591
567
  var import_react11 = __toESM(require("react"));
592
- var AccordionWrapper = (0, import_react11.forwardRef)((props, ref) => {
568
+ var ICONS = {
569
+ caret: {
570
+ animationType: "rotate90",
571
+ css: {
572
+ position: "absolute!important",
573
+ left: 5,
574
+ top: 2,
575
+ width: 0,
576
+ height: 0,
577
+ borderTop: "6px solid transparent",
578
+ borderBottom: "6px solid transparent",
579
+ borderLeft: "6px solid #1F2A37"
580
+ }
581
+ },
582
+ arrow: {
583
+ animationType: "rotate90",
584
+ css: {
585
+ border: "solid #1F2A37",
586
+ borderWidth: "0 1px 1px 0",
587
+ display: "inline-block",
588
+ transform: "rotate(-45deg) translate(15%, -15%)",
589
+ padding: 4
590
+ }
591
+ },
592
+ plus: {
593
+ animationType: "custom",
594
+ css: {
595
+ display: "inline-block",
596
+ top: -6,
597
+ width: 15,
598
+ height: 1,
599
+ backgroundColor: "#1F2A37",
600
+ "&:after": {
601
+ position: "absolute",
602
+ content: "",
603
+ top: -7,
604
+ left: 7,
605
+ width: 1,
606
+ height: 15,
607
+ backgroundColor: "#1F2A37",
608
+ transition: "all 0.3s ease-in-out 0s"
609
+ },
610
+ "&.active": {
611
+ "&:after": {
612
+ transform: "rotate(90deg)"
613
+ }
614
+ }
615
+ }
616
+ }
617
+ };
618
+ var rotateAnimation = {
619
+ transition: "all 0.3s ease-in-out 0s",
620
+ transform: "rotate(90deg)"
621
+ };
622
+ function Icon(props) {
623
+ let { name, active = false, style, ...rest } = props;
624
+ let { stitchesInstance } = (0, import_react11.useContext)(WeaverseContext);
625
+ const { animationType, css } = ICONS[name];
626
+ if (active && animationType === "rotate90") {
627
+ style = { ...rotateAnimation, ...style };
628
+ }
629
+ let { className } = stitchesInstance.css(css)();
630
+ if (active)
631
+ className += " active";
632
+ return /* @__PURE__ */ import_react11.default.createElement("span", {
633
+ style,
634
+ ...rest
635
+ }, /* @__PURE__ */ import_react11.default.createElement("i", {
636
+ className
637
+ }));
638
+ }
639
+ var Icon_default = Icon;
640
+
641
+ // src/elements/accordion/AccordionWrapper.tsx
642
+ var AccordionWrapper = (0, import_react12.forwardRef)((props, ref) => {
593
643
  const { ["data-wv-id"]: wvId, name, children, ...rest } = props;
594
- const { active, setActive } = (0, import_react11.useContext)(AccordionContext);
595
- return /* @__PURE__ */ import_react11.default.createElement("div", {
644
+ const { iconName, active, setActive } = (0, import_react12.useContext)(AccordionContext);
645
+ const isActive = active.includes(wvId);
646
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
596
647
  ref,
597
648
  ...rest
598
- }, /* @__PURE__ */ import_react11.default.createElement("div", {
649
+ }, /* @__PURE__ */ import_react12.default.createElement("div", {
599
650
  onClick: () => setActive(wvId),
600
- className: `wv-accordion-header ${active === wvId ? "active" : ""}`
601
- }, name), children);
651
+ className: `wv-acc-header ${isActive ? "active" : ""}`
652
+ }, /* @__PURE__ */ import_react12.default.createElement("span", null, name), /* @__PURE__ */ import_react12.default.createElement(Icon_default, {
653
+ className: "wv-acc-icon",
654
+ active: isActive,
655
+ name: iconName
656
+ })), children);
602
657
  });
603
658
  AccordionWrapper.defaultProps = {
604
659
  name: "Accordion item",
605
660
  css: {
606
661
  "@desktop": {
607
- maxHeight: "100%"
662
+ maxHeight: "100%",
663
+ ".wv-acc-icon": {
664
+ position: "absolute",
665
+ right: 16,
666
+ width: 16,
667
+ height: 16,
668
+ transition: "all 0.3s ease-in-out 0s"
669
+ },
670
+ ".wv-acc-header": {
671
+ display: "flex",
672
+ alignItems: "center",
673
+ borderRadius: 4,
674
+ padding: 12,
675
+ marginBottom: 4,
676
+ border: "1px solid #76A9FA",
677
+ cursor: "pointer",
678
+ '&.active + [data-wv-type="accordion.content"]': {
679
+ maxHeight: "var(--max-height, inherit)"
680
+ }
681
+ }
608
682
  }
609
683
  }
610
684
  };
611
685
  var AccordionWrapper_default = AccordionWrapper;
612
686
 
613
687
  // src/elements/accordion/AccordionContent.tsx
614
- var import_react12 = __toESM(require("react"));
615
- var AccordionContent = (0, import_react12.forwardRef)(
688
+ var import_react13 = __toESM(require("react"));
689
+ var AccordionContent = (0, import_react13.forwardRef)(
616
690
  (props, ref) => {
617
691
  const { rows, columns, gap, rowSize, children, ...rest } = props;
618
692
  let style = {
@@ -623,17 +697,17 @@ var AccordionContent = (0, import_react12.forwardRef)(
623
697
  "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
624
698
  "--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
625
699
  };
626
- return /* @__PURE__ */ import_react12.default.createElement("div", {
700
+ return /* @__PURE__ */ import_react13.default.createElement("div", {
627
701
  ref,
628
702
  ...rest,
629
703
  style
630
- }, import_react12.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react12.default.createElement(Placeholder_default, {
704
+ }, import_react13.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react13.default.createElement(Placeholder_default, {
631
705
  element: "Accordion Content"
632
706
  }, "Please drag and drop an element here"));
633
707
  }
634
708
  );
635
709
  AccordionContent.defaultProps = {
636
- rows: 2,
710
+ rows: 3,
637
711
  columns: 12,
638
712
  gap: 4,
639
713
  rowSize: 48,
@@ -655,65 +729,69 @@ AccordionContent.defaultProps = {
655
729
  var AccordionContent_default = AccordionContent;
656
730
 
657
731
  // src/elements/tab/index.tsx
658
- var import_react14 = __toESM(require("react"));
732
+ var import_react15 = __toESM(require("react"));
659
733
 
660
734
  // src/elements/tab/TabHeaderWrapper.tsx
661
- var import_react13 = __toESM(require("react"));
735
+ var import_react14 = __toESM(require("react"));
662
736
  function TabHeader(props) {
663
737
  const { wvId } = props;
664
- const { active, setActive } = (0, import_react13.useContext)(TabContext);
665
- const { itemInstances } = (0, import_react13.useContext)(WeaverseContext);
738
+ const { active, setActive } = (0, import_react14.useContext)(TabContext);
739
+ const { itemInstances } = (0, import_react14.useContext)(WeaverseContext);
666
740
  const instance = itemInstances.get(wvId);
667
- let [data, setData] = (0, import_react13.useState)(instance.data);
668
- (0, import_react13.useEffect)(() => {
741
+ let [data, setData] = (0, import_react14.useState)(instance.data);
742
+ (0, import_react14.useEffect)(() => {
669
743
  let update = (data2) => setData({ ...data2 });
670
744
  instance.subscribe(update);
671
745
  }, []);
672
- return /* @__PURE__ */ import_react13.default.createElement("div", {
746
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
673
747
  onClick: () => setActive(wvId),
674
748
  className: `wv-tab-header${active === wvId ? " active" : ""}`
675
749
  }, data.name);
676
750
  }
677
751
  function TabHeaderWrapper(props) {
678
- const { itemInstances } = (0, import_react13.useContext)(WeaverseContext);
752
+ const { itemInstances } = (0, import_react14.useContext)(WeaverseContext);
679
753
  const instance = itemInstances.get(props.wvId);
680
754
  const data = instance.data;
681
755
  const childIds = data.childIds;
682
- return /* @__PURE__ */ import_react13.default.createElement("div", {
756
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
683
757
  className: "wv-tab-header-wrapper"
684
- }, childIds.map((id) => /* @__PURE__ */ import_react13.default.createElement(TabHeader, {
758
+ }, childIds.map((id) => /* @__PURE__ */ import_react14.default.createElement(TabHeader, {
685
759
  key: id,
686
760
  wvId: id
687
761
  })));
688
762
  }
689
763
 
690
764
  // src/elements/tab/index.tsx
691
- var TabContext = (0, import_react14.createContext)({
765
+ var TabContext = (0, import_react15.createContext)({
692
766
  active: null,
693
767
  setActive: () => {
694
768
  }
695
769
  });
696
- var Tab = (0, import_react14.forwardRef)((props, ref) => {
770
+ var Tab = (0, import_react15.forwardRef)((props, ref) => {
697
771
  var _a, _b, _c;
698
772
  const wvId = props["data-wv-id"];
699
- const { children, ...rest } = props;
700
- const defaultActive = (_c = (_b = (_a = import_react14.default.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
701
- const [active, setActive] = (0, import_react14.useState)(defaultActive);
773
+ 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);
702
776
  const setOpenTab = (id) => {
703
777
  if (id !== active) {
704
778
  setActive(id);
705
779
  }
706
780
  };
707
- return /* @__PURE__ */ import_react14.default.createElement("div", {
781
+ return /* @__PURE__ */ import_react15.default.createElement("div", {
708
782
  ref,
709
- ...rest
710
- }, /* @__PURE__ */ import_react14.default.createElement(TabContext.Provider, {
783
+ ...rest,
784
+ style: {
785
+ "--tab-width": fullWidthTabHeader ? "100%" : "auto"
786
+ }
787
+ }, /* @__PURE__ */ import_react15.default.createElement(TabContext.Provider, {
711
788
  value: { active, setActive: setOpenTab }
712
- }, /* @__PURE__ */ import_react14.default.createElement(TabHeaderWrapper, {
789
+ }, /* @__PURE__ */ import_react15.default.createElement(TabHeaderWrapper, {
713
790
  wvId
714
791
  }), children));
715
792
  });
716
793
  Tab.defaultProps = {
794
+ fullWidthTabHeader: false,
717
795
  css: {
718
796
  "@desktop": {
719
797
  display: "flex",
@@ -729,6 +807,8 @@ Tab.defaultProps = {
729
807
  padding: "15px 24px",
730
808
  border: "1px solid #E4E7EB",
731
809
  cursor: "pointer",
810
+ textAlign: "center",
811
+ width: "var(--tab-width, auto)",
732
812
  "&.active": {
733
813
  backgroundColor: "#E4E7EB"
734
814
  }
@@ -739,10 +819,10 @@ Tab.defaultProps = {
739
819
  var tab_default = Tab;
740
820
 
741
821
  // src/elements/tab/TabContent.tsx
742
- var import_react15 = __toESM(require("react"));
743
- var TabContent = (0, import_react15.forwardRef)(
822
+ var import_react16 = __toESM(require("react"));
823
+ var TabContent = (0, import_react16.forwardRef)(
744
824
  (props, ref) => {
745
- const { active } = (0, import_react15.useContext)(TabContext);
825
+ const { active } = (0, import_react16.useContext)(TabContext);
746
826
  const wvId = props["data-wv-id"];
747
827
  const { rows, columns, gap, rowSize, children, ...rest } = props;
748
828
  let style = {
@@ -754,17 +834,17 @@ var TabContent = (0, import_react15.forwardRef)(
754
834
  "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
755
835
  "--content-active": active === wvId ? "grid" : "none"
756
836
  };
757
- return /* @__PURE__ */ import_react15.default.createElement("div", {
837
+ return /* @__PURE__ */ import_react16.default.createElement("div", {
758
838
  ref,
759
839
  ...rest,
760
840
  style
761
- }, import_react15.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react15.default.createElement(Placeholder_default, {
841
+ }, import_react16.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react16.default.createElement(Placeholder_default, {
762
842
  element: "Tab Content"
763
843
  }, "Please drag and drop an element here"));
764
844
  }
765
845
  );
766
846
  TabContent.defaultProps = {
767
- rows: 2,
847
+ rows: 3,
768
848
  columns: 12,
769
849
  gap: 4,
770
850
  rowSize: 48,
@@ -784,29 +864,29 @@ TabContent.defaultProps = {
784
864
  var TabContent_default = TabContent;
785
865
 
786
866
  // src/elements/slider/index.tsx
787
- var import_react16 = __toESM(require("react"));
867
+ var import_react17 = __toESM(require("react"));
788
868
  var import_nuka_carousel = __toESM(require("nuka-carousel"));
789
869
  var Carousel = import_nuka_carousel.default.default;
790
- var Slider = (0, import_react16.forwardRef)((props, ref) => {
791
- const { isDesignMode } = (0, import_react16.useContext)(WeaverseContext);
870
+ var Slider = (0, import_react17.forwardRef)((props, ref) => {
871
+ const { isDesignMode } = (0, import_react17.useContext)(WeaverseContext);
792
872
  const { autoplay, delay, children, ...rest } = props;
793
- return /* @__PURE__ */ import_react16.default.createElement("div", {
873
+ return /* @__PURE__ */ import_react17.default.createElement("div", {
794
874
  ...rest,
795
875
  ref
796
- }, /* @__PURE__ */ import_react16.default.createElement(Carousel, {
876
+ }, /* @__PURE__ */ import_react17.default.createElement(Carousel, {
797
877
  dragging: false,
798
- renderCenterLeftControls: (props2) => /* @__PURE__ */ import_react16.default.createElement("button", {
878
+ renderCenterLeftControls: (props2) => /* @__PURE__ */ import_react17.default.createElement("button", {
799
879
  className: "wv-slider-btn",
800
880
  onClick: props2.previousSlide,
801
881
  disabled: (isDesignMode || !autoplay) && props2.currentSlide === 0
802
- }, /* @__PURE__ */ import_react16.default.createElement("i", {
882
+ }, /* @__PURE__ */ import_react17.default.createElement("i", {
803
883
  className: "wv-slider-arrow wv-slider-arrow-left"
804
884
  })),
805
- renderCenterRightControls: (props2) => /* @__PURE__ */ import_react16.default.createElement("button", {
885
+ renderCenterRightControls: (props2) => /* @__PURE__ */ import_react17.default.createElement("button", {
806
886
  className: "wv-slider-btn",
807
887
  onClick: props2.nextSlide,
808
888
  disabled: (isDesignMode || !autoplay) && props2.slideCount === props2.currentSlide
809
- }, /* @__PURE__ */ import_react16.default.createElement("i", {
889
+ }, /* @__PURE__ */ import_react17.default.createElement("i", {
810
890
  className: "wv-slider-arrow wv-slider-arrow-right"
811
891
  })),
812
892
  wrapAround: !isDesignMode,
@@ -854,10 +934,10 @@ Slider.defaultProps = {
854
934
  var slider_default = Slider;
855
935
 
856
936
  // src/elements/slider/SliderContent.tsx
857
- var import_react17 = __toESM(require("react"));
858
- var SliderContent = (0, import_react17.forwardRef)(
937
+ var import_react18 = __toESM(require("react"));
938
+ var SliderContent = (0, import_react18.forwardRef)(
859
939
  (props, ref) => {
860
- const { isDesignMode } = (0, import_react17.useContext)(WeaverseContext);
940
+ const { isDesignMode } = (0, import_react18.useContext)(WeaverseContext);
861
941
  const {
862
942
  mediaUrl,
863
943
  targetLink,
@@ -883,11 +963,11 @@ var SliderContent = (0, import_react17.forwardRef)(
883
963
  window.open(targetLink, openInNewTab ? "_blank" : "_self");
884
964
  }
885
965
  };
886
- return /* @__PURE__ */ import_react17.default.createElement("div", {
966
+ return /* @__PURE__ */ import_react18.default.createElement("div", {
887
967
  ...rest,
888
968
  style,
889
969
  onClick: handleClick
890
- }, import_react17.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react17.default.createElement(Placeholder_default, {
970
+ }, import_react18.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react18.default.createElement(Placeholder_default, {
891
971
  element: "Slider Content"
892
972
  }, "Please drag and drop an element here"));
893
973
  }
@@ -917,22 +997,22 @@ SliderContent.defaultProps = {
917
997
  var SliderContent_default = SliderContent;
918
998
 
919
999
  // src/elements/custom-html.tsx
920
- var import_react18 = __toESM(require("react"));
921
- var CustomHTML = (0, import_react18.forwardRef)(
1000
+ var import_react19 = __toESM(require("react"));
1001
+ var CustomHTML = (0, import_react19.forwardRef)(
922
1002
  (props, ref) => {
923
1003
  const { content, children, ...rest } = props;
924
- const { isDesignMode } = (0, import_react18.useContext)(WeaverseContext);
1004
+ const { isDesignMode } = (0, import_react19.useContext)(WeaverseContext);
925
1005
  const style = {
926
1006
  "--pointer-events": isDesignMode ? "none" : "auto"
927
1007
  };
928
1008
  if (!content)
929
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1009
+ return /* @__PURE__ */ import_react19.default.createElement("div", {
930
1010
  ref,
931
1011
  ...rest
932
- }, /* @__PURE__ */ import_react18.default.createElement(Placeholder_default, {
1012
+ }, /* @__PURE__ */ import_react19.default.createElement(Placeholder_default, {
933
1013
  element: "Custom HTML"
934
1014
  }, "Please add your custom HTML codes."));
935
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1015
+ return /* @__PURE__ */ import_react19.default.createElement("div", {
936
1016
  ref,
937
1017
  ...rest,
938
1018
  style,
@@ -1033,13 +1113,13 @@ var createRootContext = (configs) => {
1033
1113
  });
1034
1114
  return rootContext;
1035
1115
  };
1036
- var WeaverseContext = (0, import_react19.createContext)({});
1116
+ var WeaverseContext = (0, import_react20.createContext)({});
1037
1117
  var WeaverseContextProvider = WeaverseContext.Provider;
1038
1118
  var WeaverseContextConsumer = WeaverseContext.Consumer;
1039
1119
 
1040
1120
  // src/renderer.tsx
1041
1121
  var import_core2 = require("@weaverse/core");
1042
- var import_react20 = __toESM(require("react"));
1122
+ var import_react21 = __toESM(require("react"));
1043
1123
 
1044
1124
  // src/utils/index.ts
1045
1125
  function shortCssObject(css) {
@@ -1067,10 +1147,10 @@ function generateItemClass(instance, stitchesInstance) {
1067
1147
  // src/renderer.tsx
1068
1148
  var WeaverseRoot = ({ context }) => {
1069
1149
  var _a, _b;
1070
- let [, setData] = (0, import_react20.useState)(context.projectData);
1071
- let rootRef = (0, import_react20.useRef)();
1150
+ let [, setData] = (0, import_react21.useState)(context.projectData);
1151
+ let rootRef = (0, import_react21.useRef)();
1072
1152
  let update = () => setData({});
1073
- (0, import_react20.useEffect)(() => {
1153
+ (0, import_react21.useEffect)(() => {
1074
1154
  context.subscribe(update);
1075
1155
  context.contentRootElement = rootRef.current;
1076
1156
  return () => {
@@ -1079,21 +1159,21 @@ var WeaverseRoot = ({ context }) => {
1079
1159
  }, []);
1080
1160
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
1081
1161
  let themeClass = context.stitchesInstance.theme.className;
1082
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react20.default.createElement("div", {
1162
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react21.default.createElement("div", {
1083
1163
  className: `weaverse-content-root ${themeClass}`,
1084
1164
  ...eventHandlers,
1085
1165
  ref: rootRef
1086
- }, /* @__PURE__ */ import_react20.default.createElement(WeaverseContextProvider, {
1166
+ }, /* @__PURE__ */ import_react21.default.createElement(WeaverseContextProvider, {
1087
1167
  value: context
1088
- }, /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
1168
+ }, /* @__PURE__ */ import_react21.default.createElement(ItemInstance, {
1089
1169
  id: context.projectData.rootId
1090
1170
  }))) : null;
1091
1171
  };
1092
1172
  var ItemComponent = ({ instance }) => {
1093
- let { stitchesInstance, elementInstances } = (0, import_react20.useContext)(WeaverseContext);
1094
- let [data, setData] = (0, import_react20.useState)(instance.data);
1173
+ let { stitchesInstance, elementInstances } = (0, import_react21.useContext)(WeaverseContext);
1174
+ let [data, setData] = (0, import_react21.useState)(instance.data);
1095
1175
  let { id, type, childIds = [], css, className, ...rest } = data;
1096
- (0, import_react20.useEffect)(() => {
1176
+ (0, import_react21.useEffect)(() => {
1097
1177
  var _a;
1098
1178
  let update = (data2) => setData({ ...data2 });
1099
1179
  instance.subscribe(update);
@@ -1113,13 +1193,13 @@ var ItemComponent = ({ instance }) => {
1113
1193
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
1114
1194
  rest.ref = instance.ref;
1115
1195
  }
1116
- return /* @__PURE__ */ import_react20.default.createElement(Component, {
1196
+ return /* @__PURE__ */ import_react21.default.createElement(Component, {
1117
1197
  key: id,
1118
1198
  "data-wv-type": type,
1119
1199
  "data-wv-id": id,
1120
1200
  className: generateItemClass(instance, stitchesInstance),
1121
1201
  ...rest
1122
- }, childIds.map((id2) => /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
1202
+ }, childIds.map((id2) => /* @__PURE__ */ import_react21.default.createElement(ItemInstance, {
1123
1203
  key: id2,
1124
1204
  id: id2
1125
1205
  })));
@@ -1127,15 +1207,15 @@ var ItemComponent = ({ instance }) => {
1127
1207
  return null;
1128
1208
  };
1129
1209
  var ItemInstance = ({ id }) => {
1130
- let context = (0, import_react20.useContext)(WeaverseContext);
1210
+ let context = (0, import_react21.useContext)(WeaverseContext);
1131
1211
  let { itemInstances } = context;
1132
1212
  let instance = itemInstances.get(id);
1133
1213
  if (!instance) {
1134
- return /* @__PURE__ */ import_react20.default.createElement("div", {
1214
+ return /* @__PURE__ */ import_react21.default.createElement("div", {
1135
1215
  style: { display: "none" }
1136
1216
  }, "Item instance ", id, " not found");
1137
1217
  }
1138
- return /* @__PURE__ */ import_react20.default.createElement(ItemComponent, {
1218
+ return /* @__PURE__ */ import_react21.default.createElement(ItemComponent, {
1139
1219
  instance
1140
1220
  });
1141
1221
  };
package/dist/index.mjs CHANGED
@@ -389,27 +389,10 @@ import React11, { forwardRef as forwardRef9, useEffect as useEffect2, useState }
389
389
  import React10, { forwardRef as forwardRef8 } from "react";
390
390
  var Placeholder = forwardRef8(
391
391
  (props, ref) => {
392
- let { element, children, style: newStyle, ...rest } = props;
393
- let defaultStyle = {
394
- position: "absolute",
395
- height: "calc(100% - 20px)",
396
- width: "calc(100% - 20px)",
397
- display: "flex",
398
- flexDirection: "column",
399
- alignItems: "center",
400
- justifyContent: "center",
401
- pointerEvents: "none",
402
- zIndex: 1,
403
- color: "#374151",
404
- backgroundColor: "#F9FAFB",
405
- border: "1px dashed #0F71FF",
406
- borderRadius: 4,
407
- margin: 10
408
- };
409
- const style = { ...defaultStyle, ...newStyle };
392
+ let { element, children, ...rest } = props;
410
393
  return /* @__PURE__ */ React10.createElement("div", {
411
394
  "data-wv-type": "placeholder",
412
- style,
395
+ style: { display: "none" },
413
396
  ref,
414
397
  ...rest
415
398
  }, /* @__PURE__ */ React10.createElement("div", {
@@ -504,77 +487,168 @@ var instagram_default = Instagram;
504
487
  // src/elements/accordion/index.tsx
505
488
  import React12, { createContext, forwardRef as forwardRef10, useState as useState2 } from "react";
506
489
  var AccordionContext = createContext({
507
- active: null,
490
+ iconName: "arrow",
491
+ active: [],
508
492
  setActive: () => {
509
493
  }
510
494
  });
511
495
  var Accordion = forwardRef10(
512
496
  (props, ref) => {
513
- const { items, children, ...rest } = props;
514
- const [active, setActive] = useState2(null);
497
+ const { iconName, children, ...rest } = props;
498
+ const [active, setActive] = useState2([]);
515
499
  const setOpenAccordion = (id) => {
516
- if (id === active) {
517
- setActive(null);
500
+ if (active.includes(id)) {
501
+ setActive(active.filter((_id) => _id !== id));
518
502
  } else {
519
- setActive(id);
503
+ setActive([...active, id]);
520
504
  }
521
505
  };
522
506
  return /* @__PURE__ */ React12.createElement("div", {
523
507
  ref,
524
508
  ...rest
525
509
  }, /* @__PURE__ */ React12.createElement(AccordionContext.Provider, {
526
- value: { active, setActive: setOpenAccordion }
510
+ value: { active, setActive: setOpenAccordion, iconName }
527
511
  }, children));
528
512
  }
529
513
  );
530
514
  Accordion.defaultProps = {
515
+ iconName: "arrow",
531
516
  css: {
532
517
  "@desktop": {
533
518
  display: "flex",
534
519
  flexDirection: "column",
535
- gap: 4,
536
- ".wv-accordion-header": {
537
- borderRadius: 4,
538
- padding: 12,
539
- marginBottom: 4,
540
- border: "1px solid #76A9FA",
541
- "&.active": {
542
- color: "blue"
543
- },
544
- '&.active + [data-wv-type="accordion.content"]': {
545
- maxHeight: "var(--max-height, inherit)"
520
+ gap: 4
521
+ }
522
+ }
523
+ };
524
+ var accordion_default = Accordion;
525
+
526
+ // src/elements/accordion/AccordionWrapper.tsx
527
+ import React14, { forwardRef as forwardRef11, useContext as useContext5 } from "react";
528
+
529
+ // src/elements/accordion/Icon.tsx
530
+ import React13, { useContext as useContext4 } from "react";
531
+ var ICONS = {
532
+ caret: {
533
+ animationType: "rotate90",
534
+ css: {
535
+ position: "absolute!important",
536
+ left: 5,
537
+ top: 2,
538
+ width: 0,
539
+ height: 0,
540
+ borderTop: "6px solid transparent",
541
+ borderBottom: "6px solid transparent",
542
+ borderLeft: "6px solid #1F2A37"
543
+ }
544
+ },
545
+ arrow: {
546
+ animationType: "rotate90",
547
+ css: {
548
+ border: "solid #1F2A37",
549
+ borderWidth: "0 1px 1px 0",
550
+ display: "inline-block",
551
+ transform: "rotate(-45deg) translate(15%, -15%)",
552
+ padding: 4
553
+ }
554
+ },
555
+ plus: {
556
+ animationType: "custom",
557
+ css: {
558
+ display: "inline-block",
559
+ top: -6,
560
+ width: 15,
561
+ height: 1,
562
+ backgroundColor: "#1F2A37",
563
+ "&:after": {
564
+ position: "absolute",
565
+ content: "",
566
+ top: -7,
567
+ left: 7,
568
+ width: 1,
569
+ height: 15,
570
+ backgroundColor: "#1F2A37",
571
+ transition: "all 0.3s ease-in-out 0s"
572
+ },
573
+ "&.active": {
574
+ "&:after": {
575
+ transform: "rotate(90deg)"
546
576
  }
547
577
  }
548
578
  }
549
579
  }
550
580
  };
551
- var accordion_default = Accordion;
581
+ var rotateAnimation = {
582
+ transition: "all 0.3s ease-in-out 0s",
583
+ transform: "rotate(90deg)"
584
+ };
585
+ function Icon(props) {
586
+ let { name, active = false, style, ...rest } = props;
587
+ let { stitchesInstance } = useContext4(WeaverseContext);
588
+ const { animationType, css } = ICONS[name];
589
+ if (active && animationType === "rotate90") {
590
+ style = { ...rotateAnimation, ...style };
591
+ }
592
+ let { className } = stitchesInstance.css(css)();
593
+ if (active)
594
+ className += " active";
595
+ return /* @__PURE__ */ React13.createElement("span", {
596
+ style,
597
+ ...rest
598
+ }, /* @__PURE__ */ React13.createElement("i", {
599
+ className
600
+ }));
601
+ }
602
+ var Icon_default = Icon;
552
603
 
553
604
  // src/elements/accordion/AccordionWrapper.tsx
554
- import React13, { forwardRef as forwardRef11, useContext as useContext4 } from "react";
555
605
  var AccordionWrapper = forwardRef11((props, ref) => {
556
606
  const { ["data-wv-id"]: wvId, name, children, ...rest } = props;
557
- const { active, setActive } = useContext4(AccordionContext);
558
- return /* @__PURE__ */ React13.createElement("div", {
607
+ const { iconName, active, setActive } = useContext5(AccordionContext);
608
+ const isActive = active.includes(wvId);
609
+ return /* @__PURE__ */ React14.createElement("div", {
559
610
  ref,
560
611
  ...rest
561
- }, /* @__PURE__ */ React13.createElement("div", {
612
+ }, /* @__PURE__ */ React14.createElement("div", {
562
613
  onClick: () => setActive(wvId),
563
- className: `wv-accordion-header ${active === wvId ? "active" : ""}`
564
- }, name), children);
614
+ className: `wv-acc-header ${isActive ? "active" : ""}`
615
+ }, /* @__PURE__ */ React14.createElement("span", null, name), /* @__PURE__ */ React14.createElement(Icon_default, {
616
+ className: "wv-acc-icon",
617
+ active: isActive,
618
+ name: iconName
619
+ })), children);
565
620
  });
566
621
  AccordionWrapper.defaultProps = {
567
622
  name: "Accordion item",
568
623
  css: {
569
624
  "@desktop": {
570
- maxHeight: "100%"
625
+ maxHeight: "100%",
626
+ ".wv-acc-icon": {
627
+ position: "absolute",
628
+ right: 16,
629
+ width: 16,
630
+ height: 16,
631
+ transition: "all 0.3s ease-in-out 0s"
632
+ },
633
+ ".wv-acc-header": {
634
+ display: "flex",
635
+ alignItems: "center",
636
+ borderRadius: 4,
637
+ padding: 12,
638
+ marginBottom: 4,
639
+ border: "1px solid #76A9FA",
640
+ cursor: "pointer",
641
+ '&.active + [data-wv-type="accordion.content"]': {
642
+ maxHeight: "var(--max-height, inherit)"
643
+ }
644
+ }
571
645
  }
572
646
  }
573
647
  };
574
648
  var AccordionWrapper_default = AccordionWrapper;
575
649
 
576
650
  // src/elements/accordion/AccordionContent.tsx
577
- import React14, { forwardRef as forwardRef12 } from "react";
651
+ import React15, { forwardRef as forwardRef12 } from "react";
578
652
  var AccordionContent = forwardRef12(
579
653
  (props, ref) => {
580
654
  const { rows, columns, gap, rowSize, children, ...rest } = props;
@@ -586,17 +660,17 @@ var AccordionContent = forwardRef12(
586
660
  "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
587
661
  "--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
588
662
  };
589
- return /* @__PURE__ */ React14.createElement("div", {
663
+ return /* @__PURE__ */ React15.createElement("div", {
590
664
  ref,
591
665
  ...rest,
592
666
  style
593
- }, React14.Children.count(children) > 0 ? children : /* @__PURE__ */ React14.createElement(Placeholder_default, {
667
+ }, React15.Children.count(children) > 0 ? children : /* @__PURE__ */ React15.createElement(Placeholder_default, {
594
668
  element: "Accordion Content"
595
669
  }, "Please drag and drop an element here"));
596
670
  }
597
671
  );
598
672
  AccordionContent.defaultProps = {
599
- rows: 2,
673
+ rows: 3,
600
674
  columns: 12,
601
675
  gap: 4,
602
676
  rowSize: 48,
@@ -618,33 +692,33 @@ AccordionContent.defaultProps = {
618
692
  var AccordionContent_default = AccordionContent;
619
693
 
620
694
  // src/elements/tab/index.tsx
621
- import React16, { createContext as createContext2, forwardRef as forwardRef13, useState as useState4 } from "react";
695
+ import React17, { createContext as createContext2, forwardRef as forwardRef13, useState as useState4 } from "react";
622
696
 
623
697
  // src/elements/tab/TabHeaderWrapper.tsx
624
- import React15, { useContext as useContext5, useEffect as useEffect3, useState as useState3 } from "react";
698
+ import React16, { useContext as useContext6, useEffect as useEffect3, useState as useState3 } from "react";
625
699
  function TabHeader(props) {
626
700
  const { wvId } = props;
627
- const { active, setActive } = useContext5(TabContext);
628
- const { itemInstances } = useContext5(WeaverseContext);
701
+ const { active, setActive } = useContext6(TabContext);
702
+ const { itemInstances } = useContext6(WeaverseContext);
629
703
  const instance = itemInstances.get(wvId);
630
704
  let [data, setData] = useState3(instance.data);
631
705
  useEffect3(() => {
632
706
  let update = (data2) => setData({ ...data2 });
633
707
  instance.subscribe(update);
634
708
  }, []);
635
- return /* @__PURE__ */ React15.createElement("div", {
709
+ return /* @__PURE__ */ React16.createElement("div", {
636
710
  onClick: () => setActive(wvId),
637
711
  className: `wv-tab-header${active === wvId ? " active" : ""}`
638
712
  }, data.name);
639
713
  }
640
714
  function TabHeaderWrapper(props) {
641
- const { itemInstances } = useContext5(WeaverseContext);
715
+ const { itemInstances } = useContext6(WeaverseContext);
642
716
  const instance = itemInstances.get(props.wvId);
643
717
  const data = instance.data;
644
718
  const childIds = data.childIds;
645
- return /* @__PURE__ */ React15.createElement("div", {
719
+ return /* @__PURE__ */ React16.createElement("div", {
646
720
  className: "wv-tab-header-wrapper"
647
- }, childIds.map((id) => /* @__PURE__ */ React15.createElement(TabHeader, {
721
+ }, childIds.map((id) => /* @__PURE__ */ React16.createElement(TabHeader, {
648
722
  key: id,
649
723
  wvId: id
650
724
  })));
@@ -659,24 +733,28 @@ var TabContext = createContext2({
659
733
  var Tab = forwardRef13((props, ref) => {
660
734
  var _a, _b, _c;
661
735
  const wvId = props["data-wv-id"];
662
- const { children, ...rest } = props;
663
- const defaultActive = (_c = (_b = (_a = React16.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
736
+ const { fullWidthTabHeader, children, ...rest } = props;
737
+ const defaultActive = (_c = (_b = (_a = React17.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
664
738
  const [active, setActive] = useState4(defaultActive);
665
739
  const setOpenTab = (id) => {
666
740
  if (id !== active) {
667
741
  setActive(id);
668
742
  }
669
743
  };
670
- return /* @__PURE__ */ React16.createElement("div", {
744
+ return /* @__PURE__ */ React17.createElement("div", {
671
745
  ref,
672
- ...rest
673
- }, /* @__PURE__ */ React16.createElement(TabContext.Provider, {
746
+ ...rest,
747
+ style: {
748
+ "--tab-width": fullWidthTabHeader ? "100%" : "auto"
749
+ }
750
+ }, /* @__PURE__ */ React17.createElement(TabContext.Provider, {
674
751
  value: { active, setActive: setOpenTab }
675
- }, /* @__PURE__ */ React16.createElement(TabHeaderWrapper, {
752
+ }, /* @__PURE__ */ React17.createElement(TabHeaderWrapper, {
676
753
  wvId
677
754
  }), children));
678
755
  });
679
756
  Tab.defaultProps = {
757
+ fullWidthTabHeader: false,
680
758
  css: {
681
759
  "@desktop": {
682
760
  display: "flex",
@@ -692,6 +770,8 @@ Tab.defaultProps = {
692
770
  padding: "15px 24px",
693
771
  border: "1px solid #E4E7EB",
694
772
  cursor: "pointer",
773
+ textAlign: "center",
774
+ width: "var(--tab-width, auto)",
695
775
  "&.active": {
696
776
  backgroundColor: "#E4E7EB"
697
777
  }
@@ -702,10 +782,10 @@ Tab.defaultProps = {
702
782
  var tab_default = Tab;
703
783
 
704
784
  // src/elements/tab/TabContent.tsx
705
- import React17, { forwardRef as forwardRef14, useContext as useContext6 } from "react";
785
+ import React18, { forwardRef as forwardRef14, useContext as useContext7 } from "react";
706
786
  var TabContent = forwardRef14(
707
787
  (props, ref) => {
708
- const { active } = useContext6(TabContext);
788
+ const { active } = useContext7(TabContext);
709
789
  const wvId = props["data-wv-id"];
710
790
  const { rows, columns, gap, rowSize, children, ...rest } = props;
711
791
  let style = {
@@ -717,17 +797,17 @@ var TabContent = forwardRef14(
717
797
  "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
718
798
  "--content-active": active === wvId ? "grid" : "none"
719
799
  };
720
- return /* @__PURE__ */ React17.createElement("div", {
800
+ return /* @__PURE__ */ React18.createElement("div", {
721
801
  ref,
722
802
  ...rest,
723
803
  style
724
- }, React17.Children.count(children) > 0 ? children : /* @__PURE__ */ React17.createElement(Placeholder_default, {
804
+ }, React18.Children.count(children) > 0 ? children : /* @__PURE__ */ React18.createElement(Placeholder_default, {
725
805
  element: "Tab Content"
726
806
  }, "Please drag and drop an element here"));
727
807
  }
728
808
  );
729
809
  TabContent.defaultProps = {
730
- rows: 2,
810
+ rows: 3,
731
811
  columns: 12,
732
812
  gap: 4,
733
813
  rowSize: 48,
@@ -747,29 +827,29 @@ TabContent.defaultProps = {
747
827
  var TabContent_default = TabContent;
748
828
 
749
829
  // src/elements/slider/index.tsx
750
- import React18, { forwardRef as forwardRef15, useContext as useContext7 } from "react";
830
+ import React19, { forwardRef as forwardRef15, useContext as useContext8 } from "react";
751
831
  import C from "nuka-carousel";
752
832
  var Carousel = C.default;
753
833
  var Slider = forwardRef15((props, ref) => {
754
- const { isDesignMode } = useContext7(WeaverseContext);
834
+ const { isDesignMode } = useContext8(WeaverseContext);
755
835
  const { autoplay, delay, children, ...rest } = props;
756
- return /* @__PURE__ */ React18.createElement("div", {
836
+ return /* @__PURE__ */ React19.createElement("div", {
757
837
  ...rest,
758
838
  ref
759
- }, /* @__PURE__ */ React18.createElement(Carousel, {
839
+ }, /* @__PURE__ */ React19.createElement(Carousel, {
760
840
  dragging: false,
761
- renderCenterLeftControls: (props2) => /* @__PURE__ */ React18.createElement("button", {
841
+ renderCenterLeftControls: (props2) => /* @__PURE__ */ React19.createElement("button", {
762
842
  className: "wv-slider-btn",
763
843
  onClick: props2.previousSlide,
764
844
  disabled: (isDesignMode || !autoplay) && props2.currentSlide === 0
765
- }, /* @__PURE__ */ React18.createElement("i", {
845
+ }, /* @__PURE__ */ React19.createElement("i", {
766
846
  className: "wv-slider-arrow wv-slider-arrow-left"
767
847
  })),
768
- renderCenterRightControls: (props2) => /* @__PURE__ */ React18.createElement("button", {
848
+ renderCenterRightControls: (props2) => /* @__PURE__ */ React19.createElement("button", {
769
849
  className: "wv-slider-btn",
770
850
  onClick: props2.nextSlide,
771
851
  disabled: (isDesignMode || !autoplay) && props2.slideCount === props2.currentSlide
772
- }, /* @__PURE__ */ React18.createElement("i", {
852
+ }, /* @__PURE__ */ React19.createElement("i", {
773
853
  className: "wv-slider-arrow wv-slider-arrow-right"
774
854
  })),
775
855
  wrapAround: !isDesignMode,
@@ -817,10 +897,10 @@ Slider.defaultProps = {
817
897
  var slider_default = Slider;
818
898
 
819
899
  // src/elements/slider/SliderContent.tsx
820
- import React19, { forwardRef as forwardRef16, useContext as useContext8 } from "react";
900
+ import React20, { forwardRef as forwardRef16, useContext as useContext9 } from "react";
821
901
  var SliderContent = forwardRef16(
822
902
  (props, ref) => {
823
- const { isDesignMode } = useContext8(WeaverseContext);
903
+ const { isDesignMode } = useContext9(WeaverseContext);
824
904
  const {
825
905
  mediaUrl,
826
906
  targetLink,
@@ -846,11 +926,11 @@ var SliderContent = forwardRef16(
846
926
  window.open(targetLink, openInNewTab ? "_blank" : "_self");
847
927
  }
848
928
  };
849
- return /* @__PURE__ */ React19.createElement("div", {
929
+ return /* @__PURE__ */ React20.createElement("div", {
850
930
  ...rest,
851
931
  style,
852
932
  onClick: handleClick
853
- }, React19.Children.count(children) > 0 ? children : /* @__PURE__ */ React19.createElement(Placeholder_default, {
933
+ }, React20.Children.count(children) > 0 ? children : /* @__PURE__ */ React20.createElement(Placeholder_default, {
854
934
  element: "Slider Content"
855
935
  }, "Please drag and drop an element here"));
856
936
  }
@@ -880,22 +960,22 @@ SliderContent.defaultProps = {
880
960
  var SliderContent_default = SliderContent;
881
961
 
882
962
  // src/elements/custom-html.tsx
883
- import React20, { forwardRef as forwardRef17, useContext as useContext9 } from "react";
963
+ import React21, { forwardRef as forwardRef17, useContext as useContext10 } from "react";
884
964
  var CustomHTML = forwardRef17(
885
965
  (props, ref) => {
886
966
  const { content, children, ...rest } = props;
887
- const { isDesignMode } = useContext9(WeaverseContext);
967
+ const { isDesignMode } = useContext10(WeaverseContext);
888
968
  const style = {
889
969
  "--pointer-events": isDesignMode ? "none" : "auto"
890
970
  };
891
971
  if (!content)
892
- return /* @__PURE__ */ React20.createElement("div", {
972
+ return /* @__PURE__ */ React21.createElement("div", {
893
973
  ref,
894
974
  ...rest
895
- }, /* @__PURE__ */ React20.createElement(Placeholder_default, {
975
+ }, /* @__PURE__ */ React21.createElement(Placeholder_default, {
896
976
  element: "Custom HTML"
897
977
  }, "Please add your custom HTML codes."));
898
- return /* @__PURE__ */ React20.createElement("div", {
978
+ return /* @__PURE__ */ React21.createElement("div", {
899
979
  ref,
900
980
  ...rest,
901
981
  style,
@@ -1002,7 +1082,7 @@ var WeaverseContextConsumer = WeaverseContext.Consumer;
1002
1082
 
1003
1083
  // src/renderer.tsx
1004
1084
  import { isBrowser } from "@weaverse/core";
1005
- import React21, { useContext as useContext10, useEffect as useEffect4, useRef, useState as useState5 } from "react";
1085
+ import React22, { useContext as useContext11, useEffect as useEffect4, useRef, useState as useState5 } from "react";
1006
1086
 
1007
1087
  // src/utils/index.ts
1008
1088
  function shortCssObject(css) {
@@ -1042,18 +1122,18 @@ var WeaverseRoot = ({ context }) => {
1042
1122
  }, []);
1043
1123
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
1044
1124
  let themeClass = context.stitchesInstance.theme.className;
1045
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React21.createElement("div", {
1125
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React22.createElement("div", {
1046
1126
  className: `weaverse-content-root ${themeClass}`,
1047
1127
  ...eventHandlers,
1048
1128
  ref: rootRef
1049
- }, /* @__PURE__ */ React21.createElement(WeaverseContextProvider, {
1129
+ }, /* @__PURE__ */ React22.createElement(WeaverseContextProvider, {
1050
1130
  value: context
1051
- }, /* @__PURE__ */ React21.createElement(ItemInstance, {
1131
+ }, /* @__PURE__ */ React22.createElement(ItemInstance, {
1052
1132
  id: context.projectData.rootId
1053
1133
  }))) : null;
1054
1134
  };
1055
1135
  var ItemComponent = ({ instance }) => {
1056
- let { stitchesInstance, elementInstances } = useContext10(WeaverseContext);
1136
+ let { stitchesInstance, elementInstances } = useContext11(WeaverseContext);
1057
1137
  let [data, setData] = useState5(instance.data);
1058
1138
  let { id, type, childIds = [], css, className, ...rest } = data;
1059
1139
  useEffect4(() => {
@@ -1076,13 +1156,13 @@ var ItemComponent = ({ instance }) => {
1076
1156
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
1077
1157
  rest.ref = instance.ref;
1078
1158
  }
1079
- return /* @__PURE__ */ React21.createElement(Component, {
1159
+ return /* @__PURE__ */ React22.createElement(Component, {
1080
1160
  key: id,
1081
1161
  "data-wv-type": type,
1082
1162
  "data-wv-id": id,
1083
1163
  className: generateItemClass(instance, stitchesInstance),
1084
1164
  ...rest
1085
- }, childIds.map((id2) => /* @__PURE__ */ React21.createElement(ItemInstance, {
1165
+ }, childIds.map((id2) => /* @__PURE__ */ React22.createElement(ItemInstance, {
1086
1166
  key: id2,
1087
1167
  id: id2
1088
1168
  })));
@@ -1090,15 +1170,15 @@ var ItemComponent = ({ instance }) => {
1090
1170
  return null;
1091
1171
  };
1092
1172
  var ItemInstance = ({ id }) => {
1093
- let context = useContext10(WeaverseContext);
1173
+ let context = useContext11(WeaverseContext);
1094
1174
  let { itemInstances } = context;
1095
1175
  let instance = itemInstances.get(id);
1096
1176
  if (!instance) {
1097
- return /* @__PURE__ */ React21.createElement("div", {
1177
+ return /* @__PURE__ */ React22.createElement("div", {
1098
1178
  style: { display: "none" }
1099
1179
  }, "Item instance ", id, " not found");
1100
1180
  }
1101
- return /* @__PURE__ */ React21.createElement(ItemComponent, {
1181
+ return /* @__PURE__ */ React22.createElement(ItemComponent, {
1102
1182
  instance
1103
1183
  });
1104
1184
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.7.6",
2
+ "version": "0.7.7",
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.6",
34
+ "@weaverse/core": "0.7.7",
35
35
  "nuka-carousel": "^5.2.0"
36
36
  }
37
37
  }