@builder.io/sdk-svelte 1.0.22 → 1.0.24
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/README.md +2 -2
- package/lib/browser/blocks/button/button.svelte +16 -15
- package/lib/browser/blocks/columns/columns.svelte +32 -24
- package/lib/browser/blocks/columns/columns.svelte.d.ts +1 -1
- package/lib/browser/blocks/columns/columns.types.d.ts +1 -1
- package/lib/browser/blocks/columns/helpers.d.ts +1 -0
- package/lib/browser/blocks/columns/helpers.js +3 -0
- package/lib/browser/blocks/image/image.svelte +1 -1
- package/lib/browser/blocks/symbol/symbol.helpers.js +1 -1
- package/lib/browser/blocks/symbol/symbol.svelte +9 -2
- package/lib/browser/blocks/tabs/component-info.d.ts +2 -0
- package/lib/browser/blocks/tabs/component-info.js +138 -0
- package/lib/browser/blocks/tabs/index.d.ts +1 -0
- package/lib/browser/blocks/tabs/index.js +1 -0
- package/lib/browser/blocks/tabs/tabs.svelte +76 -0
- package/lib/browser/blocks/tabs/tabs.svelte.d.ts +25 -0
- package/lib/browser/blocks/tabs/tabs.types.d.ts +13 -0
- package/lib/browser/blocks/tabs/tabs.types.js +1 -0
- package/lib/browser/blocks/text/text.types.d.ts +2 -1
- package/lib/browser/components/block/block.helpers.d.ts +2 -0
- package/lib/browser/components/block/block.helpers.js +6 -0
- package/lib/browser/components/block/block.svelte +4 -8
- package/lib/browser/components/block/components/interactive-element.svelte +20 -19
- package/lib/browser/components/content/components/enable-editor.svelte +13 -8
- package/lib/browser/components/content/components/enable-editor.svelte.d.ts +1 -1
- package/lib/browser/components/content/components/styles.helpers.d.ts +1 -0
- package/lib/browser/components/content/components/styles.helpers.js +3 -0
- package/lib/browser/components/content/content.svelte +1 -0
- package/lib/browser/components/dynamic-div.svelte +5 -0
- package/lib/browser/constants/builder-registered-components.js +7 -1
- package/lib/browser/constants/sdk-version.d.ts +1 -1
- package/lib/browser/constants/sdk-version.js +1 -1
- package/lib/browser/functions/evaluate/evaluate.js +0 -1
- package/lib/browser/functions/get-class-prop-name.js +1 -0
- package/lib/browser/functions/get-style.js +1 -0
- package/lib/browser/types/targets.d.ts +1 -1
- package/lib/edge/blocks/button/button.svelte +16 -15
- package/lib/edge/blocks/columns/columns.svelte +32 -24
- package/lib/edge/blocks/columns/columns.svelte.d.ts +1 -1
- package/lib/edge/blocks/columns/columns.types.d.ts +1 -1
- package/lib/edge/blocks/columns/helpers.d.ts +1 -0
- package/lib/edge/blocks/columns/helpers.js +3 -0
- package/lib/edge/blocks/image/image.svelte +1 -1
- package/lib/edge/blocks/symbol/symbol.helpers.js +1 -1
- package/lib/edge/blocks/symbol/symbol.svelte +9 -2
- package/lib/edge/blocks/tabs/component-info.d.ts +2 -0
- package/lib/edge/blocks/tabs/component-info.js +138 -0
- package/lib/edge/blocks/tabs/index.d.ts +1 -0
- package/lib/edge/blocks/tabs/index.js +1 -0
- package/lib/edge/blocks/tabs/tabs.svelte +76 -0
- package/lib/edge/blocks/tabs/tabs.svelte.d.ts +25 -0
- package/lib/edge/blocks/tabs/tabs.types.d.ts +13 -0
- package/lib/edge/blocks/tabs/tabs.types.js +1 -0
- package/lib/edge/blocks/text/text.types.d.ts +2 -1
- package/lib/edge/components/block/block.helpers.d.ts +2 -0
- package/lib/edge/components/block/block.helpers.js +6 -0
- package/lib/edge/components/block/block.svelte +4 -8
- package/lib/edge/components/block/components/interactive-element.svelte +20 -19
- package/lib/edge/components/content/components/enable-editor.svelte +13 -8
- package/lib/edge/components/content/components/enable-editor.svelte.d.ts +1 -1
- package/lib/edge/components/content/components/styles.helpers.d.ts +1 -0
- package/lib/edge/components/content/components/styles.helpers.js +3 -0
- package/lib/edge/components/content/content.svelte +1 -0
- package/lib/edge/components/dynamic-div.svelte +5 -0
- package/lib/edge/constants/builder-registered-components.js +7 -1
- package/lib/edge/constants/sdk-version.d.ts +1 -1
- package/lib/edge/constants/sdk-version.js +1 -1
- package/lib/edge/functions/evaluate/evaluate.js +0 -1
- package/lib/edge/functions/get-class-prop-name.js +1 -0
- package/lib/edge/functions/get-style.js +1 -0
- package/lib/edge/types/targets.d.ts +1 -1
- package/lib/node/blocks/button/button.svelte +16 -15
- package/lib/node/blocks/columns/columns.svelte +32 -24
- package/lib/node/blocks/columns/columns.svelte.d.ts +1 -1
- package/lib/node/blocks/columns/columns.types.d.ts +1 -1
- package/lib/node/blocks/columns/helpers.d.ts +1 -0
- package/lib/node/blocks/columns/helpers.js +3 -0
- package/lib/node/blocks/image/image.svelte +1 -1
- package/lib/node/blocks/symbol/symbol.helpers.js +1 -1
- package/lib/node/blocks/symbol/symbol.svelte +9 -2
- package/lib/node/blocks/tabs/component-info.d.ts +2 -0
- package/lib/node/blocks/tabs/component-info.js +138 -0
- package/lib/node/blocks/tabs/index.d.ts +1 -0
- package/lib/node/blocks/tabs/index.js +1 -0
- package/lib/node/blocks/tabs/tabs.svelte +76 -0
- package/lib/node/blocks/tabs/tabs.svelte.d.ts +25 -0
- package/lib/node/blocks/tabs/tabs.types.d.ts +13 -0
- package/lib/node/blocks/tabs/tabs.types.js +1 -0
- package/lib/node/blocks/text/text.types.d.ts +2 -1
- package/lib/node/components/block/block.helpers.d.ts +2 -0
- package/lib/node/components/block/block.helpers.js +6 -0
- package/lib/node/components/block/block.svelte +4 -8
- package/lib/node/components/block/components/interactive-element.svelte +20 -19
- package/lib/node/components/content/components/enable-editor.svelte +13 -8
- package/lib/node/components/content/components/enable-editor.svelte.d.ts +1 -1
- package/lib/node/components/content/components/styles.helpers.d.ts +1 -0
- package/lib/node/components/content/components/styles.helpers.js +3 -0
- package/lib/node/components/content/content.svelte +1 -0
- package/lib/node/components/dynamic-div.svelte +5 -0
- package/lib/node/constants/builder-registered-components.js +7 -1
- package/lib/node/constants/sdk-version.d.ts +1 -1
- package/lib/node/constants/sdk-version.js +1 -1
- package/lib/node/functions/evaluate/evaluate.js +0 -1
- package/lib/node/functions/get-class-prop-name.js +1 -0
- package/lib/node/functions/get-style.js +1 -0
- package/lib/node/types/targets.d.ts +1 -1
- package/package.json +1 -1
- package/src/blocks/button/button.svelte +19 -15
- package/src/blocks/columns/columns.svelte +34 -26
- package/src/blocks/columns/columns.types.ts +1 -1
- package/src/blocks/columns/helpers.ts +3 -0
- package/src/blocks/image/image.svelte +1 -1
- package/src/blocks/symbol/symbol.helpers.ts +1 -1
- package/src/blocks/symbol/symbol.svelte +9 -2
- package/src/blocks/tabs/component-info.ts +139 -0
- package/src/blocks/tabs/index.ts +1 -0
- package/src/blocks/tabs/tabs.svelte +83 -0
- package/src/blocks/tabs/tabs.types.ts +13 -0
- package/src/blocks/text/text.types.ts +2 -1
- package/src/components/block/block.helpers.ts +6 -0
- package/src/components/block/block.svelte +5 -7
- package/src/components/block/components/interactive-element.svelte +21 -19
- package/src/components/content/components/enable-editor.svelte +13 -8
- package/src/components/content/components/styles.helpers.ts +3 -0
- package/src/components/content/content.svelte +1 -0
- package/src/components/dynamic-div.svelte +19 -0
- package/src/constants/builder-registered-components.ts +7 -1
- package/src/constants/sdk-version.ts +1 -1
- package/src/functions/evaluate/evaluate.ts +0 -1
- package/src/functions/get-class-prop-name.ts +1 -0
- package/src/functions/get-style.ts +1 -0
- package/src/types/targets.ts +1 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { ComponentInfo } from '../../types/components';
|
|
2
|
+
const defaultTab = {
|
|
3
|
+
'@type': '@builder.io/sdk:Element',
|
|
4
|
+
responsiveStyles: {
|
|
5
|
+
large: {
|
|
6
|
+
paddingLeft: '20px',
|
|
7
|
+
paddingRight: '20px',
|
|
8
|
+
paddingTop: '10px',
|
|
9
|
+
paddingBottom: '10px',
|
|
10
|
+
minWidth: '100px',
|
|
11
|
+
textAlign: 'center',
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'column',
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
userSelect: 'none'
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
component: {
|
|
19
|
+
name: 'Text',
|
|
20
|
+
options: {
|
|
21
|
+
text: 'New tab'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const defaultElement = {
|
|
26
|
+
'@type': '@builder.io/sdk:Element',
|
|
27
|
+
responsiveStyles: {
|
|
28
|
+
large: {
|
|
29
|
+
height: '200px',
|
|
30
|
+
display: 'flex',
|
|
31
|
+
marginTop: '20px',
|
|
32
|
+
flexDirection: 'column'
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
component: {
|
|
36
|
+
name: 'Text',
|
|
37
|
+
options: {
|
|
38
|
+
text: 'New tab content '
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const componentInfo: ComponentInfo = {
|
|
43
|
+
name: 'Builder: Tabs',
|
|
44
|
+
inputs: [{
|
|
45
|
+
name: 'tabs',
|
|
46
|
+
type: 'list',
|
|
47
|
+
broadcast: true,
|
|
48
|
+
subFields: [{
|
|
49
|
+
name: 'label',
|
|
50
|
+
type: 'uiBlocks',
|
|
51
|
+
hideFromUI: true,
|
|
52
|
+
defaultValue: [defaultTab]
|
|
53
|
+
}, {
|
|
54
|
+
name: 'content',
|
|
55
|
+
type: 'uiBlocks',
|
|
56
|
+
hideFromUI: true,
|
|
57
|
+
defaultValue: [defaultElement]
|
|
58
|
+
}],
|
|
59
|
+
defaultValue: [{
|
|
60
|
+
label: [{
|
|
61
|
+
...defaultTab,
|
|
62
|
+
component: {
|
|
63
|
+
name: 'Text',
|
|
64
|
+
options: {
|
|
65
|
+
text: 'Tab 1'
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}],
|
|
69
|
+
content: [{
|
|
70
|
+
...defaultElement,
|
|
71
|
+
component: {
|
|
72
|
+
name: 'Text',
|
|
73
|
+
options: {
|
|
74
|
+
text: 'Tab 1 content'
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
78
|
+
}, {
|
|
79
|
+
label: [{
|
|
80
|
+
...defaultTab,
|
|
81
|
+
component: {
|
|
82
|
+
name: 'Text',
|
|
83
|
+
options: {
|
|
84
|
+
text: 'Tab 2'
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}],
|
|
88
|
+
content: [{
|
|
89
|
+
...defaultElement,
|
|
90
|
+
component: {
|
|
91
|
+
name: 'Text',
|
|
92
|
+
options: {
|
|
93
|
+
text: 'Tab 2 content'
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}]
|
|
97
|
+
}]
|
|
98
|
+
}, {
|
|
99
|
+
name: 'activeTabStyle',
|
|
100
|
+
type: 'uiStyle',
|
|
101
|
+
helperText: 'CSS styles for the active tab',
|
|
102
|
+
defaultValue: {
|
|
103
|
+
backgroundColor: 'rgba(0, 0, 0, 0.1)'
|
|
104
|
+
}
|
|
105
|
+
}, {
|
|
106
|
+
name: 'defaultActiveTab',
|
|
107
|
+
type: 'number',
|
|
108
|
+
helperText: 'Default tab to open to. Set to "1" for the first tab, "2" for the second, or choose "0" for none',
|
|
109
|
+
defaultValue: 1,
|
|
110
|
+
advanced: true
|
|
111
|
+
}, {
|
|
112
|
+
name: 'collapsible',
|
|
113
|
+
type: 'boolean',
|
|
114
|
+
helperText: 'If on, clicking an open tab closes it so no tabs are active',
|
|
115
|
+
defaultValue: false,
|
|
116
|
+
advanced: true
|
|
117
|
+
}, {
|
|
118
|
+
name: 'tabHeaderLayout',
|
|
119
|
+
type: 'enum',
|
|
120
|
+
helperText: 'Change the layout of the tab headers (uses justify-content)',
|
|
121
|
+
defaultValue: 'flex-start',
|
|
122
|
+
enum: [{
|
|
123
|
+
label: 'Center',
|
|
124
|
+
value: 'center'
|
|
125
|
+
}, {
|
|
126
|
+
label: 'Space between',
|
|
127
|
+
value: 'space-between'
|
|
128
|
+
}, {
|
|
129
|
+
label: 'Space around',
|
|
130
|
+
value: 'space-around'
|
|
131
|
+
}, {
|
|
132
|
+
label: 'Left',
|
|
133
|
+
value: 'flex-start'
|
|
134
|
+
}, {
|
|
135
|
+
label: 'Right',
|
|
136
|
+
value: 'flex-end'
|
|
137
|
+
}]
|
|
138
|
+
}]
|
|
139
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './tabs.svelte'
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Blocks from "../../components/blocks/blocks.svelte";
|
|
3
|
+
import type { BuilderBlock } from "../../types/builder-block";
|
|
4
|
+
import type { TabsProps } from "./tabs.types";
|
|
5
|
+
|
|
6
|
+
export let defaultActiveTab: TabsProps["defaultActiveTab"] = undefined;
|
|
7
|
+
export let tabs: TabsProps["tabs"];
|
|
8
|
+
export let activeTabStyle: TabsProps["activeTabStyle"] = undefined;
|
|
9
|
+
export let tabHeaderLayout: TabsProps["tabHeaderLayout"] = undefined;
|
|
10
|
+
export let collapsible: TabsProps["collapsible"] = undefined;
|
|
11
|
+
export let builderBlock: TabsProps["builderBlock"];
|
|
12
|
+
export let builderContext: TabsProps["builderContext"];
|
|
13
|
+
export let builderComponents: TabsProps["builderComponents"];
|
|
14
|
+
export let builderLinkComponent: TabsProps["builderLinkComponent"] =
|
|
15
|
+
undefined;
|
|
16
|
+
function stringifyStyles(stylesObj) {
|
|
17
|
+
let styles = "";
|
|
18
|
+
for (let key in stylesObj) {
|
|
19
|
+
const dashedKey = key.replace(/[A-Z]/g, function (match) {
|
|
20
|
+
return "-" + match.toLowerCase();
|
|
21
|
+
});
|
|
22
|
+
styles += dashedKey + ":" + stylesObj[key] + ";";
|
|
23
|
+
}
|
|
24
|
+
return styles;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function activeTabContent(active: number) {
|
|
28
|
+
return tabs && tabs[active].content;
|
|
29
|
+
}
|
|
30
|
+
function getActiveTabStyle(index: number) {
|
|
31
|
+
return activeTab === index ? activeTabStyle : {};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
let activeTab = defaultActiveTab ? defaultActiveTab - 1 : 0;
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<div>
|
|
38
|
+
<div
|
|
39
|
+
style={stringifyStyles({
|
|
40
|
+
display: "flex",
|
|
41
|
+
flexDirection: "row",
|
|
42
|
+
justifyContent: tabHeaderLayout || "flex-start",
|
|
43
|
+
overflow: "auto",
|
|
44
|
+
})}
|
|
45
|
+
class="builder-tabs-wrap"
|
|
46
|
+
>
|
|
47
|
+
{#each tabs as tab, index (index)}
|
|
48
|
+
<span
|
|
49
|
+
style={stringifyStyles(getActiveTabStyle(index))}
|
|
50
|
+
class={`builder-tab-wrap ${
|
|
51
|
+
activeTab === index ? "builder-tab-active" : ""
|
|
52
|
+
}`}
|
|
53
|
+
on:click={(event) => {
|
|
54
|
+
if (index === activeTab && collapsible) {
|
|
55
|
+
activeTab = -1;
|
|
56
|
+
} else {
|
|
57
|
+
activeTab = index;
|
|
58
|
+
}
|
|
59
|
+
}}
|
|
60
|
+
><Blocks
|
|
61
|
+
parent={builderBlock.id}
|
|
62
|
+
path={`component.options.tabs.${index}.label`}
|
|
63
|
+
blocks={tab.label}
|
|
64
|
+
context={builderContext}
|
|
65
|
+
registeredComponents={builderComponents}
|
|
66
|
+
linkComponent={builderLinkComponent}
|
|
67
|
+
/></span
|
|
68
|
+
>
|
|
69
|
+
{/each}
|
|
70
|
+
</div>
|
|
71
|
+
{#if activeTabContent(activeTab)}
|
|
72
|
+
<div>
|
|
73
|
+
<Blocks
|
|
74
|
+
parent={builderBlock.id}
|
|
75
|
+
path={`component.options.tabs.${activeTab}.content`}
|
|
76
|
+
blocks={activeTabContent(activeTab)}
|
|
77
|
+
context={builderContext}
|
|
78
|
+
registeredComponents={builderComponents}
|
|
79
|
+
linkComponent={builderLinkComponent}
|
|
80
|
+
/>
|
|
81
|
+
</div>
|
|
82
|
+
{/if}
|
|
83
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BuilderBlock } from '../../types/builder-block';
|
|
2
|
+
import type { BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp } from '../../types/builder-props';
|
|
3
|
+
export interface TabsProps extends BuilderComponentsProp, BuilderLinkComponentProp, BuilderDataProps {
|
|
4
|
+
tabs: {
|
|
5
|
+
label: BuilderBlock[];
|
|
6
|
+
content: BuilderBlock[];
|
|
7
|
+
}[];
|
|
8
|
+
builderBlock: BuilderBlock;
|
|
9
|
+
defaultActiveTab?: number;
|
|
10
|
+
collapsible?: boolean;
|
|
11
|
+
tabHeaderLayout?: 'center' | 'flex-start' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
|
|
12
|
+
activeTabStyle?: any;
|
|
13
|
+
}
|
|
@@ -97,4 +97,10 @@ export const getInheritedStyles = ({
|
|
|
97
97
|
return {};
|
|
98
98
|
}
|
|
99
99
|
return extractTextStyles(style);
|
|
100
|
+
};
|
|
101
|
+
export const shouldPassLinkComponent = (blockName: string | undefined) => {
|
|
102
|
+
return blockName && ['Core:Button', 'Symbol', 'Columns', 'Form:Form', 'Builder: Tabs'].includes(blockName);
|
|
103
|
+
};
|
|
104
|
+
export const shouldPassRegisteredComponents = (blockName: string | undefined) => {
|
|
105
|
+
return blockName && ['Symbol', 'Columns', 'Form:Form', 'Builder: Tabs'].includes(blockName);
|
|
100
106
|
}
|
|
@@ -22,12 +22,15 @@
|
|
|
22
22
|
getComponent,
|
|
23
23
|
getInheritedStyles,
|
|
24
24
|
getRepeatItemData,
|
|
25
|
+
shouldPassLinkComponent,
|
|
26
|
+
shouldPassRegisteredComponents,
|
|
25
27
|
} from "./block.helpers";
|
|
26
28
|
import BlockStyles from "./components/block-styles.svelte";
|
|
27
29
|
import BlockWrapper from "./components/block-wrapper.svelte";
|
|
28
30
|
import type { ComponentProps } from "./components/component-ref/component-ref.helpers";
|
|
29
31
|
import ComponentRef from "./components/component-ref/component-ref.svelte";
|
|
30
32
|
import RepeatedBlock from "./components/repeated-block.svelte";
|
|
33
|
+
import DynamicDiv from "../dynamic-div.svelte";
|
|
31
34
|
import type { Writable } from "svelte/store";
|
|
32
35
|
|
|
33
36
|
export let block: BlockProps["block"];
|
|
@@ -101,17 +104,12 @@
|
|
|
101
104
|
componentOptions: {
|
|
102
105
|
...getBlockComponentOptions(processedBlock()),
|
|
103
106
|
builderContext: context,
|
|
104
|
-
...(blockComponent?.()?.name
|
|
105
|
-
blockComponent?.()?.name === "Symbol" ||
|
|
106
|
-
blockComponent?.()?.name === "Columns" ||
|
|
107
|
-
blockComponent?.()?.name === "Form:Form"
|
|
107
|
+
...(shouldPassLinkComponent(blockComponent?.()?.name)
|
|
108
108
|
? {
|
|
109
109
|
builderLinkComponent: linkComponent,
|
|
110
110
|
}
|
|
111
111
|
: {}),
|
|
112
|
-
...(blockComponent?.()?.name
|
|
113
|
-
blockComponent?.()?.name === "Columns" ||
|
|
114
|
-
blockComponent?.()?.name === "Form:Form"
|
|
112
|
+
...(shouldPassRegisteredComponents(blockComponent?.()?.name)
|
|
115
113
|
? {
|
|
116
114
|
builderComponents: registeredComponents,
|
|
117
115
|
}
|
|
@@ -17,29 +17,31 @@
|
|
|
17
17
|
import type { Dictionary } from "../../../types/typescript";
|
|
18
18
|
import type { Writable } from "svelte/store";
|
|
19
19
|
|
|
20
|
-
export let wrapperProps: InteractiveElementProps["wrapperProps"];
|
|
21
20
|
export let includeBlockProps: InteractiveElementProps["includeBlockProps"];
|
|
22
21
|
export let block: InteractiveElementProps["block"];
|
|
23
22
|
export let context: InteractiveElementProps["context"];
|
|
23
|
+
export let wrapperProps: InteractiveElementProps["wrapperProps"];
|
|
24
24
|
export let Wrapper: InteractiveElementProps["Wrapper"];
|
|
25
|
+
|
|
26
|
+
$: attributes = () => {
|
|
27
|
+
return includeBlockProps
|
|
28
|
+
? {
|
|
29
|
+
...getBlockProperties({
|
|
30
|
+
block: block,
|
|
31
|
+
context: $context,
|
|
32
|
+
}),
|
|
33
|
+
...getBlockActions({
|
|
34
|
+
block: block,
|
|
35
|
+
rootState: $context.rootState,
|
|
36
|
+
rootSetState: $context.rootSetState,
|
|
37
|
+
localState: $context.localState,
|
|
38
|
+
context: $context.context,
|
|
39
|
+
}),
|
|
40
|
+
}
|
|
41
|
+
: {};
|
|
42
|
+
};
|
|
25
43
|
</script>
|
|
26
44
|
|
|
27
|
-
<svelte:component
|
|
28
|
-
|
|
29
|
-
{...wrapperProps}
|
|
30
|
-
attributes={includeBlockProps
|
|
31
|
-
? {
|
|
32
|
-
...getBlockProperties({
|
|
33
|
-
block: block,
|
|
34
|
-
context: $context,
|
|
35
|
-
}),
|
|
36
|
-
...getBlockActions({
|
|
37
|
-
block: block,
|
|
38
|
-
rootState: $context.rootState,
|
|
39
|
-
rootSetState: $context.rootSetState,
|
|
40
|
-
localState: $context.localState,
|
|
41
|
-
context: $context.context,
|
|
42
|
-
}),
|
|
43
|
-
}
|
|
44
|
-
: {}}><slot /></svelte:component
|
|
45
|
+
<svelte:component this={Wrapper} {...wrapperProps} attributes={attributes()}
|
|
46
|
+
><slot /></svelte:component
|
|
45
47
|
>
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
BuilderComponentStateChange,
|
|
46
46
|
ContentProps,
|
|
47
47
|
} from "../content.types";
|
|
48
|
+
import { getWrapperClassName } from "./styles.helpers";
|
|
49
|
+
import DynamicDiv from "../../dynamic-div.svelte";
|
|
48
50
|
import type { Writable } from "svelte/store";
|
|
49
51
|
|
|
50
52
|
export let builderContextSignal: BuilderEditorProps["builderContextSignal"];
|
|
@@ -56,9 +58,9 @@
|
|
|
56
58
|
export let model: BuilderEditorProps["model"] = undefined;
|
|
57
59
|
export let content: BuilderEditorProps["content"] = undefined;
|
|
58
60
|
export let data: BuilderEditorProps["data"] = undefined;
|
|
61
|
+
export let showContent: BuilderEditorProps["showContent"];
|
|
59
62
|
export let contentWrapper: BuilderEditorProps["contentWrapper"] = undefined;
|
|
60
63
|
export let context: BuilderEditorProps["context"] = undefined;
|
|
61
|
-
export let showContent: BuilderEditorProps["showContent"];
|
|
62
64
|
export let contentWrapperProps: BuilderEditorProps["contentWrapperProps"] =
|
|
63
65
|
undefined;
|
|
64
66
|
|
|
@@ -276,6 +278,14 @@
|
|
|
276
278
|
});
|
|
277
279
|
}
|
|
278
280
|
}
|
|
281
|
+
$: showContentProps = () => {
|
|
282
|
+
return showContent
|
|
283
|
+
? {}
|
|
284
|
+
: {
|
|
285
|
+
hidden: true,
|
|
286
|
+
"aria-hidden": true,
|
|
287
|
+
};
|
|
288
|
+
};
|
|
279
289
|
|
|
280
290
|
let elementRef;
|
|
281
291
|
|
|
@@ -401,14 +411,9 @@
|
|
|
401
411
|
builder-content-id={$builderContextSignal.content?.id}
|
|
402
412
|
builder-model={model}
|
|
403
413
|
{...{}}
|
|
404
|
-
{...
|
|
405
|
-
? {}
|
|
406
|
-
: {
|
|
407
|
-
hidden: true,
|
|
408
|
-
"aria-hidden": true,
|
|
409
|
-
}}
|
|
414
|
+
{...showContentProps()}
|
|
410
415
|
{...contentWrapperProps}
|
|
411
|
-
class={
|
|
416
|
+
class={getWrapperClassName(content?.testVariationId || content?.id)}
|
|
412
417
|
on:initeditingbldr={(event) => {
|
|
413
418
|
elementRef_onIniteditingbldr(event);
|
|
414
419
|
}}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
} from "./content.helpers";
|
|
25
25
|
import type { ContentProps } from "./content.types";
|
|
26
26
|
import { wrapComponentRef } from "./wrap-component-ref";
|
|
27
|
+
import DynamicDiv from "../dynamic-div.svelte";
|
|
27
28
|
|
|
28
29
|
export let content: ContentProps["content"] = undefined;
|
|
29
30
|
export let customComponents: ContentProps["customComponents"] = undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script context="module" lang="ts">
|
|
2
|
+
export interface DynamicDivProps {
|
|
3
|
+
children?: any;
|
|
4
|
+
attributes: any;
|
|
5
|
+
actionAttributes: any;
|
|
6
|
+
BlockWrapperProps: any;
|
|
7
|
+
builderPath: any;
|
|
8
|
+
builderParentId: any;
|
|
9
|
+
BlocksWrapperProps: any;
|
|
10
|
+
contentWrapperProps: any;
|
|
11
|
+
builderModel: any;
|
|
12
|
+
ref: any;
|
|
13
|
+
}
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<script lang="ts">
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<div><slot /></div>
|
|
@@ -12,10 +12,13 @@ import { componentInfo as slotComponentInfo } from '../blocks/slot/component-inf
|
|
|
12
12
|
import { default as Slot } from '../blocks/slot/index';
|
|
13
13
|
import { componentInfo as symbolComponentInfo } from '../blocks/symbol/component-info';
|
|
14
14
|
import { default as Symbol } from '../blocks/symbol/index';
|
|
15
|
+
import { componentInfo as tabsComponentInfo } from '../blocks/tabs/component-info';
|
|
16
|
+
import { default as Tabs } from '../blocks/tabs/index';
|
|
15
17
|
import { componentInfo as textComponentInfo } from '../blocks/text/component-info';
|
|
16
18
|
import { default as Text } from '../blocks/text/index';
|
|
17
19
|
import type { RegisteredComponent } from '../context/types';
|
|
18
20
|
import { getExtraComponents } from './extra-components';
|
|
21
|
+
import { TARGET } from './target';
|
|
19
22
|
|
|
20
23
|
/**
|
|
21
24
|
* Returns a list of all registered components.
|
|
@@ -45,4 +48,7 @@ export const getDefaultRegisteredComponents: () => RegisteredComponent[] = () =>
|
|
|
45
48
|
}, {
|
|
46
49
|
component: Text,
|
|
47
50
|
...textComponentInfo
|
|
48
|
-
}, ...
|
|
51
|
+
}, ...(TARGET === 'rsc' ? [] : [{
|
|
52
|
+
component: Tabs,
|
|
53
|
+
...tabsComponentInfo
|
|
54
|
+
}]), ...getExtraComponents()]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "1.0.
|
|
1
|
+
export const SDK_VERSION = "1.0.24"
|
package/src/types/targets.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type Target = 'vue' | 'reactNative' | 'svelte' | 'qwik' | 'react' | 'solid' | 'rsc'
|
|
1
|
+
export type Target = 'vue' | 'reactNative' | 'svelte' | 'qwik' | 'react' | 'solid' | 'rsc' | 'angular'
|