@weaverse/react 0.4.3 → 0.5.1

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
@@ -4,8 +4,7 @@ export * from '@weaverse/core';
4
4
  declare const createRootContext: (configs: WeaverseType) => Weaverse;
5
5
  declare type WeaverseRootPropsType = {
6
6
  context: Weaverse;
7
- defaultData: any;
8
7
  };
9
- declare const WeaverseRoot: ({ context, defaultData, }: WeaverseRootPropsType) => JSX.Element;
8
+ declare const WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
10
9
 
11
10
  export { WeaverseRoot, WeaverseRootPropsType, createRootContext };
package/dist/index.js CHANGED
@@ -177,25 +177,62 @@ var schema2 = {
177
177
  };
178
178
  var button_default = Button;
179
179
 
180
- // src/elements/grid.tsx
180
+ // src/elements/flex.tsx
181
181
  var import_react2 = __toESM(require("react"));
182
- var Grid = (0, import_react2.forwardRef)((props, ref) => {
182
+ var Flex = (0, import_react2.forwardRef)((props, ref) => {
183
183
  return /* @__PURE__ */ import_react2.default.createElement("div", __spreadValues({
184
184
  ref
185
185
  }, props));
186
186
  });
187
187
  var schema3 = {
188
+ title: "Flex",
189
+ type: "flex",
190
+ data: {
191
+ css: {
192
+ "@desktop": {
193
+ display: "flex",
194
+ backgroundColor: "rgba(248,203,203,0.38)",
195
+ gridArea: "1 / 1 / 3 / 3"
196
+ }
197
+ }
198
+ },
199
+ settings: [
200
+ {
201
+ tab: "Layout",
202
+ label: "Flex",
203
+ inspectors: [
204
+ {
205
+ type: "flex"
206
+ }
207
+ ]
208
+ }
209
+ ]
210
+ };
211
+ var flex_default = Flex;
212
+
213
+ // src/elements/grid.tsx
214
+ var import_react3 = __toESM(require("react"));
215
+ var Grid = (0, import_react3.forwardRef)((props, ref) => {
216
+ return /* @__PURE__ */ import_react3.default.createElement("div", __spreadValues({
217
+ ref
218
+ }, props));
219
+ });
220
+ var schema4 = {
188
221
  title: "Grid",
189
222
  type: "grid",
190
223
  data: {
191
224
  css: {
192
225
  "@desktop": {
193
226
  display: "grid",
194
- gridTemplateRows: "repeat(auto-fill, 48px)",
195
- gridTemplateColumns: "repeat(24, 1fr)",
196
- gridGap: "8px",
227
+ gridTemplateRows: "repeat(auto-fill, $rowSize)",
228
+ gridTemplateColumns: "repeat($columns, 1fr)",
229
+ gridGap: "$gap",
197
230
  minHeight: "480px",
198
231
  backgroundColor: "#c7c7c7"
232
+ },
233
+ "@mobile": {
234
+ gridTemplateRows: "100%",
235
+ gridTemplateColumns: "100%"
199
236
  }
200
237
  }
201
238
  },
@@ -214,10 +251,10 @@ var schema3 = {
214
251
  var grid_default = Grid;
215
252
 
216
253
  // src/elements/text.tsx
217
- var React4 = __toESM(require("react"));
218
- var Text = React4.forwardRef((props, ref) => {
254
+ var React5 = __toESM(require("react"));
255
+ var Text = React5.forwardRef((props, ref) => {
219
256
  let _a = props, { children, value } = _a, rest = __objRest(_a, ["children", "value"]);
220
- return /* @__PURE__ */ React4.createElement("span", __spreadProps(__spreadValues({
257
+ return /* @__PURE__ */ React5.createElement("span", __spreadProps(__spreadValues({
221
258
  ref
222
259
  }, rest), {
223
260
  contentEditable: true,
@@ -228,7 +265,7 @@ Text.defaultProps = {
228
265
  value: "sample text",
229
266
  tag: "span"
230
267
  };
231
- var schema4 = {
268
+ var schema5 = {
232
269
  type: "text",
233
270
  title: "Text Settings",
234
271
  settings: [
@@ -264,10 +301,14 @@ var elements = {
264
301
  },
265
302
  Text: {
266
303
  Component: text_default,
267
- schema: schema4
304
+ schema: schema5
268
305
  },
269
306
  Grid: {
270
307
  Component: grid_default,
308
+ schema: schema4
309
+ },
310
+ Flex: {
311
+ Component: flex_default,
271
312
  schema: schema3
272
313
  }
273
314
  };
@@ -284,7 +325,7 @@ var shortCssObject = (css) => {
284
325
 
285
326
  // src/renderer.tsx
286
327
  var import_core = require("@weaverse/core");
287
- var React5 = __toESM(require("react"));
328
+ var React6 = __toESM(require("react"));
288
329
  var createRootContext = (configs) => {
289
330
  const rootContext = new import_core.Weaverse(configs);
290
331
  Object.keys(elements_default).forEach((key) => {
@@ -292,39 +333,34 @@ var createRootContext = (configs) => {
292
333
  });
293
334
  return rootContext;
294
335
  };
295
- var WeaverseRoot = ({
296
- context,
297
- defaultData
298
- }) => {
299
- var _a, _b, _c;
300
- let [, setData] = React5.useState(context.projectData);
301
- React5.useEffect(() => {
336
+ var WeaverseRoot = ({ context }) => {
337
+ var _a;
338
+ let [, setData] = React6.useState(context.projectData);
339
+ React6.useEffect(() => {
302
340
  let handleUpdate = () => {
303
- setData(__spreadValues({}, context.projectData));
341
+ setData({});
304
342
  };
305
343
  context.subscribe(handleUpdate);
306
- context.updateProjectData();
344
+ if (context.projectData) {
345
+ setTimeout(handleUpdate, 110);
346
+ }
307
347
  return () => {
308
348
  context.unsubscribe(handleUpdate);
309
349
  };
310
350
  }, []);
311
- if (!((_b = (_a = context.projectData) == null ? void 0 : _a.items) == null ? void 0 : _b.length) && defaultData) {
312
- Object.assign(context.projectData, defaultData);
313
- context.initProjectItemData();
314
- }
315
- let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
316
- return /* @__PURE__ */ React5.createElement("div", __spreadValues({
317
- className: `weaverse-root`,
318
- id: "weaverse-root"
319
- }, handleProps), /* @__PURE__ */ React5.createElement(RenderItem, {
351
+ let handleProps = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.handleProps) || {};
352
+ let themeClass = context.stitchesInstance.theme.className;
353
+ return /* @__PURE__ */ React6.createElement("div", __spreadValues({
354
+ className: `weaverse-content-root ${themeClass}`
355
+ }, handleProps), /* @__PURE__ */ React6.createElement(RenderItem, {
320
356
  itemId: context.projectData.rootId || 0,
321
357
  context
322
358
  }));
323
359
  };
324
360
  var Item = ({ itemInstance, elementInstances, context }) => {
325
- let [data, setData] = React5.useState(itemInstance.data);
361
+ let [data, setData] = React6.useState(itemInstance.data);
326
362
  let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
327
- React5.useEffect(() => {
363
+ React6.useEffect(() => {
328
364
  let handleUpdate = (update) => {
329
365
  setData(__spreadValues({}, update));
330
366
  };
@@ -350,12 +386,13 @@ var Item = ({ itemInstance, elementInstances, context }) => {
350
386
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
351
387
  rest.ref = itemInstance.ref;
352
388
  }
353
- return /* @__PURE__ */ React5.createElement(Component, __spreadProps(__spreadValues({
389
+ return /* @__PURE__ */ React6.createElement(Component, __spreadProps(__spreadValues({
354
390
  key: id,
391
+ "data-wv-type": type,
355
392
  "data-wv-id": id
356
393
  }, rest), {
357
394
  className: realClassName
358
- }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React5.createElement(RenderItem, {
395
+ }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React6.createElement(RenderItem, {
359
396
  key: childId,
360
397
  itemId: childId,
361
398
  context
@@ -370,13 +407,14 @@ var RenderItem = ({
370
407
  let { itemInstances, elementInstances } = context;
371
408
  let itemInstance = itemInstances.get(itemId);
372
409
  if (itemInstance) {
373
- return /* @__PURE__ */ React5.createElement(Item, {
410
+ return /* @__PURE__ */ React6.createElement(Item, {
374
411
  itemInstance,
375
412
  elementInstances,
376
413
  context
377
414
  });
378
415
  }
379
- return /* @__PURE__ */ React5.createElement(React5.Fragment, null);
416
+ console.warn(`Item instance ${itemId} not found`);
417
+ return /* @__PURE__ */ React6.createElement(React6.Fragment, null);
380
418
  };
381
419
 
382
420
  // src/index.ts
package/dist/index.mjs CHANGED
@@ -150,25 +150,62 @@ var schema2 = {
150
150
  };
151
151
  var button_default = Button;
152
152
 
153
- // src/elements/grid.tsx
153
+ // src/elements/flex.tsx
154
154
  import React3, { forwardRef as forwardRef2 } from "react";
155
- var Grid = forwardRef2((props, ref) => {
155
+ var Flex = forwardRef2((props, ref) => {
156
156
  return /* @__PURE__ */ React3.createElement("div", __spreadValues({
157
157
  ref
158
158
  }, props));
159
159
  });
160
160
  var schema3 = {
161
+ title: "Flex",
162
+ type: "flex",
163
+ data: {
164
+ css: {
165
+ "@desktop": {
166
+ display: "flex",
167
+ backgroundColor: "rgba(248,203,203,0.38)",
168
+ gridArea: "1 / 1 / 3 / 3"
169
+ }
170
+ }
171
+ },
172
+ settings: [
173
+ {
174
+ tab: "Layout",
175
+ label: "Flex",
176
+ inspectors: [
177
+ {
178
+ type: "flex"
179
+ }
180
+ ]
181
+ }
182
+ ]
183
+ };
184
+ var flex_default = Flex;
185
+
186
+ // src/elements/grid.tsx
187
+ import React4, { forwardRef as forwardRef3 } from "react";
188
+ var Grid = forwardRef3((props, ref) => {
189
+ return /* @__PURE__ */ React4.createElement("div", __spreadValues({
190
+ ref
191
+ }, props));
192
+ });
193
+ var schema4 = {
161
194
  title: "Grid",
162
195
  type: "grid",
163
196
  data: {
164
197
  css: {
165
198
  "@desktop": {
166
199
  display: "grid",
167
- gridTemplateRows: "repeat(auto-fill, 48px)",
168
- gridTemplateColumns: "repeat(24, 1fr)",
169
- gridGap: "8px",
200
+ gridTemplateRows: "repeat(auto-fill, $rowSize)",
201
+ gridTemplateColumns: "repeat($columns, 1fr)",
202
+ gridGap: "$gap",
170
203
  minHeight: "480px",
171
204
  backgroundColor: "#c7c7c7"
205
+ },
206
+ "@mobile": {
207
+ gridTemplateRows: "100%",
208
+ gridTemplateColumns: "100%"
172
209
  }
173
210
  }
174
211
  },
@@ -187,10 +224,10 @@ var schema3 = {
187
224
  var grid_default = Grid;
188
225
 
189
226
  // src/elements/text.tsx
190
- import * as React4 from "react";
191
- var Text = React4.forwardRef((props, ref) => {
227
+ import * as React5 from "react";
228
+ var Text = React5.forwardRef((props, ref) => {
192
229
  let _a = props, { children, value } = _a, rest = __objRest(_a, ["children", "value"]);
193
- return /* @__PURE__ */ React4.createElement("span", __spreadProps(__spreadValues({
230
+ return /* @__PURE__ */ React5.createElement("span", __spreadProps(__spreadValues({
194
231
  ref
195
232
  }, rest), {
196
233
  contentEditable: true,
@@ -201,7 +238,7 @@ Text.defaultProps = {
201
238
  value: "sample text",
202
239
  tag: "span"
203
240
  };
204
- var schema4 = {
241
+ var schema5 = {
205
242
  type: "text",
206
243
  title: "Text Settings",
207
244
  settings: [
@@ -237,10 +274,14 @@ var elements = {
237
274
  },
238
275
  Text: {
239
276
  Component: text_default,
240
- schema: schema4
277
+ schema: schema5
241
278
  },
242
279
  Grid: {
243
280
  Component: grid_default,
281
+ schema: schema4
282
+ },
283
+ Flex: {
284
+ Component: flex_default,
244
285
  schema: schema3
245
286
  }
246
287
  };
@@ -260,7 +301,7 @@ import {
260
301
  isBrowser,
261
302
  Weaverse
262
303
  } from "@weaverse/core";
263
- import * as React5 from "react";
304
+ import * as React6 from "react";
264
305
  var createRootContext = (configs) => {
265
306
  const rootContext = new Weaverse(configs);
266
307
  Object.keys(elements_default).forEach((key) => {
@@ -268,39 +309,34 @@ var createRootContext = (configs) => {
268
309
  });
269
310
  return rootContext;
270
311
  };
271
- var WeaverseRoot = ({
272
- context,
273
- defaultData
274
- }) => {
275
- var _a, _b, _c;
276
- let [, setData] = React5.useState(context.projectData);
277
- React5.useEffect(() => {
312
+ var WeaverseRoot = ({ context }) => {
313
+ var _a;
314
+ let [, setData] = React6.useState(context.projectData);
315
+ React6.useEffect(() => {
278
316
  let handleUpdate = () => {
279
- setData(__spreadValues({}, context.projectData));
317
+ setData({});
280
318
  };
281
319
  context.subscribe(handleUpdate);
282
- context.updateProjectData();
320
+ if (context.projectData) {
321
+ setTimeout(handleUpdate, 110);
322
+ }
283
323
  return () => {
284
324
  context.unsubscribe(handleUpdate);
285
325
  };
286
326
  }, []);
287
- if (!((_b = (_a = context.projectData) == null ? void 0 : _a.items) == null ? void 0 : _b.length) && defaultData) {
288
- Object.assign(context.projectData, defaultData);
289
- context.initProjectItemData();
290
- }
291
- let handleProps = ((_c = context == null ? void 0 : context.studioBridge) == null ? void 0 : _c.handleProps) || {};
292
- return /* @__PURE__ */ React5.createElement("div", __spreadValues({
293
- className: `weaverse-root`,
294
- id: "weaverse-root"
295
- }, handleProps), /* @__PURE__ */ React5.createElement(RenderItem, {
327
+ let handleProps = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.handleProps) || {};
328
+ let themeClass = context.stitchesInstance.theme.className;
329
+ return /* @__PURE__ */ React6.createElement("div", __spreadValues({
330
+ className: `weaverse-content-root ${themeClass}`
331
+ }, handleProps), /* @__PURE__ */ React6.createElement(RenderItem, {
296
332
  itemId: context.projectData.rootId || 0,
297
333
  context
298
334
  }));
299
335
  };
300
336
  var Item = ({ itemInstance, elementInstances, context }) => {
301
- let [data, setData] = React5.useState(itemInstance.data);
337
+ let [data, setData] = React6.useState(itemInstance.data);
302
338
  let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
303
- React5.useEffect(() => {
339
+ React6.useEffect(() => {
304
340
  let handleUpdate = (update) => {
305
341
  setData(__spreadValues({}, update));
306
342
  };
@@ -326,12 +362,13 @@ var Item = ({ itemInstance, elementInstances, context }) => {
326
362
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
327
363
  rest.ref = itemInstance.ref;
328
364
  }
329
- return /* @__PURE__ */ React5.createElement(Component, __spreadProps(__spreadValues({
365
+ return /* @__PURE__ */ React6.createElement(Component, __spreadProps(__spreadValues({
330
366
  key: id,
367
+ "data-wv-type": type,
331
368
  "data-wv-id": id
332
369
  }, rest), {
333
370
  className: realClassName
334
- }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React5.createElement(RenderItem, {
371
+ }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React6.createElement(RenderItem, {
335
372
  key: childId,
336
373
  itemId: childId,
337
374
  context
@@ -346,13 +383,14 @@ var RenderItem = ({
346
383
  let { itemInstances, elementInstances } = context;
347
384
  let itemInstance = itemInstances.get(itemId);
348
385
  if (itemInstance) {
349
- return /* @__PURE__ */ React5.createElement(Item, {
386
+ return /* @__PURE__ */ React6.createElement(Item, {
350
387
  itemInstance,
351
388
  elementInstances,
352
389
  context
353
390
  });
354
391
  }
355
- return /* @__PURE__ */ React5.createElement(React5.Fragment, null);
392
+ console.warn(`Item instance ${itemId} not found`);
393
+ return /* @__PURE__ */ React6.createElement(React6.Fragment, null);
356
394
  };
357
395
 
358
396
  // src/index.ts
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.4.3",
2
+ "version": "0.5.1",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -31,6 +31,6 @@
31
31
  "name": "@weaverse/react",
32
32
  "author": "Weaverse Team",
33
33
  "dependencies": {
34
- "@weaverse/core": "^0.4.2"
34
+ "@weaverse/core": "0.5.0"
35
35
  }
36
36
  }