Skip to content

Commit ad8b58c

Browse files
committed
1.5.0
1 parent 47a3dc6 commit ad8b58c

File tree

7 files changed

+509
-81
lines changed

7 files changed

+509
-81
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
11
[//]: # (Don't use <tags>)
2+
## v1.5.0
3+
4+
> `2024-07-24`
5+
6+
### 🎉 Feature
7+
- The drag and drop feature got a major improvement!
8+
- Drag elements next to other elements.
9+
- When elements are dropped above or below an element it will dropped into the previous / next row, instead of next to the target element.
10+
- A new handle appears between elements in the same row that can resize two adjacent elements simultaneously.
11+
- Added `autoflow` config option, which is when disabled all elements take up a full row while the inputs can still be resized.
212

313
## v1.4.6
414

index.css

Lines changed: 131 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3473,15 +3473,18 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
34733473
.vfb-preview-element-container {
34743474
@apply relative pointer-events-auto focus:outline-none;
34753475
}
3476-
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-overlay {
3476+
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-overlay, .vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-outer-wrapper > .vfb-preview-element-inner-container > .vfb-preview-element-inner-wrapper > .vfb-preview-element-inner-overlay {
34773477
@apply border-primary-500;
34783478
}
3479-
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-resizer-icon {
3479+
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-resizer-icon, .vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-outer-wrapper > .vfb-preview-element-inner-container > .vfb-preview-element-inner-wrapper > .vfb-preview-element-resizer-icon {
34803480
@apply inline-block;
34813481
}
34823482
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-name-tag {
34833483
@apply inline-block;
34843484
}
3485+
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-columns-display, .vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-outer-wrapper > .vfb-preview-element-inner-container > .vfb-preview-element-inner-wrapper > .vfb-preview-element-columns-display {
3486+
@apply inline-block;
3487+
}
34853488
.vfb-preview-element-container.vfb-preview-element-container-hover > .vfb-preview-element-actions-container-unselected {
34863489
@apply flex;
34873490
}
@@ -3523,6 +3526,12 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
35233526
--vf-container-text-dynamic-4: rgb(0 3 255 / 100%);
35243527
--vf-container-text-dynamic-5: rgb(0 0 0 / 100%);
35253528
}
3529+
.vfb-preview-wrapper-dark .vfb-preview-element-multi-resizer-handle {
3530+
@apply bg-dark-500;
3531+
}
3532+
.vfb-preview-wrapper-dark .vfb-preview-element-columns-display {
3533+
@apply text-black;
3534+
}
35263535

35273536
.vfb-preview-element-container-nested {
35283537
--vf-container-bg: var(--vf-container-bg-neutral);
@@ -3580,6 +3589,10 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
35803589
@apply has-error;
35813590
}
35823591

3592+
.vfb-preview-element-container-empty {
3593+
@apply flex;
3594+
}
3595+
35833596
.vfb-preview-element-container-conditional {
35843597
@apply opacity-60;
35853598
}
@@ -3610,6 +3623,10 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
36103623
@apply col-span-12;
36113624
}
36123625

3626+
.vfb-preview-element-inner-wrapper {
3627+
@apply relative;
3628+
}
3629+
36133630
.vfb-preview-element-inner-wrapper-after {
36143631
@apply col-span-12;
36153632
}
@@ -3636,6 +3653,36 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
36363653
@apply border-transparent;
36373654
}
36383655

3656+
.vfb-preview-element-inner-overlay {
3657+
@apply absolute inset-0 border cursor-pointer z-1;
3658+
}
3659+
.vfb-preview-element-inner-overlay.vfb-preview-element-inner-overlay-no-edit {
3660+
@apply cursor-default;
3661+
}
3662+
3663+
.vfb-preview-element-inner-overlay-selected {
3664+
@apply border-primary-500;
3665+
}
3666+
3667+
.vfb-preview-element-inner-overlay-unselected {
3668+
@apply border-transparent;
3669+
}
3670+
3671+
.vfb-preview-element-multi-resizer {
3672+
@apply w-4 absolute right-[calc((var(--vf-gutter)/2+0.5rem)*-1)] -bottom-2 -top-2 z-2 cursor-ew-resize flex items-stretch justify-stretch;
3673+
}
3674+
.vfb-preview-element-multi-resizer:hover + .vfb-preview-element-multi-resizer-handle {
3675+
@apply block;
3676+
}
3677+
3678+
.vfb-preview-element-multi-resizer-handle {
3679+
@apply absolute right-[calc((var(--vf-gutter)/2+0.0675rem)*-1)] -top-2 -bottom-2 hidden bg-gray-300 rounded-full w-0.5;
3680+
}
3681+
3682+
.vfb-preview-element-multi-resizer-handle-resizing {
3683+
@apply block;
3684+
}
3685+
36393686
.vfb-preview-element-resizer {
36403687
@apply absolute -right-1 w-2 top-0 bottom-0 cursor-ew-resize z-999;
36413688
}
@@ -3644,15 +3691,19 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
36443691
}
36453692

36463693
.vfb-preview-element-resizer-icon {
3647-
@apply absolute right-0 translate-x-1/2 w-2.25 h-2.25 bg-white border border-gray-500 rounded-sm shadow-mini top-1/2 transform -translate-y-1/2 pointer-events-none transition;
3694+
@apply absolute right-0 translate-x-1/2 w-2.25 h-2.25 bg-white border border-gray-500 rounded-sm shadow-mini top-1/2 transform -translate-y-1/2 pointer-events-none transition z-1;
36483695
}
36493696

