@builder.io/sdk-svelte 1.0.23 → 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/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/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/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/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,25 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { TabsProps } from "./tabs.types";
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
defaultActiveTab?: TabsProps["defaultActiveTab"];
|
|
6
|
+
tabs: TabsProps["tabs"];
|
|
7
|
+
activeTabStyle?: TabsProps["activeTabStyle"];
|
|
8
|
+
tabHeaderLayout?: TabsProps["tabHeaderLayout"];
|
|
9
|
+
collapsible?: TabsProps["collapsible"];
|
|
10
|
+
builderBlock: TabsProps["builderBlock"];
|
|
11
|
+
builderContext: TabsProps["builderContext"];
|
|
12
|
+
builderComponents: TabsProps["builderComponents"];
|
|
13
|
+
builderLinkComponent?: TabsProps["builderLinkComponent"];
|
|
14
|
+
};
|
|
15
|
+
events: {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
};
|
|
18
|
+
slots: {};
|
|
19
|
+
};
|
|
20
|
+
type TabsProps_ = typeof __propDef.props;
|
|
21
|
+
export { TabsProps_ as TabsProps };
|
|
22
|
+
export type TabsEvents = typeof __propDef.events;
|
|
23
|
+
export type TabsSlots = typeof __propDef.slots;
|
|
24
|
+
export default class Tabs extends SvelteComponent<TabsProps, TabsEvents, TabsSlots> {
|
|
25
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,3 +14,5 @@ export declare const getInheritedStyles: ({ block, context }: {
|
|
|
14
14
|
block: BuilderBlock;
|
|
15
15
|
context: BuilderContextInterface;
|
|
16
16
|
}) => Partial<CSSStyleDeclaration>;
|
|
17
|
+
export declare const shouldPassLinkComponent: (blockName: string | undefined) => boolean | "" | undefined;
|
|
18
|
+
export declare const shouldPassRegisteredComponents: (blockName: string | undefined) => boolean | "" | undefined;
|
|
@@ -73,3 +73,9 @@ export const getInheritedStyles = ({ block, context }) => {
|
|
|
73
73
|
}
|
|
74
74
|
return extractTextStyles(style);
|
|
75
75
|
};
|
|
76
|
+
export const shouldPassLinkComponent = (blockName) => {
|
|
77
|
+
return blockName && ['Core:Button', 'Symbol', 'Columns', 'Form:Form', 'Builder: Tabs'].includes(blockName);
|
|
78
|
+
};
|
|
79
|
+
export const shouldPassRegisteredComponents = (blockName) => {
|
|
80
|
+
return blockName && ['Symbol', 'Columns', 'Form:Form', 'Builder: Tabs'].includes(blockName);
|
|
81
|
+
};
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
import { getBlockComponentOptions } from "../../functions/get-block-component-options";
|
|
5
5
|
import { getProcessedBlock } from "../../functions/get-processed-block";
|
|
6
6
|
import { bindAnimations } from "./animator";
|
|
7
|
-
import { getComponent, getRepeatItemData, } from "./block.helpers";
|
|
7
|
+
import { getComponent, getRepeatItemData, shouldPassLinkComponent, shouldPassRegisteredComponents, } from "./block.helpers";
|
|
8
8
|
import BlockStyles from "./components/block-styles.svelte";
|
|
9
9
|
import BlockWrapper from "./components/block-wrapper.svelte";
|
|
10
10
|
import ComponentRef from "./components/component-ref/component-ref.svelte";
|
|
11
11
|
import RepeatedBlock from "./components/repeated-block.svelte";
|
|
12
|
+
import "../dynamic-div.svelte";
|
|
12
13
|
export let block;
|
|
13
14
|
export let context;
|
|
14
15
|
export let registeredComponents;
|
|
@@ -76,17 +77,12 @@ $: componentRefProps = () => {
|
|
|
76
77
|
componentOptions: {
|
|
77
78
|
...getBlockComponentOptions(processedBlock()),
|
|
78
79
|
builderContext: context,
|
|
79
|
-
...(blockComponent?.()?.name
|
|
80
|
-
blockComponent?.()?.name === "Symbol" ||
|
|
81
|
-
blockComponent?.()?.name === "Columns" ||
|
|
82
|
-
blockComponent?.()?.name === "Form:Form"
|
|
80
|
+
...(shouldPassLinkComponent(blockComponent?.()?.name)
|
|
83
81
|
? {
|
|
84
82
|
builderLinkComponent: linkComponent,
|
|
85
83
|
}
|
|
86
84
|
: {}),
|
|
87
|
-
...(blockComponent?.()?.name
|
|
88
|
-
blockComponent?.()?.name === "Columns" ||
|
|
89
|
-
blockComponent?.()?.name === "Form:Form"
|
|
85
|
+
...(shouldPassRegisteredComponents(blockComponent?.()?.name)
|
|
90
86
|
? {
|
|
91
87
|
builderComponents: registeredComponents,
|
|
92
88
|
}
|
|
@@ -2,29 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
<script>import { getBlockActions } from "../../../functions/get-block-actions";
|
|
4
4
|
import { getBlockProperties } from "../../../functions/get-block-properties";
|
|
5
|
-
export let wrapperProps;
|
|
6
5
|
export let includeBlockProps;
|
|
7
6
|
export let block;
|
|
8
7
|
export let context;
|
|
8
|
+
export let wrapperProps;
|
|
9
9
|
export let Wrapper;
|
|
10
|
+
$: attributes = () => {
|
|
11
|
+
return includeBlockProps
|
|
12
|
+
? {
|
|
13
|
+
...getBlockProperties({
|
|
14
|
+
block: block,
|
|
15
|
+
context: $context,
|
|
16
|
+
}),
|
|
17
|
+
...getBlockActions({
|
|
18
|
+
block: block,
|
|
19
|
+
rootState: $context.rootState,
|
|
20
|
+
rootSetState: $context.rootSetState,
|
|
21
|
+
localState: $context.localState,
|
|
22
|
+
context: $context.context,
|
|
23
|
+
}),
|
|
24
|
+
}
|
|
25
|
+
: {};
|
|
26
|
+
};
|
|
10
27
|
</script>
|
|
11
28
|
|
|
12
|
-
<svelte:component
|
|
13
|
-
|
|
14
|
-
{...wrapperProps}
|
|
15
|
-
attributes={includeBlockProps
|
|
16
|
-
? {
|
|
17
|
-
...getBlockProperties({
|
|
18
|
-
block: block,
|
|
19
|
-
context: $context,
|
|
20
|
-
}),
|
|
21
|
-
...getBlockActions({
|
|
22
|
-
block: block,
|
|
23
|
-
rootState: $context.rootState,
|
|
24
|
-
rootSetState: $context.rootSetState,
|
|
25
|
-
localState: $context.localState,
|
|
26
|
-
context: $context.context,
|
|
27
|
-
}),
|
|
28
|
-
}
|
|
29
|
-
: {}}><slot /></svelte:component
|
|
29
|
+
<svelte:component this={Wrapper} {...wrapperProps} attributes={attributes()}
|
|
30
|
+
><slot /></svelte:component
|
|
30
31
|
>
|
|
@@ -18,6 +18,8 @@ import "../../../helpers/preview-lru-cache/set";
|
|
|
18
18
|
import { createEditorListener } from "../../../helpers/subscribe-to-editor";
|
|
19
19
|
import { registerInsertMenu, setupBrowserForEditing, } from "../../../scripts/init-editing";
|
|
20
20
|
import { triggerAnimation } from "../../block/animator";
|
|
21
|
+
import { getWrapperClassName } from "./styles.helpers";
|
|
22
|
+
import "../../dynamic-div.svelte";
|
|
21
23
|
export let builderContextSignal;
|
|
22
24
|
export let canTrack = undefined;
|
|
23
25
|
export let apiKey;
|
|
@@ -27,9 +29,9 @@ export let trustedHosts = undefined;
|
|
|
27
29
|
export let model = undefined;
|
|
28
30
|
export let content = undefined;
|
|
29
31
|
export let data = undefined;
|
|
32
|
+
export let showContent;
|
|
30
33
|
export let contentWrapper = undefined;
|
|
31
34
|
export let context = undefined;
|
|
32
|
-
export let showContent;
|
|
33
35
|
export let contentWrapperProps = undefined;
|
|
34
36
|
function mergeNewRootState(newData) {
|
|
35
37
|
const combinedState = {
|
|
@@ -224,6 +226,14 @@ function elementRef_onInitpreviewingbldr(event) {
|
|
|
224
226
|
});
|
|
225
227
|
}
|
|
226
228
|
}
|
|
229
|
+
$: showContentProps = () => {
|
|
230
|
+
return showContent
|
|
231
|
+
? {}
|
|
232
|
+
: {
|
|
233
|
+
hidden: true,
|
|
234
|
+
"aria-hidden": true,
|
|
235
|
+
};
|
|
236
|
+
};
|
|
227
237
|
let elementRef;
|
|
228
238
|
let ContentWrapper = contentWrapper || "div";
|
|
229
239
|
let httpReqsData = {};
|
|
@@ -326,14 +336,9 @@ onDestroy(() => {
|
|
|
326
336
|
builder-content-id={$builderContextSignal.content?.id}
|
|
327
337
|
builder-model={model}
|
|
328
338
|
{...{}}
|
|
329
|
-
{...
|
|
330
|
-
? {}
|
|
331
|
-
: {
|
|
332
|
-
hidden: true,
|
|
333
|
-
"aria-hidden": true,
|
|
334
|
-
}}
|
|
339
|
+
{...showContentProps()}
|
|
335
340
|
{...contentWrapperProps}
|
|
336
|
-
class={
|
|
341
|
+
class={getWrapperClassName(content?.testVariationId || content?.id)}
|
|
337
342
|
on:initeditingbldr={(event) => {
|
|
338
343
|
elementRef_onIniteditingbldr(event);
|
|
339
344
|
}}
|
|
@@ -18,9 +18,9 @@ declare const __propDef: {
|
|
|
18
18
|
model?: BuilderEditorProps["model"];
|
|
19
19
|
content?: BuilderEditorProps["content"];
|
|
20
20
|
data?: BuilderEditorProps["data"];
|
|
21
|
+
showContent: BuilderEditorProps["showContent"];
|
|
21
22
|
contentWrapper?: BuilderEditorProps["contentWrapper"];
|
|
22
23
|
context?: BuilderEditorProps["context"];
|
|
23
|
-
showContent: BuilderEditorProps["showContent"];
|
|
24
24
|
contentWrapperProps?: BuilderEditorProps["contentWrapperProps"];
|
|
25
25
|
};
|
|
26
26
|
events: {
|
|
@@ -14,3 +14,4 @@ export declare const getCss: ({ cssCode, contentId }: {
|
|
|
14
14
|
contentId?: string | undefined;
|
|
15
15
|
}) => string;
|
|
16
16
|
export declare const getDefaultStyles: (isNested: boolean | undefined) => "" | "\n.builder-button {\n all: unset;\n}\n\n.builder-text > p:first-of-type, .builder-text > .builder-paragraph:first-of-type {\n margin: 0;\n}\n.builder-text > p, .builder-text > .builder-paragraph {\n color: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n font-weight: inherit;\n font-size: inherit;\n text-align: inherit;\n font-family: inherit;\n}\n";
|
|
17
|
+
export declare const getWrapperClassName: (variationId?: string) => string;
|
|
@@ -11,6 +11,7 @@ import EnableEditor from "./components/enable-editor.svelte";
|
|
|
11
11
|
import ContentStyles from "./components/styles.svelte";
|
|
12
12
|
import { getContentInitialValue, getRootStateInitialValue, } from "./content.helpers";
|
|
13
13
|
import "./wrap-component-ref";
|
|
14
|
+
import "../dynamic-div.svelte";
|
|
14
15
|
export let content = undefined;
|
|
15
16
|
export let customComponents = undefined;
|
|
16
17
|
export let data = undefined;
|
|
@@ -12,9 +12,12 @@ 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 { getExtraComponents } from './extra-components';
|
|
20
|
+
import { TARGET } from './target';
|
|
18
21
|
/**
|
|
19
22
|
* Returns a list of all registered components.
|
|
20
23
|
* NOTE: This needs to be a function to work around ESM circular dependencies.
|
|
@@ -43,4 +46,7 @@ export const getDefaultRegisteredComponents = () => [{
|
|
|
43
46
|
}, {
|
|
44
47
|
component: Text,
|
|
45
48
|
...textComponentInfo
|
|
46
|
-
}, ...
|
|
49
|
+
}, ...(TARGET === 'rsc' ? [] : [{
|
|
50
|
+
component: Tabs,
|
|
51
|
+
...tabsComponentInfo
|
|
52
|
+
}]), ...getExtraComponents()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.0.
|
|
1
|
+
export declare const SDK_VERSION = "1.0.24";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "1.0.
|
|
1
|
+
export const SDK_VERSION = "1.0.24";
|
|
@@ -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';
|
package/package.json
CHANGED
|
@@ -10,24 +10,28 @@
|
|
|
10
10
|
export let builderLinkComponent: ButtonProps["builderLinkComponent"] =
|
|
11
11
|
undefined;
|
|
12
12
|
export let text: ButtonProps["text"] = undefined;
|
|
13
|
+
|
|
14
|
+
function attrs() {
|
|
15
|
+
return {
|
|
16
|
+
...filterAttrs(attributes, "on:", false),
|
|
17
|
+
[getClassPropName()]: `${link ? "" : "builder-button"} ${
|
|
18
|
+
attributes[getClassPropName()] || ""
|
|
19
|
+
}`,
|
|
20
|
+
...(link
|
|
21
|
+
? {
|
|
22
|
+
href: link,
|
|
23
|
+
target: openLinkInNewTab ? "_blank" : undefined,
|
|
24
|
+
role: "link",
|
|
25
|
+
}
|
|
26
|
+
: {
|
|
27
|
+
role: "button",
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
13
31
|
</script>
|
|
14
32
|
|
|
15
33
|
<DynamicRenderer
|
|
16
|
-
attributes={
|
|
17
|
-
...filterAttrs(attributes, "on:", false),
|
|
18
|
-
[getClassPropName()]: `${link ? "" : "builder-button"} ${
|
|
19
|
-
attributes[getClassPropName()] || ""
|
|
20
|
-
}`,
|
|
21
|
-
...(link
|
|
22
|
-
? {
|
|
23
|
-
href: link,
|
|
24
|
-
target: openLinkInNewTab ? "_blank" : undefined,
|
|
25
|
-
role: "link",
|
|
26
|
-
}
|
|
27
|
-
: {
|
|
28
|
-
role: "button",
|
|
29
|
-
}),
|
|
30
|
-
}}
|
|
34
|
+
attributes={attrs()}
|
|
31
35
|
TagName={link ? builderLinkComponent || "a" : "button"}
|
|
32
36
|
actionAttributes={filterAttrs(attributes, "on:", true)}
|
|
33
37
|
>{text}</DynamicRenderer
|
|
@@ -13,17 +13,19 @@
|
|
|
13
13
|
import { getClassPropName } from "../../functions/get-class-prop-name";
|
|
14
14
|
import { mapStyleObjToStrIfNeeded } from "../../functions/get-style";
|
|
15
15
|
import type { Dictionary } from "../../types/typescript";
|
|
16
|
-
import type { ColumnProps } from "./columns.types";
|
|
16
|
+
import type { Column, ColumnProps } from "./columns.types";
|
|
17
|
+
import { getColumnsClass } from "./helpers";
|
|
18
|
+
import DynamicDiv from "../../components/dynamic-div.svelte";
|
|
17
19
|
|
|
18
20
|
export let space: ColumnProps["space"] = undefined;
|
|
19
21
|
export let columns: ColumnProps["columns"] = undefined;
|
|
20
22
|
export let stackColumnsAt: ColumnProps["stackColumnsAt"] = undefined;
|
|
23
|
+
export let builderLinkComponent: ColumnProps["builderLinkComponent"] =
|
|
24
|
+
undefined;
|
|
21
25
|
export let reverseColumnsWhenStacked: ColumnProps["reverseColumnsWhenStacked"] =
|
|
22
26
|
undefined;
|
|
23
27
|
export let builderContext: ColumnProps["builderContext"];
|
|
24
28
|
export let builderBlock: ColumnProps["builderBlock"];
|
|
25
|
-
export let builderLinkComponent: ColumnProps["builderLinkComponent"] =
|
|
26
|
-
undefined;
|
|
27
29
|
export let builderComponents: ColumnProps["builderComponents"];
|
|
28
30
|
function stringifyStyles(stylesObj) {
|
|
29
31
|
let styles = "";
|
|
@@ -36,6 +38,9 @@
|
|
|
36
38
|
return styles;
|
|
37
39
|
}
|
|
38
40
|
|
|
41
|
+
function getTagName(column: Column) {
|
|
42
|
+
return column.link ? builderLinkComponent || "a" : "div";
|
|
43
|
+
}
|
|
39
44
|
function getWidth(index: number) {
|
|
40
45
|
return cols[index]?.width || 100 / cols.length;
|
|
41
46
|
}
|
|
@@ -61,6 +66,15 @@
|
|
|
61
66
|
}) {
|
|
62
67
|
return stackAt === "never" ? desktopStyle : stackedStyle;
|
|
63
68
|
}
|
|
69
|
+
function columnsCssVars() {
|
|
70
|
+
return {
|
|
71
|
+
"--flex-dir": flexDir,
|
|
72
|
+
"--flex-dir-tablet": getTabletStyle({
|
|
73
|
+
stackedStyle: flexDir,
|
|
74
|
+
desktopStyle: "row",
|
|
75
|
+
}),
|
|
76
|
+
} as Dictionary<string>;
|
|
77
|
+
}
|
|
64
78
|
function columnCssVars(index: number) {
|
|
65
79
|
const gutter = index === 0 ? 0 : gutterSize;
|
|
66
80
|
const width = getColumnCssWidth(index);
|
|
@@ -101,16 +115,7 @@
|
|
|
101
115
|
);
|
|
102
116
|
return breakpointSizes[size].max;
|
|
103
117
|
}
|
|
104
|
-
|
|
105
|
-
return {
|
|
106
|
-
"--flex-dir": flexDir,
|
|
107
|
-
"--flex-dir-tablet": getTabletStyle({
|
|
108
|
-
stackedStyle: flexDir,
|
|
109
|
-
desktopStyle: "row",
|
|
110
|
-
}),
|
|
111
|
-
} as Dictionary<string>;
|
|
112
|
-
};
|
|
113
|
-
$: columnsStyles = () => {
|
|
118
|
+
function columnsStyles() {
|
|
114
119
|
return `
|
|
115
120
|
@media (max-width: ${getWidthForBreakpointSize("medium")}px) {
|
|
116
121
|
.${builderBlock.id}-breakpoints {
|
|
@@ -136,7 +141,19 @@
|
|
|
136
141
|
}
|
|
137
142
|
},
|
|
138
143
|
`;
|
|
139
|
-
}
|
|
144
|
+
}
|
|
145
|
+
function getAttributes(column: any, index: number) {
|
|
146
|
+
return {
|
|
147
|
+
...{},
|
|
148
|
+
...(column.link
|
|
149
|
+
? {
|
|
150
|
+
href: column.link,
|
|
151
|
+
}
|
|
152
|
+
: {}),
|
|
153
|
+
[getClassPropName()]: "builder-column",
|
|
154
|
+
style: mapStyleObjToStrIfNeeded(columnCssVars(index)),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
140
157
|
|
|
141
158
|
let gutterSize = typeof space === "number" ? space || 0 : 20;
|
|
142
159
|
let cols = columns || [];
|
|
@@ -151,7 +168,7 @@
|
|
|
151
168
|
|
|
152
169
|
<div
|
|
153
170
|
style={stringifyStyles(columnsCssVars())}
|
|
154
|
-
class={
|
|
171
|
+
class={getColumnsClass(builderBlock?.id) + " div"}
|
|
155
172
|
{...{}}
|
|
156
173
|
>
|
|
157
174
|
{#if TARGET !== "reactNative"}
|
|
@@ -159,18 +176,9 @@
|
|
|
159
176
|
{/if}
|
|
160
177
|
{#each columns as column, index (index)}
|
|
161
178
|
<DynamicRenderer
|
|
162
|
-
TagName={column
|
|
179
|
+
TagName={getTagName(column)}
|
|
163
180
|
actionAttributes={{}}
|
|
164
|
-
attributes={
|
|
165
|
-
...{},
|
|
166
|
-
...(column.link
|
|
167
|
-
? {
|
|
168
|
-
href: column.link,
|
|
169
|
-
}
|
|
170
|
-
: {}),
|
|
171
|
-
[getClassPropName()]: "builder-column",
|
|
172
|
-
style: mapStyleObjToStrIfNeeded(columnCssVars(index)),
|
|
173
|
-
}}
|
|
181
|
+
attributes={getAttributes(column, index)}
|
|
174
182
|
><Blocks
|
|
175
183
|
path={`component.options.columns.${index}.blocks`}
|
|
176
184
|
parent={builderBlock.id}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuilderBlock } from '../../types/builder-block';
|
|
2
2
|
import type { BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp } from '../../types/builder-props';
|
|
3
|
-
type Column = {
|
|
3
|
+
export type Column = {
|
|
4
4
|
blocks: BuilderBlock[];
|
|
5
5
|
width?: number;
|
|
6
6
|
link?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuilderContextInterface } from '../../context/types';
|
|
2
|
+
import { fetchOneEntry } from '../../functions/get-content/index';
|
|
2
3
|
import { logger } from '../../helpers/logger';
|
|
3
|
-
import { fetchOneEntry } from '../../index';
|
|
4
4
|
import type { BuilderContent } from '../../types/builder-content';
|
|
5
5
|
export interface SymbolInfo {
|
|
6
6
|
model?: string;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { setAttrs } from "../helpers";
|
|
10
10
|
import { fetchSymbolContent } from "./symbol.helpers";
|
|
11
11
|
import type { SymbolProps } from "./symbol.types";
|
|
12
|
+
import DynamicDiv from "../../components/dynamic-div.svelte";
|
|
12
13
|
|
|
13
14
|
export let symbol: SymbolProps["symbol"] = undefined;
|
|
14
15
|
export let attributes: SymbolProps["attributes"] = undefined;
|
|
@@ -30,6 +31,12 @@
|
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
33
|
}
|
|
34
|
+
$: blocksWrapper = () => {
|
|
35
|
+
return "div";
|
|
36
|
+
};
|
|
37
|
+
$: contentWrapper = () => {
|
|
38
|
+
return "div";
|
|
39
|
+
};
|
|
33
40
|
$: className = () => {
|
|
34
41
|
return [
|
|
35
42
|
...[attributes[getClassPropName()]],
|
|
@@ -77,7 +84,7 @@
|
|
|
77
84
|
model={symbol?.model}
|
|
78
85
|
content={contentToUse}
|
|
79
86
|
linkComponent={builderLinkComponent}
|
|
80
|
-
blocksWrapper={
|
|
81
|
-
contentWrapper={
|
|
87
|
+
blocksWrapper={blocksWrapper()}
|
|
88
|
+
contentWrapper={contentWrapper()}
|
|
82
89
|
/>
|
|
83
90
|
</div>
|