@builder.io/sdk-svelte 0.4.5 → 0.5.1

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 (385) hide show
  1. package/package/--package.json +41 -29
  2. package/package/CHANGELOG.md +8 -0
  3. package/package/blocks/BaseText.svelte +1 -1
  4. package/package/blocks/button/button.svelte +18 -33
  5. package/package/blocks/button/button.svelte.d.ts +3 -1
  6. package/package/blocks/button/component-info.d.ts +1 -1
  7. package/package/blocks/button/component-info.js +9 -13
  8. package/package/blocks/columns/columns.svelte +12 -18
  9. package/package/blocks/columns/columns.svelte.d.ts +11 -7
  10. package/package/blocks/columns/component-info.d.ts +1 -1
  11. package/package/blocks/columns/component-info.js +62 -83
  12. package/package/blocks/custom-code/component-info.d.ts +1 -1
  13. package/package/blocks/custom-code/component-info.js +7 -11
  14. package/package/blocks/embed/component-info.d.ts +1 -1
  15. package/package/blocks/embed/component-info.js +8 -15
  16. package/package/blocks/embed/helpers.js +1 -5
  17. package/package/blocks/form/component-info.d.ts +1 -1
  18. package/package/blocks/form/component-info.js +94 -129
  19. package/package/blocks/form/form.svelte +2 -289
  20. package/package/blocks/form/form.svelte.d.ts +1 -57
  21. package/package/blocks/fragment/component-info.d.ts +1 -1
  22. package/package/blocks/fragment/component-info.js +1 -1
  23. package/package/blocks/helpers.d.ts +13 -0
  24. package/package/blocks/helpers.js +40 -0
  25. package/package/blocks/image/component-info.d.ts +1 -1
  26. package/package/blocks/image/component-info.js +33 -63
  27. package/package/blocks/image/image.helpers.js +2 -11
  28. package/package/blocks/image/image.svelte.d.ts +0 -1
  29. package/package/blocks/img/component-info.d.ts +1 -1
  30. package/package/blocks/img/component-info.js +4 -6
  31. package/package/blocks/img/img.svelte +4 -29
  32. package/package/blocks/img/img.svelte.d.ts +3 -1
  33. package/package/blocks/input/component-info.d.ts +1 -1
  34. package/package/blocks/input/component-info.js +15 -40
  35. package/package/blocks/input/input.svelte +4 -29
  36. package/package/blocks/input/input.svelte.d.ts +3 -1
  37. package/package/blocks/raw-text/component-info.d.ts +1 -1
  38. package/package/blocks/raw-text/component-info.js +3 -5
  39. package/package/blocks/raw-text/raw-text.svelte +3 -5
  40. package/package/blocks/raw-text/raw-text.svelte.d.ts +1 -1
  41. package/package/blocks/section/component-info.d.ts +1 -1
  42. package/package/blocks/section/component-info.js +13 -18
  43. package/package/blocks/section/section.svelte +4 -29
  44. package/package/blocks/section/section.svelte.d.ts +3 -1
  45. package/package/blocks/select/component-info.d.ts +1 -1
  46. package/package/blocks/select/component-info.js +22 -34
  47. package/package/blocks/select/select.svelte +4 -29
  48. package/package/blocks/select/select.svelte.d.ts +3 -1
  49. package/package/blocks/submit-button/component-info.d.ts +1 -1
  50. package/package/blocks/submit-button/component-info.js +5 -7
  51. package/package/blocks/submit-button/submit-button.svelte +4 -29
  52. package/package/blocks/submit-button/submit-button.svelte.d.ts +3 -1
  53. package/package/blocks/symbol/component-info.d.ts +1 -1
  54. package/package/blocks/symbol/component-info.js +12 -17
  55. package/package/blocks/symbol/symbol.helpers.d.ts +14 -0
  56. package/package/blocks/symbol/symbol.helpers.js +31 -0
  57. package/package/blocks/symbol/symbol.svelte +37 -87
  58. package/package/blocks/symbol/symbol.svelte.d.ts +13 -7
  59. package/package/blocks/text/component-info.d.ts +1 -1
  60. package/package/blocks/text/component-info.js +6 -7
  61. package/package/blocks/text/text.svelte +1 -1
  62. package/package/blocks/textarea/component-info.d.ts +1 -1
  63. package/package/blocks/textarea/component-info.js +13 -19
  64. package/package/blocks/textarea/textarea.svelte +4 -29
  65. package/package/blocks/textarea/textarea.svelte.d.ts +3 -1
  66. package/package/blocks/video/component-info.d.ts +1 -1
  67. package/package/blocks/video/component-info.js +35 -55
  68. package/package/blocks/video/video.svelte +4 -30
  69. package/package/blocks/video/video.svelte.d.ts +2 -0
  70. package/package/components/block/block.helpers.d.ts +13 -0
  71. package/package/components/{render-block/render-block.helpers.js → block/block.helpers.js} +12 -29
  72. package/package/components/block/block.svelte +135 -0
  73. package/package/components/block/block.svelte.d.ts +26 -0
  74. package/package/components/{render-block → block/components}/block-styles.svelte +20 -22
  75. package/package/components/{render-block → block/components}/block-styles.svelte.d.ts +2 -2
  76. package/package/components/block/components/block-wrapper.svelte +53 -0
  77. package/package/components/block/components/block-wrapper.svelte.d.ts +33 -0
  78. package/package/components/block/components/component-ref/component-ref.helpers.d.ts +36 -0
  79. package/package/components/block/components/component-ref/component-ref.helpers.js +22 -0
  80. package/package/components/block/components/component-ref/component-ref.svelte +37 -0
  81. package/package/components/block/components/component-ref/component-ref.svelte.d.ts +24 -0
  82. package/package/components/block/components/interactive-element.svelte +29 -0
  83. package/package/components/block/components/interactive-element.svelte.d.ts +31 -0
  84. package/package/components/{render-block/render-repeated-block.svelte → block/components/repeated-block.svelte} +4 -3
  85. package/package/components/block/components/repeated-block.svelte.d.ts +25 -0
  86. package/package/components/{render-blocks.svelte → blocks/blocks-wrapper.svelte} +3 -20
  87. package/package/components/blocks/blocks-wrapper.svelte.d.ts +29 -0
  88. package/package/components/blocks/blocks.svelte +36 -0
  89. package/package/components/blocks/blocks.svelte.d.ts +28 -0
  90. package/package/components/{render-content/render-content.svelte → content/components/enable-editor.svelte} +47 -166
  91. package/package/components/content/components/enable-editor.svelte.d.ts +36 -0
  92. package/package/components/{render-content/components/render-styles.helpers.d.ts → content/components/styles.helpers.d.ts} +1 -1
  93. package/package/components/{render-content/components/render-styles.helpers.js → content/components/styles.helpers.js} +3 -4
  94. package/package/components/{render-content/components/render-styles.svelte → content/components/styles.svelte} +2 -2
  95. package/package/components/{render-content/components/render-styles.svelte.d.ts → content/components/styles.svelte.d.ts} +5 -5
  96. package/package/components/content/content.helpers.d.ts +7 -0
  97. package/package/components/content/content.helpers.js +30 -0
  98. package/package/components/content/content.svelte +118 -0
  99. package/package/components/content/content.svelte.d.ts +30 -0
  100. package/package/components/{render-content/render-content.types.d.ts → content/content.types.d.ts} +4 -4
  101. package/package/components/content/index.d.ts +1 -0
  102. package/package/components/content/index.js +1 -0
  103. package/package/components/{render-content-variants/render-content-variants.svelte → content-variants/content-variants.svelte} +20 -19
  104. package/package/components/{render-content-variants/render-content-variants.svelte.d.ts → content-variants/content-variants.svelte.d.ts} +6 -6
  105. package/package/components/{render-content-variants/render-content-variants.types.d.ts → content-variants/content-variants.types.d.ts} +5 -5
  106. package/package/components/{render-content-variants → content-variants}/helpers.d.ts +7 -7
  107. package/package/components/{render-content-variants → content-variants}/helpers.js +13 -22
  108. package/package/constants/builder-registered-components.js +34 -13
  109. package/package/constants/device-sizes.js +9 -8
  110. package/package/constants/sdk-version.d.ts +1 -1
  111. package/package/constants/sdk-version.js +1 -1
  112. package/package/constants/target.d.ts +1 -1
  113. package/package/context/builder.context.d.ts +1 -1
  114. package/package/context/builder.context.js +1 -1
  115. package/package/context/components.context.d.ts +7 -0
  116. package/package/context/components.context.js +5 -0
  117. package/package/context/types.d.ts +1 -1
  118. package/package/functions/apply-patch-with-mutation.d.ts +10 -0
  119. package/package/functions/apply-patch-with-mutation.js +54 -0
  120. package/package/functions/evaluate/acorn.d.ts +0 -0
  121. package/package/functions/evaluate/acorn.js +2433 -0
  122. package/package/functions/{evaluate.d.ts → evaluate/evaluate.d.ts} +5 -2
  123. package/package/functions/{evaluate.js → evaluate/evaluate.js} +34 -13
  124. package/package/functions/evaluate/index.d.ts +1 -0
  125. package/package/functions/evaluate/index.js +1 -0
  126. package/package/functions/evaluate/interpreter.d.ts +2 -0
  127. package/package/functions/evaluate/interpreter.js +3853 -0
  128. package/package/functions/evaluate/non-node-runtime.d.ts +2 -0
  129. package/package/functions/evaluate/non-node-runtime.js +84 -0
  130. package/package/functions/evaluate/types.d.ts +10 -0
  131. package/package/functions/extract-text-styles.js +2 -14
  132. package/package/functions/get-block-actions-handler.js +3 -3
  133. package/package/functions/get-block-actions.d.ts +1 -0
  134. package/package/functions/get-block-actions.js +14 -1
  135. package/package/functions/get-block-component-options.js +1 -1
  136. package/package/functions/get-block-properties.d.ts +5 -1
  137. package/package/functions/get-block-properties.js +15 -9
  138. package/package/functions/get-builder-search-params/index.js +3 -7
  139. package/package/functions/get-content/generate-content-url.js +7 -5
  140. package/package/functions/get-content/index.d.ts +2 -6
  141. package/package/functions/get-content/index.js +26 -6
  142. package/package/functions/get-processed-block.d.ts +1 -1
  143. package/package/functions/get-processed-block.js +11 -7
  144. package/package/functions/get-react-native-block-styles.d.ts +1 -1
  145. package/package/functions/get-react-native-block-styles.js +2 -2
  146. package/package/functions/if-target.d.ts +1 -1
  147. package/package/functions/if-target.js +1 -1
  148. package/package/functions/is-editing.js +1 -3
  149. package/package/functions/is-non-node-server.d.ts +4 -0
  150. package/package/functions/is-non-node-server.js +8 -0
  151. package/package/functions/on-change.js +1 -1
  152. package/package/functions/register-component.d.ts +2 -1
  153. package/package/functions/register-component.js +20 -8
  154. package/package/functions/register.js +2 -2
  155. package/package/functions/sanitize-react-native-block-styles.js +13 -5
  156. package/package/functions/set-editor-settings.js +1 -1
  157. package/package/functions/set.js +2 -9
  158. package/package/functions/track/helpers.js +6 -11
  159. package/package/functions/track/index.js +26 -14
  160. package/package/functions/track/interaction.js +15 -16
  161. package/package/helpers/ab-tests.d.ts +2 -2
  162. package/package/helpers/ab-tests.js +42 -30
  163. package/package/helpers/canTrack.js +1 -1
  164. package/package/helpers/cookie.d.ts +2 -2
  165. package/package/helpers/cookie.js +13 -26
  166. package/package/helpers/css.d.ts +1 -1
  167. package/package/helpers/css.js +1 -1
  168. package/package/helpers/flatten.js +8 -8
  169. package/package/helpers/localStorage.d.ts +2 -2
  170. package/package/helpers/localStorage.js +2 -2
  171. package/package/helpers/logger.js +1 -1
  172. package/package/helpers/preview-lru-cache/get.d.ts +1 -0
  173. package/package/helpers/preview-lru-cache/get.js +7 -0
  174. package/package/helpers/preview-lru-cache/helpers.d.ts +1 -0
  175. package/package/helpers/preview-lru-cache/helpers.js +9 -0
  176. package/package/helpers/preview-lru-cache/init.d.ts +6 -0
  177. package/package/helpers/preview-lru-cache/init.js +15 -0
  178. package/package/helpers/preview-lru-cache/set.d.ts +7 -0
  179. package/package/helpers/preview-lru-cache/set.js +9 -0
  180. package/package/helpers/preview-lru-cache/types.d.ts +12 -0
  181. package/package/helpers/preview-lru-cache/types.js +6 -0
  182. package/package/helpers/sessionId.d.ts +2 -2
  183. package/package/helpers/sessionId.js +11 -4
  184. package/package/helpers/uuid.js +1 -1
  185. package/package/helpers/visitorId.d.ts +1 -1
  186. package/package/helpers/visitorId.js +7 -4
  187. package/package/index-helpers/blocks-exports.d.ts +2 -2
  188. package/package/index-helpers/blocks-exports.js +2 -2
  189. package/package/index.d.ts +2 -2
  190. package/package/index.js +1 -1
  191. package/package/scripts/init-editing.js +65 -57
  192. package/package/types/builder-props.d.ts +10 -0
  193. package/package/types/components.d.ts +8 -2
  194. package/package/types/enforced-partials.d.ts +1 -1
  195. package/package/types/targets.d.ts +1 -3
  196. package/package/types/typescript.d.ts +3 -0
  197. package/package.json +2 -2
  198. package/src/blocks/BaseText.svelte +1 -1
  199. package/src/blocks/button/button.svelte +21 -34
  200. package/src/blocks/button/component-info.ts +20 -27
  201. package/src/blocks/columns/columns.svelte +26 -30
  202. package/src/blocks/columns/component-info.ts +205 -240
  203. package/src/blocks/custom-code/component-info.ts +20 -27
  204. package/src/blocks/embed/component-info.ts +34 -51
  205. package/src/blocks/embed/helpers.ts +2 -8
  206. package/src/blocks/form/component-info.ts +204 -253
  207. package/src/blocks/form/form.svelte +1 -368
  208. package/src/blocks/fragment/component-info.ts +3 -5
  209. package/src/blocks/helpers.ts +43 -0
  210. package/src/blocks/image/component-info.ts +113 -161
  211. package/src/blocks/image/image.helpers.ts +5 -33
  212. package/src/blocks/img/component-info.ts +11 -16
  213. package/src/blocks/img/img.svelte +7 -31
  214. package/src/blocks/input/component-info.ts +35 -66
  215. package/src/blocks/input/input.svelte +7 -31
  216. package/src/blocks/raw-text/component-info.ts +8 -12
  217. package/src/blocks/raw-text/raw-text.svelte +2 -5
  218. package/src/blocks/section/component-info.ts +28 -37
  219. package/src/blocks/section/section.svelte +7 -30
  220. package/src/blocks/select/component-info.ts +38 -55
  221. package/src/blocks/select/select.svelte +7 -31
  222. package/src/blocks/submit-button/component-info.ts +10 -15
  223. package/src/blocks/submit-button/submit-button.svelte +7 -30
  224. package/src/blocks/symbol/component-info.ts +31 -39
  225. package/src/blocks/symbol/symbol.helpers.ts +47 -0
  226. package/src/blocks/symbol/symbol.svelte +50 -97
  227. package/src/blocks/text/component-info.ts +14 -18
  228. package/src/blocks/text/text.svelte +1 -1
  229. package/src/blocks/textarea/component-info.ts +26 -36
  230. package/src/blocks/textarea/textarea.svelte +7 -30
  231. package/src/blocks/video/component-info.ts +77 -103
  232. package/src/blocks/video/video.svelte +4 -31
  233. package/src/components/{render-block/render-block.helpers.ts → block/block.helpers.ts} +22 -49
  234. package/src/components/block/block.svelte +158 -0
  235. package/src/components/{render-block → block/components}/block-styles.svelte +23 -24
  236. package/src/components/block/components/block-wrapper.svelte +70 -0
  237. package/src/components/block/components/component-ref/component-ref.helpers.ts +53 -0
  238. package/src/components/block/components/component-ref/component-ref.svelte +41 -0
  239. package/src/components/block/components/interactive-element.svelte +42 -0
  240. package/src/components/block/components/repeated-block.svelte +30 -0
  241. package/src/components/{render-block → block}/types.ts +1 -2
  242. package/src/components/{render-blocks.svelte → blocks/blocks-wrapper.svelte} +14 -32
  243. package/src/components/blocks/blocks.svelte +51 -0
  244. package/src/components/{render-content/render-content.svelte → content/components/enable-editor.svelte} +71 -199
  245. package/src/components/{render-content/components/render-styles.helpers.ts → content/components/styles.helpers.ts} +9 -11
  246. package/src/components/{render-content/components/render-styles.svelte → content/components/styles.svelte} +3 -3
  247. package/src/components/content/content.helpers.ts +42 -0
  248. package/src/components/content/content.svelte +144 -0
  249. package/src/components/{render-content/render-content.types.ts → content/content.types.ts} +5 -9
  250. package/src/components/content/index.ts +1 -0
  251. package/src/components/{render-content → content}/wrap-component-ref.ts +1 -1
  252. package/src/components/{render-content-variants/render-content-variants.svelte → content-variants/content-variants.svelte} +26 -24
  253. package/src/components/{render-content-variants/render-content-variants.types.ts → content-variants/content-variants.types.ts} +9 -11
  254. package/src/components/{render-content-variants → content-variants}/helpers.ts +27 -73
  255. package/src/constants/builder-registered-components.ts +34 -14
  256. package/src/constants/device-sizes.ts +16 -22
  257. package/src/constants/sdk-version.ts +1 -1
  258. package/src/constants/target.ts +3 -1
  259. package/src/context/builder.context.ts +1 -1
  260. package/src/context/components.context.ts +6 -0
  261. package/src/context/types.ts +2 -7
  262. package/src/functions/apply-patch-with-mutation.ts +61 -0
  263. package/src/functions/camel-to-kebab-case.ts +1 -2
  264. package/src/functions/evaluate/acorn.ts +2501 -0
  265. package/src/functions/evaluate/evaluate.ts +90 -0
  266. package/src/functions/evaluate/index.ts +1 -0
  267. package/src/functions/evaluate/interpreter.ts +3887 -0
  268. package/src/functions/evaluate/non-node-runtime.ts +94 -0
  269. package/src/functions/evaluate/types.ts +10 -0
  270. package/src/functions/extract-text-styles.ts +3 -18
  271. package/src/functions/fast-clone.ts +1 -2
  272. package/src/functions/get-block-actions-handler.ts +11 -20
  273. package/src/functions/get-block-actions.ts +22 -14
  274. package/src/functions/get-block-component-options.ts +2 -3
  275. package/src/functions/get-block-properties.ts +24 -17
  276. package/src/functions/get-builder-search-params/index.ts +5 -21
  277. package/src/functions/get-content/generate-content-url.ts +10 -25
  278. package/src/functions/get-content/index.ts +34 -37
  279. package/src/functions/get-content/types.ts +4 -2
  280. package/src/functions/get-fetch.ts +3 -10
  281. package/src/functions/get-global-this.ts +1 -2
  282. package/src/functions/get-processed-block.ts +14 -21
  283. package/src/functions/get-react-native-block-styles.ts +6 -12
  284. package/src/functions/if-target.ts +2 -3
  285. package/src/functions/is-browser.ts +1 -1
  286. package/src/functions/is-editing.ts +2 -7
  287. package/src/functions/is-iframe.ts +1 -2
  288. package/src/functions/is-non-node-server.ts +9 -0
  289. package/src/functions/is-previewing.ts +1 -4
  290. package/src/functions/on-change.ts +2 -2
  291. package/src/functions/register-component.ts +24 -26
  292. package/src/functions/register.ts +6 -8
  293. package/src/functions/sanitize-react-native-block-styles.ts +17 -24
  294. package/src/functions/set-editor-settings.ts +5 -6
  295. package/src/functions/set.ts +3 -15
  296. package/src/functions/track/helpers.ts +8 -24
  297. package/src/functions/track/index.ts +37 -42
  298. package/src/functions/track/interaction.ts +21 -38
  299. package/src/functions/transform-block-properties.ts +1 -1
  300. package/src/functions/transform-block.ts +1 -1
  301. package/src/helpers/ab-tests.ts +64 -79
  302. package/src/helpers/canTrack.ts +2 -4
  303. package/src/helpers/cookie.ts +15 -46
  304. package/src/helpers/css.ts +4 -13
  305. package/src/helpers/flatten.ts +11 -16
  306. package/src/helpers/localStorage.ts +4 -8
  307. package/src/helpers/logger.ts +2 -2
  308. package/src/helpers/nullable.ts +1 -3
  309. package/src/helpers/preview-lru-cache/get.ts +8 -0
  310. package/src/helpers/preview-lru-cache/helpers.ts +9 -0
  311. package/src/helpers/preview-lru-cache/init.ts +17 -0
  312. package/src/helpers/preview-lru-cache/set.ts +18 -0
  313. package/src/helpers/preview-lru-cache/types.ts +12 -0
  314. package/src/helpers/sessionId.ts +12 -13
  315. package/src/helpers/time.ts +1 -3
  316. package/src/helpers/url.ts +1 -2
  317. package/src/helpers/uuid.ts +3 -3
  318. package/src/helpers/visitorId.ts +14 -17
  319. package/src/index-helpers/blocks-exports.ts +2 -2
  320. package/src/index-helpers/top-of-file.ts +1 -1
  321. package/src/index.ts +2 -13
  322. package/src/scripts/init-editing.ts +85 -98
  323. package/src/types/api-version.ts +1 -1
  324. package/src/types/builder-block.ts +1 -3
  325. package/src/types/builder-content.ts +7 -4
  326. package/src/types/builder-props.ts +10 -0
  327. package/src/types/can-track.ts +1 -1
  328. package/src/types/components.ts +17 -13
  329. package/src/types/deep-partial.ts +1 -7
  330. package/src/types/element.ts +1 -3
  331. package/src/types/enforced-partials.ts +6 -20
  332. package/src/types/input.ts +6 -9
  333. package/src/types/targets.ts +1 -6
  334. package/src/types/typescript.ts +9 -9
  335. package/package/blocks/util.d.ts +0 -4
  336. package/package/blocks/util.js +0 -13
  337. package/package/components/render-block/render-block.helpers.d.ts +0 -12
  338. package/package/components/render-block/render-block.svelte +0 -152
  339. package/package/components/render-block/render-block.svelte.d.ts +0 -24
  340. package/package/components/render-block/render-component.svelte +0 -21
  341. package/package/components/render-block/render-component.svelte.d.ts +0 -34
  342. package/package/components/render-block/render-repeated-block.svelte.d.ts +0 -23
  343. package/package/components/render-blocks.svelte.d.ts +0 -26
  344. package/package/components/render-content/builder-editing.svelte +0 -4
  345. package/package/components/render-content/builder-editing.svelte.d.ts +0 -14
  346. package/package/components/render-content/index.d.ts +0 -1
  347. package/package/components/render-content/index.js +0 -1
  348. package/package/components/render-content/render-content.helpers.d.ts +0 -7
  349. package/package/components/render-content/render-content.helpers.js +0 -30
  350. package/package/components/render-content/render-content.svelte.d.ts +0 -30
  351. package/package/functions/evaluate.test.js +0 -17
  352. package/package/functions/get-builder-search-params/fn.test.js +0 -13
  353. package/package/functions/get-content/generate-content-url.test.d.ts +0 -1
  354. package/package/functions/get-content/generate-content-url.test.js +0 -97
  355. package/package/functions/get-processed-block.test.d.ts +0 -1
  356. package/package/functions/get-processed-block.test.js +0 -33
  357. package/package/functions/on-change.test.d.ts +0 -1
  358. package/package/functions/on-change.test.js +0 -20
  359. package/package/functions/set.test.d.ts +0 -1
  360. package/package/functions/set.test.js +0 -16
  361. package/package/helpers/url.test.d.ts +0 -1
  362. package/package/helpers/url.test.js +0 -21
  363. package/src/blocks/util.ts +0 -18
  364. package/src/components/render-block/render-block.svelte +0 -173
  365. package/src/components/render-block/render-component.svelte +0 -40
  366. package/src/components/render-block/render-repeated-block.svelte +0 -25
  367. package/src/components/render-content/builder-editing.svelte +0 -4
  368. package/src/components/render-content/index.ts +0 -1
  369. package/src/components/render-content/render-content.helpers.ts +0 -48
  370. package/src/functions/evaluate.test.ts +0 -21
  371. package/src/functions/evaluate.ts +0 -99
  372. package/src/functions/get-builder-search-params/fn.test.ts +0 -19
  373. package/src/functions/get-content/generate-content-url.test.ts +0 -112
  374. package/src/functions/get-processed-block.test.ts +0 -35
  375. package/src/functions/on-change.test.ts +0 -23
  376. package/src/functions/set.test.ts +0 -19
  377. package/src/helpers/url.test.ts +0 -23
  378. /package/package/components/{render-block → block}/types.d.ts +0 -0
  379. /package/package/components/{render-block → block}/types.js +0 -0
  380. /package/package/components/{render-content/render-content.types.js → content/content.types.js} +0 -0
  381. /package/package/components/{render-content → content}/wrap-component-ref.d.ts +0 -0
  382. /package/package/components/{render-content → content}/wrap-component-ref.js +0 -0
  383. /package/package/components/{render-content-variants/render-content-variants.types.js → content-variants/content-variants.types.js} +0 -0
  384. /package/package/functions/{evaluate.test.d.ts → evaluate/types.js} +0 -0
  385. /package/package/{functions/get-builder-search-params/fn.test.d.ts → types/builder-props.js} +0 -0