36503697
.vfb-preview-element-resizer-icon-unselected {
36513698
@apply hidden;
36523699
}
36533700

3654-
.vfb-preview-element-resizer-icon-resizing {
3655-
@apply w-auto h-4 text-sm px-0.5 whitespace-nowrap leading-none;
3701+
.vfb-preview-element-columns-display {
3702+
@apply absolute left-0 -translate-x-1/2 bg-white border border-gray-500 rounded-sm shadow-mini top-1/2 transform -translate-y-1/2 pointer-events-none transition w-auto h-4 text-sm px-0.5 whitespace-nowrap leading-none z-1;
3703+
}
3704+
3705+
.vfb-preview-element-columns-display-unselected {
3706+
@apply hidden;
36563707
}
36573708

36583709
.vfb-preview-element-name-tag {
@@ -3695,6 +3746,58 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
36953746
@apply -bottom-2;
36963747
}
36973748

3749+
.vfb-preview-element-area-right {
3750+
@apply absolute z-1 w-[10%] min-w-2;
3751+
}
3752+
3753+
.vfb-preview-element-area-right-with-children {
3754+
@apply w-3;
3755+
}
3756+
3757+
.vfb-preview-element-area-right-sm {
3758+
@apply -bottom-1 -top-1 right-0;
3759+
}
3760+
3761+
.vfb-preview-element-area-right-md {
3762+
@apply -bottom-2 -top-2 right-0;
3763+
}
3764+
3765+
.vfb-preview-element-area-right-lg {
3766+
@apply -bottom-2 -top-2 right-0;
3767+
}
3768+
3769+
.vfb-preview-element-area-left {
3770+
@apply absolute z-1 w-[10%] min-w-2;
3771+
}
3772+
3773+
.vfb-preview-element-area-left-with-children {
3774+
@apply w-3;
3775+
}
3776+
3777+
.vfb-preview-element-area-left-sm {
3778+
@apply -bottom-1 -top-1 left-0;
3779+
}
3780+
3781+
.vfb-preview-element-area-left-md {
3782+
@apply -bottom-2 -top-2 left-0;
3783+
}
3784+
3785+
.vfb-preview-element-area-left-lg {
3786+
@apply -bottom-2 -top-2 left-0;
3787+
}
3788+
3789+
.vfb-preview-element-area-bottom-sm {
3790+
@apply -bottom-1;
3791+
}
3792+
3793+
.vfb-preview-element-area-bottom-md {
3794+
@apply -bottom-2;
3795+
}
3796+
3797+
.vfb-preview-element-area-bottom-lg {
3798+
@apply -bottom-2;
3799+
}
3800+
36983801
.vfb-preview-element-area-middle {
36993802
@apply col-span-12;
37003803
}
@@ -3726,6 +3829,28 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
37263829
display: block !important;
37273830
}
37283831

3832+
.vfb-preview-element-drag-label-wrapper-right {
3833+
@apply -top-2 -bottom-2 right-0 h-auto w-1 z-1;
3834+
}
3835+
.vfb-preview-element-drag-label-wrapper-right .vfb-preview-element-drag-label {
3836+
@apply whitespace-nowrap transform text-[12px];
3837+
}
3838+
3839+
.vfb-preview-element-container-drop-right > .vfb-preview-element-area-right, .vfb-preview-element-container-drop-right > div > .vfb-preview-element-drag-label-wrapper-right {
3840+
display: block !important;
3841+
}
3842+
3843+
.vfb-preview-element-drag-label-wrapper-left {
3844+
@apply -top-2 -bottom-2 left-0 h-auto w-1 z-1;
3845+
}
3846+
.vfb-preview-element-drag-label-wrapper-left .vfb-preview-element-drag-label {
3847+
@apply whitespace-nowrap transform text-[12px];
3848+
}
3849+
3850+
.vfb-preview-element-container-drop-left > .vfb-preview-element-area-left, .vfb-preview-element-container-drop-left > div > .vfb-preview-element-drag-label-wrapper-left {
3851+
display: block !important;
3852+
}
3853+
37293854
.vfb-preview-element-drag-label-wrapper-middle {
37303855
@apply top-1/2 left-0 right-0 transform -translate-y-1/2;
37313856
}
@@ -3735,7 +3860,7 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
37353860
}
37363861

37373862
.vfb-preview-element-drag-label {
3738-
@apply bg-primary-500 absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 px-2 pt-0.5 pb-0.75 rounded-full leading-none text-0.5sm text-white;
3863+
@apply bg-primary-500 absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 px-2 pt-0.5 pb-0.75 rounded-full leading-none text-0.5sm text-white whitespace-nowrap;
37393864
}
37403865

37413866
.vfb-preview-element-actions-container {

index.mjs

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": false,
33
"name": "@vueform/builder",
4-
"version": "1.4.6",
4+
"version": "1.5.0",
55
"description": "Vueform Builder development build.",
66
"homepage": "https://vueform.com",
77
"license": "SEE LICENSE IN LICENSE.txt",

0 commit comments

Comments
 (0)