@myissue/vue-website-page-builder 3.3.38 → 3.3.40

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": "3.3.38",
3
+ "version": "3.3.40",
4
4
  "description": "Vue 3 page builder component with drag & drop functionality.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",
@@ -273,7 +273,7 @@ const getRestoredElement = computed(() => {
273
273
  <button
274
274
  @click="handleModalIframeSrc"
275
275
  type="button"
276
- class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white pbx-bg-gray-300 focus-visible:pbx-ring-0"
276
+ class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white focus-visible:pbx-ring-0"
277
277
  >
278
278
  <span class="material-symbols-outlined"> play_circle </span>
279
279
  </button>
@@ -290,7 +290,7 @@ const getRestoredElement = computed(() => {
290
290
  <button
291
291
  @click="handleModalPreviewTiptap"
292
292
  type="button"
293
- class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white pbx-bg-gray-300 focus-visible:pbx-ring-0"
293
+ class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white focus-visible:pbx-ring-0"
294
294
  >
295
295
  <span class="material-symbols-outlined"> edit </span>
296
296
  </button>
@@ -310,7 +310,7 @@ const getRestoredElement = computed(() => {
310
310
  <button
311
311
  @click="handleAddImage"
312
312
  type="button"
313
- class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white pbx-bg-gray-300 focus-visible:pbx-ring-0"
313
+ class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white focus-visible:pbx-ring-0"
314
314
  >
315
315
  <span class="material-symbols-outlined"> add_photo_alternate </span>
316
316
  </button>
@@ -332,7 +332,7 @@ const getRestoredElement = computed(() => {
332
332
  <button
333
333
  @click="pageBuilderService.deleteElementFromDOM"
334
334
  type="button"
335
- class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white pbx-bg-gray-300 focus-visible:pbx-ring-0"
335
+ class="pbx-h-10 pbx-w-10 pbx-flex-end 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-red-500 hover:pbx-fill-white focus-visible:pbx-ring-0"
336
336
  >
337
337
  <span class="material-symbols-outlined"> delete </span>
338
338
  </button>
@@ -340,7 +340,7 @@ const getRestoredElement = computed(() => {
340
340
 
341
341
  <div
342
342
  v-if="getElement && getComponent"
343
- class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white pbx-bg-gray-300 focus-visible:pbx-ring-0"
343
+ class="pbx-h-10 pbx-w-10 pbx-flex-end 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-gray-100 hover:pbx-fill-white focus-visible:pbx-ring-0"
344
344
  @click="pageBuilderService.clearHtmlSelection()"
345
345
  >
346
346
  <span class="material-symbols-outlined"> close </span>
@@ -288,7 +288,6 @@ function updatePanelPosition() {
288
288
  const selectedRect = selected.getBoundingClientRect()
289
289
  const containerRect = container.getBoundingClientRect()
290
290
 
291
- // Position editToolbar just above selected element, with a gap
292
291
  const left =
293
292
  selectedRect.left - containerRect.left + selectedRect.width / 2 - editToolbar.offsetWidth / 2
294
293
 
@@ -301,25 +300,17 @@ function updatePanelPosition() {
301
300
  editToolbar.style.position = 'absolute'
302
301
  editToolbar.style.left = `${left}px`
303
302
  editToolbar.style.top = `${top}px`
304
- editToolbar.style.opacity = '1'
305
- editToolbar.style.pointerEvents = 'auto'
306
- editToolbar.style.transform = 'translateY(0)'
303
+ editToolbar.classList.add('is-visible')
307
304
 
308
- // Store last position
309
305
  lastToolbarLeft = left
310
306
  lastToolbarTop = top
311
307
  } else if (restored && lastToolbarLeft !== null && lastToolbarTop !== null) {
312
- // Use last position for restore icon
313
308
  editToolbar.style.position = 'absolute'
314
309
  editToolbar.style.left = `${lastToolbarLeft}px`
315
310
  editToolbar.style.top = `${lastToolbarTop}px`
316
- editToolbar.style.opacity = '1'
317
- editToolbar.style.pointerEvents = 'auto'
318
- editToolbar.style.transform = 'translateY(0)'
311
+ editToolbar.classList.add('is-visible')
319
312
  } else {
320
- editToolbar.style.opacity = '0'
321
- editToolbar.style.pointerEvents = 'none'
322
- editToolbar.style.transform = 'translateY(0.5rem)'
313
+ editToolbar.classList.remove('is-visible')
323
314
  }
324
315
  }
325
316
 
@@ -691,16 +682,16 @@ onMounted(async () => {
691
682
 
692
683
  <main
693
684
  ref="pbxToolBar"
694
- class="pbx-flex pbx-flex-col pbx-grow pbx-rounded-tr-2xl pbx-rounded-tl-2xl pbx-border-solid pbx-border pbx-border-gray-200 pbx-items-stretch pbx-h-[90vh]"
685
+ class="pbx-flex pbx-flex-col pbx-grow pbx-rounded-tr-2xl pbx-rounded-tl-2xl pbx-border-solid pbx-border pbx-border-gray-200 pbx-items-stretch pbx-h-[100vh]"
695
686
  :class="{ 'pbx-mr-2': !getMenuRight, '': getMenuRight }"
696
687
  >
697
688
  <div
698
689
  id="editToolbar"
699
- class="pbx-z-30 lg:pbx-mx-20 pbx-flex pbx-gap-2 pbx-justify-center pbx-min-w-48 pbx-items-center pbx-rounded-full pbx-px-4"
690
+ class="pbx-z-30 lg:pbx-mx-20 pbx-flex pbx-gap-2 pbx-justify-center pbx-min-w-48 pbx-items-center pbx-rounded-full pbx-px-4 pbx-bg-red-200 pbx-h-0"
700
691
  style="
701
- outline: 10px solid oklch(86.9% 0.005 56.366);
702
- outline-offset: 0px;
692
+ box-shadow: 0 0 0 10px oklch(86.9% 0.005 56.366);
703
693
  background: oklch(86.9% 0.005 56.366);
694
+ border-radius: 9999px;
704
695
  "
705
696
  >
706
697
  <template v-if="getElement">
@@ -783,7 +774,7 @@ onMounted(async () => {
783
774
  </aside>
784
775
  </div>
785
776
  <div
786
- class="pbx-flex pbx-items-center pbx-justify-center pbx-border-solid pbx-border-t pbx-border-gray-200 pbx-py-4"
777
+ class="pbx-flex pbx-items-center pbx-justify-center pbx-p-4 pbx-border-t pbx-border-t-gray-200 pbx-border-solid lg:pbx-mx-10"
787
778
  >
788
779
  <div
789
780
  @click="
package/src/css/app.css CHANGED
@@ -383,3 +383,171 @@
383
383
  line-height: 1.2;
384
384
  margin-left: 1em; /* Adjust this value as needed */
385
385
  }
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 {
409
+ opacity: 0;
410
+ pointer-events: none;
411
+ transform: translateY(0.1rem) scale(0.1);
412
+
413
+ border-radius: 9999px;
414
+ transition:
415
+ left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
416
+ top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
417
+ opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
418
+ transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
419
+ min-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
420
+ width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
421
+ height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
422
+ border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1);
423
+ overflow: hidden;
424
+ }
425
+
426
+ #editToolbar.is-visible {
427
+ opacity: 1;
428
+ pointer-events: auto;
429
+ transform: translateY(0) scale(1);
430
+ min-width: 12rem;
431
+ width: 16rem;
432
+ height: 2.5rem;
433
+ border-radius: 9999px;
434
+ }
435
+
436
+ #contains-pagebuilder {
437
+ position: relative; /* make this the positioning context for absolute children */
438
+ overflow-y: auto;
439
+ }
440
+
441
+ .smooth-transition {
442
+ transition: opacity 0.3s ease-in-out;
443
+ }
444
+
445
+ /* Manage P, Link, H1, H2 # end */
446
+
447
+ /* CSS for content inside page builder # start */
448
+ #pagebuilder a {
449
+ pointer-events: none;
450
+ }
451
+
452
+ #pagebuilder #youtube-video::before {
453
+ content: 'Select Video Element';
454
+ font-family: 'Jost';
455
+ background: #16a34a !important;
456
+ color: white;
457
+ text-decoration: none;
458
+ margin-right: 8px;
459
+ vertical-align: middle;
460
+ min-height: 3rem;
461
+ padding: 0.75rem 0.75rem;
462
+ white-space: nowrap;
463
+ word-break: keep-all;
464
+ font-weight: 500;
465
+ display: inline-flex;
466
+ gap: 0.25rem;
467
+ align-items: center;
468
+ justify-content: center;
469
+ border-radius: 9999px;
470
+ border: 1px solid transparent;
471
+ margin-bottom: 20px;
472
+ font-size: 0.8rem !important;
473
+ }
474
+
475
+ @media (min-width: 640px) {
476
+ #pagebuilder #youtube-video::before {
477
+ font-size: 0.9rem !important;
478
+ width: auto;
479
+ }
480
+ }
481
+
482
+ #pagebuilder #youtube-video:hover::before {
483
+ text-decoration: none;
484
+ cursor: pointer;
485
+ }
486
+
487
+ #page-builder-editor a,
488
+ #pagebuilder a {
489
+ text-decoration: underline;
490
+ }
491
+
492
+ #page-builder-editor #linktree p,
493
+ #pagebuilder #linktree p {
494
+ width: 100%;
495
+ }
496
+
497
+ #page-builder-editor #linktree a,
498
+ #pagebuilder #linktree a {
499
+ @apply pbx-py-4 pbx-px-2 pbx-block pbx-w-full;
500
+ }
501
+
502
+ #page-builder-editor #linktree a,
503
+ #pagebuilder #linktree a {
504
+ text-decoration: none;
505
+ font-weight: 500;
506
+ color: inherit !important;
507
+ width: 100%;
508
+ cursor: pointer;
509
+ }
510
+ #page-builder-editor strong,
511
+ #pagebuilder strong {
512
+ font-weight: 500;
513
+ }
514
+
515
+ #page-builder-editor ol,
516
+ #pagebuilder ol,
517
+ #page-builder-editor ul,
518
+ #pagebuilder ul {
519
+ list-style: disc !important;
520
+ padding: 0rem;
521
+ }
522
+
523
+ /* Add overflow-x property to enable horizontal scrollbar */
524
+ .scrollable {
525
+ overflow-x: auto;
526
+ overflow-y: auto;
527
+ /* Add any other desired styles for the scrollable element */
528
+ }
529
+ /* Scrollbar Styles - end */
530
+
531
+ /* Scrollbar Styles - start */
532
+ /* Firefox */
533
+ * {
534
+ scrollbar-width: thin;
535
+ scrollbar-color: black transparent;
536
+ }
537
+
538
+ *::-webkit-scrollbar-track {
539
+ background: transparent;
540
+ border-radius: 25px;
541
+ }
542
+
543
+ /* Chrome, Edge, and Safari */
544
+ *::-webkit-scrollbar {
545
+ width: 6px;
546
+ height: 6px; /* Add height for horizontal scrollbar */
547
+ }
548
+
549
+ *::-webkit-scrollbar-thumb {
550
+ background-color: black;
551
+ border-radius: 25px;
552
+ border: none;
553
+ }
@@ -2,120 +2,6 @@
2
2
  These styles affect all HTML elements (like input, button, h1, etc.) in the consuming app. */
