@makeswift/runtime 0.2.18 → 0.3.0

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 (235) 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/actions.cjs.js +6 -1
  54. package/dist/actions.cjs.js.map +1 -1
  55. package/dist/actions.es.js +6 -2
  56. package/dist/actions.es.js.map +1 -1
  57. package/dist/components.cjs.js +6 -18
  58. package/dist/components.cjs.js.map +1 -1
  59. package/dist/components.es.js +5 -8
  60. package/dist/components.es.js.map +1 -1
  61. package/dist/controls.es.js +1 -1
  62. package/dist/grid-item.cjs.js +612 -0
  63. package/dist/grid-item.cjs.js.map +1 -0
  64. package/dist/grid-item.es.js +604 -0
  65. package/dist/grid-item.es.js.map +1 -0
  66. package/dist/index.cjs.js +592 -275
  67. package/dist/index.cjs.js.map +1 -1
  68. package/dist/index.cjs2.js +98 -474
  69. package/dist/index.cjs2.js.map +1 -1
  70. package/dist/index.cjs3.js +20 -107
  71. package/dist/index.cjs3.js.map +1 -1
  72. package/dist/index.es.js +587 -274
  73. package/dist/index.es.js.map +1 -1
  74. package/dist/index.es2.js +99 -473
  75. package/dist/index.es2.js.map +1 -1
  76. package/dist/index.es3.js +21 -103
  77. package/dist/index.es3.js.map +1 -1
  78. package/dist/next.cjs.js +1 -2
  79. package/dist/next.cjs.js.map +1 -1
  80. package/dist/next.es.js +2 -3
  81. package/dist/next.es.js.map +1 -1
  82. package/dist/react-builder-preview.cjs.js +16 -3
  83. package/dist/react-builder-preview.cjs.js.map +1 -1
  84. package/dist/react-builder-preview.es.js +19 -6
  85. package/dist/react-builder-preview.es.js.map +1 -1
  86. package/dist/react.cjs.js +1 -2
  87. package/dist/react.cjs.js.map +1 -1
  88. package/dist/react.es.js +1 -2
  89. package/dist/react.es.js.map +1 -1
  90. package/dist/slot.cjs.js +41 -6
  91. package/dist/slot.cjs.js.map +1 -1
  92. package/dist/slot.es.js +36 -6
  93. package/dist/slot.es.js.map +1 -1
  94. package/dist/types/src/components/builtin/Box/Box.d.ts +7 -7
  95. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  96. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  97. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -1
  98. package/dist/types/src/components/builtin/Button/Button.d.ts +46 -34
  99. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  100. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +5 -5
  101. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  102. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -1
  103. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +3 -3
  104. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  105. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -1
  106. package/dist/types/src/components/builtin/Divider/Divider.d.ts +3 -3
  107. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -1
  108. package/dist/types/src/components/builtin/Divider/register.d.ts.map +1 -1
  109. package/dist/types/src/components/builtin/Embed/Embed.d.ts +3 -3
  110. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -1
  111. package/dist/types/src/components/builtin/Form/Form.d.ts +3 -3
  112. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -1
  113. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +4 -6
  114. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  115. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +3 -0
  116. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  117. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +2 -0
  118. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  119. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +3 -7
  120. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  121. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +7 -13
  122. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  123. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +2 -0
  124. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  125. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  126. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +2 -0
  127. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  128. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +2 -0
  129. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  130. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  131. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +4 -8
  132. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  133. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +2 -0
  134. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  135. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  136. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  137. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +2 -7
  138. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  139. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +2 -0
  140. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  141. package/dist/types/src/components/builtin/Form/components/Field/services/{cssField.d.ts → responsiveField.d.ts} +5 -4
  142. package/dist/types/src/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -0
  143. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +2 -3
  144. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  145. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  146. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -1
  147. package/dist/types/src/components/builtin/Image/Image.d.ts +7 -7
  148. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  149. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +3 -3
  150. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  151. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +8 -81
  152. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  153. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  154. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +8 -81
  155. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  156. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  157. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -1
  158. package/dist/types/src/components/builtin/Root/Root.d.ts +1 -2
  159. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -1
  160. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts +1 -2
  161. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  162. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +3 -3
  163. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  164. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  165. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -3
  167. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  168. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +8 -11
  169. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -1
  170. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +3 -6
  171. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -1
  172. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts +1 -1
  173. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -1
  174. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -1
  175. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  176. package/dist/types/src/components/builtin/Video/Video.d.ts +4 -4
  177. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -1
  178. package/dist/types/src/components/builtin/Video/register.d.ts.map +1 -1
  179. package/dist/types/src/components/hooks/useBackgrounds.d.ts +1 -1
  180. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -1
  181. package/dist/types/src/components/index.d.ts +0 -1
  182. package/dist/types/src/components/index.d.ts.map +1 -1
  183. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  184. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  185. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +255 -4
  186. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  187. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  188. package/dist/types/src/components/shared/GutterContainer/index.d.ts +8 -4
  189. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -1
  190. package/dist/types/src/components/shared/grid-item.d.ts +17 -0
  191. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -0
  192. package/dist/types/src/components/utils/responsive-style.d.ts +22 -1
  193. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -1
  194. package/dist/types/src/controls/style.d.ts +5 -65
  195. package/dist/types/src/controls/style.d.ts.map +1 -1
  196. package/dist/types/src/css/border-radius.d.ts +20 -0
  197. package/dist/types/src/css/border-radius.d.ts.map +1 -0
  198. package/dist/types/src/css/border.d.ts +31 -0
  199. package/dist/types/src/css/border.d.ts.map +1 -0
  200. package/dist/types/src/css/length-percentage.d.ts +10 -0
  201. package/dist/types/src/css/length-percentage.d.ts.map +1 -0
  202. package/dist/types/src/css/length.d.ts +14 -0
  203. package/dist/types/src/css/length.d.ts.map +1 -0
  204. package/dist/types/src/css/margin.d.ts +20 -0
  205. package/dist/types/src/css/margin.d.ts.map +1 -0
  206. package/dist/types/src/css/padding.d.ts +20 -0
  207. package/dist/types/src/css/padding.d.ts.map +1 -0
  208. package/dist/types/src/next/document.d.ts.map +1 -1
  209. package/dist/types/src/prop-controllers/descriptors.d.ts +96 -33
  210. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  211. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -1
  212. package/dist/types/src/runtimes/react/controls.d.ts +10 -2
  213. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  214. package/dist/types/src/runtimes/react/use-global-style.d.ts +3 -0
  215. package/dist/types/src/runtimes/react/use-global-style.d.ts.map +1 -0
  216. package/dist/types/src/state/actions.d.ts +13 -1
  217. package/dist/types/src/state/actions.d.ts.map +1 -1
  218. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  219. package/dist/useMediaQuery.es.js +1 -1
  220. package/package.json +1 -3
  221. package/dist/cssMediaRules.cjs.js +0 -210
  222. package/dist/cssMediaRules.cjs.js.map +0 -1
  223. package/dist/cssMediaRules.es.js +0 -201
  224. package/dist/cssMediaRules.es.js.map +0 -1
  225. package/dist/index.cjs4.js +0 -18
  226. package/dist/index.cjs4.js.map +0 -1
  227. package/dist/index.es4.js +0 -13
  228. package/dist/index.es4.js.map +0 -1
  229. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts.map +0 -1
  230. package/dist/types/src/components/utils/cssMediaRules.d.ts +0 -69
  231. package/dist/types/src/components/utils/cssMediaRules.d.ts.map +0 -1
  232. package/dist/useBoxShadow.cjs.js +0 -78
  233. package/dist/useBoxShadow.cjs.js.map +0 -1
  234. package/dist/useBoxShadow.es.js +0 -77
  235. package/dist/useBoxShadow.es.js.map +0 -1
