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

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.39",
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",
@@ -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
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"
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-solid pbx-border-t-gray-200 lg:pbx-mx-10"
787
778
  >
788
779
  <div
789
780
  @click="
@@ -125,28 +125,44 @@ These styles affect all HTML elements (like input, button, h1, etc.) in the cons
125
125
  justify-content: center;
126
126
  }
127
127
 
128
- /* Hide the panel by default */
129
128
  #settingsPanel {
129
+ position: absolute;
130
130
  opacity: 0;
131
131
  pointer-events: none;
132
- /* matches pbx-translate-y-2 */
133
132
  transform: translateY(1rem);
134
- transition: all 0.3s ease-out;
133
+ transition:
134
+ opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
135
+ transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
136
+ box-shadow:
137
+ 0 8px 24px rgba(0, 0, 0, 0.08),
138
+ 0 1.5px 4px rgba(0, 0, 0, 0.06);
139
+ }
140
+
141
+ [selected]:hover #settingsPanel,
142
+ [selected]:focus-within #settingsPanel {
143
+ opacity: 1;
144
+ pointer-events: auto;
145
+ transform: translateY(0);
146
+ }
147
+
148
+ #editToolbar {
149
+ opacity: 0;
150
+ pointer-events: none;
151
+ transform: translateY(0.5rem);
152
+ transition:
153
+ left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
154
+ top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
155
+ opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
156
+ transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
135
157
  }
136
158
 
137
- /* Show the panel when the parent with [selected] is hovered */
138
- [selected]:hover #settingsPanel {
159
+ #editToolbar.is-visible {
139
160
  opacity: 1;
140
161
  pointer-events: auto;
141
- /* visible position */
142
- transform: translateY(1);
162
+ transform: translateY(0);
143
163
  }
144
164
 
145
165
  #contains-pagebuilder {
146
166
  position: relative; /* make this the positioning context for absolute children */
147
167
  overflow-y: auto;
148
168
  }
149
- #settingsPanel {
150
- position: absolute;
151
- /* top and left will be set dynamically */
152
- }