@myissue/vue-website-page-builder 3.4.19 → 3.4.21

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 (89) hide show
  1. package/README.md +32 -26
  2. package/dist/vue-website-page-builder.js +1263 -1259
  3. package/dist/vue-website-page-builder.umd.cjs +46 -46
  4. package/package.json +3 -5
  5. package/src/App.vue +0 -28
  6. package/src/Components/Homepage/Footer.vue +0 -32
  7. package/src/Components/Homepage/Navbar.vue +0 -25
  8. package/src/Components/Layouts/FullWidthElement.vue +0 -34
  9. package/src/Components/Loaders/GlobalLoader.vue +0 -18
  10. package/src/Components/Modals/BuilderComponents.vue +0 -53
  11. package/src/Components/Modals/DynamicModalBuilder.vue +0 -209
  12. package/src/Components/Modals/MediaLibraryModal.vue +0 -61
  13. package/src/Components/Modals/ModalBuilder.vue +0 -117
  14. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +0 -121
  15. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +0 -188
  16. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +0 -176
  17. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +0 -112
  18. package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +0 -108
  19. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +0 -541
  20. package/src/Components/PageBuilder/EditorMenu/Editables/HTMLEditor.vue +0 -203
  21. package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +0 -96
  22. package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +0 -315
  23. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +0 -107
  24. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +0 -106
  25. package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +0 -116
  26. package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +0 -19
  27. package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +0 -117
  28. package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +0 -123
  29. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +0 -123
  30. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +0 -237
  31. package/src/Components/PageBuilder/EditorMenu/EditorAccordion.vue +0 -46
  32. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +0 -368
  33. package/src/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue +0 -476
  34. package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +0 -581
  35. package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +0 -248
  36. package/src/Components/PageBuilder/UndoRedo/UndoRedo.vue +0 -90
  37. package/src/Components/TipTap/TipTap.vue +0 -25
  38. package/src/Components/TipTap/TipTapInput.vue +0 -340
  39. package/src/PageBuilder/PageBuilder.vue +0 -1025
  40. package/src/PageBuilder/Preview.vue +0 -64
  41. package/src/composables/builderInstance.ts +0 -47
  42. package/src/composables/delay.ts +0 -5
  43. package/src/composables/extractCleanHTMLFromPageBuilder.ts +0 -59
  44. package/src/composables/preloadImage.ts +0 -8
  45. package/src/composables/useDebounce.ts +0 -8
  46. package/src/composables/usePageBuilderModal.ts +0 -25
  47. package/src/composables/useTranslations.ts +0 -28
  48. package/src/css/dev-global.css +0 -24
  49. package/src/css/style.css +0 -600
  50. package/src/helpers/isEmptyObject.ts +0 -5
  51. package/src/index.ts +0 -28
  52. package/src/locales/ar.json +0 -170
  53. package/src/locales/de.json +0 -171
  54. package/src/locales/en.json +0 -171
  55. package/src/locales/es.json +0 -171
  56. package/src/locales/fr.json +0 -171
  57. package/src/locales/hi.json +0 -172
  58. package/src/locales/ja.json +0 -171
  59. package/src/locales/pt.json +0 -171
  60. package/src/locales/ru.json +0 -171
  61. package/src/locales/zh-Hans.json +0 -171
  62. package/src/main.ts +0 -14
  63. package/src/plugin.ts +0 -16
  64. package/src/services/LocalStorageManager.ts +0 -25
  65. package/src/services/PageBuilderService.ts +0 -3191
  66. package/src/stores/page-builder-state.ts +0 -498
  67. package/src/stores/shared-store.ts +0 -13
  68. package/src/tailwind-safelist.html +0 -3
  69. package/src/tests/DefaultComponents/DefaultBuilderComponents.vue +0 -284
  70. package/src/tests/DefaultComponents/DefaultMediaLibraryComponent.vue +0 -10
  71. package/src/tests/PageBuilderTest.vue +0 -82
  72. package/src/tests/TestComponents/DemoBuilderComponentsTest.vue +0 -5
  73. package/src/tests/TestComponents/DemoMediaLibraryComponentTest.vue +0 -8
  74. package/src/tests/TestComponents/DemoUnsplash.vue +0 -389
  75. package/src/tests/componentsArray.test.json +0 -62
  76. package/src/tests/pageBuilderService.test.ts +0 -165
  77. package/src/types/global.d.ts +0 -11
  78. package/src/types/index.ts +0 -306
  79. package/src/utils/builder/html-doc-declaration-with-components.ts +0 -7
  80. package/src/utils/builder/tailwaind-colors.ts +0 -503
  81. package/src/utils/builder/tailwind-border-radius.ts +0 -67
  82. package/src/utils/builder/tailwind-border-style-width-color.ts +0 -272
  83. package/src/utils/builder/tailwind-font-sizes.ts +0 -75
  84. package/src/utils/builder/tailwind-font-styles.ts +0 -56
  85. package/src/utils/builder/tailwind-opacities.ts +0 -45
  86. package/src/utils/builder/tailwind-padding-margin.ts +0 -159
  87. package/src/utils/html-elements/component.ts +0 -485
  88. package/src/utils/html-elements/componentHelpers.ts +0 -98
  89. package/src/utils/html-elements/themes.ts +0 -85
