{"version":3,"file":"shared-lib.BqPy2kKZ.mjs","names":[],"sources":["https:/framerusercontent.com/modules/gBM8u85Ug4dfenJoJIt9/CS3vZQ7YRpCd9BxVZZO8/siteMetadata.js"],"sourcesContent":["// Generated by Framer (62e4d63)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<script>\\n(function () {\\n  // ==== Config ====\\n  var DEST_PATH = \"/scalability-scorecard-quiz\";\\n\\n  var EMAIL_KEYS = [\"email\",\"e\",\"Email\",\"EMAIL\",\"email_address\",\"mail\",\"user[email]\"];\\n  var FIRST_KEYS = [\"first_name\",\"firstname\",\"firstName\",\"given-name\",\"first\"];\\n  var LAST_KEYS  = [\"last_name\",\"lastname\",\"lastName\",\"family-name\",\"last\"];\\n  var FULL_KEYS  = [\"name\",\"full_name\",\"fullName\"];\\n\\n  function getFromFormData(fd, keys) {\\n    for (var i=0;i<keys.length;i++) {\\n      var v = fd.get(keys[i]);\\n      if (v != null && String(v).trim() !== \"\") return String(v).trim();\\n    }\\n    return \"\";\\n  }\\n  function getFromPage(keys) {\\n    for (var i=0;i<keys.length;i++) {\\n      var el = document.querySelector(\\'[name=\"\\'+keys[i]+\\'\"]\\');\\n      if (el && String(el.value).trim() !== \"\") return String(el.value).trim();\\n    }\\n    return \"\";\\n  }\\n\\n  function onSubmit(e) {\\n    try {\\n      var form = e.currentTarget;\\n      var fd = new FormData(form);\\n\\n      // Try form fields first\\n      var email = getFromFormData(fd, EMAIL_KEYS);\\n      var first = getFromFormData(fd, FIRST_KEYS);\\n      var last  = getFromFormData(fd, LAST_KEYS);\\n      var full  = getFromFormData(fd, FULL_KEYS);\\n\\n      // Fallback to page-wide named inputs (covers inputs outside the <form>)\\n      if (!email) email = getFromPage(EMAIL_KEYS);\\n      if (!first) first = getFromPage(FIRST_KEYS);\\n      if (!last)  last  = getFromPage(LAST_KEYS);\\n      if (!full)  full  = getFromPage(FULL_KEYS);\\n\\n      var name = (full || [first, last].filter(Boolean).join(\" \") || first || \"\").trim();\\n\\n      // Persist as a safety net\\n      try {\\n        if (name)  localStorage.setItem(\"yarro_name\", name);\\n        if (email) localStorage.setItem(\"yarro_email\", email);\\n      } catch(_) {}\\n\\n      // Build querystring\\n      var qs = new URLSearchParams();\\n      if (name)  qs.set(\"name\", name);\\n      if (email) qs.set(\"email\", email);\\n\\n      // Prevent default and hard-redirect with absolute URL (keeps query)\\n      e.preventDefault();\\n      var target = new URL(DEST_PATH, window.location.origin);\\n      var q = qs.toString();\\n      if (q) target.search = q;\\n      window.location.assign(target.toString());\\n    } catch(err) {\\n      console.warn(\"[Yarro] submit redirect failed, allowing default:\", err);\\n      // fall back to default submit\\n    }\\n  }\\n\\n  function bindForm(form) {\\n    if (!form || form.__yarroBound) return;\\n    form.__yarroBound = true;\\n    form.addEventListener(\"submit\", onSubmit);\\n  }\\n\\n  function bindAllForms() {\\n    document.querySelectorAll(\"form\").forEach(bindForm);\\n  }\\n\\n  // Observe DOM for forms added after route changes\\n  var mo;\\n  function startObserver() {\\n    if (mo) mo.disconnect();\\n    mo = new MutationObserver(function (muts) {\\n      for (var m of muts) {\\n        if (!m.addedNodes) continue;\\n        m.addedNodes.forEach(function (n) {\\n          if (n.nodeType !== 1) return;\\n          if (n.tagName === \"FORM\") bindForm(n);\\n          if (n.querySelectorAll) n.querySelectorAll(\"form\").forEach(bindForm);\\n        });\\n      }\\n    });\\n    mo.observe(document.documentElement, { childList: true, subtree: true });\\n  }\\n\\n  // Detect SPA route changes and re-init\\n  function patchHistory() {\\n    var origPush = history.pushState, origReplace = history.replaceState;\\n    history.pushState = function() {\\n      var ret = origPush.apply(this, arguments);\\n      window.dispatchEvent(new Event(\"yarro:routechange\"));\\n      return ret;\\n    };\\n    history.replaceState = function() {\\n      var ret = origReplace.apply(this, arguments);\\n      window.dispatchEvent(new Event(\"yarro:routechange\"));\\n      return ret;\\n    };\\n    window.addEventListener(\"popstate\", function(){ window.dispatchEvent(new Event(\"yarro:routechange\")); });\\n    window.addEventListener(\"hashchange\", function(){ window.dispatchEvent(new Event(\"yarro:routechange\")); });\\n  }\\n\\n  function init() {\\n    bindAllForms();\\n    startObserver();\\n  }\\n\\n  // Bootstrap once, then on every SPA navigation\\n  patchHistory();\\n  window.addEventListener(\"yarro:routechange\", init);\\n\\n  if (document.readyState === \"loading\") {\\n    document.addEventListener(\"DOMContentLoaded\", init);\\n  } else {\\n    init();\\n  }\\n})();\\n</script>\\n\\n<!-- Plugin: eb427g --> <script src=\"https://smartarget.online/loader.js?type=int&amp;u=88ecf36d795fdac8d082e281b5d4f09384504168&amp;source=framer_popup_forms\"></script>\\n<!-- Plugin: eb42ac --> <script src=\"https://smartarget.online/loader.js?type=int&amp;u=34b66a5bbfb2a4da0dc2e442ddaed067a64a47d7&amp;source=framer_popup\"></script>',description:\"Yarro builds custom AI Virtual Assistants for property managers, agents and serviced accommodation businesses. Automate communication, maintenance, admin, reporting and more so you can scale faster, cut costs, and run stress-free.\",favicon:\"https://framerusercontent.com/assets/Y04GyKGbvPITtos6acX1sNvApeA.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/LHBtcPzL585fWv5gocGxZXvMN9U.png\",title:\"Yarro | AI Virtual Assistants for Property Managers\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sKAAmhJ,YAAY,yOAAyO,QAAQ,uEAAuE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,sDAAsD"}