@builder.io/sdk-react 0.1.4 → 0.1.6

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 (249) hide show
  1. package/dist/react/blocks/button/button.js +2 -2
  2. package/dist/react/blocks/button/component-info.js +0 -1
  3. package/dist/react/blocks/columns/columns.js +4 -4
  4. package/dist/react/blocks/columns/component-info.js +0 -1
  5. package/dist/react/blocks/custom-code/component-info.js +0 -1
  6. package/dist/react/blocks/embed/component-info.js +0 -1
  7. package/dist/react/blocks/form/component-info.js +0 -1
  8. package/dist/react/blocks/form/form.js +2 -2
  9. package/dist/react/blocks/fragment/component-info.js +0 -1
  10. package/dist/react/blocks/image/component-info.js +0 -1
  11. package/dist/react/blocks/image/image.js +6 -6
  12. package/dist/react/blocks/img/component-info.js +0 -1
  13. package/dist/react/blocks/input/component-info.js +0 -1
  14. package/dist/react/blocks/raw-text/component-info.js +0 -1
  15. package/dist/react/blocks/section/component-info.js +0 -1
  16. package/dist/react/blocks/select/component-info.js +0 -1
  17. package/dist/react/blocks/submit-button/component-info.js +0 -1
  18. package/dist/react/blocks/symbol/component-info.js +0 -1
  19. package/dist/react/blocks/text/component-info.js +0 -1
  20. package/dist/react/blocks/textarea/component-info.js +0 -1
  21. package/dist/react/blocks/video/component-info.js +0 -1
  22. package/dist/react/components/render-block/render-block.js +18 -1
  23. package/dist/react/components/render-block/render-repeated-block.js +1 -0
  24. package/dist/react/components/render-blocks.js +2 -2
  25. package/dist/react/components/render-content/components/render-styles.helpers.js +51 -0
  26. package/dist/react/components/render-content/components/render-styles.js +12 -54
  27. package/dist/react/components/render-content/render-content.helpers.js +38 -0
  28. package/dist/react/components/render-content/render-content.js +65 -62
  29. package/dist/react/components/render-content/render-content.types.js +1 -0
  30. package/dist/react/constants/builder-registered-components.js +7 -7
  31. package/dist/react/context/builder.context.js +2 -0
  32. package/dist/react/index-helpers/blocks-exports.js +10 -10
  33. package/dist/react/types/input.js +1 -0
  34. package/dist/rsc/blocks/button/button.js +2 -2
  35. package/dist/rsc/blocks/button/component-info.js +0 -1
  36. package/dist/rsc/blocks/columns/columns.js +4 -4
  37. package/dist/rsc/blocks/columns/component-info.js +0 -1
  38. package/dist/rsc/blocks/custom-code/component-info.js +0 -1
  39. package/dist/rsc/blocks/embed/component-info.js +0 -1
  40. package/dist/rsc/blocks/form/component-info.js +0 -1
  41. package/dist/rsc/blocks/form/form.js +2 -2
  42. package/dist/rsc/blocks/fragment/component-info.js +0 -1
  43. package/dist/rsc/blocks/image/component-info.js +0 -1
  44. package/dist/rsc/blocks/image/image.js +6 -6
  45. package/dist/rsc/blocks/img/component-info.js +0 -1
  46. package/dist/rsc/blocks/input/component-info.js +0 -1
  47. package/dist/rsc/blocks/raw-text/component-info.js +0 -1
  48. package/dist/rsc/blocks/section/component-info.js +0 -1
  49. package/dist/rsc/blocks/select/component-info.js +0 -1
  50. package/dist/rsc/blocks/submit-button/component-info.js +0 -1
  51. package/dist/rsc/blocks/symbol/component-info.js +0 -1
  52. package/dist/rsc/blocks/text/component-info.js +0 -1
  53. package/dist/rsc/blocks/textarea/component-info.js +0 -1
  54. package/dist/rsc/blocks/video/component-info.js +0 -1
  55. package/dist/rsc/components/render-block/render-block.js +18 -1
  56. package/dist/rsc/components/render-block/render-repeated-block.js +1 -0
  57. package/dist/rsc/components/render-blocks.js +2 -2
  58. package/dist/rsc/components/render-content/builder-editing.js +47 -4
  59. package/dist/rsc/components/render-content/components/render-styles.helpers.js +51 -0
  60. package/dist/rsc/components/render-content/components/render-styles.js +11 -54
  61. package/dist/rsc/components/render-content/render-content.helpers.js +38 -0
  62. package/dist/rsc/components/render-content/render-content.js +43 -38
  63. package/dist/rsc/components/render-content/render-content.types.js +1 -0
  64. package/dist/rsc/constants/builder-registered-components.js +7 -7
  65. package/dist/rsc/context/builder.context.js +2 -0
  66. package/dist/rsc/index-helpers/blocks-exports.js +10 -10
  67. package/dist/rsc/types/input.js +1 -0
  68. package/package.json +1 -1
  69. package/packages/react/src/blocks/button/button.jsx +2 -2
  70. package/packages/react/src/blocks/button/component-info.js +0 -1
  71. package/packages/react/src/blocks/columns/columns.jsx +4 -4
  72. package/packages/react/src/blocks/columns/component-info.js +0 -1
  73. package/packages/react/src/blocks/custom-code/component-info.js +0 -1
  74. package/packages/react/src/blocks/embed/component-info.js +0 -1
  75. package/packages/react/src/blocks/form/component-info.js +0 -1
  76. package/packages/react/src/blocks/form/form.jsx +2 -2
  77. package/packages/react/src/blocks/fragment/component-info.js +0 -1
  78. package/packages/react/src/blocks/image/component-info.js +0 -1
  79. package/packages/react/src/blocks/image/image.jsx +6 -6
  80. package/packages/react/src/blocks/img/component-info.js +0 -1
  81. package/packages/react/src/blocks/input/component-info.js +0 -1
  82. package/packages/react/src/blocks/raw-text/component-info.js +0 -1
  83. package/packages/react/src/blocks/section/component-info.js +0 -1
  84. package/packages/react/src/blocks/select/component-info.js +0 -1
  85. package/packages/react/src/blocks/submit-button/component-info.js +0 -1
  86. package/packages/react/src/blocks/symbol/component-info.js +0 -1
  87. package/packages/react/src/blocks/text/component-info.js +0 -1
  88. package/packages/react/src/blocks/textarea/component-info.js +0 -1
  89. package/packages/react/src/blocks/video/component-info.js +0 -1
  90. package/packages/react/src/components/render-block/render-block.jsx +22 -1
  91. package/packages/react/src/components/render-block/render-repeated-block.jsx +1 -0
  92. package/packages/react/src/components/render-blocks.jsx +2 -2
  93. package/packages/react/src/components/render-content/components/render-styles.helpers.js +57 -0
  94. package/packages/react/src/components/render-content/components/render-styles.jsx +13 -56
  95. package/packages/react/src/components/render-content/render-content.helpers.js +48 -0
  96. package/packages/react/src/components/render-content/render-content.jsx +76 -67
  97. package/packages/{_rsc/src/components/render-block/types.js → react/src/components/render-content/render-content.types.js} +0 -0
  98. package/packages/react/src/constants/builder-registered-components.js +7 -7
  99. package/packages/react/src/context/builder.context.js +2 -0
  100. package/packages/react/src/index-helpers/blocks-exports.js +18 -18
  101. package/packages/{_rsc/src/context/types.js → react/src/types/input.js} +0 -0
  102. package/packages/rsc/src/blocks/button/button.jsx +2 -2
  103. package/packages/rsc/src/blocks/button/component-info.js +0 -1
  104. package/packages/rsc/src/blocks/columns/columns.jsx +4 -4
  105. package/packages/rsc/src/blocks/columns/component-info.js +0 -1
  106. package/packages/rsc/src/blocks/custom-code/component-info.js +0 -1
  107. package/packages/rsc/src/blocks/embed/component-info.js +0 -1
  108. package/packages/rsc/src/blocks/form/component-info.js +0 -1
  109. package/packages/rsc/src/blocks/form/form.jsx +2 -2
  110. package/packages/rsc/src/blocks/fragment/component-info.js +0 -1
  111. package/packages/rsc/src/blocks/image/component-info.js +0 -1
  112. package/packages/rsc/src/blocks/image/image.jsx +6 -6
  113. package/packages/rsc/src/blocks/img/component-info.js +0 -1
  114. package/packages/rsc/src/blocks/input/component-info.js +0 -1
  115. package/packages/rsc/src/blocks/raw-text/component-info.js +0 -1
  116. package/packages/rsc/src/blocks/section/component-info.js +0 -1
  117. package/packages/rsc/src/blocks/select/component-info.js +0 -1
  118. package/packages/rsc/src/blocks/submit-button/component-info.js +0 -1
  119. package/packages/rsc/src/blocks/symbol/component-info.js +0 -1
  120. package/packages/rsc/src/blocks/text/component-info.js +0 -1
  121. package/packages/rsc/src/blocks/textarea/component-info.js +0 -1
  122. package/packages/rsc/src/blocks/video/component-info.js +0 -1
  123. package/packages/rsc/src/components/render-block/render-block.jsx +21 -1
  124. package/packages/rsc/src/components/render-block/render-repeated-block.jsx +1 -0
  125. package/packages/rsc/src/components/render-blocks.jsx +2 -2
  126. package/packages/rsc/src/components/render-content/builder-editing.jsx +61 -4
  127. package/packages/rsc/src/components/render-content/components/render-styles.helpers.js +57 -0
  128. package/packages/rsc/src/components/render-content/components/render-styles.jsx +10 -56
  129. package/packages/rsc/src/components/render-content/render-content.helpers.js +48 -0
  130. package/packages/rsc/src/components/render-content/render-content.jsx +46 -37
  131. package/packages/{_rsc/src/functions/get-content/types.js → rsc/src/components/render-content/render-content.types.js} +0 -0
  132. package/packages/rsc/src/constants/builder-registered-components.js +7 -7
  133. package/packages/rsc/src/context/builder.context.js +2 -0
  134. package/packages/rsc/src/index-helpers/blocks-exports.js +18 -18
  135. package/packages/{_rsc/src/types/builder-block.js → rsc/src/types/input.js} +0 -0
  136. package/packages/_rsc/src/blocks/BaseText.jsx +0 -10
  137. package/packages/_rsc/src/blocks/button/button.jsx +0 -29
  138. package/packages/_rsc/src/blocks/button/component-info.js +0 -41
  139. package/packages/_rsc/src/blocks/columns/columns.jsx +0 -172
  140. package/packages/_rsc/src/blocks/columns/component-info.js +0 -242
  141. package/packages/_rsc/src/blocks/custom-code/component-info.js +0 -31
  142. package/packages/_rsc/src/blocks/custom-code/custom-code.jsx +0 -55
  143. package/packages/_rsc/src/blocks/embed/component-info.js +0 -44
  144. package/packages/_rsc/src/blocks/embed/embed.jsx +0 -43
  145. package/packages/_rsc/src/blocks/embed/helpers.js +0 -9
  146. package/packages/_rsc/src/blocks/form/component-info.js +0 -262
  147. package/packages/_rsc/src/blocks/form/form.jsx +0 -259
  148. package/packages/_rsc/src/blocks/fragment/component-info.js +0 -11
  149. package/packages/_rsc/src/blocks/fragment/fragment.jsx +0 -7
  150. package/packages/_rsc/src/blocks/image/component-info.js +0 -151
  151. package/packages/_rsc/src/blocks/image/image.helpers.js +0 -48
  152. package/packages/_rsc/src/blocks/image/image.jsx +0 -124
  153. package/packages/_rsc/src/blocks/img/component-info.js +0 -20
  154. package/packages/_rsc/src/blocks/img/img.jsx +0 -19
  155. package/packages/_rsc/src/blocks/input/component-info.js +0 -74
  156. package/packages/_rsc/src/blocks/input/input.jsx +0 -21
  157. package/packages/_rsc/src/blocks/raw-text/component-info.js +0 -16
  158. package/packages/_rsc/src/blocks/raw-text/raw-text.jsx +0 -12
  159. package/packages/_rsc/src/blocks/section/component-info.js +0 -49
  160. package/packages/_rsc/src/blocks/section/section.jsx +0 -29
  161. package/packages/_rsc/src/blocks/select/component-info.js +0 -59
  162. package/packages/_rsc/src/blocks/select/select.jsx +0 -22
  163. package/packages/_rsc/src/blocks/submit-button/component-info.js +0 -28
  164. package/packages/_rsc/src/blocks/submit-button/submit-button.jsx +0 -11
  165. package/packages/_rsc/src/blocks/symbol/component-info.js +0 -43
  166. package/packages/_rsc/src/blocks/symbol/symbol.jsx +0 -56
  167. package/packages/_rsc/src/blocks/text/component-info.js +0 -24
  168. package/packages/_rsc/src/blocks/text/text.jsx +0 -12
  169. package/packages/_rsc/src/blocks/textarea/component-info.js +0 -47
  170. package/packages/_rsc/src/blocks/textarea/textarea.jsx +0 -15
  171. package/packages/_rsc/src/blocks/util.js +0 -8
  172. package/packages/_rsc/src/blocks/video/component-info.js +0 -106
  173. package/packages/_rsc/src/blocks/video/video.jsx +0 -61
  174. package/packages/_rsc/src/components/render-block/block-styles.jsx +0 -72
  175. package/packages/_rsc/src/components/render-block/render-block.helpers.js +0 -23
  176. package/packages/_rsc/src/components/render-block/render-block.jsx +0 -251
  177. package/packages/_rsc/src/components/render-block/render-component-with-context.jsx +0 -38
  178. package/packages/_rsc/src/components/render-block/render-component.jsx +0 -37
  179. package/packages/_rsc/src/components/render-block/render-repeated-block.jsx +0 -36
  180. package/packages/_rsc/src/components/render-blocks.jsx +0 -90
  181. package/packages/_rsc/src/components/render-content/builder-editing.jsx +0 -7
  182. package/packages/_rsc/src/components/render-content/components/render-styles.jsx +0 -70
  183. package/packages/_rsc/src/components/render-content/index.js +0 -4
  184. package/packages/_rsc/src/components/render-content/render-content.jsx +0 -259
  185. package/packages/_rsc/src/components/render-inlined-styles.jsx +0 -33
  186. package/packages/_rsc/src/constants/builder-registered-components.js +0 -54
  187. package/packages/_rsc/src/constants/device-sizes.js +0 -48
  188. package/packages/_rsc/src/constants/target.js +0 -4
  189. package/packages/_rsc/src/context/builder.context.js +0 -11
  190. package/packages/_rsc/src/functions/camel-to-kebab-case.js +0 -4
  191. package/packages/_rsc/src/functions/evaluate.js +0 -6
  192. package/packages/_rsc/src/functions/event-handler-name.js +0 -7
  193. package/packages/_rsc/src/functions/extract-text-styles.js +0 -22
  194. package/packages/_rsc/src/functions/fast-clone.js +0 -4
  195. package/packages/_rsc/src/functions/get-block-actions-handler.js +0 -11
  196. package/packages/_rsc/src/functions/get-block-actions.js +0 -18
  197. package/packages/_rsc/src/functions/get-block-component-options.js +0 -28
  198. package/packages/_rsc/src/functions/get-block-properties.js +0 -50
  199. package/packages/_rsc/src/functions/get-block-tag.js +0 -6
  200. package/packages/_rsc/src/functions/get-builder-search-params/fn.test.js +0 -13
  201. package/packages/_rsc/src/functions/get-builder-search-params/index.js +0 -38
  202. package/packages/_rsc/src/functions/get-content/ab-testing.js +0 -99
  203. package/packages/_rsc/src/functions/get-content/generate-content-url.js +0 -55
  204. package/packages/_rsc/src/functions/get-content/generate-content-url.test.js +0 -31
  205. package/packages/_rsc/src/functions/get-content/index.js +0 -65
  206. package/packages/_rsc/src/functions/get-fetch.js +0 -14
  207. package/packages/_rsc/src/functions/get-global-this.js +0 -18
  208. package/packages/_rsc/src/functions/get-processed-block.js +0 -59
  209. package/packages/_rsc/src/functions/get-processed-block.test.js +0 -32
  210. package/packages/_rsc/src/functions/get-react-native-block-styles.js +0 -33
  211. package/packages/_rsc/src/functions/if-target.js +0 -15
  212. package/packages/_rsc/src/functions/is-browser.js +0 -6
  213. package/packages/_rsc/src/functions/is-editing.js +0 -7
  214. package/packages/_rsc/src/functions/is-iframe.js +0 -7
  215. package/packages/_rsc/src/functions/is-previewing.js +0 -14
  216. package/packages/_rsc/src/functions/on-change.js +0 -27
  217. package/packages/_rsc/src/functions/on-change.test.js +0 -19
  218. package/packages/_rsc/src/functions/register-component.js +0 -68
  219. package/packages/_rsc/src/functions/register.js +0 -29
  220. package/packages/_rsc/src/functions/sanitize-react-native-block-styles.js +0 -66
  221. package/packages/_rsc/src/functions/set-editor-settings.js +0 -15
  222. package/packages/_rsc/src/functions/set.js +0 -11
  223. package/packages/_rsc/src/functions/set.test.js +0 -16
  224. package/packages/_rsc/src/functions/track.js +0 -124
  225. package/packages/_rsc/src/functions/transform-block-properties.js +0 -6
  226. package/packages/_rsc/src/functions/transform-block.js +0 -6
  227. package/packages/_rsc/src/helpers/ab-tests.js +0 -16
  228. package/packages/_rsc/src/helpers/cookie.js +0 -81
  229. package/packages/_rsc/src/helpers/css.js +0 -34
  230. package/packages/_rsc/src/helpers/flatten.js +0 -34
  231. package/packages/_rsc/src/helpers/localStorage.js +0 -35
  232. package/packages/_rsc/src/helpers/nullable.js +0 -4
  233. package/packages/_rsc/src/helpers/sessionId.js +0 -52
  234. package/packages/_rsc/src/helpers/time.js +0 -5
  235. package/packages/_rsc/src/helpers/url.js +0 -13
  236. package/packages/_rsc/src/helpers/url.test.js +0 -21
  237. package/packages/_rsc/src/helpers/uuid.js +0 -13
  238. package/packages/_rsc/src/helpers/visitorId.js +0 -34
  239. package/packages/_rsc/src/index-helpers/blocks-exports.js +0 -22
  240. package/packages/_rsc/src/index-helpers/top-of-file.js +0 -2
  241. package/packages/_rsc/src/index.js +0 -14
  242. package/packages/_rsc/src/scripts/init-editing.js +0 -93
  243. package/packages/_rsc/src/types/builder-content.js +0 -0
  244. package/packages/_rsc/src/types/can-track.js +0 -0
  245. package/packages/_rsc/src/types/components.js +0 -0
  246. package/packages/_rsc/src/types/deep-partial.js +0 -0
  247. package/packages/_rsc/src/types/element.js +0 -0
  248. package/packages/_rsc/src/types/targets.js +0 -0
  249. package/packages/_rsc/src/types/typescript.js +0 -0
