@weaverse/react 0.7.56 → 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 +46 -9
- package/dist/index.js +618 -396
- package/dist/index.mjs +610 -388
- 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",
|
|
@@ -361,7 +324,7 @@ Image.defaultProps = {
|
|
|
361
324
|
src: "https://ucarecdn.com/cf54e41e-36a0-4547-a140-a302e0387890/",
|
|
362
325
|
alt: "Image alt text",
|
|
363
326
|
objectFit: "cover",
|
|
364
|
-
objectPosition: "center",
|
|
327
|
+
objectPosition: "center center",
|
|
365
328
|
clickAction: "none",
|
|
366
329
|
openLinkInNewTab: false,
|
|
367
330
|
linkTo: ""
|
|
@@ -499,7 +462,11 @@ Layout.defaultProps = {
|
|
|
499
462
|
rows: 16,
|
|
500
463
|
columns: 12,
|
|
501
464
|
gap: 16,
|
|
502
|
-
rowSize: 48
|
|
465
|
+
rowSize: 48,
|
|
466
|
+
objectFit: "cover",
|
|
467
|
+
objectPosition: "center center",
|
|
468
|
+
enableOverlay: false,
|
|
469
|
+
overlayOpacity: 30
|
|
503
470
|
};
|
|
504
471
|
var Layout_default = Layout;
|
|
505
472
|
|
|
@@ -689,39 +656,17 @@ Video.defaultProps = {
|
|
|
689
656
|
};
|
|
690
657
|
var Video_default = Video;
|
|
691
658
|
|
|
692
|
-
// src/elements/
|
|
693
|
-
var
|
|
694
|
-
|
|
695
|
-
// src/components/Placeholder.tsx
|
|
696
|
-
var import_react14 = __toESM(require("react"));
|
|
697
|
-
var Placeholder = (0, import_react14.forwardRef)(
|
|
698
|
-
(props, ref) => {
|
|
699
|
-
let { element, children, ...rest } = props;
|
|
700
|
-
return /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
701
|
-
"data-wv-placeholder": true,
|
|
702
|
-
ref,
|
|
703
|
-
...rest
|
|
704
|
-
}, /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
705
|
-
style: { fontWeight: 600, marginBottom: "10px" }
|
|
706
|
-
}, element), /* @__PURE__ */ import_react14.default.createElement("div", null, children));
|
|
707
|
-
}
|
|
708
|
-
);
|
|
709
|
-
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"));
|
|
710
662
|
|
|
711
|
-
// src/components/
|
|
712
|
-
var
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
ModalClose: () => ModalClose,
|
|
716
|
-
ModalContent: () => ModalContent,
|
|
717
|
-
ModalHeader: () => ModalHeader,
|
|
718
|
-
ModalTrigger: () => ModalTrigger
|
|
719
|
-
});
|
|
720
|
-
var import_react_dialog2 = require("@radix-ui/react-dialog");
|
|
721
|
-
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"));
|
|
722
667
|
|
|
723
668
|
// src/components/Icons/index.tsx
|
|
724
|
-
var
|
|
669
|
+
var import_react15 = __toESM(require("react"));
|
|
725
670
|
|
|
726
671
|
// src/components/Icons/Phosphor.tsx
|
|
727
672
|
var Phosphor_exports = {};
|
|
@@ -736,39 +681,39 @@ __export(Phosphor_exports, {
|
|
|
736
681
|
ShoppingCart: () => ShoppingCart,
|
|
737
682
|
X: () => X
|
|
738
683
|
});
|
|
739
|
-
var
|
|
684
|
+
var import_react14 = __toESM(require("react"));
|
|
740
685
|
var CircleNotch = (props) => {
|
|
741
|
-
return /* @__PURE__ */
|
|
686
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
742
687
|
xmlns: "http://www.w3.org/2000/svg",
|
|
743
688
|
fill: "none",
|
|
744
689
|
viewBox: "0 0 24 24",
|
|
745
690
|
...props
|
|
746
|
-
}, /* @__PURE__ */
|
|
691
|
+
}, /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
747
692
|
style: { opacity: ".25" },
|
|
748
693
|
cx: "12",
|
|
749
694
|
cy: "12",
|
|
750
695
|
r: "10",
|
|
751
696
|
stroke: "currentColor",
|
|
752
697
|
strokeWidth: "4"
|
|
753
|
-
}), /* @__PURE__ */
|
|
698
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
754
699
|
style: { opacity: ".75" },
|
|
755
700
|
fill: "currentColor",
|
|
756
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"
|
|
757
702
|
}));
|
|
758
703
|
};
|
|
759
704
|
var X = (props) => {
|
|
760
|
-
return /* @__PURE__ */
|
|
705
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
761
706
|
xmlns: "http://www.w3.org/2000/svg",
|
|
762
707
|
width: "20",
|
|
763
708
|
height: "20",
|
|
764
709
|
fill: "currentColor",
|
|
765
710
|
viewBox: "0 0 256 256",
|
|
766
711
|
...props
|
|
767
|
-
}, /* @__PURE__ */
|
|
712
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
768
713
|
width: "256",
|
|
769
714
|
height: "256",
|
|
770
715
|
fill: "none"
|
|
771
|
-
}), /* @__PURE__ */
|
|
716
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
772
717
|
x1: "200",
|
|
773
718
|
y1: "56",
|
|
774
719
|
x2: "56",
|
|
@@ -778,7 +723,7 @@ var X = (props) => {
|
|
|
778
723
|
strokeLinecap: "round",
|
|
779
724
|
strokeLinejoin: "round",
|
|
780
725
|
strokeWidth: "12"
|
|
781
|
-
}), /* @__PURE__ */
|
|
726
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
782
727
|
x1: "200",
|
|
783
728
|
y1: "200",
|
|
784
729
|
x2: "56",
|
|
@@ -791,7 +736,7 @@ var X = (props) => {
|
|
|
791
736
|
}));
|
|
792
737
|
};
|
|
793
738
|
var Minus = (props) => {
|
|
794
|
-
return /* @__PURE__ */
|
|
739
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
795
740
|
width: "196",
|
|
796
741
|
height: "196",
|
|
797
742
|
fill: "currentColor",
|
|
@@ -799,12 +744,12 @@ var Minus = (props) => {
|
|
|
799
744
|
xmlns: "http://www.w3.org/2000/svg",
|
|
800
745
|
viewBox: "0 0 384 512",
|
|
801
746
|
...props
|
|
802
|
-
}, /* @__PURE__ */
|
|
747
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
803
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"
|
|
804
749
|
}));
|
|
805
750
|
};
|
|
806
751
|
var Plus = (props) => {
|
|
807
|
-
return /* @__PURE__ */
|
|
752
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
808
753
|
width: "196",
|
|
809
754
|
height: "196",
|
|
810
755
|
fill: "currentColor",
|
|
@@ -812,23 +757,23 @@ var Plus = (props) => {
|
|
|
812
757
|
xmlns: "http://www.w3.org/2000/svg",
|
|
813
758
|
viewBox: "0 0 384 512",
|
|
814
759
|
...props
|
|
815
|
-
}, /* @__PURE__ */
|
|
760
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
816
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"
|
|
817
762
|
}));
|
|
818
763
|
};
|
|
819
764
|
var ArrowLeft = (props) => {
|
|
820
|
-
return /* @__PURE__ */
|
|
765
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
821
766
|
xmlns: "http://www.w3.org/2000/svg",
|
|
822
767
|
width: "192",
|
|
823
768
|
height: "192",
|
|
824
769
|
fill: "currentColor",
|
|
825
770
|
viewBox: "0 0 256 256",
|
|
826
771
|
...props
|
|
827
|
-
}, /* @__PURE__ */
|
|
772
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
828
773
|
width: "256",
|
|
829
774
|
height: "256",
|
|
830
775
|
fill: "none"
|
|
831
|
-
}), /* @__PURE__ */
|
|
776
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
832
777
|
x1: "216",
|
|
833
778
|
y1: "128",
|
|
834
779
|
x2: "40",
|
|
@@ -838,7 +783,7 @@ var ArrowLeft = (props) => {
|
|
|
838
783
|
strokeLinecap: "round",
|
|
839
784
|
strokeLinejoin: "round",
|
|
840
785
|
strokeWidth: "16"
|
|
841
|
-
}), /* @__PURE__ */
|
|
786
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
842
787
|
points: "112 56 40 128 112 200",
|
|
843
788
|
fill: "none",
|
|
844
789
|
stroke: "currentColor",
|
|
@@ -848,18 +793,18 @@ var ArrowLeft = (props) => {
|
|
|
848
793
|
}));
|
|
849
794
|
};
|
|
850
795
|
var ArrowRight = (props) => {
|
|
851
|
-
return /* @__PURE__ */
|
|
796
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
852
797
|
xmlns: "http://www.w3.org/2000/svg",
|
|
853
798
|
width: "192",
|
|
854
799
|
height: "192",
|
|
855
800
|
fill: "currentColor",
|
|
856
801
|
viewBox: "0 0 256 256",
|
|
857
802
|
...props
|
|
858
|
-
}, /* @__PURE__ */
|
|
803
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
859
804
|
width: "256",
|
|
860
805
|
height: "256",
|
|
861
806
|
fill: "none"
|
|
862
|
-
}), /* @__PURE__ */
|
|
807
|
+
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
|
863
808
|
x1: "40",
|
|
864
809
|
y1: "128",
|
|
865
810
|
x2: "216",
|
|
@@ -869,7 +814,7 @@ var ArrowRight = (props) => {
|
|
|
869
814
|
strokeLinecap: "round",
|
|
870
815
|
strokeLinejoin: "round",
|
|
871
816
|
strokeWidth: "16"
|
|
872
|
-
}), /* @__PURE__ */
|
|
817
|
+
}), /* @__PURE__ */ import_react14.default.createElement("polyline", {
|
|
873
818
|
points: "144 56 216 128 144 200",
|
|
874
819
|
fill: "none",
|
|
875
820
|
stroke: "currentColor",
|
|
@@ -879,36 +824,36 @@ var ArrowRight = (props) => {
|
|
|
879
824
|
}));
|
|
880
825
|
};
|
|
881
826
|
var Image2 = (props) => {
|
|
882
|
-
return /* @__PURE__ */
|
|
827
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
883
828
|
xmlns: "http://www.w3.org/2000/svg",
|
|
884
829
|
"aria-hidden": "true",
|
|
885
830
|
fill: "currentColor",
|
|
886
831
|
viewBox: "0 0 640 512",
|
|
887
832
|
...props
|
|
888
|
-
}, /* @__PURE__ */
|
|
833
|
+
}, /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
889
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"
|
|
890
835
|
}));
|
|
891
836
|
};
|
|
892
837
|
var ShoppingCart = (props) => {
|
|
893
|
-
return /* @__PURE__ */
|
|
838
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
894
839
|
xmlns: "http://www.w3.org/2000/svg",
|
|
895
840
|
width: "192",
|
|
896
841
|
height: "192",
|
|
897
842
|
fill: "currentColor",
|
|
898
843
|
viewBox: "0 0 256 256",
|
|
899
844
|
...props
|
|
900
|
-
}, /* @__PURE__ */
|
|
845
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
901
846
|
width: "256",
|
|
902
847
|
height: "256",
|
|
903
848
|
fill: "none"
|
|
904
|
-
}), /* @__PURE__ */
|
|
849
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
905
850
|
d: "M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16",
|
|
906
851
|
fill: "none",
|
|
907
852
|
stroke: "currentColor",
|
|
908
853
|
strokeLinecap: "round",
|
|
909
854
|
strokeLinejoin: "round",
|
|
910
855
|
strokeWidth: "16"
|
|
911
|
-
}), /* @__PURE__ */
|
|
856
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
912
857
|
cx: "80",
|
|
913
858
|
cy: "204",
|
|
914
859
|
r: "20",
|
|
@@ -917,7 +862,7 @@ var ShoppingCart = (props) => {
|
|
|
917
862
|
strokeLinecap: "round",
|
|
918
863
|
strokeLinejoin: "round",
|
|
919
864
|
strokeWidth: "16"
|
|
920
|
-
}), /* @__PURE__ */
|
|
865
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
921
866
|
cx: "184",
|
|
922
867
|
cy: "204",
|
|
923
868
|
r: "20",
|
|
@@ -926,7 +871,7 @@ var ShoppingCart = (props) => {
|
|
|
926
871
|
strokeLinecap: "round",
|
|
927
872
|
strokeLinejoin: "round",
|
|
928
873
|
strokeWidth: "16"
|
|
929
|
-
}), /* @__PURE__ */
|
|
874
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
930
875
|
d: "M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48",
|
|
931
876
|
fill: "none",
|
|
932
877
|
stroke: "currentColor",
|
|
@@ -936,25 +881,25 @@ var ShoppingCart = (props) => {
|
|
|
936
881
|
}));
|
|
937
882
|
};
|
|
938
883
|
var Eye = (props) => {
|
|
939
|
-
return /* @__PURE__ */
|
|
884
|
+
return /* @__PURE__ */ import_react14.default.createElement("svg", {
|
|
940
885
|
xmlns: "http://www.w3.org/2000/svg",
|
|
941
886
|
width: "192",
|
|
942
887
|
height: "192",
|
|
943
888
|
fill: "currentColor",
|
|
944
889
|
viewBox: "0 0 256 256",
|
|
945
890
|
...props
|
|
946
|
-
}, /* @__PURE__ */
|
|
891
|
+
}, /* @__PURE__ */ import_react14.default.createElement("rect", {
|
|
947
892
|
width: "256",
|
|
948
893
|
height: "256",
|
|
949
894
|
fill: "none"
|
|
950
|
-
}), /* @__PURE__ */
|
|
895
|
+
}), /* @__PURE__ */ import_react14.default.createElement("path", {
|
|
951
896
|
d: "M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z",
|
|
952
897
|
fill: "none",
|
|
953
898
|
stroke: "currentColor",
|
|
954
899
|
strokeLinecap: "round",
|
|
955
900
|
strokeLinejoin: "round",
|
|
956
901
|
strokeWidth: "12"
|
|
957
|
-
}), /* @__PURE__ */
|
|
902
|
+
}), /* @__PURE__ */ import_react14.default.createElement("circle", {
|
|
958
903
|
cx: "128",
|
|
959
904
|
cy: "128",
|
|
960
905
|
r: "40",
|
|
@@ -967,28 +912,537 @@ var Eye = (props) => {
|
|
|
967
912
|
};
|
|
968
913
|
|
|
969
914
|
// src/components/Icons/index.tsx
|
|
970
|
-
var
|
|
915
|
+
var import_clsx = __toESM(require("clsx"));
|
|
971
916
|
function Icon({ name, className, ...props }) {
|
|
972
917
|
let WeaverseIcon = Phosphor_exports[name];
|
|
973
|
-
let cls = (0,
|
|
974
|
-
return /* @__PURE__ */
|
|
918
|
+
let cls = (0, import_clsx.default)("wv-icon", className);
|
|
919
|
+
return /* @__PURE__ */ import_react15.default.createElement(WeaverseIcon, {
|
|
975
920
|
className: cls,
|
|
976
921
|
...props
|
|
977
922
|
});
|
|
978
923
|
}
|
|
979
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
|
+
|
|
980
1434
|
// src/components/Modal/styled.ts
|
|
981
1435
|
var import_react_dialog = require("@radix-ui/react-dialog");
|
|
982
|
-
var
|
|
983
|
-
var overlayShow = (0,
|
|
1436
|
+
var import_react29 = require("@stitches/react");
|
|
1437
|
+
var overlayShow = (0, import_react29.keyframes)({
|
|
984
1438
|
"0%": { opacity: 0 },
|
|
985
1439
|
"100%": { opacity: 1 }
|
|
986
1440
|
});
|
|
987
|
-
var contentShow = (0,
|
|
1441
|
+
var contentShow = (0, import_react29.keyframes)({
|
|
988
1442
|
"0%": { opacity: 0, transform: "translate(-50%, -48%) scale(.96)" },
|
|
989
1443
|
"100%": { opacity: 1, transform: "translate(-50%, -50%) scale(1)" }
|
|
990
1444
|
});
|
|
991
|
-
var
|
|
1445
|
+
var StyledOverlay2 = (0, import_react29.styled)(import_react_dialog.Overlay, {
|
|
992
1446
|
display: "block !important",
|
|
993
1447
|
backgroundColor: "rgba(0, 0, 0, .3)",
|
|
994
1448
|
position: "fixed",
|
|
@@ -996,7 +1450,7 @@ var StyledOverlay = (0, import_react17.styled)(import_react_dialog.Overlay, {
|
|
|
996
1450
|
inset: 0,
|
|
997
1451
|
animation: `${overlayShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
|
|
998
1452
|
});
|
|
999
|
-
var StyledTitle = (0,
|
|
1453
|
+
var StyledTitle = (0, import_react29.styled)(import_react_dialog.Title, {
|
|
1000
1454
|
margin: "0 0 24px",
|
|
1001
1455
|
fontWeight: 500,
|
|
1002
1456
|
fontSize: 24,
|
|
@@ -1005,7 +1459,7 @@ var StyledTitle = (0, import_react17.styled)(import_react_dialog.Title, {
|
|
|
1005
1459
|
fontSize: 20
|
|
1006
1460
|
}
|
|
1007
1461
|
});
|
|
1008
|
-
var StyledContent = (0,
|
|
1462
|
+
var StyledContent = (0, import_react29.styled)(import_react_dialog.Content, {
|
|
1009
1463
|
backgroundColor: "white",
|
|
1010
1464
|
borderRadius: 6,
|
|
1011
1465
|
boxShadow: "hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px",
|
|
@@ -1036,7 +1490,7 @@ var StyledContent = (0, import_react17.styled)(import_react_dialog.Content, {
|
|
|
1036
1490
|
}
|
|
1037
1491
|
}
|
|
1038
1492
|
});
|
|
1039
|
-
var StyledCloseIcon = (0,
|
|
1493
|
+
var StyledCloseIcon = (0, import_react29.styled)("button", {
|
|
1040
1494
|
all: "unset",
|
|
1041
1495
|
cursor: "pointer",
|
|
1042
1496
|
fontFamily: "inherit",
|
|
@@ -1061,10 +1515,10 @@ var StyledCloseIcon = (0, import_react17.styled)("button", {
|
|
|
1061
1515
|
});
|
|
1062
1516
|
|
|
1063
1517
|
// src/components/Modal/useOpenChangeEffect.ts
|
|
1064
|
-
var
|
|
1518
|
+
var import_react30 = require("react");
|
|
1065
1519
|
function useOpenChangeEffect(props) {
|
|
1066
1520
|
let { open, defaultOpen, onOpenChange } = props;
|
|
1067
|
-
let rootCtx = (0,
|
|
1521
|
+
let rootCtx = (0, import_react30.useContext)(WeaverseContext);
|
|
1068
1522
|
let toggleRootzIndex = (open2) => {
|
|
1069
1523
|
let { contentRootElement } = rootCtx;
|
|
1070
1524
|
if (contentRootElement) {
|
|
@@ -1075,7 +1529,7 @@ function useOpenChangeEffect(props) {
|
|
|
1075
1529
|
}
|
|
1076
1530
|
}
|
|
1077
1531
|
};
|
|
1078
|
-
(0,
|
|
1532
|
+
(0, import_react30.useEffect)(() => {
|
|
1079
1533
|
let isOpen = open || defaultOpen;
|
|
1080
1534
|
toggleRootzIndex(isOpen);
|
|
1081
1535
|
}, [open, defaultOpen]);
|
|
@@ -1090,7 +1544,7 @@ function useOpenChangeEffect(props) {
|
|
|
1090
1544
|
var Modal = (props) => {
|
|
1091
1545
|
let { children, open, defaultOpen, onOpenChange, ...rest } = props;
|
|
1092
1546
|
let handleOpenChange = useOpenChangeEffect(props);
|
|
1093
|
-
return /* @__PURE__ */
|
|
1547
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Root, {
|
|
1094
1548
|
open,
|
|
1095
1549
|
defaultOpen,
|
|
1096
1550
|
onOpenChange: handleOpenChange,
|
|
@@ -1098,30 +1552,30 @@ var Modal = (props) => {
|
|
|
1098
1552
|
}, children);
|
|
1099
1553
|
};
|
|
1100
1554
|
var ModalTrigger = import_react_dialog2.Trigger;
|
|
1101
|
-
var ModalHeader = (0,
|
|
1555
|
+
var ModalHeader = (0, import_react31.forwardRef)(
|
|
1102
1556
|
(props, ref) => {
|
|
1103
1557
|
let { children, ...rest } = props;
|
|
1104
|
-
return /* @__PURE__ */
|
|
1558
|
+
return /* @__PURE__ */ import_react31.default.createElement(StyledTitle, {
|
|
1105
1559
|
ref,
|
|
1106
1560
|
...rest,
|
|
1107
1561
|
"data-wv-modal-header": true
|
|
1108
1562
|
}, children);
|
|
1109
1563
|
}
|
|
1110
1564
|
);
|
|
1111
|
-
var ModalContent = (0,
|
|
1565
|
+
var ModalContent = (0, import_react31.forwardRef)(
|
|
1112
1566
|
(props, ref) => {
|
|
1113
1567
|
let { children, size, portal, ...rest } = props;
|
|
1114
|
-
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, {
|
|
1115
1569
|
...rest,
|
|
1116
1570
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
1117
1571
|
"data-wv-modal": true,
|
|
1118
1572
|
"data-size": size,
|
|
1119
1573
|
ref
|
|
1120
|
-
}, /* @__PURE__ */
|
|
1574
|
+
}, /* @__PURE__ */ import_react31.default.createElement(ModalClose, null), /* @__PURE__ */ import_react31.default.createElement("div", {
|
|
1121
1575
|
className: "wv-modal-content"
|
|
1122
1576
|
}, children)));
|
|
1123
1577
|
if (portal) {
|
|
1124
|
-
return /* @__PURE__ */
|
|
1578
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Portal, null, modalContent);
|
|
1125
1579
|
}
|
|
1126
1580
|
return modalContent;
|
|
1127
1581
|
}
|
|
@@ -1130,13 +1584,13 @@ ModalContent.defaultProps = {
|
|
|
1130
1584
|
size: "auto",
|
|
1131
1585
|
portal: false
|
|
1132
1586
|
};
|
|
1133
|
-
var ModalClose = (0,
|
|
1587
|
+
var ModalClose = (0, import_react31.forwardRef)(
|
|
1134
1588
|
(props, ref) => {
|
|
1135
1589
|
let { asChild, children, ...rest } = props;
|
|
1136
|
-
let closeIcon = /* @__PURE__ */
|
|
1590
|
+
let closeIcon = /* @__PURE__ */ import_react31.default.createElement(StyledCloseIcon, null, /* @__PURE__ */ import_react31.default.createElement(Icon, {
|
|
1137
1591
|
name: "X"
|
|
1138
1592
|
}));
|
|
1139
|
-
return /* @__PURE__ */
|
|
1593
|
+
return /* @__PURE__ */ import_react31.default.createElement(import_react_dialog2.Close, {
|
|
1140
1594
|
asChild: true,
|
|
1141
1595
|
...rest,
|
|
1142
1596
|
ref
|
|
@@ -1145,136 +1599,37 @@ var ModalClose = (0, import_react19.forwardRef)(
|
|
|
1145
1599
|
);
|
|
1146
1600
|
|
|
1147
1601
|
// src/components/Spinner.tsx
|
|
1148
|
-
var
|
|
1602
|
+
var import_react32 = __toESM(require("react"));
|
|
1149
1603
|
function Spinner() {
|
|
1150
|
-
return /* @__PURE__ */
|
|
1604
|
+
return /* @__PURE__ */ import_react32.default.createElement("span", {
|
|
1151
1605
|
className: "wv-spinner-wrapper"
|
|
1152
|
-
}, /* @__PURE__ */
|
|
1606
|
+
}, /* @__PURE__ */ import_react32.default.createElement(Icon, {
|
|
1153
1607
|
name: "CircleNotch",
|
|
1154
1608
|
className: "wv-spinner"
|
|
1155
1609
|
}));
|
|
1156
1610
|
}
|
|
1157
1611
|
|
|
1158
1612
|
// src/components/Tooltip.tsx
|
|
1159
|
-
var
|
|
1613
|
+
var import_react33 = __toESM(require("react"));
|
|
1160
1614
|
function Tooltip({ children }) {
|
|
1161
|
-
return /* @__PURE__ */
|
|
1615
|
+
return /* @__PURE__ */ import_react33.default.createElement("span", {
|
|
1162
1616
|
className: "wv-tooltip"
|
|
1163
1617
|
}, children);
|
|
1164
1618
|
}
|
|
1165
1619
|
|
|
1166
1620
|
// src/components/Slider/index.tsx
|
|
1167
|
-
var
|
|
1168
|
-
var
|
|
1169
|
-
var
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
function Arrows(props) {
|
|
1175
|
-
let { currentSlide, instanceRef, className } = props;
|
|
1176
|
-
let { stitchesInstance } = (0, import_react22.useContext)(WeaverseContext);
|
|
1177
|
-
let { className: cssClass } = stitchesInstance.css(css9)();
|
|
1178
|
-
let isFirstSlide = currentSlide === 0;
|
|
1179
|
-
let isLastSlide = false;
|
|
1180
|
-
if (instanceRef.current) {
|
|
1181
|
-
isLastSlide = currentSlide === instanceRef?.current?.track?.details?.maxIdx;
|
|
1182
|
-
}
|
|
1183
|
-
let _className = (0, import_clsx3.default)(className, cssClass);
|
|
1184
|
-
let arrowLeftClass = (0, import_clsx3.default)(
|
|
1185
|
-
"wv-slider-arrow arrow--left",
|
|
1186
|
-
isFirstSlide && "arrow--disabled"
|
|
1187
|
-
);
|
|
1188
|
-
let arrowRightClass = (0, import_clsx3.default)(
|
|
1189
|
-
"wv-slider-arrow arrow--right",
|
|
1190
|
-
isLastSlide && "arrow--disabled"
|
|
1191
|
-
);
|
|
1192
|
-
return /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
1193
|
-
className: _className
|
|
1194
|
-
}, /* @__PURE__ */ import_react22.default.createElement("button", {
|
|
1195
|
-
type: "button",
|
|
1196
|
-
className: arrowLeftClass,
|
|
1197
|
-
onClick: (e) => {
|
|
1198
|
-
e.stopPropagation();
|
|
1199
|
-
instanceRef?.current?.prev();
|
|
1200
|
-
}
|
|
1201
|
-
}, /* @__PURE__ */ import_react22.default.createElement(Icon, {
|
|
1202
|
-
name: "ArrowLeft"
|
|
1203
|
-
})), /* @__PURE__ */ import_react22.default.createElement("button", {
|
|
1204
|
-
type: "button",
|
|
1205
|
-
className: arrowRightClass,
|
|
1206
|
-
onClick: (e) => {
|
|
1207
|
-
e.stopPropagation();
|
|
1208
|
-
instanceRef?.current?.next();
|
|
1209
|
-
}
|
|
1210
|
-
}, /* @__PURE__ */ import_react22.default.createElement(Icon, {
|
|
1211
|
-
name: "ArrowRight"
|
|
1212
|
-
})));
|
|
1213
|
-
}
|
|
1214
|
-
var css9 = {
|
|
1215
|
-
"@desktop": {
|
|
1216
|
-
".wv-slider-arrow": {
|
|
1217
|
-
position: "absolute",
|
|
1218
|
-
top: "50%",
|
|
1219
|
-
transform: "translateY(-50%)",
|
|
1220
|
-
width: "44px",
|
|
1221
|
-
height: "44px",
|
|
1222
|
-
padding: "8px",
|
|
1223
|
-
color: "#191919",
|
|
1224
|
-
backgroundColor: "#f2f2f2",
|
|
1225
|
-
textAlign: "center",
|
|
1226
|
-
transition: "all 0.2s ease-in-out",
|
|
1227
|
-
borderRadius: "4px",
|
|
1228
|
-
border: "none",
|
|
1229
|
-
cursor: "pointer",
|
|
1230
|
-
"&:hover": {
|
|
1231
|
-
backgroundColor: "#191919",
|
|
1232
|
-
color: "#f2f2f2"
|
|
1233
|
-
},
|
|
1234
|
-
svg: {
|
|
1235
|
-
verticalAlign: "middle",
|
|
1236
|
-
width: "22px",
|
|
1237
|
-
height: "22px"
|
|
1238
|
-
},
|
|
1239
|
-
"&.arrow--left": {
|
|
1240
|
-
left: "-80px"
|
|
1241
|
-
},
|
|
1242
|
-
"&.arrow--right": {
|
|
1243
|
-
right: "-80px"
|
|
1244
|
-
},
|
|
1245
|
-
"&.arrow--disabled": {
|
|
1246
|
-
opacity: 0.5
|
|
1247
|
-
}
|
|
1248
|
-
}
|
|
1249
|
-
},
|
|
1250
|
-
"@mobile": {
|
|
1251
|
-
".wv-slider-arrow": {
|
|
1252
|
-
display: "none"
|
|
1253
|
-
}
|
|
1254
|
-
}
|
|
1255
|
-
};
|
|
1256
|
-
|
|
1257
|
-
// src/components/Slider/ResizePlugin.ts
|
|
1258
|
-
var ResizePlugin = (slider) => {
|
|
1259
|
-
let observer = new ResizeObserver(() => slider.update());
|
|
1260
|
-
slider.on("created", () => {
|
|
1261
|
-
observer.observe(slider.container);
|
|
1262
|
-
});
|
|
1263
|
-
slider.on("destroyed", () => {
|
|
1264
|
-
observer.unobserve(slider.container);
|
|
1265
|
-
});
|
|
1266
|
-
};
|
|
1267
|
-
|
|
1268
|
-
// src/components/Slider/index.tsx
|
|
1269
|
-
function Slider({ children, className }) {
|
|
1270
|
-
let [currentSlide, setCurrentSlide] = (0, import_react24.useState)(0);
|
|
1271
|
-
let [created, setCreated] = (0, import_react24.useState)(false);
|
|
1272
|
-
let [ref, instanceRef] = (0, import_react23.useKeenSlider)(
|
|
1621
|
+
var import_clsx5 = __toESM(require("clsx"));
|
|
1622
|
+
var import_react34 = require("keen-slider/react");
|
|
1623
|
+
var import_react35 = __toESM(require("react"));
|
|
1624
|
+
function Slider({ children, className, gap }) {
|
|
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)(
|
|
1273
1628
|
{
|
|
1274
|
-
slides: { perView: 4, spacing:
|
|
1629
|
+
slides: { perView: 4, spacing: gap },
|
|
1275
1630
|
breakpoints: {
|
|
1276
1631
|
"(max-width: 1024px)": {
|
|
1277
|
-
slides: { perView: 3, spacing:
|
|
1632
|
+
slides: { perView: 3, spacing: gap }
|
|
1278
1633
|
},
|
|
1279
1634
|
"(max-width: 768px)": {
|
|
1280
1635
|
slides: {
|
|
@@ -1292,15 +1647,15 @@ function Slider({ children, className }) {
|
|
|
1292
1647
|
},
|
|
1293
1648
|
[ResizePlugin]
|
|
1294
1649
|
);
|
|
1295
|
-
let _className = (0,
|
|
1296
|
-
let arrowsClass = (0,
|
|
1297
|
-
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", {
|
|
1298
1653
|
ref,
|
|
1299
1654
|
className: _className
|
|
1300
|
-
}, /* @__PURE__ */
|
|
1655
|
+
}, /* @__PURE__ */ import_react35.default.createElement("link", {
|
|
1301
1656
|
rel: "stylesheet",
|
|
1302
1657
|
href: "https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css"
|
|
1303
|
-
}), children), created && instanceRef?.current && /* @__PURE__ */
|
|
1658
|
+
}), children), created && instanceRef?.current && /* @__PURE__ */ import_react35.default.createElement(Arrows, {
|
|
1304
1659
|
currentSlide,
|
|
1305
1660
|
instanceRef,
|
|
1306
1661
|
className: arrowsClass
|
|
@@ -1309,157 +1664,24 @@ function Slider({ children, className }) {
|
|
|
1309
1664
|
|
|
1310
1665
|
// src/components/index.ts
|
|
1311
1666
|
var Components = {
|
|
1667
|
+
Background: Background2,
|
|
1668
|
+
Icon,
|
|
1669
|
+
ModalComponents: Modal_exports,
|
|
1670
|
+
Overlay: Overlay2,
|
|
1312
1671
|
Placeholder: Placeholder_default,
|
|
1313
1672
|
Spinner,
|
|
1314
|
-
ModalComponents: Modal_exports,
|
|
1315
|
-
Icon,
|
|
1316
1673
|
Slider,
|
|
1317
1674
|
Tooltip
|
|
1318
1675
|
};
|
|
1319
1676
|
|
|
1320
|
-
// src/elements/Instagram.tsx
|
|
1321
|
-
var Instagram = (0, import_react25.forwardRef)(
|
|
1322
|
-
(props, ref) => {
|
|
1323
|
-
let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props;
|
|
1324
|
-
let [media, setMedia] = (0, import_react25.useState)([]);
|
|
1325
|
-
let [error, setError] = (0, import_react25.useState)(null);
|
|
1326
|
-
(0, import_react25.useEffect)(() => {
|
|
1327
|
-
if (token) {
|
|
1328
|
-
let params = new URLSearchParams({
|
|
1329
|
-
access_token: token,
|
|
1330
|
-
fields: "id,media_type,caption,media_url,permalink,thumbnail_url"
|
|
1331
|
-
});
|
|
1332
|
-
fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`).then((res) => res.json()).then((res) => {
|
|
1333
|
-
if (res.error) {
|
|
1334
|
-
setError(res);
|
|
1335
|
-
} else {
|
|
1336
|
-
setError(null);
|
|
1337
|
-
setMedia([...res.data]);
|
|
1338
|
-
}
|
|
1339
|
-
}).catch(setError);
|
|
1340
|
-
}
|
|
1341
|
-
}, [token]);
|
|
1342
|
-
if (!token || error) {
|
|
1343
|
-
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1344
|
-
ref,
|
|
1345
|
-
...rest
|
|
1346
|
-
}, /* @__PURE__ */ import_react25.default.createElement(Components.Placeholder, {
|
|
1347
|
-
element: "Instagram"
|
|
1348
|
-
}, !token ? "Connect to Instagram to display photos on your site." : "Invalid or expired token!"));
|
|
1349
|
-
}
|
|
1350
|
-
let style = {
|
|
1351
|
-
"--wv-ig-images-per-row": imagesPerRow,
|
|
1352
|
-
"--wv-ig-images-gap": gap + "px"
|
|
1353
|
-
};
|
|
1354
|
-
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1355
|
-
ref,
|
|
1356
|
-
...rest,
|
|
1357
|
-
style
|
|
1358
|
-
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1359
|
-
className: "wv-ig-media-container"
|
|
1360
|
-
}, media.slice(0, numberOfImages).map((item) => {
|
|
1361
|
-
let {
|
|
1362
|
-
id,
|
|
1363
|
-
permalink,
|
|
1364
|
-
caption,
|
|
1365
|
-
media_url,
|
|
1366
|
-
media_type,
|
|
1367
|
-
thumbnail_url
|
|
1368
|
-
} = item;
|
|
1369
|
-
if (media_type === "VIDEO") {
|
|
1370
|
-
return /* @__PURE__ */ import_react25.default.createElement("video", {
|
|
1371
|
-
key: id,
|
|
1372
|
-
controls: true,
|
|
1373
|
-
poster: thumbnail_url
|
|
1374
|
-
}, /* @__PURE__ */ import_react25.default.createElement("source", {
|
|
1375
|
-
src: media_url,
|
|
1376
|
-
type: "video/mp4"
|
|
1377
|
-
}));
|
|
1378
|
-
}
|
|
1379
|
-
return /* @__PURE__ */ import_react25.default.createElement("a", {
|
|
1380
|
-
key: id,
|
|
1381
|
-
href: permalink,
|
|
1382
|
-
target: "_blank",
|
|
1383
|
-
rel: "noreferrer"
|
|
1384
|
-
}, /* @__PURE__ */ import_react25.default.createElement("img", {
|
|
1385
|
-
alt: caption,
|
|
1386
|
-
src: media_url
|
|
1387
|
-
}));
|
|
1388
|
-
})));
|
|
1389
|
-
}
|
|
1390
|
-
);
|
|
1391
|
-
Instagram.defaultProps = {
|
|
1392
|
-
token: "",
|
|
1393
|
-
username: "",
|
|
1394
|
-
numberOfImages: 8,
|
|
1395
|
-
imagesPerRow: 4,
|
|
1396
|
-
gap: 0
|
|
1397
|
-
};
|
|
1398
|
-
|
|
1399
|
-
// src/elements/index.ts
|
|
1400
|
-
var Elements = {
|
|
1401
|
-
Countdown: {
|
|
1402
|
-
Component: Countdown_default,
|
|
1403
|
-
type: "countdown",
|
|
1404
|
-
defaultCss: css3
|
|
1405
|
-
},
|
|
1406
|
-
Button: {
|
|
1407
|
-
Component: Button_default,
|
|
1408
|
-
type: "button",
|
|
1409
|
-
defaultCss: css
|
|
1410
|
-
},
|
|
1411
|
-
Container: {
|
|
1412
|
-
Component: Container_default,
|
|
1413
|
-
type: "container",
|
|
1414
|
-
defaultCss: css2
|
|
1415
|
-
},
|
|
1416
|
-
Image: {
|
|
1417
|
-
Component: Image_default,
|
|
1418
|
-
type: "image",
|
|
1419
|
-
defaultCss: css4
|
|
1420
|
-
},
|
|
1421
|
-
Layout: {
|
|
1422
|
-
Component: Layout_default,
|
|
1423
|
-
type: "layout",
|
|
1424
|
-
defaultCss: css5
|
|
1425
|
-
},
|
|
1426
|
-
Map: {
|
|
1427
|
-
Component: Map_default,
|
|
1428
|
-
type: "map",
|
|
1429
|
-
defaultCss: css6
|
|
1430
|
-
},
|
|
1431
|
-
Text: {
|
|
1432
|
-
Component: Text_default,
|
|
1433
|
-
type: "text",
|
|
1434
|
-
defaultCss: css7
|
|
1435
|
-
},
|
|
1436
|
-
Video: {
|
|
1437
|
-
Component: Video_default,
|
|
1438
|
-
type: "video",
|
|
1439
|
-
defaultCss: css8
|
|
1440
|
-
}
|
|
1441
|
-
};
|
|
1442
|
-
|
|
1443
|
-
// src/context.ts
|
|
1444
|
-
var createRootContext = (configs) => {
|
|
1445
|
-
let rootContext = new import_core.Weaverse(configs);
|
|
1446
|
-
Object.keys(Elements).forEach((key) => {
|
|
1447
|
-
rootContext.registerElement(Elements[key]);
|
|
1448
|
-
});
|
|
1449
|
-
return rootContext;
|
|
1450
|
-
};
|
|
1451
|
-
var WeaverseContext = (0, import_react26.createContext)({});
|
|
1452
|
-
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
1453
|
-
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
1454
|
-
|
|
1455
1677
|
// src/renderer.tsx
|
|
1456
1678
|
var import_core2 = require("@weaverse/core");
|
|
1457
|
-
var
|
|
1679
|
+
var import_react36 = __toESM(require("react"));
|
|
1458
1680
|
var WeaverseRoot = ({ context }) => {
|
|
1459
|
-
let [, setData] = (0,
|
|
1460
|
-
let rootRef = (0,
|
|
1681
|
+
let [, setData] = (0, import_react36.useState)(context.projectData);
|
|
1682
|
+
let rootRef = (0, import_react36.useRef)();
|
|
1461
1683
|
let renderRoot = () => setData({});
|
|
1462
|
-
(0,
|
|
1684
|
+
(0, import_react36.useEffect)(() => {
|
|
1463
1685
|
context.subscribe(renderRoot);
|
|
1464
1686
|
context.contentRootElement = rootRef.current;
|
|
1465
1687
|
return () => {
|
|
@@ -1469,23 +1691,23 @@ var WeaverseRoot = ({ context }) => {
|
|
|
1469
1691
|
let eventHandlers = context?.studioBridge?.eventHandlers || {};
|
|
1470
1692
|
let themeClass = context.stitchesInstance.theme.className;
|
|
1471
1693
|
if (context.projectData?.rootId) {
|
|
1472
|
-
return /* @__PURE__ */
|
|
1694
|
+
return /* @__PURE__ */ import_react36.default.createElement("div", {
|
|
1473
1695
|
className: `weaverse-content-root ${themeClass}`,
|
|
1474
1696
|
...eventHandlers,
|
|
1475
1697
|
ref: rootRef
|
|
1476
|
-
}, /* @__PURE__ */
|
|
1698
|
+
}, /* @__PURE__ */ import_react36.default.createElement(WeaverseContextProvider, {
|
|
1477
1699
|
value: context
|
|
1478
|
-
}, /* @__PURE__ */
|
|
1700
|
+
}, /* @__PURE__ */ import_react36.default.createElement(ItemInstance, {
|
|
1479
1701
|
id: context.projectData.rootId
|
|
1480
1702
|
})));
|
|
1481
1703
|
}
|
|
1482
1704
|
return null;
|
|
1483
1705
|
};
|
|
1484
1706
|
var ItemComponent = ({ instance }) => {
|
|
1485
|
-
let { stitchesInstance, elementInstances } = (0,
|
|
1486
|
-
let [data, setData] = (0,
|
|
1487
|
-
let { id, type, childIds = [], css:
|
|
1488
|
-
(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)(() => {
|
|
1489
1711
|
let render = (data2) => setData({ ...data2 });
|
|
1490
1712
|
instance.subscribe(render);
|
|
1491
1713
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
@@ -1501,13 +1723,13 @@ var ItemComponent = ({ instance }) => {
|
|
|
1501
1723
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
1502
1724
|
rest.ref = instance.ref;
|
|
1503
1725
|
}
|
|
1504
|
-
return /* @__PURE__ */
|
|
1726
|
+
return /* @__PURE__ */ import_react36.default.createElement(Component, {
|
|
1505
1727
|
key: id,
|
|
1506
1728
|
"data-wv-type": type,
|
|
1507
1729
|
"data-wv-id": id,
|
|
1508
1730
|
className: generateItemClassName(instance, stitchesInstance),
|
|
1509
1731
|
...rest
|
|
1510
|
-
}, childIds.map((id2) => /* @__PURE__ */
|
|
1732
|
+
}, childIds.map((id2) => /* @__PURE__ */ import_react36.default.createElement(ItemInstance, {
|
|
1511
1733
|
key: id2,
|
|
1512
1734
|
id: id2
|
|
1513
1735
|
})));
|
|
@@ -1517,15 +1739,15 @@ var ItemComponent = ({ instance }) => {
|
|
|
1517
1739
|
}
|
|
1518
1740
|
};
|
|
1519
1741
|
var ItemInstance = ({ id }) => {
|
|
1520
|
-
let context = (0,
|
|
1742
|
+
let context = (0, import_react36.useContext)(WeaverseContext);
|
|
1521
1743
|
let { itemInstances } = context;
|
|
1522
1744
|
let instance = itemInstances.get(id);
|
|
1523
1745
|
if (!instance) {
|
|
1524
|
-
return /* @__PURE__ */
|
|
1746
|
+
return /* @__PURE__ */ import_react36.default.createElement("div", {
|
|
1525
1747
|
style: { display: "none" }
|
|
1526
1748
|
}, "Item instance ", id, " not found");
|
|
1527
1749
|
}
|
|
1528
|
-
return /* @__PURE__ */
|
|
1750
|
+
return /* @__PURE__ */ import_react36.default.createElement(ItemComponent, {
|
|
1529
1751
|
key: id,
|
|
1530
1752
|
instance
|
|
1531
1753
|
});
|