@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 +1 -1
- package/src/blocks/columns.js +1 -1
- package/src/blocks/columns.lite.tsx +1 -1
- package/src/blocks/form.js +6 -6
- package/src/blocks/form.lite.tsx +6 -10
- package/src/blocks/image.js +93 -18
- package/src/blocks/image.lite.tsx +93 -5
- package/src/blocks/img.js +2 -2
- package/src/blocks/img.lite.tsx +2 -2
- package/src/blocks/section.js +1 -1
- package/src/blocks/section.lite.tsx +1 -1
- package/src/blocks/video.js +3 -3
- package/src/blocks/video.lite.tsx +3 -3
- package/src/components/render-block.js +1 -1
- package/src/components/render-block.lite.tsx +1 -1
- package/src/components/render-content.js +7 -7
- package/src/components/render-content.lite.tsx +9 -11
package/package.json
CHANGED
package/src/blocks/columns.js
CHANGED
|
@@ -89,7 +89,7 @@ export default function Columns(props) {
|
|
|
89
89
|
}),
|
|
90
90
|
_v$4 = {
|
|
91
91
|
width: state.getColumnCssWidth(index),
|
|
92
|
-
|
|
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
|
-
|
|
86
|
+
"margin-left": `${index === 0 ? 0 : state.getGutterSize()}px`,
|
|
87
87
|
...state.columnCssVars,
|
|
88
88
|
}}
|
|
89
89
|
>
|
package/src/blocks/form.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
318
|
+
return state.submissionState === "success";
|
|
319
319
|
},
|
|
320
320
|
|
|
321
321
|
get children() {
|
package/src/blocks/form.lite.tsx
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
276
|
+
{JSON.stringify(state.responseData, null, 2)}
|
|
281
277
|
</pre>
|
|
282
278
|
</Show>
|
|
283
|
-
<Show when={state.
|
|
279
|
+
<Show when={state.submissionState === "success"}>
|
|
284
280
|
<BuilderBlocks
|
|
285
281
|
dataPath="successMessage"
|
|
286
282
|
blocks={props.successMessage}
|
package/src/blocks/image.js
CHANGED
|
@@ -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(`<
|
|
9
|
-
_tmpl$2 = /*#__PURE__*/_$template(`<div
|
|
10
|
-
_tmpl$3 = /*#__PURE__*/_$template(`<div
|
|
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$
|
|
80
|
+
const _el$ = _tmpl$4.cloneNode(true),
|
|
17
81
|
_el$2 = _el$.firstChild,
|
|
18
|
-
_el$3 = _el$2.firstChild
|
|
19
|
-
|
|
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
|
|
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("
|
|
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$
|
|
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("
|
|
114
|
-
_v$8 !== _p$._v$8 && _el$3.style.setProperty("
|
|
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
|
-
|
|
33
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
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("
|
|
23
|
-
_v$2 !== _p$._v$2 && _el$.style.setProperty("
|
|
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);
|
package/src/blocks/img.lite.tsx
CHANGED
|
@@ -5,8 +5,8 @@ export default function ImgComponent(props) {
|
|
|
5
5
|
<img
|
|
6
6
|
{...props.attributes}
|
|
7
7
|
style={{
|
|
8
|
-
|
|
9
|
-
|
|
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}
|
package/src/blocks/section.js
CHANGED
|
@@ -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
|
-
|
|
18
|
+
"max-width": props.maxWidth
|
|
19
19
|
} : undefined, _$p));
|
|
20
20
|
|
|
21
21
|
return _el$;
|
package/src/blocks/video.js
CHANGED
|
@@ -17,11 +17,11 @@ export default function Video(props) {
|
|
|
17
17
|
width: "100%",
|
|
18
18
|
height: "100%",
|
|
19
19
|
...props.attributes?.style,
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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";
|
|
@@ -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.
|
|
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.
|
|
276
|
+
contentId: state.useContent.id
|
|
277
277
|
});
|
|
278
278
|
|
|
279
279
|
_$insert(_el$, _$createComponent(Show, {
|
|
280
280
|
get when() {
|
|
281
|
-
return _$memo(() => !!(state.
|
|
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.
|
|
287
|
+
_$insert(_el$2, () => state.useContent.data.cssCode, null);
|
|
288
288
|
|
|
289
|
-
_$insert(_el$2, () => state.
|
|
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.
|
|
298
|
+
return state.useContent?.data?.blocks;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
}), null);
|
|
302
302
|
|
|
303
|
-
_$effect(() => _$setAttribute(_el$, "data-builder-content-id", state.
|
|
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.
|
|
261
|
+
<Show when={state.useContent}>
|
|
262
262
|
<div
|
|
263
263
|
onClick={(event) =>
|
|
264
264
|
track("click", {
|
|
265
|
-
contentId: state.
|
|
265
|
+
contentId: state.useContent.id,
|
|
266
266
|
})
|
|
267
267
|
}
|
|
268
|
-
data-builder-content-id={state.
|
|
268
|
+
data-builder-content-id={state.useContent?.id}
|
|
269
269
|
>
|
|
270
270
|
<Show
|
|
271
271
|
when={
|
|
272
|
-
(state.
|
|
273
|
-
state.
|
|
272
|
+
(state.useContent?.data?.cssCode ||
|
|
273
|
+
state.useContent?.data?.customFonts?.length) &&
|
|
274
274
|
!isReactNative()
|
|
275
275
|
}
|
|
276
276
|
>
|
|
277
277
|
<style>
|
|
278
|
-
{state.
|
|
279
|
-
{state.
|
|
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>
|