@makeswift/runtime 0.4.2 → 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.
Files changed (121) hide show
  1. package/dist/Box.cjs.js +35 -273
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +34 -272
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +4 -4
  6. package/dist/Button.es.js +5 -5
  7. package/dist/Carousel.cjs.js +8 -7
  8. package/dist/Carousel.cjs.js.map +1 -1
  9. package/dist/Carousel.es.js +7 -6
  10. package/dist/Carousel.es.js.map +1 -1
  11. package/dist/Countdown.cjs.js +3 -3
  12. package/dist/Countdown.es.js +4 -4
  13. package/dist/Divider.cjs.js +3 -3
  14. package/dist/Divider.es.js +4 -4
  15. package/dist/Embed.cjs.js +5 -4
  16. package/dist/Embed.cjs.js.map +1 -1
  17. package/dist/Embed.es.js +5 -4
  18. package/dist/Embed.es.js.map +1 -1
  19. package/dist/Form.cjs.js +4 -4
  20. package/dist/Form.es.js +5 -5
  21. package/dist/Image.cjs.js +21 -13
  22. package/dist/Image.cjs.js.map +1 -1
  23. package/dist/Image.es.js +22 -14
  24. package/dist/Image.es.js.map +1 -1
  25. package/dist/LiveProvider.cjs.js +62 -0
  26. package/dist/LiveProvider.cjs.js.map +1 -0
  27. package/dist/LiveProvider.es.js +60 -0
  28. package/dist/LiveProvider.es.js.map +1 -0
  29. package/dist/Navigation.cjs.js +9 -6
  30. package/dist/Navigation.cjs.js.map +1 -1
  31. package/dist/Navigation.es.js +9 -6
  32. package/dist/Navigation.es.js.map +1 -1
  33. package/dist/{react-builder-preview.cjs.js → PreviewProvider.cjs.js} +43 -16
  34. package/dist/PreviewProvider.cjs.js.map +1 -0
  35. package/dist/{react-builder-preview.es.js → PreviewProvider.es.js} +47 -15
  36. package/dist/PreviewProvider.es.js.map +1 -0
  37. package/dist/Root.cjs.js +10 -8
  38. package/dist/Root.cjs.js.map +1 -1
  39. package/dist/Root.es.js +8 -6
  40. package/dist/Root.es.js.map +1 -1
  41. package/dist/SocialLinks.cjs.js +5 -5
  42. package/dist/SocialLinks.es.js +6 -6
  43. package/dist/Text.cjs.js +4 -4
  44. package/dist/Text.cjs.js.map +1 -1
  45. package/dist/Text.es.js +5 -5
  46. package/dist/Text.es.js.map +1 -1
  47. package/dist/Video.cjs.js +3 -3
  48. package/dist/Video.es.js +4 -4
  49. package/dist/actions.es.js +1 -1
  50. package/dist/components.cjs.js +15 -12
  51. package/dist/components.cjs.js.map +1 -1
  52. package/dist/components.es.js +14 -11
  53. package/dist/components.es.js.map +1 -1
  54. package/dist/index.cjs.js +70 -69
  55. package/dist/index.cjs.js.map +1 -1
  56. package/dist/index.cjs2.js +710 -92
  57. package/dist/index.cjs2.js.map +1 -1
  58. package/dist/index.cjs3.js +107 -20
  59. package/dist/index.cjs3.js.map +1 -1
  60. package/dist/index.cjs4.js +59 -0
  61. package/dist/index.cjs4.js.map +1 -0
  62. package/dist/index.es.js +65 -68
  63. package/dist/index.es.js.map +1 -1
  64. package/dist/index.es2.js +707 -93
  65. package/dist/index.es2.js.map +1 -1
  66. package/dist/index.es3.js +103 -21
  67. package/dist/index.es3.js.map +1 -1
  68. package/dist/index.es4.js +58 -0
  69. package/dist/index.es4.js.map +1 -0
  70. package/dist/next-version.cjs.js +10 -0
  71. package/dist/next-version.cjs.js.map +1 -0
  72. package/dist/next-version.es.js +5 -0
  73. package/dist/next-version.es.js.map +1 -0
  74. package/dist/next.cjs.js +3 -3
  75. package/dist/next.es.js +4 -4
  76. package/dist/react-page.es.js +1 -1
  77. package/dist/react.cjs.js +4 -4
  78. package/dist/react.es.js +4 -4
  79. package/dist/types/src/components/builtin/Box/Box.d.ts +18 -26
  80. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  81. package/dist/types/src/components/builtin/Box/animations.d.ts +13 -60
  82. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  83. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  84. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  85. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  86. package/dist/types/src/components/hooks/useMediaQuery.d.ts +1 -1
  87. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -1
  88. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  89. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +1 -254
  90. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  91. package/dist/types/src/components/shared/Link/index.d.ts.map +1 -1
  92. package/dist/types/src/components/shared/grid-item.d.ts +9 -6
  93. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -1
  94. package/dist/types/src/next/client.d.ts +1 -0
  95. package/dist/types/src/next/client.d.ts.map +1 -1
  96. package/dist/types/src/next/index.d.ts.map +1 -1
  97. package/dist/types/src/next/next-version.d.ts +3 -0
  98. package/dist/types/src/next/next-version.d.ts.map +1 -0
  99. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts +11 -0
  100. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +1 -0
  101. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts +11 -0
  102. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts.map +1 -0
  103. package/dist/types/src/runtimes/react/index.d.ts +3 -1
  104. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  105. package/dist/types/src/state/react-builder-preview.d.ts +3 -1
  106. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  107. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  108. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  109. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  110. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  111. package/package.json +4 -4
  112. package/dist/grid-item.cjs.js +0 -592
  113. package/dist/grid-item.cjs.js.map +0 -1
  114. package/dist/grid-item.es.js +0 -584
  115. package/dist/grid-item.es.js.map +0 -1
  116. package/dist/react-builder-preview.cjs.js.map +0 -1
  117. package/dist/react-builder-preview.es.js.map +0 -1
  118. package/dist/useMediaQuery.cjs.js +0 -26
  119. package/dist/useMediaQuery.cjs.js.map +0 -1
  120. package/dist/useMediaQuery.es.js +0 -25
  121. package/dist/useMediaQuery.es.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -38,20 +38,20 @@ var __publicField = (obj, key, value) => {
38
38
  var _c;
39
39
  var React = require("react");
40
40
  var withSelector = require("use-sync-external-store/shim/with-selector");
41
+ var dynamic = require("next/dynamic");
41
42
  var reactPage = require("./react-page.cjs.js");
42
43
  var actions = require("./actions.cjs.js");
43
- var dynamic = require("next/dynamic");
44
- var slate = require("slate");
44
+ var css = require("@emotion/css");
45
+ var jsxRuntime = require("react/jsx-runtime");
45
46
  var slot = require("./slot.cjs.js");
47
+ var textInput = require("./text-input.cjs.js");
48
+ var combobox = require("./combobox.cjs.js");
46
49
  var control = require("./control.cjs.js");
50
+ var shim = require("use-sync-external-store/shim");
51
+ var slate = require("slate");
47
52
  var redux = require("redux");
48
53
  var thunk = require("redux-thunk");
49
54
  var types = require("./types.cjs.js");
50
- var jsxRuntime = require("react/jsx-runtime");
51
- var css = require("@emotion/css");
52
- var textInput = require("./text-input.cjs.js");
53
- var combobox = require("./combobox.cjs.js");
54
- var shim = require("use-sync-external-store/shim");
55
55
  var ColorHelper = require("color");
56
56
  var scrollIntoView = require("scroll-into-view-if-needed");
57
57
  var boxModels = require("./box-models.cjs.js");
@@ -682,17 +682,17 @@ class MakeswiftClient {
682
682
  return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.Snippet, snippetId);
683
683
  }
