@weaverse/react 0.1.9 → 0.1.10

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.
@@ -1,9 +1,3 @@
1
1
  import React from 'react';
2
- export declare const BaseElement: {
3
- ({ tag, children, ...props }: any): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
4
- defaultProps: {
5
- type: string;
6
- tag: string;
7
- };
8
- };
2
+ export declare const BaseElement: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<unknown>>;
9
3
  export default BaseElement;
@@ -2,7 +2,10 @@
2
2
  declare function Grid(props: any): JSX.Element;
3
3
  declare namespace Grid {
4
4
  var defaultProps: {
5
- style: {};
5
+ style: {
6
+ display: string;
7
+ gridTemplate: string;
8
+ };
6
9
  type: string;
7
10
  };
8
11
  }
@@ -2,13 +2,7 @@
2
2
  import Grid from './grid';
3
3
  declare const elements: {
4
4
  Button: import("react").ForwardRefExoticComponent<Pick<any, string | number | symbol> & import("react").RefAttributes<unknown>>;
5
- BaseElement: {
6
- ({ tag, children, ...props }: any): import("react").DetailedReactHTMLElement<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
7
- defaultProps: {
8
- type: string;
9
- tag: string;
10
- };
11
- };
5
+ BaseElement: import("react").ForwardRefExoticComponent<Pick<any, string | number | symbol> & import("react").RefAttributes<unknown>>;
12
6
  Grid: typeof Grid;
13
7
  };
14
8
  export default elements;
package/dist/index.d.ts CHANGED
@@ -1,8 +1 @@
1
- /// <reference types="react" />
2
- import { Weaverse, WeaverseType } from '@weaverse/core';
3
- declare const createRootContext: (configs: WeaverseType) => Weaverse;
4
- declare const WeaverseRoot: ({ context, defaultData }: {
5
- context: Weaverse;
6
- defaultData: any;
7
- }) => JSX.Element;
8
- export { createRootContext, WeaverseRoot };
1
+ export { WeaverseRoot, createRootContext } from './renderer';
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { Weaverse, WeaverseType } from '@weaverse/core';
3
+ export declare const createRootContext: (configs: WeaverseType) => Weaverse;
4
+ export declare const WeaverseRoot: ({ context, defaultData }: {
5
+ context: Weaverse;
6
+ defaultData: any;
7
+ }) => JSX.Element;
@@ -66,24 +66,28 @@ Button.defaultProps = {
66
66
  };
67
67
 
68
68
  var _excluded = ["tag", "children"];
69
- var BaseElement = function BaseElement(_ref) {
69
+ var BaseElement = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
70
70
  var tag = _ref.tag,
71
71
  children = _ref.children,
72
72
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
73
73
 
74
- return React__default.createElement(tag, _extends({}, props), children);
75
- };
74
+ return React__default.createElement(tag, _extends({
75
+ ref: ref
76
+ }, props), children);
77
+ });
76
78
  BaseElement.defaultProps = {
77
79
  type: 'base',
78
- tag: 'div'
80
+ tag: 'div',
81
+ style: {}
79
82
  };
80
83
 
81
84
  function Grid(props) {
82
85
  return React__default.createElement("div", Object.assign({}, props));
83
86
  }
84
87
  Grid.defaultProps = {
85
- style: {// display: 'grid',
86
- // outline: '1px solid red',
88
+ style: {
89
+ display: 'grid',
90
+ gridTemplate: '1fr / 1fr'
87
91
  },
88
92
  type: 'grid'
89
93
  };
@@ -94,8 +98,6 @@ var elements = {
94
98
  Grid: Grid
95
99
  };
96
100
 
97
- var _excluded$1 = ["id", "type", "childIds", "css", "className"];
98
-
99
101
  var createRootContext = function createRootContext(configs) {
100
102
  var rootContext = new core.Weaverse(configs); // Register the element components
101
103
 
@@ -107,124 +109,8 @@ var createRootContext = function createRootContext(configs) {
107
109
  });
108
110
  return rootContext;
109
111
  };
110
-
111
112
  var WeaverseRoot = function WeaverseRoot(_ref) {
112
- var _context$projectData, _context$projectData$, _context$studioBridge;
113
-
114
- var context = _ref.context,
115
- defaultData = _ref.defaultData;
116
-
117
- var _useState = React.useState(context.projectData),
118
- setData = _useState[1];
119
-
120
- React.useEffect(function () {
121
- var handleUpdate = function handleUpdate() {
122
- setData(_extends({}, context.projectData));
123
- };
124
-
125
- context.subscribe(handleUpdate);
126
- context.updateProjectData();
127
- return function () {
128
- context.unsubscribe(handleUpdate);
129
- };
130
- }, []);
131
-
132
- if (!((_context$projectData = context.projectData) != null && (_context$projectData$ = _context$projectData.items) != null && _context$projectData$.length) && defaultData) {
133
- context.projectData = defaultData;
134
- context.initItemData();
135
- }
136
-
137
- var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
138
- console.log('handleProps', handleProps);
139
- return React__default.createElement("div", Object.assign({}, handleProps), React__default.createElement(RenderItem, {
140
- itemId: 0,
141
- context: context
142
- }));
143
- };
144
-
145
- var Item = function Item(_ref2) {
146
- var itemInstance = _ref2.itemInstance,
147
- elementInstances = _ref2.elementInstances,
148
- context = _ref2.context;
149
-
150
- var _useState2 = React.useState(itemInstance.data),
151
- data = _useState2[0],
152
- setData = _useState2[1];
153
-
154
- var id = data.id,
155
- type = data.type,
156
- childIds = data.childIds,
157
- css = data.css,
158
- className = data.className,
159
- rest = _objectWithoutPropertiesLoose(data, _excluded$1);
160
-
161
- React.useEffect(function () {
162
- var handleUpdate = function handleUpdate(update) {
163
- setData(_extends({}, update));
164
- };
165
-
166
- itemInstance.subscribe(handleUpdate);
167
-
168
- if (!itemInstance.ref.current && core.isBrowser) {
169
- Object.assign(itemInstance.ref, {
170
- current: document.querySelector("[data-wv-id=\"" + id + "\"]")
171
- });
172
- }
173
-
174
- return function () {
175
- itemInstance.unsubscribe(handleUpdate);
176
- };
177
- }, []);
178
- var realClassName = className || '';
179
-
180
- if (css) {
181
- // let stitches create the style from css object and
182
- // then return the classname, so we can use it in the render
183
- var selector = context.stitchesInstance.css(css)().className;
184
- realClassName += ' ' + selector;
185
- }
186
-
187
- var Component = elementInstances.get(type);
188
-
189
- if (Component) {
190
- // @ts-ignore
191
- if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
192
- rest.ref = itemInstance.ref;
193
- }
194
-
195
- return React__default.createElement(Component, Object.assign({
196
- key: id,
197
- "data-wv-id": id
198
- }, rest, {
199
- className: realClassName
200
- }), Array.isArray(childIds) && childIds.map(function (childId) {
201
- return React__default.createElement(RenderItem, {
202
- key: childId,
203
- itemId: childId,
204
- context: context
205
- });
206
- }));
207
- }
208
-
209
- return null;
210
- };
211
-
212
- var RenderItem = function RenderItem(_ref3) {
213
- var itemId = _ref3.itemId,
214
- context = _ref3.context;
215
- var itemInstances = context.itemInstances,
216
- elementInstances = context.elementInstances;
217
- var itemInstance = itemInstances.get(itemId);
218
-
219
- if (itemInstance) {
220
- return React__default.createElement(Item, {
221
- itemInstance: itemInstance,
222
- elementInstances: elementInstances,
223
- context: context
224
- });
225
- }
226
-
227
- return React__default.createElement(React__default.Fragment, null);
113
+ return React.createElement("div", null, "hiii");
228
114
  };
