@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/Image.cjs.js CHANGED
@@ -4,22 +4,23 @@ var React = require("react");
4
4
  var NextImage = require("next/image");
5
5
  var next = require("./index.cjs.js");
6
6
  var placeholders = require("./placeholders.cjs.js");
7
- var index = require("./index.cjs2.js");
7
+ var index = require("./index.cjs3.js");
8
8
  var css = require("@emotion/css");
9
+ var nextVersion = require("./next-version.cjs.js");
9
10
  var jsxRuntime = require("react/jsx-runtime");
10
11
  require("use-sync-external-store/shim/with-selector");
12
+ require("next/dynamic");
11
13
  require("./react-page.cjs.js");
12
14
  require("redux");
13
15
  require("redux-thunk");
14
16
  require("./actions.cjs.js");
15
17
  require("./slot.cjs.js");
16
18
  require("./control.cjs.js");
17
- require("next/dynamic");
18
- require("slate");
19
- require("./types.cjs.js");
20
19
  require("./text-input.cjs.js");
21
20
  require("./combobox.cjs.js");
22
21
  require("use-sync-external-store/shim");
22
+ require("slate");
23
+ require("./types.cjs.js");
23
24
  require("color");
24
25
  require("scroll-into-view-if-needed");
25
26
  require("./box-models.cjs.js");
@@ -36,10 +37,12 @@ require("set-cookie-parser");
36
37
  require("uuid/v4");
37
38
  require("corporate-ipsum");
38
39
  require("next/link");
40
+ require("next/package.json");
39
41
  function _interopDefaultLegacy(e) {
40
42
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
41
43
  }
42
44
  var NextImage__default = /* @__PURE__ */ _interopDefaultLegacy(NextImage);
