@builder.io/sdk-react 0.2.3-4 → 0.2.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 (261) hide show
  1. package/dist/sdk/blocks/columns/columns.js +4 -4
  2. package/dist/sdk/blocks/image/image.js +8 -7
  3. package/dist/sdk/blocks/symbol/symbol.js +2 -1
  4. package/dist/sdk/blocks/video/video.js +4 -1
  5. package/dist/sdk/components/render-block/render-block.js +4 -1
  6. package/dist/sdk/components/render-content/render-content.js +19 -5
  7. package/dist/sdk/index.d.ts +1 -0
  8. package/package.json +4 -1
  9. package/CHANGELOG.md +0 -25
  10. package/packages/react/src/blocks/BaseText.tsx +0 -19
  11. package/packages/react/src/blocks/button/button.tsx +0 -45
  12. package/packages/react/src/blocks/button/component-info.ts +0 -42
  13. package/packages/react/src/blocks/columns/columns.tsx +0 -211
  14. package/packages/react/src/blocks/columns/component-info.ts +0 -254
  15. package/packages/react/src/blocks/custom-code/component-info.ts +0 -31
  16. package/packages/react/src/blocks/custom-code/custom-code.tsx +0 -76
  17. package/packages/react/src/blocks/embed/component-info.ts +0 -55
  18. package/packages/react/src/blocks/embed/embed.tsx +0 -59
  19. package/packages/react/src/blocks/embed/helpers.ts +0 -8
  20. package/packages/react/src/blocks/form/component-info.ts +0 -282
  21. package/packages/react/src/blocks/form/form.tsx +0 -320
  22. package/packages/react/src/blocks/fragment/component-info.ts +0 -10
  23. package/packages/react/src/blocks/fragment/fragment.tsx +0 -14
  24. package/packages/react/src/blocks/image/component-info.ts +0 -172
  25. package/packages/react/src/blocks/image/image.helpers.ts +0 -75
  26. package/packages/react/src/blocks/image/image.tsx +0 -144
  27. package/packages/react/src/blocks/img/component-info.ts +0 -21
  28. package/packages/react/src/blocks/img/img.tsx +0 -40
  29. package/packages/react/src/blocks/input/component-info.ts +0 -78
  30. package/packages/react/src/blocks/input/input.tsx +0 -33
  31. package/packages/react/src/blocks/raw-text/component-info.ts +0 -15
  32. package/packages/react/src/blocks/raw-text/raw-text.tsx +0 -18
  33. package/packages/react/src/blocks/section/component-info.ts +0 -50
  34. package/packages/react/src/blocks/section/section.tsx +0 -33
  35. package/packages/react/src/blocks/select/component-info.ts +0 -61
  36. package/packages/react/src/blocks/select/select.tsx +0 -35
  37. package/packages/react/src/blocks/submit-button/component-info.ts +0 -32
  38. package/packages/react/src/blocks/submit-button/submit-button.tsx +0 -17
  39. package/packages/react/src/blocks/symbol/component-info.ts +0 -43
  40. package/packages/react/src/blocks/symbol/symbol.tsx +0 -111
  41. package/packages/react/src/blocks/text/component-info.ts +0 -24
  42. package/packages/react/src/blocks/text/text.tsx +0 -20
  43. package/packages/react/src/blocks/textarea/component-info.ts +0 -48
  44. package/packages/react/src/blocks/textarea/textarea.tsx +0 -24
  45. package/packages/react/src/blocks/util.ts +0 -18
  46. package/packages/react/src/blocks/video/component-info.ts +0 -109
  47. package/packages/react/src/blocks/video/video.tsx +0 -84
  48. package/packages/react/src/components/render-block/block-styles.tsx +0 -98
  49. package/packages/react/src/components/render-block/render-block.helpers.ts +0 -138
  50. package/packages/react/src/components/render-block/render-block.tsx +0 -216
  51. package/packages/react/src/components/render-block/render-component.tsx +0 -52
  52. package/packages/react/src/components/render-block/render-repeated-block.tsx +0 -43
  53. package/packages/react/src/components/render-block/types.ts +0 -7
  54. package/packages/react/src/components/render-blocks.tsx +0 -97
  55. package/packages/react/src/components/render-content/builder-editing.tsx +0 -8
  56. package/packages/react/src/components/render-content/components/render-styles.helpers.ts +0 -79
  57. package/packages/react/src/components/render-content/components/render-styles.tsx +0 -45
  58. package/packages/react/src/components/render-content/index.ts +0 -1
  59. package/packages/react/src/components/render-content/render-content.helpers.ts +0 -48
  60. package/packages/react/src/components/render-content/render-content.tsx +0 -410
  61. package/packages/react/src/components/render-content/render-content.types.ts +0 -33
  62. package/packages/react/src/components/render-inlined-styles.tsx +0 -36
  63. package/packages/react/src/constants/builder-registered-components.ts +0 -42
  64. package/packages/react/src/constants/device-sizes.ts +0 -65
  65. package/packages/react/src/constants/target.ts +0 -2
  66. package/packages/react/src/context/builder.context.ts +0 -12
  67. package/packages/react/src/context/types.ts +0 -26
  68. package/packages/react/src/functions/camel-to-kebab-case.ts +0 -2
  69. package/packages/react/src/functions/evaluate.ts +0 -57
  70. package/packages/react/src/functions/event-handler-name.ts +0 -6
  71. package/packages/react/src/functions/extract-text-styles.ts +0 -39
  72. package/packages/react/src/functions/fast-clone.ts +0 -5
  73. package/packages/react/src/functions/get-block-actions-handler.ts +0 -20
  74. package/packages/react/src/functions/get-block-actions.ts +0 -25
  75. package/packages/react/src/functions/get-block-component-options.ts +0 -12
  76. package/packages/react/src/functions/get-block-properties.ts +0 -75
  77. package/packages/react/src/functions/get-builder-search-params/fn.test.ts +0 -19
  78. package/packages/react/src/functions/get-builder-search-params/index.ts +0 -50
  79. package/packages/react/src/functions/get-content/ab-testing.ts +0 -132
  80. package/packages/react/src/functions/get-content/generate-content-url.test.ts +0 -95
  81. package/packages/react/src/functions/get-content/generate-content-url.ts +0 -59
  82. package/packages/react/src/functions/get-content/index.ts +0 -62
  83. package/packages/react/src/functions/get-content/types.ts +0 -53
  84. package/packages/react/src/functions/get-fetch.ts +0 -18
  85. package/packages/react/src/functions/get-global-this.ts +0 -17
  86. package/packages/react/src/functions/get-processed-block.test.ts +0 -33
  87. package/packages/react/src/functions/get-processed-block.ts +0 -54
  88. package/packages/react/src/functions/get-react-native-block-styles.ts +0 -33
  89. package/packages/react/src/functions/if-target.ts +0 -20
  90. package/packages/react/src/functions/is-browser.ts +0 -3
  91. package/packages/react/src/functions/is-editing.ts +0 -10
  92. package/packages/react/src/functions/is-iframe.ts +0 -5
  93. package/packages/react/src/functions/is-previewing.ts +0 -14
  94. package/packages/react/src/functions/on-change.test.ts +0 -23
  95. package/packages/react/src/functions/on-change.ts +0 -29
  96. package/packages/react/src/functions/register-component.ts +0 -50
  97. package/packages/react/src/functions/register.ts +0 -46
  98. package/packages/react/src/functions/sanitize-react-native-block-styles.ts +0 -65
  99. package/packages/react/src/functions/set-editor-settings.ts +0 -16
  100. package/packages/react/src/functions/set.test.ts +0 -19
  101. package/packages/react/src/functions/set.ts +0 -26
  102. package/packages/react/src/functions/track/helpers.ts +0 -67
  103. package/packages/react/src/functions/track/index.ts +0 -136
  104. package/packages/react/src/functions/track/interaction.ts +0 -80
  105. package/packages/react/src/functions/transform-block-properties.ts +0 -3
  106. package/packages/react/src/functions/transform-block.ts +0 -6
  107. package/packages/react/src/helpers/ab-tests.ts +0 -22
  108. package/packages/react/src/helpers/cookie.ts +0 -107
  109. package/packages/react/src/helpers/css.ts +0 -42
  110. package/packages/react/src/helpers/flatten.ts +0 -24
  111. package/packages/react/src/helpers/localStorage.ts +0 -40
  112. package/packages/react/src/helpers/logger.ts +0 -6
  113. package/packages/react/src/helpers/nullable.ts +0 -4
  114. package/packages/react/src/helpers/sessionId.ts +0 -38
  115. package/packages/react/src/helpers/time.ts +0 -4
  116. package/packages/react/src/helpers/url.test.ts +0 -23
  117. package/packages/react/src/helpers/url.ts +0 -16
  118. package/packages/react/src/helpers/uuid.ts +0 -17
  119. package/packages/react/src/helpers/visitorId.ts +0 -40
  120. package/packages/react/src/index-helpers/blocks-exports.ts +0 -10
  121. package/packages/react/src/index-helpers/top-of-file.ts +0 -4
  122. package/packages/react/src/index.ts +0 -14
  123. package/packages/react/src/scripts/init-editing.ts +0 -123
  124. package/packages/react/src/types/api-version.ts +0 -2
  125. package/packages/react/src/types/builder-block.ts +0 -69
  126. package/packages/react/src/types/builder-content.ts +0 -46
  127. package/packages/react/src/types/can-track.ts +0 -3
  128. package/packages/react/src/types/components.ts +0 -117
  129. package/packages/react/src/types/deep-partial.ts +0 -7
  130. package/packages/react/src/types/element.ts +0 -60
  131. package/packages/react/src/types/input.ts +0 -125
  132. package/packages/react/src/types/targets.ts +0 -6
  133. package/packages/react/src/types/typescript.ts +0 -7
  134. package/packages/rsc/src/blocks/BaseText.jsx +0 -12
  135. package/packages/rsc/src/blocks/button/button.jsx +0 -37
  136. package/packages/rsc/src/blocks/button/component-info.js +0 -40
  137. package/packages/rsc/src/blocks/columns/columns.jsx +0 -172
  138. package/packages/rsc/src/blocks/columns/component-info.js +0 -241
  139. package/packages/rsc/src/blocks/custom-code/component-info.js +0 -30
  140. package/packages/rsc/src/blocks/custom-code/custom-code.jsx +0 -57
  141. package/packages/rsc/src/blocks/embed/component-info.js +0 -43
  142. package/packages/rsc/src/blocks/embed/embed.jsx +0 -45
  143. package/packages/rsc/src/blocks/embed/helpers.js +0 -9
  144. package/packages/rsc/src/blocks/form/component-info.js +0 -261
  145. package/packages/rsc/src/blocks/form/form.jsx +0 -260
  146. package/packages/rsc/src/blocks/fragment/component-info.js +0 -10
  147. package/packages/rsc/src/blocks/fragment/fragment.jsx +0 -9
  148. package/packages/rsc/src/blocks/image/component-info.js +0 -150
  149. package/packages/rsc/src/blocks/image/image.helpers.js +0 -48
  150. package/packages/rsc/src/blocks/image/image.jsx +0 -122
  151. package/packages/rsc/src/blocks/img/component-info.js +0 -19
  152. package/packages/rsc/src/blocks/img/img.jsx +0 -21
  153. package/packages/rsc/src/blocks/input/component-info.js +0 -73
  154. package/packages/rsc/src/blocks/input/input.jsx +0 -23
  155. package/packages/rsc/src/blocks/raw-text/component-info.js +0 -15
  156. package/packages/rsc/src/blocks/raw-text/raw-text.jsx +0 -14
  157. package/packages/rsc/src/blocks/section/component-info.js +0 -48
  158. package/packages/rsc/src/blocks/section/section.jsx +0 -27
  159. package/packages/rsc/src/blocks/select/component-info.js +0 -58
  160. package/packages/rsc/src/blocks/select/select.jsx +0 -24
  161. package/packages/rsc/src/blocks/submit-button/component-info.js +0 -27
  162. package/packages/rsc/src/blocks/submit-button/submit-button.jsx +0 -13
  163. package/packages/rsc/src/blocks/symbol/component-info.js +0 -42
  164. package/packages/rsc/src/blocks/symbol/symbol.jsx +0 -89
  165. package/packages/rsc/src/blocks/text/component-info.js +0 -23
  166. package/packages/rsc/src/blocks/text/text.jsx +0 -17
  167. package/packages/rsc/src/blocks/textarea/component-info.js +0 -46
  168. package/packages/rsc/src/blocks/textarea/textarea.jsx +0 -17
  169. package/packages/rsc/src/blocks/util.js +0 -8
  170. package/packages/rsc/src/blocks/video/component-info.js +0 -105
  171. package/packages/rsc/src/blocks/video/video.jsx +0 -63
  172. package/packages/rsc/src/components/render-block/block-styles.jsx +0 -88
  173. package/packages/rsc/src/components/render-block/render-block.helpers.js +0 -129
  174. package/packages/rsc/src/components/render-block/render-block.jsx +0 -201
  175. package/packages/rsc/src/components/render-block/render-component.jsx +0 -39
  176. package/packages/rsc/src/components/render-block/render-repeated-block.jsx +0 -27
  177. package/packages/rsc/src/components/render-block/types.js +0 -0
  178. package/packages/rsc/src/components/render-blocks.jsx +0 -92
  179. package/packages/rsc/src/components/render-content/builder-editing.jsx +0 -64
  180. package/packages/rsc/src/components/render-content/components/render-styles.helpers.js +0 -57
  181. package/packages/rsc/src/components/render-content/components/render-styles.jsx +0 -39
  182. package/packages/rsc/src/components/render-content/index.js +0 -4
  183. package/packages/rsc/src/components/render-content/render-content.helpers.js +0 -48
  184. package/packages/rsc/src/components/render-content/render-content.jsx +0 -253
  185. package/packages/rsc/src/components/render-content/render-content.types.js +0 -0
  186. package/packages/rsc/src/components/render-inlined-styles.jsx +0 -33
  187. package/packages/rsc/src/constants/builder-registered-components.js +0 -54
  188. package/packages/rsc/src/constants/device-sizes.js +0 -48
  189. package/packages/rsc/src/constants/target.js +0 -4
  190. package/packages/rsc/src/context/builder.context.js +0 -14
  191. package/packages/rsc/src/context/types.js +0 -0
  192. package/packages/rsc/src/functions/camel-to-kebab-case.js +0 -4
  193. package/packages/rsc/src/functions/evaluate.js +0 -6
  194. package/packages/rsc/src/functions/event-handler-name.js +0 -7
  195. package/packages/rsc/src/functions/extract-text-styles.js +0 -22
  196. package/packages/rsc/src/functions/fast-clone.js +0 -4
  197. package/packages/rsc/src/functions/get-block-actions-handler.js +0 -11
  198. package/packages/rsc/src/functions/get-block-actions.js +0 -18
  199. package/packages/rsc/src/functions/get-block-component-options.js +0 -28
  200. package/packages/rsc/src/functions/get-block-properties.js +0 -53
  201. package/packages/rsc/src/functions/get-builder-search-params/fn.test.js +0 -13
  202. package/packages/rsc/src/functions/get-builder-search-params/index.js +0 -38
  203. package/packages/rsc/src/functions/get-content/ab-testing.js +0 -99
  204. package/packages/rsc/src/functions/get-content/generate-content-url.js +0 -60
  205. package/packages/rsc/src/functions/get-content/generate-content-url.test.js +0 -82
  206. package/packages/rsc/src/functions/get-content/index.js +0 -83
  207. package/packages/rsc/src/functions/get-content/types.js +0 -0
  208. package/packages/rsc/src/functions/get-fetch.js +0 -14
  209. package/packages/rsc/src/functions/get-global-this.js +0 -18
  210. package/packages/rsc/src/functions/get-processed-block.js +0 -59
  211. package/packages/rsc/src/functions/get-processed-block.test.js +0 -32
  212. package/packages/rsc/src/functions/get-react-native-block-styles.js +0 -33
  213. package/packages/rsc/src/functions/if-target.js +0 -15
  214. package/packages/rsc/src/functions/is-browser.js +0 -6
  215. package/packages/rsc/src/functions/is-editing.js +0 -8
  216. package/packages/rsc/src/functions/is-iframe.js +0 -7
  217. package/packages/rsc/src/functions/is-previewing.js +0 -14
  218. package/packages/rsc/src/functions/on-change.js +0 -27
  219. package/packages/rsc/src/functions/on-change.test.js +0 -19
  220. package/packages/rsc/src/functions/register-component.js +0 -68
  221. package/packages/rsc/src/functions/register.js +0 -29
  222. package/packages/rsc/src/functions/sanitize-react-native-block-styles.js +0 -66
  223. package/packages/rsc/src/functions/set-editor-settings.js +0 -15
  224. package/packages/rsc/src/functions/set.js +0 -11
  225. package/packages/rsc/src/functions/set.test.js +0 -16
  226. package/packages/rsc/src/functions/track/helpers.js +0 -50
  227. package/packages/rsc/src/functions/track/index.js +0 -129
  228. package/packages/rsc/src/functions/track/interaction.js +0 -53
  229. package/packages/rsc/src/functions/transform-block-properties.js +0 -6
  230. package/packages/rsc/src/functions/transform-block.js +0 -6
  231. package/packages/rsc/src/helpers/ab-tests.js +0 -16
  232. package/packages/rsc/src/helpers/cookie.js +0 -81
  233. package/packages/rsc/src/helpers/css.js +0 -34
  234. package/packages/rsc/src/helpers/flatten.js +0 -34
  235. package/packages/rsc/src/helpers/localStorage.js +0 -35
  236. package/packages/rsc/src/helpers/logger.js +0 -9
  237. package/packages/rsc/src/helpers/nullable.js +0 -4
  238. package/packages/rsc/src/helpers/sessionId.js +0 -52
  239. package/packages/rsc/src/helpers/time.js +0 -5
  240. package/packages/rsc/src/helpers/url.js +0 -13
  241. package/packages/rsc/src/helpers/url.test.js +0 -21
  242. package/packages/rsc/src/helpers/uuid.js +0 -13
  243. package/packages/rsc/src/helpers/visitorId.js +0 -34
  244. package/packages/rsc/src/index-helpers/blocks-exports.js +0 -22
  245. package/packages/rsc/src/index-helpers/top-of-file.js +0 -2
  246. package/packages/rsc/src/index.js +0 -13
  247. package/packages/rsc/src/scripts/init-editing.js +0 -93
  248. package/packages/rsc/src/types/api-version.js +0 -4
  249. package/packages/rsc/src/types/builder-block.js +0 -0
  250. package/packages/rsc/src/types/builder-content.js +0 -0
  251. package/packages/rsc/src/types/can-track.js +0 -0
  252. package/packages/rsc/src/types/components.js +0 -0
  253. package/packages/rsc/src/types/deep-partial.js +0 -0
  254. package/packages/rsc/src/types/element.js +0 -0
  255. package/packages/rsc/src/types/input.js +0 -0
  256. package/packages/rsc/src/types/targets.js +0 -0
  257. package/packages/rsc/src/types/typescript.js +0 -0
  258. package/tsconfig.json +0 -28
  259. package/tsconfig.sdk.json +0 -10
  260. package/tsconfig.server.json +0 -10
  261. package/vite.config.ts +0 -91
