@weaverse/react 0.1.8 → 0.3.0

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/README.md CHANGED
@@ -1 +0,0 @@
1
- TODO: update readme
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
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
+ import { WeaverseType, Weaverse } from '@weaverse/core';
2
+
3
+ declare const createRootContext: (configs: WeaverseType) => Weaverse;
4
+ declare const WeaverseRoot: ({ context, defaultData }: {
5
+ context: Weaverse;
6
+ defaultData: any;
7
+ }) => JSX.Element;
8
+
9
+ export { WeaverseRoot, createRootContext };
package/dist/index.js CHANGED
@@ -1,8 +1,215 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __reExport = (target, module2, copyDefault, desc) => {
42
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
43
+ for (let key of __getOwnPropNames(module2))
44
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
45
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
46
+ }
47
+ return target;
48
+ };
49
+ var __toESM = (module2, isNodeMode) => {
50
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
51
+ };
52
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
53
+ return (module2, temp) => {
54
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
55
+ };
56
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
1
57
 
2
- 'use strict'
58
+ // src/index.ts
59
+ var src_exports = {};
60
+ __export(src_exports, {
61
+ WeaverseRoot: () => WeaverseRoot,
62
+ createRootContext: () => createRootContext
63
+ });
3
64
 
4
- if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./sdk-react.cjs.production.min.js')
6
- } else {
7
- module.exports = require('./sdk-react.cjs.development.js')
65
+ // src/renderer.tsx
66
+ var React4 = __toESM(require("react"));
67
+ var import_core = require("@weaverse/core");
68
+
69
+ // src/elements/button.tsx
70
+ var React = __toESM(require("react"));
71
+ var Button = React.forwardRef((props, ref) => {
72
+ let [count, setCount] = React.useState(0);
73
+ return /* @__PURE__ */ React.createElement("button", __spreadProps(__spreadValues({
74
+ ref
75
+ }, props), {
76
+ onClick: () => setCount(count + 1)
77
+ }), "Test Button ", count);
78
+ });
79
+ Button.defaultProps = {
80
+ style: {
81
+ backgroundColor: "green",
82
+ borderRadius: "9999px",
83
+ fontSize: "13px",
84
+ padding: "10px 15px"
85
+ },
86
+ type: "button",
87
+ tag: "button"
88
+ };
89
+ var button_default = Button;
90
+
91
+ // src/elements/base.tsx
92
+ var import_react = __toESM(require("react"));
93
+ var BaseElement = import_react.default.forwardRef((_a, ref) => {
94
+ var _b = _a, { tag, children } = _b, props = __objRest(_b, ["tag", "children"]);
95
+ return import_react.default.createElement(tag, __spreadValues({
96
+ ref
97
+ }, props), children);
98
+ });
99
+ BaseElement.defaultProps = {
100
+ type: "base",
101
+ tag: "div",
102
+ style: {}
103
+ };
104
+ var base_default = BaseElement;
105
+
106
+ // src/elements/grid.tsx
107
+ var import_react2 = __toESM(require("react"));
108
+ function Grid(props) {
109
+ return /* @__PURE__ */ import_react2.default.createElement("div", __spreadValues({}, props));
8
110
  }
111
+ Grid.defaultProps = {
112
+ style: {
113
+ display: "grid",
114
+ gridTemplate: "1fr / 1fr"
115
+ },
116
+ type: "grid"
117
+ };
118
+
119
+ // src/elements/index.ts
120
+ var elements = {
121
+ Button: button_default,
122
+ BaseElement: base_default,
123
+ Grid
124
+ };
125
+ var elements_default = elements;
126
+
127
+ // src/renderer.tsx
128
+ var createRootContext = (configs) => {
129
+ const rootContext = new import_core.Weaverse(configs);
130
+ Object.keys(elements_default).forEach((key) => {
131
+ var _a, _b;
132
+ ((_b = (_a = elements_default[key]) == null ? void 0 : _a.defaultProps) == null ? void 0 : _b.type) && rootContext.registerElement(elements_default[key].defaultProps.type, elements_default[key]);
133
+ });
134
+ return rootContext;
135
+ };
136
+ var WeaverseRoot = ({ context, defaultData }) => {
137
+ var _a, _b, _c;
138
+ let [, setData] = React4.useState(context.projectData);
139
+ React4.useEffect(() => {
140
+ let handleUpdate = () => {
141
+ setData(__spreadValues({}, context.projectData));
142
+ };
143
+ context.subscribe(handleUpdate);
144
+ context.updateProjectData();
145
+ return () => {
146
+ context.unsubscribe(handleUpdate);
147
+ };
148
+ }, []);
149
+ if (!((_b = (_a = context.projectData) == null ? void 0 : _a.items) == null ? void 0 : _b.length) && defaultData) {
150
+ context.projectData = defaultData;
151
+ context.initItemData();
152
+ }
153
+ let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
154
+ console.log("handleProps", handleProps);
155
+ return /* @__PURE__ */ React4.createElement("div", __spreadValues({}, handleProps), /* @__PURE__ */ React4.createElement(RenderItem, {
156
+ itemId: 0,
157
+ context
158
+ }));
159
+ };
160
+ var Item = ({ itemInstance, elementInstances, context }) => {
161
+ let [data, setData] = React4.useState(itemInstance.data);
162
+ let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
163
+ React4.useEffect(() => {
164
+ let handleUpdate = (update) => {
165
+ setData(__spreadValues({}, update));
166
+ };
167
+ itemInstance.subscribe(handleUpdate);
168
+ if (!itemInstance.ref.current && import_core.isBrowser) {
169
+ Object.assign(itemInstance.ref, { current: document.querySelector(`[data-wv-id="${id}"]`) });
170
+ }
171
+ return () => {
172
+ itemInstance.unsubscribe(handleUpdate);
173
+ };
174
+ }, []);
175
+ let realClassName = className || "";
176
+ if (css) {
177
+ let selector = context.stitchesInstance.css(css)().className;
178
+ realClassName += " " + selector;
179
+ }
180
+ let Component = elementInstances.get(type);
181
+ if (Component) {
182
+ if (Component.$$typeof === Symbol.for("react.forward_ref")) {
183
+ rest.ref = itemInstance.ref;
184
+ }
185
+ return /* @__PURE__ */ React4.createElement(Component, __spreadProps(__spreadValues({
186
+ key: id,
187
+ "data-wv-id": id
188
+ }, rest), {
189
+ className: realClassName
190
+ }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React4.createElement(RenderItem, {
191
+ key: childId,
192
+ itemId: childId,
193
+ context
194
+ })));
195
+ }
196
+ return null;
197
+ };
198
+ var RenderItem = ({ itemId, context }) => {
199
+ let { itemInstances, elementInstances } = context;
200
+ let itemInstance = itemInstances.get(itemId);
201
+ if (itemInstance) {
202
+ return /* @__PURE__ */ React4.createElement(Item, {
203
+ itemInstance,
204
+ elementInstances,
205
+ context
206
+ });
207
+ }
208
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null);
209
+ };
210
+ module.exports = __toCommonJS(src_exports);
211
+ // Annotate the CommonJS export names for ESM import in node:
212
+ 0 && (module.exports = {
213
+ WeaverseRoot,
214
+ createRootContext
215
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,181 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+
33
+ // src/renderer.tsx
34
+ import * as React4 from "react";
35
+ import { isBrowser, Weaverse } from "@weaverse/core";
36
+
37
+ // src/elements/button.tsx
38
+ import * as React from "react";
39
+ var Button = React.forwardRef((props, ref) => {
40
+ let [count, setCount] = React.useState(0);
41
+ return /* @__PURE__ */ React.createElement("button", __spreadProps(__spreadValues({
42
+ ref
43
+ }, props), {
44
+ onClick: () => setCount(count + 1)
45
+ }), "Test Button ", count);
46
+ });
47
+ Button.defaultProps = {
48
+ style: {
49
+ backgroundColor: "green",
50
+ borderRadius: "9999px",
51
+ fontSize: "13px",
52
+ padding: "10px 15px"
53
+ },
54
+ type: "button",
55
+ tag: "button"
56
+ };
57
+ var button_default = Button;
58
+
59
+ // src/elements/base.tsx
60
+ import React2 from "react";
61
+ var BaseElement = React2.forwardRef((_a, ref) => {
62
+ var _b = _a, { tag, children } = _b, props = __objRest(_b, ["tag", "children"]);
63
+ return React2.createElement(tag, __spreadValues({
64
+ ref
65
+ }, props), children);
66
+ });
67
+ BaseElement.defaultProps = {
68
+ type: "base",
69
+ tag: "div",
70
+ style: {}
71
+ };
72
+ var base_default = BaseElement;
73
+
74
+ // src/elements/grid.tsx
75
+ import React3 from "react";
76
+ function Grid(props) {
77
+ return /* @__PURE__ */ React3.createElement("div", __spreadValues({}, props));
78
+ }
79
+ Grid.defaultProps = {
80
+ style: {
81
+ display: "grid",
82
+ gridTemplate: "1fr / 1fr"
83
+ },
84
+ type: "grid"
85
+ };
86
+
87
+ // src/elements/index.ts
88
+ var elements = {
89
+ Button: button_default,
90
+ BaseElement: base_default,
91
+ Grid
92
+ };
93
+ var elements_default = elements;
94
+
95
+ // src/renderer.tsx
96
+ var createRootContext = (configs) => {
97
+ const rootContext = new Weaverse(configs);
98
+ Object.keys(elements_default).forEach((key) => {
99
+ var _a, _b;
100
+ ((_b = (_a = elements_default[key]) == null ? void 0 : _a.defaultProps) == null ? void 0 : _b.type) && rootContext.registerElement(elements_default[key].defaultProps.type, elements_default[key]);
101
+ });
102
+ return rootContext;
103
+ };
104
+ var WeaverseRoot = ({ context, defaultData }) => {
105
+ var _a, _b, _c;
106
+ let [, setData] = React4.useState(context.projectData);
107
+ React4.useEffect(() => {
108
+ let handleUpdate = () => {
109
+ setData(__spreadValues({}, context.projectData));
110
+ };
111
+ context.subscribe(handleUpdate);
112
+ context.updateProjectData();
113
+ return () => {
114
+ context.unsubscribe(handleUpdate);
115
+ };
116
+ }, []);
117
+ if (!((_b = (_a = context.projectData) == null ? void 0 : _a.items) == null ? void 0 : _b.length) && defaultData) {
118
+ context.projectData = defaultData;
119
+ context.initItemData();
120
+ }
121
+ let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
122
+ console.log("handleProps", handleProps);
123
+ return /* @__PURE__ */ React4.createElement("div", __spreadValues({}, handleProps), /* @__PURE__ */ React4.createElement(RenderItem, {
124
+ itemId: 0,
125
+ context
126
+ }));
127
+ };
128
+ var Item = ({ itemInstance, elementInstances, context }) => {
129
+ let [data, setData] = React4.useState(itemInstance.data);
130
+ let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
131
+ React4.useEffect(() => {
132
+ let handleUpdate = (update) => {
133
+ setData(__spreadValues({}, update));
134
+ };
135
+ itemInstance.subscribe(handleUpdate);
136
+ if (!itemInstance.ref.current && isBrowser) {
137
+ Object.assign(itemInstance.ref, { current: document.querySelector(`[data-wv-id="${id}"]`) });
138
+ }
139
+ return () => {
140
+ itemInstance.unsubscribe(handleUpdate);
141
+ };
142
+ }, []);
143
+ let realClassName = className || "";
144
+ if (css) {
145
+ let selector = context.stitchesInstance.css(css)().className;
146
+ realClassName += " " + selector;
147
+ }
148
+ let Component = elementInstances.get(type);
149
+ if (Component) {
150
+ if (Component.$$typeof === Symbol.for("react.forward_ref")) {
151
+ rest.ref = itemInstance.ref;
152
+ }
153
+ return /* @__PURE__ */ React4.createElement(Component, __spreadProps(__spreadValues({
154
+ key: id,
155
+ "data-wv-id": id
156
+ }, rest), {
157
+ className: realClassName
158
+ }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React4.createElement(RenderItem, {
159
+ key: childId,
160
+ itemId: childId,
161
+ context
162
+ })));
163
+ }
164
+ return null;
165
+ };
166
+ var RenderItem = ({ itemId, context }) => {
167
+ let { itemInstances, elementInstances } = context;
168
+ let itemInstance = itemInstances.get(itemId);
169
+ if (itemInstance) {
170
+ return /* @__PURE__ */ React4.createElement(Item, {
171
+ itemInstance,
172
+ elementInstances,
173
+ context
174
+ });
175
+ }
176
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null);
177
+ };
178
+ export {
179
+ WeaverseRoot,
180
+ createRootContext
181
+ };
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
- "version": "0.1.8",
2
+ "version": "0.3.0",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
+ "module": "dist/index.mjs",
6
7
  "publishConfig": {
7
8
  "access": "public"
8
9
  },
@@ -13,23 +14,13 @@
13
14
  "node": ">=10"
14
15
  },
