@weaverse/hydrogen 1.1.4 → 1.1.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.mts CHANGED
@@ -175,17 +175,8 @@ type HydrogenPageData = {
175
175
  type RelativeRoutingType = 'route' | 'path';
176
176
  type To = string | Partial<Path>;
177
177
  type Path = {
178
- /**
179
- * A URL pathname, beginning with a /.
180
- */
181
178
  pathname: string;
182
- /**
183
- * A URL search string, beginning with a ?.
184
- */
185
179
  search: string;
186
- /**
187
- * A URL fragment identifier, beginning with a #.
188
- */
189
180
  hash: string;
190
181
  };
191
182
  type NavigateOptions = {
@@ -197,6 +188,8 @@ type NavigateOptions = {
197
188
  type NavigateFunction = (to: To, options?: NavigateOptions) => void;
198
189
  interface WeaverseHydrogenRootProps {
199
190
  components: HydrogenComponent[];
191
+ countries: Localizations;
192
+ themeSchema: HydrogenThemeSchema;
200
193
  errorComponent: React.FC<{
201
194
  error: {
202
195
  message: string;
@@ -233,7 +226,6 @@ declare global {
233
226
  interface Window {
234
227
  __weaverse: WeaverseHydrogen;
235
228
  __weaverses: WeaverseHydrogen[];
236
- __weaverseThemeConfigs: WeaverseThemeConfigs;
237
229
  }
238
230
  }
239
231
 
@@ -249,20 +241,12 @@ declare function fetchWithServerCache(params: FetchWithServerCacheParams): Promi
249
241
 
250
242
  declare function weaverseLoader(args: LoaderArgs, components: HydrogenComponent[], countries: Localizations, loaderConfigs?: WeaverseLoaderConfigs): Promise<WeaverseLoaderData | null>;
251
243
 
252
- declare function WeaverseStudio(): React.JSX.Element | null;
253
-
254
244
  declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
255
- /**
256
- * Check if the request is from Weaverse Studio.
257
- * @param request Request
258
- * @returns boolean
259
- */
260
- declare function studioCheck(request: Request): boolean;
261
245
 
262
246
  declare function getSelectedProductOptions(request: Request): _shopify_hydrogen_react_storefront_api_types.SelectedOptionInput[];
263
247
 
264
248
  declare function useThemeSettings(): (Record<string, any> | ((newSettings: any) => void))[];
265
249
 
266
- declare function WeaverseHydrogenRoot({ components, errorComponent: ErrorComponent, }: WeaverseHydrogenRootProps): React.JSX.Element;
250
+ declare function WeaverseHydrogenRoot({ errorComponent: ErrorComponent, ...themeConfigs }: WeaverseHydrogenRootProps): React.JSX.Element;
267
251
 
268
- export { FetchProjectRequestBody, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, NavigateFunction, PageType, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderArgs, WeaverseLoaderConfigs, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseStorefrontData, WeaverseStudio, WeaverseThemeConfigs, fetchWithServerCache, getRequestQueries, getSelectedProductOptions, studioCheck, useThemeSettings, weaverseLoader };
252
+ export { FetchProjectRequestBody, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, NavigateFunction, PageType, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderArgs, WeaverseLoaderConfigs, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseStorefrontData, WeaverseThemeConfigs, fetchWithServerCache, getRequestQueries, getSelectedProductOptions, useThemeSettings, weaverseLoader };
package/dist/index.d.ts CHANGED
@@ -175,17 +175,8 @@ type HydrogenPageData = {
175
175
  type RelativeRoutingType = 'route' | 'path';
176
176
  type To = string | Partial<Path>;
177
177
  type Path = {
178
- /**
179
- * A URL pathname, beginning with a /.
180
- */
181
178
  pathname: string;
182
- /**
183
- * A URL search string, beginning with a ?.
184
- */
185
179
  search: string;
186
- /**
187
- * A URL fragment identifier, beginning with a #.
188
- */
189
180
  hash: string;
190
181
  };
191
182
  type NavigateOptions = {
@@ -197,6 +188,8 @@ type NavigateOptions = {
197
188
  type NavigateFunction = (to: To, options?: NavigateOptions) => void;
198
189
  interface WeaverseHydrogenRootProps {
199
190
  components: HydrogenComponent[];
191
+ countries: Localizations;
192
+ themeSchema: HydrogenThemeSchema;
200
193
  errorComponent: React.FC<{
201
194
  error: {
202
195
  message: string;
@@ -233,7 +226,6 @@ declare global {
233
226
  interface Window {
234
227
  __weaverse: WeaverseHydrogen;
235
228
  __weaverses: WeaverseHydrogen[];
236
- __weaverseThemeConfigs: WeaverseThemeConfigs;
237
229
  }
238
230
  }
239
231
 
@@ -249,20 +241,12 @@ declare function fetchWithServerCache(params: FetchWithServerCacheParams): Promi
249
241
 
250
242
  declare function weaverseLoader(args: LoaderArgs, components: HydrogenComponent[], countries: Localizations, loaderConfigs?: WeaverseLoaderConfigs): Promise<WeaverseLoaderData | null>;
251
243
 
252
- declare function WeaverseStudio(): React.JSX.Element | null;
253
-
254
244
  declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
255
- /**
256
- * Check if the request is from Weaverse Studio.
257
- * @param request Request
258
- * @returns boolean
259
- */
260
- declare function studioCheck(request: Request): boolean;
261
245
 
262
246
  declare function getSelectedProductOptions(request: Request): _shopify_hydrogen_react_storefront_api_types.SelectedOptionInput[];
263
247
 
264
248
  declare function useThemeSettings(): (Record<string, any> | ((newSettings: any) => void))[];
265
249
 
266
- declare function WeaverseHydrogenRoot({ components, errorComponent: ErrorComponent, }: WeaverseHydrogenRootProps): React.JSX.Element;
250
+ declare function WeaverseHydrogenRoot({ errorComponent: ErrorComponent, ...themeConfigs }: WeaverseHydrogenRootProps): React.JSX.Element;
267
251
 
268
- export { FetchProjectRequestBody, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, NavigateFunction, PageType, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderArgs, WeaverseLoaderConfigs, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseStorefrontData, WeaverseStudio, WeaverseThemeConfigs, fetchWithServerCache, getRequestQueries, getSelectedProductOptions, studioCheck, useThemeSettings, weaverseLoader };
252
+ export { FetchProjectRequestBody, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, NavigateFunction, PageType, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderArgs, WeaverseLoaderConfigs, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseStorefrontData, WeaverseThemeConfigs, fetchWithServerCache, getRequestQueries, getSelectedProductOptions, useThemeSettings, weaverseLoader };
package/dist/index.js CHANGED
@@ -32,18 +32,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
32
32
  var src_exports = {};
33
33
  __export(src_exports, {
34
34
  WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
35
- WeaverseStudio: () => WeaverseStudio,
36
35
  fetchWithServerCache: () => fetchWithServerCache,
37
36
  getRequestQueries: () => getRequestQueries,
38
37
  getSelectedProductOptions: () => getSelectedProductOptions,
39
- studioCheck: () => studioCheck,
40
38
  useThemeSettings: () => useThemeSettings,
41
39
  weaverseLoader: () => weaverseLoader
42
40
  });
43
41
  module.exports = __toCommonJS(src_exports);
44
- var import_react8 = require("@remix-run/react");
45
- var import_react9 = require("@weaverse/react");
46
- var import_react10 = __toESM(require("react"));
42
+ var import_react6 = require("@remix-run/react");
43
+ var import_react7 = require("@weaverse/react");
44
+ var import_react8 = __toESM(require("react"));
47
45
  var import_react_error_boundary = require("react-error-boundary");
48
46
 
49
47
  // src/context.ts
@@ -72,10 +70,9 @@ function createWeaverseInstance(weaverseData, components) {
72
70
  ...configs,
73
71
  data: page || {},
74
72
  pageId: page?.id,
75
- platformType: "shopify-hydrogen"
73
+ platformType: "shopify-hydrogen",
74
+ internal: { project, pageAssignment }
76
75
  });
77
- weaverse.internal.project = project;
78
- weaverse.internal.pageAssignment = pageAssignment;
79
76
  components.forEach((comp) => {
80
77
  weaverse.registerElement({
81
78
  type: comp?.schema?.type,
@@ -90,19 +87,26 @@ function createWeaverseInstance(weaverseData, components) {
90
87
  var import_react2 = require("@remix-run/react");
91
88
  var import_react3 = require("@weaverse/react");
92
89
  var import_react4 = require("react");
93
- function useStudio(weaverse) {
90
+ function useStudio(weaverse, countries, schema) {
94
91
  let navigate = (0, import_react2.useNavigate)();
95
92
  let revalidator = (0, import_react2.useRevalidator)();
93
+ let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
94
+ let isStudio = import_react3.isIframe && isDesignMode && weaverseHost && weaverseVersion;
96
95
  (0, import_react4.useEffect)(() => {
97
- if (import_react3.isIframe && weaverse.isDesignMode) {
96
+ if (isStudio) {
98
97
  weaverse.internal = {
99
98
  ...weaverse.internal,
100
99
  navigate,
101
- revalidator
100
+ revalidator,
101
+ themeConfigs: { schema, countries }
102
102
  };
103
103
  window.__weaverse = weaverse;
104
104
  if (window.weaverseStudio) {
105
105
  window.weaverseStudio.init(weaverse);
106
+ } else {
107
+ (0, import_react3.loadScript)(
108
+ `${weaverseHost}/assets/studio/hydrogen/index.js?v=${weaverseVersion}`
109
+ );
106
110
  }
107
111
  }
108
112
  }, [weaverse]);
@@ -138,13 +142,6 @@ function getRequestQueries(request) {
138
142
  {}
139
143
  );
140
144
  }
141
- function studioCheck(request) {
142
- let queries = getRequestQueries(request);
143
- let { weaverseProjectId, weaverseHost, isDesignMode, weaverseVersion } = queries;
144
- return Boolean(
145
- isDesignMode && weaverseProjectId && weaverseHost && weaverseVersion
146
- );
147
- }
148
145
 
149
146
  // src/loader.ts
150
147
  async function weaverseLoader(args, components, countries, loaderConfigs) {
@@ -230,40 +227,6 @@ async function withLoaderData(items, components, configs, args) {
230
227
  );
231
228
  }
232
229
 
233
- // src/studio.tsx
234
- var import_react5 = require("@remix-run/react");
235
- var import_react6 = __toESM(require("react"));
236
- function WeaverseStudio() {
237
- let { search } = (0, import_react5.useLocation)();
238
- let { weaverseThemeConfigs } = (0, import_react5.useLoaderData)();
239
- if (weaverseThemeConfigs instanceof Promise) {
240
- let params = new URLSearchParams(search);
241
- let weaverseHost = params.get("weaverseHost");
242
- let weaverseVersion = params.get("weaverseVersion");
243
- return /* @__PURE__ */ import_react6.default.createElement(import_react6.Suspense, null, /* @__PURE__ */ import_react6.default.createElement(import_react5.Await, { resolve: weaverseThemeConfigs }, (configs) => {
244
- if (!configs)
245
- return null;
246
- return /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement(
247
- "script",
248
- {
249
- src: `${weaverseHost}/assets/studio/hydrogen/index.js?v=${weaverseVersion}`,
250
- async: true
251
- }
252
- ), /* @__PURE__ */ import_react6.default.createElement(
253
- "script",
254
- {
255
- dangerouslySetInnerHTML: {
256
- __html: `window.__weaverseThemeConfigs = ${JSON.stringify(
257
- configs
258
- )}`
259
- }
260
- }
261
- ));
262
- }));
263
- }
264
- return null;
265
- }
266
-
267
230
  // src/hydrogen-wrappers.ts
268
231
  var import_hydrogen2 = require("@shopify/hydrogen");
269
232
  function getSelectedProductOptions(request) {
@@ -274,9 +237,9 @@ function getSelectedProductOptions(request) {
274
237
  }
275
238
 
276
239
  // src/hooks/use-theme-settings.ts
277
- var import_react7 = require("@weaverse/react");
240
+ var import_react5 = require("@weaverse/react");
278
241
  function useThemeSettings() {
279
- let weaverse = (0, import_react7.useWeaverse)();
242
+ let weaverse = (0, import_react5.useWeaverse)();
280
243
  let settings = weaverse?.internal?.project?.config?.theme;
281
244
  let updateSettings = (newSettings) => {
282
245
  weaverse.internal.project.config.theme = Object.assign(
@@ -291,32 +254,26 @@ function useThemeSettings() {
291
254
 
292
255
  // src/index.tsx
293
256
  function WeaverseHydrogenRoot({
294
- components,
295
- errorComponent: ErrorComponent
257
+ errorComponent: ErrorComponent,
258
+ ...themeConfigs
296
259
  }) {
297
- let data = (0, import_react8.useLoaderData)();
298
- let weaverseDataFromLoader = data?.weaverseData;
299
- if (weaverseDataFromLoader) {
300
- if (weaverseDataFromLoader instanceof Promise) {
301
- return /* @__PURE__ */ import_react10.default.createElement(import_react_error_boundary.ErrorBoundary, { fallbackRender: ErrorComponent }, /* @__PURE__ */ import_react10.default.createElement(import_react10.Suspense, null, /* @__PURE__ */ import_react10.default.createElement(import_react8.Await, { resolve: weaverseDataFromLoader }, (resolvedData) => {
302
- return /* @__PURE__ */ import_react10.default.createElement(
260
+ let data = (0, import_react6.useLoaderData)();
261
+ let weaverseData = data?.weaverseData;
262
+ if (weaverseData) {
263
+ if (weaverseData instanceof Promise) {
264
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_error_boundary.ErrorBoundary, { fallbackRender: ErrorComponent }, /* @__PURE__ */ import_react8.default.createElement(import_react8.Suspense, null, /* @__PURE__ */ import_react8.default.createElement(import_react6.Await, { resolve: weaverseData }, (resolvedData) => {
265
+ return /* @__PURE__ */ import_react8.default.createElement(
303
266
  RenderWeaverseRoot,
304
267
  {
305
268
  weaverseData: resolvedData,
306
- components
269
+ ...themeConfigs
307
270
  }
308
271
  );
309
272
  })));
310
273
  }
311
- return /* @__PURE__ */ import_react10.default.createElement(
312
- RenderWeaverseRoot,
313
- {
314
- weaverseData: weaverseDataFromLoader,
315
- components
316
- }
317
- );
274
+ return /* @__PURE__ */ import_react8.default.createElement(RenderWeaverseRoot, { weaverseData, ...themeConfigs });
318
275
  }
319
- return /* @__PURE__ */ import_react10.default.createElement(
276
+ return /* @__PURE__ */ import_react8.default.createElement(
320
277
  ErrorComponent,
321
278
  {
322
279
  error: { message: "No Weaverse data return from route loader!" }
@@ -324,19 +281,17 @@ function WeaverseHydrogenRoot({
324
281
  );
325
282
  }
326
283
  function RenderWeaverseRoot(props) {
327
- let { components, weaverseData } = props;
284
+ let { weaverseData, components, countries, themeSchema } = props;
328
285
  let weaverse = createWeaverseInstance(weaverseData, components);
329
- useStudio(weaverse);
330
- return /* @__PURE__ */ import_react10.default.createElement(import_react9.WeaverseRoot, { context: weaverse });
286
+ useStudio(weaverse, countries, themeSchema);
287
+ return /* @__PURE__ */ import_react8.default.createElement(import_react7.WeaverseRoot, { context: weaverse });
331
288
  }
332
289
  // Annotate the CommonJS export names for ESM import in node:
333
290
  0 && (module.exports = {
334
291
  WeaverseHydrogenRoot,
335
- WeaverseStudio,
336
292
  fetchWithServerCache,
337
293
  getRequestQueries,
338
294
  getSelectedProductOptions,
339
- studioCheck,
340
295
  useThemeSettings,
341
296
  weaverseLoader,
342
297
  ...require("@weaverse/react")
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/index.tsx
2
- import { Await as Await2, useLoaderData as useLoaderData2 } from "@remix-run/react";
2
+ import { Await, useLoaderData } from "@remix-run/react";
3
3
  import { WeaverseRoot } from "@weaverse/react";
4
- import React2, { Suspense as Suspense2 } from "react";
4
+ import React, { Suspense } from "react";
5
5
  import { ErrorBoundary } from "react-error-boundary";
6
6
 
7
7
  // src/context.ts
@@ -30,10 +30,9 @@ function createWeaverseInstance(weaverseData, components) {
30
30
  ...configs,
31
31
  data: page || {},
32
32
  pageId: page?.id,
33
- platformType: "shopify-hydrogen"
33
+ platformType: "shopify-hydrogen",
34
+ internal: { project, pageAssignment }
34
35
  });
35
- weaverse.internal.project = project;
36
- weaverse.internal.pageAssignment = pageAssignment;
37
36
  components.forEach((comp) => {
38
37
  weaverse.registerElement({
39
38
  type: comp?.schema?.type,
@@ -46,21 +45,28 @@ function createWeaverseInstance(weaverseData, components) {
46
45
 
47
46
  // src/hooks/use-studio.ts
48
47
  import { useNavigate, useRevalidator } from "@remix-run/react";
49
- import { isIframe } from "@weaverse/react";
48
+ import { isIframe, loadScript } from "@weaverse/react";
50
49
  import { useEffect } from "react";
51
- function useStudio(weaverse) {
50
+ function useStudio(weaverse, countries, schema) {
52
51
  let navigate = useNavigate();
53
52
  let revalidator = useRevalidator();
53
+ let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
54
+ let isStudio = isIframe && isDesignMode && weaverseHost && weaverseVersion;
54
55
  useEffect(() => {
55
- if (isIframe && weaverse.isDesignMode) {
56
+ if (isStudio) {
56
57
  weaverse.internal = {
57
58
  ...weaverse.internal,
58
59
  navigate,
59
- revalidator
60
+ revalidator,
61
+ themeConfigs: { schema, countries }
60
62
  };
61
63
  window.__weaverse = weaverse;
62
64
  if (window.weaverseStudio) {
63
65
  window.weaverseStudio.init(weaverse);
66
+ } else {
67
+ loadScript(
68
+ `${weaverseHost}/assets/studio/hydrogen/index.js?v=${weaverseVersion}`
69
+ );
64
70
  }
65
71
  }
66
72
  }, [weaverse]);
@@ -96,13 +102,6 @@ function getRequestQueries(request) {
96
102
  {}
97
103
  );
98
104
  }
99
- function studioCheck(request) {
100
- let queries = getRequestQueries(request);
101
- let { weaverseProjectId, weaverseHost, isDesignMode, weaverseVersion } = queries;
102
- return Boolean(
103
- isDesignMode && weaverseProjectId && weaverseHost && weaverseVersion
104
- );
105
- }
106
105
 
107
106
  // src/loader.ts
108
107
  async function weaverseLoader(args, components, countries, loaderConfigs) {
@@ -188,40 +187,6 @@ async function withLoaderData(items, components, configs, args) {
188
187
  );
189
188
  }
190
189
 
191
- // src/studio.tsx
192
- import { Await, useLoaderData, useLocation } from "@remix-run/react";
193
- import React, { Suspense } from "react";
194
- function WeaverseStudio() {
195
- let { search } = useLocation();
196
- let { weaverseThemeConfigs } = useLoaderData();
197
- if (weaverseThemeConfigs instanceof Promise) {
198
- let params = new URLSearchParams(search);
199
- let weaverseHost = params.get("weaverseHost");
200
- let weaverseVersion = params.get("weaverseVersion");
201
- return /* @__PURE__ */ React.createElement(Suspense, null, /* @__PURE__ */ React.createElement(Await, { resolve: weaverseThemeConfigs }, (configs) => {
202
- if (!configs)
203
- return null;
204
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
205
- "script",
206
- {
207
- src: `${weaverseHost}/assets/studio/hydrogen/index.js?v=${weaverseVersion}`,
208
- async: true
209
- }
210
- ), /* @__PURE__ */ React.createElement(
211
- "script",
212
- {
213
- dangerouslySetInnerHTML: {
214
- __html: `window.__weaverseThemeConfigs = ${JSON.stringify(
215
- configs
216
- )}`
217
- }
218
- }
219
- ));
220
- }));
221
- }
222
- return null;
223
- }
224
-
225
190
  // src/hydrogen-wrappers.ts
226
191
  import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from "@shopify/hydrogen";
227
192
  function getSelectedProductOptions(request) {
@@ -249,32 +214,26 @@ function useThemeSettings() {
249
214
 
250
215
  // src/index.tsx
251
216
  function WeaverseHydrogenRoot({
252
- components,
253
- errorComponent: ErrorComponent
217
+ errorComponent: ErrorComponent,
218
+ ...themeConfigs
254
219
  }) {
255
- let data = useLoaderData2();
256
- let weaverseDataFromLoader = data?.weaverseData;
257
- if (weaverseDataFromLoader) {
258
- if (weaverseDataFromLoader instanceof Promise) {
259
- return /* @__PURE__ */ React2.createElement(ErrorBoundary, { fallbackRender: ErrorComponent }, /* @__PURE__ */ React2.createElement(Suspense2, null, /* @__PURE__ */ React2.createElement(Await2, { resolve: weaverseDataFromLoader }, (resolvedData) => {
260
- return /* @__PURE__ */ React2.createElement(
220
+ let data = useLoaderData();
221
+ let weaverseData = data?.weaverseData;
222
+ if (weaverseData) {
223
+ if (weaverseData instanceof Promise) {
224
+ return /* @__PURE__ */ React.createElement(ErrorBoundary, { fallbackRender: ErrorComponent }, /* @__PURE__ */ React.createElement(Suspense, null, /* @__PURE__ */ React.createElement(Await, { resolve: weaverseData }, (resolvedData) => {
225
+ return /* @__PURE__ */ React.createElement(
261
226
  RenderWeaverseRoot,
262
227
  {
263
228
  weaverseData: resolvedData,
264
- components
229
+ ...themeConfigs
265
230
  }
266
231
  );
267
232
  })));
268
233
  }
269
- return /* @__PURE__ */ React2.createElement(
270
- RenderWeaverseRoot,
271
- {
272
- weaverseData: weaverseDataFromLoader,
273
- components
274
- }
275
- );
234
+ return /* @__PURE__ */ React.createElement(RenderWeaverseRoot, { weaverseData, ...themeConfigs });
276
235
  }
277
- return /* @__PURE__ */ React2.createElement(
236
+ return /* @__PURE__ */ React.createElement(
278
237
  ErrorComponent,
279
238
  {
280
239
  error: { message: "No Weaverse data return from route loader!" }
@@ -282,18 +241,16 @@ function WeaverseHydrogenRoot({
282
241
  );
283
242
  }
284
243
  function RenderWeaverseRoot(props) {
285
- let { components, weaverseData } = props;
244
+ let { weaverseData, components, countries, themeSchema } = props;
286
245
  let weaverse = createWeaverseInstance(weaverseData, components);
287
- useStudio(weaverse);
288
- return /* @__PURE__ */ React2.createElement(WeaverseRoot, { context: weaverse });
246
+ useStudio(weaverse, countries, themeSchema);
247
+ return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
289
248
  }
290
249
  export {
291
250
  WeaverseHydrogenRoot,
292
- WeaverseStudio,
293
251
  fetchWithServerCache,
294
252
  getRequestQueries,
295
253
  getSelectedProductOptions,
296
- studioCheck,
297
254
  useThemeSettings,
298
255
  weaverseLoader
299
256
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.4",
2
+ "version": "1.1.5",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -34,10 +34,10 @@
34
34
  "dependencies": {
35
35
  "@remix-run/react": "1.19.1",
36
36
  "@shopify/hydrogen": "2023.7.1",
37
- "@weaverse/react": "1.1.4",
37
+ "@weaverse/react": "1.1.5",
38
38
  "react-error-boundary": "^4.0.10"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@shopify/remix-oxygen": "^1.1.2"
42
42
  }
43
- }
43
+ }