@weaverse/core 0.4.2 → 0.5.3
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 +13 -4
- package/dist/index.js +50 -33
- package/dist/index.mjs +50 -33
- package/package.json +1 -1
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
|
|
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.
|
|
80
|
-
|
|
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(
|
|
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
|
|
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: "
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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(
|
|
170
|
-
|
|
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
|
-
|
|
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.
|
|
51
|
-
|
|
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(
|
|
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
|
|
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: "
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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(
|
|
141
|
-
|
|
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
|
-
|
|
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