@weaverse/react 0.7.15 → 0.7.16

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
File without changes
package/dist/index.js CHANGED
@@ -238,34 +238,6 @@ var countdown_default = Countdown;
238
238
 
239
239
  // src/elements/image.tsx
240
240
  var import_react5 = __toESM(require("react"));
241
- var import_core2 = require("@weaverse/core");
242
- var loadUploadCareAdaptiveDelivery = () => {
243
- if (!window.Blinkloader) {
244
- console.log("loadUploadCareAdaptiveDelivery");
245
- (function(src, cb) {
246
- let s = document.createElement("script");
247
- s.setAttribute("src", src);
248
- s.onload = cb;
249
- (document.head || document.body).appendChild(s);
250
- })(
251
- "https://ucarecdn.com/libs/blinkloader/3.x/blinkloader.min.js",
252
- function() {
253
- window.Blinkloader.optimize({
254
- pubkey: "1a22133d1a1bdc089d4c",
255
- fadeIn: true,
256
- lazyload: true,
257
- smartCompression: true,
258
- responsive: true,
259
- retina: true,
260
- webp: true
261
- });
262
- }
263
- );
264
- }
265
- };
266
- if (import_core2.isBrowser) {
267
- loadUploadCareAdaptiveDelivery();
268
- }
269
241
  var Image = import_react5.default.forwardRef(
270
242
  (props, ref) => {
271
243
  let {
@@ -308,7 +280,7 @@ var css4 = {
308
280
  objectFit: "var(--wv-img-object-fit, cover)",
309
281
  objectPosition: "var(--wv-img-object-position, center)"
310
282
  },
311
- "> [data-blink-src]": {
283
+ "& [data-blink-src]": {
312
284
  visibility: "hidden"
313
285
  }
314
286
  }
@@ -570,480 +542,6 @@ Instagram.defaultProps = {
570
542
  };
571
543
  var instagram_default = Instagram;
572
544
 
573
- // src/elements/accordion/index.tsx
574
- var import_react11 = __toESM(require("react"));
575
- var AccordionContext = (0, import_react11.createContext)({
576
- iconName: "arrow",
577
- active: [],
578
- setActive: () => {
579
- }
580
- });
581
- var Accordion = (0, import_react11.forwardRef)(
582
- (props, ref) => {
583
- const { iconName, children, ...rest } = props;
584
- const [active, setActive] = (0, import_react11.useState)([]);
585
- const setOpenAccordion = (id) => {
586
- if (active.includes(id)) {
587
- setActive(active.filter((_id) => _id !== id));
588
- } else {
589
- setActive([...active, id]);
590
- }
591
- };
592
- return /* @__PURE__ */ import_react11.default.createElement("div", {
593
- ref,
594
- ...rest
595
- }, /* @__PURE__ */ import_react11.default.createElement(AccordionContext.Provider, {
596
- value: { active, setActive: setOpenAccordion, iconName }
597
- }, children));
598
- }
599
- );
600
- var css10 = {
601
- "@desktop": {
602
- display: "flex",
603
- flexDirection: "column",
604
- gap: 4
605
- }
606
- };
607
- Accordion.defaultProps = {
608
- iconName: "arrow"
609
- };
610
- var accordion_default = Accordion;
611
-
612
- // src/elements/accordion/AccordionWrapper.tsx
613
- var import_react13 = __toESM(require("react"));
614
-
615
- // src/elements/accordion/Icon.tsx
616
- var import_react12 = __toESM(require("react"));
617
- var ICONS = {
618
- caret: {
619
- animationType: "rotate90",
620
- css: {
621
- position: "absolute!important",
622
- left: 5,
623
- top: 2,
624
- width: 0,
625
- height: 0,
626
- borderTop: "6px solid transparent",
627
- borderBottom: "6px solid transparent",
628
- borderLeft: "6px solid #1F2A37"
629
- }
630
- },
631
- arrow: {
632
- animationType: "rotate90",
633
- css: {
634
- border: "solid #1F2A37",
635
- borderWidth: "0 1px 1px 0",
636
- display: "inline-block",
637
- transform: "rotate(-45deg) translate(15%, -15%)",
638
- padding: 4
639
- }
640
- },
641
- plus: {
642
- animationType: "custom",
643
- css: {
644
- display: "inline-block",
645
- top: -6,
646
- width: 15,
647
- height: 1,
648
- backgroundColor: "#1F2A37",
649
- "&:after": {
650
- position: "absolute",
651
- content: "",
652
- top: -7,
653
- left: 7,
654
- width: 1,
655
- height: 15,
656
- backgroundColor: "#1F2A37",
657
- transition: "all 0.3s ease-in-out 0s"
658
- },
659
- "&.active": {
660
- "&:after": {
661
- transform: "rotate(90deg)"
662
- }
663
- }
664
- }
665
- }
666
- };
667
- var rotateAnimation = {
668
- transition: "all 0.3s ease-in-out 0s",
669
- transform: "rotate(90deg)"
670
- };
671
- function Icon(props) {
672
- let { name, active = false, style, ...rest } = props;
673
- let { stitchesInstance } = (0, import_react12.useContext)(WeaverseContext);
674
- const { animationType, css: css17 } = ICONS[name];
675
- if (active && animationType === "rotate90") {
676
- style = { ...rotateAnimation, ...style };
677
- }
678
- let { className } = stitchesInstance.css(css17)();
679
- if (active)
680
- className += " active";
681
- return /* @__PURE__ */ import_react12.default.createElement("span", {
682
- style,
683
- ...rest
684
- }, /* @__PURE__ */ import_react12.default.createElement("i", {
685
- className
686
- }));
687
- }
688
- var Icon_default = Icon;
689
-
690
- // src/elements/accordion/AccordionWrapper.tsx
691
- var AccordionWrapper = (0, import_react13.forwardRef)((props, ref) => {
692
- const { ["data-wv-id"]: wvId, name, children, ...rest } = props;
693
- const { iconName, active, setActive } = (0, import_react13.useContext)(AccordionContext);
694
- const isActive = active.includes(wvId);
695
- return /* @__PURE__ */ import_react13.default.createElement("div", {
696
- ref,
697
- ...rest
698
- }, /* @__PURE__ */ import_react13.default.createElement("div", {
699
- onClick: () => setActive(wvId),
700
- className: `wv-acc-header ${isActive ? "active" : ""}`
701
- }, /* @__PURE__ */ import_react13.default.createElement("span", null, name), /* @__PURE__ */ import_react13.default.createElement(Icon_default, {
702
- className: "wv-acc-icon",
703
- active: isActive,
704
- name: iconName
705
- })), children);
706
- });
707
- var css11 = {
708
- "@desktop": {
709
- maxHeight: "100%",
710
- ".wv-acc-icon": {
711
- position: "absolute",
712
- right: 16,
713
- width: 16,
714
- height: 16,
715
- transition: "all 0.3s ease-in-out 0s"
716
- },
717
- ".wv-acc-header": {
718
- display: "flex",
719
- alignItems: "center",
720
- borderRadius: 4,
721
- padding: 12,
722
- marginBottom: 4,
723
- border: "1px solid #76A9FA",
724
- cursor: "pointer",
725
- '&.active + [data-wv-type="accordion.content"]': {
726
- maxHeight: "var(--max-height, inherit)"
727
- }
728
- }
729
- }
730
- };
731
- AccordionWrapper.defaultProps = {
732
- name: "Accordion item"
733
- };
734
- var AccordionWrapper_default = AccordionWrapper;
735
-
736
- // src/elements/accordion/AccordionContent.tsx
737
- var import_react14 = __toESM(require("react"));
738
- var AccordionContent = (0, import_react14.forwardRef)(
739
- (props, ref) => {
740
- const { rows, columns, gap, rowSize, children, ...rest } = props;
741
- let style = {
742
- "--rows": rows,
743
- "--columns": columns,
744
- "--gap": gap + "px",
745
- "--row-size": rowSize + "px",
746
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
747
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
748
- };
749
- return /* @__PURE__ */ import_react14.default.createElement("div", {
750
- ref,
751
- ...rest,
752
- style
753
- }, import_react14.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react14.default.createElement(Placeholder_default, {
754
- element: "Accordion Content"
755
- }, "Drag and drop an element here."));
756
- }
757
- );
758
- var css12 = {
759
- "@desktop": {
760
- width: "100%",
761
- maxWidth: "var(--grid-size)",
762
- display: "grid",
763
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
764
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
765
- gap: "var(--gap)",
766
- overflow: "hidden",
767
- maxHeight: 0,
768
- transition: "all var(--transition-duration, 0.3s) ease-in-out",
769
- borderRadius: 4
770
- }
771
- };
772
- AccordionContent.defaultProps = {
773
- rows: 3,
774
- columns: 12,
775
- gap: 4,
776
- rowSize: 48
777
- };
778
- var AccordionContent_default = AccordionContent;
779
-
780
- // src/elements/tab/index.tsx
781
- var import_react16 = __toESM(require("react"));
782
-
783
- // src/elements/tab/TabHeaderWrapper.tsx
784
- var import_react15 = __toESM(require("react"));
785
- function TabHeader(props) {
786
- const { wvId } = props;
787
- const { active, setActive } = (0, import_react15.useContext)(TabContext);
788
- const { itemInstances } = (0, import_react15.useContext)(WeaverseContext);
789
- const instance = itemInstances.get(wvId);
790
- let [data, setData] = (0, import_react15.useState)(instance.data);
791
- (0, import_react15.useEffect)(() => {
792
- let update = (data2) => setData({ ...data2 });
793
- instance.subscribe(update);
794
- }, []);
795
- return /* @__PURE__ */ import_react15.default.createElement("div", {
796
- onClick: () => setActive(wvId),
797
- className: `wv-tab-header${active === wvId ? " active" : ""}`
798
- }, data.name);
799
- }
800
- function TabHeaderWrapper(props) {
801
- const { itemInstances } = (0, import_react15.useContext)(WeaverseContext);
802
- const instance = itemInstances.get(props.wvId);
803
- const data = instance.data;
804
- const childIds = data.childIds;
805
- return /* @__PURE__ */ import_react15.default.createElement("div", {
806
- className: "wv-tab-header-wrapper"
807
- }, childIds.map((id) => /* @__PURE__ */ import_react15.default.createElement(TabHeader, {
808
- key: id,
809
- wvId: id
810
- })));
811
- }
812
-
813
- // src/elements/tab/index.tsx
814
- var TabContext = (0, import_react16.createContext)({
815
- active: null,
816
- setActive: () => {
817
- }
818
- });
819
- var Tab = (0, import_react16.forwardRef)((props, ref) => {
820
- var _a, _b, _c;
821
- const wvId = props["data-wv-id"];
822
- const { fullWidthTabHeader, children, ...rest } = props;
823
- 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;
824
- const [active, setActive] = (0, import_react16.useState)(defaultActive);
825
- const setOpenTab = (id) => {
826
- if (id !== active) {
827
- setActive(id);
828
- }
829
- };
830
- return /* @__PURE__ */ import_react16.default.createElement("div", {
831
- ref,
832
- ...rest,
833
- style: {
834
- "--tab-width": fullWidthTabHeader ? "100%" : "auto"
835
- }
836
- }, /* @__PURE__ */ import_react16.default.createElement(TabContext.Provider, {
837
- value: { active, setActive: setOpenTab }
838
- }, /* @__PURE__ */ import_react16.default.createElement(TabHeaderWrapper, {
839
- wvId
840
- }), children));
841
- });
842
- var css13 = {
843
- "@desktop": {
844
- display: "flex",
845
- flexDirection: "column",
846
- gap: 4,
847
- "& .wv-tab-header-wrapper": {
848
- width: "100%",
849
- display: "flex",
850
- marginBottom: 10
851
- },
852
- "& .wv-tab-header": {
853
- backgroundColor: "#fff",
854
- padding: "15px 24px",
855
- border: "1px solid #E4E7EB",
856
- cursor: "pointer",
857
- textAlign: "center",
858
- width: "var(--tab-width, auto)",
859
- "&.active": {
860
- backgroundColor: "#E4E7EB"
861
- }
862
- }
863
- }
864
- };
865
- Tab.defaultProps = {
866
- fullWidthTabHeader: false
867
- };
868
- var tab_default = Tab;
869
-
870
- // src/elements/tab/TabContent.tsx
871
- var import_react17 = __toESM(require("react"));
872
- var TabContent = (0, import_react17.forwardRef)(
873
- (props, ref) => {
874
- const { active } = (0, import_react17.useContext)(TabContext);
875
- const wvId = props["data-wv-id"];
876
- const { rows, columns, gap, rowSize, children, ...rest } = props;
877
- let style = {
878
- "--rows": rows,
879
- "--columns": columns,
880
- "--gap": gap + "px",
881
- "--row-size": rowSize + "px",
882
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
883
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
884
- "--content-active": active === wvId ? "grid" : "none"
885
- };
886
- return /* @__PURE__ */ import_react17.default.createElement("div", {
887
- ref,
888
- ...rest,
889
- style
890
- }, import_react17.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react17.default.createElement(Placeholder_default, {
891
- element: "Tab Content"
892
- }, "Drag and drop an element here."));
893
- }
894
- );
895
- var css14 = {
896
- "@desktop": {
897
- width: "100%",
898
- maxWidth: "var(--grid-size)",
899
- display: "var(--content-active, none)",
900
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
901
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
902
- gap: "var(--gap)",
903
- borderRadius: 4
904
- }
905
- };
906
- TabContent.defaultProps = {
907
- rows: 3,
908
- columns: 12,
909
- gap: 4,
910
- rowSize: 48,
911
- name: "Tab header"
912
- };
913
- var TabContent_default = TabContent;
914
-
915
- // src/elements/slider/index.tsx
916
- var import_react18 = __toESM(require("react"));
917
- var import_carousel = require("nuka-carousel/lib/carousel");
918
- var Slider = (0, import_react18.forwardRef)((props, ref) => {
919
- const { isDesignMode } = (0, import_react18.useContext)(WeaverseContext);
920
- const { autoplay, delay, children, ...rest } = props;
921
- return /* @__PURE__ */ import_react18.default.createElement("div", {
922
- ...rest,
923
- ref
924
- }, /* @__PURE__ */ import_react18.default.createElement(import_carousel.Carousel, {
925
- dragging: false,
926
- renderCenterLeftControls: (props2) => /* @__PURE__ */ import_react18.default.createElement("button", {
927
- className: "wv-slider-btn",
928
- onClick: props2.previousSlide,
929
- disabled: (isDesignMode || !autoplay) && props2.currentSlide === 0
930
- }, /* @__PURE__ */ import_react18.default.createElement("i", {
931
- className: "wv-slider-arrow wv-slider-arrow-left"
932
- })),
933
- renderCenterRightControls: (props2) => /* @__PURE__ */ import_react18.default.createElement("button", {
934
- className: "wv-slider-btn",
935
- onClick: props2.nextSlide,
936
- disabled: (isDesignMode || !autoplay) && props2.slideCount === props2.currentSlide
937
- }, /* @__PURE__ */ import_react18.default.createElement("i", {
938
- className: "wv-slider-arrow wv-slider-arrow-right"
939
- })),
940
- wrapAround: !isDesignMode,
941
- autoplay: !isDesignMode && autoplay,
942
- autoplayInterval: delay * 1e3
943
- }, children));
944
- });
945
- var css15 = {
946
- "@desktop": {
947
- "& .wv-slider-btn": {
948
- borderRadius: "100%",
949
- width: 40,
950
- height: 40,
951
- background: "#fff",
952
- border: "none",
953
- cursor: "pointer",
954
- "&[disabled]": {
955
- cursor: "not-allowed"
956
- },
957
- "&:hover .wv-slider-arrow": {
958
- borderColor: "#999"
959
- },
960
- "& .wv-slider-arrow": {
961
- border: "solid black",
962
- borderWidth: "0 1px 1px 0",
963
- display: "inline-block",
964
- padding: 5
965
- },
966
- "& .wv-slider-arrow-right": {
967
- transform: "rotate(-45deg)",
968
- marginRight: 5
969
- },
970
- "& .wv-slider-arrow-left": {
971
- transform: "rotate(135deg)",
972
- marginLeft: 5
973
- }
974
- }
975
- }
976
- };
977
- Slider.defaultProps = {
978
- fullWidth: true,
979
- autoplay: true,
980
- delay: 3
981
- };
982
- var slider_default = Slider;
983
-
984
- // src/elements/slider/SliderContent.tsx
985
- var import_react19 = __toESM(require("react"));
986
- var SliderContent = (0, import_react19.forwardRef)(
987
- (props, ref) => {
988
- const { isDesignMode } = (0, import_react19.useContext)(WeaverseContext);
989
- const {
990
- mediaUrl,
991
- targetLink,
992
- openInNewTab,
993
- rows,
994
- columns,
995
- gap,
996
- rowSize,
997
- children,
998
- ...rest
999
- } = props;
1000
- let style = {
1001
- "--rows": rows,
1002
- "--columns": columns,
1003
- "--gap": gap + "px",
1004
- "--row-size": rowSize + "px",
1005
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
1006
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
1007
- "--background-url": `url(${mediaUrl}`
1008
- };
1009
- const handleClick = () => {
1010
- if (!isDesignMode && targetLink) {
1011
- window.open(targetLink, openInNewTab ? "_blank" : "_self");
1012
- }
1013
- };
1014
- return /* @__PURE__ */ import_react19.default.createElement("div", {
1015
- ...rest,
1016
- style,
1017
- onClick: handleClick
1018
- }, import_react19.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react19.default.createElement(Placeholder_default, {
1019
- element: "Slider Content"
1020
- }, "Drag and drop an element here."));
1021
- }
1022
- );
1023
- var css16 = {
1024
- "@desktop": {
1025
- width: "100%",
1026
- maxWidth: "var(--grid-size)",
1027
- display: "grid",
1028
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
1029
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
1030
- gap: "var(--gap)",
1031
- borderRadius: 4,
1032
- backgroundImage: "var(--background-url, none)"
1033
- }
1034
- };
1035
- SliderContent.defaultProps = {
1036
- name: "Slider",
1037
- mediaUrl: "",
1038
- openInNewTab: false,
1039
- targetLink: "https://myshop.com",
1040
- rows: 4,
1041
- columns: 12,
1042
- gap: 4,
1043
- rowSize: 48
1044
- };
1045
- var SliderContent_default = SliderContent;
1046
-
1047
545
  // src/elements/index.ts
1048
546
  var SharedComponents = {
1049
547
  Placeholder: Placeholder_default
@@ -1093,59 +591,24 @@ var Elements = {
1093
591
  Component: video_default,
1094
592
  type: "video",
1095
593
  defaultCss: css8
1096
- },
1097
- Accordion: {
1098
- Component: accordion_default,
1099
- type: "accordion",
1100
- defaultCss: css10
1101
- },
1102
- AccordionWrapper: {
1103
- Component: AccordionWrapper_default,
1104
- type: "accordion.wrapper",
1105
- defaultCss: css11
1106
- },
1107
- AccordionContent: {
1108
- Component: AccordionContent_default,
1109
- type: "accordion.content",
1110
- defaultCss: css12
1111
- },
1112
- Tab: {
1113
- Component: tab_default,
1114
- type: "tab",
1115
- defaultCss: css13
1116
- },
1117
- TabContent: {
1118
- Component: TabContent_default,
1119
- type: "tab.content",
1120
- defaultCss: css14
1121
- },
1122
- Slider: {
1123
- Component: slider_default,
1124
- type: "slider",
1125
- defaultCss: css15
1126
- },
1127
- SliderContent: {
1128
- Component: SliderContent_default,
1129
- type: "slider.content",
1130
- defaultCss: css16
1131
594
  }
1132
595
  };
1133
596
 
1134
597
  // src/renderer.tsx
1135
- var import_core3 = require("@weaverse/core");
1136
- var import_react20 = __toESM(require("react"));
598
+ var import_core2 = require("@weaverse/core");
599
+ var import_react11 = __toESM(require("react"));
1137
600
 
1138
601
  // src/utils/index.ts
1139
- function shortCssObject(css17) {
602
+ function shortCssObject(css10) {
1140
603
  return {
1141
- "@desktop": css17["@desktop"],
1142
- "@mobile": css17["@mobile"]
604
+ "@desktop": css10["@desktop"],
605
+ "@mobile": css10["@mobile"]
1143
606
  };
1144
607
  }
1145
608
  var permanentClasses = {};
1146
609
  function generateItemClass(instance, stitchesInstance) {
1147
610
  var _a, _b;
1148
- let { css: css17, type, className: cls = "" } = instance.data;
611
+ let { css: css10, type, className: cls = "" } = instance.data;
1149
612
  let className = "";
1150
613
  let permanentClass = "";
1151
614
  let perCss = (_a = instance.Element) == null ? void 0 : _a.permanentCss;
@@ -1159,8 +622,8 @@ function generateItemClass(instance, stitchesInstance) {
1159
622
  }
1160
623
  }
1161
624
  className = permanentClass;
1162
- if (css17) {
1163
- let formattedCss = shortCssObject(css17);
625
+ if (css10) {
626
+ let formattedCss = shortCssObject(css10);
1164
627
  let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
1165
628
  let { stitchesClass } = instance;
1166
629
  let otherClass = (((_b = instance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
@@ -1173,10 +636,10 @@ function generateItemClass(instance, stitchesInstance) {
1173
636
  // src/renderer.tsx
1174
637
  var WeaverseRoot = ({ context }) => {
1175
638
  var _a, _b;
1176
- let [, setData] = (0, import_react20.useState)(context.projectData);
1177
- let rootRef = (0, import_react20.useRef)();
639
+ let [, setData] = (0, import_react11.useState)(context.projectData);
640
+ let rootRef = (0, import_react11.useRef)();
1178
641
  let update = () => setData({});
1179
- (0, import_react20.useEffect)(() => {
642
+ (0, import_react11.useEffect)(() => {
1180
643
  context.subscribe(update);
1181
644
  context.contentRootElement = rootRef.current;
1182
645
  return () => {
@@ -1185,24 +648,24 @@ var WeaverseRoot = ({ context }) => {
1185
648
  }, []);
1186
649
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
1187
650
  let themeClass = context.stitchesInstance.theme.className;
1188
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react20.default.createElement("div", {
651
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react11.default.createElement("div", {
1189
652
  className: `weaverse-content-root ${themeClass}`,
1190
653
  ...eventHandlers,
1191
654
  ref: rootRef
1192
- }, /* @__PURE__ */ import_react20.default.createElement(WeaverseContextProvider, {
655
+ }, /* @__PURE__ */ import_react11.default.createElement(WeaverseContextProvider, {
1193
656
  value: context
1194
- }, /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
657
+ }, /* @__PURE__ */ import_react11.default.createElement(ItemInstance, {
1195
658
  id: context.projectData.rootId
1196
659
  }))) : null;
1197
660
  };
1198
661
  var ItemComponent = ({ instance }) => {
1199
- let { stitchesInstance, elementInstances } = (0, import_react20.useContext)(WeaverseContext);
1200
- let [data, setData] = (0, import_react20.useState)(instance.data);
1201
- let { id, type, childIds = [], css: css17, className, ...rest } = data;
1202
- (0, import_react20.useEffect)(() => {
662
+ let { stitchesInstance, elementInstances } = (0, import_react11.useContext)(WeaverseContext);
663
+ let [data, setData] = (0, import_react11.useState)(instance.data);
664
+ let { id, type, childIds = [], css: css10, className, ...rest } = data;
665
+ (0, import_react11.useEffect)(() => {
1203
666
  let update = (data2) => setData({ ...data2 });
1204
667
  instance.subscribe(update);
1205
- if (import_core3.isBrowser && !instance.ref.current) {
668
+ if (import_core2.isBrowser && !instance.ref.current) {
1206
669
  Object.assign(instance.ref, {
1207
670
  current: document.querySelector(`[data-wv-id="${id}"]`)
1208
671
  });
@@ -1215,13 +678,13 @@ var ItemComponent = ({ instance }) => {
1215
678
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
1216
679
  rest.ref = instance.ref;
1217
680
  }
1218
- return /* @__PURE__ */ import_react20.default.createElement(Component, {
681
+ return /* @__PURE__ */ import_react11.default.createElement(Component, {
1219
682
  key: id,
1220
683
  "data-wv-type": type,
1221
684
  "data-wv-id": id,
1222
685
  className: generateItemClass(instance, stitchesInstance),
1223
686
  ...rest
1224
- }, childIds.map((id2) => /* @__PURE__ */ import_react20.default.createElement(ItemInstance, {
687
+ }, childIds.map((id2) => /* @__PURE__ */ import_react11.default.createElement(ItemInstance, {
1225
688
  key: id2,
1226
689
  id: id2
1227
690
  })));
@@ -1229,15 +692,15 @@ var ItemComponent = ({ instance }) => {
1229
692
  return null;
1230
693
  };
1231
694
  var ItemInstance = ({ id }) => {
1232
- let context = (0, import_react20.useContext)(WeaverseContext);
695
+ let context = (0, import_react11.useContext)(WeaverseContext);
1233
696
  let { itemInstances } = context;
1234
697
  let instance = itemInstances.get(id);
1235
698
  if (!instance) {
1236
- return /* @__PURE__ */ import_react20.default.createElement("div", {
699
+ return /* @__PURE__ */ import_react11.default.createElement("div", {
1237
700
  style: { display: "none" }
1238
701
  }, "Item instance ", id, " not found");
1239
702
  }
1240
- return /* @__PURE__ */ import_react20.default.createElement(ItemComponent, {
703
+ return /* @__PURE__ */ import_react11.default.createElement(ItemComponent, {
1241
704
  instance
1242
705
  });
1243
706
  };
package/dist/index.mjs CHANGED
@@ -199,34 +199,6 @@ var countdown_default = Countdown;
199
199
 
200
200
  // src/elements/image.tsx
201
201
  import React5 from "react";
202
- import { isBrowser } from "@weaverse/core";
203
- var loadUploadCareAdaptiveDelivery = () => {
204
- if (!window.Blinkloader) {
205
- console.log("loadUploadCareAdaptiveDelivery");
206
- (function(src, cb) {
207
- let s = document.createElement("script");
208
- s.setAttribute("src", src);
209
- s.onload = cb;
210
- (document.head || document.body).appendChild(s);
211
- })(
212
- "https://ucarecdn.com/libs/blinkloader/3.x/blinkloader.min.js",
213
- function() {
214
- window.Blinkloader.optimize({
215
- pubkey: "1a22133d1a1bdc089d4c",
216
- fadeIn: true,
217
- lazyload: true,
218
- smartCompression: true,
219
- responsive: true,
220
- retina: true,
221
- webp: true
222
- });
223
- }
224
- );
225
- }
226
- };
227
- if (isBrowser) {
228
- loadUploadCareAdaptiveDelivery();
229
- }
230
202
  var Image = React5.forwardRef(
231
203
  (props, ref) => {
232
204
  let {
@@ -269,7 +241,7 @@ var css4 = {
269
241
  objectFit: "var(--wv-img-object-fit, cover)",
270
242
  objectPosition: "var(--wv-img-object-position, center)"
271
243
  },
272
- "> [data-blink-src]": {
244
+ "& [data-blink-src]": {
273
245
  visibility: "hidden"
274
246
  }
275
247
  }
@@ -531,480 +503,6 @@ Instagram.defaultProps = {
531
503
  };
532
504
  var instagram_default = Instagram;
533
505
 
534
- // src/elements/accordion/index.tsx
535
- import React12, { createContext as createContext2, forwardRef as forwardRef10, useState as useState2 } from "react";
536
- var AccordionContext = createContext2({
537
- iconName: "arrow",
538
- active: [],
539
- setActive: () => {
540
- }
541
- });
542
- var Accordion = forwardRef10(
543
- (props, ref) => {
544
- const { iconName, children, ...rest } = props;
545
- const [active, setActive] = useState2([]);
546
- const setOpenAccordion = (id) => {
547
- if (active.includes(id)) {
548
- setActive(active.filter((_id) => _id !== id));
549
- } else {
550
- setActive([...active, id]);
551
- }
552
- };
553
- return /* @__PURE__ */ React12.createElement("div", {
554
- ref,
555
- ...rest
556
- }, /* @__PURE__ */ React12.createElement(AccordionContext.Provider, {
557
- value: { active, setActive: setOpenAccordion, iconName }
558
- }, children));
559
- }
560
- );
561
- var css10 = {
562
- "@desktop": {
563
- display: "flex",
564
- flexDirection: "column",
565
- gap: 4
566
- }
567
- };
568
- Accordion.defaultProps = {
569
- iconName: "arrow"
570
- };
571
- var accordion_default = Accordion;
572
-
573
- // src/elements/accordion/AccordionWrapper.tsx
574
- import React14, { forwardRef as forwardRef11, useContext as useContext4 } from "react";
575
-
576
- // src/elements/accordion/Icon.tsx
577
- import React13, { useContext as useContext3 } from "react";
578
- var ICONS = {
579
- caret: {
580
- animationType: "rotate90",
581
- css: {
582
- position: "absolute!important",
583
- left: 5,
584
- top: 2,
585
- width: 0,
586
- height: 0,
587
- borderTop: "6px solid transparent",
588
- borderBottom: "6px solid transparent",
589
- borderLeft: "6px solid #1F2A37"
590
- }
591
- },
592
- arrow: {
593
- animationType: "rotate90",
594
- css: {
595
- border: "solid #1F2A37",
596
- borderWidth: "0 1px 1px 0",
597
- display: "inline-block",
598
- transform: "rotate(-45deg) translate(15%, -15%)",
599
- padding: 4
600
- }
601
- },
602
- plus: {
603
- animationType: "custom",
604
- css: {
605
- display: "inline-block",
606
- top: -6,
607
- width: 15,
608
- height: 1,
609
- backgroundColor: "#1F2A37",
610
- "&:after": {
611
- position: "absolute",
612
- content: "",
613
- top: -7,
614
- left: 7,
615
- width: 1,
616
- height: 15,
617
- backgroundColor: "#1F2A37",
618
- transition: "all 0.3s ease-in-out 0s"
619
- },
620
- "&.active": {
621
- "&:after": {
622
- transform: "rotate(90deg)"
623
- }
624
- }
625
- }
626
- }
627
- };
628
- var rotateAnimation = {
629
- transition: "all 0.3s ease-in-out 0s",
630
- transform: "rotate(90deg)"
631
- };
632
- function Icon(props) {
633
- let { name, active = false, style, ...rest } = props;
634
- let { stitchesInstance } = useContext3(WeaverseContext);
635
- const { animationType, css: css17 } = ICONS[name];
636
- if (active && animationType === "rotate90") {
637
- style = { ...rotateAnimation, ...style };
638
- }
639
- let { className } = stitchesInstance.css(css17)();
640
- if (active)
641
- className += " active";
642
- return /* @__PURE__ */ React13.createElement("span", {
643
- style,
644
- ...rest
645
- }, /* @__PURE__ */ React13.createElement("i", {
646
- className
647
- }));
648
- }
649
- var Icon_default = Icon;
650
-
651
- // src/elements/accordion/AccordionWrapper.tsx
652
- var AccordionWrapper = forwardRef11((props, ref) => {
653
- const { ["data-wv-id"]: wvId, name, children, ...rest } = props;
654
- const { iconName, active, setActive } = useContext4(AccordionContext);
655
- const isActive = active.includes(wvId);
656
- return /* @__PURE__ */ React14.createElement("div", {
657
- ref,
658
- ...rest
659
- }, /* @__PURE__ */ React14.createElement("div", {
660
- onClick: () => setActive(wvId),
661
- className: `wv-acc-header ${isActive ? "active" : ""}`
662
- }, /* @__PURE__ */ React14.createElement("span", null, name), /* @__PURE__ */ React14.createElement(Icon_default, {
663
- className: "wv-acc-icon",
664
- active: isActive,
665
- name: iconName
666
- })), children);
667
- });
668
- var css11 = {
669
- "@desktop": {
670
- maxHeight: "100%",
671
- ".wv-acc-icon": {
672
- position: "absolute",
673
- right: 16,
674
- width: 16,
675
- height: 16,
676
- transition: "all 0.3s ease-in-out 0s"
677
- },
678
- ".wv-acc-header": {
679
- display: "flex",
680
- alignItems: "center",
681
- borderRadius: 4,
682
- padding: 12,
683
- marginBottom: 4,
684
- border: "1px solid #76A9FA",
685
- cursor: "pointer",
686
- '&.active + [data-wv-type="accordion.content"]': {
687
- maxHeight: "var(--max-height, inherit)"
688
- }
689
- }
690
- }
691
- };
692
- AccordionWrapper.defaultProps = {
693
- name: "Accordion item"
694
- };
695
- var AccordionWrapper_default = AccordionWrapper;
696
-
697
- // src/elements/accordion/AccordionContent.tsx
698
- import React15, { forwardRef as forwardRef12 } from "react";
699
- var AccordionContent = forwardRef12(
700
- (props, ref) => {
701
- const { rows, columns, gap, rowSize, children, ...rest } = props;
702
- let style = {
703
- "--rows": rows,
704
- "--columns": columns,
705
- "--gap": gap + "px",
706
- "--row-size": rowSize + "px",
707
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
708
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
709
- };
710
- return /* @__PURE__ */ React15.createElement("div", {
711
- ref,
712
- ...rest,
713
- style
714
- }, React15.Children.count(children) > 0 ? children : /* @__PURE__ */ React15.createElement(Placeholder_default, {
715
- element: "Accordion Content"
716
- }, "Drag and drop an element here."));
717
- }
718
- );
719
- var css12 = {
720
- "@desktop": {
721
- width: "100%",
722
- maxWidth: "var(--grid-size)",
723
- display: "grid",
724
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
725
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
726
- gap: "var(--gap)",
727
- overflow: "hidden",
728
- maxHeight: 0,
729
- transition: "all var(--transition-duration, 0.3s) ease-in-out",
730
- borderRadius: 4
731
- }
732
- };
733
- AccordionContent.defaultProps = {
734
- rows: 3,
735
- columns: 12,
736
- gap: 4,
737
- rowSize: 48
738
- };
739
- var AccordionContent_default = AccordionContent;
740
-
741
- // src/elements/tab/index.tsx
742
- import React17, { createContext as createContext3, forwardRef as forwardRef13, useState as useState4 } from "react";
743
-
744
- // src/elements/tab/TabHeaderWrapper.tsx
745
- import React16, { useContext as useContext5, useEffect as useEffect3, useState as useState3 } from "react";
746
- function TabHeader(props) {
747
- const { wvId } = props;
748
- const { active, setActive } = useContext5(TabContext);
749
- const { itemInstances } = useContext5(WeaverseContext);
750
- const instance = itemInstances.get(wvId);
751
- let [data, setData] = useState3(instance.data);
752
- useEffect3(() => {
753
- let update = (data2) => setData({ ...data2 });
754
- instance.subscribe(update);
755
- }, []);
756
- return /* @__PURE__ */ React16.createElement("div", {
757
- onClick: () => setActive(wvId),
758
- className: `wv-tab-header${active === wvId ? " active" : ""}`
759
- }, data.name);
760
- }
761
- function TabHeaderWrapper(props) {
762
- const { itemInstances } = useContext5(WeaverseContext);
763
- const instance = itemInstances.get(props.wvId);
764
- const data = instance.data;
765
- const childIds = data.childIds;
766
- return /* @__PURE__ */ React16.createElement("div", {
767
- className: "wv-tab-header-wrapper"
768
- }, childIds.map((id) => /* @__PURE__ */ React16.createElement(TabHeader, {
769
- key: id,
770
- wvId: id
771
- })));
772
- }
773
-
774
- // src/elements/tab/index.tsx
775
- var TabContext = createContext3({
776
- active: null,
777
- setActive: () => {
778
- }
779
- });
780
- var Tab = forwardRef13((props, ref) => {
781
- var _a, _b, _c;
782
- const wvId = props["data-wv-id"];
783
- const { fullWidthTabHeader, children, ...rest } = props;
784
- const defaultActive = (_c = (_b = (_a = React17.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
785
- const [active, setActive] = useState4(defaultActive);
786
- const setOpenTab = (id) => {
787
- if (id !== active) {
788
- setActive(id);
789
- }
790
- };
791
- return /* @__PURE__ */ React17.createElement("div", {
792
- ref,
793
- ...rest,
794
- style: {
795
- "--tab-width": fullWidthTabHeader ? "100%" : "auto"
796
- }
797
- }, /* @__PURE__ */ React17.createElement(TabContext.Provider, {
798
- value: { active, setActive: setOpenTab }
799
- }, /* @__PURE__ */ React17.createElement(TabHeaderWrapper, {
800
- wvId
801
- }), children));
802
- });
803
- var css13 = {
804
- "@desktop": {
805
- display: "flex",
806
- flexDirection: "column",
807
- gap: 4,
808
- "& .wv-tab-header-wrapper": {
809
- width: "100%",
810
- display: "flex",
811
- marginBottom: 10
812
- },
813
- "& .wv-tab-header": {
814
- backgroundColor: "#fff",
815
- padding: "15px 24px",
816
- border: "1px solid #E4E7EB",
817
- cursor: "pointer",
818
- textAlign: "center",
819
- width: "var(--tab-width, auto)",
820
- "&.active": {
821
- backgroundColor: "#E4E7EB"
822
- }
823
- }
824
- }
825
- };
826
- Tab.defaultProps = {
827
- fullWidthTabHeader: false
828
- };
829
- var tab_default = Tab;
830
-
831
- // src/elements/tab/TabContent.tsx
832
- import React18, { forwardRef as forwardRef14, useContext as useContext6 } from "react";
833
- var TabContent = forwardRef14(
834
- (props, ref) => {
835
- const { active } = useContext6(TabContext);
836
- const wvId = props["data-wv-id"];
837
- const { rows, columns, gap, rowSize, children, ...rest } = props;
838
- let style = {
839
- "--rows": rows,
840
- "--columns": columns,
841
- "--gap": gap + "px",
842
- "--row-size": rowSize + "px",
843
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
844
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
845
- "--content-active": active === wvId ? "grid" : "none"
846
- };
847
- return /* @__PURE__ */ React18.createElement("div", {
848
- ref,
849
- ...rest,
850
- style
851
- }, React18.Children.count(children) > 0 ? children : /* @__PURE__ */ React18.createElement(Placeholder_default, {
852
- element: "Tab Content"
853
- }, "Drag and drop an element here."));
854
- }
855
- );
856
- var css14 = {
857
- "@desktop": {
858
- width: "100%",
859
- maxWidth: "var(--grid-size)",
860
- display: "var(--content-active, none)",
861
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
862
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
863
- gap: "var(--gap)",
864
- borderRadius: 4
865
- }
866
- };
867
- TabContent.defaultProps = {
868
- rows: 3,
869
- columns: 12,
870
- gap: 4,
871
- rowSize: 48,
872
- name: "Tab header"
873
- };
874
- var TabContent_default = TabContent;
875
-
876
- // src/elements/slider/index.tsx
877
- import React19, { forwardRef as forwardRef15, useContext as useContext7 } from "react";
878
- import { Carousel } from "nuka-carousel/lib/carousel";
879
- var Slider = forwardRef15((props, ref) => {
880
- const { isDesignMode } = useContext7(WeaverseContext);
881
- const { autoplay, delay, children, ...rest } = props;
882
- return /* @__PURE__ */ React19.createElement("div", {
883
- ...rest,
884
- ref
885
- }, /* @__PURE__ */ React19.createElement(Carousel, {
886
- dragging: false,
887
- renderCenterLeftControls: (props2) => /* @__PURE__ */ React19.createElement("button", {
888
- className: "wv-slider-btn",
889
- onClick: props2.previousSlide,
890
- disabled: (isDesignMode || !autoplay) && props2.currentSlide === 0
891
- }, /* @__PURE__ */ React19.createElement("i", {
892
- className: "wv-slider-arrow wv-slider-arrow-left"
893
- })),
894
- renderCenterRightControls: (props2) => /* @__PURE__ */ React19.createElement("button", {
895
- className: "wv-slider-btn",
896
- onClick: props2.nextSlide,
897
- disabled: (isDesignMode || !autoplay) && props2.slideCount === props2.currentSlide
898
- }, /* @__PURE__ */ React19.createElement("i", {
899
- className: "wv-slider-arrow wv-slider-arrow-right"
900
- })),
901
- wrapAround: !isDesignMode,
902
- autoplay: !isDesignMode && autoplay,
903
- autoplayInterval: delay * 1e3
904
- }, children));
905
- });
906
- var css15 = {
907
- "@desktop": {
908
- "& .wv-slider-btn": {
909
- borderRadius: "100%",
910
- width: 40,
911
- height: 40,
912
- background: "#fff",
913
- border: "none",
914
- cursor: "pointer",
915
- "&[disabled]": {
916
- cursor: "not-allowed"
917
- },
918
- "&:hover .wv-slider-arrow": {
919
- borderColor: "#999"
920
- },
921
- "& .wv-slider-arrow": {
922
- border: "solid black",
923
- borderWidth: "0 1px 1px 0",
924
- display: "inline-block",
925
- padding: 5
926
- },
927
- "& .wv-slider-arrow-right": {
928
- transform: "rotate(-45deg)",
929
- marginRight: 5
930
- },
931
- "& .wv-slider-arrow-left": {
932
- transform: "rotate(135deg)",
933
- marginLeft: 5
934
- }
935
- }
936
- }
937
- };
938
- Slider.defaultProps = {
939
- fullWidth: true,
940
- autoplay: true,
941
- delay: 3
942
- };
943
- var slider_default = Slider;
944
-
945
- // src/elements/slider/SliderContent.tsx
946
- import React20, { forwardRef as forwardRef16, useContext as useContext8 } from "react";
947
- var SliderContent = forwardRef16(
948
- (props, ref) => {
949
- const { isDesignMode } = useContext8(WeaverseContext);
950
- const {
951
- mediaUrl,
952
- targetLink,
953
- openInNewTab,
954
- rows,
955
- columns,
956
- gap,
957
- rowSize,
958
- children,
959
- ...rest
960
- } = props;
961
- let style = {
962
- "--rows": rows,
963
- "--columns": columns,
964
- "--gap": gap + "px",
965
- "--row-size": rowSize + "px",
966
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
967
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
968
- "--background-url": `url(${mediaUrl}`
969
- };
970
- const handleClick = () => {
971
- if (!isDesignMode && targetLink) {
972
- window.open(targetLink, openInNewTab ? "_blank" : "_self");
973
- }
974
- };
975
- return /* @__PURE__ */ React20.createElement("div", {
976
- ...rest,
977
- style,
978
- onClick: handleClick
979
- }, React20.Children.count(children) > 0 ? children : /* @__PURE__ */ React20.createElement(Placeholder_default, {
980
- element: "Slider Content"
981
- }, "Drag and drop an element here."));
982
- }
983
- );
984
- var css16 = {
985
- "@desktop": {
986
- width: "100%",
987
- maxWidth: "var(--grid-size)",
988
- display: "grid",
989
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
990
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
991
- gap: "var(--gap)",
992
- borderRadius: 4,
993
- backgroundImage: "var(--background-url, none)"
994
- }
995
- };
996
- SliderContent.defaultProps = {
997
- name: "Slider",
998
- mediaUrl: "",
999
- openInNewTab: false,
1000
- targetLink: "https://myshop.com",
1001
- rows: 4,
1002
- columns: 12,
1003
- gap: 4,
1004
- rowSize: 48
1005
- };
1006
- var SliderContent_default = SliderContent;
1007
-
1008
506
  // src/elements/index.ts
1009
507
  var SharedComponents = {
1010
508
  Placeholder: Placeholder_default
@@ -1054,59 +552,24 @@ var Elements = {
1054
552
  Component: video_default,
1055
553
  type: "video",
1056
554
  defaultCss: css8
1057
- },
1058
- Accordion: {
1059
- Component: accordion_default,
1060
- type: "accordion",
1061
- defaultCss: css10
1062
- },
1063
- AccordionWrapper: {
1064
- Component: AccordionWrapper_default,
1065
- type: "accordion.wrapper",
1066
- defaultCss: css11
1067
- },
1068
- AccordionContent: {
1069
- Component: AccordionContent_default,
1070
- type: "accordion.content",
1071
- defaultCss: css12
1072
- },
1073
- Tab: {
1074
- Component: tab_default,
1075
- type: "tab",
1076
- defaultCss: css13
1077
- },
1078
- TabContent: {
1079
- Component: TabContent_default,
1080
- type: "tab.content",
1081
- defaultCss: css14
1082
- },
1083
- Slider: {
1084
- Component: slider_default,
1085
- type: "slider",
1086
- defaultCss: css15
1087
- },
1088
- SliderContent: {
1089
- Component: SliderContent_default,
1090
- type: "slider.content",
1091
- defaultCss: css16
1092
555
  }
1093
556
  };
1094
557
 
1095
558
  // src/renderer.tsx
1096
- import { isBrowser as isBrowser2 } from "@weaverse/core";
1097
- import React21, { useContext as useContext9, useEffect as useEffect4, useRef, useState as useState5 } from "react";
559
+ import { isBrowser } from "@weaverse/core";
560
+ import React12, { useContext as useContext3, useEffect as useEffect3, useRef, useState as useState2 } from "react";
1098
561
 
1099
562
  // src/utils/index.ts
1100
- function shortCssObject(css17) {
563
+ function shortCssObject(css10) {
1101
564
  return {
1102
- "@desktop": css17["@desktop"],
1103
- "@mobile": css17["@mobile"]
565
+ "@desktop": css10["@desktop"],
566
+ "@mobile": css10["@mobile"]
1104
567
  };
1105
568
  }
1106
569
  var permanentClasses = {};
1107
570
  function generateItemClass(instance, stitchesInstance) {
1108
571
  var _a, _b;
1109
- let { css: css17, type, className: cls = "" } = instance.data;
572
+ let { css: css10, type, className: cls = "" } = instance.data;
1110
573
  let className = "";
1111
574
  let permanentClass = "";
1112
575
  let perCss = (_a = instance.Element) == null ? void 0 : _a.permanentCss;
@@ -1120,8 +583,8 @@ function generateItemClass(instance, stitchesInstance) {
1120
583
  }
1121
584
  }
1122
585
  className = permanentClass;
1123
- if (css17) {
1124
- let formattedCss = shortCssObject(css17);
586
+ if (css10) {
587
+ let formattedCss = shortCssObject(css10);
1125
588
  let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
1126
589
  let { stitchesClass } = instance;
1127
590
  let otherClass = (((_b = instance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
@@ -1134,10 +597,10 @@ function generateItemClass(instance, stitchesInstance) {
1134
597
  // src/renderer.tsx
1135
598
  var WeaverseRoot = ({ context }) => {
1136
599
  var _a, _b;
1137
- let [, setData] = useState5(context.projectData);
600
+ let [, setData] = useState2(context.projectData);
1138
601
  let rootRef = useRef();
1139
602
  let update = () => setData({});
1140
- useEffect4(() => {
603
+ useEffect3(() => {
1141
604
  context.subscribe(update);
1142
605
  context.contentRootElement = rootRef.current;
1143
606
  return () => {
@@ -1146,24 +609,24 @@ var WeaverseRoot = ({ context }) => {
1146
609
  }, []);
1147
610
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
1148
611
  let themeClass = context.stitchesInstance.theme.className;
1149
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React21.createElement("div", {
612
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React12.createElement("div", {
1150
613
  className: `weaverse-content-root ${themeClass}`,
1151
614
  ...eventHandlers,
1152
615
  ref: rootRef
1153
- }, /* @__PURE__ */ React21.createElement(WeaverseContextProvider, {
616
+ }, /* @__PURE__ */ React12.createElement(WeaverseContextProvider, {
1154
617
  value: context
1155
- }, /* @__PURE__ */ React21.createElement(ItemInstance, {
618
+ }, /* @__PURE__ */ React12.createElement(ItemInstance, {
1156
619
  id: context.projectData.rootId
1157
620
  }))) : null;
1158
621
  };
1159
622
  var ItemComponent = ({ instance }) => {
1160
- let { stitchesInstance, elementInstances } = useContext9(WeaverseContext);
1161
- let [data, setData] = useState5(instance.data);
1162
- let { id, type, childIds = [], css: css17, className, ...rest } = data;
1163
- useEffect4(() => {
623
+ let { stitchesInstance, elementInstances } = useContext3(WeaverseContext);
624
+ let [data, setData] = useState2(instance.data);
625
+ let { id, type, childIds = [], css: css10, className, ...rest } = data;
626
+ useEffect3(() => {
1164
627
  let update = (data2) => setData({ ...data2 });
1165
628
  instance.subscribe(update);
1166
- if (isBrowser2 && !instance.ref.current) {
629
+ if (isBrowser && !instance.ref.current) {
1167
630
  Object.assign(instance.ref, {
1168
631
  current: document.querySelector(`[data-wv-id="${id}"]`)
1169
632
  });
@@ -1176,13 +639,13 @@ var ItemComponent = ({ instance }) => {
1176
639
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
1177
640
  rest.ref = instance.ref;
1178
641
  }
1179
- return /* @__PURE__ */ React21.createElement(Component, {
642
+ return /* @__PURE__ */ React12.createElement(Component, {
1180
643
  key: id,
1181
644
  "data-wv-type": type,
1182
645
  "data-wv-id": id,
1183
646
  className: generateItemClass(instance, stitchesInstance),
1184
647
  ...rest
1185
- }, childIds.map((id2) => /* @__PURE__ */ React21.createElement(ItemInstance, {
648
+ }, childIds.map((id2) => /* @__PURE__ */ React12.createElement(ItemInstance, {
1186
649
  key: id2,
1187
650
  id: id2
1188
651
  })));
@@ -1190,15 +653,15 @@ var ItemComponent = ({ instance }) => {
1190
653
  return null;
1191
654
  };
1192
655
  var ItemInstance = ({ id }) => {
1193
- let context = useContext9(WeaverseContext);
656
+ let context = useContext3(WeaverseContext);
1194
657
  let { itemInstances } = context;
1195
658
  let instance = itemInstances.get(id);
1196
659
  if (!instance) {
1197
- return /* @__PURE__ */ React21.createElement("div", {
660
+ return /* @__PURE__ */ React12.createElement("div", {
1198
661
  style: { display: "none" }
1199
662
  }, "Item instance ", id, " not found");
1200
663
  }
1201
- return /* @__PURE__ */ React21.createElement(ItemComponent, {
664
+ return /* @__PURE__ */ React12.createElement(ItemComponent, {
1202
665
  instance
1203
666
  });
1204
667
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.7.15",
2
+ "version": "0.7.16",
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.15",
34
+ "@weaverse/core": "0.7.16",
35
35
  "nuka-carousel": "^5.4.0"
36
36
  }
37
37
  }