@weaverse/react 0.1.10 → 0.1.11
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/sdk-react.cjs.development.js +117 -1
- package/dist/sdk-react.cjs.development.js.map +1 -1
- package/dist/sdk-react.cjs.production.min.js +1 -1
- package/dist/sdk-react.cjs.production.min.js.map +1 -1
- package/dist/sdk-react.esm.js +119 -3
- package/dist/sdk-react.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -98,6 +98,7 @@ var elements = {
|
|
|
98
98
|
Grid: Grid
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
+
var _excluded$1 = ["id", "type", "childIds", "css", "className"];
|
|
101
102
|
var createRootContext = function createRootContext(configs) {
|
|
102
103
|
var rootContext = new core.Weaverse(configs); // Register the element components
|
|
103
104
|
|
|
@@ -110,7 +111,122 @@ var createRootContext = function createRootContext(configs) {
|
|
|
110
111
|
return rootContext;
|
|
111
112
|
};
|
|
112
113
|
var WeaverseRoot = function WeaverseRoot(_ref) {
|
|
113
|
-
|
|
114
|
+
var _context$projectData, _context$projectData$, _context$studioBridge;
|
|
115
|
+
|
|
116
|
+
var context = _ref.context,
|
|
117
|
+
defaultData = _ref.defaultData;
|
|
118
|
+
|
|
119
|
+
var _React$useState = React.useState(context.projectData),
|
|
120
|
+
setData = _React$useState[1];
|
|
121
|
+
|
|
122
|
+
React.useEffect(function () {
|
|
123
|
+
var handleUpdate = function handleUpdate() {
|
|
124
|
+
setData(_extends({}, context.projectData));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
context.subscribe(handleUpdate);
|
|
128
|
+
context.updateProjectData();
|
|
129
|
+
return function () {
|
|
130
|
+
context.unsubscribe(handleUpdate);
|
|
131
|
+
};
|
|
132
|
+
}, []);
|
|
133
|
+
|
|
134
|
+
if (!((_context$projectData = context.projectData) != null && (_context$projectData$ = _context$projectData.items) != null && _context$projectData$.length) && defaultData) {
|
|
135
|
+
context.projectData = defaultData;
|
|
136
|
+
context.initItemData();
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
|
|
140
|
+
console.log('handleProps', handleProps);
|
|
141
|
+
return React.createElement("div", Object.assign({}, handleProps), React.createElement(RenderItem, {
|
|
142
|
+
itemId: 0,
|
|
143
|
+
context: context
|
|
144
|
+
}));
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
var Item = function Item(_ref2) {
|
|
148
|
+
var itemInstance = _ref2.itemInstance,
|
|
149
|
+
elementInstances = _ref2.elementInstances,
|
|
150
|
+
context = _ref2.context;
|
|
151
|
+
|
|
152
|
+
var _React$useState2 = React.useState(itemInstance.data),
|
|
153
|
+
data = _React$useState2[0],
|
|
154
|
+
setData = _React$useState2[1];
|
|
155
|
+
|
|
156
|
+
var id = data.id,
|
|
157
|
+
type = data.type,
|
|
158
|
+
childIds = data.childIds,
|
|
159
|
+
css = data.css,
|
|
160
|
+
className = data.className,
|
|
161
|
+
rest = _objectWithoutPropertiesLoose(data, _excluded$1);
|
|
162
|
+
|
|
163
|
+
React.useEffect(function () {
|
|
164
|
+
var handleUpdate = function handleUpdate(update) {
|
|
165
|
+
setData(_extends({}, update));
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
itemInstance.subscribe(handleUpdate);
|
|
169
|
+
|
|
170
|
+
if (!itemInstance.ref.current && core.isBrowser) {
|
|
171
|
+
Object.assign(itemInstance.ref, {
|
|
172
|
+
current: document.querySelector("[data-wv-id=\"" + id + "\"]")
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return function () {
|
|
177
|
+
itemInstance.unsubscribe(handleUpdate);
|
|
178
|
+
};
|
|
179
|
+
}, []);
|
|
180
|
+
var realClassName = className || '';
|
|
181
|
+
|
|
182
|
+
if (css) {
|
|
183
|
+
// let stitches create the style from css object and
|
|
184
|
+
// then return the classname, so we can use it in the render
|
|
185
|
+
var selector = context.stitchesInstance.css(css)().className;
|
|
186
|
+
realClassName += ' ' + selector;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
var Component = elementInstances.get(type);
|
|
190
|
+
|
|
191
|
+
if (Component) {
|
|
192
|
+
// @ts-ignore
|
|
193
|
+
if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
|
|
194
|
+
rest.ref = itemInstance.ref;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return React.createElement(Component, Object.assign({
|
|
198
|
+
key: id,
|
|
199
|
+
"data-wv-id": id
|
|
200
|
+
}, rest, {
|
|
201
|
+
className: realClassName
|
|
202
|
+
}), Array.isArray(childIds) && childIds.map(function (childId) {
|
|
203
|
+
return React.createElement(RenderItem, {
|
|
204
|
+
key: childId,
|
|
205
|
+
itemId: childId,
|
|
206
|
+
context: context
|
|
207
|
+
});
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return null;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
var RenderItem = function RenderItem(_ref3) {
|
|
215
|
+
var itemId = _ref3.itemId,
|
|
216
|
+
context = _ref3.context;
|
|
217
|
+
var itemInstances = context.itemInstances,
|
|
218
|
+
elementInstances = context.elementInstances;
|
|
219
|
+
var itemInstance = itemInstances.get(itemId);
|
|
220
|
+
|
|
221
|
+
if (itemInstance) {
|
|
222
|
+
return React.createElement(Item, {
|
|
223
|
+
itemInstance: itemInstance,
|
|
224
|
+
elementInstances: elementInstances,
|
|
225
|
+
context: context
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
return React.createElement(React.Fragment, null);
|
|
114
230
|
};
|
|
115
231
|
|
|
116
232
|
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/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
|
|
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 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","context","defaultData","projectData","setData","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,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)}var
|
|
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=r.forwardRef((function(e,t){var n=e.tag,s=e.children,u=c(e,o);return r.createElement(n,a({ref:t},u),s)}));function i(e){return r.createElement("div",Object.assign({},e))}u.defaultProps={type:"base",tag:"div",style:{}},i.defaultProps={style:{display:"grid",gridTemplate:"1fr / 1fr"},type:"grid"};var l={Button:s,BaseElement:u,Grid:i},f=["id","type","childIds","css","className"],d=function(e){var r=e.itemInstance,s=e.elementInstances,o=e.context,u=t.useState(r.data),i=u[0],l=u[1],d=i.id,m=i.type,v=i.childIds,b=i.css,g=i.className,y=c(i,f);t.useEffect((function(){var e=function(e){l(a({},e))};return r.subscribe(e),!r.ref.current&&n.isBrowser&&Object.assign(r.ref,{current:document.querySelector('[data-wv-id="'+d+'"]')}),function(){r.unsubscribe(e)}}),[]);var j=g||"";b&&(j+=" "+o.stitchesInstance.css(b)().className);var x=s.get(m);return x?(x.$$typeof===Symbol.for("react.forward_ref")&&(y.ref=r.ref),t.createElement(x,Object.assign({key:d,"data-wv-id":d},y,{className:j}),Array.isArray(v)&&v.map((function(e){return t.createElement(p,{key:e,itemId:e,context:o})})))):null},p=function(e){var r=e.context,n=r.elementInstances,a=r.itemInstances.get(e.itemId);return a?t.createElement(d,{itemInstance:a,elementInstances:n,context:r}):t.createElement(t.Fragment,null)};exports.WeaverseRoot=function(e){var r,n,c,s=e.context,o=e.defaultData,u=t.useState(s.projectData)[1];t.useEffect((function(){var e=function(){u(a({},s.projectData))};return s.subscribe(e),s.updateProjectData(),function(){s.unsubscribe(e)}}),[]),null!=(r=s.projectData)&&null!=(n=r.items)&&n.length||!o||(s.projectData=o,s.initItemData());var i=(null==s||null==(c=s.studioBridge)?void 0:c.handleProps)||{};return console.log("handleProps",i),t.createElement("div",Object.assign({},i),t.createElement(p,{itemId:0,context:s}))},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};
|
|
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/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
|
|
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 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","Item","itemInstance","elementInstances","context","data","setData","id","childIds","css","className","rest","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,EAAcd,EAAMe,YAAY,WAAiCb,OAA/BW,IAAAA,IAAKG,IAAAA,SAAaf,gBACxDD,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,gDCsCII,EAAO,gBAAEC,IAAAA,aAAcC,IAAAA,iBAAkBC,IAAAA,UACvBzB,WAAoBuB,EAAaG,MAAlDA,OAAMC,OACNC,EAA+CF,EAA/CE,GAAIhB,EAA2Cc,EAA3Cd,KAAMiB,EAAqCH,EAArCG,SAAUC,EAA2BJ,EAA3BI,IAAKC,EAAsBL,EAAtBK,UAAcC,IAAQN,KACpD1B,aAAgB,eACViC,EAAe,SAACC,GAClBP,OAAYO,YAEdX,EAAaY,UAAUF,IAClBV,EAAarB,IAAIkC,SAAWC,aAC/BC,OAAOC,OAAOhB,EAAarB,IAAK,CAACkC,QAASI,SAASC,8BAA8Bb,UAG5E,WACLL,EAAamB,YAAYT,MAE1B,QAECU,EAAgBZ,GAAa,GAC7BD,IAKFa,GAAiB,IADDlB,EAAQmB,iBAAiBd,IAAIA,EAA7BL,GAAqCM,eAGnDc,EAAYrB,EAAiBsB,IAAIlC,UACjCiC,GAEEA,EAAUE,WAAaC,WAAW,uBACpChB,EAAK9B,IAAMqB,EAAarB,KAEnBF,gBAAC6C,iBAAUI,IAAKrB,eAAgBA,GAAQI,GAAMD,UAAWY,IAC7DO,MAAMC,QAAQtB,IACJA,EAASuB,KAAI,SAAAC,UACRrD,gBAACsD,GACOL,IAAKI,EACLE,OAAQF,EACR5B,QAASA,SAK9B,MAGH6B,EAAa,gBAAU7B,IAAAA,QACPD,EAAoBC,EAApBD,iBAChBD,EADoCE,EAAnC+B,cAC4BV,MAFdS,eAGfhC,EACKvB,gBAACsB,GAAKC,aAAcA,EAAcC,iBAAkBA,EAAkBC,QAASA,IAEjFzB,uDAlFmB,sBAAEyB,IAAAA,QAASgC,IAAAA,YAC9B9B,EAAW3B,WAAoByB,EAAQiC,gBAC9C1D,aAAgB,eACViC,EAAe,WACjBN,OAAYF,EAAQiC,sBAEtBjC,EAAQU,UAAUF,GAClBR,EAAQkC,oBACD,WACLlC,EAAQiB,YAAYT,MAErB,aACER,EAAQiC,uBAARE,EAAqBC,QAArBC,EAA4BC,SAAUN,IACzChC,EAAQiC,YAAcD,EACtBhC,EAAQuC,oBAENC,SAAcxC,YAAAA,EAASyC,uBAAcD,cAAe,UACxDE,QAAQC,IAAI,cAAeH,GACpBjE,uCAASiE,GACdjE,gBAACsD,GAAWC,OAAQ,EAAG9B,QAASA,gCA7BH,SAAC4C,OAC1BC,EAAc,IAAIC,WAASF,UAEjC/B,OAAOkC,KAAKC,GAAUC,SAAQ,SAAAzB,qBAE5BwB,EAASxB,gBAAM3C,uBAAcM,OAAQ0D,EAAYK,gBAAgBF,EAASxB,GAAK3C,aAAaM,KAAM6D,EAASxB,OAEtGqB"}
|
package/dist/sdk-react.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React__default, { forwardRef, useState, createElement } from 'react';
|
|
2
|
-
import { Weaverse } from '@weaverse/core';
|
|
1
|
+
import React__default, { forwardRef, useState, createElement, useEffect, Fragment } from 'react';
|
|
2
|
+
import { Weaverse, isBrowser } from '@weaverse/core';
|
|
3
3
|
|
|
4
4
|
function _extends() {
|
|
5
5
|
_extends = Object.assign || function (target) {
|
|
@@ -91,6 +91,7 @@ var elements = {
|
|
|
91
91
|
Grid: Grid
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
+
var _excluded$1 = ["id", "type", "childIds", "css", "className"];
|
|
94
95
|
var createRootContext = function createRootContext(configs) {
|
|
95
96
|
var rootContext = new Weaverse(configs); // Register the element components
|
|
96
97
|
|
|
@@ -103,7 +104,122 @@ var createRootContext = function createRootContext(configs) {
|
|
|
103
104
|
return rootContext;
|
|
104
105
|
};
|
|
105
106
|
var WeaverseRoot = function WeaverseRoot(_ref) {
|
|
106
|
-
|
|
107
|
+
var _context$projectData, _context$projectData$, _context$studioBridge;
|
|
108
|
+
|
|
109
|
+
var context = _ref.context,
|
|
110
|
+
defaultData = _ref.defaultData;
|
|
111
|
+
|
|
112
|
+
var _React$useState = useState(context.projectData),
|
|
113
|
+
setData = _React$useState[1];
|
|
114
|
+
|
|
115
|
+
useEffect(function () {
|
|
116
|
+
var handleUpdate = function handleUpdate() {
|
|
117
|
+
setData(_extends({}, context.projectData));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
context.subscribe(handleUpdate);
|
|
121
|
+
context.updateProjectData();
|
|
122
|
+
return function () {
|
|
123
|
+
context.unsubscribe(handleUpdate);
|
|
124
|
+
};
|
|
125
|
+
}, []);
|
|
126
|
+
|
|
127
|
+
if (!((_context$projectData = context.projectData) != null && (_context$projectData$ = _context$projectData.items) != null && _context$projectData$.length) && defaultData) {
|
|
128
|
+
context.projectData = defaultData;
|
|
129
|
+
context.initItemData();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
|
|
133
|
+
console.log('handleProps', handleProps);
|
|
134
|
+
return createElement("div", Object.assign({}, handleProps), createElement(RenderItem, {
|
|
135
|
+
itemId: 0,
|
|
136
|
+
context: context
|
|
137
|
+
}));
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var Item = function Item(_ref2) {
|
|
141
|
+
var itemInstance = _ref2.itemInstance,
|
|
142
|
+
elementInstances = _ref2.elementInstances,
|
|
143
|
+
context = _ref2.context;
|
|
144
|
+
|
|
145
|
+
var _React$useState2 = useState(itemInstance.data),
|
|
146
|
+
data = _React$useState2[0],
|
|
147
|
+
setData = _React$useState2[1];
|
|
148
|
+
|
|
149
|
+
var id = data.id,
|
|
150
|
+
type = data.type,
|
|
151
|
+
childIds = data.childIds,
|
|
152
|
+
css = data.css,
|
|
153
|
+
className = data.className,
|
|
154
|
+
rest = _objectWithoutPropertiesLoose(data, _excluded$1);
|
|
155
|
+
|
|
156
|
+
useEffect(function () {
|
|
157
|
+
var handleUpdate = function handleUpdate(update) {
|
|
158
|
+
setData(_extends({}, update));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
itemInstance.subscribe(handleUpdate);
|
|
162
|
+
|
|
163
|
+
if (!itemInstance.ref.current && isBrowser) {
|
|
164
|
+
Object.assign(itemInstance.ref, {
|
|
165
|
+
current: document.querySelector("[data-wv-id=\"" + id + "\"]")
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return function () {
|
|
170
|
+
itemInstance.unsubscribe(handleUpdate);
|
|
171
|
+
};
|
|
172
|
+
}, []);
|
|
173
|
+
var realClassName = className || '';
|
|
174
|
+
|
|
175
|
+
if (css) {
|
|
176
|
+
// let stitches create the style from css object and
|
|
177
|
+
// then return the classname, so we can use it in the render
|
|
178
|
+
var selector = context.stitchesInstance.css(css)().className;
|
|
179
|
+
realClassName += ' ' + selector;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
var Component = elementInstances.get(type);
|
|
183
|
+
|
|
184
|
+
if (Component) {
|
|
185
|
+
// @ts-ignore
|
|
186
|
+
if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
|
|
187
|
+
rest.ref = itemInstance.ref;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return createElement(Component, Object.assign({
|
|
191
|
+
key: id,
|
|
192
|
+
"data-wv-id": id
|
|
193
|
+
}, rest, {
|
|
194
|
+
className: realClassName
|
|
195
|
+
}), Array.isArray(childIds) && childIds.map(function (childId) {
|
|
196
|
+
return createElement(RenderItem, {
|
|
197
|
+
key: childId,
|
|
198
|
+
itemId: childId,
|
|
199
|
+
context: context
|
|
200
|
+
});
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return null;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
var RenderItem = function RenderItem(_ref3) {
|
|
208
|
+
var itemId = _ref3.itemId,
|
|
209
|
+
context = _ref3.context;
|
|
210
|
+
var itemInstances = context.itemInstances,
|
|
211
|
+
elementInstances = context.elementInstances;
|
|
212
|
+
var itemInstance = itemInstances.get(itemId);
|
|
213
|
+
|
|
214
|
+
if (itemInstance) {
|
|
215
|
+
return createElement(Item, {
|
|
216
|
+
itemInstance: itemInstance,
|
|
217
|
+
elementInstances: elementInstances,
|
|
218
|
+
context: context
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return createElement(Fragment, null);
|
|
107
223
|
};
|
|
108
224
|
|
|
109
225
|
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/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
|
|
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 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","context","defaultData","projectData","setData","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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"}
|
package/package.json
CHANGED