@builder.io/sdk-react-native 0.4.4 → 0.5.0

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 (393) hide show
  1. package/dist/blocks/button/button.js +6 -2
  2. package/dist/blocks/button/component-info.js +4 -8
  3. package/dist/blocks/columns/columns.js +19 -23
  4. package/dist/blocks/columns/component-info.js +27 -48
  5. package/dist/blocks/custom-code/component-info.js +4 -8
  6. package/dist/blocks/custom-code/custom-code.js +1 -1
  7. package/dist/blocks/embed/component-info.js +7 -11
  8. package/dist/blocks/embed/embed.js +1 -1
  9. package/dist/blocks/embed/helpers.js +2 -6
  10. package/dist/blocks/form/component-info.js +33 -69
  11. package/dist/blocks/form/form.js +2 -203
  12. package/dist/blocks/fragment/fragment.js +1 -1
  13. package/dist/blocks/helpers.js +33 -0
  14. package/dist/blocks/image/component-info.js +21 -47
  15. package/dist/blocks/image/image.helpers.js +2 -2
  16. package/dist/blocks/img/component-info.js +2 -4
  17. package/dist/blocks/img/img.js +2 -1
  18. package/dist/blocks/input/component-info.js +8 -34
  19. package/dist/blocks/input/input.js +2 -1
  20. package/dist/blocks/raw-text/component-info.js +2 -4
  21. package/dist/blocks/raw-text/raw-text.js +3 -2
  22. package/dist/blocks/section/component-info.js +5 -10
  23. package/dist/blocks/section/section.js +2 -1
  24. package/dist/blocks/select/component-info.js +12 -24
  25. package/dist/blocks/select/select.js +2 -1
  26. package/dist/blocks/submit-button/component-info.js +2 -4
  27. package/dist/blocks/submit-button/submit-button.js +2 -1
  28. package/dist/blocks/symbol/component-info.js +7 -12
  29. package/dist/blocks/symbol/symbol.helpers.js +66 -0
  30. package/dist/blocks/symbol/symbol.js +23 -50
  31. package/dist/blocks/text/component-info.js +3 -4
  32. package/dist/blocks/textarea/component-info.js +6 -12
  33. package/dist/blocks/textarea/textarea.js +2 -1
  34. package/dist/blocks/video/component-info.js +21 -41
  35. package/dist/components/block/block.helpers.js +102 -0
  36. package/dist/components/block/block.js +141 -0
  37. package/dist/components/block/components/block-styles.js +95 -0
  38. package/dist/components/block/components/block-wrapper/block-wrapper.js +41 -0
  39. package/dist/components/block/components/block-wrapper.js +56 -0
  40. package/dist/components/block/components/component-ref/component-ref.helpers.js +40 -0
  41. package/dist/components/block/components/component-ref/component-ref.js +63 -0
  42. package/dist/components/block/components/component-ref.js +81 -0
  43. package/dist/components/block/components/component.js +41 -0
  44. package/dist/components/block/components/interactive-element/interactive-element.helpers.js +35 -0
  45. package/dist/components/block/components/interactive-element/interactive-element.js +36 -0
  46. package/dist/components/block/components/interactive-element.js +46 -0
  47. package/dist/components/block/components/repeated-block.js +40 -0
  48. package/dist/components/block/types.js +1 -0
  49. package/dist/components/blocks/blocks-wrapper.js +69 -0
  50. package/dist/components/blocks/blocks.js +41 -0
  51. package/dist/components/content/builder-editing.js +32 -0
  52. package/dist/components/content/components/content-styles.helpers.js +55 -0
  53. package/dist/components/content/components/content-styles.js +61 -0
  54. package/dist/components/content/components/enable-editor.js +310 -0
  55. package/dist/components/content/components/styles.helpers.js +55 -0
  56. package/dist/components/content/components/styles.js +61 -0
  57. package/dist/components/content/content.helpers.js +49 -0
  58. package/dist/components/content/content.js +110 -0
  59. package/dist/components/content/content.types.js +1 -0
  60. package/dist/components/content/index.js +8 -0
  61. package/dist/components/content/wrap-component-ref.js +5 -0
  62. package/dist/components/content-variants/content-variants.js +77 -0
  63. package/dist/components/content-variants/content-variants.types.js +1 -0
  64. package/dist/components/content-variants/helpers.js +175 -0
  65. package/dist/components/inlined-script.js +32 -0
  66. package/dist/components/{render-inlined-styles.js → inlined-styles.js} +3 -3
  67. package/dist/components/render-block/block-styles.js +2 -2
  68. package/dist/components/render-content/components/render-styles.js +2 -2
  69. package/dist/components/render-content/render-content.js +10 -8
  70. package/dist/components/render-content-variants/helpers.js +49 -20
  71. package/dist/components/render-content-variants/render-content-variants.js +29 -24
  72. package/dist/components/render-content-variants/render-content-variants.types.js +1 -0
  73. package/dist/constants/device-sizes.js +2 -2
  74. package/dist/constants/sdk-version.js +1 -1
  75. package/dist/context/builder.context.js +1 -1
  76. package/dist/functions/apply-patch-with-mutation.js +75 -0
  77. package/dist/functions/apply-patch-with-mutation.test.js +55 -0
  78. package/dist/functions/camel-to-kebab-case.js +1 -1
  79. package/dist/functions/evaluate/acorn.js +1691 -0
  80. package/dist/functions/evaluate/evaluate.js +72 -0
  81. package/dist/functions/evaluate/index.js +5 -0
  82. package/dist/functions/evaluate/interpreter.js +2903 -0
  83. package/dist/functions/evaluate/non-node-runtime.js +97 -0
  84. package/dist/functions/evaluate/types.js +1 -0
  85. package/dist/functions/evaluate.test.js +12 -6
  86. package/dist/functions/event-handler-name.js +1 -1
  87. package/dist/functions/extract-text-styles.js +3 -9
  88. package/dist/functions/fast-clone.js +1 -1
  89. package/dist/functions/get-block-actions-handler.js +2 -2
  90. package/dist/functions/get-block-actions.js +14 -1
  91. package/dist/functions/get-block-component-options.js +6 -1
  92. package/dist/functions/get-block-properties.js +21 -8
  93. package/dist/functions/get-builder-search-params/fn.test.js +3 -3
  94. package/dist/functions/get-builder-search-params/index.js +4 -4
  95. package/dist/functions/get-content/generate-content-url.js +12 -5
  96. package/dist/functions/get-content/generate-content-url.test.js +31 -17
  97. package/dist/functions/get-content/index.js +36 -12
  98. package/dist/functions/get-content/processCookies.js +7 -0
  99. package/dist/functions/get-processed-block.js +8 -3
  100. package/dist/functions/get-processed-block.test.js +3 -1
  101. package/dist/functions/get-react-native-block-styles.js +6 -1
  102. package/dist/functions/is-non-node-server.js +12 -0
  103. package/dist/functions/on-change.test.js +13 -3
  104. package/dist/functions/register-component.js +24 -19
  105. package/dist/functions/sanitize-react-native-block-styles.js +17 -6
  106. package/dist/functions/set.test.js +9 -3
  107. package/dist/functions/track/helpers.js +5 -5
  108. package/dist/functions/track/index.js +29 -18
  109. package/dist/functions/track/interaction.js +10 -4
  110. package/dist/functions/transform-block-properties.js +2 -0
  111. package/dist/helpers/ab-tests.js +38 -14
  112. package/dist/helpers/canTrack.js +2 -2
  113. package/dist/helpers/css.js +2 -2
  114. package/dist/helpers/flatten.js +10 -7
  115. package/dist/helpers/nullable.js +1 -1
  116. package/dist/helpers/preview-lru-cache/get.js +11 -0
  117. package/dist/helpers/preview-lru-cache/helpers.js +13 -0
  118. package/dist/helpers/preview-lru-cache/init.js +13 -0
  119. package/dist/helpers/preview-lru-cache/set.js +37 -0
  120. package/dist/helpers/preview-lru-cache/types.js +1 -0
  121. package/dist/helpers/sessionId.js +13 -6
  122. package/dist/helpers/url.js +1 -1
  123. package/dist/helpers/visitorId.js +4 -1
  124. package/dist/index-helpers/blocks-exports.js +2 -2
  125. package/dist/scripts/init-editing.js +61 -46
  126. package/dist/types/builder-props.js +1 -0
  127. package/dist/types/enforced-partials.js +1 -0
  128. package/package.json +2 -2
  129. package/src/blocks/button/button.jsx +11 -2
  130. package/src/blocks/button/component-info.js +16 -22
  131. package/src/blocks/columns/columns.jsx +29 -28
  132. package/src/blocks/columns/component-info.js +203 -226
  133. package/src/blocks/custom-code/component-info.js +19 -25
  134. package/src/blocks/custom-code/custom-code.jsx +1 -1
  135. package/src/blocks/embed/component-info.js +31 -37
  136. package/src/blocks/embed/embed.jsx +1 -1
  137. package/src/blocks/embed/helpers.js +3 -9
  138. package/src/blocks/form/component-info.js +174 -212
  139. package/src/blocks/form/form.jsx +3 -247
  140. package/src/blocks/fragment/component-info.js +1 -3
  141. package/src/blocks/fragment/fragment.jsx +1 -1
  142. package/src/blocks/helpers.js +27 -0
  143. package/src/blocks/image/component-info.js +105 -133
  144. package/src/blocks/image/image.helpers.js +3 -5
  145. package/src/blocks/img/component-info.js +8 -12
  146. package/src/blocks/img/img.jsx +3 -1
  147. package/src/blocks/input/component-info.js +29 -57
  148. package/src/blocks/input/input.jsx +3 -1
  149. package/src/blocks/raw-text/component-info.js +7 -11
  150. package/src/blocks/raw-text/raw-text.jsx +4 -2
  151. package/src/blocks/section/component-info.js +24 -31
  152. package/src/blocks/section/section.jsx +3 -1
  153. package/src/blocks/select/component-info.js +34 -48
  154. package/src/blocks/select/select.jsx +3 -1
  155. package/src/blocks/submit-button/component-info.js +6 -10
  156. package/src/blocks/submit-button/submit-button.jsx +3 -2
  157. package/src/blocks/symbol/component-info.js +30 -37
  158. package/src/blocks/symbol/symbol.helpers.js +60 -0
  159. package/src/blocks/symbol/symbol.jsx +34 -59
  160. package/src/blocks/text/component-info.js +10 -13
  161. package/src/blocks/textarea/component-info.js +22 -30
  162. package/src/blocks/textarea/textarea.jsx +3 -1
  163. package/src/blocks/video/component-info.js +74 -96
  164. package/src/components/{render-block/render-block.helpers.js → block/block.helpers.js} +26 -44
  165. package/src/components/{render-block/render-block.jsx → block/block.jsx} +68 -81
  166. package/src/components/{render-block → block/components}/block-styles.jsx +19 -18
  167. package/src/components/block/components/block-wrapper.jsx +58 -0
  168. package/src/components/block/components/component-ref/component-ref.helpers.js +41 -0
  169. package/src/components/block/components/component-ref/component-ref.jsx +72 -0
  170. package/src/components/block/components/interactive-element.jsx +37 -0
  171. package/src/components/{render-block/render-repeated-block.jsx → block/components/repeated-block.jsx} +10 -6
  172. package/src/components/blocks/blocks-wrapper.jsx +74 -0
  173. package/src/components/blocks/blocks.jsx +51 -0
  174. package/src/components/{render-content/render-content.jsx → content/components/enable-editor.jsx} +81 -165
  175. package/src/components/{render-content/components/render-styles.helpers.js → content/components/styles.helpers.js} +6 -7
  176. package/src/components/{render-content/components/render-styles.jsx → content/components/styles.jsx} +7 -7
  177. package/src/components/{render-content/render-content.helpers.js → content/content.helpers.js} +15 -15
  178. package/src/components/content/content.jsx +141 -0
  179. package/src/components/content/content.types.js +0 -0
  180. package/src/components/content/index.js +2 -0
  181. package/src/components/content/wrap-component-ref.js +2 -0
  182. package/src/components/content-variants/content-variants.jsx +120 -0
  183. package/src/components/{render-content-variants → content-variants}/helpers.js +58 -41
  184. package/src/components/inlined-script.jsx +18 -0
  185. package/src/components/{render-inlined-styles.jsx → inlined-styles.jsx} +3 -3
  186. package/src/constants/device-sizes.js +6 -6
  187. package/src/constants/sdk-version.js +1 -1
  188. package/src/context/builder.context.js +1 -1
  189. package/src/functions/apply-patch-with-mutation.js +66 -0
  190. package/src/functions/camel-to-kebab-case.js +2 -4
  191. package/src/functions/evaluate/acorn.js +1595 -0
  192. package/src/functions/{evaluate.js → evaluate/evaluate.js} +36 -10
  193. package/src/functions/evaluate/index.js +2 -0
  194. package/src/functions/evaluate/interpreter.js +2801 -0
  195. package/src/functions/evaluate/non-node-runtime.js +92 -0
  196. package/src/functions/evaluate/types.js +0 -0
  197. package/src/functions/event-handler-name.js +2 -4
  198. package/src/functions/extract-text-styles.js +4 -12
  199. package/src/functions/fast-clone.js +2 -4
  200. package/src/functions/get-block-actions-handler.js +3 -5
  201. package/src/functions/get-block-actions.js +15 -4
  202. package/src/functions/get-block-component-options.js +11 -12
  203. package/src/functions/get-block-properties.js +29 -19
  204. package/src/functions/get-builder-search-params/index.js +5 -10
  205. package/src/functions/get-content/generate-content-url.js +17 -19
  206. package/src/functions/get-content/index.js +43 -29
  207. package/src/functions/get-fetch.js +1 -3
  208. package/src/functions/get-global-this.js +1 -3
  209. package/src/functions/get-processed-block.js +12 -13
  210. package/src/functions/get-react-native-block-styles.js +11 -12
  211. package/src/functions/if-target.js +1 -3
  212. package/src/functions/is-browser.js +1 -3
  213. package/src/functions/is-editing.js +1 -3
  214. package/src/functions/is-iframe.js +1 -3
  215. package/src/functions/is-non-node-server.js +9 -0
  216. package/src/functions/is-previewing.js +1 -3
  217. package/src/functions/on-change.js +1 -4
  218. package/src/functions/register-component.js +34 -42
  219. package/src/functions/register.js +1 -3
  220. package/src/functions/sanitize-react-native-block-styles.js +22 -17
  221. package/src/functions/set-editor-settings.js +1 -3
  222. package/src/functions/set.js +1 -3
  223. package/src/functions/track/helpers.js +3 -5
  224. package/src/functions/track/index.js +45 -43
  225. package/src/functions/track/interaction.js +11 -7
  226. package/src/functions/transform-block-properties.js +2 -0
  227. package/src/helpers/ab-tests.js +46 -26
  228. package/src/helpers/canTrack.js +3 -5
  229. package/src/helpers/css.js +3 -7
  230. package/src/helpers/flatten.js +15 -18
  231. package/src/helpers/localStorage.js +1 -4
  232. package/src/helpers/logger.js +1 -3
  233. package/src/helpers/nullable.js +2 -4
  234. package/src/helpers/preview-lru-cache/get.js +8 -0
  235. package/src/helpers/preview-lru-cache/helpers.js +10 -0
  236. package/src/helpers/preview-lru-cache/init.js +10 -0
  237. package/src/helpers/preview-lru-cache/set.js +35 -0
  238. package/src/helpers/preview-lru-cache/types.js +0 -0
  239. package/src/helpers/sessionId.js +14 -11
  240. package/src/helpers/time.js +1 -3
  241. package/src/helpers/url.js +2 -4
  242. package/src/helpers/uuid.js +4 -6
  243. package/src/helpers/visitorId.js +8 -7
  244. package/src/index-helpers/blocks-exports.js +1 -1
  245. package/src/index.js +2 -17
  246. package/src/scripts/init-editing.js +62 -48
  247. package/src/types/api-version.js +1 -3
  248. package/src/types/builder-props.js +0 -0
  249. package/src/types/enforced-partials.js +0 -0
  250. package/dist/blocks/BaseText.d.ts +0 -6
  251. package/dist/blocks/button/button.d.ts +0 -9
  252. package/dist/blocks/button/component-info.d.ts +0 -2
  253. package/dist/blocks/columns/columns.d.ts +0 -16
  254. package/dist/blocks/columns/component-info.d.ts +0 -2
  255. package/dist/blocks/custom-code/component-info.d.ts +0 -2
  256. package/dist/blocks/custom-code/custom-code.d.ts +0 -5
  257. package/dist/blocks/embed/component-info.d.ts +0 -2
  258. package/dist/blocks/embed/embed.d.ts +0 -5
  259. package/dist/blocks/embed/helpers.d.ts +0 -1
  260. package/dist/blocks/form/component-info.d.ts +0 -2
  261. package/dist/blocks/form/form.d.ts +0 -28
  262. package/dist/blocks/fragment/component-info.d.ts +0 -2
  263. package/dist/blocks/fragment/fragment.d.ts +0 -8
  264. package/dist/blocks/image/component-info.d.ts +0 -2
  265. package/dist/blocks/image/image.d.ts +0 -17
  266. package/dist/blocks/image/image.helpers.d.ts +0 -1
  267. package/dist/blocks/img/component-info.d.ts +0 -2
  268. package/dist/blocks/img/img.d.ts +0 -11
  269. package/dist/blocks/input/component-info.d.ts +0 -2
  270. package/dist/blocks/input/input.d.ts +0 -12
  271. package/dist/blocks/raw-text/component-info.d.ts +0 -2
  272. package/dist/blocks/raw-text/raw-text.d.ts +0 -5
  273. package/dist/blocks/section/component-info.d.ts +0 -2
  274. package/dist/blocks/section/section.d.ts +0 -9
  275. package/dist/blocks/select/component-info.d.ts +0 -2
  276. package/dist/blocks/select/select.d.ts +0 -13
  277. package/dist/blocks/submit-button/component-info.d.ts +0 -2
  278. package/dist/blocks/submit-button/submit-button.d.ts +0 -7
  279. package/dist/blocks/symbol/component-info.d.ts +0 -2
  280. package/dist/blocks/symbol/symbol.d.ts +0 -21
  281. package/dist/blocks/text/component-info.d.ts +0 -2
  282. package/dist/blocks/text/text.d.ts +0 -7
  283. package/dist/blocks/textarea/component-info.d.ts +0 -2
  284. package/dist/blocks/textarea/textarea.d.ts +0 -10
  285. package/dist/blocks/util.d.ts +0 -4
  286. package/dist/blocks/video/component-info.d.ts +0 -2
  287. package/dist/blocks/video/video.d.ts +0 -31
  288. package/dist/components/render-block/block-styles.d.ts +0 -9
  289. package/dist/components/render-block/render-block.d.ts +0 -9
  290. package/dist/components/render-block/render-block.helpers.d.ts +0 -12
  291. package/dist/components/render-block/render-component.d.ts +0 -17
  292. package/dist/components/render-block/render-repeated-block.d.ts +0 -9
  293. package/dist/components/render-block/types.d.ts +0 -6
  294. package/dist/components/render-blocks.d.ts +0 -10
  295. package/dist/components/render-content/builder-editing.d.ts +0 -3
  296. package/dist/components/render-content/components/render-styles.d.ts +0 -9
  297. package/dist/components/render-content/components/render-styles.helpers.d.ts +0 -15
  298. package/dist/components/render-content/index.d.ts +0 -1
  299. package/dist/components/render-content/render-content.d.ts +0 -4
  300. package/dist/components/render-content/render-content.helpers.d.ts +0 -7
  301. package/dist/components/render-content/render-content.types.d.ts +0 -38
  302. package/dist/components/render-content/wrap-component-ref.d.ts +0 -6
  303. package/dist/components/render-content-variants/helpers.d.ts +0 -17
  304. package/dist/components/render-content-variants/render-content-variants.d.ts +0 -5
  305. package/dist/components/render-inlined-styles.d.ts +0 -7
  306. package/dist/constants/builder-registered-components.d.ts +0 -6
  307. package/dist/constants/device-sizes.d.ts +0 -13
  308. package/dist/constants/sdk-version.d.ts +0 -1
  309. package/dist/constants/target.d.ts +0 -3
  310. package/dist/context/builder.context.d.ts +0 -3
  311. package/dist/context/types.d.ts +0 -35
  312. package/dist/functions/camel-to-kebab-case.d.ts +0 -1
  313. package/dist/functions/evaluate.d.ts +0 -7
  314. package/dist/functions/evaluate.test.d.ts +0 -1
  315. package/dist/functions/event-handler-name.d.ts +0 -1
  316. package/dist/functions/extract-text-styles.d.ts +0 -4
  317. package/dist/functions/fast-clone.d.ts +0 -4
  318. package/dist/functions/get-block-actions-handler.d.ts +0 -8
  319. package/dist/functions/get-block-actions.d.ts +0 -9
  320. package/dist/functions/get-block-component-options.d.ts +0 -2
  321. package/dist/functions/get-block-properties.d.ts +0 -2
  322. package/dist/functions/get-builder-search-params/fn.test.d.ts +0 -1
  323. package/dist/functions/get-builder-search-params/index.d.ts +0 -12
  324. package/dist/functions/get-content/generate-content-url.d.ts +0 -2
  325. package/dist/functions/get-content/generate-content-url.test.d.ts +0 -1
  326. package/dist/functions/get-content/index.d.ts +0 -16
  327. package/dist/functions/get-content/types.d.ts +0 -51
  328. package/dist/functions/get-fetch.d.ts +0 -1
  329. package/dist/functions/get-processed-block.d.ts +0 -10
  330. package/dist/functions/get-processed-block.test.d.ts +0 -1
  331. package/dist/functions/get-react-native-block-styles.d.ts +0 -7
  332. package/dist/functions/if-target.d.ts +0 -7
  333. package/dist/functions/is-browser.d.ts +0 -1
  334. package/dist/functions/is-editing.d.ts +0 -1
  335. package/dist/functions/is-iframe.d.ts +0 -1
  336. package/dist/functions/is-previewing.d.ts +0 -1
  337. package/dist/functions/on-change.d.ts +0 -7
  338. package/dist/functions/on-change.test.d.ts +0 -1
  339. package/dist/functions/register-component.d.ts +0 -14
  340. package/dist/functions/register.d.ts +0 -16
  341. package/dist/functions/sanitize-react-native-block-styles.d.ts +0 -3
  342. package/dist/functions/set-editor-settings.d.ts +0 -4
  343. package/dist/functions/set.d.ts +0 -7
  344. package/dist/functions/set.test.d.ts +0 -1
  345. package/dist/functions/track/helpers.d.ts +0 -5
  346. package/dist/functions/track/index.d.ts +0 -51
  347. package/dist/functions/track/interaction.d.ts +0 -13
  348. package/dist/functions/transform-block-properties.d.ts +0 -3
  349. package/dist/functions/transform-block.d.ts +0 -2
  350. package/dist/helpers/ab-tests.d.ts +0 -9
  351. package/dist/helpers/canTrack.d.ts +0 -1
  352. package/dist/helpers/cookie.d.ts +0 -9
  353. package/dist/helpers/css.d.ts +0 -7
  354. package/dist/helpers/flatten.d.ts +0 -6
  355. package/dist/helpers/localStorage.d.ts +0 -9
  356. package/dist/helpers/logger.d.ts +0 -6
  357. package/dist/helpers/nullable.d.ts +0 -2
  358. package/dist/helpers/sessionId.d.ts +0 -6
  359. package/dist/helpers/time.d.ts +0 -1
  360. package/dist/helpers/url.d.ts +0 -6
  361. package/dist/helpers/url.test.d.ts +0 -1
  362. package/dist/helpers/uuid.d.ts +0 -8
  363. package/dist/helpers/visitorId.d.ts +0 -6
  364. package/dist/index-helpers/blocks-exports.d.ts +0 -8
  365. package/dist/index-helpers/top-of-file.d.ts +0 -1
  366. package/dist/index.d.ts +0 -15
  367. package/dist/scripts/init-editing.d.ts +0 -6
  368. package/dist/types/api-version.d.ts +0 -2
  369. package/dist/types/builder-block.d.ts +0 -66
  370. package/dist/types/builder-content.d.ts +0 -44
  371. package/dist/types/can-track.d.ts +0 -3
  372. package/dist/types/components.d.ts +0 -105
  373. package/dist/types/deep-partial.d.ts +0 -3
  374. package/dist/types/element.d.ts +0 -59
  375. package/dist/types/input.d.ts +0 -121
  376. package/dist/types/targets.d.ts +0 -3
  377. package/dist/types/typescript.d.ts +0 -5
  378. package/src/blocks/util.js +0 -8
  379. package/src/components/render-block/render-component.jsx +0 -55
  380. package/src/components/render-blocks.jsx +0 -101
  381. package/src/components/render-content/builder-editing.jsx +0 -16
  382. package/src/components/render-content/index.js +0 -4
  383. package/src/components/render-content/wrap-component-ref.js +0 -4
  384. package/src/components/render-content-variants/render-content-variants.jsx +0 -101
  385. package/src/functions/evaluate.test.js +0 -17
  386. package/src/functions/get-builder-search-params/fn.test.js +0 -13
  387. package/src/functions/get-content/generate-content-url.test.js +0 -97
  388. package/src/functions/get-processed-block.test.js +0 -34
  389. package/src/functions/on-change.test.js +0 -19
  390. package/src/functions/set.test.js +0 -16
  391. package/src/helpers/url.test.js +0 -21
  392. /package/src/components/{render-block → block}/types.js +0 -0
  393. /package/src/components/{render-content/render-content.types.js → content-variants/content-variants.types.js} +0 -0
