@makeswift/runtime 0.0.0-1d7ee6c → 0.0.0-20221011211555

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 (727) hide show
  1. package/api.js +1 -1
  2. package/controls.js +1 -0
  3. package/dist/Box.cjs.js +507 -0
  4. package/dist/Box.cjs.js.map +1 -0
  5. package/dist/Box.es.js +501 -0
  6. package/dist/Box.es.js.map +1 -0
  7. package/dist/Button.cjs.js +315 -0
  8. package/dist/Button.cjs.js.map +1 -0
  9. package/dist/Button.es.js +308 -0
  10. package/dist/Button.es.js.map +1 -0
  11. package/dist/Carousel.cjs.js +493 -0
  12. package/dist/Carousel.cjs.js.map +1 -0
  13. package/dist/Carousel.es.js +487 -0
  14. package/dist/Carousel.es.js.map +1 -0
  15. package/dist/Countdown.cjs.js +347 -0
  16. package/dist/Countdown.cjs.js.map +1 -0
  17. package/dist/Countdown.es.js +341 -0
  18. package/dist/Countdown.es.js.map +1 -0
  19. package/dist/Divider.cjs.js +122 -0
  20. package/dist/Divider.cjs.js.map +1 -0
  21. package/dist/Divider.es.js +116 -0
  22. package/dist/Divider.es.js.map +1 -0
  23. package/dist/Embed.cjs.js +136 -0
  24. package/dist/Embed.cjs.js.map +1 -0
  25. package/dist/Embed.es.js +130 -0
  26. package/dist/Embed.es.js.map +1 -0
  27. package/dist/Form.cjs.js +1731 -0
  28. package/dist/Form.cjs.js.map +1 -0
  29. package/dist/Form.es.js +1704 -0
  30. package/dist/Form.es.js.map +1 -0
  31. package/dist/Image.cjs2.js +155 -0
  32. package/dist/Image.cjs2.js.map +1 -0
  33. package/dist/Image.es2.js +148 -0
  34. package/dist/Image.es2.js.map +1 -0
  35. package/dist/Navigation.cjs.js +742 -0
  36. package/dist/Navigation.cjs.js.map +1 -0
  37. package/dist/Navigation.es.js +716 -0
  38. package/dist/Navigation.es.js.map +1 -0
  39. package/dist/Root.cjs.js +149 -0
  40. package/dist/Root.cjs.js.map +1 -0
  41. package/dist/Root.es.js +143 -0
  42. package/dist/Root.es.js.map +1 -0
  43. package/dist/SocialLinks.cjs.js +906 -0
  44. package/dist/SocialLinks.cjs.js.map +1 -0
  45. package/dist/SocialLinks.es.js +880 -0
  46. package/dist/SocialLinks.es.js.map +1 -0
  47. package/dist/Text.cjs.js +482 -0
  48. package/dist/Text.cjs.js.map +1 -0
  49. package/dist/Text.es.js +474 -0
  50. package/dist/Text.es.js.map +1 -0
  51. package/dist/Video.cjs.js +128 -0
  52. package/dist/Video.cjs.js.map +1 -0
  53. package/dist/Video.es.js +121 -0
  54. package/dist/Video.es.js.map +1 -0
  55. package/dist/actions.cjs.js +11 -1
  56. package/dist/actions.cjs.js.map +1 -1
  57. package/dist/actions.es.js +10 -2
  58. package/dist/actions.es.js.map +1 -1
  59. package/dist/api.cjs.js +1 -0
  60. package/dist/api.cjs.js.map +1 -1
  61. package/dist/api.es.js +1 -0
  62. package/dist/api.es.js.map +1 -1
  63. package/dist/builder.cjs.js +4 -1
  64. package/dist/builder.cjs.js.map +1 -1
  65. package/dist/builder.es.js +3 -2
  66. package/dist/builder.es.js.map +1 -1
  67. package/dist/color.cjs.js +8 -0
  68. package/dist/color.cjs.js.map +1 -0
  69. package/dist/color.es.js +6 -0
  70. package/dist/color.es.js.map +1 -0
  71. package/dist/components.cjs.js +91 -56
  72. package/dist/components.cjs.js.map +1 -1
  73. package/dist/components.es.js +51 -17
  74. package/dist/components.es.js.map +1 -1
  75. package/dist/constants.cjs.js +10 -236
  76. package/dist/constants.cjs.js.map +1 -1
  77. package/dist/constants.es.js +5 -231
  78. package/dist/constants.es.js.map +1 -1
  79. package/dist/control-serialization.cjs.js +277 -15
  80. package/dist/control-serialization.cjs.js.map +1 -1
  81. package/dist/control-serialization.es.js +262 -2
  82. package/dist/control-serialization.es.js.map +1 -1
  83. package/dist/controls.cjs.js +38 -0
  84. package/dist/controls.cjs.js.map +1 -0
  85. package/dist/controls.es.js +6 -0
  86. package/dist/controls.es.js.map +1 -0
  87. package/dist/cssMediaRules.cjs.js +210 -0
  88. package/dist/cssMediaRules.cjs.js.map +1 -0
  89. package/dist/cssMediaRules.es.js +201 -0
  90. package/dist/cssMediaRules.es.js.map +1 -0
  91. package/dist/graphql.cjs.js +365 -0
  92. package/dist/graphql.cjs.js.map +1 -0
  93. package/dist/graphql.es.js +356 -0
  94. package/dist/graphql.es.js.map +1 -0
  95. package/dist/{descriptors.cjs.js → image.cjs.js} +64 -5
  96. package/dist/image.cjs.js.map +1 -0
  97. package/dist/{descriptors.es.js → image.es.js} +57 -5
  98. package/dist/image.es.js.map +1 -0
  99. package/dist/index.cjs.js +3211 -0
  100. package/dist/index.cjs.js.map +1 -0
  101. package/dist/index.cjs2.js +522 -0
  102. package/dist/index.cjs2.js.map +1 -0
  103. package/dist/index.cjs3.js +146 -0
  104. package/dist/index.cjs3.js.map +1 -0
  105. package/dist/index.cjs4.js +18 -0
  106. package/dist/index.cjs4.js.map +1 -0
  107. package/dist/index.es.js +3104 -0
  108. package/dist/index.es.js.map +1 -0
  109. package/dist/index.es2.js +514 -0
  110. package/dist/index.es2.js.map +1 -0
  111. package/dist/index.es3.js +140 -0
  112. package/dist/index.es3.js.map +1 -0
  113. package/dist/index.es4.js +13 -0
  114. package/dist/index.es4.js.map +1 -0
  115. package/dist/main.cjs.js +3 -1
  116. package/dist/main.cjs.js.map +1 -1
  117. package/dist/main.es.js +3 -1
  118. package/dist/main.es.js.map +1 -1
  119. package/dist/next.cjs.js +339 -106
  120. package/dist/next.cjs.js.map +1 -1
  121. package/dist/next.es.js +331 -104
  122. package/dist/next.es.js.map +1 -1
  123. package/dist/placeholders.cjs.js +13 -0
  124. package/dist/placeholders.cjs.js.map +1 -0
  125. package/dist/placeholders.es.js +12 -0
  126. package/dist/placeholders.es.js.map +1 -0
  127. package/dist/prop-controllers.cjs.js +5 -5
  128. package/dist/prop-controllers.es.js +2 -2
  129. package/dist/react-builder-preview.cjs.js +90 -115
  130. package/dist/react-builder-preview.cjs.js.map +1 -1
  131. package/dist/react-builder-preview.es.js +95 -120
  132. package/dist/react-builder-preview.es.js.map +1 -1
  133. package/dist/react-page.cjs.js +370 -30
  134. package/dist/react-page.cjs.js.map +1 -1
  135. package/dist/react-page.es.js +341 -16
  136. package/dist/react-page.es.js.map +1 -1
  137. package/dist/react.cjs.js +31 -28
  138. package/dist/react.cjs.js.map +1 -1
  139. package/dist/react.es.js +24 -21
  140. package/dist/react.es.js.map +1 -1
  141. package/dist/shape.cjs.js +20 -0
  142. package/dist/shape.cjs.js.map +1 -0
  143. package/dist/shape.es.js +14 -0
  144. package/dist/shape.es.js.map +1 -0
  145. package/dist/{instances.cjs.js → slot.cjs.js} +28 -4
  146. package/dist/slot.cjs.js.map +1 -0
  147. package/dist/{instances.es.js → slot.es.js} +23 -3
  148. package/dist/slot.es.js.map +1 -0
  149. package/dist/text-input.cjs.js +38 -0
  150. package/dist/text-input.cjs.js.map +1 -0
  151. package/dist/text-input.es.js +26 -0
  152. package/dist/text-input.es.js.map +1 -0
  153. package/dist/types/{api → src/api}/constants.d.ts +0 -0
  154. package/dist/types/src/api/constants.d.ts.map +1 -0
  155. package/dist/types/{api → src/api}/generated/graphql.d.ts +55 -0
  156. package/dist/types/src/api/generated/graphql.d.ts.map +1 -0
  157. package/dist/types/{api → src/api}/index.d.ts +0 -0
  158. package/dist/types/src/api/index.d.ts.map +1 -0
  159. package/dist/types/src/api/introspection.d.ts +10 -0
  160. package/dist/types/src/api/introspection.d.ts.map +1 -0
  161. package/dist/types/{api → src/api}/react.d.ts +0 -1
  162. package/dist/types/src/api/react.d.ts.map +1 -0
  163. package/dist/types/{api → src/api}/types.d.ts +2 -2
  164. package/dist/types/src/api/types.d.ts.map +1 -0
  165. package/dist/types/src/box-model.d.ts +3 -0
  166. package/dist/types/src/box-model.d.ts.map +1 -0
  167. package/dist/types/{builder → src/builder}/index.d.ts +0 -0
  168. package/dist/types/src/builder/index.d.ts.map +1 -0
  169. package/dist/types/src/builder/serialization/control-serialization.d.ts +301 -0
  170. package/dist/types/src/builder/serialization/control-serialization.d.ts.map +1 -0
  171. package/dist/types/src/builder/serialization/controls/combobox.d.ts +5 -0
  172. package/dist/types/src/builder/serialization/controls/combobox.d.ts.map +1 -0
  173. package/dist/types/src/builder/serialization/controls/list.d.ts +5 -0
  174. package/dist/types/src/builder/serialization/controls/list.d.ts.map +1 -0
  175. package/dist/types/src/builder/serialization/controls/shape.d.ts +5 -0
  176. package/dist/types/src/builder/serialization/controls/shape.d.ts.map +1 -0
  177. package/dist/types/src/builder/serialization/controls/types.d.ts +10 -0
  178. package/dist/types/src/builder/serialization/controls/types.d.ts.map +1 -0
  179. package/dist/types/{builder → src/builder}/serialization/function-serialization.d.ts +0 -0
  180. package/dist/types/src/builder/serialization/function-serialization.d.ts.map +1 -0
  181. package/dist/types/src/builder/serialization/index.d.ts +4 -0
  182. package/dist/types/src/builder/serialization/index.d.ts.map +1 -0
  183. package/dist/types/{components → src/components}/builtin/Box/Box.d.ts +1 -4
  184. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -0
  185. package/dist/types/{components → src/components}/builtin/Box/animations.d.ts +1 -8
  186. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -0
  187. package/dist/types/{components → src/components}/builtin/Box/components/Placeholder/index.d.ts +0 -0
  188. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
  189. package/dist/types/src/components/builtin/Box/constants.d.ts +9 -0
  190. package/dist/types/src/components/builtin/Box/constants.d.ts.map +1 -0
  191. package/dist/types/{components → src/components}/builtin/Box/index.d.ts +2 -2
  192. package/dist/types/src/components/builtin/Box/index.d.ts.map +1 -0
  193. package/dist/types/src/components/builtin/Box/register.d.ts +3 -0
  194. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -0
  195. package/dist/types/{components → src/components}/builtin/Button/Button.d.ts +6 -7
  196. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -0
  197. package/dist/types/src/components/builtin/Button/contants.d.ts +2 -0
  198. package/dist/types/src/components/builtin/Button/contants.d.ts.map +1 -0
  199. package/dist/types/src/components/builtin/Button/index.d.ts +2 -0
  200. package/dist/types/src/components/builtin/Button/index.d.ts.map +1 -0
  201. package/dist/types/src/components/builtin/Button/register.d.ts +3 -0
  202. package/dist/types/src/components/builtin/Button/register.d.ts.map +1 -0
  203. package/dist/types/{components → src/components}/builtin/Carousel/Carousel.d.ts +5 -7
  204. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -0
  205. package/dist/types/src/components/builtin/Carousel/index.d.ts +2 -0
  206. package/dist/types/src/components/builtin/Carousel/index.d.ts.map +1 -0
  207. package/dist/types/src/components/builtin/Carousel/register.d.ts +3 -0
  208. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -0
  209. package/dist/types/{components → src/components}/builtin/Countdown/Countdown.d.ts +5 -7
  210. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -0
  211. package/dist/types/src/components/builtin/Countdown/index.d.ts +2 -0
  212. package/dist/types/src/components/builtin/Countdown/index.d.ts.map +1 -0
  213. package/dist/types/src/components/builtin/Countdown/register.d.ts +3 -0
  214. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -0
  215. package/dist/types/{components → src/components}/builtin/Divider/Divider.d.ts +3 -5
  216. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -0
  217. package/dist/types/src/components/builtin/Divider/index.d.ts +2 -0
  218. package/dist/types/src/components/builtin/Divider/index.d.ts.map +1 -0
  219. package/dist/types/src/components/builtin/Divider/register.d.ts +3 -0
  220. package/dist/types/src/components/builtin/Divider/register.d.ts.map +1 -0
  221. package/dist/types/{components → src/components}/builtin/Embed/Embed.d.ts +0 -3
  222. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -0
  223. package/dist/types/src/components/builtin/Embed/index.d.ts +2 -0
  224. package/dist/types/src/components/builtin/Embed/index.d.ts.map +1 -0
  225. package/dist/types/src/components/builtin/Embed/register.d.ts +3 -0
  226. package/dist/types/src/components/builtin/Embed/register.d.ts.map +1 -0
  227. package/dist/types/{components → src/components}/builtin/Form/Form.d.ts +6 -14
  228. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -0
  229. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/Checkbox/index.d.ts +0 -0
  230. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  231. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +0 -0
  232. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  233. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/EmailTableField/index.d.ts +0 -0
  234. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  235. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/Input/index.d.ts +1 -1
  236. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  237. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/Label/index.d.ts +0 -0
  238. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  239. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +0 -0
  240. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  241. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +0 -0
  242. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  243. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/NumberTableField/index.d.ts +0 -0
  244. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  245. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +0 -0
  246. package/dist/types/{components/builtin/Form/components/Field/components/SingleLineTextTableField → src/components/builtin/Form/components/Field/components/PhoneNumberTableField}/index.d.ts.map +1 -1
  247. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +0 -0
  248. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  249. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/RadioButton/index.d.ts +0 -0
  250. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  251. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +0 -0
  252. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  253. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +0 -0
  254. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  255. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +0 -0
  256. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  257. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +0 -0
  258. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  259. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/TextArea/index.d.ts +0 -0
  260. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  261. package/dist/types/{components → src/components}/builtin/Form/components/Field/components/URLTableField/index.d.ts +0 -0
  262. package/dist/types/{components/builtin/Form/components/Field/components/NumberTableField → src/components/builtin/Form/components/Field/components/URLTableField}/index.d.ts.map +1 -1
  263. package/dist/types/{components → src/components}/builtin/Form/components/Field/index.d.ts +1 -1
  264. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  265. package/dist/types/{components → src/components}/builtin/Form/components/Field/services/cssField.d.ts +1 -1
  266. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  267. package/dist/types/{components → src/components}/builtin/Form/components/Placeholder/index.d.ts +1 -0
  268. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  269. package/dist/types/{components → src/components}/builtin/Form/components/Spinner/index.d.ts +0 -0
  270. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  271. package/dist/types/{components → src/components}/builtin/Form/context/FormContext.d.ts +9 -2
  272. package/dist/types/{components → src/components}/builtin/Form/context/FormContext.d.ts.map +1 -1
  273. package/dist/types/src/components/builtin/Form/index.d.ts +2 -0
  274. package/dist/types/src/components/builtin/Form/index.d.ts.map +1 -0
  275. package/dist/types/src/components/builtin/Form/register.d.ts +3 -0
  276. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -0
  277. package/dist/types/{components/hooks/useTable.d.ts → src/components/builtin/Form/types.d.ts} +2 -6
  278. package/dist/types/src/components/builtin/Form/types.d.ts.map +1 -0
  279. package/dist/types/{components → src/components}/builtin/Image/Image.d.ts +0 -3
  280. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -0
  281. package/dist/types/src/components/builtin/Image/index.d.ts +2 -0
  282. package/dist/types/src/components/builtin/Image/index.d.ts.map +1 -0
  283. package/dist/types/src/components/builtin/Image/register.d.ts +3 -0
  284. package/dist/types/src/components/builtin/Image/register.d.ts.map +1 -0
  285. package/dist/types/{components → src/components}/builtin/Navigation/Navigation.d.ts +5 -7
  286. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -0
  287. package/dist/types/{components → src/components}/builtin/Navigation/components/DropDownButton/index.d.ts +1 -1
  288. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
  289. package/dist/types/{components → src/components}/builtin/Navigation/components/LinksPlaceholder/index.d.ts +0 -0
  290. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
  291. package/dist/types/{components → src/components}/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +1 -1
  292. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
  293. package/dist/types/{components → src/components}/builtin/Navigation/components/MobileMenu/index.d.ts +4 -3
  294. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
  295. package/dist/types/src/components/builtin/Navigation/index.d.ts +2 -0
  296. package/dist/types/src/components/builtin/Navigation/index.d.ts.map +1 -0
  297. package/dist/types/src/components/builtin/Navigation/register.d.ts +3 -0
  298. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -0
  299. package/dist/types/{components → src/components}/builtin/Root/Root.d.ts +0 -2
  300. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -0
  301. package/dist/types/{components → src/components}/builtin/Root/components/Placeholder/index.d.ts +0 -0
  302. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
  303. package/dist/types/src/components/builtin/Root/index.d.ts +2 -0
  304. package/dist/types/src/components/builtin/Root/index.d.ts.map +1 -0
  305. package/dist/types/src/components/builtin/Root/register.d.ts +3 -0
  306. package/dist/types/src/components/builtin/Root/register.d.ts.map +1 -0
  307. package/dist/types/{components → src/components}/builtin/SocialLinks/SocialLinks.d.ts +4 -6
  308. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
  309. package/dist/types/{components → src/components}/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +0 -0
  310. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
  311. package/dist/types/src/components/builtin/SocialLinks/index.d.ts +2 -0
  312. package/dist/types/src/components/builtin/SocialLinks/index.d.ts.map +1 -0
  313. package/dist/types/{components → src/components}/builtin/SocialLinks/options.d.ts +5 -0
  314. package/dist/types/src/components/builtin/SocialLinks/options.d.ts.map +1 -0
  315. package/dist/types/src/components/builtin/SocialLinks/register.d.ts +3 -0
  316. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -0
  317. package/dist/types/{components → src/components}/builtin/Text/Text.d.ts +0 -3
  318. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -0
  319. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +13 -0
  320. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  321. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +0 -0
  322. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  323. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +0 -0
  324. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  325. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/index.d.ts +0 -0
  326. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  327. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +0 -0
  328. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  329. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +0 -0
  330. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  331. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +0 -0
  332. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  333. package/dist/types/{components → src/components}/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +0 -0
  334. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  335. package/dist/types/src/components/builtin/Text/index.d.ts +2 -0
  336. package/dist/types/src/components/builtin/Text/index.d.ts.map +1 -0
  337. package/dist/types/src/components/builtin/Text/register.d.ts +3 -0
  338. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -0
  339. package/dist/types/{components → src/components}/builtin/Video/Video.d.ts +0 -3
  340. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -0
  341. package/dist/types/src/components/builtin/Video/index.d.ts +2 -0
  342. package/dist/types/src/components/builtin/Video/index.d.ts.map +1 -0
  343. package/dist/types/src/components/builtin/Video/register.d.ts +3 -0
  344. package/dist/types/src/components/builtin/Video/register.d.ts.map +1 -0
  345. package/dist/types/src/components/builtin/constants.d.ts +20 -0
  346. package/dist/types/src/components/builtin/constants.d.ts.map +1 -0
  347. package/dist/types/{components → src/components}/builtin/index.d.ts +2 -2
  348. package/dist/types/src/components/builtin/index.d.ts.map +1 -0
  349. package/dist/types/src/components/builtin/register.d.ts +3 -0
  350. package/dist/types/src/components/builtin/register.d.ts.map +1 -0
  351. package/dist/types/{components → src/components}/hooks/index.d.ts +1 -2
  352. package/dist/types/src/components/hooks/index.d.ts.map +1 -0
  353. package/dist/types/{components → src/components}/hooks/useBackgrounds.d.ts +0 -0
  354. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -0
  355. package/dist/types/{components → src/components}/hooks/useBorder.d.ts +0 -0
  356. package/dist/types/src/components/hooks/useBorder.d.ts.map +1 -0
  357. package/dist/types/{components → src/components}/hooks/useBoxShadow.d.ts +0 -0
  358. package/dist/types/src/components/hooks/useBoxShadow.d.ts.map +1 -0
  359. package/dist/types/{components → src/components}/hooks/useFile.d.ts +0 -0
  360. package/dist/types/src/components/hooks/useFile.d.ts.map +1 -0
  361. package/dist/types/src/components/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  362. package/dist/types/src/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  363. package/dist/types/{components → src/components}/hooks/useMediaQuery.d.ts +0 -0
  364. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -0
  365. package/dist/types/{components → src/components}/hooks/usePage.d.ts +0 -0
  366. package/dist/types/src/components/hooks/usePage.d.ts.map +1 -0
  367. package/dist/types/{components/hooks/useColor.d.ts → src/components/hooks/useResponsiveColor.d.ts} +2 -2
  368. package/dist/types/src/components/hooks/useResponsiveColor.d.ts.map +1 -0
  369. package/dist/types/{components → src/components}/hooks/useTableFormFieldRefs.d.ts +0 -0
  370. package/dist/types/src/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  371. package/dist/types/{components → src/components}/hooks/useTypography.d.ts +0 -0
  372. package/dist/types/src/components/hooks/useTypography.d.ts.map +1 -0
  373. package/dist/types/{components → src/components}/index.d.ts +0 -0
  374. package/dist/types/src/components/index.d.ts.map +1 -0
  375. package/dist/types/{components → src/components}/page/BodySnippet.d.ts +0 -0
  376. package/dist/types/src/components/page/BodySnippet.d.ts.map +1 -0
  377. package/dist/types/src/components/page/Page.d.ts +28 -0
  378. package/dist/types/src/components/page/Page.d.ts.map +1 -0
  379. package/dist/types/{components → src/components}/page/index.d.ts +0 -0
  380. package/dist/types/src/components/page/index.d.ts.map +1 -0
  381. package/dist/types/{components → src/components}/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -0
  382. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  383. package/dist/types/{components → src/components}/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -0
  384. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  385. package/dist/types/{components → src/components}/shared/BackgroundsContainer/components/Parallax/index.d.ts +0 -0
  386. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  387. package/dist/types/{components → src/components}/shared/BackgroundsContainer/index.d.ts +0 -0
  388. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
  389. package/dist/types/{components → src/components}/shared/FallbackComponent/FallbackComponent.d.ts +0 -0
  390. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  391. package/dist/types/{components → src/components}/shared/FallbackComponent/index.d.ts +0 -0
  392. package/dist/types/src/components/shared/FallbackComponent/index.d.ts.map +1 -0
  393. package/dist/types/{components → src/components}/shared/GutterContainer/index.d.ts +0 -0
  394. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -0
  395. package/dist/types/{components → src/components}/shared/Link/index.d.ts +0 -0
  396. package/dist/types/src/components/shared/Link/index.d.ts.map +1 -0
  397. package/dist/types/{components → src/components}/utils/colorToString.d.ts +0 -0
  398. package/dist/types/src/components/utils/colorToString.d.ts.map +1 -0
  399. package/dist/types/{components → src/components}/utils/columns.d.ts +0 -0
  400. package/dist/types/src/components/utils/columns.d.ts.map +1 -0
  401. package/dist/types/{components → src/components}/utils/cssMediaRules.d.ts +0 -0
  402. package/dist/types/src/components/utils/cssMediaRules.d.ts.map +1 -0
  403. package/dist/types/{components → src/components}/utils/devices.d.ts +0 -0
  404. package/dist/types/src/components/utils/devices.d.ts.map +1 -0
  405. package/dist/types/{components → src/components}/utils/isNonNullable.d.ts +0 -0
  406. package/dist/types/src/components/utils/isNonNullable.d.ts.map +1 -0
  407. package/dist/types/{components → src/components}/utils/placeholders.d.ts +0 -0
  408. package/dist/types/src/components/utils/placeholders.d.ts.map +1 -0
  409. package/dist/types/{components → src/components}/utils/queries.d.ts +2 -0
  410. package/dist/types/src/components/utils/queries.d.ts.map +1 -0
  411. package/dist/types/src/components/utils/responsive-style.d.ts +9 -0
  412. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -0
  413. package/dist/types/{components → src/components}/utils/types.d.ts +0 -0
  414. package/dist/types/src/components/utils/types.d.ts.map +1 -0
  415. package/dist/types/src/controls/checkbox.d.ts +13 -0
  416. package/dist/types/src/controls/checkbox.d.ts.map +1 -0
  417. package/dist/types/src/controls/color.d.ts +16 -0
  418. package/dist/types/src/controls/color.d.ts.map +1 -0
  419. package/dist/types/src/controls/combobox.d.ts +22 -0
  420. package/dist/types/src/controls/combobox.d.ts.map +1 -0
  421. package/dist/types/src/controls/control.d.ts +14 -0
  422. package/dist/types/src/controls/control.d.ts.map +1 -0
  423. package/dist/types/src/controls/image.d.ts +24 -0
  424. package/dist/types/src/controls/image.d.ts.map +1 -0
  425. package/dist/types/src/controls/index.d.ts +15 -0
  426. package/dist/types/src/controls/index.d.ts.map +1 -0
  427. package/dist/types/src/controls/link.d.ts +50 -0
  428. package/dist/types/src/controls/link.d.ts.map +1 -0
  429. package/dist/types/src/controls/list.d.ts +26 -0
  430. package/dist/types/src/controls/list.d.ts.map +1 -0
  431. package/dist/types/src/controls/number.d.ts +18 -0
  432. package/dist/types/src/controls/number.d.ts.map +1 -0
  433. package/dist/types/src/controls/select.d.ts +22 -0
  434. package/dist/types/src/controls/select.d.ts.map +1 -0
  435. package/dist/types/src/controls/shape.d.ts +15 -0
  436. package/dist/types/src/controls/shape.d.ts.map +1 -0
  437. package/dist/types/src/controls/slot.d.ts +42 -0
  438. package/dist/types/src/controls/slot.d.ts.map +1 -0
  439. package/dist/types/src/controls/style.d.ts +206 -0
  440. package/dist/types/src/controls/style.d.ts.map +1 -0
  441. package/dist/types/src/controls/text-area.d.ts +14 -0
  442. package/dist/types/src/controls/text-area.d.ts.map +1 -0
  443. package/dist/types/src/controls/text-input.d.ts +13 -0
  444. package/dist/types/src/controls/text-input.d.ts.map +1 -0
  445. package/dist/types/src/controls/types.d.ts +14 -0
  446. package/dist/types/src/controls/types.d.ts.map +1 -0
  447. package/dist/types/{index.d.ts → src/index.d.ts} +0 -0
  448. package/dist/types/src/index.d.ts.map +1 -0
  449. package/dist/types/src/next/api-handler.d.ts +7 -0
  450. package/dist/types/src/next/api-handler.d.ts.map +1 -0
  451. package/dist/types/src/next/client.d.ts +68 -0
  452. package/dist/types/src/next/client.d.ts.map +1 -0
  453. package/dist/types/src/next/document.d.ts +7 -0
  454. package/dist/types/src/next/document.d.ts.map +1 -0
  455. package/dist/types/src/next/dynamic.d.ts +13 -0
  456. package/dist/types/src/next/dynamic.d.ts.map +1 -0
  457. package/dist/types/src/next/index.d.ts +24 -0
  458. package/dist/types/src/next/index.d.ts.map +1 -0
  459. package/dist/types/src/next/preview-mode.d.ts +11 -0
  460. package/dist/types/src/next/preview-mode.d.ts.map +1 -0
  461. package/dist/types/{prop-controllers → src/prop-controllers}/descriptors.d.ts +64 -32
  462. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -0
  463. package/dist/types/src/prop-controllers/index.d.ts +5 -0
  464. package/dist/types/src/prop-controllers/index.d.ts.map +1 -0
  465. package/dist/types/{prop-controllers → src/prop-controllers}/instances.d.ts +3 -2
  466. package/dist/types/src/prop-controllers/instances.d.ts.map +1 -0
  467. package/dist/types/src/prop-controllers/introspection.d.ts +10 -0
  468. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -0
  469. package/dist/types/{react.d.ts → src/react.d.ts} +0 -0
  470. package/dist/types/src/react.d.ts.map +1 -0
  471. package/dist/types/src/runtimes/react/components/index.d.ts +2 -0
  472. package/dist/types/src/runtimes/react/components/index.d.ts.map +1 -0
  473. package/dist/types/src/runtimes/react/components/render-hook.d.ts +14 -0
  474. package/dist/types/src/runtimes/react/components/render-hook.d.ts.map +1 -0
  475. package/dist/types/src/runtimes/react/controls/checkbox.d.ts +4 -0
  476. package/dist/types/src/runtimes/react/controls/checkbox.d.ts.map +1 -0
  477. package/dist/types/src/runtimes/react/controls/color.d.ts +4 -0
  478. package/dist/types/src/runtimes/react/controls/color.d.ts.map +1 -0
  479. package/dist/types/src/runtimes/react/controls/combobox.d.ts +4 -0
  480. package/dist/types/src/runtimes/react/controls/combobox.d.ts.map +1 -0
  481. package/dist/types/src/runtimes/react/controls/control.d.ts +22 -0
  482. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -0
  483. package/dist/types/src/runtimes/react/controls/image.d.ts +13 -0
  484. package/dist/types/src/runtimes/react/controls/image.d.ts.map +1 -0
  485. package/dist/types/src/runtimes/react/controls/link.d.ts +11 -0
  486. package/dist/types/src/runtimes/react/controls/link.d.ts.map +1 -0
  487. package/dist/types/src/runtimes/react/controls/list.d.ts +13 -0
  488. package/dist/types/src/runtimes/react/controls/list.d.ts.map +1 -0
  489. package/dist/types/src/runtimes/react/controls/number.d.ts +4 -0
  490. package/dist/types/src/runtimes/react/controls/number.d.ts.map +1 -0
  491. package/dist/types/src/runtimes/react/controls/select.d.ts +4 -0
  492. package/dist/types/src/runtimes/react/controls/select.d.ts.map +1 -0
  493. package/dist/types/src/runtimes/react/controls/shape.d.ts +14 -0
  494. package/dist/types/src/runtimes/react/controls/shape.d.ts.map +1 -0
  495. package/dist/types/src/runtimes/react/controls/slot.d.ts +30 -0
  496. package/dist/types/src/runtimes/react/controls/slot.d.ts.map +1 -0
  497. package/dist/types/src/runtimes/react/controls/style.d.ts +4 -0
  498. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -0
  499. package/dist/types/src/runtimes/react/controls/text-area.d.ts +4 -0
  500. package/dist/types/src/runtimes/react/controls/text-area.d.ts.map +1 -0
  501. package/dist/types/src/runtimes/react/controls/text-input.d.ts +4 -0
  502. package/dist/types/src/runtimes/react/controls/text-input.d.ts.map +1 -0
  503. package/dist/types/src/runtimes/react/controls.d.ts +13 -0
  504. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -0
  505. package/dist/types/src/runtimes/react/find-dom-node.d.ts +7 -0
  506. package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +1 -0
  507. package/dist/types/{runtimes/react.d.ts → src/runtimes/react/index.d.ts} +12 -7
  508. package/dist/types/src/runtimes/react/index.d.ts.map +1 -0
  509. package/dist/types/src/runtimes/react/use-style.d.ts +3 -0
  510. package/dist/types/src/runtimes/react/use-style.d.ts.map +1 -0
  511. package/dist/types/{state → src/state}/actions.d.ts +20 -1
  512. package/dist/types/src/state/actions.d.ts.map +1 -0
  513. package/dist/types/{state → src/state}/modules/box-models.d.ts +0 -0
  514. package/dist/types/src/state/modules/box-models.d.ts.map +1 -0
  515. package/dist/types/{state → src/state}/modules/components-meta.d.ts +0 -0
  516. package/dist/types/src/state/modules/components-meta.d.ts.map +1 -0
  517. package/dist/types/src/state/modules/is-in-builder.d.ts +6 -0
  518. package/dist/types/src/state/modules/is-in-builder.d.ts.map +1 -0
  519. package/dist/types/{state → src/state}/modules/prop-controller-handles.d.ts +1 -0
  520. package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +1 -0
  521. package/dist/types/{state → src/state}/modules/prop-controllers.d.ts +0 -0
  522. package/dist/types/src/state/modules/prop-controllers.d.ts.map +1 -0
  523. package/dist/types/{state → src/state}/modules/react-components.d.ts +4 -2
  524. package/dist/types/src/state/modules/react-components.d.ts.map +1 -0
  525. package/dist/types/{state → src/state}/modules/read-only-documents.d.ts +0 -0
  526. package/dist/types/src/state/modules/read-only-documents.d.ts.map +1 -0
  527. package/dist/types/{state → src/state}/modules/read-write-documents.d.ts +0 -0
  528. package/dist/types/src/state/modules/read-write-documents.d.ts.map +1 -0
  529. package/dist/types/{state → src/state}/react-builder-preview.d.ts +0 -0
  530. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -0
  531. package/dist/types/{state → src/state}/react-page.d.ts +5 -0
  532. package/dist/types/src/state/react-page.d.ts.map +1 -0
  533. package/dist/types/{utils → src/utils}/clamp.d.ts +0 -0
  534. package/dist/types/src/utils/clamp.d.ts.map +1 -0
  535. package/dist/types/{utils → src/utils}/coalesce.d.ts +0 -0
  536. package/dist/types/src/utils/coalesce.d.ts.map +1 -0
  537. package/dist/types/{utils → src/utils}/constants.d.ts +0 -0
  538. package/dist/types/src/utils/constants.d.ts.map +1 -0
  539. package/dist/types/{utils → src/utils}/deepEqual.d.ts +0 -0
  540. package/dist/types/src/utils/deepEqual.d.ts.map +1 -0
  541. package/dist/types/{utils → src/utils}/intersection.d.ts +0 -0
  542. package/dist/types/src/utils/intersection.d.ts.map +1 -0
  543. package/dist/types/{utils → src/utils}/is.d.ts +0 -0
  544. package/dist/types/src/utils/is.d.ts.map +1 -0
  545. package/dist/types/{utils → src/utils}/keys.d.ts +0 -0
  546. package/dist/types/src/utils/keys.d.ts.map +1 -0
  547. package/dist/types/{utils → src/utils}/shallowEqual.d.ts +0 -0
  548. package/dist/types/src/utils/shallowEqual.d.ts.map +1 -0
  549. package/dist/types/{utils → src/utils}/shallowMerge.d.ts +0 -0
  550. package/dist/types/src/utils/shallowMerge.d.ts.map +1 -0
  551. package/dist/useBoxShadow.cjs.js +78 -0
  552. package/dist/useBoxShadow.cjs.js.map +1 -0
  553. package/dist/useBoxShadow.es.js +77 -0
  554. package/dist/useBoxShadow.es.js.map +1 -0
  555. package/dist/useMediaQuery.cjs.js +26 -0
  556. package/dist/useMediaQuery.cjs.js.map +1 -0
  557. package/dist/useMediaQuery.es.js +25 -0
  558. package/dist/useMediaQuery.es.js.map +1 -0
  559. package/next/plugin.js +1 -0
  560. package/package.json +46 -23
  561. package/dist/Page.cjs.js +0 -215
  562. package/dist/Page.cjs.js.map +0 -1
  563. package/dist/Page.es.js +0 -209
  564. package/dist/Page.es.js.map +0 -1
  565. package/dist/descriptors.cjs.js.map +0 -1
  566. package/dist/descriptors.es.js.map +0 -1
  567. package/dist/instances.cjs.js.map +0 -1
  568. package/dist/instances.es.js.map +0 -1
  569. package/dist/react.cjs2.js +0 -7992
  570. package/dist/react.cjs2.js.map +0 -1
  571. package/dist/react.es2.js +0 -7911
  572. package/dist/react.es2.js.map +0 -1
  573. package/dist/types/api/constants.d.ts.map +0 -1
  574. package/dist/types/api/generated/graphql.d.ts.map +0 -1
  575. package/dist/types/api/index.d.ts.map +0 -1
  576. package/dist/types/api/react.d.ts.map +0 -1
  577. package/dist/types/api/types.d.ts.map +0 -1
  578. package/dist/types/box-model.d.ts +0 -3
  579. package/dist/types/box-model.d.ts.map +0 -1
  580. package/dist/types/builder/index.d.ts.map +0 -1
  581. package/dist/types/builder/serialization/control-serialization.d.ts +0 -144
  582. package/dist/types/builder/serialization/control-serialization.d.ts.map +0 -1
  583. package/dist/types/builder/serialization/function-serialization.d.ts.map +0 -1
  584. package/dist/types/builder/serialization/index.d.ts +0 -3
  585. package/dist/types/builder/serialization/index.d.ts.map +0 -1
  586. package/dist/types/components/builtin/Box/Box.d.ts.map +0 -1
  587. package/dist/types/components/builtin/Box/animations.d.ts.map +0 -1
  588. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +0 -1
  589. package/dist/types/components/builtin/Box/index.d.ts.map +0 -1
  590. package/dist/types/components/builtin/Button/Button.d.ts.map +0 -1
  591. package/dist/types/components/builtin/Button/index.d.ts +0 -2
  592. package/dist/types/components/builtin/Button/index.d.ts.map +0 -1
  593. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +0 -1
  594. package/dist/types/components/builtin/Carousel/index.d.ts +0 -2
  595. package/dist/types/components/builtin/Carousel/index.d.ts.map +0 -1
  596. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +0 -1
  597. package/dist/types/components/builtin/Countdown/index.d.ts +0 -2
  598. package/dist/types/components/builtin/Countdown/index.d.ts.map +0 -1
  599. package/dist/types/components/builtin/Divider/Divider.d.ts.map +0 -1
  600. package/dist/types/components/builtin/Divider/index.d.ts +0 -2
  601. package/dist/types/components/builtin/Divider/index.d.ts.map +0 -1
  602. package/dist/types/components/builtin/Embed/Embed.d.ts.map +0 -1
  603. package/dist/types/components/builtin/Embed/index.d.ts +0 -2
  604. package/dist/types/components/builtin/Embed/index.d.ts.map +0 -1
  605. package/dist/types/components/builtin/Form/Form.d.ts.map +0 -1
  606. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +0 -1
  607. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +0 -1
  608. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +0 -1
  609. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +0 -1
  610. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +0 -1
  611. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +0 -1
  612. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +0 -1
  613. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +0 -1
  614. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +0 -1
  615. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +0 -1
  616. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +0 -1
  617. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +0 -1
  618. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +0 -1
  619. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +0 -1
  620. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +0 -1
  621. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +0 -1
  622. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +0 -1
  623. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +0 -1
  624. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +0 -1
  625. package/dist/types/components/builtin/Form/index.d.ts +0 -2
  626. package/dist/types/components/builtin/Form/index.d.ts.map +0 -1
  627. package/dist/types/components/builtin/Image/Image.d.ts.map +0 -1
  628. package/dist/types/components/builtin/Image/index.d.ts +0 -2
  629. package/dist/types/components/builtin/Image/index.d.ts.map +0 -1
  630. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +0 -1
  631. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +0 -1
  632. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +0 -1
  633. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +0 -1
  634. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +0 -1
  635. package/dist/types/components/builtin/Navigation/index.d.ts +0 -2
  636. package/dist/types/components/builtin/Navigation/index.d.ts.map +0 -1
  637. package/dist/types/components/builtin/Root/Root.d.ts.map +0 -1
  638. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +0 -1
  639. package/dist/types/components/builtin/Root/index.d.ts +0 -2
  640. package/dist/types/components/builtin/Root/index.d.ts.map +0 -1
  641. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +0 -1
  642. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +0 -1
  643. package/dist/types/components/builtin/SocialLinks/index.d.ts +0 -2
  644. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +0 -1
  645. package/dist/types/components/builtin/SocialLinks/options.d.ts.map +0 -1
  646. package/dist/types/components/builtin/Text/Text.d.ts.map +0 -1
  647. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +0 -24
  648. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +0 -1
  649. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +0 -1
  650. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +0 -1
  651. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +0 -1
  652. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +0 -1
  653. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +0 -1
  654. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +0 -1
  655. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +0 -1
  656. package/dist/types/components/builtin/Text/index.d.ts +0 -2
  657. package/dist/types/components/builtin/Text/index.d.ts.map +0 -1
  658. package/dist/types/components/builtin/Video/Video.d.ts.map +0 -1
  659. package/dist/types/components/builtin/Video/index.d.ts +0 -2
  660. package/dist/types/components/builtin/Video/index.d.ts.map +0 -1
  661. package/dist/types/components/builtin/index.d.ts.map +0 -1
  662. package/dist/types/components/hooks/index.d.ts.map +0 -1
  663. package/dist/types/components/hooks/useBackgrounds.d.ts.map +0 -1
  664. package/dist/types/components/hooks/useBorder.d.ts.map +0 -1
  665. package/dist/types/components/hooks/useBoxShadow.d.ts.map +0 -1
  666. package/dist/types/components/hooks/useColor.d.ts.map +0 -1
  667. package/dist/types/components/hooks/useFile.d.ts.map +0 -1
  668. package/dist/types/components/hooks/useMediaQuery.d.ts.map +0 -1
  669. package/dist/types/components/hooks/usePage.d.ts.map +0 -1
  670. package/dist/types/components/hooks/useTable.d.ts.map +0 -1
  671. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +0 -1
  672. package/dist/types/components/hooks/useTypography.d.ts.map +0 -1
  673. package/dist/types/components/index.d.ts.map +0 -1
  674. package/dist/types/components/page/BodySnippet.d.ts.map +0 -1
  675. package/dist/types/components/page/Page.d.ts +0 -43
  676. package/dist/types/components/page/Page.d.ts.map +0 -1
  677. package/dist/types/components/page/index.d.ts.map +0 -1
  678. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +0 -1
  679. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +0 -1
  680. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +0 -1
  681. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +0 -1
  682. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +0 -1
  683. package/dist/types/components/shared/FallbackComponent/index.d.ts.map +0 -1
  684. package/dist/types/components/shared/GutterContainer/index.d.ts.map +0 -1
  685. package/dist/types/components/shared/Link/index.d.ts.map +0 -1
  686. package/dist/types/components/utils/colorToString.d.ts.map +0 -1
  687. package/dist/types/components/utils/columns.d.ts.map +0 -1
  688. package/dist/types/components/utils/cssMediaRules.d.ts.map +0 -1
  689. package/dist/types/components/utils/devices.d.ts.map +0 -1
  690. package/dist/types/components/utils/isNonNullable.d.ts.map +0 -1
  691. package/dist/types/components/utils/placeholders.d.ts.map +0 -1
  692. package/dist/types/components/utils/queries.d.ts.map +0 -1
  693. package/dist/types/components/utils/types.d.ts.map +0 -1
  694. package/dist/types/controls/select.d.ts +0 -19
  695. package/dist/types/controls/select.d.ts.map +0 -1
  696. package/dist/types/controls.d.ts +0 -4
  697. package/dist/types/controls.d.ts.map +0 -1
  698. package/dist/types/index.d.ts.map +0 -1
  699. package/dist/types/next.d.ts +0 -24
  700. package/dist/types/next.d.ts.map +0 -1
  701. package/dist/types/prop-controllers/descriptors.d.ts.map +0 -1
  702. package/dist/types/prop-controllers/index.d.ts +0 -5
  703. package/dist/types/prop-controllers/index.d.ts.map +0 -1
  704. package/dist/types/prop-controllers/instances.d.ts.map +0 -1
  705. package/dist/types/prop-controllers/introspection.d.ts +0 -5
  706. package/dist/types/prop-controllers/introspection.d.ts.map +0 -1
  707. package/dist/types/react.d.ts.map +0 -1
  708. package/dist/types/runtimes/react.d.ts.map +0 -1
  709. package/dist/types/state/actions.d.ts.map +0 -1
  710. package/dist/types/state/modules/box-models.d.ts.map +0 -1
  711. package/dist/types/state/modules/components-meta.d.ts.map +0 -1
  712. package/dist/types/state/modules/prop-controller-handles.d.ts.map +0 -1
  713. package/dist/types/state/modules/prop-controllers.d.ts.map +0 -1
  714. package/dist/types/state/modules/react-components.d.ts.map +0 -1
  715. package/dist/types/state/modules/read-only-documents.d.ts.map +0 -1
  716. package/dist/types/state/modules/read-write-documents.d.ts.map +0 -1
  717. package/dist/types/state/react-builder-preview.d.ts.map +0 -1
  718. package/dist/types/state/react-page.d.ts.map +0 -1
  719. package/dist/types/utils/clamp.d.ts.map +0 -1
  720. package/dist/types/utils/coalesce.d.ts.map +0 -1
  721. package/dist/types/utils/constants.d.ts.map +0 -1
  722. package/dist/types/utils/deepEqual.d.ts.map +0 -1
  723. package/dist/types/utils/intersection.d.ts.map +0 -1
  724. package/dist/types/utils/is.d.ts.map +0 -1
  725. package/dist/types/utils/keys.d.ts.map +0 -1
  726. package/dist/types/utils/shallowEqual.d.ts.map +0 -1
  727. package/dist/types/utils/shallowMerge.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/page/BodySnippet.tsx","../src/components/utils/queries.ts","../src/api/introspection.ts","../src/api/react.tsx","../src/utils/is.ts","../src/utils/shallowEqual.ts","../src/utils/deepEqual.ts","../src/components/page/Page.tsx","../src/next/dynamic.tsx","../src/utils/keys.ts","../src/utils/coalesce.ts","../src/utils/shallowMerge.ts","../src/components/utils/devices.ts","../src/components/builtin/constants.ts","../src/components/builtin/Box/constants.ts","../src/components/builtin/Box/register.ts","../src/components/builtin/Button/register.ts","../src/components/builtin/Carousel/register.ts","../src/components/builtin/Countdown/register.ts","../src/components/builtin/Divider/register.ts","../src/components/builtin/Embed/register.ts","../src/components/builtin/Form/context/FormContext.ts","../src/components/builtin/Form/register.ts","../src/components/builtin/Image/register.ts","../src/components/builtin/Navigation/register.ts","../src/components/builtin/Root/register.ts","../src/components/builtin/SocialLinks/register.ts","../src/components/builtin/Text/register.ts","../src/components/builtin/Video/register.ts","../src/components/builtin/register.ts","../src/components/icons/warning-20.svg","../src/components/shared/FallbackComponent/FallbackComponent.tsx","../src/components/utils/isNonNullable.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useResponsiveColor.ts","../src/components/hooks/useFile.ts","../src/components/hooks/useIsomorphicLayoutEffect.ts","../src/components/hooks/usePage.ts","../src/components/utils/responsive-style.ts","../src/components/utils/colorToString.ts","../../../node_modules/@emotion/hash/dist/hash.browser.esm.js","../../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../src/runtimes/react/use-style.ts","../src/runtimes/react/controls/style.ts","../src/runtimes/react/components/render-hook.ts","../src/runtimes/react/controls/checkbox.ts","../src/runtimes/react/controls/color.ts","../src/runtimes/react/controls/combobox.ts","../src/runtimes/react/controls/image.ts","../src/runtimes/react/controls/link.ts","../src/runtimes/react/controls/list.tsx","../src/runtimes/react/controls/number.ts","../src/runtimes/react/controls/select.ts","../src/runtimes/react/controls/shape.tsx","../src/runtimes/react/controls/text-area.ts","../src/runtimes/react/controls/text-input.ts","../src/runtimes/react/controls/control.tsx","../src/components/utils/columns.ts","../src/runtimes/react/controls/slot.tsx","../src/runtimes/react/controls.tsx","../src/runtimes/react/find-dom-node.tsx","../src/runtimes/react/index.tsx"],"sourcesContent":["import { useEffect } from 'react'\n\nconst SCRIPT_TAG = 'script'\n\ntype Props = {\n code: string\n cleanup: string | null | undefined\n}\n\nexport function BodySnippet({ code, cleanup }: Props): null {\n useEffect(() => {\n const container = document.createElement('div')\n\n container.innerHTML = code\n\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT)\n const scripts: HTMLScriptElement[] = []\n\n while (walker.nextNode()) {\n if (walker.currentNode instanceof HTMLScriptElement) scripts.push(walker.currentNode)\n }\n\n scripts.forEach(inlineScript => {\n const executableScript = document.createElement(SCRIPT_TAG)\n\n executableScript.textContent = inlineScript.textContent\n Array.from(inlineScript.attributes).forEach(({ name, value }) => {\n executableScript.setAttribute(name, value)\n })\n\n inlineScript.parentNode?.replaceChild(executableScript, inlineScript)\n })\n\n const nodes = Array.from(container.childNodes)\n\n document.body.append(...nodes)\n\n return () => {\n nodes.forEach(node => {\n node.parentNode?.removeChild(node)\n })\n\n if (cleanup == null) return\n\n const cleanUp = new Function(cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n }\n }, [code, cleanup])\n\n return null\n}\n","import { gql } from '@apollo/client'\n\nexport const SWATCHES_BY_ID = gql`\n query SwatchesById($ids: [ID!]!) {\n swatches(ids: $ids) {\n id\n hue\n saturation\n lightness\n }\n }\n`\n\nexport const FILE_BY_ID = gql`\n query FileById($id: ID!) {\n file(id: $id) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const FILES_BY_ID = gql`\n query FilesById($ids: [ID!]!) {\n files(ids: $ids) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const PAGE_PATHNAMES_BY_ID = gql`\n query PagePathnamesById($ids: [ID!]!) {\n pagePathnamesById(ids: $ids) {\n id\n pathname\n }\n }\n`\n\nexport const TYPOGRAPHY_FRAGMENT = gql`\n fragment Typography on Typography {\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n`\n\nexport const TYPOGRAPHIES_BY_ID = gql`\n query TypographiesById($ids: [ID!]!) {\n typographies(ids: $ids) {\n ...Typography\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n\nexport const TABLE_BY_ID = gql`\n query TableById($id: ID!) {\n table(id: $id) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n }\n`\n\nexport const ELEMENT_REFERENCE_GLOBAL_ELEMENT = gql`\n query ElementReferenceGlobalElement($id: ID!) {\n globalElement(id: $id) {\n id\n data\n }\n }\n`\n\nexport const INTROSPECTION_QUERY = gql`\n query Introspection(\n $swatchIds: [ID!]!\n $fileIds: [ID!]!\n $pageIds: [ID!]!\n $typographyIds: [ID!]!\n $tableIds: [ID!]!\n ) {\n swatches(ids: $swatchIds) {\n id\n hue\n saturation\n lightness\n }\n\n files(ids: $fileIds) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n\n pagePathnamesById(ids: $pageIds) {\n id\n pathname\n }\n\n typographies(ids: $typographyIds) {\n ...Typography\n }\n\n tables(ids: $tableIds) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n","import { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport {\n getElementChildren,\n getElementSwatchIds,\n getFileIds,\n getPageIds,\n getTableIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\nimport { ELEMENT_REFERENCE_GLOBAL_ELEMENT, TYPOGRAPHIES_BY_ID } from '../components/utils/queries'\nimport {\n Element,\n ElementData,\n getPropControllerDescriptors,\n isElementReference,\n Store,\n} from '../state/react-page'\nimport { TypographyFragment } from './generated/graphql'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport { ListControlData, ListControlType, ShapeControlData, ShapeControlType } from '../controls'\nimport { ListValue, ShapeValue, Types } from '../prop-controllers/descriptors'\n\nexport async function introspect(\n element: Element,\n client: ApolloClient<NormalizedCacheObject>,\n store: Store,\n) {\n const descriptors = getPropControllerDescriptors(store.getState())\n const swatchIds = new Set<string>()\n const fileIds = new Set<string>()\n const typographyIds = new Set<string>()\n const tableIds = new Set<string>()\n const pageIds = new Set<string>()\n\n const remaining = [element]\n let current: Element | undefined\n\n while ((current = remaining.pop())) {\n let element: ElementData\n\n if (isElementReference(current)) {\n const query = await client.query({\n query: ELEMENT_REFERENCE_GLOBAL_ELEMENT,\n variables: { id: current.value },\n })\n\n const elementData = query.data?.globalElement?.data\n\n if (elementData == null) continue\n\n element = elementData\n } else {\n element = current\n }\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n getResourcesFromElementDescriptors(elementDescriptors, element.props)\n\n function getResourcesFromElementDescriptors(\n elementDescriptors: Record<string, PropControllerDescriptor>,\n props: ElementData['props'],\n ) {\n Object.entries(elementDescriptors).forEach(([propName, descriptor]) => {\n getElementSwatchIds(descriptor, props[propName]).forEach(swatchId => {\n swatchIds.add(swatchId)\n })\n\n getFileIds(descriptor, props[propName]).forEach(fileId => fileIds.add(fileId))\n\n getTypographyIds(descriptor, props[propName]).forEach(typographyId =>\n typographyIds.add(typographyId),\n )\n\n getTableIds(descriptor, props[propName]).forEach(tableId => tableIds.add(tableId))\n\n getPageIds(descriptor, props[propName]).forEach(pageId => pageIds.add(pageId))\n\n getElementChildren(descriptor, props[propName]).forEach(child => remaining.push(child))\n\n if (descriptor.type === ShapeControlType) {\n const prop = props[propName] as ShapeControlData\n\n if (prop == null) return\n\n getResourcesFromElementDescriptors(descriptor.config.type, prop)\n }\n\n if (descriptor.type === ListControlType) {\n const prop = props[propName] as ListControlData\n\n if (prop == null) return\n\n prop.forEach(item => {\n getResourcesFromElementDescriptors(\n { propName: descriptor.config.type },\n { propName: item.value },\n )\n })\n }\n\n if (descriptor.type === Types.Shape) {\n const prop = props[propName] as ShapeValue\n\n if (prop == null) return\n\n getResourcesFromElementDescriptors(descriptor.options.type, prop)\n }\n\n if (descriptor.type === Types.List) {\n const prop = props[propName] as ListValue\n\n if (prop == null) return\n\n prop.forEach(item => {\n getResourcesFromElementDescriptors(\n { propName: descriptor.options.type },\n { propName: item.value },\n )\n })\n }\n })\n }\n }\n\n const typographiesResult = await client.query({\n query: TYPOGRAPHIES_BY_ID,\n variables: { ids: [...typographyIds] },\n })\n\n typographiesResult?.data?.typographies.forEach((typography: TypographyFragment | null) => {\n typography?.style.forEach(style => {\n const swatchId = style.value.color?.swatchId\n\n if (swatchId != null) swatchIds.add(swatchId)\n })\n })\n\n return {\n swatchIds: [...swatchIds],\n fileIds: [...fileIds],\n typographyIds: [...typographyIds],\n tableIds: [...tableIds],\n pageIds: [...pageIds],\n }\n}\n","import {\n ApolloClient,\n DocumentNode,\n NormalizedCacheObject,\n OperationVariables,\n QueryHookOptions,\n QueryResult,\n TypedDocumentNode,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n DefaultContext,\n ApolloCache,\n MutationHookOptions,\n MutationTuple,\n InMemoryCache,\n TypePolicies,\n} from '@apollo/client'\nimport { BatchHttpLink } from '@apollo/client/link/batch-http'\nexport { gql } from '@apollo/client'\nimport { createContext, ReactNode, useContext } from 'react'\nimport { KeyUtils } from 'slate'\n\nimport { INTROSPECTION_QUERY } from '../components/utils/queries'\n\nimport { Element } from '../state/react-page'\nimport { PagePathnameSliceFragment, PagePathnameSliceFragmentDoc } from './generated/graphql'\nimport { storeContextDefaultValue } from '../runtimes/react'\nimport { introspect } from './introspection'\n\nconst typePolicies: TypePolicies = {\n Query: {\n fields: {\n swatches(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Swatch', id }, true))\n )\n },\n file(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'File', id: args?.id }, true)\n },\n files(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'File', id }, true))\n )\n },\n typographies(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Typography', id }, true))\n )\n },\n pagePathnamesById(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'PagePathnameSlice', id }, true))\n )\n },\n globalElement(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'GlobalElement', id: args?.id }, true)\n },\n table(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Table', id: args?.id }, true)\n },\n page(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Page', id: args?.id }, true)\n },\n site(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Site', id: args?.id }, true)\n },\n },\n },\n}\n\ntype CreateApolloClientParams = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport function createApolloClient({ uri, cacheData }: CreateApolloClientParams) {\n const cache = new InMemoryCache({ typePolicies })\n\n if (cacheData) cache.restore(cacheData)\n\n return new ApolloClient({ link: new BatchHttpLink({ uri, batchMax: 100 }), cache })\n}\n\nexport type MakeswiftClientOptions = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport class MakeswiftClient {\n apolloClient: ApolloClient<NormalizedCacheObject>\n\n constructor({ uri, cacheData }: MakeswiftClientOptions) {\n this.apolloClient = createApolloClient({ uri, cacheData })\n }\n\n async prefetch(element: Element): Promise<NormalizedCacheObject> {\n const introspectionData = await introspect(element, this.apolloClient, storeContextDefaultValue)\n\n const res = await this.apolloClient.query({\n query: INTROSPECTION_QUERY,\n variables: introspectionData,\n })\n\n // We're doing this because the API return the id without turning it to nodeId:\n // '87237bda-e775-48d8-92cc-399c65577bb7' vs 'UGFnZTo4NzIzN2JkYS1lNzc1LTQ4ZDgtOTJjYy0zOTljNjU1NzdiYjc='\n res.data.pagePathnamesById.forEach((pagePathnameSlice: PagePathnameSliceFragment | null) => {\n if (pagePathnameSlice == null) return\n\n const id = Buffer.from(`Page:${pagePathnameSlice.id}`).toString('base64')\n\n this.apolloClient.cache.writeFragment({\n fragment: PagePathnameSliceFragmentDoc,\n data: { ...pagePathnameSlice, id },\n })\n })\n\n KeyUtils.resetGenerator()\n\n return this.apolloClient.cache.extract()\n }\n\n updateCacheData(cacheData: NormalizedCacheObject): void {\n this.apolloClient.cache.restore(cacheData)\n }\n}\n\nconst Context = createContext<MakeswiftClient | undefined>(undefined)\n\nexport function useQuery<TData = any, TVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: QueryHookOptions<TData, TVariables>,\n): QueryResult<TData, TVariables> {\n const client = useContext(Context)\n\n return useApolloQuery(query, { client: client?.apolloClient, ...options })\n}\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useContext(Context)\n\n return useApolloMutation(mutation, { client: client?.apolloClient, ...options })\n}\n\ntype MakeswiftProviderProps = {\n client: MakeswiftClient\n children: ReactNode\n}\n\nexport function MakeswiftProvider({ client, children }: MakeswiftProviderProps) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n","export default function is(x: unknown, y: unknown): boolean {\n if (x === y) return x !== 0 || y !== 0 || 1 / x === 1 / y\n\n return x !== x && y !== y\n}\n","import is from './is'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst shallowEqual = (a: unknown, b: unknown): boolean => {\n if (is(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n // @ts-expect-error: {}[string] is OK.\n if (!hasOwnProperty.call(b, keysA[i]) || !is(a[keysA[i]], b[keysA[i]])) return false\n }\n\n return true\n}\n\nexport default shallowEqual\n","import shallowEqual from './shallowEqual'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst deepEqual = (a: unknown, b: unknown): boolean => {\n if (shallowEqual(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n if (\n !hasOwnProperty.call(b, keysA[i]) ||\n // @ts-expect-error: {}[string] is OK.\n !deepEqual(a[keysA[i]], b[keysA[i]])\n )\n return false\n }\n\n return true\n}\n\nexport default deepEqual\n","import { ReactElement, Children, createElement, useMemo, useEffect, useRef, useState } from 'react'\nimport parse from 'html-react-parser'\nimport Head from 'next/head'\n\nimport { BodySnippet } from './BodySnippet'\nimport { DocumentReference } from '../../runtimes/react'\nimport { createDocumentReference } from '../../state/react-page'\nimport { useQuery, gql } from '../../api/react'\nimport { useIsInBuilder } from '../../react'\nimport deepEqual from '../../utils/deepEqual'\nimport { MakeswiftPageDocument } from '../../next'\n\nconst SnippetLocation = {\n Body: 'BODY',\n Head: 'HEAD',\n} as const\n\ntype SnippetLocation = typeof SnippetLocation[keyof typeof SnippetLocation]\n\ntype Snippet = {\n builderEnabled: boolean\n cleanup: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nconst defaultFavicon = {\n mimetype: 'image/png',\n publicUrl:\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC',\n}\n\n// Taken from https://github.com/facebook/react/blob/14bac6193a334eda42e727336e8967419f08f5df/packages/react-dom/src/server/ReactPartialRenderer.js#L208\nconst VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_.\\-\\d]*$/\n\nconst VALID_HEAD_ELEMENT_TYPES = [\n 'title',\n 'base',\n 'link',\n 'style',\n 'meta',\n 'script',\n 'noscript',\n 'template',\n]\n\nfunction snippetToElement(snippet: Pick<Snippet, 'id' | 'code'>): (string | ReactElement)[] {\n return Children.map(parse(snippet.code), element => {\n if (typeof element === 'string') return element\n\n if (!VALID_TAG_REGEX.test(element.type)) return null\n\n const key = element.key ? `${snippet.id}:${element.key}` : snippet.id\n\n return createElement(element.type, { ...element.props, key })\n })\n}\n\nconst filterUsedSnippetProperties = ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n}: Snippet) => ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n})\n\ntype Props = {\n document: MakeswiftPageDocument\n}\n\nexport const PAGE_SNIPPETS_QUERY = gql`\n query PageById($id: ID!) {\n page(id: $id) {\n __typename\n id\n snippets {\n __typename\n id\n name\n code\n cleanup\n location\n shouldAddToNewPages\n liveEnabled\n builderEnabled\n }\n }\n }\n`\n\nexport type SiteFontsSiteQuery = {\n site?: {\n id: string\n googleFonts: {\n edges: Array<{\n activeVariants: Array<{ specifier: string }>\n node: {\n family: string\n variants: Array<{ specifier: string }>\n }\n } | null>\n }\n } | null\n}\n\nexport const SITE_FONTS_QUERY = gql`\n query SiteById($id: ID!) {\n site(id: $id) {\n id\n googleFonts {\n edges {\n activeVariants {\n specifier\n }\n node {\n family\n variants {\n specifier\n }\n }\n }\n }\n }\n }\n`\n\nexport function Page({ document: page }: Props): JSX.Element {\n const isInBuilder = useIsInBuilder()\n const [snippets, setSnippets] = useState(page.snippets)\n // We're using useQuery here for page snippets and site fonts so that anytime the user change\n // the snippets or fonts on the builder, the change would be reflected here.\n // See this PR for discussions and things we can do to improve it in the future:\n // https://github.com/makeswift/makeswift/pull/77\n useQuery<{ page: { snippets: Snippet[] } }>(PAGE_SNIPPETS_QUERY, {\n variables: { id: page.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n onCompleted(data) {\n if (data == null) return\n\n const oldSnippets = snippets.map(filterUsedSnippetProperties)\n const newSnippets = data.page.snippets.map(filterUsedSnippetProperties)\n\n if (deepEqual(newSnippets, oldSnippets)) return\n\n setSnippets(data.page.snippets)\n },\n })\n const { data: siteData } = useQuery<SiteFontsSiteQuery>(SITE_FONTS_QUERY, {\n variables: { id: page.site.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n })\n\n const favicon = page.meta.favicon ?? defaultFavicon\n const { title, description, keywords, socialImage } = page.meta\n const { canonicalUrl, isIndexingBlocked } = page.seo\n\n const fontFamilyParamValue = useMemo(() => {\n if (siteData?.site == null) {\n return page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n }\n\n return siteData.site.googleFonts.edges\n .filter((edge): edge is NonNullable<typeof edge> => edge != null)\n .map(({ activeVariants, node: { family, variants } }) => {\n const activeVariantSpecifiers = variants\n .filter(variant =>\n activeVariants.some(activeVariant => activeVariant.specifier === variant.specifier),\n )\n .map(variant => variant.specifier)\n .join()\n\n return `${family.replace(/ /g, '+')}:${activeVariantSpecifiers}`\n })\n .join('|')\n }, [siteData, page])\n\n const filteredSnippets = useMemo(\n () => snippets.filter(snippet => (isInBuilder ? snippet.builderEnabled : snippet.liveEnabled)),\n [snippets, isInBuilder],\n )\n const headSnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [filteredSnippets],\n )\n\n const previousHeadSnippets = useRef<MakeswiftPageDocument['snippets'] | null>(null)\n useEffect(() => {\n const headSnippetsToCleanUp = (previousHeadSnippets.current ?? [])\n .filter(previousSnippet => previousSnippet.cleanup != null)\n .filter(previousSnippet => !headSnippets.some(snippet => previousSnippet.id === snippet.id))\n\n headSnippetsToCleanUp.forEach(snippetToCleanUp => {\n if (snippetToCleanUp.cleanup == null) return\n\n const cleanUp = new Function(snippetToCleanUp.cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n })\n\n previousHeadSnippets.current = headSnippets\n }, [headSnippets])\n\n return (\n <>\n <Head>\n <style>\n {`\n html {\n font-family: sans-serif;\n }\n div#__next {\n overflow: hidden;\n }\n `}\n </style>\n\n <link rel=\"icon\" type={favicon.mimetype} href={favicon.publicUrl} />\n\n {canonicalUrl && <link rel=\"canonical\" href={canonicalUrl} />}\n\n {isIndexingBlocked && <meta name=\"robots\" content=\"noindex\" />}\n\n {title && (\n <>\n <title>{title}</title>\n <meta property=\"og:title\" content={title} />\n <meta name=\"twitter:title\" content={title} />\n <meta itemProp=\"name\" content={title} />\n </>\n )}\n\n {description && (\n <>\n <meta name=\"description\" content={description} />\n <meta property=\"og:description\" content={description} />\n <meta name=\"twitter:description\" content={description} />\n <meta itemProp=\"description\" content={description} />\n </>\n )}\n\n {keywords && <meta name=\"keywords\" content={keywords} />}\n\n {socialImage && (\n <>\n <meta property=\"og:image\" content={socialImage.publicUrl} />\n <meta property=\"og:image:type\" content={socialImage.mimetype} />\n <meta name=\"twitter:image\" content={socialImage.publicUrl} />\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta itemProp=\"image\" content={socialImage.publicUrl} />\n </>\n )}\n\n {fontFamilyParamValue !== '' && (\n <>\n <link\n rel=\"stylesheet\"\n href={`https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`}\n />\n </>\n )}\n\n {headSnippets.map(snippetToElement).map(children =>\n Children.map(children, child => {\n if (typeof child === 'string') return child\n\n if (VALID_HEAD_ELEMENT_TYPES.includes(child.type as string)) return child\n\n return null\n }),\n )}\n </Head>\n\n <DocumentReference documentReference={createDocumentReference(page.id)} />\n\n {filteredSnippets\n .filter(snippet => snippet.location === SnippetLocation.Body)\n .map(snippet => (\n <BodySnippet key={snippet.id} code={snippet.code} cleanup={snippet.cleanup} />\n ))}\n </>\n )\n}\n","import {\n ComponentType,\n createElement,\n ForwardedRef,\n forwardRef,\n ForwardRefExoticComponent,\n PropsWithoutRef,\n RefAttributes,\n} from 'react'\n\nconst FORWARDED_NEXT_DYNAMIC_REF_KEY = '__forwarded_next_dynamic_ref__'\n\ntype WithSavedForwardedRef<P, T> = P & {\n [FORWARDED_NEXT_DYNAMIC_REF_KEY]: ForwardedRef<T>\n}\n\nfunction saveForwardedRef<P, T>(props: P, ref: ForwardedRef<T>): WithSavedForwardedRef<P, T> {\n return { ...props, [FORWARDED_NEXT_DYNAMIC_REF_KEY]: ref }\n}\n\ntype WithLoadedForwardedRef<P, T> = Omit<P, typeof FORWARDED_NEXT_DYNAMIC_REF_KEY> & {\n ref: ForwardedRef<T>\n}\n\nfunction loadForwardedRef<P, T>({\n [FORWARDED_NEXT_DYNAMIC_REF_KEY]: ref,\n ...props\n}: WithSavedForwardedRef<P, T>): WithLoadedForwardedRef<P, T> {\n return { ...props, ref }\n}\n\ntype LoaderComponent<P> = Promise<ComponentType<P> | { default: ComponentType<P> }>\n\nfunction resolve(obj: any) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\ntype PatchedLoaderComponent<P, T> = LoaderComponent<WithSavedForwardedRef<P, T>>\n\ntype PatchLoaderComponent = <P, T>(\n loaderComponent: LoaderComponent<P>,\n) => PatchedLoaderComponent<P, T>\n\nexport function forwardNextDynamicRef<T, P>(\n nextDynamicThunk: (patch: PatchLoaderComponent) => ComponentType<WithSavedForwardedRef<P, T>>,\n): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>> {\n const Dynamic = nextDynamicThunk(loaderComponent =>\n loaderComponent.then(moduleOrComponent => ({\n __esModule: true,\n default: props => createElement(resolve(moduleOrComponent), loadForwardedRef(props)),\n })),\n )\n\n return forwardRef<T, P>((props, ref) => <Dynamic {...saveForwardedRef(props, ref)} />)\n}\n","const keys = <O extends { [key: string]: unknown }>(o: O): (keyof O)[] => Object.keys(o)\n\nexport default keys\n","const coalesce = <T>(...args: Array<T>): T => {\n let i: number\n\n for (i = 0; i < args.length - 1; i += 1) {\n if (args[i] != null) return args[i]\n }\n\n return args[i]\n}\n\nexport default coalesce\n","import keys from './keys'\nimport coalesce from './coalesce'\n\nexport default function shallowMerge<\n A extends Record<string, unknown>,\n B extends Record<string, unknown>,\n>(a: A, b: B): A & B {\n const bKeys = keys(b)\n const merged = { ...a } as A & B\n\n bKeys.forEach(key => {\n // @ts-expect-error: `coalesce` returns `null | undefined` regardless of input guarantees.\n merged[key] = coalesce(merged[key], b[key])\n })\n\n return merged\n}\n","import type { Device as DeviceID, DeviceOverride, ResponsiveValue } from '../../prop-controllers'\nimport shallowMerge from '../../utils/shallowMerge'\n\nexport type Device = {\n id: DeviceID\n minWidth?: number\n maxWidth?: number\n}\n\nexport const DEVICES: Array<Device> = [\n { id: 'desktop', minWidth: 769 },\n { id: 'tablet', minWidth: 576, maxWidth: 768 },\n { id: 'mobile', maxWidth: 575 },\n]\n\nexport const getDevice = (deviceId: DeviceID): Device => {\n const device = DEVICES.find(({ id }) => id === deviceId)\n\n if (device == null) throw new Error(`Unrecognized device ID: \"${deviceId}\".`)\n\n return device\n}\n\nexport type FallbackStrategy<V> = (\n arg0: DeviceOverride<V> | undefined,\n arg1: ResponsiveValue<V>,\n) => DeviceOverride<V> | undefined\n\nfunction defaultStrategy<V>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return value || fallbacks[0]\n}\n\nexport function shallowMergeFallbacks<V extends Record<string, unknown>>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return [value, ...fallbacks]\n .filter((override): override is DeviceOverride<V> => Boolean(override))\n .reduce((a, b) => ({\n deviceId: a.deviceId || b.deviceId,\n value: shallowMerge(a.value, b.value),\n }))\n}\n\nexport function findDeviceOverride<S>(\n values: ResponsiveValue<S> = [],\n deviceId: string,\n strategy: FallbackStrategy<S> = defaultStrategy,\n): DeviceOverride<S> | undefined {\n const value = values.find(({ deviceId: d }) => d === deviceId)\n const fallbacks = DEVICES.slice(0, DEVICES.findIndex(d => d.id === deviceId) + 1)\n .reverse()\n .map(d => values.find(v => v.deviceId === d.id))\n .filter((override): override is DeviceOverride<S> => Boolean(override))\n\n return value != null || fallbacks.length > 0 ? strategy(value, fallbacks) : undefined\n}\n\nexport type ExtractResponsiveValue<T> = T extends ResponsiveValue<infer V> ? V : never\n\nexport function join<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, R>(\n responsiveValues: A,\n joinFn: (values: { [I in keyof A]: ExtractResponsiveValue<A[I]> | undefined }) => R,\n strategy?: FallbackStrategy<V>,\n): ResponsiveValue<R> {\n return DEVICES.map(({ id }) => id)\n .map(deviceId => {\n const value = joinFn(\n responsiveValues.map(responsiveValue => {\n const deviceValue =\n responsiveValue && findDeviceOverride(responsiveValue, deviceId, strategy)\n\n return deviceValue == null ? undefined : deviceValue.value\n }) as unknown as { [I in keyof A]: ExtractResponsiveValue<A[I] | undefined> },\n )\n\n if (value == null) return null\n\n return { deviceId, value }\n })\n .filter((override): override is DeviceOverride<R> => Boolean(override))\n}\n\nexport const getDeviceMediaQuery = (device: Device): string => {\n const parts = ['@media only screen']\n\n if (device.minWidth != null) {\n parts.push(`(min-width: ${device.minWidth}px)`)\n }\n\n if (device.maxWidth != null) {\n parts.push(`(max-width: ${device.maxWidth}px)`)\n }\n\n return parts.join(' and ')\n}\n","/**\n * These are the element types that have been used since the beginning of Makeswift and are saved in\n * the database.\n */\nexport const MakeswiftComponentType = {\n Box: './components/Box/index.js',\n Button: './components/Button/index.js',\n Carousel: './components/Carousel/index.js',\n Countdown: './components/Countdown/index.js',\n Divider: './components/Divider/index.js',\n Embed: './components/Embed/index.js',\n Form: './components/Form/index.js',\n Image: './components/Image/index.js',\n Navigation: './components/Navigation/index.js',\n Root: './components/Root/index.js',\n SocialLinks: './components/SocialLinks/index.js',\n Text: './components/Text/index.js',\n Video: './components/Video/index.js',\n} as const\n","export type BoxAnimateIn =\n | 'none'\n | 'fadeIn'\n | 'fadeUp'\n | 'fadeDown'\n | 'fadeLeft'\n | 'fadeRight'\n | 'blurIn'\n | 'scaleUp'\n | 'scaleDown'\n\nexport const DEFAULT_BOX_ANIMATE_TYPE = 'none'\nexport const DEFAULT_BOX_ANIMATE_DELAY = 0.0\nexport const DEFAULT_BOX_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_ANIMATE_TYPE = 'none'\nexport const DEFAULT_ITEM_ANIMATE_DELAY = 0.0\nexport const DEFAULT_ITEM_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_STAGGER_DURATION = 0.0\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props, ResponsiveValue } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { MakeswiftComponentType } from '../constants'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_ITEM_ANIMATE_DELAY,\n DEFAULT_ITEM_STAGGER_DURATION,\n} from './constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n function isHiddenBasedOnAnimationType(\n props: Record<string, unknown>,\n deviceId: string,\n property: 'boxAnimateType' | 'itemAnimateType',\n ): boolean {\n const animateIn = props[property] as ResponsiveValue<BoxAnimateIn>\n return (findDeviceOverride<BoxAnimateIn>(animateIn, deviceId)?.value ?? 'none') === 'none'\n }\n const isHiddenBasedOnBoxAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'boxAnimateType')\n const isHiddenBasedOnItemAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'itemAnimateType')\n\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Box')))),\n {\n type: MakeswiftComponentType.Box,\n label: 'Box',\n props: {\n id: Props.ElementID(),\n backgrounds: Props.Backgrounds(),\n width: Props.Width(),\n height: Props.ResponsiveIconRadioGroup({\n label: 'Height',\n options: [\n { value: 'auto', label: 'Auto', icon: 'HeightAuto16' },\n { value: 'stretch', label: 'Stretch', icon: 'HeightMatch16' },\n ],\n defaultValue: 'auto',\n }),\n verticalAlign: Props.ResponsiveIconRadioGroup({\n label: 'Align items',\n options: [\n { value: 'flex-start', label: 'Top', icon: 'VerticalAlignStart16' },\n { value: 'center', label: 'Middle', icon: 'VerticalAlignMiddle16' },\n { value: 'flex-end', label: 'Bottom', icon: 'VerticalAlignEnd16' },\n {\n value: 'space-between',\n label: 'Space between',\n icon: 'VerticalAlignSpaceBetween16',\n },\n ],\n defaultValue: 'flex-start',\n }),\n margin: Props.Margin(),\n padding: Props.Padding({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n paddingTop: { value: 10, unit: 'px' },\n paddingRight: { value: 10, unit: 'px' },\n paddingBottom: { value: 10, unit: 'px' },\n paddingLeft: { value: 10, unit: 'px' },\n },\n },\n ],\n }),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n rowGap: Props.GapY(props => ({\n hidden: props.children == null,\n })),\n columnGap: Props.GapX(props => ({\n hidden: props.children == null,\n })),\n boxAnimateType: Props.ResponsiveSelect({\n label: 'Animate box in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n boxAnimateDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Box duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnBoxAnimation(props, device),\n })),\n boxAnimateDelay: Props.ResponsiveNumber((props, device) => ({\n label: 'Box delay',\n defaultValue: DEFAULT_BOX_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnBoxAnimation(props, device),\n })),\n itemAnimateType: Props.ResponsiveSelect({\n label: 'Animate items in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n itemAnimateDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Items duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n itemAnimateDelay: Props.ResponsiveNumber((props, device) => ({\n label: 'Items delay',\n defaultValue: DEFAULT_ITEM_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n itemStaggerDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Stagger',\n min: 0,\n step: 0.05,\n suffix: 's',\n defaultValue: DEFAULT_ITEM_STAGGER_DURATION,\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n hidePlaceholder: Props.Checkbox(props => ({\n label: 'Hide placeholder',\n hidden: props.children != null,\n })),\n children: Props.Grid(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props, ResponsiveValue } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { MakeswiftComponentType } from '../constants'\nimport { ButtonVariant } from './contants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Button')))),\n {\n type: MakeswiftComponentType.Button,\n label: 'Button',\n props: {\n id: Props.ElementID(),\n children: Props.TextInput({ placeholder: 'Button text' }),\n link: Props.Link({\n defaultValue: {\n type: 'OPEN_PAGE',\n payload: {\n pageId: null,\n openInNewTab: false,\n },\n },\n }),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'flat', label: 'Flat' },\n { value: 'outline', label: 'Outline' },\n { value: 'shadow', label: 'Floating' },\n { value: 'clear', label: 'Clear' },\n { value: 'blocky', label: 'Blocky' },\n { value: 'bubbly', label: 'Bubbly' },\n { value: 'skewed', label: 'Skewed' },\n ],\n defaultValue: 'flat',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n color: Props.ResponsiveColor((props, device) => {\n const variant = props.variant as ResponsiveValue<ButtonVariant>\n const hidden = findDeviceOverride<ButtonVariant>(variant, device)?.value === 'clear'\n\n return { placeholder: 'black', hidden }\n }),\n textColor: Props.ResponsiveColor({\n label: 'Text color',\n placeholder: 'white',\n }),\n textStyle: Props.TextStyle(),\n width: Props.Width(),\n margin: Props.Margin(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport uuid from 'uuid/v4'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props, ResponsiveValue } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Carousel')))),\n {\n type: MakeswiftComponentType.Carousel,\n label: 'Carousel',\n icon: 'Carousel40',\n props: {\n id: Props.ElementID(),\n images: Props.Images({\n preset: [\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n ],\n }),\n width: Props.Width({ defaultValue: { value: 400, unit: 'px' } }),\n margin: Props.Margin(),\n pageSize: Props.ResponsiveNumber(props => {\n const images = props.images as unknown[]\n const imagesLength = images?.length ?? 0\n\n return {\n label: 'Images shown',\n defaultValue: 1,\n min: 1,\n max: imagesLength,\n step: 1,\n }\n }),\n step: Props.ResponsiveNumber((props, device) => {\n const pageSize = props.pageSize as ResponsiveValue<number>\n const pageSizeValue = findDeviceOverride(pageSize, device)?.value ?? 1\n\n return {\n label: 'Step',\n defaultValue: 1,\n min: 1,\n max: pageSizeValue,\n step: 1,\n }\n }),\n slideAlignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Top', value: 'flex-start', icon: 'VerticalAlignStart16' },\n { label: 'Middle', value: 'center', icon: 'VerticalAlignMiddle16' },\n { label: 'Bottom', value: 'flex-end', icon: 'VerticalAlignEnd16' },\n ],\n defaultValue: 'center',\n }),\n gap: Props.GapX({\n label: 'Gap',\n step: 5,\n defaultValue: { value: 0, unit: 'px' },\n }),\n autoplay: Props.Checkbox({ label: 'Autoplay' }),\n delay: Props.Number(props => ({\n label: 'Delay',\n preset: 5,\n min: 1,\n step: 0.1,\n suffix: 'seconds',\n hidden: !props.autoplay,\n })),\n showArrows: Props.Checkbox({ preset: true, label: 'Show arrows' }),\n arrowPosition: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Arrow position',\n options: [\n { label: 'Inside', value: 'inside', icon: 'ArrowInside16' },\n { label: 'Center', value: 'center', icon: 'ArrowCenter16' },\n { label: 'Outside', value: 'outside', icon: 'ArrowOutside16' },\n ],\n defaultValue: 'inside',\n hidden: props.showArrows === false,\n })),\n arrowColor: Props.ResponsiveColor(props => ({\n label: 'Arrow color',\n placeholder: 'black',\n hidden: props.showArrows === false,\n })),\n arrowBackground: Props.ResponsiveColor(props => ({\n label: 'Arrow background',\n placeholder: 'white',\n hidden: props.showArrows === false,\n })),\n showDots: Props.Checkbox({ preset: true, label: 'Show dots' }),\n dotColor: Props.ResponsiveColor(props => ({\n label: 'Dot color',\n placeholder: 'black',\n hidden: props.showDots === false,\n })),\n slideBorder: Props.Border(),\n slideBorderRadius: Props.BorderRadius(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Countdown')))),\n {\n type: MakeswiftComponentType.Countdown,\n label: 'Countdown',\n icon: 'Countdown40',\n props: {\n id: Props.ElementID(),\n date: Props.Date(() => ({\n preset: new Date(Date.now() + 1000 * 60 * 60 * 24 * 2).toISOString(),\n })),\n variant: Props.ResponsiveIconRadioGroup({\n label: 'Style',\n options: [\n { label: 'Filled', value: 'filled', icon: 'CountdownSolid16' },\n {\n label: 'Filled split',\n value: 'filled-split',\n icon: 'CountdownSolidSplit16',\n },\n { label: 'Outline', value: 'outline', icon: 'CountdownOutline16' },\n {\n label: 'Outline split',\n value: 'outline-split',\n icon: 'CountdownOutlineSplit16',\n },\n { label: 'Clear', value: 'clear', icon: 'CountdownNaked16' },\n ],\n defaultValue: 'filled',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n gap: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n step: 1,\n min: 0,\n max: 100,\n defaultValue: { value: 0, unit: 'px' },\n }),\n numberFont: Props.Font({ label: 'Number font' }),\n numberColor: Props.ResponsiveColor({\n label: 'Number color',\n placeholder: 'white',\n }),\n blockColor: Props.ResponsiveColor({\n label: 'Block color',\n placeholder: 'black',\n }),\n labelFont: Props.Font({ label: 'Label font' }),\n labelColor: Props.ResponsiveColor({\n label: 'Label color',\n placeholder: 'black',\n }),\n width: Props.Width({ defaultValue: { value: 560, unit: 'px' } }),\n margin: Props.Margin(),\n daysLabel: Props.TextInput({ label: 'Days label', placeholder: 'Days' }),\n hoursLabel: Props.TextInput({ label: 'Hours label', placeholder: 'Hours' }),\n minutesLabel: Props.TextInput({\n label: 'Minutes label',\n placeholder: 'Minutes',\n }),\n secondsLabel: Props.TextInput({\n label: 'Seconds label',\n placeholder: 'Seconds',\n }),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Divider')))),\n {\n type: MakeswiftComponentType.Divider,\n label: 'Divider',\n icon: 'Divider40',\n props: {\n id: Props.ElementID(),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'solid', label: 'Solid' },\n { value: 'dashed', label: 'Dashed' },\n { value: 'dotted', label: 'Dotted' },\n { value: 'blended', label: 'Blended' },\n ],\n defaultValue: 'solid',\n }),\n thickness: Props.ResponsiveLength({\n label: 'Height',\n defaultValue: { value: 1, unit: 'px' },\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n }),\n color: Props.ResponsiveColor({ placeholder: 'black' }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Embed')))),\n {\n type: MakeswiftComponentType.Embed,\n label: 'Embed',\n icon: 'Code40',\n props: {\n id: Props.ElementID(),\n html: Props.TextArea({ label: 'Code', rows: 20 }),\n width: Props.Width({}),\n margin: Props.Margin(),\n },\n },\n )\n}\n","import { createContext, useContext } from 'react'\n\nimport { ResponsiveValue, TextStyleValue } from '../../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../../runtimes/react/controls'\nimport { ColorValue } from '../../../utils/types'\n\nexport const Alignments = {\n LEFT: 'left',\n CENTER: 'center',\n RIGHT: 'right',\n} as const\n\nexport type Alignment = typeof Alignments[keyof typeof Alignments]\n\nexport const Shapes = Object.freeze({\n SQUARE: 'square',\n ROUNDED: 'rounded',\n PILL: 'pill',\n} as const)\n\nexport type Shape = typeof Shapes[keyof typeof Shapes]\n\nexport const Sizes = Object.freeze({\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const)\n\nexport type Size = typeof Sizes[keyof typeof Sizes]\n\nexport const Contrasts = Object.freeze({\n LIGHT: 'light',\n DARK: 'dark',\n} as const)\n\nexport type Contrast = typeof Contrasts[keyof typeof Contrasts]\n\nexport type Value = {\n shape: ResponsiveValue<Shape> | null | undefined\n size: ResponsiveValue<Size> | null | undefined\n contrast: ResponsiveValue<Contrast> | null | undefined\n brandColor: ResponsiveValue<ColorValue> | null | undefined\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n}\n\nconst Context = createContext<Value>({} as Value)\n\nexport function useFormContext(): Value {\n return useContext(Context)\n}\n\nconst { Provider } = Context\n\nexport { Provider }\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props, ResponsiveValue } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { MakeswiftComponentType } from '../constants'\nimport { Alignments, Contrast, Contrasts, Shapes, Sizes } from './context/FormContext'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Form')))),\n {\n type: MakeswiftComponentType.Form,\n label: 'Form',\n icon: 'Form40',\n props: {\n id: Props.ElementID(),\n tableId: Props.Table(),\n fields: Props.TableFormFields(),\n submitLink: Props.Link(props => ({\n label: 'Redirect to',\n // TODO: This option is hardcoded. We should import it from LinkPanelOptions\n options: [\n { value: 'OPEN_PAGE', label: 'Open page' },\n { value: 'OPEN_URL', label: 'Open URL' },\n ],\n hidden: props.tableId == null,\n })),\n gap: Props.GapY(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n defaultValue: { value: 0, unit: 'px' },\n hidden: props.tableId == null,\n })),\n shape: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Shape',\n options: [\n { label: 'Pill', value: Shapes.PILL, icon: 'ButtonPill16' },\n { label: 'Rounded', value: Shapes.ROUNDED, icon: 'ButtonRounded16' },\n { label: 'Square', value: Shapes.SQUARE, icon: 'ButtonSquare16' },\n ],\n defaultValue: Shapes.ROUNDED,\n hidden: props.tableId == null,\n })),\n size: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Size',\n options: [\n { label: 'Small', value: Sizes.SMALL, icon: 'SizeSmall16' },\n { label: 'Medium', value: Sizes.MEDIUM, icon: 'SizeMedium16' },\n { label: 'Large', value: Sizes.LARGE, icon: 'SizeLarge16' },\n ],\n defaultValue: Sizes.MEDIUM,\n hidden: props?.tableId == null,\n })),\n contrast: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Color',\n options: [\n { label: 'Light mode', value: Contrasts.LIGHT, icon: 'Sun16' },\n { label: 'Dark mode', value: Contrasts.DARK, icon: 'Moon16' },\n ],\n defaultValue: Contrasts.LIGHT,\n hidden: props.tableId == null,\n })),\n labelTextStyle: Props.TextStyle({ label: 'Label text style' }),\n labelTextColor: Props.ResponsiveColor((props, device) => {\n const hidden = props.tableId == null\n const responsiveContrast = props.contrast as ResponsiveValue<Contrast>\n const contrast = findDeviceOverride<Contrast>(responsiveContrast, device)\n\n return {\n hidden,\n label: 'Label text color',\n placeholder:\n contrast?.value === Contrasts.DARK ? 'rgba(255,255,255,0.95)' : 'rgba(0,0,0,0.8)',\n }\n }),\n submitTextStyle: Props.TextStyle({ label: 'Button text style' }),\n brandColor: Props.ResponsiveColor(props => ({\n label: 'Button color',\n placeholder: 'black',\n hidden: props.tableId == null,\n // TODO: Add hideAlphaSlider\n })),\n submitTextColor: Props.ResponsiveColor(props => ({\n label: 'Button text color',\n placeholder: 'white',\n hidden: props.tableId == null,\n })),\n submitLabel: Props.TextInput(props => ({\n label: 'Button label',\n placeholder: 'Submit',\n hidden: props.tableId == null,\n })),\n submitVariant: Props.ResponsiveSelect(props => ({\n label: 'Button style',\n options: [\n { value: 'flat', label: 'Flat' },\n { value: 'outline', label: 'Outline' },\n { value: 'shadow', label: 'Floating' },\n { value: 'clear', label: 'Clear' },\n { value: 'blocky', label: 'Blocky' },\n { value: 'bubbly', label: 'Bubbly' },\n { value: 'skewed', label: 'Skewed' },\n ],\n defaultValue: 'flat',\n hidden: props.tableId == null,\n })),\n submitWidth: Props.ResponsiveLength(props => ({\n label: 'Button width',\n hidden: props.tableId == null,\n // TODO: Add placeholder: { value: 'auto' }\n })),\n submitAlignment: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Button alignment',\n options: [\n { label: 'Left', value: Alignments.LEFT, icon: 'AlignLeft16' },\n { label: 'Center', value: Alignments.CENTER, icon: 'AlignCenter16' },\n { label: 'Right', value: Alignments.RIGHT, icon: 'AlignRight16' },\n ],\n defaultValue: Alignments.CENTER,\n hidden: props.tableId == null,\n })),\n width: Props.Width({\n preset: [{ deviceId: 'desktop', value: { value: 550, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Image')))),\n {\n type: MakeswiftComponentType.Image,\n label: 'Image',\n props: {\n id: Props.ElementID(),\n file: Props.Image(),\n altText: Props.TextInput({ label: 'Alt text' }),\n link: Props.Link({ label: 'On click' }),\n width: Props.Width(),\n margin: Props.Margin(),\n padding: Props.Padding(),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n opacity: Props.ResponsiveOpacity(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { NavigationLinksValue, ResponsiveValue } from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Navigation')))),\n {\n type: MakeswiftComponentType.Navigation,\n label: 'Navigation',\n icon: 'Navigation40',\n props: {\n id: Props.ElementID(),\n links: Props.NavigationLinks(),\n linkTextStyle: Props.TextStyle(props => {\n const links = props.links as NavigationLinksValue\n\n return {\n label: 'Link text style',\n hidden: links == null || links.length === 0,\n }\n }),\n showLogo: Props.Checkbox({ preset: true, label: 'Show logo' }),\n logoFile: Props.Image(props => ({\n label: 'Logo',\n hidden: props.showLogo === false,\n })),\n logoWidth: Props.ResponsiveLength(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 100, unit: 'px' } }],\n label: 'Logo width',\n min: 0,\n max: 1000,\n // TODO: This is hardcoded value, import it from LengthInputOptions\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n hidden: props.showLogo === false,\n })),\n logoAltText: Props.TextInput(props => ({\n label: 'Logo alt text',\n hidden: props.showLogo === false,\n })),\n logoLink: Props.Link(props => ({\n label: 'Logo on click',\n hidden: props.showLogo === false,\n })),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Left', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'Center', value: 'center', icon: 'AlignCenter16' },\n { label: 'End', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'flex-end',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n mobileMenuAnimation: Props.ResponsiveSelect({\n label: 'Mobile menu',\n options: [\n { value: 'coverRight', label: 'Cover from right' },\n { value: 'coverLeft', label: 'Cover from left' },\n ],\n }),\n mobileMenuOpenIconColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Open icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuCloseIconColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Close icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuBackgroundColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Menu BG color',\n placeholder: 'black',\n hidden,\n }\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Root')))),\n {\n type: MakeswiftComponentType.Root,\n label: 'Page',\n hidden: true,\n props: {\n children: Props.Grid(),\n backgrounds: Props.Backgrounds(),\n rowGap: Props.GapY(),\n columnGap: Props.GapX(),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { SocialLinksValue } from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./SocialLinks')))),\n {\n type: MakeswiftComponentType.SocialLinks,\n label: 'Social Links',\n icon: 'SocialLinks40',\n props: {\n id: Props.ElementID(),\n links: Props.SocialLinks({\n preset: {\n links: [\n {\n id: 'facebook',\n payload: { type: 'facebook', url: 'https://www.facebook.com' },\n },\n {\n id: 'instagram',\n payload: { type: 'instagram', url: 'https://www.instagram.com' },\n },\n {\n id: 'twitter',\n payload: { type: 'twitter', url: 'https://www.twitter.com' },\n },\n ],\n openInNewTab: false,\n },\n }),\n shape: Props.ResponsiveIconRadioGroup(props => {\n const links = props.links as SocialLinksValue\n\n return {\n label: 'Shape',\n options: [\n { label: 'Naked', value: 'naked', icon: 'Star16' },\n { label: 'Circle', value: 'circle', icon: 'StarCircle16' },\n { label: 'Rounded', value: 'rounded', icon: 'StarRoundedSquare16' },\n { label: 'Square', value: 'square', icon: 'StarSquare16' },\n ],\n defaultValue: 'naked',\n hidden: links == null || links.links.length === 0,\n }\n }),\n size: Props.ResponsiveIconRadioGroup(props => {\n const links = props.links as SocialLinksValue\n\n return {\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n hidden: links == null || links.links.length === 0,\n }\n }),\n hoverStyle: Props.ResponsiveSelect(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'On hover',\n options: [\n { value: 'none', label: 'None' },\n { value: 'grow', label: 'Grow' },\n { value: 'shrink', label: 'Shrink' },\n { value: 'fade', label: 'Fade' },\n ],\n defaultValue: 'none',\n labelOrientation: 'horizontal',\n hidden,\n }\n }),\n fill: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Icon color',\n hidden,\n }\n }),\n backgroundColor: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Shape color',\n hidden,\n }\n }),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'flex-start', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'center', value: 'center', icon: 'AlignCenter16' },\n { label: 'flex-end', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'center',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: { value: 10, unit: 'px' },\n marginRight: 'auto',\n marginBottom: { value: 10, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Text')))),\n {\n type: MakeswiftComponentType.Text,\n label: 'Text',\n props: {\n id: Props.ElementID(),\n text: Props.RichText(() => ({\n preset: {\n document: {\n nodes: [\n {\n object: 'block',\n type: 'paragraph',\n nodes: [\n {\n object: 'text',\n text: ipsum(3),\n marks: [\n {\n object: 'mark',\n type: 'typography',\n data: {\n value: {\n id: null,\n style: [\n {\n deviceId: 'mobile',\n value: { fontSize: { value: 16, unit: 'px' } },\n },\n {\n deviceId: 'desktop',\n value: {\n fontWeight: 400,\n fontSize: { value: 18, unit: 'px' },\n lineHeight: 1.5,\n },\n },\n ],\n },\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n })),\n width: Props.Width({\n preset: [{ deviceId: 'desktop', value: { value: 700, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: null,\n marginRight: 'auto',\n marginBottom: { value: 20, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n },\n )\n}\n","import dynamic from 'next/dynamic'\n\nimport { forwardNextDynamicRef } from '../../../next'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../runtimes/react'\nimport { MakeswiftComponentType } from '../constants'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n forwardNextDynamicRef(patch => dynamic(() => patch(import('./Video')))),\n {\n type: MakeswiftComponentType.Video,\n label: 'Video',\n icon: 'Video40',\n props: {\n id: Props.ElementID(),\n video: Props.Video({ preset: { controls: true } }),\n width: Props.Width({ defaultValue: { value: 560, unit: 'px' } }),\n margin: Props.Margin(),\n borderRadius: Props.BorderRadius(),\n },\n },\n )\n}\n","import { ReactRuntime } from '../../runtimes/react'\nimport { registerComponent as registerBoxComponent } from './Box/register'\nimport { registerComponent as registerButtonComponent } from './Button/register'\nimport { registerComponent as registerCarouselComponent } from './Carousel/register'\nimport { registerComponent as registerCountdownComponent } from './Countdown/register'\nimport { registerComponent as registerDividerComponent } from './Divider/register'\nimport { registerComponent as registerEmbedComponent } from './Embed/register'\nimport { registerComponent as registerFormComponent } from './Form/register'\nimport { registerComponent as registerImageComponent } from './Image/register'\nimport { registerComponent as registerNavigationComponent } from './Navigation/register'\nimport { registerComponent as registerRootComponent } from './Root/register'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks/register'\nimport { registerComponent as registerTextComponent } from './Text/register'\nimport { registerComponent as registerVideoComponent } from './Video/register'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterFormComponent = registerFormComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjg5ODY0IDE4SDE3LjEwMTRDMTguNDE4MyAxOCAxOS4yNjMzIDE2LjYwMDMgMTguNjUgMTUuNDM0OUwxMS41NDg2IDEuOTQyMzZDMTAuODkyNSAwLjY5NTc3IDkuMTA3NDkgMC42OTU3NjYgOC40NTEzOSAxLjk0MjM2TDEuMzUwMDMgMTUuNDM0OUMwLjczNjY5MiAxNi42MDAzIDEuNTgxNzQgMTggMi44OTg2NCAxOFpNOSA2QzkgNS40NDc3MiA5LjQ0NzcxIDUgMTAgNUMxMC41NTIzIDUgMTEgNS40NDc3MiAxMSA2VjExQzExIDExLjU1MjMgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcxIDEyIDkgMTEuNTUyMyA5IDExVjZaTTExLjI1IDE0Ljc1QzExLjI1IDE1LjQ0MDQgMTAuNjkwNCAxNiAxMCAxNkM5LjMwOTY0IDE2IDguNzUgMTUuNDQwNCA4Ljc1IDE0Ljc1QzguNzUgMTQuMDU5NiA5LjMwOTY0IDEzLjUgMTAgMTMuNUMxMC42OTA0IDEzLjUgMTEuMjUgMTQuMDU5NiAxMS4yNSAxNC43NVoiIC8+Cjwvc3ZnPgo=\"","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport { ReactComponent as Warning20 } from '../../icons/warning-20.svg'\n\nconst ErrorDiv = styled('div')`\n width: 100%;\n height: 54px;\n background-color: #fcedf2;\n border-radius: 6px;\n padding: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #c73e6d;\n fill: currentColor;\n font-family: Heebo, sans-serif;\n font-size: 16px;\n`\n\ntype Props = {\n text: string\n}\n\nexport const FallbackComponent = forwardRef(function FallbackComponent(\n { text }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ErrorDiv ref={ref}>\n <Warning20 />\n <span>{text}</span>\n </ErrorDiv>\n )\n})\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import { BorderStyleProperty } from 'csstype'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { BorderValue as ResponsiveBorderValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\nfunction mapSideColor(swatches: any, { color, ...restOfSide }: any) {\n return {\n ...restOfSide,\n color: color && {\n alpha: color.alpha,\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n },\n }\n}\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderStyleProperty\n color: Color | null | undefined\n}\n\ntype BorderData = {\n borderTop: BorderSide | null | undefined\n borderRight: BorderSide | null | undefined\n borderBottom: BorderSide | null | undefined\n borderLeft: BorderSide | null | undefined\n}\n\nexport type BorderPropControllerData = ResponsiveValue<BorderData>\n\nexport function useBorder(\n value: ResponsiveBorderValue | null | undefined,\n): BorderPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: { borderTop, borderLeft, borderBottom, borderRight } }) => [\n borderTop && borderTop.color && borderTop.color.swatchId,\n borderBottom && borderBottom.color && borderBottom.color.swatchId,\n borderLeft && borderLeft.color && borderLeft.color.swatchId,\n borderRight && borderRight.color && borderRight.color.swatchId,\n ])\n .reduce((a, b) => a.concat(b))\n .filter(isNonNullable),\n ),\n ),\n ]\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: { borderTop, borderBottom, borderLeft, borderRight }, ...rest }) => ({\n ...rest,\n value: {\n borderTop: borderTop && mapSideColor(swatches, borderTop),\n borderBottom: borderBottom && mapSideColor(swatches, borderBottom),\n borderLeft: borderLeft && mapSideColor(swatches, borderLeft),\n borderRight: borderRight && mapSideColor(swatches, borderRight),\n },\n }))\n}\n","import type { ResponsiveValue } from '../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { useQuery } from '../../api/react'\n\nexport function useResponsiveColor(\n color:\n | ResponsiveValue<{\n swatchId: string\n alpha: number\n }>\n | null\n | undefined,\n): ResponsiveValue<Color> | null | undefined {\n const swatchIds =\n color == null\n ? []\n : [...Array.from(new Set(color.map(({ value: v }) => v && v.swatchId).filter(isNonNullable)))]\n const skip = swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (color == null || error != null) return null\n\n const { swatches = [] } = data\n\n return color\n .map(({ value: v, ...rest }) => {\n const { swatchId, alpha } = v\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return swatch == null ? null : { ...rest, value: { swatch, alpha } }\n })\n .filter(isNonNullable)\n}\n","import { useQuery } from '../../api/react'\nimport { FILE_BY_ID } from '../utils/queries'\n\ntype File = {\n id: string\n name: string\n publicUrl: string\n extension: string\n dimensions: { width: number; height: number } | null\n}\n\nexport function useFile(fileId: string | null | undefined): File | null | undefined {\n const { error, data = {} } = useQuery(FILE_BY_ID, {\n skip: fileId == null,\n variables: { id: fileId },\n })\n\n if (fileId == null || error != null) return null\n\n return data.file\n}\n","import { useEffect, useLayoutEffect } from 'react'\n\nconst isSSR =\n typeof window === 'undefined' ||\n /ServerSideRendering/.test(window.navigator && window.navigator.userAgent)\n\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\n","import { useQuery } from '../../api/react'\nimport { PAGE_PATHNAMES_BY_ID } from '../utils/queries'\n\ntype Page = {\n id: string\n pathname: string\n}\n\nexport function usePage(pageId: string | null | undefined): Page | null | undefined {\n const { error, data = {} } = useQuery(PAGE_PATHNAMES_BY_ID, {\n skip: pageId == null,\n variables: { ids: [pageId] },\n })\n\n if (pageId == null || error != null) return null\n\n const { pagePathnamesById: [page] = [] } = data\n\n return page\n}\n","import { WidthProperty } from 'csstype'\nimport { CSSObject } from '@emotion/css'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\n\nexport function responsiveStyle<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>>(\n responsiveValues: A,\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) => CSSObject,\n strategy?: FallbackStrategy<V>,\n): CSSObject {\n return joinResponsiveValues(responsiveValues, join, strategy).reduce(\n (acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return {\n ...acc,\n [mediaQuery]: {\n ...(acc[mediaQuery] as CSSObject),\n ...value,\n },\n }\n },\n {} as CSSObject,\n )\n}\n\nexport function responsiveWidth(\n widthData: WidthValue | undefined,\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): CSSObject {\n return {\n maxWidth: '100%',\n ...responsiveStyle([widthData], ([width = defaultValue]) => ({\n width: typeof width === 'object' ? `${width.value}${width.unit}` : width,\n })),\n }\n}\n","import type { ColorValue as Color } from './types'\n\nexport function colorToString(color?: Color): string {\n return color && color.swatch\n ? `hsla(${color.swatch.hue},${color.swatch.saturation}%,${color.swatch.lightness}%,${color.alpha})`\n : ''\n}\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react'\nimport { cache, CSSObject } from '@emotion/css'\nimport { serializeStyles } from '@emotion/serialize'\nimport { registerStyles, insertStyles } from '@emotion/utils'\n\nconst isServer = typeof window === 'undefined'\nconst useInsertionEffectSpecifier = 'useInsertionEffect'\nconst useInsertionEffect = React[useInsertionEffectSpecifier] ?? React.useLayoutEffect\n\nexport function useStyle(style: CSSObject): string {\n const serialized = serializeStyles([style], cache.registered)\n\n registerStyles(cache, serialized, false)\n\n useInsertionEffect(() => {\n insertStyles(cache, serialized, false)\n })\n\n if (isServer) insertStyles(cache, serialized, false)\n\n return `${cache.key}-${serialized.name}`\n}\n","import { CSSObject } from '@emotion/css'\n\nimport { useBorder, BorderSide } from '../../../components/hooks'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { responsiveStyle } from '../../../components/utils/responsive-style'\n\nimport {\n BorderRadiusLonghandPropertyData,\n FontSizePropertyData,\n MarginLonghandPropertyData,\n PaddingLonghandPropertyData,\n StyleControlData,\n StyleControlDefinition,\n StyleControlProperty,\n WidthPropertyData,\n} from '../../../controls'\nimport { useStyle } from '../use-style'\n\nfunction useStyleControlCssObject(\n style: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): CSSObject {\n const { properties } = controlDefinition.config\n\n return {\n ...(properties.includes(StyleControlProperty.Width) && {\n maxWidth: '100%',\n }),\n ...responsiveStyle(\n [\n style?.width,\n style?.margin,\n style?.padding,\n useBorder(style?.border),\n style?.borderRadius,\n style?.textStyle,\n ] as const,\n ([width, margin, padding, border, borderRadius, textStyle]) => ({\n ...(properties.includes(StyleControlProperty.Width) && {\n width: widthToString(width) ?? '100%',\n }),\n ...(properties.includes(StyleControlProperty.Margin) && {\n marginTop: marginToString(margin?.marginTop) ?? 0,\n marginRight: marginToString(margin?.marginRight) ?? 'auto',\n marginBottom: marginToString(margin?.marginBottom) ?? 0,\n marginLeft: marginToString(margin?.marginLeft) ?? 'auto',\n }),\n ...(properties.includes(StyleControlProperty.Padding) && {\n paddingTop: paddingToString(padding?.paddingTop) ?? 0,\n paddingRight: paddingToString(padding?.paddingRight) ?? 0,\n paddingBottom: paddingToString(padding?.paddingBottom) ?? 0,\n paddingLeft: paddingToString(padding?.paddingLeft) ?? 0,\n }),\n ...(properties.includes(StyleControlProperty.Border) && {\n borderTop: borderSideToString(border?.borderTop) ?? '0 solid black',\n borderRight: borderSideToString(border?.borderRight) ?? '0 solid black',\n borderBottom: borderSideToString(border?.borderBottom) ?? '0 solid black',\n borderLeft: borderSideToString(border?.borderLeft) ?? '0 solid black',\n }),\n ...(properties.includes(StyleControlProperty.BorderRadius) && {\n borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,\n borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,\n borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,\n borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0,\n }),\n ...(properties.includes(StyleControlProperty.TextStyle) && {\n ...(textStyle?.fontFamily && { fontFamily: textStyle.fontFamily }),\n ...(textStyle?.letterSpacing && { letterSpacing: textStyle.letterSpacing }),\n ...(textStyle?.fontSize && { fontSize: fontSizeToString(textStyle.fontSize) }),\n ...(textStyle?.fontWeight && { fontWeight: textStyle.fontWeight }),\n textTransform: textStyle?.textTransform ?? [],\n fontStyle: textStyle?.fontStyle ?? [],\n }),\n }),\n ),\n }\n\n function widthToString(widthProperty: WidthPropertyData | undefined): string | null {\n if (widthProperty == null) return null\n\n return `${widthProperty.value}${widthProperty.unit}`\n }\n\n function marginToString(\n marginProperty: MarginLonghandPropertyData | null | undefined,\n ): string | null {\n if (marginProperty == null) return null\n\n if (marginProperty === 'auto') return marginProperty\n\n return `${marginProperty.value}${marginProperty.unit}`\n }\n\n function paddingToString(\n paddingProperty: PaddingLonghandPropertyData | null | undefined,\n ): string | null {\n if (paddingProperty == null) return null\n\n return `${paddingProperty.value}${paddingProperty.unit}`\n }\n\n function borderSideToString(borderSide: BorderSide | null | undefined): string | null {\n if (borderSide == null) return null\n\n const { width, color, style } = borderSide\n return `${width != null ? width : 0}px ${style} ${\n color != null ? colorToString(color) : 'black'\n }`\n }\n\n function borderRadiusToString(\n borderRadius: BorderRadiusLonghandPropertyData | null | undefined,\n ): string | null {\n if (borderRadius == null) return null\n\n return `${borderRadius.value}${borderRadius.unit}`\n }\n\n function fontSizeToString(fontSize: NonNullable<FontSizePropertyData>) {\n return `${fontSize.value}${fontSize.unit}`\n }\n}\n\nexport type StyleControlFormattedValue = string\n\nexport function useFormattedStyle(\n styleControlData: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): StyleControlFormattedValue {\n const style = useStyleControlCssObject(styleControlData, controlDefinition)\n\n return useStyle(style)\n}\n","type Props<H extends (...args: any[]) => any> = {\n /**\n * `<RenderHook>` requires key that changes whenever the `hook` prop changes to ensure the rules of\n * hooks are followed.\n */\n key: string\n\n hook: H\n parameters: Parameters<H>\n children(result: ReturnType<H>): JSX.Element\n}\n\nexport function RenderHook<H extends (...args: any[]) => any>({\n hook: useHook,\n parameters,\n children,\n}: Props<H>) {\n return children(useHook(...parameters))\n}\n","import { CheckboxControlData, CheckboxControlDefinition } from '../../../controls'\n\nexport type CheckboxControlValue<T extends CheckboxControlDefinition> =\n undefined extends T['config']['defaultValue'] ? boolean | undefined : boolean\n\nexport function useCheckboxControlValue<T extends CheckboxControlDefinition>(\n data: CheckboxControlData | undefined,\n definition: T,\n): CheckboxControlValue<T> {\n return (data ?? definition.config.defaultValue) as CheckboxControlValue<T>\n}\n","import Color from 'color'\n\nimport { useQuery } from '../../../api/react'\nimport { SWATCHES_BY_ID } from '../../../components/utils/queries'\nimport { ColorControlData, ColorControlDefinition } from '../../../controls/color'\n\nexport type ColorControlValue<T extends ColorControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\ntype Swatch = {\n id: string\n hue: number\n saturation: number\n lightness: number\n}\n\ntype SwatchesById = { swatches: Swatch[] }\n\nexport function useColorValue<T extends ColorControlDefinition>(\n data: ColorControlData | undefined,\n definition: T,\n): ColorControlValue<T> {\n const result = useQuery<SwatchesById>(SWATCHES_BY_ID, {\n variables: { ids: [data?.swatchId] },\n skip: data?.swatchId == null,\n })\n\n if (data === undefined) {\n const { defaultValue } = definition.config\n\n if (defaultValue === undefined) return undefined as ColorControlValue<T>\n\n let defaultColor\n try {\n defaultColor = Color(definition.config.defaultValue)\n } catch {\n defaultColor = Color()\n }\n\n return defaultColor.rgb().string()\n }\n\n const [swatch] = result.data?.swatches ?? [null]\n\n return Color({ h: swatch?.hue, s: swatch?.saturation, l: swatch?.lightness })\n .alpha(data.alpha)\n .rgb()\n .string()\n}\n","import {\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlDefinitionOption,\n} from '../../../controls'\n\nexport type ComboboxControlValue<T extends ComboboxControlDefinition> =\n | ComboboxControlDefinitionOption<T>\n | undefined\n\nexport function useComboboxControlValue<T extends ComboboxControlDefinition>(\n data: ComboboxControlData<T> | undefined,\n): ComboboxControlValue<T> {\n return data?.value\n}\n","import { useFile } from '../../../components/hooks'\nimport {\n ControlDefinition,\n ImageControlData,\n ImageControlDefinition,\n ImageControlValueFormat,\n} from '../../../controls'\n\ntype ImageWithDimensions = {\n url: string\n dimensions: { width: number; height: number }\n}\n\nexport type ImageControlValue = string | ImageWithDimensions | undefined\n\nexport function useImageControlValue(\n data: ImageControlData | undefined,\n definition: ImageControlDefinition,\n): ImageControlValue {\n const format = definition.config.format ?? ImageControlValueFormat.URL\n const file = useFile(data)\n\n if (format === ImageControlValueFormat.URL) {\n return file?.publicUrl\n }\n\n if (file == null || file.dimensions == null) return undefined\n\n return {\n url: file.publicUrl,\n dimensions: { width: file.dimensions.width, height: file.dimensions.height },\n }\n}\n\nexport type ResolveImageControlValue<T extends ControlDefinition> = T extends ImageControlDefinition\n ? undefined extends T['config']['format']\n ? string | undefined\n : T['config']['format'] extends typeof ImageControlValueFormat.URL\n ? string | undefined\n : T['config']['format'] extends typeof ImageControlValueFormat.WithDimensions\n ? ImageWithDimensions | undefined\n : never\n : never\n","import { MouseEvent, useCallback, useMemo } from 'react'\n\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport { useElementId } from '../'\nimport { usePage } from '../../../components/hooks'\nimport { LinkControlData, LinkControlDefinition } from '../../../controls'\n\ntype LinkValue = {\n href: string\n target: '_blank' | '_self' | undefined\n onClick: (event: MouseEvent<HTMLElement>) => void\n}\n\nexport type LinkControlValue<_T extends LinkControlDefinition> = LinkValue | undefined\n\nexport function useLinkControlValue<T extends LinkControlDefinition>(\n link: LinkControlData | undefined,\n _definition: T,\n): LinkControlValue<T> {\n const page = usePage(link && link.type === 'OPEN_PAGE' ? link.payload.pageId : null)\n const elementKey =\n link?.type === 'SCROLL_TO_ELEMENT' ? link.payload.elementIdConfig?.elementKey : null\n const elementId = useElementId(elementKey)\n\n let href = '#'\n let target: '_blank' | '_self' | undefined\n let block: 'start' | 'center' | 'end' | undefined\n\n if (link) {\n switch (link.type) {\n case 'OPEN_PAGE': {\n if (page) href = `/${page.pathname}`\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'OPEN_URL': {\n href = link.payload.url\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'SEND_EMAIL': {\n const { to, subject = '', body = '' } = link.payload\n\n if (to != null) href = `mailto:${to}?subject=${subject}&body=${body}`\n\n break\n }\n\n case 'CALL_PHONE': {\n href = `tel:${link.payload.phoneNumber}`\n\n break\n }\n\n case 'SCROLL_TO_ELEMENT': {\n href = `#${elementId ?? ''}`\n block = link.payload.block\n\n break\n }\n\n default:\n throw new RangeError(`Invalid link type \"${(link as any).type}.\"`)\n }\n }\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (event.defaultPrevented) return\n\n if (link && link.type === 'SCROLL_TO_ELEMENT') {\n let hash: string | undefined\n\n try {\n hash = new URL(`http://www.example.com/${href}`).hash\n } catch (error) {\n console.error(`Link received invalid href: ${href}`, error)\n }\n\n if (href != null && href === hash) {\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n },\n [link, href, block],\n )\n\n const res = useMemo(() => ({ href, target, onClick: handleClick }), [href, target, handleClick])\n\n return res\n}\n","import { ListControlData, ListControlDefinition } from '../../../controls'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\ntype ListControlItemValue<T extends ListControlDefinition> = ControlDefinitionValue<\n T['config']['type']\n>\n\nexport type ListControlValue<T extends ListControlDefinition> = ListControlItemValue<T>[]\n\ntype ListControlValueProps<T extends ListControlDefinition> = {\n definition: T\n data: ListControlData<T> | undefined\n children(value: ListControlValue<T>): JSX.Element\n}\n\nexport function ListControlValue<T extends ListControlDefinition>({\n definition,\n data,\n children,\n}: ListControlValueProps<T>): JSX.Element {\n return (data ?? []).reduce(\n (renderFn, item) => listControlValue =>\n (\n <ControlValue definition={definition.config.type} data={item.value}>\n {value => renderFn([value as ListControlItemValue<T>, ...listControlValue])}\n </ControlValue>\n ),\n children,\n )([])\n}\n","import { NumberControlData, NumberControlDefinition } from '../../../controls'\n\nexport type NumberControlValue<T extends NumberControlDefinition> =\n undefined extends T['config']['defaultValue'] ? NumberControlData | undefined : NumberControlData\n\nexport function useNumber<T extends NumberControlDefinition>(\n numberControlData: number | undefined,\n controlDefinition: T,\n): NumberControlValue<T> {\n return (numberControlData ?? controlDefinition.config.defaultValue) as NumberControlValue<T>\n}\n","import {\n SelectControlData,\n SelectControlDefinition,\n SelectControlDefinitionOption,\n} from '../../../controls'\n\nexport type SelectControlValue<T extends SelectControlDefinition> =\n undefined extends T['config']['defaultValue']\n ? SelectControlDefinitionOption<T> | undefined\n : SelectControlDefinitionOption<T>\n\nexport function useSelectControlValue<T extends SelectControlDefinition>(\n data: SelectControlData<T> | undefined,\n definition: T,\n): SelectControlValue<T> {\n return (data ?? definition?.config.defaultValue) as SelectControlValue<T>\n}\n","import { ShapeControlData, ShapeControlDefinition } from '../../../controls/shape'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\nexport type ShapeControlValue<T extends ShapeControlDefinition> = {\n [K in keyof T['config']['type']]: ControlDefinitionValue<T['config']['type'][K]>\n}\n\ntype ShapeControlValueProps<T extends ShapeControlDefinition> = {\n definition: T\n data: ShapeControlData<T> | undefined\n children(value: ShapeControlValue<T>): JSX.Element\n}\n\nexport function ShapeControlValue<T extends ShapeControlDefinition>({\n definition,\n data,\n children,\n}: ShapeControlValueProps<T>) {\n return Object.entries(definition.config.type).reduceRight(\n (renderFn, [key, controlDefinition]) =>\n shapeControlValue =>\n (\n <ControlValue definition={controlDefinition} data={data?.[key]}>\n {value => renderFn({ ...shapeControlValue, [key]: value })}\n </ControlValue>\n ),\n children,\n )({} as ShapeControlValue<T>)\n}\n","import { TextAreaControlData, TextAreaControlDefinition } from '../../../controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextAreaControlValue<T>\n}\n","import { TextInputControlData, TextInputControlDefinition } from '../../../controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextInputControlValue<T>\n}\n","import {\n CheckboxControlData,\n CheckboxControlDefinition,\n CheckboxControlType,\n ColorControlData,\n ColorControlDefinition,\n ColorControlType,\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlType,\n ControlDefinition,\n ControlDefinitionData,\n ImageControlData,\n ImageControlDefinition,\n ImageControlType,\n LinkControlData,\n LinkControlDefinition,\n LinkControlType,\n ListControlData,\n ListControlDefinition,\n ListControlType,\n NumberControlData,\n NumberControlDefinition,\n NumberControlType,\n SelectControlData,\n SelectControlDefinition,\n SelectControlType,\n ShapeControlData,\n ShapeControlDefinition,\n ShapeControlType,\n TextAreaControlData,\n TextAreaControlDefinition,\n TextAreaControlType,\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n} from '../../../controls'\nimport { RenderHook } from '../components'\nimport { CheckboxControlValue, useCheckboxControlValue } from './checkbox'\nimport { ColorControlValue, useColorValue } from './color'\nimport { ComboboxControlValue, useComboboxControlValue } from './combobox'\nimport { ResolveImageControlValue, useImageControlValue } from './image'\nimport { LinkControlValue, useLinkControlValue } from './link'\nimport { ListControlValue } from './list'\nimport { NumberControlValue, useNumber } from './number'\nimport { SelectControlValue, useSelectControlValue } from './select'\nimport { ShapeControlValue } from './shape'\nimport { TextAreaControlValue, useTextAreaValue } from './text-area'\nimport { TextInputControlValue, useTextInputValue } from './text-input'\n\nexport type ControlDefinitionValue<T extends ControlDefinition> =\n T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : never\n\ntype ControlValueProps<T extends ControlDefinition> = {\n definition: T\n data: ControlDefinitionData<T> | undefined\n children(value: ControlDefinitionValue<T>): JSX.Element\n}\n\nexport function ControlValue<T extends ControlDefinition>({\n data,\n definition,\n children,\n}: ControlValueProps<T>): JSX.Element {\n switch (definition.type) {\n case CheckboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useCheckboxControlValue}\n parameters={[data as CheckboxControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case NumberControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useNumber}\n parameters={[data as NumberControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextInputControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextInputValue}\n parameters={[data as TextInputControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextAreaControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextAreaValue}\n parameters={[data as TextAreaControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case SelectControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSelectControlValue}\n parameters={[data as SelectControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ColorControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useColorValue}\n parameters={[data as ColorControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ImageControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useImageControlValue}\n parameters={[data as ImageControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case LinkControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useLinkControlValue}\n parameters={[data as LinkControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ComboboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useComboboxControlValue}\n parameters={[data as ComboboxControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ShapeControlType:\n return (\n <ShapeControlValue definition={definition} data={data as ShapeControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ShapeControlValue>\n )\n\n case ListControlType:\n return (\n <ListControlValue definition={definition} data={data as ListControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ListControlValue>\n )\n\n default:\n return children(data as ControlDefinitionValue<T>)\n }\n}\n","export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import { ComponentPropsWithoutRef, ElementType, ReactNode, useEffect, useState } from 'react'\nimport { SlotControl, SlotControlData } from '../../../controls'\n\nimport { BoxModel, getBox } from '../../../state/modules/box-models'\nimport deepEqual from '../../../utils/deepEqual'\nimport { Element } from '../../../runtimes/react'\nimport { getIndexes } from '../../../components/utils/columns'\nimport { responsiveStyle } from '../../../components/utils/responsive-style'\nimport { useStyle } from '../use-style'\nimport { cx } from '@emotion/css'\n\nexport type SlotControlValue = ReactNode\n\nexport function useSlot(data: SlotControlData, control: SlotControl | null) {\n // TODO(miguel): While the UI shouldn't allow the state, we should probably check that at least\n // one element is visible.\n if (data == null || data.elements.length === 0) {\n return <Slot.Placeholder control={control} />\n }\n\n return (\n <Slot control={control}>\n {data.elements.map((element, i) => (\n <Slot.Item key={element.key} control={control} grid={data.columns} index={i}>\n <Element element={element} />\n </Slot.Item>\n ))}\n </Slot>\n )\n}\n\ntype SlotProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n children?: ReactNode\n className?: string\n}\n\nexport function Slot<T extends ElementType = 'div'>({\n as,\n control,\n children,\n className,\n ...restOfProps\n}: SlotProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotProps<T>>) {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\nSlot.Placeholder = SlotPlaceholder\n\nSlot.Item = SlotItem\n\ntype SlotItemProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n grid: SlotControlData['columns']\n index: number\n children?: ReactNode\n className?: string\n}\n\nfunction SlotItem<T extends ElementType = 'div'>({\n as,\n control,\n grid,\n index,\n children,\n className,\n ...restOfProps\n}: SlotItemProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotItemProps<T>>): JSX.Element {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n ...responsiveStyle([grid], ([{ count = 12, spans = [[12]] } = {}]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, index)\n const span = spans[rowIndex][columnIndex]\n const flexBasis = `calc(100% * ${(span / count).toFixed(5)})`\n\n return span === 0 ? { display: 'none' } : { flexBasis, minWidth: flexBasis }\n }),\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeItemBoxModel(index, boxModel),\n })\n }, [element, control, index])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\ntype SlotPlaceholderProps = {\n control: SlotControl | null\n}\n\nfunction SlotPlaceholder({ control }: SlotPlaceholderProps): JSX.Element {\n const [element, setElement] = useState<Element | null>(null)\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <div\n ref={setElement}\n className={useStyle({\n width: '100%',\n background: 'rgba(161, 168, 194, 0.18)',\n height: '80px',\n })}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n className={useStyle({ overflow: 'visible', padding: 8 })}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </div>\n )\n}\n\nfunction pollBoxModel({\n element,\n onBoxModelChange,\n}: {\n element: Element\n onBoxModelChange(boxModel: BoxModel): void\n}): () => void {\n let currentBoxModel: BoxModel | null = null\n\n const handleAnimationFrameRequest = () => {\n const measuredBoxModel = getBox(element)\n\n if (!deepEqual(currentBoxModel, measuredBoxModel)) {\n currentBoxModel = measuredBoxModel\n\n onBoxModelChange(currentBoxModel)\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n}\n","import { useMemo, useRef } from 'react'\n\nimport { useDocumentKey, useSelector, useStore } from '.'\nimport * as ReactPage from '../../state/react-page'\nimport { Props } from '../../prop-controllers'\nimport {\n Descriptor,\n Device,\n ResolveOptions,\n ResponsiveValue,\n WidthControlValueFormats,\n WidthDescriptor,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { css } from '@emotion/css'\nimport { useResponsiveColor } from '../../components/hooks'\nimport type { ColorValue } from '../../components/utils/types'\nimport { responsiveWidth } from '../../components/utils/responsive-style'\nimport {\n CheckboxControlType,\n ColorControlType,\n ComboboxControlType,\n ImageControlType,\n LinkControlType,\n ListControlType,\n NumberControlType,\n SelectControlType,\n ShapeControlType,\n SlotControl,\n SlotControlType,\n StyleControlType,\n TextAreaControlType,\n TextInputControlType,\n} from '../../controls'\nimport { useFormattedStyle } from './controls/style'\nimport { ControlValue } from './controls/control'\nimport { RenderHook } from './components'\nimport { useSlot } from './controls/slot'\n\nexport type ResponsiveColor = ResponsiveValue<ColorValue>\n\nfunction useDeviceMode(): Device {\n return 'desktop'\n}\n\nfunction useWidth(\n value: WidthValue | undefined,\n descriptor: WidthDescriptor,\n props: Record<string, unknown>,\n): string | WidthValue | undefined {\n const deviceMode = useDeviceMode()\n const options = useMemo(\n () =>\n typeof descriptor.options === 'function'\n ? descriptor.options(props, deviceMode)\n : descriptor.options,\n [props, deviceMode],\n )\n\n return useMemo(\n () =>\n options.format === WidthControlValueFormats.ClassName\n ? css(responsiveWidth(value, options.defaultValue))\n : value,\n [value, options.defaultValue, options.format],\n )\n}\n\nexport type ResolveWidthControlValue<T extends Descriptor> = T extends WidthDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? WidthValue | undefined\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ClassName\n ? string\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ResponsiveValue\n ? WidthValue | undefined\n : never\n : never\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): JSX.Element\n}\n\nexport function PropsValue({ element, children }: PropsValueProps): JSX.Element {\n const store = useStore()\n const propControllerDescriptorsRef = useRef(\n ReactPage.getComponentPropControllerDescriptors(store.getState(), element.type) ?? {},\n )\n const props = element.props as Record<string, any>\n const documentKey = useDocumentKey()\n\n const propControllers = useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, documentKey, element.key)\n })\n\n return Object.entries(propControllerDescriptorsRef.current).reduceRight(\n (renderFn, [propName, descriptor]) =>\n propsValue => {\n switch (descriptor.type) {\n case CheckboxControlType:\n case NumberControlType:\n case TextInputControlType:\n case TextAreaControlType:\n case SelectControlType:\n case ColorControlType:\n case ImageControlType:\n case ComboboxControlType:\n case ShapeControlType:\n case ListControlType:\n case LinkControlType:\n return (\n <ControlValue definition={descriptor} data={props[propName]}>\n {value => renderFn({ ...propsValue, [propName]: value })}\n </ControlValue>\n )\n\n case StyleControlType:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFormattedStyle}\n parameters={[props[propName], descriptor]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case SlotControlType: {\n const control = (propControllers?.[propName] ?? null) as SlotControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useSlot}\n parameters={[props[propName], control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case Props.Types.Width:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useWidth}\n parameters={[props[propName], descriptor, props]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Props.Types.ResponsiveColor:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveColor}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n default:\n return renderFn({ ...propsValue, [propName]: props[propName] })\n }\n },\n children,\n )({})\n}\n","import { ForwardedRef } from 'react'\nimport { ReactInstance } from 'react'\nimport { forwardRef } from 'react'\nimport { Component, ReactNode } from 'react'\nimport { findDOMNode } from 'react-dom'\n\ntype FindDomNodeClassComponentProps = {\n innerRef?: ForwardedRef<Element | Text | null>\n children?: ReactNode\n}\n\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberReconciler.new.js#L179-L244\n */\nfunction suppressWarningAndFindDomNode(\n instance: ReactInstance | null | undefined,\n): Element | Text | null {\n const error = console.error\n\n console.error = (...args) => {\n if (typeof args[0] === 'string' && args[0].includes('%s is deprecated in StrictMode.')) return\n\n return error.apply(console, args)\n }\n\n const foundDomNode = findDOMNode(instance)\n\n console.error = error\n\n return foundDomNode\n}\n\nclass FindDomNodeClassComponent extends Component<FindDomNodeClassComponentProps> {\n componentDidMount() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n componentDidUpdate() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n setInnerRef(current: Element | Text | null) {\n const { innerRef } = this.props\n\n if (innerRef == null) return\n\n if (typeof innerRef === 'function') innerRef(current)\n else innerRef.current = current\n }\n\n render() {\n return <>{this.props.children}</>\n }\n}\n\ntype FindDomNodeProps = {\n children?: ReactNode\n}\n\nexport const FindDomNode = forwardRef<Element | Text | null, FindDomNodeProps>(function FindDomNode(\n props,\n ref,\n) {\n return <FindDomNodeClassComponent {...props} innerRef={ref} />\n})\n","import {\n ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nimport * as ReactPage from '../../state/react-page'\nimport type * as ReactBuilderPreview from '../../state/react-builder-preview'\nimport {\n mountComponentEffect,\n registerComponentEffect,\n registerComponentHandleEffect,\n registerDocumentEffect,\n registerReactComponentEffect,\n} from '../../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../../prop-controllers'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport { registerBuiltinComponents } from '../../components/builtin/register'\nimport { MakeswiftProvider, MakeswiftClient, useQuery } from '../../api/react'\nimport { FallbackComponent } from '../../components/shared/FallbackComponent'\nimport { PropsValue } from './controls'\nimport { FindDomNode } from './find-dom-node'\nimport { ELEMENT_REFERENCE_GLOBAL_ELEMENT } from '../../components/utils/queries'\n\nexport const storeContextDefaultValue = ReactPage.configureStore()\n\nexport interface ReactRuntime {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]: PropControllerDescriptorValueType<P[K]> }>,\n >(\n component: C,\n meta: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void\n}\n\nfunction createReactRuntime(store: ReactPage.Store): ReactRuntime {\n return {\n registerComponent(component, { type, label, icon = 'Cube40', hidden = false, props }) {\n const unregisterComponent = store.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = store.dispatch(\n registerReactComponentEffect(type, component as unknown as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n }\n}\n\nexport const ReactRuntime = createReactRuntime(storeContextDefaultValue)\n\nregisterBuiltinComponents(ReactRuntime)\n\nconst Context = createContext(storeContextDefaultValue)\n\ntype RuntimeProviderProps = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n client,\n children,\n rootElements,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() => {\n const store = ReactPage.configureStore({\n preloadedState: storeContextDefaultValue.getState(),\n rootElements,\n })\n\n return store\n })\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (isInBuilder) setReactBuilderPreviewStore()\n\n async function setReactBuilderPreviewStore(): Promise<void> {\n const ReactBuilderPreview = await import('../../state/react-builder-preview')\n\n setStore(store =>\n ReactBuilderPreview.configureStore({\n preloadedState: store.getState(),\n client: client.apolloClient,\n }),\n )\n }\n }, [client])\n\n return (\n <Context.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </Context.Provider>\n )\n}\n\nconst PageContext = createContext<string | null>(null)\n\nfunction usePageIdOrNull(): string | null {\n return useContext(PageContext)\n}\n\nexport function usePageId(): string {\n const pageIdOrNull = usePageIdOrNull()\n\n if (pageIdOrNull == null) throw new Error('`usePageId` must be used with `<PageProvider>`')\n\n return pageIdOrNull\n}\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<typeof PageContext['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\n}\n\nconst DocumentContext = createContext<string | null>(null)\n\nexport function useDocumentKey(): string | null {\n return useContext(DocumentContext)\n}\n\ntype State = ReactPage.State | ReactBuilderPreview.State\n\nexport function useStore(): ReactPage.Store {\n return useContext(Context)\n}\n\nexport function useSelector<R>(selector: (state: State) => R): R {\n const store = useStore()\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n\nfunction useComponent(type: string): ReactPage.ComponentType | null {\n return useSelector(state => ReactPage.getReactComponent(state, type))\n}\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null\n ? null\n : ReactPage.getElementId(state, documentKey, elementKey),\n )\n}\n\nfunction useDocument(documentKey: string): ReactPage.Document | null {\n return useSelector(state => ReactPage.getDocument(state, documentKey))\n}\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => ReactPage.getIsInBuilder(state))\n}\n\ntype Dispatch = ReactPage.Dispatch & ReactBuilderPreview.Dispatch\n\nfunction useDispatch(): Dispatch {\n const store = useContext(Context)\n\n return store.dispatch\n}\n\nconst originalError = console.error\nlet patched = false\n\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberBeginWork.new.js#L1814-L1890\n */\nfunction suppressRefWarning(ownerName: string): void {\n if (patched === false) {\n console.error = (...args) => {\n if (\n typeof args[0] === 'string' &&\n args[0].includes('Function components cannot be given refs.') &&\n args[0].includes(`Check the render method of \\`${ownerName}\\`.`)\n ) {\n return\n }\n\n return originalError(...args)\n }\n\n patched = true\n }\n}\n\ntype ElementDataProps = {\n elementData: ReactPage.ElementData\n}\n\nconst ElementData = memo(\n forwardRef(function ElementData(\n { elementData }: ElementDataProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const Component = useComponent(elementData.type)\n const [handle, setHandle] = useState<unknown | null>(null)\n const [foundDomNode, setFoundDomNode] = useState<Element | Text | null>(null)\n\n useImperativeHandle(ref, () => handle ?? foundDomNode, [handle, foundDomNode])\n\n suppressRefWarning(`\\`ForwardRef(${ElementData.name})\\``)\n\n if (Component == null) {\n return <FallbackComponent ref={setHandle} text=\"Component not found\" />\n }\n\n return (\n <FindDomNode ref={setFoundDomNode}>\n <PropsValue element={elementData}>\n {props => <Component {...props} key={elementData.key} ref={setHandle} />}\n </PropsValue>\n </FindDomNode>\n )\n }),\n)\n\nconst DisableRegisterElement = createContext(false)\n\ntype ElementRefereceProps = {\n elementReference: ReactPage.ElementReference\n}\n\nconst ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const { error, data } = useQuery(ELEMENT_REFERENCE_GLOBAL_ELEMENT, {\n variables: { id: elementReference.value },\n })\n const globalElementData = data?.globalElement?.data as ReactPage.ElementData | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n\n if (error != null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Something went wrong!\" />\n }\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n return elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <DisableRegisterElement.Provider value={true}>\n <ElementData elementData={globalElementData} ref={ref} />\n </DisableRegisterElement.Provider>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(\n forwardRef(function Element({ element }: ElementProps, ref: Ref<unknown>): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n const isRegisterElementDisabled = useContext(DisableRegisterElement)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, handle))\n }, [dispatch, documentKey, elementKey, handle, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n return ReactPage.isElementReference(element) ? (\n <ElementReference key={elementKey} ref={setHandle} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={setHandle} elementData={element} />\n )\n }),\n)\n\ntype DocumentProps = {\n document: ReactPage.Document\n}\n\nconst Document = memo(\n forwardRef(function Document({ document }: DocumentProps, ref: Ref<unknown>): JSX.Element {\n return (\n <DocumentContext.Provider value={document.key}>\n <Element ref={ref} element={document.rootElement} />\n </DocumentContext.Provider>\n )\n }),\n)\n\ntype DocumentReferenceProps = {\n documentReference: ReactPage.DocumentReference\n}\n\nexport const DocumentReference = memo(\n forwardRef(function DocumentReference(\n { documentReference }: DocumentReferenceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const document = useDocument(documentReference.key)\n\n if (document == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Document not found\" />\n }\n\n return <Document ref={ref} document={document} />\n }),\n)\n"],"names":["SCRIPT_TAG","code","cleanup","useEffect","container","document","createElement","innerHTML","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","scripts","nextNode","currentNode","HTMLScriptElement","push","forEach","inlineScript","executableScript","textContent","Array","from","attributes","name","value","setAttribute","parentNode","replaceChild","nodes","childNodes","body","append","node","removeChild","cleanUp","Function","typePolicies","Query","fields","swatches","existingData","args","toReference","ids","map","id","__typename","file","files","typographies","pagePathnamesById","globalElement","table","page","site","uri","cacheData","cache","InMemoryCache","restore","ApolloClient","link","BatchHttpLink","batchMax","MakeswiftClient","constructor","apolloClient","createApolloClient","prefetch","element","introspectionData","introspect","storeContextDefaultValue","res","query","INTROSPECTION_QUERY","variables","data","pagePathnameSlice","Buffer","toString","writeFragment","fragment","PagePathnameSliceFragmentDoc","KeyUtils","resetGenerator","extract","updateCacheData","Context","createContext","undefined","options","client","useContext","useApolloQuery","mutation","useApolloMutation","children","_jsx","hasOwnProperty","SnippetLocation","Body","Head","defaultFavicon","mimetype","publicUrl","VALID_TAG_REGEX","VALID_HEAD_ELEMENT_TYPES","snippet","Children","parse","test","type","key","props","filterUsedSnippetProperties","builderEnabled","liveEnabled","location","PAGE_SNIPPETS_QUERY","gql","SITE_FONTS_QUERY","isInBuilder","useIsInBuilder","snippets","setSnippets","useState","useQuery","skip","fetchPolicy","onCompleted","oldSnippets","newSnippets","deepEqual","siteData","favicon","meta","title","description","keywords","socialImage","canonicalUrl","isIndexingBlocked","seo","fontFamilyParamValue","useMemo","fonts","family","variants","replace","join","googleFonts","edges","filter","edge","activeVariants","activeVariantSpecifiers","variant","some","activeVariant","specifier","filteredSnippets","headSnippets","previousHeadSnippets","useRef","headSnippetsToCleanUp","current","previousSnippet","snippetToCleanUp","_Fragment","_jsxs","snippetToElement","child","includes","createDocumentReference","FORWARDED_NEXT_DYNAMIC_REF_KEY","ref","obj","__esModule","default","nextDynamicThunk","Dynamic","loaderComponent","then","moduleOrComponent","resolve","loadForwardedRef","forwardRef","saveForwardedRef","Props.ElementID","Props.Backgrounds","Props.Width","Props.ResponsiveIconRadioGroup","Props.Margin","Props.Padding","Props.Border","Props.BorderRadius","Props.Shadows","Props.GapY","Props.GapX","Props.ResponsiveSelect","Props.ResponsiveNumber","Props.Checkbox","Props.Grid","Props.TextInput","Props.Link","Props.ResponsiveColor","Props.TextStyle","Props.Images","Props.Number","Props.Date","Props.Font","Props.ResponsiveLength","Props.TextArea","Props.Table","Props.TableFormFields","Props.Image","Props.ResponsiveOpacity","Props.NavigationLinks","Props.SocialLinks","Props.RichText","Props.Video","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent","ErrorDiv","styled","FallbackComponent","text","Warning20","joinResponsiveValues","unitless","hashString","Color","definition","reduce","renderFn","item","listControlValue","config","Object","entries","reduceRight","controlDefinition","shapeControlValue","CheckboxControlType","useCheckboxControlValue","NumberControlType","useNumber","TextInputControlType","useTextInputValue","TextAreaControlType","useTextAreaValue","SelectControlType","useSelectControlValue","ColorControlType","useColorValue","ImageControlType","useImageControlValue","LinkControlType","useLinkControlValue","ComboboxControlType","useComboboxControlValue","ShapeControlType","ListControlType","control","elements","length","i","columns","as","className","restOfProps","As","setElement","baseClassName","useStyle","display","flexWrap","width","pollBoxModel","onBoxModelChange","boxModel","changeContainerBoxModel","cx","Slot","Placeholder","SlotPlaceholder","Item","SlotItem","grid","index","responsiveStyle","count","spans","rowIndex","columnIndex","getIndexes","span","flexBasis","toFixed","minWidth","changeItemBoxModel","background","height","overflow","padding","currentBoxModel","handleAnimationFrameRequest","measuredBoxModel","getBox","animationFrameHandle","requestAnimationFrame","cancelAnimationFrame","descriptor","deviceMode","useDeviceMode","format","WidthControlValueFormats","ClassName","css","responsiveWidth","defaultValue","store","useStore","propControllerDescriptorsRef","ReactPage","getState","documentKey","useDocumentKey","propControllers","useSelector","state","propName","propsValue","StyleControlType","useFormattedStyle","SlotControlType","useSlot","Props","Width","useWidth","ResponsiveColor","useResponsiveColor","instance","error","console","apply","foundDomNode","findDOMNode","FindDomNodeClassComponent","Component","componentDidMount","setInnerRef","suppressWarningAndFindDomNode","componentDidUpdate","innerRef","render","FindDomNode","registerComponent","component","label","icon","hidden","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","registerBuiltinComponents","rootElements","setStore","preloadedState","unregisterDocuments","rootElement","registerDocumentEffect","unregisterDocument","window","parent","ReactBuilderPreview","configureStore","PageContext","pageIdOrNull","usePageIdOrNull","Error","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","elementKey","originalError","patched","ownerName","ElementData","memo","elementData","useComponent","handle","setHandle","setFoundDomNode","useImperativeHandle","_createElement","DisableRegisterElement","ElementReference","elementReference","ELEMENT_REFERENCE_GLOBAL_ELEMENT","globalElementData","elementReferenceDocument","useDocument","Element","useDispatch","isRegisterElementDisabled","registerComponentHandleEffect","mountComponentEffect","Document","DocumentReference","documentReference"],"mappings":"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"}