@weaverse/hydrogen 1.0.47 → 1.0.49

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,11 +1,8 @@
1
1
  import React, { ForwardRefExoticComponent } from 'react';
2
2
  import { LoaderArgs, AppLoadContext } from '@shopify/remix-oxygen';
3
- import { ElementData, ElementSchema, WeaverseElement, Weaverse, WeaverseItemStore } from '@weaverse/react';
3
+ import { ElementData, ElementSchema, BasicInput, WeaverseElement, Weaverse, WeaverseItemStore } from '@weaverse/react';
4
4
  export * from '@weaverse/react';
5
5
 
6
- /**
7
- * Declare local additions to `AppLoadContext` to include the session utilities we injected in `server.ts`.
8
- */
9
6
  type TODO = any;
10
7
  declare module '@shopify/remix-oxygen' {
11
8
  interface AppLoadContext {
@@ -34,27 +31,35 @@ interface HydrogenComponentData extends Omit<ElementData, 'childIds' | 'css'> {
34
31
  loaderData: unknown;
35
32
  data: Record<string, unknown>;
36
33
  }
37
- type ComponentFlags = Partial<Record<'isSection', boolean>>;
38
- interface HydrogenComponentSchema extends Omit<ElementSchema, 'parentTypes' | 'flags'> {
34
+ type ComponentFlags = Partial<Record<string, boolean>>;
35
+ interface HydrogenComponentSchema extends Omit<ElementSchema, 'parentTypes' | 'flags' | 'inspector'> {
39
36
  flags?: ComponentFlags;
40
37
  childTypes?: string[];
38
+ inspector: InspectorGroup[];
39
+ presets?: Omit<HydrogenComponentPresets, 'type'>;
41
40
  }
42
- interface HydrogenComponentProps<D = unknown, L = unknown> extends WeaverseElement {
43
- data: D & {
44
- className?: string;
45
- };
41
+ interface InspectorGroup {
42
+ group: string;
43
+ inputs: BasicInput[];
44
+ }
45
+ interface HydrogenComponentProps<L = unknown> extends WeaverseElement {
46
+ className?: string;
46
47
  loaderData?: L;
47
48
  children?: React.JSX.Element[];
48
49
  }
49
- interface WeaverseHydrogen extends Omit<Weaverse, 'itemInstances'> {
50
+ interface WeaverseHydrogen extends Omit<Weaverse, 'itemInstances' | 'elementInstances' | 'registerElement'> {
50
51
  itemInstances: Map<string | number, HydrogenComponentInstance>;
52
+ elementInstances: Map<string, HydrogenElement>;
53
+ registerElement(element: HydrogenElement): void;
51
54
  }
52
- type HydrogenComponentTemplate = any;
55
+ type HydrogenComponentPresets = {
56
+ type: string;
57
+ children?: HydrogenComponentPresets[];
58
+ };
53
59
  interface HydrogenElement {
54
- Component: ForwardRefExoticComponent<any>;
60
+ Component: ForwardRefExoticComponent<HydrogenComponentProps>;
55
61
  type: string;
56
62
  schema?: HydrogenComponentSchema;
57
- template?: HydrogenComponentTemplate;
58
63
  }
59
64
  interface HydrogenComponentInstance extends Omit<WeaverseItemStore, '_flags' | 'data' | 'Element'> {
60
65
  get _element(): HTMLElement | null;
@@ -78,6 +83,13 @@ interface HydrogenPageData {
78
83
  page: any;
79
84
  configs: HydrogenPageConfigs;
80
85
  }
86
+ interface WeaverseHydrogenRootProps {
87
+ components: Record<string, HydrogenComponent>;
88
+ data: {
89
+ weaverseData?: HydrogenPageData;
90
+ [key: string]: any;
91
+ };
92
+ }
81
93
 
82
94
  /**
83
95
  * Fetch with server cache requires a storefront.cache instance which is Cloudflare Cache and a waitUntil function, otherwise it will just fetch the url.
@@ -90,13 +102,6 @@ declare let fetchWithServerCache: ({ url, options, context, }: {
90
102
 
91
103
  declare function weaverseLoader(args: LoaderArgs, components: Record<string, HydrogenComponent>): Promise<HydrogenPageData | null>;
92
104
 
93
- interface WeaverseHydrogenRootProps {
94
- components: Record<string, HydrogenComponent>;
95
- data: {
96
- weaverseData: HydrogenPageData;
97
- [key: string]: any;
98
- };
99
- }
100
105
  declare let WeaverseHydrogenRoot: (props: WeaverseHydrogenRootProps) => React.JSX.Element;
101
106
 
102
- export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentProps, HydrogenComponentSchema, HydrogenComponentTemplate, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
107
+ export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
package/dist/index.js CHANGED
@@ -41,15 +41,18 @@ var import_react4 = __toESM(require("react"));
41
41
 
42
42
  // src/context.ts
43
43
  var import_react = require("@weaverse/react");
44
+ function createRootContext(init) {
45
+ return new import_react.Weaverse(init);
46
+ }
44
47
  function createCachedContext(init) {
45
48
  if (import_react.isBrowser && init.pageId) {
46
49
  window.__weaverses = window.__weaverses || {};
47
50
  if (!window.__weaverses[init.pageId]) {
48
- window.__weaverses[init.pageId] = (0, import_react.createRootContext)(init);
51
+ window.__weaverses[init.pageId] = createRootContext(init);
49
52
  }
50
53
  return window.__weaverses[init.pageId];
51
54
  }
52
- return (0, import_react.createRootContext)(init);
55
+ return createRootContext(init);
53
56
  }
54
57
  function createWeaverseHydrogenContext({ weaverseData }, components) {
55
58
  let { page = {}, configs = {} } = weaverseData || {};
@@ -64,10 +67,7 @@ function createWeaverseHydrogenContext({ weaverseData }, components) {
64
67
  weaverse.registerElement({
65
68
  type: component?.schema?.type || key,
66
69
  Component: component?.default,
67
- // @ts-ignore
68
- schema: component?.schema,
69
- // @ts-ignore
70
- template: component?.template
70
+ schema: component?.schema
71
71
  });
72
72
  });
73
73
  return weaverse;
@@ -549,15 +549,10 @@ var WeaverseItemStore = class {
549
549
  constructor(itemData, weaverse) {
550
550
  this.listeners = /* @__PURE__ */ new Set();
551
551
  this.ref = { current: null };
552
- this.platformType = "shopify-section";
553
552
  this.stitchesClass = "";
554
553
  this._store = { id: "", type: "" };
555
554
  this.setData = (update) => {
556
- if (this.platformType === "shopify-hydrogen") {
557
- this.data = update;
558
- } else {
559
- this.data = Object.assign(this.data, update);
560
- }
555
+ this.data = Object.assign(this.data, update);
561
556
  this.triggerUpdate();
562
557
  return this.data;
563
558
  };
@@ -574,10 +569,14 @@ var WeaverseItemStore = class {
574
569
  };
575
570
  let { type, id } = itemData;
576
571
  this.weaverse = weaverse;
577
- this.platformType = weaverse.platformType;
578
572
  if (id && type) {
579
573
  weaverse.itemInstances.set(id, this);
580
- this._store = { ...itemData };
574
+ if (weaverse.platformType === "shopify-hydrogen") {
575
+ let { data, ...rest } = itemData;
576
+ this._store = { ...data, ...rest };
577
+ } else {
578
+ this._store = { ...itemData };
579
+ }
581
580
  }
582
581
  }
583
582
  get _id() {
@@ -593,33 +592,18 @@ var WeaverseItemStore = class {
593
592
  return this.weaverse.elementInstances.get(this._store.type);
594
593
  }
595
594
  set data(update) {
596
- if (this.platformType === "shopify-hydrogen") {
597
- let { children, ...rest } = update;
598
- if (children) {
599
- this._store.children = children;
600
- }
601
- this._store.data = merge(this._store.data, rest);
602
- } else {
603
- this._store = { ...this.data, ...update };
604
- }
595
+ this._store = { ...this.data, ...update };
605
596
  }
606
597
  get data() {
607
598
  let defaultProps = { ...this.Element?.Component?.defaultProps };
608
- if (this.platformType === "shopify-hydrogen") {
609
- return {
610
- ...this._store,
611
- data: { ...defaultProps?.data, ...this._store.data }
612
- };
613
- } else {
614
- let defaultCss = this.Element?.defaultCss || {};
615
- let currentCss = this._store.css || {};
616
- let css = merge(defaultCss, currentCss);
617
- let extraData = this.Element?.extraData;
618
- return { ...defaultProps, ...extraData, ...this._store, css };
619
- }
599
+ let defaultCss = this.Element?.defaultCss || {};
600
+ let currentCss = this._store.css || {};
601
+ let css = merge(defaultCss, currentCss);
602
+ let extraData = this.Element?.extraData;
603
+ return { ...defaultProps, ...extraData, ...this._store, css };
620
604
  }
621
605
  };
622
- var Weaverse = class {
606
+ var Weaverse2 = class {
623
607
  /**
624
608
  * constructor
625
609
  * @param weaverseHost {string} Weaverse base URL that can provide by user/developer. for local development, use localhost:3000
@@ -634,7 +618,7 @@ var Weaverse = class {
634
618
  constructor(params = {}) {
635
619
  this.elementInstances = /* @__PURE__ */ new Map();
636
620
  this.itemInstances = /* @__PURE__ */ new Map();
637
- this.weaverseHost = "https://studio.weaverse.io";
621
+ this.weaverseHost = "https://weaverse.io";
638
622
  this.weaverseVersion = "";
639
623
  this.projectId = "";
640
624
  this.pageId = "";
@@ -715,13 +699,13 @@ var Weaverse = class {
715
699
  if (data?.items) {
716
700
  data.items.forEach((item) => {
717
701
  if (!this.itemInstances.get(item.id)) {
718
- new WeaverseItemStore(item, this);
702
+ return new WeaverseItemStore(item, this);
719
703
  }
720
704
  });
721
705
  }
722
706
  }
723
707
  };
724
- Weaverse.WeaverseItemStore = WeaverseItemStore;
708
+ Weaverse2.WeaverseItemStore = WeaverseItemStore;
725
709
 
726
710
  // src/hooks/use-studio.ts
727
711
  var import_react2 = require("react");
package/dist/index.mjs CHANGED
@@ -3,7 +3,10 @@ import { WeaverseRoot } from "@weaverse/react";
3
3
  import React from "react";
4
4
 
5
5
  // src/context.ts
6
- import { createRootContext, isBrowser } from "@weaverse/react";
6
+ import { Weaverse, isBrowser } from "@weaverse/react";
7
+ function createRootContext(init) {
8
+ return new Weaverse(init);
9
+ }
7
10
  function createCachedContext(init) {
8
11
  if (isBrowser && init.pageId) {
9
12
  window.__weaverses = window.__weaverses || {};
@@ -27,10 +30,7 @@ function createWeaverseHydrogenContext({ weaverseData }, components) {
27
30
  weaverse.registerElement({
28
31
  type: component?.schema?.type || key,
29
32
  Component: component?.default,
30
- // @ts-ignore
31
- schema: component?.schema,
32
- // @ts-ignore
33
- template: component?.template
33
+ schema: component?.schema
34
34
  });
35
35
  });
36
36
  return weaverse;
@@ -512,15 +512,10 @@ var WeaverseItemStore = class {
512
512
  constructor(itemData, weaverse) {
513
513
  this.listeners = /* @__PURE__ */ new Set();
514
514
  this.ref = { current: null };
515
- this.platformType = "shopify-section";
516
515
  this.stitchesClass = "";
517
516
  this._store = { id: "", type: "" };
518
517
  this.setData = (update) => {
519
- if (this.platformType === "shopify-hydrogen") {
520
- this.data = update;
521
- } else {
522
- this.data = Object.assign(this.data, update);
523
- }
518
+ this.data = Object.assign(this.data, update);
524
519
  this.triggerUpdate();
525
520
  return this.data;
526
521
  };
@@ -537,10 +532,14 @@ var WeaverseItemStore = class {
537
532
  };
538
533
  let { type, id } = itemData;
539
534
  this.weaverse = weaverse;
540
- this.platformType = weaverse.platformType;
541
535
  if (id && type) {
542
536
  weaverse.itemInstances.set(id, this);
543
- this._store = { ...itemData };
537
+ if (weaverse.platformType === "shopify-hydrogen") {
538
+ let { data, ...rest } = itemData;
539
+ this._store = { ...data, ...rest };
540
+ } else {
541
+ this._store = { ...itemData };
542
+ }
544
543
  }
545
544
  }
546
545
  get _id() {
@@ -556,33 +555,18 @@ var WeaverseItemStore = class {
556
555
  return this.weaverse.elementInstances.get(this._store.type);
557
556
  }
558
557
  set data(update) {
559
- if (this.platformType === "shopify-hydrogen") {
560
- let { children, ...rest } = update;
561
- if (children) {
562
- this._store.children = children;
563
- }
564
- this._store.data = merge(this._store.data, rest);
565
- } else {
566
- this._store = { ...this.data, ...update };
567
- }
558
+ this._store = { ...this.data, ...update };
568
559
  }
569
560
  get data() {
570
561
  let defaultProps = { ...this.Element?.Component?.defaultProps };
571
- if (this.platformType === "shopify-hydrogen") {
572
- return {
573
- ...this._store,
574
- data: { ...defaultProps?.data, ...this._store.data }
575
- };
576
- } else {
577
- let defaultCss = this.Element?.defaultCss || {};
578
- let currentCss = this._store.css || {};
579
- let css = merge(defaultCss, currentCss);
580
- let extraData = this.Element?.extraData;
581
- return { ...defaultProps, ...extraData, ...this._store, css };
582
- }
562
+ let defaultCss = this.Element?.defaultCss || {};
563
+ let currentCss = this._store.css || {};
564
+ let css = merge(defaultCss, currentCss);
565
+ let extraData = this.Element?.extraData;
566
+ return { ...defaultProps, ...extraData, ...this._store, css };
583
567
  }
584
568
  };
585
- var Weaverse = class {
569
+ var Weaverse2 = class {
586
570
  /**
587
571
  * constructor
588
572
  * @param weaverseHost {string} Weaverse base URL that can provide by user/developer. for local development, use localhost:3000
@@ -597,7 +581,7 @@ var Weaverse = class {
597
581
  constructor(params = {}) {
598
582
  this.elementInstances = /* @__PURE__ */ new Map();
599
583
  this.itemInstances = /* @__PURE__ */ new Map();
600
- this.weaverseHost = "https://studio.weaverse.io";
584
+ this.weaverseHost = "https://weaverse.io";
601
585
  this.weaverseVersion = "";
602
586
  this.projectId = "";
603
587
  this.pageId = "";
@@ -678,13 +662,13 @@ var Weaverse = class {
678
662
  if (data?.items) {
679
663
  data.items.forEach((item) => {
680
664
  if (!this.itemInstances.get(item.id)) {
681
- new WeaverseItemStore(item, this);
665
+ return new WeaverseItemStore(item, this);
682
666
  }
683
667
  });
684
668
  }
685
669
  }
686
670
  };
687
- Weaverse.WeaverseItemStore = WeaverseItemStore;
671
+ Weaverse2.WeaverseItemStore = WeaverseItemStore;
688
672
 
689
673
  // src/hooks/use-studio.ts
690
674
  import { useEffect } from "react";
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.47",
2
+ "version": "1.0.49",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -32,10 +32,10 @@
32
32
  "name": "@weaverse/hydrogen",
33
33
  "author": "Weaverse Team",
34
34
  "dependencies": {
35
- "@shopify/hydrogen": "2023.4.3",
36
- "@weaverse/react": "1.0.47"
35
+ "@shopify/hydrogen": "2023.4.4",
36
+ "@weaverse/react": "1.0.49"
37
37
  },
38
38
  "devDependencies": {
39
- "@shopify/remix-oxygen": "^1.0.7"
39
+ "@shopify/remix-oxygen": "^1.1.0"
40
40
  }
41
41
  }