@builder.io/sdk-svelte 0.12.2 → 0.12.4
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/button/button.svelte +27 -40
- package/lib/browser/blocks/button/button.svelte.d.ts +3 -2
- package/lib/browser/blocks/button/button.types.d.ts +2 -1
- package/lib/browser/blocks/columns/columns.svelte +25 -10
- package/lib/browser/blocks/columns/columns.svelte.d.ts +1 -0
- package/lib/browser/blocks/columns/columns.types.d.ts +3 -3
- package/lib/browser/blocks/symbol/symbol.svelte +4 -1
- package/lib/browser/blocks/symbol/symbol.svelte.d.ts +1 -0
- package/lib/browser/blocks/symbol/symbol.types.d.ts +2 -2
- package/lib/browser/components/block/block.svelte +26 -2
- package/lib/browser/components/block/components/block-wrapper.svelte.d.ts +1 -0
- package/lib/browser/components/block/components/component-ref/component-ref.helpers.d.ts +2 -2
- package/lib/browser/components/block/components/component-ref/component-ref.svelte +3 -1
- package/lib/browser/components/block/components/component-ref/component-ref.svelte.d.ts +1 -0
- package/lib/browser/components/block/components/repeated-block.svelte +2 -1
- package/lib/browser/components/block/components/repeated-block.svelte.d.ts +4 -5
- package/lib/browser/components/blocks/blocks.svelte +2 -0
- package/lib/browser/components/blocks/blocks.svelte.d.ts +1 -0
- package/lib/browser/components/blocks/blocks.types.d.ts +1 -0
- package/lib/browser/components/content/components/styles.svelte +4 -0
- package/lib/browser/components/content/content.svelte +3 -0
- package/lib/browser/components/content/content.svelte.d.ts +1 -0
- package/lib/browser/components/content-variants/content-variants.svelte +3 -0
- package/lib/browser/components/content-variants/content-variants.svelte.d.ts +1 -0
- package/lib/browser/components/content-variants/content-variants.types.d.ts +6 -2
- package/lib/browser/constants/sdk-version.d.ts +1 -1
- package/lib/browser/constants/sdk-version.js +1 -1
- package/lib/browser/functions/get-block-properties.d.ts +1 -2
- package/lib/browser/functions/get-block-properties.js +7 -22
- package/lib/browser/functions/get-class-prop-name.d.ts +1 -0
- package/lib/browser/functions/get-class-prop-name.js +14 -0
- package/lib/browser/functions/get-style.d.ts +12 -0
- package/lib/browser/functions/get-style.js +28 -0
- package/lib/browser/functions/transform-block-properties.d.ts +2 -2
- package/lib/browser/functions/transform-style-property.d.ts +7 -0
- package/lib/browser/functions/transform-style-property.js +3 -0
- package/lib/browser/helpers/omit.d.ts +1 -0
- package/lib/browser/helpers/omit.js +7 -0
- package/lib/browser/types/builder-block.d.ts +1 -0
- package/lib/browser/types/builder-props.d.ts +3 -0
- package/lib/edge/blocks/button/button.svelte +27 -40
- package/lib/edge/blocks/button/button.svelte.d.ts +3 -2
- package/lib/edge/blocks/button/button.types.d.ts +2 -1
- package/lib/edge/blocks/columns/columns.svelte +25 -10
- package/lib/edge/blocks/columns/columns.svelte.d.ts +1 -0
- package/lib/edge/blocks/columns/columns.types.d.ts +3 -3
- package/lib/edge/blocks/symbol/symbol.svelte +4 -1
- package/lib/edge/blocks/symbol/symbol.svelte.d.ts +1 -0
- package/lib/edge/blocks/symbol/symbol.types.d.ts +2 -2
- package/lib/edge/components/block/block.svelte +26 -2
- package/lib/edge/components/block/components/block-wrapper.svelte.d.ts +1 -0
- package/lib/edge/components/block/components/component-ref/component-ref.helpers.d.ts +2 -2
- package/lib/edge/components/block/components/component-ref/component-ref.svelte +3 -1
- package/lib/edge/components/block/components/component-ref/component-ref.svelte.d.ts +1 -0
- package/lib/edge/components/block/components/repeated-block.svelte +2 -1
- package/lib/edge/components/block/components/repeated-block.svelte.d.ts +4 -5
- package/lib/edge/components/blocks/blocks.svelte +2 -0
- package/lib/edge/components/blocks/blocks.svelte.d.ts +1 -0
- package/lib/edge/components/blocks/blocks.types.d.ts +1 -0
- package/lib/edge/components/content/components/styles.svelte +4 -0
- package/lib/edge/components/content/content.svelte +3 -0
- package/lib/edge/components/content/content.svelte.d.ts +1 -0
- package/lib/edge/components/content-variants/content-variants.svelte +3 -0
- package/lib/edge/components/content-variants/content-variants.svelte.d.ts +1 -0
- package/lib/edge/components/content-variants/content-variants.types.d.ts +6 -2
- package/lib/edge/constants/sdk-version.d.ts +1 -1
- package/lib/edge/constants/sdk-version.js +1 -1
- package/lib/edge/functions/get-block-properties.d.ts +1 -2
- package/lib/edge/functions/get-block-properties.js +7 -22
- package/lib/edge/functions/get-class-prop-name.d.ts +1 -0
- package/lib/edge/functions/get-class-prop-name.js +14 -0
- package/lib/edge/functions/get-style.d.ts +12 -0
- package/lib/edge/functions/get-style.js +28 -0
- package/lib/edge/functions/transform-block-properties.d.ts +2 -2
- package/lib/edge/functions/transform-style-property.d.ts +7 -0
- package/lib/edge/functions/transform-style-property.js +3 -0
- package/lib/edge/helpers/omit.d.ts +1 -0
- package/lib/edge/helpers/omit.js +7 -0
- package/lib/edge/types/builder-block.d.ts +1 -0
- package/lib/edge/types/builder-props.d.ts +3 -0
- package/lib/node/blocks/button/button.svelte +27 -40
- package/lib/node/blocks/button/button.svelte.d.ts +3 -2
- package/lib/node/blocks/button/button.types.d.ts +2 -1
- package/lib/node/blocks/columns/columns.svelte +25 -10
- package/lib/node/blocks/columns/columns.svelte.d.ts +1 -0
- package/lib/node/blocks/columns/columns.types.d.ts +3 -3
- package/lib/node/blocks/symbol/symbol.svelte +4 -1
- package/lib/node/blocks/symbol/symbol.svelte.d.ts +1 -0
- package/lib/node/blocks/symbol/symbol.types.d.ts +2 -2
- package/lib/node/components/block/block.svelte +26 -2
- package/lib/node/components/block/components/block-wrapper.svelte.d.ts +1 -0
- package/lib/node/components/block/components/component-ref/component-ref.helpers.d.ts +2 -2
- package/lib/node/components/block/components/component-ref/component-ref.svelte +3 -1
- package/lib/node/components/block/components/component-ref/component-ref.svelte.d.ts +1 -0
- package/lib/node/components/block/components/repeated-block.svelte +2 -1
- package/lib/node/components/block/components/repeated-block.svelte.d.ts +4 -5
- package/lib/node/components/blocks/blocks.svelte +2 -0
- package/lib/node/components/blocks/blocks.svelte.d.ts +1 -0
- package/lib/node/components/blocks/blocks.types.d.ts +1 -0
- package/lib/node/components/content/components/styles.svelte +4 -0
- package/lib/node/components/content/content.svelte +3 -0
- package/lib/node/components/content/content.svelte.d.ts +1 -0
- package/lib/node/components/content-variants/content-variants.svelte +3 -0
- package/lib/node/components/content-variants/content-variants.svelte.d.ts +1 -0
- package/lib/node/components/content-variants/content-variants.types.d.ts +6 -2
- package/lib/node/constants/sdk-version.d.ts +1 -1
- package/lib/node/constants/sdk-version.js +1 -1
- package/lib/node/functions/get-block-properties.d.ts +1 -2
- package/lib/node/functions/get-block-properties.js +7 -22
- package/lib/node/functions/get-class-prop-name.d.ts +1 -0
- package/lib/node/functions/get-class-prop-name.js +14 -0
- package/lib/node/functions/get-style.d.ts +12 -0
- package/lib/node/functions/get-style.js +28 -0
- package/lib/node/functions/transform-block-properties.d.ts +2 -2
- package/lib/node/functions/transform-style-property.d.ts +7 -0
- package/lib/node/functions/transform-style-property.js +3 -0
- package/lib/node/helpers/omit.d.ts +1 -0
- package/lib/node/helpers/omit.js +7 -0
- package/lib/node/types/builder-block.d.ts +1 -0
- package/lib/node/types/builder-props.d.ts +3 -0
- package/package.json +1 -1
- package/src/blocks/button/button.svelte +27 -39
- package/src/blocks/button/button.types.ts +2 -1
- package/src/blocks/columns/columns.svelte +26 -10
- package/src/blocks/columns/columns.types.ts +3 -3
- package/src/blocks/symbol/symbol.svelte +5 -1
- package/src/blocks/symbol/symbol.types.ts +2 -2
- package/src/components/block/block.svelte +28 -2
- package/src/components/block/components/block-wrapper.svelte +1 -0
- package/src/components/block/components/component-ref/component-ref.helpers.ts +1 -0
- package/src/components/block/components/component-ref/component-ref.svelte +3 -1
- package/src/components/block/components/repeated-block.svelte +5 -9
- package/src/components/blocks/blocks.svelte +2 -0
- package/src/components/blocks/blocks.types.ts +1 -0
- package/src/components/content/components/styles.svelte +4 -0
- package/src/components/content/content.svelte +3 -0
- package/src/components/content-variants/content-variants.svelte +3 -0
- package/src/components/content-variants/content-variants.types.ts +6 -2
- package/src/constants/sdk-version.ts +1 -1
- package/src/functions/get-block-properties.ts +7 -22
- package/src/functions/get-class-prop-name.ts +14 -0
- package/src/functions/get-style.ts +37 -0
- package/src/functions/transform-block-properties.ts +2 -2
- package/src/functions/transform-style-property.ts +11 -0
- package/src/helpers/omit.ts +7 -0
- package/src/types/builder-block.ts +1 -0
- package/src/types/builder-props.ts +3 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
block: BuilderBlock;
|
|
4
4
|
context: Writable<BuilderContextInterface>;
|
|
5
5
|
registeredComponents: RegisteredComponents;
|
|
6
|
+
linkComponent: any;
|
|
6
7
|
};
|
|
7
8
|
</script>
|
|
8
9
|
|
|
@@ -15,8 +16,8 @@
|
|
|
15
16
|
} from "../../context/types.js";
|
|
16
17
|
import { extractTextStyles } from "../../functions/extract-text-styles.js";
|
|
17
18
|
import { getBlockComponentOptions } from "../../functions/get-block-component-options.js";
|
|
18
|
-
import { getBlockProperties } from "../../functions/get-block-properties.js";
|
|
19
19
|
import { getProcessedBlock } from "../../functions/get-processed-block.js";
|
|
20
|
+
import { getStyle } from "../../functions/get-style.js";
|
|
20
21
|
import type { BuilderBlock } from "../../types/builder-block.js";
|
|
21
22
|
import { getComponent, getRepeatItemData } from "./block.helpers.js";
|
|
22
23
|
import BlockStyles from "./components/block-styles.svelte";
|
|
@@ -29,6 +30,7 @@
|
|
|
29
30
|
export let block: BlockProps["block"];
|
|
30
31
|
export let context: BlockProps["context"];
|
|
31
32
|
export let registeredComponents: BlockProps["registeredComponents"];
|
|
33
|
+
export let linkComponent: BlockProps["linkComponent"];
|
|
32
34
|
|
|
33
35
|
$: blockComponent = () => {
|
|
34
36
|
return getComponent({
|
|
@@ -56,6 +58,13 @@
|
|
|
56
58
|
});
|
|
57
59
|
};
|
|
58
60
|
$: Tag = () => {
|
|
61
|
+
const shouldUseLink =
|
|
62
|
+
block.tagName === "a" ||
|
|
63
|
+
processedBlock().properties?.href ||
|
|
64
|
+
processedBlock().href;
|
|
65
|
+
if (shouldUseLink) {
|
|
66
|
+
return linkComponent || "a";
|
|
67
|
+
}
|
|
59
68
|
return block.tagName || "div";
|
|
60
69
|
};
|
|
61
70
|
$: canShowBlock = () => {
|
|
@@ -89,6 +98,13 @@
|
|
|
89
98
|
componentOptions: {
|
|
90
99
|
...getBlockComponentOptions(processedBlock()),
|
|
91
100
|
builderContext: context,
|
|
101
|
+
...(blockComponent?.()?.name === "Core:Button" ||
|
|
102
|
+
blockComponent?.()?.name === "Symbol" ||
|
|
103
|
+
blockComponent?.()?.name === "Columns"
|
|
104
|
+
? {
|
|
105
|
+
builderLinkComponent: linkComponent,
|
|
106
|
+
}
|
|
107
|
+
: {}),
|
|
92
108
|
...(blockComponent?.()?.name === "Symbol" ||
|
|
93
109
|
blockComponent?.()?.name === "Columns"
|
|
94
110
|
? {
|
|
@@ -97,6 +113,7 @@
|
|
|
97
113
|
: {}),
|
|
98
114
|
},
|
|
99
115
|
context: childrenContext,
|
|
116
|
+
linkComponent: linkComponent,
|
|
100
117
|
registeredComponents: registeredComponents,
|
|
101
118
|
builderBlock: processedBlock(),
|
|
102
119
|
includeBlockProps: blockComponent?.()?.noWrap === true,
|
|
@@ -112,13 +129,19 @@
|
|
|
112
129
|
|
|
113
130
|
{#if !blockComponent?.()?.noWrap}
|
|
114
131
|
{#if !repeatItem()}
|
|
115
|
-
<BlockWrapper
|
|
132
|
+
<BlockWrapper
|
|
133
|
+
Wrapper={Tag()}
|
|
134
|
+
block={processedBlock()}
|
|
135
|
+
{context}
|
|
136
|
+
{linkComponent}
|
|
137
|
+
>
|
|
116
138
|
<ComponentRef
|
|
117
139
|
componentRef={componentRefProps().componentRef}
|
|
118
140
|
componentOptions={componentRefProps().componentOptions}
|
|
119
141
|
blockChildren={componentRefProps().blockChildren}
|
|
120
142
|
context={componentRefProps().context}
|
|
121
143
|
registeredComponents={componentRefProps().registeredComponents}
|
|
144
|
+
linkComponent={componentRefProps().linkComponent}
|
|
122
145
|
builderBlock={componentRefProps().builderBlock}
|
|
123
146
|
includeBlockProps={componentRefProps().includeBlockProps}
|
|
124
147
|
isInteractive={componentRefProps().isInteractive}
|
|
@@ -129,6 +152,7 @@
|
|
|
129
152
|
block={child}
|
|
130
153
|
context={childrenContext}
|
|
131
154
|
{registeredComponents}
|
|
155
|
+
{linkComponent}
|
|
132
156
|
/>
|
|
133
157
|
{/each}
|
|
134
158
|
</BlockWrapper>
|
|
@@ -138,6 +162,7 @@
|
|
|
138
162
|
repeatContext={data.context}
|
|
139
163
|
block={data.block}
|
|
140
164
|
{registeredComponents}
|
|
165
|
+
{linkComponent}
|
|
141
166
|
/>
|
|
142
167
|
{/each}
|
|
143
168
|
{/if}
|
|
@@ -148,6 +173,7 @@
|
|
|
148
173
|
blockChildren={componentRefProps().blockChildren}
|
|
149
174
|
context={componentRefProps().context}
|
|
150
175
|
registeredComponents={componentRefProps().registeredComponents}
|
|
176
|
+
linkComponent={componentRefProps().linkComponent}
|
|
151
177
|
builderBlock={componentRefProps().builderBlock}
|
|
152
178
|
includeBlockProps={componentRefProps().includeBlockProps}
|
|
153
179
|
isInteractive={componentRefProps().isInteractive}
|
|
@@ -16,6 +16,7 @@ export interface ComponentProps {
|
|
|
16
16
|
blockChildren: BuilderBlock[];
|
|
17
17
|
context: Writable<BuilderContextInterface>;
|
|
18
18
|
registeredComponents: RegisteredComponents;
|
|
19
|
+
linkComponent: any;
|
|
19
20
|
builderBlock: BuilderBlock;
|
|
20
21
|
includeBlockProps: boolean;
|
|
21
22
|
isInteractive: boolean | undefined;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
export let componentOptions: ComponentProps["componentOptions"];
|
|
11
11
|
export let builderBlock: ComponentProps["builderBlock"];
|
|
12
12
|
export let context: ComponentProps["context"];
|
|
13
|
+
export let linkComponent: ComponentProps["linkComponent"];
|
|
13
14
|
export let includeBlockProps: ComponentProps["includeBlockProps"];
|
|
14
15
|
export let blockChildren: ComponentProps["blockChildren"];
|
|
15
16
|
export let registeredComponents: ComponentProps["registeredComponents"];
|
|
@@ -25,13 +26,14 @@
|
|
|
25
26
|
builderBlock: builderBlock,
|
|
26
27
|
context: context,
|
|
27
28
|
componentRef: componentRef,
|
|
29
|
+
linkComponent: linkComponent,
|
|
28
30
|
includeBlockProps: includeBlockProps,
|
|
29
31
|
isInteractive: isInteractive,
|
|
30
32
|
contextValue: $context,
|
|
31
33
|
})}
|
|
32
34
|
>
|
|
33
35
|
{#each blockChildren as child (child.id)}
|
|
34
|
-
<Block block={child} {context} {registeredComponents} />
|
|
36
|
+
<Block block={child} {context} {registeredComponents} {linkComponent} />
|
|
35
37
|
{/each}
|
|
36
38
|
</svelte:component>
|
|
37
39
|
{/if}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<script context="module" lang="ts">
|
|
2
|
-
type Props = {
|
|
3
|
-
block: BuilderBlock;
|
|
2
|
+
type Props = Omit<BlockProps, "context"> & {
|
|
4
3
|
repeatContext: BuilderContextInterface;
|
|
5
|
-
registeredComponents: RegisteredComponents;
|
|
6
4
|
};
|
|
7
5
|
</script>
|
|
8
6
|
|
|
@@ -11,20 +9,18 @@
|
|
|
11
9
|
import { writable } from "svelte/store";
|
|
12
10
|
|
|
13
11
|
import BuilderContext from "../../../context/builder.context.js";
|
|
14
|
-
import type {
|
|
15
|
-
|
|
16
|
-
RegisteredComponents,
|
|
17
|
-
} from "../../../context/types.js";
|
|
18
|
-
import type { BuilderBlock } from "../../../types/builder-block.js";
|
|
12
|
+
import type { BuilderContextInterface } from "../../../context/types.js";
|
|
13
|
+
import type { BlockProps } from "../block.svelte";
|
|
19
14
|
import Block from "../block.svelte";
|
|
20
15
|
|
|
21
16
|
export let repeatContext: Props["repeatContext"];
|
|
22
17
|
export let block: Props["block"];
|
|
23
18
|
export let registeredComponents: Props["registeredComponents"];
|
|
19
|
+
export let linkComponent: Props["linkComponent"];
|
|
24
20
|
|
|
25
21
|
let store = writable(repeatContext);
|
|
26
22
|
|
|
27
23
|
setContext(BuilderContext.key, store);
|
|
28
24
|
</script>
|
|
29
25
|
|
|
30
|
-
<Block {block} context={store} {registeredComponents} />
|
|
26
|
+
<Block {block} context={store} {registeredComponents} {linkComponent} />
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
export let path: BlocksProps["path"];
|
|
13
13
|
export let styleProp: BlocksProps["styleProp"];
|
|
14
14
|
export let context: BlocksProps["context"] = undefined;
|
|
15
|
+
export let linkComponent: BlocksProps["linkComponent"] = undefined;
|
|
15
16
|
export let registeredComponents: BlocksProps["registeredComponents"] =
|
|
16
17
|
undefined;
|
|
17
18
|
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
{#each blocks as block (block.id)}
|
|
32
33
|
<Block
|
|
33
34
|
{block}
|
|
35
|
+
{linkComponent}
|
|
34
36
|
context={context || builderContext}
|
|
35
37
|
registeredComponents={registeredComponents ||
|
|
36
38
|
componentsContext.registeredComponents}
|
|
@@ -4,4 +4,5 @@ import type { BlocksWrapperProps } from './blocks-wrapper.svelte';
|
|
|
4
4
|
export type BlocksProps = Partial<Omit<BlocksWrapperProps, 'BlocksWrapper' | 'BlocksWrapperProps'>> & {
|
|
5
5
|
context?: Writable<BuilderContextInterface>;
|
|
6
6
|
registeredComponents?: RegisteredComponents;
|
|
7
|
+
linkComponent?: any;
|
|
7
8
|
}
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
export let contentWrapper: ContentProps["contentWrapper"] = undefined;
|
|
46
46
|
export let contentWrapperProps: ContentProps["contentWrapperProps"] =
|
|
47
47
|
undefined;
|
|
48
|
+
export let linkComponent: ContentProps["linkComponent"] = undefined;
|
|
48
49
|
export let trustedHosts: ContentProps["trustedHosts"] = undefined;
|
|
49
50
|
export let isSsrAbTest: ContentProps["isSsrAbTest"];
|
|
50
51
|
|
|
@@ -132,6 +133,7 @@
|
|
|
132
133
|
{builderContextSignal}
|
|
133
134
|
{contentWrapper}
|
|
134
135
|
{contentWrapperProps}
|
|
136
|
+
{linkComponent}
|
|
135
137
|
{trustedHosts}
|
|
136
138
|
{...{}}
|
|
137
139
|
>
|
|
@@ -150,5 +152,6 @@
|
|
|
150
152
|
blocks={$builderContextSignal.content?.data?.blocks}
|
|
151
153
|
context={builderContextSignal}
|
|
152
154
|
{registeredComponents}
|
|
155
|
+
{linkComponent}
|
|
153
156
|
/>
|
|
154
157
|
</EnableEditor>
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
export let apiVersion: VariantsProviderProps["apiVersion"] = undefined;
|
|
36
36
|
export let customComponents: VariantsProviderProps["customComponents"] =
|
|
37
37
|
undefined;
|
|
38
|
+
export let linkComponent: VariantsProviderProps["linkComponent"] = undefined;
|
|
38
39
|
export let locale: VariantsProviderProps["locale"] = undefined;
|
|
39
40
|
export let includeRefs: VariantsProviderProps["includeRefs"] = undefined;
|
|
40
41
|
export let enrich: VariantsProviderProps["enrich"] = undefined;
|
|
@@ -108,6 +109,7 @@
|
|
|
108
109
|
{apiKey}
|
|
109
110
|
{apiVersion}
|
|
110
111
|
{customComponents}
|
|
112
|
+
{linkComponent}
|
|
111
113
|
{canTrack}
|
|
112
114
|
{locale}
|
|
113
115
|
{includeRefs}
|
|
@@ -132,6 +134,7 @@
|
|
|
132
134
|
{apiKey}
|
|
133
135
|
{apiVersion}
|
|
134
136
|
{customComponents}
|
|
137
|
+
{linkComponent}
|
|
135
138
|
{canTrack}
|
|
136
139
|
{locale}
|
|
137
140
|
{includeRefs}
|
|
@@ -35,6 +35,10 @@ export interface ContentVariantsPrps {
|
|
|
35
35
|
* An array of custom components to register (optional).
|
|
36
36
|
*/
|
|
37
37
|
customComponents?: RegisteredComponent[];
|
|
38
|
+
/**
|
|
39
|
+
* The component to use for rendering links. Defaults to anchor element `<a>`.
|
|
40
|
+
*/
|
|
41
|
+
linkComponent?: any;
|
|
38
42
|
|
|
39
43
|
/**
|
|
40
44
|
* A boolean to enable or disable tracking (optional). Defaults to `true`.
|
|
@@ -57,7 +61,7 @@ export interface ContentVariantsPrps {
|
|
|
57
61
|
enrich?: boolean;
|
|
58
62
|
|
|
59
63
|
/**
|
|
60
|
-
* The element that wraps your content. Defaults to
|
|
64
|
+
* The element that wraps your content. Defaults to `<div>` ('ScrollView' in React Native).
|
|
61
65
|
*/
|
|
62
66
|
contentWrapper?: any;
|
|
63
67
|
|
|
@@ -67,7 +71,7 @@ export interface ContentVariantsPrps {
|
|
|
67
71
|
contentWrapperProps?: any;
|
|
68
72
|
|
|
69
73
|
/**
|
|
70
|
-
* The element that wraps your blocks. Defaults to
|
|
74
|
+
* The element that wraps your blocks. Defaults to `<div>` ('ScrollView' in React Native).
|
|
71
75
|
*/
|
|
72
76
|
blocksWrapper?: any;
|
|
73
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "0.12.
|
|
1
|
+
export const SDK_VERSION = "0.12.4"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TARGET } from '../constants/target.js';
|
|
2
1
|
import type { BuilderContextInterface } from '../context/types.js';
|
|
3
|
-
import { convertStyleMapToCSSArray } from '../helpers/css.js';
|
|
4
2
|
import type { BuilderBlock } from '../types/builder-block.js';
|
|
3
|
+
import { getClassPropName } from './get-class-prop-name.js';
|
|
4
|
+
import { getStyle } from './get-style.js';
|
|
5
5
|
import { transformBlockProperties } from './transform-block-properties.js';
|
|
6
6
|
const extractRelevantRootBlockProperties = (block: BuilderBlock) => {
|
|
7
7
|
// currently we are only spreading the `href` property
|
|
@@ -48,30 +48,15 @@ export function getBlockProperties({
|
|
|
48
48
|
...extractRelevantRootBlockProperties(block),
|
|
49
49
|
...block.properties,
|
|
50
50
|
'builder-id': block.id,
|
|
51
|
-
style:
|
|
52
|
-
|
|
51
|
+
style: getStyle({
|
|
52
|
+
block,
|
|
53
|
+
context
|
|
54
|
+
}),
|
|
55
|
+
[getClassPropName()]: [block.id, 'builder-block', block.class, block.properties?.class].filter(Boolean).join(' ')
|
|
53
56
|
};
|
|
54
57
|
return transformBlockProperties({
|
|
55
58
|
properties,
|
|
56
59
|
context,
|
|
57
60
|
block
|
|
58
61
|
});
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Svelte does not support style attribute as an object so we need to flatten it.
|
|
62
|
-
*
|
|
63
|
-
* Additionally, Svelte, Vue and other frameworks use kebab-case styles, so we need to convert them.
|
|
64
|
-
*/
|
|
65
|
-
function getStyleAttribute(style: Partial<CSSStyleDeclaration>): string | Partial<CSSStyleDeclaration> {
|
|
66
|
-
switch (TARGET) {
|
|
67
|
-
case 'svelte':
|
|
68
|
-
case 'vue':
|
|
69
|
-
case 'solid':
|
|
70
|
-
return convertStyleMapToCSSArray(style).join(' ');
|
|
71
|
-
case 'qwik':
|
|
72
|
-
case 'reactNative':
|
|
73
|
-
case 'react':
|
|
74
|
-
case 'rsc':
|
|
75
|
-
return style;
|
|
76
|
-
}
|
|
77
62
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TARGET } from '../constants/target.js';
|
|
2
|
+
export const getClassPropName = () => {
|
|
3
|
+
switch (TARGET) {
|
|
4
|
+
case 'react':
|
|
5
|
+
case 'reactNative':
|
|
6
|
+
case 'rsc':
|
|
7
|
+
return 'className';
|
|
8
|
+
case 'svelte':
|
|
9
|
+
case 'vue':
|
|
10
|
+
case 'solid':
|
|
11
|
+
case 'qwik':
|
|
12
|
+
return 'class';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { TARGET } from '../constants/target.js';
|
|
2
|
+
import type { BuilderContextInterface } from '../context/types.js';
|
|
3
|
+
import { convertStyleMapToCSSArray } from '../helpers/css.js';
|
|
4
|
+
import type { BuilderBlock } from '../types/builder-block.js';
|
|
5
|
+
import { transformStyleProperty } from './transform-style-property.js';
|
|
6
|
+
export const getStyle = ({
|
|
7
|
+
block,
|
|
8
|
+
context
|
|
9
|
+
}: {
|
|
10
|
+
block: BuilderBlock;
|
|
11
|
+
context: BuilderContextInterface;
|
|
12
|
+
}) => {
|
|
13
|
+
return mapStyleObjToStrIfNeeded(transformStyleProperty({
|
|
14
|
+
style: block.style || {},
|
|
15
|
+
context,
|
|
16
|
+
block
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Svelte does not support style attribute as an object so we need to flatten it.
|
|
22
|
+
*
|
|
23
|
+
* Additionally, Svelte, Vue and other frameworks use kebab-case styles, so we need to convert them.
|
|
24
|
+
*/
|
|
25
|
+
export function mapStyleObjToStrIfNeeded(style: Partial<CSSStyleDeclaration>): string | Partial<CSSStyleDeclaration> {
|
|
26
|
+
switch (TARGET) {
|
|
27
|
+
case 'svelte':
|
|
28
|
+
case 'vue':
|
|
29
|
+
case 'solid':
|
|
30
|
+
return convertStyleMapToCSSArray(style).join(' ');
|
|
31
|
+
case 'qwik':
|
|
32
|
+
case 'reactNative':
|
|
33
|
+
case 'react':
|
|
34
|
+
case 'rsc':
|
|
35
|
+
return style;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BuilderContextInterface } from '../context/types';
|
|
2
|
-
import type { BuilderBlock } from '../types/builder-block';
|
|
1
|
+
import type { BuilderContextInterface } from '../context/types.js';
|
|
2
|
+
import type { BuilderBlock } from '../types/builder-block.js';
|
|
3
3
|
export function transformBlockProperties<T>({
|
|
4
4
|
properties
|
|
5
5
|
}: {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BuilderContextInterface } from '../context/types.js';
|
|
2
|
+
import type { BuilderBlock } from '../types/builder-block.js';
|
|
3
|
+
export function transformStyleProperty({
|
|
4
|
+
style
|
|
5
|
+
}: {
|
|
6
|
+
style: Partial<CSSStyleDeclaration>;
|
|
7
|
+
context: BuilderContextInterface;
|
|
8
|
+
block: BuilderBlock;
|
|
9
|
+
}) {
|
|
10
|
+
return style;
|
|
11
|
+
}
|