@@ -1,39 +0,0 @@
1
- import * as React from "react";
2
- import BlockStyles from "./block-styles";
3
- import RenderBlock from "./render-block";
4
-
5
- function RenderComponent(props) {
6
- const _context = { ...props["_context"] };
7
-
8
- const ComponentRefRef = props.componentRef;
9
-
10
- return (
11
- <>
12
- {props.componentRef ? (
13
- <>
14
- <ComponentRefRef {...props.componentOptions} _context={_context}>
15
- {props.blockChildren?.map((child) => (
16
- <RenderBlock
17
- key={"render-block-" + child.id}
18
- block={child}
19
- context={props.context}
20
- _context={_context}
21
- />
22
- ))}
23
-
24
- {props.blockChildren?.map((child) => (
25
- <BlockStyles
26
- key={"block-style-" + child.id}
27
- block={child}
28
- context={props.context}
29
- _context={_context}
30
- />
31
- ))}
32
- </ComponentRefRef>
33
- </>
34
- ) : null}
35
- </>
36
- );
37
- }
38
-
39
- export default RenderComponent;
@@ -1,27 +0,0 @@
1
- import * as React from "react";
2
- import BuilderContext from "../../context/builder.context.js";
3
- import RenderBlock from "./render-block";
4
-
5
- function RenderRepeatedBlock(props) {
6
- const _context = { ...props["_context"] };
7
-
8
- _context.BuilderContext = {
9
- content: props.repeatContext.content,
10
- state: props.repeatContext.state,
11
- setState: props.repeatContext.setState,
12
- context: props.repeatContext.context,
13
- apiKey: props.repeatContext.apiKey,
14
- registeredComponents: props.repeatContext.registeredComponents,
15
- inheritedStyles: props.repeatContext.inheritedStyles,
16
- };
17
-
18
- return (
19
- <RenderBlock
20
- block={props.block}
21
- context={props.repeatContext}
22
- _context={_context}
23
- />
24
- );
25
- }
26
-
27
- export default RenderRepeatedBlock;
File without changes
@@ -1,92 +0,0 @@
1
- import * as React from "react";
2
- import BuilderContext from "../context/builder.context.js";
3
- import { isEditing } from "../functions/is-editing.js";
4
- import BlockStyles from "./render-block/block-styles";
5
- import RenderBlock from "./render-block/render-block";
6
-
7
- function RenderBlocks(props) {
8
- const _context = { ...props["_context"] };
9
-
10
- const state = {
11
- get className() {
12
- return "builder-blocks" + (!props.blocks?.length ? " no-blocks" : "");
13
- },
14
- onClick() {
15
- if (isEditing() && !props.blocks?.length) {
16
- window.parent?.postMessage(
17
- {
18
- type: "builder.clickEmptyBlocks",
19
- data: {
20
- parentElementId: props.parent,
21
- dataPath: props.path,
22
- },
23
- },
24
- "*"
25
- );
26
- }
27
- },
28
- onMouseEnter() {
29
- if (isEditing() && !props.blocks?.length) {
30
- window.parent?.postMessage(
31
- {
32
- type: "builder.hoverEmptyBlocks",
33
- data: {
34
- parentElementId: props.parent,
35
- dataPath: props.path,
36
- },
37
- },
38
- "*"
39
- );
40
- }
41
- },
42
- };
43
-
44
- const builderContext = _context["BuilderContext"];
45
-
46
- return (
47
- <>
48
- <div
49
- className={state.className + " div-7a14f25c"}
50
- builder-path={props.path}
51
- builder-parent-id={props.parent}
52
- dataSet={{
53
- class: state.className,
54
- }}
55
- style={props.styleProp}
56
- >
57
- {props.blocks ? (
58
- <>
59
- {props.blocks?.map((block) => (
60
- <RenderBlock
61
- key={"render-block-" + block.id}
62
- block={block}
63
- context={builderContext}
64
- _context={_context}
65
- />
66
- ))}
67
- </>
68
- ) : null}
69
-
70
- {props.blocks ? (
71
- <>
72
- {props.blocks?.map((block) => (
73
- <BlockStyles
74
- key={"block-style-" + block.id}
75
- block={block}
76
- context={builderContext}
77
- _context={_context}
78
- />
79
- ))}
80
- </>
81
- ) : null}
82
- </div>
83
- <style>{`.div-7a14f25c {
84
- display: flex;
85
- flex-direction: column;
86
- align-items: stretch;
87
- }`}</style>
88
- </>
89
- );
90
- }
91
-
92
- export default RenderBlocks;
@@ -1,64 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import { setupBrowserForEditing } from '../../scripts/init-editing.js';
3
- // import type { RegisteredComponent } from '../../context/types.js';
4
- // import type { BuilderContent } from '../../types/builder-content.js';
5
-
6
- /**
7
- * @typedef {object} RegisteredComponent
8
- * @typedef {object} BuilderContent
9
- * @typedef {(data: {data: object, key: string }) => void} OnUpdateCallback
10
- * @typedef {{
11
- * model: string,
12
- * components?: RegisteredComponent[],
13
- * children: any,
14
- * onUpdate?: OnUpdateCallback,
15
- * }} BuilderEditingProps
16
- */
17
-
18
- /**
19
- * @param {BuilderEditingProps} props
20
- */
21
- export function BuilderEditingWrapper(props) {
22
- useEffect(() => {
23
- setupBrowserForEditing();
24
-
25
- if (props.components) {
26
- for (const component of props.components) {
27
- window.parent.postMessage(
28
- {
29
- type: 'builder.registerComponent',
30
- data: component,
31
- },
32
- '*'
33
- );
34
- }
35
- }
36
-
37
- /**
38
- *
39
- * @param {MessageEvent} e
40
- */
41
- function onMessage(e) {
42
- switch (e.data?.type) {
43
- case 'builder.contentUpdate': {
44
- props.onUpdate?.(e.data.data);
45
- }
46
- }
47
- }
48
-
49
- addEventListener('message', onMessage);
50
-
51
- return () => window.removeEventListener('message', onMessage);
52
- }, [props.model]);
53
- return (
54
- <div
55
- onMouseDown={(e) => e.preventDefault()}
56
- onClickCapture={(e) => {
57
- e.stopPropagation();
58
- e.preventDefault();
59
- }}
60
- >
61
- {props.children}
62
- </div>
63
- );
64
- }
@@ -1,57 +0,0 @@
1
- const getCssFromFont = (font) => {
2
- var _a, _b;
3
- const family = font.family + (font.kind && !font.kind.includes("#") ? ", " + font.kind : "");
4
- const name = family.split(",")[0];
5
- const url = (_b = font.fileUrl) != null ? _b : (_a = font == null ? void 0 : font.files) == null ? void 0 : _a.regular;
6
- let str = "";
7
- if (url && family && name) {
8
- str += `
9
- @font-face {
10
- font-family: "${family}";
11
- src: local("${name}"), url('${url}') format('woff2');
12
- font-display: fallback;
13
- font-weight: 400;
14
- }
15
- `.trim();
16
- }
17
- if (font.files) {
18
- for (const weight in font.files) {
19
- const isNumber = String(Number(weight)) === weight;
20
- if (!isNumber) {
21
- continue;
22
- }
23
- const weightUrl = font.files[weight];
24
- if (weightUrl && weightUrl !== url) {
25
- str += `
26
- @font-face {
27
- font-family: "${family}";
28
- src: url('${weightUrl}') format('woff2');
29
- font-display: fallback;
30
- font-weight: ${weight};
31
- }
32
- `.trim();
33
- }
34
- }
35
- }
36
- return str;
37
- };
38
- const getFontCss = ({ customFonts }) => {
39
- var _a;
40
- return ((_a = customFonts == null ? void 0 : customFonts.map((font) => getCssFromFont(font))) == null ? void 0 : _a.join(" ")) || "";
41
- };
42
- const getCss = ({
43
- cssCode,
44
- contentId
45
- }) => {
46
- if (!cssCode) {
47
- return "";
48
- }
49
- if (!contentId) {
50
- return cssCode;
51
- }
52
- return (cssCode == null ? void 0 : cssCode.replace(/&/g, `div[builder-content-id="${contentId}"]`)) || "";
53
- };
54
- export {
55
- getCss,
56
- getFontCss
57
- };
@@ -1,39 +0,0 @@
1
- import * as React from "react";
2
- import RenderInlinedStyles from "../../render-inlined-styles";
3
- import { getCss } from "./render-styles.helpers";
4
- import { getFontCss } from "./render-styles.helpers";
5
-
6
- function RenderContentStyles(props) {
7
- const _context = { ...props["_context"] };
8
-
9
- const state = {
10
- injectedStyles: `
11
- ${getCss({
12
- cssCode: props.cssCode,
13
- contentId: props.contentId,
14
- })}
15
- ${getFontCss({
16
- customFonts: props.customFonts,
17
- })}
18
-
19
- .builder-text > p:first-of-type, .builder-text > .builder-paragraph:first-of-type {
20
- margin: 0;
21
- }
22
- .builder-text > p, .builder-text > .builder-paragraph {
23
- color: inherit;
24
- line-height: inherit;
25
- letter-spacing: inherit;
26
- font-weight: inherit;
27
- font-size: inherit;
28
- text-align: inherit;
29
- font-family: inherit;
30
- }
31
- `,
32
- };
33
-
34
- return (
35
- <RenderInlinedStyles styles={state.injectedStyles} _context={_context} />
36
- );
37
- }
38
-
39
- export default RenderContentStyles;
@@ -1,4 +0,0 @@
1
- import { default as default2 } from "./render-content";
2
- export {
3
- default2 as default
4
- };
@@ -1,48 +0,0 @@
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
- const getContextStateInitialValue = ({
21
- content,
22
- data,
23
- locale
24
- }) => {
25
- var _a, _b, _c;
26
- const defaultValues = {};
27
- (_b = (_a = content == null ? void 0 : content.data) == null ? void 0 : _a.inputs) == null ? void 0 : _b.forEach((input) => {
28
- var _a2;
29
- if (input.name && input.defaultValue !== void 0 && ((_a2 = content == null ? void 0 : content.data) == null ? void 0 : _a2.state) && content.data.state[input.name] === void 0) {
30
- defaultValues[input.name] = input.defaultValue;
31
- }
32
- });
33
- const stateToUse = __spreadValues(__spreadValues(__spreadValues({}, (_c = content == null ? void 0 : content.data) == null ? void 0 : _c.state), data), locale ? { locale } : {});
34
- return __spreadValues(__spreadValues({}, defaultValues), stateToUse);
35
- };
36
- const getContentInitialValue = ({
37
- content,
38
- data
39
- }) => {
40
- return !content ? void 0 : __spreadProps(__spreadValues({}, content), {
41
- data: __spreadValues(__spreadValues({}, content == null ? void 0 : content.data), data),
42
- meta: content == null ? void 0 : content.meta
43
- });
44
- };
45
- export {
46
- getContentInitialValue,
47
- getContextStateInitialValue
48
- };
@@ -1,253 +0,0 @@
1
- import * as React from "react";
2
- import { getDefaultRegisteredComponents } from "../../constants/builder-registered-components.js";
3
- import { evaluate } from "../../functions/evaluate.js";
4
- import { getContent } from "../../functions/get-content/index.js";
5
- import { fetch } from "../../functions/get-fetch.js";
6
- import { isBrowser } from "../../functions/is-browser.js";
7
- import { isEditing } from "../../functions/is-editing.js";
8
- import { isPreviewing } from "../../functions/is-previewing.js";
9
- import {
10
- components,
11
- createRegisterComponentMessage,
12
- } from "../../functions/register-component.js";
13
- import { _track } from "../../functions/track/index.js";
14
- import RenderBlocks from "../render-blocks";
15
- import RenderContentStyles from "./components/render-styles";
16
- import builderContext from "../../context/builder.context.js";
17
- import {
18
- registerInsertMenu,
19
- setupBrowserForEditing,
20
- } from "../../scripts/init-editing.js";
21
- import { checkIsDefined } from "../../helpers/nullable.js";
22
- import { getInteractionPropertiesForEvent } from "../../functions/track/interaction.js";
23
- import {
24
- getContentInitialValue,
25
- getContextStateInitialValue,
26
- } from "./render-content.helpers.js";
27
- import { TARGET } from "../../constants/target.js";
28
- import { logger } from "../../helpers/logger.js";
29
-
30
- function RenderContent(props) {
31
- const _context = { ...props["_context"] };
32
-
33
- const state = {
34
- forceReRenderCount: 0,
35
- overrideContent: null,
36
- useContent: getContentInitialValue({
37
- content: props.content,
38
- data: props.data,
39
- }),
40
- mergeNewContent(newContent) {
41
- state.useContent = {
42
- ...state.useContent,
43
- ...newContent,
44
- data: {
45
- ...state.useContent?.data,
46
- ...newContent?.data,
47
- },
48
- meta: {
49
- ...state.useContent?.meta,
50
- ...newContent?.meta,
51
- breakpoints:
52
- newContent?.meta?.breakpoints ||
53
- state.useContent?.meta?.breakpoints,
54
- },
55
- };
56
- },
57
- setBreakpoints(breakpoints) {
58
- state.useContent = {
59
- ...state.useContent,
60
- meta: {
61
- ...state.useContent?.meta,
62
- breakpoints,
63
- },
64
- };
65
- },
66
- update: 0,
67
- canTrackToUse: checkIsDefined(props.canTrack) ? props.canTrack : true,
68
- contentState: getContextStateInitialValue({
69
- content: props.content,
70
- data: props.data,
71
- locale: props.locale,
72
- }),
73
- setContextState(newState) {
74
- state.contentState = newState;
75
- },
76
- allRegisteredComponents: [
77
- ...getDefaultRegisteredComponents(),
78
- // While this `components` object is deprecated, we must maintain support for it.
79
- // Since users are able to override our default components, we need to make sure that we do not break such
80
- // existing usage.
81
- // This is why we spread `components` after the default Builder.io components, but before the `props.customComponents`,
82
- // which is the new standard way of providing custom components, and must therefore take precedence.
83
- ...components,
84
- ...(props.customComponents || []),
85
- ].reduce(
86
- (acc, curr) => ({
87
- ...acc,
88
- [curr.name]: curr,
89
- }),
90
- {}
91
- ),
92
- processMessage(event) {
93
- const { data } = event;
94
- if (data) {
95
- switch (data.type) {
96
- case "builder.configureSdk": {
97
- const messageContent = data.data;
98
- const { breakpoints, contentId } = messageContent;
99
- if (!contentId || contentId !== state.useContent?.id) {
100
- return;
101
- }
102
- if (breakpoints) {
103
- state.setBreakpoints(breakpoints);
104
- }
105
- state.forceReRenderCount = state.forceReRenderCount + 1; // This is a hack to force Qwik to re-render.
106
- break;
107
- }
108
- case "builder.contentUpdate": {
109
- const messageContent = data.data;
110
- const key =
111
- messageContent.key ||
112
- messageContent.alias ||
113
- messageContent.entry ||
114
- messageContent.modelName;
115
- const contentData = messageContent.data;
116
- if (key === props.model) {
117
- state.mergeNewContent(contentData);
118
- state.forceReRenderCount = state.forceReRenderCount + 1; // This is a hack to force Qwik to re-render.
119
- }
120
-
121
- break;
122
- }
123
- case "builder.patchUpdates": {
124
- // TODO
125
- break;
126
- }
127
- }
128
- }
129
- },
130
- evaluateJsCode() {
131
- // run any dynamic JS code attached to content
132
- const jsCode = state.useContent?.data?.jsCode;
133
- if (jsCode) {
134
- evaluate({
135
- code: jsCode,
136
- context: props.context || {},
137
- state: state.contentState,
138
- });
139
- }
140
- },
141
- httpReqsData: {},
142
- clicked: false,
143
- onClick(event) {
144
- if (state.useContent) {
145
- const variationId = state.useContent?.testVariationId;
146
- const contentId = state.useContent?.id;
147
- _track({
148
- type: "click",
149
- canTrack: state.canTrackToUse,
150
- contentId,
151
- apiKey: props.apiKey,
152
- variationId: variationId !== contentId ? variationId : undefined,
153
- ...getInteractionPropertiesForEvent(event),
154
- unique: !state.clicked,
155
- });
156
- }
157
- if (!state.clicked) {
158
- state.clicked = true;
159
- }
160
- },
161
- evalExpression(expression) {
162
- return expression.replace(/{{([^}]+)}}/g, (_match, group) =>
163
- evaluate({
164
- code: group,
165
- context: props.context || {},
166
- state: state.contentState,
167
- })
168
- );
169
- },
170
- handleRequest({ url, key }) {
171
- fetch(url)
172
- .then((response) => response.json())
173
- .then((json) => {
174
- const newState = {
175
- ...state.contentState,
176
- [key]: json,
177
- };
178
- state.setContextState(newState);
179
- })
180
- .catch((err) => {
181
- console.error("error fetching dynamic data", url, err);
182
- });
183
- },
184
- runHttpRequests() {
185
- const requests = state.useContent?.data?.httpRequests ?? {};
186
- Object.entries(requests).forEach(([key, url]) => {
187
- if (url && (!state.httpReqsData[key] || isEditing())) {
188
- const evaluatedUrl = state.evalExpression(url);
189
- state.handleRequest({
190
- url: evaluatedUrl,
191
- key,
192
- });
193
- }
194
- });
195
- },
196
- emitStateUpdate() {
197
- if (isEditing()) {
198
- window.dispatchEvent(
199
- new CustomEvent("builder:component:stateChange", {
200
- detail: {
201
- state: state.contentState,
202
- ref: {
203
- name: props.model,
204
- },
205
- },
206
- })
207
- );
208
- }
209
- },
210
- };
211
-
212
- _context.builderContext = {
213
- content: state.useContent,
214
- state: state.contentState,
215
- setState: state.setContextState,
216
- context: props.context || {},
217
- apiKey: props.apiKey,
218
- apiVersion: props.apiVersion,
219
- registeredComponents: state.allRegisteredComponents,
220
- };
221
-
222
- return (
223
- <>
224
- {state.useContent ? (
225
- <>
226
- <div
227
- builder-content-id={state.useContent?.id}
228
- builder-model={props.model}
229
- >
230
- {TARGET !== "reactNative" ? (
231
- <>
232
- <RenderContentStyles
233
- contentId={state.useContent?.id}
234
- cssCode={state.useContent?.data?.cssCode}
235
- customFonts={state.useContent?.data?.customFonts}
236
- _context={_context}
237
- />
238
- </>
239
- ) : null}
240
-
241
- <RenderBlocks
242
- blocks={state.useContent?.data?.blocks}
243
- key={state.forceReRenderCount}
244
- _context={_context}
245
- />
246
- </div>
247
- </>
248
- ) : null}
249
- </>
250
- );
251
- }
252
-
253
- export default RenderContent;
@@ -1,33 +0,0 @@
1
- import * as React from "react";
2
- import { TARGET } from "../constants/target.js";
3
-
4
- function RenderInlinedStyles(props) {
5
- const _context = { ...props["_context"] };
6
-
7
- const state = {
8
- get tag() {
9
- // NOTE: we have to obfusctate the name of the tag due to a limitation in the svelte-preprocessor plugin.
10
- // https://github.com/sveltejs/vite-plugin-svelte/issues/315#issuecomment-1109000027
11
- return "sty" + "le";
12
- },
13
- get injectedStyleScript() {
14
- return `<${state.tag}>${props.styles}</${state.tag}>`;
15
- },
16
- };
17
-
18
- const TagRef = state.tag;
19
-
20
- return (
21
- <>
22
- {TARGET === "svelte" || TARGET === "qwik" ? (
23
- <>
24
- <TagRef dangerouslySetInnerHTML={{ __html: props.styles }} />
25
- </>
26
- ) : (
27
- <TagRef>{props.styles}</TagRef>
28
- )}
29
- </>
30
- );
31
- }
32
-
33
- export default RenderInlinedStyles;