3
3
  @tailwind base;
4
4
 
5
- .smooth-transition {
6
- transition: opacity 0.3s ease-in-out;
7
- }
8
-
9
- /* Manage P, Link, H1, H2 # end */
10
-
11
- /* CSS for content inside page builder # start */
12
- #pagebuilder a {
13
- pointer-events: none;
14
- }
15
-
16
- #pagebuilder #youtube-video::before {
17
- content: 'Select Video Element';
18
- font-family: 'Jost';
19
- background: #16a34a !important;
20
- color: white;
21
- text-decoration: none;
22
- margin-right: 8px;
23
- vertical-align: middle;
24
- min-height: 3rem;
25
- padding: 0.75rem 0.75rem;
26
- white-space: nowrap;
27
- word-break: keep-all;
28
- font-weight: 500;
29
- display: inline-flex;
30
- gap: 0.25rem;
31
- align-items: center;
32
- justify-content: center;
33
- border-radius: 9999px;
34
- border: 1px solid transparent;
35
- margin-bottom: 20px;
36
- font-size: 0.8rem !important;
37
- }
38
-
39
- @media (min-width: 640px) {
40
- #pagebuilder #youtube-video::before {
41
- font-size: 0.9rem !important;
42
- width: auto;
43
- }
44
- }
45
-
46
- #pagebuilder #youtube-video:hover::before {
47
- text-decoration: none;
48
- cursor: pointer;
49
- }
50
-
51
- #page-builder-editor a,
52
- #pagebuilder a {
53
- text-decoration: underline;
54
- }
55
-
56
- #page-builder-editor #linktree p,
57
- #pagebuilder #linktree p {
58
- width: 100%;
59
- }
60
-
61
- #page-builder-editor #linktree a,
62
- #pagebuilder #linktree a {
63
- @apply pbx-py-4 pbx-px-2 pbx-block pbx-w-full;
64
- }
65
-
66
- #page-builder-editor #linktree a,
67
- #pagebuilder #linktree a {
68
- text-decoration: none;
69
- font-weight: 500;
70
- color: inherit !important;
71
- width: 100%;
72
- cursor: pointer;
73
- }
74
- #page-builder-editor strong,
75
- #pagebuilder strong {
76
- font-weight: 500;
77
- }
78
-
79
- #page-builder-editor ol,
80
- #pagebuilder ol,
81
- #page-builder-editor ul,
82
- #pagebuilder ul {
83
- list-style: disc !important;
84
- padding: 0rem;
85
- }
86
-
87
- /* Scrollbar Styles - start */
88
- /* Firefox */
89
- * {
90
- scrollbar-width: thin;
91
- scrollbar-color: black transparent;
92
- }
93
-
94
- *::-webkit-scrollbar-track {
95
- background: transparent;
96
- border-radius: 25px;
97
- }
98
-
99
- /* Chrome, Edge, and Safari */
100
- *::-webkit-scrollbar {
101
- width: 6px;
102
- height: 6px; /* Add height for horizontal scrollbar */
103
- }
104
-
105
- *::-webkit-scrollbar-thumb {
106
- background-color: black;
107
- border-radius: 25px;
108
- border: none;
109
- }
110
-
111
- /* Add overflow-x property to enable horizontal scrollbar */
112
- .scrollable {
113
- overflow-x: auto;
114
- overflow-y: auto;
115
- /* Add any other desired styles for the scrollable element */
116
- }
117
- /* Scrollbar Styles - end */
118
-
119
5
  .tailwind-pagination-package {
120
6
  box-shadow: none !important;
121
7
  display: flex;
@@ -124,29 +10,3 @@ These styles affect all HTML elements (like input, button, h1, etc.) in the cons
124
10
  gap: 6px 0px;
125
11
  justify-content: center;
126
12
  }
127
-
128
- /* Hide the panel by default */
129
- #settingsPanel {
130
- opacity: 0;
131
- pointer-events: none;
132
- /* matches pbx-translate-y-2 */
133
- transform: translateY(1rem);
134
- transition: all 0.3s ease-out;
135
- }
136
-
137
- /* Show the panel when the parent with [selected] is hovered */
138
- [selected]:hover #settingsPanel {
139
- opacity: 1;
140
- pointer-events: auto;
141
- /* visible position */
142
- transform: translateY(1);
143
- }
144
-
145
- #contains-pagebuilder {
146
- position: relative; /* make this the positioning context for absolute children */
147
- overflow-y: auto;
148
- }
149
- #settingsPanel {
150
- position: absolute;
151
- /* top and left will be set dynamically */
152
- }