diff --git a/modules/blocks-v2/phone-field/assets/build/editor/index.asset.php b/modules/blocks-v2/phone-field/assets/build/editor/index.asset.php
index b097eacab..3f254e2fb 100644
--- a/modules/blocks-v2/phone-field/assets/build/editor/index.asset.php
+++ b/modules/blocks-v2/phone-field/assets/build/editor/index.asset.php
@@ -1 +1 @@
- array('react', 'wp-block-editor', 'wp-components', 'wp-hooks', 'wp-i18n'), 'version' => '0491df37b6a1e537a25f');
+ array('react', 'wp-block-editor', 'wp-components', 'wp-hooks', 'wp-i18n'), 'version' => 'fdda3cb08621f4cb8256');
diff --git a/modules/blocks-v2/phone-field/assets/build/editor/index.js b/modules/blocks-v2/phone-field/assets/build/editor/index.js
index f79096029..0366dd04a 100644
--- a/modules/blocks-v2/phone-field/assets/build/editor/index.js
+++ b/modules/blocks-v2/phone-field/assets/build/editor/index.js
@@ -1 +1 @@
-(()=>{"use strict";var e={d:(t,l)=>{for(var r in l)e.o(l,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:l[r]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var l=e.g.document;if(!t&&l&&(l.currentScript&&"SCRIPT"===l.currentScript.tagName.toUpperCase()&&(t=l.currentScript.src),!t)){var r=l.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&(!t||!/^http(s?):/.test(t));)t=r[a--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"})();var t={};e.r(t),e.d(t,{metadata:()=>b,name:()=>g,settings:()=>C});const l=window.React,r=window.wp.i18n,a=window.wp.components,n=window.wp.blockEditor,o=e.p+"images/globe@2x.webp";function i({separateDialCode:e=!0,separateDialCodeClass:t="separate-dial-code",dialCode:a="+1",placeholder:n="201-231-2312",value:o="",globeIcon:i}){return(0,l.createElement)("div",null,(0,l.createElement)("div",{className:`jet-form-builder__field-wrap phone-field-wrap phone-field-preview ${e?t:""}`},(0,l.createElement)("div",{className:"iti iti--allow-dropdown iti--show-flags iti--inline-dropdown"},(0,l.createElement)("div",{className:"iti__country-container","aria-hidden":"true"},(0,l.createElement)("div",{className:"iti__selected-country"},(0,l.createElement)("div",{className:"iti__selected-country-primary"},(0,l.createElement)("div",{className:"iti__flag iti__globe",style:{backgroundImage:i?`url(${i})`:"none"}}),(0,l.createElement)("div",{className:"iti__arrow"})),e&&(0,l.createElement)("div",{className:"iti__selected-dial-code"},a))),(0,l.createElement)("input",{type:"tel",className:"jet-form-builder__field phone-field-intl iti__tel-input",disabled:!0,readOnly:!0,value:o,placeholder:n.length>0?n:"201-231-2312",onChange:()=>{},"aria-label":(0,r.__)("Phone number","jet-form-builder")}))))}const{ToolBarFields:d,BlockName:s,BlockLabel:u,BlockDescription:c,AdvancedFields:m,FieldWrapper:p,BlockAdvancedValue:f}=JetFBComponents,{useUniqueNameOnDuplicate:_}=JetFBHooks,b=JSON.parse('{"$schema":"https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/block.json","apiVersion":3,"name":"jet-forms/phone-field","category":"jet-form-builder-fields","keywords":["jetformbuilder","field","phone","international","telephone"],"textdomain":"jet-form-builder","supports":{"customClassName":false,"html":false,"jetFBSanitizeValue":true},"title":"Phone Field","icon":"","attributes":{"label":{"type":"string","default":"","jfb":{"rich":true}},"name":{"type":"string","default":"field_name"},"desc":{"type":"string","default":"","jfb":{"rich":true}},"default":{"type":"string","default":"","jfb":{"rich-no-preset":true}},"value":{"type":"object","default":{"groups":[]}},"required":{"type":"boolean","default":false},"visibility":{"type":"string","default":""},"class_name":{"type":"string","default":""},"className":{"type":"string","default":""},"default_country":{"type":"string","default":"auto"},"preferred_countries":{"type":"string","default":""},"only_countries":{"type":"string","default":""},"exclude_countries":{"type":"string","default":""},"separate_dial_code":{"type":"boolean","default":false},"save_format":{"type":"string","default":"e164","enum":["e164","national","international"]},"ipinfo_token":{"type":"string","default":""},"use_global":{"type":"boolean","default":false},"isPreview":{"type":"boolean","default":false},"validation_message_required":{"type":"string","default":"Required field is empty"},"validation_message_invalid":{"type":"string","default":"Please enter a valid phone number"}},"usesContext":["jet-forms/repeater-field--name","jet-forms/repeater-row--default","jet-forms/repeater-row--current-index"],"viewScript":"jet-fb-blocks-v2-phone-field","viewStyle":"jet-fb-blocks-v2-phone-field"}'),{name:g,icon:h=""}=b,C={icon:(0,l.createElement)("span",{dangerouslySetInnerHTML:{__html:h}}),description:"Add an international phone number input field with country flags, dial codes, and validation.",edit:function(e){const{attributes:t,setAttributes:b,isSelected:g,editProps:{uniqKey:h,attrHelp:C}}=e,y=(0,n.useBlockProps)();return _(),[(0,l.createElement)(d,{key:h("ToolBarFields"),...e}),g&&(0,l.createElement)(n.InspectorControls,{key:h("InspectorControls")},(0,l.createElement)(a.PanelBody,{title:(0,r.__)("General","jet-form-builder")},(0,l.createElement)(u,null),(0,l.createElement)(s,null),(0,l.createElement)(c,null)),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Value","jet-form-builder")},(0,l.createElement)(f,null)),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Field","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.TextControl,{label:(0,r.__)("Default Country","jet-form-builder"),value:t.default_country,onChange:e=>b({default_country:e}),help:(0,r.__)('ISO country code (e.g., "US", "UA") or "auto" for IP detection.',"jet-form-builder")}),(0,l.createElement)(a.BaseControl,{label:(0,r.__)("Preferred Countries","jet-form-builder"),help:(0,r.__)('Comma-separated country codes (e.g., "US, GB, UA").',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.preferred_countries,onChange:e=>{b({preferred_countries:e})},placeholder:"US, GB, UA"})),(0,l.createElement)(a.BaseControl,{label:(0,r.__)("Only Countries","jet-form-builder"),help:(0,r.__)('Show only these countries (e.g., "US, CA, MX").',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.only_countries,onChange:e=>{b({only_countries:e})},placeholder:"US, CA, MX"})),t.only_countries.length<=0&&(0,l.createElement)(a.BaseControl,{label:(0,r.__)("Exclude Countries","jet-form-builder"),help:(0,r.__)('Exclude these countries (e.g., "US, BY")',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.exclude_countries,onChange:e=>{b({exclude_countries:e})},placeholder:"US, BY"})),(0,l.createElement)(a.ToggleControl,{label:(0,r.__)("Separate Dial Code","jet-form-builder"),checked:t.separate_dial_code,onChange:()=>b({separate_dial_code:!t.separate_dial_code}),help:(0,r.__)("Display the selected country's international dial code next to the input, so it looks like it's part of the typed number.","jet-form-builder")}),(0,l.createElement)(a.SelectControl,{label:(0,r.__)("Save Format","jet-form-builder"),value:t.save_format,options:[{label:(0,r.__)("E.164","jet-form-builder"),value:"e164"},{label:(0,r.__)("International","jet-form-builder"),value:"international"}],onChange:e=>b({save_format:e}),help:(0,r.__)("Save format: E.164 (+12015553333) or International (+1 201-555-3333).","jet-form-builder")})),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Additional Settings","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.ToggleControl,{label:(0,r.__)("Use Global ipinfo.io Token","jet-form-builder"),checked:t.use_global,onChange:()=>b({use_global:!t.use_global}),help:(0,l.createElement)(l.Fragment,null,(0,r.__)("Use","jet-form-builder")+" ",(0,l.createElement)("a",{href:window.JetFormEditorData?.global_settings_url+"#phone-field-tab",target:"_blank",rel:"noopener noreferrer"},(0,r.__)("Global Settings","jet-form-builder")))}),!t.use_global&&(0,l.createElement)(a.TextControl,{label:(0,r.__)("ipinfo.io API Token","jet-form-builder"),value:t.ipinfo_token,onChange:e=>b({ipinfo_token:e}),help:(0,r.__)("Optional: API token for IP-based country detection (50k free requests/month)","jet-form-builder")})),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Validation Messages","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.TextControl,{label:(0,r.__)("Required Field Message","jet-form-builder"),value:t.validation_message_required,onChange:e=>b({validation_message_required:e}),placeholder:(0,r.__)("Required field is empty","jet-form-builder")}),(0,l.createElement)(a.TextControl,{label:(0,r.__)("Invalid Phone Message","jet-form-builder"),value:t.validation_message_invalid,onChange:e=>b({validation_message_invalid:e}),placeholder:(0,r.__)("Please enter a valid phone number","jet-form-builder")})),(0,l.createElement)(m,{...e})),(0,l.createElement)("div",{...y,key:h("viewBlock")},(0,l.createElement)(p,{key:h("FieldWrapper"),...e},(0,l.createElement)(i,{separateDialCode:t.separate_dial_code,globeIcon:o,placeholder:t.default})))]},jfbResolveBlock(){const e={clientId:this.clientId,name:this.name};return this.attributes.name?{...e,fields:[{value:this.attributes.name,name:this.attributes.name,label:this.attributes.label||this.attributes.name}]}:e},useEditProps:["uniqKey","attrHelp"],example:{attributes:{isPreview:!0}}};(0,window.wp.hooks.addFilter)("jet.fb.register.fields","jet-form-builder/phone-field",function(e){return e.push(t),e})})();
\ No newline at end of file
+(()=>{"use strict";var e={d:(t,l)=>{for(var r in l)e.o(l,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:l[r]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var l=e.g.document;if(!t&&l&&(l.currentScript&&"SCRIPT"===l.currentScript.tagName.toUpperCase()&&(t=l.currentScript.src),!t)){var r=l.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&(!t||!/^http(s?):/.test(t));)t=r[a--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"})();var t={};e.r(t),e.d(t,{metadata:()=>b,name:()=>g,settings:()=>h});const l=window.React,r=window.wp.i18n,a=window.wp.components,n=window.wp.blockEditor,o=e.p+"images/globe@2x.webp";function i({separateDialCode:e=!0,separateDialCodeClass:t="separate-dial-code",dialCode:a="+1",placeholder:n="201-231-2312",value:o="",globeIcon:i}){return(0,l.createElement)("div",null,(0,l.createElement)("div",{className:`jet-form-builder__field-wrap phone-field-wrap phone-field-preview ${e?t:""}`},(0,l.createElement)("div",{className:"iti iti--allow-dropdown iti--show-flags iti--inline-dropdown"},(0,l.createElement)("div",{className:"iti__country-container","aria-hidden":"true"},(0,l.createElement)("div",{className:"iti__selected-country"},(0,l.createElement)("div",{className:"iti__selected-country-primary"},(0,l.createElement)("div",{className:"iti__flag iti__globe",style:{backgroundImage:i?`url(${i})`:"none"}}),(0,l.createElement)("div",{className:"iti__arrow"})),e&&(0,l.createElement)("div",{className:"iti__selected-dial-code"},a))),(0,l.createElement)("input",{type:"tel",className:"jet-form-builder__field phone-field-intl iti__tel-input",disabled:!0,readOnly:!0,value:o,placeholder:n.length>0?n:"201-231-2312",onChange:()=>{},"aria-label":(0,r.__)("Phone number","jet-form-builder")}))))}const{ToolBarFields:d,BlockName:s,BlockLabel:u,BlockDescription:c,AdvancedFields:p,FieldWrapper:m,BlockAdvancedValue:f}=JetFBComponents,{useUniqueNameOnDuplicate:_}=JetFBHooks,b=JSON.parse('{"$schema":"https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/block.json","apiVersion":3,"name":"jet-forms/phone-field","category":"jet-form-builder-fields","keywords":["jetformbuilder","field","phone","international","telephone"],"textdomain":"jet-form-builder","supports":{"customClassName":false,"html":false,"jetFBSanitizeValue":true},"title":"Phone Field","icon":"","attributes":{"label":{"type":"string","default":"","jfb":{"rich":true}},"name":{"type":"string","default":"field_name"},"desc":{"type":"string","default":"","jfb":{"rich":true}},"default":{"type":"string","default":"","jfb":{"rich-no-preset":true}},"value":{"type":"object","default":{"groups":[]}},"required":{"type":"boolean","default":false},"visibility":{"type":"string","default":""},"class_name":{"type":"string","default":""},"className":{"type":"string","default":""},"default_country":{"type":"string","default":"auto"},"preferred_countries":{"type":"string","default":""},"only_countries":{"type":"string","default":""},"exclude_countries":{"type":"string","default":""},"separate_dial_code":{"type":"boolean","default":false},"save_format":{"type":"string","default":"e164","enum":["e164","national","international"]},"ipinfo_token":{"type":"string","default":""},"use_global":{"type":"boolean","default":false},"isPreview":{"type":"boolean","default":false},"validation_message_required":{"type":"string","default":"Required field is empty"},"validation_message_invalid":{"type":"string","default":"Please enter a valid phone number"}},"usesContext":["jet-forms/repeater-field--name","jet-forms/repeater-row--default","jet-forms/repeater-row--current-index"],"viewScript":"jet-fb-blocks-v2-phone-field","viewStyle":"jet-fb-blocks-v2-phone-field"}'),{name:g,icon:C=""}=b,h={icon:(0,l.createElement)("span",{dangerouslySetInnerHTML:{__html:C}}),description:"Add an international phone number input field with country flags, dial codes, and validation.",edit:function(e){const{attributes:t,setAttributes:b,isSelected:g,editProps:{uniqKey:C,attrHelp:h}}=e,y=(0,n.useBlockProps)();return _(),[(0,l.createElement)(d,{key:C("ToolBarFields"),...e}),g&&(0,l.createElement)(n.InspectorControls,{key:C("InspectorControls")},(0,l.createElement)(a.PanelBody,{title:(0,r.__)("General","jet-form-builder")},(0,l.createElement)(u,null),(0,l.createElement)(s,null),(0,l.createElement)(c,null)),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Value","jet-form-builder")},(0,l.createElement)(f,null)),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Field","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.TextControl,{label:(0,r.__)("Default Country","jet-form-builder"),value:t.default_country,onChange:e=>b({default_country:e}),help:(0,r.__)('ISO country code (e.g., "US", "UA") or "auto" for IP detection.',"jet-form-builder")}),(0,l.createElement)(a.BaseControl,{id:C("preferredCountries"),label:(0,r.__)("Preferred Countries","jet-form-builder"),help:(0,r.__)('Comma-separated country codes (e.g., "US, GB, UA").',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.preferred_countries,onChange:e=>{b({preferred_countries:e})},placeholder:"US, GB, UA"})),(0,l.createElement)(a.BaseControl,{id:C("onlyCountries"),label:(0,r.__)("Only Countries","jet-form-builder"),help:(0,r.__)('Show only these countries (e.g., "US, CA, MX").',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.only_countries,onChange:e=>{b({only_countries:e})},placeholder:"US, CA, MX"})),t.only_countries.length<=0&&(0,l.createElement)(a.BaseControl,{id:C("excludeCountries"),label:(0,r.__)("Exclude Countries","jet-form-builder"),help:(0,r.__)('Exclude these countries (e.g., "US, BY")',"jet-form-builder")},(0,l.createElement)(a.TextControl,{value:t.exclude_countries,onChange:e=>{b({exclude_countries:e})},placeholder:"US, BY"})),(0,l.createElement)(a.ToggleControl,{label:(0,r.__)("Separate Dial Code","jet-form-builder"),checked:t.separate_dial_code,onChange:()=>b({separate_dial_code:!t.separate_dial_code}),help:(0,r.__)("Display the selected country's international dial code next to the input, so it looks like it's part of the typed number.","jet-form-builder")}),(0,l.createElement)(a.SelectControl,{label:(0,r.__)("Save Format","jet-form-builder"),value:t.save_format,options:[{label:(0,r.__)("E.164","jet-form-builder"),value:"e164"},{label:(0,r.__)("International","jet-form-builder"),value:"international"}],onChange:e=>b({save_format:e}),help:(0,r.__)("Save format: E.164 (+12015553333) or International (+1 201-555-3333).","jet-form-builder")})),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Additional Settings","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.ToggleControl,{label:(0,r.__)("Use Global ipinfo.io Token","jet-form-builder"),checked:t.use_global,onChange:()=>b({use_global:!t.use_global}),help:(0,l.createElement)(l.Fragment,null,(0,r.__)("Use","jet-form-builder")+" ",(0,l.createElement)("a",{href:window.JetFormEditorData?.global_settings_url+"#phone-field-tab",target:"_blank",rel:"noopener noreferrer"},(0,r.__)("Global Settings","jet-form-builder")))}),!t.use_global&&(0,l.createElement)(a.TextControl,{label:(0,r.__)("ipinfo.io API Token","jet-form-builder"),value:t.ipinfo_token,onChange:e=>b({ipinfo_token:e}),help:(0,r.__)("Optional: API token for IP-based country detection (50k free requests/month)","jet-form-builder")})),(0,l.createElement)(a.PanelBody,{title:(0,r.__)("Validation Messages","jet-form-builder"),initialOpen:!1},(0,l.createElement)(a.TextControl,{label:(0,r.__)("Required Field Message","jet-form-builder"),value:t.validation_message_required,onChange:e=>b({validation_message_required:e}),placeholder:(0,r.__)("Required field is empty","jet-form-builder")}),(0,l.createElement)(a.TextControl,{label:(0,r.__)("Invalid Phone Message","jet-form-builder"),value:t.validation_message_invalid,onChange:e=>b({validation_message_invalid:e}),placeholder:(0,r.__)("Please enter a valid phone number","jet-form-builder")})),(0,l.createElement)(p,{...e})),(0,l.createElement)("div",{...y,key:C("viewBlock")},(0,l.createElement)(m,{key:C("FieldWrapper"),...e},(0,l.createElement)(i,{separateDialCode:t.separate_dial_code,globeIcon:o,placeholder:t.default})))]},jfbResolveBlock(){const e={clientId:this.clientId,name:this.name};return this.attributes.name?{...e,fields:[{value:this.attributes.name,name:this.attributes.name,label:this.attributes.label||this.attributes.name}]}:e},useEditProps:["uniqKey","attrHelp"],example:{attributes:{isPreview:!0}}};(0,window.wp.hooks.addFilter)("jet.fb.register.fields","jet-form-builder/phone-field",function(e){return e.push(t),e})})();
\ No newline at end of file
diff --git a/modules/blocks-v2/phone-field/assets/build/frontend/field.asset.php b/modules/blocks-v2/phone-field/assets/build/frontend/field.asset.php
index 9764617bd..6f2fcd29c 100644
--- a/modules/blocks-v2/phone-field/assets/build/frontend/field.asset.php
+++ b/modules/blocks-v2/phone-field/assets/build/frontend/field.asset.php
@@ -1 +1 @@
- array(), 'version' => '92ba0e044099359e44a2');
+ array(), 'version' => 'a72ffadd3ce1e0830d2a');
diff --git a/modules/blocks-v2/phone-field/assets/build/frontend/field.js b/modules/blocks-v2/phone-field/assets/build/frontend/field.js
index 4a056ebf8..985823b21 100644
--- a/modules/blocks-v2/phone-field/assets/build/frontend/field.js
+++ b/modules/blocks-v2/phone-field/assets/build/frontend/field.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t={},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,i),o.exports}i.m=t,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((t,n)=>(i.f[n](e,t),t),[])),i.u=e=>87===e?"frontend/i18n/phone-i18n-uk.js":612===e?"frontend/i18n/phone-i18n-ru.js":874===e?"frontend/i18n/phone-i18n-de.js":847===e?"frontend/i18n/phone-i18n-fr.js":487===e?"frontend/i18n/phone-i18n-es.js":932===e?"frontend/i18n/phone-i18n-it.js":519===e?"frontend/i18n/phone-i18n-pl.js":791===e?"frontend/i18n/phone-i18n-pt.js":809===e?"frontend/i18n/phone-i18n-nl.js":680===e?"frontend/i18n/phone-i18n-ja.js":217===e?"frontend/i18n/phone-i18n-zh.js":489===e?"frontend/i18n/phone-i18n-ko.js":410===e?"frontend/i18n/phone-i18n-ar.js":949===e?"frontend/i18n/phone-i18n-tr.js":416===e?"frontend/i18n/phone-i18n-sv.js":886===e?"frontend/i18n/phone-i18n-da.js":372===e?"frontend/i18n/phone-i18n-fi.js":618===e?"frontend/i18n/phone-i18n-no.js":557===e?"frontend/i18n/phone-i18n-cs.js":974===e?"frontend/i18n/phone-i18n-hu.js":278===e?"frontend/i18n/phone-i18n-ro.js":590===e?"frontend/i18n/phone-i18n-bg.js":569===e?"frontend/i18n/phone-i18n-hr.js":653===e?"frontend/i18n/phone-i18n-sk.js":736===e?"frontend/i18n/phone-i18n-el.js":615===e?"frontend/i18n/phone-i18n-th.js":580===e?"frontend/i18n/phone-i18n-vi.js":788===e?"frontend/i18n/phone-i18n-id.js":354===e?"frontend/i18n/phone-i18n-hi.js":231===e?"frontend/i18n/phone-i18n-bn.js":302===e?"frontend/i18n/phone-i18n-ur.js":628===e?"frontend/i18n/phone-i18n-fa.js":982===e?"frontend/i18n/phone-i18n-mr.js":378===e?"frontend/i18n/phone-i18n-te.js":434===e?"frontend/i18n/phone-i18n-bs.js":319===e?"frontend/i18n/phone-i18n-ca.js":void 0,i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},i.l=(t,n,r,o)=>{if(e[t])e[t].push(n);else{var s,a;if(void 0!==r)for(var d=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(c);var r=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach(e=>e(i)),n)return n(i)},c=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),a&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e+"../"})(),(()=>{var e={750:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise((n,i)=>r=e[t]=[n,i]);n.push(r[2]=o);var s=i.p+i.u(t),a=new Error;i.l(s,n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+s+")",a.name="ChunkLoadError",a.type=o,a.request=s,r[1](a)}},"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[s,a,d]=n,l=0;if(s.some(t=>0!==e[t])){for(r in a)i.o(a,r)&&(i.m[r]=a[r]);d&&d(i)}for(t&&t(n);li.e(87).then(i.bind(i,171)),ru:()=>i.e(612).then(i.bind(i,628)),de:()=>i.e(874).then(i.bind(i,74)),fr:()=>i.e(847).then(i.bind(i,7)),es:()=>i.e(487).then(i.bind(i,763)),it:()=>i.e(932).then(i.bind(i,760)),pl:()=>i.e(519).then(i.bind(i,471)),pt:()=>i.e(791).then(i.bind(i,823)),nl:()=>i.e(809).then(i.bind(i,697)),ja:()=>i.e(680).then(i.bind(i,608)),zh:()=>i.e(217).then(i.bind(i,721)),ko:()=>i.e(489).then(i.bind(i,397)),ar:()=>i.e(410).then(i.bind(i,830)),tr:()=>i.e(949).then(i.bind(i,853)),sv:()=>i.e(416).then(i.bind(i,620)),da:()=>i.e(886).then(i.bind(i,862)),fi:()=>i.e(372).then(i.bind(i,844)),no:()=>i.e(618).then(i.bind(i,146)),cs:()=>i.e(557).then(i.bind(i,705)),hu:()=>i.e(974).then(i.bind(i,958)),ro:()=>i.e(278).then(i.bind(i,350)),bg:()=>i.e(590).then(i.bind(i,574)),hr:()=>i.e(569).then(i.bind(i,289)),sk:()=>i.e(653).then(i.bind(i,169)),el:()=>i.e(736).then(i.bind(i,644)),th:()=>i.e(615).then(i.bind(i,423)),vi:()=>i.e(580).then(i.bind(i,388)),id:()=>i.e(788).then(i.bind(i,80)),hi:()=>i.e(354).then(i.bind(i,602)),bn:()=>i.e(231).then(i.bind(i,655)),ur:()=>i.e(302).then(i.bind(i,730)),fa:()=>i.e(628).then(i.bind(i,428)),mr:()=>i.e(982).then(i.bind(i,922)),te:()=>i.e(378).then(i.bind(i,722)),bs:()=>i.e(434).then(i.bind(i,322)),ca:()=>i.e(319).then(i.bind(i,227))},s={};async function a(){const e=function(){let e="";const t=document.documentElement.lang;return t&&(e=t.includes("-")?t.replace("-","_"):t),!e&&void 0!==window.wp&&window.wp.i18n&&(e=window.wp.i18n.getLocaleData?.()?.locale||""),e||(e="en"),e}();return await async function(e){const t=r[e]||"en";if("en"===t)return{};if(s[t])return s[t];const n=o[t];if(!n)return{};try{const e=(await n()).default||{};return s[t]=e,e}catch(e){return console.error(`[PhoneField] Failed to load locale "${t}":`,e),{}}}(e)}const{InputData:d}=window.JetFormBuilderAbstract;function l(){d.call(this),this.itiInstance=null,this.isInitialized=!1,this.isSupported=function(e){return e.classList.contains("phone-field")},this.setNode=function(e){d.prototype.setNode.call(this,e),this.initIntlTelInput()},this.initIntlTelInput=async function(){const e=this.nodes[0];if(!e)return;if(this.isInitialized)return;const t=this.getWrapperNode().querySelector("input.phone-field-intl"),n=e.dataset.defaultCountry||"auto",i=this.parseCountryList(e.dataset.preferredCountries),r=this.parseCountryList(e.dataset.onlyCountries),o=this.parseCountryList(e.dataset.excludeCountries),s=e.dataset.separateDialCode||!1,a=e.dataset.ipinfoToken||"";let d=n;"auto"===d&&(d=this.detectCountryByIP(a)||this.detectCountryByLanguage()||"us");const l=await this.getLocalizedCountryNames(),u={initialCountry:d,separateDialCode:1==s,strictMode:!0,nationalMode:!0,formatAsYouType:!0,formatOnDisplay:!0,autoPlaceholder:"aggressive"};i.length&&(u.countryOrder=i),r.length&&(u.onlyCountries=r),o.length&&(u.excludeCountries=o),Object.keys(l).length&&(u.i18n=l),this.itiInstance=window.intlTelInput(t,u),this.itiInstance.setNumber(e.value),this.isInitialized=!0},this.normalizeIfInternational=function(e){const t=e.value.trim();t&&"+"===t[0]&&(this.itiInstance.setNumber(t),this.setValue())},this.parseCountryList=function(e){return e?e.split(",").map(e=>e.trim().toLowerCase()).filter(e=>e):[]},this.detectCountryByIP=function(e){const t=sessionStorage.getItem("jfb_detected_country");return t||(fetch(e?`https://api.ipinfo.io/lite/me?token=${e}`:"https://ipinfo.io/json").then(e=>e.json()).then(e=>{if(e.country){const t=e.country.toLowerCase();sessionStorage.setItem("jfb_detected_country",t),this.itiInstance&&this.itiInstance.setCountry(t)}}).catch(e=>{}),null)},this.detectCountryByLanguage=function(){const e=navigator.language||navigator.userLanguage;if(!e)return null;const t=e.split("-");return t.length>1?t[1].toLowerCase():{en:"us",ru:"ru",uk:"ua",de:"de",fr:"fr",es:"es",it:"it",pl:"pl",pt:"br",ja:"jp",ko:"kr",zh:"cn",ar:"sa",he:"il",hi:"in"}[t[0].toLowerCase()]||null},this.getLocalizedCountryNames=async function(){const e=void 0!==window.jfbPhoneFieldI18n?window.jfbPhoneFieldI18n:{};let t={};try{t=await a()}catch(e){}return{...t,...e}},this.addListeners=function(){d.prototype.addListeners.call(this);const e=this.nodes[0];if(!e)return;const t=this.getWrapperNode().querySelector("input.phone-field-intl");if(!t)return;const n=e.closest("form");n&&n.addEventListener("submit",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),this.validateAndShowError()},!0),t.addEventListener("countrychange",()=>{this.syncFromIntlInput(t,e),this.validateAndShowError()}),t.addEventListener("input",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),t.value.trim()&&this.clearError()}),t.addEventListener("change",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e)}),t.addEventListener("blur",()=>{setTimeout(()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),this.validateAndShowError()},0)})},this.syncFromIntlInput=function(e,t){if(!this.itiInstance)return;let n;n="international"===(t.dataset.saveFormat||"e164")?this.itiInstance.getNumber(window.intlTelInput.utils.numberFormat.INTERNATIONAL):this.itiInstance.getNumber(),t.value=n||"",this.calcValue=n||"",this.value.current=n||""},this.showError=function(e){const t=this.getWrapperNode();if(!t)return;this.clearError(),t.classList.add("field-has-error");const n=document.createElement("div");n.className="error-message jet-form-builder__error",n.textContent=e;const i=t.querySelector(".jet-form-builder-col__end");i?i.appendChild(n):t.appendChild(n);const r=t.querySelector("input.phone-field-intl");r&&(r.classList.add("invalid"),r.setAttribute("aria-invalid","true"))},this.clearError=function(){const e=this.getWrapperNode();if(!e)return;e.classList.remove("field-has-error");const t=e.querySelector(".error-message");t&&t.remove();const n=e.querySelector("input.phone-field-intl");n&&(n.classList.remove("invalid"),n.removeAttribute("aria-invalid"))},this.getValidationMessage=function(e){const t=this.nodes[0];return"required"===e&&t.dataset.validationMessageRequired?t.dataset.validationMessageRequired:"invalid"===e&&t.dataset.validationMessageInvalid?t.dataset.validationMessageInvalid:"required"===e?"This field is required":"Please enter a valid phone number"},this.validateAndShowError=function(){const e=this.getWrapperNode(),t=e?.querySelector("input.phone-field-intl"),n=this.nodes[0];if(!t)return!0;const i=t.value.trim();return n.hasAttribute("required")&&!i?(this.showError(this.getValidationMessage("required")),!1):i&&this.itiInstance&&!this.itiInstance.isValidNumber()?(this.showError(this.getValidationMessage("invalid")),!1):(this.clearError(),!0)},this.getReportingNode=function(){const e=this.getWrapperNode(),t=e?.querySelector("input.phone-field-intl");return t||this.nodes[0]},this.getWrapperNode=function(){const e=this.nodes[0];return e?e.closest(".jet-form-builder-row"):null},l.prototype.setValue=function(){const e=this.nodes[0];if(!e)return"";if(!this.itiInstance)return this.calcValue=e.value,this.value.current=e.value,e.value;let t;return t="international"===(e.dataset.saveFormat||"e164")?this.itiInstance.getNumber(window.intlTelInputUtils.numberFormat.INTERNATIONAL):this.itiInstance.getNumber(),e.value=t||"",this.calcValue=t||"",this.value.current=t||"",t}}l.prototype=Object.create(d.prototype),l.prototype.constructor=l;const u=l;let{AdvancedRestriction:h,Restriction:c}=window.JetFormBuilderAbstract||{};function p(){h.call(this),this.type="phone_validation"}h=h||c,p.prototype=Object.create(h.prototype),p.prototype.isSupported=function(e){return e.classList.contains("phone-field")},p.prototype.validate=function(){const e=this.reporting.input,t=e.getWrapperNode(),n=t?.querySelector("input.phone-field-intl");return!e.itiInstance||(!n||!n.value.trim()||e.itiInstance.isValidNumber())},p.prototype.getRawMessage=function(){const e=this.getMessageBySlug?.("phone_invalid");return e||"Please enter a valid phone number"};const f=p,{addFilter:b}=JetPlugins.hooks;b("jet.fb.inputs","jet-form-builder/phone-field",function(e){return e.push(u),e},10);const m=e=>(e.push(f),e);b("jet.fb.restrictions.default","jet-form-builder/phone-field",m),b("jet.fb.restrictions","jet-form-builder/phone-field",m)})();
\ No newline at end of file
+(()=>{"use strict";var e,t={},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,i),o.exports}i.m=t,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((t,n)=>(i.f[n](e,t),t),[])),i.u=e=>87===e?"frontend/i18n/phone-i18n-uk.js":612===e?"frontend/i18n/phone-i18n-ru.js":874===e?"frontend/i18n/phone-i18n-de.js":847===e?"frontend/i18n/phone-i18n-fr.js":487===e?"frontend/i18n/phone-i18n-es.js":932===e?"frontend/i18n/phone-i18n-it.js":519===e?"frontend/i18n/phone-i18n-pl.js":791===e?"frontend/i18n/phone-i18n-pt.js":809===e?"frontend/i18n/phone-i18n-nl.js":680===e?"frontend/i18n/phone-i18n-ja.js":217===e?"frontend/i18n/phone-i18n-zh.js":489===e?"frontend/i18n/phone-i18n-ko.js":410===e?"frontend/i18n/phone-i18n-ar.js":949===e?"frontend/i18n/phone-i18n-tr.js":416===e?"frontend/i18n/phone-i18n-sv.js":886===e?"frontend/i18n/phone-i18n-da.js":372===e?"frontend/i18n/phone-i18n-fi.js":618===e?"frontend/i18n/phone-i18n-no.js":557===e?"frontend/i18n/phone-i18n-cs.js":974===e?"frontend/i18n/phone-i18n-hu.js":278===e?"frontend/i18n/phone-i18n-ro.js":590===e?"frontend/i18n/phone-i18n-bg.js":569===e?"frontend/i18n/phone-i18n-hr.js":653===e?"frontend/i18n/phone-i18n-sk.js":736===e?"frontend/i18n/phone-i18n-el.js":615===e?"frontend/i18n/phone-i18n-th.js":580===e?"frontend/i18n/phone-i18n-vi.js":788===e?"frontend/i18n/phone-i18n-id.js":354===e?"frontend/i18n/phone-i18n-hi.js":231===e?"frontend/i18n/phone-i18n-bn.js":302===e?"frontend/i18n/phone-i18n-ur.js":628===e?"frontend/i18n/phone-i18n-fa.js":982===e?"frontend/i18n/phone-i18n-mr.js":378===e?"frontend/i18n/phone-i18n-te.js":434===e?"frontend/i18n/phone-i18n-bs.js":319===e?"frontend/i18n/phone-i18n-ca.js":void 0,i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},i.l=(t,n,r,o)=>{if(e[t])e[t].push(n);else{var s,a;if(void 0!==r)for(var d=document.getElementsByTagName("script"),u=0;u{s.onerror=s.onload=null,clearTimeout(c);var r=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach(e=>e(i)),n)return n(i)},c=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),a&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e+"../"})(),(()=>{var e={750:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise((n,i)=>r=e[t]=[n,i]);n.push(r[2]=o);var s=i.p+i.u(t),a=new Error;i.l(s,n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+s+")",a.name="ChunkLoadError",a.type=o,a.request=s,r[1](a)}},"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[s,a,d]=n,u=0;if(s.some(t=>0!==e[t])){for(r in a)i.o(a,r)&&(i.m[r]=a[r]);d&&d(i)}for(t&&t(n);ui.e(87).then(i.bind(i,171)),ru:()=>i.e(612).then(i.bind(i,628)),de:()=>i.e(874).then(i.bind(i,74)),fr:()=>i.e(847).then(i.bind(i,7)),es:()=>i.e(487).then(i.bind(i,763)),it:()=>i.e(932).then(i.bind(i,760)),pl:()=>i.e(519).then(i.bind(i,471)),pt:()=>i.e(791).then(i.bind(i,823)),nl:()=>i.e(809).then(i.bind(i,697)),ja:()=>i.e(680).then(i.bind(i,608)),zh:()=>i.e(217).then(i.bind(i,721)),ko:()=>i.e(489).then(i.bind(i,397)),ar:()=>i.e(410).then(i.bind(i,830)),tr:()=>i.e(949).then(i.bind(i,853)),sv:()=>i.e(416).then(i.bind(i,620)),da:()=>i.e(886).then(i.bind(i,862)),fi:()=>i.e(372).then(i.bind(i,844)),no:()=>i.e(618).then(i.bind(i,146)),cs:()=>i.e(557).then(i.bind(i,705)),hu:()=>i.e(974).then(i.bind(i,958)),ro:()=>i.e(278).then(i.bind(i,350)),bg:()=>i.e(590).then(i.bind(i,574)),hr:()=>i.e(569).then(i.bind(i,289)),sk:()=>i.e(653).then(i.bind(i,169)),el:()=>i.e(736).then(i.bind(i,644)),th:()=>i.e(615).then(i.bind(i,423)),vi:()=>i.e(580).then(i.bind(i,388)),id:()=>i.e(788).then(i.bind(i,80)),hi:()=>i.e(354).then(i.bind(i,602)),bn:()=>i.e(231).then(i.bind(i,655)),ur:()=>i.e(302).then(i.bind(i,730)),fa:()=>i.e(628).then(i.bind(i,428)),mr:()=>i.e(982).then(i.bind(i,922)),te:()=>i.e(378).then(i.bind(i,722)),bs:()=>i.e(434).then(i.bind(i,322)),ca:()=>i.e(319).then(i.bind(i,227))},s={};function a(e){if(!e||"string"!=typeof e)return"";const t=e.trim().replace(/-/g,"_");if(!t)return"";const[n="",i=""]=t.split("_");return n?i?`${n.toLowerCase()}_${i.toUpperCase()}`:n.toLowerCase():""}async function d(e){const t=function(e){const t=a(e);if(!t)return"en";const[n]=t.split("_");return r[t]||r[n]||"en"}(e);if("en"===t)return{};if(s[t])return s[t];const n=o[t];if(!n)return{};try{const e=(await n()).default||{};return s[t]=e,e}catch{return{}}}function u(){const e="object"==typeof window.jfbPhoneFieldLocaleContext&&null!==window.jfbPhoneFieldLocaleContext?window.jfbPhoneFieldLocaleContext:{};return((e=[])=>{for(const t of e){const e=a(t);if(e)return e}return""})([e.pageLocale,e.pageLang,document.documentElement?.lang,e.siteLocale,e.siteLang])}async function l(){const e=u()||"en";return await d(e)}const{InputData:h}=window.JetFormBuilderAbstract;function c(){h.call(this),this.itiInstance=null,this.isInitialized=!1,this.isSupported=function(e){return e.classList.contains("phone-field")},this.setNode=function(e){h.prototype.setNode.call(this,e),this.initIntlTelInput()},this.initIntlTelInput=async function(){const e=this.nodes[0];if(!e)return;if(this.isInitialized)return;const t=this.getWrapperNode().querySelector("input.phone-field-intl"),n=e.dataset.defaultCountry||"auto",i=this.parseCountryList(e.dataset.preferredCountries),r=this.parseCountryList(e.dataset.onlyCountries),o=this.parseCountryList(e.dataset.excludeCountries),s=e.dataset.separateDialCode||!1,a=e.dataset.ipinfoToken||"";let d=n;"auto"===d&&(d=this.detectCountryByIP(a)||this.detectCountryByLanguage()||"us");const u=await this.getLocalizedCountryNames(),l={initialCountry:d,separateDialCode:"1"===s,strictMode:!0,nationalMode:!0,formatAsYouType:!0,formatOnDisplay:!0,autoPlaceholder:"aggressive"};i.length&&(l.countryOrder=i),r.length&&(l.onlyCountries=r),o.length&&(l.excludeCountries=o),Object.keys(u).length&&(l.i18n=u),this.itiInstance=window.intlTelInput(t,l),this.itiInstance.setNumber(e.value),this.isInitialized=!0},this.normalizeIfInternational=function(e){const t=e.value.trim();t&&"+"===t[0]&&(this.itiInstance.setNumber(t),this.setValue())},this.parseCountryList=function(e){return e?e.split(",").map(e=>e.trim().toLowerCase()).filter(e=>e):[]},this.detectCountryByIP=function(e){const t=sessionStorage.getItem("jfb_detected_country");return t||(fetch(e?`https://api.ipinfo.io/lite/me?token=${e}`:"https://ipinfo.io/json").then(e=>e.json()).then(e=>{if(e.country){const t=e.country.toLowerCase();sessionStorage.setItem("jfb_detected_country",t),this.itiInstance&&this.itiInstance.setCountry(t)}}).catch(()=>{}),null)},this.detectCountryByLanguage=function(){const e=navigator.language||navigator.userLanguage;if(!e)return null;const t=e.split("-");return t.length>1?t[1].toLowerCase():{en:"us",ru:"ru",uk:"ua",de:"de",fr:"fr",es:"es",it:"it",pl:"pl",pt:"br",ja:"jp",ko:"kr",zh:"cn",ar:"sa",he:"il",hi:"in"}[t[0].toLowerCase()]||null},this.getLocalizedCountryNames=async function(){const e=void 0!==window.jfbPhoneFieldI18n?window.jfbPhoneFieldI18n:{};let t={};try{t=await l()}catch{}return{...t,...e}},this.addListeners=function(){h.prototype.addListeners.call(this);const e=this.nodes[0];if(!e)return;const t=this.getWrapperNode().querySelector("input.phone-field-intl");if(!t)return;const n=e.closest("form");n&&n.addEventListener("submit",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),this.validateAndShowError()},!0),t.addEventListener("countrychange",()=>{this.syncFromIntlInput(t,e),this.validateAndShowError()}),t.addEventListener("input",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),t.value.trim()&&this.clearError()}),t.addEventListener("change",()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e)}),t.addEventListener("blur",()=>{setTimeout(()=>{this.normalizeIfInternational(t),this.syncFromIntlInput(t,e),this.validateAndShowError()},0)})},this.syncFromIntlInput=function(e,t){if(!this.itiInstance)return;let n;n="international"===(t.dataset.saveFormat||"e164")?this.itiInstance.getNumber(window.intlTelInput.utils.numberFormat.INTERNATIONAL):this.itiInstance.getNumber(),t.value=n||"",this.calcValue=n||"",this.value.current=n||""},this.showError=function(e){const t=this.getWrapperNode();if(!t)return;this.clearError(),t.classList.add("field-has-error");const n=document.createElement("div");n.className="error-message jet-form-builder__error",n.textContent=e;const i=t.querySelector(".jet-form-builder-col__end");i?i.appendChild(n):t.appendChild(n);const r=t.querySelector("input.phone-field-intl");r&&(r.classList.add("invalid"),r.setAttribute("aria-invalid","true"))},this.clearError=function(){const e=this.getWrapperNode();if(!e)return;e.classList.remove("field-has-error");const t=e.querySelector(".error-message");t&&t.remove();const n=e.querySelector("input.phone-field-intl");n&&(n.classList.remove("invalid"),n.removeAttribute("aria-invalid"))},this.getValidationMessage=function(e){const t=this.nodes[0];return"required"===e&&t.dataset.validationMessageRequired?t.dataset.validationMessageRequired:"invalid"===e&&t.dataset.validationMessageInvalid?t.dataset.validationMessageInvalid:"required"===e?"This field is required":"Please enter a valid phone number"},this.validateAndShowError=function(){const e=this.getWrapperNode(),t=e?.querySelector("input.phone-field-intl"),n=this.nodes[0];if(!t)return!0;const i=t.value.trim();return n.hasAttribute("required")&&!i?(this.showError(this.getValidationMessage("required")),!1):i&&this.itiInstance&&!this.itiInstance.isValidNumber()?(this.showError(this.getValidationMessage("invalid")),!1):(this.clearError(),!0)},this.getReportingNode=function(){const e=this.getWrapperNode(),t=e?.querySelector("input.phone-field-intl");return t||this.nodes[0]},this.getWrapperNode=function(){const e=this.nodes[0];return e?e.closest(".jet-form-builder-row"):null},c.prototype.setValue=function(){const e=this.nodes[0];if(!e)return"";if(!this.itiInstance)return this.calcValue=e.value,this.value.current=e.value,e.value;let t;return t="international"===(e.dataset.saveFormat||"e164")?this.itiInstance.getNumber(window.intlTelInputUtils.numberFormat.INTERNATIONAL):this.itiInstance.getNumber(),e.value=t||"",this.calcValue=t||"",this.value.current=t||"",t}}c.prototype=Object.create(h.prototype),c.prototype.constructor=c;const p=c;let{AdvancedRestriction:f,Restriction:b}=window.JetFormBuilderAbstract||{};function m(){f.call(this),this.type="phone_validation"}f=f||b,m.prototype=Object.create(f.prototype),m.prototype.isSupported=function(e){return e.classList.contains("phone-field")},m.prototype.validate=function(){const e=this.reporting.input,t=e.getWrapperNode(),n=t?.querySelector("input.phone-field-intl");return!e.itiInstance||(!n||!n.value.trim()||e.itiInstance.isValidNumber())},m.prototype.getRawMessage=function(){const e=this.getMessageBySlug?.("phone_invalid");return e||"Please enter a valid phone number"};const g=m,{addFilter:v}=JetPlugins.hooks;v("jet.fb.inputs","jet-form-builder/phone-field",function(e){return e.push(p),e},10);const y=e=>(e.push(g),e);v("jet.fb.restrictions.default","jet-form-builder/phone-field",y),v("jet.fb.restrictions","jet-form-builder/phone-field",y)})();
\ No newline at end of file
diff --git a/modules/blocks-v2/phone-field/assets/src/editor/block/edit.js b/modules/blocks-v2/phone-field/assets/src/editor/block/edit.js
index e37424ec4..3efb6a9a5 100644
--- a/modules/blocks-v2/phone-field/assets/src/editor/block/edit.js
+++ b/modules/blocks-v2/phone-field/assets/src/editor/block/edit.js
@@ -64,6 +64,7 @@ export default function IntlPhoneEdit( props ) {
/>
@@ -77,6 +78,7 @@ export default function IntlPhoneEdit( props ) {
@@ -91,6 +93,7 @@ export default function IntlPhoneEdit( props ) {
{ attributes.only_countries.length <= 0 && (
@@ -128,6 +131,7 @@ export default function IntlPhoneEdit( props ) {
'jet-form-builder'
) }
/>
+
{
+ .catch( () => {
} );
return null;
@@ -214,7 +218,7 @@ function PhoneFieldData() {
let libraryTranslations = {};
try {
libraryTranslations = await loadCurrentLocaleTranslations();
- } catch ( error ) {
+ } catch {
}
// Merge translations: WordPress overrides library translations
@@ -252,7 +256,7 @@ function PhoneFieldData() {
this.syncFromIntlInput( input, node );
// Validate and show error before submit
- const isValid = this.validateAndShowError();
+ this.validateAndShowError();
}, true); // Use capture phase to run before JetFormBuilder
}
@@ -289,6 +293,8 @@ function PhoneFieldData() {
/**
* Sync value from intl-tel-input field to main field
+ * @param intlInput
+ * @param mainField
*/
// eslint-disable-next-line no-unused-vars
this.syncFromIntlInput = function ( intlInput, mainField ) {
@@ -322,6 +328,7 @@ function PhoneFieldData() {
/**
* Show error message under the phone field
+ * @param message
*/
this.showError = function ( message ) {
const wrapper = this.getWrapperNode();
@@ -388,6 +395,7 @@ function PhoneFieldData() {
/**
* Get validation message from data-attributes or fallback
+ * @param type
*/
this.getValidationMessage = function ( type ) {
const mainField = this.nodes[ 0 ];
diff --git a/modules/blocks-v2/phone-field/assets/src/frontend/field/i18n-loader.js b/modules/blocks-v2/phone-field/assets/src/frontend/field/i18n-loader.js
index 263dd6272..d9aea0d80 100644
--- a/modules/blocks-v2/phone-field/assets/src/frontend/field/i18n-loader.js
+++ b/modules/blocks-v2/phone-field/assets/src/frontend/field/i18n-loader.js
@@ -6,49 +6,46 @@
*/
/**
- * Map WordPress locale codes to intl-tel-input i18n folder names
+ * Map normalized locale codes to intl-tel-input i18n folder names.
*/
const localeMap = {
- // WordPress locale => intl-tel-input i18n folder
- 'uk': 'uk', // Ukrainian
- 'ru_RU': 'ru', // Russian
- 'de_DE': 'de', // German
- 'fr_FR': 'fr', // French
- 'es_ES': 'es', // Spanish
- 'it_IT': 'it', // Italian
- 'pl_PL': 'pl', // Polish
- 'pt_PT': 'pt', // Portuguese
- 'pt_BR': 'pt', // Portuguese (Brazil)
- 'nl_NL': 'nl', // Dutch
- 'ja': 'ja', // Japanese
- 'zh_CN': 'zh', // Chinese
- 'ko_KR': 'ko', // Korean
- 'ar': 'ar', // Arabic
- 'tr_TR': 'tr', // Turkish
- 'sv_SE': 'sv', // Swedish
- 'da_DK': 'da', // Danish
- 'fi': 'fi', // Finnish
- 'no': 'no', // Norwegian
- 'cs_CZ': 'cs', // Czech
- 'hu_HU': 'hu', // Hungarian
- 'ro_RO': 'ro', // Romanian
- 'bg_BG': 'bg', // Bulgarian
- 'hr': 'hr', // Croatian
- 'sk_SK': 'sk', // Slovak
- 'el': 'el', // Greek
- 'th': 'th', // Thai
- 'vi': 'vi', // Vietnamese
- 'id_ID': 'id', // Indonesian
- 'hi_IN': 'hi', // Hindi
- 'bn_BD': 'bn', // Bengali
- 'ur': 'ur', // Urdu
- 'fa_IR': 'fa', // Persian
- 'mr': 'mr', // Marathi
- 'te': 'te', // Telugu
- 'bs_BA': 'bs', // Bosnian
- 'ca': 'ca', // Catalan
- 'en_US': 'en', // English (US)
- 'en': 'en', // English (generic)
+ ar: 'ar',
+ bg: 'bg',
+ bn: 'bn',
+ bs: 'bs',
+ ca: 'ca',
+ cs: 'cs',
+ da: 'da',
+ de: 'de',
+ el: 'el',
+ en: 'en',
+ es: 'es',
+ fa: 'fa',
+ fi: 'fi',
+ fr: 'fr',
+ hi: 'hi',
+ hr: 'hr',
+ hu: 'hu',
+ id: 'id',
+ it: 'it',
+ ja: 'ja',
+ ko: 'ko',
+ mr: 'mr',
+ nl: 'nl',
+ no: 'no',
+ pl: 'pl',
+ pt: 'pt',
+ ro: 'ro',
+ ru: 'ru',
+ sk: 'sk',
+ sv: 'sv',
+ te: 'te',
+ th: 'th',
+ tr: 'tr',
+ uk: 'uk',
+ ur: 'ur',
+ vi: 'vi',
+ zh: 'zh',
};
/**
@@ -100,6 +97,59 @@ const loaders = {
*/
const translationCache = {};
+const getWindowLocaleContext = () => {
+ return typeof window.jfbPhoneFieldLocaleContext === 'object' &&
+ window.jfbPhoneFieldLocaleContext !== null
+ ? window.jfbPhoneFieldLocaleContext
+ : {};
+};
+
+const getFirstNormalizedLocale = ( candidates = [] ) => {
+ for ( const locale of candidates ) {
+ const normalizedLocale = normalizeLocale( locale );
+
+ if ( normalizedLocale ) {
+ return normalizedLocale;
+ }
+ }
+
+ return '';
+};
+
+export function normalizeLocale( locale ) {
+ if ( ! locale || 'string' !== typeof locale ) {
+ return '';
+ }
+
+ const sanitized = locale.trim().replace( /-/g, '_' );
+
+ if ( ! sanitized ) {
+ return '';
+ }
+
+ const [ language = '', region = '' ] = sanitized.split( '_' );
+
+ if ( ! language ) {
+ return '';
+ }
+
+ return region
+ ? `${ language.toLowerCase() }_${ region.toUpperCase() }`
+ : language.toLowerCase();
+}
+
+export function resolveIntlLocale( locale ) {
+ const normalizedLocale = normalizeLocale( locale );
+
+ if ( ! normalizedLocale ) {
+ return 'en';
+ }
+
+ const [ language ] = normalizedLocale.split( '_' );
+
+ return localeMap[ normalizedLocale ] || localeMap[ language ] || 'en';
+}
+
/**
* Load translations for intl-tel-input (ESM import approach)
*
@@ -107,8 +157,7 @@ const translationCache = {};
* @return {Promise