@makeswift/runtime 0.2.19 → 0.3.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 (228) hide show
  1. package/dist/Box.cjs.js +35 -70
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +34 -65
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +176 -208
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +177 -208
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +227 -249
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +229 -247
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +270 -203
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +273 -202
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +50 -71
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +51 -68
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +6 -17
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +7 -14
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +723 -553
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +723 -552
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +16 -38
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +17 -38
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/Navigation.cjs.js +318 -224
  34. package/dist/Navigation.cjs.js.map +1 -1
  35. package/dist/Navigation.es.js +318 -220
  36. package/dist/Navigation.es.js.map +1 -1
  37. package/dist/Root.cjs.js +116 -78
  38. package/dist/Root.cjs.js.map +1 -1
  39. package/dist/Root.es.js +99 -77
  40. package/dist/Root.es.js.map +1 -1
  41. package/dist/SocialLinks.cjs.js +119 -86
  42. package/dist/SocialLinks.cjs.js.map +1 -1
  43. package/dist/SocialLinks.es.js +120 -83
  44. package/dist/SocialLinks.es.js.map +1 -1
  45. package/dist/Text.cjs.js +83 -99
  46. package/dist/Text.cjs.js.map +1 -1
  47. package/dist/Text.es.js +84 -99
  48. package/dist/Text.es.js.map +1 -1
  49. package/dist/Video.cjs.js +8 -19
  50. package/dist/Video.cjs.js.map +1 -1
  51. package/dist/Video.es.js +8 -18
  52. package/dist/Video.es.js.map +1 -1
  53. package/dist/components.cjs.js +6 -18
  54. package/dist/components.cjs.js.map +1 -1
  55. package/dist/components.es.js +5 -8
  56. package/dist/components.es.js.map +1 -1
  57. package/dist/controls.es.js +1 -1
  58. package/dist/grid-item.cjs.js +612 -0
  59. package/dist/grid-item.cjs.js.map +1 -0
  60. package/dist/grid-item.es.js +604 -0
  61. package/dist/grid-item.es.js.map +1 -0
  62. package/dist/index.cjs.js +594 -275
  63. package/dist/index.cjs.js.map +1 -1
  64. package/dist/index.cjs2.js +98 -474
  65. package/dist/index.cjs2.js.map +1 -1
  66. package/dist/index.cjs3.js +20 -107
  67. package/dist/index.cjs3.js.map +1 -1
  68. package/dist/index.es.js +589 -274
  69. package/dist/index.es.js.map +1 -1
  70. package/dist/index.es2.js +99 -473
  71. package/dist/index.es2.js.map +1 -1
  72. package/dist/index.es3.js +21 -103
  73. package/dist/index.es3.js.map +1 -1
  74. package/dist/next.cjs.js +1 -2
  75. package/dist/next.cjs.js.map +1 -1
  76. package/dist/next.es.js +2 -3
  77. package/dist/next.es.js.map +1 -1
  78. package/dist/react-builder-preview.cjs.js +1 -2
  79. package/dist/react-builder-preview.cjs.js.map +1 -1
  80. package/dist/react-builder-preview.es.js +3 -4
  81. package/dist/react-builder-preview.es.js.map +1 -1
  82. package/dist/react.cjs.js +1 -2
  83. package/dist/react.cjs.js.map +1 -1
  84. package/dist/react.es.js +1 -2
  85. package/dist/react.es.js.map +1 -1
  86. package/dist/slot.cjs.js +41 -6
  87. package/dist/slot.cjs.js.map +1 -1
  88. package/dist/slot.es.js +36 -6
  89. package/dist/slot.es.js.map +1 -1
  90. package/dist/types/src/components/builtin/Box/Box.d.ts +7 -7
  91. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  92. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  93. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -1
  94. package/dist/types/src/components/builtin/Button/Button.d.ts +46 -34
  95. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  96. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +5 -5
  97. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  98. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -1
  99. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +3 -3
  100. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  101. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -1
  102. package/dist/types/src/components/builtin/Divider/Divider.d.ts +3 -3
  103. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -1
  104. package/dist/types/src/components/builtin/Divider/register.d.ts.map +1 -1
  105. package/dist/types/src/components/builtin/Embed/Embed.d.ts +3 -3
  106. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -1
  107. package/dist/types/src/components/builtin/Form/Form.d.ts +3 -3
  108. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -1
  109. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +4 -6
  110. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  111. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +3 -0
  112. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  113. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +2 -0
  114. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  115. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +3 -7
  116. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  117. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +7 -13
  118. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  119. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +2 -0
  120. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  121. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  122. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +2 -0
  123. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  124. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +2 -0
  125. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  126. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  127. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +4 -8
  128. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  129. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +2 -0
  130. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  131. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  132. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  133. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +2 -7
  134. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  135. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +2 -0
  136. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  137. package/dist/types/src/components/builtin/Form/components/Field/services/{cssField.d.ts → responsiveField.d.ts} +5 -4
  138. package/dist/types/src/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -0
  139. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +2 -3
  140. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  141. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  142. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -1
  143. package/dist/types/src/components/builtin/Image/Image.d.ts +7 -7
  144. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  145. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +3 -3
  146. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  147. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +8 -81
  148. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  149. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  150. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +8 -81
  151. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  152. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  153. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -1
  154. package/dist/types/src/components/builtin/Root/Root.d.ts +1 -2
  155. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -1
  156. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts +1 -2
  157. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  158. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +3 -3
  159. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  160. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  161. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -1
  162. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -3
  163. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  164. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +8 -11
  165. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +3 -6
  167. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -1
  168. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts +1 -1
  169. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -1
  170. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -1
  171. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  172. package/dist/types/src/components/builtin/Video/Video.d.ts +4 -4
  173. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -1
  174. package/dist/types/src/components/builtin/Video/register.d.ts.map +1 -1
  175. package/dist/types/src/components/hooks/useBackgrounds.d.ts +1 -1
  176. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -1
  177. package/dist/types/src/components/index.d.ts +0 -1
  178. package/dist/types/src/components/index.d.ts.map +1 -1
  179. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  180. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  181. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +255 -4
  182. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  183. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  184. package/dist/types/src/components/shared/GutterContainer/index.d.ts +8 -4
  185. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -1
  186. package/dist/types/src/components/shared/grid-item.d.ts +17 -0
  187. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -0
  188. package/dist/types/src/components/utils/responsive-style.d.ts +22 -1
  189. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -1
  190. package/dist/types/src/controls/style.d.ts +5 -65
  191. package/dist/types/src/controls/style.d.ts.map +1 -1
  192. package/dist/types/src/css/border-radius.d.ts +20 -0
  193. package/dist/types/src/css/border-radius.d.ts.map +1 -0
  194. package/dist/types/src/css/border.d.ts +31 -0
  195. package/dist/types/src/css/border.d.ts.map +1 -0
  196. package/dist/types/src/css/length-percentage.d.ts +10 -0
  197. package/dist/types/src/css/length-percentage.d.ts.map +1 -0
  198. package/dist/types/src/css/length.d.ts +14 -0
  199. package/dist/types/src/css/length.d.ts.map +1 -0
  200. package/dist/types/src/css/margin.d.ts +20 -0
  201. package/dist/types/src/css/margin.d.ts.map +1 -0
  202. package/dist/types/src/css/padding.d.ts +20 -0
  203. package/dist/types/src/css/padding.d.ts.map +1 -0
  204. package/dist/types/src/next/document.d.ts.map +1 -1
  205. package/dist/types/src/prop-controllers/descriptors.d.ts +96 -33
  206. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  207. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -1
  208. package/dist/types/src/runtimes/react/controls.d.ts +10 -2
  209. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  210. package/dist/types/src/runtimes/react/use-global-style.d.ts +3 -0
  211. package/dist/types/src/runtimes/react/use-global-style.d.ts.map +1 -0
  212. package/dist/useMediaQuery.es.js +1 -1
  213. package/package.json +2 -4
  214. package/dist/cssMediaRules.cjs.js +0 -210
  215. package/dist/cssMediaRules.cjs.js.map +0 -1
  216. package/dist/cssMediaRules.es.js +0 -201
  217. package/dist/cssMediaRules.es.js.map +0 -1
  218. package/dist/index.cjs4.js +0 -18
  219. package/dist/index.cjs4.js.map +0 -1
  220. package/dist/index.es4.js +0 -13
  221. package/dist/index.es4.js.map +0 -1
  222. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts.map +0 -1
  223. package/dist/types/src/components/utils/cssMediaRules.d.ts +0 -69
  224. package/dist/types/src/components/utils/cssMediaRules.d.ts.map +0 -1
  225. package/dist/useBoxShadow.cjs.js +0 -78
  226. package/dist/useBoxShadow.cjs.js.map +0 -1
  227. package/dist/useBoxShadow.es.js +0 -77
  228. package/dist/useBoxShadow.es.js.map +0 -1
