@weaverse/core 0.4.2 → 0.5.1

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
@@ -32,7 +32,7 @@ declare type InspectorOption = {
32
32
  value: TODO;
33
33
  label: string;
34
34
  };
35
- declare type InspectorInputType = "alignment" | "color" | "switch" | "spacing" | "textarea" | "select" | "grid";
35
+ declare type InspectorInputType = "alignment" | "color" | "switch" | "spacing" | "textarea" | "select" | "grid" | "flex";
36
36
  declare global {
37
37
  interface Window {
38
38
  WeaverseStudioBridge: TODO;
@@ -81,11 +81,14 @@ declare type WeaverseType = {
81
81
  * ```
82
82
  */
83
83
  declare class WeaverseItemStore {
84
- data: any;
85
84
  listeners: Set<any>;
86
- Element: WeaverseElement;
87
85
  ref: any;
86
+ weaverse: Weaverse;
88
87
  constructor(itemData: any, weaverse: Weaverse);
88
+ _data: any;
89
+ get Element(): WeaverseElement;
90
+ set data(data: any);
91
+ get data(): any;
89
92
  setData: (data: any) => any;
90
93
  subscribe: (fn: any) => void;
91
94
  unsubscribe: (fn: any) => void;
@@ -162,8 +165,14 @@ declare class Weaverse {
162
165
  /**
163
166
  * fetch data from Weaverse API (https://weaverse.io/api/v1/projects/:projectKey)
164
167
  * @param fetch {fetch} custom fetch function, pass in custom fetch function if you want to use your own fetch function
168
+ * @param appUrl
169
+ * @param projectKey
165
170
  */
166
- fetchProjectData(fetch?: typeof globalThis.fetch): Promise<any>;
171
+ static fetchProjectData({ fetch, appUrl, projectKey, }: {
172
+ fetch?: any;
173
+ appUrl?: string;
174
+ projectKey?: string;
175
+ }): any;
167
176
  /**
168
177
  * fetch and update the project data, then trigger update to re-render the WeaverseRoot
169
178
  */
package/dist/index.js CHANGED
@@ -53,11 +53,11 @@ var isIframe = isBrowser && window.top !== window.self;
53
53
  var stitches = __toESM(require("@stitches/core"));
54
54
  var WeaverseItemStore = class {
55
55
  constructor(itemData = {}, weaverse) {
56
- this.data = {};
57
56
  this.listeners = /* @__PURE__ */ new Set();
58
57
  this.ref = {
59
58
  current: null
60
59
  };
60
+ this._data = {};
61
61
  this.setData = (data) => {
62
62
  this.data = Object.assign(this.data, data);
63
63
  this.triggerUpdate();
@@ -74,18 +74,25 @@ var WeaverseItemStore = class {
74
74
  return fn(this.data);
75
75
  });
76
76
  };
77
- var _a, _b, _c, _d;
78
77
  let { type, id } = itemData;
79
- this.Element = weaverse.elementInstances.get(type);
80
- console.log("this.Element", this.Element);
81
- if (id && this.Element) {
82
- let defaultData = (_b = (_a = this.Element) == null ? void 0 : _a.schema) == null ? void 0 : _b.data;
78
+ this.weaverse = weaverse;
79
+ if (id && type) {
83
80
  weaverse.itemInstances.set(id, this);
84
- this.data = __spreadValues(__spreadValues(__spreadValues({}, (_d = (_c = this.Element) == null ? void 0 : _c.Component) == null ? void 0 : _d.defaultProps), defaultData), itemData);
81
+ this.data = __spreadValues({}, itemData);
85
82
  }
86
83
  }
84
+ get Element() {
85
+ return this.weaverse.elementInstances.get(this._data.type);
86
+ }
87
+ set data(data) {
88
+ this._data = __spreadValues(__spreadValues({}, this.data), data);
89
+ }
90
+ get data() {
91
+ var _a, _b, _c, _d;
92
+ return __spreadValues(__spreadValues(__spreadValues({}, (_b = (_a = this.Element) == null ? void 0 : _a.Component) == null ? void 0 : _b.defaultProps), (_d = (_c = this.Element) == null ? void 0 : _c.schema) == null ? void 0 : _d.data), this._data);
93
+ }
87
94
  };
88
- var Weaverse = class {
95
+ var _Weaverse = class {
89
96
  constructor({ appUrl, projectKey, projectData, mediaBreakPoints } = {}) {
90
97
  this.elementInstances = /* @__PURE__ */ new Map();
91
98
  this.itemInstances = /* @__PURE__ */ new Map();
@@ -104,8 +111,17 @@ var Weaverse = class {
104
111
  };
105
112
  this.initStitches = () => {
106
113
  this.stitchesInstance = stitches.createStitches({
107
- prefix: "we",
108
- media: this.mediaBreakPoints
114
+ prefix: "weaverse",
115
+ media: this.mediaBreakPoints,
116
+ theme: {
117
+ sizes: {
118
+ rowSize: "48px",
119
+ columns: 16
120
+ },
121
+ space: {
122
+ gap: "8px"
123
+ }
124
+ }
109
125
  });
110
126
  };
111
127
  this.appUrl = appUrl || this.appUrl;
@@ -125,29 +141,25 @@ var Weaverse = class {
125
141
  init() {
126
142
  this.initStitches();
127
143
  this.loadStudio();
144
+ this.initProjectItemData();
128
145
  }
129
146
  loadStudio() {
130
147
  if (isIframe) {
131
- window.addEventListener("message", (e) => {
132
- var _a;
133
- if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
134
- this.isEditor = true;
135
- let initStudio = () => {
136
- this.studioBridge = new window.WeaverseStudioBridge(this);
137
- this.studioBridge.subscribeMessageEvent();
138
- this.triggerUpdate();
139
- };
140
- if (!window.WeaverseStudioBridge) {
141
- const studioBridgeScript = document.createElement("script");
142
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
143
- studioBridgeScript.type = "module";
144
- studioBridgeScript.onload = initStudio;
145
- document.body.appendChild(studioBridgeScript);
146
- } else {
147
- initStudio();
148
- }
149
- }
150
- });
148
+ this.isEditor = true;
149
+ let initStudio = () => {
150
+ this.studioBridge = new window.WeaverseStudioBridge(this);
151
+ this.studioBridge.subscribeMessageEvent();
152
+ this.triggerUpdate();
153
+ };
154
+ if (!window.WeaverseStudioBridge) {
155
+ const studioBridgeScript = document.createElement("script");
156
+ studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
157
+ studioBridgeScript.type = "module";
158
+ studioBridgeScript.onload = initStudio;
159
+ document.body.appendChild(studioBridgeScript);
160
+ } else {
161
+ initStudio();
162
+ }
151
163
  }
152
164
  }
153
165
  subscribe(fn) {
@@ -166,12 +178,16 @@ var Weaverse = class {
166
178
  });
167
179
  }
168
180
  }
169
- fetchProjectData(fetch = globalThis.fetch) {
170
- return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
181
+ static fetchProjectData({
182
+ fetch = globalThis.fetch,
183
+ appUrl,
184
+ projectKey
185
+ }) {
186
+ return fetch(appUrl + `/api/public/${projectKey}`).then((r) => r.json()).catch(console.error);
171
187
  }
172
188
  updateProjectData() {
173
189
  if (this.projectKey) {
174
- this.fetchProjectData().then((data) => {
190
+ _Weaverse.fetchProjectData({ appUrl: this.appUrl, projectKey: this.projectKey }).then((data) => {
175
191
  if (data) {
176
192
  this.projectData = data;
177
193
  this.initProjectItemData();
@@ -193,6 +209,7 @@ var Weaverse = class {
193
209
  }
194
210
  }
195
211
  };
212
+ var Weaverse = _Weaverse;
196
213
  Weaverse.WeaverseItemStore = WeaverseItemStore;
197
214
  // Annotate the CommonJS export names for ESM import in node:
198
215
  0 && (module.exports = {
package/dist/index.mjs CHANGED
@@ -24,11 +24,11 @@ var isIframe = isBrowser && window.top !== window.self;
24
24
  import * as stitches from "@stitches/core";
25
25
  var WeaverseItemStore = class {
26
26
  constructor(itemData = {}, weaverse) {
27
- this.data = {};
28
27
  this.listeners = /* @__PURE__ */ new Set();
29
28
  this.ref = {
30
29
  current: null
31
30
  };
31
+ this._data = {};
32
32
  this.setData = (data) => {
33
33
  this.data = Object.assign(this.data, data);
34
34
  this.triggerUpdate();
@@ -45,18 +45,25 @@ var WeaverseItemStore = class {
45
45
  return fn(this.data);
46
46
  });
47
47
  };
48
- var _a, _b, _c, _d;
49
48
  let { type, id } = itemData;
50
- this.Element = weaverse.elementInstances.get(type);
51
- console.log("this.Element", this.Element);
52
- if (id && this.Element) {
53
- let defaultData = (_b = (_a = this.Element) == null ? void 0 : _a.schema) == null ? void 0 : _b.data;
49
+ this.weaverse = weaverse;
50
+ if (id && type) {
54
51
  weaverse.itemInstances.set(id, this);
55
- this.data = __spreadValues(__spreadValues(__spreadValues({}, (_d = (_c = this.Element) == null ? void 0 : _c.Component) == null ? void 0 : _d.defaultProps), defaultData), itemData);
52
+ this.data = __spreadValues({}, itemData);
56
53
  }
57
54
  }
55
+ get Element() {
56
+ return this.weaverse.elementInstances.get(this._data.type);
57
+ }
58
+ set data(data) {
59
+ this._data = __spreadValues(__spreadValues({}, this.data), data);
60
+ }
61
+ get data() {
62
+ var _a, _b, _c, _d;
63
+ return __spreadValues(__spreadValues(__spreadValues({}, (_b = (_a = this.Element) == null ? void 0 : _a.Component) == null ? void 0 : _b.defaultProps), (_d = (_c = this.Element) == null ? void 0 : _c.schema) == null ? void 0 : _d.data), this._data);
64
+ }
58
65
  };
59
- var Weaverse = class {
66
+ var _Weaverse = class {
60
67
  constructor({ appUrl, projectKey, projectData, mediaBreakPoints } = {}) {
61
68
  this.elementInstances = /* @__PURE__ */ new Map();
62
69
  this.itemInstances = /* @__PURE__ */ new Map();
@@ -75,8 +82,17 @@ var Weaverse = class {
75
82
  };
76
83
  this.initStitches = () => {
77
84
  this.stitchesInstance = stitches.createStitches({
78
- prefix: "we",
79
- media: this.mediaBreakPoints
85
+ prefix: "weaverse",
86
+ media: this.mediaBreakPoints,
87
+ theme: {
88
+ sizes: {
89
+ rowSize: "48px",
90
+ columns: 16
91
+ },
92
+ space: {
93
+ gap: "8px"
94
+ }
95
+ }
80
96
  });
81
97
  };
82
98
  this.appUrl = appUrl || this.appUrl;
@@ -96,29 +112,25 @@ var Weaverse = class {
96
112
  init() {
97
113
  this.initStitches();
98
114
  this.loadStudio();
115
+ this.initProjectItemData();
99
116
  }
100
117
  loadStudio() {
101
118
  if (isIframe) {
102
- window.addEventListener("message", (e) => {
103
- var _a;
104
- if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
105
- this.isEditor = true;
106
- let initStudio = () => {
107
- this.studioBridge = new window.WeaverseStudioBridge(this);
108
- this.studioBridge.subscribeMessageEvent();
109
- this.triggerUpdate();
110
- };
111
- if (!window.WeaverseStudioBridge) {
112
- const studioBridgeScript = document.createElement("script");
113
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
114
- studioBridgeScript.type = "module";
115
- studioBridgeScript.onload = initStudio;
116
- document.body.appendChild(studioBridgeScript);
117
- } else {
118
- initStudio();
119
- }
120
- }
121
- });
119
+ this.isEditor = true;
120
+ let initStudio = () => {
121
+ this.studioBridge = new window.WeaverseStudioBridge(this);
122
+ this.studioBridge.subscribeMessageEvent();
123
+ this.triggerUpdate();
124
+ };
125
+ if (!window.WeaverseStudioBridge) {
126
+ const studioBridgeScript = document.createElement("script");
127
+ studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
128
+ studioBridgeScript.type = "module";
129
+ studioBridgeScript.onload = initStudio;
130
+ document.body.appendChild(studioBridgeScript);
131
+ } else {
132
+ initStudio();
133
+ }
122
134
  }
123
135
  }
124
136
  subscribe(fn) {
@@ -137,12 +149,16 @@ var Weaverse = class {
137
149
  });
138
150
  }
139
151
  }
140
- fetchProjectData(fetch = globalThis.fetch) {
141
- return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
152
+ static fetchProjectData({
153
+ fetch = globalThis.fetch,
154
+ appUrl,
155
+ projectKey
156
+ }) {
157
+ return fetch(appUrl + `/api/public/${projectKey}`).then((r) => r.json()).catch(console.error);
142
158
  }
143
159
  updateProjectData() {
144
160
  if (this.projectKey) {
145
- this.fetchProjectData().then((data) => {
161
+ _Weaverse.fetchProjectData({ appUrl: this.appUrl, projectKey: this.projectKey }).then((data) => {
146
162
  if (data) {
147
163
  this.projectData = data;
148
164
  this.initProjectItemData();
@@ -164,6 +180,7 @@ var Weaverse = class {
164
180
  }
165
181
  }
166
182
  };
183
+ var Weaverse = _Weaverse;
167
184
  Weaverse.WeaverseItemStore = WeaverseItemStore;
168
185
  export {
169
186
  Weaverse,
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.4.2",
2
+ "version": "0.5.1",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",