@builder.io/sdk-react 0.2.3-4 → 0.2.3

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 (261) hide show
  1. package/dist/sdk/blocks/columns/columns.js +4 -4
  2. package/dist/sdk/blocks/image/image.js +8 -7
  3. package/dist/sdk/blocks/symbol/symbol.js +2 -1
  4. package/dist/sdk/blocks/video/video.js +4 -1
  5. package/dist/sdk/components/render-block/render-block.js +4 -1
  6. package/dist/sdk/components/render-content/render-content.js +19 -5
  7. package/dist/sdk/index.d.ts +1 -0
  8. package/package.json +4 -1
  9. package/CHANGELOG.md +0 -25
  10. package/packages/react/src/blocks/BaseText.tsx +0 -19
  11. package/packages/react/src/blocks/button/button.tsx +0 -45
  12. package/packages/react/src/blocks/button/component-info.ts +0 -42
  13. package/packages/react/src/blocks/columns/columns.tsx +0 -211
  14. package/packages/react/src/blocks/columns/component-info.ts +0 -254
  15. package/packages/react/src/blocks/custom-code/component-info.ts +0 -31
  16. package/packages/react/src/blocks/custom-code/custom-code.tsx +0 -76
  17. package/packages/react/src/blocks/embed/component-info.ts +0 -55
  18. package/packages/react/src/blocks/embed/embed.tsx +0 -59
  19. package/packages/react/src/blocks/embed/helpers.ts +0 -8
  20. package/packages/react/src/blocks/form/component-info.ts +0 -282
  21. package/packages/react/src/blocks/form/form.tsx +0 -320
  22. package/packages/react/src/blocks/fragment/component-info.ts +0 -10
  23. package/packages/react/src/blocks/fragment/fragment.tsx +0 -14
  24. package/packages/react/src/blocks/image/component-info.ts +0 -172
  25. package/packages/react/src/blocks/image/image.helpers.ts +0 -75
  26. package/packages/react/src/blocks/image/image.tsx +0 -144
  27. package/packages/react/src/blocks/img/component-info.ts +0 -21
  28. package/packages/react/src/blocks/img/img.tsx +0 -40
  29. package/packages/react/src/blocks/input/component-info.ts +0 -78
  30. package/packages/react/src/blocks/input/input.tsx +0 -33
  31. package/packages/react/src/blocks/raw-text/component-info.ts +0 -15
  32. package/packages/react/src/blocks/raw-text/raw-text.tsx +0 -18
  33. package/packages/react/src/blocks/section/component-info.ts +0 -50
  34. package/packages/react/src/blocks/section/section.tsx +0 -33
  35. package/packages/react/src/blocks/select/component-info.ts +0 -61
  36. package/packages/react/src/blocks/select/select.tsx +0 -35
  37. package/packages/react/src/blocks/submit-button/component-info.ts +0 -32
  38. package/packages/react/src/blocks/submit-button/submit-button.tsx +0 -17
  39. package/packages/react/src/blocks/symbol/component-info.ts +0 -43
  40. package/packages/react/src/blocks/symbol/symbol.tsx +0 -111
  41. package/packages/react/src/blocks/text/component-info.ts +0 -24
  42. package/packages/react/src/blocks/text/text.tsx +0 -20
  43. package/packages/react/src/blocks/textarea/component-info.ts +0 -48
  44. package/packages/react/src/blocks/textarea/textarea.tsx +0 -24
  45. package/packages/react/src/blocks/util.ts +0 -18
  46. package/packages/react/src/blocks/video/component-info.ts +0 -109
  47. package/packages/react/src/blocks/video/video.tsx +0 -84
  48. package/packages/react/src/components/render-block/block-styles.tsx +0 -98
  49. package/packages/react/src/components/render-block/render-block.helpers.ts +0 -138
  50. package/packages/react/src/components/render-block/render-block.tsx +0 -216
  51. package/packages/react/src/components/render-block/render-component.tsx +0 -52
  52. package/packages/react/src/components/render-block/render-repeated-block.tsx +0 -43
  53. package/packages/react/src/components/render-block/types.ts +0 -7
  54. package/packages/react/src/components/render-blocks.tsx +0 -97
  55. package/packages/react/src/components/render-content/builder-editing.tsx +0 -8
  56. package/packages/react/src/components/render-content/components/render-styles.helpers.ts +0 -79
  57. package/packages/react/src/components/render-content/components/render-styles.tsx +0 -45
  58. package/packages/react/src/components/render-content/index.ts +0 -1
  59. package/packages/react/src/components/render-content/render-content.helpers.ts +0 -48
  60. package/packages/react/src/components/render-content/render-content.tsx +0 -410
  61. package/packages/react/src/components/render-content/render-content.types.ts +0 -33
  62. package/packages/react/src/components/render-inlined-styles.tsx +0 -36
  63. package/packages/react/src/constants/builder-registered-components.ts +0 -42
  64. package/packages/react/src/constants/device-sizes.ts +0 -65
  65. package/packages/react/src/constants/target.ts +0 -2
  66. package/packages/react/src/context/builder.context.ts +0 -12
  67. package/packages/react/src/context/types.ts +0 -26
  68. package/packages/react/src/functions/camel-to-kebab-case.ts +0 -2
  69. package/packages/react/src/functions/evaluate.ts +0 -57
  70. package/packages/react/src/functions/event-handler-name.ts +0 -6
  71. package/packages/react/src/functions/extract-text-styles.ts +0 -39
  72. package/packages/react/src/functions/fast-clone.ts +0 -5
  73. package/packages/react/src/functions/get-block-actions-handler.ts +0 -20
  74. package/packages/react/src/functions/get-block-actions.ts +0 -25
  75. package/packages/react/src/functions/get-block-component-options.ts +0 -12
  76. package/packages/react/src/functions/get-block-properties.ts +0 -75
  77. package/packages/react/src/functions/get-builder-search-params/fn.test.ts +0 -19
  78. package/packages/react/src/functions/get-builder-search-params/index.ts +0 -50
  79. package/packages/react/src/functions/get-content/ab-testing.ts +0 -132
  80. package/packages/react/src/functions/get-content/generate-content-url.test.ts +0 -95
  81. package/packages/react/src/functions/get-content/generate-content-url.ts +0 -59
  82. package/packages/react/src/functions/get-content/index.ts +0 -62
  83. package/packages/react/src/functions/get-content/types.ts +0 -53
  84. package/packages/react/src/functions/get-fetch.ts +0 -18
  85. package/packages/react/src/functions/get-global-this.ts +0 -17
  86. package/packages/react/src/functions/get-processed-block.test.ts +0 -33
  87. package/packages/react/src/functions/get-processed-block.ts +0 -54
  88. package/packages/react/src/functions/get-react-native-block-styles.ts +0 -33
  89. package/packages/react/src/functions/if-target.ts +0 -20
  90. package/packages/react/src/functions/is-browser.ts +0 -3
  91. package/packages/react/src/functions/is-editing.ts +0 -10
  92. package/packages/react/src/functions/is-iframe.ts +0 -5
  93. package/packages/react/src/functions/is-previewing.ts +0 -14
  94. package/packages/react/src/functions/on-change.test.ts +0 -23
  95. package/packages/react/src/functions/on-change.ts +0 -29
  96. package/packages/react/src/functions/register-component.ts +0 -50
  97. package/packages/react/src/functions/register.ts +0 -46
  98. package/packages/react/src/functions/sanitize-react-native-block-styles.ts +0 -65
  99. package/packages/react/src/functions/set-editor-settings.ts +0 -16
  100. package/packages/react/src/functions/set.test.ts +0 -19
  101. package/packages/react/src/functions/set.ts +0 -26
  102. package/packages/react/src/functions/track/helpers.ts +0 -67
  103. package/packages/react/src/functions/track/index.ts +0 -136
  104. package/packages/react/src/functions/track/interaction.ts +0 -80
  105. package/packages/react/src/functions/transform-block-properties.ts +0 -3
  106. package/packages/react/src/functions/transform-block.ts +0 -6
  107. package/packages/react/src/helpers/ab-tests.ts +0 -22
  108. package/packages/react/src/helpers/cookie.ts +0 -107
  109. package/packages/react/src/helpers/css.ts +0 -42
  110. package/packages/react/src/helpers/flatten.ts +0 -24
  111. package/packages/react/src/helpers/localStorage.ts +0 -40
  112. package/packages/react/src/helpers/logger.ts +0 -6
  113. package/packages/react/src/helpers/nullable.ts +0 -4
  114. package/packages/react/src/helpers/sessionId.ts +0 -38
  115. package/packages/react/src/helpers/time.ts +0 -4
  116. package/packages/react/src/helpers/url.test.ts +0 -23
  117. package/packages/react/src/helpers/url.ts +0 -16
  118. package/packages/react/src/helpers/uuid.ts +0 -17
  119. package/packages/react/src/helpers/visitorId.ts +0 -40
  120. package/packages/react/src/index-helpers/blocks-exports.ts +0 -10
  121. package/packages/react/src/index-helpers/top-of-file.ts +0 -4
  122. package/packages/react/src/index.ts +0 -14
  123. package/packages/react/src/scripts/init-editing.ts +0 -123
  124. package/packages/react/src/types/api-version.ts +0 -2
  125. package/packages/react/src/types/builder-block.ts +0 -69
  126. package/packages/react/src/types/builder-content.ts +0 -46
  127. package/packages/react/src/types/can-track.ts +0 -3
  128. package/packages/react/src/types/components.ts +0 -117
  129. package/packages/react/src/types/deep-partial.ts +0 -7
  130. package/packages/react/src/types/element.ts +0 -60
  131. package/packages/react/src/types/input.ts +0 -125
  132. package/packages/react/src/types/targets.ts +0 -6
  133. package/packages/react/src/types/typescript.ts +0 -7
  134. package/packages/rsc/src/blocks/BaseText.jsx +0 -12
  135. package/packages/rsc/src/blocks/button/button.jsx +0 -37
  136. package/packages/rsc/src/blocks/button/component-info.js +0 -40
  137. package/packages/rsc/src/blocks/columns/columns.jsx +0 -172
  138. package/packages/rsc/src/blocks/columns/component-info.js +0 -241
  139. package/packages/rsc/src/blocks/custom-code/component-info.js +0 -30
  140. package/packages/rsc/src/blocks/custom-code/custom-code.jsx +0 -57
  141. package/packages/rsc/src/blocks/embed/component-info.js +0 -43
  142. package/packages/rsc/src/blocks/embed/embed.jsx +0 -45
  143. package/packages/rsc/src/blocks/embed/helpers.js +0 -9
  144. package/packages/rsc/src/blocks/form/component-info.js +0 -261
  145. package/packages/rsc/src/blocks/form/form.jsx +0 -260
  146. package/packages/rsc/src/blocks/fragment/component-info.js +0 -10
  147. package/packages/rsc/src/blocks/fragment/fragment.jsx +0 -9
  148. package/packages/rsc/src/blocks/image/component-info.js +0 -150
  149. package/packages/rsc/src/blocks/image/image.helpers.js +0 -48
  150. package/packages/rsc/src/blocks/image/image.jsx +0 -122
  151. package/packages/rsc/src/blocks/img/component-info.js +0 -19
  152. package/packages/rsc/src/blocks/img/img.jsx +0 -21
  153. package/packages/rsc/src/blocks/input/component-info.js +0 -73
  154. package/packages/rsc/src/blocks/input/input.jsx +0 -23
  155. package/packages/rsc/src/blocks/raw-text/component-info.js +0 -15
  156. package/packages/rsc/src/blocks/raw-text/raw-text.jsx +0 -14
  157. package/packages/rsc/src/blocks/section/component-info.js +0 -48
  158. package/packages/rsc/src/blocks/section/section.jsx +0 -27
  159. package/packages/rsc/src/blocks/select/component-info.js +0 -58
  160. package/packages/rsc/src/blocks/select/select.jsx +0 -24
  161. package/packages/rsc/src/blocks/submit-button/component-info.js +0 -27
  162. package/packages/rsc/src/blocks/submit-button/submit-button.jsx +0 -13
  163. package/packages/rsc/src/blocks/symbol/component-info.js +0 -42
  164. package/packages/rsc/src/blocks/symbol/symbol.jsx +0 -89
  165. package/packages/rsc/src/blocks/text/component-info.js +0 -23
  166. package/packages/rsc/src/blocks/text/text.jsx +0 -17
  167. package/packages/rsc/src/blocks/textarea/component-info.js +0 -46
  168. package/packages/rsc/src/blocks/textarea/textarea.jsx +0 -17
  169. package/packages/rsc/src/blocks/util.js +0 -8
  170. package/packages/rsc/src/blocks/video/component-info.js +0 -105
  171. package/packages/rsc/src/blocks/video/video.jsx +0 -63
  172. package/packages/rsc/src/components/render-block/block-styles.jsx +0 -88
  173. package/packages/rsc/src/components/render-block/render-block.helpers.js +0 -129
  174. package/packages/rsc/src/components/render-block/render-block.jsx +0 -201
  175. package/packages/rsc/src/components/render-block/render-component.jsx +0 -39
  176. package/packages/rsc/src/components/render-block/render-repeated-block.jsx +0 -27
  177. package/packages/rsc/src/components/render-block/types.js +0 -0
  178. package/packages/rsc/src/components/render-blocks.jsx +0 -92
  179. package/packages/rsc/src/components/render-content/builder-editing.jsx +0 -64
  180. package/packages/rsc/src/components/render-content/components/render-styles.helpers.js +0 -57
  181. package/packages/rsc/src/components/render-content/components/render-styles.jsx +0 -39
  182. package/packages/rsc/src/components/render-content/index.js +0 -4
  183. package/packages/rsc/src/components/render-content/render-content.helpers.js +0 -48
  184. package/packages/rsc/src/components/render-content/render-content.jsx +0 -253
  185. package/packages/rsc/src/components/render-content/render-content.types.js +0 -0
  186. package/packages/rsc/src/components/render-inlined-styles.jsx +0 -33
  187. package/packages/rsc/src/constants/builder-registered-components.js +0 -54
  188. package/packages/rsc/src/constants/device-sizes.js +0 -48
  189. package/packages/rsc/src/constants/target.js +0 -4
  190. package/packages/rsc/src/context/builder.context.js +0 -14
  191. package/packages/rsc/src/context/types.js +0 -0
  192. package/packages/rsc/src/functions/camel-to-kebab-case.js +0 -4
  193. package/packages/rsc/src/functions/evaluate.js +0 -6
  194. package/packages/rsc/src/functions/event-handler-name.js +0 -7
  195. package/packages/rsc/src/functions/extract-text-styles.js +0 -22
  196. package/packages/rsc/src/functions/fast-clone.js +0 -4
  197. package/packages/rsc/src/functions/get-block-actions-handler.js +0 -11
  198. package/packages/rsc/src/functions/get-block-actions.js +0 -18
  199. package/packages/rsc/src/functions/get-block-component-options.js +0 -28
  200. package/packages/rsc/src/functions/get-block-properties.js +0 -53
  201. package/packages/rsc/src/functions/get-builder-search-params/fn.test.js +0 -13
  202. package/packages/rsc/src/functions/get-builder-search-params/index.js +0 -38
  203. package/packages/rsc/src/functions/get-content/ab-testing.js +0 -99
  204. package/packages/rsc/src/functions/get-content/generate-content-url.js +0 -60
  205. package/packages/rsc/src/functions/get-content/generate-content-url.test.js +0 -82
  206. package/packages/rsc/src/functions/get-content/index.js +0 -83
  207. package/packages/rsc/src/functions/get-content/types.js +0 -0
  208. package/packages/rsc/src/functions/get-fetch.js +0 -14
  209. package/packages/rsc/src/functions/get-global-this.js +0 -18
  210. package/packages/rsc/src/functions/get-processed-block.js +0 -59
  211. package/packages/rsc/src/functions/get-processed-block.test.js +0 -32
  212. package/packages/rsc/src/functions/get-react-native-block-styles.js +0 -33
  213. package/packages/rsc/src/functions/if-target.js +0 -15
  214. package/packages/rsc/src/functions/is-browser.js +0 -6
  215. package/packages/rsc/src/functions/is-editing.js +0 -8
  216. package/packages/rsc/src/functions/is-iframe.js +0 -7
  217. package/packages/rsc/src/functions/is-previewing.js +0 -14
  218. package/packages/rsc/src/functions/on-change.js +0 -27
  219. package/packages/rsc/src/functions/on-change.test.js +0 -19
  220. package/packages/rsc/src/functions/register-component.js +0 -68
  221. package/packages/rsc/src/functions/register.js +0 -29
  222. package/packages/rsc/src/functions/sanitize-react-native-block-styles.js +0 -66
  223. package/packages/rsc/src/functions/set-editor-settings.js +0 -15
  224. package/packages/rsc/src/functions/set.js +0 -11
  225. package/packages/rsc/src/functions/set.test.js +0 -16
  226. package/packages/rsc/src/functions/track/helpers.js +0 -50
  227. package/packages/rsc/src/functions/track/index.js +0 -129
  228. package/packages/rsc/src/functions/track/interaction.js +0 -53
  229. package/packages/rsc/src/functions/transform-block-properties.js +0 -6
  230. package/packages/rsc/src/functions/transform-block.js +0 -6
  231. package/packages/rsc/src/helpers/ab-tests.js +0 -16
  232. package/packages/rsc/src/helpers/cookie.js +0 -81
  233. package/packages/rsc/src/helpers/css.js +0 -34
  234. package/packages/rsc/src/helpers/flatten.js +0 -34
  235. package/packages/rsc/src/helpers/localStorage.js +0 -35
  236. package/packages/rsc/src/helpers/logger.js +0 -9
  237. package/packages/rsc/src/helpers/nullable.js +0 -4
  238. package/packages/rsc/src/helpers/sessionId.js +0 -52
  239. package/packages/rsc/src/helpers/time.js +0 -5
  240. package/packages/rsc/src/helpers/url.js +0 -13
  241. package/packages/rsc/src/helpers/url.test.js +0 -21
  242. package/packages/rsc/src/helpers/uuid.js +0 -13
  243. package/packages/rsc/src/helpers/visitorId.js +0 -34
  244. package/packages/rsc/src/index-helpers/blocks-exports.js +0 -22
  245. package/packages/rsc/src/index-helpers/top-of-file.js +0 -2
  246. package/packages/rsc/src/index.js +0 -13
  247. package/packages/rsc/src/scripts/init-editing.js +0 -93
  248. package/packages/rsc/src/types/api-version.js +0 -4
  249. package/packages/rsc/src/types/builder-block.js +0 -0
  250. package/packages/rsc/src/types/builder-content.js +0 -0
  251. package/packages/rsc/src/types/can-track.js +0 -0
  252. package/packages/rsc/src/types/components.js +0 -0
  253. package/packages/rsc/src/types/deep-partial.js +0 -0
  254. package/packages/rsc/src/types/element.js +0 -0
  255. package/packages/rsc/src/types/input.js +0 -0
  256. package/packages/rsc/src/types/targets.js +0 -0
  257. package/packages/rsc/src/types/typescript.js +0 -0
  258. package/tsconfig.json +0 -28
  259. package/tsconfig.sdk.json +0 -10
  260. package/tsconfig.server.json +0 -10
  261. package/vite.config.ts +0 -91