@@ -50,6 +50,7 @@ const target_js_1 = require("../../constants/target.js");
50
50
  const logger_js_1 = require("../../helpers/logger.js");
51
51
  const helpers_js_1 = require("../render-content-variants/helpers.js");
52
52
  const wrap_component_ref_js_1 = require("./wrap-component-ref.js");
53
+ const inlined_script_1 = __importDefault(require("../inlined-script"));
53
54
  function RenderContent(props) {
54
55
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
55
56
  const elementRef = (0, react_1.useRef)(null);
@@ -208,11 +209,12 @@ function RenderContent(props) {
208
209
  }
209
210
  }
210
211
  const [scriptStr, setScriptStr] = (0, react_1.useState)(() => {
211
- var _a;
212
+ var _a, _b;
212
213
  return (0, helpers_js_1.getRenderContentScriptString)({
213
214
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain
214
- contentId: (_a = props.content) === null || _a === void 0 ? void 0 : _a.id,
215
- parentContentId: props.parentContentId,
215
+ variationId: (_a = props.content) === null || _a === void 0 ? void 0 : _a.testVariationId,
216
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain
217
+ contentId: (_b = props.content) === null || _b === void 0 ? void 0 : _b.id,
216
218
  });
217
219
  });
218
220
  const [builderContextSignal, setBuilderContextSignal] = (0, react_1.useState)(() => ({
@@ -358,14 +360,14 @@ function RenderContent(props) {
358
360
  "builder-content-id": "",
359
361
  },
360
362
  }
361
- : {}), ...(props.hideContent
362
- ? {
363
+ : {}), ...(props.showContent
364
+ ? {}
365
+ : {
363
366
  hidden: true,
364
367
  "aria-hidden": true,
365
- }
366
- : {}) },
368
+ }) },
367
369
  props.isSsrAbTest ? (React.createElement(React.Fragment, null,
368
- React.createElement(react_native_1.ScrollView, { dangerouslySetInnerHTML: { __html: scriptStr } }))) : null,
370
+ React.createElement(inlined_script_1.default, { scriptStr: scriptStr }))) : null,
369
371
  target_js_1.TARGET !== "reactNative" ? (React.createElement(React.Fragment, null,
370
372
  React.createElement(render_styles_1.default, { contentId: (_f = builderContextSignal.content) === null || _f === void 0 ? void 0 : _f.id, cssCode: (_h = (_g = builderContextSignal.content) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.cssCode, customFonts: (_k = (_j = builderContextSignal.content) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.customFonts }))) : null,
371
373
  React.createElement(render_blocks_1.default, { blocks: (_m = (_l = builderContextSignal.content) === null || _l === void 0 ? void 0 : _l.data) === null || _m === void 0 ? void 0 : _m.blocks, key: forceReRenderCount })))) : null));