684
684
  }
685
- const Context$2 = React.createContext(new MakeswiftClient({
685
+ const Context$1 = React.createContext(new MakeswiftClient({
686
686
  uri: "https://api.makeswift.com/graphql"
687
687
  }));
688
688
  function useMakeswiftClient() {
689
- return React.useContext(Context$2);
689
+ return React.useContext(Context$1);
690
690
  }
691
691
  function MakeswiftProvider({
692
692
  client,
693
693
  children
694
694
  }) {
695
- return /* @__PURE__ */ jsxRuntime.jsx(Context$2.Provider, {
695
+ return /* @__PURE__ */ jsxRuntime.jsx(Context$1.Provider, {
696
696
  value: client,
697
697
  children
698
698
  });
@@ -964,10 +964,10 @@ Received "${apiKey}" instead.`);
964
964
  const json = await response.json();
965
965
  return json;
966
966
  }
967
- async createSnapshot(document2) {
967
+ async createSnapshot(document2, preview) {
968
968
  const client = new MakeswiftClient({ uri: new URL("graphql", this.apiOrigin).href });
969
969
  const cacheData = await client.prefetch(document2.data);
970
- return { document: document2, apiOrigin: this.apiOrigin.href, cacheData };
970
+ return { document: document2, apiOrigin: this.apiOrigin.href, cacheData, preview };
971
971
  }
972
972
  async getPageSnapshotByPageId(pageId, { preview = false } = {}) {
973
973
  const searchParams = new URLSearchParams({ preview: String(preview) });
@@ -978,7 +978,7 @@ Received "${apiKey}" instead.`);
978
978
  throw new Error(`Failed to get snapshot with error: "${response.statusText}"`);
979
979
  }
980
980
  const document2 = await response.json();
981
- return await this.createSnapshot(document2);
981
+ return await this.createSnapshot(document2, preview);
982
982
  }
983
983
  async getPageSnapshot(path, { preview } = {}) {
984
984
  const [page] = await this.getPages({ path });
@@ -1085,7 +1085,7 @@ class Document$1 extends NextDocument__default["default"] {
1085
1085
  });
1086
1086
  }
1087
1087
  }
1088
- const version = "0.4.2";
1088
+ const version = "0.5.1";
1089
1089
  function isErrorWithMessage(error) {
1090
1090
  return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string";
1091
1091
  }
@@ -1103,7 +1103,7 @@ function MakeswiftApiHandler(apiKey, { appOrigin = "https://app.makeswift.com",
1103
1103
  Received "${apiKey}" instead.`);
1104
1104
  }
1105
1105
  return async function makeswiftApiHandler(req, res) {
1106
- var _a, _b;
1106
+ var _a;
1107
1107
  await new Promise((resolve2, reject) => {
1108
1108
  cors(req, res, (err) => {
1109
1109
  if (err instanceof Error)
@@ -1135,7 +1135,7 @@ Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/d
1135
1135
  if (typeof req.query.path !== "string") {
1136
1136
  return res.status(400).json({ message: "Bad Request" });
1137
1137
  }
1138
- const revalidate = (_a = res.revalidate) != null ? _a : res.unstable_revalidate;
1138
+ const revalidate = res.revalidate;
1139
1139
  if (typeof revalidate !== "function") {
1140
1140
  const message = `Cannot revalidate path "${req.query.path}" because \`revalidate\` function does not exist in API handler response. Please update to Next.js v12.2.0 or higher for support for on-demand revalidation.
1141
1141
  Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-regeneration-stable`;
@@ -1182,7 +1182,7 @@ Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-r
1182
1182
  }));
