@myissue/vue-website-page-builder 3.3.64 → 3.3.67

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.
Files changed (48) hide show
  1. package/README.md +216 -129
  2. package/dist/logo/mybuilder_new_lowercase.svg +17558 -0
  3. package/dist/vue-website-page-builder.css +1 -1
  4. package/dist/vue-website-page-builder.js +16345 -13089
  5. package/dist/vue-website-page-builder.umd.cjs +78 -54
  6. package/package.json +3 -2
  7. package/src/Components/DemoUnsplash.vue +1 -4
  8. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +4 -3
  9. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +32 -13
  10. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +12 -8
  11. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +10 -8
  12. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +5 -5
  13. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +12 -9
  14. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +6 -4
  15. package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +11 -5
  16. package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +1 -1
  17. package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +11 -5
  18. package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +116 -0
  19. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +2 -1
  20. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +32 -9
  21. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +63 -74
  22. package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +3 -3
  23. package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +14 -11
  24. package/src/PageBuilder/PageBuilder.vue +169 -65
  25. package/src/PageBuilder/Preview.vue +25 -9
  26. package/src/composables/builderInstance.ts +3 -2
  27. package/src/composables/extractCleanHTMLFromPageBuilder.ts +4 -3
  28. package/src/css/app.css +10 -70
  29. package/src/i18n.ts +28 -0
  30. package/src/locales/ar.json +136 -0
  31. package/src/locales/de.json +136 -0
  32. package/src/locales/en.json +136 -0
  33. package/src/locales/es.json +136 -0
  34. package/src/locales/fr.json +136 -0
  35. package/src/locales/hi.json +136 -0
  36. package/src/locales/ja.json +136 -0
  37. package/src/locales/pt.json +136 -0
  38. package/src/locales/ru.json +136 -0
  39. package/src/locales/zh-Hans.json +136 -0
  40. package/src/main.ts +10 -5
  41. package/src/services/LocalStorageManager.ts +1 -162
  42. package/src/services/PageBuilderService.ts +730 -290
  43. package/src/stores/page-builder-state.ts +8 -0
  44. package/src/tests/PageBuilderTest.vue +41 -70
  45. package/src/tests/componentsArray.test.json +3 -3
  46. package/src/tests/pageBuilderService.test.ts +7 -1
  47. package/src/types/index.ts +17 -3
  48. package/src/utils/html-elements/component.ts +10 -10
