@myissue/vue-website-page-builder 3.3.63 → 3.3.65

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 (32) hide show
  1. package/README.md +147 -126
  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 +7326 -6943
  5. package/dist/vue-website-page-builder.umd.cjs +54 -51
  6. package/package.json +2 -2
  7. package/src/Components/DemoUnsplash.vue +1 -4
  8. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +2 -1
  9. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +18 -5
  10. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +6 -4
  11. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +2 -1
  12. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +5 -5
  13. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +7 -8
  14. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +2 -2
  15. package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +4 -2
  16. package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +4 -2
  17. package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +115 -0
  18. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +2 -1
  19. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +14 -7
  20. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +56 -64
  21. package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +10 -7
  22. package/src/PageBuilder/PageBuilder.vue +89 -63
  23. package/src/PageBuilder/Preview.vue +25 -9
  24. package/src/composables/extractCleanHTMLFromPageBuilder.ts +4 -3
  25. package/src/css/app.css +10 -70
  26. package/src/services/LocalStorageManager.ts +1 -162
  27. package/src/services/PageBuilderService.ts +586 -265
  28. package/src/stores/page-builder-state.ts +8 -0
  29. package/src/tests/PageBuilderTest.vue +20 -19
  30. package/src/tests/componentsArray.test.json +3 -3
  31. package/src/types/index.ts +10 -2
  32. package/src/utils/html-elements/component.ts +10 -10
package/src/css/app.css CHANGED
@@ -384,33 +384,10 @@
384
384
  margin-left: 1em; /* Adjust this value as needed */
385
385
  }
386
386
 
387
- #settingsPanel {
388
- border-radius: 9999px;
389
- position: absolute;
390
- opacity: 0;
391
- pointer-events: none;
392
- transform: translateY(1rem);
393
- transition:
394
- opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
395
- transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
396
- box-shadow:
397
- 0 8px 24px rgba(0, 0, 0, 0.08),
398
- 0 1.5px 4px rgba(0, 0, 0, 0.06);
399
- }
400
-
401
- [selected]:hover #settingsPanel,
402
- [selected]:focus-within #settingsPanel {
403
- opacity: 1;
404
- pointer-events: auto;
405
- transform: translateY(0);
406
- }
407
-
408
- #editToolbar {
387
+ #pbxEditToolbar {
409
388
  opacity: 0;
410
389
  pointer-events: none;
411
390
  transform: translateY(0.1rem) scale(0.1);
412
-
413
- border-radius: 9999px;
414
391
  transition:
415
392
  left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
416
393
  top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
@@ -422,28 +399,23 @@
422
399
  border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1);
423
400
  }
424
401
 
425
- #editToolbar.is-visible {
402
+ #pbxEditToolbar.is-visible {
426
403
  opacity: 1;
427
404
  pointer-events: auto;
428
405
  transform: translateY(0) scale(1);
429
- min-width: 20rem;
430
- width: 20rem;
431
- height: 2.5rem;
432
- border-radius: 9999px;
433
- }
434
-
435
- #contains-pagebuilder {
436
- position: relative; /* make this the positioning context for absolute children */
437
- overflow-y: auto;
438
- }
439
-
440
- .smooth-transition {
441
- transition: opacity 0.3s ease-in-out;
406
+ min-width: 4rem;
407
+ padding-right: 1rem;
408
+ padding-left: 1rem;
409
+ height: 2.2rem;
442
410
  }
443
411
 
444
412
  /* Manage P, Link, H1, H2 # end */
445
413
 
446
414
  /* CSS for content inside page builder # start */
415
+ #pagebuilder {
416
+ position: relative;
417
+ overflow-y: auto;
418
+ }
447
419
  #pagebuilder a {
448
420
  pointer-events: none;
449
421
  }
@@ -519,38 +491,6 @@
519
491
  padding: 0rem;
520
492
  }
521
493
 
522
- /* Add overflow-x property to enable horizontal scrollbar */
523
- .scrollable {
524
- overflow-x: auto;
525
- overflow-y: auto;
526
- /* Add any other desired styles for the scrollable element */
527
- }
528
- /* Scrollbar Styles - end */
529
-
530
- /* Scrollbar Styles - start */
531
- /* Firefox */
532
- * {
533
- scrollbar-width: thin;
534
- scrollbar-color: black transparent;
535
- }
536
-
537
- *::-webkit-scrollbar-track {
538
- background: transparent;
539
- border-radius: 25px;
540
- }
541
-
542
- /* Chrome, Edge, and Safari */
543
- *::-webkit-scrollbar {
544
- width: 6px;
545
- height: 6px; /* Add height for horizontal scrollbar */
546
- }
547
-
548
- *::-webkit-scrollbar-thumb {
549
- background-color: black;
550
- border-radius: 25px;
551
- border: none;
552
- }
553
-
554
494
  #pagebuilder[data-global-selected] {
555
495
  outline: 4px dashed #b91010 !important;
556
496
  outline-offset: -2px !important;
