@weaverse/core 0.6.5 → 0.6.9

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,6 +1,23 @@
1
+ import { CSSProperties } from '@stitches/core';
1
2
  import Stitches from '@stitches/core/types/stitches';
2
3
  import { RefObject } from 'react';
3
4
 
5
+ interface ProjectDataType {
6
+ items: WeaverseElementData[];
7
+ rootId: string | number;
8
+ script: {
9
+ css: string;
10
+ js: string;
11
+ };
12
+ }
13
+ declare type WeaverseType = {
14
+ mediaBreakPoints?: any;
15
+ appUrl?: string;
16
+ projectKey?: string;
17
+ projectData?: ProjectDataType;
18
+ isDesignMode?: boolean;
19
+ ssrMode?: boolean;
20
+ };
4
21
  declare type TODO = any;
5
22
  declare type WeaverseElementMap = {
6
23
  [key: string]: WeaverseElement;
@@ -20,9 +37,24 @@ declare type WeaverseElementSchema = {
20
37
  settings?: WeaverseElementInput[];
21
38
  styles?: WeaverseElementInput[];
22
39
  toolbar?: TODO;
23
- data?: TODO;
40
+ data?: WeaverseElementData;
24
41
  catalog?: WeaverseElementCatalog;
25
42
  };
43
+ declare type WeaverseElementData = {
44
+ id?: string | number;
45
+ type?: string | undefined;
46
+ childIds?: (string | number)[] | undefined;
47
+ css?: WeaverseElementCSS;
48
+ [key: string]: any;
49
+ };
50
+ declare type WeaverseElementCSS = {
51
+ '@desktop'?: CSSProperties | {
52
+ [key: string]: CSSProperties;
53
+ };
54
+ '@mobile'?: CSSProperties | {
55
+ [key: string]: CSSProperties;
56
+ };
57
+ };
26
58
  declare type WeaverseElementInput = {
27
59
  label?: string;
28
60
  type: 'select' | 'checkbox' | 'radio' | 'range' | 'button' | 'image' | 'file' | 'hidden' | 'alignment' | 'color' | 'dimensions' | 'flex' | 'grid' | 'input' | 'switch' | 'spacing' | 'textarea' | 'visibility' | 'border' | 'background' | 'typography' | 'shadow' | 'position' | 'overflow' | 'display' | 'other';
@@ -36,37 +68,15 @@ declare type WeaverseElementInput = {
36
68
  declare global {
37
69
  interface Window {
38
70
  WeaverseStudioBridge: TODO;
71
+ weaverseShopifyProducts: TODO;
39
72
  }
40
73
  }
41
74
 
42
- interface ProjectDataItemType {
43
- type: string;
44
- name?: string;
45
- id: string | number;
46
- description?: string;
47
- childIds?: Array<string | number>;
48
- css?: {
49
- [key: string]: string;
50
- };
51
- }
52
- interface ProjectDataType {
53
- items: ProjectDataItemType[];
54
- rootId: string | number;
55
- }
56
- declare type WeaverseType = {
57
- mediaBreakPoints?: any;
58
- appUrl?: string;
59
- projectKey?: string;
60
- projectData?: ProjectDataType;
61
- isDesignMode?: boolean;
62
- ssrMode?: boolean;
63
- };
64
75
  /**
65
76
  * WeaverseItemStore is a store for Weaverse item, it can be used to subscribe/update the item data
66
- * @param itemData {ProjectDataItemType} Weaverse item data
77
+ * @param itemData {WeaverseElementData} Weaverse item data
67
78
  * @param weaverse {Weaverse} Weaverse instance
68
- * Usage:
69
- * ```jsx
79
+ * @example
70
80
  * useEffect(() => {
71
81
  * let handleUpdate = (update: any) => {
72
82
  * setData({...update})
@@ -75,33 +85,36 @@ declare type WeaverseType = {
75
85
  * return () => {
76
86
  * itemInstance.unsubscribe(handleUpdate)
77
87
  * }
78
- * }, [])
79
- * ```
88
+ * }, [])
80
89
  */
81
90
  declare class WeaverseItemStore {
82
91
  listeners: Set<any>;
83
92
  ref: RefObject<HTMLElement>;
84
93
  weaverse: Weaverse;
85
94
  stitchesClass: string;
86
- constructor(itemData: any, weaverse: Weaverse);
87
- _data: any;
88
- get Element(): WeaverseElement;
89
- set data(data: any);
90
- get data(): any;
91
- setData: (data: any) => any;
95
+ constructor(itemData: WeaverseElementData, weaverse: Weaverse);
96
+ _data: WeaverseElementData;
97
+ get _id(): string | number | undefined;
98
+ get _element(): HTMLElement | null;
99
+ get Element(): WeaverseElement | undefined;
100
+ set data(data: WeaverseElementData);
101
+ get data(): WeaverseElementData;
102
+ setData: (data: WeaverseElementData) => WeaverseElementData;
92
103
  subscribe: (fn: any) => void;
93
104
  unsubscribe: (fn: any) => void;
94
105
  triggerUpdate: () => void;
95
106
  }
96
107
  declare class Weaverse {
108
+ /**
109
+ * The `weaverse-content-root` element of Weaverse SDK
110
+ */
111
+ contentRootElement: HTMLElement | undefined;
97
112
  /**
98
113
  * For storing, registering element React component from Weaverse or created by user/developer
99
- * @type {Map<string, React.Component>}
100
114
  */
101
115
  elementInstances: Map<string, WeaverseElement>;
102
116
  /**
103
117
  * list of element/items store to provide data, handle state update, state sharing, etc.
104
- * @type {Map<string, any>}
105
118
  */
106
119
  itemInstances: Map<string | number, WeaverseItemStore>;
107
120
  /**
@@ -188,4 +201,4 @@ declare const isReactNative: boolean;
188
201
  declare const isBrowser: boolean;
189
202
  declare const isIframe: boolean;
190
203
 
191
- export { ProjectDataItemType, ProjectDataType, TODO, Weaverse, WeaverseElement, WeaverseElementCatalog, WeaverseElementInput, WeaverseElementMap, WeaverseElementSchema, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
204
+ export { ProjectDataType, TODO, Weaverse, WeaverseElement, WeaverseElementCSS, WeaverseElementCatalog, WeaverseElementData, WeaverseElementInput, WeaverseElementMap, WeaverseElementSchema, WeaverseItemStore, WeaverseType, isBrowser, isIframe, isReactNative };
package/dist/index.js CHANGED
@@ -47,7 +47,7 @@ module.exports = __toCommonJS(src_exports);
47
47
  // src/core.ts
48
48
  var stitches = __toESM(require("@stitches/core"));
49
49
  var WeaverseItemStore = class {
50
- constructor(itemData = {}, weaverse) {
50
+ constructor(itemData, weaverse) {
51
51
  this.listeners = /* @__PURE__ */ new Set();
52
52
  this.ref = {
53
53
  current: null
@@ -77,6 +77,12 @@ var WeaverseItemStore = class {
77
77
  this.data = __spreadValues({}, itemData);
78
78
  }
79
79
  }
80
+ get _id() {
81
+ return this._data.id;
82
+ }
83
+ get _element() {
84
+ return this.ref.current;
85
+ }
80
86
  get Element() {
81
87
  return this.weaverse.elementInstances.get(this._data.type);
82
88
  }
@@ -96,7 +102,11 @@ var _Weaverse = class {
96
102
  this.projectKey = "";
97
103
  this.projectData = {
98
104
  items: [],
99
- rootId: 0
105
+ rootId: 0,
106
+ script: {
107
+ css: "",
108
+ js: ""
109
+ }
100
110
  };
101
111
  this.listeners = /* @__PURE__ */ new Set();
102
112
  this.isDesignMode = false;
@@ -108,19 +118,7 @@ var _Weaverse = class {
108
118
  this.initStitches = () => {
109
119
  this.stitchesInstance = stitches.createStitches({
110
120
  prefix: "weaverse",
111
- media: this.mediaBreakPoints,
112
- theme: {
113
- sizes: {
114
- "width": "100%",
115
- "max-width": "100%",
116
- "column-count": "16",
117
- "row-count": "12",
118
- "row-size": "48px"
119
- },
120
- space: {
121
- gap: "8px"
122
- }
123
- }
121
+ media: this.mediaBreakPoints
124
122
  });
125
123
  };
126
124
  this.appUrl = appUrl || this.appUrl;
package/dist/index.mjs CHANGED
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  // src/core.ts
19
19
  import * as stitches from "@stitches/core";
20
20
  var WeaverseItemStore = class {
21
- constructor(itemData = {}, weaverse) {
21
+ constructor(itemData, weaverse) {
22
22
  this.listeners = /* @__PURE__ */ new Set();
23
23
  this.ref = {
24
24
  current: null
@@ -48,6 +48,12 @@ var WeaverseItemStore = class {
48
48
  this.data = __spreadValues({}, itemData);
49
49
  }
50
50
  }
51
+ get _id() {
52
+ return this._data.id;
53
+ }
54
+ get _element() {
55
+ return this.ref.current;
56
+ }
51
57
  get Element() {
52
58
  return this.weaverse.elementInstances.get(this._data.type);
53
59
  }
@@ -67,7 +73,11 @@ var _Weaverse = class {
67
73
  this.projectKey = "";
68
74
  this.projectData = {
69
75
  items: [],
70
- rootId: 0
76
+ rootId: 0,
77
+ script: {
78
+ css: "",
79
+ js: ""
80
+ }
71
81
  };
72
82
  this.listeners = /* @__PURE__ */ new Set();
73
83
  this.isDesignMode = false;
@@ -79,19 +89,7 @@ var _Weaverse = class {
79
89
  this.initStitches = () => {
80
90
  this.stitchesInstance = stitches.createStitches({
81
91
  prefix: "weaverse",
82
- media: this.mediaBreakPoints,
83
- theme: {
84
- sizes: {
85
- "width": "100%",
86
- "max-width": "100%",
87
- "column-count": "16",
88
- "row-count": "12",
89
- "row-size": "48px"
90
- },
91
- space: {
92
- gap: "8px"
93
- }
94
- }
92
+ media: this.mediaBreakPoints
95
93
  });
96
94
  };
97
95
  this.appUrl = appUrl || this.appUrl;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.5",
2
+ "version": "0.6.9",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",