package/dist/Image.cjs.js CHANGED
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var styled = require("styled-components");
4
3
  var React = require("react");
5
4
  var NextImage = require("next/image");
6
- var cssMediaRules = require("./cssMediaRules.cjs.js");
7
5
  var next = require("./index.cjs.js");
8
- var useBoxShadow = require("./useBoxShadow.cjs.js");
9
6
  var placeholders = require("./placeholders.cjs.js");
10
- var index = require("./index.cjs3.js");
7
+ var index = require("./index.cjs2.js");
8
+ var css = require("@emotion/css");
11
9
  var jsxRuntime = require("react/jsx-runtime");
12
10
  require("use-sync-external-store/shim/with-selector");
13
11
  require("./react-page.cjs.js");
@@ -23,7 +21,6 @@ require("slate");
23
21
  require("./graphql.cjs.js");
24
22
  require("./text-input.cjs.js");
25
23
  require("./combobox.cjs.js");
26
- require("@emotion/css");
27
24
  require("color");
28
25
  require("scroll-into-view-if-needed");
29
26
  require("./box-models.cjs.js");
@@ -43,7 +40,6 @@ require("next/link");
43
40
  function _interopDefaultLegacy(e) {
44
41
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
45
42
  }
46
- var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
47
43
  var NextImage__default = /* @__PURE__ */ _interopDefaultLegacy(NextImage);