15
16
  "scripts": {
16
- "start": "tsdx watch --name sdk-react",
17
- "dev": "tsdx watch --name sdk-react",
18
- "build": "tsdx build --name sdk-react",
19
- "test": "tsdx test --passWithNoTests",
20
- "lint": "tsdx lint",
21
- "prepare": "tsdx build --name sdk-react",
22
- "size": "size-limit",
23
- "analyze": "size-limit --why"
17
+ "start": "npm run dev",
18
+ "dev": "tsup src/index.ts --format esm,cjs --dts --outDir dist --watch --external react",
19
+ "build": "tsup src/index.ts --format esm,cjs --dts --outDir dist --external react"
24
20
  },
25
21
  "peerDependencies": {
26
- "react": ">=16",
27
- "react-dom": ">=16"
28
- },
29
- "husky": {
30
- "hooks": {
31
- "pre-commit": "tsdx lint"
32
- }
22
+ "react": ">=17",
23
+ "react-dom": ">=17"
33
24
  },
34
25
  "prettier": {
35
26
  "printWidth": 80,
@@ -39,32 +30,7 @@
39
30
  },
40
31
  "name": "@weaverse/react",
41
32
  "author": "Weaverse Team",
42
- "module": "dist/sdk-react.esm.js",
43
- "size-limit": [
44
- {
45
- "path": "dist/sdk-react.cjs.production.min.js",
46
- "limit": "10 KB"
47
- },
48
- {
49
- "path": "dist/sdk-react.esm.js",
50
- "limit": "10 KB"
51
- }
52
- ],
53
- "devDependencies": {
54
- "@size-limit/preset-small-lib": "^7.0.8",
55
- "@types/react": "^17.0.39",
56
- "@types/react-dom": "^17.0.11",
57
- "@types/react-is": "^17.0.3",
58
- "husky": "^7.0.4",
59
- "react": "^17.0.2",
60
- "react-dom": "^17.0.2",
61
- "size-limit": "^7.0.8",
62
- "tsdx": "^0.14.1",
63
- "tslib": "^2.3.1",
64
- "typescript": "^4.5.5"
65
- },
66
33
  "dependencies": {
67
- "@nextui-org/react": "^1.0.2-beta.3",
68
- "@weaverse/core": "^0.2.2"
34
+ "@weaverse/core": "^0.3.0"
69
35
  }
