@weaverse/react 0.7.57 → 0.7.59
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 +64 -5
- package/dist/index.js +757 -392
- package/dist/index.mjs +747 -383
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -29,6 +29,7 @@ var src_exports = {};
|
|
|
29
29
|
__export(src_exports, {
|
|
30
30
|
Components: () => Components,
|
|
31
31
|
Elements: () => Elements,
|
|
32
|
+
SliderComponents: () => SliderComponents,
|
|
32
33
|
WeaverseContext: () => WeaverseContext,
|
|
33
34
|
WeaverseContextConsumer: () => WeaverseContextConsumer,
|
|
34
35
|
WeaverseContextProvider: () => WeaverseContextProvider,
|
|
@@ -40,7 +41,7 @@ __reExport(src_exports, require("@weaverse/core"), module.exports);
|
|
|
40
41
|
|
|
41
42
|
// src/context.ts
|
|
42
43
|
var import_core = require("@weaverse/core");
|
|
43
|
-
var
|
|
44
|
+
var import_react30 = require("react");
|
|
44
45
|
|
|
45
46
|
// src/elements/Button.tsx
|
|
46
47
|
var React = __toESM(require("react"));
|
|
@@ -118,42 +119,6 @@ var import_react4 = __toESM(require("react"));
|
|
|
118
119
|
// src/constant/index.ts
|
|
119
120
|
var TIMES = ["days", "hours", "minutes", "seconds"];
|
|
120
121
|
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
122
|
|
|
158
123
|
// src/utils/index.ts
|
|
159
124
|
function getTime(_seconds) {
|
|
@@ -270,7 +235,6 @@ var Countdown = (0, import_react4.forwardRef)(
|
|
|
270
235
|
);
|
|
271
236
|
var css3 = {
|
|
272
237
|
"@desktop": {
|
|
273
|
-
fontFamily: "Inter",
|
|
274
238
|
fontSize: "36px",
|
|
275
239
|
fontWeight: 500,
|
|
276
240
|
display: "flex",
|
|
@@ -557,6 +521,7 @@ var Text = React10.forwardRef(
|
|
|
557
521
|
);
|
|
558
522
|
var css7 = {
|
|
559
523
|
"@desktop": {
|
|
524
|
+
display: "flex",
|
|
560
525
|
padding: "10px",
|
|
561
526
|
overflow: "hidden",
|
|
562
527
|
".wv-text-content": {
|
|
@@ -693,39 +658,18 @@ Video.defaultProps = {
|
|
|
693
658
|
};
|
|
694
659
|
var Video_default = Video;
|
|
695
660
|
|
|
696
|
-
// src/elements/
|
|
697
|
-
var
|
|
661
|
+
// src/elements/Slideshow/index.tsx
|
|
662
|
+
var import_react22 = require("@stitches/react");
|
|
663
|
+
var import_clsx5 = __toESM(require("clsx"));
|
|
664
|
+
var import_react23 = __toESM(require("react"));
|
|
698
665
|
|
|
699
|
-
// src/components/
|
|
700
|
-
var
|
|
701
|
-
var
|
|
702
|
-
|
|
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;
|
|
714
|
-
|
|
715
|
-
// src/components/Modal/index.tsx
|
|
716
|
-
var Modal_exports = {};
|
|
717
|
-
__export(Modal_exports, {
|
|
718
|
-
Modal: () => Modal,
|
|
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"));
|
|
666
|
+
// src/components/Slider/Arrows.tsx
|
|
667
|
+
var import_react16 = require("@stitches/react");
|
|
668
|
+
var import_clsx2 = __toESM(require("clsx"));
|
|
669
|
+
var import_react17 = __toESM(require("react"));
|
|
726
670
|
|
|
727
671
|
// src/components/Icons/index.tsx
|
|
728
|
-
var
|
|
672
|
+
var import_react15 = __toESM(require("react"));
|
|
729
673
|
|
|
730
674
|
// src/components/Icons/Phosphor.tsx
|
|
731
675
|
var Phosphor_exports = {};
|
|
@@ -740,39 +684,39 @@ __export(Phosphor_exports, {
|
|
|
740
684
|
ShoppingCart: () => ShoppingCart,
|
|
741
685
|
X: () => X
|
|
742
686
|
});
|
|
743
|
-
var
|
|
687
|
+
var import_react14 = __toESM(require("react"));
|
|
744
688
|
var CircleNotch = (props) => {
|
|
745
|
-
return /* @__PURE__ */
|
|
689
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
746
690
|
xmlns: "http://www.w3.org/2000/svg",
|
|
747
691
|
fill: "none",
|
|
748
692
|
viewBox: "0 0 24 24",
|
|
749
693
|
...props
|
|
750
|
-
}, /* @__PURE__ */
|
|
694
|
+
}, /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
751
695
|
style: { opacity: ".25" },
|
|
752
696
|
cx: "12",
|
|
753
697
|
cy: "12",
|
|
754
698
|
r: "10",
|
|
755
699
|
stroke: "currentColor",
|
|
756
700
|
strokeWidth: "4"
|
|
757
|
-
}), /* @__PURE__ */
|
|
701
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
758
702
|
style: { opacity: ".75" },
|
|
759
703
|
fill: "currentColor",
|
|
760
704
|
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
705
|
}));
|
|
762
706
|
};
|
|
763
707
|
var X = (props) => {
|
|
764
|
-
return /* @__PURE__ */
|
|
708
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
765
709
|
xmlns: "http://www.w3.org/2000/svg",
|
|
766
710
|
width: "20",
|
|
767
711
|
height: "20",
|
|
768
712
|
fill: "currentColor",
|
|
769
713
|
viewBox: "0 0 256 256",
|
|
770
714
|
...props
|
|
771
|
-
}, /* @__PURE__ */
|
|
715
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
772
716
|
width: "256",
|
|
773
717
|
height: "256",
|
|
774
718
|
fill: "none"
|
|
775
|
-
}), /* @__PURE__ */
|
|
719
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
776
720
|
x1: "200",
|
|
777
721
|
y1: "56",
|
|
778
722
|
x2: "56",
|
|
@@ -782,7 +726,7 @@ var X = (props) => {
|
|
|
782
726
|
strokeLinecap: "round",
|
|
783
727
|
strokeLinejoin: "round",
|
|
784
728
|
strokeWidth: "12"
|
|
785
|
-
}), /* @__PURE__ */
|
|
729
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
786
730
|
x1: "200",
|
|
787
731
|
y1: "200",
|
|
788
732
|
x2: "56",
|
|
@@ -795,7 +739,7 @@ var X = (props) => {
|
|
|
795
739
|
}));
|
|
796
740
|
};
|
|
797
741
|
var Minus = (props) => {
|
|
798
|
-
return /* @__PURE__ */
|
|
742
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
799
743
|
width: "196",
|
|
800
744
|
height: "196",
|
|
801
745
|
fill: "currentColor",
|
|
@@ -803,12 +747,12 @@ var Minus = (props) => {
|
|
|
803
747
|
xmlns: "http://www.w3.org/2000/svg",
|
|
804
748
|
viewBox: "0 0 384 512",
|
|
805
749
|
...props
|
|
806
|
-
}, /* @__PURE__ */
|
|
750
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
807
751
|
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
752
|
}));
|
|
809
753
|
};
|
|
810
754
|
var Plus = (props) => {
|
|
811
|
-
return /* @__PURE__ */
|
|
755
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
812
756
|
width: "196",
|
|
813
757
|
height: "196",
|
|
814
758
|
fill: "currentColor",
|
|
@@ -816,23 +760,23 @@ var Plus = (props) => {
|
|
|
816
760
|
xmlns: "http://www.w3.org/2000/svg",
|
|
817
761
|
viewBox: "0 0 384 512",
|
|
818
762
|
...props
|
|
819
|
-
}, /* @__PURE__ */
|
|
763
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
820
764
|
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
765
|
}));
|
|
822
766
|
};
|
|
823
767
|
var ArrowLeft = (props) => {
|
|
824
|
-
return /* @__PURE__ */
|
|
768
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
825
769
|
xmlns: "http://www.w3.org/2000/svg",
|
|
826
770
|
width: "192",
|
|
827
771
|
height: "192",
|
|
828
772
|
fill: "currentColor",
|
|
829
773
|
viewBox: "0 0 256 256",
|
|
830
774
|
...props
|
|
831
|
-
}, /* @__PURE__ */
|
|
775
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
832
776
|
width: "256",
|
|
833
777
|
height: "256",
|
|
834
778
|
fill: "none"
|
|
835
|
-
}), /* @__PURE__ */
|
|
779
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
836
780
|
x1: "216",
|
|
837
781
|
y1: "128",
|
|
838
782
|
x2: "40",
|
|
@@ -842,7 +786,7 @@ var ArrowLeft = (props) => {
|
|
|
842
786
|
strokeLinecap: "round",
|
|
843
787
|
strokeLinejoin: "round",
|
|
844
788
|
strokeWidth: "16"
|
|
845
|
-
}), /* @__PURE__ */
|
|
789
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
846
790
|
points: "112 56 40 128 112 200",
|
|
847
791
|
fill: "none",
|
|
848
792
|
stroke: "currentColor",
|
|
@@ -852,18 +796,18 @@ var ArrowLeft = (props) => {
|
|
|
852
796
|
}));
|
|
853
797
|
};
|
|
854
798
|
var ArrowRight = (props) => {
|
|
855
|
-
return /* @__PURE__ */
|
|
799
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
856
800
|
xmlns: "http://www.w3.org/2000/svg",
|
|
857
801
|
width: "192",
|
|
858
802
|
height: "192",
|
|
859
803
|
fill: "currentColor",
|
|
860
804
|
viewBox: "0 0 256 256",
|
|
861
805
|
...props
|
|
862
|
-
}, /* @__PURE__ */
|
|
806
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
863
807
|
width: "256",
|
|
864
808
|
height: "256",
|
|
865
809
|
fill: "none"
|
|
866
|
-
}), /* @__PURE__ */
|
|
810
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
867
811
|
x1: "40",
|
|
868
812
|
y1: "128",
|
|
869
813
|
x2: "216",
|
|
@@ -873,7 +817,7 @@ var ArrowRight = (props) => {
|
|
|
873
817
|
strokeLinecap: "round",
|
|
874
818
|
strokeLinejoin: "round",
|
|
875
819
|
strokeWidth: "16"
|
|
876
|
-
}), /* @__PURE__ */
|
|
820
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
877
821
|
points: "144 56 216 128 144 200",
|
|
878
822
|
fill: "none",
|
|
879
823
|
stroke: "currentColor",
|
|
@@ -883,36 +827,36 @@ var ArrowRight = (props) => {
|
|
|
883
827
|
}));
|
|
884
828
|
};
|
|
885
829
|
var Image2 = (props) => {
|
|
886
|
-
return /* @__PURE__ */
|
|
830
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
887
831
|
xmlns: "http://www.w3.org/2000/svg",
|
|
888
832
|
"aria-hidden": "true",
|
|
889
833
|
fill: "currentColor",
|
|
890
834
|
viewBox: "0 0 640 512",
|
|
891
835
|
...props
|
|
892
|
-
}, /* @__PURE__ */
|
|
836
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
893
837
|
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
838
|
}));
|
|
895
839
|
};
|
|
896
840
|
var ShoppingCart = (props) => {
|
|
897
|
-
return /* @__PURE__ */
|
|
841
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
898
842
|
xmlns: "http://www.w3.org/2000/svg",
|
|
899
843
|
width: "192",
|
|
900
844
|
height: "192",
|
|
901
845
|
fill: "currentColor",
|
|
902
846
|
viewBox: "0 0 256 256",
|
|
903
847
|
...props
|
|
904
|
-
}, /* @__PURE__ */
|
|
848
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
905
849
|
width: "256",
|
|
906
850
|
height: "256",
|
|
907
851
|
fill: "none"
|
|
908
|
-
}), /* @__PURE__ */
|
|
852
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
909
853
|
d: "M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16",
|
|
910
854
|
fill: "none",
|
|
911
855
|
stroke: "currentColor",
|
|
912
856
|
strokeLinecap: "round",
|
|
913
857
|
strokeLinejoin: "round",
|
|
914
858
|
strokeWidth: "16"
|
|
915
|
-
}), /* @__PURE__ */
|
|
859
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
916
860
|
cx: "80",
|
|
917
861
|
cy: "204",
|
|
918
862
|
r: "20",
|
|
@@ -921,7 +865,7 @@ var ShoppingCart = (props) => {
|
|
|
921
865
|
strokeLinecap: "round",
|
|
922
866
|
strokeLinejoin: "round",
|
|
923
867
|
strokeWidth: "16"
|
|
924
|
-
}), /* @__PURE__ */
|
|
868
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
925
869
|
cx: "184",
|
|
926
870
|
cy: "204",
|
|
927
871
|
r: "20",
|
|
@@ -930,7 +874,7 @@ var ShoppingCart = (props) => {
|
|
|
930
874
|
strokeLinecap: "round",
|
|
931
875
|
strokeLinejoin: "round",
|
|
932
876
|
strokeWidth: "16"
|
|
933
|
-
}), /* @__PURE__ */
|
|
877
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
934
878
|
d: "M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48",
|
|
935
879
|
fill: "none",
|
|
936
880
|
stroke: "currentColor",
|
|
@@ -940,25 +884,25 @@ var ShoppingCart = (props) => {
|
|
|
940
884
|
}));
|
|
941
885
|
};
|
|
942
886
|
var Eye = (props) => {
|
|
943
|
-
return /* @__PURE__ */
|
|
887
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
944
888
|
xmlns: "http://www.w3.org/2000/svg",
|
|
945
889
|
width: "192",
|
|
946
890
|
height: "192",
|
|
947
891
|
fill: "currentColor",
|
|
948
892
|
viewBox: "0 0 256 256",
|
|
949
893
|
...props
|
|
950
|
-
}, /* @__PURE__ */
|
|
894
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
951
895
|
width: "256",
|
|
952
896
|
height: "256",
|
|
953
897
|
fill: "none"
|
|
954
|
-
}), /* @__PURE__ */
|
|
898
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
955
899
|
d: "M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z",
|
|
956
900
|
fill: "none",
|
|
957
901
|
stroke: "currentColor",
|
|
958
902
|
strokeLinecap: "round",
|
|
959
903
|
strokeLinejoin: "round",
|
|
960
904
|
strokeWidth: "12"
|
|
961
|
-
}), /* @__PURE__ */
|
|
905
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
962
906
|
cx: "128",
|
|
963
907
|
cy: "128",
|
|
964
908
|
r: "40",
|
|
@@ -971,28 +915,672 @@ var Eye = (props) => {
|
|
|
971
915
|
};
|
|
972
916
|
|
|
973
917
|
// src/components/Icons/index.tsx
|
|
974
|
-
var
|
|
918
|
+
var import_clsx = __toESM(require("clsx"));
|
|
975
919
|
function Icon({ name, className, ...props }) {
|
|
976
920
|
let WeaverseIcon = Phosphor_exports[name];
|
|
977
|
-
let cls = (0,
|
|
978
|
-
return /* @__PURE__ */
|
|
921
|
+
let cls = (0, import_clsx.default)("wv-icon", className);
|
|
922
|
+
return /* @__PURE__ */ import_react15.default.createElement(WeaverseIcon, {
|
|
979
923
|
className: cls,
|
|
980
924
|
...props
|
|
981
925
|
});
|
|
982
926
|
}
|
|
983
927
|
|
|
928
|
+
// src/components/Slider/Arrows.tsx
|
|
929
|
+
function Arrows(props) {
|
|
930
|
+
let { currentSlide, instanceRef, className, offset } = props;
|
|
931
|
+
let isFirst = currentSlide === 0;
|
|
932
|
+
let isLast = false;
|
|
933
|
+
if (instanceRef.current) {
|
|
934
|
+
isLast = currentSlide === instanceRef?.current?.track?.details?.maxIdx;
|
|
935
|
+
}
|
|
936
|
+
let style = {
|
|
937
|
+
"--offset": `${offset}px`
|
|
938
|
+
};
|
|
939
|
+
return /* @__PURE__ */ import_react17.default.createElement(StyledArrows, {
|
|
940
|
+
className,
|
|
941
|
+
style
|
|
942
|
+
}, /* @__PURE__ */ import_react17.default.createElement("button", {
|
|
943
|
+
type: "button",
|
|
944
|
+
className: (0, import_clsx2.default)("arrow arrow--left", isFirst && "arrow--disabled"),
|
|
945
|
+
onClick: (e) => {
|
|
946
|
+
e.stopPropagation();
|
|
947
|
+
instanceRef?.current?.prev();
|
|
948
|
+
}
|
|
949
|
+
}, /* @__PURE__ */ import_react17.default.createElement(Icon, {
|
|
950
|
+
name: "ArrowLeft"
|
|
951
|
+
})), /* @__PURE__ */ import_react17.default.createElement("button", {
|
|
952
|
+
type: "button",
|
|
953
|
+
className: (0, import_clsx2.default)("arrow arrow--right", isLast && "arrow--disabled"),
|
|
954
|
+
onClick: (e) => {
|
|
955
|
+
e.stopPropagation();
|
|
956
|
+
instanceRef?.current?.next();
|
|
957
|
+
}
|
|
958
|
+
}, /* @__PURE__ */ import_react17.default.createElement(Icon, {
|
|
959
|
+
name: "ArrowRight"
|
|
960
|
+
})));
|
|
961
|
+
}
|
|
962
|
+
var StyledArrows = (0, import_react16.styled)("div", {
|
|
963
|
+
".arrow": {
|
|
964
|
+
position: "absolute",
|
|
965
|
+
top: "50%",
|
|
966
|
+
transform: "translateY(-50%)",
|
|
967
|
+
width: "44px",
|
|
968
|
+
height: "44px",
|
|
969
|
+
padding: "8px",
|
|
970
|
+
color: "#191919",
|
|
971
|
+
backgroundColor: "#f2f2f2",
|
|
972
|
+
textAlign: "center",
|
|
973
|
+
transition: "all 0.2s ease-in-out",
|
|
974
|
+
borderRadius: "4px",
|
|
975
|
+
border: "none",
|
|
976
|
+
cursor: "pointer",
|
|
977
|
+
"&:hover": {
|
|
978
|
+
backgroundColor: "#191919",
|
|
979
|
+
color: "#f2f2f2"
|
|
980
|
+
},
|
|
981
|
+
svg: {
|
|
982
|
+
verticalAlign: "middle",
|
|
983
|
+
width: "22px",
|
|
984
|
+
height: "22px"
|
|
985
|
+
},
|
|
986
|
+
"&.arrow--left": {
|
|
987
|
+
left: "var(--offset, 0px)"
|
|
988
|
+
},
|
|
989
|
+
"&.arrow--right": {
|
|
990
|
+
right: "var(--offset, 0px)"
|
|
991
|
+
},
|
|
992
|
+
"&.arrow--disabled": {
|
|
993
|
+
opacity: 0.5
|
|
994
|
+
}
|
|
995
|
+
},
|
|
996
|
+
"@media (max-width: 768px)": {
|
|
997
|
+
".arrow": {
|
|
998
|
+
display: "none"
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
});
|
|
1002
|
+
|
|
1003
|
+
// src/components/Slider/Dots.tsx
|
|
1004
|
+
var import_react18 = require("@stitches/react");
|
|
1005
|
+
var import_clsx3 = __toESM(require("clsx"));
|
|
1006
|
+
var import_react19 = __toESM(require("react"));
|
|
1007
|
+
function Dots(props) {
|
|
1008
|
+
let { currentSlide, instanceRef, className, absolute, position, color } = props;
|
|
1009
|
+
let _className = (0, import_clsx3.default)(
|
|
1010
|
+
className,
|
|
1011
|
+
absolute && "dots--absolute",
|
|
1012
|
+
position && `dots--${position}`,
|
|
1013
|
+
color && `dots--${color}`
|
|
1014
|
+
);
|
|
1015
|
+
return /* @__PURE__ */ import_react19.default.createElement(StyledDots, {
|
|
1016
|
+
className: _className
|
|
1017
|
+
}, [...Array(instanceRef.current?.track.details.slides.length).keys()].map(
|
|
1018
|
+
(idx) => {
|
|
1019
|
+
let className2 = (0, import_clsx3.default)("dot", currentSlide === idx && "dot--active");
|
|
1020
|
+
return /* @__PURE__ */ import_react19.default.createElement("button", {
|
|
1021
|
+
key: idx,
|
|
1022
|
+
type: "button",
|
|
1023
|
+
onClick: () => instanceRef.current?.moveToIdx(idx),
|
|
1024
|
+
className: className2
|
|
1025
|
+
});
|
|
1026
|
+
}
|
|
1027
|
+
));
|
|
1028
|
+
}
|
|
1029
|
+
var StyledDots = (0, import_react18.styled)("div", {
|
|
1030
|
+
padding: "10px 0",
|
|
1031
|
+
display: "flex",
|
|
1032
|
+
justifyContent: "center",
|
|
1033
|
+
alignItems: "center",
|
|
1034
|
+
gap: "12px",
|
|
1035
|
+
"&.dots--absolute": {
|
|
1036
|
+
position: "absolute",
|
|
1037
|
+
"&.dots--top, &.dots--bottom": { left: 0, right: 0 },
|
|
1038
|
+
"&.dots--top": { top: 10 },
|
|
1039
|
+
"&.dots--bottom": { bottom: 10 },
|
|
1040
|
+
"&.dots--left, &.dots--right": {
|
|
1041
|
+
top: 0,
|
|
1042
|
+
bottom: 0,
|
|
1043
|
+
flexDirection: "column"
|
|
1044
|
+
},
|
|
1045
|
+
"&.dots--left": { left: 20 },
|
|
1046
|
+
"&.dots--right": { right: 20 }
|
|
1047
|
+
},
|
|
1048
|
+
"&.dots--light": {
|
|
1049
|
+
".dot": {
|
|
1050
|
+
backgroundColor: "#ffffff66",
|
|
1051
|
+
"&.dot--active": {
|
|
1052
|
+
backgroundColor: "#ffffff"
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"&.dots--dark": {
|
|
1057
|
+
".dot": {
|
|
1058
|
+
backgroundColor: "#00000033",
|
|
1059
|
+
"&.dot--active": {
|
|
1060
|
+
backgroundColor: "#000000"
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
},
|
|
1064
|
+
".dot": {
|
|
1065
|
+
width: "9px",
|
|
1066
|
+
height: "9px",
|
|
1067
|
+
padding: "0",
|
|
1068
|
+
border: "none",
|
|
1069
|
+
borderRadius: "50%",
|
|
1070
|
+
transition: "all 0.2s ease-in-out"
|
|
1071
|
+
}
|
|
1072
|
+
});
|
|
1073
|
+
|
|
1074
|
+
// src/elements/Slideshow/useSlideshowConfigs.ts
|
|
1075
|
+
var import_react20 = require("keen-slider/react");
|
|
1076
|
+
var import_react21 = __toESM(require("react"));
|
|
1077
|
+
|
|
1078
|
+
// src/components/Slider/AutoplayPlugin.ts
|
|
1079
|
+
function AutoplayPlugin(changeSlidesEvery) {
|
|
1080
|
+
return (slider) => {
|
|
1081
|
+
let timeout;
|
|
1082
|
+
let mouseOver = false;
|
|
1083
|
+
function clearNextTimeout() {
|
|
1084
|
+
clearTimeout(timeout);
|
|
1085
|
+
}
|
|
1086
|
+
function nextTimeout() {
|
|
1087
|
+
clearTimeout(timeout);
|
|
1088
|
+
if (mouseOver)
|
|
1089
|
+
return;
|
|
1090
|
+
timeout = setTimeout(() => {
|
|
1091
|
+
slider.next();
|
|
1092
|
+
}, changeSlidesEvery * 1e3);
|
|
1093
|
+
}
|
|
1094
|
+
slider.on("created", () => {
|
|
1095
|
+
slider.container.addEventListener("mouseover", () => {
|
|
1096
|
+
mouseOver = true;
|
|
1097
|
+
clearNextTimeout();
|
|
1098
|
+
});
|
|
1099
|
+
slider.container.addEventListener("mouseout", () => {
|
|
1100
|
+
mouseOver = false;
|
|
1101
|
+
nextTimeout();
|
|
1102
|
+
});
|
|
1103
|
+
nextTimeout();
|
|
1104
|
+
});
|
|
1105
|
+
slider.on("dragStarted", clearNextTimeout);
|
|
1106
|
+
slider.on("animationEnded", nextTimeout);
|
|
1107
|
+
slider.on("updated", nextTimeout);
|
|
1108
|
+
};
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
// src/components/Slider/ResizePlugin.ts
|
|
1112
|
+
var ResizePlugin = (slider) => {
|
|
1113
|
+
let observer = new ResizeObserver(() => slider.update());
|
|
1114
|
+
slider.on("created", () => {
|
|
1115
|
+
observer.observe(slider.container);
|
|
1116
|
+
});
|
|
1117
|
+
slider.on("destroyed", () => {
|
|
1118
|
+
observer.unobserve(slider.container);
|
|
1119
|
+
});
|
|
1120
|
+
};
|
|
1121
|
+
|
|
1122
|
+
// src/utils/css.ts
|
|
1123
|
+
var import_clsx4 = __toESM(require("clsx"));
|
|
1124
|
+
function formatCSS(css11) {
|
|
1125
|
+
return {
|
|
1126
|
+
"@desktop": css11["@desktop"],
|
|
1127
|
+
"@mobile": css11["@mobile"]
|
|
1128
|
+
};
|
|
1129
|
+
}
|
|
1130
|
+
var permanentClasses = {};
|
|
1131
|
+
function generateItemClassName(instance, stitchesInstance) {
|
|
1132
|
+
let { css: css11, type, className: cls = "" } = instance.data;
|
|
1133
|
+
let className = "";
|
|
1134
|
+
let permanentClass = "";
|
|
1135
|
+
let perCss = instance.Element?.permanentCss;
|
|
1136
|
+
if (perCss) {
|
|
1137
|
+
if (type in permanentClasses) {
|
|
1138
|
+
permanentClass = permanentClasses[type];
|
|
1139
|
+
} else {
|
|
1140
|
+
let { className: perCls } = stitchesInstance.css(perCss)();
|
|
1141
|
+
Object.assign(permanentClasses, { [type]: perCls });
|
|
1142
|
+
permanentClass = perCls;
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
className = permanentClass;
|
|
1146
|
+
if (css11) {
|
|
1147
|
+
let formattedCss = formatCSS(css11);
|
|
1148
|
+
let newStitchesClass = stitchesInstance.css(formattedCss)().className || "";
|
|
1149
|
+
let { stitchesClass } = instance;
|
|
1150
|
+
let otherClass = (instance.ref.current?.className || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
|
|
1151
|
+
className = (0, import_clsx4.default)(permanentClass, cls, newStitchesClass, otherClass);
|
|
1152
|
+
instance.stitchesClass = newStitchesClass;
|
|
1153
|
+
}
|
|
1154
|
+
return className;
|
|
1155
|
+
}
|
|
1156
|
+
function loadCSS(attrs) {
|
|
1157
|
+
return new Promise((resolve, reject) => {
|
|
1158
|
+
let found = document.querySelector(`link[href="${attrs.href}"]`);
|
|
1159
|
+
if (found) {
|
|
1160
|
+
return resolve(true);
|
|
1161
|
+
}
|
|
1162
|
+
let link = document.createElement("link");
|
|
1163
|
+
Object.assign(link, attrs);
|
|
1164
|
+
link.addEventListener("load", () => resolve(true));
|
|
1165
|
+
link.onerror = reject;
|
|
1166
|
+
document.head.appendChild(link);
|
|
1167
|
+
});
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
// src/elements/Slideshow/useSlideshowConfigs.ts
|
|
1171
|
+
function useSlideshowConfigs(props) {
|
|
1172
|
+
let {
|
|
1173
|
+
animation,
|
|
1174
|
+
slidesPerView,
|
|
1175
|
+
loop,
|
|
1176
|
+
autoRotate,
|
|
1177
|
+
changeSlidesEvery,
|
|
1178
|
+
children
|
|
1179
|
+
} = props;
|
|
1180
|
+
let { isDesignMode } = (0, import_react21.useContext)(WeaverseContext);
|
|
1181
|
+
let [opacities, setOpacities] = import_react21.default.useState([]);
|
|
1182
|
+
let [cssLoaded, setCssLoaded] = (0, import_react21.useState)(false);
|
|
1183
|
+
let [created, setCreated] = (0, import_react21.useState)(false);
|
|
1184
|
+
let [ready, setReady] = (0, import_react21.useState)(false);
|
|
1185
|
+
let [currentSlide, setCurrentSlide] = (0, import_react21.useState)(0);
|
|
1186
|
+
let sliderPlugins = [ResizePlugin];
|
|
1187
|
+
if (autoRotate && !isDesignMode) {
|
|
1188
|
+
sliderPlugins.push(AutoplayPlugin(changeSlidesEvery));
|
|
1189
|
+
}
|
|
1190
|
+
let [sliderRef, instanceRef] = (0, import_react20.useKeenSlider)(
|
|
1191
|
+
{
|
|
1192
|
+
slides: animation === "fade" ? import_react21.default.Children.count(children) : { perView: slidesPerView },
|
|
1193
|
+
drag: !isDesignMode,
|
|
1194
|
+
loop,
|
|
1195
|
+
selector: animation === "fade" ? null : ".keen-slider__slide",
|
|
1196
|
+
created: () => {
|
|
1197
|
+
setCreated(true);
|
|
1198
|
+
},
|
|
1199
|
+
slideChanged: (slider) => {
|
|
1200
|
+
setCurrentSlide(slider.track.details.rel);
|
|
1201
|
+
},
|
|
1202
|
+
detailsChanged: (slider) => {
|
|
1203
|
+
let newOpacities = slider.track?.details?.slides?.map(
|
|
1204
|
+
(slide) => slide.portion
|
|
1205
|
+
);
|
|
1206
|
+
setOpacities(newOpacities);
|
|
1207
|
+
}
|
|
1208
|
+
},
|
|
1209
|
+
sliderPlugins
|
|
1210
|
+
);
|
|
1211
|
+
(0, import_react21.useEffect)(() => {
|
|
1212
|
+
loadCSS({
|
|
1213
|
+
rel: "stylesheet",
|
|
1214
|
+
href: "https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css"
|
|
1215
|
+
}).then(() => setCssLoaded(true));
|
|
1216
|
+
}, []);
|
|
1217
|
+
(0, import_react21.useEffect)(() => {
|
|
1218
|
+
if (created && cssLoaded) {
|
|
1219
|
+
setReady(true);
|
|
1220
|
+
}
|
|
1221
|
+
}, [created, cssLoaded]);
|
|
1222
|
+
return {
|
|
1223
|
+
sliderRef,
|
|
1224
|
+
instanceRef,
|
|
1225
|
+
currentSlide,
|
|
1226
|
+
opacities,
|
|
1227
|
+
ready,
|
|
1228
|
+
created
|
|
1229
|
+
};
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
// src/elements/Slideshow/index.tsx
|
|
1233
|
+
var Slideshow = (0, import_react23.forwardRef)((props, ref) => {
|
|
1234
|
+
let {
|
|
1235
|
+
animation,
|
|
1236
|
+
showArrows,
|
|
1237
|
+
showDots,
|
|
1238
|
+
dotsPosition,
|
|
1239
|
+
dotsColor,
|
|
1240
|
+
children,
|
|
1241
|
+
...rest
|
|
1242
|
+
} = props;
|
|
1243
|
+
let { sliderRef, instanceRef, currentSlide, opacities, ready, created } = useSlideshowConfigs(props);
|
|
1244
|
+
let style = {
|
|
1245
|
+
"--slider-opacity": ready ? 1 : 0
|
|
1246
|
+
};
|
|
1247
|
+
let faderClass = "";
|
|
1248
|
+
if (animation === "fade") {
|
|
1249
|
+
faderClass = (0, import_react22.css)({
|
|
1250
|
+
".keen-slider__slide": opacities.reduce((acc, opacity, index) => {
|
|
1251
|
+
acc[`&:nth-child(${index + 1})`] = {
|
|
1252
|
+
opacity
|
|
1253
|
+
};
|
|
1254
|
+
return acc;
|
|
1255
|
+
}, {})
|
|
1256
|
+
})().className;
|
|
1257
|
+
}
|
|
1258
|
+
let _className = (0, import_clsx5.default)(
|
|
1259
|
+
faderClass,
|
|
1260
|
+
animation === "slide" ? "keen-slider" : "keen-fader"
|
|
1261
|
+
);
|
|
1262
|
+
return /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1263
|
+
ref,
|
|
1264
|
+
style,
|
|
1265
|
+
...rest
|
|
1266
|
+
}, /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1267
|
+
ref: sliderRef,
|
|
1268
|
+
className: _className
|
|
1269
|
+
}, children), showArrows && created && instanceRef?.current && /* @__PURE__ */ import_react23.default.createElement(Arrows, {
|
|
1270
|
+
instanceRef,
|
|
1271
|
+
currentSlide,
|
|
1272
|
+
className: "wv-slideshow--arrows",
|
|
1273
|
+
offset: 20
|
|
1274
|
+
}), showDots && created && instanceRef?.current && /* @__PURE__ */ import_react23.default.createElement(Dots, {
|
|
1275
|
+
instanceRef,
|
|
1276
|
+
currentSlide,
|
|
1277
|
+
className: "wv-slideshow--dots",
|
|
1278
|
+
position: dotsPosition,
|
|
1279
|
+
color: dotsColor,
|
|
1280
|
+
absolute: true
|
|
1281
|
+
}));
|
|
1282
|
+
});
|
|
1283
|
+
var css9 = {
|
|
1284
|
+
"@desktop": {
|
|
1285
|
+
opacity: "var(--slider-opacity, 0)",
|
|
1286
|
+
padding: "32px 0",
|
|
1287
|
+
position: "relative",
|
|
1288
|
+
".keen-slider": {
|
|
1289
|
+
height: "100%"
|
|
1290
|
+
},
|
|
1291
|
+
".keen-fader": {
|
|
1292
|
+
position: "relative",
|
|
1293
|
+
height: "100%",
|
|
1294
|
+
".keen-slider__slide": {
|
|
1295
|
+
position: "absolute",
|
|
1296
|
+
inset: 0
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
};
|
|
1301
|
+
Slideshow.defaultProps = {
|
|
1302
|
+
animation: "slide",
|
|
1303
|
+
slidesPerView: 1,
|
|
1304
|
+
spacing: 0,
|
|
1305
|
+
showArrows: true,
|
|
1306
|
+
showDots: true,
|
|
1307
|
+
dotsPosition: "bottom",
|
|
1308
|
+
dotsColor: "light",
|
|
1309
|
+
loop: true,
|
|
1310
|
+
autoRotate: false,
|
|
1311
|
+
changeSlidesEvery: 5
|
|
1312
|
+
};
|
|
1313
|
+
var Slideshow_default = Slideshow;
|
|
1314
|
+
|
|
1315
|
+
// src/elements/Slideshow/Slide.tsx
|
|
1316
|
+
var import_react29 = __toESM(require("react"));
|
|
1317
|
+
|
|
1318
|
+
// src/components/Background.tsx
|
|
1319
|
+
var import_react24 = require("@stitches/react");
|
|
1320
|
+
var import_react25 = __toESM(require("react"));
|
|
1321
|
+
function Background2(props) {
|
|
1322
|
+
let {
|
|
1323
|
+
backgroundColor,
|
|
1324
|
+
backgroundImage,
|
|
1325
|
+
backgroundFit,
|
|
1326
|
+
backgroundPosition,
|
|
1327
|
+
className
|
|
1328
|
+
} = props;
|
|
1329
|
+
let style = {
|
|
1330
|
+
["--bg-color"]: backgroundColor,
|
|
1331
|
+
["--bg-fit"]: backgroundFit,
|
|
1332
|
+
["--bg-position"]: backgroundPosition
|
|
1333
|
+
};
|
|
1334
|
+
if (backgroundImage || backgroundColor) {
|
|
1335
|
+
return /* @__PURE__ */ import_react25.default.createElement(StyledBackground, {
|
|
1336
|
+
style,
|
|
1337
|
+
className
|
|
1338
|
+
}, backgroundImage && /* @__PURE__ */ import_react25.default.createElement("img", {
|
|
1339
|
+
width: "100%",
|
|
1340
|
+
height: "100%",
|
|
1341
|
+
"data-blink-src": backgroundImage,
|
|
1342
|
+
alt: "Background"
|
|
1343
|
+
}));
|
|
1344
|
+
}
|
|
1345
|
+
return null;
|
|
1346
|
+
}
|
|
1347
|
+
var StyledBackground = (0, import_react24.styled)("div", {
|
|
1348
|
+
display: "block !important",
|
|
1349
|
+
position: "absolute",
|
|
1350
|
+
inset: 0,
|
|
1351
|
+
backgroundColor: "var(--bg-color)",
|
|
1352
|
+
img: {
|
|
1353
|
+
objectFit: "var(--bg-fit, cover)",
|
|
1354
|
+
objectPosition: "var(--bg-position, 50% 50%)"
|
|
1355
|
+
}
|
|
1356
|
+
});
|
|
1357
|
+
|
|
1358
|
+
// src/components/Overlay.tsx
|
|
1359
|
+
var import_react26 = require("@stitches/react");
|
|
1360
|
+
var import_react27 = __toESM(require("react"));
|
|
1361
|
+
function Overlay2(props) {
|
|
1362
|
+
let { enableOverlay: enabled, overlayOpacity: opacity, className } = props;
|
|
1363
|
+
if (enabled) {
|
|
1364
|
+
return /* @__PURE__ */ import_react27.default.createElement(StyledOverlay, {
|
|
1365
|
+
className,
|
|
1366
|
+
css: { ["--overlay-opacity"]: opacity / 100 }
|
|
1367
|
+
});
|
|
1368
|
+
}
|
|
1369
|
+
return null;
|
|
1370
|
+
}
|
|
1371
|
+
var StyledOverlay = (0, import_react26.styled)("div", {
|
|
1372
|
+
display: "block !important",
|
|
1373
|
+
position: "absolute",
|
|
1374
|
+
inset: 0,
|
|
1375
|
+
backgroundColor: "rgba(0, 0, 0, var(--overlay-opacity, .3))"
|
|
1376
|
+
});
|
|
1377
|
+
|
|
1378
|
+
// src/components/Placeholder.tsx
|
|
1379
|
+
var import_react28 = __toESM(require("react"));
|
|
1380
|
+
var Placeholder = (0, import_react28.forwardRef)(
|
|
1381
|
+
(props, ref) => {
|
|
1382
|
+
let { element, className, children, ...rest } = props;
|
|
1383
|
+
return /* @__PURE__ */ import_react28.default.createElement("div", {
|
|
1384
|
+
"data-wv-placeholder": true,
|
|
1385
|
+
ref,
|
|
1386
|
+
className,
|
|
1387
|
+
...rest
|
|
1388
|
+
}, /* @__PURE__ */ import_react28.default.createElement("div", {
|
|
1389
|
+
style: { fontWeight: 600, marginBottom: "10px" }
|
|
1390
|
+
}, element), /* @__PURE__ */ import_react28.default.createElement("div", null, children));
|
|
1391
|
+
}
|
|
1392
|
+
);
|
|
1393
|
+
var Placeholder_default = Placeholder;
|
|
1394
|
+
|
|
1395
|
+
// src/elements/Slideshow/position.ts
|
|
1396
|
+
var slidePositionMap = {
|
|
1397
|
+
"top left": {
|
|
1398
|
+
justifyContent: "flex-start",
|
|
1399
|
+
alignItems: "flex-start"
|
|
1400
|
+
},
|
|
1401
|
+
"top center": {
|
|
1402
|
+
justifyContent: "flex-start",
|
|
1403
|
+
alignItems: "center"
|
|
1404
|
+
},
|
|
1405
|
+
"top right": {
|
|
1406
|
+
justifyContent: "flex-start",
|
|
1407
|
+
alignItems: "flex-end"
|
|
1408
|
+
},
|
|
1409
|
+
"center left": {
|
|
1410
|
+
justifyContent: "center",
|
|
1411
|
+
alignItems: "flex-start"
|
|
1412
|
+
},
|
|
1413
|
+
"center center": {
|
|
1414
|
+
justifyContent: "center",
|
|
1415
|
+
alignItems: "center"
|
|
1416
|
+
},
|
|
1417
|
+
"center right": {
|
|
1418
|
+
justifyContent: "center",
|
|
1419
|
+
alignItems: "flex-end"
|
|
1420
|
+
},
|
|
1421
|
+
"bottom left": {
|
|
1422
|
+
justifyContent: "flex-end",
|
|
1423
|
+
alignItems: "flex-start"
|
|
1424
|
+
},
|
|
1425
|
+
"bottom center": {
|
|
1426
|
+
justifyContent: "flex-end",
|
|
1427
|
+
alignItems: "center"
|
|
1428
|
+
},
|
|
1429
|
+
"bottom right": {
|
|
1430
|
+
justifyContent: "flex-end",
|
|
1431
|
+
alignItems: "flex-end"
|
|
1432
|
+
}
|
|
1433
|
+
};
|
|
1434
|
+
|
|
1435
|
+
// src/elements/Slideshow/Slide.tsx
|
|
1436
|
+
var Slide = (0, import_react29.forwardRef)((props, ref) => {
|
|
1437
|
+
let {
|
|
1438
|
+
contentPosition,
|
|
1439
|
+
backgroundColor,
|
|
1440
|
+
backgroundImage,
|
|
1441
|
+
backgroundFit,
|
|
1442
|
+
backgroundPosition,
|
|
1443
|
+
enableOverlay,
|
|
1444
|
+
overlayOpacity,
|
|
1445
|
+
children,
|
|
1446
|
+
...rest
|
|
1447
|
+
} = props;
|
|
1448
|
+
return /* @__PURE__ */ import_react29.default.createElement("div", {
|
|
1449
|
+
className: "keen-slider__slide"
|
|
1450
|
+
}, /* @__PURE__ */ import_react29.default.createElement(Background2, {
|
|
1451
|
+
backgroundColor,
|
|
1452
|
+
backgroundImage,
|
|
1453
|
+
backgroundFit,
|
|
1454
|
+
backgroundPosition,
|
|
1455
|
+
className: "slide-background"
|
|
1456
|
+
}), /* @__PURE__ */ import_react29.default.createElement(Overlay2, {
|
|
1457
|
+
enableOverlay,
|
|
1458
|
+
overlayOpacity,
|
|
1459
|
+
className: "slide-overlay"
|
|
1460
|
+
}), /* @__PURE__ */ import_react29.default.createElement("div", {
|
|
1461
|
+
ref,
|
|
1462
|
+
style: slidePositionMap[contentPosition],
|
|
1463
|
+
...rest
|
|
1464
|
+
}, children?.length ? children : /* @__PURE__ */ import_react29.default.createElement(Placeholder_default, {
|
|
1465
|
+
element: "Slide",
|
|
1466
|
+
className: "wv-slide-placeholder"
|
|
1467
|
+
}, "Drag and drop elements here")));
|
|
1468
|
+
});
|
|
1469
|
+
var css10 = {
|
|
1470
|
+
"@desktop": {
|
|
1471
|
+
position: "relative",
|
|
1472
|
+
height: "100%",
|
|
1473
|
+
width: "1224px",
|
|
1474
|
+
maxWidth: "100%",
|
|
1475
|
+
margin: "0 auto",
|
|
1476
|
+
display: "flex",
|
|
1477
|
+
flexDirection: "column",
|
|
1478
|
+
padding: "100px 20px",
|
|
1479
|
+
".wv-slide-placeholder": {
|
|
1480
|
+
height: "200px",
|
|
1481
|
+
zIndex: 1
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
};
|
|
1485
|
+
Slide.defaultProps = {
|
|
1486
|
+
contentPosition: "center center",
|
|
1487
|
+
backgroundFit: "cover",
|
|
1488
|
+
backgroundPosition: "center center",
|
|
1489
|
+
enableOverlay: false,
|
|
1490
|
+
overlayOpacity: 30
|
|
1491
|
+
};
|
|
1492
|
+
var Slide_default = Slide;
|
|
1493
|
+
|
|
1494
|
+
// src/elements/index.ts
|
|
1495
|
+
var Elements = {
|
|
1496
|
+
Countdown: {
|
|
1497
|
+
Component: Countdown_default,
|
|
1498
|
+
type: "countdown",
|
|
1499
|
+
defaultCss: css3
|
|
1500
|
+
},
|
|
1501
|
+
Button: {
|
|
1502
|
+
Component: Button_default,
|
|
1503
|
+
type: "button",
|
|
1504
|
+
defaultCss: css
|
|
1505
|
+
},
|
|
1506
|
+
Container: {
|
|
1507
|
+
Component: Container_default,
|
|
1508
|
+
type: "container",
|
|
1509
|
+
defaultCss: css2
|
|
1510
|
+
},
|
|
1511
|
+
Image: {
|
|
1512
|
+
Component: Image_default,
|
|
1513
|
+
type: "image",
|
|
1514
|
+
defaultCss: css4
|
|
1515
|
+
},
|
|
1516
|
+
Layout: {
|
|
1517
|
+
Component: Layout_default,
|
|
1518
|
+
type: "layout",
|
|
1519
|
+
defaultCss: css5
|
|
1520
|
+
},
|
|
1521
|
+
Map: {
|
|
1522
|
+
Component: Map_default,
|
|
1523
|
+
type: "map",
|
|
1524
|
+
defaultCss: css6
|
|
1525
|
+
},
|
|
1526
|
+
Text: {
|
|
1527
|
+
Component: Text_default,
|
|
1528
|
+
type: "text",
|
|
1529
|
+
defaultCss: css7
|
|
1530
|
+
},
|
|
1531
|
+
Video: {
|
|
1532
|
+
Component: Video_default,
|
|
1533
|
+
type: "video",
|
|
1534
|
+
defaultCss: css8
|
|
1535
|
+
},
|
|
1536
|
+
Slideshow: {
|
|
1537
|
+
Component: Slideshow_default,
|
|
1538
|
+
type: "slideshow",
|
|
1539
|
+
defaultCss: css9
|
|
1540
|
+
},
|
|
1541
|
+
Slide: {
|
|
1542
|
+
Component: Slide_default,
|
|
1543
|
+
type: "slide",
|
|
1544
|
+
defaultCss: css10
|
|
1545
|
+
}
|
|
1546
|
+
};
|
|
1547
|
+
|
|
1548
|
+
// src/context.ts
|
|
1549
|
+
var createRootContext = (configs) => {
|
|
1550
|
+
let rootContext = new import_core.Weaverse(configs);
|
|
1551
|
+
Object.keys(Elements).forEach((key) => {
|
|
1552
|
+
rootContext.registerElement(Elements[key]);
|
|
1553
|
+
});
|
|
1554
|
+
return rootContext;
|
|
1555
|
+
};
|
|
1556
|
+
var WeaverseContext = (0, import_react30.createContext)({});
|
|
1557
|
+
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1558
|
+
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1559
|
+
|
|
1560
|
+
// src/components/Modal/index.tsx
|
|
1561
|
+
var Modal_exports = {};
|
|
1562
|
+
__export(Modal_exports, {
|
|
1563
|
+
Modal: () => Modal,
|
|
1564
|
+
ModalClose: () => ModalClose,
|
|
1565
|
+
ModalContent: () => ModalContent,
|
|
1566
|
+
ModalHeader: () => ModalHeader,
|
|
1567
|
+
ModalTrigger: () => ModalTrigger
|
|
1568
|
+
});
|
|
1569
|
+
var import_react_dialog2 = require("@radix-ui/react-dialog");
|
|
1570
|
+
var import_react33 = __toESM(require("react"));
|
|
1571
|
+
|
|
984
1572
|
// src/components/Modal/styled.ts
|
|
985
1573
|
var import_react_dialog = require("@radix-ui/react-dialog");
|
|
986
|
-
var
|
|
987
|
-
var overlayShow = (0,
|
|
1574
|
+
var import_react31 = require("@stitches/react");
|
|
1575
|
+
var overlayShow = (0, import_react31.keyframes)({
|
|
988
1576
|
"0%": { opacity: 0 },
|
|
989
1577
|
"100%": { opacity: 1 }
|
|
990
1578
|
});
|
|
991
|
-
var contentShow = (0,
|
|
1579
|
+
var contentShow = (0, import_react31.keyframes)({
|
|
992
1580
|
"0%": { opacity: 0, transform: "translate(-50%, -48%) scale(.96)" },
|
|
993
1581
|
"100%": { opacity: 1, transform: "translate(-50%, -50%) scale(1)" }
|
|
994
1582
|
});
|
|
995
|
-
var
|
|
1583
|
+
var StyledOverlay2 = (0, import_react31.styled)(import_react_dialog.Overlay, {
|
|
996
1584
|
display: "block !important",
|
|
997
1585
|
backgroundColor: "rgba(0, 0, 0, .3)",
|
|
998
1586
|
position: "fixed",
|
|
@@ -1000,7 +1588,7 @@ var StyledOverlay = (0, import_react17.styled)(import_react_dialog.Overlay, {
|
|
|
1000
1588
|
inset: 0,
|
|
1001
1589
|
animation: `${overlayShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
|
|
1002
1590
|
});
|
|
1003
|
-
var StyledTitle = (0,
|
|
1591
|
+
var StyledTitle = (0, import_react31.styled)(import_react_dialog.Title, {
|
|
1004
1592
|
margin: "0 0 24px",
|
|
1005
1593
|
fontWeight: 500,
|
|
1006
1594
|
fontSize: 24,
|
|
@@ -1009,7 +1597,7 @@ var StyledTitle = (0, import_react17.styled)(import_react_dialog.Title, {
|
|
|
1009
1597
|
fontSize: 20
|
|
1010
1598
|
}
|
|
1011
1599
|
});
|
|
1012
|
-
var StyledContent = (0,
|
|
1600
|
+
var StyledContent = (0, import_react31.styled)(import_react_dialog.Content, {
|
|
1013
1601
|
backgroundColor: "white",
|
|
1014
1602
|
borderRadius: 6,
|
|
1015
1603
|
boxShadow: "hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px",
|
|
@@ -1040,7 +1628,7 @@ var StyledContent = (0, import_react17.styled)(import_react_dialog.Content, {
|
|
|
1040
1628
|
}
|
|
1041
1629
|
}
|
|
1042
1630
|
});
|
|
1043
|
-
var StyledCloseIcon = (0,
|
|
1631
|
+
var StyledCloseIcon = (0, import_react31.styled)("button", {
|
|
1044
1632
|
all: "unset",
|
|
1045
1633
|
cursor: "pointer",
|
|
1046
1634
|
fontFamily: "inherit",
|
|
@@ -1065,10 +1653,10 @@ var StyledCloseIcon = (0, import_react17.styled)("button", {
|
|
|
1065
1653
|
});
|
|
1066
1654
|
|
|
1067
1655
|
// src/components/Modal/useOpenChangeEffect.ts
|
|
1068
|
-
var
|
|
1656
|
+
var import_react32 = require("react");
|
|
1069
1657
|
function useOpenChangeEffect(props) {
|
|
1070
1658
|
let { open, defaultOpen, onOpenChange } = props;
|
|
1071
|
-
let rootCtx = (0,
|
|
1659
|
+
let rootCtx = (0, import_react32.useContext)(WeaverseContext);
|
|
1072
1660
|
let toggleRootzIndex = (open2) => {
|
|
1073
1661
|
let { contentRootElement } = rootCtx;
|
|
1074
1662
|
if (contentRootElement) {
|
|
@@ -1079,7 +1667,7 @@ function useOpenChangeEffect(props) {
|
|
|
1079
1667
|
}
|
|
1080
1668
|
}
|
|
1081
1669
|
};
|
|
1082
|
-
(0,
|
|
1670
|
+
(0, import_react32.useEffect)(() => {
|
|
1083
1671
|
let isOpen = open || defaultOpen;
|
|
1084
1672
|
toggleRootzIndex(isOpen);
|
|
1085
1673
|
}, [open, defaultOpen]);
|
|
@@ -1094,7 +1682,7 @@ function useOpenChangeEffect(props) {
|
|
|
1094
1682
|
var Modal = (props) => {
|
|
1095
1683
|
let { children, open, defaultOpen, onOpenChange, ...rest } = props;
|
|
1096
1684
|
let handleOpenChange = useOpenChangeEffect(props);
|
|
1097
|
-
return /* @__PURE__ */
|
|
1685
|
+
return /* @__PURE__ */ import_react33.default.createElement(import_react_dialog2.Root, {
|
|
1098
1686
|
open,
|
|
1099
1687
|
defaultOpen,
|
|
1100
1688
|
onOpenChange: handleOpenChange,
|
|
@@ -1102,30 +1690,30 @@ var Modal = (props) => {
|
|
|
1102
1690
|
}, children);
|
|
1103
1691
|
};
|
|
1104
1692
|
var ModalTrigger = import_react_dialog2.Trigger;
|
|
1105
|
-
var ModalHeader = (0,
|
|
1693
|
+
var ModalHeader = (0, import_react33.forwardRef)(
|
|
1106
1694
|
(props, ref) => {
|
|
1107
1695
|
let { children, ...rest } = props;
|
|
1108
|
-
return /* @__PURE__ */
|
|
1696
|
+
return /* @__PURE__ */ import_react33.default.createElement(StyledTitle, {
|
|
1109
1697
|
ref,
|
|
1110
1698
|
...rest,
|
|
1111
1699
|
"data-wv-modal-header": true
|
|
1112
1700
|
}, children);
|
|
1113
1701
|
}
|
|
1114
1702
|
);
|
|
1115
|
-
var ModalContent = (0,
|
|
1703
|
+
var ModalContent = (0, import_react33.forwardRef)(
|
|
1116
1704
|
(props, ref) => {
|
|
1117
1705
|
let { children, size, portal, ...rest } = props;
|
|
1118
|
-
let modalContent = /* @__PURE__ */
|
|
1706
|
+
let modalContent = /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(StyledOverlay2, null), /* @__PURE__ */ import_react33.default.createElement(StyledContent, {
|
|
1119
1707
|
...rest,
|
|
1120
1708
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
1121
1709
|
"data-wv-modal": true,
|
|
1122
1710
|
"data-size": size,
|
|
1123
1711
|
ref
|
|
1124
|
-
}, /* @__PURE__ */
|
|
1712
|
+
}, /* @__PURE__ */ import_react33.default.createElement(ModalClose, null), /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1125
1713
|
className: "wv-modal-content"
|
|
1126
1714
|
}, children)));
|
|
1127
1715
|
if (portal) {
|
|
1128
|
-
return /* @__PURE__ */
|
|
1716
|
+
return /* @__PURE__ */ import_react33.default.createElement(import_react_dialog2.Portal, null, modalContent);
|
|
1129
1717
|
}
|
|
1130
1718
|
return modalContent;
|
|
1131
1719
|
}
|
|
@@ -1134,13 +1722,13 @@ ModalContent.defaultProps = {
|
|
|
1134
1722
|
size: "auto",
|
|
1135
1723
|
portal: false
|
|
1136
1724
|
};
|
|
1137
|
-
var ModalClose = (0,
|
|
1725
|
+
var ModalClose = (0, import_react33.forwardRef)(
|
|
1138
1726
|
(props, ref) => {
|
|
1139
1727
|
let { asChild, children, ...rest } = props;
|
|
1140
|
-
let closeIcon = /* @__PURE__ */
|
|
1728
|
+
let closeIcon = /* @__PURE__ */ import_react33.default.createElement(StyledCloseIcon, null, /* @__PURE__ */ import_react33.default.createElement(Icon, {
|
|
1141
1729
|
name: "X"
|
|
1142
1730
|
}));
|
|
1143
|
-
return /* @__PURE__ */
|
|
1731
|
+
return /* @__PURE__ */ import_react33.default.createElement(import_react_dialog2.Close, {
|
|
1144
1732
|
asChild: true,
|
|
1145
1733
|
...rest,
|
|
1146
1734
|
ref
|
|
@@ -1149,131 +1737,33 @@ var ModalClose = (0, import_react19.forwardRef)(
|
|
|
1149
1737
|
);
|
|
1150
1738
|
|
|
1151
1739
|
// src/components/Spinner.tsx
|
|
1152
|
-
var
|
|
1740
|
+
var import_react34 = __toESM(require("react"));
|
|
1153
1741
|
function Spinner() {
|
|
1154
|
-
return /* @__PURE__ */
|
|
1742
|
+
return /* @__PURE__ */ import_react34.default.createElement("span", {
|
|
1155
1743
|
className: "wv-spinner-wrapper"
|
|
1156
|
-
}, /* @__PURE__ */
|
|
1744
|
+
}, /* @__PURE__ */ import_react34.default.createElement(Icon, {
|
|
1157
1745
|
name: "CircleNotch",
|
|
1158
1746
|
className: "wv-spinner"
|
|
1159
1747
|
}));
|
|
1160
1748
|
}
|
|
1161
1749
|
|
|
1162
1750
|
// src/components/Tooltip.tsx
|
|
1163
|
-
var
|
|
1751
|
+
var import_react35 = __toESM(require("react"));
|
|
1164
1752
|
function Tooltip({ children }) {
|
|
1165
|
-
return /* @__PURE__ */
|
|
1753
|
+
return /* @__PURE__ */ import_react35.default.createElement("span", {
|
|
1166
1754
|
className: "wv-tooltip"
|
|
1167
1755
|
}, children);
|
|
1168
1756
|
}
|
|
1169
1757
|
|
|
1170
1758
|
// src/components/Slider/index.tsx
|
|
1171
|
-
var
|
|
1172
|
-
var
|
|
1173
|
-
var
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
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
|
|
1273
|
-
function Slider({ children, className, gap }) {
|
|
1274
|
-
let [currentSlide, setCurrentSlide] = (0, import_react24.useState)(0);
|
|
1275
|
-
let [created, setCreated] = (0, import_react24.useState)(false);
|
|
1276
|
-
let [ref, instanceRef] = (0, import_react23.useKeenSlider)(
|
|
1759
|
+
var import_clsx6 = __toESM(require("clsx"));
|
|
1760
|
+
var import_react36 = require("keen-slider/react");
|
|
1761
|
+
var import_react37 = __toESM(require("react"));
|
|
1762
|
+
function Slider(props) {
|
|
1763
|
+
let { children, className, gap, arrowOffset } = props;
|
|
1764
|
+
let [currentSlide, setCurrentSlide] = (0, import_react37.useState)(0);
|
|
1765
|
+
let [created, setCreated] = (0, import_react37.useState)(false);
|
|
1766
|
+
let [ref, instanceRef] = (0, import_react36.useKeenSlider)(
|
|
1277
1767
|
{
|
|
1278
1768
|
slides: { perView: 4, spacing: gap },
|
|
1279
1769
|
breakpoints: {
|
|
@@ -1296,174 +1786,48 @@ function Slider({ children, className, gap }) {
|
|
|
1296
1786
|
},
|
|
1297
1787
|
[ResizePlugin]
|
|
1298
1788
|
);
|
|
1299
|
-
let _className = (0,
|
|
1300
|
-
let arrowsClass = (0,
|
|
1301
|
-
return /* @__PURE__ */
|
|
1789
|
+
let _className = (0, import_clsx6.default)("keen-slider", className);
|
|
1790
|
+
let arrowsClass = (0, import_clsx6.default)(className && `${className}-arrows`);
|
|
1791
|
+
return /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, /* @__PURE__ */ import_react37.default.createElement("div", {
|
|
1302
1792
|
ref,
|
|
1303
1793
|
className: _className
|
|
1304
|
-
}, /* @__PURE__ */
|
|
1794
|
+
}, /* @__PURE__ */ import_react37.default.createElement("link", {
|
|
1305
1795
|
rel: "stylesheet",
|
|
1306
1796
|
href: "https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css"
|
|
1307
|
-
}), children), created && instanceRef?.current && /* @__PURE__ */
|
|
1797
|
+
}), children), created && instanceRef?.current && /* @__PURE__ */ import_react37.default.createElement(Arrows, {
|
|
1308
1798
|
currentSlide,
|
|
1309
1799
|
instanceRef,
|
|
1310
|
-
className: arrowsClass
|
|
1800
|
+
className: arrowsClass,
|
|
1801
|
+
offset: arrowOffset
|
|
1311
1802
|
}));
|
|
1312
1803
|
}
|
|
1313
1804
|
|
|
1314
1805
|
// src/components/index.ts
|
|
1315
1806
|
var Components = {
|
|
1807
|
+
Background: Background2,
|
|
1808
|
+
Icon,
|
|
1809
|
+
ModalComponents: Modal_exports,
|
|
1810
|
+
Overlay: Overlay2,
|
|
1316
1811
|
Placeholder: Placeholder_default,
|
|
1317
1812
|
Spinner,
|
|
1318
|
-
ModalComponents: Modal_exports,
|
|
1319
|
-
Icon,
|
|
1320
1813
|
Slider,
|
|
1321
1814
|
Tooltip
|
|
1322
1815
|
};
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
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;
|
|
1816
|
+
var SliderComponents = {
|
|
1817
|
+
Arrows,
|
|
1818
|
+
Dots,
|
|
1819
|
+
ResizePlugin,
|
|
1820
|
+
AutoplayPlugin
|
|
1454
1821
|
};
|
|
1455
|
-
var WeaverseContext = (0, import_react26.createContext)({});
|
|
1456
|
-
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1457
|
-
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1458
1822
|
|
|
1459
1823
|
// src/renderer.tsx
|
|
1460
1824
|
var import_core2 = require("@weaverse/core");
|
|
1461
|
-
var
|
|
1825
|
+
var import_react38 = __toESM(require("react"));
|
|
1462
1826
|
var WeaverseRoot = ({ context }) => {
|
|
1463
|
-
let [, setData] = (0,
|
|
1464
|
-
let rootRef = (0,
|
|
1827
|
+
let [, setData] = (0, import_react38.useState)(context.projectData);
|
|
1828
|
+
let rootRef = (0, import_react38.useRef)();
|
|
1465
1829
|
let renderRoot = () => setData({});
|
|
1466
|
-
(0,
|
|
1830
|
+
(0, import_react38.useEffect)(() => {
|
|
1467
1831
|
context.subscribe(renderRoot);
|
|
1468
1832
|
context.contentRootElement = rootRef.current;
|
|
1469
1833
|
return () => {
|
|
@@ -1473,23 +1837,23 @@ var WeaverseRoot = ({ context }) => {
|
|
|
1473
1837
|
let eventHandlers = context?.studioBridge?.eventHandlers || {};
|
|
1474
1838
|
let themeClass = context.stitchesInstance.theme.className;
|
|
1475
1839
|
if (context.projectData?.rootId) {
|
|
1476
|
-
return /* @__PURE__ */
|
|
1840
|
+
return /* @__PURE__ */ import_react38.default.createElement("div", {
|
|
1477
1841
|
className: `weaverse-content-root ${themeClass}`,
|
|
1478
1842
|
...eventHandlers,
|
|
1479
1843
|
ref: rootRef
|
|
1480
|
-
}, /* @__PURE__ */
|
|
1844
|
+
}, /* @__PURE__ */ import_react38.default.createElement(WeaverseContextProvider, {
|
|
1481
1845
|
value: context
|
|
1482
|
-
}, /* @__PURE__ */
|
|
1846
|
+
}, /* @__PURE__ */ import_react38.default.createElement(ItemInstance, {
|
|
1483
1847
|
id: context.projectData.rootId
|
|
1484
1848
|
})));
|
|
1485
1849
|
}
|
|
1486
1850
|
return null;
|
|
1487
1851
|
};
|
|
1488
1852
|
var ItemComponent = ({ instance }) => {
|
|
1489
|
-
let { stitchesInstance, elementInstances } = (0,
|
|
1490
|
-
let [data, setData] = (0,
|
|
1491
|
-
let { id, type, childIds = [], css:
|
|
1492
|
-
(0,
|
|
1853
|
+
let { stitchesInstance, elementInstances } = (0, import_react38.useContext)(WeaverseContext);
|
|
1854
|
+
let [data, setData] = (0, import_react38.useState)(instance.data);
|
|
1855
|
+
let { id, type, childIds = [], css: css11, className, ...rest } = data;
|
|
1856
|
+
(0, import_react38.useEffect)(() => {
|
|
1493
1857
|
let render = (data2) => setData({ ...data2 });
|
|
1494
1858
|
instance.subscribe(render);
|
|
1495
1859
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
@@ -1505,13 +1869,13 @@ var ItemComponent = ({ instance }) => {
|
|
|
1505
1869
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
1506
1870
|
rest.ref = instance.ref;
|
|
1507
1871
|
}
|
|
1508
|
-
return /* @__PURE__ */
|
|
1872
|
+
return /* @__PURE__ */ import_react38.default.createElement(Component, {
|
|
1509
1873
|
key: id,
|
|
1510
1874
|
"data-wv-type": type,
|
|
1511
1875
|
"data-wv-id": id,
|
|
1512
1876
|
className: generateItemClassName(instance, stitchesInstance),
|
|
1513
1877
|
...rest
|
|
1514
|
-
}, childIds.map((id2) => /* @__PURE__ */
|
|
1878
|
+
}, childIds.map((id2) => /* @__PURE__ */ import_react38.default.createElement(ItemInstance, {
|
|
1515
1879
|
key: id2,
|
|
1516
1880
|
id: id2
|
|
1517
1881
|
})));
|
|
@@ -1521,15 +1885,15 @@ var ItemComponent = ({ instance }) => {
|
|
|
1521
1885
|
}
|
|
1522
1886
|
};
|
|
1523
1887
|
var ItemInstance = ({ id }) => {
|
|
1524
|
-
let context = (0,
|
|
1888
|
+
let context = (0, import_react38.useContext)(WeaverseContext);
|
|
1525
1889
|
let { itemInstances } = context;
|
|
1526
1890
|
let instance = itemInstances.get(id);
|
|
1527
1891
|
if (!instance) {
|
|
1528
|
-
return /* @__PURE__ */
|
|
1892
|
+
return /* @__PURE__ */ import_react38.default.createElement("div", {
|
|
1529
1893
|
style: { display: "none" }
|
|
1530
1894
|
}, "Item instance ", id, " not found");
|
|
1531
1895
|
}
|
|
1532
|
-
return /* @__PURE__ */
|
|
1896
|
+
return /* @__PURE__ */ import_react38.default.createElement(ItemComponent, {
|
|
1533
1897
|
key: id,
|
|
1534
1898
|
instance
|
|
1535
1899
|
});
|
|
@@ -1538,6 +1902,7 @@ var ItemInstance = ({ id }) => {
|
|
|
1538
1902
|
0 && (module.exports = {
|
|
1539
1903
|
Components,
|
|
1540
1904
|
Elements,
|
|
1905
|
+
SliderComponents,
|
|
1541
1906
|
WeaverseContext,
|
|
1542
1907
|
WeaverseContextConsumer,
|
|
1543
1908
|
WeaverseContextProvider,
|