{"version":3,"sources":["jsdelivr-header.js","/gh/webtenn/appenai@56/scripts.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCGA,WACE,aAEA,IAAI,OAAO,eAAX,CACA,OAAO,gBAAiB,EAExB,IAAI,EAAW,CAaf,aAAwB,WACtB,IAAI,EAAM,SAAS,cAAc,mBAC7B,EAAO,SAAS,cAAc,uBAClC,GAAK,GAAQ,EAAb,CAEA,IAAI,EAAM,SAAS,cAAc,cAC7B,GAAU,EAiBd,OAAO,iBAAiB,SAAU,EAAU,CAAE,SAAS,IACvD,OAAO,iBAAiB,SAAU,EAAU,CAAE,SAAS,IACvD,GAtByB,CAKzB,SAAS,IACP,GAAU,EACV,IAAI,EAAO,EAAM,EAAI,wBAAwB,OAAS,GAGtD,EAAI,UAAU,OAAO,aAAc,EAAK,wBAAwB,KAAO,EAAO,EAChF,CAEA,SAAS,IACF,IACH,GAAU,EACV,sBAAsB,GAE1B,CAKF,GAEA,OAAO,KAAK,GAAU,QAAQ,SAAU,GACtC,IACE,EAAS,IACX,CAAE,MAAO,GACP,QAAQ,KAAK,oBAAsB,EAAO,YAAa,EACzD,CACF,EAlDiC,CAmDlC,CAtDD","file":"/gh/webtenn/appenai@56/scripts.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /gh/webtenn/appenai@56/scripts.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* Appen — site-wide front-end enhancements\n *\n * Loaded from Site Settings > Custom Code > Footer via jsDelivr. Committed\n * unminified; jsDelivr minifies on request when linked as scripts.min.js.\n *\n * Every feature guards on its own selectors and runs inside its own\n * try/catch, so this file is inert on pages that don't use a given feature\n * and one failure can't take down the others.\n */\n(function () {\n  'use strict';\n\n  if (window.__appenScripts) return;\n  window.__appenScripts = true;\n\n  var features = {};\n\n  /* Sticky CTA tab\n   *\n   * Reveals the \"Talk to an expert\" tab once its sticky wrapper pins beneath\n   * the nav, and retracts it on the way back up.\n   *\n   * Opt a page in by adding .sticky-cta_wrapper (position: sticky; top: 64px)\n   * with a .sticky-cta_tab link inside it. No per-page configuration.\n   *\n   * Visibility and transitions live in styles.css under .sticky-cta_tab and\n   * .sticky-cta_tab.is-visible — this only toggles the class.\n   */\n  features.stickyCtaTab = function () {\n    var tab = document.querySelector('.sticky-cta_tab');\n    var wrap = document.querySelector('.sticky-cta_wrapper');\n    if (!tab || !wrap) return;\n\n    var nav = document.querySelector('.nav.w-nav');\n    var ticking = false;\n\n    function update() {\n      ticking = false;\n      var navH = nav ? nav.getBoundingClientRect().height : 64;\n      /* A pinned sticky element's top equals its CSS top value, and is\n       * greater than it before pinning. The +1 absorbs subpixel drift. */\n      tab.classList.toggle('is-visible', wrap.getBoundingClientRect().top <= navH + 1);\n    }\n\n    function onScroll() {\n      if (!ticking) {\n        ticking = true;\n        requestAnimationFrame(update);\n      }\n    }\n\n    window.addEventListener('scroll', onScroll, { passive: true });\n    window.addEventListener('resize', onScroll, { passive: true });\n    update();\n  };\n\n  Object.keys(features).forEach(function (name) {\n    try {\n      features[name]();\n    } catch (err) {\n      console.warn('[appen] feature \"' + name + '\" failed:', err);\n    }\n  });\n})();\n"]}