Skip to content

Commit d3ceec8

Browse files
committed
1.11.0
1 parent f7bd8b1 commit d3ceec8

24 files changed

+2290
-64
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
[//]: # (Don't use <tags>)
22

3+
## v1.11.0
4+
5+
> `2025-07-23`
6+
7+
### 🎉 Feature
8+
- Added opt-in expression support for `text`, `hidden` values, `static` content and conditions. It can be enabled by `expressions.enabled` in `builder.config.js`.
9+
- Added `forceNumbers` toggle to `text` and `hidden` types.
10+
- Hided attach tool for editor default.
11+
12+
### 🐞 Bug Fixes
13+
- Added missing `columnTypes`, `allowCustomColumnTypes`, `excludeTypesFromColumns` , `columnTypesWithItems` config options #138.
14+
- Removed console.log from AI Assistant modal.
15+
- Added translation for hidden element's edit preview placeholder.
16+
- Element search should search in translated value.
17+
- Toggles & lists in object fields needed a CSS fix.
18+
319
## v1.10.4
420

521
> `2025-07-15`

index.css

Lines changed: 209 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,7 @@ a.vfb-learn-more,
12461246
}
12471247

12481248
.vfb-util-props-separator-top .vfb-util-props-list-add {
1249-
@apply absolute top-3 right-0;
1249+
@apply absolute top-4 right-4;
12501250
}
12511251

12521252
div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
@@ -1285,7 +1285,9 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
12851285

12861286
.vfb-util-props-toggle-wrapper,
12871287
.vf-toggle-wrapper.vfb-util-props-toggle-wrapper {
1288-
@apply items-center justify-end form-h-input-sm;
1288+
align-items: center !important;
1289+
justify-content: flex-end;
1290+
@apply form-h-input-sm;
12891291
}
12901292

12911293
.vfb-util-props-toggle-label,
@@ -1676,6 +1678,18 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
16761678
@apply order-2 p-0 mt-1.5 text-gray-500 dark:text-dark-400;
16771679
}
16781680

1681+
.vfb-mt-0 {
1682+
margin-top: 0 !important;
1683+
}
1684+
1685+
.vfb-mb-0 {
1686+
margin-bottom: 0 !important;
1687+
}
1688+
1689+
.vfb-bold {
1690+
@apply font-bold;
1691+
}
1692+
16791693
.vfb-util-flash {
16801694
transition: 0.1s;
16811695
animation-duration: 0.5s;
@@ -1928,6 +1942,19 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
19281942
@apply bg-gray-100 px-3 py-2 rounded-lg border border-gray-300 text-gray-700 mt-2 dark:bg-dark-500 dark:border-dark-500 dark:text-white;
19291943
}
19301944