229
115
 
230
116
  exports.WeaverseRoot = WeaverseRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-react.cjs.development.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = ({tag, children, ...props}: any) => {\n return React.createElement(tag, {\n ...props\n }, children)\n}\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div'\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n // display: 'grid',\n // outline: '1px solid red',\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import React, {FC, useEffect, useState} from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\n\nconst createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n\n return rootContext\n}\n\nconst WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n let [, setData] = useState<any>(context.projectData)\n useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\nexport {createRootContext, WeaverseRoot}\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","children","createElement","Grid","elements","createRootContext","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement","WeaverseRoot","context","defaultData","useState","projectData","setData","useEffect","handleUpdate","subscribe","updateProjectData","unsubscribe","items","length","initItemData","handleProps","studioBridge","console","log","RenderItem","itemId","Item","itemInstance","elementInstances","data","id","childIds","css","className","rest","update","current","isBrowser","assign","document","querySelector","realClassName","selector","stitchesInstance","Component","get","$$typeof","Symbol","Array","isArray","map","childId","itemInstances"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,MAAM,gBAAGC,gBAAA,CAAiB,UAACC,KAAD,EAAaC,GAAb;AACrC,wBAAwBF,cAAA,CAAe,CAAf,CAAxB;AAAA,MAAKG,KAAL;AAAA,MAAYC,QAAZ;;AACA,SAAOJ,mBAAA,SAAA;AAAQE,IAAAA,GAAG,EAAEA;KAASD;AAAOI,IAAAA,OAAO,EAAE;AAAA,aAAMD,QAAQ,CAACD,KAAK,GAAG,CAAT,CAAd;AAAA;IAAtC,gBAAA,EAA8EA,KAA9E,CAAP;AACD,CAHqB,CAAf;AAKPJ,MAAM,CAACO,YAAP,GAAsB;AAClBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,eAAe,EAAE,OADd;AAEHC,IAAAA,YAAY,EAAE,QAFX;AAGHC,IAAAA,QAAQ,EAAE,MAHP;AAIHC,IAAAA,OAAO,EAAE;AAJN,GADW;AAOlBC,EAAAA,IAAI,EAAE,QAPY;AAQlBC,EAAAA,GAAG,EAAE;AARa,CAAtB;;;ACPA,AAEO,IAAMC,WAAW,GAAG,SAAdA,WAAc;MAAED,WAAAA;MAAKE,gBAAAA;MAAad;;AAC7C,SAAOD,cAAK,CAACgB,aAAN,CAAoBH,GAApB,eACFZ,KADE,GAEJc,QAFI,CAAP;AAGD,CAJM;AAMPD,WAAW,CAACR,YAAZ,GAA2B;AACzBM,EAAAA,IAAI,EAAE,MADmB;AAEzBC,EAAAA,GAAG,EAAE;AAFoB,CAA3B;;SCNwBI,KAAKhB;AAC3B,SAAOD,4BAAA,MAAA,oBAASC,MAAT,CAAP;AACD;AAEDgB,IAAI,CAACX,YAAL,GAAoB;AAClBC,EAAAA,KAAK,EAAE;AAEL;AAFK,GADW;AAKlBK,EAAAA,IAAI,EAAE;AALY,CAApB;;ACFA,IAAMM,QAAQ,GAAG;AACfnB,EAAAA,MAAM,EAANA,MADe;AAEfe,EAAAA,WAAW,EAAXA,WAFe;AAGfG,EAAAA,IAAI,EAAJA;AAHe,CAAjB;;;ACJA;AAKA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,OAAD;AACxB,MAAMC,WAAW,GAAG,IAAIC,aAAJ,CAAaF,OAAb,CAApB;;AAEAG,EAAAA,MAAM,CAACC,IAAP,CAAYC,QAAZ,EAAsBC,OAAtB,CAA8B,UAAAC,GAAG;;;AAC/B;AACA,sBAAAF,QAAQ,CAACE,GAAD,CAAR,4DAAerB,YAAf,2CAA6BM,IAA7B,KAAqCS,WAAW,CAACO,eAAZ,CAA4BH,QAAQ,CAACE,GAAD,CAAR,CAAcrB,YAAd,CAA2BM,IAAvD,EAA6Da,QAAQ,CAACE,GAAD,CAArE,CAArC;AACD,GAHD;AAKA,SAAON,WAAP;AACD,CATD;;AAWA,IAAMQ,YAAY,GAAG,SAAfA,YAAe;;;MAAEC,eAAAA;MAASC,mBAAAA;;AAC9B,kBAAkBC,cAAQ,CAAMF,OAAO,CAACG,WAAd,CAA1B;AAAA,MAAOC,OAAP;;AACAC,EAAAA,eAAS,CAAC;AACR,QAAIC,YAAY,GAAG,SAAfA,YAAe;AACjBF,MAAAA,OAAO,cAAKJ,OAAO,CAACG,WAAb,EAAP;AACD,KAFD;;AAGAH,IAAAA,OAAO,CAACO,SAAR,CAAkBD,YAAlB;AACAN,IAAAA,OAAO,CAACQ,iBAAR;AACA,WAAO;AACLR,MAAAA,OAAO,CAACS,WAAR,CAAoBH,YAApB;AACD,KAFD;AAGD,GATQ,EASN,EATM,CAAT;;AAUA,MAAI,0BAACN,OAAO,CAACG,WAAT,sCAAC,qBAAqBO,KAAtB,aAAC,sBAA4BC,MAA7B,KAAuCV,WAA3C,EAAwD;AACtDD,IAAAA,OAAO,CAACG,WAAR,GAAsBF,WAAtB;AACAD,IAAAA,OAAO,CAACY,YAAR;AACD;;AACD,MAAIC,WAAW,GAAG,CAAAb,OAAO,QAAP,qCAAAA,OAAO,CAAEc,YAAT,2CAAuBD,WAAvB,KAAsC,EAAxD;AACAE,EAAAA,OAAO,CAACC,GAAR,CAAY,aAAZ,EAA2BH,WAA3B;AACA,SAAO3C,4BAAA,MAAA,oBAAS2C,YAAT,EACL3C,4BAAA,CAAC+C,UAAD;AAAYC,IAAAA,MAAM,EAAE;AAAGlB,IAAAA,OAAO,EAAEA;GAAhC,CADK,CAAP;AAGD,CArBD;;AA+BA,IAAMmB,IAAI,GAAG,SAAPA,IAAO;MAAEC,qBAAAA;MAAcC,yBAAAA;MAAkBrB,gBAAAA;;AAC7C,mBAAsBE,cAAQ,CAAMkB,YAAY,CAACE,IAAnB,CAA9B;AAAA,MAAKA,IAAL;AAAA,MAAWlB,OAAX;;AACA,MAAKmB,EAAL,GAAoDD,IAApD,CAAKC,EAAL;AAAA,MAASzC,IAAT,GAAoDwC,IAApD,CAASxC,IAAT;AAAA,MAAe0C,QAAf,GAAoDF,IAApD,CAAeE,QAAf;AAAA,MAAyBC,GAAzB,GAAoDH,IAApD,CAAyBG,GAAzB;AAAA,MAA8BC,SAA9B,GAAoDJ,IAApD,CAA8BI,SAA9B;AAAA,MAA4CC,IAA5C,iCAAoDL,IAApD;;AACAjB,EAAAA,eAAS,CAAC;AACR,QAAIC,YAAY,GAAG,SAAfA,YAAe,CAACsB,MAAD;AACjBxB,MAAAA,OAAO,cAAKwB,MAAL,EAAP;AACD,KAFD;;AAGAR,IAAAA,YAAY,CAACb,SAAb,CAAuBD,YAAvB;;AACA,QAAI,CAACc,YAAY,CAAChD,GAAb,CAAiByD,OAAlB,IAA6BC,cAAjC,EAA4C;AAC1CrC,MAAAA,MAAM,CAACsC,MAAP,CAAcX,YAAY,CAAChD,GAA3B,EAAgC;AAACyD,QAAAA,OAAO,EAAEG,QAAQ,CAACC,aAAT,oBAAuCV,EAAvC;AAAV,OAAhC;AACD;;AAED,WAAO;AACLH,MAAAA,YAAY,CAACX,WAAb,CAAyBH,YAAzB;AACD,KAFD;AAGD,GAZQ,EAYN,EAZM,CAAT;AAcA,MAAI4B,aAAa,GAAGR,SAAS,IAAI,EAAjC;;AACA,MAAID,GAAJ,EAAS;AAEP;AACA;AACA,QAAIU,QAAQ,GAAInC,OAAO,CAACoC,gBAAR,CAAyBX,GAAzB,CAA6BA,GAA7B,GAAD,CAAsCC,SAArD;AACAQ,IAAAA,aAAa,IAAI,MAAMC,QAAvB;AACD;;AACD,MAAIE,SAAS,GAAGhB,gBAAgB,CAACiB,GAAjB,CAAqBxD,IAArB,CAAhB;;AACA,MAAIuD,SAAJ,EAAe;AACb;AACA,QAAIA,SAAS,CAACE,QAAV,KAAuBC,MAAM,OAAN,CAAW,mBAAX,CAA3B,EAA4D;AAC1Db,MAAAA,IAAI,CAACvD,GAAL,GAAWgD,YAAY,CAAChD,GAAxB;AACD;;AACD,WAAOF,4BAAA,CAACmE,SAAD;AAAWxC,MAAAA,GAAG,EAAE0B;oBAAgBA;OAAQI;AAAMD,MAAAA,SAAS,EAAEQ;MAAzD,EACJO,KAAK,CAACC,OAAN,CAAclB,QAAd,KACUA,QAAQ,CAACmB,GAAT,CAAa,UAAAC,OAAO;AAAA,aACf1E,4BAAA,CAAC+C,UAAD;AACQpB,QAAAA,GAAG,EAAE+C;AACL1B,QAAAA,MAAM,EAAE0B;AACR5C,QAAAA,OAAO,EAAEA;OAHjB,CADe;AAAA,KAApB,CAFN,CAAP;AAUD;;AACD,SAAO,IAAP;AACD,CA3CD;;AA6CA,IAAMiB,UAAU,GAAG,SAAbA,UAAa;MAAEC,eAAAA;MAAQlB,gBAAAA;AAC3B,MAAK6C,aAAL,GAAwC7C,OAAxC,CAAK6C,aAAL;AAAA,MAAoBxB,gBAApB,GAAwCrB,OAAxC,CAAoBqB,gBAApB;AACA,MAAID,YAAY,GAAGyB,aAAa,CAACP,GAAd,CAAkBpB,MAAlB,CAAnB;;AACA,MAAIE,YAAJ,EAAkB;AAChB,WAAOlD,4BAAA,CAACiD,IAAD;AAAMC,MAAAA,YAAY,EAAEA;AAAcC,MAAAA,gBAAgB,EAAEA;AAAkBrB,MAAAA,OAAO,EAAEA;KAA/E,CAAP;AACD;;AACD,SAAO9B,4BAAA,wBAAA,MAAA,CAAP;AACD,CAPD;;;;;"}
