cinqcinqdev-seo 0.1.55 → 0.1.57
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/dist/module.json +1 -1
- package/dist/runtime/components/sections/BlogHero.vue +15 -2
- package/dist/runtime/components/sections/CallToAction.vue +15 -2
- package/dist/runtime/components/sections/Comparison.vue +15 -2
- package/dist/runtime/components/sections/ContactForm.vue +14 -1
- package/dist/runtime/components/sections/DataTable.vue +10 -1
- package/dist/runtime/components/sections/FAQ.vue +15 -2
- package/dist/runtime/components/sections/Features.vue +15 -2
- package/dist/runtime/components/sections/HeroSection.vue +15 -2
- package/dist/runtime/components/sections/Newsletter.vue +15 -2
- package/dist/runtime/components/sections/Pricing.vue +15 -2
- package/dist/runtime/components/sections/Process.vue +15 -2
- package/dist/runtime/components/sections/Quote.vue +15 -2
- package/dist/runtime/components/sections/RelatedPages.vue +15 -2
- package/dist/runtime/components/sections/RichText.vue +15 -2
- package/dist/runtime/components/sections/ServiceGrid.vue +15 -2
- package/dist/runtime/components/sections/Testimonials.vue +15 -2
- package/dist/runtime/components/sections/TextVisual.vue +10 -1
- package/dist/runtime/composables/useAdminSections.js +193 -34
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- ── CENTERED ─────────────────────────────────────────────── -->
|
|
5
5
|
<div v-if="layout === 'centered'" :class="[sectionPad]">
|
|
@@ -140,7 +140,11 @@ const props = defineProps({
|
|
|
140
140
|
radius: { type: String, default: "rounded" },
|
|
141
141
|
textDirection: { type: String, default: "ltr" },
|
|
142
142
|
contentWidth: { type: String, default: "narrow" },
|
|
143
|
-
textSize: { type: String, default: "md" }
|
|
143
|
+
textSize: { type: String, default: "md" },
|
|
144
|
+
paddingTop: { type: String, default: "" },
|
|
145
|
+
paddingBottom: { type: String, default: "" },
|
|
146
|
+
marginTop: { type: String, default: "" },
|
|
147
|
+
marginBottom: { type: String, default: "" }
|
|
144
148
|
});
|
|
145
149
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
146
150
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-[24px]", pill: "rounded-[36px]" })[props.radius] || "rounded-[24px]");
|
|
@@ -150,4 +154,13 @@ const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base
|
|
|
150
154
|
const alignText = computed(() => ({ left: "text-left", center: "text-center", right: "text-right" })[props.textAlign] || "text-center");
|
|
151
155
|
const alignFlex = computed(() => ({ left: "justify-start", center: "justify-center", right: "justify-end" })[props.textAlign] || "justify-center");
|
|
152
156
|
const alignProse = computed(() => ({ left: "max-w-2xl", center: "max-w-2xl mx-auto", right: "max-w-2xl ml-auto" })[props.textAlign] || "max-w-2xl mx-auto");
|
|
157
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
158
|
+
const spacingStyle = computed(() => {
|
|
159
|
+
const s = {};
|
|
160
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
161
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
162
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
163
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
164
|
+
return s;
|
|
165
|
+
});
|
|
153
166
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- CENTERED -->
|
|
5
5
|
<div v-if="layout === 'centered'" :class="[containerClass, 'text-center']">
|
|
@@ -81,11 +81,24 @@ const props = defineProps({
|
|
|
81
81
|
radius: { type: String, default: "rounded" },
|
|
82
82
|
textDirection: { type: String, default: "ltr" },
|
|
83
83
|
contentWidth: { type: String, default: "normal" },
|
|
84
|
-
textSize: { type: String, default: "md" }
|
|
84
|
+
textSize: { type: String, default: "md" },
|
|
85
|
+
paddingTop: { type: String, default: "" },
|
|
86
|
+
paddingBottom: { type: String, default: "" },
|
|
87
|
+
marginTop: { type: String, default: "" },
|
|
88
|
+
marginBottom: { type: String, default: "" }
|
|
85
89
|
});
|
|
86
90
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
87
91
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-2xl", pill: "rounded-full" })[props.radius] || "rounded-2xl");
|
|
88
92
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
89
93
|
const titleFontSize = computed(() => ({ sm: "clamp(1rem,1.5vw,1.3rem)", md: "clamp(1.3rem,2vw,1.8rem)", lg: "clamp(2.5rem,8vw,5.5rem)" })[props.textSize] || "clamp(1.3rem,2vw,1.8rem)");
|
|
90
94
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
95
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
96
|
+
const spacingStyle = computed(() => {
|
|
97
|
+
const s = {};
|
|
98
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
99
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
100
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
101
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
102
|
+
return s;
|
|
103
|
+
});
|
|
91
104
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<!-- Header -->
|
|
@@ -238,7 +238,11 @@ const props = defineProps({
|
|
|
238
238
|
radius: { type: String, default: "rounded" },
|
|
239
239
|
textDirection: { type: String, default: "ltr" },
|
|
240
240
|
contentWidth: { type: String, default: "normal" },
|
|
241
|
-
textSize: { type: String, default: "md" }
|
|
241
|
+
textSize: { type: String, default: "md" },
|
|
242
|
+
paddingTop: { type: String, default: "" },
|
|
243
|
+
paddingBottom: { type: String, default: "" },
|
|
244
|
+
marginTop: { type: String, default: "" },
|
|
245
|
+
marginBottom: { type: String, default: "" }
|
|
242
246
|
});
|
|
243
247
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
244
248
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
@@ -261,4 +265,13 @@ const gridCols = computed(() => {
|
|
|
261
265
|
if (n === 4) return "grid-cols-1 sm:grid-cols-2 xl:grid-cols-4";
|
|
262
266
|
return "grid-cols-1 md:grid-cols-3";
|
|
263
267
|
});
|
|
268
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
269
|
+
const spacingStyle = computed(() => {
|
|
270
|
+
const s = {};
|
|
271
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
272
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
273
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
274
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
275
|
+
return s;
|
|
276
|
+
});
|
|
264
277
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<!-- SPLIT layout -->
|
|
@@ -112,6 +112,10 @@ const props = defineProps({
|
|
|
112
112
|
textDirection: { type: String, default: "ltr" },
|
|
113
113
|
contentWidth: { type: String, default: "normal" },
|
|
114
114
|
textSize: { type: String, default: "md" },
|
|
115
|
+
paddingTop: { type: String, default: "" },
|
|
116
|
+
paddingBottom: { type: String, default: "" },
|
|
117
|
+
marginTop: { type: String, default: "" },
|
|
118
|
+
marginBottom: { type: String, default: "" },
|
|
115
119
|
fields: {
|
|
116
120
|
type: Array,
|
|
117
121
|
default: () => [
|
|
@@ -145,4 +149,13 @@ const handleSubmit = async () => {
|
|
|
145
149
|
sent.value = false;
|
|
146
150
|
}, 4e3);
|
|
147
151
|
};
|
|
152
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
153
|
+
const spacingStyle = computed(() => {
|
|
154
|
+
const s = {};
|
|
155
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
156
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
157
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
158
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
159
|
+
return s;
|
|
160
|
+
});
|
|
148
161
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<!-- Header row: title + search -->
|
|
@@ -204,4 +204,13 @@ const gridCols = computed(() => {
|
|
|
204
204
|
if (n <= 3) return "grid-cols-1 md:grid-cols-2";
|
|
205
205
|
return "grid-cols-1 md:grid-cols-2 lg:grid-cols-3";
|
|
206
206
|
});
|
|
207
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
208
|
+
const spacingStyle = computed(() => {
|
|
209
|
+
const s = {};
|
|
210
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
211
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
212
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
213
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
214
|
+
return s;
|
|
215
|
+
});
|
|
207
216
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
<div class="text-center mb-16">
|
|
5
5
|
<component :is="titleTag" class="font-black uppercase tracking-tighter italic" :style="{ fontSize: titleFontSize }">{{ title }}</component>
|
|
@@ -42,7 +42,11 @@ const props = defineProps({
|
|
|
42
42
|
radius: { type: String, default: "rounded" },
|
|
43
43
|
textDirection: { type: String, default: "ltr" },
|
|
44
44
|
contentWidth: { type: String, default: "narrow" },
|
|
45
|
-
textSize: { type: String, default: "md" }
|
|
45
|
+
textSize: { type: String, default: "md" },
|
|
46
|
+
paddingTop: { type: String, default: "" },
|
|
47
|
+
paddingBottom: { type: String, default: "" },
|
|
48
|
+
marginTop: { type: String, default: "" },
|
|
49
|
+
marginBottom: { type: String, default: "" }
|
|
46
50
|
});
|
|
47
51
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
48
52
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-[24px]", pill: "rounded-[36px]" })[props.radius] || "rounded-[24px]");
|
|
@@ -53,4 +57,13 @@ const openIndex = ref(null);
|
|
|
53
57
|
const toggle = (index) => {
|
|
54
58
|
openIndex.value = openIndex.value === index ? null : index;
|
|
55
59
|
};
|
|
60
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
61
|
+
const spacingStyle = computed(() => {
|
|
62
|
+
const s = {};
|
|
63
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
64
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
65
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
66
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
67
|
+
return s;
|
|
68
|
+
});
|
|
56
69
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad, 'overflow-hidden']" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad, 'overflow-hidden']" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
<div class="mb-16 md:mb-20">
|
|
5
5
|
<component :is="titleTag" class="font-black uppercase tracking-tighter leading-none italic" :style="{ fontSize: titleFontSize }">{{ title }}</component>
|
|
@@ -41,11 +41,24 @@ const props = defineProps({
|
|
|
41
41
|
radius: { type: String, default: "rounded" },
|
|
42
42
|
textDirection: { type: String, default: "ltr" },
|
|
43
43
|
contentWidth: { type: String, default: "normal" },
|
|
44
|
-
textSize: { type: String, default: "md" }
|
|
44
|
+
textSize: { type: String, default: "md" },
|
|
45
|
+
paddingTop: { type: String, default: "" },
|
|
46
|
+
paddingBottom: { type: String, default: "" },
|
|
47
|
+
marginTop: { type: String, default: "" },
|
|
48
|
+
marginBottom: { type: String, default: "" }
|
|
45
49
|
});
|
|
46
50
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
47
51
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-[32px]", pill: "rounded-[48px]" })[props.radius] || "rounded-[32px]");
|
|
48
52
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
49
53
|
const titleFontSize = computed(() => ({ sm: "clamp(1rem,1.5vw,1.3rem)", md: "clamp(1.3rem,2vw,1.8rem)", lg: "clamp(2.5rem,7vw,6rem)" })[props.textSize] || "clamp(1.3rem,2vw,1.8rem)");
|
|
50
54
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
55
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
56
|
+
const spacingStyle = computed(() => {
|
|
57
|
+
const s = {};
|
|
58
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
59
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
60
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
61
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
62
|
+
return s;
|
|
63
|
+
});
|
|
51
64
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section class="relative overflow-hidden" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section class="relative overflow-hidden" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- CENTERED -->
|
|
5
5
|
<div v-if="layout === 'centered'" class="px-6 md:px-12 pt-20 pb-16 text-center">
|
|
@@ -134,9 +134,22 @@ const props = defineProps({
|
|
|
134
134
|
radius: { type: String, default: "rounded" },
|
|
135
135
|
textDirection: { type: String, default: "ltr" },
|
|
136
136
|
contentWidth: { type: String, default: "normal" },
|
|
137
|
-
textSize: { type: String, default: "md" }
|
|
137
|
+
textSize: { type: String, default: "md" },
|
|
138
|
+
paddingTop: { type: String, default: "" },
|
|
139
|
+
paddingBottom: { type: String, default: "" },
|
|
140
|
+
marginTop: { type: String, default: "" },
|
|
141
|
+
marginBottom: { type: String, default: "" }
|
|
138
142
|
});
|
|
139
143
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
140
144
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
141
145
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
146
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
147
|
+
const spacingStyle = computed(() => {
|
|
148
|
+
const s = {};
|
|
149
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
150
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
151
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
152
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
153
|
+
return s;
|
|
154
|
+
});
|
|
142
155
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- CENTERED -->
|
|
5
5
|
<div v-if="layout === 'centered'" :class="[containerClass, 'text-center']">
|
|
@@ -66,11 +66,24 @@ const props = defineProps({
|
|
|
66
66
|
radius: { type: String, default: "rounded" },
|
|
67
67
|
textDirection: { type: String, default: "ltr" },
|
|
68
68
|
contentWidth: { type: String, default: "normal" },
|
|
69
|
-
textSize: { type: String, default: "md" }
|
|
69
|
+
textSize: { type: String, default: "md" },
|
|
70
|
+
paddingTop: { type: String, default: "" },
|
|
71
|
+
paddingBottom: { type: String, default: "" },
|
|
72
|
+
marginTop: { type: String, default: "" },
|
|
73
|
+
marginBottom: { type: String, default: "" }
|
|
70
74
|
});
|
|
71
75
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
72
76
|
const cardRound = computed(() => ({ sharp: "rounded-lg", rounded: "rounded-xl", pill: "rounded-full" })[props.radius] || "rounded-xl");
|
|
73
77
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-5xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-5xl mx-auto");
|
|
74
78
|
const titleFontSize = computed(() => ({ sm: "clamp(0.9rem,1.2vw,1.1rem)", md: "clamp(1.1rem,1.8vw,1.6rem)", lg: "clamp(2.2rem,6vw,4.5rem)" })[props.textSize] || "clamp(1.1rem,1.8vw,1.6rem)");
|
|
75
79
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
80
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
81
|
+
const spacingStyle = computed(() => {
|
|
82
|
+
const s = {};
|
|
83
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
84
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
85
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
86
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
87
|
+
return s;
|
|
88
|
+
});
|
|
76
89
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<div v-if="title || description" class="mb-12 text-center max-w-2xl mx-auto">
|
|
@@ -102,7 +102,11 @@ const props = defineProps({
|
|
|
102
102
|
radius: { type: String, default: "rounded" },
|
|
103
103
|
textDirection: { type: String, default: "ltr" },
|
|
104
104
|
contentWidth: { type: String, default: "normal" },
|
|
105
|
-
textSize: { type: String, default: "md" }
|
|
105
|
+
textSize: { type: String, default: "md" },
|
|
106
|
+
paddingTop: { type: String, default: "" },
|
|
107
|
+
paddingBottom: { type: String, default: "" },
|
|
108
|
+
marginTop: { type: String, default: "" },
|
|
109
|
+
marginBottom: { type: String, default: "" }
|
|
106
110
|
});
|
|
107
111
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
108
112
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
@@ -115,4 +119,13 @@ const allFeatures = computed(() => {
|
|
|
115
119
|
return [...set];
|
|
116
120
|
});
|
|
117
121
|
const planHasFeature = (plan, feat) => (plan.features || []).some((f) => (typeof f === "object" ? f.fr || JSON.stringify(f) : f) === (typeof feat === "object" ? feat.fr || JSON.stringify(feat) : feat));
|
|
122
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
123
|
+
const spacingStyle = computed(() => {
|
|
124
|
+
const s = {};
|
|
125
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
126
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
127
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
128
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
129
|
+
return s;
|
|
130
|
+
});
|
|
118
131
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<div v-if="title || description" class="mb-12" :class="['horizontal','cards'].includes(layout) ? 'text-center max-w-2xl mx-auto' : 'max-w-xl'">
|
|
@@ -95,11 +95,24 @@ const props = defineProps({
|
|
|
95
95
|
radius: { type: String, default: "rounded" },
|
|
96
96
|
textDirection: { type: String, default: "ltr" },
|
|
97
97
|
contentWidth: { type: String, default: "normal" },
|
|
98
|
-
textSize: { type: String, default: "md" }
|
|
98
|
+
textSize: { type: String, default: "md" },
|
|
99
|
+
paddingTop: { type: String, default: "" },
|
|
100
|
+
paddingBottom: { type: String, default: "" },
|
|
101
|
+
marginTop: { type: String, default: "" },
|
|
102
|
+
marginBottom: { type: String, default: "" }
|
|
99
103
|
});
|
|
100
104
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
101
105
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
102
106
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
103
107
|
const titleFontSize = computed(() => ({ sm: "clamp(1rem,1.5vw,1.3rem)", md: "clamp(1.3rem,2vw,1.8rem)", lg: "clamp(2.5rem,6vw,5rem)" })[props.textSize] || "clamp(1.3rem,2vw,1.8rem)");
|
|
104
108
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
109
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
110
|
+
const spacingStyle = computed(() => {
|
|
111
|
+
const s = {};
|
|
112
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
113
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
114
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
115
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
116
|
+
return s;
|
|
117
|
+
});
|
|
105
118
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- CENTERED -->
|
|
5
5
|
<div v-if="layout === 'centered'" :class="[containerClass, 'text-center']">
|
|
@@ -75,9 +75,22 @@ const props = defineProps({
|
|
|
75
75
|
radius: { type: String, default: "rounded" },
|
|
76
76
|
textDirection: { type: String, default: "ltr" },
|
|
77
77
|
contentWidth: { type: String, default: "narrow" },
|
|
78
|
-
textSize: { type: String, default: "md" }
|
|
78
|
+
textSize: { type: String, default: "md" },
|
|
79
|
+
paddingTop: { type: String, default: "" },
|
|
80
|
+
paddingBottom: { type: String, default: "" },
|
|
81
|
+
marginTop: { type: String, default: "" },
|
|
82
|
+
marginBottom: { type: String, default: "" }
|
|
79
83
|
});
|
|
80
84
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
81
85
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-5xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-3xl mx-auto");
|
|
82
86
|
const quoteFontSize = computed(() => ({ sm: "clamp(0.95rem,1.2vw,1.1rem)", md: "clamp(1.1rem,1.8vw,1.6rem)", lg: "clamp(2rem,6vw,5rem)" })[props.textSize] || "clamp(1.1rem,1.8vw,1.6rem)");
|
|
87
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
88
|
+
const spacingStyle = computed(() => {
|
|
89
|
+
const s = {};
|
|
90
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
91
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
92
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
93
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
94
|
+
return s;
|
|
95
|
+
});
|
|
83
96
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<!-- Header -->
|
|
@@ -161,7 +161,11 @@ const props = defineProps({
|
|
|
161
161
|
radius: { type: String, default: "rounded" },
|
|
162
162
|
textDirection: { type: String, default: "ltr" },
|
|
163
163
|
contentWidth: { type: String, default: "normal" },
|
|
164
|
-
textSize: { type: String, default: "md" }
|
|
164
|
+
textSize: { type: String, default: "md" },
|
|
165
|
+
paddingTop: { type: String, default: "" },
|
|
166
|
+
paddingBottom: { type: String, default: "" },
|
|
167
|
+
marginTop: { type: String, default: "" },
|
|
168
|
+
marginBottom: { type: String, default: "" }
|
|
165
169
|
});
|
|
166
170
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
167
171
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-2xl", pill: "rounded-3xl" })[props.radius] || "rounded-2xl");
|
|
@@ -174,4 +178,13 @@ const gridCols = computed(() => {
|
|
|
174
178
|
if (n === 2) return "grid-cols-1 sm:grid-cols-2";
|
|
175
179
|
return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3";
|
|
176
180
|
});
|
|
181
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
182
|
+
const spacingStyle = computed(() => {
|
|
183
|
+
const s = {};
|
|
184
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
185
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
186
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
187
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
188
|
+
return s;
|
|
189
|
+
});
|
|
177
190
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="maxW">
|
|
4
4
|
|
|
5
5
|
<!-- Optional title -->
|
|
@@ -46,7 +46,11 @@ const props = defineProps({
|
|
|
46
46
|
radius: { type: String, default: "rounded" },
|
|
47
47
|
textDirection: { type: String, default: "ltr" },
|
|
48
48
|
contentWidth: { type: String, default: "normal" },
|
|
49
|
-
textSize: { type: String, default: "md" }
|
|
49
|
+
textSize: { type: String, default: "md" },
|
|
50
|
+
paddingTop: { type: String, default: "" },
|
|
51
|
+
paddingBottom: { type: String, default: "" },
|
|
52
|
+
marginTop: { type: String, default: "" },
|
|
53
|
+
marginBottom: { type: String, default: "" }
|
|
50
54
|
});
|
|
51
55
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
52
56
|
const cardRound = computed(() => ({ sharp: "rounded-lg", rounded: "rounded-xl", pill: "rounded-full" })[props.radius] || "rounded-xl");
|
|
@@ -60,6 +64,15 @@ const rendered = computed(() => {
|
|
|
60
64
|
if (typeof props.content === "object") return props.content.fr || "";
|
|
61
65
|
return props.content;
|
|
62
66
|
});
|
|
67
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
68
|
+
const spacingStyle = computed(() => {
|
|
69
|
+
const s = {};
|
|
70
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
71
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
72
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
73
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
74
|
+
return s;
|
|
75
|
+
});
|
|
63
76
|
</script>
|
|
64
77
|
|
|
65
78
|
<style scoped>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<div v-if="title || description" class="mb-12" :class="headerAlign === 'center' ? 'text-center max-w-2xl mx-auto' : 'max-w-xl'">
|
|
@@ -97,11 +97,24 @@ const props = defineProps({
|
|
|
97
97
|
radius: { type: String, default: "rounded" },
|
|
98
98
|
textDirection: { type: String, default: "ltr" },
|
|
99
99
|
contentWidth: { type: String, default: "normal" },
|
|
100
|
-
textSize: { type: String, default: "md" }
|
|
100
|
+
textSize: { type: String, default: "md" },
|
|
101
|
+
paddingTop: { type: String, default: "" },
|
|
102
|
+
paddingBottom: { type: String, default: "" },
|
|
103
|
+
marginTop: { type: String, default: "" },
|
|
104
|
+
marginBottom: { type: String, default: "" }
|
|
101
105
|
});
|
|
102
106
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
103
107
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
104
108
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
105
109
|
const titleFontSize = computed(() => ({ sm: "clamp(1rem,1.5vw,1.3rem)", md: "clamp(1.3rem,2vw,1.8rem)", lg: "clamp(2.5rem,6vw,5rem)" })[props.textSize] || "clamp(1.3rem,2vw,1.8rem)");
|
|
106
110
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
111
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
112
|
+
const spacingStyle = computed(() => {
|
|
113
|
+
const s = {};
|
|
114
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
115
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
116
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
117
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
118
|
+
return s;
|
|
119
|
+
});
|
|
107
120
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
<div :class="[containerClass]">
|
|
4
4
|
|
|
5
5
|
<div v-if="title || description" class="mb-12 max-w-xl">
|
|
@@ -95,11 +95,24 @@ const props = defineProps({
|
|
|
95
95
|
radius: { type: String, default: "rounded" },
|
|
96
96
|
textDirection: { type: String, default: "ltr" },
|
|
97
97
|
contentWidth: { type: String, default: "normal" },
|
|
98
|
-
textSize: { type: String, default: "md" }
|
|
98
|
+
textSize: { type: String, default: "md" },
|
|
99
|
+
paddingTop: { type: String, default: "" },
|
|
100
|
+
paddingBottom: { type: String, default: "" },
|
|
101
|
+
marginTop: { type: String, default: "" },
|
|
102
|
+
marginBottom: { type: String, default: "" }
|
|
99
103
|
});
|
|
100
104
|
const sectionPad = computed(() => ({ compact: "py-8 px-4 md:px-8", normal: "py-14 px-6 md:px-12", spacious: "py-24 px-8 md:px-16" })[props.spacing] || "py-14 px-6 md:px-12");
|
|
101
105
|
const cardRound = computed(() => ({ sharp: "rounded-xl", rounded: "rounded-3xl", pill: "rounded-[40px]" })[props.radius] || "rounded-3xl");
|
|
102
106
|
const containerClass = computed(() => ({ narrow: "max-w-3xl mx-auto", normal: "max-w-6xl mx-auto", wide: "max-w-7xl mx-auto", full: "max-w-full" })[props.contentWidth] || "max-w-6xl mx-auto");
|
|
103
107
|
const titleFontSize = computed(() => ({ sm: "clamp(1rem,1.5vw,1.3rem)", md: "clamp(1.3rem,2vw,1.8rem)", lg: "clamp(2.5rem,6vw,5rem)" })[props.textSize] || "clamp(1.3rem,2vw,1.8rem)");
|
|
104
108
|
const bodyClass = computed(() => ({ sm: "text-xs", md: "text-sm", lg: "text-base" })[props.textSize] || "text-sm");
|
|
109
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
110
|
+
const spacingStyle = computed(() => {
|
|
111
|
+
const s = {};
|
|
112
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
113
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
114
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
115
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
116
|
+
return s;
|
|
117
|
+
});
|
|
105
118
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[sectionPad]" :dir="textDirection" :style="{ backgroundColor: bgColor, color: textColor }">
|
|
2
|
+
<section :class="[sectionPad]" :dir="textDirection" :style="[{ backgroundColor: bgColor, color: textColor }, spacingStyle]">
|
|
3
3
|
|
|
4
4
|
<!-- SPLIT -->
|
|
5
5
|
<div v-if="layout === 'split'" :class="[containerClass, 'flex flex-col md:flex-row gap-12 items-center', reverse ? 'md:flex-row-reverse' : '']">
|
|
@@ -101,4 +101,13 @@ const imageContainerClass = computed(() => {
|
|
|
101
101
|
const styles = { rounded: `aspect-[4/3] ${r}`, square: "aspect-square rounded-xl", circle: "aspect-square rounded-full max-w-[360px] mx-auto", portrait: `aspect-[3/4] ${r} max-w-sm mx-auto` };
|
|
102
102
|
return styles[props.imageStyle] ?? styles.rounded;
|
|
103
103
|
});
|
|
104
|
+
const SM = { none: "0", xs: "8px", sm: "24px", md: "48px", lg: "80px", xl: "128px", "-xs": "-8px", "-sm": "-24px", "-md": "-48px", "-lg": "-80px", "-xl": "-128px" };
|
|
105
|
+
const spacingStyle = computed(() => {
|
|
106
|
+
const s = {};
|
|
107
|
+
if (props.paddingTop && SM[props.paddingTop]) s.paddingTop = SM[props.paddingTop];
|
|
108
|
+
if (props.paddingBottom && SM[props.paddingBottom]) s.paddingBottom = SM[props.paddingBottom];
|
|
109
|
+
if (props.marginTop && SM[props.marginTop]) s.marginTop = SM[props.marginTop];
|
|
110
|
+
if (props.marginBottom && SM[props.marginBottom]) s.marginBottom = SM[props.marginBottom];
|
|
111
|
+
return s;
|
|
112
|
+
});
|
|
104
113
|
</script>
|
|
@@ -48,6 +48,29 @@ const textSizeOptions = [
|
|
|
48
48
|
{ value: "md", label: "Normal", icon: "M" },
|
|
49
49
|
{ value: "lg", label: "Large", icon: "L" }
|
|
50
50
|
];
|
|
51
|
+
const paddingOptions = [
|
|
52
|
+
{ value: "", label: "Auto" },
|
|
53
|
+
{ value: "none", label: "None (0)" },
|
|
54
|
+
{ value: "xs", label: "XS (8px)" },
|
|
55
|
+
{ value: "sm", label: "SM (24px)" },
|
|
56
|
+
{ value: "md", label: "MD (48px)" },
|
|
57
|
+
{ value: "lg", label: "LG (80px)" },
|
|
58
|
+
{ value: "xl", label: "XL (128px)" }
|
|
59
|
+
];
|
|
60
|
+
const marginOptions = [
|
|
61
|
+
{ value: "", label: "Auto" },
|
|
62
|
+
{ value: "none", label: "None (0)" },
|
|
63
|
+
{ value: "xs", label: "XS (8px)" },
|
|
64
|
+
{ value: "sm", label: "SM (24px)" },
|
|
65
|
+
{ value: "md", label: "MD (48px)" },
|
|
66
|
+
{ value: "lg", label: "LG (80px)" },
|
|
67
|
+
{ value: "xl", label: "XL (128px)" },
|
|
68
|
+
{ value: "-xs", label: "-XS (-8px)" },
|
|
69
|
+
{ value: "-sm", label: "-SM (-24px)" },
|
|
70
|
+
{ value: "-md", label: "-MD (-48px)" },
|
|
71
|
+
{ value: "-lg", label: "-LG (-80px)" },
|
|
72
|
+
{ value: "-xl", label: "-XL (-128px)" }
|
|
73
|
+
];
|
|
51
74
|
const i18n0 = (fr = "") => ({ fr, ar: "", en: "" });
|
|
52
75
|
export const DEFAULT_SECTIONS = {
|
|
53
76
|
HeroSection: {
|
|
@@ -72,7 +95,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
72
95
|
radius: "rounded",
|
|
73
96
|
textDirection: "ltr",
|
|
74
97
|
contentWidth: "normal",
|
|
75
|
-
textSize: "md"
|
|
98
|
+
textSize: "md",
|
|
99
|
+
paddingTop: "",
|
|
100
|
+
paddingBottom: "",
|
|
101
|
+
marginTop: "",
|
|
102
|
+
marginBottom: ""
|
|
76
103
|
},
|
|
77
104
|
groups: [
|
|
78
105
|
{ key: "design", label: "Design" },
|
|
@@ -105,7 +132,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
105
132
|
textDirection: { type: "cards", label: "Direction", group: "design", options: directionOptions },
|
|
106
133
|
contentWidth: { type: "cards", label: "Content Width", group: "design", options: contentWidthOptions },
|
|
107
134
|
textSize: { type: "cards", label: "Text Size", group: "design", options: textSizeOptions },
|
|
108
|
-
animation: { type: "cards", label: "Animation", group: "animation", options: animationOptions }
|
|
135
|
+
animation: { type: "cards", label: "Animation", group: "animation", options: animationOptions },
|
|
136
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
137
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
138
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
139
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
109
140
|
}
|
|
110
141
|
},
|
|
111
142
|
TextVisual: {
|
|
@@ -130,7 +161,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
130
161
|
radius: "rounded",
|
|
131
162
|
textDirection: "ltr",
|
|
132
163
|
contentWidth: "normal",
|
|
133
|
-
textSize: "md"
|
|
164
|
+
textSize: "md",
|
|
165
|
+
paddingTop: "",
|
|
166
|
+
paddingBottom: "",
|
|
167
|
+
marginTop: "",
|
|
168
|
+
marginBottom: ""
|
|
134
169
|
},
|
|
135
170
|
fields: {
|
|
136
171
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -165,7 +200,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
165
200
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
166
201
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
167
202
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
168
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
203
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
204
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
205
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
206
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
207
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
169
208
|
}
|
|
170
209
|
},
|
|
171
210
|
ServiceGrid: {
|
|
@@ -187,7 +226,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
187
226
|
radius: "rounded",
|
|
188
227
|
textDirection: "ltr",
|
|
189
228
|
contentWidth: "normal",
|
|
190
|
-
textSize: "md"
|
|
229
|
+
textSize: "md",
|
|
230
|
+
paddingTop: "",
|
|
231
|
+
paddingBottom: "",
|
|
232
|
+
marginTop: "",
|
|
233
|
+
marginBottom: ""
|
|
191
234
|
},
|
|
192
235
|
fields: {
|
|
193
236
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -215,7 +258,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
215
258
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
216
259
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
217
260
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
218
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
261
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
262
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
263
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
264
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
265
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
219
266
|
}
|
|
220
267
|
},
|
|
221
268
|
Features: {
|
|
@@ -230,7 +277,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
230
277
|
radius: "rounded",
|
|
231
278
|
textDirection: "ltr",
|
|
232
279
|
contentWidth: "normal",
|
|
233
|
-
textSize: "md"
|
|
280
|
+
textSize: "md",
|
|
281
|
+
paddingTop: "",
|
|
282
|
+
paddingBottom: "",
|
|
283
|
+
marginTop: "",
|
|
284
|
+
marginBottom: ""
|
|
234
285
|
},
|
|
235
286
|
fields: {
|
|
236
287
|
title: { type: "text", label: "Section Title", i18n: true },
|
|
@@ -244,7 +295,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
244
295
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
245
296
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
246
297
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
247
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
298
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
299
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
300
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
301
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
302
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
248
303
|
}
|
|
249
304
|
},
|
|
250
305
|
FAQ: {
|
|
@@ -259,7 +314,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
259
314
|
radius: "rounded",
|
|
260
315
|
textDirection: "ltr",
|
|
261
316
|
contentWidth: "narrow",
|
|
262
|
-
textSize: "md"
|
|
317
|
+
textSize: "md",
|
|
318
|
+
paddingTop: "",
|
|
319
|
+
paddingBottom: "",
|
|
320
|
+
marginTop: "",
|
|
321
|
+
marginBottom: ""
|
|
263
322
|
},
|
|
264
323
|
fields: {
|
|
265
324
|
title: { type: "text", label: "Title", i18n: true },
|
|
@@ -273,7 +332,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
273
332
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
274
333
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
275
334
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
276
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
335
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
336
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
337
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
338
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
339
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
277
340
|
}
|
|
278
341
|
},
|
|
279
342
|
Process: {
|
|
@@ -292,7 +355,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
292
355
|
radius: "rounded",
|
|
293
356
|
textDirection: "ltr",
|
|
294
357
|
contentWidth: "normal",
|
|
295
|
-
textSize: "md"
|
|
358
|
+
textSize: "md",
|
|
359
|
+
paddingTop: "",
|
|
360
|
+
paddingBottom: "",
|
|
361
|
+
marginTop: "",
|
|
362
|
+
marginBottom: ""
|
|
296
363
|
},
|
|
297
364
|
fields: {
|
|
298
365
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -317,7 +384,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
317
384
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
318
385
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
319
386
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
320
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
387
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
388
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
389
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
390
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
391
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
321
392
|
}
|
|
322
393
|
},
|
|
323
394
|
Testimonials: {
|
|
@@ -336,7 +407,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
336
407
|
radius: "rounded",
|
|
337
408
|
textDirection: "ltr",
|
|
338
409
|
contentWidth: "normal",
|
|
339
|
-
textSize: "md"
|
|
410
|
+
textSize: "md",
|
|
411
|
+
paddingTop: "",
|
|
412
|
+
paddingBottom: "",
|
|
413
|
+
marginTop: "",
|
|
414
|
+
marginBottom: ""
|
|
340
415
|
},
|
|
341
416
|
fields: {
|
|
342
417
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -363,7 +438,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
363
438
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
364
439
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
365
440
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
366
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
441
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
442
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
443
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
444
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
445
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
367
446
|
}
|
|
368
447
|
},
|
|
369
448
|
Pricing: {
|
|
@@ -382,7 +461,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
382
461
|
radius: "rounded",
|
|
383
462
|
textDirection: "ltr",
|
|
384
463
|
contentWidth: "normal",
|
|
385
|
-
textSize: "md"
|
|
464
|
+
textSize: "md",
|
|
465
|
+
paddingTop: "",
|
|
466
|
+
paddingBottom: "",
|
|
467
|
+
marginTop: "",
|
|
468
|
+
marginBottom: ""
|
|
386
469
|
},
|
|
387
470
|
fields: {
|
|
388
471
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -409,7 +492,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
409
492
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
410
493
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
411
494
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
412
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
495
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
496
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
497
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
498
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
499
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
413
500
|
}
|
|
414
501
|
},
|
|
415
502
|
ContactForm: {
|
|
@@ -427,7 +514,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
427
514
|
radius: "rounded",
|
|
428
515
|
textDirection: "ltr",
|
|
429
516
|
contentWidth: "normal",
|
|
430
|
-
textSize: "md"
|
|
517
|
+
textSize: "md",
|
|
518
|
+
paddingTop: "",
|
|
519
|
+
paddingBottom: "",
|
|
520
|
+
marginTop: "",
|
|
521
|
+
marginBottom: ""
|
|
431
522
|
},
|
|
432
523
|
fields: {
|
|
433
524
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -445,7 +536,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
445
536
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
446
537
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
447
538
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
448
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
539
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
540
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
541
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
542
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
543
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
449
544
|
}
|
|
450
545
|
},
|
|
451
546
|
// ── Blog sections ─────────────────────────────────────────────────────────
|
|
@@ -470,7 +565,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
470
565
|
textDirection: "ltr",
|
|
471
566
|
contentWidth: "narrow",
|
|
472
567
|
textSize: "md",
|
|
473
|
-
textAlign: "center"
|
|
568
|
+
textAlign: "center",
|
|
569
|
+
paddingTop: "",
|
|
570
|
+
paddingBottom: "",
|
|
571
|
+
marginTop: "",
|
|
572
|
+
marginBottom: ""
|
|
474
573
|
},
|
|
475
574
|
fields: {
|
|
476
575
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -498,7 +597,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
498
597
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
499
598
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
500
599
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
501
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
600
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
601
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
602
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
603
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
604
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
502
605
|
}
|
|
503
606
|
},
|
|
504
607
|
RichText: {
|
|
@@ -516,7 +619,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
516
619
|
radius: "rounded",
|
|
517
620
|
textDirection: "ltr",
|
|
518
621
|
contentWidth: "normal",
|
|
519
|
-
textSize: "md"
|
|
622
|
+
textSize: "md",
|
|
623
|
+
paddingTop: "",
|
|
624
|
+
paddingBottom: "",
|
|
625
|
+
marginTop: "",
|
|
626
|
+
marginBottom: ""
|
|
520
627
|
},
|
|
521
628
|
fields: {
|
|
522
629
|
layout: { type: "cards", label: "Width", options: [
|
|
@@ -536,7 +643,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
536
643
|
spacing: { type: "cards", label: "Espacement", options: spacingOptions },
|
|
537
644
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
538
645
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
539
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
646
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
647
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
648
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
649
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
650
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
540
651
|
}
|
|
541
652
|
},
|
|
542
653
|
CallToAction: {
|
|
@@ -557,7 +668,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
557
668
|
radius: "rounded",
|
|
558
669
|
textDirection: "ltr",
|
|
559
670
|
contentWidth: "normal",
|
|
560
|
-
textSize: "md"
|
|
671
|
+
textSize: "md",
|
|
672
|
+
paddingTop: "",
|
|
673
|
+
paddingBottom: "",
|
|
674
|
+
marginTop: "",
|
|
675
|
+
marginBottom: ""
|
|
561
676
|
},
|
|
562
677
|
fields: {
|
|
563
678
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -578,7 +693,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
578
693
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
579
694
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
580
695
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
581
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
696
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
697
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
698
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
699
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
700
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
582
701
|
}
|
|
583
702
|
},
|
|
584
703
|
Quote: {
|
|
@@ -595,7 +714,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
595
714
|
spacing: "normal",
|
|
596
715
|
textDirection: "ltr",
|
|
597
716
|
contentWidth: "narrow",
|
|
598
|
-
textSize: "md"
|
|
717
|
+
textSize: "md",
|
|
718
|
+
paddingTop: "",
|
|
719
|
+
paddingBottom: "",
|
|
720
|
+
marginTop: "",
|
|
721
|
+
marginBottom: ""
|
|
599
722
|
},
|
|
600
723
|
fields: {
|
|
601
724
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -612,7 +735,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
612
735
|
spacing: { type: "cards", label: "Espacement", options: spacingOptions },
|
|
613
736
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
614
737
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
615
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
738
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
739
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
740
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
741
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
742
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
616
743
|
}
|
|
617
744
|
},
|
|
618
745
|
DataTable: {
|
|
@@ -650,7 +777,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
650
777
|
radius: "rounded",
|
|
651
778
|
textDirection: "ltr",
|
|
652
779
|
contentWidth: "normal",
|
|
653
|
-
textSize: "md"
|
|
780
|
+
textSize: "md",
|
|
781
|
+
paddingTop: "",
|
|
782
|
+
paddingBottom: "",
|
|
783
|
+
marginTop: "",
|
|
784
|
+
marginBottom: ""
|
|
654
785
|
},
|
|
655
786
|
fields: {
|
|
656
787
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -692,7 +823,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
692
823
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
693
824
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
694
825
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
695
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
826
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
827
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
828
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
829
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
830
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
696
831
|
}
|
|
697
832
|
},
|
|
698
833
|
Comparison: {
|
|
@@ -718,7 +853,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
718
853
|
radius: "rounded",
|
|
719
854
|
textDirection: "ltr",
|
|
720
855
|
contentWidth: "normal",
|
|
721
|
-
textSize: "md"
|
|
856
|
+
textSize: "md",
|
|
857
|
+
paddingTop: "",
|
|
858
|
+
paddingBottom: "",
|
|
859
|
+
marginTop: "",
|
|
860
|
+
marginBottom: ""
|
|
722
861
|
},
|
|
723
862
|
fields: {
|
|
724
863
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -753,7 +892,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
753
892
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
754
893
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
755
894
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
756
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
895
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
896
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
897
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
898
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
899
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
757
900
|
}
|
|
758
901
|
},
|
|
759
902
|
RelatedPages: {
|
|
@@ -775,7 +918,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
775
918
|
radius: "rounded",
|
|
776
919
|
textDirection: "ltr",
|
|
777
920
|
contentWidth: "normal",
|
|
778
|
-
textSize: "md"
|
|
921
|
+
textSize: "md",
|
|
922
|
+
paddingTop: "",
|
|
923
|
+
paddingBottom: "",
|
|
924
|
+
marginTop: "",
|
|
925
|
+
marginBottom: ""
|
|
779
926
|
},
|
|
780
927
|
fields: {
|
|
781
928
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -800,7 +947,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
800
947
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
801
948
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
802
949
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
803
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
950
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
951
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
952
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
953
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
954
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
804
955
|
}
|
|
805
956
|
},
|
|
806
957
|
Newsletter: {
|
|
@@ -820,7 +971,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
820
971
|
radius: "rounded",
|
|
821
972
|
textDirection: "ltr",
|
|
822
973
|
contentWidth: "normal",
|
|
823
|
-
textSize: "md"
|
|
974
|
+
textSize: "md",
|
|
975
|
+
paddingTop: "",
|
|
976
|
+
paddingBottom: "",
|
|
977
|
+
marginTop: "",
|
|
978
|
+
marginBottom: ""
|
|
824
979
|
},
|
|
825
980
|
fields: {
|
|
826
981
|
layout: { type: "cards", label: "Layout", options: [
|
|
@@ -840,7 +995,11 @@ export const DEFAULT_SECTIONS = {
|
|
|
840
995
|
radius: { type: "cards", label: "Arrondis", options: radiusOptions },
|
|
841
996
|
textDirection: { type: "cards", label: "Direction", options: directionOptions },
|
|
842
997
|
contentWidth: { type: "cards", label: "Content Width", options: contentWidthOptions },
|
|
843
|
-
textSize: { type: "cards", label: "Text Size", options: textSizeOptions }
|
|
998
|
+
textSize: { type: "cards", label: "Text Size", options: textSizeOptions },
|
|
999
|
+
paddingTop: { type: "select", label: "Padding Top", options: paddingOptions },
|
|
1000
|
+
paddingBottom: { type: "select", label: "Padding Bottom", options: paddingOptions },
|
|
1001
|
+
marginTop: { type: "select", label: "Margin Top", options: marginOptions },
|
|
1002
|
+
marginBottom: { type: "select", label: "Margin Bottom", options: marginOptions }
|
|
844
1003
|
}
|
|
845
1004
|
}
|
|
846
1005
|
};
|