@@ -1,25 +1,21 @@
1
1
  <script context="module" lang="ts">
2
- export type RenderBlockProps = {
3
- blocks?: BuilderBlock[];
4
- parent?: string;
5
- path?: string;
6
- styleProp?: Record<string, any>;
2
+ export type BlocksWrapperProps = {
3
+ blocks: BuilderBlock[] | undefined;
4
+ parent: string | undefined;
5
+ path: string | undefined;
6
+ styleProp: Record<string, any> | undefined;
7
7
  };
8
8
  </script>
9
9
 
10
10
  <script lang="ts">
11
- import { getContext } from "svelte";
11
+ import { isEditing } from "../../functions/is-editing.js";
12
+ import type { BuilderBlock } from "../../types/builder-block.js";
13
+ import type { PropsWithChildren } from "../../types/typescript.js";
12
14
 
13
- import BuilderContext from "../context/builder.context.js";
14
- import { isEditing } from "../functions/is-editing.js";
15
- import type { BuilderBlock } from "../types/builder-block.js";
16
- import BlockStyles from "./render-block/block-styles.svelte";
17
- import RenderBlock from "./render-block/render-block.svelte";
18
-
19
- export let blocks: RenderBlockProps["blocks"];
20
- export let parent: RenderBlockProps["parent"];
21
- export let path: RenderBlockProps["path"];
22
- export let styleProp: RenderBlockProps["styleProp"];
15
+ export let blocks: PropsWithChildren<BlocksWrapperProps>["blocks"];
16
+ export let parent: PropsWithChildren<BlocksWrapperProps>["parent"];
17
+ export let path: PropsWithChildren<BlocksWrapperProps>["path"];
18
+ export let styleProp: PropsWithChildren<BlocksWrapperProps>["styleProp"];
23
19
 
24
20
  function mitosis_styling(node, vars) {
25
21
  Object.entries(vars || {}).forEach(([p, v]) => {
@@ -31,8 +27,6 @@
31
27
  });
32
28
  }
33
29
 
34
- let builderContext = getContext(BuilderContext.key);
35
-
36
30
  function onClick() {
37
31
  if (isEditing() && !blocks?.length) {
38
32
  window.parent?.postMessage(
@@ -71,9 +65,7 @@
71
65
  class={className() + " div"}
72
66
  builder-path={path}
73
67
  builder-parent-id={parent}
74
- dataSet={{
75
- class: className(),
76
- }}
68
+ {...{}}
77
69
  on:click={(event) => {
78
70
  onClick();
79
71
  }}
@@ -84,17 +76,7 @@
84
76
  onClick();
85
77
  }}
86
78
  >
87
- {#if blocks}
88
- {#each blocks as block ("render-block-" + block.id)}
89
- <RenderBlock {block} context={builderContext} />
90
- {/each}
91
- {/if}
92
-
93
- {#if blocks}
94
- {#each blocks as block ("block-style-" + block.id)}
95
- <BlockStyles {block} context={$builderContext} />
96
- {/each}
97
- {/if}
79
+ <slot />
98
80
  </div>
99
81
 
100
82
  <style>
@@ -0,0 +1,51 @@
1
+ <script context="module" lang="ts">
2
+ export type BlocksProps = Partial<BlocksWrapperProps> & {
3
+ context?: Writable<BuilderContextInterface>;
4
+ registeredComponents?: RegisteredComponents;
5
+ };
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { getContext } from "svelte";
10
+
11
+ import BlockStyles from "../block/components/block-styles.svelte";
12
+ import Block from "../block/block.svelte";
13
+ import type { BlocksWrapperProps } from "./blocks-wrapper.svelte";
14
+ import BlocksWrapper from "./blocks-wrapper.svelte";
15
+ import type {
16
+ BuilderContextInterface,
17
+ RegisteredComponents,
18
+ } from "../../context/types.js";
19
+ import BuilderContext from "../../context/builder.context";
20
+ import ComponentsContext from "../../context/components.context";
21
+ import type { Writable } from "svelte/store";
22
+
23
+ export let blocks: BlocksProps["blocks"];
24
+ export let parent: BlocksProps["parent"];
25
+ export let path: BlocksProps["path"];
26
+ export let styleProp: BlocksProps["styleProp"];
27
+ export let context: BlocksProps["context"];
28
+ export let registeredComponents: BlocksProps["registeredComponents"];
29
+
30
+ let builderContext = getContext(BuilderContext.key);
31
+ let componentsContext = getContext(ComponentsContext.key);
32
+ </script>
33
+
34
+ <BlocksWrapper {blocks} {parent} {path} {styleProp}>
35
+ {#if blocks}
36
+ {#each blocks as block ("render-block-" + block.id)}
37
+ <Block
38
+ {block}
39
+ context={context || builderContext}
40
+ registeredComponents={registeredComponents ||
41
+ componentsContext.registeredComponents}
42
+ />
43
+ {/each}
44
+ {/if}
45
+
46
+ {#if blocks}
47
+ {#each blocks as block ("block-style-" + block.id)}
48
+ <BlockStyles {block} context={$context || $builderContext} />
49
+ {/each}
50
+ {/if}
51
+ </BlocksWrapper>
@@ -1,98 +1,58 @@
1
+ <script context="module" lang="ts">
2
+ type BuilderEditorProps = Omit<
3
+ ContentProps,
4
+ "customComponents" | "data" | "apiVersion" | "isSsrAbTest"
5
+ > & {
6
+ builderContextSignal: Writable<BuilderContextInterface>;
7
+ setBuilderContextSignal?: (signal: any) => any;
8
+ children?: any;
9
+ };
10
+ </script>
11
+
1
12
  <script lang="ts">
2
13
  import { onDestroy, onMount, setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
14
 
5
- import { getDefaultRegisteredComponents } from "../../constants/builder-registered-components.js";
6
- import type {
7
- BuilderRenderState,
8
- RegisteredComponent,
9
- RegisteredComponents,
10
- } from "../../context/types.js";
11
- import { evaluate } from "../../functions/evaluate.js";
12
- import { getContent } from "../../functions/get-content/index.js";
13
- import { fetch } from "../../functions/get-fetch.js";
14
- import { isBrowser } from "../../functions/is-browser.js";
15
- import { isEditing } from "../../functions/is-editing.js";
16
- import { isPreviewing } from "../../functions/is-previewing.js";
17
- import {
18
- components,
19
- createRegisterComponentMessage,
20
- } from "../../functions/register-component.js";
21
- import { _track } from "../../functions/track/index.js";
22
- import type {
23
- Breakpoints,
24
- BuilderContent,
25
- } from "../../types/builder-content.js";
26
- import type { Nullable } from "../../types/typescript.js";
27
- import RenderBlocks from "../render-blocks.svelte";
28
- import RenderContentStyles from "./components/render-styles.svelte";
29
- import builderContext from "../../context/builder.context.js";
15
+ import type { BuilderContextInterface } from "../../../context/types.js";
16
+ import { evaluate } from "../../../functions/evaluate";
17
+ import { fetch } from "../../../functions/get-fetch.js";
18
+ import { isBrowser } from "../../../functions/is-browser.js";
19
+ import { isEditing } from "../../../functions/is-editing.js";
20
+ import { createRegisterComponentMessage } from "../../../functions/register-component.js";
21
+ import { _track } from "../../../functions/track/index.js";
22
+ import builderContext from "../../../context/builder.context";
30
23
  import {
31
24
  registerInsertMenu,
32
25
  setupBrowserForEditing,
33
- } from "../../scripts/init-editing.js";
34
- import { checkIsDefined } from "../../helpers/nullable.js";
35
- import { getInteractionPropertiesForEvent } from "../../functions/track/interaction.js";
26
+ } from "../../../scripts/init-editing.js";
27
+ import { checkIsDefined } from "../../../helpers/nullable.js";
28
+ import { getInteractionPropertiesForEvent } from "../../../functions/track/interaction.js";
36
29
  import type {
37
- RenderContentProps,
30
+ ContentProps,
38
31
  BuilderComponentStateChange,
39
- } from "./render-content.types.js";
40
- import {
41
- getContentInitialValue,
42
- getContextStateInitialValue,
43
- } from "./render-content.helpers.js";
44
- import { TARGET } from "../../constants/target.js";
45
- import { logger } from "../../helpers/logger.js";
46
- import { getRenderContentScriptString } from "../render-content-variants/helpers.js";
47
- import { wrapComponentRef } from "./wrap-component-ref.js";
48
- import InlinedScript from "../inlined-script.svelte";
32
+ } from "../content.types.js";
33
+ import { logger } from "../../../helpers/logger.js";
34
+ import type { ComponentInfo } from "../../../types/components.js";
35
+ import { getContent } from "../../../functions/get-content/index.js";
36
+ import { isPreviewing } from "../../../functions/is-previewing.js";
37
+ import type { BuilderContent } from "../../../types/builder-content.js";
38
+ import { postPreviewContent } from "../../../helpers/preview-lru-cache/set.js";
39
+ import type { Writable } from "svelte/store";
49
40
 
50
- const isEvent = (attr) => attr.startsWith("on:");
51
- const isNonEvent = (attr) => !attr.startsWith("on:");
52
- const filterAttrs = (attrs = {}, filter) => {
53
- const validAttr = {};
54
- Object.keys(attrs).forEach((attr) => {
55
- if (filter(attr)) {
56
- validAttr[attr] = attrs[attr];
57
- }
58
- });
59
- return validAttr;
60
- };
61
- const setAttrs = (node, attrs = {}) => {
62
- const attrKeys = Object.keys(attrs);
63
- const setup = (attr) => node.addEventListener(attr.substr(3), attrs[attr]);
64
- const teardown = (attr) =>
65
- node.removeEventListener(attr.substr(3), attrs[attr]);
66
- attrKeys.map(setup);
67
- return {
68
- update(attrs = {}) {
69
- const attrKeys = Object.keys(attrs);
70
- attrKeys.map(teardown);
71
- attrKeys.map(setup);
72
- },
73
- destroy() {
74
- attrKeys.map(teardown);
75
- },
76
- };
77
- };
41
+ export let canTrack: BuilderEditorProps["canTrack"];
42
+ export let builderContextSignal: BuilderEditorProps["builderContextSignal"];
43
+ export let model: BuilderEditorProps["model"];
44
+ export let context: BuilderEditorProps["context"];
45
+ export let apiKey: BuilderEditorProps["apiKey"];
46
+ export let showContent: BuilderEditorProps["showContent"];
47
+ export let classNameProp: BuilderEditorProps["classNameProp"];
78
48
 
79
- export let canTrack: RenderContentProps["canTrack"];
80
- export let model: RenderContentProps["model"];
81
- export let context: RenderContentProps["context"];
82
- export let apiKey: RenderContentProps["apiKey"];
83
- export let content: RenderContentProps["content"];
84
- export let data: RenderContentProps["data"];
85
- export let locale: RenderContentProps["locale"];
86
- export let apiVersion: RenderContentProps["apiVersion"];
87
- export let customComponents: RenderContentProps["customComponents"];
88
- export let showContent: RenderContentProps["showContent"];
89
- export let classNameProp: RenderContentProps["classNameProp"];
90
- export let isSsrAbTest: RenderContentProps["isSsrAbTest"];
91
- export let includeRefs: RenderContentProps["includeRefs"];
92
- export let enrich: RenderContentProps["enrich"];
49
+ export let content: BuilderEditorProps["content"];
50
+ export let locale: BuilderEditorProps["locale"];
51
+ export let includeRefs: BuilderEditorProps["includeRefs"];
52
+ export let enrich: BuilderEditorProps["enrich"];
93
53
 
94
54
  function mergeNewContent(newContent: BuilderContent) {
95
- $builderContextSignal.content = {
55
+ const newContentValue = {
96
56
  ...$builderContextSignal.content,
97
57
  ...newContent,
98
58
  data: {
@@ -107,18 +67,7 @@
107
67
  $builderContextSignal.content?.meta?.breakpoints,
108
68
  },
109
69
  };
110
- }
111
- function setBreakpoints(breakpoints: Breakpoints) {
112
- $builderContextSignal.content = {
113
- ...$builderContextSignal.content,
114
- meta: {
115
- ...$builderContextSignal.content?.meta,
116
- breakpoints,
117
- },
118
- };
119
- }
120
- function contentSetState(newRootState: BuilderRenderState) {
121
- $builderContextSignal.rootState = newRootState;
70
+ $builderContextSignal.content = newContentValue;
122
71
  }
123
72
  function processMessage(event: MessageEvent) {
124
73
  const { data } = event;
@@ -131,7 +80,11 @@
131
80
  return;
132
81
  }
133
82
  if (breakpoints) {
134
- setBreakpoints(breakpoints);
83
+ mergeNewContent({
84
+ meta: {
85
+ breakpoints,
86
+ },
87
+ });
135
88
  }
136
89
  forceReRenderCount = forceReRenderCount + 1; // This is a hack to force Qwik to re-render.
137
90
  break;
@@ -151,10 +104,6 @@
151
104
 
152
105
  break;
153
106
  }
154
- case "builder.patchUpdates": {
155
- // TODO
156
- break;
157
- }
158
107
  }
159
108
  }
160
109
  }
@@ -167,7 +116,7 @@
167
116
  context: context || {},
168
117
  localState: undefined,
169
118
  rootState: $builderContextSignal.rootState,
170
- rootSetState: contentSetState,
119
+ rootSetState: $builderContextSignal.rootSetState,
171
120
  });
172
121
  }
173
122
  }
@@ -196,7 +145,7 @@
196
145
  context: context || {},
197
146
  localState: undefined,
198
147
  rootState: $builderContextSignal.rootState,
199
- rootSetState: contentSetState,
148
+ rootSetState: $builderContextSignal.rootSetState,
200
149
  })