1
+ {"version":3,"file":"sdk-react.cjs.development.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/renderer.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = React.forwardRef((({tag, children, ...props}: any, ref) => {\n return React.createElement(tag, {\n ref,\n ...props\n }, children)\n}))\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div',\n style: {}\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n display: 'grid',\n gridTemplate: '1fr / 1fr'\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import * as React from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\nexport const createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n return rootContext\n}\n\nexport const WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n return <div>hiii</div>\n let [, setData] = React.useState<any>(context.projectData)\n React.useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, React.FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = React.useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n React.useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","forwardRef","children","createElement","Grid","display","gridTemplate","elements","createRootContext","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement","WeaverseRoot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,MAAM,gBAAGC,gBAAA,CAAiB,UAACC,KAAD,EAAaC,GAAb;AACrC,wBAAwBF,cAAA,CAAe,CAAf,CAAxB;AAAA,MAAKG,KAAL;AAAA,MAAYC,QAAZ;;AACA,SAAOJ,mBAAA,SAAA;AAAQE,IAAAA,GAAG,EAAEA;KAASD;AAAOI,IAAAA,OAAO,EAAE;AAAA,aAAMD,QAAQ,CAACD,KAAK,GAAG,CAAT,CAAd;AAAA;IAAtC,gBAAA,EAA8EA,KAA9E,CAAP;AACD,CAHqB,CAAf;AAKPJ,MAAM,CAACO,YAAP,GAAsB;AAClBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,eAAe,EAAE,OADd;AAEHC,IAAAA,YAAY,EAAE,QAFX;AAGHC,IAAAA,QAAQ,EAAE,MAHP;AAIHC,IAAAA,OAAO,EAAE;AAJN,GADW;AAOlBC,EAAAA,IAAI,EAAE,QAPY;AAQlBC,EAAAA,GAAG,EAAE;AARa,CAAtB;;;ACPA,AAEO,IAAMC,WAAW,gBAAGd,cAAK,CAACe,UAAN,CAAkB,gBAAiCb,GAAjC;MAAEW,WAAAA;MAAKG,gBAAAA;MAAaf;;AAC/D,SAAOD,cAAK,CAACiB,aAAN,CAAoBJ,GAApB;AACLX,IAAAA,GAAG,EAAHA;AADK,KAEFD,KAFE,GAGJe,QAHI,CAAP;AAID,CAL0B,CAApB;AAOPF,WAAW,CAACR,YAAZ,GAA2B;AACzBM,EAAAA,IAAI,EAAE,MADmB;AAEzBC,EAAAA,GAAG,EAAE,KAFoB;AAGzBN,EAAAA,KAAK,EAAE;AAHkB,CAA3B;;SCPwBW,KAAKjB;AAC3B,SAAOD,4BAAA,MAAA,oBAASC,MAAT,CAAP;AACD;AAEDiB,IAAI,CAACZ,YAAL,GAAoB;AAClBC,EAAAA,KAAK,EAAE;AACLY,IAAAA,OAAO,EAAE,MADJ;AAELC,IAAAA,YAAY,EAAE;AAFT,GADW;AAKlBR,EAAAA,IAAI,EAAE;AALY,CAApB;;ACFA,IAAMS,QAAQ,GAAG;AACftB,EAAAA,MAAM,EAANA,MADe;AAEfe,EAAAA,WAAW,EAAXA,WAFe;AAGfI,EAAAA,IAAI,EAAJA;AAHe,CAAjB;;ICAaI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,OAAD;AAC/B,MAAMC,WAAW,GAAG,IAAIC,aAAJ,CAAaF,OAAb,CAApB;;AAEAG,EAAAA,MAAM,CAACC,IAAP,CAAYC,QAAZ,EAAsBC,OAAtB,CAA8B,UAAAC,GAAG;;;AAC/B;AACA,sBAAAF,QAAQ,CAACE,GAAD,CAAR,4DAAexB,YAAf,2CAA6BM,IAA7B,KAAqCY,WAAW,CAACO,eAAZ,CAA4BH,QAAQ,CAACE,GAAD,CAAR,CAAcxB,YAAd,CAA2BM,IAAvD,EAA6DgB,QAAQ,CAACE,GAAD,CAArE,CAArC;AACD,GAHD;AAIA,SAAON,WAAP;AACD,CARM;AAUP,IAAaQ,YAAY,GAAG,SAAfA,YAAe;AAC1B,SAAOhC,mBAAA,MAAA,MAAA,QAAA,CAAP;AAqBD,CAtBM;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,n=require("@weaverse/core");function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var r,n,a={},c=Object.keys(e);for(n=0;n<c.length;n++)t.indexOf(r=c[n])>=0||(a[r]=e[r]);return a}var s=t.forwardRef((function(e,r){var n=t.useState(0),a=n[0],c=n[1];return t.createElement("button",Object.assign({ref:r},e,{onClick:function(){return c(a+1)}}),"Test Button ",a)}));s.defaultProps={style:{backgroundColor:"green",borderRadius:"9999px",fontSize:"13px",padding:"10px 15px"},type:"button",tag:"button"};var o=["tag","children"],u=function(e){var t=e.tag,n=e.children,s=c(e,o);return r.createElement(t,a({},s),n)};function i(e){return r.createElement("div",Object.assign({},e))}u.defaultProps={type:"base",tag:"div"},i.defaultProps={style:{},type:"grid"};var l={Button:s,BaseElement:u,Grid:i},f=["id","type","childIds","css","className"],d=function(e){var s=e.itemInstance,o=e.elementInstances,u=e.context,i=t.useState(s.data),l=i[0],d=i[1],v=l.id,m=l.type,b=l.childIds,g=l.css,y=l.className,j=c(l,f);t.useEffect((function(){var e=function(e){d(a({},e))};return s.subscribe(e),!s.ref.current&&n.isBrowser&&Object.assign(s.ref,{current:document.querySelector('[data-wv-id="'+v+'"]')}),function(){s.unsubscribe(e)}}),[]);var x=y||"";g&&(x+=" "+u.stitchesInstance.css(g)().className);var E=o.get(m);return E?(E.$$typeof===Symbol.for("react.forward_ref")&&(j.ref=s.ref),r.createElement(E,Object.assign({key:v,"data-wv-id":v},j,{className:x}),Array.isArray(b)&&b.map((function(e){return r.createElement(p,{key:e,itemId:e,context:u})})))):null},p=function(e){var t=e.context,n=t.elementInstances,a=t.itemInstances.get(e.itemId);return a?r.createElement(d,{itemInstance:a,elementInstances:n,context:t}):r.createElement(r.Fragment,null)};exports.WeaverseRoot=function(e){var n,c,s,o=e.context,u=e.defaultData,i=t.useState(o.projectData)[1];t.useEffect((function(){var e=function(){i(a({},o.projectData))};return o.subscribe(e),o.updateProjectData(),function(){o.unsubscribe(e)}}),[]),null!=(n=o.projectData)&&null!=(c=n.items)&&c.length||!u||(o.projectData=u,o.initItemData());var l=(null==o||null==(s=o.studioBridge)?void 0:s.handleProps)||{};return console.log("handleProps",l),r.createElement("div",Object.assign({},l),r.createElement(p,{itemId:0,context:o}))},exports.createRootContext=function(e){var t=new n.Weaverse(e);return Object.keys(l).forEach((function(e){var r,n;(null==(r=l[e])||null==(n=r.defaultProps)?void 0:n.type)&&t.registerElement(l[e].defaultProps.type,l[e])})),t};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,n=require("@weaverse/core");function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var o=t.forwardRef((function(e,r){var n=t.useState(0),a=n[0],o=n[1];return t.createElement("button",Object.assign({ref:r},e,{onClick:function(){return o(a+1)}}),"Test Button ",a)}));o.defaultProps={style:{backgroundColor:"green",borderRadius:"9999px",fontSize:"13px",padding:"10px 15px"},type:"button",tag:"button"};var u=["tag","children"],i=r.forwardRef((function(e,t){var n=e.tag,o=e.children,i=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}(e,u);return r.createElement(n,a({ref:t},i),o)}));function l(e){return r.createElement("div",Object.assign({},e))}i.defaultProps={type:"base",tag:"div",style:{}},l.defaultProps={style:{display:"grid",gridTemplate:"1fr / 1fr"},type:"grid"};var f={Button:o,BaseElement:i,Grid:l};exports.WeaverseRoot=function(e){return t.createElement("div",null,"hiii")},exports.createRootContext=function(e){var t=new n.Weaverse(e);return Object.keys(f).forEach((function(e){var r,n;(null==(r=f[e])||null==(n=r.defaultProps)?void 0:n.type)&&t.registerElement(f[e].defaultProps.type,f[e])})),t};
2
2
  //# sourceMappingURL=sdk-react.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-react.cjs.production.min.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = ({tag, children, ...props}: any) => {\n return React.createElement(tag, {\n ...props\n }, children)\n}\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div'\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n // display: 'grid',\n // outline: '1px solid red',\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import React, {FC, useEffect, useState} from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\n\nconst createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n\n return rootContext\n}\n\nconst WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n let [, setData] = useState<any>(context.projectData)\n useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\nexport {createRootContext, WeaverseRoot}\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","children","createElement","Grid","elements","Item","itemInstance","elementInstances","context","useState","data","setData","id","childIds","css","className","rest","useEffect","handleUpdate","update","subscribe","current","isBrowser","Object","assign","document","querySelector","unsubscribe","realClassName","stitchesInstance","Component","get","$$typeof","Symbol","key","Array","isArray","map","childId","RenderItem","itemId","itemInstances","defaultData","projectData","updateProjectData","_context$projectData","items","_context$projectData$","length","initItemData","handleProps","studioBridge","console","log","configs","rootContext","Weaverse","keys","Elements","forEach","registerElement"],"mappings":"mgBAEO,IAAMA,EAASC,cAAiB,SAACC,EAAYC,SAC1BF,WAAe,GAAlCG,OAAOC,cACLJ,wCAAQE,IAAKA,GAASD,GAAOI,QAAS,kBAAMD,EAASD,EAAQ,qBAAiBA,MAGvFJ,EAAOO,aAAe,CAClBC,MAAO,CACHC,gBAAiB,QACjBC,aAAc,SACdC,SAAU,OACVC,QAAS,aAEbC,KAAM,SACNC,IAAK,mCCbIC,EAAc,gBAAED,IAAAA,IAAKE,IAAAA,SAAad,gBACtCD,EAAMgB,cAAcH,OACtBZ,GACFc,aCHmBE,EAAKhB,UACpBD,uCAASC,IDKlBa,EAAYR,aAAe,CACzBM,KAAM,OACNC,IAAK,OCJPI,EAAKX,aAAe,CAClBC,MAAO,GAIPK,KAAM,YCPFM,EAAW,CACfnB,OAAAA,EACAe,YAAAA,EACAG,KAAAA,gDCwCIE,EAAO,gBAAEC,IAAAA,aAAcC,IAAAA,iBAAkBC,IAAAA,UACvBC,WAAcH,EAAaI,MAA5CA,OAAMC,OACNC,EAA+CF,EAA/CE,GAAId,EAA2CY,EAA3CZ,KAAMe,EAAqCH,EAArCG,SAAUC,EAA2BJ,EAA3BI,IAAKC,EAAsBL,EAAtBK,UAAcC,IAAQN,KACpDO,aAAU,eACJC,EAAe,SAACC,GAClBR,OAAYQ,YAEdb,EAAac,UAAUF,IAClBZ,EAAalB,IAAIiC,SAAWC,aAC/BC,OAAOC,OAAOlB,EAAalB,IAAK,CAACiC,QAASI,SAASC,8BAA8Bd,UAG5E,WACLN,EAAaqB,YAAYT,MAE1B,QAECU,EAAgBb,GAAa,GAC7BD,IAKFc,GAAiB,IADDpB,EAAQqB,iBAAiBf,IAAIA,EAA7BN,GAAqCO,eAGnDe,EAAYvB,EAAiBwB,IAAIjC,UACjCgC,GAEEA,EAAUE,WAAaC,WAAW,uBACpCjB,EAAK5B,IAAMkB,EAAalB,KAEnBF,gBAAC4C,iBAAUI,IAAKtB,eAAgBA,GAAQI,GAAMD,UAAWa,IAC7DO,MAAMC,QAAQvB,IACJA,EAASwB,KAAI,SAAAC,UACRpD,gBAACqD,GACOL,IAAKI,EACLE,OAAQF,EACR9B,QAASA,SAK9B,MAGH+B,EAAa,gBAAU/B,IAAAA,QACPD,EAAoBC,EAApBD,iBAChBD,EADoCE,EAAnCiC,cAC4BV,MAFdS,eAGflC,EACKpB,gBAACmB,GAAKC,aAAcA,EAAcC,iBAAkBA,EAAkBC,QAASA,IAEjFtB,uDAlFY,sBAAEsB,IAAAA,QAASkC,IAAAA,YACvB/B,EAAWF,WAAcD,EAAQmC,gBACxC1B,aAAU,eACJC,EAAe,WACjBP,OAAYH,EAAQmC,sBAEtBnC,EAAQY,UAAUF,GAClBV,EAAQoC,oBACD,WACLpC,EAAQmB,YAAYT,MAErB,aACEV,EAAQmC,uBAARE,EAAqBC,QAArBC,EAA4BC,SAAUN,IACzClC,EAAQmC,YAAcD,EACtBlC,EAAQyC,oBAENC,SAAc1C,YAAAA,EAAS2C,uBAAcD,cAAe,UACxDE,QAAQC,IAAI,cAAeH,GACpBhE,uCAASgE,GACdhE,gBAACqD,GAAWC,OAAQ,EAAGhC,QAASA,gCA9BV,SAAC8C,OACnBC,EAAc,IAAIC,WAASF,UAEjC/B,OAAOkC,KAAKC,GAAUC,SAAQ,SAAAzB,qBAE5BwB,EAASxB,gBAAM1C,uBAAcM,OAAQyD,EAAYK,gBAAgBF,EAASxB,GAAK1C,aAAaM,KAAM4D,EAASxB,OAGtGqB"}
1
+ {"version":3,"file":"sdk-react.cjs.production.min.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/renderer.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = React.forwardRef((({tag, children, ...props}: any, ref) => {\n return React.createElement(tag, {\n ref,\n ...props\n }, children)\n}))\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div',\n style: {}\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n display: 'grid',\n gridTemplate: '1fr / 1fr'\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import * as React from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\nexport const createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n return rootContext\n}\n\nexport const WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n return <div>hiii</div>\n let [, setData] = React.useState<any>(context.projectData)\n React.useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, React.FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = React.useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n React.useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","forwardRef","children","createElement","Grid","display","gridTemplate","elements","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement"],"mappings":"+XAEO,IAAMA,EAASC,cAAiB,SAACC,EAAYC,SAC1BF,WAAe,GAAlCG,OAAOC,cACLJ,wCAAQE,IAAKA,GAASD,GAAOI,QAAS,kBAAMD,EAASD,EAAQ,qBAAiBA,MAGvFJ,EAAOO,aAAe,CAClBC,MAAO,CACHC,gBAAiB,QACjBC,aAAc,SACdC,SAAU,OACVC,QAAS,aAEbC,KAAM,SACNC,IAAK,mCCbIC,EAAcd,EAAMe,YAAY,WAAiCb,OAA/BW,IAAAA,IAAKG,IAAAA,SAAaf,iJACxDD,EAAMiB,cAAcJ,KACzBX,IAAAA,GACGD,GACFe,eCJmBE,EAAKjB,UACpBD,uCAASC,IDMlBa,EAAYR,aAAe,CACzBM,KAAM,OACNC,IAAK,MACLN,MAAO,ICNTW,EAAKZ,aAAe,CAClBC,MAAO,CACLY,QAAS,OACTC,aAAc,aAEhBR,KAAM,YCPFS,EAAW,CACftB,OAAAA,EACAe,YAAAA,EACAI,KAAAA,wBCO0B,mBACnBlB,8DAXwB,SAACsB,OAC1BC,EAAc,IAAIC,WAASF,UAEjCG,OAAOC,KAAKC,GAAUC,SAAQ,SAAAC,qBAE5BF,EAASE,gBAAMvB,uBAAcM,OAAQW,EAAYO,gBAAgBH,EAASE,GAAKvB,aAAaM,KAAMe,EAASE,OAEtGN"}
@@ -1,5 +1,5 @@
1
- import React__default, { forwardRef, useState, createElement, useEffect } from 'react';
2
- import { Weaverse, isBrowser } from '@weaverse/core';
1
+ import React__default, { forwardRef, useState, createElement } from 'react';
2
+ import { Weaverse } from '@weaverse/core';
3
3
 
