@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
@@ -31,492 +31,116 @@ var __objRest = (source, exclude) => {
31
31
  return target;
32
32
  };
33
33
  var React = require("react");
34
- var styled = require("styled-components");
35
- var framerMotion = require("framer-motion");
36
- var NextImage = require("next/image");
37
- var cssMediaRules = require("./cssMediaRules.cjs.js");
34
+ var scrollIntoView = require("scroll-into-view-if-needed");
35
+ var NextLink = require("next/link");
38
36
  var next = require("./index.cjs.js");
39
37
  var jsxRuntime = require("react/jsx-runtime");
40
- var ReactPlayer = require("react-player");
41
38
  function _interopDefaultLegacy(e) {
42
39
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
43
40
  }
44
- var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
45
- var NextImage__default = /* @__PURE__ */ _interopDefaultLegacy(NextImage);
46
- var ReactPlayer__default = /* @__PURE__ */ _interopDefaultLegacy(ReactPlayer);
47
- function useBackgrounds(value) {
48
- const fileIds = value == null ? [] : value.map(({ value: backgrounds }) => backgrounds.map((background) => background.type === "image" && background.payload != null ? background.payload.imageId : null).filter(next.isNonNullable).reduce((a, b) => a.concat(b), [])).reduce((a, b) => a.concat(b), []);
49
- const swatchIds = value == null ? [] : value.map(({ value: backgrounds }) => backgrounds.map((background) => {
50
- if (background.type === "color" && background.payload != null) {
51
- return [background.payload.swatchId];
52
- }
53
- if (background.type === "gradient" && background.payload != null) {
54
- return background.payload.stops.map((stop) => stop.color && stop.color.swatchId).filter(next.isNonNullable);
55
- }
56
- if (background.type === "video" && background.payload != null) {
57
- return [background.payload.maskColor && background.payload.maskColor.swatchId];
58
- }
59
- return null;
60
- }).filter(next.isNonNullable).reduce((a, b) => a.concat(b), [])).reduce((a, b) => a.concat(b), []).filter(next.isNonNullable);
61
- const skip = value == null;
62
- const filesResult = next.useQuery(next.FILES_BY_ID, {
63
- skip: skip || fileIds.length === 0,
64
- variables: { ids: fileIds }
65
- });
66
- const swatchesResult = next.useQuery(next.SWATCHES_BY_ID, {
67
- skip: skip || swatchIds.length === 0,
68
- variables: { ids: swatchIds }
69
- });
70
- return React.useMemo(() => {
71
- const { data: filesData = {} } = filesResult;
72
- const { data: swatchesData = {} } = swatchesResult;
73
- if (value == null || filesResult.error != null || swatchesResult.error != null) {
74
- return null;
75
- }
76
- const { files = [] } = filesData;
77
- const { swatches = [] } = swatchesData;
78
- return value.map((_a) => {
79
- var _b = _a, { value: backgrounds } = _b, restOfValue = __objRest(_b, ["value"]);
80
- return __spreadProps(__spreadValues({}, restOfValue), {
81
- value: backgrounds.map((bg) => {
82
- if (bg.type === "image" && bg.payload != null && bg.payload.imageId != null) {
83
- const _a2 = bg.payload, { imageId } = _a2, restOfPayload = __objRest(_a2, ["imageId"]);
84
- const file = files.find((f) => f && f.id === imageId);
85
- return file && {
86
- id: bg.id,
87
- type: "image",
88
- payload: __spreadProps(__spreadValues({}, restOfPayload), {
89
- publicUrl: file.publicUrl,
90
- dimensions: file.dimensions
91
- })
92
- };
93
- }
94
- if (bg.type === "color" && bg.payload != null) {
95
- const { swatchId, alpha } = bg.payload;
96
- const swatch = swatches.find((s) => s && s.id === swatchId);
97
- return { id: bg.id, type: "color", payload: { swatch, alpha } };
98
- }
99
- if (bg.type === "gradient" && bg.payload != null && bg.payload.stops.length > 0) {
100
- return {
101
- id: bg.id,
102
- type: "gradient",
103
- payload: {
104
- angle: bg.payload.angle,
105
- isRadial: bg.payload.isRadial,
106
- stops: bg.payload.stops.map((_b2) => {
107
- var _c = _b2, { color } = _c, restOfStop = __objRest(_c, ["color"]);
108
- return __spreadProps(__spreadValues({}, restOfStop), {
109
- color: color && {
110
- swatch: swatches.find((s) => s && s.id === color.swatchId),
111
- alpha: color.alpha
112
- }
113
- });
114
- })
115
- }
116
- };
117
- }
118
- if (bg.type === "video" && bg.payload != null) {
119
- const _d = bg.payload, { maskColor } = _d, restOfPayload = __objRest(_d, ["maskColor"]);
120
- const swatch = maskColor && swatches.find((s) => s && s.id === maskColor.swatchId);
121
- return {
122
- id: bg.id,
123
- type: "video",
124
- payload: __spreadProps(__spreadValues({}, restOfPayload), {
125
- maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha }
126
- })
127
- };
128
- }
129
- return null;
130
- }).filter(Boolean)
131
- });
132
- });
133
- }, [filesResult, swatchesResult, value]);
134
- }
135
- const clamp = (min, val, max) => Math.min(Math.max(min, val), max);
136
- function isScrollable(element) {
137
- const {
138
- overflow,
139
- overflowY,
140
- overflowX
141
- } = element.ownerDocument.defaultView.getComputedStyle(element);
142
- return /(auto|scroll)/.test(overflow + overflowX + overflowY);
143
- }
144
- function getScrollParent(element) {
145
- const {
146
- parentElement
147
- } = element;
148
- if (!element || !parentElement)
149
- return element;
150
- if (isScrollable(element))
151
- return element;
152
- return getScrollParent(parentElement);
153
- }
154
- function Parallax(_a) {
41
+ var scrollIntoView__default = /* @__PURE__ */ _interopDefaultLegacy(scrollIntoView);
42
+ var NextLink__default = /* @__PURE__ */ _interopDefaultLegacy(NextLink);
43
+ const Link = React.forwardRef(function Link2(_a, ref) {
155
44
  var _b = _a, {
156
- strength,
157
- children
158
- } = _b, rest = __objRest(_b, [
159
- "strength",
160
- "children"
161
- ]);
162
- const container = React.useRef(null);
163
- const [containerScrollTop, setContainerScrollTop] = React.useState(strength == null ? 0 : strength);
164
- const lastScrollParentScrollTop = React.useRef(0);
165
- next.useIsomorphicLayoutEffect(() => {
166
- if (!container.current || strength == null || strength === 0)
167
- return void 0;
168
- const containerDocument = container.current.ownerDocument;
169
- const scrollParent = getScrollParent(container.current);
170
- const eventTarget = containerDocument.documentElement === scrollParent ? containerDocument.defaultView : scrollParent;
171
- lastScrollParentScrollTop.current = scrollParent.scrollTop;
172
- setContainerScrollTop(strength);
173
- function handleScroll() {
174
- containerDocument.defaultView.requestAnimationFrame(() => {
175
- if (!container.current)
176
- return;
177
- const {
178
- top: containerTop,
179
- bottom: containerBottom
180
- } = container.current.getBoundingClientRect();
181
- const {
182
- top: scrollParentTop,
183
- bottom: scrollParentBottom
184
- } = scrollParent === containerDocument.documentElement ? {
185
- top: 0,
186
- bottom: containerDocument.defaultView.innerHeight
187
- } : scrollParent.getBoundingClientRect();
188
- const {
189
- scrollTop: scrollParentScrollTop
190
- } = scrollParent === containerDocument.documentElement ? {
191
- scrollTop: containerDocument.defaultView.pageYOffset
192
- } : scrollParent;
193
- const scrollParentHeight = scrollParentBottom - scrollParentTop;
194
- const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current;
195
- lastScrollParentScrollTop.current = scrollParentScrollTop;
196
- setContainerScrollTop((scrollTop) => {
197
- const isContainerVisible = containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop;
198
- const containerScrollRemaining = scrollParentScrollDelta > 0 ? 2 * strength - scrollTop : scrollTop;
199
- const scrollParentScrollRemaining = scrollParentScrollDelta > 0 ? scrollParentTop + containerBottom : scrollParentHeight - containerTop;
200
- const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining;
201
- const containerScrollDelta = isContainerVisible ? parallaxRatio * scrollParentScrollDelta : 0;
202
- return clamp(0, scrollTop + containerScrollDelta, strength * 2);
203
- });
204
- });
45
+ link,
46
+ onClick = () => {
205
47
  }
206
- eventTarget.addEventListener("scroll", handleScroll);
207
- return () => eventTarget.removeEventListener("scroll", handleScroll);
208
- }, [strength]);
209
- const getProps = React.useCallback((_a2) => {
210
- var _b2 = _a2, {
211
- style
212
- } = _b2, restOfChildrenProps = __objRest(_b2, [
213
- "style"
214
- ]);
215
- return __spreadProps(__spreadValues({}, restOfChildrenProps), {
216
- style: __spreadValues(__spreadProps(__spreadValues({}, style), {
217
- position: "absolute",
218
- left: 0,
219
- right: 0,
220
- top: 0,
221
- bottom: 0
222
- }), strength == null || strength === 0 ? {} : {
223
- top: -strength,
224
- bottom: -strength,
225
- transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`
226
- })
227
- });
228
- }, [strength, containerScrollTop]);
229
- return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, rest), {
230
- ref: container,
231
- style: {
232
- position: "absolute",
233
- top: 0,
234
- left: 0,
235
- right: 0,
236
- bottom: 0
237
- },
238
- children: children(getProps)
239
- }));
240
- }
241
- const Container$1 = styled__default["default"].div`
242
- position: absolute;
243
- top: 0;
244
- left: 0;
245
- right: 0;
246
- bottom: 0;
247
- pointer-events: none;
248
- overflow: hidden;
249
- `;
250
- const Mask = styled__default["default"].div`
251
- position: absolute;
252
- top: 0;
253
- left: 0;
254
- right: 0;
255
- bottom: 0;
256
- background: ${(props) => props.backgroundColor};
257
- opacity: ${(props) => props.visible ? 1 : 0};
258
- transition: opacity 1s;
259
- `;
260
- const getScale = (element, aspectRatio, zoom) => {
261
- const {
262
- offsetWidth: width,
263
- offsetHeight: height
264
- } = element;
265
- const computedAspectRatio = width / height;
266
- return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom;
267
- };
268
- function BackgroundVideo({
269
- url = "",
270
- aspectRatio = 16 / 9,
271
- zoom = 1,
272
- maskColor,
273
- opacity
274
- }) {
275
- var _a;
276
- const [ready, setReady] = React.useState(false);
277
- const [scale, setScale] = React.useState(1);
278
- const container = React.useRef(null);
279
- next.useIsomorphicLayoutEffect(() => {
280
- const {
281
- current: containerEl
282
- } = container;
283
- if (!containerEl)
284
- return void 0;
285
- const {
286
- defaultView
287
- } = containerEl.ownerDocument;
288
- const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom));
289
- handleResize();
290
- defaultView.addEventListener("resize", handleResize);
291
- return () => defaultView.removeEventListener("resize", handleResize);
292
- }, [aspectRatio, zoom]);
293
- if (!ReactPlayer__default["default"].canPlay(url))
294
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
295
- return /* @__PURE__ */ jsxRuntime.jsxs(Container$1, {
296
- ref: container,
297
- children: [container.current && /* @__PURE__ */ jsxRuntime.jsx(ReactPlayer__default["default"], {
298
- url,
299
- config: {
300
- vimeo: {
301
- playerOptions: {
302
- background: true
303
- }
304
- },
305
- youtube: {
306
- playerVars: {
307
- origin: (_a = container.current.ownerDocument.defaultView) == null ? void 0 : _a.location.origin
308
- }
309
- },
310
- wistia: {
311
- options: {
312
- endVideoBehavior: "loop",
313
- playbackRateControl: false,
314
- playbar: false,
315
- playButton: false,
316
- volumeControl: false,
317
- fullscreenButton: false,
318
- muted: true
319
- }
48
+ } = _b, restOfProps = __objRest(_b, [
49
+ "link",
50
+ "onClick"
51
+ ]);
52
+ var _a2;
53
+ const page = next.usePage(link && link.type === "OPEN_PAGE" ? link.payload.pageId : null);
54
+ const elementKey = (link == null ? void 0 : link.type) === "SCROLL_TO_ELEMENT" ? (_a2 = link.payload.elementIdConfig) == null ? void 0 : _a2.elementKey : null;
55
+ const elementId = next.useElementId(elementKey);
56
+ let useNextLink;
57
+ let href;
58
+ let target;
59
+ let block;
60
+ if (link) {
61
+ switch (link.type) {
62
+ case "OPEN_PAGE": {
63
+ if (page) {
64
+ useNextLink = true;
65
+ href = `/${page.pathname}`;
320
66
  }
321
- },
322
- playing: true,
323
- loop: true,
324
- muted: true,
325
- controls: false,
326
- onReady: () => setReady(true),
327
- style: {
328
- transform: `scale3d(${scale}, ${scale}, 1)`,
329
- opacity
330
- },
331
- width: "100%",
332
- height: "100%"
333
- }), /* @__PURE__ */ jsxRuntime.jsx(Mask, {
334
- backgroundColor: maskColor,
335
- visible: !ready
336
- })]
337
- });
338
- }
339
- function getColor(color) {
340
- if (color == null)
341
- return "black";
342
- if (color.swatch == null) {
343
- return next.colorToString(__spreadProps(__spreadValues({}, color), {
344
- swatch: {
345
- hue: 0,
346
- saturation: 0,
347
- lightness: 0
67
+ target = link.payload.openInNewTab ? "_blank" : "_self";
68
+ break;
348
69
  }
349
- }));
350
- }
351
- return next.colorToString(color);
352
- }
353
- const getStopsStyle = (stops) => stops.map(({
354
- color,
355
- location
356
- }) => `${getColor(color)} ${location}%`).join(",");
357
- const getAspectRatio = (aspectRatio) => {
358
- switch (aspectRatio) {
359
- case "wide":
360
- return 16 / 9;
361
- case "standard":
362
- return 4 / 3;
363
- default:
364
- return 16 / 9;
70
+ case "OPEN_URL": {
71
+ useNextLink = true;
72
+ href = link.payload.url;
73
+ target = link.payload.openInNewTab ? "_blank" : "_self";
74
+ break;
75
+ }
76
+ case "SEND_EMAIL": {
77
+ useNextLink = false;
78
+ const {
79
+ to,
80
+ subject = "",
81
+ body = ""
82
+ } = link.payload;
83
+ if (to != null)
84
+ href = `mailto:${to}?subject=${subject}&body=${body}`;
85
+ break;
86
+ }
87
+ case "CALL_PHONE": {
88
+ useNextLink = false;
89
+ href = `tel:${link.payload.phoneNumber}`;
90
+ break;
91
+ }
92
+ case "SCROLL_TO_ELEMENT": {
93
+ useNextLink = false;
94
+ href = `#${elementId != null ? elementId : ""}`;
95
+ block = link.payload.block;
96
+ break;
97
+ }
98
+ default:
99
+ throw new RangeError(`Invalid link type "${link.type}."`);
100
+ }
365
101
  }
366
- };
367
- const AbsoluteFill = styled__default["default"].div`
368
- position: absolute;
369
- top: 0;
370
- left: 0;
371
- right: 0;
372
- bottom: 0;
373
- `;
374
- const Container = styled__default["default"](AbsoluteFill)`
375
- border-radius: inherit;
376
- `;
377
- const BackgroundsContainer$1 = styled__default["default"](Container)`
378
- overflow: hidden;
379
- ${(p) => cssMediaRules.cssMediaRules([p.visibility], ([visibility]) => styled.css`
380
- display: ${visibility === true ? "block" : "none"};
381
- `)}
382
- `;
383
- function Backgrounds({
384
- backgrounds
385
- }) {
386
- if (backgrounds == null)
387
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
388
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
389
- children: backgrounds.map(({
390
- value,
391
- deviceId
392
- }) => {
393
- const visibility = backgrounds.map((v) => ({
394
- deviceId: v.deviceId,
395
- value: v.deviceId === deviceId
396
- }));
397
- return /* @__PURE__ */ jsxRuntime.jsx(BackgroundsContainer$1, {
398
- visibility,
399
- children: [...value].reverse().map((bg) => {
400
- if (bg.type === "color") {
401
- return /* @__PURE__ */ jsxRuntime.jsx(Container, {
402
- style: {
403
- backgroundColor: getColor(bg.payload)
404
- }
405
- }, bg.id);
406
- }
407
- if (bg.type === "image" && bg.payload) {
408
- const {
409
- publicUrl,
410
- position,
411
- repeat = "no-repeat",
412
- size = "cover",
413
- opacity,
414
- parallax
415
- } = bg.payload;
416
- const backgroundPosition = `${position.x}% ${position.y}%`;
417
- if (repeat === "no-repeat" && size !== "auto" && publicUrl != null) {
418
- return /* @__PURE__ */ jsxRuntime.jsx(Parallax, {
419
- strength: parallax,
420
- children: (getParallaxProps) => /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, getParallaxProps({
421
- style: {
422
- opacity,
423
- overflow: "hidden"
424
- }
425
- })), {
426
- children: /* @__PURE__ */ jsxRuntime.jsx(NextImage__default["default"], {
427
- src: publicUrl,
428
- layout: "fill",
429
- objectPosition: backgroundPosition,
430
- objectFit: size
431
- })
432
- }))
433
- }, bg.id);
434
- }
435
- return /* @__PURE__ */ jsxRuntime.jsx(Parallax, {
436
- strength: parallax,
437
- children: (getParallaxProps) => /* @__PURE__ */ jsxRuntime.jsx(Container, __spreadValues({}, getParallaxProps({
438
- style: {
439
- backgroundImage: publicUrl != null ? `url('${publicUrl}')` : void 0,
440
- backgroundPosition,
441
- backgroundRepeat: repeat,
442
- backgroundSize: size,
443
- opacity
444
- }
445
- })))
446
- }, bg.id);
447
- }
448
- if (bg.type === "gradient" && bg.payload) {
449
- const {
450
- angle,
451
- stops,
452
- isRadial
453
- } = bg.payload;
454
- const gradient = `${getStopsStyle(stops)}`;
455
- return /* @__PURE__ */ jsxRuntime.jsx(Container, {
456
- style: {
457
- background: isRadial ? `radial-gradient(${gradient})` : `linear-gradient(${angle}rad, ${gradient})`
458
- }
459
- }, bg.id);
460
- }
461
- if (bg.type === "video" && bg.payload) {
462
- const {
463
- url,
464
- aspectRatio,
465
- maskColor,
466
- zoom,
467
- opacity,
468
- parallax
469
- } = bg.payload;
470
- return /* @__PURE__ */ jsxRuntime.jsx(Parallax, {
471
- strength: parallax,
472
- children: (getParallaxProps) => /* @__PURE__ */ jsxRuntime.jsx(Container, __spreadProps(__spreadValues({}, getParallaxProps({})), {
473
- children: /* @__PURE__ */ jsxRuntime.jsx(BackgroundVideo, {
474
- url,
475
- zoom,
476
- opacity,
477
- aspectRatio: getAspectRatio(aspectRatio),
478
- maskColor: getColor(maskColor)
479
- })
480
- }))
481
- }, bg.id);
482
- }
483
- return null;
484
- })
485
- }, deviceId);
486
- })
487
- });
488
- }
489
- const OuterContainer = styled__default["default"](framerMotion.motion.div)`
490
- position: relative;
491
- width: 100%;
492
- margin: 0 auto;
493
-
494
- > * {
495
- border-radius: inherit;
496
- height: inherit;
102
+ function handleClick(event) {
103
+ onClick(event);
104
+ if (event.defaultPrevented)
105
+ return;
106
+ if (event.currentTarget.isContentEditable)
107
+ return event.preventDefault();
108
+ if (link && link.type === "SCROLL_TO_ELEMENT") {
109
+ let hash;
110
+ try {
111
+ if (href != null)
112
+ hash = new URL(`http://www.example.com/${href}`).hash;
113
+ } catch (error) {
114
+ console.error(`Link received invalid href: ${href}`, error);
115
+ }
116
+ if (href != null && hash != null && href === hash) {
117
+ event.preventDefault();
118
+ const view = event.view;
119
+ scrollIntoView__default["default"](view.document.querySelector(hash), {
120
+ behavior: "smooth",
121
+ block
122
+ });
123
+ if (view.location.hash !== hash)
124
+ view.history.pushState({}, "", hash);
125
+ }
126
+ }
497
127
  }
