{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/rBhqSCD5mbqdeTWh0Sru/LW5yPXzFtjVZxdbU7Sef/siteMetadata.js"],
  "sourcesContent": ["// Generated by Framer (400c93f)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:\"<script>\\n  \\n    // this script is special for outseta forms\\n    // to prevent form submit on enter\\ndocument.addEventListener('DOMContentLoaded', function() {\\n  document.body.addEventListener('keydown', function(event) {\\n    // Check if the event target is a textarea and is inside an element with the class 'widget-Outseta_leadCapture'\\n    if (event.target.tagName === 'TEXTAREA' && event.target.closest('.o--Widget--widgetBody')) {\\n      if (event.key === 'Enter') {\\n        event.preventDefault();\\n        event.stopPropagation();\\n\\n        const textarea = event.target;\\n        const start = textarea.selectionStart;\\n        const end = textarea.selectionEnd;\\n\\n        // Insert newline at cursor position\\n        textarea.value = textarea.value.substring(0, start) + \\\"\\\\n\\\" + textarea.value.substring(end);\\n\\n        // Move cursor to just after the inserted newline\\n        textarea.selectionStart = textarea.selectionEnd = start + 1;\\n      }\\n    }\\n  }, true); // Using true to capture this event as it bubbles up\\n});\\n</script>\",customHTMLHeadEnd:\"<script>\\n  // the code to redirect different plans to different pages\\n  // we need that for better analytics as it will trigger page view\\n  const plansToLandingPage = {\\n    ['zWZrqbWp']: '/thank-you/business',\\n    ['LmJbLVmP']: '/thank-you',\\n    ['DQ2E2LmV']: '/thank-you/non-commercial',\\n    ['VmAzXnQa']: '/thank-you/team',\\n    ['j9brBO9n']: '/thank-you',\\n  };\\n  Outseta.on('signup', (account) => {\\n    const planUid = account.CurrentSubscription.Plan.Uid;\\n    const person = account.PersonAccount[0];\\n    const email = person?.Person?.Email;\\n    const redirectUrl = plansToLandingPage[planUid];\\n\\n    if (redirectUrl) {\\n      window.location.href = redirectUrl + \\\"?email=\\\" + encodeURIComponent(email);\\n      return false;\\n    }\\n  });\\n  \\n  // block gmail on signup form\\n  let triedToEnter = false;\\n  Outseta.on(\\n  'signup.registrationData',\\n  (account) => {\\n    //return;\\n    const FREE_DOMAINS = [\\n  'gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com', 'aol.com',\\n  'icloud.com', 'protonmail.com', 'zoho.com', 'mail.com', 'gmx.com'\\n];\\n    const email = account.PersonAccount[0].Person.Email.toLowerCase();\\n    if (FREE_DOMAINS.some(d => email.endsWith(d))) {\\n      if (triedToEnter) {\\n        location.href = '/get-started-trial-team?email=' + encodeURIComponent(email);\\n        throw {\\n        response: {\\n          status: 200,\\n          data: {\\n          }\\n        }\\n      };\\n        return;\\n      }\\n      triedToEnter = true;\\n      setTimeout(() => {\\n        document.querySelector('.o--Register--nextButton').disabled = false;\\n      }, 500)\\n      throw {\\n        response: {\\n          status: 400,\\n          data: {\\n            ErrorMessage: 'Please use your work email.'\\n          }\\n        }\\n      };\\n      \\n    }\\n  }\\n);\\n\\n  window.onload = function() {\\n    const urlParams = new URLSearchParams(window.location.search);\\n    const email = urlParams.get('email');\\n    const emailInput = document.querySelector('input[name=\\\"Email\\\"]') || document.querySelector('input[type=\\\"email\\\"]');\\n    if (email && emailInput) {\\n        emailInput.value = email;\\n    }\\n    const form = document.querySelector('form');\\n    \\n    if (!form || !emailInput) {\\n      return;\\n    }\\n    form.addEventListener('submit', function(event) {\\n        if (email) {\\n            emailInput.value = email;\\n        }\\n        // Form will continue submission after this handler\\n    });\\n};\\n</script>\\n\\n<script type=\\\"text/javascript\\\">!function(e,t){(e=t.createElement(\\\"script\\\")).src=\\\"https://cdn.convertbox.com/convertbox/js/embed.js\\\",e.id=\\\"app-convertbox-script\\\",e.async=true,e.dataset.uuid=\\\"db9e320b-6d6c-49c4-ba5c-b29e6d5fc91c\\\",document.getElementsByTagName(\\\"head\\\")[0].appendChild(e)}(window,document);</script>\\n\\n<script>\\n  // this script is required for better search results from algolia docsearch\\n  window.addEventListener(\\\"DOMContentLoaded\\\", () => {\\n  // Auto-generate IDs for headings if missing\\n  document.querySelectorAll(\\\"h1, h2, h3, h4, h5, h6\\\").forEach((el) => {\\n    if (!el.id) {\\n      const generatedId = el.textContent\\n        .toLowerCase()\\n        .trim()\\n        .replace(/\\\\s+/g, \\\"-\\\")\\n        .replace(/[^\\\\w-]/g, \\\"\\\");\\n      el.id = generatedId;\\n    }\\n  });\\n\\n  // Check if the URL has a hash\\n  const hash = decodeURIComponent(window.location.hash.substring(1));\\n  if (hash) {\\n    // Scroll to the element with the generated or existing ID\\n    const target = document.getElementById(hash);\\n    if (target) {\\n      target.scrollIntoView({ behavior: \\\"smooth\\\" });\\n    }\\n  }\\n});\\n  </script>\",customHTMLHeadStart:'<!-- Google tag (gtag.js) -->\\n<script async=\"\" src=\"https://www.googletagmanager.com/gtag/js?id=G-8XXYQGNLV0\"></script>\\n<script>\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){dataLayer.push(arguments);}\\n  gtag(\\'js\\', new Date());\\n\\n  gtag(\\'config\\', \\'G-8XXYQGNLV0\\');\\n</script>\\n\\n\\n\\n<script defer=\"\" data-domain=\"polotno.com\" src=\"https://plausible.io/js/script.js\"></script>\\n\\n<script>\\n  var o_options = {\\n    domain: \\'polotno.outseta.com\\',\\n    load: \\'auth,profile,nocode,leadCapture,emailList\\',\\n    monitorDom: true\\n  };\\n</script>\\n<script src=\"https://cdn.outseta.com/outseta.min.js\" data-options=\"o_options\">\\n</script>\\n\\n<script>\\nwindow.$crisp = [];\\nwindow.CRISP_WEBSITE_ID = \\'fd91062d-4c29-40ee-9ed1-09a00d101aea\\';\\n(function () {\\n  d = document;\\n  s = d.createElement(\\'script\\');\\n  s.src = \\'https://client.crisp.chat/l.js\\';\\n  s.async = 1;\\n  d.getElementsByTagName(\\'head\\')[0].appendChild(s);\\n})();\\n</script>\\n<script>!function () {var reb2b = window.reb2b = window.reb2b || [];if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = [\"identify\", \"collect\"];reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);args.unshift(method);reb2b.push(args);return reb2b;};};for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}reb2b.load = function (key) {var script = document.createElement(\"script\");script.type = \"text/javascript\";script.async = true;script.src = \"https://s3-us-west-2.amazonaws.com/b2bjsstore/b/\" + key + \"/EN4M0HKQ48OM.js.gz\";var first = document.getElementsByTagName(\"script\")[0];first.parentNode.insertBefore(script, first);};reb2b.SNIPPET_VERSION = \"1.0.1\";reb2b.load(\"EN4M0HKQ48OM\");}();</script>',description:\"Deploy Polotno SDK in no time and enable your customers to effortlessly create stunning designs and templates right in your website or app.\",favicon:\"https://framerusercontent.com/assets/0Am7YCWZoonbxr7yaD8vtOU3hs.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/rel5IovxntIWnrJcsQ42XcLBMs.jpg\",title:\"Polotno \u2013 Your powerful visual design suite\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "AACe,SAARA,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAoiC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAkiH,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ozBAAgwD,YAAY,8IAA8I,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,kDAA6C,CAAE",
  "names": ["metadata", "params", "activeLocale"]
}
