@weaverse/core 0.6.4 → 0.6.5

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
@@ -53,16 +53,13 @@ interface ProjectDataType {
53
53
  items: ProjectDataItemType[];
54
54
  rootId: string | number;
55
55
  }
56
- declare type MediaBreakpoints = {
57
- tablet: string;
58
- mobile: string;
59
- };
60
56
  declare type WeaverseType = {
61
- [key: string]: any;
57
+ mediaBreakPoints?: any;
62
58
  appUrl?: string;
63
59
  projectKey?: string;
64
60
  projectData?: ProjectDataType;
65
61
  isDesignMode?: boolean;
62
+ ssrMode?: boolean;
66
63
  };
67
64
  /**
68
65
  * WeaverseItemStore is a store for Weaverse item, it can be used to subscribe/update the item data
@@ -85,6 +82,7 @@ declare class WeaverseItemStore {
85
82
  listeners: Set<any>;
86
83
  ref: RefObject<HTMLElement>;
87
84
  weaverse: Weaverse;
85
+ stitchesClass: string;
88
86
  constructor(itemData: any, weaverse: Weaverse);
89
87
  _data: any;
90
88
  get Element(): WeaverseElement;
@@ -133,6 +131,11 @@ declare class Weaverse {
133
131
  * @type {boolean}
134
132
  */
135
133
  isDesignMode: boolean;
134
+ /**
135
+ * Use in element to optionally render special HTML for hydration
136
+ * @type {boolean}
137
+ */
138
+ ssrMode: boolean;
136
139
  /**
137
140
  * stitches instance for handling CSS stylesheet, media, theme for Weaverse project
138
141
  */
@@ -149,8 +152,10 @@ declare class Weaverse {
149
152
  * @param projectKey {string} Weaverse project key to access project data via API
150
153
  * @param projectData {ProjectDataType} Weaverse project data, by default, user can provide project data via React Component.
151
154
  * @param mediaBreakPoints {object} Pass down custom media query breakpoints or just use the default.
155
+ * @param isDesignMode {boolean} check whether the sdk is isDesignMode or not
156
+ * @param ssrMode {boolean} Use in element to optionally render special HTML for hydration
152
157
  */
153
- constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode }?: WeaverseType);
158
+ constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode, ssrMode }?: WeaverseType);
154
159
  /**
155
160
  * register the custom React Component to Weaverse, store it into Weaverse.elementInstances
156
161
  * @param element {WeaverseElement} custom React Component
@@ -158,7 +163,6 @@ declare class Weaverse {
158
163
  registerElement(element: WeaverseElement): void;
159
164
  init(): void;
160
165
  initStitches: () => void;
161
- loadStudio(): void;
162
166
  subscribe(fn: any): void;
163
167
  unsubscribe(fn: any): void;
164
168
  triggerUpdate(): void;
@@ -184,4 +188,4 @@ declare const isReactNative: boolean;
184
188
  declare const isBrowser: boolean;
185
189
  declare const isIframe: boolean;
186
190
 
187
- export { MediaBreakpoints, ProjectDataItemType, ProjectDataType, TODO, Weaverse, WeaverseElement, WeaverseElementCatalog, WeaverseElementInput, WeaverseElementMap, WeaverseElementSchema, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
191
+ export { ProjectDataItemType, ProjectDataType, TODO, Weaverse, WeaverseElement, WeaverseElementCatalog, WeaverseElementInput, WeaverseElementMap, WeaverseElementSchema, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
package/dist/index.js CHANGED
@@ -44,11 +44,6 @@ __export(src_exports, {
44
44
  });
45
45
  module.exports = __toCommonJS(src_exports);
46
46
 
47
- // src/utils/index.ts
48
- var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
49
- var isBrowser = typeof window !== "undefined" && !isReactNative;
50
- var isIframe = isBrowser && window.top !== window.self;
51
-
52
47
  // src/core.ts
53
48
  var stitches = __toESM(require("@stitches/core"));
54
49
  var WeaverseItemStore = class {
@@ -57,6 +52,7 @@ var WeaverseItemStore = class {
57
52
  this.ref = {
58
53
  current: null
59
54
  };
55
+ this.stitchesClass = "";
60
56
  this._data = {};
61
57
  this.setData = (data) => {
62
58
  this.data = Object.assign(this.data, data);
@@ -93,7 +89,7 @@ var WeaverseItemStore = class {
93
89
  }
94
90
  };
95
91
  var _Weaverse = class {
96
- constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode } = {}) {
92
+ constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode, ssrMode } = {}) {
97
93
  this.elementInstances = /* @__PURE__ */ new Map();
98
94
  this.itemInstances = /* @__PURE__ */ new Map();
99
95
  this.appUrl = process.env.NODE_ENV === "development" ? "http://localhost:3000" : "https://weaverse.io";
@@ -104,6 +100,7 @@ var _Weaverse = class {
104
100
  };
105
101
  this.listeners = /* @__PURE__ */ new Set();
106
102
  this.isDesignMode = false;
