@builder.io/sdk-react-native 3.0.0 → 3.0.1-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 (277) hide show
  1. package/lib/browser/commonjs/blocks/image/component-info.js +2 -1
  2. package/lib/browser/commonjs/blocks/image/component-info.js.map +1 -1
  3. package/lib/browser/commonjs/blocks/img/component-info.js +2 -1
  4. package/lib/browser/commonjs/blocks/img/component-info.js.map +1 -1
  5. package/lib/browser/commonjs/blocks/video/component-info.js +3 -2
  6. package/lib/browser/commonjs/blocks/video/component-info.js.map +1 -1
  7. package/lib/browser/commonjs/components/block/block.helpers.js +17 -6
  8. package/lib/browser/commonjs/components/block/block.helpers.js.map +1 -1
  9. package/lib/browser/commonjs/components/block/block.js +3 -2
  10. package/lib/browser/commonjs/components/block/block.js.map +1 -1
  11. package/lib/browser/commonjs/components/blocks/blocks.js +46 -11
  12. package/lib/browser/commonjs/components/blocks/blocks.js.map +1 -1
  13. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  14. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  15. package/lib/browser/commonjs/components/content/components/enable-editor.js +17 -7
  16. package/lib/browser/commonjs/components/content/components/enable-editor.js.map +1 -1
  17. package/lib/browser/commonjs/components/content/content.js +37 -54
  18. package/lib/browser/commonjs/components/content/content.js.map +1 -1
  19. package/lib/browser/commonjs/constants/file-types.js +9 -0
  20. package/lib/browser/commonjs/constants/file-types.js.map +1 -0
  21. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  22. package/lib/browser/commonjs/context/builder.context.js +2 -1
  23. package/lib/browser/commonjs/context/builder.context.js.map +1 -1
  24. package/lib/browser/commonjs/functions/extract-localized-values.js +45 -0
  25. package/lib/browser/commonjs/functions/extract-localized-values.js.map +1 -0
  26. package/lib/browser/commonjs/functions/get-processed-block.js +3 -1
  27. package/lib/browser/commonjs/functions/get-processed-block.js.map +1 -1
  28. package/lib/browser/commonjs/functions/register-component.js +4 -1
  29. package/lib/browser/commonjs/functions/register-component.js.map +1 -1
  30. package/lib/browser/commonjs/functions/traverse.js +69 -0
  31. package/lib/browser/commonjs/functions/traverse.js.map +1 -0
  32. package/lib/browser/module/blocks/image/component-info.js +2 -1
  33. package/lib/browser/module/blocks/image/component-info.js.map +1 -1
  34. package/lib/browser/module/blocks/img/component-info.js +2 -1
  35. package/lib/browser/module/blocks/img/component-info.js.map +1 -1
  36. package/lib/browser/module/blocks/video/component-info.js +3 -2
  37. package/lib/browser/module/blocks/video/component-info.js.map +1 -1
  38. package/lib/browser/module/components/block/block.helpers.js +17 -6
  39. package/lib/browser/module/components/block/block.helpers.js.map +1 -1
  40. package/lib/browser/module/components/block/block.js +3 -2
  41. package/lib/browser/module/components/block/block.js.map +1 -1
  42. package/lib/browser/module/components/blocks/blocks.js +46 -11
  43. package/lib/browser/module/components/blocks/blocks.js.map +1 -1
  44. package/lib/browser/module/components/content/components/enable-editor.helpers.js +17 -0
  45. package/lib/browser/module/components/content/components/enable-editor.helpers.js.map +1 -0
  46. package/lib/browser/module/components/content/components/enable-editor.js +17 -7
  47. package/lib/browser/module/components/content/components/enable-editor.js.map +1 -1
  48. package/lib/browser/module/components/content/content.js +37 -54
  49. package/lib/browser/module/components/content/content.js.map +1 -1
  50. package/lib/browser/module/constants/file-types.js +3 -0
  51. package/lib/browser/module/constants/file-types.js.map +1 -0
  52. package/lib/browser/module/constants/sdk-version.js +1 -1
  53. package/lib/browser/module/context/builder.context.js +2 -1
  54. package/lib/browser/module/context/builder.context.js.map +1 -1
  55. package/lib/browser/module/functions/extract-localized-values.js +39 -0
  56. package/lib/browser/module/functions/extract-localized-values.js.map +1 -0
  57. package/lib/browser/module/functions/get-processed-block.js +3 -1
  58. package/lib/browser/module/functions/get-processed-block.js.map +1 -1
  59. package/lib/browser/module/functions/register-component.js +4 -1
  60. package/lib/browser/module/functions/register-component.js.map +1 -1
  61. package/lib/browser/module/functions/traverse.js +63 -0
  62. package/lib/browser/module/functions/traverse.js.map +1 -0
  63. package/lib/browser/typescript/blocks/image/component-info.d.ts.map +1 -1
  64. package/lib/browser/typescript/components/block/block.d.ts.map +1 -1
  65. package/lib/browser/typescript/components/block/block.helpers.d.ts +6 -3
  66. package/lib/browser/typescript/components/block/block.helpers.d.ts.map +1 -1
  67. package/lib/browser/typescript/components/blocks/blocks.d.ts +3 -2
  68. package/lib/browser/typescript/components/blocks/blocks.d.ts.map +1 -1
  69. package/lib/browser/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  70. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  71. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  72. package/lib/browser/typescript/components/content/content.d.ts.map +1 -1
  73. package/lib/browser/typescript/constants/file-types.d.ts +3 -0
  74. package/lib/browser/typescript/constants/file-types.d.ts.map +1 -0
  75. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  76. package/lib/browser/typescript/context/builder.context.d.ts.map +1 -1
  77. package/lib/browser/typescript/context/types.d.ts +1 -0
  78. package/lib/browser/typescript/context/types.d.ts.map +1 -1
  79. package/lib/browser/typescript/functions/extract-localized-values.d.ts +3 -0
  80. package/lib/browser/typescript/functions/extract-localized-values.d.ts.map +1 -0
  81. package/lib/browser/typescript/functions/get-processed-block.d.ts.map +1 -1
  82. package/lib/browser/typescript/functions/register-component.d.ts.map +1 -1
  83. package/lib/browser/typescript/functions/traverse.d.ts +35 -0
  84. package/lib/browser/typescript/functions/traverse.d.ts.map +1 -0
  85. package/lib/browser/typescript/types/components.d.ts +3 -0
  86. package/lib/browser/typescript/types/components.d.ts.map +1 -1
  87. package/lib/edge/commonjs/blocks/image/component-info.js +2 -1
  88. package/lib/edge/commonjs/blocks/image/component-info.js.map +1 -1
  89. package/lib/edge/commonjs/blocks/img/component-info.js +2 -1
  90. package/lib/edge/commonjs/blocks/img/component-info.js.map +1 -1
  91. package/lib/edge/commonjs/blocks/video/component-info.js +3 -2
  92. package/lib/edge/commonjs/blocks/video/component-info.js.map +1 -1
  93. package/lib/edge/commonjs/components/block/block.helpers.js +17 -6
  94. package/lib/edge/commonjs/components/block/block.helpers.js.map +1 -1
  95. package/lib/edge/commonjs/components/block/block.js +3 -2
  96. package/lib/edge/commonjs/components/block/block.js.map +1 -1
  97. package/lib/edge/commonjs/components/blocks/blocks.js +46 -11
  98. package/lib/edge/commonjs/components/blocks/blocks.js.map +1 -1
  99. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  100. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  101. package/lib/edge/commonjs/components/content/components/enable-editor.js +17 -7
  102. package/lib/edge/commonjs/components/content/components/enable-editor.js.map +1 -1
  103. package/lib/edge/commonjs/components/content/content.js +37 -54
  104. package/lib/edge/commonjs/components/content/content.js.map +1 -1
  105. package/lib/edge/commonjs/constants/file-types.js +9 -0
  106. package/lib/edge/commonjs/constants/file-types.js.map +1 -0
  107. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  108. package/lib/edge/commonjs/context/builder.context.js +2 -1
  109. package/lib/edge/commonjs/context/builder.context.js.map +1 -1
  110. package/lib/edge/commonjs/functions/extract-localized-values.js +45 -0
  111. package/lib/edge/commonjs/functions/extract-localized-values.js.map +1 -0
  112. package/lib/edge/commonjs/functions/get-processed-block.js +3 -1
  113. package/lib/edge/commonjs/functions/get-processed-block.js.map +1 -1
  114. package/lib/edge/commonjs/functions/register-component.js +4 -1
  115. package/lib/edge/commonjs/functions/register-component.js.map +1 -1
  116. package/lib/edge/commonjs/functions/traverse.js +69 -0
  117. package/lib/edge/commonjs/functions/traverse.js.map +1 -0
  118. package/lib/edge/module/blocks/image/component-info.js +2 -1
  119. package/lib/edge/module/blocks/image/component-info.js.map +1 -1
  120. package/lib/edge/module/blocks/img/component-info.js +2 -1
  121. package/lib/edge/module/blocks/img/component-info.js.map +1 -1
  122. package/lib/edge/module/blocks/video/component-info.js +3 -2
  123. package/lib/edge/module/blocks/video/component-info.js.map +1 -1
  124. package/lib/edge/module/components/block/block.helpers.js +17 -6
  125. package/lib/edge/module/components/block/block.helpers.js.map +1 -1
  126. package/lib/edge/module/components/block/block.js +3 -2
  127. package/lib/edge/module/components/block/block.js.map +1 -1
  128. package/lib/edge/module/components/blocks/blocks.js +46 -11
  129. package/lib/edge/module/components/blocks/blocks.js.map +1 -1
  130. package/lib/edge/module/components/content/components/enable-editor.helpers.js +17 -0
  131. package/lib/edge/module/components/content/components/enable-editor.helpers.js.map +1 -0
  132. package/lib/edge/module/components/content/components/enable-editor.js +17 -7
  133. package/lib/edge/module/components/content/components/enable-editor.js.map +1 -1
  134. package/lib/edge/module/components/content/content.js +37 -54
  135. package/lib/edge/module/components/content/content.js.map +1 -1
  136. package/lib/edge/module/constants/file-types.js +3 -0
  137. package/lib/edge/module/constants/file-types.js.map +1 -0
  138. package/lib/edge/module/constants/sdk-version.js +1 -1
  139. package/lib/edge/module/context/builder.context.js +2 -1
  140. package/lib/edge/module/context/builder.context.js.map +1 -1
  141. package/lib/edge/module/functions/extract-localized-values.js +39 -0
  142. package/lib/edge/module/functions/extract-localized-values.js.map +1 -0
  143. package/lib/edge/module/functions/get-processed-block.js +3 -1
  144. package/lib/edge/module/functions/get-processed-block.js.map +1 -1
  145. package/lib/edge/module/functions/register-component.js +4 -1
  146. package/lib/edge/module/functions/register-component.js.map +1 -1
  147. package/lib/edge/module/functions/traverse.js +63 -0
  148. package/lib/edge/module/functions/traverse.js.map +1 -0
  149. package/lib/edge/typescript/blocks/image/component-info.d.ts.map +1 -1
  150. package/lib/edge/typescript/components/block/block.d.ts.map +1 -1
  151. package/lib/edge/typescript/components/block/block.helpers.d.ts +6 -3
  152. package/lib/edge/typescript/components/block/block.helpers.d.ts.map +1 -1
  153. package/lib/edge/typescript/components/blocks/blocks.d.ts +3 -2
  154. package/lib/edge/typescript/components/blocks/blocks.d.ts.map +1 -1
  155. package/lib/edge/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  156. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  157. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  158. package/lib/edge/typescript/components/content/content.d.ts.map +1 -1
  159. package/lib/edge/typescript/constants/file-types.d.ts +3 -0
  160. package/lib/edge/typescript/constants/file-types.d.ts.map +1 -0
  161. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  162. package/lib/edge/typescript/context/builder.context.d.ts.map +1 -1
  163. package/lib/edge/typescript/context/types.d.ts +1 -0
  164. package/lib/edge/typescript/context/types.d.ts.map +1 -1
  165. package/lib/edge/typescript/functions/extract-localized-values.d.ts +3 -0
  166. package/lib/edge/typescript/functions/extract-localized-values.d.ts.map +1 -0
  167. package/lib/edge/typescript/functions/get-processed-block.d.ts.map +1 -1
  168. package/lib/edge/typescript/functions/register-component.d.ts.map +1 -1
  169. package/lib/edge/typescript/functions/traverse.d.ts +35 -0
  170. package/lib/edge/typescript/functions/traverse.d.ts.map +1 -0
  171. package/lib/edge/typescript/types/components.d.ts +3 -0
  172. package/lib/edge/typescript/types/components.d.ts.map +1 -1
  173. package/lib/node/commonjs/blocks/image/component-info.js +2 -1
  174. package/lib/node/commonjs/blocks/image/component-info.js.map +1 -1
  175. package/lib/node/commonjs/blocks/img/component-info.js +2 -1
  176. package/lib/node/commonjs/blocks/img/component-info.js.map +1 -1
  177. package/lib/node/commonjs/blocks/video/component-info.js +3 -2
  178. package/lib/node/commonjs/blocks/video/component-info.js.map +1 -1
  179. package/lib/node/commonjs/components/block/block.helpers.js +17 -6
  180. package/lib/node/commonjs/components/block/block.helpers.js.map +1 -1
  181. package/lib/node/commonjs/components/block/block.js +3 -2
  182. package/lib/node/commonjs/components/block/block.js.map +1 -1
  183. package/lib/node/commonjs/components/blocks/blocks.js +46 -11
  184. package/lib/node/commonjs/components/blocks/blocks.js.map +1 -1
  185. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  186. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  187. package/lib/node/commonjs/components/content/components/enable-editor.js +17 -7
  188. package/lib/node/commonjs/components/content/components/enable-editor.js.map +1 -1
  189. package/lib/node/commonjs/components/content/content.js +37 -54
  190. package/lib/node/commonjs/components/content/content.js.map +1 -1
  191. package/lib/node/commonjs/constants/file-types.js +9 -0
  192. package/lib/node/commonjs/constants/file-types.js.map +1 -0
  193. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  194. package/lib/node/commonjs/context/builder.context.js +2 -1
  195. package/lib/node/commonjs/context/builder.context.js.map +1 -1
  196. package/lib/node/commonjs/functions/extract-localized-values.js +45 -0
  197. package/lib/node/commonjs/functions/extract-localized-values.js.map +1 -0
  198. package/lib/node/commonjs/functions/get-processed-block.js +3 -1
  199. package/lib/node/commonjs/functions/get-processed-block.js.map +1 -1
  200. package/lib/node/commonjs/functions/register-component.js +4 -1
  201. package/lib/node/commonjs/functions/register-component.js.map +1 -1
  202. package/lib/node/commonjs/functions/traverse.js +69 -0
  203. package/lib/node/commonjs/functions/traverse.js.map +1 -0
  204. package/lib/node/module/blocks/image/component-info.js +2 -1
  205. package/lib/node/module/blocks/image/component-info.js.map +1 -1
  206. package/lib/node/module/blocks/img/component-info.js +2 -1
  207. package/lib/node/module/blocks/img/component-info.js.map +1 -1
  208. package/lib/node/module/blocks/video/component-info.js +3 -2
  209. package/lib/node/module/blocks/video/component-info.js.map +1 -1
  210. package/lib/node/module/components/block/block.helpers.js +17 -6
  211. package/lib/node/module/components/block/block.helpers.js.map +1 -1
  212. package/lib/node/module/components/block/block.js +3 -2
  213. package/lib/node/module/components/block/block.js.map +1 -1
  214. package/lib/node/module/components/blocks/blocks.js +46 -11
  215. package/lib/node/module/components/blocks/blocks.js.map +1 -1
  216. package/lib/node/module/components/content/components/enable-editor.helpers.js +17 -0
  217. package/lib/node/module/components/content/components/enable-editor.helpers.js.map +1 -0
  218. package/lib/node/module/components/content/components/enable-editor.js +17 -7
  219. package/lib/node/module/components/content/components/enable-editor.js.map +1 -1
  220. package/lib/node/module/components/content/content.js +37 -54
  221. package/lib/node/module/components/content/content.js.map +1 -1
  222. package/lib/node/module/constants/file-types.js +3 -0
  223. package/lib/node/module/constants/file-types.js.map +1 -0
  224. package/lib/node/module/constants/sdk-version.js +1 -1
  225. package/lib/node/module/context/builder.context.js +2 -1
  226. package/lib/node/module/context/builder.context.js.map +1 -1
  227. package/lib/node/module/functions/extract-localized-values.js +39 -0
  228. package/lib/node/module/functions/extract-localized-values.js.map +1 -0
  229. package/lib/node/module/functions/get-processed-block.js +3 -1
  230. package/lib/node/module/functions/get-processed-block.js.map +1 -1
  231. package/lib/node/module/functions/register-component.js +4 -1
  232. package/lib/node/module/functions/register-component.js.map +1 -1
  233. package/lib/node/module/functions/traverse.js +63 -0
  234. package/lib/node/module/functions/traverse.js.map +1 -0
  235. package/lib/node/typescript/blocks/image/component-info.d.ts.map +1 -1
  236. package/lib/node/typescript/components/block/block.d.ts.map +1 -1
  237. package/lib/node/typescript/components/block/block.helpers.d.ts +6 -3
  238. package/lib/node/typescript/components/block/block.helpers.d.ts.map +1 -1
  239. package/lib/node/typescript/components/blocks/blocks.d.ts +3 -2
  240. package/lib/node/typescript/components/blocks/blocks.d.ts.map +1 -1
  241. package/lib/node/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  242. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  243. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  244. package/lib/node/typescript/components/content/content.d.ts.map +1 -1
  245. package/lib/node/typescript/constants/file-types.d.ts +3 -0
  246. package/lib/node/typescript/constants/file-types.d.ts.map +1 -0
  247. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  248. package/lib/node/typescript/context/builder.context.d.ts.map +1 -1
  249. package/lib/node/typescript/context/types.d.ts +1 -0
  250. package/lib/node/typescript/context/types.d.ts.map +1 -1
  251. package/lib/node/typescript/functions/extract-localized-values.d.ts +3 -0
  252. package/lib/node/typescript/functions/extract-localized-values.d.ts.map +1 -0
  253. package/lib/node/typescript/functions/get-processed-block.d.ts.map +1 -1
  254. package/lib/node/typescript/functions/register-component.d.ts.map +1 -1
  255. package/lib/node/typescript/functions/traverse.d.ts +35 -0
  256. package/lib/node/typescript/functions/traverse.d.ts.map +1 -0
  257. package/lib/node/typescript/types/components.d.ts +3 -0
  258. package/lib/node/typescript/types/components.d.ts.map +1 -1
  259. package/package.json +1 -1
  260. package/src/blocks/image/component-info.ts +2 -1
  261. package/src/blocks/img/component-info.ts +2 -1
  262. package/src/blocks/video/component-info.ts +3 -2
  263. package/src/components/block/block.helpers.ts +18 -6
  264. package/src/components/block/block.tsx +3 -1
  265. package/src/components/blocks/blocks.tsx +89 -54
  266. package/src/components/content/components/enable-editor.helpers.ts +18 -0
  267. package/src/components/content/components/enable-editor.tsx +25 -5
  268. package/src/components/content/content.tsx +3 -10
  269. package/src/constants/file-types.ts +2 -0
  270. package/src/constants/sdk-version.ts +1 -1
  271. package/src/context/builder.context.ts +1 -0
  272. package/src/context/types.ts +1 -0
  273. package/src/functions/extract-localized-values.ts +38 -0
  274. package/src/functions/get-processed-block.ts +3 -1
  275. package/src/functions/register-component.ts +4 -1
  276. package/src/functions/traverse.ts +64 -0
  277. package/src/types/components.ts +3 -0