45
+ const NextLegacyImage = NextImage__default["default"];
43
46
  function loadImage(src) {
44
47
  return new Promise((resolve, reject) => {
45
48
  const image = new Image();
@@ -103,9 +106,6 @@ const ImageComponent = React.forwardRef(function Image2({
103
106
  }), next.useStyle(next.responsiveWidth(width, dimensions == null ? void 0 : dimensions.width)), next.useStyle(next.responsiveStyle([opacity], ([opacity2 = 1]) => ({
104
107
  opacity: opacity2
105
108
  }))), margin, padding, border, borderRadius, boxShadow, className);
106
- const unoptimizedImageClassName = next.useStyle({
107
- width: "100%"
108
- });
109
109
  if (!dimensions)
110
110
  return null;
111
111
  return /* @__PURE__ */ jsxRuntime.jsx(Container, {
@@ -113,17 +113,25 @@ const ImageComponent = React.forwardRef(function Image2({
113
113
  ref,
114
114
  id,
115
115
  className: containerClassName,
116
- children: isInBuilder ? /* @__PURE__ */ jsxRuntime.jsx("img", {
117
- className: unoptimizedImageClassName,
118
- src: imageSrc,
119
- alt: altText
120
- }) : /* @__PURE__ */ jsxRuntime.jsx(NextImage__default["default"], {
116
+ children: nextVersion.major < 13 ? /* @__PURE__ */ jsxRuntime.jsx(NextLegacyImage, {
121
117
  layout: "responsive",
122
118
  src: imageSrc,
123
119
  sizes: imageSizes(width),
124
120
  alt: altText,
125
121
  width: dimensions.width,
126
- height: dimensions.height
122
+ height: dimensions.height,
123
+ unoptimized: isInBuilder
124
+ }) : /* @__PURE__ */ jsxRuntime.jsx(NextImage__default["default"], {
125
+ src: imageSrc,
126
+ sizes: imageSizes(width),
127
+ alt: altText != null ? altText : "",
128
+ width: dimensions.width,
129
+ height: dimensions.height,
130
+ style: {
131
+ width: "100%",
132
+ height: "auto"
133
+ },
134
+ unoptimized: isInBuilder
127
135
  })
128
136
  });
129
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Image.cjs.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n ElementIDValue,\n ImageValue,\n LinkValue,\n ResponsiveOpacityValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\nimport { cx } from '@emotion/css'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { responsiveStyle, responsiveWidth } from '../../utils/responsive-style'\nimport { useFile } from '../../../runtimes/react/hooks/makeswift-api'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLAnchorElement & HTMLDivElement>,\n) {\n const fileData = useFile(file ?? null)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n const Container = link ? Link : 'div'\n const containerClassName = cx(\n useStyle({ lineHeight: 0, overflow: 'hidden' }),\n useStyle(responsiveWidth(width, dimensions?.width)),\n useStyle(responsiveStyle([opacity] as const, ([opacity = 1]) => ({ opacity }))),\n margin,\n padding,\n border,\n borderRadius,\n boxShadow,\n className,\n )\n const unoptimizedImageClassName = useStyle({ width: '100%' })\n\n if (!dimensions) return null\n\n return (\n <Container link={link} ref={ref} id={id} className={containerClassName}>\n {isInBuilder ? (\n <img className={unoptimizedImageClassName} src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </Container>\n )\n})\n\nexport default ImageComponent\n"],"names":["src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","opacity","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","imageSrc","publicUrl","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Container","Link","containerClassName","cx","useStyle","lineHeight","overflow","responsiveWidth","responsiveStyle","unoptimizedImageClassName","_jsx","NextImage","imageSizes"],"mappings":"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"}
1
+ {"version":3,"file":"Image.cjs.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\nimport type NextLegacyImageType from 'next/legacy/image'\n\nimport {\n ElementIDValue,\n ImageValue,\n LinkValue,\n ResponsiveOpacityValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\nimport { cx } from '@emotion/css'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { responsiveStyle, responsiveWidth } from '../../utils/responsive-style'\nimport { useFile } from '../../../runtimes/react/hooks/makeswift-api'\nimport { major as nextMajorVersion } from '../../../next/next-version'\n\nconst NextLegacyImage = NextImage as typeof NextLegacyImageType\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLAnchorElement & HTMLDivElement>,\n) {\n const fileData = useFile(file ?? null)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n const Container = link ? Link : 'div'\n const containerClassName = cx(\n useStyle({ lineHeight: 0, overflow: 'hidden' }),\n useStyle(responsiveWidth(width, dimensions?.width)),\n useStyle(responsiveStyle([opacity] as const, ([opacity = 1]) => ({ opacity }))),\n margin,\n padding,\n border,\n borderRadius,\n boxShadow,\n className,\n )\n\n if (!dimensions) return null\n\n return (\n <Container link={link} ref={ref} id={id} className={containerClassName}>\n {nextMajorVersion < 13 ? (\n <NextLegacyImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n unoptimized={isInBuilder}\n />\n ) : (\n <NextImage\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText ?? ''}\n width={dimensions.width}\n height={dimensions.height}\n style={{\n width: '100%',\n height: 'auto',\n }}\n unoptimized={isInBuilder}\n />\n )}\n </Container>\n )\n})\n\nexport default ImageComponent\n"],"names":["NextLegacyImage","NextImage","src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","opacity","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","imageSrc","publicUrl","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Container","Link","containerClassName","cx","useStyle","lineHeight","overflow","responsiveWidth","responsiveStyle","nextMajorVersion","_jsx","imageSizes"],"mappings":"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"}
package/dist/Image.es.js CHANGED
@@ -1,23 +1,24 @@
1
1
  import { forwardRef, useState, useEffect } from "react";
2
2
  import NextImage from "next/image";
3
- import { B as useFile, u as useIsInBuilder, n as useStyle, o as responsiveWidth, r as responsiveStyle, F as DEVICES, G as findDeviceOverride } from "./index.es.js";
3
+ import { B as useFile, u as useIsInBuilder, o as useStyle, p as responsiveWidth, r as responsiveStyle, F as DEVICES, G as findDeviceOverride } from "./index.es.js";
4
4
  import { p as placeholders } from "./placeholders.es.js";
5
- import { L as Link } from "./index.es2.js";
5
+ import { L as Link } from "./index.es3.js";
6
6
  import { cx } from "@emotion/css";
7
+ import { m as major } from "./next-version.es.js";
7
8
  import { jsx } from "react/jsx-runtime";
8
9
  import "use-sync-external-store/shim/with-selector";
10
+ import "next/dynamic";
9
11
  import "./react-page.es.js";
10
12
  import "redux";
11
13
  import "redux-thunk";
12
14
  import "./actions.es.js";
13
15
  import "./slot.es.js";
14
16
  import "./control.es.js";
15
- import "next/dynamic";
16
- import "slate";
17
- import "./types.es.js";
18
17
  import "./text-input.es.js";
19
18
  import "./combobox.es.js";
20
19
  import "use-sync-external-store/shim";
20
+ import "slate";
21
+ import "./types.es.js";
21
22
  import "color";
22
23
  import "scroll-into-view-if-needed";
23
24
  import "./box-models.es.js";
@@ -34,6 +35,8 @@ import "set-cookie-parser";
34
35
  import "uuid/v4";
35
36
  import "corporate-ipsum";
36
37
  import "next/link";
38
+ import "next/package.json";
39
+ const NextLegacyImage = NextImage;
37
40
  function loadImage(src) {
38
41
  return new Promise((resolve, reject) => {
39
42
  const image = new Image();
@@ -97,9 +100,6 @@ const ImageComponent = forwardRef(function Image2({
97
100
  }), useStyle(responsiveWidth(width, dimensions == null ? void 0 : dimensions.width)), useStyle(responsiveStyle([opacity], ([opacity2 = 1]) => ({
98
101
  opacity: opacity2
99
102
  }))), margin, padding, border, borderRadius, boxShadow, className);
100
- const unoptimizedImageClassName = useStyle({
101
- width: "100%"
102
- });
103
103
  if (!dimensions)
104
104
  return null;
105
105
  return /* @__PURE__ */ jsx(Container, {
@@ -107,17 +107,25 @@ const ImageComponent = forwardRef(function Image2({
107
107
  ref,
108
108
  id,
109
109
  className: containerClassName,
110
- children: isInBuilder ? /* @__PURE__ */ jsx("img", {
111
- className: unoptimizedImageClassName,
112
- src: imageSrc,
113
- alt: altText
114
- }) : /* @__PURE__ */ jsx(NextImage, {
110
+ children: major < 13 ? /* @__PURE__ */ jsx(NextLegacyImage, {
115
111
  layout: "responsive",
116
112
  src: imageSrc,
117
113
  sizes: imageSizes(width),
118
114
  alt: altText,
119
115
  width: dimensions.width,
120
- height: dimensions.height
116
+ height: dimensions.height,
117
+ unoptimized: isInBuilder
118
+ }) : /* @__PURE__ */ jsx(NextImage, {
119
+ src: imageSrc,
120
+ sizes: imageSizes(width),
121
+ alt: altText != null ? altText : "",
122
+ width: dimensions.width,
123
+ height: dimensions.height,
124
+ style: {
125
+ width: "100%",
126
+ height: "auto"
127
+ },
128
+ unoptimized: isInBuilder
121
129
  })
122
130
  });
123
131
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Image.es.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n ElementIDValue,\n ImageValue,\n LinkValue,\n ResponsiveOpacityValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\nimport { cx } from '@emotion/css'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { responsiveStyle, responsiveWidth } from '../../utils/responsive-style'\nimport { useFile } from '../../../runtimes/react/hooks/makeswift-api'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLAnchorElement & HTMLDivElement>,\n) {\n const fileData = useFile(file ?? null)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n const Container = link ? Link : 'div'\n const containerClassName = cx(\n useStyle({ lineHeight: 0, overflow: 'hidden' }),\n useStyle(responsiveWidth(width, dimensions?.width)),\n useStyle(responsiveStyle([opacity] as const, ([opacity = 1]) => ({ opacity }))),\n margin,\n padding,\n border,\n borderRadius,\n boxShadow,\n className,\n )\n const unoptimizedImageClassName = useStyle({ width: '100%' })\n\n if (!dimensions) return null\n\n return (\n <Container link={link} ref={ref} id={id} className={containerClassName}>\n {isInBuilder ? (\n <img className={unoptimizedImageClassName} src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </Container>\n )\n})\n\nexport default ImageComponent\n"],"names":["src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","opacity","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","imageSrc","publicUrl","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Container","Link","containerClassName","cx","useStyle","lineHeight","overflow","responsiveWidth","responsiveStyle","unoptimizedImageClassName","_jsx","imageSizes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,mBAAmBA,KAAwC;AAClD,SAAA,IAAIC,QAA0B,CAACC,SAASC,WAAW;AAClDC,UAAAA,QAAQ,IAAIC;AAEZC,UAAAA,SAAS,MAAMJ,QAAQE,KAAD;AAC5BA,UAAMG,UAAUJ;AAChBC,UAAMJ,MAAMA;AAAAA,EAAAA,CALP;AAOR;AAED,oBAAoBQ,OAAgC;AAClD,QAAMC,aAAaC,QAAQC,KAAKC,CAAUA,WAAAA,OAAOC,YAAY,IAA1C;AACnB,QAAMC,YAAYL,cAAcD,SAASO,mBAAmBP,OAAOC,WAAWO,EAAnB;AACrDC,QAAAA,gBACJH,aAAa,QAAQA,UAAUI,MAAMC,SAAS,OAAO,UAAW,GAAEL,UAAUI,MAAMA;AAE7ER,SAAAA,QAAQU,IAAIR,CAAU,WAAA;AACrBS,UAAAA,WAAWN,mBAAmBP,OAAOI,OAAOI,EAAf;AAEnC,QAAIK,YAAY,QAAQT,OAAOC,YAAY,QAAQQ,SAASH,MAAMC,SAAS;AAAa,aAAA;AAEhF,WAAA,eAAcP,OAAOC,eAAeS,KAAKC,IAAIX,OAAOC,UAAUQ,SAASH,MAAMA,KAAzC;AAAA,EAAA,CALvC,EAOJM,OAAO,CAACC,SAA2CA,QAAQ,IAPvD,EAQJC,OAAO,CAACC,aAAaC,eAAgB,GAAEA,eAAeD,eAAeV,aARjE;AASR;AAOKY,MAAAA,iBAAiBC,WAAW,gBAChC;AAAA,EACEd;AAAAA,EACAR;AAAAA,EACAuB;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,cAAcC,aAAarC;AAAAA,EAC3BsC;AAAAA,GAEFC,KACA;AACMC,QAAAA,WAAWC,QAAQZ,sBAAQ,IAAT;AACxB,QAAMa,WAAWF,sCAAUG,aAAYH,SAASG,YAAYP,YAAYxC;AACxE,QAAMgD,iBAAiBJ,sCAAUG,aAAYH,qCAAUK,aAAaT,YAAYS;AAChF,QAAM,CAACC,oBAAoBC,yBAAyBC,SAA4B,IAApB;AACtDC,QAAAA,cAAcC;AAEpBC,YAAU,MAAM;AACVP,QAAAA;AAAgB;AAEhBQ,QAAAA,YAAY;AAENV,cAAAA,QAAD,EACNW,KAAKrD,CAAS,UAAA;AACT,UAAA,CAACoD,WAAW;AACQ,8BAAA;AAAA,UAAEhD,OAAOJ,MAAMsD;AAAAA,UAAcC,QAAQvD,MAAMwD;AAAAA,QAAAA,CAA5C;AAAA,MACtB;AAAA,IAJL,CAAA,EAMGC,MAAMC,QAAQC,KANjB;AAQA,WAAO,MAAM;AACC,kBAAA;AAAA,IAAA;AAAA,EADd,GAGC,CAACf,gBAAgBF,QAAjB,CAhBM;AAkBT,QAAMG,aAAaD,0CAAkBE;AAC/Bc,QAAAA,YAAY3B,OAAO4B,OAAO;AAC1BC,QAAAA,qBAAqBC,GACzBC,SAAS;AAAA,IAAEC,YAAY;AAAA,IAAGC,UAAU;AAAA,EAAA,CAA5B,GACRF,SAASG,gBAAgB/D,OAAOyC,yCAAYzC,KAApB,CAAhB,GACR4D,SAASI,gBAAgB,CAAClC,OAAD,GAAoB,CAAC,CAACA,WAAU,OAAQ;AAAA,IAAEA,SAAAA;AAAAA,EAAAA,EAA3C,CAAhB,GACRP,QACAC,SACAE,QACAC,cACAI,WACAG,SAT2B;AAWvB+B,QAAAA,4BAA4BL,SAAS;AAAA,IAAE5D,OAAO;AAAA,EAAA,CAAV;AAE1C,MAAI,CAACyC;AAAmB,WAAA;AAExB,6BACG,WAAD;AAAA,IAAW;AAAA,IAAY;AAAA,IAAU;AAAA,IAAQ,WAAWiB;AAAAA,IAApD,UACGb,cACCqB,oBAAA,OAAA;AAAA,MAAK,WAAWD;AAAAA,MAA2B,KAAK3B;AAAAA,MAAU,KAAKV;AAAAA,IAAAA,CADrD,IAGVsC,oBAAC,WAAD;AAAA,MACE,QAAO;AAAA,MACP,KAAK5B;AAAAA,MACL,OAAO6B,WAAWnE,KAAD;AAAA,MACjB,KAAK4B;AAAAA,MACL,OAAOa,WAAWzC;AAAAA,MAClB,QAAQyC,WAAWU;AAAAA,IAAAA,CANrB;AAAA,EAAA,CALN;AAgBD,CA3EgC;;"}
1
+ {"version":3,"file":"Image.es.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\nimport type NextLegacyImageType from 'next/legacy/image'\n\nimport {\n ElementIDValue,\n ImageValue,\n LinkValue,\n ResponsiveOpacityValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\nimport { cx } from '@emotion/css'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { responsiveStyle, responsiveWidth } from '../../utils/responsive-style'\nimport { useFile } from '../../../runtimes/react/hooks/makeswift-api'\nimport { major as nextMajorVersion } from '../../../next/next-version'\n\nconst NextLegacyImage = NextImage as typeof NextLegacyImageType\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLAnchorElement & HTMLDivElement>,\n) {\n const fileData = useFile(file ?? null)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n const Container = link ? Link : 'div'\n const containerClassName = cx(\n useStyle({ lineHeight: 0, overflow: 'hidden' }),\n useStyle(responsiveWidth(width, dimensions?.width)),\n useStyle(responsiveStyle([opacity] as const, ([opacity = 1]) => ({ opacity }))),\n margin,\n padding,\n border,\n borderRadius,\n boxShadow,\n className,\n )\n\n if (!dimensions) return null\n\n return (\n <Container link={link} ref={ref} id={id} className={containerClassName}>\n {nextMajorVersion < 13 ? (\n <NextLegacyImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n unoptimized={isInBuilder}\n />\n ) : (\n <NextImage\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText ?? ''}\n width={dimensions.width}\n height={dimensions.height}\n style={{\n width: '100%',\n height: 'auto',\n }}\n unoptimized={isInBuilder}\n />\n )}\n </Container>\n )\n})\n\nexport default ImageComponent\n"],"names":["NextLegacyImage","NextImage","src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","opacity","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","imageSrc","publicUrl","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Container","Link","containerClassName","cx","useStyle","lineHeight","overflow","responsiveWidth","responsiveStyle","nextMajorVersion","_jsx","imageSizes"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var React = require("react");
4
+ var next = require("./index.cjs.js");
5
+ var reactPage = require("./react-page.cjs.js");
6
+ var actions = require("./actions.cjs.js");
7
+ var jsxRuntime = require("react/jsx-runtime");
8
+ require("use-sync-external-store/shim/with-selector");
9
+ require("next/dynamic");
10
+ require("@emotion/css");
11
+ require("./slot.cjs.js");
12
+ require("./text-input.cjs.js");
13
+ require("./combobox.cjs.js");
14
+ require("./control.cjs.js");
15
+ require("use-sync-external-store/shim");
16
+ require("slate");
17
+ require("redux");
18
+ require("redux-thunk");
19
+ require("./types.cjs.js");
20
+ require("color");
21
+ require("scroll-into-view-if-needed");
22
+ require("./box-models.cjs.js");
23
+ require("css-box-model");
24
+ require("react-dom");
25
+ require("html-react-parser");
26
+ require("next/head");
27
+ require("@emotion/server/create-instance");
28
+ require("next/document");
29
+ require("cookie");
30
+ require("cors");
31
+ require("http-proxy");
32
+ require("set-cookie-parser");
33
+ require("uuid/v4");
34
+ require("corporate-ipsum");
35
+ function LiveProvider({
36
+ client,
37
+ children,
38
+ rootElements
39
+ }) {
40
+ const store = React.useMemo(() => reactPage.configureStore({
41
+ preloadedState: next.storeContextDefaultValue.getState(),
42
+ rootElements
43
+ }), [rootElements]);
44
+ React.useEffect(() => {
45
+ var _a;
46
+ const unregisterDocuments = Array.from((_a = rootElements == null ? void 0 : rootElements.entries()) != null ? _a : []).map(([documentKey, rootElement]) => store.dispatch(actions.registerDocumentEffect(reactPage.createDocument(documentKey, rootElement))));
47
+ return () => {
48
+ unregisterDocuments.forEach((unregisterDocument) => {
49
+ unregisterDocument();
50
+ });
51
+ };
52
+ }, [store, rootElements]);
53
+ return /* @__PURE__ */ jsxRuntime.jsx(next.StoreContext.Provider, {
54
+ value: store,
55
+ children: /* @__PURE__ */ jsxRuntime.jsx(next.MakeswiftProvider, {
56
+ client,
57
+ children
58
+ })
59
+ });
60
+ }
61
+ exports["default"] = LiveProvider;
62
+ //# sourceMappingURL=LiveProvider.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveProvider.cjs.js","sources":["../src/runtimes/react/components/LiveProvider.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, storeContextDefaultValue } from '..'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport default function LiveProvider({ client, children, rootElements }: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactPage.configureStore({\n preloadedState: storeContextDefaultValue.getState(),\n rootElements,\n }),\n [rootElements],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["client","children","rootElements","store","useMemo","ReactPage","preloadedState","storeContextDefaultValue","getState","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","forEach","unregisterDocument","_jsx","StoreContext","MakeswiftProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaqC,sBAAA;AAAA,EAAEA;AAAAA,EAAQC;AAAAA,EAAUC;AAAAA,GAAoC;AACrFC,QAAAA,QAAQC,cACZ,MACEC,yBAAyB;AAAA,IACvBC,gBAAgBC,8BAAyBC,SADlB;AAAA,IAEvBN;AAAAA,EAAAA,CAFF,GAIF,CAACA,YAAD,CANmB;AASrBO,QAAAA,UAAU,MAAM;;AACRC,UAAAA,sBAAsBC,MAAMC,KAAKV,mDAAcW,cAAdX,YAA2B,CAAA,CAAtC,EAA0CY,IACpE,CAAC,CAACC,aAAaC,iBACbb,MAAMc,SAASC,QAAuBb,uBAAAA,yBAAyBU,aAAaC,WAAtC,CAAD,CAArC,CAFwB;AAK5B,WAAO,MAAM;AACXN,0BAAoBS,QAAQC,CAAsB,uBAAA;AAC9B;MAAA,CADpB;AAAA,IAAA;AAAA,EADF,GAKC,CAACjB,OAAOD,YAAR,CAXM;AAcP,SAAAmB,2BAAA,IAACC,kBAAa,UAAd;AAAA,IAAuB,OAAOnB;AAAAA,IAA9B,yCACGoB,wBAAD;AAAA,MAAmB;AAAA,MAAiBtB;AAAAA,IAAAA,CAApC;AAAA,EAAA,CAFJ;AAKD;;"}
@@ -0,0 +1,60 @@
1
+ import { useMemo, useEffect } from "react";
2
+ import { U as storeContextDefaultValue, V as StoreContext, W as MakeswiftProvider } from "./index.es.js";
3
+ import { q as configureStore, c as createDocument } from "./react-page.es.js";
4
+ import { G as registerDocumentEffect } from "./actions.es.js";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import "use-sync-external-store/shim/with-selector";
7
+ import "next/dynamic";
8
+ import "@emotion/css";
9
+ import "./slot.es.js";
10
+ import "./text-input.es.js";
11
+ import "./combobox.es.js";
12
+ import "./control.es.js";
13
+ import "use-sync-external-store/shim";
14
+ import "slate";
15
+ import "redux";
16
+ import "redux-thunk";
17
+ import "./types.es.js";
18
+ import "color";
19
+ import "scroll-into-view-if-needed";
20
+ import "./box-models.es.js";
21
+ import "css-box-model";
22
+ import "react-dom";
23
+ import "html-react-parser";
24
+ import "next/head";
25
+ import "@emotion/server/create-instance";
26
+ import "next/document";
27
+ import "cookie";
28
+ import "cors";
29
+ import "http-proxy";
30
+ import "set-cookie-parser";
31
+ import "uuid/v4";
32
+ import "corporate-ipsum";
33
+ function LiveProvider({
34
+ client,
35
+ children,
36
+ rootElements
37
+ }) {
38
+ const store = useMemo(() => configureStore({
39
+ preloadedState: storeContextDefaultValue.getState(),
40
+ rootElements
41
+ }), [rootElements]);
42
+ useEffect(() => {
43
+ var _a;
44
+ const unregisterDocuments = Array.from((_a = rootElements == null ? void 0 : rootElements.entries()) != null ? _a : []).map(([documentKey, rootElement]) => store.dispatch(registerDocumentEffect(createDocument(documentKey, rootElement))));
45
+ return () => {
46
+ unregisterDocuments.forEach((unregisterDocument) => {
47
+ unregisterDocument();
48
+ });
49
+ };
50
+ }, [store, rootElements]);
51
+ return /* @__PURE__ */ jsx(StoreContext.Provider, {
52
+ value: store,
53
+ children: /* @__PURE__ */ jsx(MakeswiftProvider, {
54
+ client,
55
+ children
56
+ })
57
+ });
58
+ }
59
+ export { LiveProvider as default };
60
+ //# sourceMappingURL=LiveProvider.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveProvider.es.js","sources":["../src/runtimes/react/components/LiveProvider.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, storeContextDefaultValue } from '..'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport default function LiveProvider({ client, children, rootElements }: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactPage.configureStore({\n preloadedState: storeContextDefaultValue.getState(),\n rootElements,\n }),\n [rootElements],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["client","children","rootElements","store","useMemo","ReactPage","preloadedState","storeContextDefaultValue","getState","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","forEach","unregisterDocument","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaqC,sBAAA;AAAA,EAAEA;AAAAA,EAAQC;AAAAA,EAAUC;AAAAA,GAAoC;AACrFC,QAAAA,QAAQC,QACZ,MACEC,eAAyB;AAAA,IACvBC,gBAAgBC,yBAAyBC,SADlB;AAAA,IAEvBN;AAAAA,EAAAA,CAFF,GAIF,CAACA,YAAD,CANmB;AASrBO,YAAU,MAAM;;AACRC,UAAAA,sBAAsBC,MAAMC,KAAKV,mDAAcW,cAAdX,YAA2B,CAAA,CAAtC,EAA0CY,IACpE,CAAC,CAACC,aAAaC,iBACbb,MAAMc,SAASC,uBAAuBb,eAAyBU,aAAaC,WAAtC,CAAD,CAArC,CAFwB;AAK5B,WAAO,MAAM;AACXN,0BAAoBS,QAAQC,CAAsB,uBAAA;AAC9B;MAAA,CADpB;AAAA,IAAA;AAAA,EADF,GAKC,CAACjB,OAAOD,YAAR,CAXM;AAcP,SAAAmB,oBAAC,aAAa,UAAd;AAAA,IAAuB,OAAOlB;AAAAA,IAA9B,8BACG,mBAAD;AAAA,MAAmB;AAAA,MAAiBF;AAAAA,IAAAA,CAApC;AAAA,EAAA,CAFJ;AAKD;;"}
@@ -32,28 +32,31 @@ var __objRest = (source, exclude) => {
32
32
  };
33
33
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
34
34
  var React = require("react");
35
- var index = require("./index.cjs3.js");
35
+ var index = require("./index.cjs4.js");
36
36
  var Image = require("./Image.cjs.js");
37
37
  var Button = require("./Button.cjs.js");
38
38
  var next = require("./index.cjs.js");
39
39
  var jsxRuntime = require("react/jsx-runtime");
40
40
  require("use-sync-external-store/shim");
41
41
  require("./slot.cjs.js");
42
- var index$1 = require("./index.cjs2.js");
42
+ var index$1 = require("./index.cjs3.js");
43
+ var useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect.cjs.js");
43
44
  var css = require("@emotion/css");
44
45
  require("next/image");
45
46
  require("./placeholders.cjs.js");
47
+ require("./next-version.cjs.js");
48
+ require("next/package.json");
46
49
  require("use-sync-external-store/shim/with-selector");
50
+ require("next/dynamic");
47
51
  require("./react-page.cjs.js");
48
52
  require("redux");
49
53
  require("redux-thunk");
50
54
  require("./actions.cjs.js");
51
55
  require("./control.cjs.js");
52
- require("next/dynamic");
53
- require("slate");
54
- require("./types.cjs.js");
55
56
  require("./text-input.cjs.js");
56
57
  require("./combobox.cjs.js");
58
+ require("slate");
59
+ require("./types.cjs.js");
57
60
  require("color");
58
61
  require("scroll-into-view-if-needed");
59
62
  require("./box-models.cjs.js");
@@ -368,7 +371,7 @@ function DropDownButton(_g) {
368
371
  ]);
369
372
  const container = React.useRef(null);
370
373
  const [position, setPosition] = React.useState("left");
371
- next.useIsomorphicLayoutEffect(() => {
374
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
372
375
  if (container.current && container.current.ownerDocument.defaultView.innerWidth < container.current.offsetLeft + DROP_DOWN_MENU_WIDTH) {
373
376
  setPosition("right");
374
377
  } else {