@@ -1,248 +0,0 @@
1
- <script setup>
2
- import { computed, ref } from 'vue'
3
- import { sharedPageBuilderStore } from '../../../stores/shared-store'
4
- import ModalBuilder from '../../Modals/ModalBuilder.vue'
5
- import PageBuilderSettings from '../Settings/PageBuilderSettings.vue'
6
- import AdvancedPageBuilderSettings from '../Settings/AdvancedPageBuilderSettings.vue'
7
-
8
- import DynamicModalBuilder from '../../Modals/DynamicModalBuilder.vue'
9
-
10
- import { getPageBuilder } from '../../../composables/builderInstance'
11
- import { delay } from '../../../composables/delay'
12
- import { useTranslations } from '../../../composables/useTranslations'
13
-
14
- const { translate } = useTranslations()
15
-
16
- const pageBuilderService = getPageBuilder()
17
-
18
- // Use shared store instance
19
- const pageBuilderStateStore = sharedPageBuilderStore
20
-
21
- const getPageBuilderConfig = computed(() => {
22
- return pageBuilderStateStore.getPageBuilderConfig
23
- })
24
-
25
- const isDeletingLayout = ref(false)
26
- const showModalDeleteAllComponents = ref(false)
27
- //
28
- // use dynamic model
29
- const typeModal = ref('')
30
- const gridColumnModal = ref(Number(1))
31
- const titleModal = ref('')
32
- const descriptionModal = ref('')
33
- const firstButtonModal = ref('')
34
- const secondButtonModal = ref(null)
35
- const thirdButtonModal = ref(null)
36
- // set dynamic modal handle functions
37
- const firstModalButtonFunctionDynamicModalBuilder = ref(null)
38
- const secondModalButtonFunctionDynamicModalBuilder = ref(null)
39
- const thirdModalButtonFunctionDynamicModalBuilder = ref(null)
40
-
41
- const handleDeleteComponentsFromDOM = function () {
42
- showModalDeleteAllComponents.value = true
43
- typeModal.value = 'delete'
44
- gridColumnModal.value = 2
45
- titleModal.value = translate('Remove all Components')
46
- descriptionModal.value = translate('Are you sure you want to remove all Components?')
47
- firstButtonModal.value = translate('Close')
48
- secondButtonModal.value = null
49
- thirdButtonModal.value = translate('Delete')
50
-
51
- // handle click
52
- firstModalButtonFunctionDynamicModalBuilder.value = function () {
53
- showModalDeleteAllComponents.value = false
54
- }
55
- //
56
- // handle click
57
- thirdModalButtonFunctionDynamicModalBuilder.value = async function () {
58
- isDeletingLayout.value = true
59
- await pageBuilderService.clearHtmlSelection()
60
- await pageBuilderService.handleFormSubmission()
61
- await delay(500)
62
-
63
- showModalDeleteAllComponents.value = false
64
- isDeletingLayout.value = false
65
- }
66
- // end modal
67
- }
68
-
69
- // Settings
70
- const showMainSettings = ref(false)
71
-
72
- // handle slideover window
73
- const handleMainSettings = function () {
74
- showMainSettings.value = false
75
- }
76
-
77
- const openMainSettings = function () {
78
- showMainSettings.value = true
79
- }
80
-
81
- // Settings
82
- const showHTMLSettings = ref(false)
83
-
84
- // handle slideover window
85
- const closeHTMLSettings = function () {
86
- showHTMLSettings.value = false
87
- }
88
-
89
- const openHTMLSettings = async function () {
90
- await pageBuilderService.generateHtmlFromComponents()
91
- showHTMLSettings.value = true
92
- }
93
- </script>
94
-
95
- <template>
96
- <div>
97
- <div class="pbx-flex pbx-items-center pbx-justify-center">
98
- <div class="pbx-mr-2">
99
- <!-- User No image Start-->
100
- <div
101
- class="pbx-flex pbx-items-center pbx-myPrimaryTag pbx-whitespace-nowrap pbx-py-0 pbx-gap-2"
102
- v-if="
103
- getPageBuilderConfig &&
104
- getPageBuilderConfig.userForPageBuilder &&
105
- getPageBuilderConfig.userForPageBuilder.name &&
106
- (!getPageBuilderConfig.userForPageBuilder.image ||
107
- (typeof getPageBuilderConfig.userForPageBuilder.image === 'string' &&
108
- getPageBuilderConfig.userForPageBuilder.image?.length < 2))
109
- "
110
- >
111
- <div
112
- class="pbx-text-white pbx-rounded-full pbx-bg-myPrimaryBrandColor pbx-flex pbx-justify-center pbx-items-center pbx-text-xs pbx-d pbx-min-d pbx-max-d lg:pbx-w-8 lg:pbx-h-8 lg:pbx-min-w-8 lg:pbx-max-w-8 pbx-w-8 pbx-h-8 pbx-min-w-8 pbx-max-w-8 pbx-font-normal"
113
- >
114
- {{
115
- typeof getPageBuilderConfig.userForPageBuilder.name === 'string' &&
116
- getPageBuilderConfig.userForPageBuilder.name[0]
117
- }}
118
- </div>
119
- <div
120
- class="pbx-hidden pbx-text-xs pbx-d lg:pbx-flex pbx-items-center pbx-font-normal pbx-w-max pbx-break-keep"
121
- >
122
- {{ getPageBuilderConfig.userForPageBuilder.name }}
123
- </div>
124
- </div>
125
-
126
- <!-- User No image End -->
127
-
128
- <!-- User With image Start-->
129
- <div
130
- class="pbx-flex pbx-items-center lg:pbx-myPrimaryTag pbx-whitespace-nowrap pbx-py-0 pbx-gap-4 pbx-w-max pbx-h-12 pbx-ml-2"
131
- v-if="
132
- getPageBuilderConfig &&
133
- getPageBuilderConfig.userForPageBuilder &&
134
- getPageBuilderConfig.userForPageBuilder.name &&
135
- getPageBuilderConfig.userForPageBuilder.image &&
136
- typeof getPageBuilderConfig.userForPageBuilder.image === 'string' &&
137
- getPageBuilderConfig.userForPageBuilder.image.length > 2
138
- "
139
- >
140
- <div
141
- class="pbx-text-white pbx-flex-shrink-0 pbx-d pbx-w-10 pbx-h-10 pbx-rounded-full pbx-flex pbx-justify-center pbx-items-center pbx-text-xs pbx-rounded-l-full"
142
- >
143
- <img
144
- alt="Avatar"
145
- :src="`${getPageBuilderConfig.userForPageBuilder.image}`"
146
- class="pbx-block pbx-inset-0 pbx-object-top pbx-d pbx-min-d pbx-max-d lg:pbx-w-8 lg:pbx-h-8 lg:pbx-min-w-8 lg:pbx-max-w-8 pbx-w-8 pbx-h-8 pbx-min-w-8 pbx-max-w-8 pbx-object-cover pbx-rounded-full"
147
- />
148
- </div>
149
- <div
150
- class="pbx-hidden pbx-text-xs pbx-d lg:pbx-flex pbx-items-center pbx-font-normal pbx-w-max pbx-break-keep"
151
- >
152
- {{ getPageBuilderConfig.userForPageBuilder.name }}
153
- </div>
154
- </div>
155
- </div>
156
-
157
- <!-- User With image End -->
158
-
159
- <div class="pbx-hidden lg:pbx-block">
160
- <!-- Component Start -->
161
- <div class="pbx-relative pbx-group">
162
- <button type="button" class="pbx-mySecondaryButton pbx-font-normal pbx-text-xs">
163
- <span> {{ translate('Options') }} </span>
164
- </button>
165
- <div
166
- 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"
167
- >
168
- <!-- Main Settings Start -->
169
- <button
170
- @click="
171
- async () => {
172
- await pageBuilderService.clearHtmlSelection()
173
- openMainSettings()
174
- }
175
- "
176
- class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
177
- type="button"
178
- >
179
- {{ translate('Config Overview') }}
180
- </button>
181
- <!-- Main Settings End -->
182
-
183
- <!-- HTML Settings Start -->
184
- <button
185
- @click="openHTMLSettings"
186
- class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
187
- type="button"
188
- >
189
- {{ translate('HTML Overview') }}
190
- </button>
191
- <!-- HTML Settings End -->
192
-
193
- <!-- Delete Layout Start -->
194
- <button
195
- @click="handleDeleteComponentsFromDOM"
196
- class="pbx-myPrimaryDeleteButton pbx-text-xs pbx-font-normal"
197
- type="button"
198
- >
199
- {{ translate('Delete Layout') }}
200
- </button>
201
- <!-- Delete Layout End -->
202
- </div>
203
- </div>
204
- </div>
205
- <!-- Component End -->
206
- </div>
207
-
208
- <ModalBuilder
209
- maxWidth="5xl"
210
- :showModalBuilder="showMainSettings"
211
- title="Main Settings"
212
- @closeMainModalBuilder="handleMainSettings"
213
- minHeight=""
214
- maxHeight=""
215
- >
216
- <PageBuilderSettings> </PageBuilderSettings>
217
- </ModalBuilder>
218
-
219
- <ModalBuilder
220
- maxWidth="5xl"
221
- :showModalBuilder="showHTMLSettings"
222
- :title="translate('Selected HTML')"
223
- @closeMainModalBuilder="closeHTMLSettings"
224
- minHeight=""
225
- maxHeight=""
226
- >
227
- <AdvancedPageBuilderSettings> </AdvancedPageBuilderSettings>
228
- </ModalBuilder>
229
-
230
- <DynamicModalBuilder
231
- :showDynamicModalBuilder="showModalDeleteAllComponents"
232
- :type="typeModal"
233
- :gridColumnAmount="gridColumnModal"
234
- :title="titleModal"
235
- :description="descriptionModal"
236
- :isLoading="isDeletingLayout"
237
- :firstButtonText="firstButtonModal"
238
- :secondButtonText="secondButtonModal"
239
- :thirdButtonText="thirdButtonModal"
240
- @firstModalButtonFunctionDynamicModalBuilder="firstModalButtonFunctionDynamicModalBuilder"
241
- @secondModalButtonFunctionDynamicModalBuilder="secondModalButtonFunctionDynamicModalBuilder"
242
- @thirdModalButtonFunctionDynamicModalBuilder="thirdModalButtonFunctionDynamicModalBuilder"
243
- >
244
- <header></header>
245
- <main></main>
246
- </DynamicModalBuilder>
247
- </div>
248
- </template>
@@ -1,90 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, ref } from 'vue'
3
- import { sharedPageBuilderStore } from '../../../stores/shared-store'
4
- import GlobalLoader from '../../../Components/Loaders/GlobalLoader.vue'
5
- import { getPageBuilder } from '../../../composables/builderInstance'
6
-
7
- const pageBuilderService = getPageBuilder()
8
-
9
- const emit = defineEmits(['toolbar-hide-request'])
10
-
11
- // Use shared store instance
12
- const pageBuilderStateStore = sharedPageBuilderStore
13
-
14
- const getIsLoadingGlobal = computed(() => {
15
- return pageBuilderStateStore.getIsLoadingGlobal
16
- })
17
-
18
- const historyIndex = computed(() => pageBuilderStateStore.getHistoryIndex)
19
- const historyLength = computed(() => pageBuilderStateStore.getHistoryLength)
20
-
21
- const canUndo = computed(() => historyIndex.value > 0)
22
- const canRedo = computed(() => historyIndex.value < historyLength.value - 1)
23
-
24
- const handleUndo = async function () {
25
- if (canUndo.value) {
26
- // Emit event to hide toolbar
27
- emit('toolbar-hide-request')
28
- await pageBuilderService.undo()
29
- await pageBuilderService.clearHtmlSelection()
30
- }
31
- }
32
-
33
- const handleRedo = async function () {
34
- if (canRedo.value) {
35
- // Emit event to hide toolbar
36
- emit('toolbar-hide-request')
37
- await pageBuilderService.redo()
38
- await pageBuilderService.clearHtmlSelection()
39
- }
40
- }
41
- </script>
42
-
43
- <template>
44
- <GlobalLoader v-if="getIsLoadingGlobal"></GlobalLoader>
45
- <div
46
- @click="
47
- async () => {
48
- await pageBuilderService.clearHtmlSelection()
49
- }
50
- "
51
- class="pbx-flex-1 pbx-flex pbx-justify-center pbx-items-center pbx-py-2 pbx-w-full gap-1"
52
- >
53
- <!-- Undo Start -->
54
-
55
- <div
56
- @click="handleUndo"
57
- type="button"
58
- class="pbx-h-10 pbx-w-10 pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square pbx-text-black hover:pbx-text-white"
59
- :class="[
60
- canUndo
61
- ? 'pbx-cursor-pointer hover:pbx-bg-myPrimaryLinkColor focus-visible:pbx-ring-0'
62
- : 'pbx-cursor-not-allowed pbx-bg-opacity-20 hover:pbx-bg-gray-200',
63
- ]"
64
- >
65
- <span class="material-symbols-outlined"> undo </span>
66
- </div>
67
-
68
- <!-- Undo End -->
69
- <div
70
- class="pbx-text-xs pbx-text-gray-600 pbx-mx-2 pbx-py-3 pbx-px-2 pbx-border-solid pbx-border pbx-border-gray-200 pbx-rounded-full"
71
- >
72
- {{ historyIndex + 1 }}/{{ historyLength }}
73
- </div>
74
- <!-- Redo Start -->
75
-
76
- <div
77
- @click="handleRedo"
78
- class="pbx-h-10 pbx-w-10 pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square pbx-text-black hover:pbx-text-white"
79
- :class="[
80
- canRedo
81
- ? 'pbx-cursor-pointer hover:pbx-bg-myPrimaryLinkColor focus-visible:pbx-ring-0'
82
- : 'pbx-cursor-not-allowed pbx-bg-opacity-20 hover:pbx-bg-gray-200',
83
- ]"
84
- >
85
- <span class="material-symbols-outlined"> redo </span>
86
- </div>
87
-
88
- <!-- Redo End -->
89
- </div>
90
- </template>
@@ -1,25 +0,0 @@
1
- <script setup lang="ts">
2
- import { getPageBuilder } from '../../composables/builderInstance'
3
- import { useTranslations } from '../../composables/useTranslations'
4
-
5
- const { translate } = useTranslations()
6
- const pageBuilderService = getPageBuilder()
7
- </script>
8
-
9
- <template>
10
- <div>
11
- <template v-if="pageBuilderService.isSelectedElementValidText()">
12
- <div class="pbx-flex pbx-flex-col pbx-border-solid pbx-border pbx-border-gray-400">
13
- <div
14
- @click="pageBuilderService.toggleTipTapModal(true)"
15
- class="pbx-flex pbx-flex-row pbx-justify-between pbx-items-center pbx-pl-3 pbx-pr-3 pbx-py-5 pbx-cursor-pointer pbx-duration-200 hover:pbx-bg-myPrimaryLightGrayColor pbx-bg-white"
16
- >
17
- <p class="pbx-myPrimaryParagraph pbx-font-medium pbx-my-0 pbx-py-0">
18
- {{ translate('Text') }}
19
- </p>
20
- <span class="material-symbols-outlined"> chevron_right </span>
21
- </div>
22
- </div>
23
- </template>
24
- </div>
25
- </template>