@@ -0,0 +1,604 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { cx } from "@emotion/css";
33
+ import { motion } from "framer-motion";
34
+ import { useMemo, useRef, useState, useCallback, forwardRef, createElement, useImperativeHandle, Children } from "react";
35
+ import { U as isNonNullable, B as useQuery, V as FILES_BY_ID, O as SWATCHES_BY_ID, w as useIsomorphicLayoutEffect, q as useStyle, r as responsiveStyle, v as colorToString, A as responsiveGridItem } from "./index.es.js";
36
+ import NextImage from "next/image";
37
+ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
38
+ import ReactPlayer from "react-player";
39
+ function useBackgrounds(value) {
40
+ const fileIds = value == null ? [] : value.map(({ value: backgrounds }) => backgrounds.map((background) => background.type === "image" && background.payload != null ? background.payload.imageId : null).filter(isNonNullable).reduce((a, b) => a.concat(b), [])).reduce((a, b) => a.concat(b), []);
41
+ const swatchIds = value == null ? [] : value.map(({ value: backgrounds }) => backgrounds.map((background) => {
42
+ if (background.type === "color" && background.payload != null) {
43
+ return [background.payload.swatchId];
44
+ }
45
+ if (background.type === "gradient" && background.payload != null) {
46
+ return background.payload.stops.map((stop) => stop.color && stop.color.swatchId).filter(isNonNullable);
47
+ }
48
+ if (background.type === "video" && background.payload != null) {
49
+ return [background.payload.maskColor && background.payload.maskColor.swatchId];
50
+ }
51
+ return null;
52
+ }).filter(isNonNullable).reduce((a, b) => a.concat(b), [])).reduce((a, b) => a.concat(b), []).filter(isNonNullable);
53
+ const skip = value == null;
54
+ const filesResult = useQuery(FILES_BY_ID, {
55
+ skip: skip || fileIds.length === 0,
56
+ variables: { ids: fileIds }
57
+ });
58
+ const swatchesResult = useQuery(SWATCHES_BY_ID, {
59
+ skip: skip || swatchIds.length === 0,
60
+ variables: { ids: swatchIds }
61
+ });
62
+ return useMemo(() => {
63
+ const { data: filesData = {} } = filesResult;
64
+ const { data: swatchesData = {} } = swatchesResult;
65
+ if (value == null || filesResult.error != null || swatchesResult.error != null) {
66
+ return null;
67
+ }
68
+ const { files = [] } = filesData;
69
+ const { swatches = [] } = swatchesData;
70
+ return value.map((_a) => {
71
+ var _b = _a, { value: backgrounds } = _b, restOfValue = __objRest(_b, ["value"]);
72
+ return __spreadProps(__spreadValues({}, restOfValue), {
73
+ value: backgrounds.map((bg) => {
74
+ if (bg.type === "image" && bg.payload != null && bg.payload.imageId != null) {
75
+ const _a2 = bg.payload, { imageId } = _a2, restOfPayload = __objRest(_a2, ["imageId"]);
76
+ const file = files.find((f) => f && f.id === imageId);
77
+ return file && {
78
+ id: bg.id,
79
+ type: "image",
80
+ payload: __spreadProps(__spreadValues({}, restOfPayload), {
81
+ publicUrl: file.publicUrl,
82
+ dimensions: file.dimensions
83
+ })
84
+ };
85
+ }
86
+ if (bg.type === "color" && bg.payload != null) {
87
+ const { swatchId, alpha } = bg.payload;
88
+ const swatch = swatches.find((s) => s && s.id === swatchId);
89
+ return { id: bg.id, type: "color", payload: { swatch, alpha } };
90
+ }
91
+ if (bg.type === "gradient" && bg.payload != null && bg.payload.stops.length > 0) {
92
+ return {
93
+ id: bg.id,
94
+ type: "gradient",
95
+ payload: {
96
+ angle: bg.payload.angle,
97
+ isRadial: bg.payload.isRadial,
98
+ stops: bg.payload.stops.map((_b2) => {
99
+ var _c = _b2, { color } = _c, restOfStop = __objRest(_c, ["color"]);
100
+ return __spreadProps(__spreadValues({}, restOfStop), {
101
+ color: color && {
102
+ swatch: swatches.find((s) => s && s.id === color.swatchId),
103
+ alpha: color.alpha
104
+ }
105
+ });
106
+ })
107
+ }
108
+ };
109
+ }
110
+ if (bg.type === "video" && bg.payload != null) {
111
+ const _d = bg.payload, { maskColor } = _d, restOfPayload = __objRest(_d, ["maskColor"]);
112
+ const swatch = maskColor && swatches.find((s) => s && s.id === maskColor.swatchId);
113
+ return {
114
+ id: bg.id,
115
+ type: "video",
116
+ payload: __spreadProps(__spreadValues({}, restOfPayload), {
117
+ maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha }
118
+ })
119
+ };
120
+ }
121
+ return null;
122
+ }).filter(Boolean)
123
+ });
124
+ });
125
+ }, [filesResult, swatchesResult, value]);
126
+ }
127
+ const clamp = (min, val, max) => Math.min(Math.max(min, val), max);
128
+ function isScrollable(element) {
129
+ const {
130
+ overflow,
131
+ overflowY,
132
+ overflowX
133
+ } = element.ownerDocument.defaultView.getComputedStyle(element);
134
+ return /(auto|scroll)/.test(overflow + overflowX + overflowY);
135
+ }
136
+ function getScrollParent(element) {
137
+ const {
138
+ parentElement
139
+ } = element;
140
+ if (!element || !parentElement)
141
+ return element;
142
+ if (isScrollable(element))
143
+ return element;
144
+ return getScrollParent(parentElement);
145
+ }
146
+ function Parallax(_a) {
147
+ var _b = _a, {
148
+ strength,
149
+ children
150
+ } = _b, rest = __objRest(_b, [
151
+ "strength",
152
+ "children"
153
+ ]);
154
+ const container = useRef(null);
155
+ const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength);
156
+ const lastScrollParentScrollTop = useRef(0);
157
+ useIsomorphicLayoutEffect(() => {
158
+ if (!container.current || strength == null || strength === 0)
159
+ return void 0;
160
+ const containerDocument = container.current.ownerDocument;
161
+ const scrollParent = getScrollParent(container.current);
162
+ const eventTarget = containerDocument.documentElement === scrollParent ? containerDocument.defaultView : scrollParent;
163
+ lastScrollParentScrollTop.current = scrollParent.scrollTop;
164
+ setContainerScrollTop(strength);
165
+ function handleScroll() {
166
+ containerDocument.defaultView.requestAnimationFrame(() => {
167
+ if (!container.current)
168
+ return;
169
+ const {
170
+ top: containerTop,
171
+ bottom: containerBottom
172
+ } = container.current.getBoundingClientRect();
173
+ const {
174
+ top: scrollParentTop,
175
+ bottom: scrollParentBottom
176
+ } = scrollParent === containerDocument.documentElement ? {
177
+ top: 0,
178
+ bottom: containerDocument.defaultView.innerHeight
179
+ } : scrollParent.getBoundingClientRect();
180
+ const {
181
+ scrollTop: scrollParentScrollTop
182
+ } = scrollParent === containerDocument.documentElement ? {
183
+ scrollTop: containerDocument.defaultView.pageYOffset
184
+ } : scrollParent;
185
+ const scrollParentHeight = scrollParentBottom - scrollParentTop;
186
+ const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current;
187
+ lastScrollParentScrollTop.current = scrollParentScrollTop;
188
+ setContainerScrollTop((scrollTop) => {
189
+ const isContainerVisible = containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop;
190
+ const containerScrollRemaining = scrollParentScrollDelta > 0 ? 2 * strength - scrollTop : scrollTop;
191
+ const scrollParentScrollRemaining = scrollParentScrollDelta > 0 ? scrollParentTop + containerBottom : scrollParentHeight - containerTop;
192
+ const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining;
193
+ const containerScrollDelta = isContainerVisible ? parallaxRatio * scrollParentScrollDelta : 0;
194
+ return clamp(0, scrollTop + containerScrollDelta, strength * 2);
195
+ });
196
+ });
197
+ }
198
+ eventTarget.addEventListener("scroll", handleScroll);
199
+ return () => eventTarget.removeEventListener("scroll", handleScroll);
200
+ }, [strength]);
201
+ const getProps = useCallback((_a2) => {
202
+ var _b2 = _a2, {
203
+ style
204
+ } = _b2, restOfChildrenProps = __objRest(_b2, [
205
+ "style"
206
+ ]);
207
+ return __spreadProps(__spreadValues({}, restOfChildrenProps), {
208
+ style: __spreadValues(__spreadProps(__spreadValues({}, style), {
209
+ position: "absolute",
210
+ left: 0,
211
+ right: 0,
212
+ top: 0,
213
+ bottom: 0
214
+ }), strength == null || strength === 0 ? {} : {
215
+ top: -strength,
216
+ bottom: -strength,
217
+ transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`
218
+ })
219
+ });
220
+ }, [strength, containerScrollTop]);
221
+ return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, rest), {
222
+ ref: container,
223
+ style: {
224
+ position: "absolute",
225
+ top: 0,
226
+ left: 0,
227
+ right: 0,
228
+ bottom: 0
229
+ },
230
+ children: children(getProps)
231
+ }));
232
+ }
233
+ const Container = forwardRef(function Container2(_c, ref) {
234
+ var _d = _c, {
235
+ className
236
+ } = _d, restOfProps = __objRest(_d, [
237
+ "className"
238
+ ]);
239
+ return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
240
+ ref,
241
+ className: cx(useStyle({
242
+ position: "absolute",
243
+ top: 0,
244
+ left: 0,
245
+ right: 0,
246
+ bottom: 0,
247
+ pointerEvents: "none",
248
+ overflow: "hidden"
249
+ }), className)
250
+ }));
251
+ });
252
+ function Mask({
253
+ backgroundColor,
254
+ visible
255
+ }) {
256
+ return /* @__PURE__ */ jsx("div", {
257
+ className: useStyle({
258
+ position: "absolute",
259
+ top: 0,
260
+ left: 0,
261
+ right: 0,
262
+ bottom: 0,
263
+ background: backgroundColor,
264
+ opacity: visible ? 1 : 0,
265
+ transition: "opacity 1s"
266
+ })
267
+ });
268
+ }
269
+ const getScale = (element, aspectRatio, zoom) => {
270
+ const {
271
+ offsetWidth: width,
272
+ offsetHeight: height
273
+ } = element;
274
+ const computedAspectRatio = width / height;
275
+ return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom;
276
+ };
277
+ function BackgroundVideo({
278
+ url = "",
279
+ aspectRatio = 16 / 9,
280
+ zoom = 1,
281
+ maskColor,
282
+ opacity
283
+ }) {
284
+ var _a;
285
+ const [ready, setReady] = useState(false);
286
+ const [scale, setScale] = useState(1);
287
+ const container = useRef(null);
288
+ useIsomorphicLayoutEffect(() => {
289
+ const {
290
+ current: containerEl
291
+ } = container;
292
+ if (!containerEl)
293
+ return void 0;
294
+ const {
295
+ defaultView
296
+ } = containerEl.ownerDocument;
297
+ const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom));
298
+ handleResize();
299
+ defaultView.addEventListener("resize", handleResize);
300
+ return () => defaultView.removeEventListener("resize", handleResize);
301
+ }, [aspectRatio, zoom]);
302
+ if (!ReactPlayer.canPlay(url))
303
+ return /* @__PURE__ */ jsx(Fragment, {});
304
+ return /* @__PURE__ */ jsxs(Container, {
305
+ ref: container,
306
+ children: [container.current && /* @__PURE__ */ jsx(ReactPlayer, {
307
+ url,
308
+ config: {
309
+ vimeo: {
310
+ playerOptions: {
311
+ background: true
312
+ }
313
+ },
314
+ youtube: {
315
+ playerVars: {
316
+ origin: (_a = container.current.ownerDocument.defaultView) == null ? void 0 : _a.location.origin
317
+ }
318
+ },
319
+ wistia: {
320
+ options: {
321
+ endVideoBehavior: "loop",
322
+ playbackRateControl: false,
323
+ playbar: false,
324
+ playButton: false,
325
+ volumeControl: false,
326
+ fullscreenButton: false,
327
+ muted: true
328
+ }
329
+ }
330
+ },
331
+ playing: true,
332
+ loop: true,
333
+ muted: true,
334
+ controls: false,
335
+ onReady: () => setReady(true),
336
+ style: {
337
+ transform: `scale3d(${scale}, ${scale}, 1)`,
338
+ opacity
339
+ },
340
+ width: "100%",
341
+ height: "100%"
342
+ }), /* @__PURE__ */ jsx(Mask, {
343
+ backgroundColor: maskColor,
344
+ visible: !ready
345
+ })]
346
+ });
347
+ }
348
+ function getColor(color) {
349
+ if (color == null)
350
+ return "black";
351
+ if (color.swatch == null) {
352
+ return colorToString(__spreadProps(__spreadValues({}, color), {
353
+ swatch: {
354
+ hue: 0,
355
+ saturation: 0,
356
+ lightness: 0
357
+ }
358
+ }));
359
+ }
360
+ return colorToString(color);
361
+ }
362
+ const getStopsStyle = (stops) => stops.map(({
363
+ color,
364
+ location
365
+ }) => `${getColor(color)} ${location}%`).join(",");
366
+ const absoluteFillStyle = {
367
+ position: "absolute",
368
+ top: 0,
369
+ right: 0,
370
+ bottom: 0,
371
+ left: 0
372
+ };
373
+ const containerStyle = __spreadProps(__spreadValues({}, absoluteFillStyle), {
374
+ borderRadius: "inherit"
375
+ });
376
+ function Backgrounds({
377
+ backgrounds
378
+ }) {
379
+ if (backgrounds == null)
380
+ return /* @__PURE__ */ jsx(Fragment, {});
381
+ return /* @__PURE__ */ jsx(Fragment, {
382
+ children: backgrounds.map(({
383
+ value,
384
+ deviceId
385
+ }) => {
386
+ const visibility = backgrounds.map((v) => ({
387
+ deviceId: v.deviceId,
388
+ value: v.deviceId === deviceId
389
+ }));
390
+ return /* @__PURE__ */ jsx(BackgroundDeviceLayer, {
391
+ layer: value,
392
+ visibility
393
+ }, deviceId);
394
+ })
395
+ });
396
+ }
397
+ function BackgroundDeviceLayer({
398
+ layer,
399
+ visibility
400
+ }) {
401
+ const visibilityStyle = responsiveStyle([visibility], ([v]) => ({
402
+ display: v === true ? "block" : "none"
403
+ }));
404
+ return /* @__PURE__ */ jsx("div", {
405
+ className: useStyle(__spreadProps(__spreadValues(__spreadValues({}, containerStyle), visibilityStyle), {
406
+ overflow: "hidden"
407
+ })),
408
+ children: [...layer].reverse().map((bg) => {
409
+ if (bg.type === "color") {
410
+ return /* @__PURE__ */ jsx(ColorBackground, {
411
+ color: getColor(bg.payload)
412
+ }, bg.id);
413
+ }
414
+ if (bg.type === "image" && bg.payload) {
415
+ return /* @__PURE__ */ createElement(ImageBackground, __spreadProps(__spreadValues({}, bg.payload), {
416
+ key: bg.id
417
+ }));
418
+ }
419
+ if (bg.type === "gradient" && bg.payload) {
420
+ return /* @__PURE__ */ createElement(GradientBackground, __spreadProps(__spreadValues({}, bg.payload), {
421
+ key: bg.id,
422
+ gradient: getStopsStyle(bg.payload.stops)
423
+ }));
424
+ }
425
+ if (bg.type === "video" && bg.payload) {
426
+ return /* @__PURE__ */ createElement(VideoBackground, __spreadProps(__spreadValues({}, bg.payload), {
427
+ key: bg.id,
428
+ maskColor: getColor(bg.payload.maskColor)
429
+ }));
430
+ }
431
+ return null;
432
+ })
433
+ });
434
+ }
435
+ function ColorBackground({
436
+ color
437
+ }) {
438
+ return /* @__PURE__ */ jsx("div", {
439
+ className: useStyle(__spreadProps(__spreadValues({}, containerStyle), {
440
+ backgroundColor: color
441
+ }))
442
+ });
443
+ }
444
+ const ImageBackgroundRepeat = {
445
+ NoRepeat: "no-repeat",
446
+ RepeatX: "repeat-x",
447
+ RepeatY: "repeat-y",
448
+ Repeat: "repeat"
449
+ };
450
+ const ImageBackgroundSize = {
451
+ Cover: "cover",
452
+ Contain: "contain",
453
+ Auto: "auto"
454
+ };
455
+ function ImageBackground({
456
+ publicUrl,
457
+ position,
458
+ repeat = ImageBackgroundRepeat.NoRepeat,
459
+ size = ImageBackgroundSize.Cover,
460
+ opacity,
461
+ parallax
462
+ }) {
463
+ const backgroundPosition = `${position.x}% ${position.y}%`;
464
+ const containerClassName = useStyle(containerStyle);
465
+ if (repeat === "no-repeat" && size !== "auto" && publicUrl != null) {
466
+ return /* @__PURE__ */ jsx(Parallax, {
467
+ strength: parallax,
468
+ children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, getParallaxProps({
469
+ style: {
470
+ opacity,
471
+ overflow: "hidden"
472
+ }
473
+ })), {
474
+ children: /* @__PURE__ */ jsx(NextImage, {
475
+ src: publicUrl,
476
+ layout: "fill",
477
+ objectPosition: backgroundPosition,
478
+ objectFit: size
479
+ })
480
+ }))
481
+ });
482
+ }
483
+ return /* @__PURE__ */ jsx(Parallax, {
484
+ strength: parallax,
485
+ children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadValues({
486
+ className: containerClassName
487
+ }, getParallaxProps({
488
+ style: {
489
+ backgroundImage: publicUrl != null ? `url('${publicUrl}')` : void 0,
490
+ backgroundPosition,
491
+ backgroundRepeat: repeat,
492
+ backgroundSize: size,
493
+ opacity
494
+ }
495
+ })))
496
+ });
497
+ }
498
+ function GradientBackground({
499
+ gradient,
500
+ isRadial,
501
+ angle
502
+ }) {
503
+ return /* @__PURE__ */ jsx("div", {
504
+ className: useStyle(__spreadProps(__spreadValues({}, containerStyle), {
505
+ background: isRadial ? `radial-gradient(${gradient})` : `linear-gradient(${angle}rad, ${gradient})`
506
+ }))
507
+ });
508
+ }
509
+ function getAspectRatio(aspectRatio) {
510
+ switch (aspectRatio) {
511
+ case "wide":
512
+ return 16 / 9;
513
+ case "standard":
514
+ return 4 / 3;
515
+ default:
516
+ return 16 / 9;
517
+ }
518
+ }
519
+ function VideoBackground({
520
+ url,
521
+ aspectRatio,
522
+ maskColor,
523
+ zoom,
524
+ opacity,
525
+ parallax
526
+ }) {
527
+ return /* @__PURE__ */ jsx(Parallax, {
528
+ strength: parallax,
529
+ children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, getParallaxProps({
530
+ className: useStyle(containerStyle)
531
+ })), {
532
+ children: /* @__PURE__ */ jsx(BackgroundVideo, {
533
+ url,
534
+ zoom,
535
+ opacity,
536
+ aspectRatio: getAspectRatio(aspectRatio),
537
+ maskColor
538
+ })
539
+ }))
540
+ });
541
+ }
542
+ var BackgroundsContainer = forwardRef(function BackgroundsContainer2(_e, ref) {
543
+ var _f = _e, {
544
+ hasAnimations = false,
545
+ backgrounds,
546
+ children,
547
+ className
548
+ } = _f, restOfProps = __objRest(_f, [
549
+ "hasAnimations",
550
+ "backgrounds",
551
+ "children",
552
+ "className"
553
+ ]);
554
+ const [handle, setHandle] = useState(null);
555
+ const Component = hasAnimations ? motion.div : "div";
556
+ useImperativeHandle(ref, () => handle, [handle]);
557
+ return /* @__PURE__ */ jsxs(Component, __spreadProps(__spreadValues({}, restOfProps), {
558
+ ref: setHandle,
559
+ className: cx(useStyle({
560
+ position: "relative",
561
+ width: "100%",
562
+ margin: "0 auto",
563
+ "> *": {
564
+ borderRadius: "inherit",
565
+ height: "inherit"
566
+ },
567
+ "> :last-child": {
568
+ position: "relative"
569
+ }
570
+ }), className),
571
+ children: [/* @__PURE__ */ jsx(Backgrounds, {
572
+ backgrounds: useBackgrounds(backgrounds)
573
+ }), Children.only(children)]
574
+ }));
575
+ });
576
+ function GridItem(_g) {
577
+ var _h = _g, {
578
+ as,
579
+ grid,
580
+ index,
581
+ columnGap,
582
+ rowGap,
583
+ className
584
+ } = _h, restOfProps = __objRest(_h, [
585
+ "as",
586
+ "grid",
587
+ "index",
588
+ "columnGap",
589
+ "rowGap",
590
+ "className"
591
+ ]);
592
+ const gridItemClassName = useStyle(responsiveGridItem({
593
+ grid,
594
+ index,
595
+ columnGap,
596
+ rowGap
597
+ }));
598
+ const Component = as != null ? as : "div";
599
+ return /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({}, restOfProps), {
600
+ className: cx(gridItemClassName, className)
601
+ }));
602
+ }
603
+ export { BackgroundsContainer as B, GridItem as G, useBackgrounds as u };
604
+ //# sourceMappingURL=grid-item.es.js.map