@@ -17,11 +17,11 @@ export default function Button(props) {
17
17
  </a>
18
18
  </>
19
19
  ) : (
20
- <button className="button-12870b9c" {...props.attributes}>
20
+ <button className="button-b25d5310" {...props.attributes}>
21
21
  {props.text}
22
22
  </button>
23
23
  )}
24
- <style>{`.button-12870b9c {
24
+ <style>{`.button-b25d5310 {
25
25
  all: unset;
26
26
  }`}</style>
27
27
  </>
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Core:Button",
3
- builtIn: true,
4
3
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13",
5
4
  defaultStyles: {
6
5
  appearance: "none",
@@ -118,7 +118,7 @@ export default function Columns(props) {
118
118
  <div
119
119
  className={
120
120
  `builder-columns ${props.builderBlock.id}-breakpoints` +
121
- " div-540739f0"
121
+ " div-ca644030"
122
122
  }
123
123
  style={{
124
124
  ...(TARGET === "reactNative" ? state.reactNativeColumnsStyles : {}),
@@ -136,7 +136,7 @@ export default function Columns(props) {
136
136
 
137
137
  {props.columns?.map((column, index) => (
138
138
  <div
139
- className="builder-column div-540739f0-2"
139
+ className="builder-column div-ca644030-2"
140
140
  style={{
141
141
  width: state.getColumnCssWidth(index),
142
142
  marginLeft: `${index === 0 ? 0 : state.getGutterSize()}px`,
@@ -159,10 +159,10 @@ export default function Columns(props) {
159
159
  </div>
160
160
  ))}
161
161
  </div>
162
- <style>{`.div-540739f0 {
162
+ <style>{`.div-ca644030 {
163
163
  display: flex;
164
164
  line-height: normal;
165
- }.div-540739f0-2 {
165
+ }.div-ca644030-2 {
166
166
  display: flex;
167
167
  flex-direction: column;
168
168
  align-items: stretch;
@@ -1,7 +1,6 @@
1
1
  import { serializeFn } from "../util.js";
2
2
  const componentInfo = {
3
3
  name: "Columns",
4
- builtIn: true,
5
4
  inputs: [
6
5
  {
7
6
  name: "columns",
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Custom Code",
3
3
  static: true,
4
- builtIn: true,
5
4
  requiredPermissions: ["editCode"],
6
5
  inputs: [
7
6
  {
@@ -2,7 +2,6 @@ import { serializeFn } from "../util.js";
2
2
  const componentInfo = {
3
3
  name: "Embed",
4
4
  static: true,
5
- builtIn: true,
6
5
  inputs: [
7
6
  {
8
7
  name: "url",
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Form:Form",
3
- builtIn: true,
4
3
  defaults: {
5
4
  responsiveStyles: {
6
5
  large: {
@@ -237,7 +237,7 @@ export default function FormComponent(props) {
237
237
  ) : null}{" "}
238
238
  {state.submissionState === "error" && state.responseData ? (
239
239
  <>
240
- <pre className="builder-form-error-text pre-105231da">
240
+ <pre className="builder-form-error-text pre-41e7c77e">
241
241
  {" "}
242
242
  {JSON.stringify(state.responseData, null, 2)}{" "}
243
243
  </pre>
@@ -253,7 +253,7 @@ export default function FormComponent(props) {
253
253
  </>
254
254
  ) : null}{" "}
255
255
  </form>{" "}
256
- <style>{`.pre-105231da { padding: 10px; color: red; text-align: center; }`}</style>{" "}
256
+ <style>{`.pre-41e7c77e { padding: 10px; color: red; text-align: center; }`}</style>{" "}
257
257
  </>
258
258
  );
259
259
  }
@@ -2,7 +2,6 @@ const componentInfo = {
2
2
  name: "Fragment",
3
3
  static: true,
4
4
  hidden: true,
5
- builtIn: true,
6
5
  canHaveChildren: true,
7
6
  noWrap: true
8
7
  };
@@ -2,7 +2,6 @@ import { serializeFn } from "../util.js";
2
2
  const componentInfo = {
3
3
  name: "Image",
4
4
  static: true,
5
- builtIn: true,
6
5
  image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",
7
6
  defaultStyles: {
8
7
  position: "relative",
@@ -68,7 +68,7 @@ export default function Image(props) {
68
68
  className={
69
69
  "builder-image" +
70
70
  (props.className ? " " + props.className : "") +
71
- " img-d6cf1f9c"
71
+ " img-5aa89e3a"
72
72
  }
73
73
  src={props.image}
74
74
  srcSet={state.srcSetToUse}
@@ -80,7 +80,7 @@ export default function Image(props) {
80
80
  !(props.builderBlock?.children?.length && props.fitContent) ? (
81
81
  <>
82
82
  <div
83
- className="builder-image-sizer div-d6cf1f9c"
83
+ className="builder-image-sizer div-5aa89e3a"
84
84
  style={{
85
85
  paddingTop:
86
86
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -96,18 +96,18 @@ export default function Image(props) {
96
96
 
97
97
  {!props.fitContent && props.children ? (
98
98
  <>
99
- <div className="div-d6cf1f9c-2">{props.children}</div>
99
+ <div className="div-5aa89e3a-2">{props.children}</div>
100
100
  </>
101
101
  ) : null}
102
102
  </>
103
- <style>{`.img-d6cf1f9c {
103
+ <style>{`.img-5aa89e3a {
104
104
  opacity: 1;
105
105
  transition: opacity 0.2s ease-in-out;
106
- }.div-d6cf1f9c {
106
+ }.div-5aa89e3a {
107
107
  width: 100%;
108
108
  pointer-events: none;
109
109
  font-size: 0;
110
- }.div-d6cf1f9c-2 {
110
+ }.div-5aa89e3a-2 {
111
111
  display: flex;
112
112
  flex-direction: column;
113
113
  align-items: stretch;
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Raw:Img",
3
3
  hideFromInsertMenu: true,
4
- builtIn: true,
5
4
  image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",
6
5
  inputs: [
7
6
  {
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Form:Input",
3
- builtIn: true,
4
3
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
5
4
  inputs: [
6
5
  {
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Builder:RawText",
3
3
  hideFromInsertMenu: true,
4
- builtIn: true,
5
4
  inputs: [
6
5
  {
7
6
  name: "text",
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Core:Section",
3
3
  static: true,
4
- builtIn: true,
5
4
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
6
5
  inputs: [
7
6
  {
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Form:Select",
3
- builtIn: true,
4
3
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
5
4
  defaultStyles: {
6
5
  alignSelf: "flex-start"
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Form:SubmitButton",
3
- builtIn: true,
4
3
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
5
4
  defaultStyles: {
6
5
  appearance: "none",
@@ -2,7 +2,6 @@ const componentInfo = {
2
2
  name: "Symbol",
3
3
  noWrap: true,
4
4
  static: true,
5
- builtIn: true,
6
5
  inputs: [
7
6
  {
8
7
  name: "symbol",
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Text",
3
3
  static: true,
4
- builtIn: true,
5
4
  image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929",
6
5
  inputs: [
7
6
  {
@@ -1,6 +1,5 @@
1
1
  const componentInfo = {
2
2
  name: "Form:TextArea",
3
- builtIn: true,
4
3
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3",
5
4
  inputs: [
6
5
  {
@@ -1,7 +1,6 @@
1
1
  const componentInfo = {
2
2
  name: "Video",
3
3
  canHaveChildren: true,
4
- builtIn: true,
5
4
  defaultStyles: {
6
5
  minHeight: "20px",
7
6
  minWidth: "20px"
@@ -37,10 +37,29 @@ export default function RenderBlock(props) {
37
37
  shouldEvaluateBindings: true,
38
38
  });
39
39
  },
40
+ get proxyState() {
41
+ if (typeof Proxy === "undefined") {
42
+ console.error(
43
+ "no Proxy available in this environment, cannot proxy state."
44
+ );
45
+ return props.context.state;
46
+ }
47
+ const useState = new Proxy(props.context.state, {
48
+ set: (obj, prop, value) => {
49
+ // set the value on the state object, so that the event handler instantly gets the update.
50
+ obj[prop] = value;
51
+
52
+ // set the value in the context, so that the rest of the app gets the update.
53
+ props.context.setState?.(obj);
54
+ return true;
55
+ },
56
+ });
57
+ return useState;
58
+ },
40
59
  get actions() {
41
60
  return getBlockActions({
42
61
  block: state.useBlock,
43
- state: props.context.state,
62
+ state: state.proxyState,
44
63
  context: props.context.context,
45
64
  });
46
65
  },
@@ -117,6 +136,7 @@ export default function RenderBlock(props) {
117
136
  state: props.context.state,
118
137
  content: props.context.content,
119
138
  context: props.context.context,
139
+ setState: props.context.setState,
120
140
  registeredComponents: props.context.registeredComponents,
121
141
  inheritedStyles: getInheritedTextStyles(),
122
142
  };
@@ -8,6 +8,7 @@ export default function RenderRepeatedBlock(props) {
8
8
  _context.BuilderContext = {
9
9
  content: props.repeatContext.content,
10
10
  state: props.repeatContext.state,
11
+ setState: props.repeatContext.setState,
11
12
  context: props.repeatContext.context,
12
13
  apiKey: props.repeatContext.apiKey,
13
14
  registeredComponents: props.repeatContext.registeredComponents,
@@ -46,7 +46,7 @@ export default function RenderBlocks(props) {
46
46
  return (
47
47
  <>
48
48
  <div
49
- className={state.className + " div-4f307ff9"}
49
+ className={state.className + " div-d19f7a9a"}
50
50
  builder-path={props.path}
51
51
  builder-parent-id={props.parent}
52
52
  dataSet={{
@@ -80,7 +80,7 @@ export default function RenderBlocks(props) {
80
80
  </>
81
81
  ) : null}
82
82
  </div>
83
- <style>{`.div-4f307ff9 {
83
+ <style>{`.div-d19f7a9a {
84
84
  display: flex;
85
85
  flex-direction: column;
86
86
  align-items: stretch;
@@ -1,7 +1,64 @@
1
- import * as React from "react";
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';
2
5
 
3
- export default function BuilderEditing(props) {
4
- const _context = { ...props["_context"] };
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
+ */
5
17
 
6
- return <div />;
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
+ );
7
64
  }
@@ -0,0 +1,57 @@
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,67 +1,21 @@
1
1
  import * as React from "react";
2
2
  import RenderInlinedStyles from "../../render-inlined-styles";
3
+ import { getCss } from "./render-styles.helpers";
4
+ import { getFontCss } from "./render-styles.helpers";
3
5
 
4
6
  export default function RenderContentStyles(props) {
5
7
  const _context = { ...props["_context"] };
6
8
 
7
9
  const state = {
8
- getCssFromFont(font) {
9
- // TODO: compute what font sizes are used and only load those.......
10
- const family =
11
- font.family +
12
- (font.kind && !font.kind.includes("#") ? ", " + font.kind : "");
13
- const name = family.split(",")[0];
14
- const url = font.fileUrl ?? font?.files?.regular;
15
- let str = "";
16
- if (url && family && name) {
17
- str += `
18
- @font-face {
19
- font-family: "${family}";
20
- src: local("${name}"), url('${url}') format('woff2');
21
- font-display: fallback;
22
- font-weight: 400;
23
- }
24
- `.trim();
25
- }
26
- if (font.files) {
27
- for (const weight in font.files) {
28
- const isNumber = String(Number(weight)) === weight;
29
- if (!isNumber) {
30
- continue;
31
- }
32
- // TODO: maybe limit number loaded
33
- const weightUrl = font.files[weight];
34
- if (weightUrl && weightUrl !== url) {
35
- str += `
36
- @font-face {
37
- font-family: "${family}";
38
- src: url('${weightUrl}') format('woff2');
39
- font-display: fallback;
40
- font-weight: ${weight};
41
- }
42
- `.trim();
43
- }
44
- }
45
- }
46
- return str;
47
- },
48
- getFontCss({ customFonts }) {
49
- // TODO: flag for this
50
- // if (!this.builder.allowCustomFonts) {
51
- // return '';
52
- // }
53
- // TODO: separate internal data from external
54
- return (
55
- customFonts?.map((font) => this.getCssFromFont(font))?.join(" ") || ""
56
- );
57
- },
58
- get injectedStyles() {
59
- return `
60
- ${props.cssCode || ""}
61
- ${state.getFontCss({
10
+ injectedStyles: `
11
+ ${getCss({
12
+ cssCode: props.cssCode,
13
+ contentId: props.contentId,
14
+ })}
15
+ ${getFontCss({
62
16
  customFonts: props.customFonts,
63
- })}`;
64
- },
17
+ })}
18
+ `,
65
19
  };
66
20
 
67
21
  return (
@@ -0,0 +1,48 @@
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
+ };