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