4
4
  function _extends() {
5
5
  _extends = Object.assign || function (target) {
@@ -59,24 +59,28 @@ Button.defaultProps = {
59
59
  };
60
60
 
61
61
  var _excluded = ["tag", "children"];
62
- var BaseElement = function BaseElement(_ref) {
62
+ var BaseElement = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
63
63
  var tag = _ref.tag,
64
64
  children = _ref.children,
65
65
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
66
66
 
67
- return React__default.createElement(tag, _extends({}, props), children);
68
- };
67
+ return React__default.createElement(tag, _extends({
68
+ ref: ref
69
+ }, props), children);
70
+ });
69
71
  BaseElement.defaultProps = {
70
72
  type: 'base',
71
- tag: 'div'
73
+ tag: 'div',
74
+ style: {}
72
75
  };
73
76
 
74
77
  function Grid(props) {
75
78
  return React__default.createElement("div", Object.assign({}, props));
76
79
  }
77
80
  Grid.defaultProps = {
78
- style: {// display: 'grid',
79
- // outline: '1px solid red',
81
+ style: {
82
+ display: 'grid',
83
+ gridTemplate: '1fr / 1fr'
80
84
  },
81
85
  type: 'grid'
82
86
  };
@@ -87,8 +91,6 @@ var elements = {
87
91
  Grid: Grid
88
92
  };
89
93
 
90
- var _excluded$1 = ["id", "type", "childIds", "css", "className"];
91
-
92
94
  var createRootContext = function createRootContext(configs) {
93
95
  var rootContext = new Weaverse(configs); // Register the element components
94
96
 
@@ -100,124 +102,8 @@ var createRootContext = function createRootContext(configs) {
100
102
  });
101
103
  return rootContext;
102
104
  };