70
36
  }
@@ -1,9 +0,0 @@
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
- };
9
- export default BaseElement;
@@ -1,3 +0,0 @@
1
- import * as React from 'react';
2
- export declare const Button: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<unknown>>;
3
- export default Button;
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- declare function Grid(props: any): JSX.Element;
3
- declare namespace Grid {
4
- var defaultProps: {
5
- style: {};
6
- type: string;
7
- };
8
- }
9
- export default Grid;
@@ -1,14 +0,0 @@
1
- /// <reference types="react" />
2
- import Grid from './grid';
3
- declare const elements: {
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
- };
12
- Grid: typeof Grid;
13
- };
14
- export default elements;
@@ -1,239 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- var React = require('react');
8
- var React__default = _interopDefault(React);
9
- var core = require('@weaverse/core');
10
-
11
- function _extends() {
12
- _extends = Object.assign || function (target) {
13
- for (var i = 1; i < arguments.length; i++) {
14
- var source = arguments[i];
15
-
16
- for (var key in source) {
17
- if (Object.prototype.hasOwnProperty.call(source, key)) {
18
- target[key] = source[key];
19
- }
20
- }
21
- }
22
-
23
- return target;
24
- };
25
-
26
- return _extends.apply(this, arguments);
27
- }
28
-
29
- function _objectWithoutPropertiesLoose(source, excluded) {
30
- if (source == null) return {};
31
- var target = {};
32
- var sourceKeys = Object.keys(source);
33
- var key, i;
34
-
35
- for (i = 0; i < sourceKeys.length; i++) {
36
- key = sourceKeys[i];
37
- if (excluded.indexOf(key) >= 0) continue;
38
- target[key] = source[key];
39
- }
40
-
41
- return target;
42
- }
43
-
44
- var Button = /*#__PURE__*/React.forwardRef(function (props, ref) {
45
- var _React$useState = React.useState(0),
46
- count = _React$useState[0],
47
- setCount = _React$useState[1];
48
-
49
- return React.createElement("button", Object.assign({
50
- ref: ref
51
- }, props, {
52
- onClick: function onClick() {
53
- return setCount(count + 1);
54
- }
55
- }), "Test Button ", count);
56
- });
57
- Button.defaultProps = {
58
- style: {
59
- backgroundColor: 'green',
60
- borderRadius: '9999px',
61
- fontSize: '13px',
62
- padding: '10px 15px'
63
- },
64
- type: 'button',
65
- tag: 'button'
66
- };
67
-
68
- var _excluded = ["tag", "children"];
69
- var BaseElement = function BaseElement(_ref) {
70
- var tag = _ref.tag,
71
- children = _ref.children,
72
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
73
-
74
- return React__default.createElement(tag, _extends({}, props), children);
75
- };
76
- BaseElement.defaultProps = {
77
- type: 'base',
78
- tag: 'div'
79
- };
80
-
81
- function Grid(props) {
82
- return React__default.createElement("div", Object.assign({}, props));
83
- }
84
- Grid.defaultProps = {
85
- style: {// display: 'grid',
86
- // outline: '1px solid red',
87
- },
88
- type: 'grid'
89
- };
90
-
91
- var elements = {
92
- Button: Button,
93
- BaseElement: BaseElement,
94
- Grid: Grid
95
- };
96
-
97
- var _excluded$1 = ["id", "type", "childIds", "css", "className"];
98
-
99
- var createRootContext = function createRootContext(configs) {
100
- var rootContext = new core.Weaverse(configs); // Register the element components
101
-
102
- Object.keys(elements).forEach(function (key) {
103
- var _Elements$key, _Elements$key$default;
104
-
105
- // @ts-ignore
106
- ((_Elements$key = elements[key]) == null ? void 0 : (_Elements$key$default = _Elements$key.defaultProps) == null ? void 0 : _Elements$key$default.type) && rootContext.registerElement(elements[key].defaultProps.type, elements[key]);
107
- });
108
- return rootContext;
109
- };
110
-
111
- 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
- var shouldRenderStudio = context.loadStudio();
128
- console.log('shouldRenderStudio', shouldRenderStudio);
129
-
130
- if (shouldRenderStudio) {
131
- handleUpdate();
132
- }
133
-
134
- return function () {
135
- context.unsubscribe(handleUpdate);
136
- };
137
- }, []);
138
-
139
- if (!((_context$projectData = context.projectData) != null && (_context$projectData$ = _context$projectData.items) != null && _context$projectData$.length) && defaultData) {
140
- context.projectData = defaultData;
141
- context.initItemData();
142
- }
143
-
144
- var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
145
- console.log('handleProps', handleProps);
146
- return React__default.createElement("div", Object.assign({}, handleProps), React__default.createElement(RenderItem, {
147
- itemId: 0,
148
- context: context
149
- }));
150
- };
151
-
152
- var Item = function Item(_ref2) {
153
- var itemInstance = _ref2.itemInstance,
154
- elementInstances = _ref2.elementInstances,
155
- context = _ref2.context;
156
-
157
- var _useState2 = React.useState(itemInstance.data),
158
- data = _useState2[0],
159
- setData = _useState2[1];
160
-
161
- var id = data.id,
162
- type = data.type,
163
- childIds = data.childIds,
164
- css = data.css,
165
- className = data.className,
166
- rest = _objectWithoutPropertiesLoose(data, _excluded$1);
167
-
168
- React.useEffect(function () {
169
- var handleUpdate = function handleUpdate(update) {
170
- setData(_extends({}, update));
171
- };
172
-
173
- itemInstance.subscribe(handleUpdate);
174
-
175
- if (!itemInstance.ref.current && core.isBrowser) {
176
- Object.assign(itemInstance.ref, {
177
- current: document.querySelector("[data-wv-id=\"" + id + "\"]")
178
- });
179
- }
180
-
181
- return function () {
182
- itemInstance.unsubscribe(handleUpdate);
183
- };
184
- }, []);
185
- var realClassName = className || '';
186
-
187
- if (css) {
188
- // let stitches create the style from css object and
189
- // then return the classname, so we can use it in the render
190
- var selector = context.stitchesInstance.css(css)().className;
191
- realClassName += ' ' + selector;
192
- }
193
-
194
- var Component = elementInstances.get(type);
195
-
196
- if (Component) {
197
- // @ts-ignore
198
- if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
199
- rest.ref = itemInstance.ref;
200
- }
201
-
202
- return React__default.createElement(Component, Object.assign({
203
- key: id,
204
- "data-wv-id": id
205
- }, rest, {
206
- className: realClassName
207
- }), Array.isArray(childIds) && childIds.map(function (childId) {
208
- return React__default.createElement(RenderItem, {
209
- key: childId,
210
- itemId: childId,
211
- context: context
212
- });
213
- }));
214
- }
215
-
216
- return null;
217
- };
218
-
219
- var RenderItem = function RenderItem(_ref3) {
220
- var itemId = _ref3.itemId,
221
- context = _ref3.context;
222
- var itemInstances = context.itemInstances,
223
- elementInstances = context.elementInstances;
224
- var itemInstance = itemInstances.get(itemId);
225
-
226
- if (itemInstance) {
227
- return React__default.createElement(Item, {
228
- itemInstance: itemInstance,
229
- elementInstances: elementInstances,
230
- context: context
231
- });
232
- }
233
-
234
- return React__default.createElement(React__default.Fragment, null);
235
- };
236
-
237
- exports.WeaverseRoot = WeaverseRoot;
238
- exports.createRootContext = createRootContext;
239
- //# sourceMappingURL=sdk-react.cjs.development.js.map
@@ -1 +0,0 @@
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 let shouldRenderStudio = context.loadStudio()\n console.log('shouldRenderStudio', shouldRenderStudio)\n if (shouldRenderStudio) {\n handleUpdate()\n }\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\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\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","shouldRenderStudio","loadStudio","console","log","unsubscribe","items","length","initItemData","handleProps","studioBridge","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 +0,0 @@
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 o=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)}));o.defaultProps={style:{backgroundColor:"green",borderRadius:"9999px",fontSize:"13px",padding:"10px 15px"},type:"button",tag:"button"};var s=["tag","children"],u=function(e){var t=e.tag,n=e.children,o=c(e,s);return r.createElement(t,a({},o),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:o,BaseElement:u,Grid:i},d=["id","type","childIds","css","className"],f=function(e){var o=e.itemInstance,s=e.elementInstances,u=e.context,i=t.useState(o.data),l=i[0],f=i[1],v=l.id,m=l.type,b=l.childIds,g=l.css,y=l.className,j=c(l,d);t.useEffect((function(){var e=function(e){f(a({},e))};return o.subscribe(e),!o.ref.current&&n.isBrowser&&Object.assign(o.ref,{current:document.querySelector('[data-wv-id="'+v+'"]')}),function(){o.unsubscribe(e)}}),[]);var x=y||"";g&&(x+=" "+u.stitchesInstance.css(g)().className);var h=s.get(m);return h?(h.$$typeof===Symbol.for("react.forward_ref")&&(j.ref=o.ref),r.createElement(h,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(f,{itemInstance:a,elementInstances:n,context:t}):r.createElement(r.Fragment,null)};exports.WeaverseRoot=function(e){var n,c,o,s=e.context,u=e.defaultData,i=t.useState(s.projectData)[1];t.useEffect((function(){var e=function(){i(a({},s.projectData))};s.subscribe(e),s.updateProjectData();var t=s.loadStudio();return console.log("shouldRenderStudio",t),t&&e(),function(){s.unsubscribe(e)}}),[]),null!=(n=s.projectData)&&null!=(c=n.items)&&c.length||!u||(s.projectData=u,s.initItemData());var l=(null==s||null==(o=s.studioBridge)?void 0:o.handleProps)||{};return console.log("handleProps",l),r.createElement("div",Object.assign({},l),r.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
- //# sourceMappingURL=sdk-react.cjs.production.min.js.map
@@ -1 +0,0 @@
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 let shouldRenderStudio = context.loadStudio()\n console.log('shouldRenderStudio', shouldRenderStudio)\n if (shouldRenderStudio) {\n handleUpdate()\n }\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\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\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","shouldRenderStudio","loadStudio","console","log","_context$projectData","items","_context$projectData$","length","initItemData","handleProps","studioBridge","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,gDC4CIE,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,IAMFc,GAAiB,IAFDpB,EAAQqB,iBAAiBf,IAAIA,EAA7BN,GAAqCO,eAInDe,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,uDAvFY,sBAAEsB,IAAAA,QAASkC,IAAAA,YACvB/B,EAAWF,WAAcD,EAAQmC,gBACxC1B,aAAU,eACJC,EAAe,WACjBP,OAAYH,EAAQmC,eAEtBnC,EAAQY,UAAUF,GAClBV,EAAQoC,wBACJC,EAAqBrC,EAAQsC,oBACjCC,QAAQC,IAAI,qBAAsBH,GAC9BA,GACF3B,IAEK,WACLV,EAAQmB,YAAYT,MAErB,aACEV,EAAQmC,uBAARM,EAAqBC,QAArBC,EAA4BC,SAAUV,IACzClC,EAAQmC,YAAcD,EACtBlC,EAAQ6C,oBAENC,SAAc9C,YAAAA,EAAS+C,uBAAcD,cAAe,UACxDP,QAAQC,IAAI,cAAeM,GACpBpE,uCAASoE,GACdpE,gBAACqD,GAAWC,OAAQ,EAAGhC,QAASA,gCAnCV,SAACgD,OACnBC,EAAc,IAAIC,WAASF,UAEjCjC,OAAOoC,KAAKC,GAAUC,SAAQ,SAAA3B,qBAE5B0B,EAAS1B,gBAAM1C,uBAAcM,OAAQ2D,EAAYK,gBAAgBF,EAAS1B,GAAK1C,aAAaM,KAAM8D,EAAS1B,OAGtGuB"}
@@ -1,231 +0,0 @@
1
- import React__default, { forwardRef, useState, createElement, useEffect } from 'react';
2
- import { Weaverse, isBrowser } from '@weaverse/core';
3
-
4
- function _extends() {
5
- _extends = Object.assign || function (target) {
6
- for (var i = 1; i < arguments.length; i++) {
7
- var source = arguments[i];
8
-
9
- for (var key in source) {
10
- if (Object.prototype.hasOwnProperty.call(source, key)) {
11
- target[key] = source[key];
12
- }
13
- }
14
- }
15
-
16
- return target;
17
- };
18
-
19
- return _extends.apply(this, arguments);
20
- }
21
-
22
- function _objectWithoutPropertiesLoose(source, excluded) {
23
- if (source == null) return {};
24
- var target = {};
25
- var sourceKeys = Object.keys(source);
26
- var key, i;
27
-
28
- for (i = 0; i < sourceKeys.length; i++) {
29
- key = sourceKeys[i];
30
- if (excluded.indexOf(key) >= 0) continue;
31
- target[key] = source[key];
32
- }
33
-
34
- return target;
35
- }
36
-
37
- var Button = /*#__PURE__*/forwardRef(function (props, ref) {
38
- var _React$useState = useState(0),
39
- count = _React$useState[0],
40
- setCount = _React$useState[1];
41
-
42
- return createElement("button", Object.assign({
43
- ref: ref
44
- }, props, {
45
- onClick: function onClick() {
46
- return setCount(count + 1);
47
- }
48
- }), "Test Button ", count);
49
- });
50
- Button.defaultProps = {
51
- style: {
52
- backgroundColor: 'green',
53
- borderRadius: '9999px',
54
- fontSize: '13px',
55
- padding: '10px 15px'
56
- },
57
- type: 'button',
58
- tag: 'button'
59
- };
60
-
61
- var _excluded = ["tag", "children"];
62
- var BaseElement = function BaseElement(_ref) {
63
- var tag = _ref.tag,
64
- children = _ref.children,
65
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
66
-
67
- return React__default.createElement(tag, _extends({}, props), children);
68
- };
69
- BaseElement.defaultProps = {
70
- type: 'base',
71
- tag: 'div'
72
- };
73
-
74
- function Grid(props) {
75
- return React__default.createElement("div", Object.assign({}, props));
76
- }
77
- Grid.defaultProps = {
78
- style: {// display: 'grid',
79
- // outline: '1px solid red',
80
- },
81
- type: 'grid'
82
- };
83
-
84
- var elements = {
85
- Button: Button,
86
- BaseElement: BaseElement,
87
- Grid: Grid
88
- };
89
-
90
- var _excluded$1 = ["id", "type", "childIds", "css", "className"];
91
-
92
- var createRootContext = function createRootContext(configs) {
93
- var rootContext = new Weaverse(configs); // Register the element components
94
-
95
- Object.keys(elements).forEach(function (key) {
96
- var _Elements$key, _Elements$key$default;
97
-
98
- // @ts-ignore
99
- ((_Elements$key = elements[key]) == null ? void 0 : (_Elements$key$default = _Elements$key.defaultProps) == null ? void 0 : _Elements$key$default.type) && rootContext.registerElement(elements[key].defaultProps.type, elements[key]);
100
- });
101
- return rootContext;
102
- };
103
-
104
- 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
- var shouldRenderStudio = context.loadStudio();
121
- console.log('shouldRenderStudio', shouldRenderStudio);
122
-
123
- if (shouldRenderStudio) {
124
- handleUpdate();
125
- }
126
-
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 = 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
- useEffect(function () {
162
- var handleUpdate = function handleUpdate(update) {
163
- setData(_extends({}, update));
164
- };
165
-
166
- itemInstance.subscribe(handleUpdate);
167
-
168
- if (!itemInstance.ref.current && 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);
228
- };
229
-
230
- export { WeaverseRoot, createRootContext };
231
- //# sourceMappingURL=sdk-react.esm.js.map
@@ -1 +0,0 @@
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 let shouldRenderStudio = context.loadStudio()\n console.log('shouldRenderStudio', shouldRenderStudio)\n if (shouldRenderStudio) {\n handleUpdate()\n }\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\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\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","shouldRenderStudio","loadStudio","console","log","unsubscribe","items","length","initItemData","handleProps","studioBridge","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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"}