@builder.io/sdk-react 0.5.9 → 0.6.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 (322) hide show
  1. package/README.md +0 -4
  2. package/lib/browser/index.cjs +97 -0
  3. package/lib/browser/index.mjs +2598 -0
  4. package/lib/browser/server-entry-2e639417.js +2 -0
  5. package/lib/browser/server-entry-f7504f89.mjs +534 -0
  6. package/lib/browser/server-entry.cjs +1 -0
  7. package/lib/browser/server-entry.mjs +16 -0
  8. package/lib/edge/index.cjs +117 -0
  9. package/lib/edge/index.mjs +5042 -0
  10. package/lib/edge/server-entry-2e639417.js +2 -0
  11. package/lib/edge/server-entry-f7504f89.mjs +534 -0
  12. package/lib/edge/server-entry.cjs +1 -0
  13. package/lib/edge/server-entry.mjs +16 -0
  14. package/lib/node/index.cjs +97 -0
  15. package/lib/node/index.mjs +2598 -0
  16. package/lib/node/server-entry-2e639417.js +2 -0
  17. package/lib/node/server-entry-f7504f89.mjs +534 -0
  18. package/lib/node/server-entry.cjs +1 -0
  19. package/lib/node/server-entry.mjs +16 -0
  20. package/package.json +101 -11
  21. package/types/constants/sdk-version.d.ts +1 -0
  22. package/types/functions/deopt.d.ts +4 -0
  23. package/types/functions/evaluate/edge-runtime/edge-runtime.d.ts +2 -0
  24. package/types/functions/evaluate/edge-runtime/index.d.ts +1 -0
  25. package/types/functions/evaluate/placeholder-runtime.d.ts +2 -0
  26. package/{dist → types}/functions/fetch-builder-props.d.ts +2 -1
  27. package/{dist → types}/functions/get-content/index.d.ts +4 -5
  28. package/types/functions/is-edge-runtime.d.ts +4 -0
  29. package/{dist → types}/index-helpers/blocks-exports.d.ts +2 -2
  30. package/dist/blocks/BaseText.js +0 -9
  31. package/dist/blocks/button/button.js +0 -12
  32. package/dist/blocks/button/component-info.js +0 -34
  33. package/dist/blocks/columns/columns.js +0 -121
  34. package/dist/blocks/columns/component-info.js +0 -219
  35. package/dist/blocks/custom-code/component-info.js +0 -23
  36. package/dist/blocks/custom-code/custom-code.js +0 -51
  37. package/dist/blocks/embed/component-info.js +0 -39
  38. package/dist/blocks/embed/embed.js +0 -42
  39. package/dist/blocks/embed/helpers.js +0 -2
  40. package/dist/blocks/form/component-info.js +0 -232
  41. package/dist/blocks/form/form.js +0 -6
  42. package/dist/blocks/fragment/component-info.js +0 -7
  43. package/dist/blocks/fragment/fragment.js +0 -6
  44. package/dist/blocks/helpers.js +0 -40
  45. package/dist/blocks/image/component-info.js +0 -122
  46. package/dist/blocks/image/image.helpers.js +0 -47
  47. package/dist/blocks/image/image.js +0 -82
  48. package/dist/blocks/img/component-info.js +0 -15
  49. package/dist/blocks/img/img.js +0 -10
  50. package/dist/blocks/input/component-info.js +0 -46
  51. package/dist/blocks/input/input.js +0 -7
  52. package/dist/blocks/raw-text/component-info.js +0 -10
  53. package/dist/blocks/raw-text/raw-text.js +0 -6
  54. package/dist/blocks/section/component-info.js +0 -40
  55. package/dist/blocks/section/section.js +0 -17
  56. package/dist/blocks/select/component-info.js +0 -43
  57. package/dist/blocks/select/select.js +0 -7
  58. package/dist/blocks/submit-button/component-info.js +0 -26
  59. package/dist/blocks/submit-button/submit-button.js +0 -6
  60. package/dist/blocks/symbol/component-info.js +0 -34
  61. package/dist/blocks/symbol/symbol.helpers.js +0 -31
  62. package/dist/blocks/symbol/symbol.js +0 -45
  63. package/dist/blocks/text/component-info.js +0 -19
  64. package/dist/blocks/text/text.js +0 -8
  65. package/dist/blocks/textarea/component-info.js +0 -37
  66. package/dist/blocks/textarea/textarea.js +0 -6
  67. package/dist/blocks/video/component-info.js +0 -82
  68. package/dist/blocks/video/video.js +0 -50
  69. package/dist/components/block/block.helpers.js +0 -69
  70. package/dist/components/block/block.js +0 -94
  71. package/dist/components/block/components/block-styles.js +0 -65
  72. package/dist/components/block/components/block-wrapper.js +0 -36
  73. package/dist/components/block/components/component-ref/component-ref.helpers.js +0 -22
  74. package/dist/components/block/components/component-ref/component-ref.js +0 -23
  75. package/dist/components/block/components/interactive-element.js +0 -20
  76. package/dist/components/block/components/repeated-block.js +0 -11
  77. package/dist/components/block/types.js +0 -1
  78. package/dist/components/blocks/blocks-wrapper.js +0 -38
  79. package/dist/components/blocks/blocks.js +0 -17
  80. package/dist/components/content/components/enable-editor.js +0 -271
  81. package/dist/components/content/components/styles.helpers.js +0 -58
  82. package/dist/components/content/components/styles.js +0 -32
  83. package/dist/components/content/content.helpers.js +0 -30
  84. package/dist/components/content/content.js +0 -85
  85. package/dist/components/content/content.types.js +0 -1
  86. package/dist/components/content/index.js +0 -1
  87. package/dist/components/content/wrap-component-ref.js +0 -6
  88. package/dist/components/content-variants/content-variants.js +0 -52
  89. package/dist/components/content-variants/content-variants.types.js +0 -1
  90. package/dist/components/content-variants/helpers.js +0 -189
  91. package/dist/components/inlined-script.js +0 -6
  92. package/dist/components/inlined-styles.js +0 -6
  93. package/dist/constants/builder-registered-components.js +0 -60
  94. package/dist/constants/device-sizes.js +0 -45
  95. package/dist/constants/sdk-version.d.ts +0 -1
  96. package/dist/constants/sdk-version.js +0 -1
  97. package/dist/constants/target.js +0 -2
  98. package/dist/context/builder.context.js +0 -12
  99. package/dist/context/components.context.js +0 -2
  100. package/dist/context/types.js +0 -1
  101. package/dist/functions/apply-patch-with-mutation.js +0 -54
  102. package/dist/functions/camel-to-kebab-case.js +0 -1
  103. package/dist/functions/evaluate/browser-runtime/browser.js +0 -31
  104. package/dist/functions/evaluate/browser-runtime/index.js +0 -1
  105. package/dist/functions/evaluate/evaluate.js +0 -47
  106. package/dist/functions/evaluate/helpers.js +0 -10
  107. package/dist/functions/evaluate/index.js +0 -1
  108. package/dist/functions/evaluate/node-runtime/index.js +0 -1
  109. package/dist/functions/evaluate/non-node-runtime/acorn-interpreter.js +0 -3111
  110. package/dist/functions/evaluate/non-node-runtime/index.d.ts +0 -1
  111. package/dist/functions/evaluate/non-node-runtime/index.js +0 -2
  112. package/dist/functions/evaluate/non-node-runtime/non-node-runtime.d.ts +0 -2
  113. package/dist/functions/evaluate/non-node-runtime/non-node-runtime.js +0 -83
  114. package/dist/functions/event-handler-name.js +0 -4
  115. package/dist/functions/extract-text-styles.js +0 -22
  116. package/dist/functions/fast-clone.js +0 -4
  117. package/dist/functions/fetch-builder-props.js +0 -25
  118. package/dist/functions/get-block-actions-handler.js +0 -10
  119. package/dist/functions/get-block-actions.js +0 -28
  120. package/dist/functions/get-block-component-options.js +0 -10
  121. package/dist/functions/get-block-properties.js +0 -72
  122. package/dist/functions/get-builder-search-params/index.js +0 -38
  123. package/dist/functions/get-content/generate-content-url.js +0 -33
  124. package/dist/functions/get-content/index.js +0 -100
  125. package/dist/functions/get-content/types.js +0 -1
  126. package/dist/functions/get-fetch.js +0 -11
  127. package/dist/functions/get-global-this.js +0 -15
  128. package/dist/functions/get-processed-block.js +0 -46
  129. package/dist/functions/get-react-native-block-styles.js +0 -17
  130. package/dist/functions/is-browser.js +0 -3
  131. package/dist/functions/is-editing.js +0 -5
  132. package/dist/functions/is-iframe.js +0 -4
  133. package/dist/functions/is-non-node-server.d.ts +0 -4
  134. package/dist/functions/is-non-node-server.js +0 -8
  135. package/dist/functions/is-previewing.js +0 -11
  136. package/dist/functions/on-change.js +0 -28
  137. package/dist/functions/register-component.js +0 -38
  138. package/dist/functions/register.js +0 -27
  139. package/dist/functions/sanitize-react-native-block-styles.js +0 -61
  140. package/dist/functions/set-editor-settings.js +0 -12
  141. package/dist/functions/set.js +0 -14
  142. package/dist/functions/track/helpers.js +0 -51
  143. package/dist/functions/track/index.js +0 -71
  144. package/dist/functions/track/interaction.js +0 -53
  145. package/dist/functions/transform-block-properties.js +0 -5
  146. package/dist/functions/transform-block.js +0 -4
  147. package/dist/helpers/ab-tests.js +0 -122
  148. package/dist/helpers/canTrack.js +0 -2
  149. package/dist/helpers/cookie.js +0 -55
  150. package/dist/helpers/css.js +0 -27
  151. package/dist/helpers/flatten.js +0 -19
  152. package/dist/helpers/localStorage.js +0 -24
  153. package/dist/helpers/logger.js +0 -7
  154. package/dist/helpers/nullable.js +0 -1
  155. package/dist/helpers/preview-lru-cache/get.js +0 -3
  156. package/dist/helpers/preview-lru-cache/helpers.js +0 -0
  157. package/dist/helpers/preview-lru-cache/init.js +0 -6
  158. package/dist/helpers/preview-lru-cache/set.js +0 -5
  159. package/dist/helpers/preview-lru-cache/types.js +0 -0
  160. package/dist/helpers/sessionId.js +0 -30
  161. package/dist/helpers/time.js +0 -2
  162. package/dist/helpers/url.js +0 -15
  163. package/dist/helpers/uuid.js +0 -15
  164. package/dist/helpers/visitorId.js +0 -30
  165. package/dist/index-helpers/blocks-exports.js +0 -19
  166. package/dist/index-helpers/top-of-file.js +0 -4
  167. package/dist/index.js +0 -7
  168. package/dist/scripts/init-editing.js +0 -110
  169. package/dist/server-index.js +0 -10
  170. package/dist/types/api-version.js +0 -1
  171. package/dist/types/builder-block.js +0 -1
  172. package/dist/types/builder-content.js +0 -1
  173. package/dist/types/builder-props.js +0 -1
  174. package/dist/types/can-track.js +0 -1
  175. package/dist/types/components.js +0 -1
  176. package/dist/types/deep-partial.js +0 -1
  177. package/dist/types/element.js +0 -1
  178. package/dist/types/enforced-partials.js +0 -1
  179. package/dist/types/input.js +0 -1
  180. package/dist/types/targets.js +0 -1
  181. package/dist/types/typescript.js +0 -1
  182. /package/{dist → types}/blocks/BaseText.d.ts +0 -0
  183. /package/{dist → types}/blocks/button/button.d.ts +0 -0
  184. /package/{dist → types}/blocks/button/component-info.d.ts +0 -0
  185. /package/{dist → types}/blocks/columns/columns.d.ts +0 -0
  186. /package/{dist → types}/blocks/columns/component-info.d.ts +0 -0
  187. /package/{dist → types}/blocks/custom-code/component-info.d.ts +0 -0
  188. /package/{dist → types}/blocks/custom-code/custom-code.d.ts +0 -0
  189. /package/{dist → types}/blocks/embed/component-info.d.ts +0 -0
  190. /package/{dist → types}/blocks/embed/embed.d.ts +0 -0
  191. /package/{dist → types}/blocks/embed/helpers.d.ts +0 -0
  192. /package/{dist → types}/blocks/form/component-info.d.ts +0 -0
  193. /package/{dist → types}/blocks/form/form.d.ts +0 -0
  194. /package/{dist → types}/blocks/fragment/component-info.d.ts +0 -0
  195. /package/{dist → types}/blocks/fragment/fragment.d.ts +0 -0
  196. /package/{dist → types}/blocks/helpers.d.ts +0 -0
  197. /package/{dist → types}/blocks/image/component-info.d.ts +0 -0
  198. /package/{dist → types}/blocks/image/image.d.ts +0 -0
  199. /package/{dist → types}/blocks/image/image.helpers.d.ts +0 -0
  200. /package/{dist → types}/blocks/img/component-info.d.ts +0 -0
  201. /package/{dist → types}/blocks/img/img.d.ts +0 -0
  202. /package/{dist → types}/blocks/input/component-info.d.ts +0 -0
  203. /package/{dist → types}/blocks/input/input.d.ts +0 -0
  204. /package/{dist → types}/blocks/raw-text/component-info.d.ts +0 -0
  205. /package/{dist → types}/blocks/raw-text/raw-text.d.ts +0 -0
  206. /package/{dist → types}/blocks/section/component-info.d.ts +0 -0
  207. /package/{dist → types}/blocks/section/section.d.ts +0 -0
  208. /package/{dist → types}/blocks/select/component-info.d.ts +0 -0
  209. /package/{dist → types}/blocks/select/select.d.ts +0 -0
  210. /package/{dist → types}/blocks/submit-button/component-info.d.ts +0 -0
  211. /package/{dist → types}/blocks/submit-button/submit-button.d.ts +0 -0
  212. /package/{dist → types}/blocks/symbol/component-info.d.ts +0 -0
  213. /package/{dist → types}/blocks/symbol/symbol.d.ts +0 -0
  214. /package/{dist → types}/blocks/symbol/symbol.helpers.d.ts +0 -0
  215. /package/{dist → types}/blocks/text/component-info.d.ts +0 -0
  216. /package/{dist → types}/blocks/text/text.d.ts +0 -0
  217. /package/{dist → types}/blocks/textarea/component-info.d.ts +0 -0
  218. /package/{dist → types}/blocks/textarea/textarea.d.ts +0 -0
  219. /package/{dist → types}/blocks/video/component-info.d.ts +0 -0
  220. /package/{dist → types}/blocks/video/video.d.ts +0 -0
  221. /package/{dist → types}/components/block/block.d.ts +0 -0
  222. /package/{dist → types}/components/block/block.helpers.d.ts +0 -0
  223. /package/{dist → types}/components/block/components/block-styles.d.ts +0 -0
  224. /package/{dist → types}/components/block/components/block-wrapper.d.ts +0 -0
  225. /package/{dist → types}/components/block/components/component-ref/component-ref.d.ts +0 -0
  226. /package/{dist → types}/components/block/components/component-ref/component-ref.helpers.d.ts +0 -0
  227. /package/{dist → types}/components/block/components/interactive-element.d.ts +0 -0
  228. /package/{dist → types}/components/block/components/repeated-block.d.ts +0 -0
  229. /package/{dist → types}/components/block/types.d.ts +0 -0
  230. /package/{dist → types}/components/blocks/blocks-wrapper.d.ts +0 -0
  231. /package/{dist → types}/components/blocks/blocks.d.ts +0 -0
  232. /package/{dist → types}/components/content/components/enable-editor.d.ts +0 -0
  233. /package/{dist → types}/components/content/components/styles.d.ts +0 -0
  234. /package/{dist → types}/components/content/components/styles.helpers.d.ts +0 -0
  235. /package/{dist → types}/components/content/content.d.ts +0 -0
  236. /package/{dist → types}/components/content/content.helpers.d.ts +0 -0
  237. /package/{dist → types}/components/content/content.types.d.ts +0 -0
  238. /package/{dist → types}/components/content/index.d.ts +0 -0
  239. /package/{dist → types}/components/content/wrap-component-ref.d.ts +0 -0
  240. /package/{dist → types}/components/content-variants/content-variants.d.ts +0 -0
  241. /package/{dist → types}/components/content-variants/content-variants.types.d.ts +0 -0
  242. /package/{dist → types}/components/content-variants/helpers.d.ts +0 -0
  243. /package/{dist → types}/components/inlined-script.d.ts +0 -0
  244. /package/{dist → types}/components/inlined-styles.d.ts +0 -0
  245. /package/{dist → types}/constants/builder-registered-components.d.ts +0 -0
  246. /package/{dist → types}/constants/device-sizes.d.ts +0 -0
  247. /package/{dist → types}/constants/target.d.ts +0 -0
  248. /package/{dist → types}/context/builder.context.d.ts +0 -0
  249. /package/{dist → types}/context/components.context.d.ts +0 -0
  250. /package/{dist → types}/context/types.d.ts +0 -0
  251. /package/{dist → types}/functions/apply-patch-with-mutation.d.ts +0 -0
  252. /package/{dist → types}/functions/camel-to-kebab-case.d.ts +0 -0
  253. /package/{dist → types}/functions/evaluate/browser-runtime/browser.d.ts +0 -0
  254. /package/{dist → types}/functions/evaluate/browser-runtime/index.d.ts +0 -0
  255. /package/{dist/functions/evaluate/non-node-runtime → types/functions/evaluate/edge-runtime}/acorn-interpreter.d.ts +0 -0
  256. /package/{dist → types}/functions/evaluate/evaluate.d.ts +0 -0
  257. /package/{dist → types}/functions/evaluate/helpers.d.ts +0 -0
  258. /package/{dist → types}/functions/evaluate/index.d.ts +0 -0
  259. /package/{dist → types}/functions/evaluate/node-runtime/index.d.ts +0 -0
  260. /package/{dist → types}/functions/event-handler-name.d.ts +0 -0
  261. /package/{dist → types}/functions/extract-text-styles.d.ts +0 -0
  262. /package/{dist → types}/functions/fast-clone.d.ts +0 -0
  263. /package/{dist → types}/functions/get-block-actions-handler.d.ts +0 -0
  264. /package/{dist → types}/functions/get-block-actions.d.ts +0 -0
  265. /package/{dist → types}/functions/get-block-component-options.d.ts +0 -0
  266. /package/{dist → types}/functions/get-block-properties.d.ts +0 -0
  267. /package/{dist → types}/functions/get-builder-search-params/index.d.ts +0 -0
  268. /package/{dist → types}/functions/get-content/generate-content-url.d.ts +0 -0
  269. /package/{dist → types}/functions/get-content/types.d.ts +0 -0
  270. /package/{dist → types}/functions/get-fetch.d.ts +0 -0
  271. /package/{dist → types}/functions/get-global-this.d.ts +0 -0
  272. /package/{dist → types}/functions/get-processed-block.d.ts +0 -0
  273. /package/{dist → types}/functions/get-react-native-block-styles.d.ts +0 -0
  274. /package/{dist → types}/functions/is-browser.d.ts +0 -0
  275. /package/{dist → types}/functions/is-editing.d.ts +0 -0
  276. /package/{dist → types}/functions/is-iframe.d.ts +0 -0
  277. /package/{dist → types}/functions/is-previewing.d.ts +0 -0
  278. /package/{dist → types}/functions/on-change.d.ts +0 -0
  279. /package/{dist → types}/functions/register-component.d.ts +0 -0
  280. /package/{dist → types}/functions/register.d.ts +0 -0
  281. /package/{dist → types}/functions/sanitize-react-native-block-styles.d.ts +0 -0
  282. /package/{dist → types}/functions/set-editor-settings.d.ts +0 -0
  283. /package/{dist → types}/functions/set.d.ts +0 -0
  284. /package/{dist → types}/functions/track/helpers.d.ts +0 -0
  285. /package/{dist → types}/functions/track/index.d.ts +0 -0
  286. /package/{dist → types}/functions/track/interaction.d.ts +0 -0
  287. /package/{dist → types}/functions/transform-block-properties.d.ts +0 -0
  288. /package/{dist → types}/functions/transform-block.d.ts +0 -0
  289. /package/{dist → types}/helpers/ab-tests.d.ts +0 -0
  290. /package/{dist → types}/helpers/canTrack.d.ts +0 -0
  291. /package/{dist → types}/helpers/cookie.d.ts +0 -0
  292. /package/{dist → types}/helpers/css.d.ts +0 -0
  293. /package/{dist → types}/helpers/flatten.d.ts +0 -0
  294. /package/{dist → types}/helpers/localStorage.d.ts +0 -0
  295. /package/{dist → types}/helpers/logger.d.ts +0 -0
  296. /package/{dist → types}/helpers/nullable.d.ts +0 -0
  297. /package/{dist → types}/helpers/preview-lru-cache/get.d.ts +0 -0
  298. /package/{dist → types}/helpers/preview-lru-cache/helpers.d.ts +0 -0
  299. /package/{dist → types}/helpers/preview-lru-cache/init.d.ts +0 -0
  300. /package/{dist → types}/helpers/preview-lru-cache/set.d.ts +0 -0
  301. /package/{dist → types}/helpers/preview-lru-cache/types.d.ts +0 -0
  302. /package/{dist → types}/helpers/sessionId.d.ts +0 -0
  303. /package/{dist → types}/helpers/time.d.ts +0 -0
  304. /package/{dist → types}/helpers/url.d.ts +0 -0
  305. /package/{dist → types}/helpers/uuid.d.ts +0 -0
  306. /package/{dist → types}/helpers/visitorId.d.ts +0 -0
  307. /package/{dist → types}/index-helpers/top-of-file.d.ts +0 -0
  308. /package/{dist → types}/index.d.ts +0 -0
  309. /package/{dist → types}/scripts/init-editing.d.ts +0 -0
  310. /package/{dist → types}/server-index.d.ts +0 -0
  311. /package/{dist → types}/types/api-version.d.ts +0 -0
  312. /package/{dist → types}/types/builder-block.d.ts +0 -0
  313. /package/{dist → types}/types/builder-content.d.ts +0 -0
  314. /package/{dist → types}/types/builder-props.d.ts +0 -0
  315. /package/{dist → types}/types/can-track.d.ts +0 -0
  316. /package/{dist → types}/types/components.d.ts +0 -0
  317. /package/{dist → types}/types/deep-partial.d.ts +0 -0
  318. /package/{dist → types}/types/element.d.ts +0 -0
  319. /package/{dist → types}/types/enforced-partials.d.ts +0 -0
  320. /package/{dist → types}/types/input.d.ts +0 -0
  321. /package/{dist → types}/types/targets.d.ts +0 -0
  322. /package/{dist → types}/types/typescript.d.ts +0 -0
