@weaverse/react 0.6.4 → 0.6.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,10 +1,18 @@
1
1
  import { WeaverseType, Weaverse } from '@weaverse/core';
2
2
  export * from '@weaverse/core';
3
+ import React$1 from 'react';
3
4
 
4
5
  declare const createRootContext: (configs: WeaverseType) => Weaverse;
6
+ declare let WeaverseContext: React$1.Context<Weaverse>;
7
+ declare let WeaverseContextProvider: React$1.Provider<Weaverse>;
8
+ declare let WeaverseContextConsumer: React$1.Consumer<Weaverse>;
5
9
  declare type WeaverseRootPropsType = {
6
10
  context: Weaverse;
7
11
  };
8
12
  declare const WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
9
13
 
10
- export { WeaverseRoot, WeaverseRootPropsType, createRootContext };
14
+ interface WeaverseElementProps {
15
+ children?: React.ReactNode;
16
+ }
17
+
18
+ export { WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
package/dist/index.js CHANGED
@@ -52,6 +52,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
52
52
  // src/index.ts
53
53
  var src_exports = {};
54
54
  __export(src_exports, {
55
+ WeaverseContext: () => WeaverseContext,
56
+ WeaverseContextConsumer: () => WeaverseContextConsumer,
57
+ WeaverseContextProvider: () => WeaverseContextProvider,
55
58
  WeaverseRoot: () => WeaverseRoot,
56
59
  createRootContext: () => createRootContext
57
60
  });
@@ -207,7 +210,7 @@ Text.defaultProps = {
207
210
  };
208
211
  var schema5 = {
209
212
  type: "text",
210
- title: "Text Settings",
213
+ title: "Text",
211
214
  settings: [],
212
215
  data: {
213
216
  css: {
@@ -294,7 +297,7 @@ var shortCssObject = (css) => {
294
297
 
295
298
  // src/renderer.tsx
296
299
  var import_core = require("@weaverse/core");
297
- var React7 = __toESM(require("react"));
300
+ var import_react5 = __toESM(require("react"));
298
301
  var createRootContext = (configs) => {
299
302
  const rootContext = new import_core.Weaverse(configs);
300
303
  Object.keys(elements_default).forEach((key) => {
@@ -302,10 +305,13 @@ var createRootContext = (configs) => {
302
305
  });
303
306
  return rootContext;
304
307
  };
308
+ var WeaverseContext = (0, import_react5.createContext)({});
309
+ var WeaverseContextProvider = WeaverseContext.Provider;
310
+ var WeaverseContextConsumer = WeaverseContext.Consumer;
305
311
  var WeaverseRoot = ({ context }) => {
306
312
  var _a;
307
- let [, setData] = React7.useState(context.projectData);
308
- React7.useEffect(() => {
313
+ let [, setData] = (0, import_react5.useState)(context.projectData);
314
+ (0, import_react5.useEffect)(() => {
309
315
  let handleUpdate = () => {
310
316
  setData({});
311
317
  };
@@ -319,17 +325,20 @@ var WeaverseRoot = ({ context }) => {
319
325
  }, []);
320
326
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
321
327
  let themeClass = context.stitchesInstance.theme.className;
322
- return /* @__PURE__ */ React7.createElement("div", __spreadValues({
328
+ return /* @__PURE__ */ import_react5.default.createElement("div", __spreadValues({
323
329
  className: `weaverse-content-root ${themeClass}`
324
- }, eventHandlers), /* @__PURE__ */ React7.createElement(RenderItem, {
325
- itemId: context.projectData.rootId || 0,
326
- context
327
- }));
330
+ }, eventHandlers), /* @__PURE__ */ import_react5.default.createElement(WeaverseContextProvider, {
331
+ value: context
332
+ }, /* @__PURE__ */ import_react5.default.createElement(RenderItem, {
333
+ itemId: context.projectData.rootId || 0
334
+ })));
328
335
  };
329
- var Item = ({ itemInstance, elementInstances, context }) => {
330
- let [data, setData] = React7.useState(itemInstance.data);
331
- let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
332
- React7.useEffect(() => {
336
+ var Item = ({ itemInstance, elementInstances }) => {
337
+ var _b;
338
+ let [data, setData] = (0, import_react5.useState)(itemInstance.data);
339
+ let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
340
+ console.log("data", data);
341
+ (0, import_react5.useEffect)(() => {
333
342
  let handleUpdate = (update) => {
334
343
  setData(__spreadValues({}, update));
335
344
  };
@@ -343,11 +352,15 @@ var Item = ({ itemInstance, elementInstances, context }) => {
343
352
  itemInstance.unsubscribe(handleUpdate);
344
353
  };
345
354
  }, []);
346
- let realClassName = className;
355
+ let context = (0, import_react5.useContext)(WeaverseContext);
356
+ let className = "";
347
357
  if (css) {
348
358
  let formattedCss = shortCssObject(css);
349
- let selector = context.stitchesInstance.css(formattedCss)().className;
350
- realClassName = realClassName ? `${selector} ${realClassName}` : selector;
359
+ let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
360
+ let { stitchesClass } = itemInstance;
361
+ let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
362
+ className = `${cls} ${newClass} ${otherClass}`.trim();
363
+ itemInstance.stitchesClass = newClass;
351
364
  }
352
365
  let element = elementInstances.get(type) || elementInstances.get("base");
353
366
  if (element == null ? void 0 : element.Component) {
@@ -355,41 +368,42 @@ var Item = ({ itemInstance, elementInstances, context }) => {
355
368
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
356
369
  rest.ref = itemInstance.ref;
357
370
  }
358
- return /* @__PURE__ */ React7.createElement(Component, __spreadProps(__spreadValues({
371
+ return /* @__PURE__ */ import_react5.default.createElement(Component, __spreadProps(__spreadValues({
359
372
  key: id,
360
373
  "data-wv-type": type,
361
374
  "data-wv-id": id
362
375
  }, rest), {
363
- className: realClassName
364
- }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React7.createElement(RenderItem, {
376
+ className
377
+ }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ import_react5.default.createElement(RenderItem, {
365
378
  key: childId,
366
- itemId: childId,
367
- context
379
+ itemId: childId
368
380
  })));
369
381
  }
370
382
  return null;
371
383
  };
372
384
  var RenderItem = ({
373
- itemId,
374
- context
385
+ itemId
375
386
  }) => {
387
+ let context = (0, import_react5.useContext)(WeaverseContext);
376
388
  let { itemInstances, elementInstances } = context;
377
389
  let itemInstance = itemInstances.get(itemId);
378
390
  if (itemInstance) {
379
- return /* @__PURE__ */ React7.createElement(Item, {
391
+ return /* @__PURE__ */ import_react5.default.createElement(Item, {
380
392
  itemInstance,
381
- elementInstances,
382
- context
393
+ elementInstances
383
394
  });
384
395
  }
385
396
  console.warn(`Item instance ${itemId} not found`);
386
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null);
397
+ return /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null);
387
398
  };
388
399
 
389
400
  // src/index.ts
390
401
  __reExport(src_exports, require("@weaverse/core"), module.exports);
391
402
  // Annotate the CommonJS export names for ESM import in node:
392
403
  0 && (module.exports = {
404
+ WeaverseContext,
405
+ WeaverseContextConsumer,
406
+ WeaverseContextProvider,
393
407
  WeaverseRoot,
394
408
  createRootContext
395
409
  });
package/dist/index.mjs CHANGED
@@ -180,7 +180,7 @@ Text.defaultProps = {
180
180
  };
181
181
  var schema5 = {
182
182
  type: "text",
183
- title: "Text Settings",
183
+ title: "Text",
184
184
  settings: [],
185
185
  data: {
186
186
  css: {
@@ -266,11 +266,8 @@ var shortCssObject = (css) => {
266
266
  };
267
267
 
268
268
  // src/renderer.tsx
269
- import {
270
- isBrowser,
271
- Weaverse
272
- } from "@weaverse/core";
273
- import * as React7 from "react";
269
+ import { isBrowser, Weaverse } from "@weaverse/core";
270
+ import React7, { createContext, useContext, useEffect, useState } from "react";
274
271
  var createRootContext = (configs) => {
275
272
  const rootContext = new Weaverse(configs);
276
273
  Object.keys(elements_default).forEach((key) => {
@@ -278,10 +275,13 @@ var createRootContext = (configs) => {
278
275
  });
279
276
  return rootContext;
280
277
  };
278
+ var WeaverseContext = createContext({});
279
+ var WeaverseContextProvider = WeaverseContext.Provider;
280
+ var WeaverseContextConsumer = WeaverseContext.Consumer;
281
281
  var WeaverseRoot = ({ context }) => {
282
282
  var _a;
283
- let [, setData] = React7.useState(context.projectData);
284
- React7.useEffect(() => {
283
+ let [, setData] = useState(context.projectData);
284
+ useEffect(() => {
285
285
  let handleUpdate = () => {
286
286
  setData({});
287
287
  };
@@ -297,15 +297,18 @@ var WeaverseRoot = ({ context }) => {
297
297
  let themeClass = context.stitchesInstance.theme.className;
298
298
  return /* @__PURE__ */ React7.createElement("div", __spreadValues({
299
299
  className: `weaverse-content-root ${themeClass}`
300
- }, eventHandlers), /* @__PURE__ */ React7.createElement(RenderItem, {
301
- itemId: context.projectData.rootId || 0,
302
- context
303
- }));
300
+ }, eventHandlers), /* @__PURE__ */ React7.createElement(WeaverseContextProvider, {
301
+ value: context
302
+ }, /* @__PURE__ */ React7.createElement(RenderItem, {
303
+ itemId: context.projectData.rootId || 0
304
+ })));
304
305
  };
305
- var Item = ({ itemInstance, elementInstances, context }) => {
306
- let [data, setData] = React7.useState(itemInstance.data);
307
- let _a = data, { id, type, childIds, css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
308
- React7.useEffect(() => {
306
+ var Item = ({ itemInstance, elementInstances }) => {
307
+ var _b;
308
+ let [data, setData] = useState(itemInstance.data);
309
+ let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
310
+ console.log("data", data);
311
+ useEffect(() => {
309
312
  let handleUpdate = (update) => {
310
313
  setData(__spreadValues({}, update));
311
314
  };
@@ -319,11 +322,15 @@ var Item = ({ itemInstance, elementInstances, context }) => {
319
322
  itemInstance.unsubscribe(handleUpdate);
320
323
  };
321
324
  }, []);
322
- let realClassName = className;
325
+ let context = useContext(WeaverseContext);
326
+ let className = "";
323
327
  if (css) {
324
328
  let formattedCss = shortCssObject(css);
325
- let selector = context.stitchesInstance.css(formattedCss)().className;
326
- realClassName = realClassName ? `${selector} ${realClassName}` : selector;
329
+ let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
330
+ let { stitchesClass } = itemInstance;
331
+ let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
332
+ className = `${cls} ${newClass} ${otherClass}`.trim();
333
+ itemInstance.stitchesClass = newClass;
327
334
  }
328
335
  let element = elementInstances.get(type) || elementInstances.get("base");
329
336
  if (element == null ? void 0 : element.Component) {
@@ -336,26 +343,24 @@ var Item = ({ itemInstance, elementInstances, context }) => {
336
343
  "data-wv-type": type,
337
344
  "data-wv-id": id
338
345
  }, rest), {
339
- className: realClassName
346
+ className
340
347
  }), Array.isArray(childIds) && childIds.map((childId) => /* @__PURE__ */ React7.createElement(RenderItem, {
341
348
  key: childId,
342
- itemId: childId,
343
- context
349
+ itemId: childId
344
350
  })));
345
351
  }
346
352
  return null;
347
353
  };
348
354
  var RenderItem = ({
349
- itemId,
350
- context
355
+ itemId
351
356
  }) => {
357
+ let context = useContext(WeaverseContext);
352
358
  let { itemInstances, elementInstances } = context;
353
359
  let itemInstance = itemInstances.get(itemId);
354
360
  if (itemInstance) {
355
361
  return /* @__PURE__ */ React7.createElement(Item, {
356
362
  itemInstance,
357
- elementInstances,
358
- context
363
+ elementInstances
359
364
  });
360
365
  }
361
366
  console.warn(`Item instance ${itemId} not found`);
@@ -365,6 +370,9 @@ var RenderItem = ({
365
370
  // src/index.ts
366
371
  export * from "@weaverse/core";
367
372
  export {
373
+ WeaverseContext,
374
+ WeaverseContextConsumer,
375
+ WeaverseContextProvider,
368
376
  WeaverseRoot,
369
377
  createRootContext
370
378
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.4",
2
+ "version": "0.6.5",
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.6.4"
34
+ "@weaverse/core": "0.6.5"
35
35
  }
36
36
  }