@@ -1,25 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVariantsScriptString = exports.getVariants = exports.getRenderContentScriptString = exports.checkShouldRunVariants = void 0;
3
+ exports.getVariantsScriptString = exports.getVariants = exports.getScriptString = exports.getRenderContentScriptString = exports.checkShouldRunVariants = void 0;
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4
23
  const target_1 = require("../../constants/target");
5
24
  const is_browser_1 = require("../../functions/is-browser");
6
- const getVariants = (content) => Object.values((content == null ? void 0 : content.variations) || {});
25
+ const getVariants = (content) => Object.values((content == null ? void 0 : content.variations) || {}).map((variant) => __spreadProps(__spreadValues({}, variant), {
26
+ testVariationId: variant.id,
27
+ id: content == null ? void 0 : content.id
28
+ }));
7
29
  exports.getVariants = getVariants;
8
30
  const checkShouldRunVariants = ({ canTrack, content }) => {
9
31
  const hasVariants = getVariants(content).length > 0;
10
- if (!hasVariants) {
32
+ if (target_1.TARGET === "reactNative")
11
33
  return false;
12
- }
13
- if (!canTrack) {
34
+ if (!hasVariants)
14
35
  return false;
15
- }
16
- if ((0, is_browser_1.isBrowser)()) {
36
+ if (!canTrack)
37
+ return false;
38
+ if (target_1.TARGET === "vue2" || target_1.TARGET === "vue3")
39
+ return true;
40
+ if ((0, is_browser_1.isBrowser)())
17
41
  return false;
18
- }
19
42
  return true;
20
43
  };