@@ -1,69 +0,0 @@
1
- import { evaluate } from '../../functions/evaluate/index.js';
2
- import { getProcessedBlock } from '../../functions/get-processed-block.js';
3
- /**
4
- * https://developer.mozilla.org/en-US/docs/Glossary/Empty_element
5
- */
6
- const EMPTY_HTML_ELEMENTS = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
7
- export const isEmptyHtmlElement = (tagName) => {
8
- return typeof tagName === 'string' && EMPTY_HTML_ELEMENTS.includes(tagName.toLowerCase());
9
- };
10
- export const getComponent = ({ block, context, registeredComponents }) => {
11
- const componentName = getProcessedBlock({
12
- block,
13
- localState: context.localState,
14
- rootState: context.rootState,
15
- rootSetState: context.rootSetState,
16
- context: context.context,
17
- shouldEvaluateBindings: false
18
- }).component?.name;
19
- if (!componentName) {
20
- return null;
21
- }
22
- const ref = registeredComponents[componentName];
23
- if (!ref) {
24
- // TODO: Public doc page with more info about this message
25
- console.warn(`
26
- Could not find a registered component named "${componentName}".
27
- If you registered it, is the file that registered it imported by the file that needs to render it?`);
28
- return undefined;
29
- }
30
- else {
31
- return ref;
32
- }
33
- };
34
- export const getRepeatItemData = ({ block, context }) => {
35
- /**
36
- * we don't use `state.processedBlock` here because the processing done within its logic includes evaluating the block's bindings,
37
- * which will not work if there is a repeat.
38
- */
39
- const { repeat, ...blockWithoutRepeat } = block;
40
- if (!repeat?.collection) {
41
- return undefined;
42
- }
43
- const itemsArray = evaluate({
44
- code: repeat.collection,
45
- localState: context.localState,
46
- rootState: context.rootState,
47
- rootSetState: context.rootSetState,
48
- context: context.context
49
- });
50
- if (!Array.isArray(itemsArray)) {
51
- return undefined;
52
- }
53
- const collectionName = repeat.collection.split('.').pop();
54
- const itemNameToUse = repeat.itemName || (collectionName ? collectionName + 'Item' : 'item');
55
- const repeatArray = itemsArray.map((item, index) => ({
56
- context: {
57
- ...context,
58
- localState: {
59
- ...context.localState,
60
- $index: index,
61
- $item: item,
62
- [itemNameToUse]: item,
63
- [`$${itemNameToUse}Index`]: index
64
- }
65
- },
66
- block: blockWithoutRepeat
67
- }));
68
- return repeatArray;
69
- };
@@ -1,94 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState } from "react";
4
- import { getBlockComponentOptions } from "../../functions/get-block-component-options.js";
5
- import { getProcessedBlock } from "../../functions/get-processed-block.js";
6
- import BlockStyles from "./components/block-styles";
7
- import { getComponent, getRepeatItemData, isEmptyHtmlElement, } from "./block.helpers.js";
8
- import RepeatedBlock from "./components/repeated-block";
9
- import ComponentRef from "./components/component-ref/component-ref";
10
- import BlockWrapper from "./components/block-wrapper";
11
- function Block(props) {
12
- function blockComponent() {
13
- return getComponent({
14
- block: props.block,
15
- context: props.context,
16
- registeredComponents: props.registeredComponents,
17
- });
18
- }
19
- function repeatItem() {
20
- return getRepeatItemData({
21
- block: props.block,
22
- context: props.context,
23
- });
24
- }
25
- function processedBlock() {
26
- return repeatItem()
27
- ? props.block
28
- : getProcessedBlock({
29
- block: props.block,
30
- localState: props.context.localState,
31
- rootState: props.context.rootState,
32
- rootSetState: props.context.rootSetState,
33
- context: props.context.context,
34
- shouldEvaluateBindings: true,
35
- });
36
- }
37
- function Tag() {
38
- return props.block.tagName || "div";
39
- }
40
- function canShowBlock() {
41
- if ("hide" in processedBlock()) {
42
- return !processedBlock().hide;
43
- }
44
- if ("show" in processedBlock()) {
45
- return processedBlock().show;
46
- }
47
- return true;
48
- }
49
- function childrenWithoutParentComponent() {
50
- /**
51
- * When there is no `componentRef`, there might still be children that need to be rendered. In this case,
52
- * we render them outside of `componentRef`.
53
- * NOTE: We make sure not to render this if `repeatItemData` is non-null, because that means we are rendering an array of
54
- * blocks, and the children will be repeated within those blocks.
55
- */
56
- const shouldRenderChildrenOutsideRef = !blockComponent?.()?.component && !repeatItem();
57
- return shouldRenderChildrenOutsideRef
58
- ? processedBlock().children ?? []
59
- : [];
60
- }
61
- function componentRefProps() {
62
- return {
63
- blockChildren: processedBlock().children ?? [],
64
- componentRef: blockComponent?.()?.component,
65
- componentOptions: {
66
- ...getBlockComponentOptions(processedBlock()),
67
- builderContext: props.context,
68
- ...(blockComponent?.()?.name === "Symbol" ||
69
- blockComponent?.()?.name === "Columns"
70
- ? {
71
- builderComponents: props.registeredComponents,
72
- }
73
- : {}),
74
- },
75
- context: childrenContext,
76
- registeredComponents: props.registeredComponents,
77
- builderBlock: processedBlock(),
78
- includeBlockProps: blockComponent?.()?.noWrap === true,
79
- isInteractive: !blockComponent?.()?.isRSC,
80
- };
81
- }
82
- const [childrenContext, setChildrenContext] = useState(() => props.context);
83
- return (React.createElement(React.Fragment, null, canShowBlock() ? (React.createElement(React.Fragment, null, !blockComponent?.()?.noWrap ? (React.createElement(React.Fragment, null,
84
- isEmptyHtmlElement(Tag()) ? (React.createElement(React.Fragment, null,
85
- React.createElement(BlockWrapper, { Wrapper: Tag(), block: processedBlock(), context: props.context, hasChildren: false }))) : null,
86
- !isEmptyHtmlElement(Tag()) && repeatItem() ? (React.createElement(React.Fragment, null, repeatItem()?.map((data, index) => (React.createElement(RepeatedBlock, { key: index, repeatContext: data.context, block: data.block, registeredComponents: props.registeredComponents }))))) : null,
87
- !isEmptyHtmlElement(Tag()) && !repeatItem() ? (React.createElement(React.Fragment, null,
88
- React.createElement(BlockWrapper, { Wrapper: Tag(), block: processedBlock(), context: props.context, hasChildren: true },
89
- React.createElement(ComponentRef, { ...componentRefProps() }),
90
- childrenWithoutParentComponent()?.map((child) => (React.createElement(Block, { key: "block-" + child.id, block: child, context: childrenContext, registeredComponents: props.registeredComponents }))),
91
- childrenWithoutParentComponent()?.map((child) => (React.createElement(BlockStyles, { key: "block-style-" + child.id, block: child, context: childrenContext })))))) : null)) : (React.createElement(React.Fragment, null,
92
- React.createElement(ComponentRef, { ...componentRefProps() }))))) : null));
93
- }
94
- export default Block;
@@ -1,65 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState } from "react";
4
- import { getMaxWidthQueryForSize, getSizesForBreakpoints, } from "../../../constants/device-sizes.js";
5
- import { TARGET } from "../../../constants/target.js";
6
- import { getProcessedBlock } from "../../../functions/get-processed-block.js";
7
- import { createCssClass } from "../../../helpers/css.js";
8
- import { checkIsDefined } from "../../../helpers/nullable.js";
9
- import InlinedStyles from "../../inlined-styles";
10
- function BlockStyles(props) {
11
- const [processedBlock, setProcessedBlock] = useState(() => getProcessedBlock({
12
- block: props.block,
13
- localState: props.context.localState,
14
- rootState: props.context.rootState,
15
- rootSetState: props.context.rootSetState,
16
- context: props.context.context,
17
- shouldEvaluateBindings: true,
18
- }));
19
- function canShowBlock() {
20
- // only render styles for blocks that are visible
21
- if (checkIsDefined(processedBlock.hide)) {
22
- return !processedBlock.hide;
23
- }
24
- if (checkIsDefined(processedBlock.show)) {
25
- return processedBlock.show;
26
- }
27
- return true;
28
- }
29
- function css() {
30
- const styles = processedBlock.responsiveStyles;
31
- const content = props.context.content;
32
- const sizesWithUpdatedBreakpoints = getSizesForBreakpoints(content?.meta?.breakpoints || {});
33
- const largeStyles = styles?.large;
34
- const mediumStyles = styles?.medium;
35
- const smallStyles = styles?.small;
36
- const className = processedBlock.id;
37
- if (!className) {
38
- return "";
39
- }
40
- const largeStylesClass = largeStyles
41
- ? createCssClass({
42
- className,
43
- styles: largeStyles,
44
- })
45
- : "";
46
- const mediumStylesClass = mediumStyles
47
- ? createCssClass({
48
- className,
49
- styles: mediumStyles,
50
- mediaQuery: getMaxWidthQueryForSize("medium", sizesWithUpdatedBreakpoints),
51
- })
52
- : "";
53
- const smallStylesClass = smallStyles
54
- ? createCssClass({
55
- className,
56
- styles: smallStyles,
57
- mediaQuery: getMaxWidthQueryForSize("small", sizesWithUpdatedBreakpoints),
58
- })
59
- : "";
60
- return [largeStylesClass, mediumStylesClass, smallStylesClass].join(" ");
61
- }
62
- return (React.createElement(React.Fragment, null, TARGET !== "reactNative" && css() && canShowBlock() ? (React.createElement(React.Fragment, null,
63
- React.createElement(InlinedStyles, { styles: css() }))) : null));
64
- }
65
- export default BlockStyles;
@@ -1,36 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { getBlockActions } from "../../../functions/get-block-actions.js";
4
- import { getBlockProperties } from "../../../functions/get-block-properties.js";
5
- function BlockWrapper(props) {
6
- return (React.createElement(React.Fragment, null,
7
- " ",
8
- props.hasChildren ? (React.createElement(React.Fragment, null,
9
- React.createElement(props.Wrapper, { ...getBlockProperties({
10
- block: props.block,
11
- context: props.context,
12
- }), ...getBlockActions({
13
- block: props.block,
14
- rootState: props.context.rootState,
15
- rootSetState: props.context.rootSetState,
16
- localState: props.context.localState,
17
- context: props.context.context,
18
- stripPrefix: true,
19
- }) },
20
- " ",
21
- props.children,
22
- " "))) : (React.createElement(React.Fragment, null,
23
- React.createElement(props.Wrapper, { ...getBlockProperties({
24
- block: props.block,
25
- context: props.context,
26
- }), ...getBlockActions({
27
- block: props.block,
28
- rootState: props.context.rootState,
29
- rootSetState: props.context.rootSetState,
30
- localState: props.context.localState,
31
- context: props.context.context,
32
- stripPrefix: true,
33
- }) }))),
34
- " "));
35
- }
36
- export default BlockWrapper;
@@ -1,22 +0,0 @@
1
- import { getBlockProperties } from '../../../../functions/get-block-properties.js';
2
- export const getWrapperProps = ({ componentOptions, builderBlock, context, componentRef, includeBlockProps, isInteractive, contextValue }) => {
3
- const interactiveElementProps = {
4
- Wrapper: componentRef,
5
- block: builderBlock,
6
- context,
7
- wrapperProps: componentOptions
8
- };
9
- return isInteractive ? interactiveElementProps : {
10
- ...componentOptions,
11
- /**
12
- * If `noWrap` is set to `true`, then the block's props/attributes are provided to the
13
- * component itself directly. Otherwise, they are provided to the wrapper element.
14
- */
15
- ...(includeBlockProps ? {
16
- attributes: getBlockProperties({
17
- block: builderBlock,
18
- context: contextValue
19
- })
20
- } : {})
21
- };
22
- };
@@ -1,23 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState } from "react";
4
- import BlockStyles from "../block-styles";
5
- import Block from "../../block";
6
- import InteractiveElement from "../interactive-element";
7
- import { getWrapperProps } from "./component-ref.helpers.js";
8
- function ComponentRef(props) {
9
- const [Wrapper, setWrapper] = useState(() => props.isInteractive ? InteractiveElement : props.componentRef);
10
- return (React.createElement(React.Fragment, null, props.componentRef ? (React.createElement(React.Fragment, null,
11
- React.createElement(Wrapper, { ...getWrapperProps({
12
- componentOptions: props.componentOptions,
13
- builderBlock: props.builderBlock,
14
- context: props.context,
15
- componentRef: props.componentRef,
16
- includeBlockProps: props.includeBlockProps,
17
- isInteractive: props.isInteractive,
18
- contextValue: props.context,
19
- }) },
20
- props.blockChildren?.map((child) => (React.createElement(Block, { key: "block-" + child.id, block: child, context: props.context, registeredComponents: props.registeredComponents }))),
21
- props.blockChildren?.map((child) => (React.createElement(BlockStyles, { key: "block-style-" + child.id, block: child, context: props.context })))))) : null));
22
- }
23
- export default ComponentRef;
@@ -1,20 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { getBlockActions } from "../../../functions/get-block-actions.js";
4
- import { getBlockProperties } from "../../../functions/get-block-properties.js";
5
- function InteractiveElement(props) {
6
- return (React.createElement(props.Wrapper, { ...props.wrapperProps, attributes: {
7
- ...getBlockProperties({
8
- block: props.block,
9
- context: props.context,
10
- }),
11
- ...getBlockActions({
12
- block: props.block,
13
- rootState: props.context.rootState,
14
- rootSetState: props.context.rootSetState,
15
- localState: props.context.localState,
16
- context: props.context.context,
17
- }),
18
- } }, props.children));
19
- }
20
- export default InteractiveElement;
@@ -1,11 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState } from "react";
4
- import BuilderContext from "../../../context/builder.context.js";
5
- import Block from "../block";
6
- function RepeatedBlock(props) {
7
- const [store, setStore] = useState(() => props.repeatContext);
8
- return (React.createElement(BuilderContext.Provider, { value: store },
9
- React.createElement(Block, { block: props.block, context: store, registeredComponents: props.registeredComponents })));
10
- }
11
- export default RepeatedBlock;
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { isEditing } from "../../functions/is-editing.js";
4
- function BlocksWrapper(props) {
5
- function className() {
6
- return "builder-blocks" + (!props.blocks?.length ? " no-blocks" : "");
7
- }
8
- function onClick() {
9
- if (isEditing() && !props.blocks?.length) {
10
- window.parent?.postMessage({
11
- type: "builder.clickEmptyBlocks",
12
- data: {
13
- parentElementId: props.parent,
14
- dataPath: props.path,
15
- },
16
- }, "*");
17
- }
18
- }
19
- function onMouseEnter() {
20
- if (isEditing() && !props.blocks?.length) {
21
- window.parent?.postMessage({
22
- type: "builder.hoverEmptyBlocks",
23
- data: {
24
- parentElementId: props.parent,
25
- dataPath: props.path,
26
- },
27
- }, "*");
28
- }
29
- }
30
- return (React.createElement(React.Fragment, null,
31
- React.createElement("div", { className: className() + " div-5821bd52", "builder-path": props.path, "builder-parent-id": props.parent, ...{}, style: props.styleProp, onClick: (event) => onClick(), onMouseEnter: (event) => onMouseEnter(), onKeyPress: (event) => onClick() }, props.children),
32
- React.createElement("style", null, `.div-5821bd52 {
33
- display: flex;
34
- flex-direction: column;
35
- align-items: stretch;
36
- }`)));
37
- }
38
- export default BlocksWrapper;
@@ -1,17 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useContext } from "react";
4
- import BlockStyles from "../block/components/block-styles";
5
- import Block from "../block/block";
6
- import BlocksWrapper from "./blocks-wrapper";
7
- import BuilderContext from "../../context/builder.context.js";
8
- import ComponentsContext from "../../context/components.context.js";
9
- function Blocks(props) {
10
- const builderContext = useContext(BuilderContext);
11
- const componentsContext = useContext(ComponentsContext);
12
- return (React.createElement(BlocksWrapper, { blocks: props.blocks, parent: props.parent, path: props.path, styleProp: props.styleProp },
13
- props.blocks ? (React.createElement(React.Fragment, null, props.blocks?.map((block) => (React.createElement(Block, { key: "render-block-" + block.id, block: block, context: props.context || builderContext, registeredComponents: props.registeredComponents ||
14
- componentsContext.registeredComponents }))))) : null,
15
- props.blocks ? (React.createElement(React.Fragment, null, props.blocks?.map((block) => (React.createElement(BlockStyles, { key: "block-style-" + block.id, block: block, context: props.context || builderContext }))))) : null));
16
- }
17
- export default Blocks;