103
-
104
105
  var WeaverseRoot = function WeaverseRoot(_ref) {
105
- var _context$projectData, _context$projectData$, _context$studioBridge;
106
-
107
- var context = _ref.context,
108
- defaultData = _ref.defaultData;
109
-
110
- var _useState = useState(context.projectData),
111
- setData = _useState[1];
112
-
113
- useEffect(function () {
114
- var handleUpdate = function handleUpdate() {
115
- setData(_extends({}, context.projectData));
116
- };
117
-
118
- context.subscribe(handleUpdate);
119
- context.updateProjectData();
120
- return function () {
121
- context.unsubscribe(handleUpdate);
122
- };
123
- }, []);
124
-
125
- if (!((_context$projectData = context.projectData) != null && (_context$projectData$ = _context$projectData.items) != null && _context$projectData$.length) && defaultData) {
126
- context.projectData = defaultData;
127
- context.initItemData();
128
- }
129
-
130
- var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
131
- console.log('handleProps', handleProps);
132
- return React__default.createElement("div", Object.assign({}, handleProps), React__default.createElement(RenderItem, {
133
- itemId: 0,
134
- context: context
135
- }));
136
- };
137
-
138
- var Item = function Item(_ref2) {
139
- var itemInstance = _ref2.itemInstance,
140
- elementInstances = _ref2.elementInstances,
141
- context = _ref2.context;
142
-
143
- var _useState2 = useState(itemInstance.data),
144
- data = _useState2[0],
145
- setData = _useState2[1];
146
-
147
- var id = data.id,
148
- type = data.type,
149
- childIds = data.childIds,
150
- css = data.css,
151
- className = data.className,
152
- rest = _objectWithoutPropertiesLoose(data, _excluded$1);
153
-
154
- useEffect(function () {
155
- var handleUpdate = function handleUpdate(update) {
156
- setData(_extends({}, update));
157
- };
158
-
159
- itemInstance.subscribe(handleUpdate);
160
-
161
- if (!itemInstance.ref.current && isBrowser) {
162
- Object.assign(itemInstance.ref, {
163
- current: document.querySelector("[data-wv-id=\"" + id + "\"]")
164
- });
165
- }
166
-
167
- return function () {
168
- itemInstance.unsubscribe(handleUpdate);
169
- };
170
- }, []);
171
- var realClassName = className || '';
172
-
173
- if (css) {
174
- // let stitches create the style from css object and
175
- // then return the classname, so we can use it in the render
176
- var selector = context.stitchesInstance.css(css)().className;
177
- realClassName += ' ' + selector;
178
- }
179
-
180
- var Component = elementInstances.get(type);
181
-
182
- if (Component) {
183
- // @ts-ignore
184
- if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
185
- rest.ref = itemInstance.ref;
186
- }
187
-
188
- return React__default.createElement(Component, Object.assign({
189
- key: id,
190
- "data-wv-id": id
191
- }, rest, {
192
- className: realClassName
193
- }), Array.isArray(childIds) && childIds.map(function (childId) {
194
- return React__default.createElement(RenderItem, {
195
- key: childId,
196
- itemId: childId,
197
- context: context
198
- });
199
- }));
200
- }
201
-
202
- return null;
203
- };
204
-
205
- var RenderItem = function RenderItem(_ref3) {
206
- var itemId = _ref3.itemId,
207
- context = _ref3.context;
208
- var itemInstances = context.itemInstances,
209
- elementInstances = context.elementInstances;
210
- var itemInstance = itemInstances.get(itemId);
211
-
212
- if (itemInstance) {
213
- return React__default.createElement(Item, {
214
- itemInstance: itemInstance,
215
- elementInstances: elementInstances,
216
- context: context
217
- });
218
- }
219
-
220
- return React__default.createElement(React__default.Fragment, null);
106
+ return createElement("div", null, "hiii");
221
107
  };