1945+
.vfb-modal-tabs {
1946+
grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
1947+
@apply grid w-full pb-2;
1948+
}
1949+
1950+
.vfb-modal-tab {
1951+
@apply text-center h-12 flex items-center justify-center border-b border-gray-200 cursor-pointer dark:border-dark-500;
1952+
}
1953+
1954+
.vfb-modal-tab-selected {
1955+
@apply border-primary-500 font-semibold dark:border-primary-500;
1956+
}
1957+
19311958
@keyframes vfb-ai-loader-rotate {
19321959
0% {
19331960
transform: translate(-50%, -50%) rotateZ(0deg);
@@ -1970,6 +1997,150 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
19701997
box-shadow: 0.3em -0.3em 0 0 currentcolor;
19711998
}
19721999
}
2000+
.vfb-expr-helper {
2001+
@apply text-gray-600 mb-1.5 -mt-1.5 dark:text-dark-300;
2002+
}
2003+
.vfb-expr-helper b {
2004+
@apply font-semibold;
2005+
}
2006+
.vfb-expr-helper p {
2007+
@apply mt-1;
2008+
}
2009+
2010+
.vfb-expr-helper-head {
2011+
@apply flex justify-between items-center cursor-pointer;
2012+
}
2013+
2014+
.vfb-expr-helper-head-title {
2015+
@apply flex items-center;
2016+
}
2017+
2018+
.vfb-expr-helper-head-info-icon {
2019+
@apply text-gray-400 mr-1 dark:text-dark-400;
2020+
}
2021+
2022+
.vfb-expr-helper-head-caret {
2023+
@apply text-[11px] transition-transform transform text-gray-500 dark:text-dark-400;
2024+
}
2025+
.vfb-expr-helper-head-caret.is-open {
2026+
@apply text-[11px] rotate-180;
2027+
}
2028+
2029+
.vfb-expr-helper-content {
2030+
@apply mt-2 dark:text-dark-100;
2031+
}
2032+
2033+
.vfb-expr-item-block {
2034+
@apply flex gap-1 flex-col justify-start mt-1 w-full;
2035+
}
2036+
2037+
.vfb-expr-item-group {
2038+
@apply flex gap-1 flex-wrap relative items-start;
2039+
}
2040+
2041+
.vfb-expr-item-wrapper {
2042+
@apply bg-gray-200 bg-opacity-70 rounded px-1 cursor-pointer inline-flex items-center justify-center dark:bg-dark-550;
2043+
}
2044+
2045+
.vfb-expr-item-value {
2046+
@apply text-[11px] text-gray-600 tracking-tight leading-[18px] break-words font-mono dark:text-white;
2047+
}
2048+
2049+
.vfb-expr-param-block {
2050+
@apply inline-flex gap-1 flex-col items-start mt-1.5 w-full;
2051+
}
2052+
2053+
.vfb-expr-helper-important-icon {
2054+
@apply text-gray-500 mr-1 text-[11px] dark:text-dark-300;
2055+
}
2056+
2057+
.vfb-expr-dialog-param-line {
2058+
@apply flex gap-1.5;
2059+
}
2060+
2061+
.vfb-expr-dialog-param-optional {
2062+
@apply italic;
2063+
}
2064+
2065+
.vfb-expr-dialog {
2066+
@apply absolute -top-1 left-0 right-0 bg-white transform -translate-y-full shadow-box border border-gray-200 font-sans text-[12px] leading-normal rounded-md dark:bg-dark-600 dark:border-dark-800;
2067+
}
2068+
2069+
.vfb-expr-dialog-header {
2070+
@apply bg-primary-500 text-white font-bold px-2.5 py-1.5 rounded-t;
2071+
}
2072+
2073+
.vfb-expr-dialog-content {
2074+
@apply px-2.5 pt-0.5 pb-2.5 rounded-b dark:text-white;
2075+
}
2076+
2077+
.vfb-expr-dialog-content a {
2078+
@apply text-primary-500 underline;
2079+
}
2080+
2081+
.vfb-expr-dialog-content-block {
2082+
@apply mt-2;
2083+
}
2084+
2085+
.vfb-expr-dialog-content-warning {
2086+
@apply mt-1;
2087+
}
2088+
2089+
.vfb-expr-warning {
2090+
@apply mt-0.5 mb-1.5;
2091+
}
2092+
2093+
.vfb-expr-warning-head {
2094+
@apply flex justify-between items-center cursor-pointer text-gray-600 dark:text-dark-300;
2095+
}
2096+
2097+
.vfb-expr-warning-title {
2098+
@apply flex items-center;
2099+
}
2100+
2101+
.vfb-expr-warning-count {
2102+
@apply w-3.5 h-3.5 rounded-full bg-red-500 flex items-center justify-center font-bold text-red-200 text-[10px] leading-[1] mr-1;
2103+
}
2104+
2105+
.vfb-expr-warning-head-caret {
2106+
@apply text-[11px] transition-transform transform text-gray-500 dark:text-dark-400;
2107+
}
2108+
.vfb-expr-warning-head-caret.is-open {
2109+
@apply text-[11px] rotate-180;
2110+
}
2111+
2112+
.vfb-expr-warning-content {
2113+
@apply bg-red-100 text-red-500 mt-2 px-4 py-2 rounded leading-tight overflow-x-auto;
2114+
}
2115+
.vfb-expr-warning-content code {
2116+
@apply text-[11px] text-red-500 bg-red-500 bg-opacity-15 px-0.5 rounded-sm;
2117+
}
2118+
2119+
.vfb-expr-warning-ul {
2120+
@apply list-disc pl-3 leading-tight;
2121+
}
2122+
.vfb-expr-warning-ul code {
2123+
@apply text-[11px] text-red-500 bg-red-500 bg-opacity-15 px-0.5 rounded-sm;
2124+
}
2125+
2126+
.vfb-expr-warning-li {
2127+
@apply text-xs font-semibold -ml-1 pr-4 underline cursor-pointer;
2128+
}
2129+
2130+
.vfb-expr-warning-footnote {
2131+
@apply mt-2 italic;
2132+
}
2133+
2134+
.expr-dialog-enter-active,
2135+
.expr-dialog-leave-active {
2136+
transition: opacity 0.5s ease;
2137+
}
2138+
2139+
.expr-dialog-enter-from,
2140+
.expr-dialog-leave-to {
2141+
opacity: 0;
2142+
}
2143+
19732144
.vfb-conditions-head-title {
19742145
@apply font-semibold uppercase;
19752146
}
@@ -2002,6 +2173,23 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
20022173
@apply text-gray-500 leading-none mb-4 dark:text-dark-400;
20032174
}
20042175