21
44
  exports.checkShouldRunVariants = checkShouldRunVariants;
22
45
  function bldrAbTest(contentId, variants, isHydrationTarget2) {
46
+ var _a;
23
47
  function getAndSetVariantId() {
24
48
  function setCookie(name, value, days) {
25
49
  let expires = "";
@@ -63,10 +87,10 @@ function bldrAbTest(contentId, variants, isHydrationTarget2) {
63
87
  return contentId;
64
88
  }
65
89
  const winningVariantId = getAndSetVariantId();
66
- const styleEl = document.getElementById(`variants-styles-${contentId}`);
90
+ const styleEl = (_a = document.currentScript) == null ? void 0 : _a.previousElementSibling;
67
91
  if (isHydrationTarget2) {
68
92
  styleEl.remove();
69
- const thisScriptEl = document.getElementById(`variants-script-${contentId}`);
93
+ const thisScriptEl = document.currentScript;
70
94
  thisScriptEl == null ? void 0 : thisScriptEl.remove();
71
95
  }
72
96
  else {
@@ -78,6 +102,7 @@ function bldrAbTest(contentId, variants, isHydrationTarget2) {
78
102
  }
79
103
  }
80
104
  function bldrCntntScrpt(variantContentId, defaultContentId, isHydrationTarget2) {
105
+ var _a;
81
106
  if (!navigator.cookieEnabled) {
82
107
  return;
83
108
  }
@@ -95,7 +120,7 @@ function bldrCntntScrpt(variantContentId, defaultContentId, isHydrationTarget2)
95
120
  }
96
121
  const cookieName = `builder.tests.${defaultContentId}`;
97
122
  const variantId = getCookie(cookieName);
98
- const parentDiv = document.querySelector(`[builder-content-id="${variantContentId}"]`);
123
+ const parentDiv = (_a = document.currentScript) == null ? void 0 : _a.parentElement;
99
124
  const variantIsDefaultContent = variantContentId === defaultContentId;
100
125
  if (variantId === variantContentId) {
101
126
  if (variantIsDefaultContent) {
@@ -118,22 +143,26 @@ function bldrCntntScrpt(variantContentId, defaultContentId, isHydrationTarget2)
118
143
  }
119
144
  return;
120
145
  }
121
- const getIsHydrationTarget = (target) => target === "react" || target === "reactNative" || target === "vue3" || target === "vue2";
146
+ const getIsHydrationTarget = (target) => target === "react" || target === "reactNative";
122
147
  const isHydrationTarget = getIsHydrationTarget(target_1.TARGET);
123
- const AB_TEST_FN_NAME = "bldrAbTest";
124
- const CONTENT_FN_NAME = "bldrCntntScrpt";
125
- const getVariantsScriptString = (variants, contentId) => {
148
+ const AB_TEST_FN_NAME = "builderIoAbTest";
149
+ const CONTENT_FN_NAME = "builderIoRenderContent";
150
+ const getScriptString = () => {
126
151
  const fnStr = bldrAbTest.toString().replace(/\s+/g, " ");
127
152
  const fnStr2 = bldrCntntScrpt.toString().replace(/\s+/g, " ");
128
153
  return `
129
- const ${AB_TEST_FN_NAME} = ${fnStr}
130
- const ${CONTENT_FN_NAME} = ${fnStr2}
131
- ${AB_TEST_FN_NAME}("${contentId}", ${JSON.stringify(variants)}, ${isHydrationTarget})
154
+ window.${AB_TEST_FN_NAME} = ${fnStr}
155
+ window.${CONTENT_FN_NAME} = ${fnStr2}
132
156
  `;
133
157
  };
158
+ exports.getScriptString = getScriptString;
159
+ const getVariantsScriptString = (variants, contentId) => {
160
+ return `
161
+ window.${AB_TEST_FN_NAME}("${contentId}",${JSON.stringify(variants)}, ${isHydrationTarget})`;
162
+ };
134
163
  exports.getVariantsScriptString = getVariantsScriptString;
135
- const getRenderContentScriptString = ({ parentContentId, contentId }) => {
164
+ const getRenderContentScriptString = ({ contentId, variationId }) => {
136
165
  return `
137
- ${CONTENT_FN_NAME}("${contentId}", "${parentContentId}", ${isHydrationTarget})`;
166
+ window.${CONTENT_FN_NAME}("${variationId}", "${contentId}", ${isHydrationTarget})`;
138
167
  };
139
168
  exports.getRenderContentScriptString = getRenderContentScriptString;
@@ -33,41 +33,46 @@ const react_1 = require("react");
33
33
  const helpers_1 = require("./helpers");
34
34
  const render_content_1 = __importDefault(require("../render-content/render-content"));
35
35
  const canTrack_1 = require("../../helpers/canTrack");
36
- const render_inlined_styles_1 = __importDefault(require("../render-inlined-styles"));
36
+ const inlined_styles_1 = __importDefault(require("../inlined-styles"));
37
37
  const ab_tests_1 = require("../../helpers/ab-tests");
38
+ const inlined_script_1 = __importDefault(require("../inlined-script"));
39
+ const target_1 = require("../../constants/target");
38
40
  function RenderContentVariants(props) {
39
- var _a, _b, _c, _d, _e;
41
+ var _a, _b, _c;
42
+ const [shouldRenderVariants, setShouldRenderVariants] = (0, react_1.useState)(() => (0, helpers_1.checkShouldRunVariants)({
43
+ canTrack: (0, canTrack_1.getDefaultCanTrack)(props.canTrack),
44
+ content: props.content,
45
+ }));
40
46
  const [variantScriptStr, setVariantScriptStr] = (0, react_1.useState)(() => {
41
47
  var _a;
42
48
  return (0, helpers_1.getVariantsScriptString)((0, helpers_1.getVariants)(props.content).map((value) => ({
43
- id: value.id,
49
+ id: value.testVariationId,
44
50
  testRatio: value.testRatio,
45
51
  })), ((_a = props.content) === null || _a === void 0 ? void 0 : _a.id) || "");
46
52
  });
47
- const [shouldRenderVariants, setShouldRenderVariants] = (0, react_1.useState)(() => (0, helpers_1.checkShouldRunVariants)({
48
- canTrack: (0, canTrack_1.getDefaultCanTrack)(props.canTrack),
49
- content: props.content,
50
- }));
51
53
  const [hideVariantsStyleString, setHideVariantsStyleString] = (0, react_1.useState)(() => (0, helpers_1.getVariants)(props.content)
52
- .map((value) => `.variant-${value.id} { display: none; } `)
54
+ .map((value) => `.variant-${value.testVariationId} { display: none; } `)
53
55
  .join(""));
54
- const [contentToRender, setContentToRender] = (0, react_1.useState)(() => (0, helpers_1.checkShouldRunVariants)({
55
- canTrack: (0, canTrack_1.getDefaultCanTrack)(props.canTrack),
56
- content: props.content,
57
- })
58
- ? props.content
59
- : (0, ab_tests_1.handleABTestingSync)({
60
- item: props.content,
61
- canTrack: (0, canTrack_1.getDefaultCanTrack)(props.canTrack),
62
- }));
56
+ (0, react_1.useEffect)(() => {
57
+ /**
58
+ * We unmount the non-winning variants post-hydration in Vue.
59
+ */
60
+ if (target_1.TARGET === "vue2" || target_1.TARGET === "vue3") {
61
+ setShouldRenderVariants(false);
62
+ }
63
+ }, []);
63
64
  return (React.createElement(React.Fragment, null,
65
+ !props.__isNestedRender && target_1.TARGET !== "reactNative" ? (React.createElement(React.Fragment, null,
66
+ React.createElement(inlined_script_1.default, { scriptStr: (0, helpers_1.getScriptString)() }))) : null,
64
67
  shouldRenderVariants ? (React.createElement(React.Fragment, null,
65
- React.createElement(render_inlined_styles_1.default, { id: `variants-styles-${(_a = props.content) === null || _a === void 0 ? void 0 : _a.id}`, styles: hideVariantsStyleString }),
66
- React.createElement(react_native_1.View, { id: `variants-script-${(_b = props.content) === null || _b === void 0 ? void 0 : _b.id}`, dangerouslySetInnerHTML: { __html: variantScriptStr } }), (_c = (0, helpers_1.getVariants)(props.content)) === null || _c === void 0 ? void 0 :
67
- _c.map((variant) => {
68
- var _a;
69
- return (React.createElement(render_content_1.default, { key: variant.id, content: variant, apiKey: props.apiKey, apiVersion: props.apiVersion, canTrack: props.canTrack, customComponents: props.customComponents, hideContent: true, parentContentId: (_a = props.content) === null || _a === void 0 ? void 0 : _a.id, isSsrAbTest: shouldRenderVariants }));
70
- }))) : null,
71
- React.createElement(render_content_1.default, { model: props.model, content: contentToRender, apiKey: props.apiKey, apiVersion: props.apiVersion, canTrack: props.canTrack, customComponents: props.customComponents, classNameProp: `variant-${(_d = props.content) === null || _d === void 0 ? void 0 : _d.id}`, parentContentId: (_e = props.content) === null || _e === void 0 ? void 0 : _e.id, isSsrAbTest: shouldRenderVariants })));
68
+ React.createElement(inlined_styles_1.default, { id: `variants-styles-${(_a = props.content) === null || _a === void 0 ? void 0 : _a.id}`, styles: hideVariantsStyleString }),
69
+ React.createElement(inlined_script_1.default, { scriptStr: variantScriptStr }), (_b = (0, helpers_1.getVariants)(props.content)) === null || _b === void 0 ? void 0 :
70
+ _b.map((variant) => (React.createElement(render_content_1.default, { key: variant.testVariationId, content: variant, showContent: false, classNameProp: undefined, model: props.model, data: props.data, context: props.context, apiKey: props.apiKey, apiVersion: props.apiVersion, customComponents: props.customComponents, canTrack: props.canTrack, locale: props.locale, includeRefs: props.includeRefs, enrich: props.enrich, isSsrAbTest: shouldRenderVariants }))))) : null,
71
+ React.createElement(render_content_1.default, { ...{}, content: shouldRenderVariants
72
+ ? props.content
73
+ : (0, ab_tests_1.handleABTestingSync)({
74
+ item: props.content,
75
+ canTrack: (0, canTrack_1.getDefaultCanTrack)(props.canTrack),
76
+ }), classNameProp: `variant-${(_c = props.content) === null || _c === void 0 ? void 0 : _c.id}`, showContent: true, model: props.model, data: props.data, context: props.context, apiKey: props.apiKey, apiVersion: props.apiVersion, customComponents: props.customComponents, canTrack: props.canTrack, locale: props.locale, includeRefs: props.includeRefs, enrich: props.enrich, isSsrAbTest: shouldRenderVariants })));
72
77
  }
73
78
  exports.default = RenderContentVariants;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSizesForBreakpoints = exports.getMaxWidthQueryForSize = void 0;
4
- const fast_clone_1 = require("../functions/fast-clone");
4
+ const fast_clone_js_1 = require("../functions/fast-clone.js");
5
5
  const SIZES = {
6
6
  small: {
7
7
  min: 320,
@@ -22,7 +22,7 @@ const SIZES = {
22
22
  const getMaxWidthQueryForSize = (size, sizeValues = SIZES) => `@media (max-width: ${sizeValues[size].max}px)`;
23
23
  exports.getMaxWidthQueryForSize = getMaxWidthQueryForSize;
24
24
  const getSizesForBreakpoints = ({ small, medium }) => {
25
- const newSizes = (0, fast_clone_1.fastClone)(SIZES);
25
+ const newSizes = (0, fast_clone_js_1.fastClone)(SIZES);
26
26
  if (!small || !medium) {
27
27
  return newSizes;
28
28
  }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.4.4";
4
+ exports.SDK_VERSION = "0.5.0";
@@ -11,7 +11,7 @@ var stdin_default = (0, react_1.createContext)({
11
11
  rootState: {},
12
12
  apiKey: null,
13
13
  apiVersion: void 0,
14
- registeredComponents: {},
14
+ componentInfos: {},
15
15
  inheritedStyles: {}
16
16
  });
17
17
  exports.default = stdin_default;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyPatchWithMinimalMutationChain = void 0;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value
13
+ }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ const applyPatchWithMinimalMutationChain = (obj, patch, preserveRoot = false) => {
26
+ if (Object(obj) !== obj) {
27
+ return obj;
28
+ }
29
+ const { path, op, value } = patch;
30
+ const pathArr = path.split(/\//);
31
+ if (pathArr[0] === "") {
32
+ pathArr.shift();
33
+ }
34
+ const newObj = preserveRoot ? obj : __spreadValues({}, obj);
35
+ let objPart = newObj;
36
+ for (let i = 0; i < pathArr.length; i++) {
37
+ const isLast = i === pathArr.length - 1;
38
+ const property = pathArr[i];
39
+ if (isLast) {
40
+ if (op === "replace") {
41
+ objPart[property] = value;
42
+ }
43
+ else if (op === "add") {
44
+ const index = Number(property);
45
+ if (Array.isArray(objPart)) {
46
+ if (property === "-") {
47
+ objPart.push(value);
48
+ }
49
+ else {
50
+ objPart.splice(index, 0, value);
51
+ }
52
+ }
53
+ else {
54
+ objPart[property] = value;
55
+ }
56
+ }
57
+ else if (op === "remove") {
58
+ const index = Number(property);
59
+ if (Array.isArray(objPart)) {
60
+ objPart.splice(index, 1);
61
+ }
62
+ else {
63
+ delete objPart[property];
64
+ }
65
+ }
66
+ }
67
+ else {
68
+ const nextProperty = pathArr[i + 1];
69
+ const newPart = Object(objPart[property]) === objPart[property] ? objPart[property] : String(Number(nextProperty)) === nextProperty ? [] : {};
70
+ objPart = objPart[property] = Array.isArray(newPart) ? [...newPart] : __spreadValues({}, newPart);
71
+ }
72
+ }
73
+ return newObj;
74
+ };
75
+ exports.applyPatchWithMinimalMutationChain = applyPatchWithMinimalMutationChain;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const apply_patch_with_mutation_js_1 = require("./apply-patch-with-mutation.js");
4
+ describe("applyPatchWithMinimalMutationChain", () => {
5
+ test("Basic shallow update", () => {
6
+ const obj = {
7
+ foo: "bar"
8
+ };
9
+ const patch = {
10
+ op: "replace",
11
+ path: "/foo",
12
+ value: "60px"
13
+ };
14
+ const applied = (0, apply_patch_with_mutation_js_1.applyPatchWithMinimalMutationChain)(obj, patch);
15
+ expect(applied.foo).toBe("60px");
16
+ expect(applied).not.toBe(obj);
17
+ });
18
+ test("Deep object updates", () => {
19
+ const obj = {
20
+ foo: {
21
+ bar: true
22
+ },
23
+ baz: {}
24
+ };
25
+ const patch = {
26
+ op: "replace",
27
+ path: "/foo/bar",
28
+ value: "60px"
29
+ };
30
+ const applied = (0, apply_patch_with_mutation_js_1.applyPatchWithMinimalMutationChain)(obj, patch);
31
+ expect(applied.foo.bar).toBe("60px");
32
+ expect(applied).not.toBe(obj);
33
+ expect(applied.foo).not.toBe(obj.foo);
34
+ expect(applied.baz).toBe(obj.baz);
35
+ });
36
+ test("Deep array updates", () => {
37
+ const obj = {
38
+ foo: [{
39
+ bar: true
40
+ }],
41
+ baz: {}
42
+ };
43
+ const patch = {
44
+ op: "replace",
45
+ path: "/foo/0/bar",
46
+ value: "60px"
47
+ };
48
+ const applied = (0, apply_patch_with_mutation_js_1.applyPatchWithMinimalMutationChain)(obj, patch);
49
+ expect(applied.foo[0].bar).toBe("60px");
50
+ expect(applied).not.toBe(obj);
51
+ expect(applied.foo).not.toBe(obj.foo);
52
+ expect(applied.foo[0]).not.toBe(obj.foo[0]);
53
+ expect(applied.baz).toBe(obj.baz);
54
+ });
55
+ });
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.camelToKebabCase = void 0;
4
- const camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
4
+ const camelToKebabCase = string => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
5
5
  exports.camelToKebabCase = camelToKebabCase;