222
108
 
223
109
  export { WeaverseRoot, createRootContext };
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-react.esm.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = ({tag, children, ...props}: any) => {\n return React.createElement(tag, {\n ...props\n }, children)\n}\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div'\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n // display: 'grid',\n // outline: '1px solid red',\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import React, {FC, useEffect, useState} from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\n\nconst createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n\n return rootContext\n}\n\nconst WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n let [, setData] = useState<any>(context.projectData)\n useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\nexport {createRootContext, WeaverseRoot}\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","children","createElement","Grid","elements","createRootContext","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement","WeaverseRoot","context","defaultData","useState","projectData","setData","useEffect","handleUpdate","subscribe","updateProjectData","unsubscribe","items","length","initItemData","handleProps","studioBridge","console","log","RenderItem","itemId","Item","itemInstance","elementInstances","data","id","childIds","css","className","rest","update","current","isBrowser","assign","document","querySelector","realClassName","selector","stitchesInstance","Component","get","$$typeof","Symbol","Array","isArray","map","childId","itemInstances"],"mappings":"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"}
1
+ {"version":3,"file":"sdk-react.esm.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/renderer.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = React.forwardRef((({tag, children, ...props}: any, ref) => {\n return React.createElement(tag, {\n ref,\n ...props\n }, children)\n}))\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div',\n style: {}\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n display: 'grid',\n gridTemplate: '1fr / 1fr'\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import * as React from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\nexport const createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n return rootContext\n}\n\nexport const WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n return <div>hiii</div>\n let [, setData] = React.useState<any>(context.projectData)\n React.useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, React.FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = React.useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n React.useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","forwardRef","children","createElement","Grid","display","gridTemplate","elements","createRootContext","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement","WeaverseRoot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,MAAM,gBAAGC,UAAA,CAAiB,UAACC,KAAD,EAAaC,GAAb;AACrC,wBAAwBF,QAAA,CAAe,CAAf,CAAxB;AAAA,MAAKG,KAAL;AAAA,MAAYC,QAAZ;;AACA,SAAOJ,aAAA,SAAA;AAAQE,IAAAA,GAAG,EAAEA;KAASD;AAAOI,IAAAA,OAAO,EAAE;AAAA,aAAMD,QAAQ,CAACD,KAAK,GAAG,CAAT,CAAd;AAAA;IAAtC,gBAAA,EAA8EA,KAA9E,CAAP;AACD,CAHqB,CAAf;AAKPJ,MAAM,CAACO,YAAP,GAAsB;AAClBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,eAAe,EAAE,OADd;AAEHC,IAAAA,YAAY,EAAE,QAFX;AAGHC,IAAAA,QAAQ,EAAE,MAHP;AAIHC,IAAAA,OAAO,EAAE;AAJN,GADW;AAOlBC,EAAAA,IAAI,EAAE,QAPY;AAQlBC,EAAAA,GAAG,EAAE;AARa,CAAtB;;;ACPA,AAEO,IAAMC,WAAW,gBAAGd,cAAK,CAACe,UAAN,CAAkB,gBAAiCb,GAAjC;MAAEW,WAAAA;MAAKG,gBAAAA;MAAaf;;AAC/D,SAAOD,cAAK,CAACiB,aAAN,CAAoBJ,GAApB;AACLX,IAAAA,GAAG,EAAHA;AADK,KAEFD,KAFE,GAGJe,QAHI,CAAP;AAID,CAL0B,CAApB;AAOPF,WAAW,CAACR,YAAZ,GAA2B;AACzBM,EAAAA,IAAI,EAAE,MADmB;AAEzBC,EAAAA,GAAG,EAAE,KAFoB;AAGzBN,EAAAA,KAAK,EAAE;AAHkB,CAA3B;;SCPwBW,KAAKjB;AAC3B,SAAOD,4BAAA,MAAA,oBAASC,MAAT,CAAP;AACD;AAEDiB,IAAI,CAACZ,YAAL,GAAoB;AAClBC,EAAAA,KAAK,EAAE;AACLY,IAAAA,OAAO,EAAE,MADJ;AAELC,IAAAA,YAAY,EAAE;AAFT,GADW;AAKlBR,EAAAA,IAAI,EAAE;AALY,CAApB;;ACFA,IAAMS,QAAQ,GAAG;AACftB,EAAAA,MAAM,EAANA,MADe;AAEfe,EAAAA,WAAW,EAAXA,WAFe;AAGfI,EAAAA,IAAI,EAAJA;AAHe,CAAjB;;ICAaI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,OAAD;AAC/B,MAAMC,WAAW,GAAG,IAAIC,QAAJ,CAAaF,OAAb,CAApB;;AAEAG,EAAAA,MAAM,CAACC,IAAP,CAAYC,QAAZ,EAAsBC,OAAtB,CAA8B,UAAAC,GAAG;;;AAC/B;AACA,sBAAAF,QAAQ,CAACE,GAAD,CAAR,4DAAexB,YAAf,2CAA6BM,IAA7B,KAAqCY,WAAW,CAACO,eAAZ,CAA4BH,QAAQ,CAACE,GAAD,CAAR,CAAcxB,YAAd,CAA2BM,IAAvD,EAA6DgB,QAAQ,CAACE,GAAD,CAArE,CAArC;AACD,GAHD;AAIA,SAAON,WAAP;AACD,CARM;AAUP,IAAaQ,YAAY,GAAG,SAAfA,YAAe;AAC1B,SAAOhC,aAAA,MAAA,MAAA,QAAA,CAAP;AAqBD,CAtBM;;;;"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.9",
2
+ "version": "0.1.10",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -23,8 +23,8 @@
23
23
  "analyze": "size-limit --why"
24
24
  },
25
25
  "peerDependencies": {
26
- "react": ">=16",
27
- "react-dom": ">=16"
26
+ "react": ">=17",
27
+ "react-dom": ">=17"
28
28
  },
29
29
  "husky": {
30
30
  "hooks": {
@@ -56,15 +56,12 @@
56
56
  "@types/react-dom": "^17.0.11",
57
57
  "@types/react-is": "^17.0.3",
58
58
  "husky": "^7.0.4",
59
- "react": "^17.0.2",
60
- "react-dom": "^17.0.2",
61
59
  "size-limit": "^7.0.8",
62
60
  "tsdx": "^0.14.1",
63
61
  "tslib": "^2.3.1",
64
62
  "typescript": "^4.5.5"
65
63
  },
66
64
  "dependencies": {
67
- "@nextui-org/react": "^1.0.2-beta.3",
68
- "@weaverse/core": "^0.2.3"
65
+ "@weaverse/core": "^0.2.4"
69
66
  }
70
67
  }