@weaverse/core 0.3.3 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,34 @@
1
1
  import Stitches from '@stitches/core/types/stitches';
2
2
 
3
+ declare type WeaverseElementMap = {
4
+ [key: string]: WeaverseElement;
5
+ };
6
+ declare type WeaverseElement = {
7
+ Component: any;
8
+ schema: WeaverseElementSchema;
9
+ };
10
+ declare type WeaverseElementSchema = {
11
+ title: string;
12
+ type: string;
13
+ settings: WeaverseElementSetting[];
14
+ };
15
+ declare type WeaverseElementSetting = {
16
+ tab: string;
17
+ label: string;
18
+ inspectors: WeaverseElementInspector[];
19
+ };
20
+ declare type WeaverseElementInspector = {
21
+ binding: 'data' | 'style';
22
+ key: string;
23
+ componentType: InspectorComponentType;
24
+ };
25
+ declare type InspectorComponentType = "textarea" | "color";
26
+ declare global {
27
+ interface Window {
28
+ WeaverseStudioBridge: any;
29
+ }
30
+ }
31
+
3
32
  interface ProjectDataItemType {
4
33
  type: string;
5
34
  name?: string;
@@ -53,7 +82,7 @@ declare class Weaverse {
53
82
  * For storing, registering element React component from Weaverse or created by user/developer
54
83
  * @type {Map<string, React.Component>}
55
84
  */
56
- elementInstances: Map<string, any>;
85
+ elementInstances: Map<string, WeaverseElement>;
57
86
  /**
58
87
  * list of element/items store to provide data, handle state update, state sharing, etc.
59
88
  * @type {Map<string, any>}
@@ -104,7 +133,7 @@ declare class Weaverse {
104
133
  * @param name {string} unique name of the custom React Component
105
134
  * @param element {React.Component} custom React Component
106
135
  */
107
- registerElement(name: string, element: any): void;
136
+ registerElement(element: WeaverseElement): void;
108
137
  init(): void;
109
138
  loadStudio(): void;
110
139
  subscribe(fn: any): void;
@@ -126,4 +155,4 @@ declare const isReactNative: boolean;
126
155
  declare const isBrowser: boolean;
127
156
  declare const isIframe: boolean;
128
157
 
129
- export { ProjectDataItemType, ProjectDataType, Weaverse, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
158
+ export { InspectorComponentType, ProjectDataItemType, ProjectDataType, Weaverse, WeaverseElement, WeaverseElementInspector, WeaverseElementMap, WeaverseElementSchema, WeaverseElementSetting, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
package/dist/index.js CHANGED
@@ -4,27 +4,20 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
7
  var __export = (target, all) => {
9
8
  for (var name in all)
10
9
  __defProp(target, name, { get: all[name], enumerable: true });
11
10
  };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
16
  }
18
- return target;
17
+ return to;
19
18
  };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
21
 
29
22
  // src/index.ts
30
23
  var src_exports = {};
@@ -35,6 +28,7 @@ __export(src_exports, {
35
28
  isIframe: () => isIframe,
36
29
  isReactNative: () => isReactNative
37
30
  });
31
+ module.exports = __toCommonJS(src_exports);
38
32
 
39
33
  // src/utils/index.ts
40
34
  var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
@@ -70,7 +64,6 @@ var WeaverseItemStore = class {
70
64
  if (type && id) {
71
65
  this.Component = weaverse.elementInstances.get(type);
72
66
  weaverse.itemInstances.set(id, this);
73
- console.log("WeaverseItemStore created", this);
74
67
  }
75
68
  }
76
69
  };
@@ -91,12 +84,17 @@ var Weaverse = class {
91
84
  projectData && (this.projectData = projectData);
92
85
  this.init();
93
86
  }
94
- registerElement(name, element) {
95
- this.elementInstances.set(name, element);
87
+ registerElement(element) {
88
+ var _a;
89
+ if ((_a = element == null ? void 0 : element.schema) == null ? void 0 : _a.type) {
90
+ this.elementInstances.set(element.schema.type, element);
91
+ } else {
92
+ throw new Error("Weaverse: registerElement: schema.type is required");
93
+ }
96
94
  }
97
95
  init() {
98
96
  this.stitchesInstance = stitches.createStitches({
99
- prefix: "weaverse",
97
+ prefix: "we",
100
98
  media: {
101
99
  bp1: "(min-width: 640px)",
102
100
  bp2: "(max-width: 768px)",
@@ -106,9 +104,7 @@ var Weaverse = class {
106
104
  this.loadStudio();
107
105
  }
108
106
  loadStudio() {
109
- console.log("loadStudio", { isIframe });
110
107
  if (isIframe) {
111
- console.log("Weaverse SDK is initializing...", isIframe);
112
108
  window.addEventListener("message", (e) => {
113
109
  var _a;
114
110
  if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
@@ -117,9 +113,7 @@ var Weaverse = class {
117
113
  this.studioBridge = new StudioBridge(this);
118
114
  this.studioBridge.subscribeMessageEvent();
119
115
  this.triggerUpdate();
120
- console.log("studio bridge initialized", this.studioBridge);
121
116
  };
122
- console.log("studio message", e.data);
123
117
  this.isEditor = true;
124
118
  if (!window.WeaverseStudioBridge) {
125
119
  const studioBridgeScript = document.createElement("script");
@@ -151,7 +145,6 @@ var Weaverse = class {
151
145
  }
152
146
  }
153
147
  fetchProjectData(fetch = globalThis.fetch) {
154
- console.log("fetching project data...");
155
148
  return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
156
149
  }
157
150
  updateProjectData() {
@@ -169,11 +162,9 @@ var Weaverse = class {
169
162
  }
170
163
  initProjectItemData() {
171
164
  let data = this.projectData;
172
- console.log("init project data", data);
173
165
  if (data.items) {
174
166
  data.items.forEach((item) => {
175
167
  if (!this.itemInstances.get(item.id)) {
176
- console.log("init item instance", item);
177
168
  new WeaverseItemStore(item, this);
178
169
  }
179
170
  });
@@ -181,7 +172,6 @@ var Weaverse = class {
181
172
  }
182
173
  };
183
174
  Weaverse.WeaverseItemStore = WeaverseItemStore;
184
- module.exports = __toCommonJS(src_exports);
185
175
  // Annotate the CommonJS export names for ESM import in node:
186
176
  0 && (module.exports = {
187
177
  Weaverse,
package/dist/index.mjs CHANGED
@@ -32,7 +32,6 @@ var WeaverseItemStore = class {
32
32
  if (type && id) {
33
33
  this.Component = weaverse.elementInstances.get(type);
34
34
  weaverse.itemInstances.set(id, this);
35
- console.log("WeaverseItemStore created", this);
36
35
  }
37
36
  }
38
37
  };
@@ -53,12 +52,17 @@ var Weaverse = class {
53
52
  projectData && (this.projectData = projectData);
54
53
  this.init();
55
54
  }
56
- registerElement(name, element) {
57
- this.elementInstances.set(name, element);
55
+ registerElement(element) {
56
+ var _a;
57
+ if ((_a = element == null ? void 0 : element.schema) == null ? void 0 : _a.type) {
58
+ this.elementInstances.set(element.schema.type, element);
59
+ } else {
60
+ throw new Error("Weaverse: registerElement: schema.type is required");
61
+ }
58
62
  }
59
63
  init() {
60
64
  this.stitchesInstance = stitches.createStitches({
61
- prefix: "weaverse",
65
+ prefix: "we",
62
66
  media: {
63
67
  bp1: "(min-width: 640px)",
64
68
  bp2: "(max-width: 768px)",
@@ -68,9 +72,7 @@ var Weaverse = class {
68
72
  this.loadStudio();
69
73
  }
70
74
  loadStudio() {
71
- console.log("loadStudio", { isIframe });
72
75
  if (isIframe) {
73
- console.log("Weaverse SDK is initializing...", isIframe);
74
76
  window.addEventListener("message", (e) => {
75
77
  var _a;
76
78
  if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
@@ -79,9 +81,7 @@ var Weaverse = class {
79
81
  this.studioBridge = new StudioBridge(this);
80
82
  this.studioBridge.subscribeMessageEvent();
81
83
  this.triggerUpdate();
82
- console.log("studio bridge initialized", this.studioBridge);
83
84
  };
84
- console.log("studio message", e.data);
85
85
  this.isEditor = true;
86
86
  if (!window.WeaverseStudioBridge) {
87
87
  const studioBridgeScript = document.createElement("script");
@@ -113,7 +113,6 @@ var Weaverse = class {
113
113
  }
114
114
  }
115
115
  fetchProjectData(fetch = globalThis.fetch) {
116
- console.log("fetching project data...");
117
116
  return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
118
117
  }
119
118
  updateProjectData() {
@@ -131,11 +130,9 @@ var Weaverse = class {
131
130
  }
132
131
  initProjectItemData() {
133
132
  let data = this.projectData;
134
- console.log("init project data", data);
135
133
  if (data.items) {
136
134
  data.items.forEach((item) => {
137
135
  if (!this.itemInstances.get(item.id)) {
138
- console.log("init item instance", item);
139
136
  new WeaverseItemStore(item, this);
140
137
  }
141
138
  });
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.3.3",
2
+ "version": "0.3.6",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",