103
+ this.ssrMode = false;
107
104
  this.mediaBreakPoints = {
108
105
  desktop: "all",
109
106
  mobile: "(max-width: 767.98px)"
@@ -130,6 +127,7 @@ var _Weaverse = class {
130
127
  this.projectKey = projectKey || this.projectKey;
131
128
  this.mediaBreakPoints = mediaBreakPoints || this.mediaBreakPoints;
132
129
  this.isDesignMode = isDesignMode || this.isDesignMode;
130
+ this.ssrMode = ssrMode || this.ssrMode;
133
131
  projectData && (this.projectData = projectData);
134
132
  this.init();
135
133
  }
@@ -143,27 +141,9 @@ var _Weaverse = class {
143
141
  }
144
142
  init() {
145
143
  this.initStitches();
146
- this.loadStudio();
147
144
  this.initProjectItemData();
148
145
  this.updateProjectData();
149
146
  }
150
- loadStudio() {
151
- if (this.isDesignMode && isIframe) {
152
- let initStudio = () => {
153
- this.studioBridge = new window.WeaverseStudioBridge(this);
154
- this.triggerUpdate();
155
- };
156
- if (!window.WeaverseStudioBridge) {
157
- const studioBridgeScript = document.createElement("script");
158
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
159
- studioBridgeScript.type = "module";
160
- studioBridgeScript.onload = initStudio;
161
- document.body.appendChild(studioBridgeScript);
162
- } else {
163
- initStudio();
164
- }
165
- }
166
- }
167
147
  subscribe(fn) {
168
148
  this.listeners.add(fn);
169
149
  }
@@ -206,6 +186,11 @@ var _Weaverse = class {
206
186
  };
207
187
  var Weaverse = _Weaverse;
208
188
  Weaverse.WeaverseItemStore = WeaverseItemStore;
189
+
190
+ // src/utils/index.ts
191
+ var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
192
+ var isBrowser = typeof window !== "undefined" && !isReactNative;
193
+ var isIframe = isBrowser && window.top !== window.self;
209
194
  // Annotate the CommonJS export names for ESM import in node:
210
195
  0 && (module.exports = {
211
196
  Weaverse,
package/dist/index.mjs CHANGED
@@ -15,11 +15,6 @@ var __spreadValues = (a, b) => {
15
15
  return a;
16
16
  };
17
17
 
18
- // src/utils/index.ts
19
- var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
20
- var isBrowser = typeof window !== "undefined" && !isReactNative;
21
- var isIframe = isBrowser && window.top !== window.self;
22
-
23
18
  // src/core.ts
24
19
  import * as stitches from "@stitches/core";
25
20
  var WeaverseItemStore = class {
@@ -28,6 +23,7 @@ var WeaverseItemStore = class {
28
23
  this.ref = {
29
24
  current: null
30
25
  };
26
+ this.stitchesClass = "";
31
27
  this._data = {};
32
28
  this.setData = (data) => {
33
29
  this.data = Object.assign(this.data, data);
@@ -64,7 +60,7 @@ var WeaverseItemStore = class {
64
60
  }
65
61
  };
66
62
  var _Weaverse = class {
67
- constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode } = {}) {
63
+ constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode, ssrMode } = {}) {
68
64
  this.elementInstances = /* @__PURE__ */ new Map();
69
65
  this.itemInstances = /* @__PURE__ */ new Map();
70
66
  this.appUrl = process.env.NODE_ENV === "development" ? "http://localhost:3000" : "https://weaverse.io";
@@ -75,6 +71,7 @@ var _Weaverse = class {
75
71
  };
76
72
  this.listeners = /* @__PURE__ */ new Set();
77
73
  this.isDesignMode = false;
74
+ this.ssrMode = false;
78
75
  this.mediaBreakPoints = {
79
76
  desktop: "all",
80
77
  mobile: "(max-width: 767.98px)"
@@ -101,6 +98,7 @@ var _Weaverse = class {
101
98
  this.projectKey = projectKey || this.projectKey;
102
99
  this.mediaBreakPoints = mediaBreakPoints || this.mediaBreakPoints;
103
100
  this.isDesignMode = isDesignMode || this.isDesignMode;
101
+ this.ssrMode = ssrMode || this.ssrMode;
104
102
  projectData && (this.projectData = projectData);
105
103
  this.init();
106
104
  }
@@ -114,27 +112,9 @@ var _Weaverse = class {
114
112
  }
115
113
  init() {
116
114
  this.initStitches();
117
- this.loadStudio();
118
115
  this.initProjectItemData();
119
116
  this.updateProjectData();
120
117
  }
121
- loadStudio() {
122
- if (this.isDesignMode && isIframe) {
123
- let initStudio = () => {
124
- this.studioBridge = new window.WeaverseStudioBridge(this);
125
- this.triggerUpdate();
126
- };
127
- if (!window.WeaverseStudioBridge) {
128
- const studioBridgeScript = document.createElement("script");
129
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
130
- studioBridgeScript.type = "module";
131
- studioBridgeScript.onload = initStudio;
132
- document.body.appendChild(studioBridgeScript);
133
- } else {
134
- initStudio();
135
- }
136
- }
137
- }
138
118
  subscribe(fn) {
139
119
  this.listeners.add(fn);
140
120
  }
@@ -177,6 +157,11 @@ var _Weaverse = class {
177
157
  };
178
158
  var Weaverse = _Weaverse;
179
159
  Weaverse.WeaverseItemStore = WeaverseItemStore;
160
+
161
+ // src/utils/index.ts
162
+ var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
163
+ var isBrowser = typeof window !== "undefined" && !isReactNative;
164
+ var isIframe = isBrowser && window.top !== window.self;
180
165
  export {
181
166
  Weaverse,
182
167
  WeaverseItemStore,
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.4",
2
+ "version": "0.6.5",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",