@builder.io/sdk-react 0.2.3-4 → 0.3.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 (288) hide show
  1. package/README.md +72 -3
  2. package/dist/sdk/blocks/columns/columns.js +5 -5
  3. package/dist/sdk/blocks/image/image.js +8 -7
  4. package/dist/sdk/blocks/symbol/symbol.js +3 -2
  5. package/dist/sdk/blocks/video/video.js +4 -1
  6. package/dist/sdk/components/render-block/block-styles.js +3 -1
  7. package/dist/sdk/components/render-block/render-block.helpers.d.ts +0 -1
  8. package/dist/sdk/components/render-block/render-block.helpers.js +8 -20
  9. package/dist/sdk/components/render-block/render-block.js +24 -15
  10. package/dist/sdk/components/render-block/render-repeated-block.js +3 -2
  11. package/dist/sdk/components/render-content/render-content.js +31 -12
  12. package/dist/sdk/components/render-content-variants/helpers.d.ts +12 -0
  13. package/dist/sdk/components/render-content-variants/helpers.js +154 -0
  14. package/dist/sdk/components/render-content-variants/render-content-variants.d.ts +5 -0
  15. package/dist/sdk/components/render-content-variants/render-content-variants.js +29 -0
  16. package/dist/sdk/components/render-inlined-styles.js +2 -2
  17. package/dist/sdk/constants/sdk-version.d.ts +1 -0
  18. package/dist/sdk/constants/sdk-version.js +1 -0
  19. package/dist/sdk/context/builder.context.js +3 -2
  20. package/dist/sdk/context/types.d.ts +17 -2
  21. package/dist/sdk/functions/evaluate.d.ts +4 -3
  22. package/dist/sdk/functions/evaluate.js +23 -2
  23. package/dist/sdk/functions/evaluate.test.d.ts +1 -0
  24. package/dist/sdk/functions/evaluate.test.js +17 -0
  25. package/dist/sdk/functions/get-block-actions-handler.d.ts +1 -1
  26. package/dist/sdk/functions/get-block-actions-handler.js +3 -1
  27. package/dist/sdk/functions/get-block-actions.d.ts +1 -1
  28. package/dist/sdk/functions/get-processed-block.d.ts +2 -2
  29. package/dist/sdk/functions/get-processed-block.js +16 -4
  30. package/dist/sdk/functions/get-processed-block.test.js +3 -1
  31. package/dist/sdk/helpers/canTrack.d.ts +1 -0
  32. package/dist/sdk/helpers/canTrack.js +2 -0
  33. package/dist/sdk/index.d.ts +1 -0
  34. package/dist/sdk/scripts/init-editing.js +2 -0
  35. package/package.json +5 -5
  36. package/CHANGELOG.md +0 -25
  37. package/packages/react/src/blocks/BaseText.tsx +0 -19
  38. package/packages/react/src/blocks/button/button.tsx +0 -45
  39. package/packages/react/src/blocks/button/component-info.ts +0 -42
  40. package/packages/react/src/blocks/columns/columns.tsx +0 -211
  41. package/packages/react/src/blocks/columns/component-info.ts +0 -254
  42. package/packages/react/src/blocks/custom-code/component-info.ts +0 -31
  43. package/packages/react/src/blocks/custom-code/custom-code.tsx +0 -76
  44. package/packages/react/src/blocks/embed/component-info.ts +0 -55
  45. package/packages/react/src/blocks/embed/embed.tsx +0 -59
  46. package/packages/react/src/blocks/embed/helpers.ts +0 -8
  47. package/packages/react/src/blocks/form/component-info.ts +0 -282
  48. package/packages/react/src/blocks/form/form.tsx +0 -320
  49. package/packages/react/src/blocks/fragment/component-info.ts +0 -10
  50. package/packages/react/src/blocks/fragment/fragment.tsx +0 -14
  51. package/packages/react/src/blocks/image/component-info.ts +0 -172
  52. package/packages/react/src/blocks/image/image.helpers.ts +0 -75
  53. package/packages/react/src/blocks/image/image.tsx +0 -144
  54. package/packages/react/src/blocks/img/component-info.ts +0 -21
  55. package/packages/react/src/blocks/img/img.tsx +0 -40
  56. package/packages/react/src/blocks/input/component-info.ts +0 -78
  57. package/packages/react/src/blocks/input/input.tsx +0 -33
  58. package/packages/react/src/blocks/raw-text/component-info.ts +0 -15
  59. package/packages/react/src/blocks/raw-text/raw-text.tsx +0 -18
  60. package/packages/react/src/blocks/section/component-info.ts +0 -50
  61. package/packages/react/src/blocks/section/section.tsx +0 -33
  62. package/packages/react/src/blocks/select/component-info.ts +0 -61
  63. package/packages/react/src/blocks/select/select.tsx +0 -35
  64. package/packages/react/src/blocks/submit-button/component-info.ts +0 -32
  65. package/packages/react/src/blocks/submit-button/submit-button.tsx +0 -17
  66. package/packages/react/src/blocks/symbol/component-info.ts +0 -43
  67. package/packages/react/src/blocks/symbol/symbol.tsx +0 -111
  68. package/packages/react/src/blocks/text/component-info.ts +0 -24
  69. package/packages/react/src/blocks/text/text.tsx +0 -20
  70. package/packages/react/src/blocks/textarea/component-info.ts +0 -48
  71. package/packages/react/src/blocks/textarea/textarea.tsx +0 -24
  72. package/packages/react/src/blocks/util.ts +0 -18
  73. package/packages/react/src/blocks/video/component-info.ts +0 -109
  74. package/packages/react/src/blocks/video/video.tsx +0 -84
  75. package/packages/react/src/components/render-block/block-styles.tsx +0 -98
  76. package/packages/react/src/components/render-block/render-block.helpers.ts +0 -138
  77. package/packages/react/src/components/render-block/render-block.tsx +0 -216
  78. package/packages/react/src/components/render-block/render-component.tsx +0 -52
  79. package/packages/react/src/components/render-block/render-repeated-block.tsx +0 -43
  80. package/packages/react/src/components/render-block/types.ts +0 -7
  81. package/packages/react/src/components/render-blocks.tsx +0 -97
  82. package/packages/react/src/components/render-content/builder-editing.tsx +0 -8
  83. package/packages/react/src/components/render-content/components/render-styles.helpers.ts +0 -79
  84. package/packages/react/src/components/render-content/components/render-styles.tsx +0 -45
  85. package/packages/react/src/components/render-content/index.ts +0 -1
  86. package/packages/react/src/components/render-content/render-content.helpers.ts +0 -48
  87. package/packages/react/src/components/render-content/render-content.tsx +0 -410
  88. package/packages/react/src/components/render-content/render-content.types.ts +0 -33
  89. package/packages/react/src/components/render-inlined-styles.tsx +0 -36
  90. package/packages/react/src/constants/builder-registered-components.ts +0 -42
  91. package/packages/react/src/constants/device-sizes.ts +0 -65
  92. package/packages/react/src/constants/target.ts +0 -2
  93. package/packages/react/src/context/builder.context.ts +0 -12
  94. package/packages/react/src/context/types.ts +0 -26
  95. package/packages/react/src/functions/camel-to-kebab-case.ts +0 -2
  96. package/packages/react/src/functions/evaluate.ts +0 -57
  97. package/packages/react/src/functions/event-handler-name.ts +0 -6
  98. package/packages/react/src/functions/extract-text-styles.ts +0 -39
  99. package/packages/react/src/functions/fast-clone.ts +0 -5
  100. package/packages/react/src/functions/get-block-actions-handler.ts +0 -20
  101. package/packages/react/src/functions/get-block-actions.ts +0 -25
  102. package/packages/react/src/functions/get-block-component-options.ts +0 -12
  103. package/packages/react/src/functions/get-block-properties.ts +0 -75
  104. package/packages/react/src/functions/get-builder-search-params/fn.test.ts +0 -19
  105. package/packages/react/src/functions/get-builder-search-params/index.ts +0 -50
  106. package/packages/react/src/functions/get-content/ab-testing.ts +0 -132
  107. package/packages/react/src/functions/get-content/generate-content-url.test.ts +0 -95
  108. package/packages/react/src/functions/get-content/generate-content-url.ts +0 -59
  109. package/packages/react/src/functions/get-content/index.ts +0 -62
  110. package/packages/react/src/functions/get-content/types.ts +0 -53
  111. package/packages/react/src/functions/get-fetch.ts +0 -18
  112. package/packages/react/src/functions/get-global-this.ts +0 -17
  113. package/packages/react/src/functions/get-processed-block.test.ts +0 -33
  114. package/packages/react/src/functions/get-processed-block.ts +0 -54
  115. package/packages/react/src/functions/get-react-native-block-styles.ts +0 -33
  116. package/packages/react/src/functions/if-target.ts +0 -20
  117. package/packages/react/src/functions/is-browser.ts +0 -3
  118. package/packages/react/src/functions/is-editing.ts +0 -10
  119. package/packages/react/src/functions/is-iframe.ts +0 -5
  120. package/packages/react/src/functions/is-previewing.ts +0 -14
  121. package/packages/react/src/functions/on-change.test.ts +0 -23
  122. package/packages/react/src/functions/on-change.ts +0 -29
  123. package/packages/react/src/functions/register-component.ts +0 -50
  124. package/packages/react/src/functions/register.ts +0 -46
  125. package/packages/react/src/functions/sanitize-react-native-block-styles.ts +0 -65
  126. package/packages/react/src/functions/set-editor-settings.ts +0 -16
  127. package/packages/react/src/functions/set.test.ts +0 -19
  128. package/packages/react/src/functions/set.ts +0 -26
  129. package/packages/react/src/functions/track/helpers.ts +0 -67
  130. package/packages/react/src/functions/track/index.ts +0 -136
  131. package/packages/react/src/functions/track/interaction.ts +0 -80
  132. package/packages/react/src/functions/transform-block-properties.ts +0 -3
  133. package/packages/react/src/functions/transform-block.ts +0 -6
  134. package/packages/react/src/helpers/ab-tests.ts +0 -22
  135. package/packages/react/src/helpers/cookie.ts +0 -107
  136. package/packages/react/src/helpers/css.ts +0 -42
  137. package/packages/react/src/helpers/flatten.ts +0 -24
  138. package/packages/react/src/helpers/localStorage.ts +0 -40
  139. package/packages/react/src/helpers/logger.ts +0 -6
  140. package/packages/react/src/helpers/nullable.ts +0 -4
  141. package/packages/react/src/helpers/sessionId.ts +0 -38
  142. package/packages/react/src/helpers/time.ts +0 -4
  143. package/packages/react/src/helpers/url.test.ts +0 -23
  144. package/packages/react/src/helpers/url.ts +0 -16
  145. package/packages/react/src/helpers/uuid.ts +0 -17
  146. package/packages/react/src/helpers/visitorId.ts +0 -40
  147. package/packages/react/src/index-helpers/blocks-exports.ts +0 -10
  148. package/packages/react/src/index-helpers/top-of-file.ts +0 -4
  149. package/packages/react/src/index.ts +0 -14
  150. package/packages/react/src/scripts/init-editing.ts +0 -123
  151. package/packages/react/src/types/api-version.ts +0 -2
  152. package/packages/react/src/types/builder-block.ts +0 -69
  153. package/packages/react/src/types/builder-content.ts +0 -46
  154. package/packages/react/src/types/can-track.ts +0 -3
  155. package/packages/react/src/types/components.ts +0 -117
  156. package/packages/react/src/types/deep-partial.ts +0 -7
  157. package/packages/react/src/types/element.ts +0 -60
  158. package/packages/react/src/types/input.ts +0 -125
  159. package/packages/react/src/types/targets.ts +0 -6
  160. package/packages/react/src/types/typescript.ts +0 -7
  161. package/packages/rsc/src/blocks/BaseText.jsx +0 -12
  162. package/packages/rsc/src/blocks/button/button.jsx +0 -37
  163. package/packages/rsc/src/blocks/button/component-info.js +0 -40
  164. package/packages/rsc/src/blocks/columns/columns.jsx +0 -172
  165. package/packages/rsc/src/blocks/columns/component-info.js +0 -241
  166. package/packages/rsc/src/blocks/custom-code/component-info.js +0 -30
  167. package/packages/rsc/src/blocks/custom-code/custom-code.jsx +0 -57
  168. package/packages/rsc/src/blocks/embed/component-info.js +0 -43
  169. package/packages/rsc/src/blocks/embed/embed.jsx +0 -45
  170. package/packages/rsc/src/blocks/embed/helpers.js +0 -9
  171. package/packages/rsc/src/blocks/form/component-info.js +0 -261
  172. package/packages/rsc/src/blocks/form/form.jsx +0 -260
  173. package/packages/rsc/src/blocks/fragment/component-info.js +0 -10
  174. package/packages/rsc/src/blocks/fragment/fragment.jsx +0 -9
  175. package/packages/rsc/src/blocks/image/component-info.js +0 -150
  176. package/packages/rsc/src/blocks/image/image.helpers.js +0 -48
  177. package/packages/rsc/src/blocks/image/image.jsx +0 -122
  178. package/packages/rsc/src/blocks/img/component-info.js +0 -19
  179. package/packages/rsc/src/blocks/img/img.jsx +0 -21
  180. package/packages/rsc/src/blocks/input/component-info.js +0 -73
  181. package/packages/rsc/src/blocks/input/input.jsx +0 -23
  182. package/packages/rsc/src/blocks/raw-text/component-info.js +0 -15
  183. package/packages/rsc/src/blocks/raw-text/raw-text.jsx +0 -14
  184. package/packages/rsc/src/blocks/section/component-info.js +0 -48
  185. package/packages/rsc/src/blocks/section/section.jsx +0 -27
  186. package/packages/rsc/src/blocks/select/component-info.js +0 -58
  187. package/packages/rsc/src/blocks/select/select.jsx +0 -24
  188. package/packages/rsc/src/blocks/submit-button/component-info.js +0 -27
  189. package/packages/rsc/src/blocks/submit-button/submit-button.jsx +0 -13
  190. package/packages/rsc/src/blocks/symbol/component-info.js +0 -42
  191. package/packages/rsc/src/blocks/symbol/symbol.jsx +0 -89
  192. package/packages/rsc/src/blocks/text/component-info.js +0 -23
  193. package/packages/rsc/src/blocks/text/text.jsx +0 -17
  194. package/packages/rsc/src/blocks/textarea/component-info.js +0 -46
  195. package/packages/rsc/src/blocks/textarea/textarea.jsx +0 -17
  196. package/packages/rsc/src/blocks/util.js +0 -8
  197. package/packages/rsc/src/blocks/video/component-info.js +0 -105
  198. package/packages/rsc/src/blocks/video/video.jsx +0 -63
  199. package/packages/rsc/src/components/render-block/block-styles.jsx +0 -88
  200. package/packages/rsc/src/components/render-block/render-block.helpers.js +0 -129
  201. package/packages/rsc/src/components/render-block/render-block.jsx +0 -201
  202. package/packages/rsc/src/components/render-block/render-component.jsx +0 -39
  203. package/packages/rsc/src/components/render-block/render-repeated-block.jsx +0 -27
  204. package/packages/rsc/src/components/render-block/types.js +0 -0
  205. package/packages/rsc/src/components/render-blocks.jsx +0 -92
  206. package/packages/rsc/src/components/render-content/builder-editing.jsx +0 -64
  207. package/packages/rsc/src/components/render-content/components/render-styles.helpers.js +0 -57
  208. package/packages/rsc/src/components/render-content/components/render-styles.jsx +0 -39
  209. package/packages/rsc/src/components/render-content/index.js +0 -4
  210. package/packages/rsc/src/components/render-content/render-content.helpers.js +0 -48
  211. package/packages/rsc/src/components/render-content/render-content.jsx +0 -253
  212. package/packages/rsc/src/components/render-content/render-content.types.js +0 -0
  213. package/packages/rsc/src/components/render-inlined-styles.jsx +0 -33
  214. package/packages/rsc/src/constants/builder-registered-components.js +0 -54
  215. package/packages/rsc/src/constants/device-sizes.js +0 -48
  216. package/packages/rsc/src/constants/target.js +0 -4
  217. package/packages/rsc/src/context/builder.context.js +0 -14
  218. package/packages/rsc/src/context/types.js +0 -0
  219. package/packages/rsc/src/functions/camel-to-kebab-case.js +0 -4
  220. package/packages/rsc/src/functions/evaluate.js +0 -6
  221. package/packages/rsc/src/functions/event-handler-name.js +0 -7
  222. package/packages/rsc/src/functions/extract-text-styles.js +0 -22
  223. package/packages/rsc/src/functions/fast-clone.js +0 -4
  224. package/packages/rsc/src/functions/get-block-actions-handler.js +0 -11
  225. package/packages/rsc/src/functions/get-block-actions.js +0 -18
  226. package/packages/rsc/src/functions/get-block-component-options.js +0 -28
  227. package/packages/rsc/src/functions/get-block-properties.js +0 -53
  228. package/packages/rsc/src/functions/get-builder-search-params/fn.test.js +0 -13
  229. package/packages/rsc/src/functions/get-builder-search-params/index.js +0 -38
  230. package/packages/rsc/src/functions/get-content/ab-testing.js +0 -99
  231. package/packages/rsc/src/functions/get-content/generate-content-url.js +0 -60
  232. package/packages/rsc/src/functions/get-content/generate-content-url.test.js +0 -82
  233. package/packages/rsc/src/functions/get-content/index.js +0 -83
  234. package/packages/rsc/src/functions/get-content/types.js +0 -0
  235. package/packages/rsc/src/functions/get-fetch.js +0 -14
  236. package/packages/rsc/src/functions/get-global-this.js +0 -18
  237. package/packages/rsc/src/functions/get-processed-block.js +0 -59
  238. package/packages/rsc/src/functions/get-processed-block.test.js +0 -32
  239. package/packages/rsc/src/functions/get-react-native-block-styles.js +0 -33
  240. package/packages/rsc/src/functions/if-target.js +0 -15
  241. package/packages/rsc/src/functions/is-browser.js +0 -6
  242. package/packages/rsc/src/functions/is-editing.js +0 -8
  243. package/packages/rsc/src/functions/is-iframe.js +0 -7
  244. package/packages/rsc/src/functions/is-previewing.js +0 -14
  245. package/packages/rsc/src/functions/on-change.js +0 -27
  246. package/packages/rsc/src/functions/on-change.test.js +0 -19
  247. package/packages/rsc/src/functions/register-component.js +0 -68
  248. package/packages/rsc/src/functions/register.js +0 -29
  249. package/packages/rsc/src/functions/sanitize-react-native-block-styles.js +0 -66
  250. package/packages/rsc/src/functions/set-editor-settings.js +0 -15
  251. package/packages/rsc/src/functions/set.js +0 -11
  252. package/packages/rsc/src/functions/set.test.js +0 -16
  253. package/packages/rsc/src/functions/track/helpers.js +0 -50
  254. package/packages/rsc/src/functions/track/index.js +0 -129
  255. package/packages/rsc/src/functions/track/interaction.js +0 -53
  256. package/packages/rsc/src/functions/transform-block-properties.js +0 -6
  257. package/packages/rsc/src/functions/transform-block.js +0 -6
  258. package/packages/rsc/src/helpers/ab-tests.js +0 -16
  259. package/packages/rsc/src/helpers/cookie.js +0 -81
  260. package/packages/rsc/src/helpers/css.js +0 -34
  261. package/packages/rsc/src/helpers/flatten.js +0 -34
  262. package/packages/rsc/src/helpers/localStorage.js +0 -35
  263. package/packages/rsc/src/helpers/logger.js +0 -9
  264. package/packages/rsc/src/helpers/nullable.js +0 -4
  265. package/packages/rsc/src/helpers/sessionId.js +0 -52
  266. package/packages/rsc/src/helpers/time.js +0 -5
  267. package/packages/rsc/src/helpers/url.js +0 -13
  268. package/packages/rsc/src/helpers/url.test.js +0 -21
  269. package/packages/rsc/src/helpers/uuid.js +0 -13
  270. package/packages/rsc/src/helpers/visitorId.js +0 -34
  271. package/packages/rsc/src/index-helpers/blocks-exports.js +0 -22
  272. package/packages/rsc/src/index-helpers/top-of-file.js +0 -2
  273. package/packages/rsc/src/index.js +0 -13
  274. package/packages/rsc/src/scripts/init-editing.js +0 -93
  275. package/packages/rsc/src/types/api-version.js +0 -4
  276. package/packages/rsc/src/types/builder-block.js +0 -0
  277. package/packages/rsc/src/types/builder-content.js +0 -0
  278. package/packages/rsc/src/types/can-track.js +0 -0
  279. package/packages/rsc/src/types/components.js +0 -0
  280. package/packages/rsc/src/types/deep-partial.js +0 -0
  281. package/packages/rsc/src/types/element.js +0 -0
  282. package/packages/rsc/src/types/input.js +0 -0
  283. package/packages/rsc/src/types/targets.js +0 -0
  284. package/packages/rsc/src/types/typescript.js +0 -0
  285. package/tsconfig.json +0 -28
  286. package/tsconfig.sdk.json +0 -10
  287. package/tsconfig.server.json +0 -10
  288. package/vite.config.ts +0 -91
