@builder.io/sdk-solid 0.0.2 → 0.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-solid",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "dependencies": {
@@ -89,7 +89,7 @@ export default function Columns(props) {
89
89
  }),
90
90
  _v$4 = {
91
91
  width: state.getColumnCssWidth(index),
92
- marginLeft: `${index === 0 ? 0 : state.getGutterSize()}px`,
92
+ "margin-left": `${index === 0 ? 0 : state.getGutterSize()}px`,
93
93
  ...state.columnCssVars
94
94
  };
95
95
 
@@ -83,7 +83,7 @@ export default function Columns(props) {
83
83
  })}
84
84
  style={{
85
85
  width: state.getColumnCssWidth(index),
86
- marginLeft: `${index === 0 ? 0 : state.getGutterSize()}px`,
86
+ "margin-left": `${index === 0 ? 0 : state.getGutterSize()}px`,
87
87
  ...state.columnCssVars,
88
88
  }}
89
89
  >
@@ -231,7 +231,7 @@ export default function FormComponent(props) {
231
231
  return (() => {
232
232
  const _el$ = _tmpl$2.cloneNode(true);
233
233
 
234
- _el$.addEventListener("submit", event => state.state.onSubmit(event));
234
+ _el$.addEventListener("submit", event => state.onSubmit(event));
235
235
 
236
236
  formRef(_el$);
237
237
 
@@ -258,7 +258,7 @@ export default function FormComponent(props) {
258
258
 
259
259
  _$insert(_el$, _$createComponent(Show, {
260
260
  get when() {
261
- return state.state.submissionState === "error";
261
+ return state.submissionState === "error";
262
262
  },
263
263
 
264
264
  get children() {
@@ -276,7 +276,7 @@ export default function FormComponent(props) {
276
276
 
277
277
  _$insert(_el$, _$createComponent(Show, {
278
278
  get when() {
279
- return state.state.submissionState === "sending";
279
+ return state.submissionState === "sending";
280
280
  },
281
281
 
282
282
  get children() {
@@ -294,13 +294,13 @@ export default function FormComponent(props) {
294
294
 
295
295
  _$insert(_el$, _$createComponent(Show, {
296
296
  get when() {
297
- return state.state.submissionState === "error" && state.state.responseData;
297
+ return state.submissionState === "error" && state.responseData;
298
298
  },
299
299
 
300
300
  get children() {
301
301
  const _el$2 = _tmpl$.cloneNode(true);
302
302
 
303
- _$insert(_el$2, () => JSON.stringify(state.state.responseData, null, 2));
303
+ _$insert(_el$2, () => JSON.stringify(state.responseData, null, 2));
304
304
 
305
305
  _$effect(() => _el$2.className = css({
306
306
  padding: "10px",
@@ -315,7 +315,7 @@ export default function FormComponent(props) {
315
315
 
316
316
  _$insert(_el$, _$createComponent(Show, {
317
317
  get when() {
318
- return state.state.submissionState === "success";
318
+ return state.submissionState === "success";
319
319
  },
320
320
 
321
321
  get children() {
@@ -246,30 +246,26 @@ export default function FormComponent(props) {
246
246
  action={!props.sendWithJs && props.action}
247
247
  method={props.method}
248
248
  name={props.name}
249
- onSubmit={(event) => state.state.onSubmit(event)}
249
+ onSubmit={(event) => state.onSubmit(event)}
250
250
  >
251
251
  <Show when={props.builderBlock && props.builderBlock.children}>
252
252
  <For each={props.builderBlock?.children}>
253
253
  {(block, index) => <RenderBlock block={block}></RenderBlock>}
254
254
  </For>
255
255
  </Show>
256
- <Show when={state.state.submissionState === "error"}>
256
+ <Show when={state.submissionState === "error"}>
257
257
  <BuilderBlocks
258
258
  dataPath="errorMessage"
259
259
  blocks={props.errorMessage}
260
260
  ></BuilderBlocks>
261
261
  </Show>
262
- <Show when={state.state.submissionState === "sending"}>
262
+ <Show when={state.submissionState === "sending"}>
263
263
  <BuilderBlocks
264
264
  dataPath="sendingMessage"
265
265
  blocks={props.sendingMessage}
266
266
  ></BuilderBlocks>
267
267
  </Show>
268
- <Show
269
- when={
270
- state.state.submissionState === "error" && state.state.responseData
271
- }
272
- >
268
+ <Show when={state.submissionState === "error" && state.responseData}>
273
269
  <pre
274
270
  class={css({
275
271
  padding: "10px",
@@ -277,10 +273,10 @@ export default function FormComponent(props) {
277
273
  textAlign: "center",
278
274
  })}
279
275
  >
280
- {JSON.stringify(state.state.responseData, null, 2)}
276
+ {JSON.stringify(state.responseData, null, 2)}
281
277
  </pre>
282
278
  </Show>
283
- <Show when={state.state.submissionState === "success"}>
279
+ <Show when={state.submissionState === "success"}>
284
280
  <BuilderBlocks
285
281
  dataPath="successMessage"
286
282
  blocks={props.successMessage}
@@ -1,22 +1,100 @@
1
1
  import { template as _$template } from "solid-js/web";
2
- import { setAttribute as _$setAttribute } from "solid-js/web";
3
2
  import { insert as _$insert } from "solid-js/web";
4
3
  import { createComponent as _$createComponent } from "solid-js/web";
4
+ import { setAttribute as _$setAttribute } from "solid-js/web";
5
5
  import { effect as _$effect } from "solid-js/web";
6
6
  import { memo as _$memo } from "solid-js/web";
7
7
 
8
- const _tmpl$ = /*#__PURE__*/_$template(`<div> </div>`, 2),
9
- _tmpl$2 = /*#__PURE__*/_$template(`<div></div>`, 2),
10
- _tmpl$3 = /*#__PURE__*/_$template(`<div><picture><img loading="lazy"><source></picture></div>`, 6);
8
+ const _tmpl$ = /*#__PURE__*/_$template(`<source type="image/webp">`, 1),
9
+ _tmpl$2 = /*#__PURE__*/_$template(`<div> </div>`, 2),
10
+ _tmpl$3 = /*#__PURE__*/_$template(`<div></div>`, 2),
11
+ _tmpl$4 = /*#__PURE__*/_$template(`<div><picture><img loading="lazy"></picture></div>`, 5);
11
12
 
12
13
  import { Show } from "solid-js";
14
+ import { createMutable } from "solid-js/store";
13
15
  import { css } from "solid-styled-components";
14
16
  export default function Image(props) {
17
+ const state = createMutable({
18
+ updateQueryParam: function updateQueryParam(uri = "", key, value) {
19
+ const re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
20
+ const separator = uri.indexOf("?") !== -1 ? "&" : "?";
21
+
22
+ if (uri.match(re)) {
23
+ return uri.replace(re, "$1" + key + "=" + encodeURIComponent(value) + "$2");
24
+ }
25
+
26
+ return uri + separator + key + "=" + encodeURIComponent(value);
27
+ },
28
+ removeProtocol: function removeProtocol(path) {
29
+ return path.replace(/http(s)?:/, "");
30
+ },
31
+ getShopifyImageUrl: function getShopifyImageUrl(src, size) {
32
+ if (!src || !src?.match(/cdn\.shopify\.com/) || !size) {
33
+ return src;
34
+ }
35
+
36
+ if (size === "master") {
37
+ return state.removeProtocol(src);
38
+ }
39
+
40
+ const match = src.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);
41
+
42
+ if (match) {
43
+ const prefix = src.split(match[0]);
44
+ const suffix = match[3];
45
+ const useSize = size.match("x") ? size : `${size}x`;
46
+ return state.removeProtocol(`${prefix[0]}_${useSize}${suffix}`);
47
+ }
48
+
49
+ return null;
50
+ },
51
+ getSrcSet: function getSrcSet(url) {
52
+ if (!url) {
53
+ return url;
54
+ }
55
+
56
+ const sizes = [100, 200, 400, 800, 1200, 1600, 2000];
57
+
58
+ if (url.match(/builder\.io/)) {
59
+ let srcUrl = url;
60
+ const widthInSrc = Number(url.split("?width=")[1]);
61
+
62
+ if (!isNaN(widthInSrc)) {
63
+ srcUrl = `${srcUrl} ${widthInSrc}w`;
64
+ }
65
+
66
+ return sizes.filter(size => size !== widthInSrc).map(size => `${state.updateQueryParam(url, "width", size)} ${size}w`).concat([srcUrl]).join(", ");
67
+ }
68
+
69
+ if (url.match(/cdn\.shopify\.com/)) {
70
+ return sizes.map(size => [state.getShopifyImageUrl(url, `${size}x${size}`), size]).filter(([sizeUrl]) => !!sizeUrl).map(([sizeUrl, size]) => `${sizeUrl} ${size}w`).concat([url]).join(", ");
71
+ }
72
+
73
+ return url;
74
+ },
75
+ useSrcSet: function useSrcSet() {
76
+ return props.srcset || state.getSrcSet(props.image) || "";
77
+ }
78
+ });
15
79
  return (() => {
16
- const _el$ = _tmpl$3.cloneNode(true),
80
+ const _el$ = _tmpl$4.cloneNode(true),
17
81
  _el$2 = _el$.firstChild,
18
- _el$3 = _el$2.firstChild,
19
- _el$4 = _el$3.nextSibling;
82
+ _el$3 = _el$2.firstChild;
83
+
84
+ _$insert(_el$2, _$createComponent(Show, {
85
+ get when() {
86
+ return _$memo(() => !!!props.noWebp, true)() && state.useSrcSet().includes("builder.io");
87
+ },
88
+
89
+ get children() {
90
+ const _el$4 = _tmpl$.cloneNode(true);
91
+
92
+ _$effect(() => _$setAttribute(_el$4, "srcset", state.useSrcSet().replace(/\?/g, "?format=webp&")));
93
+
94
+ return _el$4;
95
+ }
96
+
97
+ }), null);
20
98
 
21
99
  _$insert(_el$, _$createComponent(Show, {
22
100
  get when() {
@@ -24,7 +102,7 @@ export default function Image(props) {
24
102
  },
25
103
 
26
104
  get children() {
27
- const _el$5 = _tmpl$.cloneNode(true);
105
+ const _el$5 = _tmpl$2.cloneNode(true);
28
106
 
29
107
  _$effect(_p$ => {
30
108
  const _v$ = css({
@@ -35,7 +113,7 @@ export default function Image(props) {
35
113
  _v$2 = props.aspectRatio * 100 + "%";
36
114
 
37
115
  _v$ !== _p$._v$ && (_el$5.className = _p$._v$ = _v$);
38
- _v$2 !== _p$._v$2 && _el$5.style.setProperty("paddingTop", _p$._v$2 = _v$2);
116
+ _v$2 !== _p$._v$2 && _el$5.style.setProperty("padding-top", _p$._v$2 = _v$2);
39
117
  return _p$;
40
118
  }, {
41
119
  _v$: undefined,
@@ -64,7 +142,7 @@ export default function Image(props) {
64
142
  },
65
143
 
66
144
  get children() {
67
- const _el$6 = _tmpl$2.cloneNode(true);
145
+ const _el$6 = _tmpl$3.cloneNode(true);
68
146
 
69
147
  _$insert(_el$6, () => props.children);
70
148
 
@@ -102,20 +180,18 @@ export default function Image(props) {
102
180
  _v$7 = props.backgroundSize || "center",
103
181
  _v$8 = props.backgroundSize || "cover",
104
182
  _v$9 = props.image,
105
- _v$10 = props.srcset,
106
- _v$11 = props.sizes,
107
- _v$12 = props.srcset;
183
+ _v$10 = props.srcset || state.getSrcSet(props.image),
184
+ _v$11 = props.sizes;
108
185
 
109
186
  _v$3 !== _p$._v$3 && (_el$.className = _p$._v$3 = _v$3);
110
187
  _v$4 !== _p$._v$4 && (_el$3.className = _p$._v$4 = _v$4);
111
188
  _v$5 !== _p$._v$5 && _$setAttribute(_el$3, "alt", _p$._v$5 = _v$5);
112
189
  _v$6 !== _p$._v$6 && _$setAttribute(_el$3, "aria-role", _p$._v$6 = _v$6);
113
- _v$7 !== _p$._v$7 && _el$3.style.setProperty("objectPosition", _p$._v$7 = _v$7);
114
- _v$8 !== _p$._v$8 && _el$3.style.setProperty("objectFit", _p$._v$8 = _v$8);
190
+ _v$7 !== _p$._v$7 && _el$3.style.setProperty("object-position", _p$._v$7 = _v$7);
191
+ _v$8 !== _p$._v$8 && _el$3.style.setProperty("object-fit", _p$._v$8 = _v$8);
115
192
  _v$9 !== _p$._v$9 && _$setAttribute(_el$3, "src", _p$._v$9 = _v$9);
116
193
  _v$10 !== _p$._v$10 && _$setAttribute(_el$3, "srcset", _p$._v$10 = _v$10);
117
194
  _v$11 !== _p$._v$11 && _$setAttribute(_el$3, "sizes", _p$._v$11 = _v$11);
118
- _v$12 !== _p$._v$12 && _$setAttribute(_el$4, "srcset", _p$._v$12 = _v$12);
119
195
  return _p$;
120
196
  }, {
121
197
  _v$3: undefined,
@@ -126,8 +202,7 @@ export default function Image(props) {
126
202
  _v$8: undefined,
127
203
  _v$9: undefined,
128
204
  _v$10: undefined,
129
- _v$11: undefined,
130
- _v$12: undefined
205
+ _v$11: undefined
131
206
  });
132
207
 
133
208
  return _el$;
@@ -1,8 +1,91 @@
1
1
  import { Show } from "solid-js";
2
2
 
3
+ import { createMutable } from "solid-js/store";
3
4
  import { css } from "solid-styled-components";
4
5
 
5
6
  export default function Image(props) {
7
+ const state = createMutable({
8
+ updateQueryParam: function updateQueryParam(uri = "", key, value) {
9
+ const re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
10
+ const separator = uri.indexOf("?") !== -1 ? "&" : "?";
11
+
12
+ if (uri.match(re)) {
13
+ return uri.replace(
14
+ re,
15
+ "$1" + key + "=" + encodeURIComponent(value) + "$2"
16
+ );
17
+ }
18
+
19
+ return uri + separator + key + "=" + encodeURIComponent(value);
20
+ },
21
+ removeProtocol: function removeProtocol(path) {
22
+ return path.replace(/http(s)?:/, "");
23
+ },
24
+ getShopifyImageUrl: function getShopifyImageUrl(src, size) {
25
+ if (!src || !src?.match(/cdn\.shopify\.com/) || !size) {
26
+ return src;
27
+ }
28
+
29
+ if (size === "master") {
30
+ return state.removeProtocol(src);
31
+ }
32
+
33
+ const match = src.match(
34
+ /(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i
35
+ );
36
+
37
+ if (match) {
38
+ const prefix = src.split(match[0]);
39
+ const suffix = match[3];
40
+ const useSize = size.match("x") ? size : `${size}x`;
41
+ return state.removeProtocol(`${prefix[0]}_${useSize}${suffix}`);
42
+ }
43
+
44
+ return null;
45
+ },
46
+ getSrcSet: function getSrcSet(url) {
47
+ if (!url) {
48
+ return url;
49
+ }
50
+
51
+ const sizes = [100, 200, 400, 800, 1200, 1600, 2000];
52
+
53
+ if (url.match(/builder\.io/)) {
54
+ let srcUrl = url;
55
+ const widthInSrc = Number(url.split("?width=")[1]);
56
+
57
+ if (!isNaN(widthInSrc)) {
58
+ srcUrl = `${srcUrl} ${widthInSrc}w`;
59
+ }
60
+
61
+ return sizes
62
+ .filter((size) => size !== widthInSrc)
63
+ .map(
64
+ (size) => `${state.updateQueryParam(url, "width", size)} ${size}w`
65
+ )
66
+ .concat([srcUrl])
67
+ .join(", ");
68
+ }
69
+
70
+ if (url.match(/cdn\.shopify\.com/)) {
71
+ return sizes
72
+ .map((size) => [
73
+ state.getShopifyImageUrl(url, `${size}x${size}`),
74
+ size,
75
+ ])
76
+ .filter(([sizeUrl]) => !!sizeUrl)
77
+ .map(([sizeUrl, size]) => `${sizeUrl} ${size}w`)
78
+ .concat([url])
79
+ .join(", ");
80
+ }
81
+
82
+ return url;
83
+ },
84
+ useSrcSet: function useSrcSet() {
85
+ return props.srcset || state.getSrcSet(props.image) || "";
86
+ },
87
+ });
88
+
6
89
  return (
7
90
  <div
8
91
  class={css({
@@ -29,14 +112,19 @@ export default function Image(props) {
29
112
  alt={props.altText}
30
113
  aria-role={props.altText ? "presentation" : undefined}
31
114
  style={{
32
- objectPosition: props.backgroundSize || "center",
33
- objectFit: props.backgroundSize || "cover",
115
+ "object-position": props.backgroundSize || "center",
116
+ "object-fit": props.backgroundSize || "cover",
34
117
  }}
35
118
  src={props.image}
36
- srcset={props.srcset}
119
+ srcset={props.srcset || state.getSrcSet(props.image)}
37
120
  sizes={props.sizes}
38
121
  />
39
- <source srcSet={props.srcset} />
122
+ <Show when={!props.noWebp && state.useSrcSet().includes("builder.io")}>
123
+ <source
124
+ type="image/webp"
125
+ srcSet={state.useSrcSet().replace(/\?/g, "?format=webp&")}
126
+ />
127
+ </Show>
40
128
  </picture>
41
129
  <Show
42
130
  when={
@@ -51,7 +139,7 @@ export default function Image(props) {
51
139
  fontSize: "0",
52
140
  })}
53
141
  style={{
54
- paddingTop: props.aspectRatio * 100 + "%",
142
+ "padding-top": props.aspectRatio * 100 + "%",
55
143
  }}
56
144
  >
57
145
  {" "}
package/src/blocks/img.js CHANGED
@@ -19,8 +19,8 @@ export default function ImgComponent(props) {
19
19
  _v$4 = props.altText,
20
20
  _v$5 = props.imgSrc;
21
21
 
22
- _v$ !== _p$._v$ && _el$.style.setProperty("objectFit", _p$._v$ = _v$);
23
- _v$2 !== _p$._v$2 && _el$.style.setProperty("objectPosition", _p$._v$2 = _v$2);
22
+ _v$ !== _p$._v$ && _el$.style.setProperty("object-fit", _p$._v$ = _v$);
23
+ _v$2 !== _p$._v$2 && _el$.style.setProperty("object-position", _p$._v$2 = _v$2);
24
24
  _v$3 !== _p$._v$3 && _$setAttribute(_el$, "key", _p$._v$3 = _v$3);
25
25
  _v$4 !== _p$._v$4 && _$setAttribute(_el$, "alt", _p$._v$4 = _v$4);
26
26
  _v$5 !== _p$._v$5 && _$setAttribute(_el$, "src", _p$._v$5 = _v$5);
@@ -5,8 +5,8 @@ export default function ImgComponent(props) {
5
5
  <img
6
6
  {...props.attributes}
7
7
  style={{
8
- objectFit: props.backgroundSize || "cover",
9
- objectPosition: props.backgroundPosition || "center",
8
+ "object-fit": props.backgroundSize || "cover",
9
+ "object-position": props.backgroundPosition || "center",
10
10
  }}
11
11
  key={(isEditing() && props.imgSrc) || "default-key"}
12
12
  alt={props.altText}
@@ -15,7 +15,7 @@ export default function SectionComponent(props) {
15
15
  _$insert(_el$, () => props.children);
16
16
 
17
17
  _$effect(_$p => _$style(_el$, props.maxWidth && typeof props.maxWidth === "number" ? {
18
- maxWidth: props.maxWidth
18
+ "max-width": props.maxWidth
19
19
  } : undefined, _$p));
20
20
 
21
21
  return _el$;
@@ -5,7 +5,7 @@ export default function SectionComponent(props) {
5
5
  style={
6
6
  props.maxWidth && typeof props.maxWidth === "number"
7
7
  ? {
8
- maxWidth: props.maxWidth,
8
+ "max-width": props.maxWidth,
9
9
  }
10
10
  : undefined
11
11
  }
@@ -17,11 +17,11 @@ export default function Video(props) {
17
17
  width: "100%",
18
18
  height: "100%",
19
19
  ...props.attributes?.style,
20
- objectFit: props.fit,
21
- objectPosition: props.position,
20
+ "object-fit": props.fit,
21
+ "object-position": props.position,
22
22
  // Hack to get object fit to work as expected and
23
23
  // not have the video overflow
24
- borderRadius: 1
24
+ "border-radius": 1
25
25
  },
26
26
  _v$2 = props.video || "no-src",
27
27
  _v$3 = props.posterImage,
@@ -7,11 +7,11 @@ export default function Video(props) {
7
7
  width: "100%",
8
8
  height: "100%",
9
9
  ...props.attributes?.style,
10
- objectFit: props.fit,
11
- objectPosition: props.position,
10
+ "object-fit": props.fit,
11
+ "object-position": props.position,
12
12
  // Hack to get object fit to work as expected and
13
13
  // not have the video overflow
14
- borderRadius: 1,
14
+ "border-radius": 1,
15
15
  }}
16
16
  key={props.video || "no-src"}
17
17
  poster={props.posterImage}
@@ -1,6 +1,6 @@
1
1
  import { mergeProps as _$mergeProps } from "solid-js/web";
2
2
  import { createComponent as _$createComponent } from "solid-js/web";
3
- import { Show, For } from "solid-js";
3
+ import { useContext, Show, For } from "solid-js";
4
4
  import { Dynamic } from "solid-js/web";
5
5
  import { createMutable } from "solid-js/store";
6
6
  import { getBlockComponentOptions } from "../functions/get-block-component-options";
@@ -1,4 +1,4 @@
1
- import { Show, For } from "solid-js";
1
+ import { useContext, Show, For } from "solid-js";
2
2
  import { Dynamic } from "solid-js/web";
3
3
  import { createMutable } from "solid-js/store";
4
4
 
@@ -266,27 +266,27 @@ export default function RenderContent(props) {
266
266
  get children() {
267
267
  return _$createComponent(Show, {
268
268
  get when() {
269
- return state.state.useContent;
269
+ return state.useContent;
270
270
  },
271
271
 
272
272
  get children() {
273
273
  const _el$ = _tmpl$2.cloneNode(true);
274
274
 
275
275
  _el$.$$click = event => track("click", {
276
- contentId: state.state.useContent.id
276
+ contentId: state.useContent.id
277
277
  });
278
278
 
279
279
  _$insert(_el$, _$createComponent(Show, {
280
280
  get when() {
281
- return _$memo(() => !!(state.state.useContent?.data?.cssCode || state.state.useContent?.data?.customFonts?.length), true)() && !isReactNative();
281
+ return _$memo(() => !!(state.useContent?.data?.cssCode || state.useContent?.data?.customFonts?.length), true)() && !isReactNative();
282
282
  },
283
283
 
284
284
  get children() {
285
285
  const _el$2 = _tmpl$.cloneNode(true);
286
286
 
287
- _$insert(_el$2, () => state.state.useContent.data.cssCode, null);
287
+ _$insert(_el$2, () => state.useContent.data.cssCode, null);
288
288
 
289
- _$insert(_el$2, () => state.state.getFontCss(state.state.useContent.data), null);
289
+ _$insert(_el$2, () => state.getFontCss(state.useContent.data), null);
290
290
 
291
291
  return _el$2;
292
292
  }
@@ -295,12 +295,12 @@ export default function RenderContent(props) {
295
295
 
296
296
  _$insert(_el$, _$createComponent(RenderBlocks, {
297
297
  get blocks() {
298
- return state.state.useContent?.data?.blocks;
298
+ return state.useContent?.data?.blocks;
299
299
  }
300
300
 
301
301
  }), null);
302
302
 
303
- _$effect(() => _$setAttribute(_el$, "data-builder-content-id", state.state.useContent?.id));
303
+ _$effect(() => _$setAttribute(_el$, "data-builder-content-id", state.useContent?.id));
304
304
 
305
305
  return _el$;
306
306
  }
@@ -1,4 +1,4 @@
1
- import { Show, onMount } from "solid-js";
1
+ import { useContext, Show, onMount } from "solid-js";
2
2
  import { Dynamic } from "solid-js/web";
3
3
  import { createMutable } from "solid-js/store";
4
4
 
@@ -258,30 +258,28 @@ export default function RenderContent(props) {
258
258
  }}
259
259
  component={BuilderContext.Provider}
260
260
  >
261
- <Show when={state.state.useContent}>
261
+ <Show when={state.useContent}>
262
262
  <div
263
263
  onClick={(event) =>
264
264
  track("click", {
265
- contentId: state.state.useContent.id,
265
+ contentId: state.useContent.id,
266
266
  })
267
267
  }
268
- data-builder-content-id={state.state.useContent?.id}
268
+ data-builder-content-id={state.useContent?.id}
269
269
  >
270
270
  <Show
271
271
  when={
272
- (state.state.useContent?.data?.cssCode ||
273
- state.state.useContent?.data?.customFonts?.length) &&
272
+ (state.useContent?.data?.cssCode ||
273
+ state.useContent?.data?.customFonts?.length) &&
274
274
  !isReactNative()
275
275
  }
276
276
  >
277
277
  <style>
278
- {state.state.useContent.data.cssCode}
279
- {state.state.getFontCss(state.state.useContent.data)}
278
+ {state.useContent.data.cssCode}
279
+ {state.getFontCss(state.useContent.data)}
280
280
  </style>
281
281
  </Show>
282
- <RenderBlocks
283
- blocks={state.state.useContent?.data?.blocks}
284
- ></RenderBlocks>
282
+ <RenderBlocks blocks={state.useContent?.data?.blocks}></RenderBlocks>
285
283
  </div>
286
284
  </Show>
287
285
  </Dynamic>