{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/crhipSjJd2ZHLKLPBrvV/Zmzd5i6JjyFtfoafGOpY/siteMetadata.js"],
  "sourcesContent": ["// Generated by Framer (99f3353)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<script data-cfasync=\"false\" src=\"https://transcend-cdn.com/cm/986c773d-9cef-4df6-8876-7d281c15cc84/airgap.js\"></script>',customHTMLBodyStart:\"<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\\\"https://www.googletagmanager.com/ns.html?id=GTM-MXM9LZLS\\\" height=\\\"0\\\" width=\\\"0\\\" style=\\\"display:none;visibility:hidden\\\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->\\n\\n<script>\\n$(document).ready(function() {\\n\t$('[data-analytics]').on('click', function(e) {\\n\t\tvar properties\\n\t\tvar event = $(this).attr('data-analytics')\\n\t\t$.each(this.attributes, function(_, attribute) {\\n\t\t\tif (attribute.name.startsWith('data-property-')) {\\n\t\t\t\tif (!properties) properties = {}\\n\t\t\t\tvar property = attribute.name.split('data-property-')[1]\\n\t\t\t\tproperties[property] = attribute.value\\n\t\t\t}\\n\t\t})\\n\t\tanalytics.track(event, properties)\\n\t})\\n})\\n\\n</script>\\n<script>\\n  window.dataLayer = [];\\n$(document).ready(function() {\\n  $('.submit-button').on('click', function (e) {\\n    dataLayer.push({event: 'sign_up'});\\n    console.log('logged event');\\n  })\\n});\\n</script>\\n\",customHTMLHeadEnd:'<script type=\"text/javascript\" src=\"https://cdn.amplitude.com/script/7f212e8d272682f437ff2740d3ddd739.experiment.js\"></script>',customHTMLHeadStart:\"<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-MXM9LZLS');</script>\\n<!-- End Google Tag Manager -->\\n\\n<!--- amplitude UTM --->\\n\\n  <script>\\n    (function() {\\n      const utmKeys = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];\\n      const qs = new URLSearchParams(location.search);\\n      const utms = Object.fromEntries(utmKeys.map(k => [k, qs.get(k)]).filter(([,v]) => v));\\n      if (Object.keys(utms).length) {\\n        localStorage.setItem('amplitude_utms', JSON.stringify(utms));\\n      }\\n    })();\\n  </script>\\n\\n<!--- Amplitude UTM --- >\\n\\n\\n<!-- Amplitude -->\\n<script type=\\\"text/javascript\\\">\\n(function(e,t){var r=e.amplitude||{_q:[],_iq:{}};var n=t.createElement(\\\"script\\\")\\n;n.type=\\\"text/javascript\\\"\\n;n.integrity=\\\"sha384-6T8z7Vvm13muXGhlR32onvIziA0TswSKafDQHgmkf6zD2ALZZeFokLI4rPVlAFyK\\\"\\n;n.crossOrigin=\\\"anonymous\\\";n.async=true\\n;n.src=\\\"https://cdn.amplitude.com/libs/amplitude-8.18.4-min.gz.js\\\"\\n;n.onload=function(){if(!e.amplitude.runQueuedFunctions){\\nconsole.log(\\\"[Amplitude] Error: could not load SDK\\\")}}\\n;var s=t.getElementsByTagName(\\\"script\\\")[0];s.parentNode.insertBefore(n,s)\\n;function i(e,t){e.prototype[t]=function(){\\nthis._q.push([t].concat(Array.prototype.slice.call(arguments,0)));return this}}\\nvar o=function(){this._q=[];return this}\\n;var a=[\\\"add\\\",\\\"append\\\",\\\"clearAll\\\",\\\"prepend\\\",\\\"set\\\",\\\"setOnce\\\",\\\"unset\\\",\\\"preInsert\\\",\\\"postInsert\\\",\\\"remove\\\"]\\n;for(var c=0;c<a.length;c++){i(o,a[c])}r.Identify=o;var u=function(){this._q=[]\\n;return this}\\n;var p=[\\\"setProductId\\\",\\\"setQuantity\\\",\\\"setPrice\\\",\\\"setRevenueType\\\",\\\"setEventProperties\\\"]\\n;for(var l=0;l<p.length;l++){i(u,p[l])}r.Revenue=u\\n;var d=[\\\"init\\\",\\\"logEvent\\\",\\\"logRevenue\\\",\\\"setUserId\\\",\\\"setUserProperties\\\",\\\"setOptOut\\\",\\\"setVersionName\\\",\\\"setDomain\\\",\\\"setDeviceId\\\",\\\"enableTracking\\\",\\\"setGlobalUserProperties\\\",\\\"identify\\\",\\\"clearUserProperties\\\",\\\"setGroup\\\",\\\"logRevenueV2\\\",\\\"regenerateDeviceId\\\",\\\"groupIdentify\\\",\\\"onInit\\\",\\\"logEventWithTimestamp\\\",\\\"logEventWithGroups\\\",\\\"setSessionId\\\",\\\"resetSessionId\\\",\\\"setLibrary\\\",\\\"setTransport\\\"]\\n;function v(e){function t(t){e[t]=function(){\\ne._q.push([t].concat(Array.prototype.slice.call(arguments,0)))}}\\nfor(var r=0;r<d.length;r++){t(d[r])}}v(r);r.getInstance=function(e){\\ne=(!e||e.length===0?\\\"$default_instance\\\":e).toLowerCase()\\n;if(!Object.prototype.hasOwnProperty.call(r._iq,e)){r._iq[e]={_q:[]};v(r._iq[e])\\n}return r._iq[e]};e.amplitude=r})(window,document);\\n\\n</script>\\n\\n<script>\\nconst amp = amplitude.getInstance();\\nconst _origLog = amp.logEvent.bind(amp);\\nconsole.log('[AMP PATCHED] logEvent now injects UTMs');\\n\\n\\namp.logEvent = (event, props = {}, opts) => {\\n  let stored = {};\\n  try {\\n    stored = JSON.parse(localStorage.getItem('amplitude_utms') || '{}');\\n  } catch {}\\n  return _origLog(event, { ...props, ...stored }, opts);\\n};\\n  amp.init('7f212e8d272682f437ff2740d3ddd739', null, {\\n    includeReferrer: true,\\n    includeUtm: true,\\n    unsetParamsReferrerOnNewSession: true,\\n  });\\n</script>\\n\\n\\n<!-- Plausible snippet -->\\n<script defer=\\\"\\\" data-domain=\\\"partiful.com\\\" src=\\\"https://plausible.io/js/plausible.js\\\"></script>\\n<!-- Plausible snippet -->\\n\\n <!-- Amplitude Event Tracking for Clicks  -->\\n<script>\\ndocument.addEventListener('click', (e) => {\\n    const target = e.target.closest('[data-amplitude-event]');\\n    if (!target) return;\\n    \\n    const eventName = target.getAttribute('data-amplitude-event');\\n    const context = target.getAttribute('data-context') || 'default-context';\\n    \\n    console.log(`Event Name: ${eventName}, Context: ${context}`); // Debug\\n    amplitude.getInstance().logEvent(eventName, { context });\\n}, true);\\n</script>\\n <!-- Amplitude Event Tracking for Clicks  -->\\n\\n<script>\\ndocument.addEventListener('DOMContentLoaded', () => {\\n    const pageEventMap = {\\n        '/': 'landing:shown',\\n        '/about': 'about:shown',\\n        '/contact': 'contact:shown',\\n        '/blog': 'blog_home:shown',\\n        '/terms': 'landing_tos:shown',\\n        '/privacy': 'landing_privacy:shown',\\n        '/cookie': 'landing_cookie_policy:shown',\\n        '/community-guidelines': 'about:shown',\\n        '/download': 'landing_download:shown',\\n        '/404': '404:shown',\\n        '/thanks-for-subscribing': 'landing_blog_subscription_confirmation:shown',\\n        '/afterparty': 'afterparty:shown',\\n        '/template': 'template:shown',\\n        '/game-day-invitations': 'gameday:shown',\\n        '/galentines-day-invitations': 'galentines:shown',\\n        '/birthday-party-invitations': 'birthday:shown',\\n        '/wedding-invitations': 'wedding:shown',\\n        '/dinner-invitations': 'dinner:shown','/org-profiles': 'orgs:shown'\\n        ,'/grad-party-invitations': 'graduations:shown'\\n        ,'/free-graduation-party-invitations': 'graduations2:shown'\\n    };\\n\\n    const logPageView = () => {\\n        const currentPath = window.location.pathname;\\n        \\n        const isBlogPost = currentPath.startsWith('/blog/post/') && currentPath !== '/blog';\\n        \\n        if (isBlogPost) {\\n            const blogTitle = document.title || \\n                            document.querySelector('h1')?.textContent || \\n                            'Unknown Blog Post';\\n            \\n            amplitude.getInstance().logEvent('blog_post:shown', {\\n                path: currentPath,\\n                title: blogTitle,\\n            });\\n            \\n            const viewedPosts = JSON.parse(localStorage.getItem('viewedBlogPosts') || '[]');\\n            if (!viewedPosts.includes(currentPath)) {\\n                viewedPosts.push(currentPath);\\n                localStorage.setItem('viewedBlogPosts', JSON.stringify(viewedPosts));\\n            }\\n        } else {\\n            const eventName = pageEventMap[currentPath];\\n            if (eventName) {\\n                amplitude.getInstance().logEvent(eventName);\\n            }\\n        }\\n    };\\n\\n        // Delay the initial page view event to ensure UTMs are captured\\n        \\namplitude.getInstance().onInit(() => {\\n  logPageView(); // <- guaranteed safe now\\n});\\n\\n    window.addEventListener('popstate', logPageView);\\n\\n    const originalPushState = history.pushState;\\n    history.pushState = function() {\\n        originalPushState.apply(this, arguments);\\n        window.dispatchEvent(new Event('pushstate'));\\n    };\\n    window.addEventListener('pushstate', logPageView);\\n});\\n</script>\\n\\n<!-- Google tag (gtag.js) -->\\n<script async=\\\"\\\" src=\\\"https://www.googletagmanager.com/gtag/js?id=G-KSJP5MQL8X\\\"></script>\\n<script>\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){dataLayer.push(arguments);}\\n  gtag('js', new Date());\\n\\n  gtag('config', 'G-KSJP5MQL8X');\\n</script>\\n\",description:\"Plan events in seconds, with actually fun event pages. Invite guests on any platform. Easily coordinate via Text Blasts and automatic reminders. Share photos, comments, and more.\",favicon:\"https://framerusercontent.com/assets/e1YjvBlBw5EezWgZDyJIgN6o.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/nmEtO7Or6QjCxmQSTLDrLUZ9A.png\",title:\"Partiful - Free Online Invitations with RSVP Tracking\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "AACe,SAARA,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,kBAAkB,4HAA2H,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,EAA07B,kBAAkB,kIAAiI,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;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;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,EAAo8N,YAAY,qLAAqL,QAAQ,oEAAoE,OAAO,0BAA0B,YAAY,qEAAqE,MAAM,uDAAuD,CAAE",
  "names": ["metadata", "params", "activeLocale"]
}
