diff --git a/admin/class-formality-admin.php b/admin/class-formality-admin.php
index a9cb9e6..f305dd8 100755
--- a/admin/class-formality-admin.php
+++ b/admin/class-formality-admin.php
@@ -124,9 +124,11 @@ public function admin_header() {
if(!empty( $update_plugins->response )) {
$updates = array_keys($update_plugins->response);
foreach ($updates as $update) { if($update == 'formality/formality.php') { $updated = false; }}
- }
- echo '';
- ?>
+ }?>
+
{
- init()
+ main()
exports()
});
diff --git a/assets/scripts/admin/export.js b/assets/scripts/admin/export.js
index eb06b9a..c3ab17a 100644
--- a/assets/scripts/admin/export.js
+++ b/assets/scripts/admin/export.js
@@ -1,6 +1,5 @@
const { __ } = wp.i18n
-
export default function() {
let exportToggle = document.querySelector('.formality-export-toggle')
diff --git a/assets/scripts/admin/init.js b/assets/scripts/admin/main.js
similarity index 100%
rename from assets/scripts/admin/init.js
rename to assets/scripts/admin/main.js
diff --git a/assets/scripts/editor.js b/assets/scripts/editor.js
index c9daeea..112e335 100755
--- a/assets/scripts/editor.js
+++ b/assets/scripts/editor.js
@@ -1,10 +1,7 @@
// Formality editor scripts
-import { pageLoad } from './editor/utility/init.js';
-
import './editor/components/repeaterControl.js';
-
+import { pageLoad } from './editor/utility/init.js';
import { formSidebar } from './editor/plugins/sidebar.js';
-
import { textBlock } from './editor/blocks/text.js';
import { textareaBlock } from './editor/blocks/textarea.js';
import { emailBlock } from './editor/blocks/email.js';
@@ -22,9 +19,7 @@ import { widgetBlock } from './editor/blocks/widget.js';
if(formality.editor=='formality') {
pageLoad()
-
formSidebar()
-
textBlock()
textareaBlock()
emailBlock()
diff --git a/assets/scripts/public.js b/assets/scripts/public.js
index ad249d7..bd2b9a9 100755
--- a/assets/scripts/public.js
+++ b/assets/scripts/public.js
@@ -1,6 +1,43 @@
-// Formality public scripts
-
+// Formality public script
import 'jquery';
-import init from './public/init';
-jQuery(document).ready(() => init());
\ No newline at end of file
+//core functions
+import loader from './public/core/loader'
+import uiux from './public/core/uiux'
+import nav from './public/core/nav'
+import validate from './public/core/validate'
+import submit from './public/core/submit'
+import conditional from './public/core/conditional'
+import embed from './public/core/embed'
+import hints from './public/core/hints'
+import hooks from './public/core/hooks'
+
+//fields functions
+import select from './public/fields/select'
+import switch1 from './public/fields/switch'
+import textarea from './public/fields/textarea'
+import number from './public/fields/number'
+import rating from './public/fields/rating'
+import multiple from './public/fields/multiple'
+import media from './public/fields/media'
+import upload from './public/fields/upload'
+
+jQuery(document).ready(() => {
+ loader.init()
+ uiux.init()
+ submit.init()
+ nav.init()
+ validate.init()
+ conditional.init()
+ embed.init()
+ hints.init()
+
+ select.init()
+ switch1.init()
+ textarea.init()
+ number.init()
+ rating.init()
+ multiple.init()
+ media.init()
+ upload.init()
+});
diff --git a/assets/scripts/public/core/helpers.js b/assets/scripts/public/core/helpers.js
index d48b76c..0018361 100644
--- a/assets/scripts/public/core/helpers.js
+++ b/assets/scripts/public/core/helpers.js
@@ -29,6 +29,7 @@ export let el = (name, parent = true, child = "") => {
field_success: "formality__field--success",
field_disabled: "formality__field--disabled",
input: "formality__input",
+ input_status: "formality__input__status",
input_errors: "formality__input__errors",
message: "formality__message",
media: "formality__media",
diff --git a/assets/scripts/public/core/nav.js b/assets/scripts/public/core/nav.js
index 65256dc..dac37c6 100644
--- a/assets/scripts/public/core/nav.js
+++ b/assets/scripts/public/core/nav.js
@@ -1,7 +1,6 @@
import { el, uid } from './helpers'
import validate from './validate'
import uiux from './uiux'
-import emergence from '../vendor/emergence.formality'
export default {
init() {
@@ -127,21 +126,17 @@ export default {
})
},
conversational() {
- let emergence_container = document.querySelector('.formality__main');
- let emergence_current = 0;
- if($("body").hasClass("body-formality")) {
- emergence_container = window;
- }
- emergence.init({
- selector: el("field", "uid"),
- container: emergence_container,
- offsetY: "50%",
- callback: function(element, state) {
- if (state === 'visible') {
- const $el = $(element);
- let emergence_active = $el.attr("id");
- if(emergence_current!==emergence_active) {
- emergence_current = emergence_active;
+ let container = $("body").hasClass("body-formality") ? null : document.querySelector('.formality__main');
+ let current = 0;
+
+ const sections = document.querySelectorAll(el("field", "uid"));
+ for (let i = 0; i < sections.length; i++) {
+ const observer = new IntersectionObserver((entry) => {
+ if (entry[0].isIntersecting) {
+ const $el = $(sections[i]);
+ let active = $el.attr("id");
+ if(current!==active) {
+ current = active;
const sended = $el.closest(el("form", true, "--sended")).length
const sectionid = $el.attr("id")
const $navlist = $(el("nav_list", "uid"))
@@ -156,8 +151,9 @@ export default {
}
}
}
- },
- });
+ },{ root: container, rootMargin: "-50% 0px" });
+ observer.observe(sections[i]);
+ }
$(el("button", "uid", "--mininext")).click(function(e){
let $element = $(el("field_focus")).find(":input")
diff --git a/assets/scripts/public/core/validate2.js b/assets/scripts/public/core/validate2.js
new file mode 100644
index 0000000..97999e5
--- /dev/null
+++ b/assets/scripts/public/core/validate2.js
@@ -0,0 +1,205 @@
+import { el, uid } from './helpers'
+import 'parsleyjs'
+const { __ } = wp.i18n
+let fieldOptions = {
+ text: {
+ multiple: false,
+ },
+ message: {
+ multiple: false,
+ },
+ email: {
+ multiple: false,
+ rules: {
+ email: __("This value should be a valid email", "formality"),
+ }
+ },
+ number: {
+ multiple: false,
+ rules: {
+ number: __("This value should be a valid number", "formality"),
+ min: /* translators: validation */ __("This value should be greater than or equal to %s", "formality"),
+ max: /* translators: validation */ __("This value should be lower than or equal to %s", "formality"),
+ }
+ },
+ select: {
+ multiple: false,
+ },
+ multiple: {
+ multiple: true,
+ },
+ rating: {
+ multiple: true,
+ },
+ switch: {
+ multiple: false,
+ },
+ upload: {
+ multiple: false,
+ },
+}
+
+export default {
+ init() {
+ //init validation
+ $(el("form")).each(function() {
+ uid($(this))
+ $(el("section", "uid")).each(function(index, section) {
+ $(section).find(':input').attr('data-parsley-group', 'step-' + index)
+ })
+ })
+ this.field_error()
+ this.field_success()
+ this.form_error()
+ this.i18n()
+ $('body').prepend('');
+ let validate = this;
+ $('#testvalidate').click(function(){
+ let form = document.querySelector(el("form"))
+ validate.validateForm(form)
+ })
+ },
+ checkstep(index, newindex) {
+ //validate single step
+ let valid = false
+ let options = this.parsley_options()
+ if(index > newindex) {
+ valid = true
+ } else {
+ $(el("form", "uid")).parsley(options).whenValidate({
+ group: 'step-' + index,
+ }).done(function() {
+ valid = true
+ $(el("nav_section", "uid")).eq(index).addClass(el("nav_section", false, "--validated"))
+ })
+ }
+ return valid
+ },
+ form() {
+ //validate standard form (1 step)
+ let options = this.parsley_options()
+ $(el("form", "uid")).parsley(options)
+ },
+ parsley_options() {
+ //create parsley options array
+ let options = {
+ classHandler: function (element) {
+ return element.$element.closest(el("field"))
+ },
+ errorClass: el("field_error", false),
+ errorsContainer: function(element) {
+ return element.$element.closest(el("input")).find(el("input", true, "__status"))
+ },
+ successClass: el("field_success", false),
+ errorsWrapper: '
',
+ }
+ return options
+ },
+ form_error() {
+ window.Parsley.on('form:error', function() {
+
+ })
+ },
+ field_error() {
+ //field error event
+ window.Parsley.on('field:error', function() {
+ const id = $(this.$element).attr("id")
+ uid($(this.$element))
+ $(el("nav_legend", 'uid', ' li[data-name="' + id + '"]')).addClass("error")
+ const index = $(el("nav_section", "uid")).index(el("nav_section", "uid", "--active"))
+ $(el("nav_section", "uid")).eq(index).removeClass(el("nav_section", false, "--validated"))
+ })
+ },
+ field_success() {
+ //field success event
+ window.Parsley.on('field:success', function() {
+ const id = $(this.$element).attr("id")
+ uid($(this.$element))
+ $(el("nav_legend", "uid", ' li[data-name="' + id + '"]')).removeClass("error")
+ })
+ },
+ i18n() {
+ window.Parsley.addMessages('en', {
+ defaultMessage: __("This value seems to be invalid", "formality"),
+ type: {
+ email: __("This value should be a valid email", "formality"),
+ url: __("This value should be a valid url", "formality"),
+ number: __("This value should be a valid number", "formality"),
+ integer: __("This value should be a valid integer", "formality"),
+ digits: __("This value should be digits", "formality"),
+ alphanum: __("This value should be alphanumeric", "formality"),
+ },
+ required: __("This value is required", "formality"),
+ pattern: __("This value seems to be invalid", "formality"),
+ min: /* translators: validation */ __("This value should be greater than or equal to %s", "formality"),
+ max: /* translators: validation */ __("This value should be lower than or equal to %s", "formality"),
+ range: /* translators: validation */ __("This value should be between %s and %s", "formality"),
+ minlength: /* translators: validation */ __("This value is too short. It should have %s characters or more", "formality"),
+ maxlength: /* translators: validation */ __("This value is too long. It should have %s characters or fewer", "formality"),
+ length: /* translators: validation */ __("This value length is invalid. It should be between %s and %s characters long", "formality"),
+ check: /* translators: validation */ __("You must select between %s and %s choices", "formality"),
+ });
+ window.Parsley.setLocale('en');
+ },
+ checkRule(input, rule) {
+ let valid = false;
+ switch(rule) {
+ case 'required':
+ if(NodeList.prototype.isPrototypeOf(input)){
+ Array.prototype.forEach.call(input, function(single, i){ if(single.checked) { valid = true; } })
+ } else {
+ valid = input.value !== ''
+ }
+ break;
+ case 'email':
+ valid = input.value.match(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
+ break;
+ case 'checked':
+ valid = input.checked;
+ break;
+ case 'notchecked':
+ valid = !input.checked;
+ break;
+ }
+ return valid;
+ },
+ validateField(field) {
+ let validate = this;
+ const type = field.getAttribute('data-type')
+ const required = field.classList.contains(el("field", false, "--required"))
+ let rules = 'rules' in fieldOptions[type] ? Object.keys(fieldOptions[type]['rules']) : []
+ const multiple = fieldOptions[type]['multiple']
+ if(required) { rules.unshift('required') }
+ const input = multiple ? field.querySelectorAll('input, select, textarea') : field.querySelector('input, select, textarea')
+ const status = field.querySelector(el("input_status"))
+ let valid = true;
+ let error = '';
+ if(!rules.includes('required') && !multiple && !input.value) {
+ //skip validation
+ } else {
+ Array.prototype.forEach.call(rules, function(rule){
+ if(valid && !validate.checkRule(input, rule)) {
+ error = rule == 'required' ? __("This value is required", "formality") : fieldOptions[type]['rules'][rule];
+ valid = false;
+ }
+ })
+ }
+ field.classList.toggle(el("field", false, "--error"), !valid);
+ status.innerHTML = !error ? '' : ('' + error + '
')
+ return valid;
+ },
+ validateForm(form) {
+ let validate = this;
+ let errors = false;
+ let fields = document.querySelectorAll(el("field"))
+ let firsterror = false;
+ Array.prototype.forEach.call(fields, function(field, i){
+ const error = !validate.validateField(field)
+ if(!errors && error) {
+ firsterror = field.querySelector('input, select, textarea')
+ }
+ })
+ if(firsterror) { firsterror.focus() }
+ return !errors
+ }
+}
diff --git a/assets/scripts/public/init.js b/assets/scripts/public/init.js
deleted file mode 100644
index 2f4e992..0000000
--- a/assets/scripts/public/init.js
+++ /dev/null
@@ -1,40 +0,0 @@
-//core functions
-import loader from './core/loader'
-import uiux from './core/uiux'
-import nav from './core/nav'
-import validate from './core/validate'
-import submit from './core/submit'
-import conditional from './core/conditional'
-import embed from './core/embed'
-import hints from './core/hints'
-import hooks from './core/hooks'
-
-//fields functions
-import select from './fields/select'
-import switch1 from './fields/switch'
-import textarea from './fields/textarea'
-import number from './fields/number'
-import rating from './fields/rating'
-import multiple from './fields/multiple'
-import media from './fields/media'
-import upload from './fields/upload'
-
-export default function() {
- loader.init()
- uiux.init()
- submit.init()
- nav.init()
- validate.init()
- conditional.init()
- embed.init()
- hints.init()
-
- select.init()
- switch1.init()
- textarea.init()
- number.init()
- rating.init()
- multiple.init()
- media.init()
- upload.init()
-}
diff --git a/assets/scripts/public/vendor/emergence.formality.js b/assets/scripts/public/vendor/emergence.formality.js
deleted file mode 100644
index 405c5a3..0000000
--- a/assets/scripts/public/vendor/emergence.formality.js
+++ /dev/null
@@ -1,181 +0,0 @@
-// emergence.formality.js
-// This is a lite version of emergence.js
-// emergence.js v1.1.2 | (c) 2017 @xtianmiller | https://github.com/xtianmiller/emergence.js
-
-/* eslint-disable */
-
-(function(root, factory) {
- // AMD
- if (typeof define === 'function' && define.amd) {
- define(function() {
- return factory(root);
- });
- } else if (typeof exports === 'object') {
- // Node.js or CommonJS
- module.exports = factory;
- } else {
- // Browser globals
- root.emergence = factory(root);
- }
-})(this, function(root) {
-
- 'use strict';
-
- var emergence = {};
- var poll, container, throttle, offsetTop, offsetBottom, offsetY, selector;
- var callback = function() {};
-
- var updatePercentage = function() {
- if(/^\d+(\.\d+)?%$/.test(offsetY)) {
- offsetTop = parseInt((container.innerHeight/100)*parseFloat(offsetY));
- offsetBottom = parseInt((container.innerHeight/100)*parseFloat(offsetY));
- }
- };
-
- var getElemOffset = function(elem) {
- var h = elem.offsetHeight;
- var topPos = 0;
- do {
- if (!isNaN(elem.offsetTop)) {
- topPos += elem.offsetTop;
- }
- } while ((elem = elem.offsetParent) !== null);
- return {
- height: h,
- top: topPos
- };
- };
-
-
- var getContainerSize = function(container) {
- var h;
- if (container !== window) {
- h = container.clientHeight;
- } else {
- h = window.innerHeight || document.documentElement.clientHeight;
- }
- return {
- height: h
- };
- };
-
-
- var getContainerScroll = function(container) {
- if (container !== window) {
- return {
- y: container.scrollTop + getElemOffset(container).top
- };
- } else {
- return {
- y: window.pageYOffset || document.documentElement.scrollTop
- };
- }
- };
-
-
- var isVisible = function(elem) {
-
- if (elem.offsetParent === null) { return false; }
-
- var elemOffset = getElemOffset(elem);
- var containerSize = getContainerSize(container);
- var containerScroll = getContainerScroll(container);
-
- var elemHeight = elemOffset.height;
- var elemTop = elemOffset.top;
- var elemBottom = elemTop + elemHeight;
-
- var checkBoundaries = function() {
- var cTop = containerScroll.y + offsetTop;
- var cBottom = containerScroll.y - offsetBottom + containerSize.height;
- return (elemTop < cBottom && elemBottom > cTop);
- };
-
- return checkBoundaries();
- };
-
-
- var emergenceThrottle = function() {
- if (!!poll) {
- return;
- }
- clearTimeout(poll);
- poll = setTimeout(function() {
- emergence.engage(selector);
- poll = null;
- }, throttle);
- };
-
- emergence.init = function(options) {
- options = options || {};
-
- // Function to return an integer
- var optionInt = function(option, fallback) {
- if(/^\d+(\.\d+)?%$/.test(option)) {
- let totheight = 0;
- if(container == window) {
- totheight = container.innerHeight;
- } else {
- totheight = container.offsetHeight;
- }
- let height = parseInt((totheight/100)*parseFloat(option))
- return height;
- } else {
- return parseInt(option || fallback, 10);
- }
- };
-
- // Function to return a floating point number
- var optionFloat = function(option, fallback) {
- return parseFloat(option || fallback);
- };
-
- // Default options
- container = options.container || window; // window or document by default
- throttle = 100; // 250 by default
- offsetY = options.offsetY;
- offsetTop = optionInt(offsetY, 0); // 0 by default
- offsetBottom = optionInt(offsetY, 0); // 0 by default
- callback = options.callback || callback;
- selector = options.selector || "[data-emergence]";
-
- // If browser doesnt pass feature test
- if (window.addEventListener) {
-
- window.addEventListener('load', emergenceThrottle, false);
- container.addEventListener('scroll', emergenceThrottle, false);
- container.addEventListener('resize', updatePercentage, false);
- container.addEventListener('resize', emergenceThrottle, false);
-
- } else {
-
- document.attachEvent('onreadystatechange', function() {
- if (document.readyState === 'complete') { emergenceThrottle(); }
- });
- container.attachEvent('onscroll', emergenceThrottle);
- container.attachEvent('onresize', updatePercentage);
- container.attachEvent('onresize', emergenceThrottle);
-
- }
- };
-
- // Engage emergence
- emergence.engage = function(selector) {
- var nodes = document.querySelectorAll(selector);
- var length = nodes.length;
- var elem;
-
- for (var i = 0; i < length; i++) {
- elem = nodes[i];
-
- if (isVisible(elem)) {
- callback(elem, 'visible');
- }
- }
-
- };
-
- return emergence;
-});
-
-/* eslint-enable */
\ No newline at end of file
diff --git a/assets/styles/admin/editor_form.scss b/assets/styles/admin/editor_form.scss
index 3a00fd7..8e2ca3c 100644
--- a/assets/styles/admin/editor_form.scss
+++ b/assets/styles/admin/editor_form.scss
@@ -8,7 +8,9 @@
font-size: var(--formality_fontsize);
position: relative;
z-index: 1;
- padding-top: 50px !important;
+ @media(min-width:783px) {
+ padding-top: 50px !important;
+ }
&:before {
content: "";
width: 100%;
@@ -161,8 +163,10 @@
margin-top: 0 !important;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
- border-color: var(--formality_col1);
border-left: none;
+ @media(min-width:783px) {
+ border-color: var(--formality_col1);
+ }
&:before {
content: "";
position: absolute;
@@ -214,7 +218,7 @@
}
}
.editor-post-title__block {
- max-width: 674px;
+ max-width: 700px !important;
margin: 0 auto;
font-size: var(--formality_fontsize);
&:before {
@@ -244,7 +248,7 @@
font-family: var(--formality_font);
text-shadow: none;
font-size: 2.6em;
- padding: 19px 12px;
+ padding: 20px 12px;
border-color: transparent;
transition: none;
text-align: left;
@@ -263,6 +267,22 @@
}
}
}
+ .edit-post-visual-editor__post-title-wrapper {
+ max-width: 700px !important;
+ padding: 12px;
+ margin: 0 auto;
+ font-size: var(--formality_fontsize);
+ h1.wp-block-post-title {
+ color: var(--formality_col1);
+ font-family: var(--formality_font);
+ margin: 0;
+ padding: 12px;
+ font-size: 2.6em;
+ &.is-selected {
+ box-shadow: -3px 0 0 0 var(--formality_col1);
+ }
+ }
+ }
.block-editor-block-list__layout {
font-family: var(--formality_font);
max-width: 700px;
@@ -270,7 +290,6 @@
margin: 0 auto;
flex-wrap: wrap;
display: flex;
- width: calc(100% + 24px);
line-height: 1.4;
> .wp-block {
width: 100%;
@@ -278,7 +297,9 @@
padding: 0 12px;
margin: 12px 0 20px;
&.wp-block--halfwidth {
- width: 50%;
+ @media(min-width:521px) {
+ width: 50%;
+ }
}
&:before,
&:after {
@@ -289,6 +310,9 @@
box-shadow: -3px 0 0 0 var(--formality_col1) !important;
opacity: 0;
border-radius: 0;
+ @media(max-width:782px) {
+ display: none;
+ }
}
&.is-selected {
&:before,
@@ -353,6 +377,7 @@
cursor: pointer;
.block-editor-inserter {
font-size: var(--formality_fontsize);
+ position: relative;
&:after {
margin-top: 2.4em;
display: inline-block;
diff --git a/assets/styles/admin/header.scss b/assets/styles/admin/header.scss
index 21881ff..2c24749 100644
--- a/assets/styles/admin/header.scss
+++ b/assets/styles/admin/header.scss
@@ -89,6 +89,9 @@
margin-right: 8px;
text-decoration: none;
font-weight: bold;
+ position: relative;
+ display: inline-flex;
+ align-items: center;
@media(max-width: 782px) {
display: none;
}
@@ -110,6 +113,27 @@
background: #25e489;
}
}
+ i {
+ opacity: 0;
+ display: block;
+ top: 100%;
+ padding: 6px 10px;
+ background: rgba(0,0,0,0.6);
+ color: white;
+ pointer-events: none;
+ position: absolute;
+ font-style: normal;
+ font-weight: normal;
+ white-space: nowrap;
+ right: 0;
+ border-radius: 3px;
+ margin-top: 3px;
+ }
+ &:hover {
+ i {
+ opacity: 1;
+ }
+ }
}
a.formality-welcome-toggle {
margin-top: -4px;
diff --git a/formality.php b/formality.php
index ceeec21..2676999 100755
--- a/formality.php
+++ b/formality.php
@@ -12,7 +12,7 @@
* Plugin Name: Formality
* Plugin URI: https://formality.dev
* Description: Forms made simple (and cute). Designless, multistep, conversational, secure, all-in-one WordPress forms plugin.
- * Version: 1.4
+ * Version: 1.4.1
* Author: Michele Giorgi
* Author URI: https://giorgi.io
* License: GPLv3
@@ -36,7 +36,6 @@
* This program incorporates work covered by the following copyright:
*
* Parsley.js - MIT | Copyright (c) 2013-2020 Guillaume Potier, Marc-André Lafortune and contributors | https://github.com/guillaumepotier/Parsley.js
- * Emergence.js - MIT | (c) 2017 @xtianmiller | https://github.com/xtianmiller/emergence.js
* React Sortable HOC - MIT | Copyright (c) 2016, Claudéric Demers | https://github.com/clauderic/react-sortable-hoc
* clone-deep - MIT | Copyright © 2018, Jon Schlinkert | https://github.com/jonschlinkert/clone-deep
* Hanken Grotesk - SIL | Copyright 2020 The Hanken Grotesk Project Authors, with Font Name "Hanken Grotesk". | https://github.com/marcologous/hanken-grotesk
@@ -51,7 +50,7 @@
/**
* Currently plugin version.
*/
-define( 'FORMALITY_VERSION', '1.4' );
+define( 'FORMALITY_VERSION', '1.4.1' );
define( 'FORMALITY_PATH', plugin_dir_path( __FILE__ ));
/**
diff --git a/includes/class-formality.php b/includes/class-formality.php
index 1beb3a5..9f67e52 100755
--- a/includes/class-formality.php
+++ b/includes/class-formality.php
@@ -57,7 +57,7 @@ class Formality {
*/
public function __construct() {
- $this->version = defined( 'FORMALITY_VERSION' ) ? FORMALITY_VERSION : '1.4';
+ $this->version = defined( 'FORMALITY_VERSION' ) ? FORMALITY_VERSION : '1.4.1';
$this->formality = 'formality';
$this->fse = class_exists('WP_Block_Editor_Context');
diff --git a/languages/formality-it_IT-3c4b2d232f97e5d4401ae142f2499760.json b/languages/formality-it_IT-3c4b2d232f97e5d4401ae142f2499760.json
index 32dc2f8..00e85bb 100644
--- a/languages/formality-it_IT-3c4b2d232f97e5d4401ae142f2499760.json
+++ b/languages/formality-it_IT-3c4b2d232f97e5d4401ae142f2499760.json
@@ -1 +1 @@
-{"translation-revision-date":"2021-09-05 08:01+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-editor.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"- Field -":["- Campo -"],"Add a button link to your form. Your form will be opened in an onscreen sidebar.":["Aggiungi un link al tuo form. Il form verr\u00e0 aperto in una sidebar laterale."],"Add an information message":["Aggiungi un messaggio informativo"],"Add option":["Aggiungi opzione"],"Add rule":["Aggiungi regola"],"Advanced":["Avanzate"],"Align this value to your theme's fontsize":["Allinea questo valore alla dimensione font del tuo tema"],"Allow only single selection":["Permetti la selezione di una sola opzione"],"Allowed types":["Tipi file validi"],"Appearance":["Aspetto"],"Ask your users for a rating. Score from one to ten.":["Chiedi un voto ai tuoi utenti. Valori da 1 a 10."],"Assign different values and labels for each option":["Assegna valori e etichette differenti per ogni opzione"],"Background image":["Immagine di sfondo"],"Background layout":["Layout sfondo"],"Background overlay":["Livello coprente sfondo"],"Backgrounds, Input suggestions, etc.":["Sfondi, Suggerimenti campi, ecc..."],"Based on font-size setting:":["Basato sulla dimensione font selezionata"],"Boxed":["Boxed"],"Boxed border input field":["Campi input con bordo continuo"],"But you can also embed it, into your post or pages with Formality block or with this specific shortcode:":["Ma puoi comunque incorporarlo nei tuoi contenuti con il blocco Formality o con questo shortcode specifico;"],"Button":["Pulsante"],"Button label":["Etichetta pulsante"],"Buttons":["Pulsanti"],"Call to action":["Call to action"],"Change background image\/color on input focus":["Cambia l'immagine\/colore di sfondo quando il campo viene selezionato"],"Checkbox":["Checkbox"],"Checkbox grid with all available options that users can select.":["Griglia con tutte le opzioni che l'utente pu\u00f2 selezionare."],"Checkbox input, good for true\/false answer or acceptance field.":["Checkbox, ottimo per risposte vero\/falso o campi di accettazione."],"Choose file or drag here":["Seleziona o trascina il file qui"],"Click to confirm":["Clicca per confermare"],"Conditional logic":["Condizioni logiche"],"Conversational":["Conversational"],"Create the first one.":["Crea il primo."],"Credits\/copy text":["Testo copy\/crediti"],"Currently you can't use this block, because you have no published Formality form.":["Al momento non puoi utilizzare questo blocco, perch\u00e8 non hai form Formality pubblicati."],"Custom message\/information for your users.":["Messaggio informativo per i tuoi utenti."],"Description":["Descrizione"],"Disable button":["Disabilita pulsante"],"Disable SSL verification for unsplash.com domain until the download process finishes.":["Disabilita la verifica SSL per il dominio unsplash.com fino al termine del download."],"Display inline options.":["Mostra opzioni in linea."],"Distribute options in %s columns.":["Distribuisci opzioni su %s colonne."],"Download templates photos":["Scarica le foto dei templates"],"Dropdown list with all available options that users can select.":["Men\u00f9 a tendina con tutte le opzioni che l'utente pu\u00f2 selezionare."],"Dynamic background":["Sfondi dinamici"],"E-mail":["E-mail"],"E-mail address":["Indirizzo email"],"Edit or update background image":["Aggiorna l'immagine di sfondo"],"Edit or update logo":["Modifica o aggiorna logo"],"Edit or update media file":["Modifica o aggiorna file media"],"Edit or update the image":["Modifica o aggiorna l'immagine"],"Edit this form":["Modifica questo form"],"Embed":["Embed"],"Embed & Share":["Incorpora & Condividi"],"Embed Formality forms in your posts or pages.":["Includi un form Formality nei tuoi post o pagine."],"Embedded version":["Versione embedded"],"Enable Formality credits":["Attiva i crediti di Formality"],"Enable\/disable file formats":["Abilita\/disabilita formati file"],"Enter your text here!":["Inserisci testo qui!"],"Error":["Errore"],"Error color":["Colore errori"],"Error message":["Messaggio di errore"],"Field":["Campo"],"Field ID\/Name":["ID\/nome campo"],"Field name":["Nome campo"],"Field options":["Opzioni campo"],"Font size":["Dimensione font"],"Form":["Form"],"Form footer":["Form footer"],"Form type":["Tipo form"],"Formality automatically saves all the results in the WordPress database, but if you want you can also activate e-mail notifications, by entering your address.":["Formality salva automaticamente tutti i risultati sul database di WordPress, ma se vuoi puoi attivare anche le notifiche, inserendo il tuo indirizzo email."],"Formality form":["Form Formality"],"Full screen background":["Sfondo a schermo pieno"],"Full width":["Piena (100%)"],"Group your fields into multiple sections, with custom heading.":["Raggruppa i tuoi campi in sezioni con una intestazione custom."],"Half width":["Met\u00e0 (50%)"],"Hearts":["Cuori"],"Hero image, how-to video or any type of visual content for your users.":["Immagine hero, video how-to o qualsiasi altro media per i tuoi utenti."],"Hide form title":["Nascondi titolo form"],"Icons":["Icone"],"Include this form in your post content.":["Inserisci questo form nel post."],"Initial value":["Valore iniziale"],"Input style":["Stile campi"],"Interval":["Intervallo"],"Invert form colors for this button":["Inverti i colori del form per questo pulsante"],"It seems your template library is incomplete. To fix this issue, you can retry the download process.":["Sembra che la tua libreria template sia incompleta. Per sistemare questo problema puoi provare a ripetere il download."],"Label":["Etichetta"],"Label \/ Question":["Etichetta \/ domanda"],"Label and border color of the wrong inputs.":["Colore di etichette e bordi dei campi sbagliati."],"Let your users upload files to your form":["Permetti ai tuoi utenti di caricare file"],"License":["Licenza"],"Line":["Line"],"Loading your form...":["Caricamento form..."],"Loading your forms...":["Caricamento form..."],"Logo":["Logo"],"Logo height multiplier":["Moltiplicatore altezza logo"],"Made with Formality":["Made with Formality"],"Manually set \"%s\" as url link (href) in your text content":["Imposta \"%s\" come indirizzo (href) dei tuoi link"],"Manually set this hashtag as url link (href) in your text content":["Imposta manualmente questo hashtag come indirizzo (href) dei tuoi link"],"Max length":["Lunghezza massima"],"Max upload file size":["Peso file massimo"],"Max value":["Valore massimo"],"Media":["Media"],"Media file":["File media"],"Media options":["Opzioni media"],"Message":["Messaggio"],"Min value":["Valore minimo"],"Multi-line area, good for texts or long answers.":["Area di testo multi-linea, ottima per lunghe risposte."],"Multiple choice":["Scelta multipla"],"None":["Nessuno"],"Notifications":["Notifiche"],"Number":["Numero"],"Number field, accept integer or float number value":["Campo numerico, accetta solo numeri interi"],"Options":["Opzioni"],"Options grid":["Griglia opzioni"],"Photo by %s on Unsplash":["Foto di %s su Unsplash"],"Place this block before the first field you want to group. This step section will be closed automatically before the next step block (or at the end of the form).":["Posiziona questo blocco prima del primo campo da raggruppare. Questa sezione verr\u00e0 chiusa automaticamente prima del prossimo campo step (o alla fine del form)."],"Placeholder":["Testo segnaposto"],"Please select a form to embed, from the right sidebar":["Seleziona un form da includere, dalla sidebar laterale"],"Please select an image or video, from the right sidebar.":["Seleziona una immagine o un video dalla sidebar laterale."],"Primary color":["Colore primario"],"Radio\/checkbox (default)":["Radio\/checkbox (default)"],"Rating":["Voto"],"Remove background":["Rimuovi sfondo"],"Remove background image":["Rimuovi immagine di sfondo"],"Remove button and open this form with a simple text link":["Rimuovi pulsante e apri questo form con un semplice link testuale"],"Remove color":["Rimuovi colore"],"Remove custom logo":["Rimuovi logo custom"],"Remove image":["Rimuovi immagine"],"Remove media":["Rimuovi media"],"Rhombus":["Rombi"],"Rows":["Righe"],"Secondary color":["Colore secondario"],"Select":["Men\u00f9 a tendina"],"Select a form to embed":["Seleziona un form da includere"],"Select an image or video":["Seleziona una immagine o un video"],"Select one of our templates made with a selection of the best Unsplash photos.":["Seleziona uno dei nostri templates, realizzati con una selezione delle migliori foto Unsplash."],"Select or upload background image":["Seleziona o carica l'immagine di sfondo"],"Select or upload media":["Seleziona o carica media"],"Select your choice":["Seleziona la tua scelta"],"Send":["Invia"],"Send button label":["Etichetta pulsante invio"],"Set a background image":["Seleziona immagine di sfondo"],"Set background overlay opacity (%)":["Imposta opacit\u00e0 del livello coprente (%)"],"Settings":["Impostazioni"],"Show this field only if:":["Mostra questo campo solo se:"],"Side background":["Sfondo su un lato"],"Single line border input field":["Campi input con linea"],"Size limit":["Limite peso file"],"Something went wrong and we couldn't save your data. Please retry later or contact us by e-mail or phone.":["Qualcosa \u00e8 andato storto e i tuoi dati non sono stati salvati. Riprova pi\u00f9 tardi o contattaci via e-mail o telefono."],"Something went wrong during the download process. You can retry or check your server logs for more informations about the error.":["Qualcosa \u00e8 andato storto durante il processo di download. Puoi riprovare il download o controllare l'errore nel log del tuo server."],"SSL verification failed during the download process. These errors most commonly happen on localhost development environments, and\/or on servers that do not fully support SSL. If possible, ask your web host to fix this issue ASAP. In the meantime, if you want to complete the download process now, you can temporary disable SSL verification.":["Durante il processo di download la verifica SSL \u00e8 fallita. Questi errori sono comuni su ambienti di sviluppo locali, e\/o su server che non supportano completamente SSL. Se possibile, chiedi al tuo web host di sistemare il problema al pi\u00f9 presto. Nel frattempo, se vuoi completare il download ora, puoi temporaneamente disabilitare la verifica SSL."],"Standalone version":["Versione standalone"],"Standard":["Standard"],"Standard text field, good for short answers and 1 line information.":["Campo standard, ottimo per risposte rapide di una riga di testo."],"Stars":["Stelle"],"Step":["Step"],"Step name":["Nome step"],"Step title":["Titolo step"],"Submit status":["Esito invio"],"Support us (and the photographer of the chosen template) with a single text line at the end of this form.":["Supporta Formality (e il fotografo del template selezionato) con una singola linea di testo alla fine del tuo form."],"Switch":["Interruttore"],"Switch (default)":["Interruttore (default)"],"Templates":["Templates"],"Terms and conditions":["Termini e condizioni"],"Text":["Testo"],"Text field that accepts only valid email address.":["Campo di testo che accetta solo indirizzi email validi."],"Textarea":["Area di testo"],"Texts, Labels, Borders, etc.":["Testi, Etichette, Bordi, ecc..."],"Thank you":["Grazie"],"Thank you message":["Messaggio di ringraziamento"],"This is a required field":["Questo \u00e8 un campo obbligatorio"],"This is an independent form, that are not tied to your posts or pages, and you can visit at this web address:":["Ogni form \u00e8 indipendente dalle tue pagine o post, e pu\u00f2 essere raggiunto al seguente indirizzo:"],"To start using them, you first have to download these photos from Unsplash servers.":["Per iniziare ad utilizzarli, devi prima scaricare queste immagini dai server di Unsplash."],"Type your answer here":["Scrivi la tua risposta qui"],"Upload":["Upload"],"Upload logo image":["Carica immagine logo"],"Value":["Valore"],"We have prepared %s templates made with a selection of the best Unsplash photos.":["Abbiamo preparato %s templates, realizzati con una selezione delle migliori foto Unsplash."],"Width":["Larghezza"],"You can also set an initial variable value by using field ID as a query var.":["Puoi applicare un valore iniziale utilizzando l'ID campo come query var. "],"Your data has been successfully submitted. You are very important to us, all information received will always remain confidential. We will contact you as soon as possible.":["I tuoi dati sono stati salvati con successo. Sei molto importante per noi, tutte le informazioni ricevute rimarranno confidenziali, e verrai ricontattato al pi\u00f9 presto. "]}}}
\ No newline at end of file
+{"translation-revision-date":"2021-09-27 06:56+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-editor.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"- Field -":["- Campo -"],"Add a button link to your form. Your form will be opened in an onscreen sidebar.":["Aggiungi un link al tuo form. Il form verr\u00e0 aperto in una sidebar laterale."],"Add an information message":["Aggiungi un messaggio informativo"],"Add option":["Aggiungi opzione"],"Add rule":["Aggiungi regola"],"Advanced":["Avanzate"],"Align this value to your theme's fontsize":["Allinea questo valore alla dimensione font del tuo tema"],"Allow only single selection":["Permetti la selezione di una sola opzione"],"Allowed types":["Tipi file validi"],"Appearance":["Aspetto"],"Ask your users for a rating. Score from one to ten.":["Chiedi un voto ai tuoi utenti. Valori da 1 a 10."],"Assign different values and labels for each option":["Assegna valori e etichette differenti per ogni opzione"],"Background image":["Immagine di sfondo"],"Background layout":["Layout sfondo"],"Background overlay":["Livello coprente sfondo"],"Backgrounds, Input suggestions, etc.":["Sfondi, Suggerimenti campi, ecc..."],"Based on font-size setting:":["Basato sulla dimensione font selezionata"],"Boxed":["Boxed"],"Boxed border input field":["Campi input con bordo continuo"],"But you can also embed it, into your post or pages with Formality block or with this specific shortcode:":["Ma puoi comunque incorporarlo nei tuoi contenuti con il blocco Formality o con questo shortcode specifico;"],"Button":["Pulsante"],"Button label":["Etichetta pulsante"],"Buttons":["Pulsanti"],"Call to action":["Call to action"],"Change background image\/color on input focus":["Cambia l'immagine\/colore di sfondo quando il campo viene selezionato"],"Checkbox":["Checkbox"],"Checkbox grid with all available options that users can select.":["Griglia con tutte le opzioni che l'utente pu\u00f2 selezionare."],"Checkbox input, good for true\/false answer or acceptance field.":["Checkbox, ottimo per risposte vero\/falso o campi di accettazione."],"Choose file or drag here":["Seleziona o trascina il file qui"],"Click to confirm":["Clicca per confermare"],"Conditional logic":["Condizioni logiche"],"Conversational":["Conversational"],"Create the first one.":["Crea il primo."],"Credits\/copy text":["Testo copy\/crediti"],"Currently you can't use this block, because you have no published Formality form.":["Al momento non puoi utilizzare questo blocco, perch\u00e8 non hai form Formality pubblicati."],"Custom message\/information for your users.":["Messaggio informativo per i tuoi utenti."],"Description":["Descrizione"],"Disable button":["Disabilita pulsante"],"Disable SSL verification for unsplash.com domain until the download process finishes.":["Disabilita la verifica SSL per il dominio unsplash.com fino al termine del download."],"Display inline options.":["Mostra opzioni in linea."],"Distribute options in %s columns.":["Distribuisci opzioni su %s colonne."],"Download templates photos":["Scarica le foto dei templates"],"Dropdown list with all available options that users can select.":["Men\u00f9 a tendina con tutte le opzioni che l'utente pu\u00f2 selezionare."],"Dynamic background":["Sfondi dinamici"],"E-mail":["E-mail"],"E-mail address":["Indirizzo email"],"Edit or update background image":["Aggiorna l'immagine di sfondo"],"Edit or update logo":["Modifica o aggiorna logo"],"Edit or update media file":["Modifica o aggiorna file media"],"Edit or update the image":["Modifica o aggiorna l'immagine"],"Edit this form":["Modifica questo form"],"Embed":["Embed"],"Embed & Share":["Incorpora & Condividi"],"Embed Formality forms in your posts or pages.":["Includi un form Formality nei tuoi post o pagine."],"Embedded version":["Versione embedded"],"Enable Formality credits":["Attiva i crediti di Formality"],"Enable\/disable file formats":["Abilita\/disabilita formati file"],"Enter your text here!":["Inserisci testo qui!"],"Error":["Errore"],"Error color":["Colore errori"],"Error message":["Messaggio di errore"],"Field":["Campo"],"Field ID\/Name":["ID\/nome campo"],"Field name":["Nome campo"],"Field options":["Opzioni campo"],"Font size":["Dimensione font"],"Form":["Form"],"Form footer":["Form footer"],"Form type":["Tipo form"],"Formality automatically saves all the results in the WordPress database, but if you want you can also activate e-mail notifications, by entering your address.":["Formality salva automaticamente tutti i risultati sul database di WordPress, ma se vuoi puoi attivare anche le notifiche, inserendo il tuo indirizzo email."],"Formality form":["Form Formality"],"Full screen background":["Sfondo a schermo pieno"],"Full width":["Piena (100%)"],"Group your fields into multiple sections, with custom heading.":["Raggruppa i tuoi campi in sezioni con una intestazione custom."],"Half width":["Met\u00e0 (50%)"],"Hearts":["Cuori"],"Hero image, how-to video or any type of visual content for your users.":["Immagine hero, video how-to o qualsiasi altro media per i tuoi utenti."],"Hide form title":["Nascondi titolo form"],"Icons":["Icone"],"Include this form in your post content.":["Inserisci questo form nel post."],"Initial value":["Valore iniziale"],"Input style":["Stile campi"],"Interval":["Intervallo"],"Invert form colors for this button":["Inverti i colori del form per questo pulsante"],"It seems your template library is incomplete. To fix this issue, you can retry the download process.":["Sembra che la tua libreria template sia incompleta. Per sistemare questo problema puoi provare a ripetere il download."],"Label":["Etichetta"],"Label \/ Question":["Etichetta \/ domanda"],"Label and border color of the wrong inputs.":["Colore di etichette e bordi dei campi sbagliati."],"Let your users upload files to your form":["Permetti ai tuoi utenti di caricare file"],"License":["Licenza"],"Line":["Line"],"Loading your form...":["Caricamento form..."],"Loading your forms...":["Caricamento form..."],"Logo":["Logo"],"Logo height multiplier":["Moltiplicatore altezza logo"],"Made with Formality":["Made with Formality"],"Manually set \"%s\" as url link (href) in your text content":["Imposta \"%s\" come indirizzo (href) dei tuoi link"],"Manually set this hashtag as url link (href) in your text content":["Imposta manualmente questo hashtag come indirizzo (href) dei tuoi link"],"Max length":["Lunghezza massima"],"Max upload file size":["Peso file massimo"],"Max value":["Valore massimo"],"Media":["Media"],"Media file":["File media"],"Media options":["Opzioni media"],"Message":["Messaggio"],"Min value":["Valore minimo"],"Multi-line area, good for texts or long answers.":["Area di testo multi-linea, ottima per lunghe risposte."],"Multiple choice":["Scelta multipla"],"None":["Nessuno"],"Notifications":["Notifiche"],"Number":["Numero"],"Number field, accept integer or float number value":["Campo numerico, accetta solo numeri interi"],"Options":["Opzioni"],"Options grid":["Griglia opzioni"],"Photo by %s on Unsplash":["Foto di %s su Unsplash"],"Place this block before the first field you want to group. This step section will be closed automatically before the next step block (or at the end of the form).":["Posiziona questo blocco prima del primo campo da raggruppare. Questa sezione verr\u00e0 chiusa automaticamente prima del prossimo campo step (o alla fine del form)."],"Placeholder":["Testo segnaposto"],"Please select a form to embed, from the right sidebar":["Seleziona un form da includere, dalla sidebar laterale"],"Please select an image or video, from the right sidebar.":["Seleziona una immagine o un video dalla sidebar laterale."],"Primary color":["Colore primario"],"Radio\/checkbox (default)":["Radio\/checkbox (default)"],"Rating":["Voto"],"Remove background":["Rimuovi sfondo"],"Remove background image":["Rimuovi immagine di sfondo"],"Remove button and open this form with a simple text link":["Rimuovi pulsante e apri questo form con un semplice link testuale"],"Remove color":["Rimuovi colore"],"Remove custom logo":["Rimuovi logo custom"],"Remove image":["Rimuovi immagine"],"Remove media":["Rimuovi media"],"Rhombus":["Rombi"],"Rows":["Righe"],"Secondary color":["Colore secondario"],"Select":["Men\u00f9 a tendina"],"Select a form to embed":["Seleziona un form da includere"],"Select an image or video":["Seleziona una immagine o un video"],"Select one of our templates made with a selection of the best Unsplash photos.":["Seleziona uno dei nostri templates, realizzati con una selezione delle migliori foto Unsplash."],"Select or upload background image":["Seleziona o carica l'immagine di sfondo"],"Select or upload media":["Seleziona o carica media"],"Select your choice":["Seleziona la tua scelta"],"Send":["Invia"],"Send button label":["Etichetta pulsante invio"],"Set a background image":["Seleziona immagine di sfondo"],"Set background overlay opacity (%)":["Imposta opacit\u00e0 del livello coprente (%)"],"Settings":["Impostazioni"],"Show this field only if:":["Mostra questo campo solo se:"],"Side background":["Sfondo su un lato"],"Single line border input field":["Campi input con linea"],"Size limit":["Limite peso file"],"Something went wrong and we couldn't save your data. Please retry later or contact us by e-mail or phone.":["Qualcosa \u00e8 andato storto e i tuoi dati non sono stati salvati. Riprova pi\u00f9 tardi o contattaci via e-mail o telefono."],"Something went wrong during the download process. You can retry or check your server logs for more informations about the error.":["Qualcosa \u00e8 andato storto durante il processo di download. Puoi riprovare il download o controllare l'errore nel log del tuo server."],"SSL verification failed during the download process. These errors most commonly happen on localhost development environments, and\/or on servers that do not fully support SSL. If possible, ask your web host to fix this issue ASAP. In the meantime, if you want to complete the download process now, you can temporary disable SSL verification.":["Durante il processo di download la verifica SSL \u00e8 fallita. Questi errori sono comuni su ambienti di sviluppo locali, e\/o su server che non supportano completamente SSL. Se possibile, chiedi al tuo web host di sistemare il problema al pi\u00f9 presto. Nel frattempo, se vuoi completare il download ora, puoi temporaneamente disabilitare la verifica SSL."],"Standalone version":["Versione standalone"],"Standard":["Standard"],"Standard text field, good for short answers and 1 line information.":["Campo standard, ottimo per risposte rapide di una riga di testo."],"Stars":["Stelle"],"Step":["Step"],"Step name":["Nome step"],"Step title":["Titolo step"],"Submit status":["Esito invio"],"Support us (and the photographer of the chosen template) with a single text line at the end of this form.":["Supporta Formality (e il fotografo del template selezionato) con una singola linea di testo alla fine del tuo form."],"Switch":["Interruttore"],"Switch (default)":["Interruttore (default)"],"Templates":["Templates"],"Terms and conditions":["Termini e condizioni"],"Text":["Testo"],"Text field that accepts only valid email address.":["Campo di testo che accetta solo indirizzi email validi."],"Textarea":["Area di testo"],"Texts, Labels, Borders, etc.":["Testi, Etichette, Bordi, ecc..."],"Thank you":["Grazie"],"Thank you message":["Messaggio di ringraziamento"],"This is a required field":["Questo \u00e8 un campo obbligatorio"],"This is an independent form, that are not tied to your posts or pages, and you can visit at this web address:":["Ogni form \u00e8 indipendente dalle tue pagine o post, e pu\u00f2 essere raggiunto al seguente indirizzo:"],"To start using them, you first have to download these photos from Unsplash servers.":["Per iniziare ad utilizzarli, devi prima scaricare queste immagini dai server di Unsplash."],"Type your answer here":["Scrivi la tua risposta qui"],"Upload":["Upload"],"Upload logo image":["Carica immagine logo"],"Value":["Valore"],"We have prepared %s templates made with a selection of the best Unsplash photos.":["Abbiamo preparato %s templates, realizzati con una selezione delle migliori foto Unsplash."],"Width":["Larghezza"],"You can also set an initial variable value by using field ID as a query var.":["Puoi applicare un valore iniziale utilizzando l'ID campo come query var. "],"Your data has been successfully submitted. You are very important to us, all information received will always remain confidential. We will contact you as soon as possible.":["I tuoi dati sono stati salvati con successo. Sei molto importante per noi, tutte le informazioni ricevute rimarranno confidenziali, e verrai ricontattato al pi\u00f9 presto. "]}}}
\ No newline at end of file
diff --git a/languages/formality-it_IT-49bf50bb4358b4d339cf99cb13a07d80.json b/languages/formality-it_IT-49bf50bb4358b4d339cf99cb13a07d80.json
index 8bbb97a..b2cdfa1 100644
--- a/languages/formality-it_IT-49bf50bb4358b4d339cf99cb13a07d80.json
+++ b/languages/formality-it_IT-49bf50bb4358b4d339cf99cb13a07d80.json
@@ -1 +1 @@
-{"translation-revision-date":"2021-09-05 08:01+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-admin.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"Download now":["Scarica ora"],"Please insert a valid email address":["Inserisci un indirizzo email valido"],"Something went wrong":["Qualcosa \u00e8 andato storto"],"Something went wrong. Please retry later.":["Qualcosa \u00e8 andato storto. Riprova pi\u00f9 tardi."],"To continue you have to accept our privacy policy":["Per continuare devi accettare la nostra privacy policy"]}}}
\ No newline at end of file
+{"translation-revision-date":"2021-09-27 06:56+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-admin.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"Download now":["Scarica ora"],"Please insert a valid email address":["Inserisci un indirizzo email valido"],"Something went wrong":["Qualcosa \u00e8 andato storto"],"Something went wrong. Please retry later.":["Qualcosa \u00e8 andato storto. Riprova pi\u00f9 tardi."],"To continue you have to accept our privacy policy":["Per continuare devi accettare la nostra privacy policy"]}}}
\ No newline at end of file
diff --git a/languages/formality-it_IT-e3bf5dcd89db453858f995b164624024.json b/languages/formality-it_IT-e3bf5dcd89db453858f995b164624024.json
index 0a5001a..8efb4bd 100644
--- a/languages/formality-it_IT-e3bf5dcd89db453858f995b164624024.json
+++ b/languages/formality-it_IT-e3bf5dcd89db453858f995b164624024.json
@@ -1 +1 @@
-{"translation-revision-date":"2021-09-05 08:01+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-public.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"Checking file":["Controllo file"],"File extension is not allowed":["L'estensione del file non \u00e8 permessa"],"Please wait":["Attendi qualche secondo "],"Press backspace to reset this field and return to previous field":["Premi backspace per resettare il campo e tornare al campo precedente"],"Press enter or tab to proceed to next field":["Premi invio o tab per procedere al campo successivo"],"Press enter to confirm your option and proceed to next field":["Premi invio per confermare l'opzione e procedere al campo successivo "],"Press left or right arrows to choose your option":["Usa le frecce sinistra e destra per fare la tua scelta"],"Press space to confirm your option":["Premi spazio per confermare la tua opzione"],"Press space to select your file":["Premi spazio per selezionare il tuo file"],"Press tab to proceed to next field":["Premi tab per procedere al campo successivo"],"Press up and down arrows to increment or decrement your value":["Usa le frecce s\u00f9 e gi\u00f9 per aumentare o diminuire il numero"],"Press up or down arrows to choose your option":["Usa le frecce s\u00f9 e gi\u00f9 per fare la tua scelta"],"Show less hints":["Mostra meno suggerimenti"],"Show more hints":["Mostra pi\u00f9 suggerimenti"],"This value is required":["Questo campo \u00e8 obbligatorio"],"This value is too long. It should have %s characters or fewer":["Questo valore \u00e8 troppo lungo. Dovrebbe avere non pi\u00f9 di %s caratteri"],"This value is too short. It should have %s characters or more":["Questo valore \u00e8 troppo corto. Dovrebbe avere almeno %s caratteri"],"This value length is invalid. It should be between %s and %s characters long":["La tua risposta dovrebbe avere una lunghezza compresa tra %s e %s caratteri"],"This value seems to be invalid":["Questo campo non \u00e8 valido"],"This value should be a valid email":["Questo campo deve contenere una email valida"],"This value should be a valid integer":["Questo campo deve contenere un numero intero"],"This value should be a valid number":["Questo campo deve contenere un numero valido"],"This value should be a valid url":["Questo campo deve contenere un url valido"],"This value should be alphanumeric":["Questo campo deve contenere solo lettere"],"This value should be between %s and %s":["Questo valore dovrebbe essere compreso tra %s e %s"],"This value should be digits":["Questo campo deve contenere solo numeri"],"This value should be greater than or equal to %s":["Questo valore dovrebbe essere maggiore o uguale di %s"],"This value should be lower than or equal to %s":["Questo valore dovrebbe essere minore o uguale di %s"],"You must select between %s and %s choices":["Dovresti scegliere tra le scelte %s e %s"],"Your file exceeds the size limit":["Il tuo file \u00e8 troppo pesante"]}}}
\ No newline at end of file
+{"translation-revision-date":"2021-09-27 06:56+0000","generator":"Loco https:\/\/localise.biz\/","source":"dist\/scripts\/formality-public.js","domain":"formality","locale_data":{"formality":{"":{"domain":"formality","lang":"it_IT","plural-forms":"nplurals=2; plural=n != 1;"},"Checking file":["Controllo file"],"File extension is not allowed":["L'estensione del file non \u00e8 permessa"],"Please wait":["Attendi qualche secondo "],"Press backspace to reset this field and return to previous field":["Premi backspace per resettare il campo e tornare al campo precedente"],"Press enter or tab to proceed to next field":["Premi invio o tab per procedere al campo successivo"],"Press enter to confirm your option and proceed to next field":["Premi invio per confermare l'opzione e procedere al campo successivo "],"Press left or right arrows to choose your option":["Usa le frecce sinistra e destra per fare la tua scelta"],"Press space to confirm your option":["Premi spazio per confermare la tua opzione"],"Press space to select your file":["Premi spazio per selezionare il tuo file"],"Press tab to proceed to next field":["Premi tab per procedere al campo successivo"],"Press up and down arrows to increment or decrement your value":["Usa le frecce s\u00f9 e gi\u00f9 per aumentare o diminuire il numero"],"Press up or down arrows to choose your option":["Usa le frecce s\u00f9 e gi\u00f9 per fare la tua scelta"],"Show less hints":["Mostra meno suggerimenti"],"Show more hints":["Mostra pi\u00f9 suggerimenti"],"This value is required":["Questo campo \u00e8 obbligatorio"],"This value is too long. It should have %s characters or fewer":["Questo valore \u00e8 troppo lungo. Dovrebbe avere non pi\u00f9 di %s caratteri"],"This value is too short. It should have %s characters or more":["Questo valore \u00e8 troppo corto. Dovrebbe avere almeno %s caratteri"],"This value length is invalid. It should be between %s and %s characters long":["La tua risposta dovrebbe avere una lunghezza compresa tra %s e %s caratteri"],"This value seems to be invalid":["Questo campo non \u00e8 valido"],"This value should be a valid email":["Questo campo deve contenere una email valida"],"This value should be a valid integer":["Questo campo deve contenere un numero intero"],"This value should be a valid number":["Questo campo deve contenere un numero valido"],"This value should be a valid url":["Questo campo deve contenere un url valido"],"This value should be alphanumeric":["Questo campo deve contenere solo lettere"],"This value should be between %s and %s":["Questo valore dovrebbe essere compreso tra %s e %s"],"This value should be digits":["Questo campo deve contenere solo numeri"],"This value should be greater than or equal to %s":["Questo valore dovrebbe essere maggiore o uguale di %s"],"This value should be lower than or equal to %s":["Questo valore dovrebbe essere minore o uguale di %s"],"You must select between %s and %s choices":["Dovresti scegliere tra le scelte %s e %s"],"Your file exceeds the size limit":["Il tuo file \u00e8 troppo pesante"]}}}
\ No newline at end of file
diff --git a/languages/formality-it_IT.mo b/languages/formality-it_IT.mo
index a8f4878..2321d1d 100644
Binary files a/languages/formality-it_IT.mo and b/languages/formality-it_IT.mo differ
diff --git a/languages/formality-it_IT.po b/languages/formality-it_IT.po
index d256f73..d36bb75 100644
--- a/languages/formality-it_IT.po
+++ b/languages/formality-it_IT.po
@@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2020-08-29T13:29:43+00:00\n"
-"PO-Revision-Date: 2021-09-05 08:01+0000\n"
+"PO-Revision-Date: 2021-09-27 06:56+0000\n"
"Language: it_IT\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Domain: formality\n"
@@ -29,7 +29,7 @@ msgid "About %s seconds remaining"
msgstr "Circa %s secondi rimanenti"
#. translators: %s: privacy policy link
-#: admin/class-formality-admin.php:184
+#: admin/class-formality-admin.php:186
msgid "Accept our privacy policy."
msgstr "Accetta la nostra privacy policy."
@@ -48,7 +48,7 @@ msgstr "Aggiungi un messaggio informativo"
msgid "Add New Form"
msgstr "Aggiungi nuovo form"
-#: admin/class-formality-admin.php:153
+#: admin/class-formality-admin.php:155
msgid "Add new form"
msgstr "Aggiungi nuovo form"
@@ -109,7 +109,7 @@ msgstr ""
msgid "Allow only single selection"
msgstr "Permetti la selezione di una sola opzione"
-#: public/class-formality-fields.php:379 dist/scripts/formality-editor.js:2143
+#: public/class-formality-fields.php:375 dist/scripts/formality-editor.js:2143
#: dist/scripts/formality-editor.js:2183
msgid "Allowed types"
msgstr "Tipi file validi"
@@ -208,16 +208,16 @@ msgstr "Griglia con tutte le opzioni che l'utente può selezionare."
msgid "Checkbox input, good for true/false answer or acceptance field."
msgstr "Checkbox, ottimo per risposte vero/falso o campi di accettazione."
-#: dist/scripts/formality-public.js:1754
+#: dist/scripts/formality-public.js:1804
msgid "Checking file"
msgstr "Controllo file"
-#: public/class-formality-fields.php:88 dist/scripts/formality-editor.js:2183
+#: public/class-formality-fields.php:84 dist/scripts/formality-editor.js:2183
#: dist/scripts/formality-editor.js:2185
msgid "Choose file or drag here"
msgstr "Seleziona o trascina il file qui"
-#: public/class-formality-fields.php:86 dist/scripts/formality-editor.js:1669
+#: public/class-formality-fields.php:82 dist/scripts/formality-editor.js:1669
msgid "Click to confirm"
msgstr "Clicca per confermare"
@@ -237,7 +237,7 @@ msgstr "Conversational"
msgid "Create the first one."
msgstr "Crea il primo."
-#: admin/class-formality-admin.php:153
+#: admin/class-formality-admin.php:155
msgid "Create your first form"
msgstr "Crea il tuo primo form"
@@ -395,7 +395,7 @@ msgstr "Colore errori"
msgid "Error message"
msgstr "Messaggio di errore"
-#: admin/class-formality-admin.php:147
+#: admin/class-formality-admin.php:149
msgid "Everything is ready to start building your forms:"
msgstr "Tutto è pronto per iniziare a costruire i tuoi form:"
@@ -441,7 +441,7 @@ msgstr "Opzioni campo"
msgid "File"
msgstr "File"
-#: dist/scripts/formality-public.js:1745
+#: dist/scripts/formality-public.js:1795
msgid "File extension is not allowed"
msgstr "L'estensione del file non è permessa"
@@ -457,7 +457,7 @@ msgstr "Primo campo compilato"
msgid "Font size"
msgstr "Dimensione font"
-#: public/templates/notification.php:39
+#: public/templates/formality-notification.php:39
msgid "for"
msgstr "per"
@@ -525,11 +525,11 @@ msgstr "Sfondo a schermo pieno"
msgid "Full width"
msgstr "Piena (100%)"
-#: admin/class-formality-admin.php:161
+#: admin/class-formality-admin.php:163
msgid "Generate sample forms and download background images"
msgstr "Genera i form di esempio e scarica le immagini di sfondo"
-#: admin/class-formality-admin.php:150
+#: admin/class-formality-admin.php:152
msgid "Get Started"
msgstr "Inizia"
@@ -557,7 +557,7 @@ msgstr "Immagine hero, video how-to o qualsiasi altro media per i tuoi utenti."
msgid "Hide form title"
msgstr "Nascondi titolo form"
-#: admin/class-formality-admin.php:142 admin/class-formality-admin.php:144
+#: admin/class-formality-admin.php:144 admin/class-formality-admin.php:146
msgid "Hide panel"
msgstr "Nascondi pannello"
@@ -578,7 +578,7 @@ msgid "ID"
msgstr "ID"
#. translators: %s: donate link + 5 stars review link
-#: admin/class-formality-admin.php:180
+#: admin/class-formality-admin.php:182
#| msgid ""
#| "If you enjoy using Formality, please consider making a "
#| "donation, or rate this plugin with a 5 stars "
@@ -595,7 +595,7 @@ msgstr ""
"a 5 stelle sulla directory Wordpress. Puoi anche iscriverti alla nostra "
"newsletter (massimo una mail/mese)."
-#: public/templates/notification.php:36
+#: public/templates/formality-notification.php:36
msgid "in your admin dashboard"
msgstr "nella dashboard"
@@ -647,7 +647,7 @@ msgstr "Colore di etichette e bordi dei campi sbagliati."
msgid "Layout elements"
msgstr "Elementi layout"
-#: admin/class-formality-admin.php:175
+#: admin/class-formality-admin.php:177
msgid "Learn more about Formality"
msgstr "Scopri di più su Formality"
@@ -655,7 +655,7 @@ msgstr "Scopri di più su Formality"
msgid "Let your users upload files to your form"
msgstr "Permetti ai tuoi utenti di caricare file"
-#: admin/class-formality-admin.php:164 dist/scripts/formality-editor.js:4692
+#: admin/class-formality-admin.php:166 dist/scripts/formality-editor.js:4692
msgid "License"
msgstr "Licenza"
@@ -683,7 +683,7 @@ msgstr "Logo"
msgid "Logo height multiplier"
msgstr "Moltiplicatore altezza logo"
-#: public/templates/notification.php:41
+#: public/templates/formality-notification.php:41
msgid "Made with"
msgstr "Fatto con"
@@ -691,7 +691,7 @@ msgstr "Fatto con"
msgid "Made with Formality"
msgstr "Made with Formality"
-#: admin/class-formality-admin.php:172
+#: admin/class-formality-admin.php:174
msgid "Manage your forms"
msgstr "Amministra i tuoi form"
@@ -773,7 +773,7 @@ msgid "New Result"
msgstr "Nuovo risultato"
#: admin/class-formality-notifications.php:27
-#: public/templates/notification.php:30
+#: public/templates/formality-notification.php:30
msgid "New result for"
msgstr "Nuovo risultato per"
@@ -822,7 +822,7 @@ msgstr "Nessun risultato da segnalare come letto"
msgid "No sample to import has been supplied!"
msgstr "Non è stato fornito alcun form di esempio valido!"
-#: public/class-formality-fields.php:379 dist/scripts/formality-editor.js:3443
+#: public/class-formality-fields.php:375 dist/scripts/formality-editor.js:3443
#: dist/scripts/formality-editor.js:3464
msgid "None"
msgstr "Nessuno"
@@ -853,14 +853,14 @@ msgid "Options grid"
msgstr "Griglia opzioni"
#. translators: %s: generate sample forms link
-#: admin/class-formality-admin.php:155
+#: admin/class-formality-admin.php:157
msgid ""
"or generate a couple of sample forms to practice with"
msgstr ""
"o genera un paio di form di esempio per fare pratica"
#. translators: %s: import form link
-#: admin/class-formality-admin.php:156
+#: admin/class-formality-admin.php:158
#| msgid "or import your forms with Wordpress import tool"
msgid "or import your forms with the WordPress import tool"
msgstr ""
@@ -871,7 +871,7 @@ msgstr ""
msgid "Order"
msgstr "Ordine"
-#: admin/class-formality-admin.php:160
+#: admin/class-formality-admin.php:162
msgid ""
"Our sample forms are made with a selection of the best Unsplash photos. To "
"start using them, you first have to download these photos from Unsplash "
@@ -927,7 +927,7 @@ msgstr "Seleziona un form da includere, dalla sidebar laterale"
msgid "Please select an image or video, from the right sidebar."
msgstr "Seleziona una immagine o un video dalla sidebar laterale."
-#: dist/scripts/formality-public.js:1754
+#: dist/scripts/formality-public.js:1804
msgid "Please wait"
msgstr "Attendi qualche secondo "
@@ -951,39 +951,39 @@ msgctxt "post type singular name"
msgid "Result"
msgstr "Risultato"
-#: dist/scripts/formality-public.js:575
+#: dist/scripts/formality-public.js:625
msgid "Press backspace to reset this field and return to previous field"
msgstr "Premi backspace per resettare il campo e tornare al campo precedente"
-#: dist/scripts/formality-public.js:567
+#: dist/scripts/formality-public.js:617
msgid "Press enter or tab to proceed to next field"
msgstr "Premi invio o tab per procedere al campo successivo"
-#: dist/scripts/formality-public.js:591
+#: dist/scripts/formality-public.js:641
msgid "Press enter to confirm your option and proceed to next field"
msgstr "Premi invio per confermare l'opzione e procedere al campo successivo "
-#: dist/scripts/formality-public.js:583
+#: dist/scripts/formality-public.js:633
msgid "Press left or right arrows to choose your option"
msgstr "Usa le frecce sinistra e destra per fare la tua scelta"
-#: dist/scripts/formality-public.js:595
+#: dist/scripts/formality-public.js:645
msgid "Press space to confirm your option"
msgstr "Premi spazio per confermare la tua opzione"
-#: dist/scripts/formality-public.js:599
+#: dist/scripts/formality-public.js:649
msgid "Press space to select your file"
msgstr "Premi spazio per selezionare il tuo file"
-#: dist/scripts/formality-public.js:571
+#: dist/scripts/formality-public.js:621
msgid "Press tab to proceed to next field"
msgstr "Premi tab per procedere al campo successivo"
-#: dist/scripts/formality-public.js:587
+#: dist/scripts/formality-public.js:637
msgid "Press up and down arrows to increment or decrement your value"
msgstr "Usa le frecce sù e giù per aumentare o diminuire il numero"
-#: dist/scripts/formality-public.js:579
+#: dist/scripts/formality-public.js:629
msgid "Press up or down arrows to choose your option"
msgstr "Usa le frecce sù e giù per fare la tua scelta"
@@ -995,7 +995,7 @@ msgstr "Indietro"
msgid "Primary color"
msgstr "Colore primario"
-#: admin/class-formality-admin.php:170
+#: admin/class-formality-admin.php:172
msgid "Quick links"
msgstr "Link veloci"
@@ -1039,7 +1039,7 @@ msgstr "Rimuovi immagine"
msgid "Remove media"
msgstr "Rimuovi media"
-#: admin/class-formality-admin.php:174
+#: admin/class-formality-admin.php:176
msgid "Request support or report a bug"
msgstr "Richiedi supporto o segnala un bug"
@@ -1132,7 +1132,7 @@ msgstr "Seleziona o carica media"
msgid "Select the data to export as columns in the csv file export."
msgstr "Seleziona i dati da esportare come colonne nel file csv esportato."
-#: public/class-formality-fields.php:80 dist/scripts/formality-editor.js:785
+#: public/class-formality-fields.php:76 dist/scripts/formality-editor.js:785
#: dist/scripts/formality-editor.js:1396 dist/scripts/formality-editor.js:1401
#: dist/scripts/formality-editor.js:1403
msgid "Select your choice"
@@ -1159,15 +1159,15 @@ msgstr "Imposta opacità del livello coprente (%)"
msgid "Settings"
msgstr "Impostazioni"
-#: dist/scripts/formality-public.js:539
+#: dist/scripts/formality-public.js:589
msgid "Show less hints"
msgstr "Mostra meno suggerimenti"
-#: dist/scripts/formality-public.js:539
+#: dist/scripts/formality-public.js:589
msgid "Show more hints"
msgstr "Mostra più suggerimenti"
-#: admin/class-formality-admin.php:142
+#: admin/class-formality-admin.php:144
msgid "Show panel"
msgstr "Mostra pannello"
@@ -1183,7 +1183,7 @@ msgstr "Sfondo su un lato"
msgid "Single line border input field"
msgstr "Campi input con linea"
-#: public/class-formality-fields.php:378 dist/scripts/formality-editor.js:2139
+#: public/class-formality-fields.php:374 dist/scripts/formality-editor.js:2139
#: dist/scripts/formality-editor.js:2183
msgid "Size limit"
msgstr "Limite peso file"
@@ -1267,11 +1267,11 @@ msgstr "Titolo step"
msgid "Submit status"
msgstr "Esito invio"
-#: admin/class-formality-admin.php:183
+#: admin/class-formality-admin.php:185
msgid "Subscribe"
msgstr "Iscriviti"
-#: admin/class-formality-admin.php:179
+#: admin/class-formality-admin.php:181
msgid "Support us"
msgstr "Supporta Formality"
@@ -1295,7 +1295,7 @@ msgstr "Interruttore (default)"
msgid "Templates"
msgstr "Templates"
-#: admin/class-formality-admin.php:163 dist/scripts/formality-editor.js:4688
+#: admin/class-formality-admin.php:165 dist/scripts/formality-editor.js:4688
msgid "Terms and conditions"
msgstr "Termini e condizioni"
@@ -1323,6 +1323,10 @@ msgstr "Grazie"
msgid "Thank you message"
msgstr "Messaggio di ringraziamento"
+#: admin/class-formality-admin.php:130
+msgid "There is a new version of Formality available"
+msgstr "È disponibile una nuova versione di Formality"
+
#: public/class-formality-submit.php:261
msgid "There is no data to save"
msgstr "Nessun dato da salvare"
@@ -1349,67 +1353,67 @@ msgstr ""
"Ogni form è indipendente dalle tue pagine o post, e può essere raggiunto al "
"seguente indirizzo:"
-#: dist/scripts/formality-public.js:1324
+#: dist/scripts/formality-public.js:1374
msgid "This value is required"
msgstr "Questo campo è obbligatorio"
#. translators: validation
-#: dist/scripts/formality-public.js:1340
+#: dist/scripts/formality-public.js:1390
msgid "This value is too long. It should have %s characters or fewer"
msgstr "Questo valore è troppo lungo. Dovrebbe avere non più di %s caratteri"
#. translators: validation
-#: dist/scripts/formality-public.js:1337
+#: dist/scripts/formality-public.js:1387
msgid "This value is too short. It should have %s characters or more"
msgstr "Questo valore è troppo corto. Dovrebbe avere almeno %s caratteri"
#. translators: validation
-#: dist/scripts/formality-public.js:1343
+#: dist/scripts/formality-public.js:1393
msgid ""
"This value length is invalid. It should be between %s and %s characters long"
msgstr ""
"La tua risposta dovrebbe avere una lunghezza compresa tra %s e %s caratteri"
-#: dist/scripts/formality-public.js:1315 dist/scripts/formality-public.js:1325
+#: dist/scripts/formality-public.js:1365 dist/scripts/formality-public.js:1375
msgid "This value seems to be invalid"
msgstr "Questo campo non è valido"
-#: dist/scripts/formality-public.js:1317
+#: dist/scripts/formality-public.js:1367
msgid "This value should be a valid email"
msgstr "Questo campo deve contenere una email valida"
-#: dist/scripts/formality-public.js:1320
+#: dist/scripts/formality-public.js:1370
msgid "This value should be a valid integer"
msgstr "Questo campo deve contenere un numero intero"
-#: dist/scripts/formality-public.js:1319
+#: dist/scripts/formality-public.js:1369
msgid "This value should be a valid number"
msgstr "Questo campo deve contenere un numero valido"
-#: dist/scripts/formality-public.js:1318
+#: dist/scripts/formality-public.js:1368
msgid "This value should be a valid url"
msgstr "Questo campo deve contenere un url valido"
-#: dist/scripts/formality-public.js:1322
+#: dist/scripts/formality-public.js:1372
msgid "This value should be alphanumeric"
msgstr "Questo campo deve contenere solo lettere"
#. translators: validation
-#: dist/scripts/formality-public.js:1334
+#: dist/scripts/formality-public.js:1384
msgid "This value should be between %s and %s"
msgstr "Questo valore dovrebbe essere compreso tra %s e %s"
-#: dist/scripts/formality-public.js:1321
+#: dist/scripts/formality-public.js:1371
msgid "This value should be digits"
msgstr "Questo campo deve contenere solo numeri"
#. translators: validation
-#: dist/scripts/formality-public.js:1328
+#: dist/scripts/formality-public.js:1378
msgid "This value should be greater than or equal to %s"
msgstr "Questo valore dovrebbe essere maggiore o uguale di %s"
#. translators: validation
-#: dist/scripts/formality-public.js:1331
+#: dist/scripts/formality-public.js:1381
msgid "This value should be lower than or equal to %s"
msgstr "Questo valore dovrebbe essere minore o uguale di %s"
@@ -1425,7 +1429,7 @@ msgstr ""
"Per iniziare ad utilizzarli, devi prima scaricare queste immagini dai server "
"di Unsplash."
-#: public/class-formality-fields.php:90 dist/scripts/formality-editor.js:294
+#: public/class-formality-fields.php:86 dist/scripts/formality-editor.js:294
#: dist/scripts/formality-editor.js:297 dist/scripts/formality-editor.js:980
#: dist/scripts/formality-editor.js:983 dist/scripts/formality-editor.js:1809
#: dist/scripts/formality-editor.js:1812 dist/scripts/formality-editor.js:1976
@@ -1456,7 +1460,7 @@ msgstr "Carica immagine logo"
msgid "Value"
msgstr "Valore"
-#: public/templates/notification.php:38
+#: public/templates/formality-notification.php:38
msgid "View all results"
msgstr "Vedi tutti i risultati"
@@ -1464,7 +1468,7 @@ msgstr "Vedi tutti i risultati"
msgid "View Form"
msgstr "Visualizza form"
-#: admin/class-formality-admin.php:173
+#: admin/class-formality-admin.php:175
msgid "View or export your results"
msgstr "Visualizza o esporta i risultati"
@@ -1472,7 +1476,7 @@ msgstr "Visualizza o esporta i risultati"
msgid "View Result"
msgstr "Visualizza risultato"
-#: public/templates/notification.php:35
+#: public/templates/formality-notification.php:35
msgid "View this result"
msgstr "Apri il risultato"
@@ -1489,7 +1493,7 @@ msgstr ""
"Abbiamo preparato %s templates, realizzati con una selezione delle migliori "
"foto Unsplash."
-#: admin/class-formality-admin.php:146
+#: admin/class-formality-admin.php:148
msgid "Welcome to Formality!"
msgstr "Benvenuto su Formality!"
@@ -1520,7 +1524,7 @@ msgid "You don't have permission to export these results"
msgstr "Non hai i permessi necessari per esportare questi risultati"
#. translators: validation
-#: dist/scripts/formality-public.js:1346
+#: dist/scripts/formality-public.js:1396
msgid "You must select between %s and %s choices"
msgstr "Dovresti scegliere tra le scelte %s e %s"
@@ -1534,11 +1538,11 @@ msgstr ""
"tutte le informazioni ricevute rimarranno confidenziali, e verrai "
"ricontattato al più presto. "
-#: admin/class-formality-admin.php:182
+#: admin/class-formality-admin.php:184
msgid "Your email address"
msgstr "Il tuo indirizzo email"
-#: dist/scripts/formality-public.js:1749
+#: dist/scripts/formality-public.js:1799
msgid "Your file exceeds the size limit"
msgstr "Il tuo file è troppo pesante"
diff --git a/languages/formality.pot b/languages/formality.pot
index 464c8a0..10efce8 100644
--- a/languages/formality.pot
+++ b/languages/formality.pot
@@ -2,14 +2,14 @@
# This file is distributed under the same license as the Formality plugin.
msgid ""
msgstr ""
-"Project-Id-Version: Formality 1.4\n"
+"Project-Id-Version: Formality 1.4.1\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formality\n"
"Last-Translator: Formality \n"
"Language-Team: Formality >\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2021-09-04T17:14:11+00:00\n"
+"POT-Creation-Date: 2021-09-27T06:52:23+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.4.0\n"
"X-Domain: formality\n"
@@ -74,102 +74,106 @@ msgstr ""
msgid "Results for %s"
msgstr ""
-#: admin/class-formality-admin.php:142
+#: admin/class-formality-admin.php:130
+msgid "There is a new version of Formality available"
+msgstr ""
+
#: admin/class-formality-admin.php:144
+#: admin/class-formality-admin.php:146
msgid "Hide panel"
msgstr ""
-#: admin/class-formality-admin.php:142
+#: admin/class-formality-admin.php:144
msgid "Show panel"
msgstr ""
-#: admin/class-formality-admin.php:146
+#: admin/class-formality-admin.php:148
msgid "Welcome to Formality!"
msgstr ""
-#: admin/class-formality-admin.php:147
+#: admin/class-formality-admin.php:149
msgid "Everything is ready to start building your forms:"
msgstr ""
-#: admin/class-formality-admin.php:150
+#: admin/class-formality-admin.php:152
msgid "Get Started"
msgstr ""
-#: admin/class-formality-admin.php:153
+#: admin/class-formality-admin.php:155
msgid "Add new form"
msgstr ""
-#: admin/class-formality-admin.php:153
+#: admin/class-formality-admin.php:155
msgid "Create your first form"
msgstr ""
#. translators: %s: generate sample forms link
-#: admin/class-formality-admin.php:155
+#: admin/class-formality-admin.php:157
msgid "or generate a couple of sample forms to practice with"
msgstr ""
#. translators: %s: import form link
-#: admin/class-formality-admin.php:156
+#: admin/class-formality-admin.php:158
msgid "or import your forms with the WordPress import tool"
msgstr ""
-#: admin/class-formality-admin.php:160
+#: admin/class-formality-admin.php:162
msgid "Our sample forms are made with a selection of the best Unsplash photos. To start using them, you first have to download these photos from Unsplash servers. Click the button below to start the sample forms generation, and the images download process in the background."
msgstr ""
-#: admin/class-formality-admin.php:161
+#: admin/class-formality-admin.php:163
msgid "Generate sample forms and download background images"
msgstr ""
-#: admin/class-formality-admin.php:163
+#: admin/class-formality-admin.php:165
#: dist/scripts/formality-editor.js:4688
msgid "Terms and conditions"
msgstr ""
-#: admin/class-formality-admin.php:164
+#: admin/class-formality-admin.php:166
#: dist/scripts/formality-editor.js:4692
msgid "License"
msgstr ""
-#: admin/class-formality-admin.php:170
+#: admin/class-formality-admin.php:172
msgid "Quick links"
msgstr ""
-#: admin/class-formality-admin.php:172
+#: admin/class-formality-admin.php:174
msgid "Manage your forms"
msgstr ""
-#: admin/class-formality-admin.php:173
+#: admin/class-formality-admin.php:175
msgid "View or export your results"
msgstr ""
-#: admin/class-formality-admin.php:174
+#: admin/class-formality-admin.php:176
msgid "Request support or report a bug"
msgstr ""
-#: admin/class-formality-admin.php:175
+#: admin/class-formality-admin.php:177
msgid "Learn more about Formality"
msgstr ""
-#: admin/class-formality-admin.php:179
+#: admin/class-formality-admin.php:181
msgid "Support us"
msgstr ""
#. translators: %s: donate link + 5 stars review link
-#: admin/class-formality-admin.php:180
+#: admin/class-formality-admin.php:182
msgid "If you enjoy using Formality, please consider making a donation, or rate this plugin with a 5 stars review on the WordPress plugin directory. You can also subscribe to our newsletter (max once a month)."
msgstr ""
-#: admin/class-formality-admin.php:182
+#: admin/class-formality-admin.php:184
msgid "Your email address"
msgstr ""
-#: admin/class-formality-admin.php:183
+#: admin/class-formality-admin.php:185
msgid "Subscribe"
msgstr ""
#. translators: %s: privacy policy link
-#: admin/class-formality-admin.php:184
+#: admin/class-formality-admin.php:186
msgid "Accept our privacy policy."
msgstr ""
@@ -189,7 +193,7 @@ msgid "Layout elements"
msgstr ""
#: admin/class-formality-notifications.php:27
-#: public/templates/notification.php:30
+#: public/templates/formality-notification.php:30
msgid "New result for"
msgstr ""
@@ -551,7 +555,7 @@ msgstr ""
msgid "No results found in Trash."
msgstr ""
-#: public/class-formality-fields.php:80
+#: public/class-formality-fields.php:76
#: dist/scripts/formality-editor.js:785
#: dist/scripts/formality-editor.js:1396
#: dist/scripts/formality-editor.js:1401
@@ -559,18 +563,18 @@ msgstr ""
msgid "Select your choice"
msgstr ""
-#: public/class-formality-fields.php:86
+#: public/class-formality-fields.php:82
#: dist/scripts/formality-editor.js:1669
msgid "Click to confirm"
msgstr ""
-#: public/class-formality-fields.php:88
+#: public/class-formality-fields.php:84
#: dist/scripts/formality-editor.js:2183
#: dist/scripts/formality-editor.js:2185
msgid "Choose file or drag here"
msgstr ""
-#: public/class-formality-fields.php:90
+#: public/class-formality-fields.php:86
#: dist/scripts/formality-editor.js:294
#: dist/scripts/formality-editor.js:297
#: dist/scripts/formality-editor.js:980
@@ -583,19 +587,19 @@ msgstr ""
msgid "Type your answer here"
msgstr ""
-#: public/class-formality-fields.php:378
+#: public/class-formality-fields.php:374
#: dist/scripts/formality-editor.js:2139
#: dist/scripts/formality-editor.js:2183
msgid "Size limit"
msgstr ""
-#: public/class-formality-fields.php:379
+#: public/class-formality-fields.php:375
#: dist/scripts/formality-editor.js:2143
#: dist/scripts/formality-editor.js:2183
msgid "Allowed types"
msgstr ""
-#: public/class-formality-fields.php:379
+#: public/class-formality-fields.php:375
#: dist/scripts/formality-editor.js:3443
#: dist/scripts/formality-editor.js:3464
msgid "None"
@@ -650,23 +654,23 @@ msgstr ""
msgid "There is no data to save"
msgstr ""
-#: public/templates/notification.php:35
+#: public/templates/formality-notification.php:35
msgid "View this result"
msgstr ""
-#: public/templates/notification.php:36
+#: public/templates/formality-notification.php:36
msgid "in your admin dashboard"
msgstr ""
-#: public/templates/notification.php:38
+#: public/templates/formality-notification.php:38
msgid "View all results"
msgstr ""
-#: public/templates/notification.php:39
+#: public/templates/formality-notification.php:39
msgid "for"
msgstr ""
-#: public/templates/notification.php:41
+#: public/templates/formality-notification.php:41
msgid "Made with"
msgstr ""
@@ -1353,130 +1357,130 @@ msgstr ""
msgid "Templates"
msgstr ""
-#: dist/scripts/formality-public.js:539
+#: dist/scripts/formality-public.js:589
msgid "Show more hints"
msgstr ""
-#: dist/scripts/formality-public.js:539
+#: dist/scripts/formality-public.js:589
msgid "Show less hints"
msgstr ""
-#: dist/scripts/formality-public.js:567
+#: dist/scripts/formality-public.js:617
msgid "Press enter or tab to proceed to next field"
msgstr ""
-#: dist/scripts/formality-public.js:571
+#: dist/scripts/formality-public.js:621
msgid "Press tab to proceed to next field"
msgstr ""
-#: dist/scripts/formality-public.js:575
+#: dist/scripts/formality-public.js:625
msgid "Press backspace to reset this field and return to previous field"
msgstr ""
-#: dist/scripts/formality-public.js:579
+#: dist/scripts/formality-public.js:629
msgid "Press up or down arrows to choose your option"
msgstr ""
-#: dist/scripts/formality-public.js:583
+#: dist/scripts/formality-public.js:633
msgid "Press left or right arrows to choose your option"
msgstr ""
-#: dist/scripts/formality-public.js:587
+#: dist/scripts/formality-public.js:637
msgid "Press up and down arrows to increment or decrement your value"
msgstr ""
-#: dist/scripts/formality-public.js:591
+#: dist/scripts/formality-public.js:641
msgid "Press enter to confirm your option and proceed to next field"
msgstr ""
-#: dist/scripts/formality-public.js:595
+#: dist/scripts/formality-public.js:645
msgid "Press space to confirm your option"
msgstr ""
-#: dist/scripts/formality-public.js:599
+#: dist/scripts/formality-public.js:649
msgid "Press space to select your file"
msgstr ""
-#: dist/scripts/formality-public.js:1315
-#: dist/scripts/formality-public.js:1325
+#: dist/scripts/formality-public.js:1365
+#: dist/scripts/formality-public.js:1375
msgid "This value seems to be invalid"
msgstr ""
-#: dist/scripts/formality-public.js:1317
+#: dist/scripts/formality-public.js:1367
msgid "This value should be a valid email"
msgstr ""
-#: dist/scripts/formality-public.js:1318
+#: dist/scripts/formality-public.js:1368
msgid "This value should be a valid url"
msgstr ""
-#: dist/scripts/formality-public.js:1319
+#: dist/scripts/formality-public.js:1369
msgid "This value should be a valid number"
msgstr ""
-#: dist/scripts/formality-public.js:1320
+#: dist/scripts/formality-public.js:1370
msgid "This value should be a valid integer"
msgstr ""
-#: dist/scripts/formality-public.js:1321
+#: dist/scripts/formality-public.js:1371
msgid "This value should be digits"
msgstr ""
-#: dist/scripts/formality-public.js:1322
+#: dist/scripts/formality-public.js:1372
msgid "This value should be alphanumeric"
msgstr ""
-#: dist/scripts/formality-public.js:1324
+#: dist/scripts/formality-public.js:1374
msgid "This value is required"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1328
+#: dist/scripts/formality-public.js:1378
msgid "This value should be greater than or equal to %s"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1331
+#: dist/scripts/formality-public.js:1381
msgid "This value should be lower than or equal to %s"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1334
+#: dist/scripts/formality-public.js:1384
msgid "This value should be between %s and %s"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1337
+#: dist/scripts/formality-public.js:1387
msgid "This value is too short. It should have %s characters or more"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1340
+#: dist/scripts/formality-public.js:1390
msgid "This value is too long. It should have %s characters or fewer"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1343
+#: dist/scripts/formality-public.js:1393
msgid "This value length is invalid. It should be between %s and %s characters long"
msgstr ""
#. translators: validation
-#: dist/scripts/formality-public.js:1346
+#: dist/scripts/formality-public.js:1396
msgid "You must select between %s and %s choices"
msgstr ""
-#: dist/scripts/formality-public.js:1745
+#: dist/scripts/formality-public.js:1795
msgid "File extension is not allowed"
msgstr ""
-#: dist/scripts/formality-public.js:1749
+#: dist/scripts/formality-public.js:1799
msgid "Your file exceeds the size limit"
msgstr ""
-#: dist/scripts/formality-public.js:1754
+#: dist/scripts/formality-public.js:1804
msgid "Checking file"
msgstr ""
-#: dist/scripts/formality-public.js:1754
+#: dist/scripts/formality-public.js:1804
msgid "Please wait"
msgstr ""
diff --git a/package.json b/package.json
index c50a536..dff62d2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "Formality",
- "version": "1.4.0",
+ "version": "1.4.1",
"author": "Michele Giorgi ",
"homepage": "https://giorgi.io",
"private": true,
diff --git a/public/class-formality-fields.php b/public/class-formality-fields.php
index d21ab60..eda8df2 100755
--- a/public/class-formality-fields.php
+++ b/public/class-formality-fields.php
@@ -46,11 +46,7 @@ public function field($type, $options, $form_type, $index) {
} else if($index==1) {
$wrap = '