498
-
499
- > :last-child {
500
- position: relative;
128
+ if (useNextLink && href != null) {
129
+ return /* @__PURE__ */ jsxRuntime.jsx(NextLink__default["default"], {
130
+ href,
131
+ children: /* @__PURE__ */ jsxRuntime.jsx("a", __spreadProps(__spreadValues({}, restOfProps), {
132
+ ref,
133
+ target,
134
+ onClick: handleClick
135
+ }))
136
+ });
501
137
  }
502
- `;
503
- var BackgroundsContainer = React.forwardRef(function BackgroundsContainer2(_c, ref) {
504
- var _d = _c, {
505
- backgrounds,
506
- children
507
- } = _d, restOfProps = __objRest(_d, [
508
- "backgrounds",
509
- "children"
510
- ]);
511
- const [handle, setHandle] = React.useState(null);
512
- React.useImperativeHandle(ref, () => handle, [handle]);
513
- return /* @__PURE__ */ jsxRuntime.jsxs(OuterContainer, __spreadProps(__spreadValues({}, restOfProps), {
514
- ref: setHandle,
515
- children: [/* @__PURE__ */ jsxRuntime.jsx(Backgrounds, {
516
- backgrounds: useBackgrounds(backgrounds)
517
- }), React.Children.only(children)]
138
+ return /* @__PURE__ */ jsxRuntime.jsx("a", __spreadProps(__spreadValues({}, restOfProps), {
139
+ ref,
140
+ href,
141
+ target,
142
+ onClick: handleClick
518
143
  }));
519
144
  });
520
- exports.BackgroundsContainer = BackgroundsContainer;
521
- exports.useBackgrounds = useBackgrounds;
145
+ exports.Link = Link;
522
146
  //# sourceMappingURL=index.cjs2.js.map