@weaverse/react 0.6.22 → 0.6.23

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.
Files changed (3) hide show
  1. package/dist/index.js +151 -18
  2. package/dist/index.mjs +148 -15
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -62,7 +62,7 @@ module.exports = __toCommonJS(src_exports);
62
62
 
63
63
  // src/context.ts
64
64
  var import_core = require("@weaverse/core");
65
- var import_react10 = require("react");
65
+ var import_react13 = require("react");
66
66
 
67
67
  // src/elements/button.tsx
68
68
  var React = __toESM(require("react"));
@@ -411,12 +411,16 @@ var import_react8 = __toESM(require("react"));
411
411
  var Placeholder = (0, import_react8.forwardRef)((props, ref) => {
412
412
  let _a = props, { element, children } = _a, rest = __objRest(_a, ["element", "children"]);
413
413
  let style = {
414
+ position: "absolute",
414
415
  height: "100%",
416
+ width: "100%",
415
417
  display: "flex",
416
418
  flexDirection: "column",
417
419
  alignItems: "center",
418
420
  justifyContent: "center",
419
- color: "#374151"
421
+ color: "#374151",
422
+ pointerEvents: "none",
423
+ zIndex: 1
420
424
  };
421
425
  return /* @__PURE__ */ import_react8.default.createElement("div", __spreadValues({
422
426
  style,
@@ -507,6 +511,123 @@ Instagram.defaultProps = {
507
511
  };
508
512
  var instagram_default = Instagram;
509
513
 
514
+ // src/elements/accordion/index.tsx
515
+ var import_react10 = __toESM(require("react"));
516
+ var AccordionContext = (0, import_react10.createContext)({
517
+ active: null,
518
+ setActive: () => {
519
+ }
520
+ });
521
+ var Accordion = (0, import_react10.forwardRef)((props, ref) => {
522
+ const _a = props, { items, children } = _a, rest = __objRest(_a, ["items", "children"]);
523
+ const [active, setActive] = (0, import_react10.useState)(null);
524
+ const setOpenAccordion = (id) => {
525
+ if (id === active) {
526
+ setActive(null);
527
+ } else {
528
+ setActive(id);
529
+ }
530
+ };
531
+ console.info("9779 active", active);
532
+ return /* @__PURE__ */ import_react10.default.createElement("div", __spreadValues({
533
+ ref
534
+ }, rest), /* @__PURE__ */ import_react10.default.createElement(AccordionContext.Provider, {
535
+ value: { active, setActive: setOpenAccordion }
536
+ }, children));
537
+ });
538
+ Accordion.defaultProps = {
539
+ items: [
540
+ {
541
+ id: 1,
542
+ headerText: "Header 1",
543
+ childrenId: true
544
+ },
545
+ {
546
+ id: 2,
547
+ headerText: "Header 2"
548
+ }
549
+ ],
550
+ css: {
551
+ "@desktop": {
552
+ display: "flex",
553
+ flexDirection: "column",
554
+ gap: 4,
555
+ ".wv-accordion-header": {
556
+ borderRadius: 4,
557
+ padding: 4,
558
+ marginBottom: 4,
559
+ backgroundColor: "#aaa",
560
+ "&.active": {
561
+ color: "blue"
562
+ },
563
+ '&.active + [data-wv-type="accordion.content"]': {
564
+ display: "grid"
565
+ }
566
+ }
567
+ }
568
+ }
569
+ };
570
+ var accordion_default = Accordion;
571
+
572
+ // src/elements/accordion/AccordionWrapper.tsx
573
+ var import_react11 = __toESM(require("react"));
574
+ var AccordionWrapper = (0, import_react11.forwardRef)((props, ref) => {
575
+ const _a = props, { wrapperId, headerText, children } = _a, rest = __objRest(_a, ["wrapperId", "headerText", "children"]);
576
+ const { active, setActive } = (0, import_react11.useContext)(AccordionContext);
577
+ return /* @__PURE__ */ import_react11.default.createElement("div", __spreadValues({
578
+ ref
579
+ }, rest), /* @__PURE__ */ import_react11.default.createElement("div", {
580
+ onClick: () => setActive(wrapperId),
581
+ className: `wv-accordion-header ${active === wrapperId ? "active" : ""}`
582
+ }, headerText, " #", wrapperId), children);
583
+ });
584
+ AccordionWrapper.defaultProps = {
585
+ wrapperId: 1,
586
+ headerText: "Header 1",
587
+ css: {
588
+ "@desktop": {
589
+ maxHeight: "100%"
590
+ }
591
+ }
592
+ };
593
+ var AccordionWrapper_default = AccordionWrapper;
594
+
595
+ // src/elements/accordion/AccordionContent.tsx
596
+ var import_react12 = __toESM(require("react"));
597
+ var AccordionContent = (0, import_react12.forwardRef)((props, ref) => {
598
+ const _a = props, { rows, columns, gap, rowSize, children } = _a, rest = __objRest(_a, ["rows", "columns", "gap", "rowSize", "children"]);
599
+ let style = {
600
+ "--rows": rows,
601
+ "--columns": columns,
602
+ "--gap": gap + "px",
603
+ "--row-size": rowSize + "px"
604
+ };
605
+ return /* @__PURE__ */ import_react12.default.createElement("div", __spreadProps(__spreadValues({
606
+ ref
607
+ }, rest), {
608
+ style
609
+ }), import_react12.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react12.default.createElement(Placeholder_default, {
610
+ element: "Accordion"
611
+ }, "Item Content"));
612
+ });
613
+ AccordionContent.defaultProps = {
614
+ rows: 2,
615
+ columns: 12,
616
+ gap: 4,
617
+ rowSize: 48,
618
+ css: {
619
+ "@desktop": {
620
+ width: "100%",
621
+ backgroundColor: "#DDD",
622
+ display: "none",
623
+ gridTemplate: "repeat(var(--rows),var(--row-size))/repeat(var(--columns),1fr)",
624
+ gridGap: "var(--gap)",
625
+ borderRadius: 4
626
+ }
627
+ }
628
+ };
629
+ var AccordionContent_default = AccordionContent;
630
+
510
631
  // src/elements/index.ts
511
632
  var elements = {
512
633
  Countdown: {
@@ -544,6 +665,18 @@ var elements = {
544
665
  Video: {
545
666
  Component: video_default,
546
667
  type: "video"
668
+ },
669
+ Accordion: {
670
+ Component: accordion_default,
671
+ type: "accordion"
672
+ },
673
+ AccordionWrapper: {
674
+ Component: AccordionWrapper_default,
675
+ type: "accordion.wrapper"
676
+ },
677
+ AccordionContent: {
678
+ Component: AccordionContent_default,
679
+ type: "accordion.content"
547
680
  }
548
681
  };
549
682
  var elements_default = elements;
@@ -556,13 +689,13 @@ var createRootContext = (configs) => {
556
689
  });
557
690
  return rootContext;
558
691
  };
559
- var WeaverseContext = (0, import_react10.createContext)({});
692
+ var WeaverseContext = (0, import_react13.createContext)({});
560
693
  var WeaverseContextProvider = WeaverseContext.Provider;
561
694
  var WeaverseContextConsumer = WeaverseContext.Consumer;
562
695
 
563
696
  // src/renderer.tsx
564
697
  var import_core2 = require("@weaverse/core");
565
- var import_react11 = __toESM(require("react"));
698
+ var import_react14 = __toESM(require("react"));
566
699
 
567
700
  // src/utils/index.ts
568
701
  var shortCssObject = (css) => {
@@ -590,9 +723,9 @@ function generateItemClass(instance, stitchesInstance) {
590
723
  // src/renderer.tsx
591
724
  var WeaverseRoot = ({ context }) => {
592
725
  var _a;
593
- let [, setData] = (0, import_react11.useState)(context.projectData);
594
- let rootRef = (0, import_react11.useRef)();
595
- (0, import_react11.useEffect)(() => {
726
+ let [, setData] = (0, import_react14.useState)(context.projectData);
727
+ let rootRef = (0, import_react14.useRef)();
728
+ (0, import_react14.useEffect)(() => {
596
729
  let update = () => setData({});
597
730
  context.subscribe(update);
598
731
  if (context.projectData) {
@@ -605,21 +738,21 @@ var WeaverseRoot = ({ context }) => {
605
738
  }, []);
606
739
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
607
740
  let themeClass = context.stitchesInstance.theme.className;
608
- return /* @__PURE__ */ import_react11.default.createElement("div", __spreadProps(__spreadValues({
741
+ return /* @__PURE__ */ import_react14.default.createElement("div", __spreadProps(__spreadValues({
609
742
  className: `weaverse-content-root ${themeClass}`
610
743
  }, eventHandlers), {
611
744
  ref: rootRef
612
- }), /* @__PURE__ */ import_react11.default.createElement(WeaverseContextProvider, {
745
+ }), /* @__PURE__ */ import_react14.default.createElement(WeaverseContextProvider, {
613
746
  value: context
614
- }, /* @__PURE__ */ import_react11.default.createElement(ItemInstance, {
747
+ }, /* @__PURE__ */ import_react14.default.createElement(ItemInstance, {
615
748
  id: context.projectData.rootId || 0
616
749
  })));
617
750
  };
618
751
  var ItemComponent = ({ instance }) => {
619
- let { stitchesInstance, elementInstances } = (0, import_react11.useContext)(WeaverseContext);
620
- let [data, setData] = (0, import_react11.useState)(instance.data);
752
+ let { stitchesInstance, elementInstances } = (0, import_react14.useContext)(WeaverseContext);
753
+ let [data, setData] = (0, import_react14.useState)(instance.data);
621
754
  let _a = data, { id, type, childIds = [], css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
622
- (0, import_react11.useEffect)(() => {
755
+ (0, import_react14.useEffect)(() => {
623
756
  var _a2;
624
757
  let update = (data2) => setData(__spreadValues({}, data2));
625
758
  instance.subscribe(update);
@@ -639,12 +772,12 @@ var ItemComponent = ({ instance }) => {
639
772
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
640
773
  rest.ref = instance.ref;
641
774
  }
642
- return /* @__PURE__ */ import_react11.default.createElement(Component, __spreadValues({
775
+ return /* @__PURE__ */ import_react14.default.createElement(Component, __spreadValues({
643
776
  key: id,
644
777
  "data-wv-type": type,
645
778
  "data-wv-id": id,
646
779
  className: generateItemClass(instance, stitchesInstance)
647
- }, rest), childIds.map((id2) => /* @__PURE__ */ import_react11.default.createElement(ItemInstance, {
780
+ }, rest), childIds.map((id2) => /* @__PURE__ */ import_react14.default.createElement(ItemInstance, {
648
781
  key: id2,
649
782
  id: id2
650
783
  })));
@@ -652,15 +785,15 @@ var ItemComponent = ({ instance }) => {
652
785
  return null;
653
786
  };
654
787
  var ItemInstance = ({ id }) => {
655
- let context = (0, import_react11.useContext)(WeaverseContext);
788
+ let context = (0, import_react14.useContext)(WeaverseContext);
656
789
  let { itemInstances } = context;
657
790
  let instance = itemInstances.get(id);
658
791
  if (!instance) {
659
- return /* @__PURE__ */ import_react11.default.createElement("div", {
792
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
660
793
  style: { display: "none" }
661
794
  }, "Item instance ", id, " not found");
662
795
  }
663
- return /* @__PURE__ */ import_react11.default.createElement(ItemComponent, {
796
+ return /* @__PURE__ */ import_react14.default.createElement(ItemComponent, {
664
797
  instance
665
798
  });
666
799
  };
package/dist/index.mjs CHANGED
@@ -32,7 +32,7 @@ var __objRest = (source, exclude) => {
32
32
 
33
33
  // src/context.ts
34
34
  import { Weaverse } from "@weaverse/core";
35
- import { createContext } from "react";
35
+ import { createContext as createContext2 } from "react";
36
36
 
37
37
  // src/elements/button.tsx
38
38
  import * as React from "react";
@@ -381,12 +381,16 @@ import React10, { forwardRef as forwardRef8 } from "react";
381
381
  var Placeholder = forwardRef8((props, ref) => {
382
382
  let _a = props, { element, children } = _a, rest = __objRest(_a, ["element", "children"]);
383
383
  let style = {
384
+ position: "absolute",
384
385
  height: "100%",
386
+ width: "100%",
385
387
  display: "flex",
386
388
  flexDirection: "column",
387
389
  alignItems: "center",
388
390
  justifyContent: "center",
389
- color: "#374151"
391
+ color: "#374151",
392
+ pointerEvents: "none",
393
+ zIndex: 1
390
394
  };
391
395
  return /* @__PURE__ */ React10.createElement("div", __spreadValues({
392
396
  style,
@@ -477,6 +481,123 @@ Instagram.defaultProps = {
477
481
  };
478
482
  var instagram_default = Instagram;
479
483
 
484
+ // src/elements/accordion/index.tsx
485
+ import React12, { createContext, forwardRef as forwardRef10, useState as useState2 } from "react";
486
+ var AccordionContext = createContext({
487
+ active: null,
488
+ setActive: () => {
489
+ }
490
+ });
491
+ var Accordion = forwardRef10((props, ref) => {
492
+ const _a = props, { items, children } = _a, rest = __objRest(_a, ["items", "children"]);
493
+ const [active, setActive] = useState2(null);
494
+ const setOpenAccordion = (id) => {
495
+ if (id === active) {
496
+ setActive(null);
497
+ } else {
498
+ setActive(id);
499
+ }
500
+ };
501
+ console.info("9779 active", active);
502
+ return /* @__PURE__ */ React12.createElement("div", __spreadValues({
503
+ ref
504
+ }, rest), /* @__PURE__ */ React12.createElement(AccordionContext.Provider, {
505
+ value: { active, setActive: setOpenAccordion }
506
+ }, children));
507
+ });
508
+ Accordion.defaultProps = {
509
+ items: [
510
+ {
511
+ id: 1,
512
+ headerText: "Header 1",
513
+ childrenId: true
514
+ },
515
+ {
516
+ id: 2,
517
+ headerText: "Header 2"
518
+ }
519
+ ],
520
+ css: {
521
+ "@desktop": {
522
+ display: "flex",
523
+ flexDirection: "column",
524
+ gap: 4,
525
+ ".wv-accordion-header": {
526
+ borderRadius: 4,
527
+ padding: 4,
528
+ marginBottom: 4,
529
+ backgroundColor: "#aaa",
530
+ "&.active": {
531
+ color: "blue"
532
+ },
533
+ '&.active + [data-wv-type="accordion.content"]': {
534
+ display: "grid"
535
+ }
536
+ }
537
+ }
538
+ }
539
+ };
540
+ var accordion_default = Accordion;
541
+
542
+ // src/elements/accordion/AccordionWrapper.tsx
543
+ import React13, { forwardRef as forwardRef11, useContext as useContext4 } from "react";
544
+ var AccordionWrapper = forwardRef11((props, ref) => {
545
+ const _a = props, { wrapperId, headerText, children } = _a, rest = __objRest(_a, ["wrapperId", "headerText", "children"]);
546
+ const { active, setActive } = useContext4(AccordionContext);
547
+ return /* @__PURE__ */ React13.createElement("div", __spreadValues({
548
+ ref
549
+ }, rest), /* @__PURE__ */ React13.createElement("div", {
550
+ onClick: () => setActive(wrapperId),
551
+ className: `wv-accordion-header ${active === wrapperId ? "active" : ""}`
552
+ }, headerText, " #", wrapperId), children);
553
+ });
554
+ AccordionWrapper.defaultProps = {
555
+ wrapperId: 1,
556
+ headerText: "Header 1",
557
+ css: {
558
+ "@desktop": {
559
+ maxHeight: "100%"
560
+ }
561
+ }
562
+ };
563
+ var AccordionWrapper_default = AccordionWrapper;
564
+
565
+ // src/elements/accordion/AccordionContent.tsx
566
+ import React14, { forwardRef as forwardRef12 } from "react";
567
+ var AccordionContent = forwardRef12((props, ref) => {
568
+ const _a = props, { rows, columns, gap, rowSize, children } = _a, rest = __objRest(_a, ["rows", "columns", "gap", "rowSize", "children"]);
569
+ let style = {
570
+ "--rows": rows,
571
+ "--columns": columns,
572
+ "--gap": gap + "px",
573
+ "--row-size": rowSize + "px"
574
+ };
575
+ return /* @__PURE__ */ React14.createElement("div", __spreadProps(__spreadValues({
576
+ ref
577
+ }, rest), {
578
+ style
579
+ }), React14.Children.count(children) > 0 ? children : /* @__PURE__ */ React14.createElement(Placeholder_default, {
580
+ element: "Accordion"
581
+ }, "Item Content"));
582
+ });
583
+ AccordionContent.defaultProps = {
584
+ rows: 2,
585
+ columns: 12,
586
+ gap: 4,
587
+ rowSize: 48,
588
+ css: {
589
+ "@desktop": {
590
+ width: "100%",
591
+ backgroundColor: "#DDD",
592
+ display: "none",
593
+ gridTemplate: "repeat(var(--rows),var(--row-size))/repeat(var(--columns),1fr)",
594
+ gridGap: "var(--gap)",
595
+ borderRadius: 4
596
+ }
597
+ }
598
+ };
599
+ var AccordionContent_default = AccordionContent;
600
+
480
601
  // src/elements/index.ts
481
602
  var elements = {
482
603
  Countdown: {
@@ -514,6 +635,18 @@ var elements = {
514
635
  Video: {
515
636
  Component: video_default,
516
637
  type: "video"
638
+ },
639
+ Accordion: {
640
+ Component: accordion_default,
641
+ type: "accordion"
642
+ },
643
+ AccordionWrapper: {
644
+ Component: AccordionWrapper_default,
645
+ type: "accordion.wrapper"
646
+ },
647
+ AccordionContent: {
648
+ Component: AccordionContent_default,
649
+ type: "accordion.content"
517
650
  }
518
651
  };
519
652
  var elements_default = elements;
@@ -526,13 +659,13 @@ var createRootContext = (configs) => {
526
659
  });
527
660
  return rootContext;
528
661
  };
529
- var WeaverseContext = createContext({});
662
+ var WeaverseContext = createContext2({});
530
663
  var WeaverseContextProvider = WeaverseContext.Provider;
531
664
  var WeaverseContextConsumer = WeaverseContext.Consumer;
532
665
 
533
666
  // src/renderer.tsx
534
667
  import { isBrowser } from "@weaverse/core";
535
- import React12, { useContext as useContext4, useEffect as useEffect3, useRef, useState as useState2 } from "react";
668
+ import React15, { useContext as useContext5, useEffect as useEffect3, useRef, useState as useState3 } from "react";
536
669
 
537
670
  // src/utils/index.ts
538
671
  var shortCssObject = (css) => {
@@ -560,7 +693,7 @@ function generateItemClass(instance, stitchesInstance) {
560
693
  // src/renderer.tsx
561
694
  var WeaverseRoot = ({ context }) => {
562
695
  var _a;
563
- let [, setData] = useState2(context.projectData);
696
+ let [, setData] = useState3(context.projectData);
564
697
  let rootRef = useRef();
565
698
  useEffect3(() => {
566
699
  let update = () => setData({});
@@ -575,19 +708,19 @@ var WeaverseRoot = ({ context }) => {
575
708
  }, []);
576
709
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
577
710
  let themeClass = context.stitchesInstance.theme.className;
578
- return /* @__PURE__ */ React12.createElement("div", __spreadProps(__spreadValues({
711
+ return /* @__PURE__ */ React15.createElement("div", __spreadProps(__spreadValues({
579
712
  className: `weaverse-content-root ${themeClass}`
580
713
  }, eventHandlers), {
581
714
  ref: rootRef
582
- }), /* @__PURE__ */ React12.createElement(WeaverseContextProvider, {
715
+ }), /* @__PURE__ */ React15.createElement(WeaverseContextProvider, {
583
716
  value: context
584
- }, /* @__PURE__ */ React12.createElement(ItemInstance, {
717
+ }, /* @__PURE__ */ React15.createElement(ItemInstance, {
585
718
  id: context.projectData.rootId || 0
586
719
  })));
587
720
  };
588
721
  var ItemComponent = ({ instance }) => {
589
- let { stitchesInstance, elementInstances } = useContext4(WeaverseContext);
590
- let [data, setData] = useState2(instance.data);
722
+ let { stitchesInstance, elementInstances } = useContext5(WeaverseContext);
723
+ let [data, setData] = useState3(instance.data);
591
724
  let _a = data, { id, type, childIds = [], css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
592
725
  useEffect3(() => {
593
726
  var _a2;
@@ -609,12 +742,12 @@ var ItemComponent = ({ instance }) => {
609
742
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
610
743
  rest.ref = instance.ref;
611
744
  }
612
- return /* @__PURE__ */ React12.createElement(Component, __spreadValues({
745
+ return /* @__PURE__ */ React15.createElement(Component, __spreadValues({
613
746
  key: id,
614
747
  "data-wv-type": type,
615
748
  "data-wv-id": id,
616
749
  className: generateItemClass(instance, stitchesInstance)
617
- }, rest), childIds.map((id2) => /* @__PURE__ */ React12.createElement(ItemInstance, {
750
+ }, rest), childIds.map((id2) => /* @__PURE__ */ React15.createElement(ItemInstance, {
618
751
  key: id2,
619
752
  id: id2
620
753
  })));
@@ -622,15 +755,15 @@ var ItemComponent = ({ instance }) => {
622
755
  return null;
623
756
  };
624
757
  var ItemInstance = ({ id }) => {
625
- let context = useContext4(WeaverseContext);
758
+ let context = useContext5(WeaverseContext);
626
759
  let { itemInstances } = context;
627
760
  let instance = itemInstances.get(id);
628
761
  if (!instance) {
629
- return /* @__PURE__ */ React12.createElement("div", {
762
+ return /* @__PURE__ */ React15.createElement("div", {
630
763
  style: { display: "none" }
631
764
  }, "Item instance ", id, " not found");
632
765
  }
633
- return /* @__PURE__ */ React12.createElement(ItemComponent, {
766
+ return /* @__PURE__ */ React15.createElement(ItemComponent, {
634
767
  instance
635
768
  });
636
769
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.22",
2
+ "version": "0.6.23",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -31,6 +31,6 @@
31
31
  "name": "@weaverse/react",
32
32
  "author": "Weaverse Team",
33
33
  "dependencies": {
34
- "@weaverse/core": "0.6.22"
34
+ "@weaverse/core": "0.6.23"
35
35
  }
36
36
  }