@myissue/vue-website-page-builder 3.3.72 → 3.3.73
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 +61 -0
- package/dist/ar-Sg258Eh1.js +110 -0
- package/dist/de-DU6Hv8W2.js +112 -0
- package/dist/en-B__-m2Os.js +112 -0
- package/dist/es-DmzWA1F8.js +112 -0
- package/dist/fr-BARDIQ1D.js +112 -0
- package/dist/hi-BgQJcRDP.js +112 -0
- package/dist/ja-Drg74-B1.js +112 -0
- package/dist/pt-D19DpjTw.js +112 -0
- package/dist/robots.txt +1 -1
- package/dist/ru-D0zybCPa.js +112 -0
- package/dist/style.css +1 -1
- package/dist/vue-website-page-builder.js +9436 -9301
- package/dist/vue-website-page-builder.umd.cjs +40 -40
- package/dist/zh-Hans-notf0z2N.js +112 -0
- package/package.json +1 -1
- package/src/App.vue +17 -1
- package/src/Components/PageBuilder/DefaultComponents/DefaultBuilderComponents.vue +10 -4
- package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +6 -2
- package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +23 -13
- package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +22 -9
- package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +15 -7
- package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +10 -6
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +1 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +1 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +12 -5
- package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +4 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +13 -5
- package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +14 -7
- package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +7 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +36 -16
- package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +26 -14
- package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +13 -10
- package/src/Components/TipTap/TipTapInput.vue +1 -1
- package/src/PageBuilder/PageBuilder.vue +115 -19
- package/src/composables/useTranslations.ts +28 -0
- package/src/css/style.css +2 -1
- package/src/locales/ar.json +85 -0
- package/src/locales/de.json +86 -0
- package/src/locales/en.json +93 -0
- package/src/locales/es.json +86 -0
- package/src/locales/fr.json +86 -0
- package/src/locales/hi.json +86 -0
- package/src/locales/ja.json +86 -0
- package/src/locales/pt.json +92 -0
- package/src/locales/ru.json +86 -0
- package/src/locales/zh-Hans.json +86 -0
- package/src/services/PageBuilderService.ts +63 -1
- package/src/stores/page-builder-state.ts +3 -3
- package/src/tests/PageBuilderTest.vue +40 -77
- package/src/types/index.ts +1 -1
|
@@ -4,6 +4,10 @@ import { sharedPageBuilderStore } from '../../../../stores/shared-store'
|
|
|
4
4
|
import EditorAccordion from '../EditorAccordion.vue'
|
|
5
5
|
import tailwindPaddingPlusMargin from '../../../../utils/builder/tailwind-padding-margin'
|
|
6
6
|
import { getPageBuilder } from '../../../../composables/builderInstance'
|
|
7
|
+
import { useTranslations } from '../../../../composables/useTranslations'
|
|
8
|
+
|
|
9
|
+
const { translate } = useTranslations()
|
|
10
|
+
|
|
7
11
|
const pageBuilderService = getPageBuilder()
|
|
8
12
|
|
|
9
13
|
// Use shared store instance
|
|
@@ -61,17 +65,19 @@ watch(
|
|
|
61
65
|
</script>
|
|
62
66
|
<template>
|
|
63
67
|
<EditorAccordion>
|
|
64
|
-
<template #title>Padding</template>
|
|
68
|
+
<template #title>{{ translate('Padding') }}</template>
|
|
65
69
|
<template #content>
|
|
66
70
|
<div class="pbx-my-2 pbx-py-2">
|
|
67
|
-
<label for="vertical-padding" class="pbx-myPrimaryInputLabel">
|
|
71
|
+
<label for="vertical-padding" class="pbx-myPrimaryInputLabel">{{
|
|
72
|
+
translate('Vertical Padding')
|
|
73
|
+
}}</label>
|
|
68
74
|
<select
|
|
69
75
|
id="vertical-padding"
|
|
70
76
|
v-model="fontVerticalPadding"
|
|
71
77
|
class="pbx-myPrimarySelect"
|
|
72
78
|
@change="pageBuilderService.handleVerticalPadding(fontVerticalPadding)"
|
|
73
79
|
>
|
|
74
|
-
<option disabled value="">Select</option>
|
|
80
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
75
81
|
<option
|
|
76
82
|
v-for="verticalPadding in tailwindPaddingPlusMargin.verticalPadding"
|
|
77
83
|
:key="verticalPadding"
|
|
@@ -82,14 +88,16 @@ watch(
|
|
|
82
88
|
</div>
|
|
83
89
|
<hr />
|
|
84
90
|
<div class="pbx-my-2 pbx-py-2">
|
|
85
|
-
<label for="horizontal-padding" class="pbx-myPrimaryInputLabel">
|
|
91
|
+
<label for="horizontal-padding" class="pbx-myPrimaryInputLabel">{{
|
|
92
|
+
translate('Horizontal Padding')
|
|
93
|
+
}}</label>
|
|
86
94
|
<select
|
|
87
95
|
id="horizontal-padding"
|
|
88
96
|
v-model="fontHorizontalPadding"
|
|
89
97
|
class="pbx-myPrimarySelect"
|
|
90
98
|
@change="pageBuilderService.handleHorizontalPadding(fontHorizontalPadding)"
|
|
91
99
|
>
|
|
92
|
-
<option disabled value="">Select</option>
|
|
100
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
93
101
|
<option
|
|
94
102
|
v-for="horizontalPadding in tailwindPaddingPlusMargin.horizontalPadding"
|
|
95
103
|
:key="horizontalPadding"
|
|
@@ -3,7 +3,9 @@ import { ref, computed, watch } from 'vue'
|
|
|
3
3
|
import { sharedPageBuilderStore } from '../../../../stores/shared-store'
|
|
4
4
|
import EditorAccordion from '../EditorAccordion.vue'
|
|
5
5
|
import { getPageBuilder } from '../../../../composables/builderInstance'
|
|
6
|
+
import { useTranslations } from '../../../../composables/useTranslations'
|
|
6
7
|
|
|
8
|
+
const { translate } = useTranslations()
|
|
7
9
|
const pageBuilderService = getPageBuilder()
|
|
8
10
|
|
|
9
11
|
const pageBuilderStateStore = sharedPageBuilderStore
|
|
@@ -56,11 +58,14 @@ const handleAddStyle = async () => {
|
|
|
56
58
|
|
|
57
59
|
<template>
|
|
58
60
|
<EditorAccordion>
|
|
59
|
-
<template #title>Inline Styles</template>
|
|
61
|
+
<template #title>{{ translate('Inline Styles') }}</template>
|
|
60
62
|
<template #content>
|
|
61
63
|
<label class="pbx-myPrimaryInputLabel pbx-my-4">
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
{{
|
|
65
|
+
translate(
|
|
66
|
+
'These are the inline styles applied by the builder. Add your own styles and press Enter to apply them to the selected element.',
|
|
67
|
+
)
|
|
68
|
+
}}
|
|
64
69
|
</label>
|
|
65
70
|
|
|
66
71
|
<div class="pbx-flex pbx-flex-row pbx-flex-wrap pbx-gap-2 pbx-mt-2 pbx-mb-4">
|
|
@@ -83,14 +88,14 @@ const handleAddStyle = async () => {
|
|
|
83
88
|
|
|
84
89
|
<div>
|
|
85
90
|
<label for="custom-style-property" class="pbx-myPrimaryInputLabel">
|
|
86
|
-
Add your own style.
|
|
91
|
+
{{ translate('Add your own style.') }}
|
|
87
92
|
</label>
|
|
88
93
|
<div class="pbx-flex pbx-gap-2 pbx-flex-col pbx-item-center">
|
|
89
94
|
<input
|
|
90
95
|
id="custom-style-property"
|
|
91
96
|
v-model="inputProperty"
|
|
92
97
|
type="text"
|
|
93
|
-
placeholder="property"
|
|
98
|
+
:placeholder="translate('property')"
|
|
94
99
|
@keydown.enter.prevent="handleEnterOnProperty"
|
|
95
100
|
autocomplete="off"
|
|
96
101
|
class="pbx-myPrimaryInput"
|
|
@@ -100,13 +105,15 @@ const handleAddStyle = async () => {
|
|
|
100
105
|
ref="valueInputRef"
|
|
101
106
|
v-model="inputValue"
|
|
102
107
|
type="text"
|
|
103
|
-
placeholder="value"
|
|
108
|
+
:placeholder="translate('value')"
|
|
104
109
|
@keydown.enter="handleAddStyle"
|
|
105
110
|
autocomplete="off"
|
|
106
111
|
class="pbx-myPrimaryInput"
|
|
107
112
|
/>
|
|
108
113
|
|
|
109
|
-
<button @click="handleAddStyle" type="button" class="pbx-myPrimaryButton">
|
|
114
|
+
<button @click="handleAddStyle" type="button" class="pbx-myPrimaryButton">
|
|
115
|
+
{{ translate('Add') }}
|
|
116
|
+
</button>
|
|
110
117
|
</div>
|
|
111
118
|
</div>
|
|
112
119
|
<p v-if="errorMessage" class="pbx-myPrimaryInputError">{{ errorMessage }}</p>
|
|
@@ -4,6 +4,10 @@ import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headless
|
|
|
4
4
|
import tailwindColors from '../../../../utils/builder/tailwaind-colors'
|
|
5
5
|
import { sharedPageBuilderStore } from '../../../../stores/shared-store'
|
|
6
6
|
import { getPageBuilder } from '../../../../composables/builderInstance'
|
|
7
|
+
import { useTranslations } from '../../../../composables/useTranslations'
|
|
8
|
+
|
|
9
|
+
const { translate } = useTranslations()
|
|
10
|
+
|
|
7
11
|
const pageBuilderService = getPageBuilder()
|
|
8
12
|
|
|
9
13
|
// Use shared store instance
|
|
@@ -49,7 +53,9 @@ watch(
|
|
|
49
53
|
class="pbx-aspect-square pbx-w-6 pbx-h-6 pbx-border pbx-border-gray-800 pbx-rounded-sm"
|
|
50
54
|
:class="`pbx-bg-${textColor?.replace('pbx-text-', '')}`"
|
|
51
55
|
></div>
|
|
52
|
-
<div>
|
|
56
|
+
<div>
|
|
57
|
+
<div>{{ translate('Text Color') }}</div>
|
|
58
|
+
</div>
|
|
53
59
|
</div>
|
|
54
60
|
|
|
55
61
|
<span v-if="globalPageLayout" class="material-symbols-outlined"> chevron_right </span>
|
|
@@ -5,6 +5,10 @@ import tailwindFontSizes from '../../../../utils/builder/tailwind-font-sizes'
|
|
|
5
5
|
import tailwindFontStyles from '../../../../utils/builder/tailwind-font-styles'
|
|
6
6
|
import { sharedPageBuilderStore } from '../../../../stores/shared-store'
|
|
7
7
|
import { getPageBuilder } from '../../../../composables/builderInstance'
|
|
8
|
+
|
|
9
|
+
import { useTranslations } from '../../../../composables/useTranslations'
|
|
10
|
+
|
|
11
|
+
const { translate } = useTranslations()
|
|
8
12
|
const pageBuilderService = getPageBuilder()
|
|
9
13
|
|
|
10
14
|
// Use shared store instance
|
|
@@ -99,20 +103,24 @@ watch(
|
|
|
99
103
|
|
|
100
104
|
<template>
|
|
101
105
|
<EditorAccordion>
|
|
102
|
-
<template #title> Typographies </template>
|
|
106
|
+
<template #title>{{ translate('Typographies') }}</template>
|
|
103
107
|
<template #content>
|
|
104
108
|
<!-- FONT SIZES -->
|
|
105
|
-
<p class="pbx-myPrimaryParagraph pbx-font-medium pbx-py-0 pbx-my-4">
|
|
109
|
+
<p class="pbx-myPrimaryParagraph pbx-font-medium pbx-py-0 pbx-my-4">
|
|
110
|
+
{{ translate('Font Appearance') }}
|
|
111
|
+
</p>
|
|
106
112
|
<template v-if="false">
|
|
107
113
|
<div class="pbx-my-2 pbx-py-2">
|
|
108
|
-
<label for="font-base" class="pbx-myPrimaryInputLabel">
|
|
114
|
+
<label for="font-base" class="pbx-myPrimaryInputLabel">
|
|
115
|
+
{{ translate('Font Size') }}
|
|
116
|
+
</label>
|
|
109
117
|
<select
|
|
110
118
|
id="font-base"
|
|
111
119
|
v-model="fontBase"
|
|
112
120
|
class="pbx-myPrimarySelect"
|
|
113
121
|
@change="pageBuilderService.handleFontSizeBase(fontBase)"
|
|
114
122
|
>
|
|
115
|
-
<option disabled value="">Select</option>
|
|
123
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
116
124
|
<option v-for="fontSize in tailwindFontSizes.fontBase" :key="fontSize">
|
|
117
125
|
{{ fontSize }}
|
|
118
126
|
</option>
|
|
@@ -120,14 +128,16 @@ watch(
|
|
|
120
128
|
</div>
|
|
121
129
|
</template>
|
|
122
130
|
<div class="pbx-my-2 pbx-py-2">
|
|
123
|
-
<label for="font-desktop" class="pbx-myPrimaryInputLabel">
|
|
131
|
+
<label for="font-desktop" class="pbx-myPrimaryInputLabel">
|
|
132
|
+
{{ translate('Font size') }}
|
|
133
|
+
</label>
|
|
124
134
|
<select
|
|
125
135
|
id="font-desktop"
|
|
126
136
|
v-model="fontDesktop"
|
|
127
137
|
class="pbx-myPrimarySelect"
|
|
128
138
|
@change="pageBuilderService.handleFontSizeDesktop(fontDesktop)"
|
|
129
139
|
>
|
|
130
|
-
<option disabled value="">Select</option>
|
|
140
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
131
141
|
<option v-for="fontSize in tailwindFontSizes.fontDesktop" :key="fontSize">
|
|
132
142
|
{{ fontSize }}
|
|
133
143
|
</option>
|
|
@@ -135,28 +145,32 @@ watch(
|
|
|
135
145
|
</div>
|
|
136
146
|
<template v-if="false">
|
|
137
147
|
<div class="pbx-my-2 pbx-py-2">
|
|
138
|
-
<label for="font-tablet" class="pbx-myPrimaryInputLabel">
|
|
148
|
+
<label for="font-tablet" class="pbx-myPrimaryInputLabel">
|
|
149
|
+
{{ translate('Font tablet size') }}
|
|
150
|
+
</label>
|
|
139
151
|
<select
|
|
140
152
|
id="font-tablet"
|
|
141
153
|
v-model="fontTablet"
|
|
142
154
|
class="pbx-myPrimarySelect"
|
|
143
155
|
@change="pageBuilderService.handleFontSizeTablet(fontTablet)"
|
|
144
156
|
>
|
|
145
|
-
<option disabled value="">Select</option>
|
|
157
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
146
158
|
<option v-for="fontSize in tailwindFontSizes.fontTablet" :key="fontSize">
|
|
147
159
|
{{ fontSize }}
|
|
148
160
|
</option>
|
|
149
161
|
</select>
|
|
150
162
|
</div>
|
|
151
163
|
<div class="pbx-my-2 pbx-py-2">
|
|
152
|
-
<label for="font-mobile" class="pbx-myPrimaryInputLabel">
|
|
164
|
+
<label for="font-mobile" class="pbx-myPrimaryInputLabel">
|
|
165
|
+
{{ translate('Font small screens') }}
|
|
166
|
+
</label>
|
|
153
167
|
<select
|
|
154
168
|
id="font-mobile"
|
|
155
169
|
v-model="fontMobile"
|
|
156
170
|
class="pbx-myPrimarySelect"
|
|
157
171
|
@change="pageBuilderService.handleFontSizeMobile(fontMobile)"
|
|
158
172
|
>
|
|
159
|
-
<option disabled value="">Select</option>
|
|
173
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
160
174
|
<option v-for="fontSize in tailwindFontSizes.fontMobile" :key="fontSize">
|
|
161
175
|
{{ fontSize }}
|
|
162
176
|
</option>
|
|
@@ -166,14 +180,16 @@ watch(
|
|
|
166
180
|
<hr />
|
|
167
181
|
|
|
168
182
|
<div class="pbx-my-2 pbx-py-2">
|
|
169
|
-
<label for="font-weight" class="pbx-myPrimaryInputLabel">
|
|
183
|
+
<label for="font-weight" class="pbx-myPrimaryInputLabel">
|
|
184
|
+
{{ translate('Font weight') }}
|
|
185
|
+
</label>
|
|
170
186
|
<select
|
|
171
187
|
id="font-weight"
|
|
172
188
|
v-model="fontWeight"
|
|
173
189
|
class="pbx-myPrimarySelect"
|
|
174
190
|
@change="pageBuilderService.handleFontWeight(fontWeight)"
|
|
175
191
|
>
|
|
176
|
-
<option disabled value="">Select</option>
|
|
192
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
177
193
|
<option v-for="fontWeight in tailwindFontStyles.fontWeight" :key="fontWeight">
|
|
178
194
|
{{ fontWeight }}
|
|
179
195
|
</option>
|
|
@@ -183,14 +199,16 @@ watch(
|
|
|
183
199
|
|
|
184
200
|
<!-- FONT FAMILY -->
|
|
185
201
|
<div class="pbx-my-2 pbx-py-2">
|
|
186
|
-
<label for="font-family" class="pbx-myPrimaryInputLabel">
|
|
202
|
+
<label for="font-family" class="pbx-myPrimaryInputLabel">
|
|
203
|
+
{{ translate('Font family') }}
|
|
204
|
+
</label>
|
|
187
205
|
<select
|
|
188
206
|
id="font-family"
|
|
189
207
|
v-model="fontFamily"
|
|
190
208
|
class="pbx-myPrimarySelect"
|
|
191
209
|
@change="pageBuilderService.handleFontFamily(fontFamily)"
|
|
192
210
|
>
|
|
193
|
-
<option disabled value="">Select</option>
|
|
211
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
194
212
|
<option v-for="fontFamily in tailwindFontStyles.fontFamily" :key="fontFamily">
|
|
195
213
|
{{ fontFamily }}
|
|
196
214
|
</option>
|
|
@@ -199,14 +217,16 @@ watch(
|
|
|
199
217
|
<hr />
|
|
200
218
|
|
|
201
219
|
<div class="pbx-my-2 pbx-py-2">
|
|
202
|
-
<label for="font-style" class="pbx-myPrimaryInputLabel">
|
|
220
|
+
<label for="font-style" class="pbx-myPrimaryInputLabel">
|
|
221
|
+
{{ translate('Font Style') }}
|
|
222
|
+
</label>
|
|
203
223
|
<select
|
|
204
224
|
id="font-style"
|
|
205
225
|
v-model="fontStyle"
|
|
206
226
|
class="pbx-myPrimarySelect"
|
|
207
227
|
@change="pageBuilderService.handleFontStyle(fontStyle)"
|
|
208
228
|
>
|
|
209
|
-
<option disabled value="">Select</option>
|
|
229
|
+
<option disabled value="">{{ translate('Select') }}</option>
|
|
210
230
|
<option v-for="fontStyle in tailwindFontStyles.fontStyle" :key="fontStyle">
|
|
211
231
|
{{ fontStyle }}
|
|
212
232
|
</option>
|
|
@@ -21,6 +21,9 @@ import EditorAccordion from '../EditorMenu/EditorAccordion.vue'
|
|
|
21
21
|
import fullHTMLContent from '../../../utils/builder/html-doc-declaration-with-components'
|
|
22
22
|
import ModalBuilder from '../../../Components/Modals/ModalBuilder.vue'
|
|
23
23
|
import { extractCleanHTMLFromPageBuilder } from '../../../composables/extractCleanHTMLFromPageBuilder'
|
|
24
|
+
import { useTranslations } from '../../../composables/useTranslations'
|
|
25
|
+
|
|
26
|
+
const { translate } = useTranslations()
|
|
24
27
|
|
|
25
28
|
const pageBuilderService = getPageBuilder()
|
|
26
29
|
const pageBuilderStateStore = sharedPageBuilderStore
|
|
@@ -128,12 +131,12 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
128
131
|
<button
|
|
129
132
|
type="button"
|
|
130
133
|
@click="$emit('closeEditor')"
|
|
131
|
-
class="pbx-h-10 pbx-w-10 pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-ring-0"
|
|
134
|
+
class="pbx-h-10 pbx-w-10 pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-ring-0 pbx-text-black hover:pbx-text-white"
|
|
132
135
|
>
|
|
133
136
|
<span class="material-symbols-outlined"> close </span>
|
|
134
137
|
</button>
|
|
135
138
|
<p class="pbx-font-medium pbx-text-sm">
|
|
136
|
-
Editing
|
|
139
|
+
{{ translate('Editing') }}
|
|
137
140
|
<span class="pbx-lowercase"><{{ elementTag }}></span>
|
|
138
141
|
</p>
|
|
139
142
|
</div>
|
|
@@ -181,16 +184,19 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
181
184
|
<!-- Global Page Styles -->
|
|
182
185
|
<article class="pbx-my-1 pbx-bg-white">
|
|
183
186
|
<EditorAccordion>
|
|
184
|
-
<template #title>Global Page Styles</template>
|
|
187
|
+
<template #title>{{ translate('Global Page Styles') }}</template>
|
|
185
188
|
<template #content>
|
|
186
189
|
<label class="pbx-myPrimaryInputLabel pbx-my-4">
|
|
187
|
-
|
|
188
|
-
|
|
190
|
+
{{
|
|
191
|
+
translate(
|
|
192
|
+
'Apply styles that affect the entire page. These settings include global font family, text color, background color, and other universal styles that apply to all sections.',
|
|
193
|
+
)
|
|
194
|
+
}}
|
|
189
195
|
</label>
|
|
190
196
|
|
|
191
197
|
<div class="pbx-mt-4">
|
|
192
198
|
<button @click="handleUpdatePageStyles" type="button" class="pbx-myPrimaryButton">
|
|
193
|
-
Update Page Styles
|
|
199
|
+
{{ translate('Update Page Styles') }}
|
|
194
200
|
</button>
|
|
195
201
|
</div>
|
|
196
202
|
</template>
|
|
@@ -204,15 +210,18 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
204
210
|
class="pbx-my-1 pbx-bg-white"
|
|
205
211
|
>
|
|
206
212
|
<EditorAccordion>
|
|
207
|
-
<template #title>Download HTML</template>
|
|
213
|
+
<template #title>{{ translate('Download HTML') }}</template>
|
|
208
214
|
<template #content>
|
|
209
215
|
<label class="pbx-myPrimaryInputLabel pbx-my-4">
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
{{
|
|
217
|
+
translate(
|
|
218
|
+
'Export the entire page as a standalone HTML file. This includes all sections, content, and applied styles, making it ready for use or integration elsewhere.',
|
|
219
|
+
)
|
|
220
|
+
}}
|
|
212
221
|
</label>
|
|
213
222
|
<div class="pbx-mt-4">
|
|
214
223
|
<button @click="handleDownloadHTML" type="button" class="pbx-myPrimaryButton">
|
|
215
|
-
Download HTML file
|
|
224
|
+
{{ translate('Download HTML file') }}
|
|
216
225
|
</button>
|
|
217
226
|
</div>
|
|
218
227
|
</template>
|
|
@@ -225,7 +234,7 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
225
234
|
maxWidth="md"
|
|
226
235
|
minHeight="pbx-min-h-[65vh] pbx-max-h-[65vh]"
|
|
227
236
|
:showModalBuilder="showModalGlobalPageStyles"
|
|
228
|
-
title="Global Page Styles"
|
|
237
|
+
:title="translate('Global Page Styles')"
|
|
229
238
|
@closeMainModalBuilder="handleCloseGlobalPageStyles"
|
|
230
239
|
>
|
|
231
240
|
<div class="pbx-flex pbx-flex-col pbx-gap-2 pbx-pt-4 pbx-pb-2">
|
|
@@ -236,7 +245,7 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
236
245
|
>
|
|
237
246
|
<span
|
|
238
247
|
class="!pbx-absolute !pbx-m-px !pbx-h-px !pbx-w-px !pbx-overflow-hidden !pbx-whitespace-nowrap !pbx-border-0 !pbx-p-0 !pbx-[clip:rect(0,0,0,0)]"
|
|
239
|
-
>Loading
|
|
248
|
+
>{{ translate('Loading...') }}</span
|
|
240
249
|
>
|
|
241
250
|
</div>
|
|
242
251
|
</div>
|
|
@@ -244,8 +253,11 @@ const handleCloseGlobalPageStyles = async function () {
|
|
|
244
253
|
<div v-if="!isLoadingPageStyles && showModalGlobalPageStyles" class="pbx-pb-12">
|
|
245
254
|
<div>
|
|
246
255
|
<p class="pbx-myPrimaryParagraph">
|
|
247
|
-
|
|
248
|
-
|
|
256
|
+
{{
|
|
257
|
+
translate(
|
|
258
|
+
'Apply styles that affect the entire page. These settings include global font family, text color, background color, and other universal styles that apply to all sections.',
|
|
259
|
+
)
|
|
260
|
+
}}
|
|
249
261
|
</p>
|
|
250
262
|
<article class="pbx-my-1 pbx-bg-gray-100">
|
|
251
263
|
<Typography></Typography>
|
|
@@ -4,12 +4,15 @@ import { sharedPageBuilderStore } from '../../../stores/shared-store'
|
|
|
4
4
|
import ModalBuilder from '../../Modals/ModalBuilder.vue'
|
|
5
5
|
import PageBuilderSettings from '../Settings/PageBuilderSettings.vue'
|
|
6
6
|
import AdvancedPageBuilderSettings from '../Settings/AdvancedPageBuilderSettings.vue'
|
|
7
|
-
import { preloadImage } from '../../../composables/preloadImage'
|
|
8
7
|
|
|
9
8
|
import DynamicModalBuilder from '../../Modals/DynamicModalBuilder.vue'
|
|
10
9
|
|
|
11
10
|
import { getPageBuilder } from '../../../composables/builderInstance'
|
|
12
11
|
import { delay } from '../../../composables/delay'
|
|
12
|
+
import { useTranslations } from '../../../composables/useTranslations'
|
|
13
|
+
|
|
14
|
+
const { translate } = useTranslations()
|
|
15
|
+
|
|
13
16
|
const pageBuilderService = getPageBuilder()
|
|
14
17
|
|
|
15
18
|
// Use shared store instance
|
|
@@ -39,8 +42,8 @@ const handleDeleteComponentsFromDOM = function () {
|
|
|
39
42
|
showModalDeleteAllComponents.value = true
|
|
40
43
|
typeModal.value = 'delete'
|
|
41
44
|
gridColumnModal.value = 2
|
|
42
|
-
titleModal.value = 'Remove all Components'
|
|
43
|
-
descriptionModal.value = 'Are you sure you want to remove all Components?'
|
|
45
|
+
titleModal.value = translate('Remove all Components')
|
|
46
|
+
descriptionModal.value = translate('Are you sure you want to remove all Components?')
|
|
44
47
|
firstButtonModal.value = 'Close'
|
|
45
48
|
secondButtonModal.value = null
|
|
46
49
|
thirdButtonModal.value = 'Delete'
|
|
@@ -113,7 +116,7 @@ const openHTMLSettings = function () {
|
|
|
113
116
|
}}
|
|
114
117
|
</div>
|
|
115
118
|
<div
|
|
116
|
-
class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal w-max break-keep"
|
|
119
|
+
class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal pbx-w-max pbx-break-keep"
|
|
117
120
|
>
|
|
118
121
|
{{ getPageBuilderConfig.userForPageBuilder.name }}
|
|
119
122
|
</div>
|
|
@@ -137,13 +140,13 @@ const openHTMLSettings = function () {
|
|
|
137
140
|
class="pbx-text-white pbx-flex-shrink-0 pbx-h-8 pbx-w-8 pbx-rounded-full pbx-flex pbx-justify-center pbx-items-center pbx-text-xs pbx-rounded-l-full"
|
|
138
141
|
>
|
|
139
142
|
<img
|
|
140
|
-
alt="avatar"
|
|
143
|
+
alt="{{ translate('avatar') }}"
|
|
141
144
|
:src="`${getPageBuilderConfig.userForPageBuilder.image}`"
|
|
142
145
|
class="pbx-block pbx-inset-0 pbx-object-top pbx-h-8 pbx-min-h-8 pbx-max-h-8 pbx-w-8 pbx-min-w-8 pbx-max-w-8 pbx-object-cover pbx-rounded-full"
|
|
143
146
|
/>
|
|
144
147
|
</div>
|
|
145
148
|
<div
|
|
146
|
-
class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal w-max break-keep"
|
|
149
|
+
class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal pbx-w-max pbx-break-keep"
|
|
147
150
|
>
|
|
148
151
|
{{ getPageBuilderConfig.userForPageBuilder.name }}
|
|
149
152
|
</div>
|
|
@@ -156,7 +159,7 @@ const openHTMLSettings = function () {
|
|
|
156
159
|
<!-- Component Start -->
|
|
157
160
|
<div class="pbx-relative pbx-group">
|
|
158
161
|
<button type="button" class="pbx-mySecondaryButton pbx-font-normal pbx-text-xs">
|
|
159
|
-
<span> Options </span>
|
|
162
|
+
<span> {{ translate('Options') }} </span>
|
|
160
163
|
</button>
|
|
161
164
|
<div
|
|
162
165
|
class="pbx-absolute pbx-left-0 -pbx-ml-16 -pbx-mt-2 pbx-flex pbx-flex-col pbx-gap-3 pbx-shadow-lg pbx-bg-white pbx-w-max pbx-border-solid pbx-border pbx-border-gray-100 pbx-rounded-2xl pbx-transition-all pbx-duration-200 pbx-ease-out pbx-pt-4 pbx-pr-4 pbx-pb-4 pbx-pl-2 pbx-z-30 pbx-opacity-0 pbx-pointer-events-none pbx-translate-y-2 group-hover:pbx-opacity-100 group-hover:pbx-pointer-events-auto group-hover:pbx-translate-y-0"
|
|
@@ -172,7 +175,7 @@ const openHTMLSettings = function () {
|
|
|
172
175
|
class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
|
|
173
176
|
type="button"
|
|
174
177
|
>
|
|
175
|
-
Config Overview
|
|
178
|
+
{{ translate('Config Overview') }}
|
|
176
179
|
</button>
|
|
177
180
|
<!-- Main Settings End -->
|
|
178
181
|
|
|
@@ -182,7 +185,7 @@ const openHTMLSettings = function () {
|
|
|
182
185
|
class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
|
|
183
186
|
type="button"
|
|
184
187
|
>
|
|
185
|
-
HTML Overview
|
|
188
|
+
{{ translate('HTML Overview') }}
|
|
186
189
|
</button>
|
|
187
190
|
<!-- HTML Settings End -->
|
|
188
191
|
|
|
@@ -192,7 +195,7 @@ const openHTMLSettings = function () {
|
|
|
192
195
|
class="pbx-myPrimaryDeleteButton pbx-text-xs pbx-font-normal"
|
|
193
196
|
type="button"
|
|
194
197
|
>
|
|
195
|
-
Delete Layout
|
|
198
|
+
{{ translate('Delete Layout') }}
|
|
196
199
|
</button>
|
|
197
200
|
<!-- Delete Layout End -->
|
|
198
201
|
</div>
|