@@ -108,17 +108,17 @@ function Columns(props) {
108
108
  const builderContext = useContext(BuilderContext);
109
109
  return (React.createElement(React.Fragment, null,
110
110
  React.createElement("div", { className: `builder-columns ${props.builderBlock.id}-breakpoints` +
111
- " div-66c71955", style: columnsCssVars() },
111
+ " div-348c3b10", style: columnsCssVars() },
112
112
  TARGET !== "reactNative" ? (React.createElement(React.Fragment, null,
113
113
  React.createElement(RenderInlinedStyles, { styles: columnsStyles() }))) : null,
114
- props.columns?.map((column, index) => (React.createElement("div", { className: "builder-column div-66c71955-2", style: columnCssVars(index), key: index },
114
+ props.columns?.map((column, index) => (React.createElement("div", { className: "builder-column div-348c3b10-2", style: columnCssVars(index), key: index },
115
115
  React.createElement(RenderBlocks, { blocks: column.blocks, path: `component.options.columns.${index}.blocks`, parent: props.builderBlock.id, styleProp: {
116
116
  flexGrow: "1",
117
117
  } }))))),
118
- React.createElement("style", null, `.div-66c71955 {
118
+ React.createElement("style", null, `.div-348c3b10 {
119
119
  display: flex;
120
120
  line-height: normal;
121
- }.div-66c71955-2 {
121
+ }.div-348c3b10-2 {
122
122
  display: flex;
123
123
  flex-direction: column;
124
124
  align-items: stretch;
@@ -5,7 +5,8 @@ function Image(props) {
5
5
  function srcSetToUse() {
6
6
  const imageToUse = props.image || props.src;
7
7
  const url = imageToUse;
8
- if (!url || // We can auto add srcset for cdn.builder.io and shopify
8
+ if (!url ||
9
+ // We can auto add srcset for cdn.builder.io and shopify
9
10
  // images, otherwise you can supply this prop manually
10
11
  !(url.match(/builder\.io/) || url.match(/cdn\.shopify\.com/))) {
11
12
  return props.srcset;
@@ -51,23 +52,23 @@ function Image(props) {
51
52
  ...aspectRatioCss(),
52
53
  }, className: "builder-image" +
53
54
  (props.className ? " " + props.className : "") +
54
- " img-24559440", src: props.image, srcSet: srcSetToUse(), sizes: props.sizes })),
55
+ " img-3c135cd4", src: props.image, srcSet: srcSetToUse(), sizes: props.sizes })),
55
56
  props.aspectRatio &&
56
57
  !(props.builderBlock?.children?.length && props.fitContent) ? (React.createElement(React.Fragment, null,
57
- React.createElement("div", { className: "builder-image-sizer div-24559440", style: {
58
+ React.createElement("div", { className: "builder-image-sizer div-3c135cd4", style: {
58
59
  paddingTop: props.aspectRatio * 100 + "%",
59
60
  } }))) : null,
60
61
  props.builderBlock?.children?.length && props.fitContent ? (React.createElement(React.Fragment, null, props.children)) : null,
61
62
  !props.fitContent && props.children ? (React.createElement(React.Fragment, null,
62
- React.createElement("div", { className: "div-24559440-2" }, props.children))) : null),
63
- React.createElement("style", null, `.img-24559440 {
63
+ React.createElement("div", { className: "div-3c135cd4-2" }, props.children))) : null),
64
+ React.createElement("style", null, `.img-3c135cd4 {
64
65
  opacity: 1;
65
66
  transition: opacity 0.2s ease-in-out;
66
- }.div-24559440 {
67
+ }.div-3c135cd4 {
67
68
  width: 100%;
68
69
  pointer-events: none;
69
70
  font-size: 0;
70
- }.div-24559440-2 {
71
+ }.div-3c135cd4-2 {
71
72
  display: flex;
72
73
  flex-direction: column;
73
74
  align-items: stretch;
@@ -31,7 +31,8 @@ function Symbol(props) {
31
31
  * then we want to re-fetch the symbol content.
32
32
  */
33
33
  if (!contentToUse &&
34
- props.symbol?.model && // This is a hack, we should not need to check for this, but it is needed for Svelte.
34
+ props.symbol?.model &&
35
+ // This is a hack, we should not need to check for this, but it is needed for Svelte.
35
36
  builderContext?.apiKey) {
36
37
  getContent({
37
38
  model: props.symbol.model,
@@ -31,7 +31,10 @@ function Video(props) {
31
31
  };
32
32
  }
33
33
  function spreadProps() {
34
- return { ...props.attributes, ...videoProps() };
34
+ return {
35
+ ...props.attributes,
36
+ ...videoProps(),
37
+ };
35
38
  }
36
39
  return (React.createElement("video", { ...spreadProps(), style: {
37
40
  width: "100%",
@@ -109,7 +109,10 @@ function RenderBlock(props) {
109
109
  ...(!component?.noWrap
110
110
  ? {}
111
111
  : {
112
- attributes: { ...attributes(), ...actions() },
112
+ attributes: {
113
+ ...attributes(),
114
+ ...actions(),
115
+ },
113
116
  }),
114
117
  },
115
118
  context: childrenContext(),
@@ -31,7 +31,10 @@ function RenderContent(props) {
31
31
  setUseContent({
32
32
  ...useContent,
33
33
  ...newContent,
34
- data: { ...useContent?.data, ...newContent?.data },
34
+ data: {
35
+ ...useContent?.data,
36
+ ...newContent?.data,
37
+ },
35
38
  meta: {
36
39
  ...useContent?.meta,
37
40
  ...newContent?.meta,
@@ -42,7 +45,10 @@ function RenderContent(props) {
42
45
  function setBreakpoints(breakpoints) {
43
46
  setUseContent({
44
47
  ...useContent,
45
- meta: { ...useContent?.meta, breakpoints },
48
+ meta: {
49
+ ...useContent?.meta,
50
+ breakpoints,
51
+ },
46
52
  });
47
53
  }
48
54
  const [update, setUpdate] = useState(() => 0);
@@ -57,13 +63,17 @@ function RenderContent(props) {
57
63
  }
58
64
  const [allRegisteredComponents, setAllRegisteredComponents] = useState(() => [
59
65
  ...getDefaultRegisteredComponents(),
66
+ // While this `components` object is deprecated, we must maintain support for it.
60
67
  // Since users are able to override our default components, we need to make sure that we do not break such
61
68
  // existing usage.
62
69
  // This is why we spread `components` after the default Builder.io components, but before the `props.customComponents`,
63
70
  // which is the new standard way of providing custom components, and must therefore take precedence.
64
71
  ...components,
65
72
  ...(props.customComponents || []),
66
- ].reduce((acc, curr) => ({ ...acc, [curr.name]: curr }), {}));
73
+ ].reduce((acc, curr) => ({
74
+ ...acc,
75
+ [curr.name]: curr,
76
+ }), {}));
67
77
  function processMessage(event) {
68
78
  const { data } = event;
69
79
  if (data) {
@@ -142,7 +152,10 @@ function RenderContent(props) {
142
152
  fetch(url)
143
153
  .then((response) => response.json())
144
154
  .then((json) => {
145
- const newState = { ...contentState, [key]: json };
155
+ const newState = {
156
+ ...contentState,
157
+ [key]: json,
158
+ };
146
159
  setContextState(newState);
147
160
  })
148
161
  .catch((err) => {
@@ -210,7 +223,8 @@ function RenderContent(props) {
210
223
  apiKey: props.apiKey,
211
224
  variationId: variationId !== contentId ? variationId : undefined,
212
225
  });
213
- } // override normal content in preview mode
226
+ }
227
+ // override normal content in preview mode
214
228
  if (isPreviewing()) {
215
229
  const searchParams = new URL(location.href).searchParams;
216
230
  const searchParamPreviewModel = searchParams.get("builder.preview");
@@ -10,3 +10,4 @@ export * from './functions/get-builder-search-params/index.js';
10
10
  export { track } from './functions/track/index.js';
11
11
  export type { RegisteredComponent } from './context/types';
12
12
  export type { ComponentInfo } from './types/components';
13
+ export type { RenderContentProps } from './components/render-content/render-content.types.js';
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react",
3
3
  "description": "Builder.io SDK for React",
4
- "version": "0.2.3-4",
4
+ "version": "0.2.3",
5
5
  "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
6
9
  "exports": {
7
10
  ".": "./dist/sdk/index.js",
8
11
  "./server": "./dist/sdk/functions/get-content/index.js"
package/CHANGELOG.md DELETED
@@ -1,25 +0,0 @@
1
- ### 0.2.2
2
-
3
- - Fix: dynamic bindings for Link URLs.
4
- - Fix: previewing content that includes a symbol whose `model` property is a `page`.
5
- - Fix: "Show If"/"Hide If" bindings when the initial value is `undefined`.
6
-
7
- ### 0.2.1
8
-
9
- - No Changes.
10
-
11
- ### 0.2.0
12
-
13
- - Sets the default `apiVersion` to `v3`.
14
-
15
- In case you feel the need to use our older API Version `v2`, reach out to us at support@builder.io first. But you can override the default by setting `apiVersion` explicitly to `v2` as follows:
16
-
17
- ```jsx
18
- <RenderContent apiVersion="v2" />
19
- ```
20
-
21
- ```js
22
- getContent({ apiVersion: 'v2' });
23
- ```
24
-
25
- More details on the Builder API Versions visit [this link](https://www.builder.io/c/docs/content-api-versions).
@@ -1,19 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useContext } from "react";
4
-
5
- export interface BaseTextProps {
6
- text: string;
7
- }
8
-
9
- import BuilderContext from "../context/builder.context.js";
10
-
11
- function BaseText(props: BaseTextProps) {
12
- const builderContext = useContext(BuilderContext);
13
-
14
- return (
15
- <span style={builderContext.inheritedStyles as any}>{props.text}</span>
16
- );
17
- }
18
-
19
- export default BaseText;
@@ -1,45 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
-
4
- export interface ButtonProps {
5
- attributes?: any;
6
- text?: string;
7
- link?: string;
8
- openLinkInNewTab?: boolean;
9
- }
10
-
11
- function Button(props: ButtonProps) {
12
- return (
13
- <>
14
- {props.link ? (
15
- <>
16
- <a
17
- role="button"
18
- {...props.attributes}
19
- href={props.link}
20
- target={props.openLinkInNewTab ? "_blank" : undefined}
21
- >
22
- {props.text}
23
- </a>
24
- </>
25
- ) : (
26
- <>
27
- <button
28
- className={
29
- /** * We have to explicitly provide `class` so that Mitosis knows to merge it with `css`. */
30
- props.attributes.class + " button-2b50f164"
31
- }
32
- {...props.attributes}
33
- >
34
- {props.text}
35
- </button>
36
- </>
37
- )}
38
- <style>{`.button-2b50f164 {
39
- all: unset;
40
- }`}</style>
41
- </>
42
- );
43
- }
44
-
45
- export default Button;
@@ -1,42 +0,0 @@
1
- import type { ComponentInfo } from '../../types/components';
2
-
3
- export const componentInfo: ComponentInfo = {
4
- name: 'Core:Button',
5
-
6
- image:
7
- 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13',
8
- defaultStyles: {
9
- // TODO: make min width more intuitive and set one
10
- appearance: 'none',
11
- paddingTop: '15px',
12
- paddingBottom: '15px',
13
- paddingLeft: '25px',
14
- paddingRight: '25px',
15
- backgroundColor: '#000000',
16
- color: 'white',
17
- borderRadius: '4px',
18
- textAlign: 'center',
19
- cursor: 'pointer',
20
- },
21
- inputs: [
22
- {
23
- name: 'text',
24
- type: 'text',
25
- defaultValue: 'Click me!',
26
- bubble: true,
27
- },
28
- {
29
- name: 'link',
30
- type: 'url',
31
- bubble: true,
32
- },
33
- {
34
- name: 'openLinkInNewTab',
35
- type: 'boolean',
36
- defaultValue: false,
37
- friendlyName: 'Open link in new tab',
38
- },
39
- ],
40
- static: true,
41
- noWrap: true,
42
- };
@@ -1,211 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState, useContext } from "react";
4
-
5
- type Column = {
6
- blocks: BuilderBlock[];
7
- width?: number;
8
- };
9
- type CSSVal = string | number;
10
- type StackColumnsAt = "tablet" | "mobile" | "never";
11
- export interface ColumnProps {
12
- columns?: Column[];
13
- builderBlock: BuilderBlock; // TODO: Implement this when support for dynamic CSS lands
14
-
15
- space?: number; // TODO: Implement this when support for dynamic CSS lands
16
-
17
- stackColumnsAt?: StackColumnsAt; // TODO: Implement this when support for dynamic CSS lands
18
-
19
- reverseColumnsWhenStacked?: boolean;
20
- }
21
-
22
- import RenderBlocks from "../../components/render-blocks";
23
- import type { BuilderBlock } from "../../types/builder-block";
24
- import { getSizesForBreakpoints } from "../../constants/device-sizes";
25
- import type { SizeName } from "../../constants/device-sizes";
26
- import RenderInlinedStyles from "../../components/render-inlined-styles";
27
- import { TARGET } from "../../constants/target.js";
28
- import BuilderContext from "../../context/builder.context.js";
29
- import type { Dictionary } from "../../types/typescript";
30
-
31
- function Columns(props: ColumnProps) {
32
- const [gutterSize, setGutterSize] = useState(() =>
33
- typeof props.space === "number" ? props.space || 0 : 20
34
- );
35
-
36
- const [cols, setCols] = useState(() => props.columns || []);
37
-
38
- const [stackAt, setStackAt] = useState(
39
- () => props.stackColumnsAt || "tablet"
40
- );
41
-
42
- function getWidth(index: number) {
43
- return cols[index]?.width || 100 / cols.length;
44
- }
45
-
46
- function getColumnCssWidth(index: number) {
47
- const subtractWidth = (gutterSize * (cols.length - 1)) / cols.length;
48
- return `calc(${getWidth(index)}% - ${subtractWidth}px)`;
49
- }
50
-
51
- function getTabletStyle({
52
- stackedStyle,
53
- desktopStyle,
54
- }: {
55
- stackedStyle: CSSVal;
56
- desktopStyle: CSSVal;
57
- }) {
58
- return stackAt === "tablet" ? stackedStyle : desktopStyle;
59
- }
60
-
61
- function getMobileStyle({
62
- stackedStyle,
63
- desktopStyle,
64
- }: {
65
- stackedStyle: CSSVal;
66
- desktopStyle: CSSVal;
67
- }) {
68
- return stackAt === "never" ? desktopStyle : stackedStyle;
69
- }
70
-
71
- const [flexDir, setFlexDir] = useState(() =>
72
- props.stackColumnsAt === "never"
73
- ? "row"
74
- : props.reverseColumnsWhenStacked
75
- ? "column-reverse"
76
- : "column"
77
- );
78
-
79
- function columnsCssVars() {
80
- if (TARGET === "reactNative") {
81
- return {
82
- flexDirection: flexDir,
83
- } as Dictionary<string>;
84
- }
85
-
86
- return {
87
- "--flex-dir": flexDir,
88
- "--flex-dir-tablet": getTabletStyle({
89
- stackedStyle: flexDir,
90
- desktopStyle: "row",
91
- }),
92
- } as Dictionary<string>;
93
- }
94
-
95
- function columnCssVars(index: number) {
96
- const gutter = index === 0 ? 0 : gutterSize;
97
-
98
- if (TARGET === "reactNative") {
99
- return {
100
- marginLeft: props.stackColumnsAt === "never" ? gutter : 0,
101
- } as any as Dictionary<string>;
102
- }
103
-
104
- const width = getColumnCssWidth(index);
105
- const gutterPixels = `${gutterSize}px`;
106
- const mobileWidth = "100%";
107
- const mobileMarginLeft = 0;
108
- return {
109
- width,
110
- "margin-left": gutterPixels,
111
- "--column-width-mobile": getMobileStyle({
112
- stackedStyle: mobileWidth,
113
- desktopStyle: width,
114
- }),
115
- "--column-margin-left-mobile": getMobileStyle({
116
- stackedStyle: mobileMarginLeft,
117
- desktopStyle: gutterPixels,
118
- }),
119
- "--column-width-tablet": getTabletStyle({
120
- stackedStyle: mobileWidth,
121
- desktopStyle: width,
122
- }),
123
- "--column-margin-left-tablet": getTabletStyle({
124
- stackedStyle: mobileMarginLeft,
125
- desktopStyle: gutterPixels,
126
- }),
127
- } as any as Dictionary<string>;
128
- }
129
-
130
- function getWidthForBreakpointSize(size: SizeName) {
131
- const breakpointSizes = getSizesForBreakpoints(
132
- builderContext.content?.meta?.breakpoints || {}
133
- );
134
- return breakpointSizes[size].max;
135
- }
136
-
137
- function columnsStyles() {
138
- return `
139
- @media (max-width: ${getWidthForBreakpointSize("medium")}px) {
140
- .${props.builderBlock.id}-breakpoints {
141
- flex-direction: var(--flex-dir-tablet);
142
- align-items: stretch;
143
- }
144
-
145
- .${props.builderBlock.id}-breakpoints > .builder-column {
146
- width: var(--column-width-tablet) !important;
147
- margin-left: var(--column-margin-left-tablet) !important;
148
- }
149
- }
150
-
151
- @media (max-width: ${getWidthForBreakpointSize("small")}px) {
152
- .${props.builderBlock.id}-breakpoints {
153
- flex-direction: var(--flex-dir);
154
- align-items: stretch;
155
- }
156
-
157
- .${props.builderBlock.id}-breakpoints > .builder-column {
158
- width: var(--column-width-mobile) !important;
159
- margin-left: var(--column-margin-left-mobile) !important;
160
- }
161
- },
162
- `;
163
- }
164
-
165
- const builderContext = useContext(BuilderContext);
166
-
167
- return (
168
- <>
169
- <div
170
- className={
171
- `builder-columns ${props.builderBlock.id}-breakpoints` +
172
- " div-66c71955"
173
- }
174
- style={columnsCssVars()}
175
- >
176
- {TARGET !== "reactNative" ? (
177
- <>
178
- <RenderInlinedStyles styles={columnsStyles()} />
179
- </>
180
- ) : null}
181
-
182
- {props.columns?.map((column, index) => (
183
- <div
184
- className="builder-column div-66c71955-2"
185
- style={columnCssVars(index)}
186
- key={index}
187
- >
188
- <RenderBlocks
189
- blocks={column.blocks}
190
- path={`component.options.columns.${index}.blocks`}
191
- parent={props.builderBlock.id}
192
- styleProp={{
193
- flexGrow: "1",
194
- }}
195
- />
196
- </div>
197
- ))}
198
- </div>
199
- <style>{`.div-66c71955 {
200
- display: flex;
201
- line-height: normal;
202
- }.div-66c71955-2 {
203
- display: flex;
204
- flex-direction: column;
205
- align-items: stretch;
206
- }`}</style>
207
- </>
208
- );
209
- }
210
-
211
- export default Columns;