@@ -1,162 +1 @@
1
- import { usePageBuilderStateStore } from '../stores/shared-store'
2
-
3
- export class LocalStorageManager {
4
- private pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>
5
- private sanitizeForLocalStorage: (input: string) => string
6
-
7
- constructor(
8
- pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>,
9
- sanitizeForLocalStorage: (input: string) => string,
10
- ) {
11
- this.pageBuilderStateStore = pageBuilderStateStore
12
- this.sanitizeForLocalStorage = sanitizeForLocalStorage
13
- }
14
-
15
- public updateLocalStorageItemName(): void {
16
- const formtype =
17
- this.pageBuilderStateStore.getPageBuilderConfig &&
18
- this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate &&
19
- this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formType
20
-
21
- const formname =
22
- this.pageBuilderStateStore.getPageBuilderConfig &&
23
- this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate &&
24
- this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formName
25
-
26
- const resourceData =
27
- this.pageBuilderStateStore.getPageBuilderConfig &&
28
- this.pageBuilderStateStore.getPageBuilderConfig.resourceData
29
-
30
- // Logic for create resource
31
- if (formtype === 'create') {
32
- if (formname && formname.length > 0) {
33
- this.pageBuilderStateStore.setLocalStorageItemName(
34
- `page-builder-create-resource-${this.sanitizeForLocalStorage(formname)}`,
35
- )
36
- return
37
- }
38
-
39
- this.pageBuilderStateStore.setLocalStorageItemName(`page-builder-create-resource`)
40
- return
41
- }
42
-
43
- // Logic for create
44
- // Logic for update and with resource form name
45
- if (formtype === 'update') {
46
- if (typeof formname === 'string' && formname.length > 0) {
47
- //
48
- //
49
- if (resourceData && resourceData != null && !resourceData.title) {
50
- // Check if id is missing, null, undefined, or an empty string (after trimming)
51
- if (!resourceData.id || typeof resourceData.id === 'string') {
52
- this.pageBuilderStateStore.setLocalStorageItemName(
53
- `page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}`,
54
- )
55
- return
56
- }
57
- }
58
-
59
- // Runs when resourceData has title but no ID
60
- if (resourceData && resourceData != null) {
61
- if (
62
- resourceData.title &&
63
- typeof resourceData.title === 'string' &&
64
- resourceData.title.length > 0
65
- ) {
66
- if (!resourceData.id || typeof resourceData.id === 'string') {
67
- this.pageBuilderStateStore.setLocalStorageItemName(
68
- `page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(resourceData.title)}`,
69
- )
70
- return
71
- }
72
- }
73
- }
74
-
75
- // Runs when resourceData has ID but no title
76
- if (resourceData && resourceData != null) {
77
- if (!resourceData.title && typeof resourceData.title !== 'string') {
78
- if (resourceData.id || typeof resourceData.id === 'number') {
79
- this.pageBuilderStateStore.setLocalStorageItemName(
80
- `page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
81
- )
82
- return
83
- }
84
- }
85
- }
86
-
87
- // Runs when resourceData has both title and ID
88
- if (resourceData && resourceData != null) {
89
- if (
90
- resourceData.title &&
91
- typeof resourceData.title === 'string' &&
92
- resourceData.title.length > 0
93
- ) {
94
- if (resourceData.id || typeof resourceData.id === 'number') {
95
- this.pageBuilderStateStore.setLocalStorageItemName(
96
- `page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(resourceData.title)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
97
- )
98
- return
99
- }
100
- }
101
- }
102
- }
103
-
104
- // Logic for update without without formname
105
- if (!formname || (typeof formname === 'string' && formname.length === 0)) {
106
- //
107
- //
108
- if (resourceData && resourceData != null && !resourceData.title) {
109
- // Check if id is missing, null, undefined, or an empty string (after trimming)
110
- if (!resourceData.id || typeof resourceData.id === 'string') {
111
- this.pageBuilderStateStore.setLocalStorageItemName(`page-builder-update-resource`)
112
- return
113
- }
114
- }
115
-
116
- // Runs when resourceData has title but no ID
117
- if (resourceData && resourceData != null) {
118
- if (
119
- resourceData.title &&
120
- typeof resourceData.title === 'string' &&
121
- resourceData.title.length > 0
122
- ) {
123
- if (!resourceData.id || typeof resourceData.id === 'string') {
124
- this.pageBuilderStateStore.setLocalStorageItemName(
125
- `page-builder-update-resource-${this.sanitizeForLocalStorage(resourceData.title)}`,
126
- )
127
- return
128
- }
129
- }
130
- }
131
-
132
- // Runs when resourceData has ID but no title
133
- if (resourceData && resourceData != null) {
134
- if (!resourceData.title && typeof resourceData.title !== 'string') {
135
- if (resourceData.id || typeof resourceData.id === 'number') {
136
- this.pageBuilderStateStore.setLocalStorageItemName(
137
- `page-builder-update-resource-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
138
- )
139
- return
140
- }
141
- }
142
- }
143
-
144
- // Runs when resourceData has both title and ID
145
- if (resourceData && resourceData != null) {
146
- if (
147
- resourceData.title &&
148
- typeof resourceData.title === 'string' &&
149
- resourceData.title.length > 0
150
- ) {
151
- if (resourceData.id || typeof resourceData.id === 'number') {
152
- this.pageBuilderStateStore.setLocalStorageItemName(
153
- `page-builder-update-resource-${this.sanitizeForLocalStorage(resourceData.title)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
154
- )
155
- return
156
- }
157
- }
158
- }
159
- }
160
- }
161
- }
162
- }
1
+ export class LocalStorageManager {}