@builder.io/sdk-svelte 4.1.3 → 4.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.
- package/lib/browser/blocks/form/form/form.svelte +8 -6
- package/lib/browser/blocks/img/component-info.js +33 -3
- package/lib/browser/blocks/img/img.svelte +18 -6
- package/lib/browser/blocks/symbol/symbol.svelte +5 -2
- package/lib/browser/blocks/symbol/symbol.svelte.d.ts +1 -1
- package/lib/browser/blocks/symbol/symbol.types.d.ts +1 -2
- package/lib/browser/blocks/tabs/tabs.svelte +5 -4
- package/lib/browser/blocks/tabs/tabs.svelte.d.ts +1 -1
- package/lib/browser/blocks/text/component-info.js +0 -1
- package/lib/browser/components/awaiter.types.d.ts +7 -0
- package/lib/browser/components/awaiter.types.js +1 -0
- package/lib/browser/components/block/block.svelte +2 -2
- package/lib/browser/components/block/components/component-ref/component-ref.svelte +8 -8
- package/lib/browser/components/block/components/component-ref/component-ref.svelte.d.ts +2 -2
- package/lib/browser/components/block/components/interactive-element.svelte +8 -1
- package/lib/browser/components/block/components/live-edit-block-styles.svelte +114 -0
- package/lib/browser/components/block/components/live-edit-block-styles.svelte.d.ts +22 -0
- package/lib/browser/components/block/components/style-wrapper.svelte +25 -0
- package/lib/browser/components/block/components/style-wrapper.svelte.d.ts +23 -0
- package/lib/browser/components/content/components/enable-editor.svelte +53 -12
- package/lib/browser/components/live-edit.svelte +20 -0
- package/lib/browser/components/live-edit.svelte.d.ts +26 -0
- package/lib/browser/constants/sdk-version.d.ts +1 -1
- package/lib/browser/constants/sdk-version.js +1 -1
- package/lib/browser/functions/get-content/generate-content-url.js +3 -8
- package/lib/browser/functions/get-content/index.js +8 -0
- package/lib/browser/functions/register.d.ts +18 -0
- package/lib/browser/functions/register.js +12 -0
- package/lib/browser/helpers/find-block.d.ts +18 -0
- package/lib/browser/helpers/find-block.js +41 -0
- package/lib/browser/helpers/subscribe-to-editor.d.ts +3 -2
- package/lib/browser/helpers/subscribe-to-editor.js +4 -2
- package/lib/browser/server-index.d.ts +1 -1
- package/lib/browser/server-index.js +1 -1
- package/lib/edge/blocks/form/form/form.svelte +8 -6
- package/lib/edge/blocks/img/component-info.js +33 -3
- package/lib/edge/blocks/img/img.svelte +18 -6
- package/lib/edge/blocks/symbol/symbol.svelte +5 -2
- package/lib/edge/blocks/symbol/symbol.svelte.d.ts +1 -1
- package/lib/edge/blocks/symbol/symbol.types.d.ts +1 -2
- package/lib/edge/blocks/tabs/tabs.svelte +5 -4
- package/lib/edge/blocks/tabs/tabs.svelte.d.ts +1 -1
- package/lib/edge/blocks/text/component-info.js +0 -1
- package/lib/edge/components/awaiter.types.d.ts +7 -0
- package/lib/edge/components/awaiter.types.js +1 -0
- package/lib/edge/components/block/block.svelte +2 -2
- package/lib/edge/components/block/components/component-ref/component-ref.svelte +8 -8
- package/lib/edge/components/block/components/component-ref/component-ref.svelte.d.ts +2 -2
- package/lib/edge/components/block/components/interactive-element.svelte +8 -1
- package/lib/edge/components/block/components/live-edit-block-styles.svelte +114 -0
- package/lib/edge/components/block/components/live-edit-block-styles.svelte.d.ts +22 -0
- package/lib/edge/components/block/components/style-wrapper.svelte +25 -0
- package/lib/edge/components/block/components/style-wrapper.svelte.d.ts +23 -0
- package/lib/edge/components/content/components/enable-editor.svelte +53 -12
- package/lib/edge/components/live-edit.svelte +20 -0
- package/lib/edge/components/live-edit.svelte.d.ts +26 -0
- package/lib/edge/constants/sdk-version.d.ts +1 -1
- package/lib/edge/constants/sdk-version.js +1 -1
- package/lib/edge/functions/get-content/generate-content-url.js +3 -8
- package/lib/edge/functions/get-content/index.js +8 -0
- package/lib/edge/functions/register.d.ts +18 -0
- package/lib/edge/functions/register.js +12 -0
- package/lib/edge/helpers/find-block.d.ts +18 -0
- package/lib/edge/helpers/find-block.js +41 -0
- package/lib/edge/helpers/subscribe-to-editor.d.ts +3 -2
- package/lib/edge/helpers/subscribe-to-editor.js +4 -2
- package/lib/edge/server-index.d.ts +1 -1
- package/lib/edge/server-index.js +1 -1
- package/lib/node/blocks/form/form/form.svelte +8 -6
- package/lib/node/blocks/img/component-info.js +33 -3
- package/lib/node/blocks/img/img.svelte +18 -6
- package/lib/node/blocks/symbol/symbol.svelte +5 -2
- package/lib/node/blocks/symbol/symbol.svelte.d.ts +1 -1
- package/lib/node/blocks/symbol/symbol.types.d.ts +1 -2
- package/lib/node/blocks/tabs/tabs.svelte +5 -4
- package/lib/node/blocks/tabs/tabs.svelte.d.ts +1 -1
- package/lib/node/blocks/text/component-info.js +0 -1
- package/lib/node/components/awaiter.types.d.ts +7 -0
- package/lib/node/components/awaiter.types.js +1 -0
- package/lib/node/components/block/block.svelte +2 -2
- package/lib/node/components/block/components/component-ref/component-ref.svelte +8 -8
- package/lib/node/components/block/components/component-ref/component-ref.svelte.d.ts +2 -2
- package/lib/node/components/block/components/interactive-element.svelte +8 -1
- package/lib/node/components/block/components/live-edit-block-styles.svelte +114 -0
- package/lib/node/components/block/components/live-edit-block-styles.svelte.d.ts +22 -0
- package/lib/node/components/block/components/style-wrapper.svelte +25 -0
- package/lib/node/components/block/components/style-wrapper.svelte.d.ts +23 -0
- package/lib/node/components/content/components/enable-editor.svelte +53 -12
- package/lib/node/components/live-edit.svelte +20 -0
- package/lib/node/components/live-edit.svelte.d.ts +26 -0
- package/lib/node/constants/sdk-version.d.ts +1 -1
- package/lib/node/constants/sdk-version.js +1 -1
- package/lib/node/functions/get-content/generate-content-url.js +3 -8
- package/lib/node/functions/get-content/index.js +8 -0
- package/lib/node/functions/register.d.ts +18 -0
- package/lib/node/functions/register.js +12 -0
- package/lib/node/helpers/find-block.d.ts +18 -0
- package/lib/node/helpers/find-block.js +41 -0
- package/lib/node/helpers/subscribe-to-editor.d.ts +3 -2
- package/lib/node/helpers/subscribe-to-editor.js +4 -2
- package/lib/node/server-index.d.ts +1 -1
- package/lib/node/server-index.js +1 -1
- package/package.json +1 -1
- package/src/blocks/form/form/form.svelte +11 -6
- package/src/blocks/img/component-info.ts +33 -3
- package/src/blocks/img/img.svelte +22 -6
- package/src/blocks/symbol/symbol.svelte +5 -2
- package/src/blocks/symbol/symbol.types.ts +1 -1
- package/src/blocks/tabs/tabs.svelte +5 -4
- package/src/blocks/text/component-info.ts +0 -1
- package/src/components/awaiter.types.ts +7 -0
- package/src/components/block/block.svelte +2 -2
- package/src/components/block/components/component-ref/component-ref.svelte +8 -10
- package/src/components/block/components/interactive-element.svelte +7 -0
- package/src/components/block/components/live-edit-block-styles.svelte +146 -0
- package/src/components/block/components/style-wrapper.svelte +41 -0
- package/src/components/content/components/enable-editor.svelte +113 -40
- package/src/components/live-edit.svelte +32 -0
- package/src/constants/sdk-version.ts +1 -1
- package/src/functions/get-content/generate-content-url.ts +3 -8
- package/src/functions/get-content/index.ts +8 -0
- package/src/functions/register.ts +29 -0
- package/src/helpers/find-block.ts +40 -0
- package/src/helpers/subscribe-to-editor.ts +7 -4
- package/src/server-index.ts +1 -1
|
@@ -25,8 +25,9 @@ export const createEditorListener = ({ model, trustedHosts, callbacks }) => {
|
|
|
25
25
|
const messageContent = data.data;
|
|
26
26
|
const modelName = messageContent.model;
|
|
27
27
|
const newState = messageContent?.state;
|
|
28
|
+
const editType = messageContent.editType;
|
|
28
29
|
if (modelName === model && newState) {
|
|
29
|
-
callbacks.stateUpdate(newState);
|
|
30
|
+
callbacks.stateUpdate(newState, editType);
|
|
30
31
|
}
|
|
31
32
|
break;
|
|
32
33
|
}
|
|
@@ -35,8 +36,9 @@ export const createEditorListener = ({ model, trustedHosts, callbacks }) => {
|
|
|
35
36
|
const messageContent = data.data;
|
|
36
37
|
const key = messageContent.key || messageContent.alias || messageContent.entry || messageContent.modelName;
|
|
37
38
|
const contentData = messageContent.data;
|
|
39
|
+
const editType = messageContent.editType;
|
|
38
40
|
if (key === model) {
|
|
39
|
-
callbacks.contentUpdate(contentData);
|
|
41
|
+
callbacks.contentUpdate(contentData, editType);
|
|
40
42
|
}
|
|
41
43
|
break;
|
|
42
44
|
}
|
|
@@ -25,7 +25,7 @@ export type { ComponentInfo } from './types/components';
|
|
|
25
25
|
export { isEditing } from './functions/is-editing';
|
|
26
26
|
export { isPreviewing } from './functions/is-previewing';
|
|
27
27
|
export { createRegisterComponentMessage } from './functions/register-component';
|
|
28
|
-
export { register } from './functions/register';
|
|
28
|
+
export { register, registerAction } from './functions/register';
|
|
29
29
|
export type { InsertMenuConfig, InsertMenuItem } from './functions/register';
|
|
30
30
|
export { setEditorSettings } from './functions/set-editor-settings';
|
|
31
31
|
export type { Settings } from './functions/set-editor-settings';
|
package/lib/edge/server-index.js
CHANGED
|
@@ -5,7 +5,7 @@ export * from './index-helpers/top-of-file';
|
|
|
5
5
|
export { isEditing } from './functions/is-editing';
|
|
6
6
|
export { isPreviewing } from './functions/is-previewing';
|
|
7
7
|
export { createRegisterComponentMessage } from './functions/register-component';
|
|
8
|
-
export { register } from './functions/register';
|
|
8
|
+
export { register, registerAction } from './functions/register';
|
|
9
9
|
export { setEditorSettings } from './functions/set-editor-settings';
|
|
10
10
|
export { getBuilderSearchParams } from './functions/get-builder-search-params/index';
|
|
11
11
|
export { track } from './functions/track/index';
|
|
@@ -44,6 +44,9 @@ function mergeNewRootState(newData) {
|
|
|
44
44
|
function submissionState() {
|
|
45
45
|
return (isEditing() && previewState) || formState;
|
|
46
46
|
}
|
|
47
|
+
function errorResponse(response) {
|
|
48
|
+
return JSON.stringify(response, null, 2);
|
|
49
|
+
}
|
|
47
50
|
function onSubmit(event) {
|
|
48
51
|
const sendWithJsProp = sendWithJs || sendSubmissionsTo === "email";
|
|
49
52
|
if (sendSubmissionsTo === "zapier") {
|
|
@@ -62,13 +65,16 @@ function onSubmit(event) {
|
|
|
62
65
|
// TODO: maybe support null
|
|
63
66
|
const formPairs = Array.from(el.querySelectorAll("input,select,textarea"))
|
|
64
67
|
.filter((el) => !!el.name)
|
|
68
|
+
.filter((el) => !!el.name &&
|
|
69
|
+
(el.type !== "radio" ||
|
|
70
|
+
el.checked))
|
|
65
71
|
.map((el) => {
|
|
66
72
|
let value;
|
|
67
73
|
const key = el.name;
|
|
68
74
|
if (el instanceof HTMLInputElement) {
|
|
69
75
|
if (el.type === "radio") {
|
|
70
76
|
if (el.checked) {
|
|
71
|
-
value = el.
|
|
77
|
+
value = el.value;
|
|
72
78
|
return {
|
|
73
79
|
key,
|
|
74
80
|
value,
|
|
@@ -288,11 +294,7 @@ let formErrorMessage = "";
|
|
|
288
294
|
/>
|
|
289
295
|
{/if}
|
|
290
296
|
{#if submissionState() === "error" && responseData}
|
|
291
|
-
<pre class="builder-form-error-text pre">{
|
|
292
|
-
responseData,
|
|
293
|
-
null,
|
|
294
|
-
2
|
|
295
|
-
)}</pre>
|
|
297
|
+
<pre class="builder-form-error-text pre">{errorResponse(responseData)}</pre>
|
|
296
298
|
{/if}
|
|
297
299
|
{#if submissionState() === "success"}
|
|
298
300
|
<Blocks
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IMAGE_FILE_TYPES } from '../../constants/file-types';
|
|
2
2
|
export const componentInfo = {
|
|
3
|
-
// friendlyName?
|
|
4
3
|
name: 'Raw:Img',
|
|
5
4
|
hideFromInsertMenu: true,
|
|
6
5
|
image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4',
|
|
@@ -10,7 +9,38 @@ export const componentInfo = {
|
|
|
10
9
|
type: 'file',
|
|
11
10
|
allowedFileTypes: IMAGE_FILE_TYPES,
|
|
12
11
|
required: true
|
|
12
|
+
}, {
|
|
13
|
+
name: 'backgroundSize',
|
|
14
|
+
type: 'text',
|
|
15
|
+
defaultValue: 'cover',
|
|
16
|
+
enum: [{
|
|
17
|
+
label: 'contain',
|
|
18
|
+
value: 'contain',
|
|
19
|
+
helperText: 'The image should never get cropped'
|
|
20
|
+
}, {
|
|
21
|
+
label: 'cover',
|
|
22
|
+
value: 'cover',
|
|
23
|
+
helperText: "The image should fill it's box, cropping when needed"
|
|
24
|
+
}]
|
|
25
|
+
}, {
|
|
26
|
+
name: 'backgroundPosition',
|
|
27
|
+
type: 'text',
|
|
28
|
+
defaultValue: 'center',
|
|
29
|
+
enum: ['center', 'top', 'left', 'right', 'bottom', 'top left', 'top right', 'bottom left', 'bottom right']
|
|
30
|
+
}, {
|
|
31
|
+
name: 'altText',
|
|
32
|
+
type: 'string',
|
|
33
|
+
helperText: 'Text to display when the user has images off'
|
|
34
|
+
}, {
|
|
35
|
+
name: 'title',
|
|
36
|
+
type: 'string',
|
|
37
|
+
helperText: 'Text to display when hovering over the asset'
|
|
38
|
+
}, {
|
|
39
|
+
name: 'aspectRatio',
|
|
40
|
+
type: 'number',
|
|
41
|
+
helperText: "This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio",
|
|
42
|
+
advanced: true,
|
|
43
|
+
defaultValue: 0.7041
|
|
13
44
|
}],
|
|
14
|
-
noWrap: true
|
|
15
|
-
static: true
|
|
45
|
+
noWrap: true
|
|
16
46
|
};
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
<script>import { isEditing } from "../../functions/is-editing";
|
|
7
7
|
import { filterAttrs } from "../helpers";
|
|
8
8
|
import { getSrcSet } from "../image/image.helpers";
|
|
9
|
-
import {
|
|
9
|
+
import { getClassPropName } from "../../functions/get-class-prop-name";
|
|
10
10
|
export let imgSrc = undefined;
|
|
11
11
|
export let image = undefined;
|
|
12
|
+
export let attributes = undefined;
|
|
13
|
+
export let altText = undefined;
|
|
14
|
+
export let title = undefined;
|
|
12
15
|
export let backgroundSize = undefined;
|
|
13
16
|
export let backgroundPosition = undefined;
|
|
14
|
-
export let
|
|
15
|
-
export let attributes = undefined;
|
|
17
|
+
export let aspectRatio = undefined;
|
|
16
18
|
function stringifyStyles(stylesObj) {
|
|
17
19
|
let styles = "";
|
|
18
20
|
for (let key in stylesObj) {
|
|
@@ -34,6 +36,15 @@ $: srcSetToUse = () => {
|
|
|
34
36
|
}
|
|
35
37
|
return getSrcSet(url);
|
|
36
38
|
};
|
|
39
|
+
$: imgAttrs = () => {
|
|
40
|
+
const attrs = {
|
|
41
|
+
...filterAttrs(attributes, "on:", false),
|
|
42
|
+
...filterAttrs(attributes, "on:", true),
|
|
43
|
+
[getClassPropName()]: `builder-raw-img ${attributes[getClassPropName()] || ""}`,
|
|
44
|
+
};
|
|
45
|
+
delete attrs.style;
|
|
46
|
+
return attrs;
|
|
47
|
+
};
|
|
37
48
|
</script>
|
|
38
49
|
|
|
39
50
|
{#key (isEditing() && imgSrc) || "default-key"}
|
|
@@ -41,12 +52,13 @@ $: srcSetToUse = () => {
|
|
|
41
52
|
style={stringifyStyles({
|
|
42
53
|
objectFit: backgroundSize || "cover",
|
|
43
54
|
objectPosition: backgroundPosition || "center",
|
|
55
|
+
aspectRatio: aspectRatio || undefined,
|
|
56
|
+
...(attributes?.style || {}),
|
|
44
57
|
})}
|
|
45
58
|
loading="lazy"
|
|
46
59
|
alt={altText}
|
|
60
|
+
{title}
|
|
47
61
|
src={imgSrc || image}
|
|
48
|
-
|
|
49
|
-
{...filterAttrs(attributes, "on:", false)}
|
|
50
|
-
use:setAttrs={filterAttrs(attributes, "on:", true)}
|
|
62
|
+
{...imgAttrs()}
|
|
51
63
|
/>
|
|
52
64
|
{/key}
|
|
@@ -6,11 +6,11 @@ import { getClassPropName } from "../../functions/get-class-prop-name";
|
|
|
6
6
|
import { setAttrs } from "../helpers";
|
|
7
7
|
import { fetchSymbolContent } from "./symbol.helpers";
|
|
8
8
|
export let symbol = undefined;
|
|
9
|
+
export let builderComponents;
|
|
9
10
|
export let attributes = undefined;
|
|
10
11
|
export let dynamic = undefined;
|
|
11
12
|
export let builderContext;
|
|
12
13
|
export let builderBlock;
|
|
13
|
-
export let builderComponents;
|
|
14
14
|
export let builderLinkComponent = undefined;
|
|
15
15
|
function setContent() {
|
|
16
16
|
if (contentToUse && symbolEntry === symbol?.entry)
|
|
@@ -31,6 +31,9 @@ $: blocksWrapper = () => {
|
|
|
31
31
|
$: contentWrapper = () => {
|
|
32
32
|
return "div";
|
|
33
33
|
};
|
|
34
|
+
$: customComponents = () => {
|
|
35
|
+
return Object.values(builderComponents);
|
|
36
|
+
};
|
|
34
37
|
$: className = () => {
|
|
35
38
|
return [
|
|
36
39
|
...[attributes[getClassPropName()]],
|
|
@@ -67,7 +70,7 @@ $: onUpdateFn_0(...[symbol]);
|
|
|
67
70
|
...$builderContext.context,
|
|
68
71
|
symbolId: builderBlock?.id,
|
|
69
72
|
}}
|
|
70
|
-
customComponents={
|
|
73
|
+
customComponents={customComponents()}
|
|
71
74
|
data={{
|
|
72
75
|
...symbol?.data,
|
|
73
76
|
...$builderContext.localState,
|
|
@@ -3,11 +3,11 @@ import type { SymbolProps } from "./symbol.types";
|
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
symbol?: SymbolProps["symbol"];
|
|
6
|
+
builderComponents: SymbolProps["builderComponents"];
|
|
6
7
|
attributes?: SymbolProps["attributes"];
|
|
7
8
|
dynamic?: SymbolProps["dynamic"];
|
|
8
9
|
builderContext: SymbolProps["builderContext"];
|
|
9
10
|
builderBlock: SymbolProps["builderBlock"];
|
|
10
|
-
builderComponents: SymbolProps["builderComponents"];
|
|
11
11
|
builderLinkComponent?: SymbolProps["builderLinkComponent"];
|
|
12
12
|
};
|
|
13
13
|
events: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuilderContent } from '../../types/builder-content';
|
|
2
2
|
import type { BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp } from '../../types/builder-props';
|
|
3
|
-
interface SymbolInfo {
|
|
3
|
+
export interface SymbolInfo {
|
|
4
4
|
model?: string;
|
|
5
5
|
entry?: string;
|
|
6
6
|
data?: any;
|
|
@@ -16,4 +16,3 @@ export interface SymbolProps extends BuilderComponentsProp, BuilderDataProps, Bu
|
|
|
16
16
|
inheritState?: boolean;
|
|
17
17
|
renderToLiquid?: boolean;
|
|
18
18
|
}
|
|
19
|
-
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script>import Blocks from "../../components/blocks/blocks.svelte";
|
|
2
2
|
export let defaultActiveTab = undefined;
|
|
3
3
|
export let tabs;
|
|
4
|
+
export let activeTabStyle = undefined;
|
|
4
5
|
export let collapsible = undefined;
|
|
5
6
|
export let tabHeaderLayout = undefined;
|
|
6
|
-
export let activeTabStyle = undefined;
|
|
7
7
|
export let builderBlock;
|
|
8
8
|
export let builderContext;
|
|
9
9
|
export let builderComponents;
|
|
@@ -21,6 +21,9 @@ function stringifyStyles(stylesObj) {
|
|
|
21
21
|
function activeTabContent(active) {
|
|
22
22
|
return tabs && tabs[active].content;
|
|
23
23
|
}
|
|
24
|
+
function getTabStyle(index) {
|
|
25
|
+
return index === activeTab ? activeTabStyle : {};
|
|
26
|
+
}
|
|
24
27
|
function onClick(index) {
|
|
25
28
|
if (index === activeTab && collapsible) {
|
|
26
29
|
activeTab = -1;
|
|
@@ -44,9 +47,7 @@ let activeTab = defaultActiveTab ? defaultActiveTab - 1 : 0;
|
|
|
44
47
|
>
|
|
45
48
|
{#each tabs as tab, index (index)}
|
|
46
49
|
<span
|
|
47
|
-
style={stringifyStyles(
|
|
48
|
-
...(activeTab === index ? activeTabStyle : {}),
|
|
49
|
-
})}
|
|
50
|
+
style={stringifyStyles(getTabStyle(index))}
|
|
50
51
|
class={`builder-tab-wrap ${
|
|
51
52
|
activeTab === index ? "builder-tab-active" : ""
|
|
52
53
|
}`}
|
|
@@ -4,9 +4,9 @@ declare const __propDef: {
|
|
|
4
4
|
props: {
|
|
5
5
|
defaultActiveTab?: TabsProps["defaultActiveTab"];
|
|
6
6
|
tabs: TabsProps["tabs"];
|
|
7
|
+
activeTabStyle?: TabsProps["activeTabStyle"];
|
|
7
8
|
collapsible?: TabsProps["collapsible"];
|
|
8
9
|
tabHeaderLayout?: TabsProps["tabHeaderLayout"];
|
|
9
|
-
activeTabStyle?: TabsProps["activeTabStyle"];
|
|
10
10
|
builderBlock: TabsProps["builderBlock"];
|
|
11
11
|
builderContext: TabsProps["builderContext"];
|
|
12
12
|
builderComponents: TabsProps["builderComponents"];
|
|
@@ -6,7 +6,6 @@ export const componentInfo = {
|
|
|
6
6
|
} : {},
|
|
7
7
|
name: 'Text',
|
|
8
8
|
static: true,
|
|
9
|
-
isRSC: true,
|
|
10
9
|
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',
|
|
11
10
|
inputs: [{
|
|
12
11
|
name: 'text',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,10 +8,10 @@ import "../../server-index";
|
|
|
8
8
|
import "../dynamic-div.svelte";
|
|
9
9
|
import { bindAnimations } from "./animator";
|
|
10
10
|
import { generateKey, getComponent, getRepeatItemData, provideBuilderBlock, provideBuilderContext, provideLinkComponent, provideRegisteredComponents, } from "./block.helpers";
|
|
11
|
-
import BlockStyles from "./components/block-styles.svelte";
|
|
12
11
|
import BlockWrapper from "./components/block-wrapper.svelte";
|
|
13
12
|
import ComponentRef from "./components/component-ref/component-ref.svelte";
|
|
14
13
|
import RepeatedBlock from "./components/repeated-block.svelte";
|
|
14
|
+
import StyleWrapper from "./components/style-wrapper.svelte";
|
|
15
15
|
export let block;
|
|
16
16
|
export let context;
|
|
17
17
|
export let registeredComponents;
|
|
@@ -109,7 +109,7 @@ afterUpdate(() => { });
|
|
|
109
109
|
</script>
|
|
110
110
|
|
|
111
111
|
{#if canShowBlock()}
|
|
112
|
-
<
|
|
112
|
+
<StyleWrapper block={processedBlock()} context={$context} id={block.id} />
|
|
113
113
|
|
|
114
114
|
{#if !blockComponent?.()?.noWrap}
|
|
115
115
|
{#if !repeatItem()}
|
|
@@ -2,19 +2,17 @@
|
|
|
2
2
|
import Block from "../../block.svelte";
|
|
3
3
|
import InteractiveElement from "../interactive-element.svelte";
|
|
4
4
|
import { getWrapperProps } from "./component-ref.helpers";
|
|
5
|
-
export let componentOptions;
|
|
6
|
-
export let blockChildren;
|
|
7
5
|
export let isInteractive;
|
|
8
6
|
export let componentRef;
|
|
7
|
+
export let componentOptions;
|
|
9
8
|
export let builderBlock;
|
|
10
9
|
export let context;
|
|
11
10
|
export let linkComponent;
|
|
12
11
|
export let includeBlockProps;
|
|
12
|
+
export let blockChildren;
|
|
13
13
|
export let registeredComponents;
|
|
14
14
|
let shouldUpdate = false;
|
|
15
15
|
let Wrapper = isInteractive ? InteractiveElement : componentRef;
|
|
16
|
-
function onUpdateFn_0(..._args) { }
|
|
17
|
-
$: onUpdateFn_0(...[componentOptions, blockChildren]);
|
|
18
16
|
</script>
|
|
19
17
|
|
|
20
18
|
{#if componentRef}
|
|
@@ -31,8 +29,10 @@ $: onUpdateFn_0(...[componentOptions, blockChildren]);
|
|
|
31
29
|
contextValue: $context,
|
|
32
30
|
})}
|
|
33
31
|
>
|
|
34
|
-
{#
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
{#if componentRef}
|
|
33
|
+
{#each blockChildren as child (child.id)}
|
|
34
|
+
<Block block={child} {context} {registeredComponents} {linkComponent} />
|
|
35
|
+
{/each}
|
|
36
|
+
{/if}</svelte:component
|
|
37
|
+
>
|
|
38
38
|
{/if}
|
|
@@ -2,14 +2,14 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
import type { ComponentProps } from "./component-ref.helpers";
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
componentOptions: ComponentProps["componentOptions"];
|
|
6
|
-
blockChildren: ComponentProps["blockChildren"];
|
|
7
5
|
isInteractive: ComponentProps["isInteractive"];
|
|
8
6
|
componentRef: ComponentProps["componentRef"];
|
|
7
|
+
componentOptions: ComponentProps["componentOptions"];
|
|
9
8
|
builderBlock: ComponentProps["builderBlock"];
|
|
10
9
|
context: ComponentProps["context"];
|
|
11
10
|
linkComponent: ComponentProps["linkComponent"];
|
|
12
11
|
includeBlockProps: ComponentProps["includeBlockProps"];
|
|
12
|
+
blockChildren: ComponentProps["blockChildren"];
|
|
13
13
|
registeredComponents: ComponentProps["registeredComponents"];
|
|
14
14
|
};
|
|
15
15
|
events: {
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
<script context="module"></script>
|
|
2
2
|
|
|
3
|
-
<script>import {
|
|
3
|
+
<script>import { TARGET } from "../../../constants/target";
|
|
4
|
+
import { getBlockActions } from "../../../functions/get-block-actions";
|
|
4
5
|
import { getBlockProperties } from "../../../functions/get-block-properties";
|
|
6
|
+
import { isEditing } from "../../../server-index";
|
|
5
7
|
import Awaiter from "../../awaiter.svelte";
|
|
8
|
+
import LiveEdit from "../../live-edit.svelte";
|
|
6
9
|
export let wrapperProps;
|
|
7
10
|
export let block;
|
|
8
11
|
export let includeBlockProps;
|
|
@@ -40,6 +43,10 @@ $: onUpdateFn_0(...[wrapperProps, block?.component?.options]);
|
|
|
40
43
|
props={wrapperProps}
|
|
41
44
|
attributes={attributes()}><slot /></Awaiter
|
|
42
45
|
>
|
|
46
|
+
{:else if TARGET === "rsc" && isEditing()}
|
|
47
|
+
<LiveEdit {Wrapper} id={block.id || ""} attributes={attributes()}
|
|
48
|
+
><slot /></LiveEdit
|
|
49
|
+
>
|
|
43
50
|
{:else}
|
|
44
51
|
<svelte:component
|
|
45
52
|
this={Wrapper}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<script context="module"></script>
|
|
2
|
+
|
|
3
|
+
<script>import { getMaxWidthQueryForSize, getSizesForBreakpoints, } from "../../../constants/device-sizes";
|
|
4
|
+
import { TARGET } from "../../../constants/target";
|
|
5
|
+
import { camelToKebabCase } from "../../../functions/camel-to-kebab-case";
|
|
6
|
+
import { getProcessedBlock } from "../../../functions/get-processed-block";
|
|
7
|
+
import { createCssClass } from "../../../helpers/css";
|
|
8
|
+
import { findBlockById } from "../../../helpers/find-block";
|
|
9
|
+
import { checkIsDefined } from "../../../helpers/nullable";
|
|
10
|
+
import InlinedStyles from "../../inlined-styles.svelte";
|
|
11
|
+
export let contextProvider;
|
|
12
|
+
export let id = undefined;
|
|
13
|
+
$: block = () => {
|
|
14
|
+
return findBlockById(contextProvider.content, id);
|
|
15
|
+
};
|
|
16
|
+
$: processedBlock = () => {
|
|
17
|
+
const foundBlock = block();
|
|
18
|
+
if (!foundBlock) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const blockToUse = foundBlock.repeat?.collection
|
|
22
|
+
? foundBlock
|
|
23
|
+
: getProcessedBlock({
|
|
24
|
+
block: foundBlock,
|
|
25
|
+
localState: contextProvider.localState,
|
|
26
|
+
rootState: contextProvider.rootState,
|
|
27
|
+
rootSetState: contextProvider.rootSetState,
|
|
28
|
+
context: contextProvider.context,
|
|
29
|
+
});
|
|
30
|
+
return blockToUse;
|
|
31
|
+
};
|
|
32
|
+
$: canShowBlock = () => {
|
|
33
|
+
if (checkIsDefined(processedBlock?.()?.hide)) {
|
|
34
|
+
return !processedBlock?.()?.hide;
|
|
35
|
+
}
|
|
36
|
+
if (checkIsDefined(processedBlock?.()?.show)) {
|
|
37
|
+
return processedBlock?.()?.show;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
$: css = () => {
|
|
42
|
+
const styles = processedBlock?.()?.responsiveStyles;
|
|
43
|
+
const content = contextProvider.content;
|
|
44
|
+
const sizesWithUpdatedBreakpoints = getSizesForBreakpoints(content?.meta?.breakpoints || {});
|
|
45
|
+
const contentHasXSmallBreakpoint = Boolean(content?.meta?.breakpoints?.xsmall);
|
|
46
|
+
const largeStyles = styles?.large;
|
|
47
|
+
const mediumStyles = styles?.medium;
|
|
48
|
+
const smallStyles = styles?.small;
|
|
49
|
+
const xsmallStyles = styles?.xsmall;
|
|
50
|
+
const className = processedBlock?.()?.id;
|
|
51
|
+
if (!className) {
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
54
|
+
const largeStylesClass = largeStyles
|
|
55
|
+
? createCssClass({
|
|
56
|
+
className,
|
|
57
|
+
styles: largeStyles,
|
|
58
|
+
})
|
|
59
|
+
: "";
|
|
60
|
+
const mediumStylesClass = mediumStyles
|
|
61
|
+
? createCssClass({
|
|
62
|
+
className,
|
|
63
|
+
styles: mediumStyles,
|
|
64
|
+
mediaQuery: getMaxWidthQueryForSize("medium", sizesWithUpdatedBreakpoints),
|
|
65
|
+
})
|
|
66
|
+
: "";
|
|
67
|
+
const smallStylesClass = smallStyles
|
|
68
|
+
? createCssClass({
|
|
69
|
+
className,
|
|
70
|
+
styles: smallStyles,
|
|
71
|
+
mediaQuery: getMaxWidthQueryForSize("small", sizesWithUpdatedBreakpoints),
|
|
72
|
+
})
|
|
73
|
+
: "";
|
|
74
|
+
const xsmallStylesClass = xsmallStyles && contentHasXSmallBreakpoint
|
|
75
|
+
? createCssClass({
|
|
76
|
+
className,
|
|
77
|
+
styles: xsmallStyles,
|
|
78
|
+
mediaQuery: getMaxWidthQueryForSize("xsmall", sizesWithUpdatedBreakpoints),
|
|
79
|
+
})
|
|
80
|
+
: "";
|
|
81
|
+
const hoverAnimation = processedBlock().animations &&
|
|
82
|
+
processedBlock().animations.find((item) => item.trigger === "hover");
|
|
83
|
+
let hoverStylesClass = "";
|
|
84
|
+
if (hoverAnimation) {
|
|
85
|
+
const hoverStyles = hoverAnimation.steps?.[1]?.styles || {};
|
|
86
|
+
hoverStylesClass =
|
|
87
|
+
createCssClass({
|
|
88
|
+
className: `${className}:hover`,
|
|
89
|
+
styles: {
|
|
90
|
+
...hoverStyles,
|
|
91
|
+
transition: `all ${hoverAnimation.duration}s ${camelToKebabCase(hoverAnimation.easing)}`,
|
|
92
|
+
transitionDelay: hoverAnimation.delay
|
|
93
|
+
? `${hoverAnimation.delay}s`
|
|
94
|
+
: "0s",
|
|
95
|
+
},
|
|
96
|
+
}) || "";
|
|
97
|
+
}
|
|
98
|
+
return [
|
|
99
|
+
largeStylesClass,
|
|
100
|
+
mediumStylesClass,
|
|
101
|
+
smallStylesClass,
|
|
102
|
+
xsmallStylesClass,
|
|
103
|
+
hoverStylesClass,
|
|
104
|
+
].join(" ");
|
|
105
|
+
};
|
|
106
|
+
</script>
|
|
107
|
+
|
|
108
|
+
{#if TARGET === "rsc" && css() && canShowBlock()}
|
|
109
|
+
<InlinedStyles
|
|
110
|
+
id="builderio-block"
|
|
111
|
+
styles={css()}
|
|
112
|
+
nonce={contextProvider.nonce}
|
|
113
|
+
/>
|
|
114
|
+
{/if}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
type LiveEditBlockStylesProps = {
|
|
3
|
+
id?: any;
|
|
4
|
+
contextProvider: BuilderContextInterface;
|
|
5
|
+
};
|
|
6
|
+
import type { BuilderContextInterface } from "../../../server-index";
|
|
7
|
+
declare const __propDef: {
|
|
8
|
+
props: {
|
|
9
|
+
contextProvider: LiveEditBlockStylesProps["contextProvider"];
|
|
10
|
+
id?: LiveEditBlockStylesProps["id"];
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {};
|
|
16
|
+
};
|
|
17
|
+
type LiveEditBlockStylesProps_ = typeof __propDef.props;
|
|
18
|
+
export { LiveEditBlockStylesProps_ as LiveEditBlockStylesProps };
|
|
19
|
+
export type LiveEditBlockStylesEvents = typeof __propDef.events;
|
|
20
|
+
export type LiveEditBlockStylesSlots = typeof __propDef.slots;
|
|
21
|
+
export default class LiveEditBlockStyles extends SvelteComponent<LiveEditBlockStylesProps, LiveEditBlockStylesEvents, LiveEditBlockStylesSlots> {
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script context="module"></script>
|
|
2
|
+
|
|
3
|
+
<script>import { getContext, onMount } from "svelte";
|
|
4
|
+
import { TARGET } from "../../../constants/target";
|
|
5
|
+
import { BuilderContext } from "../../../context/index";
|
|
6
|
+
import "../../../server-index";
|
|
7
|
+
import BlockStyles from "./block-styles.svelte";
|
|
8
|
+
import LiveEditBlockStyles from "./live-edit-block-styles.svelte";
|
|
9
|
+
export let block;
|
|
10
|
+
export let context;
|
|
11
|
+
let contextProvider = getContext(BuilderContext.key);
|
|
12
|
+
let isClientEditing = false;
|
|
13
|
+
let isHydrated = false;
|
|
14
|
+
onMount(() => { });
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#if isHydrated}
|
|
18
|
+
{#if TARGET === "rsc" && isClientEditing}
|
|
19
|
+
<LiveEditBlockStyles id={block.id} contextProvider={$contextProvider} />
|
|
20
|
+
{:else}
|
|
21
|
+
<BlockStyles {block} {context} />
|
|
22
|
+
{/if}
|
|
23
|
+
{:else}
|
|
24
|
+
<BlockStyles {block} {context} />
|
|
25
|
+
{/if}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
type StyleWrapperProps = {
|
|
3
|
+
block: BuilderBlock;
|
|
4
|
+
context: BuilderContextInterface;
|
|
5
|
+
id?: string;
|
|
6
|
+
};
|
|
7
|
+
import { BuilderBlock, BuilderContextInterface } from "../../../server-index";
|
|
8
|
+
declare const __propDef: {
|
|
9
|
+
props: {
|
|
10
|
+
block: StyleWrapperProps["block"];
|
|
11
|
+
context: StyleWrapperProps["context"];
|
|
12
|
+
};
|
|
13
|
+
events: {
|
|
14
|
+
[evt: string]: CustomEvent<any>;
|
|
15
|
+
};
|
|
16
|
+
slots: {};
|
|
17
|
+
};
|
|
18
|
+
type StyleWrapperProps_ = typeof __propDef.props;
|
|
19
|
+
export { StyleWrapperProps_ as StyleWrapperProps };
|
|
20
|
+
export type StyleWrapperEvents = typeof __propDef.events;
|
|
21
|
+
export type StyleWrapperSlots = typeof __propDef.slots;
|
|
22
|
+
export default class StyleWrapper extends SvelteComponent<StyleWrapperProps, StyleWrapperEvents, StyleWrapperSlots> {
|
|
23
|
+
}
|