@builder.io/sdk-react 0.1.1 → 0.1.3

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 (576) hide show
  1. package/dist/react/blocks/BaseText.js +7 -0
  2. package/dist/react/blocks/button/button.js +9 -0
  3. package/dist/react/blocks/button/component-info.js +39 -0
  4. package/dist/react/blocks/columns/columns.js +131 -0
  5. package/dist/react/blocks/columns/component-info.js +241 -0
  6. package/dist/react/blocks/custom-code/component-info.js +29 -0
  7. package/dist/react/blocks/custom-code/custom-code.js +49 -0
  8. package/dist/react/blocks/embed/component-info.js +44 -0
  9. package/dist/react/blocks/embed/embed.js +40 -0
  10. package/dist/react/blocks/embed/helpers.js +7 -0
  11. package/dist/react/blocks/form/component-info.js +260 -0
  12. package/dist/react/blocks/form/form.js +201 -0
  13. package/dist/react/blocks/fragment/component-info.js +9 -0
  14. package/dist/react/blocks/fragment/fragment.js +4 -0
  15. package/dist/react/blocks/image/component-info.js +149 -0
  16. package/dist/react/blocks/image/image.helpers.js +46 -0
  17. package/dist/react/blocks/image/image.js +82 -0
  18. package/dist/react/blocks/img/component-info.js +18 -0
  19. package/dist/react/blocks/img/img.js +8 -0
  20. package/dist/react/blocks/input/component-info.js +72 -0
  21. package/dist/react/blocks/input/input.js +5 -0
  22. package/dist/react/blocks/raw-text/component-info.js +14 -0
  23. package/dist/react/blocks/raw-text/raw-text.js +4 -0
  24. package/dist/react/blocks/section/component-info.js +47 -0
  25. package/dist/react/blocks/section/section.js +17 -0
  26. package/dist/react/blocks/select/component-info.js +57 -0
  27. package/dist/react/blocks/select/select.js +5 -0
  28. package/dist/react/blocks/submit-button/component-info.js +26 -0
  29. package/dist/react/blocks/submit-button/submit-button.js +4 -0
  30. package/dist/react/blocks/symbol/component-info.js +41 -0
  31. package/dist/react/blocks/symbol/symbol.js +63 -0
  32. package/dist/react/blocks/text/component-info.js +22 -0
  33. package/dist/react/blocks/text/text.js +4 -0
  34. package/dist/react/blocks/textarea/component-info.js +45 -0
  35. package/dist/react/blocks/textarea/textarea.js +4 -0
  36. package/dist/react/blocks/util.js +6 -0
  37. package/dist/react/blocks/video/component-info.js +104 -0
  38. package/dist/react/blocks/video/video.js +48 -0
  39. package/dist/react/components/render-block/block-styles.js +48 -0
  40. package/dist/react/components/render-block/render-block.helpers.js +104 -0
  41. package/dist/react/components/render-block/render-block.js +122 -0
  42. package/dist/react/components/render-block/render-component-with-context.js +27 -0
  43. package/dist/react/components/render-block/render-component.js +10 -0
  44. package/dist/react/components/render-block/render-repeated-block.js +15 -0
  45. package/dist/react/components/render-block/types.js +1 -0
  46. package/dist/react/components/render-blocks.js +45 -0
  47. package/dist/react/components/render-content/builder-editing.js +4 -0
  48. package/dist/react/components/render-content/components/render-styles.js +59 -0
  49. package/dist/react/components/render-content/index.js +2 -0
  50. package/dist/react/components/render-content/render-content.js +285 -0
  51. package/dist/react/components/render-inlined-styles.js +15 -0
  52. package/dist/react/constants/builder-registered-components.js +52 -0
  53. package/dist/react/constants/device-sizes.js +45 -0
  54. package/dist/react/constants/target.js +2 -0
  55. package/dist/react/context/builder.context.js +10 -0
  56. package/dist/react/context/types.js +1 -0
  57. package/dist/react/functions/camel-to-kebab-case.js +2 -0
  58. package/dist/react/functions/evaluate.js +22 -0
  59. package/dist/react/functions/event-handler-name.js +5 -0
  60. package/dist/react/functions/extract-text-styles.js +20 -0
  61. package/dist/react/functions/fast-clone.js +2 -0
  62. package/dist/react/functions/get-block-actions-handler.js +9 -0
  63. package/dist/react/functions/get-block-actions.js +16 -0
  64. package/dist/react/functions/get-block-component-options.js +26 -0
  65. package/dist/react/functions/get-block-properties.js +48 -0
  66. package/dist/react/functions/get-block-tag.js +4 -0
  67. package/dist/react/functions/get-builder-search-params/fn.test.js +13 -0
  68. package/dist/react/functions/get-builder-search-params/index.js +33 -0
  69. package/dist/react/functions/get-content/ab-testing.js +86 -0
  70. package/dist/react/functions/get-content/generate-content-url.js +41 -0
  71. package/dist/react/functions/get-content/generate-content-url.test.js +31 -0
  72. package/dist/react/functions/get-content/index.js +64 -0
  73. package/dist/react/functions/get-content/types.js +1 -0
  74. package/dist/react/functions/get-fetch.js +12 -0
  75. package/dist/react/functions/get-global-this.js +16 -0
  76. package/dist/react/functions/get-processed-block.js +49 -0
  77. package/dist/react/functions/get-processed-block.test.js +32 -0
  78. package/dist/react/functions/get-react-native-block-styles.js +27 -0
  79. package/dist/react/functions/if-target.js +10 -0
  80. package/dist/react/functions/is-browser.js +4 -0
  81. package/dist/react/functions/is-editing.js +5 -0
  82. package/dist/react/functions/is-iframe.js +5 -0
  83. package/dist/react/functions/is-previewing.js +12 -0
  84. package/dist/react/functions/on-change.js +24 -0
  85. package/dist/react/functions/on-change.test.js +19 -0
  86. package/dist/react/functions/register-component.js +60 -0
  87. package/dist/react/functions/register.js +28 -0
  88. package/dist/react/functions/sanitize-react-native-block-styles.js +68 -0
  89. package/dist/react/functions/set-editor-settings.js +13 -0
  90. package/dist/react/functions/set.js +9 -0
  91. package/dist/react/functions/set.test.js +16 -0
  92. package/dist/react/functions/track/helpers.js +50 -0
  93. package/dist/react/functions/track/index.js +120 -0
  94. package/dist/react/functions/track/interaction.js +48 -0
  95. package/dist/react/functions/track.js +116 -0
  96. package/dist/react/functions/transform-block-properties.js +4 -0
  97. package/dist/react/functions/transform-block.js +4 -0
  98. package/dist/react/helpers/ab-tests.js +6 -0
  99. package/dist/react/helpers/cookie.js +70 -0
  100. package/dist/react/helpers/css.js +28 -0
  101. package/dist/react/helpers/flatten.js +32 -0
  102. package/dist/react/helpers/localStorage.js +27 -0
  103. package/dist/react/helpers/nullable.js +2 -0
  104. package/dist/react/helpers/sessionId.js +46 -0
  105. package/dist/react/helpers/time.js +3 -0
  106. package/dist/react/helpers/url.js +11 -0
  107. package/dist/react/helpers/url.test.js +21 -0
  108. package/dist/react/helpers/uuid.js +10 -0
  109. package/dist/react/helpers/visitorId.js +28 -0
  110. package/dist/react/index-helpers/blocks-exports.js +11 -0
  111. package/dist/react/index-helpers/top-of-file.js +2 -0
  112. package/dist/react/index.js +12 -0
  113. package/dist/react/scripts/init-editing.js +93 -0
  114. package/dist/react/types/builder-block.js +1 -0
  115. package/dist/react/types/builder-content.js +1 -0
  116. package/dist/react/types/can-track.js +1 -0
  117. package/dist/react/types/components.js +1 -0
  118. package/dist/react/types/deep-partial.js +1 -0
  119. package/dist/react/types/element.js +1 -0
  120. package/dist/react/types/targets.js +1 -0
  121. package/dist/react/types/typescript.js +1 -0
  122. package/dist/rsc/blocks/BaseText.js +7 -0
  123. package/dist/rsc/blocks/button/button.js +10 -0
  124. package/dist/rsc/blocks/button/component-info.js +39 -0
  125. package/dist/rsc/blocks/columns/columns.js +136 -0
  126. package/dist/rsc/blocks/columns/component-info.js +241 -0
  127. package/dist/rsc/blocks/custom-code/component-info.js +29 -0
  128. package/dist/rsc/blocks/custom-code/custom-code.js +45 -0
  129. package/dist/rsc/blocks/embed/component-info.js +44 -0
  130. package/dist/rsc/blocks/embed/embed.js +36 -0
  131. package/dist/rsc/blocks/embed/helpers.js +7 -0
  132. package/dist/rsc/blocks/form/component-info.js +260 -0
  133. package/dist/rsc/blocks/form/form.js +204 -0
  134. package/dist/rsc/blocks/fragment/component-info.js +9 -0
  135. package/dist/rsc/blocks/fragment/fragment.js +5 -0
  136. package/dist/rsc/blocks/image/component-info.js +149 -0
  137. package/dist/rsc/blocks/image/image.helpers.js +46 -0
  138. package/dist/rsc/blocks/image/image.js +85 -0
  139. package/dist/rsc/blocks/img/component-info.js +18 -0
  140. package/dist/rsc/blocks/img/img.js +9 -0
  141. package/dist/rsc/blocks/input/component-info.js +72 -0
  142. package/dist/rsc/blocks/input/input.js +6 -0
  143. package/dist/rsc/blocks/raw-text/component-info.js +14 -0
  144. package/dist/rsc/blocks/raw-text/raw-text.js +5 -0
  145. package/dist/rsc/blocks/section/component-info.js +47 -0
  146. package/dist/rsc/blocks/section/section.js +18 -0
  147. package/dist/rsc/blocks/select/component-info.js +57 -0
  148. package/dist/rsc/blocks/select/select.js +6 -0
  149. package/dist/rsc/blocks/submit-button/component-info.js +26 -0
  150. package/dist/rsc/blocks/submit-button/submit-button.js +5 -0
  151. package/dist/rsc/blocks/symbol/component-info.js +41 -0
  152. package/dist/rsc/blocks/symbol/symbol.js +37 -0
  153. package/dist/rsc/blocks/text/component-info.js +22 -0
  154. package/dist/rsc/blocks/text/text.js +5 -0
  155. package/dist/rsc/blocks/textarea/component-info.js +45 -0
  156. package/dist/rsc/blocks/textarea/textarea.js +5 -0
  157. package/dist/rsc/blocks/util.js +6 -0
  158. package/dist/rsc/blocks/video/component-info.js +104 -0
  159. package/dist/rsc/blocks/video/video.js +51 -0
  160. package/dist/rsc/components/render-block/block-styles.js +51 -0
  161. package/dist/rsc/components/render-block/render-block.helpers.js +104 -0
  162. package/dist/rsc/components/render-block/render-block.js +126 -0
  163. package/dist/rsc/components/render-block/render-component-with-context.js +27 -0
  164. package/dist/rsc/components/render-block/render-component.js +11 -0
  165. package/dist/rsc/components/render-block/render-repeated-block.js +15 -0
  166. package/dist/rsc/components/render-block/types.js +1 -0
  167. package/dist/rsc/components/render-blocks.js +47 -0
  168. package/dist/rsc/components/render-content/builder-editing.js +5 -0
  169. package/dist/rsc/components/render-content/components/render-styles.js +62 -0
  170. package/dist/rsc/components/render-content/index.js +2 -0
  171. package/dist/rsc/components/render-content/render-content.js +201 -0
  172. package/dist/rsc/components/render-inlined-styles.js +18 -0
  173. package/dist/rsc/constants/builder-registered-components.js +52 -0
  174. package/dist/rsc/constants/device-sizes.js +45 -0
  175. package/dist/rsc/constants/target.js +2 -0
  176. package/dist/rsc/context/builder.context.js +9 -0
  177. package/dist/rsc/context/types.js +1 -0
  178. package/dist/rsc/functions/camel-to-kebab-case.js +2 -0
  179. package/dist/rsc/functions/evaluate.js +4 -0
  180. package/dist/rsc/functions/event-handler-name.js +5 -0
  181. package/dist/rsc/functions/extract-text-styles.js +20 -0
  182. package/dist/rsc/functions/fast-clone.js +2 -0
  183. package/dist/rsc/functions/get-block-actions-handler.js +9 -0
  184. package/dist/rsc/functions/get-block-actions.js +16 -0
  185. package/dist/rsc/functions/get-block-component-options.js +26 -0
  186. package/dist/rsc/functions/get-block-properties.js +48 -0
  187. package/dist/rsc/functions/get-block-tag.js +4 -0
  188. package/dist/rsc/functions/get-builder-search-params/fn.test.js +13 -0
  189. package/dist/rsc/functions/get-builder-search-params/index.js +33 -0
  190. package/dist/rsc/functions/get-content/ab-testing.js +86 -0
  191. package/dist/rsc/functions/get-content/generate-content-url.js +41 -0
  192. package/dist/rsc/functions/get-content/generate-content-url.test.js +31 -0
  193. package/dist/rsc/functions/get-content/index.js +64 -0
  194. package/dist/rsc/functions/get-content/types.js +1 -0
  195. package/dist/rsc/functions/get-fetch.js +12 -0
  196. package/dist/rsc/functions/get-global-this.js +16 -0
  197. package/dist/rsc/functions/get-processed-block.js +49 -0
  198. package/dist/rsc/functions/get-processed-block.test.js +32 -0
  199. package/dist/rsc/functions/get-react-native-block-styles.js +27 -0
  200. package/dist/rsc/functions/if-target.js +10 -0
  201. package/dist/rsc/functions/is-browser.js +4 -0
  202. package/dist/rsc/functions/is-editing.js +5 -0
  203. package/dist/rsc/functions/is-iframe.js +5 -0
  204. package/dist/rsc/functions/is-previewing.js +12 -0
  205. package/dist/rsc/functions/on-change.js +24 -0
  206. package/dist/rsc/functions/on-change.test.js +19 -0
  207. package/dist/rsc/functions/register-component.js +60 -0
  208. package/dist/rsc/functions/register.js +28 -0
  209. package/dist/rsc/functions/sanitize-react-native-block-styles.js +68 -0
  210. package/dist/rsc/functions/set-editor-settings.js +13 -0
  211. package/dist/rsc/functions/set.js +9 -0
  212. package/dist/rsc/functions/set.test.js +16 -0
  213. package/dist/rsc/functions/track/helpers.js +50 -0
  214. package/dist/rsc/functions/track/index.js +120 -0
  215. package/dist/rsc/functions/track/interaction.js +48 -0
  216. package/dist/rsc/functions/track.js +116 -0
  217. package/dist/rsc/functions/transform-block-properties.js +4 -0
  218. package/dist/rsc/functions/transform-block.js +4 -0
  219. package/dist/rsc/helpers/ab-tests.js +6 -0
  220. package/dist/rsc/helpers/cookie.js +70 -0
  221. package/dist/rsc/helpers/css.js +28 -0
  222. package/dist/rsc/helpers/flatten.js +32 -0
  223. package/dist/rsc/helpers/localStorage.js +27 -0
  224. package/dist/rsc/helpers/nullable.js +2 -0
  225. package/dist/rsc/helpers/sessionId.js +46 -0
  226. package/dist/rsc/helpers/time.js +3 -0
  227. package/dist/rsc/helpers/url.js +11 -0
  228. package/dist/rsc/helpers/url.test.js +21 -0
  229. package/dist/rsc/helpers/uuid.js +10 -0
  230. package/dist/rsc/helpers/visitorId.js +28 -0
  231. package/dist/rsc/index-helpers/blocks-exports.js +11 -0
  232. package/dist/rsc/index-helpers/top-of-file.js +2 -0
  233. package/dist/rsc/index.js +12 -0
  234. package/dist/rsc/scripts/init-editing.js +93 -0
  235. package/dist/rsc/types/builder-block.js +1 -0
  236. package/dist/rsc/types/builder-content.js +1 -0
  237. package/dist/rsc/types/can-track.js +1 -0
  238. package/dist/rsc/types/components.js +1 -0
  239. package/dist/rsc/types/deep-partial.js +1 -0
  240. package/dist/rsc/types/element.js +1 -0
  241. package/dist/rsc/types/targets.js +1 -0
  242. package/dist/rsc/types/typescript.js +1 -0
  243. package/package.json +11 -6
  244. package/packages/_rsc/src/blocks/BaseText.jsx +10 -0
  245. package/packages/_rsc/src/blocks/button/button.jsx +29 -0
  246. package/packages/_rsc/src/blocks/columns/{columns.js → columns.jsx} +80 -61
  247. package/packages/_rsc/src/blocks/custom-code/custom-code.jsx +55 -0
  248. package/packages/_rsc/src/blocks/embed/embed.jsx +43 -0
  249. package/packages/_rsc/src/blocks/form/form.jsx +259 -0
  250. package/packages/_rsc/src/blocks/fragment/fragment.jsx +7 -0
  251. package/packages/_rsc/src/blocks/image/image.jsx +124 -0
  252. package/packages/_rsc/src/blocks/img/img.jsx +19 -0
  253. package/packages/_rsc/src/blocks/input/input.jsx +21 -0
  254. package/packages/_rsc/src/blocks/raw-text/raw-text.jsx +12 -0
  255. package/packages/_rsc/src/blocks/section/section.jsx +29 -0
  256. package/packages/_rsc/src/blocks/select/select.jsx +22 -0
  257. package/packages/_rsc/src/blocks/submit-button/submit-button.jsx +11 -0
  258. package/packages/_rsc/src/blocks/symbol/symbol.jsx +56 -0
  259. package/packages/_rsc/src/blocks/text/text.jsx +12 -0
  260. package/packages/_rsc/src/blocks/textarea/textarea.jsx +15 -0
  261. package/packages/_rsc/src/blocks/video/video.jsx +61 -0
  262. package/packages/_rsc/src/components/render-block/block-styles.jsx +72 -0
  263. package/packages/_rsc/src/components/render-block/render-block.jsx +251 -0
  264. package/packages/_rsc/src/components/render-block/render-component-with-context.jsx +38 -0
  265. package/packages/_rsc/src/components/render-block/render-component.jsx +37 -0
  266. package/packages/_rsc/src/components/render-block/render-repeated-block.jsx +36 -0
  267. package/packages/_rsc/src/components/render-blocks.jsx +90 -0
  268. package/packages/_rsc/src/components/render-content/builder-editing.jsx +7 -0
  269. package/packages/_rsc/src/components/render-content/components/render-styles.jsx +70 -0
  270. package/packages/_rsc/src/components/render-content/render-content.jsx +259 -0
  271. package/packages/_rsc/src/components/render-inlined-styles.jsx +33 -0
  272. package/packages/_rsc/src/helpers/cookie.js +4 -2
  273. package/packages/_rsc/src/helpers/localStorage.js +1 -0
  274. package/packages/_rsc/src/helpers/sessionId.js +4 -1
  275. package/packages/_rsc/src/helpers/url.js +3 -0
  276. package/packages/_rsc/src/helpers/url.test.js +6 -0
  277. package/packages/_rsc/src/helpers/visitorId.js +1 -0
  278. package/packages/react/src/blocks/BaseText.jsx +9 -0
  279. package/packages/react/src/blocks/button/button.jsx +27 -0
  280. package/packages/react/src/blocks/button/component-info.js +41 -0
  281. package/packages/react/src/blocks/columns/columns.jsx +172 -0
  282. package/packages/react/src/blocks/columns/component-info.js +242 -0
  283. package/packages/react/src/blocks/custom-code/component-info.js +31 -0
  284. package/packages/react/src/blocks/custom-code/custom-code.jsx +64 -0
  285. package/packages/react/src/blocks/embed/component-info.js +44 -0
  286. package/packages/react/src/blocks/embed/embed.jsx +49 -0
  287. package/packages/react/src/blocks/embed/helpers.js +9 -0
  288. package/packages/react/src/blocks/form/component-info.js +262 -0
  289. package/packages/react/src/blocks/form/form.jsx +253 -0
  290. package/packages/react/src/blocks/fragment/component-info.js +11 -0
  291. package/packages/react/src/blocks/fragment/fragment.jsx +5 -0
  292. package/packages/react/src/blocks/image/component-info.js +151 -0
  293. package/packages/react/src/blocks/image/image.helpers.js +48 -0
  294. package/packages/react/src/blocks/image/image.jsx +120 -0
  295. package/packages/react/src/blocks/img/component-info.js +20 -0
  296. package/packages/react/src/blocks/img/img.jsx +17 -0
  297. package/packages/react/src/blocks/input/component-info.js +74 -0
  298. package/packages/react/src/blocks/input/input.jsx +19 -0
  299. package/packages/react/src/blocks/raw-text/component-info.js +16 -0
  300. package/packages/react/src/blocks/raw-text/raw-text.jsx +10 -0
  301. package/packages/react/src/blocks/section/component-info.js +49 -0
  302. package/packages/react/src/blocks/section/section.jsx +27 -0
  303. package/packages/react/src/blocks/select/component-info.js +59 -0
  304. package/packages/react/src/blocks/select/select.jsx +20 -0
  305. package/packages/react/src/blocks/submit-button/component-info.js +28 -0
  306. package/packages/react/src/blocks/submit-button/submit-button.jsx +9 -0
  307. package/packages/react/src/blocks/symbol/component-info.js +43 -0
  308. package/packages/react/src/blocks/symbol/symbol.jsx +86 -0
  309. package/packages/react/src/blocks/text/component-info.js +24 -0
  310. package/packages/react/src/blocks/text/text.jsx +10 -0
  311. package/packages/react/src/blocks/textarea/component-info.js +47 -0
  312. package/packages/react/src/blocks/textarea/textarea.jsx +13 -0
  313. package/packages/react/src/blocks/util.js +8 -0
  314. package/packages/react/src/blocks/video/component-info.js +106 -0
  315. package/packages/react/src/blocks/video/video.jsx +58 -0
  316. package/packages/react/src/components/render-block/block-styles.jsx +69 -0
  317. package/packages/react/src/components/render-block/render-block.helpers.js +113 -0
  318. package/packages/react/src/components/render-block/render-block.jsx +184 -0
  319. package/packages/react/src/components/render-block/render-component.jsx +33 -0
  320. package/packages/react/src/components/render-block/render-repeated-block.jsx +21 -0
  321. package/packages/react/src/components/render-block/types.js +0 -0
  322. package/packages/react/src/components/render-blocks.jsx +89 -0
  323. package/packages/react/src/components/render-content/builder-editing.jsx +5 -0
  324. package/packages/react/src/components/render-content/components/render-styles.jsx +64 -0
  325. package/packages/react/src/components/render-content/index.js +4 -0
  326. package/packages/react/src/components/render-content/render-content.jsx +372 -0
  327. package/packages/react/src/components/render-inlined-styles.jsx +28 -0
  328. package/packages/react/src/constants/builder-registered-components.js +54 -0
  329. package/packages/react/src/constants/device-sizes.js +48 -0
  330. package/packages/react/src/constants/target.js +4 -0
  331. package/packages/react/src/context/builder.context.js +12 -0
  332. package/packages/react/src/context/types.js +0 -0
  333. package/packages/react/src/functions/camel-to-kebab-case.js +4 -0
  334. package/packages/react/src/functions/evaluate.js +29 -0
  335. package/packages/react/src/functions/event-handler-name.js +7 -0
  336. package/packages/react/src/functions/extract-text-styles.js +22 -0
  337. package/packages/react/src/functions/fast-clone.js +4 -0
  338. package/packages/react/src/functions/get-block-actions-handler.js +11 -0
  339. package/packages/react/src/functions/get-block-actions.js +18 -0
  340. package/packages/{_rsc/src/blocks/textarea/textarea.js → react/src/functions/get-block-component-options.js} +6 -10
  341. package/packages/react/src/functions/get-block-properties.js +50 -0
  342. package/packages/react/src/functions/get-block-tag.js +6 -0
  343. package/packages/react/src/functions/get-builder-search-params/fn.test.js +13 -0
  344. package/packages/react/src/functions/get-builder-search-params/index.js +38 -0
  345. package/packages/react/src/functions/get-content/ab-testing.js +99 -0
  346. package/packages/react/src/functions/get-content/generate-content-url.js +55 -0
  347. package/packages/react/src/functions/get-content/generate-content-url.test.js +31 -0
  348. package/packages/react/src/functions/get-content/index.js +65 -0
  349. package/packages/react/src/functions/get-content/types.js +0 -0
  350. package/packages/react/src/functions/get-fetch.js +14 -0
  351. package/packages/react/src/functions/get-global-this.js +18 -0
  352. package/packages/react/src/functions/get-processed-block.js +59 -0
  353. package/packages/react/src/functions/get-processed-block.test.js +32 -0
  354. package/packages/{_rsc/src/blocks/BaseText.js → react/src/functions/get-react-native-block-styles.js} +14 -8
  355. package/packages/react/src/functions/if-target.js +15 -0
  356. package/packages/react/src/functions/is-browser.js +6 -0
  357. package/packages/react/src/functions/is-editing.js +7 -0
  358. package/packages/react/src/functions/is-iframe.js +7 -0
  359. package/packages/react/src/functions/is-previewing.js +14 -0
  360. package/packages/react/src/functions/on-change.js +27 -0
  361. package/packages/react/src/functions/on-change.test.js +19 -0
  362. package/packages/react/src/functions/register-component.js +68 -0
  363. package/packages/react/src/functions/register.js +29 -0
  364. package/packages/react/src/functions/sanitize-react-native-block-styles.js +66 -0
  365. package/packages/react/src/functions/set-editor-settings.js +15 -0
  366. package/packages/react/src/functions/set.js +11 -0
  367. package/packages/react/src/functions/set.test.js +16 -0
  368. package/packages/react/src/functions/track/helpers.js +50 -0
  369. package/packages/react/src/functions/track/index.js +128 -0
  370. package/packages/react/src/functions/track/interaction.js +53 -0
  371. package/packages/react/src/functions/transform-block-properties.js +6 -0
  372. package/packages/react/src/functions/transform-block.js +6 -0
  373. package/packages/react/src/helpers/ab-tests.js +16 -0
  374. package/packages/react/src/helpers/cookie.js +81 -0
  375. package/packages/react/src/helpers/css.js +34 -0
  376. package/packages/{_rsc/src/blocks/input/input.js → react/src/helpers/flatten.js} +12 -14
  377. package/packages/react/src/helpers/localStorage.js +35 -0
  378. package/packages/react/src/helpers/nullable.js +4 -0
  379. package/packages/react/src/helpers/sessionId.js +52 -0
  380. package/packages/react/src/helpers/time.js +5 -0
  381. package/packages/react/src/helpers/url.js +13 -0
  382. package/packages/react/src/helpers/url.test.js +21 -0
  383. package/packages/react/src/helpers/uuid.js +13 -0
  384. package/packages/react/src/helpers/visitorId.js +34 -0
  385. package/packages/react/src/index-helpers/blocks-exports.js +22 -0
  386. package/packages/react/src/index-helpers/top-of-file.js +4 -0
  387. package/packages/react/src/index.js +14 -0
  388. package/packages/react/src/scripts/init-editing.js +93 -0
  389. package/packages/react/src/types/builder-block.js +0 -0
  390. package/packages/react/src/types/builder-content.js +0 -0
  391. package/packages/react/src/types/can-track.js +0 -0
  392. package/packages/react/src/types/components.js +0 -0
  393. package/packages/react/src/types/deep-partial.js +0 -0
  394. package/packages/react/src/types/element.js +0 -0
  395. package/packages/react/src/types/targets.js +0 -0
  396. package/packages/react/src/types/typescript.js +0 -0
  397. package/packages/rsc/src/blocks/BaseText.jsx +10 -0
  398. package/packages/rsc/src/blocks/button/button.jsx +29 -0
  399. package/packages/rsc/src/blocks/button/component-info.js +41 -0
  400. package/packages/rsc/src/blocks/columns/columns.jsx +172 -0
  401. package/packages/rsc/src/blocks/columns/component-info.js +242 -0
  402. package/packages/rsc/src/blocks/custom-code/component-info.js +31 -0
  403. package/packages/rsc/src/blocks/custom-code/custom-code.jsx +55 -0
  404. package/packages/rsc/src/blocks/embed/component-info.js +44 -0
  405. package/packages/rsc/src/blocks/embed/embed.jsx +43 -0
  406. package/packages/rsc/src/blocks/embed/helpers.js +9 -0
  407. package/packages/rsc/src/blocks/form/component-info.js +262 -0
  408. package/packages/rsc/src/blocks/form/form.jsx +259 -0
  409. package/packages/rsc/src/blocks/fragment/component-info.js +11 -0
  410. package/packages/rsc/src/blocks/fragment/fragment.jsx +7 -0
  411. package/packages/rsc/src/blocks/image/component-info.js +151 -0
  412. package/packages/rsc/src/blocks/image/image.helpers.js +48 -0
  413. package/packages/rsc/src/blocks/image/image.jsx +122 -0
  414. package/packages/rsc/src/blocks/img/component-info.js +20 -0
  415. package/packages/rsc/src/blocks/img/img.jsx +19 -0
  416. package/packages/rsc/src/blocks/input/component-info.js +74 -0
  417. package/packages/rsc/src/blocks/input/input.jsx +21 -0
  418. package/packages/rsc/src/blocks/raw-text/component-info.js +16 -0
  419. package/packages/rsc/src/blocks/raw-text/raw-text.jsx +12 -0
  420. package/packages/rsc/src/blocks/section/component-info.js +49 -0
  421. package/packages/rsc/src/blocks/section/section.jsx +29 -0
  422. package/packages/rsc/src/blocks/select/component-info.js +59 -0
  423. package/packages/rsc/src/blocks/select/select.jsx +22 -0
  424. package/packages/rsc/src/blocks/submit-button/component-info.js +28 -0
  425. package/packages/rsc/src/blocks/submit-button/submit-button.jsx +11 -0
  426. package/packages/rsc/src/blocks/symbol/component-info.js +43 -0
  427. package/packages/rsc/src/blocks/symbol/symbol.jsx +56 -0
  428. package/packages/rsc/src/blocks/text/component-info.js +24 -0
  429. package/packages/rsc/src/blocks/text/text.jsx +12 -0
  430. package/packages/rsc/src/blocks/textarea/component-info.js +47 -0
  431. package/packages/rsc/src/blocks/textarea/textarea.jsx +15 -0
  432. package/packages/rsc/src/blocks/util.js +8 -0
  433. package/packages/rsc/src/blocks/video/component-info.js +106 -0
  434. package/packages/rsc/src/blocks/video/video.jsx +61 -0
  435. package/packages/rsc/src/components/render-block/block-styles.jsx +72 -0
  436. package/packages/rsc/src/components/render-block/render-block.helpers.js +113 -0
  437. package/packages/rsc/src/components/render-block/render-block.jsx +183 -0
  438. package/packages/rsc/src/components/render-block/render-component.jsx +37 -0
  439. package/packages/rsc/src/components/render-block/render-repeated-block.jsx +24 -0
  440. package/packages/rsc/src/components/render-block/types.js +0 -0
  441. package/packages/rsc/src/components/render-blocks.jsx +90 -0
  442. package/packages/rsc/src/components/render-content/builder-editing.jsx +7 -0
  443. package/packages/rsc/src/components/render-content/components/render-styles.jsx +70 -0
  444. package/packages/rsc/src/components/render-content/index.js +4 -0
  445. package/packages/rsc/src/components/render-content/render-content.jsx +245 -0
  446. package/packages/rsc/src/components/render-inlined-styles.jsx +33 -0
  447. package/packages/rsc/src/constants/builder-registered-components.js +54 -0
  448. package/packages/rsc/src/constants/device-sizes.js +48 -0
  449. package/packages/rsc/src/constants/target.js +4 -0
  450. package/packages/rsc/src/context/builder.context.js +11 -0
  451. package/packages/rsc/src/context/types.js +0 -0
  452. package/packages/rsc/src/functions/camel-to-kebab-case.js +4 -0
  453. package/packages/rsc/src/functions/evaluate.js +6 -0
  454. package/packages/rsc/src/functions/event-handler-name.js +7 -0
  455. package/packages/rsc/src/functions/extract-text-styles.js +22 -0
  456. package/packages/rsc/src/functions/fast-clone.js +4 -0
  457. package/packages/rsc/src/functions/get-block-actions-handler.js +11 -0
  458. package/packages/rsc/src/functions/get-block-actions.js +18 -0
  459. package/packages/{_rsc/src/blocks/text/text.js → rsc/src/functions/get-block-component-options.js} +8 -7
  460. package/packages/rsc/src/functions/get-block-properties.js +50 -0
  461. package/packages/rsc/src/functions/get-block-tag.js +6 -0
  462. package/packages/rsc/src/functions/get-builder-search-params/fn.test.js +13 -0
  463. package/packages/rsc/src/functions/get-builder-search-params/index.js +38 -0
  464. package/packages/rsc/src/functions/get-content/ab-testing.js +99 -0
  465. package/packages/rsc/src/functions/get-content/generate-content-url.js +55 -0
  466. package/packages/rsc/src/functions/get-content/generate-content-url.test.js +31 -0
  467. package/packages/rsc/src/functions/get-content/index.js +65 -0
  468. package/packages/rsc/src/functions/get-content/types.js +0 -0
  469. package/packages/rsc/src/functions/get-fetch.js +14 -0
  470. package/packages/rsc/src/functions/get-global-this.js +18 -0
  471. package/packages/rsc/src/functions/get-processed-block.js +59 -0
  472. package/packages/rsc/src/functions/get-processed-block.test.js +32 -0
  473. package/packages/{_rsc/src/blocks/raw-text/raw-text.js → rsc/src/functions/get-react-native-block-styles.js} +14 -9
  474. package/packages/rsc/src/functions/if-target.js +15 -0
  475. package/packages/rsc/src/functions/is-browser.js +6 -0
  476. package/packages/rsc/src/functions/is-editing.js +7 -0
  477. package/packages/rsc/src/functions/is-iframe.js +7 -0
  478. package/packages/rsc/src/functions/is-previewing.js +14 -0
  479. package/packages/rsc/src/functions/on-change.js +27 -0
  480. package/packages/rsc/src/functions/on-change.test.js +19 -0
  481. package/packages/rsc/src/functions/register-component.js +68 -0
  482. package/packages/rsc/src/functions/register.js +29 -0
  483. package/packages/rsc/src/functions/sanitize-react-native-block-styles.js +66 -0
  484. package/packages/rsc/src/functions/set-editor-settings.js +15 -0
  485. package/packages/rsc/src/functions/set.js +11 -0
  486. package/packages/rsc/src/functions/set.test.js +16 -0
  487. package/packages/rsc/src/functions/track/helpers.js +50 -0
  488. package/packages/rsc/src/functions/track/index.js +128 -0
  489. package/packages/rsc/src/functions/track/interaction.js +53 -0
  490. package/packages/rsc/src/functions/transform-block-properties.js +6 -0
  491. package/packages/rsc/src/functions/transform-block.js +6 -0
  492. package/packages/rsc/src/helpers/ab-tests.js +16 -0
  493. package/packages/rsc/src/helpers/cookie.js +81 -0
  494. package/packages/rsc/src/helpers/css.js +34 -0
  495. package/packages/{_rsc/src/blocks/section/section.js → rsc/src/helpers/flatten.js} +12 -18
  496. package/packages/rsc/src/helpers/localStorage.js +35 -0
  497. package/packages/rsc/src/helpers/nullable.js +4 -0
  498. package/packages/rsc/src/helpers/sessionId.js +52 -0
  499. package/packages/rsc/src/helpers/time.js +5 -0
  500. package/packages/rsc/src/helpers/url.js +13 -0
  501. package/packages/rsc/src/helpers/url.test.js +21 -0
  502. package/packages/rsc/src/helpers/uuid.js +13 -0
  503. package/packages/rsc/src/helpers/visitorId.js +34 -0
  504. package/packages/rsc/src/index-helpers/blocks-exports.js +22 -0
  505. package/packages/rsc/src/index-helpers/top-of-file.js +2 -0
  506. package/packages/rsc/src/index.js +14 -0
  507. package/packages/rsc/src/scripts/init-editing.js +93 -0
  508. package/packages/rsc/src/types/builder-block.js +0 -0
  509. package/packages/rsc/src/types/builder-content.js +0 -0
  510. package/packages/rsc/src/types/can-track.js +0 -0
  511. package/packages/rsc/src/types/components.js +0 -0
  512. package/packages/rsc/src/types/deep-partial.js +0 -0
  513. package/packages/rsc/src/types/element.js +0 -0
  514. package/packages/rsc/src/types/targets.js +0 -0
  515. package/packages/rsc/src/types/typescript.js +0 -0
  516. package/src/blocks/BaseText.jsx +4 -7
  517. package/src/blocks/button/button.jsx +25 -32
  518. package/src/blocks/columns/columns.jsx +83 -59
  519. package/src/blocks/custom-code/custom-code.jsx +29 -15
  520. package/src/blocks/embed/embed.jsx +15 -11
  521. package/src/blocks/form/form.jsx +184 -148
  522. package/src/blocks/fragment/fragment.jsx +3 -5
  523. package/src/blocks/image/image.jsx +80 -56
  524. package/src/blocks/img/img.jsx +14 -29
  525. package/src/blocks/input/input.jsx +16 -32
  526. package/src/blocks/raw-text/raw-text.jsx +8 -9
  527. package/src/blocks/section/section.jsx +25 -37
  528. package/src/blocks/select/select.jsx +17 -32
  529. package/src/blocks/submit-button/submit-button.jsx +7 -23
  530. package/src/blocks/symbol/symbol.jsx +59 -48
  531. package/src/blocks/text/text.jsx +8 -8
  532. package/src/blocks/textarea/textarea.jsx +11 -29
  533. package/src/blocks/video/video.jsx +52 -48
  534. package/src/components/render-block/block-styles.jsx +48 -29
  535. package/src/components/render-block/render-block.jsx +150 -100
  536. package/src/components/render-block/render-component-with-context.jsx +35 -32
  537. package/src/components/render-block/render-component.jsx +30 -32
  538. package/src/components/render-block/render-repeated-block.jsx +30 -30
  539. package/src/components/render-blocks.jsx +73 -47
  540. package/src/components/render-content/builder-editing.jsx +3 -5
  541. package/src/components/render-content/components/render-styles.jsx +21 -15
  542. package/src/components/render-content/index.js +1 -1
  543. package/src/components/render-content/render-content.jsx +209 -134
  544. package/src/components/render-inlined-styles.jsx +19 -8
  545. package/src/constants/builder-registered-components.js +11 -11
  546. package/src/helpers/cookie.js +4 -2
  547. package/src/helpers/localStorage.js +1 -0
  548. package/src/helpers/sessionId.js +4 -1
  549. package/src/helpers/url.js +3 -0
  550. package/src/helpers/url.test.js +6 -0
  551. package/src/helpers/visitorId.js +1 -0
  552. package/src/index-helpers/blocks-exports.js +10 -10
  553. package/tsconfig.base.json +18 -0
  554. package/tsconfig.react.json +7 -0
  555. package/tsconfig.rsc.json +7 -0
  556. package/packages/_rsc/src/blocks/button/button.js +0 -35
  557. package/packages/_rsc/src/blocks/custom-code/custom-code.js +0 -63
  558. package/packages/_rsc/src/blocks/embed/embed.js +0 -55
  559. package/packages/_rsc/src/blocks/form/form.js +0 -222
  560. package/packages/_rsc/src/blocks/fragment/fragment.js +0 -24
  561. package/packages/_rsc/src/blocks/image/image.js +0 -101
  562. package/packages/_rsc/src/blocks/img/img.js +0 -33
  563. package/packages/_rsc/src/blocks/select/select.js +0 -36
  564. package/packages/_rsc/src/blocks/submit-button/submit-button.js +0 -26
  565. package/packages/_rsc/src/blocks/symbol/symbol.js +0 -60
  566. package/packages/_rsc/src/blocks/video/video.js +0 -57
  567. package/packages/_rsc/src/components/render-block/block-styles.js +0 -70
  568. package/packages/_rsc/src/components/render-block/render-block.js +0 -211
  569. package/packages/_rsc/src/components/render-block/render-component-with-context.js +0 -51
  570. package/packages/_rsc/src/components/render-block/render-component.js +0 -43
  571. package/packages/_rsc/src/components/render-block/render-repeated-block.js +0 -49
  572. package/packages/_rsc/src/components/render-blocks.js +0 -80
  573. package/packages/_rsc/src/components/render-content/builder-editing.js +0 -35
  574. package/packages/_rsc/src/components/render-content/components/render-styles.js +0 -78
  575. package/packages/_rsc/src/components/render-content/render-content.js +0 -215
  576. package/packages/_rsc/src/components/render-inlined-styles.js +0 -36
