@dcodegroup-au/page-builder 0.6.0 → 0.6.2
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/page-builder.css +10 -21
- package/dist/page-builder.es.js +240 -213
- package/dist/page-builder.umd.js +240 -213
- package/package.json +1 -1
- package/src/components/LinkCardEdit.vue +4 -4
- package/src/components/PageRender.vue +1 -0
- package/src/components/presenters/modules/HorizontalTabs.vue +6 -9
- package/src/components/presenters/modules/Paragraph.vue +5 -4
- package/src/components/presenters/modules/StandardHeader.vue +1 -1
- package/src/components/presenters/modules/TestimonialSlider.vue +22 -20
- package/src/components/presenters/modules/TwoColumnsImageContent.vue +16 -4
package/package.json
CHANGED
|
@@ -16,17 +16,17 @@
|
|
|
16
16
|
<input-wrapper
|
|
17
17
|
is-vertical
|
|
18
18
|
field="title"
|
|
19
|
-
label-text="Title *"
|
|
19
|
+
:label-text="item?.title_label ? item.title_label : 'Title *'"
|
|
20
20
|
class="w-full"
|
|
21
21
|
:value="form.title"
|
|
22
|
-
:limit="
|
|
22
|
+
:limit="100"
|
|
23
23
|
>
|
|
24
24
|
<input
|
|
25
25
|
v-model="form.title"
|
|
26
26
|
name="title"
|
|
27
27
|
type="text"
|
|
28
28
|
placeholder="Title"
|
|
29
|
-
:maxlength="
|
|
29
|
+
:maxlength="100"
|
|
30
30
|
class="border-1 border-solid border-gray-300 rounded-lg bg-white w-full"
|
|
31
31
|
/>
|
|
32
32
|
</input-wrapper>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<input-wrapper
|
|
35
35
|
is-vertical
|
|
36
36
|
field="description"
|
|
37
|
-
label-text="Supporting Text *"
|
|
37
|
+
:label-text="item?.description_label ? item.description_label : 'Supporting Text *'"
|
|
38
38
|
class="w-full mb-4"
|
|
39
39
|
:value="descriptionWordCount"
|
|
40
40
|
:show-count="true"
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
<div
|
|
39
39
|
:class="[
|
|
40
40
|
'p-8 rounded-[20px] text-left min-h-full',
|
|
41
|
-
|
|
41
|
+
'bg-brand-25'
|
|
42
42
|
]"
|
|
43
43
|
>
|
|
44
44
|
<span
|
|
45
45
|
:class="[
|
|
46
46
|
'w-12 h-12 flex items-center justify-center rounded-full mb-4',
|
|
47
|
-
|
|
47
|
+
'bg-brand-100 text-brand-600'
|
|
48
48
|
]"
|
|
49
49
|
>
|
|
50
50
|
<StarIcon class="w-5 h-5"></StarIcon>
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
<h3
|
|
53
53
|
:class="[
|
|
54
54
|
'text-4xl leading-10 font-semibold mb-4',
|
|
55
|
-
|
|
55
|
+
'text-brand-700'
|
|
56
56
|
]"
|
|
57
57
|
>
|
|
58
58
|
{{ activeMembership.name }}
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
</ul>
|
|
82
82
|
</div>
|
|
83
83
|
|
|
84
|
-
<div v-if="activeMembership.excludes" class="flex-1">
|
|
84
|
+
<div v-if="activeMembership.excludes && activeMembership.excludes?.list?.length" class="flex-1">
|
|
85
85
|
<h4 class="font-bold text-gray-900 leading-6 mb-6">{{ activeMembership.excludes.title }}</h4>
|
|
86
86
|
<ul>
|
|
87
87
|
<li
|
|
@@ -102,10 +102,7 @@
|
|
|
102
102
|
<!-- CTA Button -->
|
|
103
103
|
<a
|
|
104
104
|
:href="activeMembership.url"
|
|
105
|
-
class="py-3 px-6 rounded-full font-semibold flex items-center justify-center transition-colors"
|
|
106
|
-
:class="activeMembership.theme === 'dark'
|
|
107
|
-
? 'bg-brand-800 text-white hover:bg-brand-700'
|
|
108
|
-
: 'bg-navy-600 text-white hover:bg-navy-500'"
|
|
105
|
+
class="py-3 px-6 rounded-full font-semibold flex items-center justify-center transition-colors bg-brand-600 text-white hover:bg-brand-700"
|
|
109
106
|
>
|
|
110
107
|
{{ activeMembership.button.label }}
|
|
111
108
|
<span class="ml-2"><ArrowUpRight class="w-5 h-5"></ArrowUpRight></span>
|
|
@@ -152,7 +149,7 @@ const activeMembership = computed(() =>
|
|
|
152
149
|
<style scoped>
|
|
153
150
|
.fade-enter-active,
|
|
154
151
|
.fade-leave-active {
|
|
155
|
-
transition: opacity 0.
|
|
152
|
+
transition: opacity 0.1s ease;
|
|
156
153
|
}
|
|
157
154
|
.fade-enter-from,
|
|
158
155
|
.fade-leave-to {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="overflow-hidden mt-4">
|
|
3
|
-
<div class="max-w-[1640px] md:px-[120px] mx-auto w-full pt-4 mb-4 flex gap-16 items-center" :class="{'flex-row-reverse mt-6 !mb-10': section?.revert}">
|
|
4
|
-
<div class="max-w-[800px] py-4" :class="{'!max-w-full w-full': section?.is_full_width }" v-if="component?.title" ref="leftColumn">
|
|
5
|
-
<h3 class="text-[36px] text-gray-900 font-semibold">
|
|
3
|
+
<div class="max-w-[1640px] md:px-[120px] mx-auto w-full pt-4 mb-4 flex gap-16 items-center" :class="{'flex-row-reverse mt-6 !mb-10': section?.revert, 'justify-center': section?.center }">
|
|
4
|
+
<div class="max-w-[800px] py-4" :class="{'!max-w-full w-full': section?.is_full_width }" v-if="component?.title || component?.paragraph" ref="leftColumn">
|
|
5
|
+
<h3 class="text-[36px] text-gray-900 font-semibold" v-if="component?.title">
|
|
6
6
|
{{ component.title }}
|
|
7
7
|
</h3>
|
|
8
|
-
<div class="all-unset">
|
|
8
|
+
<div class="all-unset ql-editor">
|
|
9
9
|
<div v-html="component.paragraph"></div>
|
|
10
10
|
<div v-if="component?.hasOwnProperty('button') && button.show">
|
|
11
11
|
<a :href="button.url"
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
import {ref, onMounted, computed} from "vue";
|
|
41
41
|
import PlayButton from "@/assets/svg/play.svg";
|
|
42
42
|
import ArrowUpRight from "@/assets/img/icons/arrow-up-right.svg";
|
|
43
|
+
import "quill/dist/quill.snow.css";
|
|
43
44
|
|
|
44
45
|
const props = defineProps({
|
|
45
46
|
section: {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:target="headerComponent.secondary_button.open_in_new_tab ? '_blank' : ''">
|
|
15
15
|
<span>{{ headerComponent.secondary_button.label }}</span>
|
|
16
16
|
</a>
|
|
17
|
-
<a class="
|
|
17
|
+
<a class="bg-brand-600 hover:bg-brand-800 text-white h-[40px] rounded-full px-[14px] py-[10px] inline-flex gap-1.5 items-center shadow-xs text-base"
|
|
18
18
|
:href="formatUrl(headerComponent.primary_button.url)"
|
|
19
19
|
v-if="headerComponent.primary_button.show"
|
|
20
20
|
:target="headerComponent.primary_button.open_in_new_tab ? '_blank' : ''">
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
<Star class="w-5 h-5 text-yellow-100"></Star>
|
|
18
18
|
</template>
|
|
19
19
|
</span>
|
|
20
|
-
<h3 class="font-
|
|
21
|
-
<p class="text-gray-600"
|
|
20
|
+
<h3 class="font-semibold text-3xl leading-9" v-html="feature.description"></h3>
|
|
21
|
+
<p class="text-gray-600">{{ feature.title }}</p>
|
|
22
22
|
</article>
|
|
23
|
-
<div class="w-[
|
|
23
|
+
<div class="h-[480px] w-[560px]">
|
|
24
24
|
<img
|
|
25
25
|
v-if="feature.featured_image"
|
|
26
26
|
:src="feature.featured_image"
|
|
27
27
|
alt="Audience smiling"
|
|
28
|
-
class="rounded-tl-3xl rounded-br-3xl"
|
|
28
|
+
class="rounded-tl-3xl rounded-br-3xl w-full h-full object-cover"
|
|
29
29
|
/>
|
|
30
30
|
<img
|
|
31
31
|
v-else
|
|
32
|
-
class="rounded-tl-3xl rounded-br-3xl"
|
|
32
|
+
class="rounded-tl-3xl rounded-br-3xl object-cover"
|
|
33
33
|
src="@/assets/img/no_image_available.jpeg"
|
|
34
34
|
alt="No Image Available">
|
|
35
35
|
</div>
|
|
@@ -38,21 +38,23 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
|
|
40
40
|
<!-- Controls -->
|
|
41
|
-
<footer class="flex max-w-[1640px] md:px-[120px] mx-auto w-full gap-4
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
<footer class="flex max-w-[1640px] md:px-[120px] mx-auto w-full gap-4 relative">
|
|
42
|
+
<div class="absolute bottom-[40px] left-[120px] w-full gap-4 flex">
|
|
43
|
+
<button
|
|
44
|
+
type="button"
|
|
45
|
+
@click="prevSlide"
|
|
46
|
+
class="w-12 h-12 border border-gray-200 rounded-full flex items-center justify-center bg-gray-50"
|
|
47
|
+
>
|
|
48
|
+
<ArrowLeft class="w-6 h-6 text-gray-500"></ArrowLeft>
|
|
49
|
+
</button>
|
|
50
|
+
<button
|
|
51
|
+
type="button"
|
|
52
|
+
@click="nextSlide"
|
|
53
|
+
class="w-12 h-12 border border-gray-200 rounded-full flex items-center justify-center bg-gray-50"
|
|
54
|
+
>
|
|
55
|
+
<ArrowRight class="w-6 h-6 text-gray-500"></ArrowRight>
|
|
56
|
+
</button>
|
|
57
|
+
</div>
|
|
56
58
|
</footer>
|
|
57
59
|
</div>
|
|
58
60
|
</section>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div :class="featureItemsComponent.hasOwnProperty('grid_columns') ? '' : 'flex flex-row gap-8'">
|
|
26
26
|
<div class="grid gap-8"
|
|
27
27
|
:class="featureItemsComponent.hasOwnProperty('grid_columns') ? `grid-cols-${featureItemsComponent.grid_columns}` : 'grid-cols-2 w-2/3'">
|
|
28
|
-
<div v-for="item in
|
|
28
|
+
<div v-for="item in items"
|
|
29
29
|
class="flex gap-3 w-full"
|
|
30
30
|
:class="{
|
|
31
31
|
'bg-gray-50 p-8 rounded-[24px] overflow-hidden flex-col' : featureItemsComponent.hasOwnProperty('grid_columns') && (featureItemsComponent.grid_columns > 2 || featureItemsComponent?.has_background),
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
class="max-w-[48px] min-w-[48px] w-full h-[48px] bg-brand-100 border-[8px] border-brand-50 rounded-full flex items-center justify-center">
|
|
37
37
|
<IconComponent :icon="item.icon" icon-classes="w-5 h-5 text-brand-600"></IconComponent>
|
|
38
38
|
</div>
|
|
39
|
-
<div class="max-w-[324px]" :class="{'max-w-full': featureItemsComponent?.has_background}">
|
|
39
|
+
<div class="max-w-[324px] q-editor" :class="{'max-w-full': featureItemsComponent?.has_background}">
|
|
40
40
|
<h3 class="font-semibold text-[20px] text-gray-900">{{ item.title }}</h3>
|
|
41
|
-
<p class="mt-2 text-md font-normal text-gray-600 leading-[24px]"
|
|
41
|
+
<p class="mt-2 text-md font-normal text-gray-600 leading-[24px]" v-html="item.supporting_text ?? item.description"></p>
|
|
42
42
|
<a
|
|
43
|
-
v-if="item?.primary_button?.show
|
|
43
|
+
v-if="item?.primary_button?.show"
|
|
44
44
|
class="text-brand-700 inline-flex gap-1.5 items-center font-semibold text-base mt-4"
|
|
45
45
|
:href="formatUrl(item.primary_button.url)"
|
|
46
46
|
:target="item.primary_button.open_in_new_tab ? '_blank' : ''">
|
|
@@ -67,6 +67,7 @@ import IconComponent from "@/components/common/Icon.vue";
|
|
|
67
67
|
import {ref, computed, onMounted} from "vue";
|
|
68
68
|
import {formatUrl} from "@/components/helpers/common";
|
|
69
69
|
import ArrowUpRight from "@/assets/img/icons/arrow-up-right.svg";
|
|
70
|
+
import "quill/dist/quill.snow.css";
|
|
70
71
|
|
|
71
72
|
const props = defineProps({
|
|
72
73
|
section: {
|
|
@@ -88,6 +89,7 @@ const headerComponent = computed(() => {
|
|
|
88
89
|
const imageComponent = computed(() => {
|
|
89
90
|
return section.value.components.find((component) => component.type === "image_block");
|
|
90
91
|
});
|
|
92
|
+
|
|
91
93
|
const featureItemsComponent = computed(() => {
|
|
92
94
|
let c = section.value.components.find((component) => component.type === "feature_items");
|
|
93
95
|
if (!c) {
|
|
@@ -97,6 +99,16 @@ const featureItemsComponent = computed(() => {
|
|
|
97
99
|
return c;
|
|
98
100
|
});
|
|
99
101
|
|
|
102
|
+
const items = computed(() => {
|
|
103
|
+
return (featureItemsComponent.value.data || []).filter(function (o) {
|
|
104
|
+
if (o.hasOwnProperty('public')) {
|
|
105
|
+
return o.public;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return true;
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
100
112
|
onMounted(() => {
|
|
101
113
|
if (leftColumn.value && rightColumn.value && section.value?.minimum_height) {
|
|
102
114
|
rightColumn.value.style.height = `${leftColumn.value.offsetHeight}px`;
|