@weaverse/core 0.6.3 → 0.6.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 +26 -10
- package/dist/index.js +11 -35
- package/dist/index.mjs +11 -35
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Stitches from '@stitches/core/types/stitches';
|
|
2
|
+
import { RefObject } from 'react';
|
|
2
3
|
|
|
3
4
|
declare type TODO = any;
|
|
4
5
|
declare type WeaverseElementMap = {
|
|
@@ -8,13 +9,23 @@ declare type WeaverseElement = {
|
|
|
8
9
|
Component: TODO;
|
|
9
10
|
schema: WeaverseElementSchema;
|
|
10
11
|
};
|
|
12
|
+
declare type WeaverseElementCatalog = {
|
|
13
|
+
name: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
group?: 'essential' | 'composition' | 'other';
|
|
16
|
+
};
|
|
11
17
|
declare type WeaverseElementSchema = {
|
|
12
18
|
title?: string;
|
|
13
19
|
type: string;
|
|
14
20
|
settings?: WeaverseElementInput[];
|
|
15
21
|
styles?: WeaverseElementInput[];
|
|
16
22
|
toolbar?: TODO;
|
|
17
|
-
data?:
|
|
23
|
+
data?: WeaverseElementData;
|
|
24
|
+
catalog?: WeaverseElementCatalog;
|
|
25
|
+
};
|
|
26
|
+
declare type WeaverseElementData = {
|
|
27
|
+
id: string;
|
|
28
|
+
[key: string]: any;
|
|
18
29
|
};
|
|
19
30
|
declare type WeaverseElementInput = {
|
|
20
31
|
label?: string;
|
|
@@ -29,6 +40,7 @@ declare type WeaverseElementInput = {
|
|
|
29
40
|
declare global {
|
|
30
41
|
interface Window {
|
|
31
42
|
WeaverseStudioBridge: TODO;
|
|
43
|
+
weaverseShopifyProducts: TODO;
|
|
32
44
|
}
|
|
33
45
|
}
|
|
34
46
|
|
|
@@ -46,16 +58,13 @@ interface ProjectDataType {
|
|
|
46
58
|
items: ProjectDataItemType[];
|
|
47
59
|
rootId: string | number;
|
|
48
60
|
}
|
|
49
|
-
declare type MediaBreakpoints = {
|
|
50
|
-
tablet: string;
|
|
51
|
-
mobile: string;
|
|
52
|
-
};
|
|
53
61
|
declare type WeaverseType = {
|
|
54
|
-
|
|
62
|
+
mediaBreakPoints?: any;
|
|
55
63
|
appUrl?: string;
|
|
56
64
|
projectKey?: string;
|
|
57
65
|
projectData?: ProjectDataType;
|
|
58
66
|
isDesignMode?: boolean;
|
|
67
|
+
ssrMode?: boolean;
|
|
59
68
|
};
|
|
60
69
|
/**
|
|
61
70
|
* WeaverseItemStore is a store for Weaverse item, it can be used to subscribe/update the item data
|
|
@@ -76,8 +85,9 @@ declare type WeaverseType = {
|
|
|
76
85
|
*/
|
|
77
86
|
declare class WeaverseItemStore {
|
|
78
87
|
listeners: Set<any>;
|
|
79
|
-
ref:
|
|
88
|
+
ref: RefObject<HTMLElement>;
|
|
80
89
|
weaverse: Weaverse;
|
|
90
|
+
stitchesClass: string;
|
|
81
91
|
constructor(itemData: any, weaverse: Weaverse);
|
|
82
92
|
_data: any;
|
|
83
93
|
get Element(): WeaverseElement;
|
|
@@ -126,6 +136,11 @@ declare class Weaverse {
|
|
|
126
136
|
* @type {boolean}
|
|
127
137
|
*/
|
|
128
138
|
isDesignMode: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Use in element to optionally render special HTML for hydration
|
|
141
|
+
* @type {boolean}
|
|
142
|
+
*/
|
|
143
|
+
ssrMode: boolean;
|
|
129
144
|
/**
|
|
130
145
|
* stitches instance for handling CSS stylesheet, media, theme for Weaverse project
|
|
131
146
|
*/
|
|
@@ -142,8 +157,10 @@ declare class Weaverse {
|
|
|
142
157
|
* @param projectKey {string} Weaverse project key to access project data via API
|
|
143
158
|
* @param projectData {ProjectDataType} Weaverse project data, by default, user can provide project data via React Component.
|
|
144
159
|
* @param mediaBreakPoints {object} Pass down custom media query breakpoints or just use the default.
|
|
160
|
+
* @param isDesignMode {boolean} check whether the sdk is isDesignMode or not
|
|
161
|
+
* @param ssrMode {boolean} Use in element to optionally render special HTML for hydration
|
|
145
162
|
*/
|
|
146
|
-
constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode }?: WeaverseType);
|
|
163
|
+
constructor({ appUrl, projectKey, projectData, mediaBreakPoints, isDesignMode, ssrMode }?: WeaverseType);
|
|
147
164
|
/**
|
|
148
165
|
* register the custom React Component to Weaverse, store it into Weaverse.elementInstances
|
|
149
166
|
* @param element {WeaverseElement} custom React Component
|
|
@@ -151,7 +168,6 @@ declare class Weaverse {
|
|
|
151
168
|
registerElement(element: WeaverseElement): void;
|
|
152
169
|
init(): void;
|
|
153
170
|
initStitches: () => void;
|
|
154
|
-
loadStudio(): void;
|
|
155
171
|
subscribe(fn: any): void;
|
|
156
172
|
unsubscribe(fn: any): void;
|
|
157
173
|
triggerUpdate(): void;
|
|
@@ -177,4 +193,4 @@ declare const isReactNative: boolean;
|
|
|
177
193
|
declare const isBrowser: boolean;
|
|
178
194
|
declare const isIframe: boolean;
|
|
179
195
|
|
|
180
|
-
export {
|
|
196
|
+
export { ProjectDataItemType, ProjectDataType, TODO, Weaverse, WeaverseElement, WeaverseElementCatalog, WeaverseElementData, WeaverseElementInput, WeaverseElementMap, WeaverseElementSchema, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
|
package/dist/index.js
CHANGED
|
@@ -44,19 +44,15 @@ __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 {
|
|
55
|
-
constructor(itemData
|
|
50
|
+
constructor(itemData, weaverse) {
|
|
56
51
|
this.listeners = /* @__PURE__ */ new Set();
|
|
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)"
|
|
@@ -111,22 +108,14 @@ var _Weaverse = class {
|
|
|
111
108
|
this.initStitches = () => {
|
|
112
109
|
this.stitchesInstance = stitches.createStitches({
|
|
113
110
|
prefix: "weaverse",
|
|
114
|
-
media: this.mediaBreakPoints
|
|
115
|
-
theme: {
|
|
116
|
-
sizes: {
|
|
117
|
-
rowSize: "48px",
|
|
118
|
-
columns: 16
|
|
119
|
-
},
|
|
120
|
-
space: {
|
|
121
|
-
gap: "8px"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
111
|
+
media: this.mediaBreakPoints
|
|
124
112
|
});
|
|
125
113
|
};
|
|
126
114
|
this.appUrl = appUrl || this.appUrl;
|
|
127
115
|
this.projectKey = projectKey || this.projectKey;
|
|
128
116
|
this.mediaBreakPoints = mediaBreakPoints || this.mediaBreakPoints;
|
|
129
117
|
this.isDesignMode = isDesignMode || this.isDesignMode;
|
|
118
|
+
this.ssrMode = ssrMode || this.ssrMode;
|
|
130
119
|
projectData && (this.projectData = projectData);
|
|
131
120
|
this.init();
|
|
132
121
|
}
|
|
@@ -140,27 +129,9 @@ var _Weaverse = class {
|
|
|
140
129
|
}
|
|
141
130
|
init() {
|
|
142
131
|
this.initStitches();
|
|
143
|
-
this.loadStudio();
|
|
144
132
|
this.initProjectItemData();
|
|
145
133
|
this.updateProjectData();
|
|
146
134
|
}
|
|
147
|
-
loadStudio() {
|
|
148
|
-
if (this.isDesignMode && isIframe) {
|
|
149
|
-
let initStudio = () => {
|
|
150
|
-
this.studioBridge = new window.WeaverseStudioBridge(this);
|
|
151
|
-
this.triggerUpdate();
|
|
152
|
-
};
|
|
153
|
-
if (!window.WeaverseStudioBridge) {
|
|
154
|
-
const studioBridgeScript = document.createElement("script");
|
|
155
|
-
studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
|
|
156
|
-
studioBridgeScript.type = "module";
|
|
157
|
-
studioBridgeScript.onload = initStudio;
|
|
158
|
-
document.body.appendChild(studioBridgeScript);
|
|
159
|
-
} else {
|
|
160
|
-
initStudio();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
135
|
subscribe(fn) {
|
|
165
136
|
this.listeners.add(fn);
|
|
166
137
|
}
|
|
@@ -203,6 +174,11 @@ var _Weaverse = class {
|
|
|
203
174
|
};
|
|
204
175
|
var Weaverse = _Weaverse;
|
|
205
176
|
Weaverse.WeaverseItemStore = WeaverseItemStore;
|
|
177
|
+
|
|
178
|
+
// src/utils/index.ts
|
|
179
|
+
var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
|
|
180
|
+
var isBrowser = typeof window !== "undefined" && !isReactNative;
|
|
181
|
+
var isIframe = isBrowser && window.top !== window.self;
|
|
206
182
|
// Annotate the CommonJS export names for ESM import in node:
|
|
207
183
|
0 && (module.exports = {
|
|
208
184
|
Weaverse,
|
package/dist/index.mjs
CHANGED
|
@@ -15,19 +15,15 @@ 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 {
|
|
26
|
-
constructor(itemData
|
|
21
|
+
constructor(itemData, weaverse) {
|
|
27
22
|
this.listeners = /* @__PURE__ */ new Set();
|
|
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)"
|
|
@@ -82,22 +79,14 @@ var _Weaverse = class {
|
|
|
82
79
|
this.initStitches = () => {
|
|
83
80
|
this.stitchesInstance = stitches.createStitches({
|
|
84
81
|
prefix: "weaverse",
|
|
85
|
-
media: this.mediaBreakPoints
|
|
86
|
-
theme: {
|
|
87
|
-
sizes: {
|
|
88
|
-
rowSize: "48px",
|
|
89
|
-
columns: 16
|
|
90
|
-
},
|
|
91
|
-
space: {
|
|
92
|
-
gap: "8px"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
82
|
+
media: this.mediaBreakPoints
|
|
95
83
|
});
|
|
96
84
|
};
|
|
97
85
|
this.appUrl = appUrl || this.appUrl;
|
|
98
86
|
this.projectKey = projectKey || this.projectKey;
|
|
99
87
|
this.mediaBreakPoints = mediaBreakPoints || this.mediaBreakPoints;
|
|
100
88
|
this.isDesignMode = isDesignMode || this.isDesignMode;
|
|
89
|
+
this.ssrMode = ssrMode || this.ssrMode;
|
|
101
90
|
projectData && (this.projectData = projectData);
|
|
102
91
|
this.init();
|
|
103
92
|
}
|
|
@@ -111,27 +100,9 @@ var _Weaverse = class {
|
|
|
111
100
|
}
|
|
112
101
|
init() {
|
|
113
102
|
this.initStitches();
|
|
114
|
-
this.loadStudio();
|
|
115
103
|
this.initProjectItemData();
|
|
116
104
|
this.updateProjectData();
|
|
117
105
|
}
|
|
118
|
-
loadStudio() {
|
|
119
|
-
if (this.isDesignMode && isIframe) {
|
|
120
|
-
let initStudio = () => {
|
|
121
|
-
this.studioBridge = new window.WeaverseStudioBridge(this);
|
|
122
|
-
this.triggerUpdate();
|
|
123
|
-
};
|
|
124
|
-
if (!window.WeaverseStudioBridge) {
|
|
125
|
-
const studioBridgeScript = document.createElement("script");
|
|
126
|
-
studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
|
|
127
|
-
studioBridgeScript.type = "module";
|
|
128
|
-
studioBridgeScript.onload = initStudio;
|
|
129
|
-
document.body.appendChild(studioBridgeScript);
|
|
130
|
-
} else {
|
|
131
|
-
initStudio();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
106
|
subscribe(fn) {
|
|
136
107
|
this.listeners.add(fn);
|
|
137
108
|
}
|
|
@@ -174,6 +145,11 @@ var _Weaverse = class {
|
|
|
174
145
|
};
|
|
175
146
|
var Weaverse = _Weaverse;
|
|
176
147
|
Weaverse.WeaverseItemStore = WeaverseItemStore;
|
|
148
|
+
|
|
149
|
+
// src/utils/index.ts
|
|
150
|
+
var isReactNative = typeof navigator === "object" && navigator.product === "ReactNative";
|
|
151
|
+
var isBrowser = typeof window !== "undefined" && !isReactNative;
|
|
152
|
+
var isIframe = isBrowser && window.top !== window.self;
|
|
177
153
|
export {
|
|
178
154
|
Weaverse,
|
|
179
155
|
WeaverseItemStore,
|
package/package.json
CHANGED