1183
1183
  }
1184
1184
  case "fonts": {
1185
- const fonts = (_b = await (getFonts == null ? void 0 : getFonts())) != null ? _b : [];
1185
+ const fonts = (_a = await (getFonts == null ? void 0 : getFonts())) != null ? _a : [];
1186
1186
  return res.json(fonts);
1187
1187
  }
1188
1188
  case "element-tree": {
@@ -1329,6 +1329,7 @@ const Page = React.memo(({
1329
1329
  return /* @__PURE__ */ jsxRuntime.jsx(RuntimeProvider, {
1330
1330
  client,
1331
1331
  rootElements: /* @__PURE__ */ new Map([[snapshot.document.id, snapshot.document.data]]),
1332
+ preview: snapshot.preview,
1332
1333
  children: /* @__PURE__ */ jsxRuntime.jsx(Page$1, {
1333
1334
  document: snapshot.document
1334
1335
  })
@@ -1885,11 +1886,11 @@ const Contrasts = Object.freeze({
1885
1886
  LIGHT: "light",
1886
1887
  DARK: "dark"
1887
1888
  });
1888
- const Context$1 = React.createContext({});
1889
+ const Context = React.createContext({});
1889
1890
  function useFormContext() {
1890
- return React.useContext(Context$1);
1891
+ return React.useContext(Context);
1891
1892
  }
1892
- const { Provider } = Context$1;
1893
+ const { Provider } = Context;
1893
1894
  function registerComponent$6(runtime) {
1894
1895
  return runtime.registerComponent(forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
1895
1896
  return require("./Form.cjs.js");
@@ -2880,8 +2881,35 @@ function useResponsiveColor(color) {
2880
2881
  return swatch == null ? null : __spreadProps(__spreadValues({}, rest), { value: { swatch, alpha } });
2881
2882
  }).filter(reactPage.isNonNullable);
2882
2883
  }
2883
- const isSSR = typeof window === "undefined" || /ServerSideRendering/.test(window.navigator && window.navigator.userAgent);
2884
- const useIsomorphicLayoutEffect = isSSR ? React.useEffect : React.useLayoutEffect;
2884
+ const DEVICE_QUERIES = DEVICES.map((device) => ({
2885
+ id: device.id,
2886
+ query: getDeviceMediaQuery(device).replace("@media", "")
2887
+ }));
2888
+ function subscribe(notify) {
2889
+ const cleanUpFns = DEVICE_QUERIES.map((q) => {
2890
+ const mediaQueryList = window.matchMedia(q.query);
2891
+ mediaQueryList.addEventListener("change", notify);
2892
+ return () => mediaQueryList.removeEventListener("change", notify);
2893
+ });
2894
+ return () => cleanUpFns.forEach((fn) => fn());
2895
+ }
2896
+ function useMediaQuery(responsiveValue) {
2897
+ const getServerSnapshot = () => {
2898
+ var _a;
2899
+ return (_a = findDeviceOverride(responsiveValue, DEVICES[0].id)) == null ? void 0 : _a.value;
2900
+ };
2901
+ function getSnapshot() {
2902
+ var _a;
2903
+ const deviceId = DEVICE_QUERIES.reduce((matchedDevice, deviceQueries) => {
2904
+ if (window.matchMedia(deviceQueries.query).matches) {
2905
+ return deviceQueries.id;
2906
+ }
2907
+ return matchedDevice;
2908
+ }, DEVICE_QUERIES[0].id);
2909
+ return (_a = findDeviceOverride(responsiveValue, deviceId)) == null ? void 0 : _a.value;
2910
+ }
2911
+ return shim.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
2912
+ }
2885
2913
  const getIndexes = (spans, index) => {
2886
2914
  const flattened = spans.reduce((a, s) => a.concat(s), []);
2887
2915
  if (index < 0 || index > flattened.length)
@@ -3787,49 +3815,20 @@ function createReactRuntime(store) {
3787
3815
  }
3788
3816
  const ReactRuntime = createReactRuntime(storeContextDefaultValue);
3789
3817
  registerBuiltinComponents(ReactRuntime);
3790
- const Context = React.createContext(storeContextDefaultValue);
3791
- function RuntimeProvider({
3792
- client,
3793
- children,
3794
- rootElements
3795
- }) {
3796
- const [store, setStore] = React.useState(() => {
3797
- const store2 = reactPage.configureStore({
3798
- preloadedState: storeContextDefaultValue.getState(),
3799
- rootElements
3800
- });
3801
- return store2;
3802
- });
3803
- React.useEffect(() => {
3804
- var _a;
3805
- const unregisterDocuments = Array.from((_a = rootElements == null ? void 0 : rootElements.entries()) != null ? _a : []).map(([documentKey, rootElement]) => store.dispatch(actions.registerDocumentEffect(reactPage.createDocument(documentKey, rootElement))));
3806
- return () => {
3807
- unregisterDocuments.forEach((unregisterDocument) => {
3808
- unregisterDocument();
3809
- });
3810
- };
3811
- }, [store, rootElements]);
3812
- React.useEffect(() => {
3813
- const isInBuilder = window.parent !== window;
3814
- if (isInBuilder)
3815
- setReactBuilderPreviewStore();
3816
- async function setReactBuilderPreviewStore() {
3817
- const ReactBuilderPreview = await Promise.resolve().then(function() {
3818
- return require("./react-builder-preview.cjs.js");
3819
- });
3820
- setStore((store2) => ReactBuilderPreview.configureStore({
3821
- preloadedState: store2.getState(),
3822
- client
3823
- }));
3824
- }
3825
- }, [client]);
3826
- return /* @__PURE__ */ jsxRuntime.jsx(Context.Provider, {
3827
- value: store,
3828
- children: /* @__PURE__ */ jsxRuntime.jsx(MakeswiftProvider, {
3829
- client,
3830
- children
3831
- })
3832
- });
3818
+ const StoreContext = React.createContext(storeContextDefaultValue);
3819
+ const PreviewProvider = dynamic__default["default"](() => Promise.resolve().then(function() {
3820
+ return require("./PreviewProvider.cjs.js");
3821
+ }));
3822
+ const LiveProvider = dynamic__default["default"](() => Promise.resolve().then(function() {
3823
+ return require("./LiveProvider.cjs.js");
3824
+ }));
3825
+ function RuntimeProvider(_j) {
3826
+ var _k = _j, {
3827
+ preview
3828
+ } = _k, props = __objRest(_k, [
3829
+ "preview"
3830
+ ]);
3831
+ return preview ? /* @__PURE__ */ jsxRuntime.jsx(PreviewProvider, __spreadValues({}, props)) : /* @__PURE__ */ jsxRuntime.jsx(LiveProvider, __spreadValues({}, props));
3833
3832
  }
3834
3833
  const PageContext = React.createContext(null);
3835
3834
  function usePageIdOrNull() {
@@ -3855,7 +3854,7 @@ function useDocumentKey() {
3855
3854
  return React.useContext(DocumentContext);
3856
3855
  }
3857
3856
  function useStore() {
3858
- return React.useContext(Context);
3857
+ return React.useContext(StoreContext);
3859
3858
  }
3860
3859
  function useSelector(selector) {
3861
3860
  const store = useStore();
@@ -3875,7 +3874,7 @@ function useIsInBuilder() {
3875
3874
  return useSelector((state) => reactPage.getIsInBuilder(state));
3876
3875
  }
3877
3876
  function useDispatch() {
3878
- const store = React.useContext(Context);
3877
+ const store = React.useContext(StoreContext);
3879
3878
  return store.dispatch;
3880
3879
  }
3881
3880
  const originalError = console.error;
@@ -4012,6 +4011,7 @@ exports.Makeswift = Makeswift;
4012
4011
  exports.MakeswiftApiHandler = MakeswiftApiHandler;
4013
4012
  exports.MakeswiftClient = MakeswiftClient;
4014
4013
  exports.MakeswiftComponentType = MakeswiftComponentType;
4014
+ exports.MakeswiftProvider = MakeswiftProvider;
4015
4015
  exports.Page = Page$1;
4016
4016
  exports.Page$1 = Page;
4017
4017
  exports.PageProvider = PageProvider;
@@ -4021,11 +4021,11 @@ exports.ReactRuntime = ReactRuntime;
4021
4021
  exports.RuntimeProvider = RuntimeProvider;
4022
4022
  exports.Shapes = Shapes;
4023
4023
  exports.Sizes = Sizes;
4024
+ exports.StoreContext = StoreContext;
4024
4025
  exports.colorToString = colorToString;
4025
4026
  exports.deepEqual = deepEqual;
4026
4027
  exports.findDeviceOverride = findDeviceOverride;
4027
4028
  exports.forwardNextDynamicRef = forwardNextDynamicRef;
4028
- exports.getDeviceMediaQuery = getDeviceMediaQuery;
4029
4029
  exports.getServerSideProps = getServerSideProps;
4030
4030
  exports.getStaticPaths = getStaticPaths;
4031
4031
  exports.getStaticProps = getStaticProps;
@@ -4036,6 +4036,7 @@ exports.responsiveTextStyle = responsiveTextStyle;
4036
4036
  exports.responsiveWidth = responsiveWidth;
4037
4037
  exports.serializeStyles = serializeStyles;
4038
4038
  exports.shallowMergeFallbacks = shallowMergeFallbacks;
4039
+ exports.storeContextDefaultValue = storeContextDefaultValue;
4039
4040
  exports.useBorder = useBorder;
4040
4041
  exports.useBoxShadow = useBoxShadow;
4041
4042
  exports.useElementId = useElementId;
@@ -4043,8 +4044,8 @@ exports.useFile = useFile;
4043
4044
  exports.useFiles = useFiles;
4044
4045
  exports.useFormContext = useFormContext;
4045
4046
  exports.useIsInBuilder = useIsInBuilder;
4046
- exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
4047
4047
  exports.useMakeswiftClient = useMakeswiftClient;
4048
+ exports.useMediaQuery = useMediaQuery;
4048
4049
  exports.usePageId = usePageId;
4049
4050
  exports.usePagePathnameSlice = usePagePathnameSlice;
4050
4051
  exports.useResponsiveColor = useResponsiveColor;