@@ -55,6 +55,7 @@ import type {
55
55
  BuilderComponentStateChange,
56
56
  ContentProps,
57
57
  } from "../content.types";
58
+ import { needsElementRefDivForEditing } from "./enable-editor.helpers";
58
59
  import { getWrapperClassName } from "./styles.helpers";
59
60
 
60
61
  function EnableEditor(props: BuilderEditorProps) {
@@ -249,8 +250,14 @@ function EnableEditor(props: BuilderEditorProps) {
249
250
  Object.values<ComponentInfo>(
250
251
  props.builderContextSignal.componentInfos
251
252
  ).forEach((registeredComponent) => {
252
- const message = createRegisterComponentMessage(registeredComponent);
253
- window.parent?.postMessage(message, "*");
253
+ if (
254
+ !props.model ||
255
+ !registeredComponent.models?.length ||
256
+ registeredComponent.models.includes(props.model)
257
+ ) {
258
+ const message = createRegisterComponentMessage(registeredComponent);
259
+ window.parent?.postMessage(message, "*");
260
+ }
254
261
  });
255
262
  window.addEventListener(
256
263
  "builder:component:stateChangeListenerActivated",
@@ -323,8 +330,14 @@ function EnableEditor(props: BuilderEditorProps) {
323
330
  Object.values<ComponentInfo>(
324
331
  props.builderContextSignal.componentInfos
325
332
  ).forEach((registeredComponent) => {
326
- const message = createRegisterComponentMessage(registeredComponent);
327
- window.parent?.postMessage(message, "*");
333
+ if (
334
+ !props.model ||
335
+ !registeredComponent.models?.length ||
336
+ registeredComponent.models.includes(props.model)
337
+ ) {
338
+ const message = createRegisterComponentMessage(registeredComponent);
339
+ window.parent?.postMessage(message, "*");
340
+ }
328
341
  });
329
342
  window.addEventListener(
330
343
  "builder:component:stateChangeListenerActivated",
@@ -422,13 +435,20 @@ function EnableEditor(props: BuilderEditorProps) {
422
435
 
423
436
  return (
424
437
  <builderContext.Provider value={props.builderContextSignal}>
425
- {props.builderContextSignal.content ? (
438
+ {props.builderContextSignal.content || needsElementRefDivForEditing() ? (
426
439
  <ContentWrapper
427
440
  {...{}}
428
441
  ref={elementRef}
429
442
  onClick={(event) => onClick(event)}
430
443
  builder-content-id={props.builderContextSignal.content?.id}
431
444
  builder-model={props.model}
445
+ style={{
446
+ display:
447
+ !props.builderContextSignal.content &&
448
+ needsElementRefDivForEditing()
449
+ ? "none"
450
+ : undefined,
451
+ }}
432
452
  {...{
433
453
  // currently, we can't set the actual ID here. // we don't need it right now, we just need to identify content divs for testing.
434
454
  dataSet: {
@@ -59,11 +59,7 @@ function ContentComponent(props: ContentProps) {
59
59
  const [registeredComponents, setRegisteredComponents] = useState(() =>
60
60
  [
61
61
  ...getDefaultRegisteredComponents(),
62
- ...(props.customComponents?.filter(({ models }) => {
63
- if (!models?.length) return true;
64
- if (!props.model) return true;
65
- return models.includes(props.model);
66
- }) || []),
62
+ ...(props.customComponents || []),
67
63
  ].reduce<RegisteredComponents>(
68
64
  (acc, { component, ...info }) => ({
69
65
  ...acc,
@@ -96,11 +92,7 @@ function ContentComponent(props: ContentProps) {
96
92
  apiVersion: props.apiVersion,
97
93
  componentInfos: [
98
94
  ...getDefaultRegisteredComponents(),
99
- ...(props.customComponents?.filter(({ models }) => {
100
- if (!models?.length) return true;
101
- if (!props.model) return true;
102
- return models.includes(props.model);
103
- }) || []),
95
+ ...(props.customComponents || []),
104
96
  ].reduce<Dictionary<ComponentInfo>>(
105
97
  (acc, { component: _, ...info }) => ({
106
98
  ...acc,
@@ -112,6 +104,7 @@ function ContentComponent(props: ContentProps) {
112
104
  BlocksWrapper: props.blocksWrapper || ScrollView,
113
105
  BlocksWrapperProps: props.blocksWrapperProps || {},
114
106
  nonce: props.nonce || "",
107
+ model: props.model || "",
115
108
  }));
116
109
 
117
110
  const hasInitialized = useRef(false);
@@ -0,0 +1,2 @@
1
+ export const IMAGE_FILE_TYPES = ['jpeg', 'jpg', 'png', 'svg', 'webp', 'gif', 'jfif', 'pjpeg', 'pjp', 'apng', 'avif', 'tif', 'tiff', 'heif', 'bmp', 'eps', 'raw', 'cr2', 'nef', 'orf', 'sr2', 'psd', 'heic', 'dib', 'ai'];
2
+ export const VIDEO_FILE_TYPES = ['mp4', 'webm', 'mkv', 'flv', 'vob', 'ogv', 'ogg', 'drc', 'gif', 'gifv', 'mng', 'avi', 'mov', 'qt', 'mts', 'm2ts', 'ts', 'wmv', 'yuv', 'rm', 'rmvb', 'viv', 'asf', 'amv', 'm4p', 'mpeg', 'mpe', 'm2v', 'm4v', 'svi', '3gp', '3g2', 'mxf', 'roq', 'nsv', 'f4v', 'f4p', 'f4a', 'f4b']
@@ -1 +1 @@
1
- export const SDK_VERSION = "3.0.0"
1
+ export const SDK_VERSION = "3.0.1"
@@ -13,4 +13,5 @@ export default createContext<any>({
13
13
  BlocksWrapper: "div",
14
14
  BlocksWrapperProps: {},
15
15
  nonce: "",
16
+ model: "",
16
17
  });
@@ -37,5 +37,6 @@ export interface BuilderContextInterface extends Pick<BlocksWrapperProps, 'Block
37
37
  // Used to recursively store all CSS coming from a parent that would apply to a Text block
38
38
  inheritedStyles: Record<string, unknown>;
39
39
  nonce: string;
40
+ model: string;
40
41
  canTrack?: boolean;
41
42
  }
@@ -0,0 +1,38 @@
1
+ import type { BuilderBlock } from '../types/builder-block';
2
+ import { traverse } from './traverse';
3
+ function isLocalizedField(value: any) {
4
+ return value && typeof value === 'object' && value['@type'] === '@builder.io/core:LocalizedValue';
5
+ }
6
+ function containsLocalizedValues(data: Record<string, any>) {
7
+ if (!data || !Object.getOwnPropertyNames(data).length) {
8
+ return false;
9
+ }
10
+ let hasLocalizedValues = false;
11
+ traverse(data, value => {
12
+ if (isLocalizedField(value)) {
13
+ hasLocalizedValues = true;
14
+ return;
15
+ }
16
+ });
17
+ return hasLocalizedValues;
18
+ }
19
+ function extractLocalizedValues(data: Record<string, any>, locale: string) {
20
+ if (!data || !Object.getOwnPropertyNames(data).length) {
21
+ return {};
22
+ }
23
+ traverse(data, (value, update) => {
24
+ if (isLocalizedField(value)) {
25
+ update(value[locale] ?? undefined);
26
+ }
27
+ });
28
+ return data;
29
+ }
30
+ export function resolveLocalizedValues(block: BuilderBlock, locale: string | undefined) {
31
+ if (block.component?.options && containsLocalizedValues(block.component?.options)) {
32
+ if (!locale) {
33
+ console.warn('[Builder.io] In order to use localized fields in Builder, you must pass a locale prop to the BuilderComponent or to options object while fetching the content to resolve localized fields. Learn more: https://www.builder.io/c/docs/localization-inline#targeting-and-inline-localization');
34
+ }
35
+ block.component.options = extractLocalizedValues(block.component.options, locale ?? 'Default');
36
+ }
37
+ return block;
38
+ }
@@ -3,6 +3,7 @@ import type { BuilderContextInterface } from '../context/types';
3
3
  import { omit } from '../helpers/omit';
4
4
  import type { BuilderBlock } from '../types/builder-block';
5
5
  import { evaluate } from './evaluate/index';
6
+ import { resolveLocalizedValues } from './extract-localized-values';
6
7
  import { fastClone } from './fast-clone';
7
8
  import { set } from './set';
8
9
  import { transformBlock } from './transform-block';
@@ -96,7 +97,8 @@ export function getProcessedBlock({
96
97
  */
97
98
  shouldEvaluateBindings: boolean;
98
99
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>): BuilderBlock {
99
- const transformedBlock = transformBlock(block);
100
+ let transformedBlock = resolveLocalizedValues(block, (rootState.locale as string | undefined));
101
+ transformedBlock = transformBlock(transformedBlock);
100
102
  if (shouldEvaluateBindings) {
101
103
  return evaluateBindings({
102
104
  block: transformedBlock,
@@ -13,8 +13,11 @@ const serializeFn = (fnValue: Function) => {
13
13
  // 2. `name(args) => {code}`
14
14
  // 3. `(args) => {}`
15
15
  // 4. `args => {}`
16
+ // 5. `async function(args) {code}`
17
+ // 6. `async (args) => {}`
18
+ // 7. `async args => {}`
16
19
  const isArrowWithoutParens = /^[a-zA-Z0-9_]+\s*=>/i.test(fnStr);
17
- const appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('(') && !isArrowWithoutParens;
20
+ const appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('async') && !fnStr.startsWith('(') && !isArrowWithoutParens;
18
21
  return `return (${appendFunction ? 'function ' : ''}${fnStr}).apply(this, arguments)`;
19
22
  };
20
23
  export function serializeIncludingFunctions(info: ComponentInfo) {
@@ -0,0 +1,64 @@
1
+ type TraverseCallback = (value: any, update: (newValue: any) => void) => void;
2
+
3
+ /**
4
+ * Recursively traverses an object or array, invoking a callback on each value.
5
+ *
6
+ * @param {any} obj - The object or array to traverse. Can also handle primitives, null, or undefined.
7
+ * @param {TraverseCallback} callback - The function to invoke on each value. Receives the current value
8
+ * and an `update` function to modify the value in its parent container.
9
+ * @param {any} [parent=null] - The parent object or array of the current value. Used internally.
10
+ * @param {any} [key=null] - The key or index of the current value in its parent. Used internally.
11
+ * @param {WeakSet} [visited=new WeakSet()] - Tracks visited objects to handle circular references. Used internally.
12
+ *
13
+ * @example
14
+ * // Example: Doubling all numbers in an object
15
+ * const obj = { a: 1, b: [2, 3, { c: 4 }] };
16
+ * traverse(obj, (value, update) => {
17
+ * if (typeof value === 'number') {
18
+ * update(value * 2);
19
+ * }
20
+ * });
21
+ * console.log(obj); // { a: 2, b: [4, 6, { c: 8 }] }
22
+ *
23
+ * @example
24
+ * // Example: Handling circular references
25
+ * const obj = { a: 1 };
26
+ * obj.self = obj;
27
+ * traverse(obj, (value, update) => {
28
+ * if (typeof value === 'number') {
29
+ * update(value * 2);
30
+ * }
31
+ * });
32
+ * console.log(obj.a); // 2
33
+ */
34
+ export function traverse(obj: any, callback: TraverseCallback, parent: any = null, key: any = null, visited = new WeakSet()): void {
35
+ if (obj == null || typeof obj !== 'object') {
36
+ callback(obj, (newValue: any) => {
37
+ if (parent !== null && key !== null) {
38
+ parent[key] = newValue;
39
+ }
40
+ });
41
+ return;
42
+ }
43
+ if (visited.has(obj)) {
44
+ return;
45
+ }
46
+ visited.add(obj);
47
+ if (Array.isArray(obj)) {
48
+ obj.forEach((item, index) => {
49
+ const update = (newValue: any) => {
50
+ obj[index] = newValue;
51
+ };
52
+ callback(item, update);
53
+ traverse(item, callback, obj, index, visited);
54
+ });
55
+ } else {
56
+ Object.entries(obj).forEach(([key, value]) => {
57
+ const update = (newValue: any) => {
58
+ obj[key] = newValue;
59
+ };
60
+ callback(value, update);
61
+ traverse(value, callback, obj, key, visited);
62
+ });
63
+ }
64
+ }
@@ -161,5 +161,8 @@ export interface ComponentInfo {
161
161
  */
162
162
  builderLinkComponent?: boolean;
163
163
  };
164
+ meta?: {
165
+ [key: string]: any;
166
+ };
164
167
  }
165
168
  type Permission = 'read' | 'publish' | 'editCode' | 'editDesigns' | 'admin' | 'create'