48
44
  function loadImage(src) {
49
45
  return new Promise((resolve, reject) => {
@@ -64,24 +60,6 @@ function imageSizes(width) {
64
60
  return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`;
65
61
  }).filter((size) => size != null).reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize);
66
62
  }
67
- const ImageContainer = styled__default["default"].div.withConfig({
68
- shouldForwardProp: (prop) => !["width", "margin", "padding", "border", "borderRadius", "boxShadow", "opacity", "dimensions"].includes(prop.toString())
69
- })`
70
- line-height: 0;
71
- overflow: hidden;
72
- ${(props) => cssMediaRules.cssWidth(`${props.dimensions.width}px`)(props)}
73
- ${cssMediaRules.cssMargin()}
74
- ${cssMediaRules.cssPadding()}
75
- ${cssMediaRules.cssBorder()}
76
- ${cssMediaRules.cssBorderRadius()}
77
- ${cssMediaRules.cssBoxShadow()}
78
- ${(p) => cssMediaRules.cssMediaRules([p.opacity], ([opacity = 1]) => styled.css`
79
- opacity: ${opacity};
80
- `)}
81
- `;
82
- const UnoptimizedImage = styled__default["default"].img`
83
- width: 100%;
84
- `;
85
63
  const ImageComponent = React.forwardRef(function Image2({
86
64
  id,
87
65
  width,
@@ -98,8 +76,6 @@ const ImageComponent = React.forwardRef(function Image2({
98
76
  className
99
77
  }, ref) {
100
78
  const fileData = next.useFile(file);
101
- const borderData = next.useBorder(border);
102
- const boxShadowData = useBoxShadow.useBoxShadow(boxShadow);
103
79
  const imageSrc = (fileData == null ? void 0 : fileData.publicUrl) ? fileData.publicUrl : placeholder.src;
104
80
  const dataDimensions = (fileData == null ? void 0 : fileData.publicUrl) ? fileData == null ? void 0 : fileData.dimensions : placeholder.dimensions;
105
81
  const [measuredDimensions, setMeasuredDimensions] = React.useState(null);
@@ -121,23 +97,25 @@ const ImageComponent = React.forwardRef(function Image2({
121
97
  };
122
98
  }, [dataDimensions, imageSrc]);
123
99
  const dimensions = dataDimensions != null ? dataDimensions : measuredDimensions;
100
+ const Container = link ? index.Link : "div";
101
+ const containerClassName = css.cx(next.useStyle({
102
+ lineHeight: 0,
103
+ overflow: "hidden"
104
+ }), next.useStyle(next.responsiveWidth(width, dimensions == null ? void 0 : dimensions.width)), next.useStyle(next.responsiveStyle([opacity], ([opacity2 = 1]) => ({
105
+ opacity: opacity2
106
+ }))), margin, padding, border, borderRadius, boxShadow, className);
107
+ const unoptimizedImageClassName = next.useStyle({
108
+ width: "100%"
109
+ });
124
110
  if (!dimensions)
125
111
  return null;
126
- return /* @__PURE__ */ jsxRuntime.jsx(ImageContainer, {
127
- as: link ? index.Link : "div",
112
+ return /* @__PURE__ */ jsxRuntime.jsx(Container, {
128
113
  link,
129
- dimensions,
130
114
  ref,
131
115
  id,
132
- className,
133
- width,
134
- margin,
135
- opacity,
136
- padding,
137
- border: borderData,
138
- borderRadius,
139
- boxShadow: boxShadowData,
140
- children: isInBuilder ? /* @__PURE__ */ jsxRuntime.jsx(UnoptimizedImage, {
116
+ className: containerClassName,
117
+ children: isInBuilder ? /* @__PURE__ */ jsxRuntime.jsx("img", {
118
+ className: unoptimizedImageClassName,
141
119
  src: imageSrc,
142
120
  alt: altText
143
121
  }) : /* @__PURE__ */ jsxRuntime.jsx(NextImage__default["default"], {
@@ -1 +1 @@
1
- {"version":3,"file":"Image.cjs.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\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\nconst ImageContainer = styled.div.withConfig({\n shouldForwardProp: prop =>\n ![\n 'width',\n 'margin',\n 'padding',\n 'border',\n 'borderRadius',\n 'boxShadow',\n 'opacity',\n 'dimensions',\n ].includes(prop.toString()),\n})<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\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<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\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\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage 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 </ImageContainer>\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","ImageContainer","styled","div","withConfig","shouldForwardProp","prop","includes","toString","props","cssWidth","dimensions","cssMargin","cssPadding","cssBorder","cssBorderRadius","cssBoxShadow","p","cssMediaRules","opacity","css","UnoptimizedImage","img","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","borderData","useBorder","boxShadowData","useBoxShadow","imageSrc","publicUrl","dataDimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Link","_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'\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 { useFile } from '../../hooks'\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'\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)\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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"}
package/dist/Image.es.js CHANGED
@@ -1,11 +1,9 @@
1
- import styled, { css } from "styled-components";
2
1
  import { forwardRef, useState, useEffect } from "react";
3
2
  import NextImage from "next/image";
4
- import { a as cssWidth, b as cssMargin, d as cssPadding, e as cssBorder, f as cssBorderRadius, g as cssBoxShadow, c as cssMediaRules } from "./cssMediaRules.es.js";
5
- import { l as useFile, j as useBorder, u as useIsInBuilder, y as DEVICES, z as findDeviceOverride } from "./index.es.js";
6
- import { u as useBoxShadow } from "./useBoxShadow.es.js";
3
+ import { m as useFile, u as useIsInBuilder, q as useStyle, s as responsiveWidth, r as responsiveStyle, I as DEVICES, J as findDeviceOverride } from "./index.es.js";
7
4
  import { p as placeholders } from "./placeholders.es.js";
8
- import { L as Link } from "./index.es3.js";
5
+ import { L as Link } from "./index.es2.js";
6
+ import { cx } from "@emotion/css";
9
7
  import { jsx } from "react/jsx-runtime";
10
8
  import "use-sync-external-store/shim/with-selector";
11
9
  import "./react-page.es.js";
@@ -21,7 +19,6 @@ import "slate";
21
19
  import "./graphql.es.js";
22
20
  import "./text-input.es.js";
23
21
  import "./combobox.es.js";
24
- import "@emotion/css";
25
22
  import "color";
26
23
  import "scroll-into-view-if-needed";
27
24
  import "./box-models.es.js";
@@ -57,24 +54,6 @@ function imageSizes(width) {
57
54
  return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`;
58
55
  }).filter((size) => size != null).reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize);
59
56
  }
