{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/UwDUkkkPdSIj9oyHf3Qk/Ab9gy8qXY9QBbJwGpqHe/siteMetadata.js"],
  "sourcesContent": ["// Generated by Framer (64bdc4e)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:\"<script>\\n(() => {\\n    function generateQuerySelector(el) {\\n        if (el.tagName.toLowerCase() == \\\"html\\\")\\n            return \\\"HTML\\\";\\n        var str = el.tagName;\\n        str += (el.id != \\\"\\\") ? \\\"#\\\" + el.id : \\\"\\\";\\n        if (el.className) {\\n            const classes = el.className.split(/\\\\s/);\\n            for (let i = 0; i < classes.length; i++) {\\n                str += \\\".\\\" + classes[i]\\n            }\\n        }\\n        return generateQuerySelector(el.parentNode) + \\\" > \\\" + str;\\n    }\\n\\n    function copyParams(node) {\\n        if (node.href === '') {\\n            return\\n        }\\n\\n        const currentParams = new URL(window.location).searchParams\\n        const cookiesParams = (\\n            document.cookie.split(';')\\n                .map(c => c.trim().split('='))\\n                .filter(([k]) => k.startsWith('_fbc') || k.startsWith('_fbp'))\\n                .map(([k, v]) => [k.replace(/^_/, ''), v])\\n        )\\n\\n        let linkURL = null\\n        try {\\n            linkURL = new URL(node.href)\\n        } catch (e) {\\n            const selector = generateQuerySelector(node)\\n            console.error(\\\"Error creating URL from \\\" + selector + \\\" href: \\\" + JSON.stringify(node.href), node, e)\\n            return\\n        }\\n\\n        let madeModifications = false\\n        for (const [p, v] of currentParams.entries()) {\\n            if (!linkURL.searchParams.has(p, v)) {\\n                linkURL.searchParams.append(p, v)\\n                madeModifications = true\\n            }\\n        }\\n        for (const [p, v] of cookiesParams) {\\n            if (!linkURL.searchParams.has(p, v)) {\\n                linkURL.searchParams.append(p, v)\\n                madeModifications = true\\n            }\\n        }\\n        if (madeModifications) {\\n            node.href = linkURL.toString()\\n        }\\n    }\\n\\n    const MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\\n\\n    if (!MutationObserver) {\\n        console.error(\\\"MutationObserver is not supported\\\");\\n        for (const e of document.getElementsByTagName('a')) {\\n            if (e.localName === 'a') {\\n                copyParams(e)\\n            }\\n        }\\n        return\\n    }\\n\\n    // Create an observer instance and pass the callback function\\n    const observer = new MutationObserver(handleNewElements);\\n\\n    // Get existing anchors\\n    for (const e of document.getElementsByTagName('a')) {\\n        if (e.localName === 'a') {\\n            copyParams(e)\\n            // listen to changes in the anchor's attributes\\n            observer.observe(e, { attributes: true, attributeFilter: ['href'] })\\n        }\\n    }\\n\\n\\n\\n    // Function to handle new links added to the DOM\\n    function handleNewElements(mutationsList) {\\n\\n        mutationsList.forEach(mutation => {\\n            if (mutation.type === 'childList') {\\n                mutation.addedNodes.forEach(node => {\\n                    if (node.nodeType === Node.ELEMENT_NODE) {\\n\\n                        if (node.localName === 'a') {\\n                            copyParams(node)\\n                            // listen to changes in the anchor's attributes\\n                            observer.observe(node, { attributes: true, attributeFilter: ['href'] })\\n                        } else {\\n                            // Get all child anchors and listen to changes in their attributes\\n                            for (const child of node.getElementsByTagName('a')) {\\n                                copyParams(child)\\n                                observer.observe(child, { attributes: true, attributeFilter: ['href'] })\\n                            }\\n                        }\\n                    }\\n                });\\n            } else if (mutation.type === 'attributes') {\\n                if (mutation.attributeName === 'href') {\\n                    const node = mutation.target\\n                    if (node.nodeType === Node.ELEMENT_NODE && node.localName === 'a') {\\n                        copyParams(node)\\n                    }\\n                }\\n            }\\n        });\\n    };\\n\\n    // Start observing the document for new links\\n    observer.observe(\\n        document,\\n        {\\n            // Observe direct children (added/removed)\\n            childList: true,\\n            // Observe all descendants, not just direct children\\n            subtree: true\\n        }\\n    );\\n})()\\n</script>\",customHTMLBodyStart:\"<!-- GTM (noscript) -->\\n<noscript><iframe src=\\\"https://www.googletagmanager.com/ns.html?id=GTM-5TSVFXT\\\" height=\\\"0\\\" width=\\\"0\\\" style=\\\"display:none;visibility:hidden\\\"></iframe></noscript>\\n<!-- End GTM (noscript) -->\\n<script>\\n  (function() {\\n    if (typeof window === 'undefined') return;\\n    if (typeof window.signals !== 'undefined') return;\\n    var script = document.createElement('script');\\n    script.src = 'https://cdn.cr-relay.com/v1/site/c823feb9-5538-4ebd-b6b0-1ea470248b20/signals.js';\\n    script.async = true;\\n    window.signals = Object.assign(\\n      [],\\n      ['page', 'identify', 'form'].reduce(function (acc, method){\\n        acc[method] = function () {\\n          signals.push([method, arguments]);\\n          return signals;\\n        };\\n       return acc;\\n      }, {})\\n    );\\n    document.head.appendChild(script);\\n  })();\\n</script>\\n\\n\\n<!-- Plugin: 33d9eb --> <script>window.hsConversationsSettings = {\\\"disableAttachment\\\":false,\\\"enableWidgetCookieBanner\\\":false};</script>\",customHTMLHeadEnd:'<style>\\n  * {-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}\\n</style>\\n\\n<!-- GTM -->\\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-5TSVFXT\\');</script>\\n<!-- End GTM -->\\n\\n<script>\\n    !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\".\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\"script\")).type=\"text/javascript\",p.async=!0,p.src=s.api_host+\"/static/array.js\",(r=t.getElementsByTagName(\"script\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\"posthog\",u.people=u.people||[],u.toString=function(t){var e=\"posthog\";return\"posthog\"!==a&&(e+=\".\"+a),t||(e+=\" (stub)\"),e},u.people.toString=function(){return u.toString(1)+\".people (stub)\"},o=\"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys\".split(\" \"),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\\n    posthog.init(\\'phc_sytcVQZkr1xpjOHtTKHckUfFPxZlMGN0TlbcdmCwTez\\',{api_host:\\'https://app.posthog.com\\'})\\n</script>',customHTMLHeadStart:'<!-- Start of HubSpot Embed Code -->\\n<script type=\"text/javascript\" id=\"hs-script-loader\" async=\"\" defer=\"\" src=\"//js.hs-scripts.com/23886037.js\"></script>\\n<!-- End of HubSpot Embed Code -->\\n\\n<!-- Start of Sourcebuster Code -->\\n<script src=\"https://cdn.jsdelivr.net/npm/sourcebuster@1.0.0/dist/sourcebuster.min.js\"></script>\\n<script>\\n  document.addEventListener(\"DOMContentLoaded\", function () {\\n    if (typeof sbjs !== \\'undefined\\') {\\n      sbjs.init();\\n      console.log(\\'Sourcebuster initialized:\\', sbjs.get.current);\\n    } else {\\n      console.error(\"Sourcebuster.js not loaded\");\\n    }\\n  });\\n</script>\\n<!-- End of Sourcebuster Code -->',description:\"SchoolAI is a Student Success Platform that makes school awesome for students by helping the people who support them understand how they\u2019re doing and why. \",favicon:\"https://framerusercontent.com/assets/7bIylu2i4cbTsz2vBEEkNn7dnHY.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/8i1EF0rhRP2TrRTisqXXrt4lYgE.png\",title:\"SchoolAI | Reimagining Student Success\"};}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;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,YAAk2I,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,0IAA4/B,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAmsD,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAspB,YAAY,mKAA8J,QAAQ,uEAAuE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,wCAAwC,CAAE",
  "names": ["metadata", "params", "activeLocale"]
}
