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