@@ -1,48 +0,0 @@
1
- function removeProtocol(path) {
2
- return path.replace(/http(s)?:/, "");
3
- }
4
- function updateQueryParam(uri = "", key, value) {
5
- const re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
6
- const separator = uri.indexOf("?") !== -1 ? "&" : "?";
7
- if (uri.match(re)) {
8
- return uri.replace(re, "$1" + key + "=" + encodeURIComponent(value) + "$2");
9
- }
10
- return uri + separator + key + "=" + encodeURIComponent(value);
11
- }
12
- function getShopifyImageUrl(src, size) {
13
- if (!src || !(src == null ? void 0 : src.match(/cdn\.shopify\.com/)) || !size) {
14
- return src;
15
- }
16
- if (size === "master") {
17
- return removeProtocol(src);
18
- }
19
- const match = src.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);
20
- if (match) {
21
- const prefix = src.split(match[0]);
22
- const suffix = match[3];
23
- const useSize = size.match("x") ? size : `${size}x`;
24
- return removeProtocol(`${prefix[0]}_${useSize}${suffix}`);
25
- }
26
- return null;
27
- }
28
- function getSrcSet(url) {
29
- if (!url) {
30
- return url;
31
- }
32
- const sizes = [100, 200, 400, 800, 1200, 1600, 2e3];
33
- if (url.match(/builder\.io/)) {
34
- let srcUrl = url;
35
- const widthInSrc = Number(url.split("?width=")[1]);
36
- if (!isNaN(widthInSrc)) {
37
- srcUrl = `${srcUrl} ${widthInSrc}w`;
38
- }
39
- return sizes.filter((size) => size !== widthInSrc).map((size) => `${updateQueryParam(url, "width", size)} ${size}w`).concat([srcUrl]).join(", ");
40
- }
41
- if (url.match(/cdn\.shopify\.com/)) {
42
- return sizes.map((size) => [getShopifyImageUrl(url, `${size}x${size}`), size]).filter(([sizeUrl]) => !!sizeUrl).map(([sizeUrl, size]) => `${sizeUrl} ${size}w`).concat([url]).join(", ");
43
- }
44
- return url;
45
- }
46
- export {
47
- getSrcSet
48
- };
@@ -1,122 +0,0 @@
1
- import * as React from "react";
2
- import { getSrcSet } from "./image.helpers.js";
3
-
4
- function Image(props) {
5
- const _context = { ...props["_context"] };
6
-
7
- const state = {
8
- get srcSetToUse() {
9
- const imageToUse = props.image || props.src;
10
- const url = imageToUse;
11
- if (
12
- !url ||
13
- // We can auto add srcset for cdn.builder.io and shopify
14
- // images, otherwise you can supply this prop manually
15
- !(url.match(/builder\.io/) || url.match(/cdn\.shopify\.com/))
16
- ) {
17
- return props.srcset;
18
- }
19
- if (props.srcset && props.image?.includes("builder.io/api/v1/image")) {
20
- if (!props.srcset.includes(props.image.split("?")[0])) {
21
- console.debug("Removed given srcset");
22
- return getSrcSet(url);
23
- }
24
- } else if (props.image && !props.srcset) {
25
- return getSrcSet(url);
26
- }
27
- return getSrcSet(url);
28
- },
29
- get webpSrcSet() {
30
- if (state.srcSetToUse?.match(/builder\.io/) && !props.noWebp) {
31
- return state.srcSetToUse.replace(/\?/g, "?format=webp&");
32
- } else {
33
- return "";
34
- }
35
- },
36
- get aspectRatioCss() {
37
- const aspectRatioStyles = {
38
- position: "absolute",
39
- height: "100%",
40
- width: "100%",
41
- left: "0px",
42
- top: "0px",
43
- };
44
- const out = props.aspectRatio ? aspectRatioStyles : undefined;
45
- return out;
46
- },
47
- };
48
-
49
- return (
50
- <>
51
- <>
52
- <picture>
53
- {state.webpSrcSet ? (
54
- <>
55
- <source type="image/webp" srcSet={state.webpSrcSet} />
56
- </>
57
- ) : null}
58
-
59
- <img
60
- loading="lazy"
61
- alt={props.altText}
62
- role={props.altText ? "presentation" : undefined}
63
- style={{
64
- objectPosition: props.backgroundPosition || "center",
65
- objectFit: props.backgroundSize || "cover",
66
- ...state.aspectRatioCss,
67
- }}
68
- className={
69
- "builder-image" +
70
- (props.className ? " " + props.className : "") +
71
- " img-2029f6ee"
72
- }
73
- src={props.image}
74
- srcSet={state.srcSetToUse}
75
- sizes={props.sizes}
76
- />
77
- </picture>
78
-
79
- {props.aspectRatio &&
80
- !(props.builderBlock?.children?.length && props.fitContent) ? (
81
- <>
82
- <div
83
- className="builder-image-sizer div-2029f6ee"
84
- style={{
85
- paddingTop: props.aspectRatio * 100 + "%",
86
- }}
87
- />
88
- </>
89
- ) : null}
90
-
91
- {props.builderBlock?.children?.length && props.fitContent ? (
92
- <>{props.children}</>
93
- ) : null}
94
-
95
- {!props.fitContent && props.children ? (
96
- <>
97
- <div className="div-2029f6ee-2">{props.children}</div>
98
- </>
99
- ) : null}
100
- </>
101
- <style>{`.img-2029f6ee {
102
- opacity: 1;
103
- transition: opacity 0.2s ease-in-out;
104
- }.div-2029f6ee {
105
- width: 100%;
106
- pointer-events: none;
107
- font-size: 0;
108
- }.div-2029f6ee-2 {
109
- display: flex;
110
- flex-direction: column;
111
- align-items: stretch;
112
- position: absolute;
113
- top: 0;
114
- left: 0;
115
- width: 100%;
116
- height: 100%;
117
- }`}</style>
118
- </>
119
- );
120
- }
121
-
122
- export default Image;
@@ -1,19 +0,0 @@
1
- const componentInfo = {
2
- name: "Raw:Img",
3
- hideFromInsertMenu: true,
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",
5
- inputs: [
6
- {
7
- name: "image",
8
- bubble: true,
9
- type: "file",
10
- allowedFileTypes: ["jpeg", "jpg", "png", "svg"],
11
- required: true
12
- }
13
- ],
14
- noWrap: true,
15
- static: true
16
- };
17
- export {
18
- componentInfo
19
- };
@@ -1,21 +0,0 @@
1
- import * as React from "react";
2
- import { isEditing } from "../../functions/is-editing.js";
3
-
4
- function ImgComponent(props) {
5
- const _context = { ...props["_context"] };
6
-
7
- return (
8
- <img
9
- style={{
10
- objectFit: props.backgroundSize || "cover",
11
- objectPosition: props.backgroundPosition || "center",
12
- }}
13
- key={(isEditing() && props.imgSrc) || "default-key"}
14
- alt={props.altText}
15
- src={props.imgSrc || props.image}
16
- {...props.attributes}
17
- />
18
- );
19
- }
20
-
21
- export default ImgComponent;
@@ -1,73 +0,0 @@
1
- const componentInfo = {
2
- name: "Form:Input",
3
- image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
4
- inputs: [
5
- {
6
- name: "type",
7
- type: "text",
8
- enum: [
9
- "text",
10
- "number",
11
- "email",
12
- "url",
13
- "checkbox",
14
- "radio",
15
- "range",
16
- "date",
17
- "datetime-local",
18
- "search",
19
- "tel",
20
- "time",
21
- "file",
22
- "month",
23
- "week",
24
- "password",
25
- "color",
26
- "hidden"
27
- ],
28
- defaultValue: "text"
29
- },
30
- {
31
- name: "name",
32
- type: "string",
33
- required: true,
34
- helperText: 'Every input in a form needs a unique name describing what it takes, e.g. "email"'
35
- },
36
- {
37
- name: "placeholder",
38
- type: "string",
39
- defaultValue: "Hello there",
40
- helperText: "Text to display when there is no value"
41
- },
42
- {
43
- name: "defaultValue",
44
- type: "string"
45
- },
46
- {
47
- name: "value",
48
- type: "string",
49
- advanced: true
50
- },
51
- {
52
- name: "required",
53
- type: "boolean",
54
- helperText: "Is this input required to be filled out to submit a form",
55
- defaultValue: false
56
- }
57
- ],
58
- noWrap: true,
59
- static: true,
60
- defaultStyles: {
61
- paddingTop: "10px",
62
- paddingBottom: "10px",
63
- paddingLeft: "10px",
64
- paddingRight: "10px",
65
- borderRadius: "3px",
66
- borderWidth: "1px",
67
- borderStyle: "solid",
68
- borderColor: "#ccc"
69
- }
70
- };
71
- export {
72
- componentInfo
73
- };
@@ -1,23 +0,0 @@
1
- import * as React from "react";
2
- import { isEditing } from "../../functions/is-editing.js";
3
-
4
- function FormInputComponent(props) {
5
- const _context = { ...props["_context"] };
6
-
7
- return (
8
- <input
9
- {...props.attributes}
10
- key={
11
- isEditing() && props.defaultValue ? props.defaultValue : "default-key"
12
- }
13
- placeholder={props.placeholder}
14
- type={props.type}
15
- name={props.name}
16
- value={props.value}
17
- defaultValue={props.defaultValue}
18
- required={props.required}
19
- />
20
- );
21
- }
22
-
23
- export default FormInputComponent;
@@ -1,15 +0,0 @@
1
- const componentInfo = {
2
- name: "Builder:RawText",
3
- hideFromInsertMenu: true,
4
- inputs: [
5
- {
6
- name: "text",
7
- bubble: true,
8
- type: "longText",
9
- required: true
10
- }
11
- ]
12
- };
13
- export {
14
- componentInfo
15
- };
@@ -1,14 +0,0 @@
1
- import * as React from "react";
2
-
3
- function RawText(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- return (
7
- <span
8
- className={props.attributes?.class || props.attributes?.className}
9
- dangerouslySetInnerHTML={{ __html: props.text || "" }}
10
- />
11
- );
12
- }
13
-
14
- export default RawText;
@@ -1,48 +0,0 @@
1
- const componentInfo = {
2
- name: "Core:Section",
3
- static: true,
4
- image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
5
- inputs: [
6
- {
7
- name: "maxWidth",
8
- type: "number",
9
- defaultValue: 1200
10
- },
11
- {
12
- name: "lazyLoad",
13
- type: "boolean",
14
- defaultValue: false,
15
- advanced: true,
16
- description: "Only render this section when in view"
17
- }
18
- ],
19
- defaultStyles: {
20
- paddingLeft: "20px",
21
- paddingRight: "20px",
22
- paddingTop: "50px",
23
- paddingBottom: "50px",
24
- marginTop: "0px",
25
- width: "100vw",
26
- marginLeft: "calc(50% - 50vw)"
27
- },
28
- canHaveChildren: true,
29
- defaultChildren: [
30
- {
31
- "@type": "@builder.io/sdk:Element",
32
- responsiveStyles: {
33
- large: {
34
- textAlign: "center"
35
- }
36
- },
37
- component: {
38
- name: "Text",
39
- options: {
40
- text: "<p><b>I am a section! My content keeps from getting too wide, so that it's easy to read even on big screens.</b></p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur</p>"
41
- }
42
- }
43
- }
44
- ]
45
- };
46
- export {
47
- componentInfo
48
- };
@@ -1,27 +0,0 @@
1
- import * as React from "react";
2
-
3
- function SectionComponent(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- return (
7
- <section
8
- {...props.attributes}
9
- style={{
10
- width: "100%",
11
- alignSelf: "stretch",
12
- flexGrow: 1,
13
- boxSizing: "border-box",
14
- maxWidth: props.maxWidth || 1200,
15
- display: "flex",
16
- flexDirection: "column",
17
- alignItems: "stretch",
18
- marginLeft: "auto",
19
- marginRight: "auto",
20
- }}
21
- >
22
- {props.children}
23
- </section>
24
- );
25
- }
26
-
27
- export default SectionComponent;
@@ -1,58 +0,0 @@
1
- const componentInfo = {
2
- name: "Form:Select",
3
- image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
4
- defaultStyles: {
5
- alignSelf: "flex-start"
6
- },
7
- inputs: [
8
- {
9
- name: "options",
10
- type: "list",
11
- required: true,
12
- subFields: [
13
- {
14
- name: "value",
15
- type: "text",
16
- required: true
17
- },
18
- {
19
- name: "name",
20
- type: "text"
21
- }
22
- ],
23
- defaultValue: [
24
- {
25
- value: "option 1"
26
- },
27
- {
28
- value: "option 2"
29
- }
30
- ]
31
- },
32
- {
33
- name: "name",
34
- type: "string",
35
- required: true,
36
- helperText: 'Every select in a form needs a unique name describing what it gets, e.g. "email"'
37
- },
38
- {
39
- name: "defaultValue",
40
- type: "string"
41
- },
42
- {
43
- name: "value",
44
- type: "string",
45
- advanced: true
46
- },
47
- {
48
- name: "required",
49
- type: "boolean",
50
- defaultValue: false
51
- }
52
- ],
53
- static: true,
54
- noWrap: true
55
- };
56
- export {
57
- componentInfo
58
- };
@@ -1,24 +0,0 @@
1
- import * as React from "react";
2
- import { isEditing } from "../../functions/is-editing.js";
3
-
4
- function SelectComponent(props) {
5
- const _context = { ...props["_context"] };
6
-
7
- return (
8
- <select
9
- {...props.attributes}
10
- value={props.value}
11
- key={
12
- isEditing() && props.defaultValue ? props.defaultValue : "default-key"
13
- }
14
- defaultValue={props.defaultValue}
15
- name={props.name}
16
- >
17
- {props.options?.map((option) => (
18
- <option value={option.value}>{option.name || option.value}</option>
19
- ))}
20
- </select>
21
- );
22
- }
23
-
24
- export default SelectComponent;
@@ -1,27 +0,0 @@
1
- const componentInfo = {
2
- name: "Form:SubmitButton",
3
- image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
4
- defaultStyles: {
5
- appearance: "none",
6
- paddingTop: "15px",
7
- paddingBottom: "15px",
8
- paddingLeft: "25px",
9
- paddingRight: "25px",
10
- backgroundColor: "#3898EC",
11
- color: "white",
12
- borderRadius: "4px",
13
- cursor: "pointer"
14
- },
15
- inputs: [
16
- {
17
- name: "text",
18
- type: "text",
19
- defaultValue: "Click me"
20
- }
21
- ],
22
- static: true,
23
- noWrap: true
24
- };
25
- export {
26
- componentInfo
27
- };
@@ -1,13 +0,0 @@
1
- import * as React from "react";
2
-
3
- function SubmitButton(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- return (
7
- <button type="submit" {...props.attributes}>
8
- {props.text}
9
- </button>
10
- );
11
- }
12
-
13
- export default SubmitButton;
@@ -1,42 +0,0 @@
1
- const componentInfo = {
2
- name: "Symbol",
3
- noWrap: true,
4
- static: true,
5
- inputs: [
6
- {
7
- name: "symbol",
8
- type: "uiSymbol"
9
- },
10
- {
11
- name: "dataOnly",
12
- helperText: "Make this a data symbol that doesn't display any UI",
13
- type: "boolean",
14
- defaultValue: false,
15
- advanced: true,
16
- hideFromUI: true
17
- },
18
- {
19
- name: "inheritState",
20
- helperText: "Inherit the parent component state and data",
21
- type: "boolean",
22
- defaultValue: false,
23
- advanced: true
24
- },
25
- {
26
- name: "renderToLiquid",
27
- helperText: "Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting",
28
- type: "boolean",
29
- defaultValue: false,
30
- advanced: true,
31
- hideFromUI: true
32
- },
33
- {
34
- name: "useChildren",
35
- hideFromUI: true,
36
- type: "boolean"
37
- }
38
- ]
39
- };
40
- export {
41
- componentInfo
42
- };
@@ -1,89 +0,0 @@
1
- import * as React from "react";
2
- import RenderContent from "../../components/render-content/render-content";
3
- import BuilderContext from "../../context/builder.context.js";
4
- import { getContent } from "../../functions/get-content/index.js";
5
- import { TARGET } from "../../constants/target";
6
- import { logger } from "../../helpers/logger";
7
-
8
- function Symbol(props) {
9
- const _context = { ...props["_context"] };
10
-
11
- const state = {
12
- className: [
13
- ...(TARGET === "vue2" || TARGET === "vue3"
14
- ? Object.keys(props.attributes.class)
15
- : [props.attributes.class]),
16
- "builder-symbol",
17
- props.symbol?.inline ? "builder-inline-symbol" : undefined,
18
- props.symbol?.dynamic || props.dynamic
19
- ? "builder-dynamic-symbol"
20
- : undefined,
21
- ]
22
- .filter(Boolean)
23
- .join(" "),
24
- contentToUse: props.symbol?.content,
25
- fetchContent() {
26
- /**
27
- * If:
28
- * - we have a symbol prop
29
- * - yet it does not have any content
30
- * - and we have not already stored content from before
31
- * - and it has a model name
32
- *
33
- * then we want to re-fetch the symbol content.
34
- */
35
- if (
36
- !state.contentToUse &&
37
- props.symbol?.model &&
38
- // This is a hack, we should not need to check for this, but it is needed for Svelte.
39
- builderContext?.apiKey
40
- ) {
41
- getContent({
42
- model: props.symbol.model,
43
- apiKey: builderContext.apiKey,
44
- apiVersion: builderContext.apiVersion,
45
- query: {
46
- id: props.symbol.entry,
47
- },
48
- })
49
- .then((response) => {
50
- if (response) {
51
- state.contentToUse = response;
52
- }
53
- })
54
- .catch((err) => {
55
- logger.error("Could not fetch symbol content: ", err);
56
- });
57
- }
58
- },
59
- };
60
-
61
- const builderContext = _context["BuilderContext"];
62
-
63
- return (
64
- <div
65
- {...props.attributes}
66
- dataSet={{
67
- class: state.className,
68
- }}
69
- className={state.className}
70
- >
71
- <RenderContent
72
- apiVersion={builderContext.apiVersion}
73
- apiKey={builderContext.apiKey}
74
- context={builderContext.context}
75
- customComponents={Object.values(builderContext.registeredComponents)}
76
- data={{
77
- ...props.symbol?.data,
78
- ...builderContext.state,
79
- ...state.contentToUse?.data?.state,
80
- }}
81
- model={props.symbol?.model}
82
- content={state.contentToUse}
83
- _context={_context}
84
- />
85
- </div>
86
- );
87
- }
88
-
89
- export default Symbol;