2176+
.vfb-conditions-exp-form {
2177+
@apply mb-4;
2178+
}
2179+
.vfb-conditions-exp-form textarea::-moz-placeholder {
2180+
@apply text-gray-400 dark:text-dark-400;
2181+
}
2182+
.vfb-conditions-exp-form textarea::placeholder {
2183+
@apply text-gray-400 dark:text-dark-400;
2184+
}
2185+
2186+
.vfb-conditions-exp-tools-wrapper {
2187+
@apply w-full flex flex-col;
2188+
}
2189+
.vfb-conditions-exp-tools-wrapper .vfb-expr-helper {
2190+
@apply mt-0.5;
2191+
}
2192+
20052193
.vfb-condition-list {
20062194
@apply pl-10 relative;
20072195
}
@@ -2073,6 +2261,14 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
20732261
@apply ml-0;
20742262
}
20752263

2264+
.vfb-conditions-render-one-wrapper {
2265+
@apply w-full;
2266+
}
2267+
2268+
.vfb-conditions-render-expr-wrapper {
2269+
@apply flex gap-2 flex-col w-full;
2270+
}
2271+
20762272
.vfb-conditions-render-one {
20772273
@apply flex;
20782274
}
@@ -2452,7 +2648,7 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
24522648
}
24532649

24542650
.vfb-config-panel-header-container {
2455-
@apply flex justify-between items-center px-5 py-4 border-b border-gray-200 bg-gray-100 -mx-5 dark:bg-dark-700;
2651+
@apply flex justify-between items-center px-5 py-4 border-b border-gray-200 bg-gray-100 -mx-5 dark:bg-dark-700 dark:border-dark-600;
24562652
}
24572653

24582654
.vfb-config-panel-header {
@@ -2555,6 +2751,11 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
25552751
@apply -mt-2;
25562752
}
25572753

2754+
.vfb-config-toggle + .vfb-util-props-toggle-object:not(.vfb-util-props-separator-top),
2755+
.vfb-util-props-toggle-object:not(.vfb-util-props-separator-top) + .vfb-config-toggle {
2756+
@apply -mt-2;
2757+
}
2758+
25582759
.vfb-config-form-header {
25592760
@apply text-black -mx-5 -mt-px text-0.5md font-semibold px-5 py-2 flex items-center justify-between cursor-pointer col-span-12 border-t border-b border-gray-150 bg-gray-50 dark:bg-dark-700 dark:border-dark-600 dark:text-white;
25602761
}
@@ -2591,11 +2792,14 @@ div > div:first-of-type[style*="none;"] + .vfb-util-props-separator-top {
25912792
}
25922793

25932794
.vfb-config-panel-warning-text {
2594-
@apply my-1;
2795+
@apply mt-1;
25952796
}
25962797

25972798
.vfb-config-panel-warning-ul {
2598-
@apply list-disc pl-5 leading-tight;
2799+
@apply list-disc pl-5 leading-tight mt-1;
2800+
}
2801+
.vfb-config-panel-warning-ul code {
2802+
@apply text-[11px] bg-red-500 bg-opacity-15 px-0.5 rounded-sm;
25992803
}
26002804

26012805
.vfb-config-panel-warning-li {

index.d.mts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ declare module '@vueform/builder' {
8585
const AlignField_toggle: any;
8686
const AlignField_checkbox: any;
8787
const AlignField_radio: any;
88+
const AllowExpressionsField: any;
8889
const AttrsField: any;
8990
const AttrsField_static: any;
9091
const AutocompleteField: any;
@@ -153,12 +154,14 @@ declare module '@vueform/builder' {
153154
const ExportDownloadField: any;
154155
const ExportOutputField: any;
155156
const ExportThemeField: any;
157+
const ExpressionField: any;
156158
const FieldNameField: any;
157159
const FileAcceptField: any;
158160
const FileEndpointsField: any;
159161
const FileRulesField: any;
160162
const FileUrlsField: any;
161163
const FontsField: any;
164+
const ForceNumbersField: any;
162165
const FormColumnsField: any;
163166
const FormDisplayErrorsField: any;
164167
const FormDisplayMessagesField: any;
@@ -299,6 +302,7 @@ declare module '@vueform/builder' {
299302
AlignField_toggle,
300303
AlignField_checkbox,
301304
AlignField_radio,
305+
AllowExpressionsField,
302306
AttrsField,
303307
AttrsField_static,
304308
AutocompleteField,
@@ -367,12 +371,14 @@ declare module '@vueform/builder' {
367371
ExportDownloadField,
368372
ExportOutputField,
369373
ExportThemeField,
374+
ExpressionField,
370375
FieldNameField,
371376
FileAcceptField,
372377
FileEndpointsField,
373378
FileRulesField,
374379
FileUrlsField,
375380
FontsField,
381+
ForceNumbersField,
376382
FormColumnsField,
377383
FormDisplayErrorsField,
378384
FormDisplayMessagesField,

index.mjs

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

0 commit comments

Comments
 (0)