@makeswift/runtime 0.9.4 → 0.9.6

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.
Files changed (179) hide show
  1. package/dist/Box.cjs.js +3 -3
  2. package/dist/Box.es.js +3 -3
  3. package/dist/Button.cjs.js +3 -3
  4. package/dist/Button.es.js +3 -3
  5. package/dist/Carousel.cjs.js +3 -3
  6. package/dist/Carousel.es.js +3 -3
  7. package/dist/Countdown.cjs.js +1 -1
  8. package/dist/Countdown.es.js +1 -1
  9. package/dist/Divider.cjs.js +3 -3
  10. package/dist/Divider.es.js +3 -3
  11. package/dist/Embed.cjs.js +1 -0
  12. package/dist/Embed.cjs.js.map +1 -1
  13. package/dist/Embed.es.js +1 -0
  14. package/dist/Embed.es.js.map +1 -1
  15. package/dist/Form.cjs.js +1 -1
  16. package/dist/Form.es.js +1 -1
  17. package/dist/Image.cjs.js +1 -1
  18. package/dist/Image.es.js +1 -1
  19. package/dist/LiveProvider.cjs.js +4 -4
  20. package/dist/LiveProvider.es.js +5 -5
  21. package/dist/Navigation.cjs.js +2 -2
  22. package/dist/Navigation.es.js +2 -2
  23. package/dist/PreviewProvider.cjs.js +8 -7
  24. package/dist/PreviewProvider.cjs.js.map +1 -1
  25. package/dist/PreviewProvider.es.js +11 -10
  26. package/dist/PreviewProvider.es.js.map +1 -1
  27. package/dist/ReadOnlyText.cjs.js +3 -2
  28. package/dist/ReadOnlyText.cjs.js.map +1 -1
  29. package/dist/ReadOnlyText.es.js +5 -4
  30. package/dist/ReadOnlyText.es.js.map +1 -1
  31. package/dist/ReadOnlyTextV2.cjs.js +12 -12
  32. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  33. package/dist/ReadOnlyTextV2.es.js +14 -14
  34. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  35. package/dist/Root.cjs.js +1 -1
  36. package/dist/Root.es.js +1 -1
  37. package/dist/SocialLinks.cjs.js +3 -3
  38. package/dist/SocialLinks.es.js +3 -3
  39. package/dist/Text.cjs.js +1 -1
  40. package/dist/Text.es.js +1 -1
  41. package/dist/Video.cjs.js +1 -0
  42. package/dist/Video.cjs.js.map +1 -1
  43. package/dist/Video.es.js +1 -0
  44. package/dist/Video.es.js.map +1 -1
  45. package/dist/actions.cjs.js +467 -3
  46. package/dist/actions.cjs.js.map +1 -1
  47. package/dist/actions.es.js +467 -4
  48. package/dist/actions.es.js.map +1 -1
  49. package/dist/api.cjs.js +20 -1
  50. package/dist/api.cjs.js.map +1 -1
  51. package/dist/api.es.js +20 -1
  52. package/dist/api.es.js.map +1 -1
  53. package/dist/box-model.cjs.js +1 -0
  54. package/dist/box-model.cjs.js.map +1 -1
  55. package/dist/box-model.es.js +1 -0
  56. package/dist/box-model.es.js.map +1 -1
  57. package/dist/builder.cjs.js +1 -0
  58. package/dist/builder.cjs.js.map +1 -1
  59. package/dist/builder.es.js +1 -0
  60. package/dist/builder.es.js.map +1 -1
  61. package/dist/components.cjs.js +1 -1
  62. package/dist/components.es.js +1 -1
  63. package/dist/control-serialization.cjs.js +1 -0
  64. package/dist/control-serialization.cjs.js.map +1 -1
  65. package/dist/control-serialization.es.js +1 -0
  66. package/dist/control-serialization.es.js.map +1 -1
  67. package/dist/controls.cjs.js +1 -0
  68. package/dist/controls.cjs.js.map +1 -1
  69. package/dist/controls.es.js +2 -1
  70. package/dist/controls.es.js.map +1 -1
  71. package/dist/index.cjs.js +71 -41
  72. package/dist/index.cjs.js.map +1 -1
  73. package/dist/index.cjs10.js +5 -4
  74. package/dist/index.cjs10.js.map +1 -1
  75. package/dist/index.cjs2.js +1 -0
  76. package/dist/index.cjs2.js.map +1 -1
  77. package/dist/index.cjs5.js +30 -14
  78. package/dist/index.cjs5.js.map +1 -1
  79. package/dist/index.cjs8.js +1 -1
  80. package/dist/index.cjs9.js +4 -4
  81. package/dist/index.es.js +74 -45
  82. package/dist/index.es.js.map +1 -1
  83. package/dist/index.es10.js +7 -6
  84. package/dist/index.es10.js.map +1 -1
  85. package/dist/index.es2.js +2 -1
  86. package/dist/index.es2.js.map +1 -1
  87. package/dist/index.es5.js +32 -16
  88. package/dist/index.es5.js.map +1 -1
  89. package/dist/index.es6.js +1 -1
  90. package/dist/index.es8.js +1 -1
  91. package/dist/index.es9.js +6 -6
  92. package/dist/main.cjs.js +1 -0
  93. package/dist/main.cjs.js.map +1 -1
  94. package/dist/main.es.js +1 -0
  95. package/dist/main.es.js.map +1 -1
  96. package/dist/next.cjs.js +1 -1
  97. package/dist/next.es.js +2 -2
  98. package/dist/prop-controllers.cjs.js +1 -0
  99. package/dist/prop-controllers.cjs.js.map +1 -1
  100. package/dist/prop-controllers.es.js +1 -0
  101. package/dist/prop-controllers.es.js.map +1 -1
  102. package/dist/react-page.cjs.js +27 -32
  103. package/dist/react-page.cjs.js.map +1 -1
  104. package/dist/react-page.es.js +27 -14
  105. package/dist/react-page.es.js.map +1 -1
  106. package/dist/react.cjs.js +1 -1
  107. package/dist/react.es.js +1 -1
  108. package/dist/slate.cjs.js +25 -67
  109. package/dist/slate.cjs.js.map +1 -1
  110. package/dist/slate.es.js +31 -71
  111. package/dist/slate.es.js.map +1 -1
  112. package/dist/state/breakpoints.cjs.js +14 -0
  113. package/dist/state/breakpoints.cjs.js.map +1 -1
  114. package/dist/state/breakpoints.es.js +14 -1
  115. package/dist/state/breakpoints.es.js.map +1 -1
  116. package/dist/types/src/api/graphql/documents/fragments.d.ts +1 -1
  117. package/dist/types/src/api/graphql/documents/fragments.d.ts.map +1 -1
  118. package/dist/types/src/api/graphql/documents/queries.d.ts.map +1 -1
  119. package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  120. package/dist/types/src/api/graphql/generated/types.d.ts +12 -0
  121. package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
  122. package/dist/types/src/api/react.d.ts +3 -1
  123. package/dist/types/src/api/react.d.ts.map +1 -1
  124. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  125. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  126. package/dist/types/src/components/page/Page.d.ts.map +1 -1
  127. package/dist/types/src/controls/icon-radio-group.d.ts +1 -1
  128. package/dist/types/src/controls/icon-radio-group.d.ts.map +1 -1
  129. package/dist/types/src/controls/link.d.ts +1 -1
  130. package/dist/types/src/controls/link.d.ts.map +1 -1
  131. package/dist/types/src/controls/select.d.ts +1 -1
  132. package/dist/types/src/controls/select.d.ts.map +1 -1
  133. package/dist/types/src/controls/typography.d.ts +1 -1
  134. package/dist/types/src/controls/typography.d.ts.map +1 -1
  135. package/dist/types/src/next/api-handler/index.d.ts.map +1 -1
  136. package/dist/types/src/next/client.d.ts +11 -2
  137. package/dist/types/src/next/client.d.ts.map +1 -1
  138. package/dist/types/src/next/index.d.ts.map +1 -1
  139. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  140. package/dist/types/src/runtimes/react/controls/style-v2.d.ts.map +1 -1
  141. package/dist/types/src/runtimes/react/controls/typography.d.ts +2 -2
  142. package/dist/types/src/runtimes/react/controls/typography.d.ts.map +1 -1
  143. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  144. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  145. package/dist/types/src/slate/InlinePlugin/getValue.d.ts +1 -1
  146. package/dist/types/src/slate/InlinePlugin/getValue.d.ts.map +1 -1
  147. package/dist/types/src/slate/LinkPlugin/getValue.d.ts.map +1 -1
  148. package/dist/types/src/slate/TextAlignPlugin/getValue.d.ts +4 -0
  149. package/dist/types/src/slate/TextAlignPlugin/getValue.d.ts.map +1 -0
  150. package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +1 -1
  151. package/dist/types/src/slate/TypographyPlugin/getValue.d.ts +4 -0
  152. package/dist/types/src/slate/TypographyPlugin/getValue.d.ts.map +1 -0
  153. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  154. package/dist/types/src/slate/index.d.ts +0 -1
  155. package/dist/types/src/slate/index.d.ts.map +1 -1
  156. package/dist/types/src/slate/utils/responsive.d.ts +3 -5
  157. package/dist/types/src/slate/utils/responsive.d.ts.map +1 -1
  158. package/dist/types/src/state/actions.d.ts +7 -7
  159. package/dist/types/src/state/actions.d.ts.map +1 -1
  160. package/dist/types/src/state/makeswift-api-client.d.ts +1 -1
  161. package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
  162. package/dist/types/src/state/modules/breakpoints.d.ts +2 -0
  163. package/dist/types/src/state/modules/breakpoints.d.ts.map +1 -1
  164. package/dist/types/src/state/modules/locales.d.ts +6 -7
  165. package/dist/types/src/state/modules/locales.d.ts.map +1 -1
  166. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  167. package/dist/types/src/state/react-page.d.ts +3 -1
  168. package/dist/types/src/state/react-page.d.ts.map +1 -1
  169. package/dist/types/types/locale.d.ts +9 -0
  170. package/dist/types/types/locale.d.ts.map +1 -0
  171. package/dist/types.cjs2.js +8 -11
  172. package/dist/types.cjs2.js.map +1 -1
  173. package/dist/types.es2.js +9 -12
  174. package/dist/types.es2.js.map +1 -1
  175. package/dist/typography.cjs.js.map +1 -1
  176. package/dist/typography.es.js.map +1 -1
  177. package/package.json +1 -1
  178. package/dist/types/src/slate/ColorPlugin/index.d.ts +0 -10
  179. package/dist/types/src/slate/ColorPlugin/index.d.ts.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -51,10 +51,8 @@ var types = require("./types.cjs.js");
