@weaverse/react 0.7.57 → 0.7.58
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 +40 -4
- package/dist/index.js +609 -391
- package/dist/index.mjs +601 -383
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ __reExport(src_exports, require("@weaverse/core"), module.exports);
|
|
|
40
40
|
|
|
41
41
|
// src/context.ts
|
|
42
42
|
var import_core = require("@weaverse/core");
|
|
43
|
-
var
|
|
43
|
+
var import_react27 = require("react");
|
|
44
44
|
|
|
45
45
|
// src/elements/Button.tsx
|
|
46
46
|
var React = __toESM(require("react"));
|
|
@@ -118,42 +118,6 @@ var import_react4 = __toESM(require("react"));
|
|
|
118
118
|
// src/constant/index.ts
|
|
119
119
|
var TIMES = ["days", "hours", "minutes", "seconds"];
|
|
120
120
|
var COUNTDOWN_KEY = "wv-cd-evergreen-start";
|
|
121
|
-
var INSTAGRAM_API = "https://graph.instagram.com";
|
|
122
|
-
|
|
123
|
-
// src/utils/css.ts
|
|
124
|
-
var import_clsx = __toESM(require("clsx"));
|
|
125
|
-
function formatCSS(css10) {
|
|
126
|
-
return {
|
|
127
|
-
"@desktop": css10["@desktop"],
|
|
128
|
-
"@mobile": css10["@mobile"]
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
var permanentClasses = {};
|
|
132
|
-
function generateItemClassName(instance, stitchesInstance) {
|
|
133
|
-
let { css: css10, type, className: cls = "" } = instance.data;
|
|
134
|
-
let className = "";
|
|
135
|
-
let permanentClass = "";
|
|
136
|
-
let perCss = instance.Element?.permanentCss;
|
|
137
|
-
if (perCss) {
|
|
138
|
-
if (type in permanentClasses) {
|
|
139
|
-
permanentClass = permanentClasses[type];
|
|
140
|
-
} else {
|
|
141
|
-
let { className: perCls } = stitchesInstance.css(perCss)();
|
|
142
|
-
Object.assign(permanentClasses, { [type]: perCls });
|
|
143
|
-
permanentClass = perCls;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
className = permanentClass;
|
|
147
|
-
if (css10) {
|
|
148
|
-
let formattedCss = formatCSS(css10);
|
|
149
|
-
let newStitchesClass = stitchesInstance.css(formattedCss)().className || "";
|
|
150
|
-
let { stitchesClass } = instance;
|
|
151
|
-
let otherClass = (instance.ref.current?.className || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
|
|
152
|
-
className = (0, import_clsx.default)(permanentClass, cls, newStitchesClass, otherClass);
|
|
153
|
-
instance.stitchesClass = newStitchesClass;
|
|
154
|
-
}
|
|
155
|
-
return className;
|
|
156
|
-
}
|
|
157
121
|
|
|
158
122
|
// src/utils/index.ts
|
|
159
123
|
function getTime(_seconds) {
|
|
@@ -270,7 +234,6 @@ var Countdown = (0, import_react4.forwardRef)(
|
|
|
270
234
|
);
|
|
271
235
|
var css3 = {
|
|
272
236
|
"@desktop": {
|
|
273
|
-
fontFamily: "Inter",
|
|
274
237
|
fontSize: "36px",
|
|
275
238
|
fontWeight: 500,
|
|
276
239
|
display: "flex",
|
|
@@ -693,39 +656,17 @@ Video.defaultProps = {
|
|
|
693
656
|
};
|
|
694
657
|
var Video_default = Video;
|
|
695
658
|
|
|
696
|
-
// src/elements/
|
|
697
|
-
var
|
|
698
|
-
|
|
699
|
-
// src/components/Placeholder.tsx
|
|
700
|
-
var import_react14 = __toESM(require("react"));
|
|
701
|
-
var Placeholder = (0, import_react14.forwardRef)(
|
|
702
|
-
(props, ref) => {
|
|
703
|
-
let { element, children, ...rest } = props;
|
|
704
|
-
return /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
705
|
-
"data-wv-placeholder": true,
|
|
706
|
-
ref,
|
|
707
|
-
...rest
|
|
708
|
-
}, /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
709
|
-
style: { fontWeight: 600, marginBottom: "10px" }
|
|
710
|
-
}, element), /* @__PURE__ */ import_react14.default.createElement("div", null, children));
|
|
711
|
-
}
|
|
712
|
-
);
|
|
713
|
-
var Placeholder_default = Placeholder;
|
|
659
|
+
// src/elements/Slideshow/index.tsx
|
|
660
|
+
var import_react20 = require("keen-slider/react");
|
|
661
|
+
var import_react21 = __toESM(require("react"));
|
|
714
662
|
|
|
715
|
-
// src/components/
|
|
716
|
-
var
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
ModalClose: () => ModalClose,
|
|
720
|
-
ModalContent: () => ModalContent,
|
|
721
|
-
ModalHeader: () => ModalHeader,
|
|
722
|
-
ModalTrigger: () => ModalTrigger
|
|
723
|
-
});
|
|
724
|
-
var import_react_dialog2 = require("@radix-ui/react-dialog");
|
|
725
|
-
var import_react19 = __toESM(require("react"));
|
|
663
|
+
// src/components/Slider/Arrows.tsx
|
|
664
|
+
var import_react16 = require("@stitches/react");
|
|
665
|
+
var import_clsx2 = __toESM(require("clsx"));
|
|
666
|
+
var import_react17 = __toESM(require("react"));
|
|
726
667
|
|
|
727
668
|
// src/components/Icons/index.tsx
|
|
728
|
-
var
|
|
669
|
+
var import_react15 = __toESM(require("react"));
|
|
729
670
|
|
|
730
671
|
// src/components/Icons/Phosphor.tsx
|
|
731
672
|
var Phosphor_exports = {};
|
|
@@ -740,39 +681,39 @@ __export(Phosphor_exports, {
|
|
|
740
681
|
ShoppingCart: () => ShoppingCart,
|
|
741
682
|
X: () => X
|
|
742
683
|
});
|
|
743
|
-
var
|
|
684
|
+
var import_react14 = __toESM(require("react"));
|
|
744
685
|
var CircleNotch = (props) => {
|
|
745
|
-
return /* @__PURE__ */
|
|
686
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
746
687
|
xmlns: "http://www.w3.org/2000/svg",
|
|
747
688
|
fill: "none",
|
|
748
689
|
viewBox: "0 0 24 24",
|
|
749
690
|
...props
|
|
750
|
-
}, /* @__PURE__ */
|
|
691
|
+
}, /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
751
692
|
style: { opacity: ".25" },
|
|
752
693
|
cx: "12",
|
|
753
694
|
cy: "12",
|
|
754
695
|
r: "10",
|
|
755
696
|
stroke: "currentColor",
|
|
756
697
|
strokeWidth: "4"
|
|
757
|
-
}), /* @__PURE__ */
|
|
698
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
758
699
|
style: { opacity: ".75" },
|
|
759
700
|
fill: "currentColor",
|
|
760
701
|
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
761
702
|
}));
|
|
762
703
|
};
|
|
763
704
|
var X = (props) => {
|
|
764
|
-
return /* @__PURE__ */
|
|
705
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
765
706
|
xmlns: "http://www.w3.org/2000/svg",
|
|
766
707
|
width: "20",
|
|
767
708
|
height: "20",
|
|
768
709
|
fill: "currentColor",
|
|
769
710
|
viewBox: "0 0 256 256",
|
|
770
711
|
...props
|
|
771
|
-
}, /* @__PURE__ */
|
|
712
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
772
713
|
width: "256",
|
|
773
714
|
height: "256",
|
|
774
715
|
fill: "none"
|
|
775
|
-
}), /* @__PURE__ */
|
|
716
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
776
717
|
x1: "200",
|
|
777
718
|
y1: "56",
|
|
778
719
|
x2: "56",
|
|
@@ -782,7 +723,7 @@ var X = (props) => {
|
|
|
782
723
|
strokeLinecap: "round",
|
|
783
724
|
strokeLinejoin: "round",
|
|
784
725
|
strokeWidth: "12"
|
|
785
|
-
}), /* @__PURE__ */
|
|
726
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
786
727
|
x1: "200",
|
|
787
728
|
y1: "200",
|
|
788
729
|
x2: "56",
|
|
@@ -795,7 +736,7 @@ var X = (props) => {
|
|
|
795
736
|
}));
|
|
796
737
|
};
|
|
797
738
|
var Minus = (props) => {
|
|
798
|
-
return /* @__PURE__ */
|
|
739
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
799
740
|
width: "196",
|
|
800
741
|
height: "196",
|
|
801
742
|
fill: "currentColor",
|
|
@@ -803,12 +744,12 @@ var Minus = (props) => {
|
|
|
803
744
|
xmlns: "http://www.w3.org/2000/svg",
|
|
804
745
|
viewBox: "0 0 384 512",
|
|
805
746
|
...props
|
|
806
|
-
}, /* @__PURE__ */
|
|
747
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
807
748
|
d: "M376 232H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z"
|
|
808
749
|
}));
|
|
809
750
|
};
|
|
810
751
|
var Plus = (props) => {
|
|
811
|
-
return /* @__PURE__ */
|
|
752
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
812
753
|
width: "196",
|
|
813
754
|
height: "196",
|
|
814
755
|
fill: "currentColor",
|
|
@@ -816,23 +757,23 @@ var Plus = (props) => {
|
|
|
816
757
|
xmlns: "http://www.w3.org/2000/svg",
|
|
817
758
|
viewBox: "0 0 384 512",
|
|
818
759
|
...props
|
|
819
|
-
}, /* @__PURE__ */
|
|
760
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
820
761
|
d: "M376 232H216V72c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h160v160c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V280h160c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z"
|
|
821
762
|
}));
|
|
822
763
|
};
|
|
823
764
|
var ArrowLeft = (props) => {
|
|
824
|
-
return /* @__PURE__ */
|
|
765
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
825
766
|
xmlns: "http://www.w3.org/2000/svg",
|
|
826
767
|
width: "192",
|
|
827
768
|
height: "192",
|
|
828
769
|
fill: "currentColor",
|
|
829
770
|
viewBox: "0 0 256 256",
|
|
830
771
|
...props
|
|
831
|
-
}, /* @__PURE__ */
|
|
772
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
832
773
|
width: "256",
|
|
833
774
|
height: "256",
|
|
834
775
|
fill: "none"
|
|
835
|
-
}), /* @__PURE__ */
|
|
776
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
836
777
|
x1: "216",
|
|
837
778
|
y1: "128",
|
|
838
779
|
x2: "40",
|
|
@@ -842,7 +783,7 @@ var ArrowLeft = (props) => {
|
|
|
842
783
|
strokeLinecap: "round",
|
|
843
784
|
strokeLinejoin: "round",
|
|
844
785
|
strokeWidth: "16"
|
|
845
|
-
}), /* @__PURE__ */
|
|
786
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
846
787
|
points: "112 56 40 128 112 200",
|
|
847
788
|
fill: "none",
|
|
848
789
|
stroke: "currentColor",
|
|
@@ -852,18 +793,18 @@ var ArrowLeft = (props) => {
|
|
|
852
793
|
}));
|
|
853
794
|
};
|
|
854
795
|
var ArrowRight = (props) => {
|
|
855
|
-
return /* @__PURE__ */
|
|
796
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
856
797
|
xmlns: "http://www.w3.org/2000/svg",
|
|
857
798
|
width: "192",
|
|
858
799
|
height: "192",
|
|
859
800
|
fill: "currentColor",
|
|
860
801
|
viewBox: "0 0 256 256",
|
|
861
802
|
...props
|
|
862
|
-
}, /* @__PURE__ */
|
|
803
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
863
804
|
width: "256",
|
|
864
805
|
height: "256",
|
|
865
806
|
fill: "none"
|
|
866
|
-
}), /* @__PURE__ */
|
|
807
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
867
808
|
x1: "40",
|
|
868
809
|
y1: "128",
|
|
869
810
|
x2: "216",
|
|
@@ -873,7 +814,7 @@ var ArrowRight = (props) => {
|
|
|
873
814
|
strokeLinecap: "round",
|
|
874
815
|
strokeLinejoin: "round",
|
|
875
816
|
strokeWidth: "16"
|
|
876
|
-
}), /* @__PURE__ */
|
|
817
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
877
818
|
points: "144 56 216 128 144 200",
|
|
878
819
|
fill: "none",
|
|
879
820
|
stroke: "currentColor",
|
|
@@ -883,36 +824,36 @@ var ArrowRight = (props) => {
|
|
|
883
824
|
}));
|
|
884
825
|
};
|
|
885
826
|
var Image2 = (props) => {
|
|
886
|
-
return /* @__PURE__ */
|
|
827
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
887
828
|
xmlns: "http://www.w3.org/2000/svg",
|
|
888
829
|
"aria-hidden": "true",
|
|
889
830
|
fill: "currentColor",
|
|
890
831
|
viewBox: "0 0 640 512",
|
|
891
832
|
...props
|
|
892
|
-
}, /* @__PURE__ */
|
|
833
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
893
834
|
d: "M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z"
|
|
894
835
|
}));
|
|
895
836
|
};
|
|
896
837
|
var ShoppingCart = (props) => {
|
|
897
|
-
return /* @__PURE__ */
|
|
838
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
898
839
|
xmlns: "http://www.w3.org/2000/svg",
|
|
899
840
|
width: "192",
|
|
900
841
|
height: "192",
|
|
901
842
|
fill: "currentColor",
|
|
902
843
|
viewBox: "0 0 256 256",
|
|
903
844
|
...props
|
|
904
|
-
}, /* @__PURE__ */
|
|
845
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
905
846
|
width: "256",
|
|
906
847
|
height: "256",
|
|
907
848
|
fill: "none"
|
|
908
|
-
}), /* @__PURE__ */
|
|
849
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
909
850
|
d: "M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16",
|
|
910
851
|
fill: "none",
|
|
911
852
|
stroke: "currentColor",
|
|
912
853
|
strokeLinecap: "round",
|
|
913
854
|
strokeLinejoin: "round",
|
|
914
855
|
strokeWidth: "16"
|
|
915
|
-
}), /* @__PURE__ */
|
|
856
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
916
857
|
cx: "80",
|
|
917
858
|
cy: "204",
|
|
918
859
|
r: "20",
|
|
@@ -921,7 +862,7 @@ var ShoppingCart = (props) => {
|
|
|
921
862
|
strokeLinecap: "round",
|
|
922
863
|
strokeLinejoin: "round",
|
|
923
864
|
strokeWidth: "16"
|
|
924
|
-
}), /* @__PURE__ */
|
|
865
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
925
866
|
cx: "184",
|
|
926
867
|
cy: "204",
|
|
927
868
|
r: "20",
|
|
@@ -930,7 +871,7 @@ var ShoppingCart = (props) => {
|
|
|
930
871
|
strokeLinecap: "round",
|
|
931
872
|
strokeLinejoin: "round",
|
|
932
873
|
strokeWidth: "16"
|
|
933
|
-
}), /* @__PURE__ */
|
|
874
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
934
875
|
d: "M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48",
|
|
935
876
|
fill: "none",
|
|
936
877
|
stroke: "currentColor",
|
|
@@ -940,25 +881,25 @@ var ShoppingCart = (props) => {
|
|
|
940
881
|
}));
|
|
941
882
|
};
|
|
942
883
|
var Eye = (props) => {
|
|
943
|
-
return /* @__PURE__ */
|
|
884
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
944
885
|
xmlns: "http://www.w3.org/2000/svg",
|
|
945
886
|
width: "192",
|
|
946
887
|
height: "192",
|
|
947
888
|
fill: "currentColor",
|
|
948
889
|
viewBox: "0 0 256 256",
|
|
949
890
|
...props
|
|
950
|
-
}, /* @__PURE__ */
|
|
891
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
951
892
|
width: "256",
|
|
952
893
|
height: "256",
|
|
953
894
|
fill: "none"
|
|
954
|
-
}), /* @__PURE__ */
|
|
895
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
955
896
|
d: "M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z",
|
|
956
897
|
fill: "none",
|
|
957
898
|
stroke: "currentColor",
|
|
958
899
|
strokeLinecap: "round",
|
|
959
900
|
strokeLinejoin: "round",
|
|
960
901
|
strokeWidth: "12"
|
|
961
|
-
}), /* @__PURE__ */
|
|
902
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
962
903
|
cx: "128",
|
|
963
904
|
cy: "128",
|
|
964
905
|
r: "40",
|
|
@@ -971,28 +912,537 @@ var Eye = (props) => {
|
|
|
971
912
|
};
|
|
972
913
|
|
|
973
914
|
// src/components/Icons/index.tsx
|
|
974
|
-
var
|
|
915
|
+
var import_clsx = __toESM(require("clsx"));
|
|
975
916
|
function Icon({ name, className, ...props }) {
|
|
976
917
|
let WeaverseIcon = Phosphor_exports[name];
|
|
977
|
-
let cls = (0,
|
|
978
|
-
return /* @__PURE__ */
|
|
918
|
+
let cls = (0, import_clsx.default)("wv-icon", className);
|
|
919
|
+
return /* @__PURE__ */ import_react15.default.createElement(WeaverseIcon, {
|
|
979
920
|
className: cls,
|
|
980
921
|
...props
|
|
981
922
|
});
|
|
982
923
|
}
|
|
983
924
|
|
|
925
|
+
// src/components/Slider/Arrows.tsx
|
|
926
|
+
function Arrows(props) {
|
|
927
|
+
let { currentSlide, instanceRef, className } = props;
|
|
928
|
+
let isFirstSlide = currentSlide === 0;
|
|
929
|
+
let isLastSlide = false;
|
|
930
|
+
if (instanceRef.current) {
|
|
931
|
+
isLastSlide = currentSlide === instanceRef?.current?.track?.details?.maxIdx;
|
|
932
|
+
}
|
|
933
|
+
let arrowLeftClass = (0, import_clsx2.default)(
|
|
934
|
+
"wv-slider-arrow arrow--left",
|
|
935
|
+
isFirstSlide && "arrow--disabled"
|
|
936
|
+
);
|
|
937
|
+
let arrowRightClass = (0, import_clsx2.default)(
|
|
938
|
+
"wv-slider-arrow arrow--right",
|
|
939
|
+
isLastSlide && "arrow--disabled"
|
|
940
|
+
);
|
|
941
|
+
return /* @__PURE__ */ import_react17.default.createElement(StyledArrows, {
|
|
942
|
+
className
|
|
943
|
+
}, /* @__PURE__ */ import_react17.default.createElement("button", {
|
|
944
|
+
type: "button",
|
|
945
|
+
className: arrowLeftClass,
|
|
946
|
+
onClick: (e) => {
|
|
947
|
+
e.stopPropagation();
|
|
948
|
+
instanceRef?.current?.prev();
|
|
949
|
+
}
|
|
950
|
+
}, /* @__PURE__ */ import_react17.default.createElement(Icon, {
|
|
951
|
+
name: "ArrowLeft"
|
|
952
|
+
})), /* @__PURE__ */ import_react17.default.createElement("button", {
|
|
953
|
+
type: "button",
|
|
954
|
+
className: arrowRightClass,
|
|
955
|
+
onClick: (e) => {
|
|
956
|
+
e.stopPropagation();
|
|
957
|
+
instanceRef?.current?.next();
|
|
958
|
+
}
|
|
959
|
+
}, /* @__PURE__ */ import_react17.default.createElement(Icon, {
|
|
960
|
+
name: "ArrowRight"
|
|
961
|
+
})));
|
|
962
|
+
}
|
|
963
|
+
var StyledArrows = (0, import_react16.styled)("div", {
|
|
964
|
+
".wv-slider-arrow": {
|
|
965
|
+
position: "absolute",
|
|
966
|
+
top: "50%",
|
|
967
|
+
transform: "translateY(-50%)",
|
|
968
|
+
width: "44px",
|
|
969
|
+
height: "44px",
|
|
970
|
+
padding: "8px",
|
|
971
|
+
color: "#191919",
|
|
972
|
+
backgroundColor: "#f2f2f2",
|
|
973
|
+
textAlign: "center",
|
|
974
|
+
transition: "all 0.2s ease-in-out",
|
|
975
|
+
borderRadius: "4px",
|
|
976
|
+
border: "none",
|
|
977
|
+
cursor: "pointer",
|
|
978
|
+
"&:hover": {
|
|
979
|
+
backgroundColor: "#191919",
|
|
980
|
+
color: "#f2f2f2"
|
|
981
|
+
},
|
|
982
|
+
svg: {
|
|
983
|
+
verticalAlign: "middle",
|
|
984
|
+
width: "22px",
|
|
985
|
+
height: "22px"
|
|
986
|
+
},
|
|
987
|
+
"&.arrow--left": {
|
|
988
|
+
left: "-80px"
|
|
989
|
+
},
|
|
990
|
+
"&.arrow--right": {
|
|
991
|
+
right: "-80px"
|
|
992
|
+
},
|
|
993
|
+
"&.arrow--disabled": {
|
|
994
|
+
opacity: 0.5
|
|
995
|
+
}
|
|
996
|
+
},
|
|
997
|
+
"@media (max-width: 768px)": {
|
|
998
|
+
".wv-slider-arrow": {
|
|
999
|
+
display: "none"
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
});
|
|
1003
|
+
|
|
1004
|
+
// src/components/Slider/Dots.tsx
|
|
1005
|
+
var import_react18 = require("@stitches/react");
|
|
1006
|
+
var import_clsx3 = __toESM(require("clsx"));
|
|
1007
|
+
var import_react19 = __toESM(require("react"));
|
|
1008
|
+
function Dots(props) {
|
|
1009
|
+
let { currentSlide, instanceRef, className } = props;
|
|
1010
|
+
return /* @__PURE__ */ import_react19.default.createElement(StyledDots, {
|
|
1011
|
+
className
|
|
1012
|
+
}, [...Array(instanceRef.current?.track.details.slides.length).keys()].map(
|
|
1013
|
+
(idx) => {
|
|
1014
|
+
let className2 = (0, import_clsx3.default)("dot", currentSlide === idx && "dot--active");
|
|
1015
|
+
return /* @__PURE__ */ import_react19.default.createElement("button", {
|
|
1016
|
+
key: idx,
|
|
1017
|
+
type: "button",
|
|
1018
|
+
onClick: () => instanceRef.current?.moveToIdx(idx),
|
|
1019
|
+
className: className2
|
|
1020
|
+
});
|
|
1021
|
+
}
|
|
1022
|
+
));
|
|
1023
|
+
}
|
|
1024
|
+
var StyledDots = (0, import_react18.styled)("div", {
|
|
1025
|
+
padding: "10px 0",
|
|
1026
|
+
justifyContent: "center",
|
|
1027
|
+
".dot": {
|
|
1028
|
+
width: "9px",
|
|
1029
|
+
height: "9px",
|
|
1030
|
+
padding: "0",
|
|
1031
|
+
margin: "0 5px",
|
|
1032
|
+
border: "none",
|
|
1033
|
+
borderRadius: "50%",
|
|
1034
|
+
background: "#2125291a",
|
|
1035
|
+
transition: "all 0.2s ease-in-out",
|
|
1036
|
+
"&.dot--active": {
|
|
1037
|
+
background: "#212529"
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
});
|
|
1041
|
+
|
|
1042
|
+
// src/components/Slider/ResizePlugin.ts
|
|
1043
|
+
var ResizePlugin = (slider) => {
|
|
1044
|
+
let observer = new ResizeObserver(() => slider.update());
|
|
1045
|
+
slider.on("created", () => {
|
|
1046
|
+
observer.observe(slider.container);
|
|
1047
|
+
});
|
|
1048
|
+
slider.on("destroyed", () => {
|
|
1049
|
+
observer.unobserve(slider.container);
|
|
1050
|
+
});
|
|
1051
|
+
};
|
|
1052
|
+
|
|
1053
|
+
// src/utils/css.ts
|
|
1054
|
+
var import_clsx4 = __toESM(require("clsx"));
|
|
1055
|
+
function formatCSS(css11) {
|
|
1056
|
+
return {
|
|
1057
|
+
"@desktop": css11["@desktop"],
|
|
1058
|
+
"@mobile": css11["@mobile"]
|
|
1059
|
+
};
|
|
1060
|
+
}
|
|
1061
|
+
var permanentClasses = {};
|
|
1062
|
+
function generateItemClassName(instance, stitchesInstance) {
|
|
1063
|
+
let { css: css11, type, className: cls = "" } = instance.data;
|
|
1064
|
+
let className = "";
|
|
1065
|
+
let permanentClass = "";
|
|
1066
|
+
let perCss = instance.Element?.permanentCss;
|
|
1067
|
+
if (perCss) {
|
|
1068
|
+
if (type in permanentClasses) {
|
|
1069
|
+
permanentClass = permanentClasses[type];
|
|
1070
|
+
} else {
|
|
1071
|
+
let { className: perCls } = stitchesInstance.css(perCss)();
|
|
1072
|
+
Object.assign(permanentClasses, { [type]: perCls });
|
|
1073
|
+
permanentClass = perCls;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
className = permanentClass;
|
|
1077
|
+
if (css11) {
|
|
1078
|
+
let formattedCss = formatCSS(css11);
|
|
1079
|
+
let newStitchesClass = stitchesInstance.css(formattedCss)().className || "";
|
|
1080
|
+
let { stitchesClass } = instance;
|
|
1081
|
+
let otherClass = (instance.ref.current?.className || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
|
|
1082
|
+
className = (0, import_clsx4.default)(permanentClass, cls, newStitchesClass, otherClass);
|
|
1083
|
+
instance.stitchesClass = newStitchesClass;
|
|
1084
|
+
}
|
|
1085
|
+
return className;
|
|
1086
|
+
}
|
|
1087
|
+
function loadCSS(attrs) {
|
|
1088
|
+
return new Promise((resolve, reject) => {
|
|
1089
|
+
let found = document.querySelector(`link[href="${attrs.href}"]`);
|
|
1090
|
+
if (found) {
|
|
1091
|
+
return resolve(true);
|
|
1092
|
+
}
|
|
1093
|
+
let link = document.createElement("link");
|
|
1094
|
+
Object.assign(link, attrs);
|
|
1095
|
+
link.addEventListener("load", () => resolve(true));
|
|
1096
|
+
link.onerror = reject;
|
|
1097
|
+
document.head.appendChild(link);
|
|
1098
|
+
});
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
// src/elements/Slideshow/index.tsx
|
|
1102
|
+
var Slideshow = (0, import_react21.forwardRef)((props, ref) => {
|
|
1103
|
+
let {
|
|
1104
|
+
animation,
|
|
1105
|
+
slidesPerView,
|
|
1106
|
+
spacing,
|
|
1107
|
+
showArrows,
|
|
1108
|
+
showDots,
|
|
1109
|
+
dotsPosition,
|
|
1110
|
+
autoRotate,
|
|
1111
|
+
changeSlidesEvery,
|
|
1112
|
+
children,
|
|
1113
|
+
...rest
|
|
1114
|
+
} = props;
|
|
1115
|
+
let [cssLoaded, setCssLoaded] = (0, import_react21.useState)(false);
|
|
1116
|
+
let [created, setCreated] = (0, import_react21.useState)(false);
|
|
1117
|
+
let [ready, setReady] = (0, import_react21.useState)(false);
|
|
1118
|
+
let [currentSlide, setCurrentSlide] = (0, import_react21.useState)(0);
|
|
1119
|
+
let [sliderRef, instanceRef] = (0, import_react20.useKeenSlider)(
|
|
1120
|
+
{
|
|
1121
|
+
slides: {
|
|
1122
|
+
perView: slidesPerView
|
|
1123
|
+
},
|
|
1124
|
+
created: () => {
|
|
1125
|
+
setCreated(true);
|
|
1126
|
+
},
|
|
1127
|
+
slideChanged: (slider) => {
|
|
1128
|
+
setCurrentSlide(slider.track.details.rel);
|
|
1129
|
+
}
|
|
1130
|
+
},
|
|
1131
|
+
[ResizePlugin]
|
|
1132
|
+
);
|
|
1133
|
+
(0, import_react21.useEffect)(() => {
|
|
1134
|
+
loadCSS({
|
|
1135
|
+
rel: "stylesheet",
|
|
1136
|
+
href: "https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css"
|
|
1137
|
+
}).then(() => setCssLoaded(true));
|
|
1138
|
+
}, []);
|
|
1139
|
+
(0, import_react21.useEffect)(() => {
|
|
1140
|
+
if (created && cssLoaded) {
|
|
1141
|
+
setReady(true);
|
|
1142
|
+
}
|
|
1143
|
+
}, [created, cssLoaded]);
|
|
1144
|
+
let style = {
|
|
1145
|
+
"--slider-opacity": ready ? 1 : 0
|
|
1146
|
+
};
|
|
1147
|
+
return /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1148
|
+
ref,
|
|
1149
|
+
style,
|
|
1150
|
+
...rest
|
|
1151
|
+
}, /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1152
|
+
ref: sliderRef,
|
|
1153
|
+
className: "keen-slider"
|
|
1154
|
+
}, children), showArrows && created && instanceRef?.current && /* @__PURE__ */ import_react21.default.createElement(Arrows, {
|
|
1155
|
+
instanceRef,
|
|
1156
|
+
currentSlide,
|
|
1157
|
+
className: "wv-slideshow--arrows"
|
|
1158
|
+
}), showDots && created && instanceRef?.current && /* @__PURE__ */ import_react21.default.createElement(Dots, {
|
|
1159
|
+
instanceRef,
|
|
1160
|
+
currentSlide,
|
|
1161
|
+
className: "wv-slideshow--dots"
|
|
1162
|
+
}));
|
|
1163
|
+
});
|
|
1164
|
+
var css9 = {
|
|
1165
|
+
"@desktop": {
|
|
1166
|
+
opacity: "var(--slider-opacity, 0)",
|
|
1167
|
+
padding: "32px 0",
|
|
1168
|
+
".keen-slider": {
|
|
1169
|
+
height: "100%"
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
};
|
|
1173
|
+
Slideshow.defaultProps = {
|
|
1174
|
+
animation: "fade",
|
|
1175
|
+
slidesPerView: 1,
|
|
1176
|
+
spacing: 0,
|
|
1177
|
+
showArrows: true,
|
|
1178
|
+
showDots: true,
|
|
1179
|
+
dotsPosition: "bottom",
|
|
1180
|
+
autoRotate: false,
|
|
1181
|
+
changeSlidesEvery: 5
|
|
1182
|
+
};
|
|
1183
|
+
var Slideshow_default = Slideshow;
|
|
1184
|
+
|
|
1185
|
+
// src/elements/Slideshow/Slide.tsx
|
|
1186
|
+
var import_react26 = __toESM(require("react"));
|
|
1187
|
+
|
|
1188
|
+
// src/components/Background.tsx
|
|
1189
|
+
var import_react22 = require("@stitches/react");
|
|
1190
|
+
var import_react23 = __toESM(require("react"));
|
|
1191
|
+
function Background2(props) {
|
|
1192
|
+
let {
|
|
1193
|
+
backgroundColor,
|
|
1194
|
+
backgroundImage,
|
|
1195
|
+
backgroundFit,
|
|
1196
|
+
backgroundPosition,
|
|
1197
|
+
className
|
|
1198
|
+
} = props;
|
|
1199
|
+
let style = {
|
|
1200
|
+
["--bg-color"]: backgroundColor,
|
|
1201
|
+
["--bg-fit"]: backgroundFit,
|
|
1202
|
+
["--bg-position"]: backgroundPosition
|
|
1203
|
+
};
|
|
1204
|
+
if (backgroundImage || backgroundColor) {
|
|
1205
|
+
return /* @__PURE__ */ import_react23.default.createElement(StyledBackground, {
|
|
1206
|
+
style,
|
|
1207
|
+
className
|
|
1208
|
+
}, backgroundImage && /* @__PURE__ */ import_react23.default.createElement("img", {
|
|
1209
|
+
width: "100%",
|
|
1210
|
+
height: "100%",
|
|
1211
|
+
"data-blink-src": backgroundImage,
|
|
1212
|
+
alt: "Background"
|
|
1213
|
+
}));
|
|
1214
|
+
}
|
|
1215
|
+
return null;
|
|
1216
|
+
}
|
|
1217
|
+
var StyledBackground = (0, import_react22.styled)("div", {
|
|
1218
|
+
display: "block !important",
|
|
1219
|
+
position: "absolute",
|
|
1220
|
+
inset: 0,
|
|
1221
|
+
backgroundColor: "var(--bg-color)",
|
|
1222
|
+
img: {
|
|
1223
|
+
objectFit: "var(--bg-fit, cover)",
|
|
1224
|
+
objectPosition: "var(--bg-position, 50% 50%)"
|
|
1225
|
+
}
|
|
1226
|
+
});
|
|
1227
|
+
|
|
1228
|
+
// src/components/Overlay.tsx
|
|
1229
|
+
var import_react24 = require("@stitches/react");
|
|
1230
|
+
var import_react25 = __toESM(require("react"));
|
|
1231
|
+
function Overlay2(props) {
|
|
1232
|
+
let { enableOverlay: enabled, overlayOpacity: opacity, className } = props;
|
|
1233
|
+
if (enabled) {
|
|
1234
|
+
return /* @__PURE__ */ import_react25.default.createElement(StyledOverlay, {
|
|
1235
|
+
className,
|
|
1236
|
+
css: { ["--overlay-opacity"]: opacity / 100 }
|
|
1237
|
+
});
|
|
1238
|
+
}
|
|
1239
|
+
return null;
|
|
1240
|
+
}
|
|
1241
|
+
var StyledOverlay = (0, import_react24.styled)("div", {
|
|
1242
|
+
display: "block !important",
|
|
1243
|
+
position: "absolute",
|
|
1244
|
+
inset: 0,
|
|
1245
|
+
backgroundColor: "rgba(0, 0, 0, var(--overlay-opacity, .3))"
|
|
1246
|
+
});
|
|
1247
|
+
|
|
1248
|
+
// src/elements/Slideshow/position.ts
|
|
1249
|
+
var slidePositionMap = {
|
|
1250
|
+
"top left": {
|
|
1251
|
+
justifyContent: "flex-start",
|
|
1252
|
+
alignItems: "flex-start"
|
|
1253
|
+
},
|
|
1254
|
+
"top center": {
|
|
1255
|
+
justifyContent: "flex-start",
|
|
1256
|
+
alignItems: "center"
|
|
1257
|
+
},
|
|
1258
|
+
"top right": {
|
|
1259
|
+
justifyContent: "flex-start",
|
|
1260
|
+
alignItems: "flex-end"
|
|
1261
|
+
},
|
|
1262
|
+
"center left": {
|
|
1263
|
+
justifyContent: "center",
|
|
1264
|
+
alignItems: "flex-start"
|
|
1265
|
+
},
|
|
1266
|
+
"center center": {
|
|
1267
|
+
justifyContent: "center",
|
|
1268
|
+
alignItems: "center"
|
|
1269
|
+
},
|
|
1270
|
+
"center right": {
|
|
1271
|
+
justifyContent: "center",
|
|
1272
|
+
alignItems: "flex-end"
|
|
1273
|
+
},
|
|
1274
|
+
"bottom left": {
|
|
1275
|
+
justifyContent: "flex-end",
|
|
1276
|
+
alignItems: "flex-start"
|
|
1277
|
+
},
|
|
1278
|
+
"bottom center": {
|
|
1279
|
+
justifyContent: "flex-end",
|
|
1280
|
+
alignItems: "center"
|
|
1281
|
+
},
|
|
1282
|
+
"bottom right": {
|
|
1283
|
+
justifyContent: "flex-end",
|
|
1284
|
+
alignItems: "flex-end"
|
|
1285
|
+
}
|
|
1286
|
+
};
|
|
1287
|
+
|
|
1288
|
+
// src/elements/Slideshow/Slide.tsx
|
|
1289
|
+
var Slide = (0, import_react26.forwardRef)((props, ref) => {
|
|
1290
|
+
let {
|
|
1291
|
+
contentPosition,
|
|
1292
|
+
backgroundColor,
|
|
1293
|
+
backgroundImage,
|
|
1294
|
+
backgroundFit,
|
|
1295
|
+
backgroundPosition,
|
|
1296
|
+
enableOverlay,
|
|
1297
|
+
overlayOpacity,
|
|
1298
|
+
children,
|
|
1299
|
+
...rest
|
|
1300
|
+
} = props;
|
|
1301
|
+
let style = slidePositionMap[contentPosition];
|
|
1302
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1303
|
+
className: "keen-slider__slide"
|
|
1304
|
+
}, /* @__PURE__ */ import_react26.default.createElement(Background2, {
|
|
1305
|
+
backgroundColor,
|
|
1306
|
+
backgroundImage,
|
|
1307
|
+
backgroundFit,
|
|
1308
|
+
backgroundPosition,
|
|
1309
|
+
className: "slide-background"
|
|
1310
|
+
}), /* @__PURE__ */ import_react26.default.createElement(Overlay2, {
|
|
1311
|
+
enableOverlay,
|
|
1312
|
+
overlayOpacity,
|
|
1313
|
+
className: "slide-overlay"
|
|
1314
|
+
}), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1315
|
+
ref,
|
|
1316
|
+
style,
|
|
1317
|
+
...rest
|
|
1318
|
+
}, children?.length ? children : "Add element here"));
|
|
1319
|
+
});
|
|
1320
|
+
var css10 = {
|
|
1321
|
+
"@desktop": {
|
|
1322
|
+
position: "relative",
|
|
1323
|
+
height: "100%",
|
|
1324
|
+
width: "1224px",
|
|
1325
|
+
margin: "0 auto",
|
|
1326
|
+
display: "flex",
|
|
1327
|
+
flexDirection: "column",
|
|
1328
|
+
padding: "100px 20px"
|
|
1329
|
+
}
|
|
1330
|
+
};
|
|
1331
|
+
Slide.defaultProps = {
|
|
1332
|
+
contentPosition: "center center",
|
|
1333
|
+
backgroundFit: "cover",
|
|
1334
|
+
backgroundPosition: "center center",
|
|
1335
|
+
enableOverlay: false,
|
|
1336
|
+
overlayOpacity: 30
|
|
1337
|
+
};
|
|
1338
|
+
var Slide_default = Slide;
|
|
1339
|
+
|
|
1340
|
+
// src/elements/index.ts
|
|
1341
|
+
var Elements = {
|
|
1342
|
+
Countdown: {
|
|
1343
|
+
Component: Countdown_default,
|
|
1344
|
+
type: "countdown",
|
|
1345
|
+
defaultCss: css3
|
|
1346
|
+
},
|
|
1347
|
+
Button: {
|
|
1348
|
+
Component: Button_default,
|
|
1349
|
+
type: "button",
|
|
1350
|
+
defaultCss: css
|
|
1351
|
+
},
|
|
1352
|
+
Container: {
|
|
1353
|
+
Component: Container_default,
|
|
1354
|
+
type: "container",
|
|
1355
|
+
defaultCss: css2
|
|
1356
|
+
},
|
|
1357
|
+
Image: {
|
|
1358
|
+
Component: Image_default,
|
|
1359
|
+
type: "image",
|
|
1360
|
+
defaultCss: css4
|
|
1361
|
+
},
|
|
1362
|
+
Layout: {
|
|
1363
|
+
Component: Layout_default,
|
|
1364
|
+
type: "layout",
|
|
1365
|
+
defaultCss: css5
|
|
1366
|
+
},
|
|
1367
|
+
Map: {
|
|
1368
|
+
Component: Map_default,
|
|
1369
|
+
type: "map",
|
|
1370
|
+
defaultCss: css6
|
|
1371
|
+
},
|
|
1372
|
+
Text: {
|
|
1373
|
+
Component: Text_default,
|
|
1374
|
+
type: "text",
|
|
1375
|
+
defaultCss: css7
|
|
1376
|
+
},
|
|
1377
|
+
Video: {
|
|
1378
|
+
Component: Video_default,
|
|
1379
|
+
type: "video",
|
|
1380
|
+
defaultCss: css8
|
|
1381
|
+
},
|
|
1382
|
+
Slideshow: {
|
|
1383
|
+
Component: Slideshow_default,
|
|
1384
|
+
type: "slideshow",
|
|
1385
|
+
defaultCss: css9
|
|
1386
|
+
},
|
|
1387
|
+
Slide: {
|
|
1388
|
+
Component: Slide_default,
|
|
1389
|
+
type: "slide",
|
|
1390
|
+
defaultCss: css10
|
|
1391
|
+
}
|
|
1392
|
+
};
|
|
1393
|
+
|
|
1394
|
+
// src/context.ts
|
|
1395
|
+
var createRootContext = (configs) => {
|
|
1396
|
+
let rootContext = new import_core.Weaverse(configs);
|
|
1397
|
+
Object.keys(Elements).forEach((key) => {
|
|
1398
|
+
rootContext.registerElement(Elements[key]);
|
|
1399
|
+
});
|
|
1400
|
+
return rootContext;
|
|
1401
|
+
};
|
|
1402
|
+
var WeaverseContext = (0, import_react27.createContext)({});
|
|
1403
|
+
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1404
|
+
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1405
|
+
|
|
1406
|
+
// src/components/Placeholder.tsx
|
|
1407
|
+
var import_react28 = __toESM(require("react"));
|
|
1408
|
+
var Placeholder = (0, import_react28.forwardRef)(
|
|
1409
|
+
(props, ref) => {
|
|
1410
|
+
let { element, children, ...rest } = props;
|
|
1411
|
+
return /* @__PURE__ */ import_react28.default.createElement("div", {
|
|
1412
|
+
"data-wv-placeholder": true,
|
|
1413
|
+
ref,
|
|
1414
|
+
...rest
|
|
1415
|
+
}, /* @__PURE__ */ import_react28.default.createElement("div", {
|
|
1416
|
+
style: { fontWeight: 600, marginBottom: "10px" }
|
|
1417
|
+
}, element), /* @__PURE__ */ import_react28.default.createElement("div", null, children));
|
|
1418
|
+
}
|
|
1419
|
+
);
|
|
1420
|
+
var Placeholder_default = Placeholder;
|
|
1421
|
+
|
|
1422
|
+
// src/components/Modal/index.tsx
|
|
1423
|
+
var Modal_exports = {};
|
|
1424
|
+
__export(Modal_exports, {
|
|
1425
|
+
Modal: () => Modal,
|
|
1426
|
+
ModalClose: () => ModalClose,
|
|
1427
|
+
ModalContent: () => ModalContent,
|
|
1428
|
+
ModalHeader: () => ModalHeader,
|
|
1429
|
+
ModalTrigger: () => ModalTrigger
|
|
1430
|
+
});
|
|
1431
|
+
var import_react_dialog2 = require("@radix-ui/react-dialog");
|
|
1432
|
+
var import_react31 = __toESM(require("react"));
|
|
1433
|
+
|
|
984
1434
|
// src/components/Modal/styled.ts
|
|
985
1435
|
var import_react_dialog = require("@radix-ui/react-dialog");
|
|
986
|
-
var
|
|
987
|
-
var overlayShow = (0,
|
|
1436
|
+
var import_react29 = require("@stitches/react");
|
|
1437
|
+
var overlayShow = (0, import_react29.keyframes)({
|
|
988
1438
|
"0%": { opacity: 0 },
|
|
989
1439
|
"100%": { opacity: 1 }
|
|
990
1440
|
});
|
|
991
|
-
var contentShow = (0,
|
|
1441
|
+
var contentShow = (0, import_react29.keyframes)({
|
|
992
1442
|
"0%": { opacity: 0, transform: "translate(-50%, -48%) scale(.96)" },
|
|
993
1443
|
"100%": { opacity: 1, transform: "translate(-50%, -50%) scale(1)" }
|
|
994
1444
|
});
|
|
995
|
-
var
|
|
1445
|
+
var StyledOverlay2 = (0, import_react29.styled)(import_react_dialog.Overlay, {
|
|
996
1446
|
display: "block !important",
|
|
997
1447
|
backgroundColor: "rgba(0, 0, 0, .3)",
|
|
998
1448
|
position: "fixed",
|
|
@@ -1000,7 +1450,7 @@ var StyledOverlay = (0, import_react17.styled)(import_react_dialog.Overlay, {
|
|
|
1000
1450
|
inset: 0,
|
|
1001
1451
|
animation: `${overlayShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
|
|
1002
1452
|
});
|
|
1003
|
-
var StyledTitle = (0,
|
|
1453
|
+
var StyledTitle = (0, import_react29.styled)(import_react_dialog.Title, {
|
|
1004
1454
|
margin: "0 0 24px",
|
|
1005
1455
|
fontWeight: 500,
|
|
1006
1456
|
fontSize: 24,
|
|
@@ -1009,7 +1459,7 @@ var StyledTitle = (0, import_react17.styled)(import_react_dialog.Title, {
|
|
|
1009
1459
|
fontSize: 20
|
|
1010
1460
|
}
|
|
1011
1461
|
});
|
|
1012
|
-
var StyledContent = (0,
|
|
1462
|
+
var StyledContent = (0, import_react29.styled)(import_react_dialog.Content, {
|
|
1013
1463
|
backgroundColor: "white",
|
|
1014
1464
|
borderRadius: 6,
|
|
1015
1465
|
boxShadow: "hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px",
|
|
@@ -1040,7 +1490,7 @@ var StyledContent = (0, import_react17.styled)(import_react_dialog.Content, {
|
|
|
1040
1490
|
}
|
|
1041
1491
|
}
|
|
1042
1492
|
});
|
|
1043
|
-
var StyledCloseIcon = (0,
|
|
1493
|
+
var StyledCloseIcon = (0, import_react29.styled)("button", {
|
|
1044
1494
|
all: "unset",
|
|
1045
1495
|
cursor: "pointer",
|
|
1046
1496
|
fontFamily: "inherit",
|
|
@@ -1065,10 +1515,10 @@ var StyledCloseIcon = (0, import_react17.styled)("button", {
|
|
|
1065
1515
|
});
|
|
1066
1516
|
|
|
1067
1517
|
// src/components/Modal/useOpenChangeEffect.ts
|
|
1068
|
-
var
|
|
1518
|
+
var import_react30 = require("react");
|
|
1069
1519
|
function useOpenChangeEffect(props) {
|
|
1070
1520
|
let { open, defaultOpen, onOpenChange } = props;
|
|
1071
|
-
let rootCtx = (0,
|
|
1521
|
+
let rootCtx = (0, import_react30.useContext)(WeaverseContext);
|
|
1072
1522
|
let toggleRootzIndex = (open2) => {
|
|
1073
1523
|
let { contentRootElement } = rootCtx;
|
|
1074
1524
|
if (contentRootElement) {
|
|
@@ -1079,7 +1529,7 @@ function useOpenChangeEffect(props) {
|
|
|
1079
1529
|
}
|
|
1080
1530
|
}
|
|
1081
1531
|
};
|
|
1082
|
-
(0,
|
|
1532
|
+
(0, import_react30.useEffect)(() => {
|
|
1083
1533
|
let isOpen = open || defaultOpen;
|
|
1084
1534
|
toggleRootzIndex(isOpen);
|
|
1085
1535
|
}, [open, defaultOpen]);
|
|
@@ -1094,7 +1544,7 @@ function useOpenChangeEffect(props) {
|
|
|
1094
1544
|
var Modal = (props) => {
|
|
1095
1545
|
let { children, open, defaultOpen, onOpenChange, ...rest } = props;
|
|
1096
1546
|
let handleOpenChange = useOpenChangeEffect(props);
|
|
1097
|
-
return /* @__PURE__ */
|
|
1547
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Root, {
|
|
1098
1548
|
open,
|
|
1099
1549
|
defaultOpen,
|
|
1100
1550
|
onOpenChange: handleOpenChange,
|
|
@@ -1102,30 +1552,30 @@ var Modal = (props) => {
|
|
|
1102
1552
|
}, children);
|
|
1103
1553
|
};
|
|
1104
1554
|
var ModalTrigger = import_react_dialog2.Trigger;
|
|
1105
|
-
var ModalHeader = (0,
|
|
1555
|
+
var ModalHeader = (0, import_react31.forwardRef)(
|
|
1106
1556
|
(props, ref) => {
|
|
1107
1557
|
let { children, ...rest } = props;
|
|
1108
|
-
return /* @__PURE__ */
|
|
1558
|
+
return /* @__PURE__ */ import_react31.default.createElement(StyledTitle, {
|
|
1109
1559
|
ref,
|
|
1110
1560
|
...rest,
|
|
1111
1561
|
"data-wv-modal-header": true
|
|
1112
1562
|
}, children);
|
|
1113
1563
|
}
|
|
1114
1564
|
);
|
|
1115
|
-
var ModalContent = (0,
|
|
1565
|
+
var ModalContent = (0, import_react31.forwardRef)(
|
|
1116
1566
|
(props, ref) => {
|
|
1117
1567
|
let { children, size, portal, ...rest } = props;
|
|
1118
|
-
let modalContent = /* @__PURE__ */
|
|
1568
|
+
let modalContent = /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(StyledOverlay2, null), /* @__PURE__ */ import_react31.default.createElement(StyledContent, {
|
|
1119
1569
|
...rest,
|
|
1120
1570
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
1121
1571
|
"data-wv-modal": true,
|
|
1122
1572
|
"data-size": size,
|
|
1123
1573
|
ref
|
|
1124
|
-
}, /* @__PURE__ */
|
|
1574
|
+
}, /* @__PURE__ */ import_react31.default.createElement(ModalClose, null), /* @__PURE__ */ import_react31.default.createElement("div", {
|
|
1125
1575
|
className: "wv-modal-content"
|
|
1126
1576
|
}, children)));
|
|
1127
1577
|
if (portal) {
|
|
1128
|
-
return /* @__PURE__ */
|
|
1578
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Portal, null, modalContent);
|
|
1129
1579
|
}
|
|
1130
1580
|
return modalContent;
|
|
1131
1581
|
}
|
|
@@ -1134,13 +1584,13 @@ ModalContent.defaultProps = {
|
|
|
1134
1584
|
size: "auto",
|
|
1135
1585
|
portal: false
|
|
1136
1586
|
};
|
|
1137
|
-
var ModalClose = (0,
|
|
1587
|
+
var ModalClose = (0, import_react31.forwardRef)(
|
|
1138
1588
|
(props, ref) => {
|
|
1139
1589
|
let { asChild, children, ...rest } = props;
|
|
1140
|
-
let closeIcon = /* @__PURE__ */
|
|
1590
|
+
let closeIcon = /* @__PURE__ */ import_react31.default.createElement(StyledCloseIcon, null, /* @__PURE__ */ import_react31.default.createElement(Icon, {
|
|
1141
1591
|
name: "X"
|
|
1142
1592
|
}));
|
|
1143
|
-
return /* @__PURE__ */
|
|
1593
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Close, {
|
|
1144
1594
|
asChild: true,
|
|
1145
1595
|
...rest,
|
|
1146
1596
|
ref
|
|
@@ -1149,131 +1599,32 @@ var ModalClose = (0, import_react19.forwardRef)(
|
|
|
1149
1599
|
);
|
|
1150
1600
|
|
|
1151
1601
|
// src/components/Spinner.tsx
|
|
1152
|
-
var
|
|
1602
|
+
var import_react32 = __toESM(require("react"));
|
|
1153
1603
|
function Spinner() {
|
|
1154
|
-
return /* @__PURE__ */
|
|
1604
|
+
return /* @__PURE__ */ import_react32.default.createElement("span", {
|
|
1155
1605
|
className: "wv-spinner-wrapper"
|
|
1156
|
-
}, /* @__PURE__ */
|
|
1606
|
+
}, /* @__PURE__ */ import_react32.default.createElement(Icon, {
|
|
1157
1607
|
name: "CircleNotch",
|
|
1158
1608
|
className: "wv-spinner"
|
|
1159
1609
|
}));
|
|
1160
1610
|
}
|
|
1161
1611
|
|
|
1162
1612
|
// src/components/Tooltip.tsx
|
|
1163
|
-
var
|
|
1613
|
+
var import_react33 = __toESM(require("react"));
|
|
1164
1614
|
function Tooltip({ children }) {
|
|
1165
|
-
return /* @__PURE__ */
|
|
1615
|
+
return /* @__PURE__ */ import_react33.default.createElement("span", {
|
|
1166
1616
|
className: "wv-tooltip"
|
|
1167
1617
|
}, children);
|
|
1168
1618
|
}
|
|
1169
1619
|
|
|
1170
1620
|
// src/components/Slider/index.tsx
|
|
1171
|
-
var
|
|
1172
|
-
var
|
|
1173
|
-
var
|
|
1174
|
-
|
|
1175
|
-
// src/components/Slider/Arrows.tsx
|
|
1176
|
-
var import_clsx3 = __toESM(require("clsx"));
|
|
1177
|
-
var import_react22 = __toESM(require("react"));
|
|
1178
|
-
function Arrows(props) {
|
|
1179
|
-
let { currentSlide, instanceRef, className } = props;
|
|
1180
|
-
let { stitchesInstance } = (0, import_react22.useContext)(WeaverseContext);
|
|
1181
|
-
let { className: cssClass } = stitchesInstance.css(css9)();
|
|
1182
|
-
let isFirstSlide = currentSlide === 0;
|
|
1183
|
-
let isLastSlide = false;
|
|
1184
|
-
if (instanceRef.current) {
|
|
1185
|
-
isLastSlide = currentSlide === instanceRef?.current?.track?.details?.maxIdx;
|
|
1186
|
-
}
|
|
1187
|
-
let _className = (0, import_clsx3.default)(className, cssClass);
|
|
1188
|
-
let arrowLeftClass = (0, import_clsx3.default)(
|
|
1189
|
-
"wv-slider-arrow arrow--left",
|
|
1190
|
-
isFirstSlide && "arrow--disabled"
|
|
1191
|
-
);
|
|
1192
|
-
let arrowRightClass = (0, import_clsx3.default)(
|
|
1193
|
-
"wv-slider-arrow arrow--right",
|
|
1194
|
-
isLastSlide && "arrow--disabled"
|
|
1195
|
-
);
|
|
1196
|
-
return /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
1197
|
-
className: _className
|
|
1198
|
-
}, /* @__PURE__ */ import_react22.default.createElement("button", {
|
|
1199
|
-
type: "button",
|
|
1200
|
-
className: arrowLeftClass,
|
|
1201
|
-
onClick: (e) => {
|
|
1202
|
-
e.stopPropagation();
|
|
1203
|
-
instanceRef?.current?.prev();
|
|
1204
|
-
}
|
|
1205
|
-
}, /* @__PURE__ */ import_react22.default.createElement(Icon, {
|
|
1206
|
-
name: "ArrowLeft"
|
|
1207
|
-
})), /* @__PURE__ */ import_react22.default.createElement("button", {
|
|
1208
|
-
type: "button",
|
|
1209
|
-
className: arrowRightClass,
|
|
1210
|
-
onClick: (e) => {
|
|
1211
|
-
e.stopPropagation();
|
|
1212
|
-
instanceRef?.current?.next();
|
|
1213
|
-
}
|
|
1214
|
-
}, /* @__PURE__ */ import_react22.default.createElement(Icon, {
|
|
1215
|
-
name: "ArrowRight"
|
|
1216
|
-
})));
|
|
1217
|
-
}
|
|
1218
|
-
var css9 = {
|
|
1219
|
-
"@desktop": {
|
|
1220
|
-
".wv-slider-arrow": {
|
|
1221
|
-
position: "absolute",
|
|
1222
|
-
top: "50%",
|
|
1223
|
-
transform: "translateY(-50%)",
|
|
1224
|
-
width: "44px",
|
|
1225
|
-
height: "44px",
|
|
1226
|
-
padding: "8px",
|
|
1227
|
-
color: "#191919",
|
|
1228
|
-
backgroundColor: "#f2f2f2",
|
|
1229
|
-
textAlign: "center",
|
|
1230
|
-
transition: "all 0.2s ease-in-out",
|
|
1231
|
-
borderRadius: "4px",
|
|
1232
|
-
border: "none",
|
|
1233
|
-
cursor: "pointer",
|
|
1234
|
-
"&:hover": {
|
|
1235
|
-
backgroundColor: "#191919",
|
|
1236
|
-
color: "#f2f2f2"
|
|
1237
|
-
},
|
|
1238
|
-
svg: {
|
|
1239
|
-
verticalAlign: "middle",
|
|
1240
|
-
width: "22px",
|
|
1241
|
-
height: "22px"
|
|
1242
|
-
},
|
|
1243
|
-
"&.arrow--left": {
|
|
1244
|
-
left: "-80px"
|
|
1245
|
-
},
|
|
1246
|
-
"&.arrow--right": {
|
|
1247
|
-
right: "-80px"
|
|
1248
|
-
},
|
|
1249
|
-
"&.arrow--disabled": {
|
|
1250
|
-
opacity: 0.5
|
|
1251
|
-
}
|
|
1252
|
-
}
|
|
1253
|
-
},
|
|
1254
|
-
"@mobile": {
|
|
1255
|
-
".wv-slider-arrow": {
|
|
1256
|
-
display: "none"
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
};
|
|
1260
|
-
|
|
1261
|
-
// src/components/Slider/ResizePlugin.ts
|
|
1262
|
-
var ResizePlugin = (slider) => {
|
|
1263
|
-
let observer = new ResizeObserver(() => slider.update());
|
|
1264
|
-
slider.on("created", () => {
|
|
1265
|
-
observer.observe(slider.container);
|
|
1266
|
-
});
|
|
1267
|
-
slider.on("destroyed", () => {
|
|
1268
|
-
observer.unobserve(slider.container);
|
|
1269
|
-
});
|
|
1270
|
-
};
|
|
1271
|
-
|
|
1272
|
-
// src/components/Slider/index.tsx
|
|
1621
|
+
var import_clsx5 = __toESM(require("clsx"));
|
|
1622
|
+
var import_react34 = require("keen-slider/react");
|
|
1623
|
+
var import_react35 = __toESM(require("react"));
|
|
1273
1624
|
function Slider({ children, className, gap }) {
|
|
1274
|
-
let [currentSlide, setCurrentSlide] = (0,
|
|
1275
|
-
let [created, setCreated] = (0,
|
|
1276
|
-
let [ref, instanceRef] = (0,
|
|
1625
|
+
let [currentSlide, setCurrentSlide] = (0, import_react35.useState)(0);
|
|
1626
|
+
let [created, setCreated] = (0, import_react35.useState)(false);
|
|
1627
|
+
let [ref, instanceRef] = (0, import_react34.useKeenSlider)(
|
|
1277
1628
|
{
|
|
1278
1629
|
slides: { perView: 4, spacing: gap },
|
|
1279
1630
|
breakpoints: {
|
|
@@ -1296,15 +1647,15 @@ function Slider({ children, className, gap }) {
|
|
|
1296
1647
|
},
|
|
1297
1648
|
[ResizePlugin]
|
|
1298
1649
|
);
|
|
1299
|
-
let _className = (0,
|
|
1300
|
-
let arrowsClass = (0,
|
|
1301
|
-
return /* @__PURE__ */
|
|
1650
|
+
let _className = (0, import_clsx5.default)("keen-slider", className);
|
|
1651
|
+
let arrowsClass = (0, import_clsx5.default)(className && `${className}-arrows`);
|
|
1652
|
+
return /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement("div", {
|
|
1302
1653
|
ref,
|
|
1303
1654
|
className: _className
|
|
1304
|
-
}, /* @__PURE__ */
|
|
1655
|
+
}, /* @__PURE__ */ import_react35.default.createElement("link", {
|
|
1305
1656
|
rel: "stylesheet",
|
|
1306
1657
|
href: "https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css"
|
|
1307
|
-
}), children), created && instanceRef?.current && /* @__PURE__ */
|
|
1658
|
+
}), children), created && instanceRef?.current && /* @__PURE__ */ import_react35.default.createElement(Arrows, {
|
|
1308
1659
|
currentSlide,
|
|
1309
1660
|
instanceRef,
|
|
1310
1661
|
className: arrowsClass
|
|
@@ -1313,157 +1664,24 @@ function Slider({ children, className, gap }) {
|
|
|
1313
1664
|
|
|
1314
1665
|
// src/components/index.ts
|
|
1315
1666
|
var Components = {
|
|
1667
|
+
Background: Background2,
|
|
1668
|
+
Icon,
|
|
1669
|
+
ModalComponents: Modal_exports,
|
|
1670
|
+
Overlay: Overlay2,
|
|
1316
1671
|
Placeholder: Placeholder_default,
|
|
1317
1672
|
Spinner,
|
|
1318
|
-
ModalComponents: Modal_exports,
|
|
1319
|
-
Icon,
|
|
1320
1673
|
Slider,
|
|
1321
1674
|
Tooltip
|
|
1322
1675
|
};
|
|
1323
1676
|
|
|
1324
|
-
// src/elements/Instagram.tsx
|
|
1325
|
-
var Instagram = (0, import_react25.forwardRef)(
|
|
1326
|
-
(props, ref) => {
|
|
1327
|
-
let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props;
|
|
1328
|
-
let [media, setMedia] = (0, import_react25.useState)([]);
|
|
1329
|
-
let [error, setError] = (0, import_react25.useState)(null);
|
|
1330
|
-
(0, import_react25.useEffect)(() => {
|
|
1331
|
-
if (token) {
|
|
1332
|
-
let params = new URLSearchParams({
|
|
1333
|
-
access_token: token,
|
|
1334
|
-
fields: "id,media_type,caption,media_url,permalink,thumbnail_url"
|
|
1335
|
-
});
|
|
1336
|
-
fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`).then((res) => res.json()).then((res) => {
|
|
1337
|
-
if (res.error) {
|
|
1338
|
-
setError(res);
|
|
1339
|
-
} else {
|
|
1340
|
-
setError(null);
|
|
1341
|
-
setMedia([...res.data]);
|
|
1342
|
-
}
|
|
1343
|
-
}).catch(setError);
|
|
1344
|
-
}
|
|
1345
|
-
}, [token]);
|
|
1346
|
-
if (!token || error) {
|
|
1347
|
-
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1348
|
-
ref,
|
|
1349
|
-
...rest
|
|
1350
|
-
}, /* @__PURE__ */ import_react25.default.createElement(Components.Placeholder, {
|
|
1351
|
-
element: "Instagram"
|
|
1352
|
-
}, !token ? "Connect to Instagram to display photos on your site." : "Invalid or expired token!"));
|
|
1353
|
-
}
|
|
1354
|
-
let style = {
|
|
1355
|
-
"--wv-ig-images-per-row": imagesPerRow,
|
|
1356
|
-
"--wv-ig-images-gap": gap + "px"
|
|
1357
|
-
};
|
|
1358
|
-
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1359
|
-
ref,
|
|
1360
|
-
...rest,
|
|
1361
|
-
style
|
|
1362
|
-
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1363
|
-
className: "wv-ig-media-container"
|
|
1364
|
-
}, media.slice(0, numberOfImages).map((item) => {
|
|
1365
|
-
let {
|
|
1366
|
-
id,
|
|
1367
|
-
permalink,
|
|
1368
|
-
caption,
|
|
1369
|
-
media_url,
|
|
1370
|
-
media_type,
|
|
1371
|
-
thumbnail_url
|
|
1372
|
-
} = item;
|
|
1373
|
-
if (media_type === "VIDEO") {
|
|
1374
|
-
return /* @__PURE__ */ import_react25.default.createElement("video", {
|
|
1375
|
-
key: id,
|
|
1376
|
-
controls: true,
|
|
1377
|
-
poster: thumbnail_url
|
|
1378
|
-
}, /* @__PURE__ */ import_react25.default.createElement("source", {
|
|
1379
|
-
src: media_url,
|
|
1380
|
-
type: "video/mp4"
|
|
1381
|
-
}));
|
|
1382
|
-
}
|
|
1383
|
-
return /* @__PURE__ */ import_react25.default.createElement("a", {
|
|
1384
|
-
key: id,
|
|
1385
|
-
href: permalink,
|
|
1386
|
-
target: "_blank",
|
|
1387
|
-
rel: "noreferrer"
|
|
1388
|
-
}, /* @__PURE__ */ import_react25.default.createElement("img", {
|
|
1389
|
-
alt: caption,
|
|
1390
|
-
src: media_url
|
|
1391
|
-
}));
|
|
1392
|
-
})));
|
|
1393
|
-
}
|
|
1394
|
-
);
|
|
1395
|
-
Instagram.defaultProps = {
|
|
1396
|
-
token: "",
|
|
1397
|
-
username: "",
|
|
1398
|
-
numberOfImages: 8,
|
|
1399
|
-
imagesPerRow: 4,
|
|
1400
|
-
gap: 0
|
|
1401
|
-
};
|
|
1402
|
-
|
|
1403
|
-
// src/elements/index.ts
|
|
1404
|
-
var Elements = {
|
|
1405
|
-
Countdown: {
|
|
1406
|
-
Component: Countdown_default,
|
|
1407
|
-
type: "countdown",
|
|
1408
|
-
defaultCss: css3
|
|
1409
|
-
},
|
|
1410
|
-
Button: {
|
|
1411
|
-
Component: Button_default,
|
|
1412
|
-
type: "button",
|
|
1413
|
-
defaultCss: css
|
|
1414
|
-
},
|
|
1415
|
-
Container: {
|
|
1416
|
-
Component: Container_default,
|
|
1417
|
-
type: "container",
|
|
1418
|
-
defaultCss: css2
|
|
1419
|
-
},
|
|
1420
|
-
Image: {
|
|
1421
|
-
Component: Image_default,
|
|
1422
|
-
type: "image",
|
|
1423
|
-
defaultCss: css4
|
|
1424
|
-
},
|
|
1425
|
-
Layout: {
|
|
1426
|
-
Component: Layout_default,
|
|
1427
|
-
type: "layout",
|
|
1428
|
-
defaultCss: css5
|
|
1429
|
-
},
|
|
1430
|
-
Map: {
|
|
1431
|
-
Component: Map_default,
|
|
1432
|
-
type: "map",
|
|
1433
|
-
defaultCss: css6
|
|
1434
|
-
},
|
|
1435
|
-
Text: {
|
|
1436
|
-
Component: Text_default,
|
|
1437
|
-
type: "text",
|
|
1438
|
-
defaultCss: css7
|
|
1439
|
-
},
|
|
1440
|
-
Video: {
|
|
1441
|
-
Component: Video_default,
|
|
1442
|
-
type: "video",
|
|
1443
|
-
defaultCss: css8
|
|
1444
|
-
}
|
|
1445
|
-
};
|
|
1446
|
-
|
|
1447
|
-
// src/context.ts
|
|
1448
|
-
var createRootContext = (configs) => {
|
|
1449
|
-
let rootContext = new import_core.Weaverse(configs);
|
|
1450
|
-
Object.keys(Elements).forEach((key) => {
|
|
1451
|
-
rootContext.registerElement(Elements[key]);
|
|
1452
|
-
});
|
|
1453
|
-
return rootContext;
|
|
1454
|
-
};
|
|
1455
|
-
var WeaverseContext = (0, import_react26.createContext)({});
|
|
1456
|
-
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1457
|
-
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1458
|
-
|
|
1459
1677
|
// src/renderer.tsx
|
|
1460
1678
|
var import_core2 = require("@weaverse/core");
|
|
1461
|
-
var
|
|
1679
|
+
var import_react36 = __toESM(require("react"));
|
|
1462
1680
|
var WeaverseRoot = ({ context }) => {
|
|
1463
|
-
let [, setData] = (0,
|
|
1464
|
-
let rootRef = (0,
|
|
1681
|
+
let [, setData] = (0, import_react36.useState)(context.projectData);
|
|
1682
|
+
let rootRef = (0, import_react36.useRef)();
|
|
1465
1683
|
let renderRoot = () => setData({});
|
|
1466
|
-
(0,
|
|
1684
|
+
(0, import_react36.useEffect)(() => {
|
|
1467
1685
|
context.subscribe(renderRoot);
|
|
1468
1686
|
context.contentRootElement = rootRef.current;
|
|
1469
1687
|
return () => {
|
|
@@ -1473,23 +1691,23 @@ var WeaverseRoot = ({ context }) => {
|
|
|
1473
1691
|
let eventHandlers = context?.studioBridge?.eventHandlers || {};
|
|
1474
1692
|
let themeClass = context.stitchesInstance.theme.className;
|
|
1475
1693
|
if (context.projectData?.rootId) {
|
|
1476
|
-
return /* @__PURE__ */
|
|
1694
|
+
return /* @__PURE__ */ import_react36.default.createElement("div", {
|
|
1477
1695
|
className: `weaverse-content-root ${themeClass}`,
|
|
1478
1696
|
...eventHandlers,
|
|
1479
1697
|
ref: rootRef
|
|
1480
|
-
}, /* @__PURE__ */
|
|
1698
|
+
}, /* @__PURE__ */ import_react36.default.createElement(WeaverseContextProvider, {
|
|
1481
1699
|
value: context
|
|
1482
|
-
}, /* @__PURE__ */
|
|
1700
|
+
}, /* @__PURE__ */ import_react36.default.createElement(ItemInstance, {
|
|
1483
1701
|
id: context.projectData.rootId
|
|
1484
1702
|
})));
|
|
1485
1703
|
}
|
|
1486
1704
|
return null;
|
|
1487
1705
|
};
|
|
1488
1706
|
var ItemComponent = ({ instance }) => {
|
|
1489
|
-
let { stitchesInstance, elementInstances } = (0,
|
|
1490
|
-
let [data, setData] = (0,
|
|
1491
|
-
let { id, type, childIds = [], css:
|
|
1492
|
-
(0,
|
|
1707
|
+
let { stitchesInstance, elementInstances } = (0, import_react36.useContext)(WeaverseContext);
|
|
1708
|
+
let [data, setData] = (0, import_react36.useState)(instance.data);
|
|
1709
|
+
let { id, type, childIds = [], css: css11, className, ...rest } = data;
|
|
1710
|
+
(0, import_react36.useEffect)(() => {
|
|
1493
1711
|
let render = (data2) => setData({ ...data2 });
|
|
1494
1712
|
instance.subscribe(render);
|
|
1495
1713
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
@@ -1505,13 +1723,13 @@ var ItemComponent = ({ instance }) => {
|
|
|
1505
1723
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
1506
1724
|
rest.ref = instance.ref;
|
|
1507
1725
|
}
|
|
1508
|
-
return /* @__PURE__ */
|
|
1726
|
+
return /* @__PURE__ */ import_react36.default.createElement(Component, {
|
|
1509
1727
|
key: id,
|
|
1510
1728
|
"data-wv-type": type,
|
|
1511
1729
|
"data-wv-id": id,
|
|
1512
1730
|
className: generateItemClassName(instance, stitchesInstance),
|
|
1513
1731
|
...rest
|
|
1514
|
-
}, childIds.map((id2) => /* @__PURE__ */
|
|
1732
|
+
}, childIds.map((id2) => /* @__PURE__ */ import_react36.default.createElement(ItemInstance, {
|
|
1515
1733
|
key: id2,
|
|
1516
1734
|
id: id2
|
|
1517
1735
|
})));
|
|
@@ -1521,15 +1739,15 @@ var ItemComponent = ({ instance }) => {
|
|
|
1521
1739
|
}
|
|
1522
1740
|
};
|
|
1523
1741
|
var ItemInstance = ({ id }) => {
|
|
1524
|
-
let context = (0,
|
|
1742
|
+
let context = (0, import_react36.useContext)(WeaverseContext);
|
|
1525
1743
|
let { itemInstances } = context;
|
|
1526
1744
|
let instance = itemInstances.get(id);
|
|
1527
1745
|
if (!instance) {
|
|
1528
|
-
return /* @__PURE__ */
|
|
1746
|
+
return /* @__PURE__ */ import_react36.default.createElement("div", {
|
|
1529
1747
|
style: { display: "none" }
|
|
1530
1748
|
}, "Item instance ", id, " not found");
|
|
1531
1749
|
}
|
|
1532
|
-
return /* @__PURE__ */
|
|
1750
|
+
return /* @__PURE__ */ import_react36.default.createElement(ItemComponent, {
|
|
1533
1751
|
key: id,
|
|
1534
1752
|
instance
|
|
1535
1753
|
});
|