@myissue/vue-website-page-builder 3.2.15 → 3.2.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myissue/vue-website-page-builder",
3
- "version": "v3.2.15",
3
+ "version": "v3.2.20",
4
4
  "description": "🚧 DEVELOPMENT VERSION - Vue.js page builder component with drag & drop functionality. Not ready for production use.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",
@@ -4,6 +4,9 @@ import PageBuilder from '../../PageBuilder/PageBuilder.vue'
4
4
  import PageBuilderClass from '../../composables/PageBuilderClass.ts'
5
5
  import { sharedPageBuilderStore } from '../../stores/shared-store'
6
6
 
7
+ import DemoMediaLibraryComponent from '../../Components/PageBuilder/DemoComponent/DemoMediaLibraryComponent.vue'
8
+ import DemoBuilderComponents from '../../Components/PageBuilder/DemoComponent/DemoBuilderComponents.vue'
9
+
7
10
  // first button function
8
11
  const handleButton = function () {
9
12
  console.log('user want to play with the page builder')
@@ -53,25 +56,25 @@ const features = [
53
56
  ]
54
57
 
55
58
  const configPageBuilder = {
56
- // userForPageBuilder: {
57
- // name: 'John Doe',
58
- // },
59
+ userForPageBuilder: {
60
+ name: 'John Doe',
61
+ },
59
62
  updateOrCreate: {
60
- formType: 'update',
63
+ formType: 'create',
61
64
  formName: 'news',
62
65
  },
63
66
  pageBuilderLogo: {
64
67
  src: '/logo/logo.svg',
65
68
  },
66
- // resourceData: {
67
- // title: 'Demo Article',
68
- // id: 1,
69
- // },
70
- // userSettings: {
71
- // // theme: 'light',
72
- // // language: 'en',
73
- // // autoSave: true,
74
- // },
69
+ resourceData: {
70
+ title: 'Demo Article',
71
+ id: 1,
72
+ },
73
+ userSettings: {
74
+ // theme: 'light',
75
+ // language: 'en',
76
+ // autoSave: true,
77
+ },
75
78
  settings: {
76
79
  brandColor: '#DB93B0',
77
80
  },
@@ -109,7 +112,10 @@ pageBuilderClass.setConfigPageBuilder(configPageBuilder)
109
112
  </p>
110
113
  </div>
111
114
  <div>
112
- <PageBuilder></PageBuilder>
115
+ <PageBuilder
116
+ :CustomMediaLibraryComponent="DemoMediaLibraryComponent"
117
+ :CustomBuilderComponents="DemoBuilderComponents"
118
+ ></PageBuilder>
113
119
  </div>
114
120
  </div>
115
121
 
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
  import ModalBuilder from '../Modals/ModalBuilder.vue'
3
- import NoneCustomBuilderComponents from '../PageBuilder/DemoContent/NoneCustomBuilderComponents.vue'
3
+ import DefaultBuilderComponents from '../PageBuilder/DefaultComponents/DefaultBuilderComponents.vue'
4
4
 
5
5
  defineProps({
6
6
  firstButtonText: {
@@ -54,10 +54,10 @@ const firstButtonBuilder = function () {
54
54
 
55
55
  <div class="p-4">
56
56
  <!-- Only show custom search component if provided -->
57
- <div v-if="CustomBuilderComponents" class="border border-gray-200 rounded-lg p-4">
57
+ <div v-if="CustomBuilderComponents">
58
58
  <component :is="CustomBuilderComponents" />
59
59
  </div>
60
- <div v-else><NoneCustomBuilderComponents /></div>
60
+ <div v-else><DefaultBuilderComponents /></div>
61
61
  </div>
62
62
  </div>
63
63
  <div class="bg-slate-50 px-2 py-4 flex sm:justify-end justify-center">
@@ -7,7 +7,7 @@ import {
7
7
  TransitionRoot,
8
8
  } from '@headlessui/vue'
9
9
  import { provide } from 'vue'
10
- import NoneCustomMediaLibraryComponent from '../PageBuilder/DemoContent/NoneCustomMediaLibraryComponent.vue'
10
+ import DefaultMediaLibraryComponent from '../PageBuilder/DefaultComponents/DefaultMediaLibraryComponent.vue'
11
11
 
12
12
  const props = defineProps({
13
13
  title: {
@@ -94,7 +94,7 @@ provide('closeMediaLibraryModal', closeMediaLibraryModal)
94
94
  leave-to="opacity-0 scale-95"
95
95
  >
96
96
  <div
97
- class="font-sans relative max-h-[65rem] my-2 inline-block align-bottom bg-white rounded-2xl text-left overflow-hidden shadow-xl transform transition-all sm:align-middle sm:max-w-7xl sm:w-full w-[96%]"
97
+ class="font-sans relative min-h-[55rem] max-h-[55rem] my-2 inline-block align-bottom bg-white rounded-2xl text-left overflow-hidden shadow-xl transform transition-all sm:align-middle sm:max-w-7xl sm:w-full"
98
98
  >
99
99
  <div
100
100
  class="flex gap-2 justify-between items-center border-b border-gray-200 p-4 mb-2"
@@ -121,32 +121,9 @@ provide('closeMediaLibraryModal', closeMediaLibraryModal)
121
121
  <component :is="customMediaComponent" />
122
122
  </div>
123
123
  <div v-else>
124
- <NoneCustomMediaLibraryComponent />
124
+ <DefaultMediaLibraryComponent />
125
125
  </div>
126
126
  </div>
127
-
128
- <!-- Actions footer to ensure focusable elements -->
129
- <div
130
- v-if="firstButtonText || secondButtonText"
131
- class="bg-slate-50 px-4 py-3 flex justify-end gap-2"
132
- >
133
- <button
134
- v-if="firstButtonText"
135
- @click="firstButton"
136
- class="mySecondaryButton focus:ring-2 focus:ring-blue-500"
137
- type="button"
138
- >
139
- {{ firstButtonText }}
140
- </button>
141
- <button
142
- v-if="secondButtonText"
143
- @click="secondButton"
144
- class="myPrimaryButton focus:ring-2 focus:ring-blue-500"
145
- type="button"
146
- >
147
- {{ secondButtonText }}
148
- </button>
149
- </div>
150
127
  </div>
151
128
  </TransitionChild>
152
129
  </div>
@@ -0,0 +1,10 @@
1
+ <template>
2
+ <div>
3
+ <p class="myPrimaryParagraph">
4
+ Provide your own Media Library Component to integrate a custom media picker into the Page
5
+ Builder.
6
+ <br />
7
+ This allows full control over how media is selected and inserted.
8
+ </p>
9
+ </div>
10
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div>
3
+ <p class="myPrimaryParagraph">Demo builder components here</p>
4
+ </div>
5
+ </template>
@@ -0,0 +1,8 @@
1
+ <script setup>
2
+ import Unsplash from './DemoUnsplash.vue'
3
+ </script>
4
+ <template>
5
+ <div>
6
+ <Unsplash />
7
+ </div>
8
+ </template>
@@ -0,0 +1,353 @@
1
+ <script setup>
2
+ import { ref, onMounted } from 'vue'
3
+ const unsplashKey = import.meta.env.VITE_UNSPLASH_KEY
4
+ import { usePageBuilderModal } from '../../../composables/usePageBuilderModal'
5
+ import PageBuilderClass from '../../../composables/PageBuilderClass.ts'
6
+ import { sharedPageBuilderStore } from '../../../stores/shared-store'
7
+
8
+ const { closeMediaLibraryModal } = usePageBuilderModal()
9
+
10
+ const pageBuilderStateStore = sharedPageBuilderStore
11
+
12
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
13
+
14
+ const getIsLoading = ref(false)
15
+ const getSearchTerm = ref('')
16
+ const getCurrentPageNumber = ref(1)
17
+ const getOrientationValue = ref('')
18
+ const getCurrentImage = ref('')
19
+ const getCurrentUser = ref('')
20
+
21
+ const getUnsplashImages = ref([])
22
+
23
+ const fetchUnsplash = async function () {
24
+ getIsLoading.value = true
25
+
26
+ localStorage.setItem('unsplash-query', getSearchTerm.value)
27
+ localStorage.setItem('unsplash-page', getCurrentPageNumber.value)
28
+
29
+ if (
30
+ getUnsplashImages.value &&
31
+ Array.isArray(getUnsplashImages.value.results) &&
32
+ getUnsplashImages.value.results.length === 0
33
+ ) {
34
+ getCurrentPageNumber.value = 1
35
+ }
36
+
37
+ const orientationParam = getOrientationValue.value
38
+ ? `&orientation=${getOrientationValue.value}`
39
+ : ''
40
+
41
+ try {
42
+ const response = await fetch(
43
+ `https://api.unsplash.com/search/photos?page=${getCurrentPageNumber.value}&per_page=24&query=${getSearchTerm.value || 'magazine'}${orientationParam}`,
44
+ {
45
+ headers: {
46
+ 'Accept-Version': 'v1',
47
+ Authorization: `Client-ID ${unsplashKey}`,
48
+ },
49
+ },
50
+ )
51
+
52
+ if (!response.ok) {
53
+ throw new Error(`HTTP error! status: ${response.status}`)
54
+ }
55
+
56
+ const images = await response.json()
57
+ getUnsplashImages.value = images
58
+ getIsLoading.value = false
59
+ } catch (error) {
60
+ console.error('Error fetching Unsplash images:', error)
61
+ } finally {
62
+ getIsLoading.value = false
63
+ }
64
+ }
65
+ const handleImageClick = function (data) {
66
+ getCurrentImage.value = data.url ? data.url : ''
67
+ getCurrentUser.value = data.user ? data.user : ''
68
+ }
69
+
70
+ const searchByOrientation = function (orientationParameter) {
71
+ // check if search term length is more than 0
72
+ if (getSearchTerm.value.length > 0 && getOrientationValue.value !== orientationParameter) {
73
+ getOrientationValue.value = orientationParameter
74
+ getCurrentPageNumber.value = 1
75
+ fetchUnsplash()
76
+ }
77
+ }
78
+ //
79
+ // load images for previous page
80
+ const previousPage = function () {
81
+ fetchUnsplash()
82
+ }
83
+
84
+ // load images for next page
85
+ const nextPage = async function () {
86
+ fetchUnsplash()
87
+ }
88
+
89
+ const applySelectedImage = async function (imageURL) {
90
+ console.log('file:', imageURL)
91
+
92
+ // Ensure the current image is set in the store with proper structure
93
+ pageBuilderClass.pageBuilderStateStore.setCurrentImage({
94
+ src: `${imageURL}`,
95
+ })
96
+
97
+ await pageBuilderClass.updateBasePrimaryImage()
98
+
99
+ closeMediaLibraryModal()
100
+ }
101
+
102
+ // on mounted
103
+ onMounted(async () => {
104
+ let term = ''
105
+ let page = 1
106
+ if (localStorage.getItem('unsplash-query') && localStorage.getItem('unsplash-query').length > 0) {
107
+ term = getSearchTerm.value = localStorage.getItem('unsplash-query')
108
+ page = getCurrentPageNumber.value = localStorage.getItem('unsplash-page')
109
+ fetchUnsplash()
110
+ }
111
+
112
+ term ? getSearchTerm.value : 'Magazine'
113
+ page ? getCurrentPageNumber.value : 1
114
+ fetchUnsplash()
115
+
116
+ await fetchUnsplash()
117
+ })
118
+ </script>
119
+
120
+ <template>
121
+ <div>
122
+ <div v-if="!getIsLoading">
123
+ <form
124
+ @submit.prevent="
125
+ () => {
126
+ getCurrentPageNumber = 1
127
+ fetchUnsplash()
128
+ }
129
+ "
130
+ >
131
+ <label
132
+ for="default-search"
133
+ class="mb-2 text-sm font-normal text-gray-900 sr-only dark:text-gray-300"
134
+ >Search</label
135
+ >
136
+
137
+ <div class="mysearchBarWithOptions">
138
+ <div class="relative w-full">
139
+ <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
140
+ <span class="material-symbols-outlined"> search </span>
141
+ </div>
142
+ <input
143
+ type="search"
144
+ id="search_query"
145
+ v-model="getSearchTerm"
146
+ class="myPrimarySearchInput"
147
+ autocomplete="off"
148
+ placeholder="Search..."
149
+ />
150
+ </div>
151
+
152
+ <button
153
+ @click="
154
+ () => {
155
+ getCurrentPageNumber = 1
156
+ fetchUnsplash()
157
+ }
158
+ "
159
+ type="submit"
160
+ class="myPrimaryButton"
161
+ >
162
+ Search
163
+ </button>
164
+ </div>
165
+ </form>
166
+ <div v-if="getUnsplashImages && getUnsplashImages.results" class="mt-2">
167
+ <div class="flex lg:justify-between justify-end items-center gap-2 py-2 mb-1">
168
+ <div class="lg:flex hidden justify-left items-center gap-2">
169
+ <button
170
+ @click="searchByOrientation('landscape')"
171
+ type="button"
172
+ class="myPrimaryButton hover:bg-myPrimaryBrandColor focus:outline-none focus:ring-0"
173
+ :class="{
174
+ 'bg-myPrimaryBrandColor text-white': getOrientationValue === 'landscape',
175
+ '': getOrientationValue !== 'landscape',
176
+ }"
177
+ >
178
+ Landscape
179
+ </button>
180
+ <button
181
+ @click="searchByOrientation('portrait')"
182
+ type="button"
183
+ class="myPrimaryButton hover:bg-myPrimaryBrandColor focus:outline-none focus:ring-0"
184
+ :class="{
185
+ 'bg-myPrimaryBrandColor text-white': getOrientationValue === 'portrait',
186
+ '': getOrientationValue !== 'portrait',
187
+ }"
188
+ >
189
+ Portrait
190
+ </button>
191
+ <button
192
+ @click="searchByOrientation('squarish')"
193
+ type="button"
194
+ class="myPrimaryButton hover:bg-myPrimaryBrandColor focus:outline-none focus:ring-0"
195
+ :class="{
196
+ 'bg-myPrimaryBrandColor text-white': getOrientationValue === 'squarish',
197
+ '': getOrientationValue !== 'squarish',
198
+ }"
199
+ >
200
+ Squarish
201
+ </button>
202
+
203
+ <svg
204
+ @click="searchByOrientation(null)"
205
+ xmlns="http://www.w3.org/2000/svg"
206
+ fill="none"
207
+ viewBox="0 0 24 24"
208
+ stroke-width="2"
209
+ stroke="currentColor"
210
+ class="w-4 h-4 cursor-pointer"
211
+ >
212
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
213
+ </svg>
214
+ </div>
215
+
216
+ <nav class="flex items-center gap-2 justify-start" aria-label="Pagination">
217
+ <p class="myPrimaryParagraph text-xs italic">
218
+ Total pages {{ getUnsplashImages.total_pages }}
219
+ </p>
220
+ <p class="myPrimaryParagraph text-xs italic">Images {{ getUnsplashImages.total }}</p>
221
+ <div class="flex flex-1 justify-between sm:justify-end items-center gap-2">
222
+ <span
223
+ v-if="Number(getCurrentPageNumber) !== 1"
224
+ class="myPrimaryParagraph text-xs italic pr-2 pl-1 cursor-pointer underline"
225
+ @click="nextPage(Number((getCurrentPageNumber = 1)))"
226
+ >
227
+ First page
228
+ </span>
229
+ </div>
230
+ <button
231
+ v-if="Number(getCurrentPageNumber) > 1"
232
+ :disabled="Number(getCurrentPageNumber) < 1"
233
+ class="myPrimaryButton"
234
+ @click="previousPage(Number(getCurrentPageNumber--))"
235
+ >
236
+ {{
237
+ `Prev ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) - 1 : Number(getCurrentPageNumber) - 1}`
238
+ }}
239
+ </button>
240
+
241
+ <span class="myPrimaryTag p-2.5">
242
+ {{ Number(getCurrentPageNumber) }}
243
+ </span>
244
+ <button
245
+ :disabled="Number(getCurrentPageNumber) >= getUnsplashImages.total_pages"
246
+ class="myPrimaryButton"
247
+ :class="{
248
+ 'opacity-50': Number(getCurrentPageNumber) >= getUnsplashImages.total_pages,
249
+ }"
250
+ @click="nextPage(Number(getCurrentPageNumber++))"
251
+ >
252
+ {{
253
+ `Next ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) + 1 : Number(getCurrentPageNumber) + 1}`
254
+ }}
255
+ </button>
256
+ </nav>
257
+ </div>
258
+
259
+ <div class="min-h-[34rem] max-h-[34rem] flex gap-6">
260
+ <div class="w-9/12 pr-1 rounded-lg overflow-y-auto">
261
+ <div class="grid md:grid-cols-4 sm:grid-cols-4 grid-cols-2 gap-2">
262
+ <div
263
+ v-for="image in getUnsplashImages.results"
264
+ :key="image.id"
265
+ @click="handleImageClick({ url: image.urls.regular, user: image.user.name })"
266
+ class="border border-myPrimaryLightGrayColor rounded-lg px-2 p-2 cursor-pointer bg-gray-50"
267
+ >
268
+ <img
269
+ :alt="image.user.name"
270
+ class="group block w-full overflow-hidden rounded-lg cursor-pointer"
271
+ :src="image.urls.thumb"
272
+ />
273
+ <p class="myPrimaryParagraph text-xs font-normal mt-2">By: {{ image.user.name }}</p>
274
+ </div>
275
+ </div>
276
+
277
+ <div v-if="getUnsplashImages.results.length < 1">
278
+ <p class="myPrimaryParagraph py-4 px-4">
279
+ <span v-if="getCurrentPageNumber === 1">
280
+ We did not find any images. Make a new search.
281
+ </span>
282
+ <span v-if="getCurrentPageNumber > 1" @click="nextPage(1)" class="myPrimaryLink">
283
+ No results on current page. Navigate to First Page.
284
+ </span>
285
+ </p>
286
+ </div>
287
+ </div>
288
+ <!-- Sidebar # start -->
289
+ <div class="w-3/12 overflow-y-auto">
290
+ <template v-if="getCurrentImage">
291
+ <img
292
+ class="mx-auto block w-full object-cover object-center cursor-pointer"
293
+ :src="`${getCurrentImage}`"
294
+ alt="file"
295
+ />
296
+ <div class="md:px-3 px-2">
297
+ <div>
298
+ <h3 class="font-normal text-gray-900">Information</h3>
299
+ <dl class="mt-2 border-t border-b border-gray-200 divide-y divide-gray-200">
300
+ <div class="py-3 flex justify-between text-sm font-normal items-center">
301
+ <dt class="text-gray-500">From:</dt>
302
+ <dd class="text-gray-900">Unsplash</dd>
303
+ </div>
304
+ <div class="py-3 flex justify-between text-sm font-normal items-center">
305
+ <dt class="text-gray-500">By:</dt>
306
+ <dd class="text-gray-900">{{ getCurrentUser }}</dd>
307
+ </div>
308
+ </dl>
309
+ </div>
310
+ </div>
311
+ </template>
312
+ </div>
313
+ </div>
314
+ <!-- Sidebar # end -->
315
+
316
+ <!-- Actions footer # start -->
317
+ <div class="px-4 py-3 flex gap-2 border-t border-gray-200 mt-4 justify-end">
318
+ <button
319
+ @click="closeMediaLibraryModal"
320
+ class="mySecondaryButton focus:ring-2 focus:ring-blue-500"
321
+ type="button"
322
+ >
323
+ Close
324
+ </button>
325
+ <button
326
+ v-if="getCurrentImage && typeof getCurrentImage === 'string'"
327
+ @click="applySelectedImage(getCurrentImage)"
328
+ class="myPrimaryButton focus:ring-2 focus:ring-blue-500"
329
+ type="button"
330
+ >
331
+ Select image
332
+ </button>
333
+ </div>
334
+ <!-- Actions footer # end -->
335
+ </div>
336
+ </div>
337
+ <div v-else>
338
+ <button class="sr-only">Focusable fallback</button>
339
+ </div>
340
+ <template v-if="getIsLoading">
341
+ <div class="flex items-center justify-center mt-4">
342
+ <div
343
+ class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-current border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]"
344
+ >
345
+ <span
346
+ class="!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
347
+ >Loading...</span
348
+ >
349
+ </div>
350
+ </div>
351
+ </template>
352
+ </div>
353
+ </template>
@@ -90,7 +90,7 @@ const handleDownloadHTML = function () {
90
90
  type="button"
91
91
  class="myPrimaryButton text"
92
92
  >
93
- Open Overview
93
+ Advanced Settings
94
94
  </button>
95
95
  </div>
96
96
  </div>
@@ -593,6 +593,32 @@ const handleDownloadHTML = function () {
593
593
  </button>
594
594
  </div>
595
595
  </div>
596
+ <!-- Download Layout HTML - end -->
597
+
598
+ <!-- Congig - start -->
599
+ <div class="mt-4 mb-4 py-8 border-b border-myPrimbryLightGrayColor">
600
+ <div class="flex items-left flex-col gap-1">
601
+ <h3 class="myQuaternaryHeader">Complete Configuration Overview</h3>
602
+ <p class="myPrimaryParagraph text-xs">
603
+ omplete configuration object currently used by the Page Builder. It includes information
604
+ about the user, form behavior, branding settings, and other context-specific data needed
605
+ for rendering and managing the builder environment.
606
+ </p>
607
+ </div>
608
+
609
+ <div class="mt-4 whitespace-pre-wrap text-white overflow-hidden bg-gray-900 max-w-2xl">
610
+ <div class="flex bg-gray-800/40 ring-1 ring-white/5">
611
+ <div class="-mb-px flex text-xs font-medium text-myPrimaryMediumGrayColor">
612
+ <div class="px-4 py-4 text-white">Configuration</div>
613
+ </div>
614
+ </div>
615
+ <div class="px-4 pb-8 pt-4 text-white text-xs break-all">
616
+ <p class="myPrimaryParagraph text-xs text-white">
617
+ config: {{ JSON.stringify(getConfigPageBuilder, null, 4) }}
618
+ </p>
619
+ </div>
620
+ </div>
621
+ </div>
622
+ <!-- Config - end -->
596
623
  </div>
597
- <!-- Download Layout HTML - end -->
598
624
  </template>
@@ -5,7 +5,7 @@ import PageBuilderPreviewModal from '../Components/Modals/PageBuilderPreviewModa
5
5
  import Preview from './Preview.vue'
6
6
  import ComponentTopMenu from '../Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue'
7
7
  import EditGetElement from '../Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue'
8
- import SearchComponents from '../Components/Search/SearchComponents.vue'
8
+ import BuilderComponents from '../Components/Modals/BuilderComponents.vue'
9
9
  import OptionsDropdown from '../Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue'
10
10
  import RightSidebarEditor from '../Components/PageBuilder/EditorMenu/RightSidebarEditor.vue'
11
11
  import { sharedPageBuilderPinia, sharedPageBuilderStore } from '../stores/shared-store'
@@ -239,14 +239,14 @@ onMounted(async () => {
239
239
  </div>
240
240
  </div>
241
241
  <!-- Logo # end -->
242
- <SearchComponents
242
+ <BuilderComponents
243
243
  v-if="showModalAddComponent"
244
244
  :show="showModalAddComponent"
245
245
  :firstButtonText="firstButtonTextSearchComponents"
246
246
  :title="titleModalAddComponent"
247
247
  :CustomBuilderComponents="props.CustomBuilderComponents"
248
248
  @firstModalButtonSearchComponentsFunction="firstModalButtonSearchComponentsFunction"
249
- ></SearchComponents>
249
+ ></BuilderComponents>
250
250
  <PageBuilderPreviewModal
251
251
  :show="openPageBuilderPreviewModal"
252
252
  @firstPageBuilderPreviewModalButton="firstPageBuilderPreviewModalButton"
@@ -1,3 +0,0 @@
1
- <template>
2
- <div>NoneCustomMediaLibraryComponent here for the page builder to add media if needed</div>
3
- </template>