51
51
  var state_breakpoints = require("./state/breakpoints.cjs.js");
52
52
  var boxModels = require("./box-models.cjs.js");
53
53
  var ColorHelper = require("color");
54
- var css = require("@emotion/css");
55
- require("@emotion/serialize");
56
- require("@emotion/utils");
57
54
  var scrollIntoView = require("scroll-into-view-if-needed");
55
+ var css = require("@emotion/css");
58
56
  var reactDom = require("react-dom");
59
57
  var parse = require("html-react-parser");
60
58
  var Head = require("next/head");
@@ -254,7 +252,7 @@ async function fetchJson(url) {
254
252
  }
255
253
  return response.json();
256
254
  }
257
- function fetchAPIResource(resourceType, resourceId) {
255
+ function fetchAPIResource(resourceType, resourceId, locale) {
258
256
  return async (dispatch, getState) => {
259
257
  const state = getState();
260
258
  if (getHasAPIResource(state, resourceType, resourceId)) {
@@ -272,7 +270,7 @@ function fetchAPIResource(resourceType, resourceId) {
272
270
  resource = await fetchJson(`/api/makeswift/typographies/${resourceId}`);
273
271
  break;
274
272
  case types.APIResourceType.GlobalElement:
275
- resource = await fetchJson(`/api/makeswift/global-elements/${resourceId}`);
273
+ resource = await fetchJson(`/api/makeswift/global-elements/${resourceId}?locale=${locale == null ? void 0 : locale.toString()}`);
276
274
  break;
277
275
  case types.APIResourceType.PagePathnameSlice:
278
276
  resource = await fetchJson(`/api/makeswift/page-pathname-slices/${resourceId}`);
@@ -366,6 +364,12 @@ const GlobalElementFragment = `
366
364
  __typename
367
365
  id
368
366
  data
367
+
368
+ localized(locale: $locale) {
369
+ __typename
370
+ id
371
+ data
372
+ }
369
373
  }
370
374
  `;
371
375
  const TableFragment = `
@@ -459,9 +463,15 @@ const TypographiesQuery = `
459
463
  ${TypographyFragment}
460
464
  `;
461
465
  const GlobalElementQuery = `
462
- query GlobalElement($globalElementId: ID!) {
466
+ query GlobalElement($globalElementId: ID!, $locale: Locale) {
463
467
  globalElement(id: $globalElementId) {
464
468
  ...GlobalElement
469
+
470
+ localized(locale: $locale) {
471
+ __typename
472
+ id
473
+ data
474
+ }
465
475
  }
466
476
  }
467
477
 
@@ -479,16 +489,19 @@ const CreateTableRecordMutation = `
479
489
  class MakeswiftClient {
480
490
  constructor({
481
491
  uri,
482
- cacheData
492
+ cacheData,
493
+ locale
483
494
  }) {
484
495
  __publicField(this, "graphqlClient");
485
496
  __publicField(this, "makeswiftApiClient");
486
497
  __publicField(this, "subscribe");
498
+ __publicField(this, "locale");
487
499
  this.graphqlClient = new GraphQLClient(uri);
488
500
  this.makeswiftApiClient = configureStore({
489
501
  serializedState: cacheData
490
502
  });
491
503
  this.subscribe = this.makeswiftApiClient.subscribe;
504
+ this.locale = locale;
492
505
  }
493
506
  readSwatch(swatchId) {
494
507
  return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.Swatch, swatchId);
@@ -512,7 +525,7 @@ class MakeswiftClient {
512
525
  return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.GlobalElement, globalElementId);
513
526
  }
514
527
  async fetchGlobalElement(globalElementId) {
515
- return await this.makeswiftApiClient.dispatch(fetchAPIResource(types.APIResourceType.GlobalElement, globalElementId));
528
+ return await this.makeswiftApiClient.dispatch(fetchAPIResource(types.APIResourceType.GlobalElement, globalElementId, this.locale));
516
529
  }
517
530
  readPagePathnameSlice(pageId) {
518
531
  return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.PagePathnameSlice, pageId);
@@ -599,7 +612,7 @@ const filterUsedSnippetProperties = ({
599
612
  function Page$1({
600
613
  document: page
601
614
  }) {
602
- var _a;
615
+ var _a, _b;
603
616
  const isInBuilder = useIsInBuilder();
604
617
  const [snippets, setSnippets] = React.useState(page.snippets);
605
618
  const cachedPage = useCachedPage(isInBuilder ? page.id : null);
@@ -661,6 +674,10 @@ function Page$1({
661
674
  });
662
675
  previousHeadSnippets.current = headSnippets;
663
676
  }, [headSnippets]);
677
+ const baseLocalizedPage = page.localizedPages.find(({
678
+ parentId
679
+ }) => parentId == null);
680
+ const documentId = (_b = baseLocalizedPage == null ? void 0 : baseLocalizedPage.elementTreeId) != null ? _b : page.id;
664
681
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
665
682
  children: [/* @__PURE__ */ jsxRuntime.jsxs(Head__default["default"], {
666
683
  children: [/* @__PURE__ */ jsxRuntime.jsx("style", {
@@ -742,7 +759,7 @@ function Page$1({
742
759
  return null;
743
760
  }))]
744
761
  }), /* @__PURE__ */ jsxRuntime.jsx(DocumentReference, {
745
- documentReference: reactPage.createDocumentReference(page.id)
762
+ documentReference: reactPage.createDocumentReference(documentId)
746
763
  }), filteredSnippets.filter((snippet) => snippet.location === SnippetLocation.Body).map((snippet) => /* @__PURE__ */ jsxRuntime.jsx(BodySnippet, {
747
764
  code: snippet.code,
748
765
  cleanup: snippet.cleanup
@@ -944,7 +961,8 @@ Received "${apiKey}" instead.`);
944
961
  const swatches = await this.getSwatches(swatchIds, preview);
945
962
  return __spreadProps(__spreadValues({}, result), { swatches });
946
963
  }
947
- async introspect(element, preview) {
964
+ async introspect(element, preview, locale) {
965
+ var _a, _b;
948
966
  const runtime = this.runtime;
949
967
  const descriptors = reactPage.getPropControllerDescriptors(runtime.store.getState());
950
968
  const swatchIds = /* @__PURE__ */ new Set();
@@ -976,9 +994,9 @@ Received "${apiKey}" instead.`);
976
994
  };
977
995
  let element2;
978
996
  if (reactPage.isElementReference(current)) {
979
- const globalElement = await this.getGlobalElement(current.value);
997
+ const globalElement = await this.getGlobalElement(current.value, locale);
980
998
  globalElements.set(current.value, globalElement);
981
- const elementData = globalElement == null ? void 0 : globalElement.data;
999
+ const elementData = (_b = (_a = globalElement == null ? void 0 : globalElement.localized) == null ? void 0 : _a.data) != null ? _b : globalElement == null ? void 0 : globalElement.data;
982
1000
  if (elementData == null)
983
1001
  continue;
984
1002
  element2 = elementData;
@@ -993,8 +1011,8 @@ Received "${apiKey}" instead.`);
993
1011
  const typographies = await this.getTypographies([...typographyIds]);
994
1012
  typographies.forEach((typography2) => {
995
1013
  typography2 == null ? void 0 : typography2.style.forEach((style) => {
996
- var _a;
997
- const swatchId = (_a = style.value.color) == null ? void 0 : _a.swatchId;
1014
+ var _a2;
1015
+ const swatchId = (_a2 = style.value.color) == null ? void 0 : _a2.swatchId;
998
1016
  if (swatchId != null)
999
1017
  swatchIds.add(swatchId);
1000
1018
  });
@@ -1010,38 +1028,38 @@ Received "${apiKey}" instead.`);
1010
1028
  }));
1011
1029
  return {
1012
1030
  [types.APIResourceType.Swatch]: [...swatchIds].map((id) => {
1013
- var _a;
1031
+ var _a2;
1014
1032
  return {
1015
1033
  id,
1016
- value: (_a = swatches.find((swatch) => (swatch == null ? void 0 : swatch.id) === id)) != null ? _a : null
1034
+ value: (_a2 = swatches.find((swatch) => (swatch == null ? void 0 : swatch.id) === id)) != null ? _a2 : null
1017
1035
  };
1018
1036
  }),
1019
1037
  [types.APIResourceType.File]: [...fileIds].map((id) => {
1020
- var _a;
1038
+ var _a2;
1021
1039
  return {
1022
1040
  id,
1023
- value: (_a = files.find((file) => (file == null ? void 0 : file.id) === id)) != null ? _a : null
1041
+ value: (_a2 = files.find((file) => (file == null ? void 0 : file.id) === id)) != null ? _a2 : null
1024
1042
  };
1025
1043
  }),
1026
1044
  [types.APIResourceType.Typography]: [...typographyIds].map((id) => {
1027
- var _a;
1045
+ var _a2;
1028
1046
  return {
1029
1047
  id,
1030
- value: (_a = typographies.find((typography2) => (typography2 == null ? void 0 : typography2.id) === id)) != null ? _a : null
1048
+ value: (_a2 = typographies.find((typography2) => (typography2 == null ? void 0 : typography2.id) === id)) != null ? _a2 : null
1031
1049
  };
1032
1050
  }),
1033
1051
  [types.APIResourceType.Table]: [...tableIds].map((id) => {
1034
- var _a;
1052
+ var _a2;
1035
1053
  return {
1036
1054
  id,
1037
- value: (_a = tables.find((table) => (table == null ? void 0 : table.id) === id)) != null ? _a : null
1055
+ value: (_a2 = tables.find((table) => (table == null ? void 0 : table.id) === id)) != null ? _a2 : null
1038
1056
  };
1039
1057
  }),
1040
1058
  [types.APIResourceType.PagePathnameSlice]: [...pageIds].map((id) => {
1041
- var _a;
1059
+ var _a2;
1042
1060
  return {
1043
1061
  id,
1044
- value: (_a = pagePathnameSlices.find((pagePathnameSlice) => (pagePathnameSlice == null ? void 0 : pagePathnameSlice.id) === id)) != null ? _a : null
1062
+ value: (_a2 = pagePathnameSlices.find((pagePathnameSlice) => (pagePathnameSlice == null ? void 0 : pagePathnameSlice.id) === id)) != null ? _a2 : null
1045
1063
  };
1046
1064
  }),
1047
1065
  [types.APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({
@@ -1050,10 +1068,16 @@ Received "${apiKey}" instead.`);
1050
1068
  }))
1051
1069
  };
1052
1070
  }
1053
- async getPageSnapshot(pathname, { preview: previewOverride = false } = {}) {
1071
+ async getPageSnapshot(pathname, {
1072
+ preview: previewOverride = false,
1073
+ unstable_locale
1074
+ } = {}) {
1054
1075
  var _a;
1055
1076
  const siteVersion = (_a = this.siteVersion) != null ? _a : previewOverride ? MakeswiftSiteVersion.Working : MakeswiftSiteVersion.Live;
1056
- const response = await this.fetch(`/v2/pages/${encodeURIComponent(pathname)}/document`, {
1077
+ const searchParams = new URLSearchParams();
1078
+ if (unstable_locale)
1079
+ searchParams.set("locale", unstable_locale);
1080
+ const response = await this.fetch(`/v2/pages/${encodeURIComponent(pathname)}/document?${searchParams.toString()}`, {
1057
1081
  headers: { "Makeswift-Site-Version": siteVersion }
1058
1082
  });
1059
1083
  if (!response.ok) {
@@ -1063,10 +1087,10 @@ Received "${apiKey}" instead.`);
1063
1087
  throw new Error(`Failed to get page snapshot with error: "${response.statusText}"`);
1064
1088
  }
1065
1089
  const document2 = await response.json();
1066
- const cacheData = await this.introspect(document2.data, previewOverride);
1090
+ const cacheData = await this.introspect(document2.data, previewOverride, unstable_locale);
1067
1091
  const apiOrigin = this.apiOrigin.href;
1068
1092
  const preview = siteVersion === MakeswiftSiteVersion.Working;
1069
- return { document: document2, cacheData, apiOrigin, preview };
1093
+ return { document: document2, cacheData, apiOrigin, preview, locale: unstable_locale != null ? unstable_locale : null };
1070
1094
  }
1071
1095
  async getSwatch(swatchId) {
1072
1096
  const response = await this.fetch(`v1/swatches/${swatchId}`);
@@ -1086,8 +1110,8 @@ Received "${apiKey}" instead.`);
1086
1110
  const result = await this.graphqlClient.request(TypographyQuery, { typographyId });
1087
1111
  return result.typography;
1088
1112
  }
1089
- async getGlobalElement(globalElementId) {
1090
- const result = await this.graphqlClient.request(GlobalElementQuery, { globalElementId });
1113
+ async getGlobalElement(globalElementId, locale) {
1114
+ const result = await this.graphqlClient.request(GlobalElementQuery, { globalElementId, locale: locale != null ? locale : null });
1091
1115
  return result.globalElement;
1092
1116
  }
1093
1117
  async getPagePathnameSlice(pageId) {
@@ -1154,7 +1178,7 @@ async function fonts(_req, res, { getFonts } = {}) {
1154
1178
  const fonts2 = (_a = await (getFonts == null ? void 0 : getFonts())) != null ? _a : [];
1155
1179
  return res.json(fonts2);
1156
1180
  }
1157
- const version = "0.9.4";
1181
+ const version = "0.9.6";
1158
1182
  async function handler(req, res, { apiKey, unstable_siteVersions }) {
1159
1183
  if (req.query.secret !== apiKey) {
1160
1184
  return res.status(401).json({ message: "Unauthorized" });
@@ -1291,7 +1315,8 @@ Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/d
1291
1315
  return client.getTypography(m.params.id).then(handleResource);
1292
1316
  }
1293
1317
  if (m = matches("/global-elements/:id")) {
1294
- return client.getGlobalElement(m.params.id).then(handleResource);
1318
+ const locale = typeof req.query.locale === "string" ? req.query.locale : void 0;
1319
+ return client.getGlobalElement(m.params.id, locale).then(handleResource);
1295
1320
  }
1296
1321
  if (m = matches("/page-pathname-slices/:id")) {
1297
1322
  return client.getPagePathnameSlice(m.params.id).then(handleResource);
@@ -1423,11 +1448,16 @@ const Page = React.memo(({
1423
1448
  }) => {
1424
1449
  const client = React.useMemo(() => new MakeswiftClient({
1425
1450
  uri: new URL("graphql", snapshot.apiOrigin).href,
1426
- cacheData: snapshot.cacheData
1451
+ cacheData: snapshot.cacheData,
1452
+ locale: snapshot.locale == null ? void 0 : new Intl.Locale(snapshot.locale)
1427
1453
  }), [snapshot]);
1454
+ const rootElements = /* @__PURE__ */ new Map([[snapshot.document.id, snapshot.document.data]]);
1455
+ snapshot.document.localizedPages.forEach((localizedPage) => {
1456
+ rootElements.set(localizedPage.elementTreeId, localizedPage.data);
1457
+ });
1428
1458
  return /* @__PURE__ */ jsxRuntime.jsx(RuntimeProvider, {
1429
1459
  client,
1430
- rootElements: /* @__PURE__ */ new Map([[snapshot.document.id, snapshot.document.data]]),
1460
+ rootElements,
1431
1461
  preview: snapshot.preview,
1432
1462
  runtime,
1433
1463
  children: /* @__PURE__ */ jsxRuntime.jsx(Page$1, {
@@ -3344,10 +3374,10 @@ function SlotPlaceholder({
3344
3374
  function useStyleControlCssObject(styleControlData, controlDefinition) {
3345
3375
  var _a;
3346
3376
  const breakpoints = useBreakpoints();
3347
- return __spreadValues(__spreadValues({}, controlDefinition.config.getStyle((_a = state_breakpoints.findBreakpointOverride(breakpoints, styleControlData, state_breakpoints.getBaseBreakpoint(breakpoints).id)) == null ? void 0 : _a.value)), breakpoints.reduce((styles, breakpoint) => {
3377
+ return __spreadValues(__spreadValues({}, controlDefinition.config.getStyle((_a = state_breakpoints.findBreakpointOverride(breakpoints, styleControlData, state_breakpoints.getBaseBreakpoint(breakpoints).id, state_breakpoints.mergeOrCoalesceFallbacks)) == null ? void 0 : _a.value)), breakpoints.reduce((styles, breakpoint) => {
3348
3378
  var _a2;
3349
3379
  return __spreadProps(__spreadValues({}, styles), {
3350
- [state_breakpoints.getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle((_a2 = state_breakpoints.findBreakpointOverride(breakpoints, styleControlData, breakpoint.id)) == null ? void 0 : _a2.value)
3380
+ [state_breakpoints.getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle((_a2 = state_breakpoints.findBreakpointOverride(breakpoints, styleControlData, breakpoint.id, state_breakpoints.mergeOrCoalesceFallbacks)) == null ? void 0 : _a2.value)
3351
3381
  });
3352
3382
  }, {}));
3353
3383
  }
@@ -3918,9 +3948,7 @@ class ReactRuntime {
3918
3948
  __publicField(this, "store");
3919
3949
  this.store = reactPage.configureStore({
3920
3950
  breakpoints: breakpoints ? state_breakpoints.parseBreakpointsInput(breakpoints) : void 0,
3921
- locales: unstable_i18n ? __spreadProps(__spreadValues({}, unstable_i18n), {
3922
- locale: null
3923
- }) : void 0
3951
+ locales: unstable_i18n ? reactPage.parseLocalesInput(unstable_i18n) : void 0
3924
3952
  });
3925
3953
  registerBuiltinComponents(this);
3926
3954
  }
@@ -4085,8 +4113,9 @@ const DisableRegisterElement = React.createContext(false);
4085
4113
  const ElementReference = React.memo(React.forwardRef(function ElementReference2({
4086
4114
  elementReference
4087
4115
  }, ref) {
4116
+ var _a, _b;
4088
4117
  const globalElement = useGlobalElement(elementReference.value);
4089
- const globalElementData = globalElement == null ? void 0 : globalElement.data;
4118
+ const globalElementData = (_b = (_a = globalElement == null ? void 0 : globalElement.localized) == null ? void 0 : _a.data) != null ? _b : globalElement == null ? void 0 : globalElement.data;
4090
4119
  const elementReferenceDocument = useDocument(elementReference.key);
4091
4120
  const documentKey = elementReference.key;
4092
4121
  const documentKeys = React.useContext(DocumentCyclesContext);
@@ -4220,6 +4249,7 @@ exports.getServerSideProps = getServerSideProps;
4220
4249
  exports.getStaticPaths = getStaticPaths;
4221
4250
  exports.getStaticProps = getStaticProps;
4222
4251
  exports.pollBoxModel = pollBoxModel;
4252
+ exports.shallowEqual = shallowEqual;
4223
4253
  exports.useBorder = useBorder;
4224
4254
  exports.useBoxShadow = useBoxShadow;
4225
4255
  exports.useBreakpoints = useBreakpoints;