60
- const ImageContainer = styled.div.withConfig({
61
- shouldForwardProp: (prop) => !["width", "margin", "padding", "border", "borderRadius", "boxShadow", "opacity", "dimensions"].includes(prop.toString())
62
- })`
63
- line-height: 0;
64
- overflow: hidden;
65
- ${(props) => cssWidth(`${props.dimensions.width}px`)(props)}
66
- ${cssMargin()}
67
- ${cssPadding()}
68
- ${cssBorder()}
69
- ${cssBorderRadius()}
70
- ${cssBoxShadow()}
71
- ${(p) => cssMediaRules([p.opacity], ([opacity = 1]) => css`
72
- opacity: ${opacity};
73
- `)}
74
- `;
75
- const UnoptimizedImage = styled.img`
76
- width: 100%;
77
- `;
78
57
  const ImageComponent = forwardRef(function Image2({
79
58
  id,
80
59
  width,
@@ -91,8 +70,6 @@ const ImageComponent = forwardRef(function Image2({
91
70
  className
92
71
  }, ref) {
93
72
  const fileData = useFile(file);
94
- const borderData = useBorder(border);
95
- const boxShadowData = useBoxShadow(boxShadow);
96
73
  const imageSrc = (fileData == null ? void 0 : fileData.publicUrl) ? fileData.publicUrl : placeholder.src;
97
74
  const dataDimensions = (fileData == null ? void 0 : fileData.publicUrl) ? fileData == null ? void 0 : fileData.dimensions : placeholder.dimensions;
98
75
  const [measuredDimensions, setMeasuredDimensions] = useState(null);
@@ -114,23 +91,25 @@ const ImageComponent = forwardRef(function Image2({
114
91
  };
115
92
  }, [dataDimensions, imageSrc]);
116
93
  const dimensions = dataDimensions != null ? dataDimensions : measuredDimensions;
94
+ const Container = link ? Link : "div";
95
+ const containerClassName = cx(useStyle({
96
+ lineHeight: 0,
97
+ overflow: "hidden"
98
+ }), useStyle(responsiveWidth(width, dimensions == null ? void 0 : dimensions.width)), useStyle(responsiveStyle([opacity], ([opacity2 = 1]) => ({
99
+ opacity: opacity2
100
+ }))), margin, padding, border, borderRadius, boxShadow, className);
101
+ const unoptimizedImageClassName = useStyle({
102
+ width: "100%"
103
+ });
117
104
  if (!dimensions)
118
105
  return null;
119
- return /* @__PURE__ */ jsx(ImageContainer, {
120
- as: link ? Link : "div",
106
+ return /* @__PURE__ */ jsx(Container, {
121
107
  link,
122
- dimensions,
123
108
  ref,
124
109
  id,
125
- className,
126
- width,
127
- margin,
128
- opacity,
129
- padding,
130
- border: borderData,
131
- borderRadius,
132
- boxShadow: boxShadowData,
133
- children: isInBuilder ? /* @__PURE__ */ jsx(UnoptimizedImage, {
110
+ className: containerClassName,
111
+ children: isInBuilder ? /* @__PURE__ */ jsx("img", {
112
+ className: unoptimizedImageClassName,
134
113
  src: imageSrc,
135
114
  alt: altText
136
115
  }) : /* @__PURE__ */ jsx(NextImage, {
@@ -1 +1 @@
1
- {"version":3,"file":"Image.es.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\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\nconst ImageContainer = styled.div.withConfig({\n shouldForwardProp: prop =>\n ![\n 'width',\n 'margin',\n 'padding',\n 'border',\n 'borderRadius',\n 'boxShadow',\n 'opacity',\n 'dimensions',\n ].includes(prop.toString()),\n})<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\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<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\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\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage 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 </ImageContainer>\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","ImageContainer","styled","div","withConfig","shouldForwardProp","prop","includes","toString","props","cssWidth","dimensions","cssMargin","cssPadding","cssBorder","cssBorderRadius","cssBoxShadow","p","cssMediaRules","opacity","css","UnoptimizedImage","img","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","borderData","useBorder","boxShadowData","useBoxShadow","imageSrc","publicUrl","dataDimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Link","_jsx","imageSizes"],"mappings":"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"}
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 { useFile } from '../../hooks'\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'\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)\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":"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"}