@@ -1,24 +1,5 @@
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
1
  import * as React from "react";
21
- import { useState, useRef, useEffect } from "react";
2
+ import { useState, useContext, useRef, useEffect } from "react";
22
3
  import { getDefaultRegisteredComponents } from "../../constants/builder-registered-components.js";
23
4
  import { TARGET } from "../../constants/target.js";
24
5
  import { evaluate } from "../../functions/evaluate.js";
@@ -29,206 +10,283 @@ import { isEditing } from "../../functions/is-editing.js";
29
10
  import { isPreviewing } from "../../functions/is-previewing.js";
30
11
  import {
31
12
  components,
32
- createRegisterComponentMessage
13
+ createRegisterComponentMessage,
33
14
  } from "../../functions/register-component.js";
34
15
  import { _track } from "../../functions/track.js";
35
- import RenderBlocks from "../render-blocks.jsx";
36
- import RenderContentStyles from "./components/render-styles.jsx";
16
+ import RenderBlocks from "../render-blocks.js";
17
+ import RenderContentStyles from "./components/render-styles.js";
37
18
  import BuilderContext from "../../context/builder.context.js";
38
19
  import {
39
20
  registerInsertMenu,
40
- setupBrowserForEditing
21
+ setupBrowserForEditing,
41
22
  } from "../../scripts/init-editing.js";