@@ -99,14 +99,19 @@ watch(
99
99
 
100
100
  <template>
101
101
  <EditorAccordion>
102
- <template #title> Typographies </template>
102
+ <template #title>{{ $t('typography.title') }}</template>
103
103
  <template #content>
104
104
  <!-- FONT SIZES -->
105
- <p class="pbx-myPrimaryParagraph pbx-font-medium pbx-py-0 pbx-my-4">Font Appearance</p>
105
+ <p class="pbx-myPrimaryParagraph pbx-font-medium pbx-py-0 pbx-my-4">
106
+ {{ $t('typography.appearance') }}
107
+ </p>
106
108
  <template v-if="false">
107
109
  <div class="pbx-my-2 pbx-py-2">
108
- <label class="pbx-myPrimaryInputLabel"> Font Size </label>
110
+ <label for="font-base" class="pbx-myPrimaryInputLabel">{{
111
+ $t('typography.fontSize')
112
+ }}</label>
109
113
  <select
114
+ id="font-base"
110
115
  v-model="fontBase"
111
116
  class="pbx-myPrimarySelect"
112
117
  @change="pageBuilderService.handleFontSizeBase(fontBase)"
@@ -119,8 +124,11 @@ watch(
119
124
  </div>
120
125
  </template>
121
126
  <div class="pbx-my-2 pbx-py-2">
122
- <label class="pbx-myPrimaryInputLabel"> Font size </label>
127
+ <label for="font-desktop" class="pbx-myPrimaryInputLabel">{{
128
+ $t('typography.fontSize')
129
+ }}</label>
123
130
  <select
131
+ id="font-desktop"
124
132
  v-model="fontDesktop"
125
133
  class="pbx-myPrimarySelect"
126
134
  @change="pageBuilderService.handleFontSizeDesktop(fontDesktop)"
@@ -133,8 +141,11 @@ watch(
133
141
  </div>
134
142
  <template v-if="false">
135
143
  <div class="pbx-my-2 pbx-py-2">
136
- <label class="pbx-myPrimaryInputLabel"> Font tablet size </label>
144
+ <label for="font-tablet" class="pbx-myPrimaryInputLabel">{{
145
+ $t('typography.fontTabletSize')
146
+ }}</label>
137
147
  <select
148
+ id="font-tablet"
138
149
  v-model="fontTablet"
139
150
  class="pbx-myPrimarySelect"
140
151
  @change="pageBuilderService.handleFontSizeTablet(fontTablet)"
@@ -146,8 +157,11 @@ watch(
146
157
  </select>
147
158
  </div>
148
159
  <div class="pbx-my-2 pbx-py-2">
149
- <label class="pbx-myPrimaryInputLabel"> Font small screens </label>
160
+ <label for="font-mobile" class="pbx-myPrimaryInputLabel">{{
161
+ $t('typography.fontMobileSize')
162
+ }}</label>
150
163
  <select
164
+ id="font-mobile"
151
165
  v-model="fontMobile"
152
166
  class="pbx-myPrimarySelect"
153
167
  @change="pageBuilderService.handleFontSizeMobile(fontMobile)"
@@ -162,8 +176,11 @@ watch(
162
176
  <hr />
163
177
 
164
178
  <div class="pbx-my-2 pbx-py-2">
165
- <label class="pbx-myPrimaryInputLabel"> Font weight </label>
179
+ <label for="font-weight" class="pbx-myPrimaryInputLabel">{{
180
+ $t('typography.fontWeight')
181
+ }}</label>
166
182
  <select
183
+ id="font-weight"
167
184
  v-model="fontWeight"
168
185
  class="pbx-myPrimarySelect"
169
186
  @change="pageBuilderService.handleFontWeight(fontWeight)"
@@ -178,8 +195,11 @@ watch(
178
195
 
179
196
  <!-- FONT FAMILY -->
180
197
  <div class="pbx-my-2 pbx-py-2">
181
- <label class="pbx-myPrimaryInputLabel"> Font family </label>
198
+ <label for="font-family" class="pbx-myPrimaryInputLabel">{{
199
+ $t('typography.fontFamily')
200
+ }}</label>
182
201
  <select
202
+ id="font-family"
183
203
  v-model="fontFamily"
184
204
  class="pbx-myPrimarySelect"
185
205
  @change="pageBuilderService.handleFontFamily(fontFamily)"
@@ -193,8 +213,11 @@ watch(
193
213
  <hr />
194
214
 
195
215
  <div class="pbx-my-2 pbx-py-2">
196
- <label class="pbx-myPrimaryInputLabel"> Font Style </label>
216
+ <label for="font-style" class="pbx-myPrimaryInputLabel">{{
217
+ $t('typography.fontStyle')
218
+ }}</label>
197
219
  <select
220
+ id="font-style"
198
221
  v-model="fontStyle"
199
222
  class="pbx-myPrimarySelect"
200
223
  @change="pageBuilderService.handleFontStyle(fontStyle)"
@@ -2,6 +2,7 @@
2
2
  import { computed, ref, watch, nextTick } from 'vue'
3
3
  import { sharedPageBuilderStore } from '../../../stores/shared-store'
4
4
  import ClassEditor from './Editables/ClassEditor.vue'
5
+ import StyleEditor from './Editables/StyleEditor.vue'
5
6
  import ImageEditor from './Editables/ImageEditor.vue'
6
7
  import OpacityEditor from './Editables/OpacityEditor.vue'
7
8
  import Typography from './Editables/Typography.vue'
@@ -22,12 +23,11 @@ import ModalBuilder from '../../../Components/Modals/ModalBuilder.vue'
22
23
  import { extractCleanHTMLFromPageBuilder } from '../../../composables/extractCleanHTMLFromPageBuilder'
23
24
 
24
25
  const pageBuilderService = getPageBuilder()
25
- // Use shared store instance
26
26
  const pageBuilderStateStore = sharedPageBuilderStore
27
27
 
28
- // emit
29
- const emit = defineEmits(['closeEditor'])
28
+ defineEmits(['closeEditor'])
30
29
 
30
+ const isLoadingPageStyles = ref(null)
31
31
  const getComponents = computed(() => {
32
32
  return pageBuilderStateStore.getComponents
33
33
  })
@@ -35,7 +35,6 @@ const getElement = computed(() => {
35
35
  return pageBuilderStateStore.getElement
36
36
  })
37
37
 
38
- // Get tagName of element
39
38
  const elementTag = computed(() => {
40
39
  return getElement.value?.tagName
41
40
  })
@@ -106,15 +105,8 @@ const handleUpdatePageStyles = async function () {
106
105
  await pageBuilderService.globalPageStyles()
107
106
  }
108
107
 
109
- const clearClassesFromPage = async function () {
110
- await pageBuilderService.clearClassesFromPage()
111
- }
112
-
113
- const clearInlineStylesFromPagee = async function () {
114
- await pageBuilderService.clearInlineStylesFromPagee()
115
- }
116
-
117
108
  const handleCloseGlobalPageStyles = async function () {
109
+ isLoadingPageStyles.value = true
118
110
  await pageBuilderService.handleManualSave()
119
111
 
120
112
  // Remove global highlight if present
@@ -124,6 +116,7 @@ const handleCloseGlobalPageStyles = async function () {
124
116
  }
125
117
 
126
118
  showModalGlobalPageStyles.value = false
119
+ isLoadingPageStyles.value = false
127
120
  }
128
121
  </script>
129
122
 
@@ -140,13 +133,13 @@ const handleCloseGlobalPageStyles = async function () {
140
133
  <span class="material-symbols-outlined"> close </span>
141
134
  </button>
142
135
  <p class="pbx-font-medium pbx-text-sm">
143
- Editing
136
+ {{ $t('rightSidebar.editing') }}
144
137
  <span class="pbx-lowercase">&lt;{{ elementTag }}&gt;</span>
145
138
  </p>
146
139
  </div>
147
140
 
148
141
  <div
149
- v
142
+ v-if="!showModalGlobalPageStyles"
150
143
  ref="scrollContainer"
151
144
  @scroll="onScroll"
152
145
  class="pbx-pl-3 pbx-pr-3 pbx-mb-4 pbx-overflow-y-scroll"
@@ -180,21 +173,23 @@ const handleCloseGlobalPageStyles = async function () {
180
173
  <article class="pbx-my-1 pbx-bg-white">
181
174
  <ClassEditor></ClassEditor>
182
175
  </article>
176
+ <article class="pbx-my-1 pbx-bg-white">
177
+ <StyleEditor></StyleEditor>
178
+ </article>
183
179
  </div>
184
180
 
185
181
  <!-- Global Page Styles -->
186
182
  <article class="pbx-my-1 pbx-bg-white">
187
183
  <EditorAccordion>
188
- <template #title>Global Page Styles</template>
184
+ <template #title>{{ $t('rightSidebar.globalPageStylesTitle') }}</template>
189
185
  <template #content>
190
186
  <label class="pbx-myPrimaryInputLabel pbx-my-4">
191
- Apply styles that affect the entire page. These settings include global font family,
192
- text color, background color, and other universal styles that apply to all sections.
187
+ {{ $t('rightSidebar.globalPageStylesDescription') }}
193
188
  </label>
194
189
 
195
190
  <div class="pbx-mt-4">
196
191
  <button @click="handleUpdatePageStyles" type="button" class="pbx-myPrimaryButton">
197
- Update Page Styles
192
+ {{ $t('rightSidebar.updatePageStyles') }}
198
193
  </button>
199
194
  </div>
200
195
  </template>
@@ -208,15 +203,14 @@ const handleCloseGlobalPageStyles = async function () {
208
203
  class="pbx-my-1 pbx-bg-white"
209
204
  >
210
205
  <EditorAccordion>
211
- <template #title>Download HTML</template>
206
+ <template #title>{{ $t('rightSidebar.downloadHtmlTitle') }}</template>
212
207
  <template #content>
213
208
  <label class="pbx-myPrimaryInputLabel pbx-my-4">
214
- Export the entire page as a standalone HTML file. This includes all sections, content,
215
- and applied styles, making it ready for use or integration elsewhere.
209
+ {{ $t('rightSidebar.downloadHtmlDescription') }}
216
210
  </label>
217
211
  <div class="pbx-mt-4">
218
212
  <button @click="handleDownloadHTML" type="button" class="pbx-myPrimaryButton">
219
- Download HTML file
213
+ {{ $t('rightSidebar.downloadHtmlButton') }}
220
214
  </button>
221
215
  </div>
222
216
  </template>
@@ -227,63 +221,58 @@ const handleCloseGlobalPageStyles = async function () {
227
221
 
228
222
  <ModalBuilder
229
223
  maxWidth="md"
230
- minHeight="pbx-h-[90vh]"
224
+ minHeight="pbx-min-h-[65vh] pbx-max-h-[65vh]"
231
225
  :showModalBuilder="showModalGlobalPageStyles"
232
- title="Global Page Styles"
226
+ :title="$t('rightSidebar.globalPageStylesTitle')"
233
227
  @closeMainModalBuilder="handleCloseGlobalPageStyles"
234
228
  >
235
- <div class="pbx-min-h-[90vh] pbx-flex pbx-flex-col pbx-gap-2 pbx-pt-4 pbx-pb-2">
236
- <p class="pbx-myPrimaryParagraph">
237
- Apply styles that affect the entire page. These settings include global font family, text
238
- color, background color, and other universal styles that apply to all sections.
239
- </p>
240
- <article class="pbx-my-1 pbx-bg-gray-100">
241
- <Typography></Typography>
242
- </article>
243
- <article class="pbx-my-1 pbx-bg-gray-100">
244
- <TextColorEditor :globalPageLayout="true"></TextColorEditor>
245
- </article>
246
- <article class="pbx-my-1 pbx-bg-gray-100">
247
- <BackgroundColorEditor :globalPageLayout="true"></BackgroundColorEditor>
248
- </article>
249
- <article class="pbx-my-1 pbx-bg-gray-100">
250
- <Padding> </Padding>
251
- </article>
252
- <article class="pbx-my-1 pbx-bg-gray-100">
253
- <Margin> </Margin>
254
- </article>
255
- <article class="pbx-my-1 pbx-bg-gray-100">
256
- <BorderRadius></BorderRadius>
257
- </article>
258
- <article class="pbx-my-1 pbx-bg-gray-100">
259
- <Borders></Borders>
260
- </article>
261
- <article class="pbx-my-1 pbx-bg-gray-100">
262
- <ClassEditor></ClassEditor>
263
- </article>
264
- </div>
265
- <label class="pbx-myPrimaryInputLabel pbx-my-4">
266
- Choose an action to clean up your page:
267
- </label>
268
- <div
269
- class="pbx-border-0 pbx-border-solid pbx-border-t pbx-border-gray-200 pbx-mt-4 pbx-flex pbx-items-center pbx-justify-end"
270
- >
271
- <div class="pbx-py-4 pbx-flex sm:pbx-justify-end pbx-justify-center">
272
- <div
273
- class="sm:pbx-grid-cols-1 sm:pbx-items-end sm:pbx-justify-end pbx-flex sm:pbx-flex-row pbx-flex-col pbx-myPrimaryGap sm:pbx-w-5/6 pbx-w-full pbx-mt-4"
274
- >
275
- <!-- Button: Clear all CSS classes -->
276
- <button @click="clearClassesFromPage" class="pbx-myPrimaryButton" type="button">
277
- Clear All CSS Classes
278
- </button>
279
-
280
- <!-- Button: Clear all inline styles -->
281
- <button @click="clearInlineStylesFromPagee" class="pbx-myPrimaryButton" type="button">
282
- Clear All Inline Styles
283
- </button>
229
+ <div class="pbx-flex pbx-flex-col pbx-gap-2 pbx-pt-4 pbx-pb-2">
230
+ <div v-if="isLoadingPageStyles">
231
+ <div class="pbx-flex pbx-items-center pbx-my-2 pbx-py-4 pbx-px-2 pbx-justify-center">
232
+ <div
233
+ class="pbx-inline-block pbx-h-8 pbx-w-8 pbx-animate-spin pbx-rounded-full pbx-border-4 pbx-border-solid pbx-border-current pbx-border-r-transparent pbx-align-[-0.125em] motion-reduce:pbx-animate-[spin_1.5s_linear_infinite]"
234
+ >
235
+ <span
236
+ 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)]"
237
+ >Loading...</span
238
+ >
239
+ </div>
240
+ </div>
241
+ </div>
242
+ <div v-if="!isLoadingPageStyles && showModalGlobalPageStyles" class="pbx-pb-12">
243
+ <div>
244
+ <p class="pbx-myPrimaryParagraph">
245
+ {{ $t('rightSidebar.globalPageStylesDescription') }}
246
+ </p>
247
+ <article class="pbx-my-1 pbx-bg-gray-100">
248
+ <Typography></Typography>
249
+ </article>
250
+ <article class="pbx-my-1 pbx-bg-gray-100">
251
+ <TextColorEditor :globalPageLayout="true"></TextColorEditor>
252
+ </article>
253
+ <article class="pbx-my-1 pbx-bg-gray-100">
254
+ <BackgroundColorEditor :globalPageLayout="true"></BackgroundColorEditor>
255
+ </article>
256
+ <article class="pbx-my-1 pbx-bg-gray-100">
257
+ <Padding> </Padding>
258
+ </article>
259
+ <article class="pbx-my-1 pbx-bg-gray-100">
260
+ <Margin> </Margin>
261
+ </article>
262
+ <article class="pbx-my-1 pbx-bg-gray-100">
263
+ <BorderRadius></BorderRadius>
264
+ </article>
265
+ <article class="pbx-my-1 pbx-bg-gray-100">
266
+ <Borders></Borders>
267
+ </article>
268
+ <article class="pbx-my-1 pbx-bg-gray-100">
269
+ <ClassEditor></ClassEditor>
270
+ </article>
271
+ <article class="pbx-my-1 pbx-bg-gray-100">
272
+ <StyleEditor></StyleEditor>
273
+ </article>
284
274
  </div>
285
275
  </div>
286
- <!--v-if-->
287
276
  </div>
288
277
  </ModalBuilder>
289
278
  </div>
@@ -299,7 +299,7 @@ const getPageBuilderConfig = computed(() => {
299
299
  class="pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"
300
300
  >
301
301
  <div class="pbx-min-w-[30rem] pbx-w-max">
302
- {{ getPageBuilderConfig.userSettings.language }}
302
+ {{ getPageBuilderConfig.userSettings.language?.default }}
303
303
  </div>
304
304
  </td>
305
305
  </tr>
@@ -317,8 +317,8 @@ const getPageBuilderConfig = computed(() => {
317
317
  class="pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium"
318
318
  :class="
319
319
  getPageBuilderConfig.userSettings.autoSave
320
- ? 'bg-green-100 text-green-800'
321
- : 'bg-red-100 text-red-800'
320
+ ? 'pbx-bg-green-100 pbx-text-green-800'
321
+ : 'pbx-bg-red-100 pbx-text-red-800'
322
322
  "
323
323
  >
324
324
  {{
@@ -35,7 +35,7 @@ const firstModalButtonFunctionDynamicModalBuilder = ref(null)
35
35
  const secondModalButtonFunctionDynamicModalBuilder = ref(null)
36
36
  const thirdModalButtonFunctionDynamicModalBuilder = ref(null)
37
37
 
38
- const deleteAllComponentsFromDOM = function () {
38
+ const handleDeleteComponentsFromDOM = function () {
39
39
  showModalDeleteAllComponents.value = true
40
40
  typeModal.value = 'delete'
41
41
  gridColumnModal.value = 2
@@ -53,11 +53,10 @@ const deleteAllComponentsFromDOM = function () {
53
53
  // handle click
54
54
  thirdModalButtonFunctionDynamicModalBuilder.value = async function () {
55
55
  isDeletingLayout.value = true
56
- pageBuilderService.deleteAllComponentsFromDOM()
57
56
  await pageBuilderService.clearHtmlSelection()
58
- await pageBuilderService.removeCurrentComponentsFromLocalStorage()
59
-
57
+ await pageBuilderService.handleFormSubmission()
60
58
  await delay(500)
59
+
61
60
  showModalDeleteAllComponents.value = false
62
61
  isDeletingLayout.value = false
63
62
  }
@@ -113,7 +112,9 @@ const openHTMLSettings = function () {
113
112
  getPageBuilderConfig.userForPageBuilder.name[0]
114
113
  }}
115
114
  </div>
116
- <div class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal">
115
+ <div
116
+ class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal w-max break-keep"
117
+ >
117
118
  {{ getPageBuilderConfig.userForPageBuilder.name }}
118
119
  </div>
119
120
  </div>
@@ -141,7 +142,9 @@ const openHTMLSettings = function () {
141
142
  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"
142
143
  />
143
144
  </div>
144
- <div class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal">
145
+ <div
146
+ class="pbx-hidden pbx-text-xs pbx-h-8 lg:pbx-flex pbx-items-center pbx-font-normal w-max break-keep"
147
+ >
145
148
  {{ getPageBuilderConfig.userForPageBuilder.name }}
146
149
  </div>
147
150
  </div>
@@ -153,7 +156,7 @@ const openHTMLSettings = function () {
153
156
  <!-- Component Start -->
154
157
  <div class="pbx-relative pbx-group">
155
158
  <button type="button" class="pbx-mySecondaryButton pbx-font-normal pbx-text-xs">
156
- <span> Options </span>
159
+ <span> {{ $t('options.button') }} </span>
157
160
  </button>
158
161
  <div
159
162
  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"
@@ -169,7 +172,7 @@ const openHTMLSettings = function () {
169
172
  class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
170
173
  type="button"
171
174
  >
172
- Config Overview
175
+ <span> {{ $t('options.configOverview') }} </span>
173
176
  </button>
174
177
  <!-- Main Settings End -->
175
178
 
@@ -179,17 +182,17 @@ const openHTMLSettings = function () {
179
182
  class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
180
183
  type="button"
181
184
  >
182
- HTML Overview
185
+ <span> {{ $t('options.htmlOverview') }} </span>
183
186
  </button>
184
187
  <!-- HTML Settings End -->
185
188
 
186
189
  <!-- Delete Layout Start -->
187
190
  <button
188
- @click="deleteAllComponentsFromDOM"
191
+ @click="handleDeleteComponentsFromDOM"
189
192
  class="pbx-myPrimaryDeleteButton pbx-text-xs pbx-font-normal"
190
193
  type="button"
191
194
  >
192
- Delete Layout
195
+ <span> {{ $t('options.deleteLayout') }} </span>
193
196
  </button>
194
197
  <!-- Delete Layout End -->
195
198
  </div>