@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,23 +0,0 @@
1
- const componentInfo = {
2
- name: "Text",
3
- static: true,
4
- image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929",
5
- inputs: [
6
- {
7
- name: "text",
8
- type: "html",
9
- required: true,
10
- autoFocus: true,
11
- bubble: true,
12
- defaultValue: "Enter some text..."
13
- }
14
- ],
15
- defaultStyles: {
16
- lineHeight: "normal",
17
- height: "auto",
18
- textAlign: "center"
19
- }
20
- };
21
- export {
22
- componentInfo
23
- };
@@ -1,17 +0,0 @@
1
- import * as React from "react";
2
-
3
- function Text(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- return (
7
- <span
8
- className="builder-text"
9
- dangerouslySetInnerHTML={{ __html: props.text }}
10
- style={{
11
- outline: "none",
12
- }}
13
- />
14
- );
15
- }
16
-
17
- export default Text;
@@ -1,46 +0,0 @@
1
- const componentInfo = {
2
- name: "Form:TextArea",
3
- image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3",
4
- inputs: [
5
- {
6
- advanced: true,
7
- name: "value",
8
- type: "string"
9
- },
10
- {
11
- name: "name",
12
- type: "string",
13
- required: true,
14
- helperText: 'Every input in a form needs a unique name describing what it gets, e.g. "email"'
15
- },
16
- {
17
- name: "defaultValue",
18
- type: "string"
19
- },
20
- {
21
- name: "placeholder",
22
- type: "string",
23
- defaultValue: "Hello there"
24
- },
25
- {
26
- name: "required",
27
- type: "boolean",
28
- defaultValue: false
29
- }
30
- ],
31
- defaultStyles: {
32
- paddingTop: "10px",
33
- paddingBottom: "10px",
34
- paddingLeft: "10px",
35
- paddingRight: "10px",
36
- borderRadius: "3px",
37
- borderWidth: "1px",
38
- borderStyle: "solid",
39
- borderColor: "#ccc"
40
- },
41
- static: true,
42
- noWrap: true
43
- };
44
- export {
45
- componentInfo
46
- };
@@ -1,17 +0,0 @@
1
- import * as React from "react";
2
-
3
- function Textarea(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- return (
7
- <textarea
8
- {...props.attributes}
9
- placeholder={props.placeholder}
10
- name={props.name}
11
- value={props.value}
12
- defaultValue={props.defaultValue}
13
- />
14
- );
15
- }
16
-
17
- export default Textarea;
@@ -1,8 +0,0 @@
1
- const serializeFn = (fnValue) => {
2
- const fnStr = fnValue.toString().trim();
3
- const appendFunction = !fnStr.startsWith("function") && !fnStr.startsWith("(");
4
- return `return (${appendFunction ? "function " : ""}${fnStr}).apply(this, arguments)`;
5
- };
6
- export {
7
- serializeFn
8
- };
@@ -1,105 +0,0 @@
1
- const componentInfo = {
2
- name: "Video",
3
- canHaveChildren: true,
4
- defaultStyles: {
5
- minHeight: "20px",
6
- minWidth: "20px"
7
- },
8
- image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb",
9
- inputs: [
10
- {
11
- name: "video",
12
- type: "file",
13
- allowedFileTypes: ["mp4"],
14
- bubble: true,
15
- defaultValue: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/assets%2FKQlEmWDxA0coC3PK6UvkrjwkIGI2%2F28cb070609f546cdbe5efa20e931aa4b?alt=media&token=912e9551-7a7c-4dfb-86b6-3da1537d1a7f",
16
- required: true
17
- },
18
- {
19
- name: "posterImage",
20
- type: "file",
21
- allowedFileTypes: ["jpeg", "png"],
22
- helperText: "Image to show before the video plays"
23
- },
24
- {
25
- name: "autoPlay",
26
- type: "boolean",
27
- defaultValue: true
28
- },
29
- {
30
- name: "controls",
31
- type: "boolean",
32
- defaultValue: false
33
- },
34
- {
35
- name: "muted",
36
- type: "boolean",
37
- defaultValue: true
38
- },
39
- {
40
- name: "loop",
41
- type: "boolean",
42
- defaultValue: true
43
- },
44
- {
45
- name: "playsInline",
46
- type: "boolean",
47
- defaultValue: true
48
- },
49
- {
50
- name: "fit",
51
- type: "text",
52
- defaultValue: "cover",
53
- enum: ["contain", "cover", "fill", "auto"]
54
- },
55
- {
56
- name: "fitContent",
57
- type: "boolean",
58
- helperText: "When child blocks are provided, fit to them instead of using the aspect ratio",
59
- defaultValue: true,
60
- advanced: true
61
- },
62
- {
63
- name: "position",
64
- type: "text",
65
- defaultValue: "center",
66
- enum: [
67
- "center",
68
- "top",
69
- "left",
70
- "right",
71
- "bottom",
72
- "top left",
73
- "top right",
74
- "bottom left",
75
- "bottom right"
76
- ]
77
- },
78
- {
79
- name: "height",
80
- type: "number",
81
- advanced: true
82
- },
83
- {
84
- name: "width",
85
- type: "number",
86
- advanced: true
87
- },
88
- {
89
- name: "aspectRatio",
90
- type: "number",
91
- advanced: true,
92
- defaultValue: 0.7004048582995948
93
- },
94
- {
95
- name: "lazyLoad",
96
- type: "boolean",
97
- helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
98
- defaultValue: true,
99
- advanced: true
100
- }
101
- ]
102
- };
103
- export {
104
- componentInfo
105
- };
@@ -1,63 +0,0 @@
1
- import * as React from "react";
2
-
3
- function Video(props) {
4
- const _context = { ...props["_context"] };
5
-
6
- const state = {
7
- get videoProps() {
8
- return {
9
- ...(props.autoPlay === true
10
- ? {
11
- autoPlay: true,
12
- }
13
- : {}),
14
- ...(props.muted === true
15
- ? {
16
- muted: true,
17
- }
18
- : {}),
19
- ...(props.controls === true
20
- ? {
21
- controls: true,
22
- }
23
- : {}),
24
- ...(props.loop === true
25
- ? {
26
- loop: true,
27
- }
28
- : {}),
29
- ...(props.playsInline === true
30
- ? {
31
- playsInline: true,
32
- }
33
- : {}),
34
- };
35
- },
36
- get spreadProps() {
37
- return {
38
- ...props.attributes,
39
- ...state.videoProps,
40
- };
41
- },
42
- };
43
-
44
- return (
45
- <video
46
- {...state.spreadProps}
47
- style={{
48
- width: "100%",
49
- height: "100%",
50
- ...props.attributes?.style,
51
- objectFit: props.fit,
52
- objectPosition: props.position,
53
- // Hack to get object fit to work as expected and
54
- // not have the video overflow
55
- borderRadius: 1,
56
- }}
57
- src={props.video || "no-src"}
58
- poster={props.posterImage}
59
- />
60
- );
61
- }
62
-
63
- export default Video;
@@ -1,88 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- getMaxWidthQueryForSize,
4
- getSizesForBreakpoints,
5
- } from "../../constants/device-sizes.js";
6
- import { TARGET } from "../../constants/target.js";
7
- import { getProcessedBlock } from "../../functions/get-processed-block.js";
8
- import { createCssClass } from "../../helpers/css.js";
9
- import { checkIsDefined } from "../../helpers/nullable.js";
10
- import RenderInlinedStyles from "../render-inlined-styles";
11
-
12
- function BlockStyles(props) {
13
- const _context = { ...props["_context"] };
14
-
15
- const state = {
16
- get useBlock() {
17
- return getProcessedBlock({
18
- block: props.block,
19
- state: props.context.state,
20
- context: props.context.context,
21
- shouldEvaluateBindings: true,
22
- });
23
- },
24
- get canShowBlock() {
25
- // only render styles for blocks that are visible
26
- if (checkIsDefined(state.useBlock.hide)) {
27
- return !state.useBlock.hide;
28
- }
29
- if (checkIsDefined(state.useBlock.show)) {
30
- return state.useBlock.show;
31
- }
32
- return true;
33
- },
34
- get css() {
35
- const styles = state.useBlock.responsiveStyles;
36
- const content = props.context.content;
37
- const sizesWithUpdatedBreakpoints = getSizesForBreakpoints(
38
- content?.meta?.breakpoints || {}
39
- );
40
- const largeStyles = styles?.large;
41
- const mediumStyles = styles?.medium;
42
- const smallStyles = styles?.small;
43
- const className = state.useBlock.id;
44
- if (!className) {
45
- return "";
46
- }
47
- const largeStylesClass = largeStyles
48
- ? createCssClass({
49
- className,
50
- styles: largeStyles,
51
- })
52
- : "";
53
- const mediumStylesClass = mediumStyles
54
- ? createCssClass({
55
- className,
56
- styles: mediumStyles,
57
- mediaQuery: getMaxWidthQueryForSize(
58
- "medium",
59
- sizesWithUpdatedBreakpoints
60
- ),
61
- })
62
- : "";
63
- const smallStylesClass = smallStyles
64
- ? createCssClass({
65
- className,
66
- styles: smallStyles,
67
- mediaQuery: getMaxWidthQueryForSize(
68
- "small",
69
- sizesWithUpdatedBreakpoints
70
- ),
71
- })
72
- : "";
73
- return [largeStylesClass, mediumStylesClass, smallStylesClass].join(" ");
74
- },
75
- };
76
-
77
- return (
78
- <>
79
- {TARGET !== "reactNative" && state.css && state.canShowBlock ? (
80
- <>
81
- <RenderInlinedStyles styles={state.css} _context={_context} />
82
- </>
83
- ) : null}
84
- </>
85
- );
86
- }
87
-
88
- export default BlockStyles;
@@ -1,129 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { evaluate } from "../../functions/evaluate";
33
- import { getProcessedBlock } from "../../functions/get-processed-block";
34
- const EMPTY_HTML_ELEMENTS = [
35
- "area",
36
- "base",
37
- "br",
38
- "col",
39
- "embed",
40
- "hr",
41
- "img",
42
- "input",
43
- "keygen",
44
- "link",
45
- "meta",
46
- "param",
47
- "source",
48
- "track",
49
- "wbr"
50
- ];
51
- const isEmptyHtmlElement = (tagName) => {
52
- return typeof tagName === "string" && EMPTY_HTML_ELEMENTS.includes(tagName.toLowerCase());
53
- };
54
- const getComponent = ({
55
- block,
56
- context
57
- }) => {
58
- var _a;
59
- const componentName = (_a = getProcessedBlock({
60
- block,
61
- state: context.state,
62
- context: context.context,
63
- shouldEvaluateBindings: false
64
- }).component) == null ? void 0 : _a.name;
65
- if (!componentName) {
66
- return null;
67
- }
68
- const ref = context.registeredComponents[componentName];
69
- if (!ref) {
70
- console.warn(`
71
- Could not find a registered component named "${componentName}".
72
- If you registered it, is the file that registered it imported by the file that needs to render it?`);
73
- return void 0;
74
- } else {
75
- return ref;
76
- }
77
- };
78
- const getRepeatItemData = ({
79
- block,
80
- context
81
- }) => {
82
- const _a = block, { repeat } = _a, blockWithoutRepeat = __objRest(_a, ["repeat"]);
83
- if (!(repeat == null ? void 0 : repeat.collection)) {
84
- return void 0;
85
- }
86
- const itemsArray = evaluate({
87
- code: repeat.collection,
88
- state: context.state,
89
- context: context.context
90
- });
91
- if (!Array.isArray(itemsArray)) {
92
- return void 0;
93
- }
94
- const collectionName = repeat.collection.split(".").pop();
95
- const itemNameToUse = repeat.itemName || (collectionName ? collectionName + "Item" : "item");
96
- const repeatArray = itemsArray.map((item, index) => ({
97
- context: __spreadProps(__spreadValues({}, context), {
98
- state: __spreadProps(__spreadValues({}, context.state), {
99
- $index: index,
100
- $item: item,
101
- [itemNameToUse]: item,
102
- [`$${itemNameToUse}Index`]: index
103
- })
104
- }),
105
- block: blockWithoutRepeat
106
- }));
107
- return repeatArray;
108
- };
109
- const getProxyState = (context) => {
110
- if (typeof Proxy === "undefined") {
111
- console.error("no Proxy available in this environment, cannot proxy state.");
112
- return context.state;
113
- }
114
- const useState = new Proxy(context.state, {
115
- set: (obj, prop, value) => {
116
- var _a;
117
- obj[prop] = value;
118
- (_a = context.setState) == null ? void 0 : _a.call(context, obj);
119
- return true;
120
- }
121
- });
122
- return useState;
123
- };
124
- export {
125
- getComponent,
126
- getProxyState,
127
- getRepeatItemData,
128
- isEmptyHtmlElement
129
- };
@@ -1,201 +0,0 @@
1
- import * as React from "react";
2
- import { getBlockActions } from "../../functions/get-block-actions.js";
3
- import { getBlockComponentOptions } from "../../functions/get-block-component-options.js";
4
- import { getBlockProperties } from "../../functions/get-block-properties.js";
5
- import { getProcessedBlock } from "../../functions/get-processed-block.js";
6
- import BlockStyles from "./block-styles";
7
- import {
8
- getComponent,
9
- getProxyState,
10
- getRepeatItemData,
11
- isEmptyHtmlElement,
12
- } from "./render-block.helpers.js";
13
- import RenderRepeatedBlock from "./render-repeated-block";
14
- import { TARGET } from "../../constants/target.js";
15
- import { extractTextStyles } from "../../functions/extract-text-styles.js";
16
- import RenderComponent from "./render-component";
17
- import { getReactNativeBlockStyles } from "../../functions/get-react-native-block-styles.js";
18
-
19
- function RenderBlock(props) {
20
- const _context = { ...props["_context"] };
21
-
22
- const state = {
23
- component: getComponent({
24
- block: props.block,
25
- context: props.context,
26
- }),
27
- repeatItemData: getRepeatItemData({
28
- block: props.block,
29
- context: props.context,
30
- }),
31
- get useBlock() {
32
- return state.repeatItemData
33
- ? props.block
34
- : getProcessedBlock({
35
- block: props.block,
36
- state: props.context.state,
37
- context: props.context.context,
38
- shouldEvaluateBindings: true,
39
- });
40
- },
41
- tag: props.block.tagName || "div",
42
- get canShowBlock() {
43
- if ("hide" in state.useBlock) {
44
- return !state.useBlock.hide;
45
- }
46
- if ("show" in state.useBlock) {
47
- return state.useBlock.show;
48
- }
49
- return true;
50
- },
51
- proxyState: getProxyState(props.context),
52
- get actions() {
53
- return getBlockActions({
54
- block: state.useBlock,
55
- state: TARGET === "qwik" ? props.context.state : state.proxyState,
56
- context: props.context.context,
57
- });
58
- },
59
- get attributes() {
60
- const blockProperties = getBlockProperties(state.useBlock);
61
- return {
62
- ...blockProperties,
63
- ...(TARGET === "reactNative"
64
- ? {
65
- style: getReactNativeBlockStyles({
66
- block: state.useBlock,
67
- context: props.context,
68
- blockStyles: blockProperties.style,
69
- }),
70
- }
71
- : {}),
72
- };
73
- },
74
- get childrenWithoutParentComponent() {
75
- /**
76
- * When there is no `componentRef`, there might still be children that need to be rendered. In this case,
77
- * we render them outside of `componentRef`.
78
- * NOTE: We make sure not to render this if `repeatItemData` is non-null, because that means we are rendering an array of
79
- * blocks, and the children will be repeated within those blocks.
80
- */
81
- const shouldRenderChildrenOutsideRef =
82
- !state.component?.component && !state.repeatItemData;
83
- return shouldRenderChildrenOutsideRef
84
- ? state.useBlock.children ?? []
85
- : [];
86
- },
87
- get childrenContext() {
88
- const getInheritedTextStyles = () => {
89
- if (TARGET !== "reactNative") {
90
- return {};
91
- }
92
- return extractTextStyles(
93
- getReactNativeBlockStyles({
94
- block: state.useBlock,
95
- context: props.context,
96
- blockStyles: state.attributes.style,
97
- })
98
- );
99
- };
100
- return {
101
- apiKey: props.context.apiKey,
102
- apiVersion: props.context.apiVersion,
103
- state: props.context.state,
104
- content: props.context.content,
105
- context: props.context.context,
106
- setState: props.context.setState,
107
- registeredComponents: props.context.registeredComponents,
108
- inheritedStyles: getInheritedTextStyles(),
109
- };
110
- },
111
- get renderComponentProps() {
112
- return {
113
- blockChildren: state.useBlock.children ?? [],
114
- componentRef: state.component?.component,
115
- componentOptions: {
116
- ...getBlockComponentOptions(state.useBlock),
117
- /**
118
- * These attributes are passed to the wrapper element when there is one. If `noWrap` is set to true, then
119
- * they are provided to the component itself directly.
120
- */
121
- ...(!state.component?.noWrap
122
- ? {}
123
- : {
124
- attributes: {
125
- ...state.attributes,
126
- ...state.actions,
127
- },
128
- }),
129
- },
130
- context: state.childrenContext,
131
- };
132
- },
133
- };
134
-
135
- const TagRef = state.tag;
136
-
137
- return (
138
- <>
139
- {state.canShowBlock ? (
140
- <>
141
- {!state.component?.noWrap ? (
142
- <>
143
- {isEmptyHtmlElement(state.tag) ? (
144
- <>
145
- <TagRef {...state.attributes} {...state.actions} />
146
- </>
147
- ) : null}
148
- {!isEmptyHtmlElement(state.tag) && state.repeatItemData ? (
149
- <>
150
- {state.repeatItemData?.map((data, index) => (
151
- <RenderRepeatedBlock
152
- key={index}
153
- repeatContext={data.context}
154
- block={data.block}
155
- _context={_context}
156
- />
157
- ))}
158
- </>
159
- ) : null}
160
- {!isEmptyHtmlElement(state.tag) && !state.repeatItemData ? (
161
- <>
162
- <TagRef {...state.attributes} {...state.actions}>
163
- <RenderComponent
164
- {...state.renderComponentProps}
165
- _context={_context}
166
- />
167
-
168
- {state.childrenWithoutParentComponent?.map((child) => (
169
- <RenderBlock
170
- key={"render-block-" + child.id}
171
- block={child}
172
- context={state.childrenContext}
173
- _context={_context}
174
- />
175
- ))}
176
-
177
- {state.childrenWithoutParentComponent?.map((child) => (
178
- <BlockStyles
179
- key={"block-style-" + child.id}
180
- block={child}
181
- context={state.childrenContext}
182
- _context={_context}
183
- />
184
- ))}
185
- </TagRef>
186
- </>
187
- ) : null}
188
- </>
189
- ) : (
190
- <RenderComponent
191
- {...state.renderComponentProps}
192
- _context={_context}
193
- />
194
- )}
195
- </>
196
- ) : null}
197
- </>
198
- );
199
- }
200
-
201
- export default RenderBlock;