42
- function RenderContent(props) {
43
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
23
+ import { checkIsDefined } from "../../helpers/nullable.js";
24
+
25
+ export default function RenderContent(props) {
44
26
  const elementRef = useRef(null);
45
27
  const [forceReRenderCount, setForceReRenderCount] = useState(() => 0);
28
+
46
29
  const [overrideContent, setOverrideContent] = useState(() => null);
30
+
47
31
  function useContent() {
48
- var _a2, _b2, _c2, _d2, _e2;
49
32
  if (!props.content && !overrideContent) {
50
- return void 0;
33
+ return undefined;
51
34
  }
52
- const mergedContent = __spreadProps(__spreadValues(__spreadValues({}, props.content), overrideContent), {
53
- data: __spreadValues(__spreadValues(__spreadValues({}, (_a2 = props.content) == null ? void 0 : _a2.data), props.data), overrideContent == null ? void 0 : overrideContent.data),
54
- meta: __spreadProps(__spreadValues(__spreadValues({}, (_b2 = props.content) == null ? void 0 : _b2.meta), overrideContent == null ? void 0 : overrideContent.meta), {
55
- breakpoints: useBreakpoints || ((_c2 = overrideContent == null ? void 0 : overrideContent.meta) == null ? void 0 : _c2.breakpoints) || ((_e2 = (_d2 = props.content) == null ? void 0 : _d2.meta) == null ? void 0 : _e2.breakpoints)
56
- })
57
- });
35
+ const mergedContent = {
36
+ ...props.content,
37
+ ...overrideContent,
38
+ data: {
39
+ ...props.content?.data,
40
+ ...props.data,
41
+ ...overrideContent?.data,
42
+ },
43
+ meta: {
44
+ ...props.content?.meta,
45
+ ...overrideContent?.meta,
46
+ breakpoints:
47
+ useBreakpoints ||
48
+ overrideContent?.meta?.breakpoints ||
49
+ props.content?.meta?.breakpoints,
50
+ },
51
+ };
58
52
  return mergedContent;
59
53
  }
54
+
60
55
  const [update, setUpdate] = useState(() => 0);
56
+
61
57
  const [useBreakpoints, setUseBreakpoints] = useState(() => null);
58
+
62
59
  function canTrackToUse() {
63
- return props.canTrack || true;
60
+ return checkIsDefined(props.canTrack) ? props.canTrack : true;
64
61
  }
62
+
65
63
  const [overrideState, setOverrideState] = useState(() => ({}));
64
+
66
65
  function contentState() {
67
- var _a2, _b2;
68
- return __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, (_b2 = (_a2 = props.content) == null ? void 0 : _a2.data) == null ? void 0 : _b2.state), props.data), props.locale ? {
69
- locale: props.locale
70
- } : {}), overrideState);
66
+ return {
67
+ ...props.content?.data?.state,
68
+ ...props.data,
69
+ ...(props.locale
70
+ ? {
71
+ locale: props.locale,
72
+ }
73
+ : {}),
74
+ ...overrideState,
75
+ };
71
76
  }
