@weaverse/core 0.3.2 → 0.3.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
@@ -1,5 +1,33 @@
1
1
  import Stitches from '@stitches/core/types/stitches';
2
2
 
3
+ declare type InspectorComponentType = "textarea" | "color";
4
+ declare type WeaverseElementInspector = {
5
+ binding: 'data' | 'style';
6
+ key: string;
7
+ componentType: InspectorComponentType;
8
+ };
9
+ declare type WeaverseElementSetting = {
10
+ tab: string;
11
+ label: string;
12
+ inspectors: WeaverseElementInspector[];
13
+ };
14
+ declare type WeaverseElement = {
15
+ Component: any;
16
+ schema: {
17
+ title: string;
18
+ type: string;
19
+ settings: WeaverseElementSetting[];
20
+ };
21
+ };
22
+ declare type WeaverseElementMap = {
23
+ [key: string]: WeaverseElement;
24
+ };
25
+ declare global {
26
+ interface Window {
27
+ WeaverseStudioBridge: any;
28
+ }
29
+ }
30
+
3
31
  interface ProjectDataItemType {
4
32
  type: string;
5
33
  name?: string;
@@ -20,12 +48,40 @@ declare type WeaverseType = {
20
48
  projectKey?: string;
21
49
  projectData?: ProjectDataType;
22
50
  };
51
+ /**
52
+ * WeaverseItemStore is a store for Weaverse item, it can be used to subscribe/update the item data
53
+ * @param itemData {ProjectDataItemType} Weaverse item data
54
+ * @param weaverse {Weaverse} Weaverse instance
55
+ * Usage:
56
+ * ```jsx
57
+ * useEffect(() => {
58
+ * let handleUpdate = (update: any) => {
59
+ * setData({...update})
60
+ * }
61
+ * itemInstance.subscribe(handleUpdate)
62
+ * return () => {
63
+ * itemInstance.unsubscribe(handleUpdate)
64
+ * }
65
+ * }, [])
66
+ * ```
67
+ */
68
+ declare class WeaverseItemStore {
69
+ data: any;
70
+ listeners: Set<any>;
71
+ Component: any;
72
+ ref: any;
73
+ constructor(itemData: any, weaverse: Weaverse);
74
+ setData: (data: any) => void;
75
+ subscribe: (fn: any) => void;
76
+ unsubscribe: (fn: any) => void;
77
+ triggerUpdate: () => void;
78
+ }
23
79
  declare class Weaverse {
24
80
  /**
25
81
  * For storing, registering element React component from Weaverse or created by user/developer
26
82
  * @type {Map<string, React.Component>}
27
83
  */
28
- elementInstances: Map<string, any>;
84
+ elementInstances: Map<string, WeaverseElement>;
29
85
  /**
30
86
  * list of element/items store to provide data, handle state update, state sharing, etc.
31
87
  * @type {Map<string, any>}
@@ -63,6 +119,7 @@ declare class Weaverse {
63
119
  */
64
120
  stitchesInstance: Stitches | any;
65
121
  studioBridge?: any;
122
+ static WeaverseItemStore: typeof WeaverseItemStore;
66
123
  /**
67
124
  * constructor
68
125
  * @param appUrl {string} Weaverse base URL that can provide by user/developer. for local development, use localhost:3000
@@ -75,9 +132,8 @@ declare class Weaverse {
75
132
  * @param name {string} unique name of the custom React Component
76
133
  * @param element {React.Component} custom React Component
77
134
  */
78
- registerElement(name: string, element: any): void;
135
+ registerElement(element: WeaverseElement): void;
79
136
  init(): void;
80
- listen(callback: any): void;
81
137
  loadStudio(): void;
82
138
  subscribe(fn: any): void;
83
139
  unsubscribe(fn: any): void;
@@ -91,41 +147,11 @@ declare class Weaverse {
91
147
  * fetch and update the project data, then trigger update to re-render the WeaverseRoot
92
148
  */
93
149
  updateProjectData(): void;
94
- triggerEditorUpdate(type?: string): void;
95
150
  initProjectItemData(): void;
96
- addItem(item: any): WeaverseItemStore;
97
- }
98
- /**
99
- * WeaverseItemStore is a store for Weaverse item, it can be used to subscribe/update the item data
100
- * @param itemData {ProjectDataItemType} Weaverse item data
101
- * @param weaverse {Weaverse} Weaverse instance
102
- * Usage:
103
- * ```jsx
104
- * useEffect(() => {
105
- * let handleUpdate = (update: any) => {
106
- * setData({...update})
107
- * }
108
- * itemInstance.subscribe(handleUpdate)
109
- * return () => {
110
- * itemInstance.unsubscribe(handleUpdate)
111
- * }
112
- * }, [])
113
- * ```
114
- */
115
- declare class WeaverseItemStore {
116
- data: any;
117
- listeners: Set<any>;
118
- Component: any;
119
- ref: any;
120
- constructor(itemData: any, weaverse: Weaverse);
121
- setData: (data: any) => void;
122
- subscribe: (fn: any) => void;
123
- unsubscribe: (fn: any) => void;
124
- triggerUpdate: () => void;
125
151
  }
126
152
 
127
153
  declare const isReactNative: boolean;
128
154
  declare const isBrowser: boolean;
129
155
  declare const isIframe: boolean;
130
156
 
131
- export { ProjectDataItemType, ProjectDataType, Weaverse, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
157
+ export { InspectorComponentType, ProjectDataItemType, ProjectDataType, Weaverse, WeaverseElement, WeaverseElementInspector, WeaverseElementMap, 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";
@@ -43,6 +37,36 @@ var isIframe = isBrowser && window.top !== window.self;
43
37
 
44
38
  // src/core.ts
45
39
  var stitches = __toESM(require("@stitches/core"));
40
+ var WeaverseItemStore = class {
41
+ constructor(itemData = {}, weaverse) {
42
+ this.data = {};
43
+ this.listeners = /* @__PURE__ */ new Set();
44
+ this.ref = {
45
+ current: null
46
+ };
47
+ this.setData = (data) => {
48
+ this.data = Object.assign(this.data, data);
49
+ this.triggerUpdate();
50
+ };
51
+ this.subscribe = (fn) => {
52
+ this.listeners.add(fn);
53
+ };
54
+ this.unsubscribe = (fn) => {
55
+ this.listeners.delete(fn);
56
+ };
57
+ this.triggerUpdate = () => {
58
+ this.listeners.forEach((fn) => {
59
+ return fn(this.data);
60
+ });
61
+ };
62
+ this.data = itemData;
63
+ let { type, id } = itemData;
64
+ if (type && id) {
65
+ this.Component = weaverse.elementInstances.get(type);
66
+ weaverse.itemInstances.set(id, this);
67
+ }
68
+ }
69
+ };
46
70
  var Weaverse = class {
47
71
  constructor({ appUrl, projectKey, projectData } = {}) {
48
72
  this.elementInstances = /* @__PURE__ */ new Map();
@@ -60,12 +84,17 @@ var Weaverse = class {
60
84
  projectData && (this.projectData = projectData);
61
85
  this.init();
62
86
  }
63
- registerElement(name, element) {
64
- 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
+ }
65
94
  }
66
95
  init() {
67
96
  this.stitchesInstance = stitches.createStitches({
68
- prefix: "weaverse",
97
+ prefix: "we",
69
98
  media: {
70
99
  bp1: "(min-width: 640px)",
71
100
  bp2: "(max-width: 768px)",
@@ -74,39 +103,28 @@ var Weaverse = class {
74
103
  });
75
104
  this.loadStudio();
76
105
  }
77
- listen(callback) {
78
- if (window.addEventListener) {
79
- window.addEventListener("message", callback, false);
80
- } else {
81
- window.attachEvent("onmessage", callback);
82
- }
83
- }
84
106
  loadStudio() {
85
107
  if (isIframe) {
86
- console.log("Weaverse SDK is initializing...", isIframe);
87
- let initStudio = () => {
88
- let StudioBridge = window.WeaverseStudioBridge;
89
- this.studioBridge = new StudioBridge(this);
90
- this.studioBridge.subscribeMessageEvent();
91
- this.triggerUpdate();
92
- console.log("studio bridge initialized", this.studioBridge);
93
- };
94
- window.addEventListener("load", () => {
95
- window.addEventListener("message", (e) => {
96
- var _a;
97
- if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.editor.ready") {
98
- console.log("studio message", e.data);
99
- this.isEditor = true;
100
- if (!window.WeaverseStudioBridge) {
101
- const studioBridgeScript = document.createElement("script");
102
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js?t=1`;
103
- studioBridgeScript.onload = initStudio;
104
- document.body.appendChild(studioBridgeScript);
105
- } else {
106
- initStudio();
107
- }
108
+ window.addEventListener("message", (e) => {
109
+ var _a;
110
+ if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
111
+ let initStudio = () => {
112
+ let StudioBridge = window.WeaverseStudioBridge;
113
+ this.studioBridge = new StudioBridge(this);
114
+ this.studioBridge.subscribeMessageEvent();
115
+ this.triggerUpdate();
116
+ };
117
+ this.isEditor = true;
118
+ if (!window.WeaverseStudioBridge) {
119
+ const studioBridgeScript = document.createElement("script");
120
+ studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
121
+ studioBridgeScript.type = "module";
122
+ studioBridgeScript.onload = initStudio;
123
+ document.body.appendChild(studioBridgeScript);
124
+ } else {
125
+ initStudio();
108
126
  }
109
- });
127
+ }
110
128
  });
111
129
  }
112
130
  }
@@ -118,10 +136,15 @@ var Weaverse = class {
118
136
  }
119
137
  triggerUpdate() {
120
138
  this.listeners.forEach((fn) => fn());
121
- this.triggerEditorUpdate();
139
+ if (this.isEditor && this.studioBridge) {
140
+ this.studioBridge.sendMessageToEditor("weaverse.editor.updateProject", {
141
+ projectData: this.projectData,
142
+ projectKey: this.projectKey,
143
+ appUrl: this.appUrl
144
+ });
145
+ }
122
146
  }
123
147
  fetchProjectData(fetch = globalThis.fetch) {
124
- console.log("fetching project data...");
125
148
  return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
126
149
  }
127
150
  updateProjectData() {
@@ -137,60 +160,18 @@ var Weaverse = class {
137
160
  });
138
161
  }
139
162
  }
140
- triggerEditorUpdate(type = "weaverse.workspace.init") {
141
- if (this.isEditor && this.studioBridge) {
142
- this.studioBridge.sendMessageToEditor(type, {
143
- projectData: this.projectData,
144
- projectKey: this.projectKey,
145
- appUrl: this.appUrl
146
- });
147
- }
148
- }
149
163
  initProjectItemData() {
150
164
  let data = this.projectData;
151
165
  if (data.items) {
152
166
  data.items.forEach((item) => {
153
- let itemStore = this.itemInstances.get(item.id) || new WeaverseItemStore(item, this);
154
- this.itemInstances.set(item.id, itemStore);
155
- });
156
- }
157
- }
158
- addItem(item) {
159
- let itemStore = new WeaverseItemStore(item, this);
160
- this.itemInstances.set(item.id, itemStore);
161
- return itemStore;
162
- }
163
- };
164
- var WeaverseItemStore = class {
165
- constructor(itemData = {}, weaverse) {
166
- this.data = {};
167
- this.listeners = /* @__PURE__ */ new Set();
168
- this.ref = {
169
- current: null
170
- };
171
- this.setData = (data) => {
172
- this.data = Object.assign(this.data, data);
173
- this.triggerUpdate();
174
- };
175
- this.subscribe = (fn) => {
176
- this.listeners.add(fn);
177
- };
178
- this.unsubscribe = (fn) => {
179
- this.listeners.delete(fn);
180
- };
181
- this.triggerUpdate = () => {
182
- this.listeners.forEach((fn) => {
183
- return fn(this.data);
167
+ if (!this.itemInstances.get(item.id)) {
168
+ new WeaverseItemStore(item, this);
169
+ }
184
170
  });
185
- };
186
- this.data = itemData;
187
- let { type, id } = itemData;
188
- if (type && id) {
189
- this.Component = weaverse.elementInstances.get(type);
190
171
  }
191
172
  }
192
173
  };
193
- module.exports = __toCommonJS(src_exports);
174
+ Weaverse.WeaverseItemStore = WeaverseItemStore;
194
175
  // Annotate the CommonJS export names for ESM import in node:
195
176
  0 && (module.exports = {
196
177
  Weaverse,
package/dist/index.mjs CHANGED
@@ -5,6 +5,36 @@ var isIframe = isBrowser && window.top !== window.self;
5
5
 
6
6
  // src/core.ts
7
7
  import * as stitches from "@stitches/core";
8
+ var WeaverseItemStore = class {
9
+ constructor(itemData = {}, weaverse) {
10
+ this.data = {};
11
+ this.listeners = /* @__PURE__ */ new Set();
12
+ this.ref = {
13
+ current: null
14
+ };
15
+ this.setData = (data) => {
16
+ this.data = Object.assign(this.data, data);
17
+ this.triggerUpdate();
18
+ };
19
+ this.subscribe = (fn) => {
20
+ this.listeners.add(fn);
21
+ };
22
+ this.unsubscribe = (fn) => {
23
+ this.listeners.delete(fn);
24
+ };
25
+ this.triggerUpdate = () => {
26
+ this.listeners.forEach((fn) => {
27
+ return fn(this.data);
28
+ });
29
+ };
30
+ this.data = itemData;
31
+ let { type, id } = itemData;
32
+ if (type && id) {
33
+ this.Component = weaverse.elementInstances.get(type);
34
+ weaverse.itemInstances.set(id, this);
35
+ }
36
+ }
37
+ };
8
38
  var Weaverse = class {
9
39
  constructor({ appUrl, projectKey, projectData } = {}) {
10
40
  this.elementInstances = /* @__PURE__ */ new Map();
@@ -22,12 +52,17 @@ var Weaverse = class {
22
52
  projectData && (this.projectData = projectData);
23
53
  this.init();
24
54
  }
25
- registerElement(name, element) {
26
- 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
+ }
27
62
  }
28
63
  init() {
29
64
  this.stitchesInstance = stitches.createStitches({
30
- prefix: "weaverse",
65
+ prefix: "we",
31
66
  media: {
32
67
  bp1: "(min-width: 640px)",
33
68
  bp2: "(max-width: 768px)",
@@ -36,39 +71,28 @@ var Weaverse = class {
36
71
  });
37
72
  this.loadStudio();
38
73
  }
39
- listen(callback) {
40
- if (window.addEventListener) {
41
- window.addEventListener("message", callback, false);
42
- } else {
43
- window.attachEvent("onmessage", callback);
44
- }
45
- }
46
74
  loadStudio() {
47
75
  if (isIframe) {
48
- console.log("Weaverse SDK is initializing...", isIframe);
49
- let initStudio = () => {
50
- let StudioBridge = window.WeaverseStudioBridge;
51
- this.studioBridge = new StudioBridge(this);
52
- this.studioBridge.subscribeMessageEvent();
53
- this.triggerUpdate();
54
- console.log("studio bridge initialized", this.studioBridge);
55
- };
56
- window.addEventListener("load", () => {
57
- window.addEventListener("message", (e) => {
58
- var _a;
59
- if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.editor.ready") {
60
- console.log("studio message", e.data);
61
- this.isEditor = true;
62
- if (!window.WeaverseStudioBridge) {
63
- const studioBridgeScript = document.createElement("script");
64
- studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js?t=1`;
65
- studioBridgeScript.onload = initStudio;
66
- document.body.appendChild(studioBridgeScript);
67
- } else {
68
- initStudio();
69
- }
76
+ window.addEventListener("message", (e) => {
77
+ var _a;
78
+ if (((_a = e.data) == null ? void 0 : _a.type) === "weaverse.preview.initializeEditor") {
79
+ let initStudio = () => {
80
+ let StudioBridge = window.WeaverseStudioBridge;
81
+ this.studioBridge = new StudioBridge(this);
82
+ this.studioBridge.subscribeMessageEvent();
83
+ this.triggerUpdate();
84
+ };
85
+ this.isEditor = true;
86
+ if (!window.WeaverseStudioBridge) {
87
+ const studioBridgeScript = document.createElement("script");
88
+ studioBridgeScript.src = `${this.appUrl}/assets/studio/studio-bridge.js`;
89
+ studioBridgeScript.type = "module";
90
+ studioBridgeScript.onload = initStudio;
91
+ document.body.appendChild(studioBridgeScript);
92
+ } else {
93
+ initStudio();
70
94
  }
71
- });
95
+ }
72
96
  });
73
97
  }
74
98
  }
@@ -80,10 +104,15 @@ var Weaverse = class {
80
104
  }
81
105
  triggerUpdate() {
82
106
  this.listeners.forEach((fn) => fn());
83
- this.triggerEditorUpdate();
107
+ if (this.isEditor && this.studioBridge) {
108
+ this.studioBridge.sendMessageToEditor("weaverse.editor.updateProject", {
109
+ projectData: this.projectData,
110
+ projectKey: this.projectKey,
111
+ appUrl: this.appUrl
112
+ });
113
+ }
84
114
  }
85
115
  fetchProjectData(fetch = globalThis.fetch) {
86
- console.log("fetching project data...");
87
116
  return fetch(this.appUrl + `/api/public/${this.projectKey}`).then((r) => r.json()).catch(console.error);
88
117
  }
89
118
  updateProjectData() {
@@ -99,59 +128,18 @@ var Weaverse = class {
99
128
  });
100
129
  }
101
130
  }
102
- triggerEditorUpdate(type = "weaverse.workspace.init") {
103
- if (this.isEditor && this.studioBridge) {
104
- this.studioBridge.sendMessageToEditor(type, {
105
- projectData: this.projectData,
106
- projectKey: this.projectKey,
107
- appUrl: this.appUrl
108
- });
109
- }
110
- }
111
131
  initProjectItemData() {
112
132
  let data = this.projectData;
113
133
  if (data.items) {
114
134
  data.items.forEach((item) => {
115
- let itemStore = this.itemInstances.get(item.id) || new WeaverseItemStore(item, this);
116
- this.itemInstances.set(item.id, itemStore);
117
- });
118
- }
119
- }
120
- addItem(item) {
121
- let itemStore = new WeaverseItemStore(item, this);
122
- this.itemInstances.set(item.id, itemStore);
123
- return itemStore;
124
- }
125
- };
126
- var WeaverseItemStore = class {
127
- constructor(itemData = {}, weaverse) {
128
- this.data = {};
129
- this.listeners = /* @__PURE__ */ new Set();
130
- this.ref = {
131
- current: null
132
- };
133
- this.setData = (data) => {
134
- this.data = Object.assign(this.data, data);
135
- this.triggerUpdate();
136
- };
137
- this.subscribe = (fn) => {
138
- this.listeners.add(fn);
139
- };
140
- this.unsubscribe = (fn) => {
141
- this.listeners.delete(fn);
142
- };
143
- this.triggerUpdate = () => {
144
- this.listeners.forEach((fn) => {
145
- return fn(this.data);
135
+ if (!this.itemInstances.get(item.id)) {
136
+ new WeaverseItemStore(item, this);
137
+ }
146
138
  });
147
- };
148
- this.data = itemData;
149
- let { type, id } = itemData;
150
- if (type && id) {
151
- this.Component = weaverse.elementInstances.get(type);
152
139
  }
153
140
  }
154
141
  };
142
+ Weaverse.WeaverseItemStore = WeaverseItemStore;
155
143
  export {
156
144
  Weaverse,
157
145
  WeaverseItemStore,
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.3.2",
2
+ "version": "0.3.5",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -16,12 +16,12 @@
16
16
  "scripts": {
17
17
  "start": "npm run dev",
18
18
  "dev": "tsup src/index.ts --format esm,cjs --dts --outDir dist --watch",
19
- "build": "tsup src/index.ts --format esm,cjs --dts --outDir dist"
19
+ "build": "tsup src/index.ts --format esm,cjs --dts --outDir dist",
20
+ "prepublish": "npm run build"
20
21
  },
21
22
  "name": "@weaverse/core",
22
23
  "author": "Paul",
23
24
  "dependencies": {
24
- "@stitches/core": "^1.2.7",
25
- "uuid": "^8.3.2"
25
+ "@stitches/core": "^1.2.7"
26
26
  }
27
27
  }