@makeswift/runtime 0.0.0-e7e30fa → 0.0.0-f5b044f

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 (362) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/builder.js +1 -0
  4. package/components.js +1 -0
  5. package/dist/Page.cjs.js +215 -0
  6. package/dist/Page.cjs.js.map +1 -0
  7. package/dist/Page.es.js +209 -0
  8. package/dist/Page.es.js.map +1 -0
  9. package/dist/actions.cjs.js +130 -17
  10. package/dist/actions.cjs.js.map +1 -1
  11. package/dist/actions.es.js +114 -16
  12. package/dist/actions.es.js.map +1 -1
  13. package/dist/api.cjs.js +5 -0
  14. package/dist/api.cjs.js.map +1 -0
  15. package/dist/api.es.js +2 -0
  16. package/dist/api.es.js.map +1 -0
  17. package/dist/box-model.cjs.js +2 -2
  18. package/dist/box-model.es.js +1 -0
  19. package/dist/box-model.es.js.map +1 -1
  20. package/dist/box-models.cjs.js +28 -156
  21. package/dist/box-models.cjs.js.map +1 -1
  22. package/dist/box-models.es.js +31 -159
  23. package/dist/box-models.es.js.map +1 -1
  24. package/dist/builder.cjs.js +10 -0
  25. package/dist/builder.cjs.js.map +1 -0
  26. package/dist/builder.es.js +3 -0
  27. package/dist/builder.es.js.map +1 -0
  28. package/dist/components.cjs.js +73 -6901
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +33 -6866
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/constants.cjs.js +241 -0
  33. package/dist/constants.cjs.js.map +1 -0
  34. package/dist/constants.es.js +240 -0
  35. package/dist/constants.es.js.map +1 -0
  36. package/dist/control-serialization.cjs.js +223 -0
  37. package/dist/control-serialization.cjs.js.map +1 -0
  38. package/dist/control-serialization.es.js +218 -0
  39. package/dist/control-serialization.es.js.map +1 -0
  40. package/dist/descriptors.cjs.js +230 -0
  41. package/dist/descriptors.cjs.js.map +1 -0
  42. package/dist/descriptors.es.js +194 -0
  43. package/dist/descriptors.es.js.map +1 -0
  44. package/dist/index.cjs.js +8037 -0
  45. package/dist/index.cjs.js.map +1 -0
  46. package/dist/index.es.js +7956 -0
  47. package/dist/index.es.js.map +1 -0
  48. package/dist/instances.cjs.js +106 -0
  49. package/dist/instances.cjs.js.map +1 -0
  50. package/dist/instances.es.js +103 -0
  51. package/dist/instances.es.js.map +1 -0
  52. package/dist/main.cjs.js +14 -2
  53. package/dist/main.cjs.js.map +1 -1
  54. package/dist/main.es.js +5 -1
  55. package/dist/main.es.js.map +1 -1
  56. package/dist/next.cjs.js +210 -0
  57. package/dist/next.cjs.js.map +1 -0
  58. package/dist/next.es.js +199 -0
  59. package/dist/next.es.js.map +1 -0
  60. package/dist/prop-controllers.cjs.js +6 -175
  61. package/dist/prop-controllers.cjs.js.map +1 -1
  62. package/dist/prop-controllers.es.js +2 -173
  63. package/dist/prop-controllers.es.js.map +1 -1
  64. package/dist/react-builder-preview.cjs.js +274 -4130
  65. package/dist/react-builder-preview.cjs.js.map +1 -1
  66. package/dist/react-builder-preview.es.js +267 -4127
  67. package/dist/react-builder-preview.es.js.map +1 -1
  68. package/dist/react-page.cjs.js +263 -0
  69. package/dist/react-page.cjs.js.map +1 -0
  70. package/dist/react-page.es.js +241 -0
  71. package/dist/react-page.es.js.map +1 -0
  72. package/dist/react.cjs.js +39 -7
  73. package/dist/react.cjs.js.map +1 -1
  74. package/dist/react.cjs2.js +7847 -690
  75. package/dist/react.cjs2.js.map +1 -1
  76. package/dist/react.es.js +31 -1
  77. package/dist/react.es.js.map +1 -1
  78. package/dist/react.es2.js +7767 -666
  79. package/dist/react.es2.js.map +1 -1
  80. package/dist/types/api/constants.d.ts +4 -0
  81. package/dist/types/api/constants.d.ts.map +1 -0
  82. package/dist/types/api/generated/graphql.d.ts +120 -0
  83. package/dist/types/api/generated/graphql.d.ts.map +1 -0
  84. package/dist/types/api/index.d.ts +3 -0
  85. package/dist/types/api/index.d.ts.map +1 -0
  86. package/dist/types/api/react.d.ts +28 -0
  87. package/dist/types/api/react.d.ts.map +1 -0
  88. package/dist/types/api/types.d.ts +4 -0
  89. package/dist/types/api/types.d.ts.map +1 -0
  90. package/dist/types/builder/index.d.ts +2 -0
  91. package/dist/types/builder/index.d.ts.map +1 -0
  92. package/dist/types/builder/serialization/control-serialization.d.ts +144 -0
  93. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
  94. package/dist/types/builder/serialization/function-serialization.d.ts +12 -0
  95. package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
  96. package/dist/types/builder/serialization/index.d.ts +3 -0
  97. package/dist/types/builder/serialization/index.d.ts.map +1 -0
  98. package/dist/types/components/{Box → builtin/Box}/Box.d.ts +11 -5
  99. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
  100. package/dist/types/components/{Box → builtin/Box}/animations.d.ts +2 -2
  101. package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
  102. package/dist/types/components/{Box → builtin/Box}/components/Placeholder/index.d.ts +0 -0
  103. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
  104. package/dist/types/components/{Box → builtin/Box}/index.d.ts +1 -1
  105. package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
  106. package/dist/types/components/builtin/Button/Button.d.ts +118 -0
  107. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
  108. package/dist/types/components/builtin/Button/index.d.ts +2 -0
  109. package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
  110. package/dist/types/components/builtin/Carousel/Carousel.d.ts +29 -0
  111. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
  112. package/dist/types/components/builtin/Carousel/index.d.ts +2 -0
  113. package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
  114. package/dist/types/components/builtin/Countdown/Countdown.d.ts +28 -0
  115. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
  116. package/dist/types/components/builtin/Countdown/index.d.ts +2 -0
  117. package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
  118. package/dist/types/components/builtin/Divider/Divider.d.ts +18 -0
  119. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
  120. package/dist/types/components/builtin/Divider/index.d.ts +2 -0
  121. package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
  122. package/dist/types/components/builtin/Embed/Embed.d.ts +14 -0
  123. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
  124. package/dist/types/components/builtin/Embed/index.d.ts +2 -0
  125. package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
  126. package/dist/types/components/builtin/Form/Form.d.ts +42 -0
  127. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
  128. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
  129. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  130. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
  131. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  132. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
  133. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  134. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
  135. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  136. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
  137. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  138. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
  139. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  140. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
  141. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  142. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
  143. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  144. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
  145. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
  146. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
  147. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  148. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
  149. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  150. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
  151. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  152. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
  153. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  154. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
  155. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  156. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
  157. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  158. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
  159. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  160. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
  161. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
  162. package/dist/types/components/builtin/Form/components/Field/index.d.ts +19 -0
  163. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  164. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
  165. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  166. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +9 -0
  167. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  168. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +3 -0
  169. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  170. package/dist/types/components/builtin/Form/context/FormContext.d.ts +33 -0
  171. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
  172. package/dist/types/components/builtin/Form/index.d.ts +2 -0
  173. package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
  174. package/dist/types/components/builtin/Image/Image.d.ts +29 -0
  175. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
  176. package/dist/types/components/builtin/Image/index.d.ts +2 -0
  177. package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
  178. package/dist/types/components/builtin/Navigation/Navigation.d.ts +27 -0
  179. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
  180. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
  181. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
  182. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
  183. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
  184. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
  185. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
  186. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +14 -0
  187. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
  188. package/dist/types/components/builtin/Navigation/index.d.ts +2 -0
  189. package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
  190. package/dist/types/components/builtin/Root/Root.d.ts +14 -0
  191. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
  192. package/dist/types/components/{Root → builtin/Root}/components/Placeholder/index.d.ts +0 -0
  193. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
  194. package/dist/types/components/builtin/Root/index.d.ts +2 -0
  195. package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
  196. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +22 -0
  197. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
  198. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
  199. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
  200. package/dist/types/components/builtin/SocialLinks/index.d.ts +2 -0
  201. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
  202. package/dist/types/components/builtin/SocialLinks/options.d.ts +113 -0
  203. package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
  204. package/dist/types/components/builtin/Text/Text.d.ts +19 -0
  205. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  206. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  207. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  208. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  209. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  210. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  211. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  212. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  213. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  214. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  215. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  216. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  217. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  218. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  219. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  220. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  221. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  222. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  223. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  224. package/dist/types/components/builtin/Video/Video.d.ts +15 -0
  225. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -0
  226. package/dist/types/components/builtin/Video/index.d.ts +2 -0
  227. package/dist/types/components/builtin/Video/index.d.ts.map +1 -0
  228. package/dist/types/components/builtin/index.d.ts +16 -0
  229. package/dist/types/components/builtin/index.d.ts.map +1 -0
  230. package/dist/types/components/hooks/index.d.ts +7 -0
  231. package/dist/types/components/hooks/index.d.ts.map +1 -1
  232. package/dist/types/components/hooks/useBackgrounds.d.ts +59 -0
  233. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
  234. package/dist/types/components/hooks/useBorder.d.ts +19 -0
  235. package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
  236. package/dist/types/components/hooks/useBoxShadow.d.ts +19 -0
  237. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
  238. package/dist/types/components/hooks/useColor.d.ts +7 -0
  239. package/dist/types/components/hooks/useColor.d.ts.map +1 -0
  240. package/dist/types/components/hooks/useFile.d.ts +13 -0
  241. package/dist/types/components/hooks/useFile.d.ts.map +1 -0
  242. package/dist/types/components/hooks/usePage.d.ts +7 -0
  243. package/dist/types/components/hooks/usePage.d.ts.map +1 -0
  244. package/dist/types/components/hooks/useTable.d.ts +66 -0
  245. package/dist/types/components/hooks/useTable.d.ts.map +1 -0
  246. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts +8 -0
  247. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  248. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  249. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  250. package/dist/types/components/index.d.ts +4 -3
  251. package/dist/types/components/index.d.ts.map +1 -1
  252. package/dist/types/components/page/BodySnippet.d.ts +7 -0
  253. package/dist/types/components/page/BodySnippet.d.ts.map +1 -0
  254. package/dist/types/components/page/Page.d.ts +43 -0
  255. package/dist/types/components/page/Page.d.ts.map +1 -0
  256. package/dist/types/components/page/index.d.ts +2 -0
  257. package/dist/types/components/page/index.d.ts.map +1 -0
  258. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
  259. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  260. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
  261. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  262. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
  263. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  264. package/dist/types/components/shared/BackgroundsContainer/index.d.ts +11 -0
  265. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
  266. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +7 -0
  267. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  268. package/dist/types/components/shared/FallbackComponent/index.d.ts +2 -0
  269. package/dist/types/components/shared/FallbackComponent/index.d.ts.map +1 -0
  270. package/dist/types/components/shared/GutterContainer/index.d.ts +8 -0
  271. package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
  272. package/dist/types/components/shared/Link/index.d.ts +9 -0
  273. package/dist/types/components/shared/Link/index.d.ts.map +1 -0
  274. package/dist/types/components/utils/colorToString.d.ts +3 -0
  275. package/dist/types/components/utils/colorToString.d.ts.map +1 -0
  276. package/dist/types/components/utils/cssMediaRules.d.ts +23 -1
  277. package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -1
  278. package/dist/types/components/utils/devices.d.ts +1 -0
  279. package/dist/types/components/utils/devices.d.ts.map +1 -1
  280. package/dist/types/components/utils/isNonNullable.d.ts +2 -0
  281. package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
  282. package/dist/types/components/utils/placeholders.d.ts +17 -0
  283. package/dist/types/components/utils/placeholders.d.ts.map +1 -0
  284. package/dist/types/components/utils/queries.d.ts +8 -0
  285. package/dist/types/components/utils/queries.d.ts.map +1 -0
  286. package/dist/types/components/utils/responsive-style.d.ts +9 -0
  287. package/dist/types/components/utils/responsive-style.d.ts.map +1 -0
  288. package/dist/types/components/utils/types.d.ts +10 -0
  289. package/dist/types/components/utils/types.d.ts.map +1 -0
  290. package/dist/types/controls/select.d.ts +19 -0
  291. package/dist/types/controls/select.d.ts.map +1 -0
  292. package/dist/types/controls.d.ts +4 -0
  293. package/dist/types/controls.d.ts.map +1 -0
  294. package/dist/types/index.d.ts +3 -1
  295. package/dist/types/index.d.ts.map +1 -1
  296. package/dist/types/next.d.ts +24 -0
  297. package/dist/types/next.d.ts.map +1 -0
  298. package/dist/types/prop-controllers/descriptors.d.ts +86 -18
  299. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  300. package/dist/types/prop-controllers/index.d.ts +3 -1
  301. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  302. package/dist/types/prop-controllers/instances/slot.d.ts +2 -0
  303. package/dist/types/prop-controllers/instances/slot.d.ts.map +1 -0
  304. package/dist/types/prop-controllers/instances.d.ts +101 -0
  305. package/dist/types/prop-controllers/instances.d.ts.map +1 -0
  306. package/dist/types/prop-controllers/introspection.d.ts +5 -0
  307. package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
  308. package/dist/types/react.d.ts +1 -1
  309. package/dist/types/react.d.ts.map +1 -1
  310. package/dist/types/runtimes/index.d.ts +43 -0
  311. package/dist/types/runtimes/index.d.ts.map +1 -0
  312. package/dist/types/runtimes/react/controls.d.ts +10 -0
  313. package/dist/types/runtimes/react/controls.d.ts.map +1 -0
  314. package/dist/types/runtimes/react/index.d.ts +45 -0
  315. package/dist/types/runtimes/react/index.d.ts.map +1 -0
  316. package/dist/types/runtimes/react/react.d.ts +43 -0
  317. package/dist/types/runtimes/react/react.d.ts.map +1 -0
  318. package/dist/types/runtimes/react.d.ts +28 -13
  319. package/dist/types/runtimes/react.d.ts.map +1 -1
  320. package/dist/types/state/actions.d.ts +161 -13
  321. package/dist/types/state/actions.d.ts.map +1 -1
  322. package/dist/types/state/modules/box-models.d.ts +5 -5
  323. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  324. package/dist/types/state/modules/prop-controller-handles.d.ts +16 -0
  325. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
  326. package/dist/types/state/modules/prop-controllers.d.ts +1 -0
  327. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  328. package/dist/types/state/modules/read-only-documents.d.ts +8 -4
  329. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  330. package/dist/types/state/modules/read-write-documents.d.ts +1 -1
  331. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  332. package/dist/types/state/react-builder-preview.d.ts +16 -11
  333. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  334. package/dist/types/state/react-page.d.ts +9 -3
  335. package/dist/types/state/react-page.d.ts.map +1 -1
  336. package/dist/types/utils/clamp.d.ts +3 -0
  337. package/dist/types/utils/clamp.d.ts.map +1 -0
  338. package/dist/types/utils/coalesce.d.ts +3 -0
  339. package/dist/types/utils/coalesce.d.ts.map +1 -0
  340. package/dist/types/utils/constants.d.ts +6 -0
  341. package/dist/types/utils/constants.d.ts.map +1 -0
  342. package/dist/types/utils/deepEqual.d.ts.map +1 -1
  343. package/dist/types/utils/intersection.d.ts +4 -0
  344. package/dist/types/utils/intersection.d.ts.map +1 -0
  345. package/dist/types/utils/keys.d.ts +5 -0
  346. package/dist/types/utils/keys.d.ts.map +1 -0
  347. package/dist/types/utils/shallowEqual.d.ts.map +1 -1
  348. package/dist/types/utils/shallowMerge.d.ts +2 -0
  349. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  350. package/next.js +1 -0
  351. package/package.json +75 -15
  352. package/prop-controllers.js +1 -0
  353. package/react.js +1 -0
  354. package/dist/types/components/Box/Box.d.ts.map +0 -1
  355. package/dist/types/components/Box/animations.d.ts.map +0 -1
  356. package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
  357. package/dist/types/components/Box/index.d.ts.map +0 -1
  358. package/dist/types/components/Root/Root.d.ts +0 -11
  359. package/dist/types/components/Root/Root.d.ts.map +0 -1
  360. package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
  361. package/dist/types/components/Root/index.d.ts +0 -2
  362. package/dist/types/components/Root/index.d.ts.map +0 -1