201
150
  );
202
151
  }
@@ -208,7 +157,8 @@
208
157
  ...$builderContextSignal.rootState,
209
158
  [key]: json,
210
159
  };
211
- contentSetState(newState);
160
+ $builderContextSignal.rootSetState?.(newState);
161
+ httpReqsData[key] = true;
212
162
  })
213
163
  .catch((err) => {
214
164
  console.error("error fetching dynamic data", url, err);
@@ -248,55 +198,12 @@
248
198
 
249
199
  let elementRef;
250
200
 
251
- let forceReRenderCount = 0;
252
- let overrideContent = null;
253
- let update = 0;
254
201
  let canTrackToUse = checkIsDefined(canTrack) ? canTrack : true;
202
+ let forceReRenderCount = 0;
203
+ let lastUpdated = 0;
204
+ let shouldSendResetCookie = false;
255
205
  let httpReqsData = {};
256
206
  let clicked = false;
257
- let scriptStr = getRenderContentScriptString({
258
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain
259
- variationId: content?.testVariationId!,
260
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain
261
- contentId: content?.id!,
262
- });
263
- let builderContextSignal = writable({
264
- content: getContentInitialValue({
265
- content: content,
266
- data: data,
267
- }),
268
- localState: undefined,
269
- rootState: getContextStateInitialValue({
270
- content: content,
271
- data: data,
272
- locale: locale,
273
- }),
274
- rootSetState: contentSetState,
275
- context: context || {},
276
- apiKey: apiKey,
277
- apiVersion: apiVersion,
278
- registeredComponents: [
279
- ...getDefaultRegisteredComponents(),
280
- // While this `components` object is deprecated, we must maintain support for it.
281
- // Since users are able to override our default components, we need to make sure that we do not break such
282
- // existing usage.
283
- // This is why we spread `components` after the default Builder.io components, but before the `props.customComponents`,
284
- // which is the new standard way of providing custom components, and must therefore take precedence.
285
- ...components,
286
- ...(customComponents || []),
287
- ].reduce(
288
- (acc, { component, ...curr }) => ({
289
- ...acc,
290
- [curr.name]: {
291
- component:
292
- TARGET === "vue3" ? wrapComponentRef(component) : component,
293
- ...curr,
294
- },
295
- }),
296
- {} as RegisteredComponents
297
- ),
298
- inheritedStyles: {},
299
- });
300
207
 
301
208
  onMount(() => {
302
209
  if (!apiKey) {
@@ -307,6 +214,7 @@
307
214
  if (isBrowser()) {
308
215
  if (isEditing()) {
309
216
  forceReRenderCount = forceReRenderCount + 1;
217
+ window.addEventListener("message", processMessage);
310
218
  registerInsertMenu();
311
219
  setupBrowserForEditing({
312
220
  ...(locale
@@ -325,13 +233,12 @@
325
233
  }
326
234
  : {}),
327
235
  });
328
- Object.values<RegisteredComponent>(
329
- $builderContextSignal.registeredComponents
236
+ Object.values<ComponentInfo>(
237
+ $builderContextSignal.componentInfos
330
238
  ).forEach((registeredComponent) => {
331
239
  const message = createRegisterComponentMessage(registeredComponent);
332
240
  window.parent?.postMessage(message, "*");
333
241
  });
334
- window.addEventListener("message", processMessage);
335
242
  window.addEventListener(
336
243
  "builder:component:stateChangeListenerActivated",
337
244
  emitStateUpdate
@@ -348,7 +255,6 @@
348
255
  variationId: variationId !== contentId ? variationId : undefined,
349
256
  });
350
257
  }
351
-
352
258
  // override normal content in preview mode
353
259
  if (isPreviewing()) {
354
260
  const searchParams = new URL(location.href).searchParams;
@@ -376,7 +282,7 @@
376
282
  getContent({
377
283
  model: model,
378
284
  apiKey: apiKey,
379
- apiVersion: apiVersion,
285
+ apiVersion: $builderContextSignal.apiVersion,
380
286
  }).then((content) => {
381
287
  if (content) {
382
288
  mergeNewContent(content);
@@ -396,23 +302,25 @@
396
302
  }
397
303
  }
398
304
  $: onUpdateFn_0(...[content]);
399
- function onUpdateFn_1(..._args: any[]) {
305
+ function onUpdateFn_1(..._args: any[]) {}
306
+ $: onUpdateFn_1(...[shouldSendResetCookie]);
307
+ function onUpdateFn_2(..._args: any[]) {
400
308
  evaluateJsCode();
401
309
  }
402
- $: onUpdateFn_1(
310
+ $: onUpdateFn_2(
403
311
  ...[
404
312
  $builderContextSignal.content?.data?.jsCode,
405
313
  $builderContextSignal.rootState,
406
314
  ]
407
315
  );
408
- function onUpdateFn_2(..._args: any[]) {
316
+ function onUpdateFn_3(..._args: any[]) {
409
317
  runHttpRequests();
410
318
  }
411
- $: onUpdateFn_2(...[$builderContextSignal.content?.data?.httpRequests]);
412
- function onUpdateFn_3(..._args: any[]) {
319
+ $: onUpdateFn_3(...[$builderContextSignal.content?.data?.httpRequests]);
320
+ function onUpdateFn_4(..._args: any[]) {
413
321
  emitStateUpdate();
414
322
  }
415
- $: onUpdateFn_3(...[$builderContextSignal.rootState]);
323
+ $: onUpdateFn_4(...[$builderContextSignal.rootState]);
416
324
 
417
325
  setContext(builderContext.key, builderContextSignal);
418
326
 
@@ -429,24 +337,14 @@
429
337
 
430
338
  {#if $builderContextSignal.content}
431
339
  <div
340
+ key={forceReRenderCount}
432
341
  bind:this={elementRef}
433
342
  on:click={(event) => {
434
343
  onClick(event);
435
344
  }}
436
345
  builder-content-id={$builderContextSignal.content?.id}
437
346
  builder-model={model}
438
- {...filterAttrs(
439
- TARGET === "reactNative"
440
- ? {
441
- dataSet: {
442
- // currently, we can't set the actual ID here.
443
- // we don't need it right now, we just need to identify content divs for testing.
444
- "builder-content-id": "",
445
- },
446
- }
447
- : {},
448
- isNonEvent
449
- )}
347
+ {...{}}
450
348
  {...showContent
451
349
  ? {}
452
350
  : {
@@ -454,33 +352,7 @@
454
352
  "aria-hidden": true,
455
353
  }}
456
354
  class={classNameProp}
457
- use:setAttrs={filterAttrs(
458
- TARGET === "reactNative"
459
- ? {
460
- dataSet: {
461
- // currently, we can't set the actual ID here.
462
- // we don't need it right now, we just need to identify content divs for testing.
463
- "builder-content-id": "",
464
- },
465
- }
466
- : {},
467
- isEvent
468
- )}
469
355
  >
470
- {#if isSsrAbTest}
471
- <InlinedScript {scriptStr} />
472
- {/if}
473
-
474
- {#if TARGET !== "reactNative"}
475
- <RenderContentStyles
476
- contentId={$builderContextSignal.content?.id}
477
- cssCode={$builderContextSignal.content?.data?.cssCode}
478
- customFonts={$builderContextSignal.content?.data?.customFonts}
479
- />
480
- {/if}
481
- <RenderBlocks
482
- blocks={$builderContextSignal.content?.data?.blocks}
483
- key={forceReRenderCount}
484
- />
356
+ <slot />
485
357
  </div>
486
358
  {/if}
@@ -6,12 +6,9 @@ export interface CustomFont {
6
6
  [key: string]: string;
7
7
  };
8
8
  }
9
-
10
9
  const getCssFromFont = (font: CustomFont) => {
11
10
  // TODO: compute what font sizes are used and only load those.......
12
- const family =
13
- font.family +
14
- (font.kind && !font.kind.includes('#') ? ', ' + font.kind : '');
11
+ const family = font.family + (font.kind && !font.kind.includes('#') ? ', ' + font.kind : '');
15
12
  const name = family.split(',')[0];
16
13
  const url = font.fileUrl ?? font?.files?.regular;
17
14
  let str = '';
@@ -25,7 +22,6 @@ font-weight: 400;
25
22
  }
26
23
  `.trim();
27
24
  }
28
-
29
25
  if (font.files) {
30
26
  for (const weight in font.files) {
31
27
  const isNumber = String(Number(weight)) === weight;
@@ -48,19 +44,21 @@ font-weight: ${weight};
48
44
  }
49
45
  return str;
50
46
  };
51
-
52
- export const getFontCss = ({ customFonts }: { customFonts?: CustomFont[] }) => {
47
+ export const getFontCss = ({
48
+ customFonts
49
+ }: {
50
+ customFonts?: CustomFont[];
51
+ }) => {
53
52
  // TODO: flag for this
54
53
  // if (!this.builder.allowCustomFonts) {
55
54
  // return '';
56
55
  // }
57
56
  // TODO: separate internal data from external
58
- return customFonts?.map((font) => getCssFromFont(font))?.join(' ') || '';
57
+ return customFonts?.map(font => getCssFromFont(font))?.join(' ') || '';
59
58
  };
60
-
61
59
  export const getCss = ({
62
60
  cssCode,
63
- contentId,
61
+ contentId
64
62
  }: {
65
63
  cssCode?: string;
66
64
  contentId?: string;
@@ -76,4 +74,4 @@ export const getCss = ({
76
74
  // E.g. `& .foobar { ... }` to scope CSS
77
75
  // TODO: handle if '&' is within a string like `content: "&"`
78
76
  return cssCode?.replace(/&/g, `div[builder-content-id="${contentId}"]`) || '';
79
- };
77
+ }
@@ -8,9 +8,9 @@
8
8
 
9
9
  <script lang="ts">
10
10
  import InlinedStyles from "../../inlined-styles.svelte";
11
- import type { CustomFont } from "./render-styles.helpers";
12
- import { getCss } from "./render-styles.helpers";
13
- import { getFontCss } from "./render-styles.helpers";
11
+ import type { CustomFont } from "./styles.helpers.js";
12
+ import { getCss } from "./styles.helpers.js";
13
+ import { getFontCss } from "./styles.helpers.js";
14
14
 
15
15
  export let cssCode: Props["cssCode"];
16
16
  export let contentId: Props["contentId"];
@@ -0,0 +1,42 @@
1
+ import type { BuilderRenderState } from '../../context/types.js';
2
+ import type { BuilderContent } from '../../types/builder-content.js';
3
+ import type { Nullable } from '../../types/typescript.js';
4
+ import type { ContentProps } from './content.types.js';
5
+ export const getContextStateInitialValue = ({
6
+ content,
7
+ data,
8
+ locale
9
+ }: Pick<ContentProps, 'content' | 'data' | 'locale'>) => {
10
+ const defaultValues: BuilderRenderState = {};
11
+
12
+ // set default values for content state inputs
13
+ content?.data?.inputs?.forEach(input => {
14
+ if (input.name && input.defaultValue !== undefined && content?.data?.state && content.data.state[input.name] === undefined) {
15
+ defaultValues[input.name] = input.defaultValue;
16
+ }
17
+ });
18
+ const stateToUse: BuilderRenderState = {
19
+ ...content?.data?.state,
20
+ ...data,
21
+ ...(locale ? {
22
+ locale
23
+ } : {})
24
+ };
25
+ return {
26
+ ...defaultValues,
27
+ ...stateToUse
28
+ };
29
+ };
30
+ export const getContentInitialValue = ({
31
+ content,
32
+ data
33
+ }: Pick<ContentProps, 'content' | 'data'>): Nullable<BuilderContent> => {
34
+ return !content ? undefined : {
35
+ ...content,
36
+ data: {
37
+ ...content?.data,
38
+ ...data
39
+ },
40
+ meta: content?.meta
41
+ };
42
+ }