77
+
72
78
  function contextContext() {
73
79
  return props.context || {};
74
80
  }
81
+
75
82
  function allRegisteredComponents() {
76
83
  const allComponentsArray = [
77
84
  ...getDefaultRegisteredComponents(),
85
+ // While this `components` object is deprecated, we must maintain support for it.
86
+ // Since users are able to override our default components, we need to make sure that we do not break such
87
+ // existing usage.
88
+ // This is why we spread `components` after the default Builder.io components, but before the `props.customComponents`,
89
+ // which is the new standard way of providing custom components, and must therefore take precedence.
78
90
  ...components,
79
- ...props.customComponents || []
91
+ ...(props.customComponents || []),
80
92
  ];
81
- const allComponents = allComponentsArray.reduce((acc, curr) => __spreadProps(__spreadValues({}, acc), {
82
- [curr.name]: curr
83
- }), {});
93
+ const allComponents = allComponentsArray.reduce(
94
+ (acc, curr) => ({
95
+ ...acc,
96
+ [curr.name]: curr,
97
+ }),
98
+ {}
99
+ );
84
100
  return allComponents;
85
101
  }
102
+
86
103
  function processMessage(event) {
87
- var _a2;
88
104
  const { data } = event;
89
105
  if (data) {
90
106
  switch (data.type) {
91
107
  case "builder.configureSdk": {
92
108
  const messageContent = data.data;
93
109
  const { breakpoints, contentId } = messageContent;
94
- if (!contentId || contentId !== ((_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.id)) {
110
+ if (!contentId || contentId !== useContent?.()?.id) {
95
111
  return;
96
112
  }
97
113
  setUseBreakpoints(breakpoints);
98
- setForceReRenderCount(forceReRenderCount + 1);
114
+ setForceReRenderCount(forceReRenderCount + 1); // This is a hack to force Qwik to re-render.
99
115
  break;
100
116
  }
101
117
  case "builder.contentUpdate": {
102
118
  const messageContent = data.data;
103
- const key = messageContent.key || messageContent.alias || messageContent.entry || messageContent.modelName;
119
+ const key =
120
+ messageContent.key ||
121
+ messageContent.alias ||
122
+ messageContent.entry ||
123
+ messageContent.modelName;
104
124
  const contentData = messageContent.data;
105
125
  if (key === props.model) {
106
126
  setOverrideContent(contentData);
107
- setForceReRenderCount(forceReRenderCount + 1);
127
+ setForceReRenderCount(forceReRenderCount + 1); // This is a hack to force Qwik to re-render.
108
128
  }
129
+
109
130
  break;
110
131
  }
111
132
  case "builder.patchUpdates": {
133
+ // TODO
112
134
  break;
113
135
  }
114
136
  }
115
137
  }
116
138
  }
139
+
117
140
  function evaluateJsCode() {
118
- var _a2, _b2;
119
- const jsCode = (_b2 = (_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.data) == null ? void 0 : _b2.jsCode;
141
+ // run any dynamic JS code attached to content
142
+ const jsCode = useContent?.()?.data?.jsCode;
120
143
  if (jsCode) {
121
144
  evaluate({
122
145
  code: jsCode,
123
146
  context: contextContext(),
124
- state: contentState()
147
+ state: contentState(),
125
148
  });
126
149
  }
127
150
  }
151
+
128
152
  function httpReqsData() {
129
153
  return {};
130
154
  }
155
+
131
156
  function onClick(_event) {
132
- var _a2, _b2;
133
157
  if (useContent()) {
134
- const variationId = (_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.testVariationId;
135
- const contentId = (_b2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _b2.id;
158
+ const variationId = useContent?.()?.testVariationId;
159
+ const contentId = useContent?.()?.id;
136
160
  _track({
137
161
  type: "click",
138
162
  canTrack: canTrackToUse(),
139
163
  contentId,
140
164
  apiKey: props.apiKey,
141
- variationId: variationId !== contentId ? variationId : void 0
165
+ variationId: variationId !== contentId ? variationId : undefined,
142
166
  });
143
167
  }
144
168
  }
169
+
145
170
  function evalExpression(expression) {
146
- return expression.replace(/{{([^}]+)}}/g, (_match, group) => evaluate({
147
- code: group,
148
- context: contextContext(),
149
- state: contentState()
150
- }));
171
+ return expression.replace(/{{([^}]+)}}/g, (_match, group) =>
172
+ evaluate({
173
+ code: group,
174
+ context: contextContext(),
175
+ state: contentState(),
176
+ })
177
+ );
151
178
  }
179
+
152
180
  function handleRequest({ url, key }) {
153
- fetch(url).then((response) => response.json()).then((json) => {
154
- const newOverrideState = __spreadProps(__spreadValues({}, overrideState), {
155
- [key]: json
181
+ fetch(url)
182
+ .then((response) => response.json())
183
+ .then((json) => {
184
+ const newOverrideState = {
185
+ ...overrideState,
186
+ [key]: json,
187
+ };
188
+ setOverrideState(newOverrideState);
189
+ })
190
+ .catch((err) => {
191
+ console.log("error fetching dynamic data", url, err);
156
192
  });
157
- setOverrideState(newOverrideState);
158
- }).catch((err) => {
159
- console.log("error fetching dynamic data", url, err);
160
- });
161
193
  }
194
+
162
195
  function runHttpRequests() {
163
- var _a2, _b2, _c2;
164
- const requests = (_c2 = (_b2 = (_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.data) == null ? void 0 : _b2.httpRequests) != null ? _c2 : {};
196
+ const requests = useContent?.()?.data?.httpRequests ?? {};
165
197
  Object.entries(requests).forEach(([key, url]) => {
166
198
  if (url && (!httpReqsData()[key] || isEditing())) {
167
199
  const evaluatedUrl = evalExpression(url);
168
200
  handleRequest({
169
201
  url: evaluatedUrl,
170
- key
202
+ key,
171
203
  });
172
204
  }
173
205
  });
174
206
  }
207
+
175
208
  function emitStateUpdate() {
176
209
  if (isEditing()) {
177
- window.dispatchEvent(new CustomEvent("builder:component:stateChange", {
178
- detail: {
179
- state: contentState(),
180
- ref: {
181
- name: props.model
182
- }
183
- }
184
- }));
210
+ window.dispatchEvent(
211
+ new CustomEvent("builder:component:stateChange", {
212
+ detail: {
213
+ state: contentState(),
214
+ ref: {
215
+ name: props.model,
216
+ },
217
+ },
218
+ })
219
+ );
185
220
  }
186
221
  }
222
+
187
223
  function shouldRenderContentStyles() {
188
- var _a2, _b2, _c2, _d2, _e2;
189
- return Boolean((((_b2 = (_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.data) == null ? void 0 : _b2.cssCode) || ((_e2 = (_d2 = (_c2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _c2.data) == null ? void 0 : _d2.customFonts) == null ? void 0 : _e2.length)) && TARGET !== "reactNative");
224
+ return Boolean(
225
+ (useContent?.()?.data?.cssCode ||
226
+ useContent?.()?.data?.customFonts?.length) &&
227
+ TARGET !== "reactNative"
228
+ );
190
229
  }
230
+
191
231
  useEffect(() => {
192
- var _a2, _b2;
193
232
  if (!props.apiKey) {
194
- console.error("[Builder.io]: No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
233
+ console.error(
234
+ "[Builder.io]: No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop."
235
+ );
195
236
  }
196
237
  if (isBrowser()) {
197
238
  if (isEditing()) {
198
239
  setForceReRenderCount(forceReRenderCount + 1);
199
240
  registerInsertMenu();
200
- setupBrowserForEditing(__spreadValues(__spreadValues({}, props.locale ? {
201
- locale: props.locale
202
- } : {}), props.includeRefs ? {
203
- includeRefs: props.includeRefs
204
- } : {}));
205
- Object.values(allRegisteredComponents()).forEach((registeredComponent) => {
206
- var _a3;
207
- const message = createRegisterComponentMessage(registeredComponent);
208
- (_a3 = window.parent) == null ? void 0 : _a3.postMessage(message, "*");
241
+ setupBrowserForEditing({
242
+ ...(props.locale
243
+ ? {
244
+ locale: props.locale,
245
+ }
246
+ : {}),
247
+ ...(props.includeRefs
248
+ ? {
249
+ includeRefs: props.includeRefs,
250
+ }
251
+ : {}),
209
252
  });
253
+ Object.values(allRegisteredComponents()).forEach(
254
+ (registeredComponent) => {
255
+ const message = createRegisterComponentMessage(registeredComponent);
256
+ window.parent?.postMessage(message, "*");
257
+ }
258
+ );
210
259
  window.addEventListener("message", processMessage);
211
- window.addEventListener("builder:component:stateChangeListenerActivated", emitStateUpdate);
260
+ window.addEventListener(
261
+ "builder:component:stateChangeListenerActivated",
262
+ emitStateUpdate
263
+ );
212
264
  }
213
265
  if (useContent()) {
214
- const variationId = (_a2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _a2.testVariationId;
215
- const contentId = (_b2 = useContent == null ? void 0 : useContent()) == null ? void 0 : _b2.id;
266
+ const variationId = useContent?.()?.testVariationId;
267
+ const contentId = useContent?.()?.id;
216
268
  _track({
217
269
  type: "impression",
218
270
  canTrack: canTrackToUse(),
219
271
  contentId,
220
272
  apiKey: props.apiKey,
221
- variationId: variationId !== contentId ? variationId : void 0
273
+ variationId: variationId !== contentId ? variationId : undefined,
222
274
  });
223
275
  }
276
+
277
+ // override normal content in preview mode
224
278
  if (isPreviewing()) {
225
279
  const searchParams = new URL(location.href).searchParams;
226
- if (props.model && searchParams.get("builder.preview") === props.model) {
227
- const previewApiKey = searchParams.get("apiKey") || searchParams.get("builder.space");
280
+ if (
281
+ props.model &&
282
+ searchParams.get("builder.preview") === props.model
283
+ ) {
284
+ const previewApiKey =
285
+ searchParams.get("apiKey") || searchParams.get("builder.space");
228
286
  if (previewApiKey) {
229
287
  getContent({
230
288
  model: props.model,
231
- apiKey: previewApiKey
289
+ apiKey: previewApiKey,
232
290
  }).then((content) => {
233
291
  if (content) {
234
292
  setOverrideContent(content);
@@ -242,54 +300,71 @@ function RenderContent(props) {
242
300
  emitStateUpdate();
243
301
  }
244
302
  }, []);
303
+
245
304
  useEffect(() => {
246
305
  evaluateJsCode();
247
- }, [(_b = (_a = useContent == null ? void 0 : useContent()) == null ? void 0 : _a.data) == null ? void 0 : _b.jsCode, contentState()]);
306
+ }, [useContent?.()?.data?.jsCode, contentState()]);
248
307
  useEffect(() => {
249
308
  runHttpRequests();
250
- }, [(_d = (_c = useContent == null ? void 0 : useContent()) == null ? void 0 : _c.data) == null ? void 0 : _d.httpRequests]);
309
+ }, [useContent?.()?.data?.httpRequests]);
251
310
  useEffect(() => {
252
311
  emitStateUpdate();
253
312
  }, [contentState()]);
313
+
254
314
  useEffect(() => {
255
315
  return () => {
256
316
  if (isBrowser()) {
257
317
  window.removeEventListener("message", processMessage);
258
- window.removeEventListener("builder:component:stateChangeListenerActivated", emitStateUpdate);
318
+ window.removeEventListener(
319
+ "builder:component:stateChangeListenerActivated",
320
+ emitStateUpdate
321
+ );
259
322
  }
260
323
  };
261
324
  }, []);
262
- return /* @__PURE__ */ React.createElement(BuilderContext.Provider, {
263
- value: {
264
- get content() {
265
- return useContent();
266
- },
267
- get state() {
268
- return contentState();
269
- },
270
- get context() {
271
- return contextContext();
272
- },
273
- get apiKey() {
274
- return props.apiKey;
275
- },
276
- get registeredComponents() {
277
- return allRegisteredComponents();
278
- }
279
- }
280
- }, useContent() ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
281
- ref: elementRef,
282
- onClick: (event) => onClick(event),
283
- "builder-content-id": (_e = useContent == null ? void 0 : useContent()) == null ? void 0 : _e.id,
284
- "builder-model": props.model
285
- }, shouldRenderContentStyles() ? /* @__PURE__ */ React.createElement(RenderContentStyles, {
286
- cssCode: (_g = (_f = useContent == null ? void 0 : useContent()) == null ? void 0 : _f.data) == null ? void 0 : _g.cssCode,
287
- customFonts: (_i = (_h = useContent == null ? void 0 : useContent()) == null ? void 0 : _h.data) == null ? void 0 : _i.customFonts
288
- }) : null, /* @__PURE__ */ React.createElement(RenderBlocks, {
289
- blocks: (_k = (_j = useContent == null ? void 0 : useContent()) == null ? void 0 : _j.data) == null ? void 0 : _k.blocks,
290
- key: forceReRenderCount
291
- }))) : null);
325
+
326
+ return (
327
+ <BuilderContext.Provider
328
+ value={{
329
+ get content() {
330
+ return useContent();
331
+ },
332
+ get state() {
333
+ return contentState();
334
+ },
335
+ get context() {
336
+ return contextContext();
337
+ },
338
+ get apiKey() {
339
+ return props.apiKey;
340
+ },
341
+ get registeredComponents() {
342
+ return allRegisteredComponents();
343
+ },
344
+ }}
345
+ >
346
+ {useContent() ? (
347
+ <>
348
+ <div
349
+ ref={elementRef}
350
+ onClick={(event) => onClick(event)}
351
+ builder-content-id={useContent?.()?.id}
352
+ builder-model={props.model}
353
+ >
354
+ {shouldRenderContentStyles() ? (
355
+ <RenderContentStyles
356
+ cssCode={useContent?.()?.data?.cssCode}
357
+ customFonts={useContent?.()?.data?.customFonts}
358
+ />
359
+ ) : null}
360
+
361
+ <RenderBlocks
362
+ blocks={useContent?.()?.data?.blocks}
363
+ key={forceReRenderCount}
364
+ />
365
+ </div>
366
+ </>
367
+ ) : null}
368
+ </BuilderContext.Provider>
369
+ );
292
370
  }
293
- export {
294
- RenderContent as default
295
- };
@@ -1,17 +1,28 @@
1
1
  import * as React from "react";
2
2
  import { TARGET } from "../constants/target.js";
3
- function RenderInlinedStyles(props) {
3
+
4
+ export default function RenderInlinedStyles(props) {
4
5
  function injectedStyleScript() {
5
6
  return `<${tag()}>${props.styles}</${tag()}>`;
6
7
  }
8
+
7
9
  function tag() {
8
- return "style";
10
+ // NOTE: we have to obfusctate the name of the tag due to a limitation in the svelte-preprocessor plugin.
11
+ // https://github.com/sveltejs/vite-plugin-svelte/issues/315#issuecomment-1109000027
12
+ return "sty" + "le";
9
13
  }
14
+
10
15
  const TagRef = tag();
11
- return /* @__PURE__ */ React.createElement(React.Fragment, null, TARGET === "svelte" ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
12
- dangerouslySetInnerHTML: { __html: injectedStyleScript() }
13
- })) : /* @__PURE__ */ React.createElement(TagRef, null, props.styles));
16
+
17
+ return (
18
+ <>
19
+ {TARGET === "svelte" ? (
20
+ <>
21
+ <div dangerouslySetInnerHTML={{ __html: injectedStyleScript() }} />
22
+ </>
23
+ ) : (
24
+ <TagRef>{props.styles}</TagRef>
25
+ )}
26
+ </>
27
+ );
14
28
  }
15
- export {
16
- RenderInlinedStyles as default
17
- };
@@ -14,27 +14,27 @@ var __spreadValues = (a, b) => {
14
14
  }
15
15
  return a;
16
16
  };
17
- import { default as Button } from "../blocks/button/button.jsx";
17
+ import { default as Button } from "../blocks/button/button.js";
18
18
  import { componentInfo as buttonComponentInfo } from "../blocks/button/component-info.js";
19
- import { default as Columns } from "../blocks/columns/columns.jsx";
19
+ import { default as Columns } from "../blocks/columns/columns.js";
20
20
  import { componentInfo as columnsComponentInfo } from "../blocks/columns/component-info.js";
21
21
  import { componentInfo as fragmentComponentInfo } from "../blocks/fragment/component-info.js";
22
- import { default as Fragment } from "../blocks/fragment/fragment.jsx";
22
+ import { default as Fragment } from "../blocks/fragment/fragment.js";
23
23
  import { componentInfo as imageComponentInfo } from "../blocks/image/component-info.js";
24
- import { default as Image } from "../blocks/image/image.jsx";
24
+ import { default as Image } from "../blocks/image/image.js";
25
25
  import { componentInfo as sectionComponentInfo } from "../blocks/section/component-info.js";
26
- import { default as Section } from "../blocks/section/section.jsx";
26
+ import { default as Section } from "../blocks/section/section.js";
27
27
  import { componentInfo as symbolComponentInfo } from "../blocks/symbol/component-info.js";
28
- import { default as Symbol } from "../blocks/symbol/symbol.jsx";
28
+ import { default as Symbol } from "../blocks/symbol/symbol.js";
29
29
  import { componentInfo as textComponentInfo } from "../blocks/text/component-info.js";
30
- import { default as Text } from "../blocks/text/text.jsx";
30
+ import { default as Text } from "../blocks/text/text.js";
31
31
  import { componentInfo as videoComponentInfo } from "../blocks/video/component-info.js";
32
- import { default as Video } from "../blocks/video/video.jsx";
32
+ import { default as Video } from "../blocks/video/video.js";
33
33
  import { componentInfo as embedComponentInfo } from "../blocks/embed/component-info.js";
34
- import { default as embed } from "../blocks/embed/embed.jsx";
35
- import { default as Img } from "../blocks/img/img.jsx";
34
+ import { default as embed } from "../blocks/embed/embed.js";
35
+ import { default as Img } from "../blocks/img/img.js";
36
36
  import { componentInfo as imgComponentInfo } from "../blocks/img/component-info.js";
37
- import { default as customCode } from "../blocks/custom-code/custom-code.jsx";
37
+ import { default as customCode } from "../blocks/custom-code/custom-code.js";
38
38
  import { componentInfo as customCodeInfo } from "../blocks/custom-code/component-info.js";
39
39
  const getDefaultRegisteredComponents = () => [
40
40
  __spreadValues({ component: Columns }, columnsComponentInfo),
@@ -19,6 +19,7 @@ var __async = (__this, __arguments, generator) => {
19
19
  });
20
20
  };
21
21
  import { isBrowser } from "../functions/is-browser.js";
22
+ import { checkIsDefined } from "./nullable.js";
22
23
  import { getTopLevelDomain } from "./url.js";
23
24
  const getCookie = (_0) => __async(void 0, [_0], function* ({
24
25
  name,
@@ -32,9 +33,10 @@ const getCookie = (_0) => __async(void 0, [_0], function* ({
32
33
  return (_a = document.cookie.split("; ").find((row) => row.startsWith(`${name}=`))) == null ? void 0 : _a.split("=")[1];
33
34
  } catch (err) {
34
35
  console.debug("[COOKIE] GET error: ", err);
36
+ return void 0;
35
37
  }
36
38
  });
37
- const stringifyCookie = (cookie) => cookie.map(([key, value]) => value ? `${key}=${value}` : key).join("; ");
39
+ const stringifyCookie = (cookie) => cookie.map(([key, value]) => value ? `${key}=${value}` : key).filter(checkIsDefined).join("; ");
38
40
  const SECURE_CONFIG = [
39
41
  ["secure", ""],
40
42
  ["SameSite", "None"]
@@ -65,7 +67,7 @@ const setCookie = (_0) => __async(void 0, [_0], function* ({
65
67
  }) {
66
68
  try {
67
69
  if (!canTrack) {
68
- return void 0;
70
+ return;
69
71
  }
70
72
  const cookie = createCookieString({ name, value, expires });
71
73
  document.cookie = cookie;
@@ -12,6 +12,7 @@ const getLocalStorageItem = ({
12
12
  return void 0;
13
13
  } catch (err) {
14
14
  console.debug("[LocalStorage] GET error: ", err);
15
+ return void 0;
15
16
  }
16
17
  };
17
18
  const setLocalStorageItem = ({
@@ -22,7 +22,9 @@ import { getCookie, setCookie } from "./cookie.js";
22
22
  import { checkIsDefined } from "./nullable.js";
23
23
  import { uuid } from "./uuid.js";
24
24
  const SESSION_LOCAL_STORAGE_KEY = "builderSessionId";
25
- const getSessionId = (_0) => __async(void 0, [_0], function* ({ canTrack }) {
25
+ const getSessionId = (_0) => __async(void 0, [_0], function* ({
26
+ canTrack
27
+ }) {
26
28
  if (!canTrack) {
27
29
  return void 0;
28
30
  }
@@ -35,6 +37,7 @@ const getSessionId = (_0) => __async(void 0, [_0], function* ({ canTrack }) {
35
37
  } else {
36
38
  const newSessionId = createSessionId();
37
39
  setSessionId({ id: newSessionId, canTrack });
40
+ return newSessionId;
38
41
  }
39
42
  });
40
43
  const createSessionId = () => uuid();
@@ -1,4 +1,7 @@
1
1
  const getTopLevelDomain = (host) => {
2
+ if (host === "localhost" || host === "127.0.0.1") {
3
+ return host;
4
+ }
2
5
  const parts = host.split(".");
3
6
  if (parts.length > 2) {
4
7
  return parts.slice(1).join(".");
@@ -12,4 +12,10 @@ describe("getTopLevelDomain", () => {
12
12
  const output = getTopLevelDomain("www.example.co.uk");
13
13
  expect(output).toBe("example.co.uk");
14
14
  });
15
+ test("handles localhost", () => {
16
+ const output = getTopLevelDomain("localhost");
17
+ expect(output).toBe("localhost");
18
+ const output2 = getTopLevelDomain("127.0.0.1");
19
+ expect(output2).toBe("127.0.0.1");
20
+ });
15
21
  });
@@ -15,6 +15,7 @@ const getVisitorId = ({ canTrack }) => {
15
15
  } else {
16
16
  const newVisitorId = createVisitorId();
17
17
  setVisitorId({ id: newVisitorId, canTrack });
18
+ return newVisitorId;
18
19
  }
19
20
  };
20
21
  const createVisitorId = () => uuid();