@weaverse/react 0.7.0 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
File without changes
package/dist/index.js CHANGED
@@ -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 import_react16 = require("react");
40
+ var import_react18 = require("react");
41
41
 
42
42
  // src/elements/button.tsx
43
43
  var React = __toESM(require("react"));
@@ -799,6 +799,85 @@ TabContent.defaultProps = {
799
799
  };
800
800
  var TabContent_default = TabContent;
801
801
 
802
+ // src/elements/slider/index.tsx
803
+ var import_react16 = __toESM(require("react"));
804
+ var Carousel = __toESM(require("nuka-carousel"));
805
+ var SliderContext = (0, import_react16.createContext)({
806
+ active: null,
807
+ setActive: () => {
808
+ }
809
+ });
810
+ var Slider = (0, import_react16.forwardRef)((props, ref) => {
811
+ var _a, _b, _c;
812
+ const { children, ...rest } = props;
813
+ const defaultActive = (_c = (_b = (_a = import_react16.default.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
814
+ const [active, setActive] = (0, import_react16.useState)(defaultActive);
815
+ return /* @__PURE__ */ import_react16.default.createElement("div", {
816
+ ...rest,
817
+ ref
818
+ }, /* @__PURE__ */ import_react16.default.createElement(SliderContext.Provider, {
819
+ value: { active, setActive }
820
+ }, children), /* @__PURE__ */ import_react16.default.createElement(Carousel.default, null, /* @__PURE__ */ import_react16.default.createElement("div", {
821
+ className: "slide"
822
+ }, "Hi"), /* @__PURE__ */ import_react16.default.createElement("div", {
823
+ className: "slide"
824
+ }, "Hieee"), /* @__PURE__ */ import_react16.default.createElement("div", {
825
+ className: "slide"
826
+ }, "Hixxx"), /* @__PURE__ */ import_react16.default.createElement("div", {
827
+ className: "slide"
828
+ }, "Hi3")));
829
+ });
830
+ Slider.defaultProps = {
831
+ css: {
832
+ "@desktop": {}
833
+ }
834
+ };
835
+ var slider_default = Slider;
836
+
837
+ // src/elements/slider/SliderContent.tsx
838
+ var import_react17 = __toESM(require("react"));
839
+ var SliderContent = (0, import_react17.forwardRef)(
840
+ (props, ref) => {
841
+ const { active } = (0, import_react17.useContext)(SliderContext);
842
+ const wvId = props["data-wv-id"];
843
+ const { rows, columns, gap, rowSize, children, ...rest } = props;
844
+ let style = {
845
+ "--rows": rows,
846
+ "--columns": columns,
847
+ "--gap": gap + "px",
848
+ "--row-size": rowSize + "px",
849
+ "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
850
+ "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
851
+ "--content-active": active === wvId ? "grid" : "none"
852
+ };
853
+ return /* @__PURE__ */ import_react17.default.createElement("div", {
854
+ ref,
855
+ ...rest,
856
+ style
857
+ }, import_react17.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react17.default.createElement(Placeholder_default, {
858
+ element: "Slider"
859
+ }, "Slider Content"));
860
+ }
861
+ );
862
+ SliderContent.defaultProps = {
863
+ rows: 2,
864
+ columns: 12,
865
+ gap: 4,
866
+ rowSize: 48,
867
+ css: {
868
+ "@desktop": {
869
+ width: "100%",
870
+ maxWidth: "var(--grid-size)",
871
+ display: "var(--content-active, none)",
872
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
873
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
874
+ gap: "var(--gap)",
875
+ borderRadius: 4
876
+ }
877
+ }
878
+ };
879
+ var SliderContent_default = SliderContent;
880
+
802
881
  // src/elements/index.ts
803
882
  var elements = {
804
883
  Countdown: {
@@ -856,6 +935,14 @@ var elements = {
856
935
  TabContent: {
857
936
  Component: TabContent_default,
858
937
  type: "tab.content"
938
+ },
939
+ Slider: {
940
+ Component: slider_default,
941
+ type: "slider"
942
+ },
943
+ SliderContent: {
944
+ Component: SliderContent_default,
945
+ type: "slider.content"
859
946
  }
860
947
  };
861
948
  var elements_default = elements;
@@ -868,13 +955,13 @@ var createRootContext = (configs) => {
868
955
  });
869
956
  return rootContext;
870
957
  };
871
- var WeaverseContext = (0, import_react16.createContext)({});
958
+ var WeaverseContext = (0, import_react18.createContext)({});
872
959
  var WeaverseContextProvider = WeaverseContext.Provider;
873
960
  var WeaverseContextConsumer = WeaverseContext.Consumer;
874
961
 
875
962
  // src/renderer.tsx
876
963
  var import_core2 = require("@weaverse/core");
877
- var import_react17 = __toESM(require("react"));
964
+ var import_react19 = __toESM(require("react"));
878
965
 
879
966
  // src/utils/index.ts
880
967
  var shortCssObject = (css) => {
@@ -902,10 +989,10 @@ function generateItemClass(instance, stitchesInstance) {
902
989
  // src/renderer.tsx
903
990
  var WeaverseRoot = ({ context }) => {
904
991
  var _a, _b;
905
- let [, setData] = (0, import_react17.useState)(context.projectData);
906
- let rootRef = (0, import_react17.useRef)();
992
+ let [, setData] = (0, import_react19.useState)(context.projectData);
993
+ let rootRef = (0, import_react19.useRef)();
907
994
  let update = () => setData({});
908
- (0, import_react17.useEffect)(() => {
995
+ (0, import_react19.useEffect)(() => {
909
996
  context.subscribe(update);
910
997
  context.contentRootElement = rootRef.current;
911
998
  return () => {
@@ -914,21 +1001,21 @@ var WeaverseRoot = ({ context }) => {
914
1001
  }, []);
915
1002
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
916
1003
  let themeClass = context.stitchesInstance.theme.className;
917
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react17.default.createElement("div", {
1004
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react19.default.createElement("div", {
918
1005
  className: `weaverse-content-root ${themeClass}`,
919
1006
  ...eventHandlers,
920
1007
  ref: rootRef
921
- }, /* @__PURE__ */ import_react17.default.createElement(WeaverseContextProvider, {
1008
+ }, /* @__PURE__ */ import_react19.default.createElement(WeaverseContextProvider, {
922
1009
  value: context
923
- }, /* @__PURE__ */ import_react17.default.createElement(ItemInstance, {
1010
+ }, /* @__PURE__ */ import_react19.default.createElement(ItemInstance, {
924
1011
  id: context.projectData.rootId
925
1012
  }))) : null;
926
1013
  };
927
1014
  var ItemComponent = ({ instance }) => {
928
- let { stitchesInstance, elementInstances } = (0, import_react17.useContext)(WeaverseContext);
929
- let [data, setData] = (0, import_react17.useState)(instance.data);
1015
+ let { stitchesInstance, elementInstances } = (0, import_react19.useContext)(WeaverseContext);
1016
+ let [data, setData] = (0, import_react19.useState)(instance.data);
930
1017
  let { id, type, childIds = [], css, className, ...rest } = data;
931
- (0, import_react17.useEffect)(() => {
1018
+ (0, import_react19.useEffect)(() => {
932
1019
  var _a;
933
1020
  let update = (data2) => setData({ ...data2 });
934
1021
  instance.subscribe(update);
@@ -948,13 +1035,13 @@ var ItemComponent = ({ instance }) => {
948
1035
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
949
1036
  rest.ref = instance.ref;
950
1037
  }
951
- return /* @__PURE__ */ import_react17.default.createElement(Component, {
1038
+ return /* @__PURE__ */ import_react19.default.createElement(Component, {
952
1039
  key: id,
953
1040
  "data-wv-type": type,
954
1041
  "data-wv-id": id,
955
1042
  className: generateItemClass(instance, stitchesInstance),
956
1043
  ...rest
957
- }, childIds.map((id2) => /* @__PURE__ */ import_react17.default.createElement(ItemInstance, {
1044
+ }, childIds.map((id2) => /* @__PURE__ */ import_react19.default.createElement(ItemInstance, {
958
1045
  key: id2,
959
1046
  id: id2
960
1047
  })));
@@ -962,15 +1049,15 @@ var ItemComponent = ({ instance }) => {
962
1049
  return null;
963
1050
  };
964
1051
  var ItemInstance = ({ id }) => {
965
- let context = (0, import_react17.useContext)(WeaverseContext);
1052
+ let context = (0, import_react19.useContext)(WeaverseContext);
966
1053
  let { itemInstances } = context;
967
1054
  let instance = itemInstances.get(id);
968
1055
  if (!instance) {
969
- return /* @__PURE__ */ import_react17.default.createElement("div", {
1056
+ return /* @__PURE__ */ import_react19.default.createElement("div", {
970
1057
  style: { display: "none" }
971
1058
  }, "Item instance ", id, " not found");
972
1059
  }
973
- return /* @__PURE__ */ import_react17.default.createElement(ItemComponent, {
1060
+ return /* @__PURE__ */ import_react19.default.createElement(ItemComponent, {
974
1061
  instance
975
1062
  });
976
1063
  };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/context.ts
2
2
  import { Weaverse } from "@weaverse/core";
3
- import { createContext as createContext3 } from "react";
3
+ import { createContext as createContext4 } from "react";
4
4
 
5
5
  // src/elements/button.tsx
6
6
  import * as React from "react";
@@ -762,6 +762,89 @@ TabContent.defaultProps = {
762
762
  };
763
763
  var TabContent_default = TabContent;
764
764
 
765
+ // src/elements/slider/index.tsx
766
+ import React18, {
767
+ createContext as createContext3,
768
+ forwardRef as forwardRef15,
769
+ useState as useState5
770
+ } from "react";
771
+ import * as Carousel from "nuka-carousel";
772
+ var SliderContext = createContext3({
773
+ active: null,
774
+ setActive: () => {
775
+ }
776
+ });
777
+ var Slider = forwardRef15((props, ref) => {
778
+ var _a, _b, _c;
779
+ const { children, ...rest } = props;
780
+ const defaultActive = (_c = (_b = (_a = React18.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
781
+ const [active, setActive] = useState5(defaultActive);
782
+ return /* @__PURE__ */ React18.createElement("div", {
783
+ ...rest,
784
+ ref
785
+ }, /* @__PURE__ */ React18.createElement(SliderContext.Provider, {
786
+ value: { active, setActive }
787
+ }, children), /* @__PURE__ */ React18.createElement(Carousel.default, null, /* @__PURE__ */ React18.createElement("div", {
788
+ className: "slide"
789
+ }, "Hi"), /* @__PURE__ */ React18.createElement("div", {
790
+ className: "slide"
791
+ }, "Hieee"), /* @__PURE__ */ React18.createElement("div", {
792
+ className: "slide"
793
+ }, "Hixxx"), /* @__PURE__ */ React18.createElement("div", {
794
+ className: "slide"
795
+ }, "Hi3")));
796
+ });
797
+ Slider.defaultProps = {
798
+ css: {
799
+ "@desktop": {}
800
+ }
801
+ };
802
+ var slider_default = Slider;
803
+
804
+ // src/elements/slider/SliderContent.tsx
805
+ import React19, { forwardRef as forwardRef16, useContext as useContext7 } from "react";
806
+ var SliderContent = forwardRef16(
807
+ (props, ref) => {
808
+ const { active } = useContext7(SliderContext);
809
+ const wvId = props["data-wv-id"];
810
+ const { rows, columns, gap, rowSize, children, ...rest } = props;
811
+ let style = {
812
+ "--rows": rows,
813
+ "--columns": columns,
814
+ "--gap": gap + "px",
815
+ "--row-size": rowSize + "px",
816
+ "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
817
+ "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
818
+ "--content-active": active === wvId ? "grid" : "none"
819
+ };
820
+ return /* @__PURE__ */ React19.createElement("div", {
821
+ ref,
822
+ ...rest,
823
+ style
824
+ }, React19.Children.count(children) > 0 ? children : /* @__PURE__ */ React19.createElement(Placeholder_default, {
825
+ element: "Slider"
826
+ }, "Slider Content"));
827
+ }
828
+ );
829
+ SliderContent.defaultProps = {
830
+ rows: 2,
831
+ columns: 12,
832
+ gap: 4,
833
+ rowSize: 48,
834
+ css: {
835
+ "@desktop": {
836
+ width: "100%",
837
+ maxWidth: "var(--grid-size)",
838
+ display: "var(--content-active, none)",
839
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
840
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
841
+ gap: "var(--gap)",
842
+ borderRadius: 4
843
+ }
844
+ }
845
+ };
846
+ var SliderContent_default = SliderContent;
847
+
765
848
  // src/elements/index.ts
766
849
  var elements = {
767
850
  Countdown: {
@@ -819,6 +902,14 @@ var elements = {
819
902
  TabContent: {
820
903
  Component: TabContent_default,
821
904
  type: "tab.content"
905
+ },
906
+ Slider: {
907
+ Component: slider_default,
908
+ type: "slider"
909
+ },
910
+ SliderContent: {
911
+ Component: SliderContent_default,
912
+ type: "slider.content"
822
913
  }
823
914
  };
824
915
  var elements_default = elements;
@@ -831,13 +922,13 @@ var createRootContext = (configs) => {
831
922
  });
832
923
  return rootContext;
833
924
  };
834
- var WeaverseContext = createContext3({});
925
+ var WeaverseContext = createContext4({});
835
926
  var WeaverseContextProvider = WeaverseContext.Provider;
836
927
  var WeaverseContextConsumer = WeaverseContext.Consumer;
837
928
 
838
929
  // src/renderer.tsx
839
930
  import { isBrowser } from "@weaverse/core";
840
- import React18, { useContext as useContext7, useEffect as useEffect4, useRef, useState as useState5 } from "react";
931
+ import React20, { useContext as useContext8, useEffect as useEffect4, useRef, useState as useState6 } from "react";
841
932
 
842
933
  // src/utils/index.ts
843
934
  var shortCssObject = (css) => {
@@ -865,7 +956,7 @@ function generateItemClass(instance, stitchesInstance) {
865
956
  // src/renderer.tsx
866
957
  var WeaverseRoot = ({ context }) => {
867
958
  var _a, _b;
868
- let [, setData] = useState5(context.projectData);
959
+ let [, setData] = useState6(context.projectData);
869
960
  let rootRef = useRef();
870
961
  let update = () => setData({});
871
962
  useEffect4(() => {
@@ -877,19 +968,19 @@ var WeaverseRoot = ({ context }) => {
877
968
  }, []);
878
969
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
879
970
  let themeClass = context.stitchesInstance.theme.className;
880
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React18.createElement("div", {
971
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ React20.createElement("div", {
881
972
  className: `weaverse-content-root ${themeClass}`,
882
973
  ...eventHandlers,
883
974
  ref: rootRef
884
- }, /* @__PURE__ */ React18.createElement(WeaverseContextProvider, {
975
+ }, /* @__PURE__ */ React20.createElement(WeaverseContextProvider, {
885
976
  value: context
886
- }, /* @__PURE__ */ React18.createElement(ItemInstance, {
977
+ }, /* @__PURE__ */ React20.createElement(ItemInstance, {
887
978
  id: context.projectData.rootId
888
979
  }))) : null;
889
980
  };
890
981
  var ItemComponent = ({ instance }) => {
891
- let { stitchesInstance, elementInstances } = useContext7(WeaverseContext);
892
- let [data, setData] = useState5(instance.data);
982
+ let { stitchesInstance, elementInstances } = useContext8(WeaverseContext);
983
+ let [data, setData] = useState6(instance.data);
893
984
  let { id, type, childIds = [], css, className, ...rest } = data;
894
985
  useEffect4(() => {
895
986
  var _a;
@@ -911,13 +1002,13 @@ var ItemComponent = ({ instance }) => {
911
1002
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
912
1003
  rest.ref = instance.ref;
913
1004
  }
914
- return /* @__PURE__ */ React18.createElement(Component, {
1005
+ return /* @__PURE__ */ React20.createElement(Component, {
915
1006
  key: id,
916
1007
  "data-wv-type": type,
917
1008
  "data-wv-id": id,
918
1009
  className: generateItemClass(instance, stitchesInstance),
919
1010
  ...rest
920
- }, childIds.map((id2) => /* @__PURE__ */ React18.createElement(ItemInstance, {
1011
+ }, childIds.map((id2) => /* @__PURE__ */ React20.createElement(ItemInstance, {
921
1012
  key: id2,
922
1013
  id: id2
923
1014
  })));
@@ -925,15 +1016,15 @@ var ItemComponent = ({ instance }) => {
925
1016
  return null;
926
1017
  };
927
1018
  var ItemInstance = ({ id }) => {
928
- let context = useContext7(WeaverseContext);
1019
+ let context = useContext8(WeaverseContext);
929
1020
  let { itemInstances } = context;
930
1021
  let instance = itemInstances.get(id);
931
1022
  if (!instance) {
932
- return /* @__PURE__ */ React18.createElement("div", {
1023
+ return /* @__PURE__ */ React20.createElement("div", {
933
1024
  style: { display: "none" }
934
1025
  }, "Item instance ", id, " not found");
935
1026
  }
936
- return /* @__PURE__ */ React18.createElement(ItemComponent, {
1027
+ return /* @__PURE__ */ React20.createElement(ItemComponent, {
937
1028
  instance
938
1029
  });
939
1030
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.7.0",
2
+ "version": "0.7.3",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -31,6 +31,7 @@
31
31
  "name": "@weaverse/react",
32
32
  "author": "Weaverse Team",
33
33
  "dependencies": {
34
- "@weaverse/core": "0.7.0"
34
+ "@weaverse/core": "0.7.2",
35
+ "nuka-carousel": "^5.2.0"
35
36
  }
36
37
  }