package/api.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/api.cjs')
package/box-model.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/box-model.cjs')
package/builder.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/builder.cjs')
package/components.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/components.cjs')
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ var React = require("react");
22
+ var parse = require("html-react-parser");
23
+ var Head = require("next/head");
24
+ var index = require("./index.cjs.js");
25
+ var reactPage = require("./react-page.cjs.js");
26
+ var jsxRuntime = require("react/jsx-runtime");
27
+ function _interopDefaultLegacy(e) {
28
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
29
+ }
30
+ var parse__default = /* @__PURE__ */ _interopDefaultLegacy(parse);
31
+ var Head__default = /* @__PURE__ */ _interopDefaultLegacy(Head);
32
+ const SCRIPT_TAG = "script";
33
+ function BodySnippet({
34
+ code,
35
+ cleanup
36
+ }) {
37
+ React.useEffect(() => {
38
+ const container = document.createElement("div");
39
+ container.innerHTML = code;
40
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT);
41
+ const scripts = [];
42
+ while (walker.nextNode()) {
43
+ if (walker.currentNode instanceof HTMLScriptElement)
44
+ scripts.push(walker.currentNode);
45
+ }
46
+ scripts.forEach((inlineScript) => {
47
+ var _a;
48
+ const executableScript = document.createElement(SCRIPT_TAG);
49
+ executableScript.textContent = inlineScript.textContent;
50
+ Array.from(inlineScript.attributes).forEach(({
51
+ name,
52
+ value
53
+ }) => {
54
+ executableScript.setAttribute(name, value);
55
+ });
56
+ (_a = inlineScript.parentNode) == null ? void 0 : _a.replaceChild(executableScript, inlineScript);
57
+ });
58
+ const nodes = Array.from(container.childNodes);
59
+ document.body.append(...nodes);
60
+ return () => {
61
+ nodes.forEach((node) => {
62
+ var _a;
63
+ (_a = node.parentNode) == null ? void 0 : _a.removeChild(node);
64
+ });
65
+ if (cleanup == null)
66
+ return;
67
+ const cleanUp = new Function(cleanup);
68
+ try {
69
+ cleanUp();
70
+ } catch {
71
+ }
72
+ };
73
+ }, [code, cleanup]);
74
+ return null;
75
+ }
76
+ const defaultFavicon = {
77
+ mimetype: "image/png",
78
+ publicUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC"
79
+ };
80
+ const VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_.\-\d]*$/;
81
+ const VALID_HEAD_ELEMENT_TYPES = ["title", "base", "link", "style", "meta", "script", "noscript", "template"];
82
+ function snippetToElement(snippet) {
83
+ return React.Children.map(parse__default["default"](snippet.code), (element) => {
84
+ if (typeof element === "string")
85
+ return element;
86
+ if (!VALID_TAG_REGEX.test(element.type))
87
+ return null;
88
+ const key = element.key ? `${snippet.id}:${element.key}` : snippet.id;
89
+ return React.createElement(element.type, __spreadProps(__spreadValues({}, element.props), {
90
+ key
91
+ }));
92
+ });
93
+ }
94
+ function Page({
95
+ page,
96
+ preview = false
97
+ }) {
98
+ var _a;
99
+ console.log({
100
+ page
101
+ });
102
+ const favicon = (_a = page.meta.favicon) != null ? _a : defaultFavicon;
103
+ const {
104
+ title,
105
+ description,
106
+ keywords,
107
+ socialImage
108
+ } = page.meta;
109
+ const fontFamilyParamValue = page.fonts.map(({
110
+ family,
111
+ variants
112
+ }) => {
113
+ return `${family.replace(/ /g, "+")}:${variants.join()}`;
114
+ }).join("|");
115
+ const snippets = React.useMemo(() => page.snippets.filter((snippet) => preview ? snippet.builderEnabled : snippet.liveEnabled), [page, preview]);
116
+ const headSnippets = React.useMemo(() => snippets.filter((snippet) => snippet.location === "HEAD"), [snippets]);
117
+ const previousHeadSnippets = React.useRef(null);
118
+ React.useEffect(() => {
119
+ var _a2;
120
+ const headSnippetsToCleanUp = ((_a2 = previousHeadSnippets.current) != null ? _a2 : []).filter((previousSnippet) => previousSnippet.cleanup != null).filter((previousSnippet) => !headSnippets.some((snippet) => previousSnippet.id === snippet.id));
121
+ headSnippetsToCleanUp.forEach((snippetToCleanUp) => {
122
+ if (snippetToCleanUp.cleanup == null)
123
+ return;
124
+ const cleanUp = new Function(snippetToCleanUp.cleanup);
125
+ try {
126
+ cleanUp();
127
+ } catch {
128
+ }
129
+ });
130
+ previousHeadSnippets.current = headSnippets;
131
+ }, [headSnippets]);
132
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
133
+ children: [/* @__PURE__ */ jsxRuntime.jsxs(Head__default["default"], {
134
+ children: [/* @__PURE__ */ jsxRuntime.jsx("style", {
135
+ children: `
136
+ html {
137
+ font-family: sans-serif;
138
+ }
139
+ div#__next {
140
+ overflow: hidden;
141
+ }
142
+ `
143
+ }), /* @__PURE__ */ jsxRuntime.jsx("link", {
144
+ rel: "icon",
145
+ type: favicon.mimetype,
146
+ href: favicon.publicUrl
147
+ }), title && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
148
+ children: [/* @__PURE__ */ jsxRuntime.jsx("title", {
149
+ children: title
150
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
151
+ property: "og:title",
152
+ content: title
153
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
154
+ name: "twitter:title",
155
+ content: title
156
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
157
+ itemProp: "name",
158
+ content: title
159
+ })]
160
+ }), description && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
161
+ children: [/* @__PURE__ */ jsxRuntime.jsx("meta", {
162
+ name: "description",
163
+ content: description
164
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
165
+ property: "og:description",
166
+ content: description
167
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
168
+ name: "twitter:description",
169
+ content: description
170
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
171
+ itemProp: "description",
172
+ content: description
173
+ })]
174
+ }), keywords && /* @__PURE__ */ jsxRuntime.jsx("meta", {
175
+ name: "keywords",
176
+ content: keywords
177
+ }), socialImage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
178
+ children: [/* @__PURE__ */ jsxRuntime.jsx("meta", {
179
+ property: "og:image",
180
+ content: socialImage.publicUrl
181
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
182
+ property: "og:image:type",
183
+ content: socialImage.publicUrl
184
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
185
+ name: "twitter:image",
186
+ content: socialImage.publicUrl
187
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
188
+ name: "twitter:card",
189
+ content: socialImage.publicUrl
190
+ }), /* @__PURE__ */ jsxRuntime.jsx("meta", {
191
+ itemProp: "image",
192
+ content: socialImage.publicUrl
193
+ })]
194
+ }), fontFamilyParamValue !== "" && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
195
+ children: /* @__PURE__ */ jsxRuntime.jsx("link", {
196
+ rel: "stylesheet",
197
+ href: `https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`
198
+ })
199
+ }), headSnippets.map(snippetToElement).map((children) => React.Children.map(children, (child) => {
200
+ if (typeof child === "string")
201
+ return child;
202
+ if (VALID_HEAD_ELEMENT_TYPES.includes(child.type))
203
+ return child;
204
+ return null;
205
+ }))]
206
+ }), /* @__PURE__ */ jsxRuntime.jsx(index.DocumentReference, {
207
+ documentReference: reactPage.createDocumentReference(page.id)
208
+ }), snippets.filter((snippet) => snippet.location === "BODY").map((snippet) => /* @__PURE__ */ jsxRuntime.jsx(BodySnippet, {
209
+ code: snippet.code,
210
+ cleanup: snippet.cleanup
211
+ }, snippet.id))]
212
+ });
213
+ }
214
+ exports.Page = Page;
215
+ //# sourceMappingURL=Page.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.cjs.js","sources":["../src/components/page/BodySnippet.tsx","../src/components/page/Page.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 { ReactElement, Children, createElement, useMemo, useEffect, useRef } 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'\n\nenum SnippetLocation {\n Body = 'BODY',\n Head = 'HEAD',\n}\n\ntype Snippet = {\n builderEnabled: boolean\n cleanup?: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nexport type PageData = {\n id: string\n meta: {\n title?: string | null | undefined\n description?: string | null | undefined\n keywords?: string | null | undefined\n socialImage?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n favicon?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n }\n snippets: Snippet[]\n fonts: Array<{\n family: string\n variants: string[]\n }>\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\ntype Props = {\n page: PageData\n preview?: boolean\n}\n\nexport function Page({ page, preview = false }: Props): JSX.Element {\n console.log({ page })\n const favicon = page.meta.favicon ?? defaultFavicon\n const { title, description, keywords, socialImage } = page.meta\n const fontFamilyParamValue = page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n const snippets = useMemo(\n () => page.snippets.filter(snippet => (preview ? snippet.builderEnabled : snippet.liveEnabled)),\n [page, preview],\n )\n const headSnippets = useMemo(\n () => snippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [snippets],\n )\n\n const previousHeadSnippets = useRef<PageData['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 {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.publicUrl} />\n <meta name=\"twitter:image\" content={socialImage.publicUrl} />\n <meta name=\"twitter:card\" content={socialImage.publicUrl} />\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 {snippets\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"],"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","defaultFavicon","mimetype","publicUrl","VALID_TAG_REGEX","VALID_HEAD_ELEMENT_TYPES","snippet","Children","map","parse","element","test","type","key","id","props","page","preview","console","log","favicon","meta","title","description","keywords","socialImage","fontFamilyParamValue","fonts","family","variants","replace","join","snippets","useMemo","filter","builderEnabled","liveEnabled","headSnippets","location","SnippetLocation","previousHeadSnippets","useRef","headSnippetsToCleanUp","current","previousSnippet","some","snippetToCleanUp","_Fragment","_jsxs","Head","_jsx","snippetToElement","children","child","includes","DocumentReference","createDocumentReference"],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { useEffect, useMemo, useRef, Children, createElement } from "react";
21
+ import parse from "html-react-parser";
22
+ import Head from "next/head";
23
+ import { D as DocumentReference } from "./index.es.js";
24
+ import { a as createDocumentReference } from "./react-page.es.js";
25
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
26
+ const SCRIPT_TAG = "script";
27
+ function BodySnippet({
28
+ code,
29
+ cleanup
30
+ }) {
31
+ useEffect(() => {
32
+ const container = document.createElement("div");
33
+ container.innerHTML = code;
34
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT);
35
+ const scripts = [];
36
+ while (walker.nextNode()) {
37
+ if (walker.currentNode instanceof HTMLScriptElement)
38
+ scripts.push(walker.currentNode);
39
+ }
40
+ scripts.forEach((inlineScript) => {
41
+ var _a;
42
+ const executableScript = document.createElement(SCRIPT_TAG);
43
+ executableScript.textContent = inlineScript.textContent;
44
+ Array.from(inlineScript.attributes).forEach(({
45
+ name,
46
+ value
47
+ }) => {
48
+ executableScript.setAttribute(name, value);
49
+ });
50
+ (_a = inlineScript.parentNode) == null ? void 0 : _a.replaceChild(executableScript, inlineScript);
51
+ });
52
+ const nodes = Array.from(container.childNodes);
53
+ document.body.append(...nodes);
54
+ return () => {
55
+ nodes.forEach((node) => {
56
+ var _a;
57
+ (_a = node.parentNode) == null ? void 0 : _a.removeChild(node);
58
+ });
59
+ if (cleanup == null)
60
+ return;
61
+ const cleanUp = new Function(cleanup);
62
+ try {
63
+ cleanUp();
64
+ } catch {
65
+ }
66
+ };
67
+ }, [code, cleanup]);
68
+ return null;
69
+ }
70
+ const defaultFavicon = {
71
+ mimetype: "image/png",
72
+ publicUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC"
73
+ };
74
+ const VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_.\-\d]*$/;
75
+ const VALID_HEAD_ELEMENT_TYPES = ["title", "base", "link", "style", "meta", "script", "noscript", "template"];
76
+ function snippetToElement(snippet) {
77
+ return Children.map(parse(snippet.code), (element) => {
78
+ if (typeof element === "string")
79
+ return element;
80
+ if (!VALID_TAG_REGEX.test(element.type))
81
+ return null;
82
+ const key = element.key ? `${snippet.id}:${element.key}` : snippet.id;
83
+ return createElement(element.type, __spreadProps(__spreadValues({}, element.props), {
84
+ key
85
+ }));
86
+ });
87
+ }
88
+ function Page({
89
+ page,
90
+ preview = false
91
+ }) {
92
+ var _a;
93
+ console.log({
94
+ page
95
+ });
96
+ const favicon = (_a = page.meta.favicon) != null ? _a : defaultFavicon;
97
+ const {
98
+ title,
99
+ description,
100
+ keywords,
101
+ socialImage
102
+ } = page.meta;
103
+ const fontFamilyParamValue = page.fonts.map(({
104
+ family,
105
+ variants
106
+ }) => {
107
+ return `${family.replace(/ /g, "+")}:${variants.join()}`;
108
+ }).join("|");
109
+ const snippets = useMemo(() => page.snippets.filter((snippet) => preview ? snippet.builderEnabled : snippet.liveEnabled), [page, preview]);
110
+ const headSnippets = useMemo(() => snippets.filter((snippet) => snippet.location === "HEAD"), [snippets]);
111
+ const previousHeadSnippets = useRef(null);
112
+ useEffect(() => {
113
+ var _a2;
114
+ const headSnippetsToCleanUp = ((_a2 = previousHeadSnippets.current) != null ? _a2 : []).filter((previousSnippet) => previousSnippet.cleanup != null).filter((previousSnippet) => !headSnippets.some((snippet) => previousSnippet.id === snippet.id));
115
+ headSnippetsToCleanUp.forEach((snippetToCleanUp) => {
116
+ if (snippetToCleanUp.cleanup == null)
117
+ return;
118
+ const cleanUp = new Function(snippetToCleanUp.cleanup);
119
+ try {
120
+ cleanUp();
121
+ } catch {
122
+ }
123
+ });
124
+ previousHeadSnippets.current = headSnippets;
125
+ }, [headSnippets]);
126
+ return /* @__PURE__ */ jsxs(Fragment, {
127
+ children: [/* @__PURE__ */ jsxs(Head, {
128
+ children: [/* @__PURE__ */ jsx("style", {
129
+ children: `
130
+ html {
131
+ font-family: sans-serif;
132
+ }
133
+ div#__next {
134
+ overflow: hidden;
135
+ }
136
+ `
137
+ }), /* @__PURE__ */ jsx("link", {
138
+ rel: "icon",
139
+ type: favicon.mimetype,
140
+ href: favicon.publicUrl
141
+ }), title && /* @__PURE__ */ jsxs(Fragment, {
142
+ children: [/* @__PURE__ */ jsx("title", {
143
+ children: title
144
+ }), /* @__PURE__ */ jsx("meta", {
145
+ property: "og:title",
146
+ content: title
147
+ }), /* @__PURE__ */ jsx("meta", {
148
+ name: "twitter:title",
149
+ content: title
150
+ }), /* @__PURE__ */ jsx("meta", {
151
+ itemProp: "name",
152
+ content: title
153
+ })]
154
+ }), description && /* @__PURE__ */ jsxs(Fragment, {
155
+ children: [/* @__PURE__ */ jsx("meta", {
156
+ name: "description",
157
+ content: description
158
+ }), /* @__PURE__ */ jsx("meta", {
159
+ property: "og:description",
160
+ content: description
161
+ }), /* @__PURE__ */ jsx("meta", {
162
+ name: "twitter:description",
163
+ content: description
164
+ }), /* @__PURE__ */ jsx("meta", {
165
+ itemProp: "description",
166
+ content: description
167
+ })]
168
+ }), keywords && /* @__PURE__ */ jsx("meta", {
169
+ name: "keywords",
170
+ content: keywords
171
+ }), socialImage && /* @__PURE__ */ jsxs(Fragment, {
172
+ children: [/* @__PURE__ */ jsx("meta", {
173
+ property: "og:image",
174
+ content: socialImage.publicUrl
175
+ }), /* @__PURE__ */ jsx("meta", {
176
+ property: "og:image:type",
177
+ content: socialImage.publicUrl
178
+ }), /* @__PURE__ */ jsx("meta", {
179
+ name: "twitter:image",
180
+ content: socialImage.publicUrl
181
+ }), /* @__PURE__ */ jsx("meta", {
182
+ name: "twitter:card",
183
+ content: socialImage.publicUrl
184
+ }), /* @__PURE__ */ jsx("meta", {
185
+ itemProp: "image",
186
+ content: socialImage.publicUrl
187
+ })]
188
+ }), fontFamilyParamValue !== "" && /* @__PURE__ */ jsx(Fragment, {
189
+ children: /* @__PURE__ */ jsx("link", {
190
+ rel: "stylesheet",
191
+ href: `https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`
192
+ })
193
+ }), headSnippets.map(snippetToElement).map((children) => Children.map(children, (child) => {
194
+ if (typeof child === "string")
195
+ return child;
196
+ if (VALID_HEAD_ELEMENT_TYPES.includes(child.type))
197
+ return child;
198
+ return null;
199
+ }))]
200
+ }), /* @__PURE__ */ jsx(DocumentReference, {
201
+ documentReference: createDocumentReference(page.id)
202
+ }), snippets.filter((snippet) => snippet.location === "BODY").map((snippet) => /* @__PURE__ */ jsx(BodySnippet, {
203
+ code: snippet.code,
204
+ cleanup: snippet.cleanup
205
+ }, snippet.id))]
206
+ });
207
+ }
208
+ export { Page as P };
209
+ //# sourceMappingURL=Page.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.es.js","sources":["../src/components/page/BodySnippet.tsx","../src/components/page/Page.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 { ReactElement, Children, createElement, useMemo, useEffect, useRef } 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'\n\nenum SnippetLocation {\n Body = 'BODY',\n Head = 'HEAD',\n}\n\ntype Snippet = {\n builderEnabled: boolean\n cleanup?: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nexport type PageData = {\n id: string\n meta: {\n title?: string | null | undefined\n description?: string | null | undefined\n keywords?: string | null | undefined\n socialImage?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n favicon?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n }\n snippets: Snippet[]\n fonts: Array<{\n family: string\n variants: string[]\n }>\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\ntype Props = {\n page: PageData\n preview?: boolean\n}\n\nexport function Page({ page, preview = false }: Props): JSX.Element {\n console.log({ page })\n const favicon = page.meta.favicon ?? defaultFavicon\n const { title, description, keywords, socialImage } = page.meta\n const fontFamilyParamValue = page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n const snippets = useMemo(\n () => page.snippets.filter(snippet => (preview ? snippet.builderEnabled : snippet.liveEnabled)),\n [page, preview],\n )\n const headSnippets = useMemo(\n () => snippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [snippets],\n )\n\n const previousHeadSnippets = useRef<PageData['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 {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.publicUrl} />\n <meta name=\"twitter:image\" content={socialImage.publicUrl} />\n <meta name=\"twitter:card\" content={socialImage.publicUrl} />\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 {snippets\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"],"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","defaultFavicon","mimetype","publicUrl","VALID_TAG_REGEX","VALID_HEAD_ELEMENT_TYPES","snippet","Children","map","parse","element","test","type","key","id","props","page","preview","console","log","favicon","meta","title","description","keywords","socialImage","fontFamilyParamValue","fonts","family","variants","replace","join","snippets","useMemo","filter","builderEnabled","liveEnabled","headSnippets","location","SnippetLocation","previousHeadSnippets","useRef","headSnippetsToCleanUp","current","previousSnippet","some","snippetToCleanUp","_Fragment","_jsxs","_jsx","snippetToElement","children","child","includes","createDocumentReference"],"mappings":"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"}